/* gen6-mobile.css (2026-09-25) -- site-wide mobile layer, loaded last on every gen6 page.
   Owner: "60% of people or more will be using their phone. We need a world class experience."
   Rules: never change copy or data here; fix touch, type, spacing, safe areas, forms and the action bar.
   Pairs with js/gen6-mobile.js. Desktop is untouched except the shared sheet/dialog + form polish. */

:root {
  --m-safe-b: env(safe-area-inset-bottom, 0px);
  --m-safe-t: env(safe-area-inset-top, 0px);
  --m-bar-h: 64px;
  --m-ease: cubic-bezier(.2,.8,.2,1);
  --m-spring: cubic-bezier(.32,1.28,.54,1);
}

/* ---------- Global touch hygiene (all widths) ---------- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.gen6 { -webkit-tap-highlight-color: rgba(46,111,163,.12); }
.gen6 a, .gen6 button, .gen6 summary, .gen6 label, .gen6 [role=button] { touch-action: manipulation; }
.gen6 :focus-visible { outline: 2px solid var(--g6-channel); outline-offset: 3px; }

/* ---------- Forms: every milner_form, everywhere ---------- */
.gen6 .form-card form { position: relative; }
.gen6 .form-group { margin-bottom: 14px; }
.gen6 .form-label { display: block; font: 600 13px/1.3 var(--g6-ui); letter-spacing: .01em; color: var(--g6-ink); margin: 0 0 6px; }
.gen6 .form-input, .gen6 .form-select, .gen6 .form-textarea {
  width: 100%; min-height: 52px; padding: 13px 16px; border-radius: 14px;
  border: 1.5px solid rgba(22,40,62,.16); background: #fff; color: var(--g6-ink);
  font: 500 16px/1.35 var(--g6-ui); /* 16px: iOS never zooms on focus */
  -webkit-appearance: none; appearance: none; box-shadow: 0 1px 0 rgba(22,40,62,.03);
  transition: border-color .18s var(--m-ease), box-shadow .18s var(--m-ease), background .18s;
}
.gen6 .form-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2316283E' stroke-width='1.8' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 42px; }
.gen6 .form-textarea { min-height: 104px; resize: vertical; }
.gen6 .form-input:focus, .gen6 .form-select:focus, .gen6 .form-textarea:focus { outline: none; border-color: var(--g6-channel); box-shadow: 0 0 0 4px rgba(46,111,163,.14); }
.gen6 .form-input::placeholder, .gen6 .form-textarea::placeholder { color: #8a9aab; }
.gen6 .form-input:user-invalid, .gen6 .form-select:user-invalid, .gen6 .form-textarea:user-invalid { border-color: #c2413a; box-shadow: 0 0 0 4px rgba(194,65,58,.1); }
.gen6 .form-input.m-valid { border-color: rgba(15,163,177,.55); }
.gen6 .form-consent { display: flex; gap: 12px; align-items: flex-start; font: 400 12.5px/1.5 var(--g6-ui); color: var(--g6-slate); cursor: pointer; padding: 6px 0; }
.gen6 .form-consent__checkbox { flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--g6-ink); cursor: pointer; }
.gen6 .form-card button[type=submit], .gen6 .form-card .milner-form-next {
  min-height: 54px; border-radius: 999px; font: 700 15px/1.2 var(--g6-ui); letter-spacing: .01em;
  transition: transform .12s var(--m-ease), box-shadow .2s, background .2s;
}
.gen6 .form-card button:active { transform: scale(.98); }
.gen6 .form-actions-row { display: flex; gap: 10px; align-items: stretch; }
.gen6 .form-actions-row .milner-form-back { flex: 0 0 auto; min-height: 54px; min-width: 88px; border-radius: 999px; }
.gen6 .form-actions-row [type=submit] { flex: 1 1 auto; }
/* Step progress (inserted by gen6-mobile.js) */
.gen6 .m-progress { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; font: 600 12px/1 var(--g6-ui); color: var(--g6-slate); letter-spacing: .04em; }
.gen6 .m-progress i { flex: 1; height: 4px; border-radius: 4px; background: rgba(22,40,62,.08); overflow: hidden; position: relative; }
.gen6 .m-progress i::after { content: ""; position: absolute; inset: 0; width: var(--m-p, 50%); background: var(--g6-channel); border-radius: 4px; transition: width .45s var(--m-ease); }
/* Animated step change */
.gen6 .form-step-1:not([hidden]), .gen6 .form-step-2:not([hidden]) { animation: m-step-in .38s var(--m-ease) both; }
@keyframes m-step-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
.gen6 .form-step-heading { font: 600 14px/1.3 var(--g6-ui); color: var(--g6-ink); margin: 0 0 14px; outline: none; }
/* Success card (replaces the old green box) */
.gen6 .m-success { text-align: center; padding: 28px 8px 8px; animation: m-rise .5s var(--m-spring) both; }
.gen6 .m-success svg { width: 64px; height: 64px; display: block; margin: 0 auto 14px; }
.gen6 .m-success circle { fill: none; stroke: var(--g6-live-teal); stroke-width: 2.5; stroke-dasharray: 164; stroke-dashoffset: 164; animation: m-draw .6s var(--m-ease) .05s forwards; }
.gen6 .m-success path { fill: none; stroke: var(--g6-live-teal); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: m-draw .35s var(--m-ease) .5s forwards; }
.gen6 .m-success h3 { font: 500 28px/1.15 var(--g6-display); margin: 0 0 8px; color: var(--g6-ink); }
.gen6 .m-success p { margin: 0 auto; max-width: 30ch; color: var(--g6-slate); font-size: 15px; }
.gen6 .m-success .m-success-call { display: inline-flex; margin-top: 18px; min-height: 48px; align-items: center; padding: 0 22px; border-radius: 999px; border: 1.5px solid var(--g6-line); font-weight: 700; color: var(--g6-ink); text-decoration: none; }
.gen6 .form-message-error { border-radius: 14px !important; font: 500 14px/1.45 var(--g6-ui) !important; animation: m-shake .4s var(--m-ease); }
@keyframes m-draw { to { stroke-dashoffset: 0; } }
@keyframes m-rise { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes m-shake { 0%,100% { transform: none; } 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }

/* ---------- The sheet: bottom sheet on phones, centered dialog on desktop ---------- */
.m-sheet { border: 0; padding: 0; background: transparent; max-width: none; max-height: none; width: 100%; height: 100%; margin: 0; overflow: visible; }
.m-sheet::backdrop { background: rgba(10,22,38,.0); transition: background .3s var(--m-ease); }
.m-sheet[open]::backdrop { background: rgba(10,22,38,.48); }
.m-sheet-panel {
  position: fixed; left: 0; right: 0; bottom: 0; max-height: min(92dvh, 900px); overflow-y: auto; overscroll-behavior: contain;
  background: var(--g6-paper); border-radius: 26px 26px 0 0; box-shadow: 0 -18px 60px rgba(10,22,38,.28);
  padding: 10px 20px calc(24px + var(--m-safe-b)); transform: translateY(100%);
  transition: transform .42s var(--m-spring); -webkit-overflow-scrolling: touch;
}
.m-sheet.is-in .m-sheet-panel { transform: translateY(var(--m-drag, 0px)); }
.m-sheet.is-dragging .m-sheet-panel { transition: none; }
.m-sheet-grab { display: block; width: 44px; height: 5px; border-radius: 5px; background: rgba(22,40,62,.18); margin: 2px auto 12px; }
.m-sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 6px; }
.m-sheet-head h2 { font: 500 30px/1.08 var(--g6-display); margin: 0; color: var(--g6-ink); }
.m-sheet-head p { margin: 8px 0 0; color: var(--g6-slate); font-size: 15px; line-height: 1.45; }
.m-sheet-x { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--g6-mist); color: var(--g6-ink); display: grid; place-items: center; cursor: pointer; }
.m-sheet-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0 18px; }
.m-sheet-quick a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; border-radius: 16px; background: var(--g6-mist); color: var(--g6-ink); font: 700 14px/1 var(--g6-ui); text-decoration: none; }
.m-sheet-quick a svg { width: 18px; height: 18px; }
.m-sheet-or { display: flex; align-items: center; gap: 12px; margin: 4px 0 14px; color: var(--g6-slate); font: 600 12px/1 var(--g6-ui); letter-spacing: .08em; text-transform: uppercase; }
.m-sheet-or::before, .m-sheet-or::after { content: ""; flex: 1; height: 1px; background: var(--g6-line); }
.m-sheet .form-card { background: none; border: 0; box-shadow: none; padding: 0; margin: 0; }
.m-sheet .form-card .form-title, .m-sheet .form-card .form-subtitle { display: none; }
@media (min-width: 761px) {
  .m-sheet-panel { left: 50%; right: auto; top: 50%; bottom: auto; width: min(520px, calc(100vw - 48px)); border-radius: 24px; padding: 28px 32px 30px; transform: translate(-50%, -46%) scale(.97); opacity: 0; transition: transform .38s var(--m-spring), opacity .25s var(--m-ease); box-shadow: 0 30px 90px rgba(10,22,38,.3); }
  .m-sheet.is-in .m-sheet-panel { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  .m-sheet-grab { display: none; }
}
html.m-lock, html.m-lock body { overflow: hidden; }

/* ---------- Soft sign-up nudge (non-blocking card, not a modal) ---------- */
.m-nudge { position: fixed; left: 12px; right: 12px; bottom: calc(var(--m-bar-h) + 14px + var(--m-safe-b)); z-index: 1250; background: var(--g6-ink); color: var(--g6-paper); border-radius: 20px; padding: 16px 16px 16px 18px; box-shadow: 0 18px 50px rgba(10,22,38,.35); display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; transform: translateY(24px); opacity: 0; pointer-events: none; transition: transform .45s var(--m-spring), opacity .3s var(--m-ease); }
.m-nudge.is-in { transform: none; opacity: 1; pointer-events: auto; }
.m-nudge strong { font: 500 21px/1.15 var(--g6-display); }
.m-nudge span { grid-column: 1; font-size: 13.5px; opacity: .82; line-height: 1.4; }
.m-nudge .m-nudge-go { grid-column: 1 / -1; margin-top: 10px; min-height: 48px; border-radius: 999px; border: 0; background: var(--g6-paper); color: var(--g6-ink); font: 700 14px/1 var(--g6-ui); cursor: pointer; }
.m-nudge .m-nudge-x { grid-column: 2; grid-row: 1; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,255,255,.12); color: inherit; cursor: pointer; }
@media (min-width: 761px) { .m-nudge { left: auto; right: 24px; bottom: 24px; width: 360px; } }

/* ---------- Phone layer (<= 760px) ---------- */
@media (max-width: 760px) {
  body.gen6 { padding-bottom: calc(var(--m-bar-h) + var(--m-safe-b)); }

  /* Header: logo + call + menu. The booking action moves to the thumb bar. */
  .g6-header .g6-book { display: none; }
  .g6-header .g6-phone { width: 44px; height: 44px; border-radius: 50%; background: var(--g6-mist); }
  .g6-menu-trigger { width: 44px; height: 44px; }
  .g6-header-actions { gap: 8px !important; }

  /* Sticky sub-nav: show that it scrolls */
  .g6-subnav-links { -webkit-mask-image: linear-gradient(90deg, #000 86%, transparent); mask-image: linear-gradient(90deg, #000 86%, transparent); padding-right: 28px; scroll-snap-type: x proximity; }
  .g6-subnav-links a { scroll-snap-align: start; min-height: 44px; display: inline-flex; align-items: center; }

  /* Type floor: nothing a visitor must read below 13px */
  .gen6 .g6-footer-source, .gen6 .g6-planned-note, .gen6 .g6-hub-quiet, .gen6 .g6-county-source-note, .gen6 .g6-poi-group-source,
  .gen6 .g6-keyboard-map-note, .gen6 small, .gen6 figcaption { font-size: 13px !important; line-height: 1.5; }
  .gen6 .eyebrow-lux, .gen6 .g6-main-kicker, .gen6 .g6-eyebrow, .gen6 .g6-city-eyebrow, .gen6 .lux-lead-form-kicker, .gen6 .hero-ed-badge-kicker, .gen6 .post-nav__kicker { font-size: 12px !important; }

  /* Tap targets: everything tappable is >= 44px */
  .gen6 .service-band-link, .gen6 .path-link, .gen6 .ct-route__cta, .gen6 .g6-main-text, .gen6 .g6-text-link { min-height: 44px; display: inline-flex; align-items: center; }
  .gen6 details > summary { min-height: 44px; }
  .gen6 .g6-county-reset, .gen6 .ct-quad-btn { min-height: 44px; }
  .gen6 .leaflet-touch .leaflet-bar a { width: 44px; height: 44px; line-height: 44px; font-size: 22px; }
  .gen6 .leaflet-control-attribution a { padding: 4px 2px; }
  .gen6 .g6-agent-options label { min-height: 56px; }
  .gen6 .g6-agent-options input[type=radio] { width: 22px; height: 22px; accent-color: var(--g6-ink); }
  .gen6 input, .gen6 select, .gen6 textarea { font-size: max(16px, 1em); }

  /* Forms in page flow: roomier, full-width primary */
  .gen6 .form-card { padding: 22px 18px; border-radius: 22px; }
  .gen6 .g6-main-form { padding: 20px 16px !important; border-radius: 22px; }
  .gen6 .form-grid { grid-template-columns: 1fr !important; gap: 0 !important; }

  /* Footer: tappable, calmer */
  .g6-footer .g6-footer-contact, .g6-footer .g6-footer-list a { min-height: 44px; display: inline-flex; align-items: center; }
  .g6-footer-bottom { padding-bottom: 12px; }

  /* MIRA launcher sits above the bar, never over it */
  body.m-bar-on .ms-chat-launcher { bottom: calc(var(--m-bar-h) + 14px + var(--m-safe-b)) !important; }
}

/* ---------- Thumb bar ---------- */
.m-bar { display: none; }
@media (max-width: 760px) {
  .m-bar {
    display: grid; grid-template-columns: 52px 1fr 1.25fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1240;
    padding: 8px 12px calc(8px + var(--m-safe-b)); background: rgba(250,251,252,.92); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px);
    border-top: 1px solid rgba(22,40,62,.08); transform: translateY(110%); transition: transform .4s var(--m-spring);
  }
  body.m-bar-on .m-bar { transform: none; }
  body.m-keyboard .m-bar, body.m-footer-in .m-bar { transform: translateY(110%); }
  .m-bar a, .m-bar button { min-height: 48px; border-radius: 999px; display: flex; align-items: center; justify-content: center; gap: 8px; font: 700 14.5px/1 var(--g6-ui); text-decoration: none; border: 0; cursor: pointer; }
  .m-bar .m-bar-call { background: var(--g6-mist); color: var(--g6-ink); }
  .m-bar .m-bar-call svg { width: 20px; height: 20px; }
  .m-bar .m-bar-search { background: #fff; color: var(--g6-ink); box-shadow: inset 0 0 0 1.5px rgba(22,40,62,.14); }
  .m-bar .m-bar-talk { background: var(--g6-ink); color: var(--g6-paper); }
  .m-bar a:active, .m-bar button:active { transform: scale(.97); }
}

@media (prefers-reduced-motion: reduce) {
  .m-sheet-panel, .m-bar, .m-nudge, .gen6 .form-step-1, .gen6 .form-step-2, .gen6 .m-success { transition: none !important; animation: none !important; }
  .gen6 .m-success circle, .gen6 .m-success path { stroke-dashoffset: 0; }
}
@media print { .m-bar, .m-nudge, .m-sheet { display: none !important; } }

/* ---------- Round 2 polish (sighted review 2026-09-25) ---------- */
/* One inset inside the sheet: the legacy .form-card padding/border is removed completely. */
.m-sheet .form-card, .m-sheet .form-card form { padding: 0 !important; margin: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; border-radius: 0 !important; max-width: none !important; }
.m-sheet[open]::backdrop { background: rgba(10,22,38,.56); }
.m-sheet-panel { box-shadow: 0 -1px 0 rgba(22,40,62,.06), 0 -18px 60px rgba(10,22,38,.3); }
.m-sheet-head h2 { font-size: 29px; }
.m-sheet-head p { color: #4f6275; text-wrap: balance; }
.m-sheet-x { background: rgba(22,40,62,.06); color: #4f6275; margin-top: -2px; }
.m-sheet-quick a { background: #fff; box-shadow: inset 0 0 0 1.5px rgba(22,40,62,.12); border-radius: 14px; }
.m-sheet-quick a svg { color: var(--g6-channel); }
.m-sheet-or { text-transform: none; letter-spacing: 0; font: 500 13px/1 var(--g6-ui); }
/* Once the visitor is in the form, the sheet header compacts and the quick row folds away. */
.m-sheet.m-in-form .m-sheet-head p, .m-sheet.m-in-form .m-sheet-quick, .m-sheet.m-in-form .m-sheet-or { display: none; }
.m-sheet.m-in-form .m-sheet-head h2 { font-size: 24px; }
.m-sheet.m-in-form .m-sheet-head { margin-bottom: 14px; }
/* Labels: sentence case look, same rhythm everywhere. */
.gen6 .form-label { text-transform: none !important; letter-spacing: 0 !important; color: var(--g6-ink) !important; font: 600 13.5px/1.3 var(--g6-ui) !important; margin: 0 0 7px !important; }
.gen6 .form-group { margin-bottom: 16px; }
.gen6 .form-input:focus, .gen6 .form-select:focus, .gen6 .form-textarea:focus { outline: none !important; box-shadow: 0 0 0 3px rgba(46,111,163,.16) !important; border-color: var(--g6-channel) !important; }
.gen6 .form-select:has(option:checked[value=""]) { color: #8a9aab; }
.gen6 .form-textarea { resize: none; field-sizing: content; min-height: 96px; max-height: 220px; }
/* Buttons: flat, sentence case, no web shadow. */
.gen6 .form-card button[type=submit], .gen6 .form-card .milner-form-next, .gen6 .form-card .milner-form-back { text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; font: 700 15.5px/1.2 var(--g6-ui) !important; }
.gen6 .form-card .milner-form-back { background: transparent !important; color: var(--g6-ink) !important; border: 1.5px solid rgba(22,40,62,.14) !important; }
/* Two-segment progress instead of a filling bar. */
.gen6 .m-progress { margin-bottom: 18px; font-weight: 500; letter-spacing: 0; }
.gen6 .m-progress i { display: none; }
.gen6 .m-progress::after { content: ""; flex: 0 0 52px; height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--g6-ink) 0 24px, transparent 24px 28px, var(--m-seg2, rgba(22,40,62,.14)) 28px 52px); }
.gen6 .m-progress[data-step="2"] { --m-seg2: var(--g6-ink); }
.gen6 .m-progress { justify-content: space-between; }
.gen6 .form-step-heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Consent: whole row is the target, box aligned with the first line. */
.gen6 .form-consent { min-height: 44px; padding: 8px 0; color: #4f6275; }
.gen6 .form-consent__checkbox { margin-top: 2px; }
/* Pinned action row inside the sheet: sticky, inset like everything else, above the home indicator. */
.m-sheet .m-pin { position: sticky; bottom: calc(-24px - var(--m-safe-b)); z-index: 2; margin: 10px -20px calc(-24px - var(--m-safe-b)); padding: 12px 20px calc(16px + max(var(--m-safe-b), 8px)); background: var(--g6-paper); box-shadow: 0 -1px 0 rgba(22,40,62,.07); }
.m-sheet .m-pin .milner-form-next { width: 100%; }
/* Consent must never sit behind a pinned action. Step 2 actions follow the legal choice in normal flow. */
.m-sheet .form-step-2 .m-pin { position: static; bottom: auto; margin: 14px 0 0; padding: 12px 0 calc(18px + var(--m-safe-b)); box-shadow: none; }
.gen6 .form-card .milner-form-next, .gen6 .form-card button[type=submit] { background: var(--g6-ink) !important; color: var(--g6-paper) !important; border: 0 !important; }
@media (min-width: 761px) { .m-sheet .m-pin { position: static; margin: 10px 0 0; padding: 0; box-shadow: none; background: none; } }
.m-sheet-x { width: 44px; height: 44px; background: transparent !important; position: relative; }
.m-sheet-x::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: rgba(22,40,62,.07); z-index: -1; }
.m-sheet-x { isolation: isolate; }
.gen6 .m-progress b { font-weight: inherit; }
.m-sheet-or { margin: 6px 0 20px; }
.m-sheet-head p { max-width: none; }
.gen6 .form-consent span { font-size: 12px; line-height: 1.45; }
/* Thumb bar: opaque material, safe area, one secondary style. */
@media (max-width: 760px) {
  .m-bar { background: var(--g6-paper); padding: 10px 14px calc(12px + max(var(--m-safe-b), 6px)); gap: 10px; box-shadow: none; border-top: 1px solid rgba(22,40,62,.09); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .m-bar::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 60px; background: var(--g6-paper); }
  .m-bar .m-bar-call, .m-bar .m-bar-search { background: #fff; color: var(--g6-ink); box-shadow: inset 0 0 0 1.5px rgba(22,40,62,.13); }
  .m-bar .m-bar-call svg, .m-bar .m-bar-search svg { color: var(--g6-ink); }
  /* The header call button hides while the bar is showing (one call action on screen). */
  body.m-bar-on:not(.m-footer-in):not(.m-keyboard) .g6-header .g6-phone { opacity: 0; pointer-events: none; transform: scale(.8); }
  .g6-header .g6-phone { transition: opacity .25s, transform .25s; }
  .g6-header .g6-phone, .g6-menu-trigger { background: rgba(22,40,62,.05) !important; border: 0 !important; }
}
.gen6 .m-opt{font-weight:400;color:#6b7d8f}

/* ---------- Round 3: remaining readability + tap targets on phones ---------- */
@media (max-width: 760px) {
  /* Listing cards (IDX island) */
  .gen6 .ms-listing-meta span { font-size: 13.5px !important; }
  .gen6 .ms-card-courtesy { font-size: 12.5px !important; }
  .gen6 .ms-card-heart { min-width: 44px; min-height: 44px; }
  /* Calculator: real labels, not captions */
  .gen6 .g6-calculator-form label { font-size: 14px !important; }
  .gen6 .g6-calculator-form label > span, .gen6 .g6-calc-note, .gen6 .g6-broker-line { font-size: 13px !important; }
  .gen6 .g6-calculator-form input, .gen6 .g6-calculator-form select { min-height: 48px; font-size: 16px !important; }
  /* Map legends, labels and route chips */
  .gen6 .ct-route__legend span, .gen6 .ct-quad-water, .gen6 .g6-layer-explanation p, .gen6 .g6-instrument-sources p { font-size: 13px !important; }
  .gen6 .ct-route-label { font-size: 12px !important; }
  .gen6 .milner-water-text { font-size: 11.5px !important; }
  .gen6 .leaflet-control-attribution { font-size: 11px !important; }
  .gen6 .ct-quad-link, .gen6 .ct-zip-link, .gen6 .g6-county-reset { min-height: 44px; display: inline-flex; align-items: center; }
  .gen6 #g6-map-feature, .gen6 .g6-keyboard-features select, .gen6 .g6-explorer-city select { font-size: 16px !important; min-height: 44px; }
  /* Legacy templates still used by /home-value/ and the LP pages */
  .gen6 .service-band-link { font-size: 13px !important; letter-spacing: .06em; }
  .gen6 .sell-timeline-week, .gen6 .section-kicker, .gen6 .sell-hero-badge-kicker { font-size: 12px !important; }
  .gen6 .g6-planned-note span { font-size: 11px !important; }
  /* Agent picker: whole row is the target (already a label); bigger radio */
  .gen6 .g6-agent-options input[type=radio] { width: 24px; height: 24px; }
  /* Footer legal link row: comfortable spacing */
  .g6-footer .g6-footer-list { display: flex; flex-wrap: wrap; gap: 4px 18px; }
  .g6-footer .g6-footer-list a { padding: 0 2px; }
  /* Film chips */
  .gen6 .g6-film-chip { font-size: 12px !important; }
}

/* ---------- /home-value/ on phones: the address box comes first ---------- */
@media (max-width: 760px) {
  .page-template-page-home-value .sell-hero-copy { display: flex; flex-direction: column; }
  .page-template-page-home-value .sell-hero-copy > .eyebrow-lux { order: 0; margin-bottom: 10px; }
  .page-template-page-home-value .sell-hero-copy > h1 { order: 1; font-size: clamp(34px, 9.4vw, 42px) !important; line-height: 1.05; margin-bottom: 18px; }
  .page-template-page-home-value .sell-hero-copy > #hv-instant-form { order: 2; margin: 0 0 6px !important; flex-direction: column; gap: 10px; max-width: none; }
  .page-template-page-home-value .sell-hero-copy > #hv-instant-status { order: 3; }
  .page-template-page-home-value .sell-hero-copy > .sell-hero-lead { order: 4; margin-top: 18px; font-size: 16px; color: #3f5367; }
  .page-template-page-home-value .sell-hero-copy > .sell-hero-actions { order: 5; }
  .page-template-page-home-value .sell-hero-copy > .sell-hero-proof { order: 6; }
  .page-template-page-home-value .hero-editorial, .page-template-page-home-value .sell-hero { padding-top: 24px !important; }
  .page-template-page-home-value #hv-instant-address { width: 100%; min-height: 56px; border-radius: 16px; border: 1.5px solid rgba(22,40,62,.18) !important; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%232E6FA3' stroke-width='1.8' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s7-6.1 7-11.5A7 7 0 0 0 5 9.5C5 14.9 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") no-repeat 16px center; padding: 0 16px 0 46px; font: 500 16px/1.2 var(--g6-ui); color: var(--g6-ink); box-shadow: 0 6px 20px rgba(22,40,62,.06); }
  .page-template-page-home-value #hv-instant-address:focus { outline: none !important; border-color: var(--g6-channel) !important; box-shadow: 0 0 0 3px rgba(46,111,163,.16); }
  .page-template-page-home-value #hv-instant-form button { width: 100%; min-height: 54px; justify-content: center; }
  .page-template-page-home-value .sell-hero-actions .btn-lux-outline { border: 0 !important; background: none !important; padding-left: 0 !important; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
}

/* ---------- Homepage hero on phones: actions inside real Safari's first screen ---------- */
@media (max-width: 760px) {
  .home.gen6 .g6-hero-copy { padding-top: 16px !important; }
  .home.gen6 .g6-hero h1 { margin-bottom: 10px !important; }
  .home.gen6 .g6-hero-lede { margin-bottom: 14px !important; }
  .home.gen6 .g6-hero-why { margin: 10px 0 0 !important; font-size: 13px !important; }
  .home.gen6 .g6-hero-why .g6-why-long { display: none; }
  .home.gen6 .g6-video-toggle { left: auto !important; right: 12px !important; bottom: 12px !important; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; font-size: 0; background: rgba(10,22,38,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%23fff'%3E%3Crect x='6' y='5' width='4' height='14' rx='1'/%3E%3Crect x='14' y='5' width='4' height='14' rx='1'/%3E%3C/svg%3E") no-repeat center; border: 0; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
  .home.gen6 .g6-video-toggle[aria-label^="Play"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5.5v13l11-6.5z'/%3E%3C/svg%3E"); }
}

/* ---------- City/county sub-nav on phones: pill chips, big targets, clear scroll ---------- */
@media (max-width: 760px) {
  :root { --g6-subnav-h: 52px; }
  .g6-subnav-links { gap: 6px !important; align-items: center; padding-left: 0; }
  .g6-subnav a { min-width: 44px; min-height: 44px !important; padding: 0 14px; border-radius: 999px; border-bottom: 0 !important; font: 600 14px/1 var(--g6-ui) !important; justify-content: center; background: rgba(250,251,252,.08); }
  .g6-subnav a[aria-current="location"] { background: var(--g6-paper); color: var(--g6-ink); }
  .g6-subnav a { position: relative; }
  .g6-subnav a::after { content: ""; position: absolute; inset: -6px 0; }
  /* Section jumps land below the sticky header + sub-nav */
  .gen6 main [id] { scroll-margin-top: calc(var(--g6-header-h) + var(--g6-subnav-h) + 12px); }
}

/* ---------- Content tables (guides): readable on phones ---------- */
.gen6 .wp-block-table table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.gen6 .wp-block-table th, .gen6 .wp-block-table td { padding: 12px 10px; border-bottom: 1px solid rgba(22,40,62,.1); text-align: left; vertical-align: top; }
.gen6 .wp-block-table th { font: 700 13px/1.3 var(--g6-ui); color: var(--g6-ink); border-bottom-width: 2px; }
.gen6 .wp-block-table td:not(:first-child), .gen6 .wp-block-table th:not(:first-child) { text-align: right; white-space: nowrap; }
.gen6 .wp-block-table figcaption { margin-top: 12px; font-size: 13px; line-height: 1.5; color: #56697c; }
@media (max-width: 760px) {
  .gen6 .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .gen6 .wp-block-table th, .gen6 .wp-block-table td { padding: 11px 8px; font-size: 14.5px; }
  .gen6 .wp-block-table td:first-child { padding-left: 0; }
  .gen6 .wp-block-table td:last-child, .gen6 .wp-block-table th:last-child { padding-right: 0; }
}

/* ---------- Homepage sections on phones (sighted review, round 4) ---------- */
@media (max-width: 760px) {
  /* Book-an-agent roster: one clean list, whole row tappable */
  .g6-team-roster { width: calc(100% - 40px) !important; }
  .g6-team-roster-label { font-size: 12px !important; }
  .g6-team-roster ul { grid-template-columns: 1fr !important; gap: 0 !important; }
  .g6-team-roster li + li { border-top: 1px solid var(--g6-line); }
  .g6-team-roster a { min-height: 68px !important; padding: 10px 0 !important; border-radius: 0 !important; position: relative; padding-right: 28px !important; }
  .g6-team-roster a::after { content: ""; position: absolute; right: 4px; top: 50%; width: 9px; height: 9px; border-top: 2px solid var(--g6-slate); border-right: 2px solid var(--g6-slate); transform: translateY(-50%) rotate(45deg); opacity: .7; }
  .g6-team-roster strong { font-size: 16px !important; }
  .g6-team-roster small { font-size: 13.5px !important; }
  .g6-team-broker { font-size: 13px !important; }

  /* Listing cards: address on its own line, city below, price legible on any photo */
  .ms-listing-head { flex-direction: column !important; align-items: flex-start !important; gap: 2px !important; }
  .ms-listing-addr { white-space: normal !important; font-size: 15.5px !important; }
  .ms-listing-loc { max-width: none !important; text-align: left !important; white-space: normal !important; font-size: 13.5px !important; }
  .ms-listing-price-overlay { font-size: 1.35rem !important; padding: 2px 10px 3px; border-radius: 10px; background: rgba(10,22,38,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); text-shadow: none !important; }
  .gen6 .ms-card-courtesy, .gen6 .ms-mls-attribution, .gen6 [class*="mls-disclaimer"] { font-size: 12.5px !important; line-height: 1.5; }
  .gen6 .ms-listing, .gen6 .ms-listing * { font-family: var(--g6-ui); }
  .gen6 .ms-listing-price-overlay { font-family: var(--g6-display) !important; }
  /* "See every home in Cape Coral" reads as one phrase */
  .g6-homes .g6-action { gap: 6px !important; width: 100%; }
  .g6-homes .g6-action [data-homes-name] { margin: 0 !important; }
  /* City chips scroll to the screen edge with a fade */
  .g6-homes-chips { margin-right: -20px !important; padding-right: 20px; overflow-x: auto; flex-wrap: nowrap !important; -webkit-mask-image: linear-gradient(90deg,#000 88%,transparent); mask-image: linear-gradient(90deg,#000 88%,transparent); scrollbar-width: none; }
  .g6-homes [data-homes-place] { flex: none; }

  /* Reviews: card fits its content; swipe track bleeds to the edge */
  .g6-reviews { margin-right: -20px; padding-right: 20px; scroll-padding-left: 0; }
  .g6-review { min-height: 0 !important; flex-basis: 86% !important; }
  .g6-review-src { font-size: 13.5px !important; }
  .g6-review-src span { white-space: nowrap; }
  .g6-review-who > span > span { font-size: 13.5px !important; }
  .g6-review-more summary { font-size: 14px !important; }

  /* Selling 3-P rows: label above text, not a squeezed two-column table */
  .g6-selling-steps > div { display: block !important; padding: 14px 0 !important; }
  .g6-selling-steps dt { display: block; font-size: 20px; margin: 0 0 4px; }
  .g6-selling-steps dd { display: block; margin: 0; }
  .g6-film-caption p { font-size: 13.5px !important; }
}

/* ---------- round 5 ---------- */
.g6-homes .g6-action { gap: 10px !important; }
.g6-review-src { flex-wrap: nowrap !important; }
.g6-review-src span { white-space: nowrap; }
@media (max-width: 760px) {
  .g6-reviews { align-items: flex-start !important; }
  .g6-review-src { flex-wrap: wrap !important; }
  .ms-listing-price-overlay { font-variant-numeric: lining-nums tabular-nums; background: rgba(10,22,38,.72) !important; }
  .g6-selling-steps { border-top: 1px solid var(--g6-line); }
  .g6-system-label { font: 700 12px/1.3 var(--g6-ui) !important; letter-spacing: .1em !important; text-transform: uppercase; color: var(--g6-slate) !important; }
}
.m-sheet-mira { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; margin: -6px 0 8px; border: 0; background: none; color: #4f6275; font: 500 14px/1.3 var(--g6-ui); cursor: pointer; }
.m-sheet-mira u { color: var(--g6-ink); font-weight: 700; text-underline-offset: 3px; }
.m-sheet-mira svg { width: 16px; height: 16px; color: var(--g6-channel); flex: none; }
.m-sheet-mira[hidden] { display: none; }
.m-sheet.m-in-form .m-sheet-mira { display: none; }
@media (max-width: 760px) {
  /* The floating launcher is folded into "Talk to us" on phones; the chat panel itself still opens normally. */
  .ms-chat-launcher { opacity: 0 !important; pointer-events: none !important; transform: translateY(20px); }
  body.m-bar-on .ms-chat-launcher { bottom: calc(var(--m-bar-h) + 14px + var(--m-safe-b)) !important; }
}

/* Talk sheet finish: direct contact reads first, assistant stays quiet, form doesn't crowd footer. */
.m-sheet-quick a { border: 1.5px solid rgba(22,40,62,.24); box-shadow: none; }
.m-sheet-quick a svg { color: var(--g6-ink); }
.m-sheet-mira { font-size: 13px; color: #5a6f82; margin-top: -8px; margin-bottom: 12px; }
.m-sheet-mira u { font-weight: 600; color: #415a70; }
.m-sheet .form-step-1, .m-sheet .form-step-2 { padding-bottom: 16px; }
.g6-review-date { color: rgba(250,251,252,.72); margin-left: 8px; }
@media (max-width: 760px) {
  .g6-review-src { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
  .g6-review-date { margin-left: 0; margin-top: -4px; font-size: 13px; }
  .g6-review-more { margin-bottom: 4px; }
  .g6-reviews { scroll-padding-left: 0; padding-bottom: 10px; }
}

/* Waterway editorial restored under the live route instrument. */
.g6-waterway-explainer { padding: clamp(48px, 7vw, 100px) 0; }
.g6-waterway-explainer h2 { font: 500 clamp(34px, 5vw, 62px)/1.08 var(--g6-display); letter-spacing: -.025em; max-width: 950px; margin: 0 0 25px; }
.g6-waterway-explainer p { max-width: 780px; line-height: 1.72; margin: 0 0 18px; }
.g6-waterway-soft { background: #f2f4f2; }
.g6-waterway-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; margin: 36px 0; }
.g6-waterway-grid article { background: #fff; border: 1px solid #dce4e2; border-radius: 16px; padding: 26px; }
.g6-waterway-grid article > span { font: 600 12px/1.4 var(--g6-ui); letter-spacing: .08em; text-transform: uppercase; color: #496780; }
.g6-waterway-grid h3 { font: 500 27px/1.15 var(--g6-display); letter-spacing: -.02em; margin: 15px 0; }
.g6-waterway-list { max-width: 840px; list-style: none; margin: 28px 0; padding: 0; }
.g6-waterway-list li { padding: 18px 0; border-top: 1px solid #dce4e2; line-height: 1.65; }
.g6-waterway-list li:last-child { border-bottom: 1px solid #dce4e2; }
@media (max-width: 760px) {
 .g6-waterway-explainer { padding: 48px 0; }
 .g6-waterway-explainer .g6-city-wrap { width: calc(100% - 40px); }
 .g6-waterway-explainer h2 { font-size: clamp(33px, 9vw, 44px); }
 .g6-waterway-grid { grid-template-columns: 1fr; gap: 12px; margin: 28px 0; }
 .g6-waterway-grid article { padding: 22px; }
 .g6-waterway-grid h3 { font-size: 25px; }
}

/* Waterway type cards on phones: the kicker wraps, so give it breathing room. */
@media (max-width: 760px) {
  .g6-waterway-grid article > span { display: block; line-height: 1.45; }
}

/* ---------- Talk-sheet finish (round 5, sighted) ---------- */
/* One ink language: quick-action icons match their labels. */
.m-sheet-quick a svg { color: var(--g6-ink); }
/* Call now is the default action: solid ink vs outline secondary. */
.m-sheet-quick a:first-child { background: var(--g6-ink); color: var(--g6-paper); border-color: var(--g6-ink); }
.m-sheet-quick a:first-child svg { color: var(--g6-paper); }
/* MIRA line: left-aligned to the sheet grid, a full 44px tap row. */
.m-sheet-mira { justify-content: flex-start; min-height: 44px; }
.m-sheet-mira u { text-underline-offset: 3px; }
/* Divider: even rhythm; the form header sits just under it. */
.m-sheet-or { margin: 22px 0 18px; color: var(--g6-ink); opacity: .62; }

/* Round 5 (320px): footer area links and long CTA rows must not fall under 36px touch height. */
@media (max-width: 760px) {
  .g6-footer .g6-area-tree { display: block; }
  .g6-footer .g6-area-tree a, .g6-footer .g6-area-name { min-height: 40px; }
  .g6-reviews-head .g6-text-link, .g6-proof .g6-band-head a { white-space: normal; }
  .g6-main-pages aside .g6-main-link, .g6-guide-row a { min-height: 40px; }
}

/* 2026-09-28: /home-value/ instant-valuation result card must clear the pinned thumb bar at phone width. */
@media (max-width: 760px) {
  body.page-template-page-home-value #valuation-result,
  body.page-template-page-home-value .hv-result-panel { scroll-margin-bottom: calc(var(--m-bar-h) + var(--m-safe-b) + 16px); }
  body.page-template-page-home-value #valuation-result { padding-bottom: calc(var(--m-bar-h) + var(--m-safe-b) + 24px); }
}

/* 2026-09-28 phone pass: 16px inputs (no iOS zoom-on-focus) and a 44px tap floor on small controls. */
#profile-map-address { font-size: 16px; }
@media (pointer: coarse), (max-width: 767px) {
  .profile-toggle-btn { min-height: 44px; }
  .preset-rail__chips a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (pointer: coarse), (max-width: 767px) {
  .g6-subnav-links a { display: inline-flex; align-items: center; min-height: 44px; }
  .profile-panel-close { min-width: 44px; min-height: 44px; }
}
@media (pointer: coarse), (max-width: 767px) {
  .g6-county-reset, [data-poi-clear] { min-height: 44px !important; min-width: 44px !important; }
}

/* =====================================================================================================
   2026-09-29 v7fold: sticky bar, header lockup, Ask MIRA icon, stacked accordions, anchors, labels.
   ===================================================================================================== */
:root { --m-bar-h: 73px; }

/* ---- Header lockup: the stacked crest lettering is ~4px tall at phone width, so phones get the mark + live text ---- */
.g6-brand-text { display: none; }
@media (max-width: 600px) {
  .g6-brand { width: auto !important; flex: 0 1 auto !important; gap: 8px; }
  .g6-brand picture { display: flex; }
  .g6-brand img { height: 38px !important; width: auto; }
  .g6-brand-text { display: inline; font: 700 13px/1 Manrope, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: #095e93; white-space: nowrap; }
}
@media (max-width: 359px) { .g6-brand img { height: 32px !important; } .g6-brand-text { font-size: 12px; letter-spacing: .1em; } .g6-brand { gap: 6px; } }

/* ---- Sticky bar: present from load, 12px top fade, one primary colour, header phone yields ---- */
@media (max-width: 760px) {
  body.gen6 { padding-bottom: calc(var(--m-bar-h) + var(--m-safe-b)) !important; }
  .m-bar { z-index: 1240; }
  .m-bar::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 12px; background: linear-gradient(to top, rgba(250,251,252,.96), rgba(250,251,252,0)); pointer-events: none; }
  body.m-cover .m-bar { transform: translateY(110%); }
  .m-bar .m-bar-talk { background: #2b80bb; color: #fff; }
  .m-bar .m-bar-talk:hover { background: #226a9c; }
  .m-bar .m-bar-talk.m-bar-value { font-size: 14.5px; }
  body.m-bar-show .g6-header .g6-phone { display: none !important; }
  /* 2026-10-12 director (Opus P1-5 phone chrome): at phone width the header carries logo + one action + menu. The phone
     number stays reachable in the hero line, the drawer and the thumb bar, so the header circle is redundant chrome. */
  .g6-header .g6-phone { display: none !important; }
  body.gen6 .g6-footer { scroll-margin-bottom: var(--m-bar-h); }
}

/* ---- Ask MIRA: 48px icon, bottom-right, 24px margin; above the bar on phone; out of the way of copy and the footer ---- */
.ms-chat-launcher { width: 48px !important; height: 48px !important; min-width: 48px !important; min-height: 48px !important; padding: 0 !important; border-radius: 50% !important; justify-content: center !important; gap: 0 !important; right: 24px !important; bottom: 24px !important; background: #095e93 !important; box-shadow: 0 8px 24px rgba(9,94,147,.34) !important; transition: opacity .18s ease, bottom .25s ease !important; }
.ms-chat-launcher svg { width: 22px; height: 22px; flex: none; }
.ms-chat-launcher span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.m-footer-in .ms-chat-launcher, body.m-mira-yield .ms-chat-launcher, body.m-mira-moving .ms-chat-launcher, body.m-cover .ms-chat-launcher, body.m-keyboard .ms-chat-launcher { opacity: 0 !important; pointer-events: none !important; }
@media (max-width: 760px) {
  .ms-chat-launcher { opacity: 1 !important; pointer-events: auto !important; transform: none !important; right: 16px !important; bottom: 24px !important; }
  body.m-bar-show .ms-chat-launcher { bottom: calc(var(--m-bar-h) + 24px + var(--m-safe-b)) !important; }
  body.m-footer-in .ms-chat-launcher, body.m-mira-yield .ms-chat-launcher, body.m-mira-moving .ms-chat-launcher, body.m-cover .ms-chat-launcher, body.m-keyboard .ms-chat-launcher, body.g6-launcher-yield .ms-chat-launcher { opacity: 0 !important; pointer-events: none !important; }
}

/* ---- Accordions (/buy/, /sell/ worklists): stacked on phone: number + title on one line, summary below, 44px + ---- */
@media (max-width: 900px) {
  .gen6 .g6-main-worklist details > summary { display: grid !important; grid-template-columns: 30px minmax(0, 1fr) 44px; grid-template-rows: auto auto; align-items: start; gap: 0 8px; min-height: 44px; padding: 2px 0; }
  .g6-main-worklist summary::before { grid-column: 1; grid-row: 1; font-size: 13px; opacity: .75; padding-top: 9px; }
  .g6-main-worklist summary span { grid-column: 2; grid-row: 1; font: 500 24px/1.2 var(--g6-display, 'Cormorant Garamond', serif); }
  .g6-main-worklist summary em { grid-column: 1 / 3; grid-row: 2; font-size: 15px; line-height: 1.45; opacity: .85; margin: 6px 0 2px; }
  .g6-main-worklist summary::after { grid-column: 3; grid-row: 1 / 3; align-self: start; justify-self: end; width: 44px; height: 44px; display: grid; place-items: center; font-size: 28px; opacity: .8; }
  .g6-main-worklist ul { margin-left: 0; padding-left: 20px; }
}

/* ---- Anchors land clear of the sticky header + sub-nav ---- */
.gen6 main [id], .gen6 section[id], .gen6 [id].g6-main-band { scroll-margin-top: 140px; }
@media (max-width: 760px) { .gen6 main [id] { scroll-margin-top: 140px; } }
/* v7fold: header phone returns whenever the bar is not showing (footer / form / map in view) */
@media (max-width: 760px) {
  body.m-bar-on:not(.m-bar-show) .g6-header .g6-phone { opacity: 1 !important; pointer-events: auto !important; transform: none !important; }
}

/* 2026-10-12: one booking action per phone screen; header pill yields while the home hero is in view */
/* 2026-10-12: the one-booking-action-per-screen rule lives in css/gen6-actions.css (final layer) */
