/* One persistent primary action, independent of the collapsible menu. */
:root{--site-header-height:96px}
html{scroll-padding-top:calc(var(--site-header-height) + 16px)}
.header,.header.scrolled{position:sticky;top:0;z-index:40;height:var(--site-header-height);gap:24px;padding-inline:clamp(20px,4vw,76px);background:#f8f8f5fa;border-bottom:1px solid #b9cfcb;box-shadow:0 6px 24px #102c3912;transition:box-shadow .2s}
.header.scrolled{box-shadow:0 8px 30px #102c3926}
.header .brand-emblem,.header.scrolled .brand-emblem{width:64px;height:64px}
.header nav{margin-left:auto;gap:clamp(16px,1.7vw,28px)}
.header nav>a{white-space:nowrap;font-size:14px}
.header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.header .header-apply{min-width:164px;min-height:56px;justify-content:center;gap:15px;padding:14px 24px;border:1px solid #163e4b;border-radius:12px;background:linear-gradient(115deg,#105a60,#343b70);color:#fff;font:800 18px/1.2 'Nunito',sans-serif;white-space:nowrap;box-shadow:0 4px 0 #102c39,0 9px 20px #16475124;transition:background .2s,box-shadow .2s}
/* Keep the target stationary; movement should never make Apply harder to hit. */
.header .header-apply:hover,.header .header-apply:active{transform:none;background:linear-gradient(115deg,#12464f,#282f5c);box-shadow:0 4px 0 #102c39,0 8px 24px #16475140}
.header .header-apply:before,.header .header-apply:after{display:none}
.header .header-apply:hover span{transform:none}
.header .header-apply:focus-visible{outline:3px solid #105a60;outline-offset:5px;box-shadow:0 0 0 3px #fff}
.header .menu-toggle{display:none}
.journey-panel{top:var(--site-header-height);height:calc(100dvh - var(--site-header-height))}
.journey-scrim{top:var(--site-header-height)}
.flow-extension[id],.flow-chapter[id],.chapter-index[id],.flow-content .property-story[id]{scroll-margin-top:16px}

@media(max-width:1200px){
  :root{--site-header-height:80px}
  .header,.header.scrolled{gap:16px;padding-inline:4%}
  .header .brand-emblem,.header.scrolled .brand-emblem{width:56px;height:56px}
  .header-actions{margin-left:auto}
  .header .menu-toggle{display:flex;align-items:center;justify-content:center;gap:8px;min-width:48px;min-height:48px;padding:10px 12px;color:#123d49;border:1px solid #93afad;border-radius:10px;background:#fff;font:800 15px/1 'Nunito',sans-serif}
  .header .menu-toggle[aria-expanded=true]{background:#e0eeeb;border-color:#235960}
  .header nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:18px 4%;background:#f8f8f5;box-shadow:0 16px 24px #102c3926;flex-direction:column;align-items:stretch;gap:4px;max-height:calc(100dvh - var(--site-header-height));overflow-y:auto;overscroll-behavior:contain}
  .header nav.open{display:flex}
  .header nav>a:not(.button){min-height:48px;display:flex;align-items:center;padding:12px 14px;font-size:17px;border-radius:8px}
  .header nav>a:hover{background:#e0eeeb}
  .header nav>a:after{display:none}
}
@media(max-width:600px){
  :root{--site-header-height:76px}
  .header,.header.scrolled{gap:8px;padding-inline:12px}
  .header .brand-lockup{gap:7px}
  .header .brand-emblem,.header.scrolled .brand-emblem{width:40px;height:40px}
  .header .brand-name{font-size:19px;letter-spacing:.035em}
  .header .brand-residences{font-size:9px;letter-spacing:.22em}
  .header .brand-wordmark{gap:6px}
  .header-actions{gap:8px}
  .header .header-apply{min-width:112px;min-height:48px;padding:12px 14px;font-size:16px;gap:0;border-radius:10px}
  .header .header-apply>span,.header .menu-label{display:none}
  .header .menu-toggle{min-width:44px;min-height:48px;padding:10px}
}
@media(max-width:360px){
  .header,.header.scrolled{padding-inline:8px;gap:6px}
  .header-actions{gap:6px}
  .header .brand-lockup{gap:5px}
  .header .brand-name{font-size:16px}
  .header .brand-emblem,.header.scrolled .brand-emblem{width:32px;height:32px}
  .header .brand-residences{font-size:8px}
  .header .header-apply{min-width:104px;padding-inline:10px}
}
@media(prefers-reduced-motion:reduce){.header .header-apply{transition:none}}

/* Text-only wayfinding: no decorative arrows or empty icon slots. */
.journey-controls a{font-size:14px;min-width:68px;padding-inline:5px}
.journey-top{font-size:14px;min-height:48px}
.journey-panel-links a{grid-template-columns:35px 1fr}
.journey-panel-links a::after{content:none;display:none}
.difference-points article{grid-template-columns:1fr}
@media(min-width:1051px){.journey-controls a{font-size:15px}.journey-top{font-size:16px}}
@media(max-width:560px){.journey-top{font-size:13px;padding:16px 12px}.journey-controls a{min-width:66px;font-size:13px}.journey-index-toggle{padding-inline:12px}}
