html { scroll-padding-top: 20px; }

body { overflow-x: hidden; }

.wp-site-blocks,
.wp-block-html,
.wp-block-shortcode { margin: 0; }

.wp-site-blocks > * { margin-block-start: 0; }

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

.screen-reader-text:focus {
	z-index: 100000;
	top: 12px;
	left: 12px;
	width: auto;
	height: auto;
	clip: auto;
	clip-path: none;
	padding: 12px 16px;
	color: #efe9d9;
	background: #102a2d;
	font-weight: 800;
}

.menu-toggle {
	display: none;
	border: 1.5px solid currentColor;
	border-radius: 999px;
	padding: 9px 14px;
	color: inherit;
	background: transparent;
	font: inherit;
	font-size: .65rem;
	font-weight: 850;
	letter-spacing: .11em;
	text-transform: uppercase;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid #f4c64e;
	outline-offset: 4px;
}

.form-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.form-notice {
	border: 1.5px solid currentColor;
	padding: 15px 18px;
	font-size: .86rem;
	font-weight: 750;
	line-height: 1.5;
}

.form-notice.success { color: #102a2d; background: #f4c64e; }
.form-notice.error { color: #102a2d; background: #f17861; }

.inquiry-form input::placeholder { color: rgba(239, 233, 217, .68); }

.inquiry-form option { color: #102a2d; background: #efe9d9; }

.cv-index a { color: inherit; text-decoration: none; }
.cv-index a:hover { text-decoration: underline; text-underline-offset: 5px; }

.button,
.nav-cta,
.g8-speaking-button,
.text-link,
.g5-link,
.g6-link,
.g8-text-link { transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease; }

.button:hover,
.g8-speaking-button:hover { transform: translateY(-2px); }

.text-link:hover,
.g5-link:hover,
.g6-link:hover,
.g8-text-link:hover { opacity: .72; }

.archive-card:hover,
.g8-media-card:hover { filter: brightness(.96); }

.generic-page {
	min-height: 70vh;
	padding: 90px 6vw 110px;
	background: #efe9d9;
}

.generic-page h1 {
	max-width: 12ch;
	margin: 20px 0 35px;
	font-family: "Iowan Old Style", "Palatino Linotype", Baskerville, Georgia, serif;
	font-size: clamp(4rem, 7vw, 7rem);
	letter-spacing: -.07em;
	line-height: .85;
}

.generic-page .entry-content { max-width: 860px; font-size: 1.05rem; line-height: 1.75; }

@media (max-width: 1120px) {
	.topbar,
	.site-header { position: relative; }

	.menu-toggle { display: inline-flex; }

	.nav,
	.site-nav {
		position: absolute;
		z-index: 100;
		top: 100%;
		right: 0;
		left: 0;
		display: none;
		align-items: stretch;
		flex-direction: column;
		gap: 0;
		padding: 18px 24px 24px;
		border-bottom: 1.5px solid #102a2d;
		background: #efe9d9;
		box-shadow: 0 18px 35px rgba(16, 42, 45, .16);
	}

	.nav.is-open,
	.site-nav.is-open { display: flex; }

	.option-g3 .nav.is-open a:not(.nav-cta),
	.site-nav.is-open a:not(.nav-cta) { display: block; }

	.nav a,
	.site-nav a { padding: 13px 4px; color: #102a2d; }

	.nav .nav-cta,
	.site-nav .nav-cta { margin-top: 8px; text-align: center; }
}

@media (max-width: 560px) {
	.brand { font-size: 1.1rem; }
	.topbar,
	.site-header { padding-inline: 20px; }
	.menu-toggle { padding-inline: 11px; font-size: .58rem; }
	.g2-copy h1 { overflow-wrap: normal; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
