:root {
  --evergreen-950: #061d19;
  --evergreen-900: #0a2923;
  --evergreen-800: #103b32;
  --evergreen-700: #1a5145;
  --cream-100: #fbf8f1;
  --cream-200: #f5efe3;
  --cream-300: #ebe0cf;
  --paper: #fffdf8;
  --ink: #17231f;
  --ink-soft: #59635f;
  --gold: #c6a15b;
  --gold-bright: #dfc17f;
  --gold-deep: #9e7937;
  --white: #ffffff;
  --error: #9b2c2c;
  --success: #22633d;
  --border: rgba(14, 49, 42, 0.17);
  --shadow-soft: 0 20px 60px rgba(7, 33, 28, 0.1);
  --shadow-deep: 0 24px 70px rgba(3, 20, 17, 0.24);
  --font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-serif: Georgia, "Times New Roman", serif;
  --shell: 75rem;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section-space: clamp(4.5rem, 10vw, 8.5rem);
  --radius-sm: 0.35rem;
  --header-height: 5rem;
}

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

html {
  color-scheme: light;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 1.5rem);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-width: 20rem;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--cream-100);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.nav-open { overflow: hidden; }
main { display: block; }
[hidden] { display: none !important; }
img, picture, svg { display: block; max-width: 100%; }
img { height: auto; }
figure, p, h1, h2, h3, h4, ul, ol { margin-top: 0; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .19em; }
button, input, select, textarea { color: inherit; font: inherit; }
button, select { cursor: pointer; }
:focus-visible { outline: 3px solid var(--evergreen-700); outline-offset: 4px; }
.site-footer :focus-visible,
.page-hero :focus-visible,
.theme-dark :focus-visible,
.locations-section :focus-visible,
.cta-section :focus-visible,
.consent-banner :focus-visible { outline-color: var(--gold-bright); }
::selection { color: var(--white); background: var(--evergreen-700); }

.shell { width: min(100% - (2 * var(--gutter)), var(--shell)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: .75rem;
  left: .75rem;
  padding: .7rem 1rem;
  color: var(--white);
  background: var(--evergreen-950);
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .04em;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}
.skip-link:focus { transform: translateY(0); }

h1, h2, h3, h4 {
  color: var(--evergreen-950);
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1.08;
  text-wrap: balance;
}
h1 { font-size: clamp(3rem, 9vw, 6.75rem); letter-spacing: -.045em; }
h2 { margin-bottom: 1.25rem; font-size: clamp(2.25rem, 5vw, 4.4rem); letter-spacing: -.035em; }
h3 { margin-bottom: .75rem; font-size: clamp(1.55rem, 3vw, 2.2rem); letter-spacing: -.02em; }

.eyebrow, .mini-kicker {
  margin-bottom: .85rem;
  color: var(--gold-deep);
  font-size: .71rem;
  font-weight: 800;
  letter-spacing: .19em;
  line-height: 1.4;
  text-transform: uppercase;
}
.eyebrow-light { color: var(--gold-bright); }
.prose { color: var(--ink-soft); font-size: clamp(1rem, 1.5vw, 1.13rem); }
.prose > *:last-child, .section-intro > *:last-child, .location-copy > *:last-child { margin-bottom: 0; }
.prose ul, .prose ol { padding-left: 1.2rem; }
.prose a { color: var(--evergreen-700); font-weight: 700; }

.button, .text-link, .editorial-card a, .location-list a {
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: .82rem 1.35rem;
  border: 1px solid transparent;
  border-radius: 0;
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .105em;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}
.button svg, .text-link svg, .editorial-card a svg, .location-list svg {
  width: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}
.button:hover { transform: translateY(-2px); }
.button-gold { color: var(--evergreen-950); background: var(--gold-bright); border-color: var(--gold-bright); }
.button-gold:hover { background: #ead095; border-color: #ead095; }
.button-outline-light { color: var(--white); background: transparent; border-color: rgba(255,255,255,.54); }
.button-outline-light:hover { background: rgba(255,255,255,.08); border-color: var(--white); }
.button-small { min-height: 2.8rem; padding-inline: 1.1rem; font-size: .68rem; }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem 1.6rem; }
.text-link, .editorial-card a {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  padding-block: .3rem;
  color: var(--evergreen-800);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
}
.text-link:hover, .editorial-card a:hover { color: var(--gold-deep); }
.text-link:hover svg, .editorial-card a:hover svg { transform: translateX(.2rem); }
.text-link svg, .editorial-card a svg { transition: transform 180ms ease; }
.text-link-light { color: var(--white); }
.text-link-light:hover { color: var(--gold-bright); }

.utility-bar {
  position: relative;
  z-index: 52;
  color: rgba(255,255,255,.78);
  background: var(--evergreen-950);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.utility-inner { display: flex; min-height: 2.35rem; align-items: center; justify-content: center; }
.utility-inner p { display: flex; margin: 0; align-items: center; gap: .7rem; text-align: center; }
.utility-inner p span:last-child, .utility-actions { display: none; }
.utility-divider { width: 1.8rem; height: 1px; background: var(--gold); }
.utility-actions a { display: inline-flex; align-items: center; gap: .35rem; text-decoration: none; }
.utility-actions svg { width: .95rem; fill: none; stroke: var(--gold-bright); stroke-width: 1.6; }

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  min-height: var(--header-height);
  color: var(--evergreen-950);
  background: rgba(251,248,241,.97);
  border-bottom: 1px solid rgba(11,43,37,.12);
  box-shadow: 0 8px 30px rgba(6,29,25,.04);
  backdrop-filter: blur(12px);
}
.header-inner { display: flex; min-height: var(--header-height); align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .72rem; color: inherit; text-decoration: none; }
.brand-mark {
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  place-items: center;
  color: var(--gold-deep);
  border: 1px solid rgba(158,121,55,.42);
  border-radius: 50%;
}
.brand-mark svg { width: 2rem; fill: currentColor; }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 400; letter-spacing: .02em; }
.brand-copy small { margin-top: .3rem; font-size: .55rem; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; }

.nav-toggle {
  display: none;
  width: 2.85rem;
  height: 2.85rem;
  padding: 0;
  place-items: center;
  color: var(--evergreen-900);
  background: transparent;
  border: 1px solid var(--border);
}
.js .nav-toggle { display: grid; }
.nav-toggle svg { width: 1.35rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.6; }
.nav-toggle-close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle-open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle-close { display: block; }

.primary-nav {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  max-height: calc(100vh - var(--header-height) - 2.35rem);
  overflow-y: auto;
  padding: 1rem var(--gutter) 1.5rem;
  color: var(--evergreen-950);
  background: var(--cream-100);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-deep);
}
.js .primary-nav { display: none; }
.js .primary-nav.is-open { display: block; }
html:not(.js) .header-inner { flex-wrap: wrap; padding-block: .75rem; }
html:not(.js) .primary-nav { position: static; width: 100%; max-height: none; padding: 0; box-shadow: none; }
.primary-nav ul { margin: 0 0 1rem; padding: 0; list-style: none; }
.primary-nav > ul > li { border-bottom: 1px solid var(--border); }
.primary-nav a, .primary-nav summary { text-decoration: none; }
.primary-nav > ul > li > a, .primary-nav summary {
  display: flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .65rem 0;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .1em;
  list-style: none;
  text-transform: uppercase;
}
.primary-nav summary::-webkit-details-marker { display: none; }
.primary-nav summary svg { width: 1rem; fill: none; stroke: currentColor; stroke-width: 1.6; transition: transform 180ms ease; }
.primary-nav details[open] summary svg { transform: rotate(180deg); }
.primary-nav a[aria-current="page"], .primary-nav .is-active > details > summary { color: var(--gold-deep); }
.nav-dropdown { display: grid; gap: 0; padding: 0 0 .8rem .9rem; border-left: 1px solid var(--gold); }
.nav-dropdown a { padding: .55rem .75rem; color: var(--ink-soft); font-size: .84rem; }
.nav-dropdown a:hover { color: var(--gold-deep); }
.nav-cta { width: 100%; color: var(--white); background: var(--evergreen-900); }

.page-hero {
  position: relative;
  display: grid;
  min-height: clamp(32rem, 75vh, 49rem);
  isolation: isolate;
  align-items: end;
  overflow: hidden;
  color: var(--white);
  background: var(--evergreen-950);
}
.page-hero-home { min-height: clamp(37rem, 82vh, 55rem); }
.hero-media, .hero-overlay { position: absolute; z-index: -2; inset: 0; }
.hero-media picture, .hero-image { width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: center; animation: hero-reveal 1s cubic-bezier(.2,.7,.2,1) both; }
.hero-overlay {
  z-index: -1;
  background: linear-gradient(90deg, rgba(4,24,20,.91) 0%, rgba(4,24,20,.62) 57%, rgba(4,24,20,.2) 100%), linear-gradient(0deg, rgba(4,24,20,.66) 0%, transparent 54%);
}
.hero-content { padding-top: clamp(6rem, 13vw, 10rem); padding-bottom: clamp(5rem, 10vw, 8rem); }
.hero-content h1 { max-width: 12ch; margin-bottom: 1.25rem; color: var(--white); }
.hero-summary { max-width: 42rem; margin-bottom: 2rem; color: rgba(255,255,255,.86); font-size: clamp(1.05rem, 2vw, 1.32rem); line-height: 1.6; }
.hero-detail { position: absolute; right: var(--gutter); bottom: 1.5rem; display: none; align-items: center; gap: 1rem; color: rgba(255,255,255,.66); }
.hero-detail span { width: 4.5rem; height: 1px; background: var(--gold-bright); }
.hero-detail small { font-size: .61rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
@keyframes hero-reveal { from { opacity: 0; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }

.responsive-image { width: 100%; height: 100%; object-fit: cover; }
.image-placeholder { display: block; width: 100%; min-height: 18rem; background: linear-gradient(135deg, rgba(198,161,91,.22), transparent 65%), var(--evergreen-800); }

.proof-strip { color: var(--white); background: var(--evergreen-800); border-top: 1px solid rgba(223,193,127,.26); }
.proof-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.proof-item { display: grid; min-height: 8.6rem; align-content: center; padding: 1.25rem .9rem; text-align: center; border-bottom: 1px solid rgba(255,255,255,.12); }
.proof-item:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.12); }
.proof-item strong { color: var(--gold-bright); font-family: var(--font-serif); font-size: clamp(1.55rem, 4vw, 2.45rem); font-weight: 400; line-height: 1.1; }
.proof-item span { margin-top: .5rem; color: rgba(255,255,255,.72); font-size: .64rem; font-weight: 800; letter-spacing: .12em; line-height: 1.45; text-transform: uppercase; }

.split-grid, .feature-grid { display: grid; align-items: center; gap: clamp(2.5rem, 7vw, 7rem); }
.split-copy, .feature-copy { max-width: 37rem; }
.split-copy .text-link, .feature-copy .text-link { margin-top: 1.25rem; }
.split-figure, .feature-media { position: relative; margin: 0; }
.split-figure picture, .split-figure .responsive-image { display: block; aspect-ratio: 4 / 5; }
.feature-media picture, .feature-media .responsive-image { display: block; aspect-ratio: 4 / 3; }
.image-rule { position: absolute; z-index: -1; right: -.75rem; bottom: -.75rem; width: 72%; height: 72%; border-right: 1px solid var(--gold); border-bottom: 1px solid var(--gold); }
.split-section:nth-of-type(even), .cards-section, .faq-section { background: var(--cream-200); }
.theme-dark { color: rgba(255,255,255,.78); background: var(--evergreen-950); }
.theme-dark h2, .theme-dark h3 { color: var(--white); }
.theme-dark .prose { color: rgba(255,255,255,.72); }
.check-list-inline { display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.check-list-inline li { position: relative; padding-left: 1rem; color: inherit; font-size: .78rem; font-weight: 700; }
.check-list-inline li::before { position: absolute; top: .72em; left: 0; width: .35rem; height: .35rem; background: var(--gold); content: ""; transform: rotate(45deg); }

.section-intro { max-width: 48rem; margin-bottom: clamp(2.2rem, 5vw, 4rem); }
.section-intro > p, .location-copy > p { color: var(--ink-soft); font-size: clamp(1rem, 1.5vw, 1.15rem); }
.section-intro-row { max-width: none; }
.editorial-cards, .space-grid, .steps-grid, .gallery-grid { display: grid; gap: 1.25rem; }

.editorial-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; background: var(--paper); border: 1px solid var(--border); box-shadow: 0 16px 45px rgba(6,29,25,.05); }
.card-media { overflow: hidden; }
.card-media picture, .card-media .responsive-image { display: block; aspect-ratio: 4 / 3; }
.card-media .responsive-image, .space-card .responsive-image, .gallery-grid .responsive-image { transition: transform 500ms cubic-bezier(.2,.7,.2,1); }
.editorial-card:hover .card-media .responsive-image, .space-card:hover .responsive-image, .gallery-grid figure:hover .responsive-image { transform: scale(1.025); }
.card-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: clamp(1.4rem, 4vw, 2.1rem); }
.card-copy h3 { font-size: clamp(1.55rem, 3vw, 2rem); }
.card-copy > p:not(.mini-kicker) { flex: 1; color: var(--ink-soft); }
.card-copy a { margin-top: .75rem; }

.spaces-section { background: var(--cream-100); }
.space-card { position: relative; min-height: 24rem; overflow: hidden; color: var(--white); background: var(--evergreen-900); }
.space-card picture, .space-card .responsive-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.space-card::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,24,20,.9), rgba(4,24,20,.05) 72%); content: ""; }
.space-card-copy { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: clamp(1.4rem, 4vw, 2rem); }
.space-card-copy p { margin-bottom: .45rem; color: var(--gold-bright); font-size: .67rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.space-card-copy h3 { margin-bottom: .4rem; color: var(--white); }
.space-card-copy span { color: rgba(255,255,255,.73); font-size: .9rem; }

.locations-section { color: rgba(255,255,255,.72); background: var(--evergreen-900); }
.location-layout { display: grid; gap: 2.5rem; }
.location-copy h2 { color: var(--white); }
.location-copy > p { color: rgba(255,255,255,.69); }
.location-copy .text-link { margin-top: .8rem; color: var(--gold-bright); }
.location-additional { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.17); }
.location-additional summary { color: var(--gold-bright); font-size: .82rem; font-weight: 750; letter-spacing: .04em; cursor: pointer; }
.location-additional p { margin: .8rem 0 0; color: rgba(255,255,255,.65); font-size: .86rem; line-height: 1.75; }
.location-list { border-top: 1px solid rgba(255,255,255,.17); }
.location-list a { display: grid; grid-template-columns: 2.25rem 1fr auto; min-height: 4.1rem; align-items: center; gap: .7rem; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.17); text-decoration: none; }
.location-list a:hover { padding-left: .35rem; color: var(--gold-bright); }
.location-list span { color: var(--gold-bright); font-family: var(--font-serif); font-size: .85rem; }
.location-list strong { font-size: .88rem; font-weight: 700; letter-spacing: .04em; }
.location-list svg { width: 1rem; }

.list-feature { background: var(--cream-200); }
.list-feature-grid { display: grid; gap: 2.5rem; }
.list-feature ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--border); }
.list-feature li { display: grid; grid-template-columns: 2.8rem 1fr; align-items: baseline; gap: .5rem; padding: 1rem 0; border-bottom: 1px solid var(--border); font-size: clamp(1rem, 2vw, 1.2rem); font-weight: 650; }
.list-feature li span { color: var(--gold-deep); font-family: var(--font-serif); font-size: .86rem; }

.steps-grid { counter-reset: steps; }
.steps-grid article { position: relative; min-height: 16rem; padding: 1.6rem; background: var(--paper); border: 1px solid var(--border); }
.steps-grid article > span { display: block; margin-bottom: 3rem; color: var(--gold-deep); font-family: var(--font-serif); font-size: .92rem; }
.steps-grid article h3 { font-size: 1.75rem; }
.steps-grid article p { margin-bottom: 0; color: var(--ink-soft); }

.faq-layout { display: grid; gap: 2.5rem; }
.faq-list { border-top: 1px solid var(--border); }
.faq-list details { border-bottom: 1px solid var(--border); }
.faq-list summary { display: flex; min-height: 4.75rem; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1rem; color: var(--evergreen-950); font-family: var(--font-serif); font-size: clamp(1.15rem, 2.5vw, 1.48rem); line-height: 1.3; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary svg { width: 1.1rem; min-width: 1.1rem; fill: none; stroke: var(--gold-deep); stroke-width: 1.5; transition: transform 180ms ease; }
.faq-list details[open] summary svg { transform: rotate(180deg); }
.faq-list details > div { max-width: 42rem; padding: 0 2.5rem 1.5rem 0; color: var(--ink-soft); }

.notice-band { padding-block: clamp(2.5rem, 6vw, 4.5rem); color: var(--white); background: var(--evergreen-700); }
.notice-band .shell { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 1rem; }
.notice-band .shell > span { color: var(--gold-bright); font-family: var(--font-serif); font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: .8; }
.notice-band h2 { margin-bottom: .55rem; color: var(--white); font-size: clamp(1.65rem, 3vw, 2.7rem); }
.notice-band p { max-width: 48rem; margin-bottom: 0; color: rgba(255,255,255,.76); }

.gallery-grid figure { position: relative; margin: 0; overflow: hidden; background: var(--evergreen-900); }
.gallery-grid picture, .gallery-grid .responsive-image { display: block; aspect-ratio: 4 / 3; }
.gallery-grid figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 2.5rem 1rem .8rem; color: rgba(255,255,255,.86); background: linear-gradient(0deg, rgba(4,24,20,.86), transparent); font-size: .73rem; font-weight: 700; letter-spacing: .07em; }

.cta-section { color: var(--white); background: radial-gradient(circle at 82% 50%, rgba(198,161,91,.12), transparent 30%), var(--evergreen-950); }
.cta-inner { display: grid; align-items: end; gap: 2rem; }
.cta-inner h2 { max-width: 14ch; color: var(--white); }
.cta-inner > div:first-child > p:last-child { max-width: 42rem; margin-bottom: 0; color: rgba(255,255,255,.72); }

.site-footer { padding: clamp(4rem, 8vw, 6.5rem) 0 5.5rem; color: rgba(255,255,255,.65); background: #041512; }
.footer-grid { display: grid; gap: 2.5rem; }
.site-footer .brand { color: var(--white); }
.site-footer .brand-mark { color: var(--gold-bright); border-color: rgba(223,193,127,.4); }
.footer-brand > p { max-width: 28rem; margin-top: 1.2rem; }
.footer-brand .footer-note { padding-left: 1rem; color: rgba(255,255,255,.48); border-left: 1px solid var(--gold-deep); font-size: .78rem; }
.site-footer h2 { margin-bottom: 1rem; color: var(--gold-bright); font-family: var(--font-sans); font-size: .66rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li + li { margin-top: .45rem; }
.site-footer a, .link-button { color: rgba(255,255,255,.74); text-decoration: none; }
.site-footer a:hover, .link-button:hover { color: var(--gold-bright); }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; }
.footer-contact address { margin-bottom: .45rem; font-style: normal; }
.footer-contact p { margin: .45rem 0 0; font-size: .82rem; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 1.5rem; margin-top: 3.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .72rem; }
.footer-bottom p { margin: 0; }
.footer-bottom > div { display: flex; gap: 1.2rem; }
.link-button { padding: 0; background: none; border: 0; font-size: inherit; }

.mobile-action-bar { position: fixed; z-index: 48; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: .8fr 1.2fr; min-height: 4rem; color: var(--white); background: var(--evergreen-950); border-top: 1px solid rgba(255,255,255,.15); box-shadow: 0 -12px 32px rgba(3,20,17,.18); }
.mobile-action-bar a { display: flex; align-items: center; justify-content: center; gap: .55rem; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.mobile-action-bar a + a { color: var(--evergreen-950); background: var(--gold-bright); }
.mobile-action-bar svg { width: 1.05rem; fill: none; stroke: currentColor; stroke-width: 1.5; }

.consent-banner { position: fixed; z-index: 100; right: .85rem; bottom: 4.85rem; left: .85rem; max-height: calc(100vh - 6rem); overflow-y: auto; padding: clamp(1.25rem, 4vw, 2rem); color: rgba(255,255,255,.76); background: var(--evergreen-900); border: 1px solid rgba(223,193,127,.35); box-shadow: var(--shadow-deep); }
.consent-banner h2 { margin-bottom: .65rem; color: var(--white); font-size: clamp(1.5rem, 4vw, 2rem); }
.consent-banner p:last-child { margin-bottom: 0; font-size: .88rem; }
.consent-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.2rem; }

/* Proposal form and simple content pages */
.proposal-layout, .content-layout, .simple-content { display: grid; gap: clamp(2rem, 6vw, 5rem); padding-block: var(--section-space); }
.proposal-layout { align-items: start; }
.proposal-section .proposal-layout { padding-block: 0; }
.simple-hero { padding-block: clamp(5rem, 11vw, 8.5rem); color: var(--white); background: radial-gradient(circle at 82% 28%, rgba(198,161,91,.16), transparent 30%), var(--evergreen-900); }
.simple-hero-inner { max-width: 63rem; margin-inline: auto; }
.simple-hero h1 { max-width: 15ch; margin-bottom: 1rem; color: var(--white); }
.simple-hero-inner > p:last-child { max-width: 43rem; margin-bottom: 0; color: rgba(255,255,255,.75); font-size: clamp(1.05rem,2vw,1.25rem); }
.legal-section { background: var(--paper); }
.prose-narrow { max-width: 49rem; margin-inline: auto; }
.prose-narrow h2 { margin-top: 2.6rem; font-size: clamp(1.65rem,3vw,2.35rem); }
.prose-narrow h2:first-child { margin-top: 0; }
.proposal-intro, .proposal-sidebar, .content-sidebar { color: var(--ink-soft); }
.proposal-intro h2, .proposal-sidebar h2, .content-sidebar h2 { color: var(--evergreen-950); font-size: clamp(1.9rem, 4vw, 3rem); }
.proposal-sidebar, .content-sidebar { padding: 1.5rem; background: var(--cream-200); border-left: 2px solid var(--gold); }
.proposal-sidebar ul, .content-sidebar ul { padding-left: 1.15rem; }
.proposal-aside > h2 { font-size: clamp(2rem,4vw,3.3rem); }
.proposal-steps { margin: 2rem 0; padding: 0; list-style: none; border-top: 1px solid var(--border); }
.proposal-steps li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .8rem; padding-block: 1rem; border-bottom: 1px solid var(--border); }
.proposal-steps li > span { color: var(--gold-deep); font-family: var(--font-serif); font-size: .85rem; }
.proposal-steps strong { display: block; color: var(--evergreen-950); }
.proposal-steps p { margin: .2rem 0 0; color: var(--ink-soft); font-size: .88rem; }
.proposal-contact-card { padding: 1.25rem; color: rgba(255,255,255,.76); background: var(--evergreen-900); border-left: 2px solid var(--gold); }
.proposal-contact-card p { margin-bottom: .25rem; font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.proposal-contact-card a { display: block; color: var(--gold-bright); font-family: var(--font-serif); font-size: 1.65rem; text-decoration: none; }
.proposal-contact-card span { display: block; margin-top: .2rem; font-size: .75rem; }
.form-panel { padding: clamp(1.25rem, 4vw, 2.5rem); background: var(--paper); border: 1px solid var(--border); box-shadow: var(--shadow-soft); }
.form-panel > h2 { font-size: clamp(2rem, 4vw, 3.15rem); }
.form-panel > p { color: var(--ink-soft); }
.proposal-form { margin-top: 0; }
.proposal-form fieldset { margin: 0; padding: 0 0 2.25rem; border: 0; }
.proposal-form fieldset + fieldset { padding-top: 2.25rem; border-top: 1px solid var(--border); }
.proposal-form legend { width: 100%; margin-bottom: 1.4rem; color: var(--evergreen-950); font-family: var(--font-serif); font-size: clamp(1.45rem,3vw,2rem); line-height: 1.2; }
.proposal-form legend span { display: inline-block; margin-right: .7rem; color: var(--gold-deep); font-size: .78rem; vertical-align: middle; }
.form-grid { display: grid; gap: 1.15rem; }
.form-grid-spaced { margin-top: 1.4rem; }
.field { display: grid; min-width: 0; gap: .38rem; }
.field label, .field > span:first-child, .field legend { color: var(--evergreen-950); font-size: .72rem; font-weight: 800; letter-spacing: .07em; line-height: 1.4; text-transform: uppercase; }
.field label em { color: var(--gold-deep); font-size: .61rem; font-style: normal; letter-spacing: .08em; }
.field-label { display: block; }
.field small, .form-help, .form-note { color: var(--ink-soft); font-size: .76rem; }
.field input:not([type="checkbox"]):not([type="radio"]), .field select, .field textarea, .proposal-form > input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  min-height: 3.15rem;
  padding: .7rem .8rem;
  color: var(--ink);
  background: var(--cream-100);
  border: 1px solid rgba(14,49,42,.27);
  border-radius: var(--radius-sm);
  box-shadow: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
.field textarea { min-height: 8.5rem; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--evergreen-700); }
.field input:focus, .field select:focus, .field textarea:focus { outline: 0; background: var(--white); border-color: var(--gold-deep); box-shadow: 0 0 0 3px rgba(198,161,91,.22); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: var(--error); }
.field-error, .error, .form-errors { color: var(--error); font-size: .8rem; font-weight: 700; }
.form-errors, .form-alert, .form-success, .success { margin-bottom: 1.5rem; padding: 1rem 1.15rem; border-left: 3px solid currentColor; }
.form-errors, .form-alert { color: var(--error); background: #fff1f0; }
.form-alert h2 { margin-bottom: .45rem; color: inherit; font-family: var(--font-sans); font-size: 1rem; font-weight: 800; }
.form-alert ul { margin: 0; padding-left: 1.1rem; font-size: .85rem; }
.form-errors ul { margin: 0; padding-left: 1.1rem; }
.form-success, .success { color: var(--success); background: #eef8f1; }
.choice-grid { display: grid; gap: .7rem; }
.choice, .checkbox, .radio { display: flex; align-items: flex-start; gap: .65rem; color: var(--ink-soft); font-size: .9rem; line-height: 1.45; text-transform: none; }
.choice { min-height: 5.25rem; padding: 1rem; background: var(--cream-100); border: 1px solid var(--border); cursor: pointer; }
.choice:has(input:checked) { background: rgba(198,161,91,.1); border-color: var(--gold-deep); }
.choice span { display: grid; gap: .2rem; }
.choice strong { color: var(--evergreen-950); }
.choice small { color: var(--ink-soft); font-size: .76rem; }
.choice input, .checkbox input, .radio input, .checkboxes input { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin: .1rem 0 0; accent-color: var(--evergreen-700); }
.inline-check { display: flex !important; align-items: flex-start; gap: .55rem; margin-top: .55rem; color: var(--ink-soft) !important; font-size: .82rem !important; font-weight: 500 !important; letter-spacing: 0 !important; line-height: 1.45 !important; text-transform: none !important; }
.inline-check input { width: 1.08rem; height: 1.08rem; flex: 0 0 auto; margin: .12rem 0 0; accent-color: var(--evergreen-700); }
.checkbox-grid { display: grid; gap: .55rem 1rem; }
.field-intro { margin: -.6rem 0 1.2rem; color: var(--ink-soft); font-size: .9rem; }
.form-consent { padding-top: 1.4rem; border-top: 1px solid var(--border); }
.form-consent .inline-check { margin: 0; }
.form-consent a { color: var(--evergreen-700); font-weight: 700; }
fieldset.field, .checkboxes { margin: 0; padding: 0; border: 0; }
.checkboxes { display: grid; gap: .65rem 1rem; margin-top: .25rem; }
.checkboxes label { display: flex; align-items: flex-start; gap: .55rem; color: var(--ink-soft); font-size: .88rem; font-weight: 500; letter-spacing: 0; line-height: 1.4; text-transform: none; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.form-actions p { max-width: 19rem; margin: 0; color: var(--ink-soft); font-size: .76rem; }
.form-actions .button { border: 0; }
.honeypot, .hp-field, [data-honeypot] { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.thank-you-section { min-height: 66vh; display: grid; place-items: center; padding-block: var(--section-space); text-align: center; }
.thank-you-inner { display: grid; max-width: 52rem; justify-items: center; }
.thank-you-mark { display: grid; width: 6rem; height: 6rem; margin-bottom: 2rem; place-items: center; color: var(--gold-deep); border: 1px solid var(--gold); border-radius: 50%; }
.thank-you-mark svg { width: 4.2rem; fill: currentColor; }
.thank-you-inner h1 { margin-bottom: 1rem; font-size: clamp(2.75rem,7vw,5.2rem); }
.thank-you-inner > p:not(.eyebrow):not(.thank-you-note) { max-width: 42rem; color: var(--ink-soft); font-size: clamp(1.05rem,2vw,1.25rem); }
.thank-you-inner .button-row { justify-content: center; margin-top: 1.2rem; }
.thank-you-note { margin: 2.5rem 0 0; color: var(--ink-soft); font-size: .85rem; }
.thank-you-note a { color: var(--evergreen-700); font-weight: 800; }

@media (min-width: 34rem) {
  .utility-inner p span:last-child { display: inline; }
  .proof-grid, .form-grid, .checkboxes { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .proof-item:nth-child(n) { border-right: 1px solid rgba(255,255,255,.12); }
  .proof-item:nth-child(even) { border-right: 0; }
  .field-full { grid-column: 1 / -1; }
  .choice-grid-three { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .checkbox-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .editorial-cards, .space-grid, .steps-grid, .gallery-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .gallery-grid figure:nth-child(3n + 1) { grid-column: span 2; }
}

@media (min-width: 48rem) {
  .utility-inner { justify-content: space-between; }
  .utility-actions { display: flex; align-items: center; gap: 1.4rem; }
  .hero-detail { display: flex; }
  .proof-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .proof-item:nth-child(n) { border-right: 1px solid rgba(255,255,255,.12); border-bottom: 0; }
  .proof-item:last-child { border-right: 0; }
  .feature-grid { grid-template-columns: minmax(0,1.08fr) minmax(18rem,.92fr); }
  .section-intro-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
  .section-intro-row > div { max-width: 48rem; }
  .space-grid-full, .steps-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .space-grid-full .space-card:first-child { grid-column: span 2; }
  .location-layout, .list-feature-grid, .faq-layout { grid-template-columns: minmax(16rem,.7fr) minmax(0,1.3fr); }
  .location-copy, .faq-layout > div:first-child { position: sticky; top: calc(var(--header-height) + 2rem); align-self: start; }
  .notice-band .shell { grid-template-columns: auto minmax(0,1fr); gap: 2rem; }
  .cta-inner { grid-template-columns: minmax(0,1fr) auto; }
  .footer-grid { grid-template-columns: minmax(15rem,1.8fr) repeat(3,minmax(8rem,.8fr)); }
  .site-footer { padding-bottom: 3rem; }
  .mobile-action-bar { display: none; }
  .consent-banner { right: 1.5rem; bottom: 1.5rem; left: auto; width: min(34rem, calc(100% - 3rem)); }
  .proposal-layout { grid-template-columns: minmax(16rem,.7fr) minmax(0,1.3fr); }
  .proposal-aside { position: sticky; top: calc(var(--header-height) + 2rem); }
}

@media (min-width: 60rem) {
  :root { --header-height: 5.8rem; }
  body.nav-open { overflow: auto; }
  .nav-toggle, .js .nav-toggle { display: none; }
  .primary-nav, .js .primary-nav, .js .primary-nav.is-open {
    position: static;
    display: flex;
    max-height: none;
    align-items: center;
    gap: clamp(.8rem,2vw,1.7rem);
    overflow: visible;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  .primary-nav > ul { display: flex; align-items: center; gap: clamp(.55rem,1.4vw,1.25rem); margin: 0; }
  .primary-nav > ul > li { position: relative; border: 0; }
  .primary-nav > ul > li > a, .primary-nav summary { min-height: var(--header-height); padding: 0; font-size: clamp(.59rem,.75vw,.69rem); }
  .primary-nav > ul > li > a::after, .primary-nav summary::after { position: absolute; right: 0; bottom: 1.15rem; left: 0; height: 1px; background: var(--gold-deep); content: ""; transform: scaleX(0); transform-origin: right; transition: transform 180ms ease; }
  .primary-nav > ul > li > a:hover::after, .primary-nav > ul > li > a[aria-current="page"]::after, .primary-nav .is-active summary::after { transform: scaleX(1); transform-origin: left; }
  .primary-nav summary svg { width: .72rem; }
  .nav-dropdown { position: absolute; top: calc(100% - .75rem); left: -1.2rem; width: 15rem; padding: .65rem; background: var(--paper); border: 1px solid var(--border); box-shadow: var(--shadow-soft); }
  .nav-dropdown a { padding: .62rem .7rem; font-size: .77rem; }
  .nav-cta { width: auto; white-space: nowrap; }
  .split-grid { grid-template-columns: minmax(18rem,.85fr) minmax(0,1.15fr); }
  .split-reverse .split-copy { order: 2; }
  .split-reverse .split-figure { order: 1; }
  .editorial-cards-3, .editorial-cards-4 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .space-grid:not(.space-grid-full) { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .gallery-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .gallery-grid figure:nth-child(3n + 1) { grid-column: auto; }
  .gallery-grid figure:nth-child(5n + 1) { grid-column: span 2; }
  .gallery-grid figure:nth-child(5n + 1) picture, .gallery-grid figure:nth-child(5n + 1) .responsive-image { aspect-ratio: 2 / 1; }
}

@media (min-width: 76rem) { .editorial-cards-4 { grid-template-columns: repeat(4, minmax(0,1fr)); } }

@media (max-width: 23rem) {
  .brand-copy strong { font-size: 1.27rem; }
  .brand-mark { width: 2.45rem; height: 2.45rem; }
  .button-row .button { width: 100%; }
}

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

@media print {
  .utility-bar, .site-header, .mobile-action-bar, .consent-banner, .site-footer, .button-row { display: none !important; }
  body { color: #000; background: #fff; }
  .page-hero { min-height: 0; padding: 2rem 0; color: #000; background: #fff; }
  .hero-media, .hero-overlay, .hero-detail { display: none; }
  .hero-content { padding: 0; }
  .hero-content h1, .theme-dark h2, .cta-inner h2 { color: #000; }
}
