/* 2026-09-22 final rebuild: homepage composition.
   Estate Vida floor: inset rounded page frame, chapter surfaces, grouped real objects.
   Rhythm: framed film hero -> editorial team pairing -> panoramic explorer -> real homes -> proof/sell/library -> close.
   Tokens: gen6.css (paper/mist/ink/channel). No gold. Tested text pairs only. */

/* ---------- Header sits on paper, above the framed hero (no over-video) ---------- */
.home.gen6 .g6-header { position: sticky; background: var(--g6-paper); }

/* ---------- A. Hero: inset frame, type-left / film-right ---------- */
.home.gen6 .g6-hero {
  --inset: clamp(8px, 1.4vw, 20px);
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  gap: clamp(24px, 3vw, 48px); align-items: stretch;
  height: auto; min-height: calc(100svh - var(--g6-header-h)); max-height: 940px;
  margin: 0 var(--inset) var(--inset); padding: 0;
  background: var(--g6-ink); color: var(--g6-paper); border-radius: 26px; overflow: hidden; isolation: isolate;
}
.home.gen6 .g6-hero-media { position: relative; order: 2; margin: 14px 14px 14px 0; border-radius: 18px; overflow: hidden; min-height: 520px; }
.home.gen6 .g6-hero-media .g6-hero-poster img, .home.gen6 .g6-hero-video { object-position: 44% 12%; }
.home.gen6 .g6-hero-shade { background: linear-gradient(180deg, rgba(22,40,62,0) 60%, rgba(22,40,62,.45)); }
.home.gen6 .g6-hero-copy {
  position: relative; order: 1; left: auto; bottom: auto; width: auto;
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(40px, 5vw, 88px) 0 clamp(40px, 5vw, 72px) clamp(28px, 4.2vw, 72px);
}
.home.gen6 .g6-hero h1 { font-size: clamp(48px, 4.9vw, 76px); line-height: 1.0; margin-bottom: 26px; }
.home.gen6 .g6-hero-lede { font-size: 18px; line-height: 1.55; max-width: 520px; color: rgba(250,251,252,.92); }
.home.gen6 .g6-hero-actions a { min-width: 0; }
.home.gen6 .g6-hero-primary { padding-inline: 34px; font-size: 16px; }
.home.gen6 .g6-hero-fact { position: absolute; z-index: 3; right: 30px; bottom: 30px; left: auto; top: auto; }
.home.gen6 .g6-video-toggle { left: 30px; right: auto; bottom: 30px; }
.home.gen6 .g6-down { display: none; }
.home.gen6 .g6-video-toggle { z-index: 3; }

/* ---------- B. Team: editorial pairing, the conversion chapter ---------- */
.g6-team { padding: clamp(56px, 7vw, 104px) 0 clamp(40px, 5vw, 72px); background: var(--g6-paper); }
.g6-team-frame {
  width: min(100% - 48px, 1320px); margin-inline: auto;
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); align-items: center;
}
.g6-team-photo { margin: 0; border-radius: 22px; overflow: hidden; aspect-ratio: 16 / 10; background: var(--g6-mist); }
.g6-team-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; }
.g6-team-copy h2 { font-size: clamp(38px, 3.6vw, 54px); line-height: 1.05; margin: 0 0 28px; color: var(--g6-ink); }
.g6-team-copy .g6-eyebrow { color: var(--g6-slate); }
.g6-team-promise { list-style: none; margin: 0 0 32px; padding: 0; display: grid; gap: 18px; counter-reset: p; }
.g6-team-promise li { display: grid; grid-template-columns: 36px 1fr; gap: 4px 14px; counter-increment: p; }
.g6-team-promise li::before { content: counter(p); grid-row: span 2; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--g6-mist); color: var(--g6-ink); font: 600 14px/1 var(--g6-ui); }
.g6-team-promise strong { font: 600 17px/1.4 var(--g6-ui); color: var(--g6-ink); }
.g6-team-promise span { font: 400 16px/1.55 var(--g6-ui); color: var(--g6-ink); opacity: .82; }
.g6-team-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.g6-action-lg { min-height: 54px; padding: 14px 30px; font-size: 16px; }
.g6-team-roster { width: min(100% - 48px, 1320px); margin: clamp(40px, 5vw, 64px) auto 0; padding-top: 28px; border-top: 1px solid var(--g6-line); }
.g6-team-roster-label { font: 600 13px/1.5 var(--g6-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--g6-slate); margin: 0 0 16px; }
.g6-team-roster ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 16px; }
.g6-team-roster a { display: flex; align-items: center; gap: 12px; min-height: 72px; padding: 8px 10px; border-radius: 14px; color: var(--g6-ink); text-decoration: none; transition: background var(--g6-motion); }
.g6-team-roster a:hover, .g6-team-roster a:focus-visible { background: var(--g6-mist); }
.g6-team-roster img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: none; }
.g6-team-roster strong { display: block; font: 600 14px/1.3 var(--g6-ui); }
.g6-team-roster small { display: block; font: 500 12px/1.4 var(--g6-ui); color: var(--g6-channel); }
.g6-team-broker { margin: 18px 0 0; font-size: 13px; color: var(--g6-slate); }

/* ---------- C. Explorer: full-bleed stage (2026-10-12 director SPEC_HOME_OPENING s3) ----------
   The stage spans the viewport. Desktop: the copy is a paper card over the stage, top-left, set just below the
   current engine's control row so it never covers the county/city/quadrant switches. Phone: copy above the stage. */
.g6-explorer { padding: 0; background: #EEF3F7; }
.g6-explorer-frame { position: relative; background: #EEF3F7; border-radius: 0; overflow: hidden; }
.g6-explorer-copy { display: block; padding: 0; }
.g6-explorer-copy .g6-eyebrow { margin: 0 0 14px; color: #1d5a87; font: 700 12px/1.3 Manrope, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.g6-explorer-copy h2 { margin: 0 0 14px; color: #095e93; font-weight: 500; line-height: 1.02; letter-spacing: -.018em; text-wrap: balance; }
.g6-explorer-copy > p { margin: 0; color: #51647a; max-width: 52ch; font: 400 16px/1.6 Manrope, sans-serif; }
.g6-explorer-all { margin: 14px 0 0 !important; }
.g6-explorer-all a { color: #1d5a87; font-weight: 700; }
.g6-explorer-stage { position: relative; height: min(860px, 88svh); min-height: 620px; /* phone: see the max-width 700px rule below */ margin: 0; border-radius: 0; overflow: hidden; background: #E6EDF3; }
.g6-explorer-poster, .g6-explorer-poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.g6-explorer-slot { position: absolute; inset: 0; }
.g6-explorer-slot iframe { border: 0; display: block; width: 100%; height: 100%; opacity: 0; transition: opacity 300ms; }
.g6-explorer.is-live .g6-explorer-slot iframe { opacity: 1; }
.g6-explorer.is-live .g6-explorer-poster { visibility: hidden; }
.g6-explorer.is-loading .g6-explorer-stage::after { content: 'Drawing the coast'; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 10px 18px; border-radius: 999px; background: var(--g6-paper); font: 600 13px/1 var(--g6-ui); color: var(--g6-ink); box-shadow: var(--g6-floating-shadow); }
.g6-explorer-start { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); min-height: 48px; padding: 12px 24px; border: 0; border-radius: 999px; background: var(--g6-ink); color: var(--g6-paper); font: 600 14px/1 var(--g6-ui); cursor: pointer; }
.g6-explorer-start[hidden] { display: none; }
.g6-explorer.is-static .g6-explorer-stage { display: none; } /* 2026-10-14: the poster is a blurred stand-in for the live map; without WebGL show the copy card and its area-guide link only */
@media (min-width: 900px) {
  .g6-explorer-copy { position: static; width: min(100% - 48px, 1320px); margin: 0 auto; padding: 0 0 22px; text-align: left; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px; background: none; border: 0; box-shadow: none; } /* 2026-10-12 owner: the copy card covered the top of the map and made it unactionable; the heading now sits above a full-height stage */
  .home.gen6 .g6-explorer-copy h2 { font-size: clamp(36px, 3vw, 46px) !important; } /* outranks the sitewide h2 size in gen6-v4ns.css */
  .g6-explorer.is-static .g6-explorer-copy { position: static; width: auto; margin: 0 auto; max-width: 1320px; box-shadow: none; border: 0; background: none; padding: 56px 40px 28px; }
}

/* ---------- D. Homes: canonical IDX ListingCard island ---------- */
.g6-homes { padding: clamp(56px, 7vw, 96px) 0 clamp(32px, 4vw, 56px); }
.g6-homes-head { display: flex; justify-content: space-between; align-items: end; gap: 24px 40px; flex-wrap: wrap; margin-bottom: 28px; }
.g6-homes-head h2 { font-size: clamp(34px, 3.2vw, 48px); margin: 0 0 8px; color: var(--g6-ink); }
.g6-homes-head p { margin: 0; color: var(--g6-ink); opacity: .82; }
.g6-homes-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.g6-homes-chips button { min-height: 44px; padding: 10px 18px; border: 1px solid var(--g6-line); border-radius: 999px; background: var(--g6-paper); color: var(--g6-ink); font: 600 14px/1 var(--g6-ui); cursor: pointer; }
.g6-homes-chips button[aria-pressed="true"] { background: var(--g6-ink); color: var(--g6-paper); border-color: var(--g6-ink); }
.g6-homes-island { min-height: 420px; }
.g6-homes-island .mi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.g6-homes-island .mi-cell { min-width: 0; }
.g6-homes-island .mi-skel { height: 360px; border-radius: 16px; background: linear-gradient(90deg, var(--g6-mist), #f6f9fb, var(--g6-mist)); background-size: 200% 100%; animation: g6-skel 1.4s linear infinite; }
@keyframes g6-skel { to { background-position: -200% 0; } }
.g6-homes-island .mi-note { padding: 32px; border-radius: 16px; background: var(--g6-mist); }
.g6-homes-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 28px; }
.g6-homes-foot p { margin: 0; font-size: 15px; }
.g6-homes-foot p a { color: #095e93; text-decoration: underline; text-underline-offset: 4px; }

/* ---------- Body chapters: remove the redundant "Where we work" strip (explorer owns place) ---------- */
.home.gen6 #g6-places { display: none; }

/* ---------- MiraChat launcher sits above the booking bar, never over the hero CTA ---------- */
.g6-mira-slot .ms-chat-launcher { right: 20px; bottom: 20px; }

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {
  .g6-team-roster ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .g6-homes-island .mi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .home.gen6 .g6-hero { grid-template-columns: 1fr; max-height: none; min-height: 0; }
  .home.gen6 .g6-hero-media { order: 1; margin: 10px 10px 0; min-height: 0; aspect-ratio: 4 / 3; }
  .home.gen6 .g6-hero-copy { order: 2; padding: 28px 24px 32px; text-align: left; }
  .home.gen6 .g6-hero-fact { display: none; }
  .g6-team-frame { grid-template-columns: 1fr; }
  .g6-explorer-copy { grid-template-columns: minmax(0, 1fr); }
  .g6-explorer-copy > .g6-text-link { grid-column: 1; grid-row: auto; }
}

/* ---------- Phone (390) ---------- */
@media (max-width: 600px) {
  .home.gen6 .g6-hero { margin: 0 8px 8px; border-radius: 20px; }
  .home.gen6 .g6-hero-media { margin: 8px 8px 0; border-radius: 14px; aspect-ratio: auto; height: clamp(150px, 26svh, 230px); }
  .home.gen6 .g6-hero-eyebrow { display: none; }
  .home.gen6 .g6-hero-copy { padding: 18px 18px 22px; }
  .home.gen6 .g6-hero-eyebrow { margin-bottom: 12px; font-size: 11px; }
  .home.gen6 .g6-hero h1 { font-size: clamp(32px, 9.4vw, 38px); line-height: 1.04; margin-bottom: 12px; }
  .home.gen6 .g6-hero-lede { font-size: 15px; line-height: 1.5; margin-bottom: 16px; }
  .home.gen6 .g6-hero-actions { flex-direction: column; gap: 10px; }
  .home.gen6 .g6-hero-actions a { width: 100%; min-height: 50px; }
  .home.gen6 .g6-hero-links { display: none; }
  .g6-team-frame, .g6-team-roster { width: calc(100% - 40px); }
  .g6-team-copy h2 { font-size: 34px; }
  .g6-team-roster ul { grid-template-columns: 1fr 1fr; gap: 6px; }
  .g6-team-roster a { padding: 6px; gap: 10px; }
  .g6-team-roster img { width: 44px; height: 44px; }
  .g6-team-actions .g6-action { width: 100%; }
  .g6-explorer-copy { padding: 56px 20px 22px; }
  .home.gen6 .g6-explorer-copy h2 { font-size: clamp(36px, 10vw, 44px) !important; }
  .g6-explorer-stage { height: 72svh; min-height: 480px; margin: 0; }
  .g6-explorer-list ul { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .g6-explorer-list a { white-space: nowrap; }
  .g6-homes-island .mi-grid { grid-template-columns: 1fr; gap: 14px; }
  .g6-homes-chips { flex-wrap: nowrap; overflow-x: auto; width: 100%; padding-bottom: 4px; }
  .g6-homes-chips button { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
  .g6-homes-island .mi-skel { animation: none; }
  .g6-explorer-slot iframe { transition: none; }
}
@media print { .g6-explorer-stage, .g6-mira-slot { display: none !important; } }
/* Short phones (320x568 class): keep "Book a call" inside the first viewport. */
@media (max-width: 600px) and (max-height: 600px) {
  .home.gen6 .g6-hero-media { height: 120px; }
  .home.gen6 .g6-hero-lede { font-size: 14px; margin-bottom: 12px; }
}
.g6-team-lineage { margin: -8px 0 28px; padding-left: 14px; border-left: 2px solid var(--g6-channel); font: 500 15px/1.55 var(--g6-ui); color: var(--g6-ink); }

/* ---------- 2026-09-22 Astra pass ---------- */
.g6-hero-why { margin: 18px 0 0; max-width: 460px; font: 500 14px/1.5 var(--g6-ui); color: rgba(250,251,252,.86); }
.g6-team-quote { margin: 26px 0 0; padding: 18px 20px; background: var(--g6-mist); border-radius: 14px; }
.g6-team-quote blockquote { margin: 0 0 8px; padding: 0; border: 0; background: none; font: 500 20px/1.35 var(--g6-display); color: var(--g6-ink); }
.g6-team-quote figcaption { font: 500 13px/1.5 var(--g6-ui); color: var(--g6-ink); }
.g6-team-quote a { color: var(--g6-channel); }
.g6-explorer-pick { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: end; gap: 12px 20px; margin-top: 6px; }
.g6-explorer-counties { display: inline-flex; padding: 4px; gap: 4px; background: var(--g6-paper); border: 1px solid rgba(22,40,62,.12); border-radius: 999px; }
.g6-explorer-counties button { min-height: 44px; min-width: 88px; padding: 8px 18px; border: 0; border-radius: 999px; background: transparent; color: var(--g6-ink); font: 600 14px/1 var(--g6-ui); cursor: pointer; }
.g6-explorer-counties button[aria-pressed="true"] { background: var(--g6-ink); color: var(--g6-paper); }
.g6-explorer-city { display: inline-flex; align-items: center; gap: 10px; font: 600 13px/1 var(--g6-ui); color: var(--g6-ink); }
.g6-explorer-city select { min-height: 44px; min-width: 200px; padding: 8px 36px 8px 14px; border: 1px solid rgba(22,40,62,.2); border-radius: 12px; background: var(--g6-paper); color: var(--g6-ink); font: 600 14px/1 var(--g6-ui); }
.g6-explorer-summary { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin: 4px 0 0; font: 400 15px/1.5 var(--g6-ui); }
.g6-explorer-summary strong { font: 500 26px/1.1 var(--g6-display); color: var(--g6-ink); }
.g6-explorer-summary a { display: inline-flex; min-height: 44px; align-items: center; color: var(--g6-channel); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.g6-explorer-summary a[data-ex-talk] { color: var(--g6-ink); }
.g6-explorer-summary a[hidden] { display: none; }
.g6-explorer-all { grid-column: 1 / -1; margin: 0; font-size: 14px; }
.g6-explorer-all a { color: var(--g6-channel); }
.g6-request-simple { padding: 28px; border: 1px solid var(--g6-line); border-radius: 18px; background: var(--g6-paper); }
.g6-request-lead { margin: 0 0 16px; font: 500 22px/1.35 var(--g6-display); color: var(--g6-ink); }
.g6-request-alt { margin: 18px 0 0; font-size: 14px; line-height: 1.55; color: var(--g6-ink); }
.g6-request-alt a { color: var(--g6-channel); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
/* Launcher never over the explorer stage or its controls */
body.g6-over-explorer .g6-mira-slot .ms-chat-launcher { opacity: 0; pointer-events: none; }
@media (min-width: 601px) and (max-width: 1100px) {
  .home.gen6 .g6-hero-media { aspect-ratio: auto; height: 38svh; max-height: 360px; }
}
@media (max-width: 600px) {
  .home.gen6 .g6-hero-why { margin-top: 12px; font-size: 13px; }
  .home.gen6 .g6-hero-why .g6-why-long { display: none; }
  .g6-explorer-pick { flex-direction: column; align-items: stretch; }
  .g6-explorer-counties { display: flex; } .g6-explorer-counties button { flex: 1; min-width: 0; }
  .g6-explorer-city select { flex: 1; min-width: 0; }
  .g6-team-quote blockquote { font-size: 18px; }
}
.g6-explorer-nojs { grid-column: 1 / -1; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.g6-explorer-nojs a { display: inline-flex; min-height: 44px; align-items: center; color: var(--g6-channel); }
.home.gen6 .g6-hero-fact { max-width: 280px; }
.home.gen6 .g6-hero-fact strong { white-space: normal; }
/* Launcher sits in the gutter below content width; pages add bottom room so it never covers copy. */
.g6-mira-slot .ms-chat-launcher { right: 16px; bottom: 16px; }
@media (min-width: 1100px) { .g6-team-copy { padding-right: 0; } .g6-team { padding-bottom: 96px; } }
/* Mobile: launcher only after the hero, never over the team photo (A13). */
@media (max-width: 900px) { body.g6-over-hero .g6-mira-slot .ms-chat-launcher, body.g6-over-team-photo .g6-mira-slot .ms-chat-launcher { opacity: 0; pointer-events: none; } .g6-mira-slot .ms-chat-launcher { bottom: 12px; right: 12px; } }

/* R2 A06: launcher yields whenever it would overlap listing attribution, cards or controls (JS measures). */
body.g6-launcher-yield .g6-mira-slot .ms-chat-launcher { opacity: 0; pointer-events: none; }
.g6-mira-slot .ms-chat-launcher { transition: opacity 160ms; }
@media (prefers-reduced-motion: reduce) { .g6-mira-slot .ms-chat-launcher { transition: none; } }

/* ── 2026-09-28 art pass: place-first hero (owned canal aerial), bigger type, calmer chrome ───────────── */
.home.gen6 .g6-hero-media .g6-hero-poster img { object-position: 50% 55%; }
.home.gen6 .g6-hero-shade { background: linear-gradient(180deg, rgba(22,40,62,0) 70%, rgba(22,40,62,.28)); }
.home.gen6 .g6-hero h1 { font-size: clamp(52px, 5.4vw, 84px); letter-spacing: -.012em; }
.home.gen6 .g6-hero-eyebrow { letter-spacing: .22em; }
.g6-hero-film { margin: 16px 0 0; }
.g6-hero-film a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: #fff; font: 600 14.5px/1 var(--g6-ui); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.35); }
.g6-hero-film a span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.14); font-size: 11px; }
.g6-hero-film a:hover { border-bottom-color: #fff; }
.g6-hero-film a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.g6-intro-dialog { width: min(1100px, 94vw); padding: 0; border: 0; border-radius: 16px; background: #000; overflow: visible; }
.g6-intro-dialog::backdrop { background: rgba(10,20,32,.78); }
.g6-intro-dialog video { display: block; width: 100%; height: auto; border-radius: 16px; }
.g6-intro-x { position: absolute; top: -48px; right: 0; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 26px; cursor: pointer; }
@media (max-width: 760px) {
  .home.gen6 .g6-hero-media .g6-hero-poster img { object-position: 50% 50%; }
  .home.gen6 .g6-hero h1 { font-size: clamp(34px, 9.8vw, 42px); }
  .g6-hero-film { margin-top: 12px; }
  .g6-intro-x { top: 8px; right: 8px; z-index: 2; background: rgba(0,0,0,.5); }
}

/* ── 2026-09-28 round 2 (Astra + Fable): FULL-BLEED water hero. No inset card, no radius, no floating chips. ── */
.home.gen6 .g6-hero { display: block; margin: 0; border-radius: 0; min-height: calc(100svh - var(--g6-header-h)); max-height: 980px; background: var(--g6-ink); }
.home.gen6 .g6-hero-media { position: absolute; inset: 0; margin: 0; border-radius: 0; min-height: 0; height: auto; aspect-ratio: auto; order: 0; }
.home.gen6 .g6-hero-media .g6-hero-poster, .home.gen6 .g6-hero-media .g6-hero-poster img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.home.gen6 .g6-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,30,48,.86) 0%, rgba(16,30,48,.62) 34%, rgba(16,30,48,.08) 64%, rgba(16,30,48,0) 100%), linear-gradient(180deg, rgba(16,30,48,.35) 0%, rgba(16,30,48,0) 22%); }
.home.gen6 .g6-hero-copy { position: relative; z-index: 2; max-width: 660px; min-height: calc(100svh - var(--g6-header-h)); max-height: 980px; justify-content: center; padding: clamp(48px, 6vw, 96px) 0 clamp(48px, 6vw, 88px) clamp(28px, 6vw, 112px); }
.home.gen6 .g6-hero-lede { text-shadow: 0 1px 18px rgba(10,20,34,.35); }
.g6-hero-maplink { color: rgba(255,255,255,.9) !important; font: 600 14px/1 var(--g6-ui); text-decoration: underline; text-underline-offset: 5px; text-decoration-color: rgba(255,255,255,.4); display: inline-flex; min-height: 44px; align-items: center; margin-right: 22px; }
@media (max-width: 900px) {
  .home.gen6 .g6-hero-copy { max-width: none; padding: 40px 28px 44px; }
}
@media (max-width: 760px) {
  .home.gen6 .g6-hero { min-height: 0; max-height: none; }
  .home.gen6 .g6-hero-media { position: relative; inset: auto; height: 46svh; min-height: 300px; max-height: 440px; }
  .home.gen6 .g6-hero-media .g6-hero-poster img { object-position: 50% 30%; }
  .home.gen6 .g6-hero-shade { background: linear-gradient(180deg, rgba(22,40,62,0) 55%, rgba(22,40,62,1) 100%); }
  .home.gen6 .g6-hero-copy { min-height: 0; margin-top: -64px; padding: 0 22px 30px; }
  .home.gen6 .g6-hero-actions .g6-hero-secondary { background: transparent; border: 0; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; width: auto; justify-content: flex-start; padding-inline: 0; }
  .g6-hero-maplink { display: none; }
}
/* round-2 refinements: stronger left scrim behind the lede; tidy the sub-links into one row. */
.home.gen6 .g6-hero-shade { background: linear-gradient(90deg, rgba(14,27,44,.9) 0%, rgba(14,27,44,.78) 30%, rgba(14,27,44,.34) 52%, rgba(14,27,44,0) 72%), linear-gradient(180deg, rgba(14,27,44,.4) 0%, rgba(14,27,44,0) 20%); }
.home.gen6 .g6-hero-film { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 26px; margin-top: 22px; }
.home.gen6 .g6-hero-film + .g6-hero-film { margin-top: 0; }
@media (max-width: 760px) {
  .home.gen6 .g6-hero-copy .g6-hero-maplink { display: none; }
  .home.gen6 .g6-hero-why { display: none; }
}
@media (max-width: 760px) {
  .home.gen6 .g6-hero-shade { background: linear-gradient(180deg, rgba(22,40,62,0) 0%, rgba(22,40,62,0) 50%, rgba(22,40,62,.75) 82%, rgb(22,40,62) 100%) !important; }
  .home.gen6 .g6-hero-copy { margin-top: -86px; }
}

/* round 2: agent roster was 7 tiny 52px avatars in a 4-col grid (4+3, fine print). One row of 7 portrait cards on
   desktop, a 2-col list on phones, larger faces and type. Same links (CRM calendar per agent). */
@media (min-width: 1101px) {
  .g6-team-roster ul { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 14px; }
  .g6-team-roster a { flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 16px 10px 14px; border: 1px solid var(--g6-line); background: #fff; }
  .g6-team-roster img { width: 92px; height: 92px; }
  .g6-team-roster strong { font: 500 19px/1.2 var(--g6-display); }
  .g6-team-roster small { font-size: 13px; margin-top: 4px; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  .g6-team-roster ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .g6-team-roster li:nth-last-child(3):nth-child(4n+1) { grid-column: 1 / span 1; }
  .g6-team-roster img { width: 64px; height: 64px; }
}
@media (max-width: 600px) {
  .g6-team-roster img { width: 56px; height: 56px; }
  .g6-team-roster strong { font-size: 15px; }
  .g6-team-roster small { font-size: 13px; }
  .g6-team-roster li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* round 2: homepage listing grid in the house editorial system (Cormorant price, Manrope meta), bigger photos,
   price moved off the photo into the body, meta reduced to one line; MLS attribution stays (required) but reads
   as a quiet footnote. Scoped to the homepage island only — the IDX app itself is untouched. */
.home.gen6 .g6-homes .ms-listing { border-radius: 16px; border-color: var(--g6-line); box-shadow: 0 1px 0 rgba(22,40,62,.04), 0 10px 30px rgba(22,40,62,.06); font-family: var(--g6-ui); }
.home.gen6 .g6-homes .ms-listing-media { aspect-ratio: 4 / 3; height: auto; }
.home.gen6 .g6-homes .ms-listing-media img { filter: saturate(1.08) contrast(1.04); }
.home.gen6 .g6-homes .ms-listing-media { overflow: visible; margin-bottom: 44px; }
.home.gen6 .g6-homes .ms-listing-media > img, .home.gen6 .g6-homes .ms-listing-media .ms-cardcar { border-radius: 16px 16px 0 0; }
.home.gen6 .g6-homes .ms-listing { overflow: hidden; }
.home.gen6 .g6-homes .ms-listing-price-overlay { top: calc(100% + 12px); bottom: auto; left: 18px; right: auto; font: 500 29px/1 var(--g6-display); color: var(--g6-ink); text-shadow: none; }
.home.gen6 .g6-homes .ms-listing-body { display: flex; flex-direction: column; padding: 4px 18px 16px; }
.home.gen6 .g6-homes .ms-listing-addr { font: 600 15px/1.35 var(--g6-ui); color: var(--g6-ink); }
.home.gen6 .g6-homes .ms-listing-loc { font: 500 13px/1.4 var(--g6-ui); color: var(--g6-slate); }
.home.gen6 .g6-homes .ms-listing-cost { font-size: 13px; }
.home.gen6 .g6-homes .ms-card-courtesy { font-size: 11.5px; color: var(--g6-slate); }
.home.gen6 .g6-homes .ms-mls-attrib { margin-top: 18px; opacity: 1; }
/* gen6-mobile.css pins the IDX price pill with !important (dark blurred chip on the photo); the homepage editorial
   card puts the price below the photo in serif instead, so override those three properties here. */
.home.gen6 .g6-homes .ms-listing-price-overlay { font-size: 29px !important; background: transparent !important; backdrop-filter: none !important; padding: 0 !important; font-weight: 500 !important; }

/* 2026-09-28 IDX showcase band (real search UI, composed as a product shot) */
.g6-idx-show { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(28px, 4vw, 64px); align-items: center; margin: 0 0 clamp(64px, 7vw, 104px); }
.g6-idx-h { font: 500 clamp(36px, 3.6vw, 54px)/1.04 var(--g6-display); color: var(--g6-ink); margin: 8px 0 22px; letter-spacing: -.01em; }
.g6-idx-h em { color: var(--g6-channel); }
.g6-idx-points { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 14px; }
.g6-idx-points li { position: relative; padding-left: 26px; font: 400 16px/1.55 var(--g6-ui); color: var(--g6-ink); }
.g6-idx-points li::before { content: ""; position: absolute; left: 0; top: .62em; width: 12px; height: 2px; background: var(--g6-channel); }
.g6-idx-points strong { font-weight: 700; }
.g6-idx-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.g6-idx-primary { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 28px; border-radius: 999px; background: var(--g6-ink); color: #fff; font: 700 15.5px/1 var(--g6-ui); text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; box-shadow: 0 10px 24px rgba(22,40,62,.18); }
.g6-idx-primary:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(22,40,62,.24); }
.g6-idx-secondary { color: var(--g6-channel); font: 600 15px/1.3 var(--g6-ui); text-decoration: underline; text-underline-offset: 5px; min-height: 44px; display: inline-flex; align-items: center; }
.g6-idx-media { display: block; border-radius: 22px; overflow: hidden; box-shadow: 0 30px 70px rgba(22,40,62,.16); transform: translateZ(0); }
.g6-idx-media img { display: block; width: 100%; height: auto; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.g6-idx-media:hover img { transform: scale(1.02); }
.g6-idx-primary:focus-visible, .g6-idx-secondary:focus-visible { outline: 2px solid var(--g6-channel); outline-offset: 3px; }
@media (max-width: 900px) { .g6-idx-show { grid-template-columns: 1fr; } .g6-idx-media { order: -1; border-radius: 16px; } }
@media (max-width: 600px) { .g6-idx-primary { width: 100%; justify-content: center; } }
@media (prefers-reduced-motion: reduce) { .g6-idx-media img, .g6-idx-primary { transition: none; } }

/* round 3 (Astra + Fable): let the owned aerial breathe — lighter, shorter scrim; listing media a true 4:3; equal card
   heights across property types; one quiet lock instead of six. */
.home.gen6 .g6-hero-shade { background: linear-gradient(90deg, rgba(14,27,44,.82) 0%, rgba(14,27,44,.6) 26%, rgba(14,27,44,.18) 44%, rgba(14,27,44,0) 58%), linear-gradient(180deg, rgba(14,27,44,.32) 0%, rgba(14,27,44,0) 18%); }
.home.gen6 .g6-hero h1, .home.gen6 .g6-hero-lede { text-shadow: 0 2px 22px rgba(8,18,30,.45); }
.home.gen6 .g6-homes .ms-listing-media { aspect-ratio: auto !important; height: clamp(230px, 20vw, 290px) !important; flex: none; }
.home.gen6 .g6-homes .ms-listing-media > img, .home.gen6 .g6-homes .ms-listing-media img.ms-cardframe { width: 100%; height: 100% !important; object-fit: cover; }
.home.gen6 .g6-homes .ms-listing-meta, .home.gen6 .g6-homes .ms-listing-specs { min-height: 22px; }
.home.gen6 .g6-homes .ms-listing .ms-listing-body { flex: 1 1 auto; }
.home.gen6 .g6-homes .ms-listing { height: auto; }
.home.gen6 .g6-homes .mi-cell { display: flex; }
.home.gen6 .g6-homes .mi-cell > * { flex: 1; }
.home.gen6 .g6-homes .mi-grid { align-items: stretch; }

.home.gen6 .g6-homes .ms-listing { display: flex; flex-direction: column; }
.home.gen6 .g6-homes .ms-listing-body { flex: 1; }
.home.gen6 .g6-homes .ms-listing-cost { margin-top: auto; }
.home.gen6 .g6-homes .ms-listing-cost svg { display: none; }
.home.gen6 .g6-homes .ms-mls-attrib, .home.gen6 .g6-homes .ms-mls-attrib * { color: var(--g6-slate) !important; }


/* v5pol: team figure = owned aerial + the real CRM headshots (replaces the AI-generated group image) */
.g6-team-photo--faces { position: relative; aspect-ratio: auto; min-height: 440px; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; background: #095e93; }
.g6-team-photo--faces .g6-cue { position: relative; z-index: 2; margin: -8px 0 12px; }
.g6-team-photo--faces .g6-team-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.g6-team-photo--faces::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,94,147,.10) 0%, rgba(9,94,147,.55) 55%, rgba(9,94,147,.88) 100%); pointer-events: none; }
.g6-team-faces { position: relative; z-index: 2; list-style: none; margin: 0; padding: 0 18px 18px; width: 100%; box-sizing: border-box; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.g6-team-faces li { margin: 0; min-width: 0; }
.g6-team-faces a { display: block; color: #fff; text-decoration: none; text-align: center; }
.g6-team-faces img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 14%; border-radius: 14px; border: 1px solid rgba(255,255,255,.35); box-shadow: 0 10px 24px rgba(0,0,0,.28); }
.g6-team-faces span { display: block; margin-top: 6px; font: 700 12px/1.2 Manrope, sans-serif; color: #fff; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.g6-team-faces a:focus-visible { outline: 3px solid #bfe0ff; outline-offset: 3px; border-radius: 14px; }
@media (max-width: 900px) {
  .g6-team-photo--faces { min-height: 0; aspect-ratio: auto; padding-top: 170px; }
  .g6-team-faces { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 14px; padding: 0 14px 14px; gap: 10px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .g6-team-faces::-webkit-scrollbar { display: none; }
  .g6-team-faces li { flex: 0 0 96px; scroll-snap-align: start; }
}

/* 2026-10-12 director: on phones the explorer island gets a tall fixed stage (map + bottom sheet + registry row need about 760px to compose); the page scrolls past it normally (touch-scroll verified at 390 and 320). */
@media (max-width: 700px) { .g6-explorer:not(.is-static) .g6-explorer-stage { height: 780px; min-height: 780px; } }

.g6-explorer--bleed .g6-explorer-frame { padding-top: clamp(56px, 6vw, 80px); background: #f4efe6; }
.g6-explorer-copy .g6-explorer-all { grid-column: 2; grid-row: 1 / span 3; align-self: end; margin: 0; }
@media (max-width: 760px) { .g6-explorer-copy { grid-template-columns: 1fr; padding: 0 0 14px; } .g6-explorer-copy .g6-explorer-all { grid-column: 1; grid-row: auto; } }
/* 2026-10-12 owner: while the explorer stage is in view the sticky header slides up and the jump bar hides, so the whole
   viewport is the map. Both return as soon as the reader scrolls past. Reduced motion: instant. */
.home.gen6 .g6-header { transition: transform .32s cubic-bezier(.22,1,.36,1); }
body.home.gen6.g6-over-explorer .g6-header { transform: translateY(-100%); }
body.home.gen6.g6-over-explorer .g6-jumpbar { opacity: 0; pointer-events: none; transform: translateY(-8px); }
.home.gen6 .g6-jumpbar { transition: opacity .25s ease, transform .25s ease; }
@media (prefers-reduced-motion: reduce) { .home.gen6 .g6-header, .home.gen6 .g6-jumpbar { transition: none; } }

/* anchor links (#g6-explorer, subnav Areas) land with the stage flush to the top of the viewport */
.home.gen6 #g6-map { scroll-margin-top: 0 !important; } /* the chrome slides away on arrival, so the stage lands flush */
/* 2026-10-13 director (real-browser check): the film dialog opened pinned top-left with no backdrop (margin auto lost under a reset).
   Centre it as a true modal with a visible close control. */
.gen6 dialog.g6-intro-dialog { position: fixed; inset: 0; margin: auto; max-width: min(1100px, 94vw); max-height: 90vh; z-index: 3000; box-shadow: 0 40px 120px rgba(0,0,0,.6); }
.gen6 dialog.g6-intro-dialog[open] { display: block; }
.gen6 dialog.g6-intro-dialog::backdrop { background: rgba(10,20,32,.82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gen6 .g6-intro-x { position: absolute; top: -14px; right: -14px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; color: #095e93; font: 500 26px/1 Manrope, sans-serif; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.35); z-index: 1; }
@media (max-width: 760px) { .gen6 .g6-intro-x { top: 8px; right: 8px; } }
