/* Gen6 Slice 2: the filmed opening and the canonical place explorer. */
.home.gen6 .g6-header { position: fixed; left: 0; right: 0; }
.home.gen6 .g6-header[data-over-video="true"]:not(.is-scrolled) { background: transparent; border-color: transparent; }
.g6-header[data-over-video="true"]:not(.is-scrolled) :is(.g6-primary>a,.g6-areas>summary,.g6-phone,.g6-menu-trigger,.g6-mobile-fallback>summary) { color: var(--g6-paper); }
.g6-header[data-over-video="true"]:not(.is-scrolled) .g6-brand img { filter: brightness(0) invert(1); }
.g6-header[data-over-video="true"]:not(.is-scrolled) .g6-menu-trigger { border-color: rgba(250,251,252,.4); }
.g6-header .g6-area-panel { color: var(--g6-ink); }
.g6-hero { position: relative; min-height: 900px; height: 100svh; isolation: isolate; background: var(--g6-ink); color: var(--g6-paper); }
.g6-hero-poster,.g6-hero-video,.g6-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.g6-hero-poster img,.g6-hero-video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.g6-hero-video { opacity: 0; transition: opacity 300ms ease-out; }
.g6-hero-video.is-playing { opacity: 1; }
.g6-hero-shade { background: linear-gradient(180deg,rgba(22,40,62,.55),rgba(22,40,62,.08) 32%,rgba(22,40,62,.72)),linear-gradient(90deg,rgba(22,40,62,.48),rgba(22,40,62,0) 85%); }
.g6-hero-copy { position: absolute; left: max(40px,6.6667vw); bottom: 136px; width: min(760px,calc(100% - 80px)); }
.g6-hero-eyebrow { margin: 0 0 24px; font: 600 12px/1.6 var(--g6-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--g6-paper); }
.home.gen6 .g6-hero h1 { margin: 0 0 24px; font-family: var(--g6-display); font-size: 84px; font-weight: 500; line-height: .98; letter-spacing: -.025em; color: var(--g6-paper); text-wrap: balance; }
.home.gen6 .g6-hero h1 em { color: inherit; font-weight: 500; }
.g6-hero-lede { max-width: 620px; margin: 0 0 28px; font: 400 20px/1.4 var(--g6-ui); color: var(--g6-paper); }
.g6-hero-actions { display: flex; gap: 16px; }
.g6-hero-actions a { min-height: 52px; min-width: 178px; padding: 14px 26px; border: 1px solid var(--g6-paper); border-radius: 999px; font: 600 15px/1.5 var(--g6-ui); text-align: center; display: inline-flex; justify-content: center; align-items: center; }
.g6-hero-primary { background: var(--g6-paper); color: var(--g6-ink); }
.g6-hero-secondary { color: var(--g6-paper); background: transparent; }
.g6-hero-actions a:hover { background: var(--g6-mist); color: var(--g6-ink); }
.g6-youtube { display: inline-flex; gap: 10px; align-items: center; min-height: 44px; margin-top: 12px; font-size: 14px; color: var(--g6-paper); }
.g6-youtube:hover { text-decoration: underline; text-underline-offset: 5px; }
.g6-down { position: absolute; bottom: 32px; left: calc(50% - 22px); width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; color: var(--g6-paper); border: 1px solid rgba(250,251,252,.45); border-radius: 50%; }
.g6-down svg { animation: g6-nudge 1.6s ease-in-out infinite; }
@keyframes g6-nudge { 50% { transform: translateY(5px); } }
.g6-video-toggle { position: absolute; bottom: 32px; right: 40px; color: var(--g6-paper); font-size: 12px; min-height: 44px; padding: 10px 14px; border: 1px solid rgba(250,251,252,.4); border-radius: 999px; background: rgba(22,40,62,.3); }
.g6-video-toggle[hidden] { display: none; }
.g6-hero :is(a,button):focus-visible { outline-color: var(--g6-paper); }
.g6-coast { position: relative; height: 300svh; min-height: 2400px; background: var(--g6-mist); }
.g6-coast-stage { position: sticky; top: var(--g6-header-h); height: calc(100svh - var(--g6-header-h)); min-height: 600px; overflow: clip; isolation: isolate; }
.g6-coast-map,.g6-coast-poster { position: absolute; inset: 0; height: 100%; width: 100%; background: var(--g6-mist); }
.g6-coast-poster img { width: 100%; height: 100%; object-fit: cover; }
.g6-coast-map { z-index: 1; opacity: 0; transition: opacity 200ms; }
.g6-coast.is-ready .g6-coast-map { opacity: 1; }
.g6-coast.is-ready .g6-coast-poster { visibility: hidden; }
.g6-coast-map.leaflet-container { font-family: var(--g6-ui); background: var(--g6-mist); }
.g6-coast-rail { position: absolute; left: 40px; top: 50%; transform: translateY(-50%); width: 400px; max-height: calc(100% - 80px); overflow: auto; z-index: 500; padding: 28px; background: var(--g6-paper); border: 1px solid var(--g6-line); border-radius: 20px; box-shadow: var(--g6-floating-shadow); scrollbar-width: thin; }
.home.gen6 .g6-coast-rail h2 { font-size: 42px; line-height: 1.06; letter-spacing: -.025em; margin: 20px 0 14px; color: var(--g6-ink); }
.g6-coast-intro { font-size: 15px; line-height: 1.6; margin: 0 0 16px; color: var(--g6-ink); }
.g6-coast-levels { display: flex; gap: 16px; border-bottom: 1px solid var(--g6-line); }
.g6-coast-levels button { min-height: 44px; padding-bottom: 8px; font-size: 12px; color: var(--g6-slate); border-bottom: 2px solid transparent; }
.g6-coast-levels button[aria-current="step"] { color: var(--g6-ink); border-bottom-color: var(--g6-live-teal); }
.g6-coast button:disabled { cursor: default; opacity: .6; }
.g6-coast-back { font-size: 12px; min-height: 44px; padding: 6px 0; color: var(--g6-channel); }
.g6-coast-options { display: flex; flex-direction: column; }
.g6-coast-options[hidden] { display: none; }
.g6-coast-options button { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 48px; padding: 10px 0; text-align: left; border-bottom: 1px solid var(--g6-line); color: var(--g6-ink); font-size: 15px; font-weight: 600; }
.g6-coast-options button span { font-weight: 400; color: var(--g6-channel); }
.g6-coast-options button[aria-pressed="true"] { color: var(--g6-channel); }
.g6-coast-options button:hover:not(:disabled) { color: var(--g6-channel); }
.g6-coast-hint { font-size: 12px; line-height: 1.55; color: var(--g6-slate); margin: 20px 0 0; }
.g6-coast-caption { position: absolute; bottom: 22px; right: 32px; z-index: 450; margin: 0; color: var(--g6-slate); font-size: 11px; }
.g6-map-label { border: none; background: none; width: 0 !important; height: 0 !important; }
.g6-map-label button { position: absolute; transform: translate(-50%,-50%); white-space: nowrap; border: 1px solid var(--g6-line); border-radius: 6px; background: rgba(250,251,252,.95); padding: 7px 12px; min-height: 44px; color: var(--g6-ink); font: italic 500 26px/1.1 var(--g6-display); box-shadow: 0 2px 8px rgba(22,40,62,.05); }
.g6-map-label.city button { padding: 5px 8px; font: 600 13px/1.15 var(--g6-ui); }
.g6-map-label button:hover,.g6-map-label button[aria-pressed="true"] { border-color: var(--g6-channel); color: var(--g6-channel); }
.g6-city-count { font: 600 17px/1.5 var(--g6-ui); margin: 16px 0 12px; }
.g6-city-count:has(span:empty) { display: none; }
.g6-city-guide,.g6-city-homes { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-weight: 600; font-size: 14px; }
.g6-city-guide { padding: 12px 18px; background: var(--g6-ink); color: var(--g6-paper); border-radius: 999px; }
.g6-city-guide[hidden],.g6-city-card[hidden],.g6-city-planned[hidden],.g6-coast-back[hidden] { display: none; }
.g6-city-homes { color: var(--g6-channel); text-decoration: underline; text-underline-offset: 4px; }
.g6-city-planned { color: var(--g6-slate); font-size: 11px; margin-top: 8px; }
.g6-coast-nojs { position: relative; padding: 40px; background: var(--g6-paper); z-index: 600; }
.g6-coast-nojs .g6-area-tree { display: block; }
.g6-coast.is-reduced { height: auto; min-height: 0; }
.g6-coast.is-reduced .g6-coast-stage { position: relative; top: 0; height: 828px; }
@media(max-width:1179px) {
 .home.gen6 .g6-hero h1 { font-size: clamp(54px,7vw,76px); }
 .g6-coast-rail { width: 340px; left: 24px; padding: 24px; }
}
@media(max-width:600px) {
 .g6-hero { height: 100svh; min-height: 844px; }
 .g6-hero-copy { left: 24px; width: calc(100% - 48px); bottom: 98px; text-align: center; }
 .g6-hero-eyebrow { font-size: 12px; line-height: 1.5; margin-bottom: 16px; letter-spacing: .12em; }
 .home.gen6 .g6-hero h1 { font-size: 44px; line-height: 1.02; letter-spacing: -.025em; margin-bottom: 18px; }
 .g6-hero-lede { font-size: 17px; line-height: 1.4; margin-bottom: 22px; }
 .g6-hero-actions { flex-direction: column; gap: 12px; }
 .g6-hero-actions a { min-height: 52px; width: 100%; }
 .g6-youtube { margin-top: 8px; font-size: 13px; min-height: 44px; }
 .g6-down { bottom: 24px; }
 .g6-video-toggle { bottom: 24px; right: 16px; font-size: 10px; padding: 8px 10px; }
 .g6-hero-shade { background: linear-gradient(180deg,rgba(22,40,62,.55),rgba(22,40,62,.35) 22%,rgba(22,40,62,.86) 70%,rgba(22,40,62,.9)); }
 .g6-coast { height: 260svh; min-height: 2000px; }
 .g6-coast-stage { min-height: 650px; }
 .g6-coast-rail { left: 12px; right: 12px; top: auto; bottom: 16px; width: auto; max-height: 38svh; padding: 16px 20px; transform: none; border-radius: 18px; }
 .home.gen6 .g6-coast-rail h2 { font-size: 32px; margin: 12px 0 8px; }
 .g6-coast-intro { font-size: 13px; line-height: 1.5; margin-bottom: 10px; }
 .g6-coast-levels { gap: 20px; }
 .g6-coast-levels button { min-height: 44px; min-width: 44px; }
 .g6-coast-options button { min-height: 44px; font-size: 14px; }
 .g6-coast-hint { display: none; }
 .g6-coast-caption { bottom: auto; top: 16px; right: 16px; font-size: 9px; }
 .g6-map-label button { font-size: 20px; padding: 6px 8px; }
 .g6-map-label.city button { font-size: 10px; padding: 5px 6px; }
 .g6-city-count { font-size: 15px; margin: 10px 0; }
 .g6-coast.is-reduced .g6-coast-stage { height: 784px; }
}
@media(prefers-reduced-motion:reduce) {
 .g6-hero-video,.g6-video-toggle { display: none !important; }
 .g6-down svg { animation: none; }
 .g6-coast-map { transition: none; }
}
@media print {
 .g6-hero { min-height: 0; height: 680px; break-inside: avoid; }
 .g6-hero-video,.g6-video-toggle,.g6-down { display: none !important; }
 .g6-hero-copy { bottom: 40px; left: 32px; width: calc(100% - 64px); }
 .home.gen6 .g6-hero h1 { font-size: 54px; }
 .g6-hero-lede { font-size: 17px; }
 .g6-coast { height: 700px; min-height: 0; break-inside: avoid; }
 .g6-coast-stage { position: relative; top: 0; height: 700px; min-height: 0; }
 .g6-coast-rail { left: 20px; width: 300px; max-height: calc(100% - 40px); padding: 20px; }
 .g6-coast-levels,.g6-coast-hint { display: none; }
 .g6-coast.is-ready .g6-coast-poster { visibility: visible; z-index: 2; }
 .g6-coast-map { visibility: hidden; }
}
/* Static views reuse the rendered map assets, without camera motion. */
.g6-coast-static { display: none; gap: 1px; background: var(--g6-line); }
.g6-static-frame { position: relative; min-height: 700px; background: var(--g6-mist); overflow: clip; }
.g6-static-frame picture { position: absolute; inset: 0; }
.g6-static-frame picture img { width: 100%; height: 100%; object-fit: cover; }
.g6-static-copy { position: relative; margin: 48px 40px; width: 400px; padding: 28px; border-radius: 20px; border: 1px solid var(--g6-line); background: var(--g6-paper); }
.home.gen6 .g6-static-copy h2 { font-size: 42px; line-height: 1.06; margin: 0 0 16px; }
.g6-static-copy p { font-size: 15px; line-height: 1.6; margin: 0 0 16px; }
.g6-static-copy .g6-area-tree { display: block; }
.g6-static-links { display: grid; }
.g6-static-links a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; font-size: 14px; color: var(--g6-channel); border-bottom: 1px solid var(--g6-line); }
.g6-static-count:empty { display: none; }
@media(prefers-reduced-motion:reduce) {
 .g6-coast { height: auto !important; min-height: 0 !important; }
 .g6-coast-stage { display: none; }
 .g6-coast-static { display: grid; }
}
@media(max-width:600px) {
 .g6-static-frame { min-height: 784px; padding-top: 400px; }
 .g6-static-copy { margin: 12px; width: auto; padding: 20px; }
 .home.gen6 .g6-static-copy h2 { font-size: 32px; }
 .g6-static-copy p { font-size: 14px; }
 .g6-static-frame picture { height: 784px; }
}

.g6-coast.is-failed .g6-coast-stage { display: none; }
.g6-coast.is-failed .g6-coast-static { display: grid; }
.g6-static-frame picture img { object-fit: contain; }
.g6-map-label .g6-city-name { position: absolute; transform: translate(-50%,-50%); width: max-content; max-width: 72px; padding: 4px 6px; text-align: center; border-radius: 4px; background: rgba(250,251,252,.95); color: var(--g6-ink); font: 600 10px/1.15 var(--g6-ui); pointer-events: none; }

@media print { .g6-coast-poster img { object-fit: contain; } }

/* R5: one sourced dataset object, without altering the accepted hero composition. */
.g6-hero-fact { display:none; }
@media(min-width:1280px) {
 .g6-hero-fact { display:flex; position:absolute; right:6.6667vw; bottom:136px; width:320px; min-height:136px; flex-direction:column; justify-content:center; gap:12px; padding:20px 24px; color:var(--g6-ink); background:var(--g6-paper); border:1px solid var(--g6-line); border-radius:18px; box-shadow:var(--g6-floating-shadow); }
 .g6-hero-fact-kicker { font:600 12px/1.4 var(--g6-ui); color:var(--g6-slate); }
 .g6-hero-fact strong { font:500 27px/1.12 var(--g6-display); white-space:nowrap; }
 .g6-hero-fact strong span { color:var(--g6-slate); }
 .g6-hero-fact-link { font:600 12px/1.5 var(--g6-ui); color:var(--g6-channel); display:flex; justify-content:space-between; }
 .g6-hero-fact:hover { border-color:var(--g6-channel); }
 .g6-hero .g6-hero-fact:focus-visible { outline-color:var(--g6-channel); }
}
@media print { .g6-hero-fact { display:none; } }

/* 2026-09-22 booking-first hero: selling + YouTube are quiet text links under
   the two buttons, so "Book a call" is the single dominant action. */
.g6-hero-links { display: flex; flex-wrap: wrap; gap: 4px 26px; margin: 12px 0 0; }
.g6-hero-links .g6-youtube { margin-top: 0; }
@media (max-width: 700px) {
  .g6-hero-links { justify-content: center; gap: 0 20px; margin-top: 6px; }
}
