/* ==========================================================================
   Eagle Harbor Residences - component layer
   Design tokens live in theme.json; this file styles components that
   theme.json cannot express (states, accordions, forms, diagrams).
   ========================================================================== */

/* --- Accessibility: visible focus everywhere ----------------------------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
	border-radius: 3px;
}

.eh-skip-link:focus {
	position: fixed !important;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 100000;
	display: block;
	padding: 0.75rem 1.25rem;
	background: var(--wp--preset--color--navy);
	color: #fff;
	font-weight: 600;
	border-radius: 6px;
	text-decoration: none;
}

/* --- Buttons: variants --------------------------------------------------- */
.wp-block-button__link { transition: background-color .18s ease, border-color .18s ease, color .18s ease; }

/* Amber CTA */
.is-style-eh-accent .wp-block-button__link,
.wp-block-button.is-style-eh-accent .wp-block-button__link {
	background-color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: #fff;
}
.is-style-eh-accent .wp-block-button__link:hover,
.is-style-eh-accent .wp-block-button__link:focus {
	background-color: var(--wp--preset--color--accent-dark);
	border-color: var(--wp--preset--color--accent-dark);
}

/* Outline on light */
.is-style-eh-outline .wp-block-button__link {
	background-color: transparent;
	border-color: var(--wp--preset--color--harbor-dark);
	color: var(--wp--preset--color--harbor-dark);
}
.is-style-eh-outline .wp-block-button__link:hover,
.is-style-eh-outline .wp-block-button__link:focus {
	background-color: var(--wp--preset--color--harbor-dark);
	color: #fff;
}

/* Outline on dark backgrounds */
.is-style-eh-outline-light .wp-block-button__link {
	background-color: transparent;
	border-color: #fff;
	color: #fff;
}
.is-style-eh-outline-light .wp-block-button__link:hover,
.is-style-eh-outline-light .wp-block-button__link:focus {
	background-color: #fff;
	color: var(--wp--preset--color--navy);
}

/* Header CTA buttons stay compact */
.eh-header .wp-block-button__link { padding: 0.65rem 1.1rem; font-size: 0.875rem; }

/* --- Header -------------------------------------------------------------- */
.eh-header { border-bottom: 1px solid var(--wp--preset--color--line); }

.eh-logo .wp-block-site-title a,
.eh-logo a { text-decoration: none; }

.eh-wordmark { line-height: 1.05; text-decoration: none; display: inline-block; }
.eh-wordmark .eh-wordmark__1 {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.15rem, 2.4vw, 1.5rem);
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--wp--preset--color--navy);
}
.eh-wordmark .eh-wordmark__2 {
	display: block;
	font-family: var(--wp--preset--font-family--body);
	font-size: clamp(.62rem, 1.2vw, .72rem);
	font-weight: 700;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--wp--preset--color--harbor);
	margin-top: .18rem;
}

/* Navigation */
.eh-header .wp-block-navigation .wp-block-navigation-item__content {
	text-decoration: none;
	padding-block: .35rem;
	border-bottom: 2px solid transparent;
}
.eh-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.eh-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	border-bottom-color: var(--wp--preset--color--accent);
}
.eh-header .wp-block-navigation .wp-block-navigation-submenu__toggle { text-decoration: none; }

/* Submenu panel */
.eh-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	box-shadow: var(--wp--preset--shadow--soft);
	padding: .4rem 0;
	min-width: 15rem;
	background: #fff;
}
.eh-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .6rem 1rem;
	border-bottom: 0;
}
.eh-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--sea);
}

/* Mobile overlay menu */
.wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem;
	background-color: var(--wp--preset--color--navy) !important;
}
.wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation__responsive-container.is-menu-open a {
	color: #fff !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding-block: .7rem;
	font-size: 1.125rem;
	border-bottom: 1px solid rgba(255,255,255,.14);
}
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	min-width: 44px;
	min-height: 44px;
}

/* --- Cards --------------------------------------------------------------- */
.eh-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	height: 100%;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.eh-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--preset--shadow--lift);
	border-color: var(--wp--preset--color--harbor);
}
.eh-card--flat:hover { transform: none; box-shadow: var(--wp--preset--shadow--soft); }

.eh-card__eyebrow {
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--harbor);
}

/* Icon chip */
.eh-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 10px;
	background: var(--wp--preset--color--sea);
	color: var(--wp--preset--color--harbor-dark);
	font-size: 1.4rem;
	margin-bottom: .85rem;
}

/* Path cards (two-audience split) */
.eh-path {
	border: 1px solid var(--wp--preset--color--line);
	border-top: 4px solid var(--wp--preset--color--harbor);
	border-radius: 12px;
	background: #fff;
	height: 100%;
}
.eh-path--partner { border-top-color: var(--wp--preset--color--accent); }

/* Numbered step */
.eh-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem; height: 2.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--navy);
	color: #fff;
	font-weight: 700;
	font-size: 1rem;
	margin-bottom: .75rem;
}

/* Trust bar */
.eh-trustbar { border-block: 1px solid var(--wp--preset--color--line); }
.eh-trustbar p {
	font-size: .875rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	margin: 0;
}

/* Org / partner chips */
.eh-chip {
	display: block;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: #fff;
	padding: 1rem 1.1rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	height: 100%;
}

/* --- Shared living diagram ---------------------------------------------- */
.eh-diagram { display: grid; gap: 1rem; }
.eh-diagram__row {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	background: #fff;
}
.eh-diagram__row--private { border-left: 5px solid var(--wp--preset--color--harbor); }
.eh-diagram__row--shared  { border-left: 5px solid var(--wp--preset--color--accent); }
.eh-diagram__row--mgmt    { border-left: 5px solid var(--wp--preset--color--navy); }
.eh-diagram__row--result {
	background: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--navy);
	color: #fff;
	text-align: center;
}
.eh-diagram__row--result p, .eh-diagram__row--result strong { color: #fff; }
.eh-diagram__op {
	text-align: center;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--slate);
	line-height: 1;
}
.eh-diagram__label {
	font-size: .8125rem; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: var(--wp--preset--color--harbor);
	margin: 0 0 .35rem;
}
.eh-diagram ul { margin: 0; padding-left: 1.1rem; }
.eh-diagram li { margin-block: .2rem; }

/* --- FAQ accordion (core/details) --------------------------------------- */
.eh-faq .wp-block-details {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px;
	background: #fff;
	padding: 0;
	margin-bottom: .75rem;
}
.eh-faq .wp-block-details summary {
	cursor: pointer;
	list-style: none;
	padding: 1.05rem 3rem 1.05rem 1.25rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	position: relative;
}
.eh-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.eh-faq .wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 1.25rem; top: 50%;
	width: .6rem; height: .6rem;
	border-right: 2px solid var(--wp--preset--color--harbor);
	border-bottom: 2px solid var(--wp--preset--color--harbor);
	transform: translateY(-70%) rotate(45deg);
	transition: transform .18s ease;
}
.eh-faq .wp-block-details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.eh-faq .wp-block-details[open] summary { border-bottom: 1px solid var(--wp--preset--color--line); }
.eh-faq .wp-block-details > *:not(summary) { padding-inline: 1.25rem; }
.eh-faq .wp-block-details > *:not(summary):first-of-type { padding-top: 1rem; }
.eh-faq .wp-block-details > *:last-child { padding-bottom: 1.25rem; }

/* --- Forms --------------------------------------------------------------- */
.eh-form { max-width: 46rem; }
.eh-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.1rem; }
.eh-form__grid > .eh-field--full { grid-column: 1 / -1; }
@media (max-width: 640px) { .eh-form__grid { grid-template-columns: 1fr; } }

.eh-fieldset {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 1.5rem;
	margin: 0 0 1.5rem;
	background: #fff;
}
.eh-fieldset > legend {
	font-family: var(--wp--preset--font-family--body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--harbor);
	padding: 0 .5rem;
	margin-left: -.5rem;
}

.eh-field label,
.eh-field > .eh-legend {
	display: block;
	font-weight: 600;
	font-size: .9375rem;
	color: var(--wp--preset--color--navy);
	margin-bottom: .35rem;
}
.eh-field .eh-req { color: var(--wp--preset--color--accent-dark); }
.eh-field .eh-hint {
	display: block;
	font-size: .8125rem;
	color: var(--wp--preset--color--slate);
	font-weight: 400;
	margin-top: .15rem;
}

.eh-form input[type="text"],
.eh-form input[type="email"],
.eh-form input[type="tel"],
.eh-form input[type="date"],
.eh-form select,
.eh-form textarea {
	width: 100%;
	padding: .75rem .85rem;
	font: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
	background: #fff;
	border: 1px solid #9AA9B4;
	border-radius: 6px;
	min-height: 46px;
}
.eh-form textarea { min-height: 8rem; resize: vertical; }
.eh-form input:focus, .eh-form select:focus, .eh-form textarea:focus {
	border-color: var(--wp--preset--color--harbor);
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 1px;
}
.eh-form .eh-choices { display: flex; flex-wrap: wrap; gap: .5rem .9rem; }
.eh-form .eh-choice {
	display: inline-flex; align-items: center; gap: .45rem;
	font-weight: 400; font-size: 1rem; margin: 0;
	min-height: 44px;
}
.eh-form .eh-choice input { width: 1.15rem; height: 1.15rem; margin: 0; }
.eh-form .eh-consent { display: flex; gap: .6rem; align-items: flex-start; font-size: .9375rem; font-weight: 400; }
.eh-form .eh-consent input { margin-top: .25rem; width: 1.15rem; height: 1.15rem; flex: none; }

.eh-form button[type="submit"] {
	background: var(--wp--preset--color--accent);
	color: #fff;
	border: 2px solid var(--wp--preset--color--accent);
	border-radius: 6px;
	font: inherit;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: .9375rem;
	padding: 1rem 2rem;
	cursor: pointer;
	min-height: 48px;
}
.eh-form button[type="submit"]:hover,
.eh-form button[type="submit"]:focus {
	background: var(--wp--preset--color--accent-dark);
	border-color: var(--wp--preset--color--accent-dark);
}

/* Honeypot - hidden from sighted users, kept reachable-free for AT */
.eh-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Messages */
.eh-notice { border-radius: 10px; padding: 1.15rem 1.35rem; margin-bottom: 1.5rem; border: 1px solid; }
.eh-notice--ok { background: #ECF6F1; border-color: #1F7A57; color: #14503A; }
.eh-notice--err { background: #FCEEEA; border-color: #A33212; color: #7C2410; }
.eh-notice p:last-child { margin-bottom: 0; }
.eh-notice ul { margin: .5rem 0 0; padding-left: 1.2rem; }

.eh-field--error input, .eh-field--error select, .eh-field--error textarea { border-color: #A33212; border-width: 2px; }
.eh-field__error { display: block; color: #7C2410; font-size: .875rem; font-weight: 600; margin-top: .3rem; }

/* Conditional blocks on the contact form */
.eh-cond[hidden] { display: none !important; }

/* --- Residence cards ----------------------------------------------------- */
.eh-residence { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; overflow: hidden; background: #fff; height: 100%; display: flex; flex-direction: column; }
.eh-residence__media { aspect-ratio: 3 / 2; background: var(--wp--preset--color--sea); overflow: hidden; }
.eh-residence__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eh-residence__body { padding: 1.35rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.eh-residence__name { margin: 0; font-size: 1.35rem; }
.eh-residence__meta { margin: 0; font-size: .875rem; color: var(--wp--preset--color--slate); font-weight: 600; }
.eh-residence__amenities { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.eh-residence__amenities li {
	font-size: .8125rem; background: var(--wp--preset--color--sand);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px; padding: .25rem .7rem; color: var(--wp--preset--color--navy);
}
.eh-residence__cta { margin-top: auto; padding-top: .4rem; }
.eh-status {
	display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .06em;
	text-transform: uppercase; padding: .25rem .6rem; border-radius: 4px;
}
.eh-status--available { background: #E3F1EA; color: #14503A; }
.eh-status--waitlist  { background: #FBF0DF; color: #6E4708; }
.eh-status--full      { background: #EDF0F2; color: #45535E; }
.eh-status--coming    { background: var(--wp--preset--color--sea); color: var(--wp--preset--color--harbor-dark); }

.eh-empty {
	border: 1px dashed var(--wp--preset--color--line);
	border-radius: 12px; padding: 2.5rem 1.5rem; text-align: center;
	color: var(--wp--preset--color--slate); background: var(--wp--preset--color--sand);
}

/* --- Footer -------------------------------------------------------------- */
.eh-footer a { color: #fff; text-decoration: none; }
.eh-footer a:hover, .eh-footer a:focus { text-decoration: underline; }
.eh-footer h2, .eh-footer h3, .eh-footer h4 { color: #fff; }
.eh-footer .eh-footer__heading {
	font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: #A9C4D6; margin: 0 0 .9rem;
}
.eh-footer p { color: #D6E2EB; }
.eh-footer__legal { border-top: 1px solid rgba(255,255,255,.16); }
.eh-footer__legal p { font-size: .8125rem; color: #A9C4D6; }
.eh-footer ul.wp-block-list { list-style: none; padding: 0; margin: 0; }
.eh-footer ul.wp-block-list li { margin-block: .5rem; }

/* --- Utility ------------------------------------------------------------- */
.eh-eyebrow {
	font-size: .8125rem; font-weight: 700; letter-spacing: .1em;
	text-transform: uppercase; color: var(--wp--preset--color--harbor);
	margin-bottom: .6rem;
}
.eh-lead { font-size: clamp(1.0625rem, 1.6vw, 1.25rem); line-height: 1.6; color: var(--wp--preset--color--slate); }
.eh-measure { max-width: 42rem; }

.eh-hero { position: relative; }
.eh-hero h1 { margin-bottom: 1rem; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
	.eh-card:hover { transform: none; }
}

/* Print */
@media print {
	.eh-header, .eh-footer, .wp-block-button { display: none !important; }
}

/* --- Header responsive behaviour ---------------------------------------- */
.eh-header__right { gap: 1.5rem; }
@media (max-width: 1080px) {
	.eh-header__cta-secondary { display: none; }
}
@media (max-width: 600px) {
	.eh-header__ctas .wp-block-button__link { padding: .6rem .85rem; font-size: .8125rem; }
	.eh-header__right { gap: .6rem; }
}

/* Footer wordmark on dark */
.eh-wordmark--footer .eh-wordmark__1 { color: #fff; }
.eh-wordmark--footer .eh-wordmark__2 { color: #A9C4D6; }
.eh-social { display: flex; gap: .75rem; margin-top: 1.25rem; }
.eh-social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.28); border-radius: 8px; }
.eh-social a:hover { background: rgba(255,255,255,.12); text-decoration: none; }
.eh-social:empty { display: none; }

/* --- Fixes / additions --------------------------------------------------- */
/* The parent theme zeroes button borders; restore them so outline variants show. */
.wp-block-button .wp-block-button__link,
.wp-block-button__link.wp-element-button {
	border-style: solid;
	border-width: 2px;
}

/* Lead paragraph on dark sections */
.eh-lead-light {
	font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
	line-height: 1.6;
	color: #D6E2EB;
}

/* Final CTA */
.eh-final-cta h2 { color: #fff; }
.eh-final-cta .wp-block-buttons { justify-content: center; margin-top: 2rem; }

/* Steps */
.eh-step h3 { margin-top: 0; }
.eh-step p { color: var(--wp--preset--color--slate); }

/* Path cards keep equal height in a columns row */
.wp-block-columns .eh-path,
.wp-block-columns .eh-card { height: 100%; }
.wp-block-columns { align-items: stretch; }

/* Trust bar rows sit closer together */
.eh-trustbar .wp-block-columns { margin-block: .35rem; }

/* Section headings get a little breathing room from the eyebrow */
.eh-eyebrow + h1, .eh-eyebrow + h2 { margin-top: 0; }

/* Card grid images/paras */
.eh-card h3 { margin-top: 0; }
.eh-card p:last-child { margin-bottom: 0; }

/* Buttons wrap nicely on small screens */
.wp-block-buttons { gap: .75rem; }
@media (max-width: 480px) {
	.wp-block-buttons .wp-block-button { width: 100%; }
	.wp-block-buttons .wp-block-button__link { display: block; text-align: center; }
	.eh-header__ctas .wp-block-button { width: auto; }
	.eh-header__ctas .wp-block-button__link { display: inline-block; }
}

/* Keep hero H1 from getting too tight on phones */
@media (max-width: 600px) {
	.eh-hero h1 { hyphens: none; }
}

/* --- Full-width section rhythm ------------------------------------------ */
/* Sections are top-level in a flow layout, so each spans the viewport and
   constrains its own children. Keep vertical rhythm from doubling up. */
main > .wp-block-group + .wp-block-group { margin-block-start: 0; }
main > .wp-block-group { margin-block: 0; }

/* Hero sections read better with a touch more room on large screens */
@media (min-width: 1200px) {
	.eh-hero { padding-block: clamp(4rem, 7vw, 7rem) !important; }
}

/* Trust bar: one flowing row on wide screens */
.eh-trustbar .wp-block-columns { gap: 1rem 2rem; }
.eh-trustbar .wp-block-column { min-width: 0; }

/* Card columns need a floor before they wrap */
.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column:empty { display: none; }

/* Diagram and included-features never exceed their section */
.eh-diagram, .eh-included { width: 100%; }

/* ==========================================================================
   QA pass fixes (validated against the live site)
   ========================================================================== */

/* The parent theme zeroes the fill on unstyled buttons, which left white text
   on a transparent background. Restore the default filled appearance. */
.wp-block-button:not([class*="is-style-eh-"]) > .wp-block-button__link {
	background-color: var(--wp--preset--color--harbor-dark);
	border-color: var(--wp--preset--color--harbor-dark);
	color: #fff;
}
.wp-block-button:not([class*="is-style-eh-"]) > .wp-block-button__link:hover,
.wp-block-button:not([class*="is-style-eh-"]) > .wp-block-button__link:focus {
	background-color: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--navy);
	color: #fff;
}

/* Sections own the side gutter. Without this the gutter is applied twice and
   mobile content loses roughly 90px of usable width. */
.page-template-page-wide .wp-block-post-content.entry-content {
	padding-left: 0;
	padding-right: 0;
	max-width: none;
}

/* Comfortable touch targets */
.wp-block-button__link,
.eh-btn,
.eh-form button[type="submit"] {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Core's `.wp-block-buttons > .wp-block-button` outranks a single class, so the
   header's secondary CTA needs matching specificity to hide on small screens. */
.eh-header .eh-header__ctas .eh-header__cta-secondary { display: none; }
@media (min-width: 1200px) {
	.eh-header .eh-header__ctas .eh-header__cta-secondary { display: inline-block; }
}

.eh-header__ctas .wp-block-button__link {
	min-height: 44px;
	padding-block: 0;
	line-height: 1.2;
}

/* --- Pattern support ----------------------------------------------------- */
.eh-announce p { margin: 0; }
.eh-announce a { color: #fff; }
.eh-stat__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.25rem, 5vw, 3.25rem);
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	line-height: 1.05;
	margin: 0 0 .25rem;
}
.eh-testimonials .eh-card p:first-child { font-size: 1.0625rem; }
.eh-logostrip__grid img { filter: grayscale(1); opacity: .75; transition: filter .2s ease, opacity .2s ease; }
.eh-logostrip__grid img:hover { filter: none; opacity: 1; }

/* --- Logo lockup & header breakpoints (QA pass 2) ------------------------ */
.eh-logo { gap: .85rem; }
.eh-logo .wp-block-site-logo { margin: 0; line-height: 0; }
.eh-logo .wp-block-site-logo img { width: 58px; height: auto; max-width: none; }
@media (max-width: 780px) {
	.eh-logo { gap: .6rem; }
	.eh-logo .wp-block-site-logo img { width: 42px; }
}
@media (max-width: 420px) {
	.eh-logo .wp-block-site-logo img { width: 36px; }
}

/* Seven top-level items plus CTAs need ~1120px. Below that use the overlay
   menu rather than letting the header wrap onto two rows. */
@media (max-width: 1120px) {
	.eh-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.eh-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
}

/* Keep each wordmark line unbroken. */
.eh-wordmark__1, .eh-wordmark__2 { white-space: nowrap; }

/* --- Photography (QA pass 3) --------------------------------------------- */
.eh-photo { margin: 0; }
.eh-photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(17, 32, 48, .12);
}
.eh-photo--hero img { aspect-ratio: 4 / 3; object-fit: cover; }
.eh-photo-band .eh-photo img { max-height: 520px; object-fit: cover; }

.eh-hero__cols, .eh-who__cols { gap: var(--wp--preset--spacing--50); }
.eh-hero--split .eh-hero__cols .wp-block-buttons { justify-content: flex-start; }

@media (max-width: 781px) {
	.eh-photo img { border-radius: 10px; }
	.eh-photo--hero img { aspect-ratio: 16 / 10; }
	.eh-hero__cols, .eh-who__cols { gap: var(--wp--preset--spacing--40); }
}

/* --- Overlay menu (QA pass 3) --------------------------------------------
   The parent theme paints the open overlay with
   --wp--preset--color--header-background, which this theme does not define, so
   the panel rendered transparent and the white menu items sat over the page.
   Its rule is !important at specificity (0,4,0), so this must exceed it. */
nav.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open,
nav.wp-block-navigation.has-background .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--navy) !important;
	color: #fff !important;
	padding: clamp(1.25rem, 5vw, 2rem) !important;
}
.wp-block-navigation__responsive-container.is-menu-open a,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
	color: #fff !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background-color: transparent !important;
	border: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus {
	text-decoration: underline;
	text-underline-offset: .25em;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:focus-visible,
.wp-block-navigation__responsive-container.is-menu-open a:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}
