/**
 * Step 1 — Global visual foundation.
 *
 * No header, footer, archive or article-specific styling is included yet.
 */

:root {
	--gp-child-color-background: #fffaf6;
	--gp-child-color-surface: #ffffff;
	--gp-child-color-surface-soft: #f6eee7;
	--gp-child-color-heading: #302621;
	--gp-child-color-text: #493f39;
	--gp-child-color-muted: #786d66;
	--gp-child-color-accent: #dc806f;
	--gp-child-color-accent-dark: #bd6253;
	--gp-child-color-border: #eadfd6;
	--gp-child-color-focus: #6f4d43;

	--gp-child-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--gp-child-font-heading: Georgia, "Times New Roman", serif;

	--gp-child-container-width: 1240px;
	--gp-child-reading-width: 760px;

	--gp-child-space-1: 0.5rem;
	--gp-child-space-2: 0.75rem;
	--gp-child-space-3: 1rem;
	--gp-child-space-4: 1.5rem;
	--gp-child-space-5: 2rem;
	--gp-child-space-6: 3rem;
	--gp-child-space-7: 4.5rem;

	--gp-child-radius-small: 0.375rem;
	--gp-child-radius-medium: 0.75rem;
	--gp-child-radius-pill: 999px;
	--gp-child-transition: 180ms ease;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body,
button,
input,
select,
textarea {
	font-family: var(--gp-child-font-body);
}

body {
	margin: 0;
	background: var(--gp-child-color-background);
	color: var(--gp-child-color-text);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-top: 0;
	color: var(--gp-child-color-heading);
	font-family: var(--gp-child-font-heading);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: -0.025em;
}

h1 {
	font-size: clamp(2.4rem, 5vw, 4.75rem);
}

h2 {
	font-size: clamp(2rem, 3.8vw, 3.5rem);
}

h3 {
	font-size: clamp(1.55rem, 2.4vw, 2.25rem);
}

p {
	margin-top: 0;
	margin-bottom: var(--gp-child-space-4);
}

a {
	color: var(--gp-child-color-heading);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color var(--gp-child-transition);
}

a:hover,
a:focus-visible {
	color: var(--gp-child-color-accent-dark);
}

img {
	max-width: 100%;
	height: auto;
}

::selection {
	background: var(--gp-child-color-accent);
	color: #ffffff;
}

:focus-visible {
	outline: 2px solid var(--gp-child-color-focus);
	outline-offset: 3px;
}

.grid-container {
	width: min(100% - 40px, var(--gp-child-container-width));
	max-width: var(--gp-child-container-width);
}

.site-content {
	padding-top: var(--gp-child-space-6);
	padding-bottom: var(--gp-child-space-7);
}

.entry-content {
	color: var(--gp-child-color-text);
}

.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > blockquote {
	max-width: var(--gp-child-reading-width);
}

button,
.button,
.wp-block-button__link,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	min-height: 48px;
	padding: 0.8rem 1.5rem;
	border: 1px solid var(--gp-child-color-accent);
	border-radius: var(--gp-child-radius-pill);
	background: var(--gp-child-color-accent);
	color: #ffffff;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition:
		background-color var(--gp-child-transition),
		border-color var(--gp-child-transition),
		transform var(--gp-child-transition);
}

button:hover,
.button:hover,
.wp-block-button__link:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: var(--gp-child-color-accent-dark);
	background: var(--gp-child-color-accent-dark);
	color: #ffffff;
	transform: translateY(-1px);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="number"],
input[type="password"],
select,
textarea {
	width: 100%;
	min-height: 48px;
	padding: 0.75rem 1rem;
	border: 1px solid var(--gp-child-color-border);
	border-radius: var(--gp-child-radius-small);
	background: var(--gp-child-color-surface);
	color: var(--gp-child-color-text);
	font: inherit;
}

textarea {
	min-height: 150px;
	resize: vertical;
}

hr {
	border: 0;
	border-top: 1px solid var(--gp-child-color-border);
}

blockquote {
	margin: var(--gp-child-space-5) 0;
	padding: var(--gp-child-space-4) var(--gp-child-space-5);
	border-left: 3px solid var(--gp-child-color-accent);
	background: var(--gp-child-color-surface-soft);
	color: var(--gp-child-color-heading);
	font-family: var(--gp-child-font-heading);
	font-size: 1.25em;
}

@media (max-width: 768px) {
	:root {
		--gp-child-space-6: 2rem;
		--gp-child-space-7: 3rem;
	}

	body {
		font-size: 16px;
	}

	.grid-container {
		width: min(100% - 28px, var(--gp-child-container-width));
	}
}

/**
 * Step 2 — Header and navigation.
 *
 * GeneratePress keeps ownership of the header markup and mobile navigation.
 * The WordPress site title is used as the text logo.
 */

.gp-child-topbar {
	border-bottom: 1px solid var(--gp-child-color-border);
	background: var(--gp-child-color-surface-soft);
	color: var(--gp-child-color-muted);
	font-size: 0.78rem;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.gp-child-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--gp-child-space-3);
	min-height: 38px;
}

.gp-child-topbar__tagline {
	margin: 0;
}

.gp-child-topbar__menu {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gp-child-topbar__menu a {
	color: inherit;
	text-decoration: none;
}

.gp-child-topbar__menu a:hover,
.gp-child-topbar__menu a:focus-visible {
	color: var(--gp-child-color-accent-dark);
}

.site-header {
	border-bottom: 0;
	background: var(--gp-child-color-background);
}

.site-header .inside-header {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 132px;
	padding-top: 28px;
	padding-bottom: 28px;
	text-align: center;
}

.site-branding {
	margin: 0;
}

.site-logo {
	margin: 0 auto;
}

.site-logo + .site-branding {
	margin-left: 0;
}

.site-title {
	font-family: var(--gp-child-font-heading);
	font-size: clamp(2.7rem, 6vw, 4.8rem);
	font-weight: 400;
	line-height: 0.95;
	letter-spacing: -0.055em;
}

.site-title a,
.site-title a:hover,
.site-title a:focus-visible {
	color: var(--gp-child-color-heading);
	text-decoration: none;
}

.site-description {
	display: none;
}

.main-navigation {
	border-top: 1px solid var(--gp-child-color-border);
	border-bottom: 1px solid var(--gp-child-color-border);
	background: var(--gp-child-color-surface);
}

.main-navigation .inside-navigation {
	min-height: 58px;
}

.main-navigation .main-nav > ul {
	justify-content: center;
}

.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-item > a {
	color: var(--gp-child-color-heading);
	font-size: 0.84rem;
	font-weight: 600;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.main-navigation .main-nav ul li a {
	padding-right: 20px;
	padding-left: 20px;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a,
.main-navigation .main-nav ul li[class*="current_page_"] > a {
	background: transparent;
	color: var(--gp-child-color-accent-dark);
}

.main-navigation ul ul {
	border: 1px solid var(--gp-child-color-border);
	background: var(--gp-child-color-surface);
	box-shadow: 0 16px 40px rgba(48, 38, 33, 0.09);
}

.main-navigation ul ul li a {
	padding-top: 12px;
	padding-bottom: 12px;
	font-size: 0.78rem;
	text-transform: none;
}

.menu-toggle {
	min-height: 52px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--gp-child-color-heading);
	transform: none;
}

.menu-toggle:hover,
.menu-toggle:focus-visible {
	border: 0;
	background: transparent;
	color: var(--gp-child-color-accent-dark);
	transform: none;
}

@media (max-width: 768px) {
	.gp-child-topbar__inner {
		justify-content: center;
		min-height: 34px;
		text-align: center;
	}

	.gp-child-topbar__nav {
		display: none;
	}

	.site-header .inside-header {
		min-height: 100px;
		padding-top: 20px;
		padding-bottom: 20px;
	}

	.site-title {
		font-size: clamp(2.35rem, 13vw, 3.4rem);
	}

	.main-navigation .inside-navigation {
		min-height: 52px;
	}

	.main-navigation.toggled .main-nav > ul {
		padding: 8px 0 14px;
		border-top: 1px solid var(--gp-child-color-border);
	}

	.main-navigation.toggled .main-nav ul li a {
		padding: 12px 20px;
		text-align: left;
	}
}
