/* Home only: 40/60 desktop, a 35/65 text/map stack on phones. */
:root { --home-hero-height: 100vh; }
@supports (height: 100svh) { :root { --home-hero-height: 100svh; } }
.home-page { max-width: none; border-inline: 0; }
.home-page .site-header { position: absolute; inset: 0 0 auto; min-height: 6.5rem; background: linear-gradient(90deg, rgb(22 32 28 / 45%) 40%, rgb(245 244 240 / 96%) 40%); border-bottom: 1px solid rgb(167 177 167 / 55%); }
.home-page .brand { color: var(--paper); }
.home-page .brand img { mix-blend-mode: normal; }
.home-page .site-header__place { display: none; }
.home-page .site-nav { gap: clamp(1rem, 2vw, 2.4rem); }
.home-opening { position: relative; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 0; padding: 0; height: var(--home-hero-height); background: var(--ink); }
.home-opening > * { min-width: 0; min-height: 0; }
.home-opening__copy { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: safe flex-end; align-items: flex-start; padding: 8rem var(--gutter) max(2rem, calc(var(--home-hero-height) * .055)); overflow: auto; color: var(--paper); }
.home-opening__backdrop { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 24% 50%; }
.home-opening__copy::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgb(22 30 27 / 24%), rgb(22 30 27 / 42%) 28%, rgb(17 28 24 / 88%) 74%, #14221d); }
.home-opening__copy > .eyebrow { color: #e1dfcf; font-size: clamp(.65rem, .7vw, .8rem); flex-shrink: 0; }
.home-opening h1 { margin: clamp(1.1rem, 2.5vh, 2.1rem) 0 clamp(1.15rem, 2.4vh, 2rem); font-size: min(4.9vw, calc(var(--home-hero-height) * .105), 6.2rem); line-height: 1.08; letter-spacing: -.025em; text-wrap: initial; flex-shrink: 0; }
.home-opening h1 > span { display: block; }
.home-opening h1 > .home-opening__emphasis { padding-left: 0; color: inherit; }
.home-opening__intro { max-width: 33rem; font-size: clamp(.85rem, 1vw, 1.15rem); line-height: 1.65; text-wrap: pretty; flex-shrink: 0; }
.home-opening__actions { display: flex; margin: clamp(1.25rem, 3vh, 2.5rem) 0 0; width: min(100%, 29rem); flex-shrink: 0; }
.home-opening__primary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; min-height: 2.8rem; padding: .65rem 0; border: 0; border-bottom: 1px solid #a4aea1; background: transparent; color: inherit; text-decoration: none; font-size: .85rem; line-height: 1.4; }
.home-opening__primary:hover, .home-opening__primary:active { background: transparent; border-color: var(--paper); }
.home-opening__primary:hover { text-decoration: underline; }
.home-opening__primary > span { font-size: 1.3rem; -webkit-text-stroke: 0; }
.home-map { position: relative; isolation: isolate; overflow: hidden; background: #f1f2ed; color: var(--ink); }
.home-map__drawing { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.home-map::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, transparent 62%, rgb(241 242 237 / 75%) 83%, var(--paper)); }
.home-map__pin { position: absolute; z-index: 2; left: 50%; top: 50%; display: flex; flex-direction: column; align-items: center; width: max-content; max-width: 90%; transform: translate(-50%, -100%); text-align: center; text-decoration: none; }
.home-map__pin-label { padding: .9rem 1.45rem; background: var(--petrol); color: var(--paper); font: 470 clamp(1.4rem, 1.8vw, 2.15rem)/1.15 var(--display); -webkit-text-stroke: var(--stroke-display) currentColor; }
.home-map__pin-label::after { content: ''; position: absolute; left: 50%; bottom: .5rem; width: 1px; height: 2.2rem; background: var(--petrol); }
.home-map__pin-dot { width: 1rem; height: 1rem; margin-top: 1.5rem; margin-bottom: -.5rem; border: 3px solid var(--paper); border-radius: 50%; background: var(--petrol); box-shadow: 0 0 0 9px rgb(23 60 56 / 14%); }
.home-map__pin:hover .home-map__pin-label { background: var(--petrol-hover); }
.home-map__north { position: absolute; z-index: 2; top: 8.5rem; right: var(--gutter); display: grid; justify-items: center; font-size: 1.8rem; line-height: 1; -webkit-text-stroke: 0; }
.home-map__north > span { margin-top: .5rem; font-size: .7rem; }
.home-map .home-map__caption { position: absolute; z-index: 2; inset: auto var(--gutter) max(2.5rem, calc(var(--home-hero-height) * .055)); display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 1rem 1.5rem; padding: 0; border: 0; }
.home-map__caption .eyebrow { font-size: .65rem; margin-bottom: .7rem; }
.home-map__address { font: 470 clamp(2.5rem, 4vw, 4.8rem)/1.1 var(--display); -webkit-text-stroke: var(--stroke-display) currentColor; letter-spacing: -.02em; }
.home-map__building { margin-top: .35rem; font-size: .8rem; }
.home-map__directions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 2.75rem; padding-block: .6rem; border-bottom: 1px solid var(--ink); font-size: .75rem; text-decoration: none; }
.home-map__directions > [aria-hidden] { font-size: 1.3rem; -webkit-text-stroke: 0; }
.home-map__directions:hover { text-decoration: underline; }
.home-map__credit { position: absolute; z-index: 3; right: .7rem; bottom: .25rem; padding: .4rem; background: var(--paper); font: 400 .6rem/1.3 var(--body); -webkit-text-stroke: 0; }
@media (max-width: 999px) {
  .home-page .site-header { min-height: 6rem; }
  .home-page .site-nav { gap: .9rem; }
  .home-page .site-nav a { font-size: .69rem; }
  .home-page .brand { gap: .6rem; }
  .home-page .brand img { width: 3rem; height: 3rem; }
  .home-page .brand__name { font-size: 1.2rem; }
  .home-page .brand__name > span:first-child { font-size: .9rem; }
  .home-opening__copy { padding-top: 7rem; }
  .home-opening__intro { font-size: .85rem; }
  .home-opening__intro br { display: none; }
  .home-opening__primary { font-size: .74rem; }
  .home-map__north { top: 7.5rem; }
}
@media (max-width: 759px) {
  .home-page { --home-header-height: calc(4rem + env(safe-area-inset-top)); }
  .home-page .site-header { min-height: var(--home-header-height); padding-top: calc(.5rem + env(safe-area-inset-top)); padding-bottom: .5rem; padding-left: max(var(--gutter), env(safe-area-inset-left)); padding-right: max(var(--gutter), env(safe-area-inset-right)); background: rgb(20 34 29 / 96%); color: var(--paper); }
  .home-page .site-header.navigation-ready { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; height: var(--home-header-height); }
  .home-page .brand { min-width: 0; flex-shrink: 1; gap: .5rem; }
  .home-page .brand img { width: 2.5rem; height: 2.5rem; flex-shrink: 0; }
  .home-page .brand__name { min-width: 0; font-size: clamp(.95rem, 4vw, 1.18rem); }
  .home-page .brand__name > span:first-child { font-size: .78em; }
  .home-page .nav-toggle { margin: 0; flex-shrink: 0; padding-inline: 0; gap: .6rem; font-size: .72rem; }
  .home-page .site-nav { background: #14221d; border-color: var(--light-rule); }
  /* Disclosure is out of flow: opening it cannot grow the header/hero.
     Inset bounds use the header width, never 100vw (which includes scrollbars). */
  .home-page .navigation-ready .site-nav { position: absolute; inset: 100% 0 auto; width: auto; min-width: 0; margin: 0; padding: .5rem max(var(--gutter), env(safe-area-inset-right)) 1rem max(var(--gutter), env(safe-area-inset-left)); max-height: calc(100svh - var(--home-header-height)); overflow-y: auto; overscroll-behavior: contain; border-bottom: 1px solid #67746a; }
  .home-page .site-nav a { min-width: 0; font-size: 1rem; line-height: 1.5; overflow-wrap: anywhere; }
  .home-page .site-nav a > span { flex-shrink: 0; }
  .home-page .site-nav a + a { border-color: #67746a; }
  .home-opening { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 7fr) minmax(0, 13fr); }
  .home-opening__copy { padding: calc(var(--home-header-height) + .5rem) max(var(--gutter), env(safe-area-inset-right)) .5rem max(var(--gutter), env(safe-area-inset-left)); }
  .home-opening__backdrop { object-position: 25% 35%; }
  .home-opening h1 { font-size: min(10.7vw, max(1.5rem, calc(var(--home-hero-height) * .039)), 4.2rem); margin: .25rem 0; line-height: 1.07; }
  /* Keep the compact opening focused on its heading and route into the page. */
  .home-opening__copy > .eyebrow, .home-opening__intro { display: none; }
  .home-opening__actions { width: 100%; max-width: 29rem; margin-top: 0; }
  .home-opening__primary { font-size: .76rem; }
  .home-map__drawing { object-position: 50% 50%; }
  .home-map__pin { left: 67%; }
  /* The map image is shifted to keep the pin on the same mapped coordinate. */
  .home-map__drawing { width: 134%; max-width: none; }
  .home-map__pin-label { font-size: 1.2rem; padding: .6rem .85rem; }
  .home-map__pin-dot { margin-top: .8rem; }
  .home-map__pin-label::after { height: 1.5rem; }
  .home-map__north { top: .8rem; right: 1rem; font-size: 1.3rem; }
  .home-map__north > span { font-size: .6rem; margin-top: .2rem; }
  .home-map .home-map__caption { left: var(--gutter); right: auto; bottom: max(1.9rem, env(safe-area-inset-bottom)); display: block; max-width: 49%; }
  .home-map__caption .eyebrow { margin-bottom: .25rem; font-size: .56rem; }
  .home-map__address { font-size: clamp(1.9rem, 6.5vw, 2.8rem); }
  .home-map__building { font-size: .67rem; margin-top: .2rem; }
  .home-map__directions { gap: .5rem; min-height: 2.75rem; padding: .4rem 0; font-size: .64rem; }
  .home-map__credit { font-size: .55rem; bottom: max(.1rem, env(safe-area-inset-bottom)); }
}
@media (max-height: 520px) and (min-width: 760px) {
  .home-page .site-header { min-height: 4rem; padding-block: .4rem; }
  .home-page .brand img { width: 2.8rem; height: 2.8rem; }
  .home-page .brand__name { font-size: 1.15rem; }
  .home-page .brand__name > span:first-child { font-size: .85rem; }
  .home-opening { grid-template-rows: minmax(0, 1fr); }
  .home-opening__copy { padding-top: 5rem; padding-bottom: 1.2rem; }
  .home-opening h1 { font-size: min(4.9vw, calc(var(--home-hero-height) * .115)); margin: .7rem 0; }
  .home-opening__copy > .eyebrow, .home-opening__intro { display: none; }
  .home-opening__actions { margin-top: .4rem; }
  .home-map__drawing { left: 0; width: 100%; }
  .home-map__pin { left: 50%; top: 52%; }
  .home-map__pin-label { font-size: 1.3rem; padding: .5rem .8rem; }
  .home-map__north { top: 5rem; }
  .home-map .home-map__caption { inset: auto 1.5rem 1.6rem; max-width: none; display: flex; gap: .5rem; }
  .home-map__caption .eyebrow { display: none; }
  .home-map__address { font-size: 2rem; }
  .home-map__building, .home-map__directions { font-size: .65rem; }
}
/* Without scripts the full navigation stays visible; let it precede the hero. */
.home-page .site-header:not(.navigation-ready) { position: relative; background: var(--ink); color: var(--paper); }
@media (prefers-reduced-motion: no-preference) {
  .home-map__pin-label { transition: background-color 180ms ease-out; }
}
