/* =====================================================================
   CBA app layer: phones (below 768) and iPads (768 to 1180).
   Everything here is scoped by media query so desktop (above 1180) keeps
   today's layout. Loaded right after site.css; overrides, never edits it.
   Spec: scratchpad/audit/mobile-design/spec.md (items 2 to 14).
   ===================================================================== */

:root {
  --peach: #f3c9a3; --peach-2: #fbeadb; --wa: #25d366; --wa-d: #128c4b;
  --glass: rgba(255,255,255,.78);
  --blur: saturate(1.8) blur(22px);
  --spring: cubic-bezier(.32,.72,0,1);
  --sat: env(safe-area-inset-top, 0px);
  --sab: env(safe-area-inset-bottom, 0px);
  --sal: env(safe-area-inset-left, 0px);
  --sar: env(safe-area-inset-right, 0px);
  --tab-h: 58px;
  --rail: 84px;
  --hair: .5px solid rgba(13,13,15,.14);
}

/* ---------------------------------------------------------------- page transitions (item 5) */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .3s; animation-timing-function: var(--spring); }
::view-transition-group(lst-hero) { animation-duration: .42s; animation-timing-function: var(--spring); }
.hdr { view-transition-name: hdr; }
.tabbar { view-transition-name: tabbar; }
.card__slides img.vt { view-transition-name: lst-hero; }
.pdp .gal__i--0 img { view-transition-name: lst-hero; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}

/* Elements that only exist for the app layer stay out of the desktop layout */
.tabbar, .edbar__fab, .fbar, .fchips, .lnav, .gal__n, .card__pl, .card__wa, .pdp-bar__sub, .hdr__lt, .card .tag--type { display: none; }
.gal__i--x { display: none; }
.pdp-bar b span { font-size: inherit; color: inherit; font-weight: inherit; }
.pdp-bar__wa svg { flex: none; }
.pdp-bar__lbl { font-style: normal; }
[dir="rtl"] .gal__n { direction: ltr; unicode-bidi: isolate; }
.pdp-bar__sub, .card__pl span, .lnav__t { unicode-bidi: plaintext; }
.sheet:not([open]) { display: none; }

/* ---------------------------------------------------------------- shared sheet (used on all sizes) */
.sheet { border: 0; padding: 0; color: var(--ink); background: #fff; overflow: hidden; display: flex; flex-direction: column;
  width: min(560px, calc(100vw - 48px)); max-height: min(760px, calc(100dvh - 48px)); border-radius: 28px;
  box-shadow: 0 40px 120px -30px rgba(0,0,0,.55); opacity: 0; transform: translateY(24px) scale(.98);
  transition: transform .5s var(--spring), opacity .3s ease; }
.sheet.is-in { opacity: 1; transform: none; }
.sheet:focus { outline: none; }
.fs [data-fs-group="beds"] .bchips { grid-template-columns: repeat(4, 1fr); }
.sheet::backdrop { background: rgba(13,13,15,0); transition: background .35s ease; }
.sheet.is-in::backdrop { background: rgba(13,13,15,.38); }
.sheet__grab { flex: none; height: 22px; display: grid; place-items: center; cursor: grab; touch-action: none; }
.sheet__grab::before { content: ""; width: 36px; height: 5px; border-radius: 3px; background: #d6d5d1; }
.sheet__hd { flex: none; display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: 8px; padding: 0 12px 10px; touch-action: none; }
.sheet__hd h2 { margin: 0; text-align: center; font-size: 17px; font-weight: 800; letter-spacing: -.01em; }
.sheet__x { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--soft); color: var(--ink); display: grid; place-items: center; cursor: pointer; }
.sheet__x svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.sheet__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 4px 18px 18px; }
.sheet__ft { flex: none; display: flex; gap: 12px; align-items: center; padding: 12px 18px calc(12px + var(--sab)); border-top: var(--hair); background: #fff; }
.sheet__sec { padding: 18px 0; border-bottom: 1px solid var(--line); }
.sheet__sec:last-child { border-bottom: 0; }
.sheet__sec > h3 { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 12px; font-size: 17px; font-weight: 800; letter-spacing: -.015em; }
.sheet__sec > h3 small { font-size: 14px; font-weight: 600; color: var(--muted); }
.abtn { height: 52px; padding: 0 22px; border-radius: 16px; border: 0; font: inherit; font-size: 16px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; cursor: pointer; text-decoration: none; }
.abtn--ink { background: var(--ink); color: #fff; }
.abtn--red { background: var(--red); color: #fff; }
.abtn--wa { background: var(--wa); color: #fff; }
.abtn--line { background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
.abtn--link { background: none; padding: 0 6px; height: 44px; text-decoration: underline; text-underline-offset: 3px; color: var(--ink); }
.abtn svg { width: 20px; height: 20px; flex: none; }
.abtn:disabled { opacity: .5; }
.tap, .abtn, .bchip, .tile, .tabbar a, .tabbar button, .lnav__b, .card__wa, .sheet__x { transition: transform .18s var(--ease), background-color .2s, opacity .2s, box-shadow .2s; -webkit-tap-highlight-color: transparent; }
.tap:active, .abtn:active, .bchip:active, .tile:active, .tabbar a:active, .tabbar button:active, .lnav__b:active, .card__wa:active, .sheet__x:active { transform: scale(.96); }

/* Big chips and tiles */
.bchips { display: grid; grid-template-columns: repeat(auto-fill, minmax(62px, 1fr)); gap: 8px; }
.bchip { height: 52px; padding: 0 10px; border-radius: 16px; border: 1px solid var(--line); background: #fff; color: var(--ink); font: inherit; font-size: 15px; font-weight: 700; display: grid; place-items: center; cursor: pointer; white-space: nowrap; }
.bchip[aria-pressed="true"] { background: var(--peach-2); border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.tile { min-height: 84px; padding: 12px 6px; border-radius: 16px; border: 1px solid var(--line); background: #fff; color: var(--ink); font: inherit; font-size: 13.5px; font-weight: 700; display: grid; justify-items: center; align-content: center; gap: 6px; cursor: pointer; text-align: center; }
.tile svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.tile[aria-pressed="true"] { background: var(--peach-2); border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.aseg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; padding: 3px; border-radius: 14px; background: var(--soft); }
.aseg button { height: 40px; border: 0; border-radius: 11px; background: none; font: inherit; font-size: 14.5px; font-weight: 700; color: var(--muted); cursor: pointer; }
.aseg button[aria-pressed="true"] { background: #fff; color: var(--ink); box-shadow: 0 2px 8px -2px rgba(13,13,15,.18); }
.abox { display: grid; gap: 2px; padding: 10px 14px; border-radius: 16px; border: 1px solid var(--line); }
.abox span { font-size: 13px; font-weight: 600; color: var(--muted); }
.abox { min-height: 66px; align-content: center; }
.abox select { height: 32px; border: 0; padding: 0; margin: 0; font: inherit; font-size: 17px; font-weight: 800; background: none; color: var(--ink); appearance: none; -webkit-appearance: none; outline: none; width: 100%; }
.agrid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* Skeleton shimmer */
.sk { background: linear-gradient(100deg, #efeee9 30%, #f8f7f3 50%, #efeee9 70%) 0 0 / 300% 100%; animation: sk 1.3s linear infinite; border-radius: 10px; }
@keyframes sk { to { background-position: -100% 0; } }
.card__media.is-wait { background: linear-gradient(100deg, #efeee9 30%, #f8f7f3 50%, #efeee9 70%) 0 0 / 300% 100%; animation: sk 1.3s linear infinite; }
.card__media.is-wait img { opacity: 0; }
.card__media img { transition: opacity .35s ease, transform .8s var(--ease); }
.skc { display: grid; gap: 10px; }
.skc__ph { aspect-ratio: 4 / 3.3; border-radius: 20px; }
.skc__l { height: 18px; } .skc__l--w { width: 46%; height: 24px; } .skc__l--m { width: 70%; } .skc__l--s { width: 55%; }

/* ---------------------------------------------------------------- full-screen search sheet (item 12) */
.ss { --pad: 16px; }
.ss__top { flex: none; display: flex; align-items: center; gap: 10px; padding: calc(10px + var(--sat)) var(--pad) 10px; }
.ss__field { flex: 1; display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 14px; border-radius: 14px; background: var(--soft); }
.ss__field svg { width: 20px; height: 20px; flex: none; fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round; }
.ss__field input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font: inherit; font-size: 17px; font-weight: 600; color: var(--ink); }
.ss__field input::placeholder { color: #8d8d94; font-weight: 500; }
.ss__cancel { border: 0; background: none; font: inherit; font-size: 16px; font-weight: 700; color: var(--ink); padding: 10px 2px; cursor: pointer; }
.ss__seg { flex: none; margin: 2px var(--pad) 8px; }
.ss__body { padding: 0 var(--pad) calc(24px + var(--sab)); }
.ss__h { margin: 18px 0 6px; font-size: 14px; font-weight: 700; color: var(--muted); }
.ss__list { list-style: none; margin: 0; padding: 0; }
.ss__list a, .ss__list button { width: 100%; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 12px; min-height: 60px; padding: 8px 0; border: 0; border-bottom: 1px solid var(--line); background: none; font: inherit; color: var(--ink); text-align: start; text-decoration: none; cursor: pointer; }
.ss__ic { width: 44px; height: 44px; border-radius: 12px; background: var(--soft); display: grid; place-items: center; color: var(--ink-2); }
.ss__ic svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ss__nm { min-width: 0; }
.ss__nm b { display: block; font-family: var(--serif); font-weight: 400; font-size: 21px; line-height: 1.15; letter-spacing: -.005em; color: #8d8d94; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ss__nm b mark { background: none; color: var(--ink); }
.ss__nm small { display: block; font-size: 13px; color: var(--muted); font-weight: 600; }
.ss__n { font-size: 13px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.ss__empty { padding: 24px 0; color: var(--muted); }

/* ---------------------------------------------------------------- Add to Home Screen sheet (item 11) */
.a2 .sheet__body { text-align: center; padding-top: 6px; }
.a2__icon { width: 84px; height: 84px; margin: 4px auto 14px; border-radius: 20px; box-shadow: 0 14px 34px -14px rgba(13,13,15,.45), 0 0 0 1px rgba(13,13,15,.06); }
.a2 h2 { margin: 0 0 6px; font-size: 24px; letter-spacing: -.025em; }
.a2 p { margin: 0 auto 16px; max-width: 340px; color: var(--ink-2); }
.a2__steps { list-style: none; margin: 0 auto; padding: 0; max-width: 360px; display: grid; gap: 8px; text-align: start; }
.a2__steps li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; background: var(--soft); font-weight: 600; }
.a2__steps svg { width: 22px; height: 22px; flex: none; fill: none; stroke: #0a84ff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.a2 .sheet__ft { justify-content: center; }
.a2 [data-a2-ios], .a2 [data-a2-and] { display: none; }
.a2.is-ios [data-a2-ios], .a2.is-and [data-a2-and] { display: revert; }
.a2.is-ios ol[data-a2-ios] { display: grid; }

/* ---------------------------------------------------------------- Book a viewing sheet (item 6) */
.bv__days { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.bv__days .bchip, .bv__times .bchip { height: auto; min-height: 52px; }
.bv__days .bchip { display: grid; gap: 0; padding: 8px 2px; line-height: 1.15; }
.bv__days small { font-size: 11.5px; font-weight: 600; color: var(--muted); }
.bv__days b { font-size: 19px; }
.bv__times { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.bv input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.bv label.bchip { position: relative; }
.bv label.bchip:has(input:checked) { background: var(--peach-2); border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.bv label.bchip:has(input:focus-visible) { outline: 2px solid var(--red); outline-offset: 2px; }
.bv__me { display: grid; gap: 10px; }
.bv__me .fld { margin: 0; }
.bv__me input { width: 100%; height: 52px; border-radius: 14px; border: 1px solid var(--line); padding: 0 14px; font: inherit; font-size: 16px; }
.bv__me label { display: block; font-size: 13px; font-weight: 700; color: var(--muted); margin: 0 0 4px; }
.bv.is-known .bv__me { display: none; }
.bv__known { display: none; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: 14px; background: var(--soft); font-weight: 600; }
.bv.is-known .bv__known { display: flex; }
.bv__known button { border: 0; background: none; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; color: var(--ink); }
.bv .sheet__ft { display: grid; }
.bv .sheet__ft .abtn { width: 100%; }
.bv .form-msg { margin: 0; text-align: center; font-size: 14px; }
.bv .form-msg:empty { display: none; }
.bv__done { display: none; text-align: center; padding: 30px 6px 10px; }
.bv.is-sent .bv__done { display: block; }
.bv.is-sent .bv__form-body, .bv.is-sent .sheet__ft { display: none; }
.bv__done svg { width: 72px; height: 72px; fill: none; stroke: #25a55a; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.bv__done h3 { margin: 10px 0 6px; font-size: 22px; letter-spacing: -.02em; }
.bv__done p { color: var(--ink-2); margin: 0 0 18px; }

/* Safari 17 and older need the prefixed backdrop-filter (generated from site.css rules that only had the unprefixed one) */
body.menu-open .hdr { -webkit-backdrop-filter: none; }
.hero__chips a { -webkit-backdrop-filter: blur(8px); }
.fav { -webkit-backdrop-filter: blur(6px); }
.modal::backdrop { -webkit-backdrop-filter: blur(4px); }
.map::before { -webkit-backdrop-filter: blur(3px); }
.aw-hero .search { -webkit-backdrop-filter: none; }
.lx-dock { -webkit-backdrop-filter: blur(12px); }
.hz-film__card { -webkit-backdrop-filter: blur(10px); }
.ldr__ph figcaption { -webkit-backdrop-filter: blur(8px); }
.tm-bar { -webkit-backdrop-filter: blur(14px); }
.tm-card__latest { -webkit-backdrop-filter: blur(8px); }
.sv-trust li { -webkit-backdrop-filter: blur(8px); }
.hb-chips a { -webkit-backdrop-filter: blur(8px); }
.tx-bar { -webkit-backdrop-filter: blur(14px); }
.sg-mk__play { -webkit-backdrop-filter: blur(8px); }
.sv-hero--split .sv-trust li { -webkit-backdrop-filter: none; }
.gv-float { -webkit-backdrop-filter: blur(10px); }
.iv-board { -webkit-backdrop-filter: blur(14px); }
.ap2-medal { -webkit-backdrop-filter: blur(14px); }
.gp::backdrop { -webkit-backdrop-filter: blur(6px); }
.tm-chip { -webkit-backdrop-filter: blur(10px); }
.tm-card__hi b { -webkit-backdrop-filter: blur(6px); }
.ft2-card__top i { -webkit-backdrop-filter: blur(8px); }
.gp__ph figcaption { -webkit-backdrop-filter: blur(8px); }
.ld3-yel__tag { -webkit-backdrop-filter: blur(10px); }
.cv-party > span { -webkit-backdrop-filter: blur(8px); }
.lp-card__tag { -webkit-backdrop-filter: blur(8px); }
.lp-toast { -webkit-backdrop-filter: blur(10px); }
.mk-chart { -webkit-backdrop-filter: blur(10px); }
.ar-k { -webkit-backdrop-filter: blur(8px); }
.ar-card__chips i { -webkit-backdrop-filter: blur(8px); }
.sl-k { -webkit-backdrop-filter: blur(8px); }
.rl-bub { -webkit-backdrop-filter: blur(12px); }
.nav__mega { -webkit-backdrop-filter: blur(18px) saturate(1.4); }
.nav__ft-k { -webkit-backdrop-filter: blur(8px); }
.sx2__ic { -webkit-backdrop-filter: blur(8px); }
.rcta--feature { -webkit-backdrop-filter: blur(6px); }
.rv-lv__ph em { -webkit-backdrop-filter: blur(6px); }
.fh__bar { -webkit-backdrop-filter: blur(12px); }
.tsw__i { -webkit-backdrop-filter: blur(8px); }
.mk-val2__card { -webkit-backdrop-filter: blur(8px); }
.hm-sig .card { -webkit-backdrop-filter: blur(6px); }
.hm-fc__ago { -webkit-backdrop-filter: blur(8px); }
.gal__act { -webkit-backdrop-filter: blur(8px); }
.dvx__az { -webkit-backdrop-filter: blur(10px); }
.lg__stage::before { -webkit-backdrop-filter: blur(2px); }
.opx__chips a { -webkit-backdrop-filter: blur(10px); }

/* -webkit-mask-image for older Chromium and Samsung Internet (generated) */
.sn-hero__grid { -webkit-mask-image: radial-gradient(ellipse 90% 80% at 70% 40%, #000 30%, transparent 85%); }
.sn-visits::before { -webkit-mask-image: linear-gradient(90deg, #000, transparent 60%); }
.ap2-marq { -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.rv2-cols { -webkit-mask-image: linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent); }
.ft2-group { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cv-hero__lines { -webkit-mask-image: linear-gradient(90deg, transparent, #000 50%); }
.pbar__m { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.nw-marq { -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
/* overflow: clip fallback (Safari 15 and older ignore clip and let glows and marquees spill sideways); generated */
@supports not (overflow: clip) {
.fq { overflow: hidden; }
.sn-hero { overflow: hidden; }
.sn-visits { overflow: hidden; }
.gv-hero { overflow: hidden; }
.gv-fam { overflow: hidden; }
.iv-hero { overflow: hidden; }
.pt-hero { overflow: hidden; }
.pt-calc { overflow: hidden; }
.ab2-hero { overflow: hidden; }
.ab2-tl { overflow: hidden; }
.ab2-group { overflow: hidden; }
.cmp { overflow: hidden; }
.cr-grads { overflow: hidden; }
.ap2-hero { overflow: hidden; }
.ap2-media { overflow: hidden; }
.ld2-hero { overflow: hidden; }
.cr-cult { overflow: hidden; }
.pm-hero { overflow: hidden; }
.cv-hero { overflow: hidden; }
.cv-hub { overflow: hidden; }
.pt-pact { overflow: hidden; }
.ld3-yel { overflow: hidden; }
@media (max-width: 600px) { .sg-paper { overflow: hidden; } }
.lp-hero { overflow: hidden; }
.lp-days { overflow: hidden; }
.lp-owners { overflow: hidden; }
.lp-end { overflow: hidden; }
.mk-hero { overflow: hidden; }
.mk-yield { overflow: hidden; }
.sx-hero { overflow: hidden; }
.sx-group { overflow: hidden; }
.ar-hero { overflow: hidden; }
.sl-hero { overflow: hidden; }
.sl-val { overflow: hidden; }
.af-hero { overflow: hidden; }
.rg { overflow: hidden; }
.sx2 { overflow: hidden; }
.rg2 { overflow: hidden; }
.cw2 { overflow: hidden; }
.tx-hero:has(.tx-search.is-open) { overflow-x: hidden; }
}
/* Instrument Serif ships one weight: never let Safari fake a bold (generated) */
.ab-hello__t span,
.ab-hero__h em,
.ab-mission,
.ab-ticker span:nth-of-type(3n+2),
.ab-voice--big blockquote,
.ab-voice__q,
.ab2-hero__h em,
.ab2-letter__big,
.ab2-letter__q,
.ab2-tl__y,
.ab3-p__b b,
.af-hero__h em,
.af-rules__grid span,
.agp__h em,
.agr__c--big blockquote,
.agr__q,
.agw__s span,
.agx__h em,
.ap-award__yr,
.ap-cover__txt blockquote,
.ap-hero__h em,
.ap-hero__k b,
.ap-lead__big,
.ap-marq span,
.ap-tl__y,
.ap2-card__hl,
.ap2-feat__k b,
.ap2-hero__h em,
.ap2-lead__big,
.ap2-lead__h,
.ap2-marq__t span,
.ap2-media__pubs li,
.ap2-roll__yr,
.ap2-trophy__yr,
.ar-card__rank,
.ar-hero__h em,
.at-c__n,
.at-h1 em,
.aw-end__h em,
.aw-h__t em,
.aw-hero__h em,
.aw-quote blockquote,
.aw-sell__h em,
.aw-state__p em,
.bc__h em,
.cine__h em,
.cmp__x b,
.cp-hero__h em,
.cq-hero__h em,
.cq-pr b,
.cr-academy__k b,
.cr-apply__next li::before,
.cr-bar b,
.cr-book__spine em,
.cr-cult__big b,
.cr-perk span,
.cr-pill__n,
.cr-role__n,
.cr-sim__end p,
.cr-story__q,
.cr-voice blockquote,
.ct2-hero__h em,
.ct2-lang__tabs b,
.cv-doc__hd b,
.cv-hero__h em,
.cv-hub__card b,
.cv-strip b,
.cw2__vs b,
.dvf h2 em,
.dvf__r span,
.dvh__h em, .dvp__h em,
.dvj__t span,
.dvp__wg b,
.dvq__h em,
.dvs__h em,
.dvs__known li span,
.dvs__lead,
.dvx__word,
.ed__h,
.ed__nums dd,
.eq:not(.is-listing) .eq__title,
.eq__h em,
.fq__n,
.fqh__h em,
.fqp__q span,
.ft2-card__top b,
.ft2-clock b,
.ft2-cta__h em,
.gd-card a i,
.gd-h em,
.gh-c__n,
.gh-start ol li::before,
.gh__h em,
.gv-card__t,
.gv-hero__h em,
.gv-stamp b,
.h1 em, .h2 em, .hero__h em, .ph__h em,
.hb-hero__h em,
.hb-tile b em,
.hh__vs,
.hz-card__t span,
.hz-h1 em,
.in-mast__h em,
.intent__k,
.iv-hero__h em,
.iv-out__total > b,
.iv-slide__n,
.iv-strip b,
.iv-why__i b,
.ix-hello__word,
.jr__count b,
.jr__num,
.ld2-hero__h em,
.ld2-stage blockquote,
.ld3-lead h3,
.ld3-lead__big,
.ld3-news__mast b,
.ld3-yel__q,
.ld4-pc__n,
.ld5-list__n,
.ldr-mission__t,
.ldr-next__i span,
.ldr-origin__pt span,
.ldr-tl__when,
.ldr__q,
.lg__h em,
.lp-ask__n,
.lp-day__n,
.lp-end__h em,
.lp-hero__h em,
.lp-mode__grid span,
.lx-founder blockquote,
.lx-h1 em, .lx-h2 em,
.lx-pop h3 em,
.lxc__no,
.lxh__brand em,
.lxh__h em,
.lxp__l b,
.mg__h em,
.mh__h em,
.mk-bars__n,
.mk-hero__h em,
.mk2__b span,
.mnav__n,
.nav__mega p b,
.nb__head h2 em,
.noir__h,
.noir__strip b,
.nw-hero__h em,
.opx__h em,
.pm-hero__h em,
.pm-m b,
.pm-year__m,
.potw__n,
.pp-h1 em,
.prose--guide h2::before,
.pt-hero__u,
.pt-paper__hd b,
.pt-paper__n,
.pt-paper__sig--you em,
.pw--kt,
.rv-spot blockquote,
.rv-spot::before,
.rv2-cloud button:nth-child(3n+2),
.rv2-hero::before,
.rv2-hero__h em,
.rv2-score > b,
.sg-docs b,
.sg-gv__pass b,
.sg-yield__list b,
.sl-hero__h em,
.sl-pil__n,
.sl-say__q,
.sn-hero__h em,
.steps span,
.sv-bento__i span,
.sv-dt__c > span,
.sv-hero__h em,
.sv-list__items li span,
.sv-quote blockquote,
.sv-quote::before,
.sv-scard__n,
.sv-tick b,
.sv-zig__i span,
.sx-core b,
.sx-hero__h em,
.sx2__b b,
.sx2__h em,
.sx2__n,
.th-a--vs em,
.th__h em,
.tm-card__hi b,
.tm-careers__h em,
.tm-hero__h em,
.tn__n,
.tx-hero__h em,
.tz-a--vs em,
.tz__h em,
.v-3 .h2,
.yl__h em { font-synthesis: none; }

/* ---------------------------------------------------------------- compatibility fixes for touch browsers (compat.md items 3, 5, 6, 7, 9, 13, 18) */
@media (pointer: coarse) {
  /* iOS zooms into any field under 16px */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea { font-size: max(16px, 1em) !important; }
  /* the page must not scroll behind a dialog or the menu */
  html:has(dialog[open]), html:has(body.menu-open) { overflow: hidden; }
  .mnav, .eq__in, .gp, .lightbox, .sheet__body { overscroll-behavior: contain; }
  /* notch and home indicator, including landscape */
  .wrap, .hdr__in { padding-inline: max(var(--gut), env(safe-area-inset-left)) max(var(--gut), env(safe-area-inset-right)); }
  .wa-float { bottom: calc(14px + var(--sab)); right: calc(14px + var(--sar)); }
  .lx-dock { bottom: calc(20px + var(--sab)); }
  .lx-pop { bottom: calc(20px + var(--sab)); }
  .lp-toast, .edtoast, .app-toast { margin-bottom: var(--sab); }
}
/* touch screens: hover effects must not stick after a tap */
@media (hover: none) {
  .wa-float:hover, .card:hover, .card__enq:hover, .gal__i:hover img, .card:hover .card__slides img, .eq__intent button:hover, .ft2-act:hover { transform: none; }
  .card:hover { box-shadow: none; }
  .card .card__nav { display: none; }
}
/* small screens and old Safari: dynamic viewport units with vh fallbacks */
.lightbox { height: 100vh; height: 100dvh; }
.lightbox figure { max-height: 86vh; max-height: 86dvh; }
.mapview { height: calc(100vh - var(--hdr) - 160px); height: calc(100dvh - var(--hdr) - 160px); }
@supports not (height: 100svh) {
  .hero { min-height: max(680px, 100vh); }
  .lx-hero--prestige { min-height: 100vh; }
  .at-hero { height: 100vh; }
}
@supports not (height: 100dvh) { .eq { max-height: min(760px, calc(100vh - 24px)); } }
/* a card photo slider inside a sideways rail: the inner slider keeps the gesture */
.rail .card__slides { scroll-snap-type: x proximity; overscroll-behavior-x: contain; }

/* ---------------------------------------------------------------- toast, saved hearts, enquiry confirmation (all sizes) */
.app-toast { position: fixed; z-index: 10000; left: 50%; bottom: calc(24px + var(--sab)); display: flex; align-items: center; gap: 14px; padding: 10px 10px 10px 18px; border-radius: 16px; background: rgba(13,13,15,.92); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); color: #fff; font-size: 14.5px; font-weight: 600; box-shadow: 0 20px 50px -18px rgba(0,0,0,.6); transform: translate(-50%, 16px); opacity: 0; transition: transform .45s var(--spring), opacity .25s; max-width: calc(100vw - 24px); }
.app-toast.is-on { transform: translate(-50%, 0); opacity: 1; }
.app-toast[hidden] { display: none; }
.app-toast span:last-child { padding-inline-end: 8px; }
.app-toast a { padding: 8px 14px; border-radius: 11px; background: #fff; color: var(--ink); font-weight: 800; text-decoration: none; white-space: nowrap; }
.fav:not([aria-pressed="true"]) svg path, .gal__act[data-fav]:not([aria-pressed="true"]) svg path { fill: none; stroke: currentColor; stroke-width: 2; }
.eq__whom { display: flex; align-items: center; gap: 12px; margin: -6px auto 20px; padding: 10px 16px 10px 10px; border-radius: 18px; background: var(--soft); text-align: start; max-width: 380px; }
.eq__whom img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: top; flex: none; }
.eq__whom b { display: block; font-size: 15px; } .eq__whom em { display: block; font-style: normal; font-size: 13.5px; color: var(--ink-2); } .eq__whom small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--muted); font-weight: 700; }
/* desktop listing: the contact card always fits the screen, so WhatsApp and Call are in view */
@media (min-width: 1181px) { .pdp .agent-card { max-height: calc(100vh - var(--hdr) - 40px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; } }

/* compact search row + quick chips (phones and iPads) */
.fbar__q { flex: 1; min-width: 0; height: 48px; display: flex; align-items: center; gap: 10px; padding: 0 16px; border: 0; border-radius: 16px; background: var(--soft); color: #7b7b83; font: inherit; font-size: 16px; font-weight: 500; text-align: start; cursor: pointer; }
.fbar__q.has-v { color: var(--ink); font-weight: 700; }
.fbar__q span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fbar__q svg, .fbar__f svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.fbar__q svg { stroke: var(--ink-2); }
.fbar__f { position: relative; width: 48px; height: 48px; flex: none; display: grid; place-items: center; border-radius: 16px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; }
.fbar__f b { position: absolute; top: -6px; inset-inline-end: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 11.5px; font-weight: 800; display: grid; place-items: center; box-shadow: 0 0 0 2px #fff; }
.fbar__f b:empty { display: none; }
.fchip { flex: none; height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; white-space: nowrap; text-decoration: none; cursor: pointer; }
.fchip.on, .fchip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

/* =====================================================================
   PHONES (below 768)
   ===================================================================== */
@media (max-width: 767.98px) {
  :root { --hdr: calc(64px + var(--sat)); }
  html { -webkit-tap-highlight-color: transparent; }
  body { overscroll-behavior-y: none; }

  /* ---- slim header with safe area (items 3, 4) */
  .hdr, .hdr.is-solid { top: calc(8px + var(--sat)); left: calc(8px + var(--sal)); right: calc(8px + var(--sar)); height: 52px; border-radius: 18px; }
  .hdr .hdr__in { padding-inline: 14px 8px; gap: 10px; }
  .hdr .logo img { height: 30px; }
  .hdr__fav, .hdr__tel, .hdr__list, .hdr .btn.hdr__list, .burger { display: none !important; }
  .hdr .prefs { display: block; margin-inline-start: auto; }
  .hdr .prefs__btn { height: 36px; padding: 0 12px; font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
  .hdr .prefs__lang { display: none; }
  .hdr .prefs__btn span { display: inline; }
  .tabbar .tabbar__logo { display: none; }
  .hdr .prefs__pop { position: fixed; top: calc(var(--sat) + 66px); right: 8px; left: 8px; width: auto; max-width: none; }
  .hdr .prefs__pop::before { display: none; }
  .hdr__cta { margin-inline-start: auto; margin-inline-end: 0; }
  /* large-title companion: the page title fades into the header centre as it scrolls away (item 13) */
  .hdr__lt { display: block; position: absolute; inset-inline: 96px; top: 50%; text-align: center; font-size: 16px; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none;
    opacity: var(--lt-p, 0); transform: translateY(calc(-50% + (1 - var(--lt-p, 0)) * 6px)); }
  .hdr.has-lt .logo { opacity: calc(1 - var(--lt-p, 0)); }

  /* ---- menu becomes a sheet-like overlay that clears the tab bar */
  .mnav { padding: calc(var(--hdr) + 8px) var(--gut) calc(var(--tab-h) + var(--sab) + 24px); }

  /* ---- bottom tab bar (item 3) */
  .tabbar { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; z-index: 60; inset-inline: 0; bottom: 0; padding: 0 calc(6px + var(--sar)) var(--sab) calc(6px + var(--sal));
    background: var(--glass); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-top: var(--hair); transition: transform .42s var(--spring); }
  .tabbar.is-away { transform: translateY(calc(100% + 4px)); }
  .tabbar a, .tabbar button { position: relative; height: var(--tab-h); display: grid; place-items: center; align-content: center; gap: 3px; padding: 0; border: 0; background: none; font: inherit; font-size: 10.5px; font-weight: 600; letter-spacing: 0; color: #74747c; text-decoration: none; cursor: pointer; }
  .tabbar svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .tabbar [aria-current="page"], .tabbar [aria-expanded="true"] { color: var(--ink); }
  .tabbar [aria-current="page"] svg { stroke-width: 2.1; }
  .tabbar [aria-current="page"]::after { content: ""; position: absolute; top: 6px; inset-inline-start: calc(50% + 12px); width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
  .tabbar__badge { position: absolute; top: 5px; inset-inline-start: calc(50% + 6px); min-width: 17px; height: 17px; padding: 0 5px; border-radius: 9px; background: var(--red); color: #fff; font-size: 10.5px; font-weight: 800; font-style: normal; display: grid; place-items: center; box-shadow: 0 0 0 2px #fff; font-variant-numeric: tabular-nums; }
  .tabbar__badge[hidden] { display: none; }
  .tabbar .tabbar__wa { color: var(--wa-d); }
  .tabbar__badge.is-pop { animation: tbPop .5s var(--spring); }
  @keyframes tbPop { 40% { transform: scale(1.35); } }
  body.has-tabbar .wa-float, body.has-tabbar .wa-float-wrap, body.has-tabbar .fab-wa { display: none !important; }
  body.has-tabbar .app-toast { bottom: calc(var(--tab-h) + var(--sab) + 12px); }
  body.page-listing .app-toast { bottom: calc(150px + var(--sab)); }
  body.has-tabbar .ft2 { padding-bottom: calc(28px + var(--tab-h) + var(--sab)); }
  body.has-tabbar .ft2-bot { margin-right: 0 !important; }
  body.sheet-open .tabbar, body.kb-open .tabbar, body.menu-open .tabbar.is-away { transform: translateY(calc(100% + 4px)); }
  body.menu-open .tabbar { transform: none; }

  /* ---- staff edit bar: a small round button top right, never at the bottom (item 2) */
  .edbar { left: auto; right: calc(10px + var(--sar)); top: calc(var(--sat) + 68px); bottom: auto; transform: none; padding: 0; gap: 0; background: none; box-shadow: none; flex-direction: column; align-items: flex-end; z-index: 70; }
  .edbar__fab { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,255,255,.86); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); color: var(--ink); box-shadow: 0 4px 16px -6px rgba(0,0,0,.35), 0 0 0 .5px rgba(13,13,15,.12); cursor: pointer; }
  .edbar__fab svg { width: 18px; height: 18px; }
  .edbar__fab::after { content: ""; position: absolute; top: 3px; right: 3px; width: 7px; height: 7px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 2px #fff; }
  .edbar:not(.is-on) > :not(.edbar__fab) { display: none; }
  .edbar.is-open:not(.is-on) { gap: 6px; }
  .edbar.is-open:not(.is-on) > .edbar__b { display: inline-flex; min-height: 44px; padding: 0 16px; background: rgba(13,13,15,.92); box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); font-size: 14px; }
  .edbar.is-open:not(.is-on) > .edbar__b--go { background: var(--red); }
  /* while editing: a slim bar under the header */
  .edbar.is-on { left: calc(8px + var(--sal)); right: calc(8px + var(--sar)); flex-direction: row; align-items: center; gap: 6px; padding: 5px 5px 5px 12px; border-radius: 16px; background: rgba(13,13,15,.92); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); box-shadow: 0 14px 30px -14px rgba(0,0,0,.6); font-size: 13px; }
  .edbar.is-on .edbar__fab { display: none; }
  .edbar.is-on .edbar__s { padding: 0; margin-inline-end: auto; font-size: 13px; }
  .edbar.is-on .edbar__n { font-size: 12px; }
  .edbar.is-on .edbar__b { min-height: 36px; padding: 0 12px; font-size: 13px; }

  /* ---- dialogs as bottom sheets (item 7) */
  .sheet, .eq, .gp { width: 100%; max-width: 100%; margin: auto 0 0; border-radius: 28px 28px 0 0; max-height: calc(100dvh - var(--sat) - 12px); }
  .sheet { transform: translateY(105%); opacity: 1; }
  .sheet.is-in { transform: none; }
  .sheet.is-drag, .eq.is-drag, .gp.is-drag { transition: none !important; animation: none !important; }
  .sheet--full { max-height: none; height: 100dvh; border-radius: 0; }
  .eq[open] { animation: appSheetUp .5s var(--spring); }
  .eq.is-closing { animation: appSheetDown .28s ease forwards; }
  .gp[open] { animation: appSheetUp .5s var(--spring); }
  .gp.is-closing { animation: appSheetDown .28s ease forwards; }
  @keyframes appSheetUp { from { transform: translateY(100%); } }
  @keyframes appSheetDown { to { transform: translateY(100%); } }
  .eq__in { max-height: calc(100dvh - var(--sat) - 12px); }
  .eq__main { padding-bottom: calc(26px + var(--sab)); }
  .eq__side::before { width: 36px; margin-left: -18px; }
  .eq .appgrab, .gp .appgrab { position: absolute; z-index: 5; top: 0; left: 0; right: 0; height: 30px; touch-action: none; cursor: grab; }
  .gp { padding: 26px 20px calc(20px + var(--sab)); }
  .gp::before { content: ""; position: absolute; top: 8px; left: 50%; width: 36px; height: 5px; margin-left: -18px; border-radius: 3px; background: #d6d5d1; }
  .gp__btns { display: grid; gap: 8px; } .gp__btns .btn { width: 100%; justify-content: center; }

  /* ---- /buy, /rent: large title, compact search row, filters sheet (items 10, 13) */
  .ph--search { padding: 6px 0 6px; }
  .ph--search .crumbs { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
  .ph--search .ph__h { font-size: 34px; line-height: 1.08; font-weight: 800; letter-spacing: -.035em; margin: 0 0 4px; transform-origin: 0 100%; }
  [dir="rtl"] .ph--search .ph__h { transform-origin: 100% 100%; }
  .ph--search .ph__h + p, .ph--search .ph__intro { font-size: 15px; margin: 0; }
  .ph--search .count-pill { background: none; color: var(--ink); padding: 0; font-size: 15px; margin: 0; }
  .ph--search .chips { display: none; }
  .filters-wrap { top: var(--hdr); background: rgba(255,255,255,.9); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-bottom: 0; box-shadow: 0 .5px 0 rgba(13,13,15,.12); padding: 8px 0 10px; }
  .filters-wrap > .filters { display: none; }
  .fbar { display: flex; gap: 10px; padding-inline: var(--gut); }
  .fchips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 10px var(--gut) 0; scroll-padding-inline: var(--gut); }
  .fchips::-webkit-scrollbar { display: none; }
  .sec--results { padding-top: 14px; }
  .rbar { margin-bottom: 14px; }
  .rbar > p { display: none; }
  .rbar__r { min-width: 0; gap: 8px; }
  .rbar .fsel--sort { min-width: 0; flex: 1 1 auto; }
  .rbar .fsel--sort select { min-width: 0; width: 100%; text-overflow: ellipsis; }
  .rbar .view-toggle { flex: none; }
  .grid { grid-template-columns: minmax(0, 1fr); }
  .opx-area { max-width: 100%; min-width: 0; flex-wrap: wrap; }
  .opx-area select { min-width: 0; max-width: 100%; }
  .rbar__r { width: 100%; justify-content: space-between; }
  .rbar p b { font-size: 16px; }
  .rbar .fsel--sort span { display: none; }
  .rbar .fsel--sort { padding-left: 12px; height: 38px; margin: 0; }
  .rbar .fsel--sort select { height: 36px; font-size: 13.5px; }
  .rbar .view-toggle button { height: 32px; padding: 0 10px; font-size: 13px; }

  /* ---- full-bleed listing cards (item 9) */
  .grid > .card, .rail > .card, .empty2 ~ .grid > .card { border: 0; border-radius: 0; background: none; overflow: visible; box-shadow: none !important; transform: none !important; }
  .grid { gap: 30px; }
  .grid > .card .card__media { margin-inline: calc(-1 * var(--gut)); aspect-ratio: 4 / 3.3; border-radius: 0; }
  .card .card__nav { display: none; }
  .card__dots { bottom: 14px; padding: 5px 7px; gap: 4px; border-radius: 999px; background: rgba(13,13,15,.32); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  .card__dots i { width: 6px; height: 6px; background: rgba(255,255,255,.6); }
  .card__dots i.on { width: 18px; }
  .card__tags { top: 14px; inset-inline-start: 14px; left: auto; gap: 6px; }
  .grid > .card .card__tags { inset-inline-start: calc(var(--gut) + 0px); }
  .card .tag { text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 700; padding: 6px 12px; }
  .card .tag--sale, .card .tag--feat { display: none; }
  .card .tag--rent { background: #fff; color: var(--ink); }
  .card .tag--gold { background: var(--peach); color: #4a2f14; }
  .card .tag--type { display: inline-block; background: #fff; color: var(--ink); }
  .card .fav { width: 44px; height: 44px; top: 8px; right: auto; inset-inline-end: 8px; background: rgba(13,13,15,.3); }
  .grid > .card .fav { inset-inline-end: calc(var(--gut) - 6px); }
  .card .fav svg { width: 22px; height: 22px; }
  .card .fav[aria-pressed="true"] { background: rgba(255,255,255,.95); }
  .card .fav.is-pop { animation: favPop .55s var(--spring); }
  @keyframes favPop { 35% { transform: scale(1.28); } }
  .grid > .card .card__body { padding: 14px 0 0; position: relative; padding-inline-end: 56px; }
  .card__price { font-size: 22px; font-variant-numeric: tabular-nums; }
  .card__price small { font-size: 13px; }
  .card__pl { display: block; margin: 4px 0 0; }
  .card__pl b { display: block; font-family: var(--serif); font-weight: 400; font-size: 21px; line-height: 1.15; letter-spacing: -.005em; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .card__pl span { display: block; font-size: 14.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .grid > .card .card__title, .grid > .card .card__loc { display: none; }
  .card__specs { border-top: 0; padding-top: 8px; gap: 0; font-size: 14.5px; font-weight: 600; color: var(--ink-2); }
  .card__specs li + li::before { content: ""; display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: #b5b5bb; vertical-align: middle; margin: 0 9px; }
  .card__specs li.muted { display: none; }
  .grid > .card { position: relative; }
  .grid > .card .card__wa { display: grid; place-items: center; position: absolute; z-index: 2; top: calc(100vw * 3.3 / 4 + 12px); inset-inline-end: 0; width: 46px; height: 46px; border-radius: 50%; background: #e8f8ee; color: var(--wa-d); }
  .card__wa svg { width: 24px; height: 24px; }
  .grid > .card .card__agent { padding: 10px 0 0; }
  .grid > .card .card__agent .card__enq { height: 36px; }
  .rail > .card .card__media { aspect-ratio: 4 / 3.2; border-radius: 18px; overflow: hidden; }
  .rail > .card .card__body { padding: 12px 2px 0; }
  .rail > .card .card__title { display: none; }
  .rail > .card .card__loc { display: none; }
  .grid-cta { margin-inline: calc(-1 * var(--gut)); border-radius: 0; }
  .grid.is-loading > :not(.skc) { display: none; }

  /* ---- listing page: full-bleed gallery, glass nav, action bar (items 6, 8) */
  body.page-listing .hdr { display: none; }
  body.page-listing main { padding-top: 0 !important; }
  .pdp { padding-top: 0; }
  .pdp > .wrap:first-child .crumbs { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
  .lnav { display: flex; position: fixed; z-index: 55; top: 0; inset-inline: 0; align-items: center; gap: 10px; padding: calc(8px + var(--sat)) calc(12px + var(--sar)) 8px calc(12px + var(--sal)); pointer-events: none; }
  .lnav::before { content: ""; position: absolute; inset: 0; background: var(--glass); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); box-shadow: 0 .5px 0 rgba(13,13,15,.14); opacity: var(--ln-p, 0); z-index: -1; }
  .lnav > * { pointer-events: auto; }
  .lnav__t { flex: 1; min-width: 0; text-align: center; font-size: 16px; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: var(--ln-p, 0); }
  .lnav__b { width: 40px; height: 40px; flex: none; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(255,255,255,.86); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); color: var(--ink); box-shadow: 0 2px 12px -4px rgba(0,0,0,.28); cursor: pointer; text-decoration: none; }
  .lnav__b svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
  [dir="rtl"] .lnav__back svg { transform: scaleX(-1); }
  .lnav__b[aria-pressed="true"] { color: var(--red); }
  .lnav__b[aria-pressed="true"] svg { fill: currentColor; }
  .lnav__r { display: flex; gap: 10px; }
  .pdp > .wrap:has(.gal) { padding: 0; max-width: none; }
  .pdp .gal { display: flex; height: 56vh; height: 56svh; min-height: 320px; border-radius: 0; gap: 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
  .pdp .gal::-webkit-scrollbar { display: none; }
  .pdp .gal__i, .pdp .gal__i--x { display: block; flex: 0 0 100%; height: 100%; scroll-snap-align: start; scroll-snap-stop: always; border-radius: 0; }
  .pdp .gal__i img { transform: none !important; }
  .pdp .gal__acts, .pdp .gal__all { display: none; }
  .pdp .gal-wrap { position: relative; }
  .gal__n { display: inline-flex; position: absolute; z-index: 3; bottom: 40px; inset-inline-end: 14px; height: 30px; align-items: center; padding: 0 12px; border-radius: 999px; background: rgba(13,13,15,.5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff; font-size: 13.5px; font-weight: 700; font-variant-numeric: tabular-nums; pointer-events: none; }
  .pdp__grid { position: relative; z-index: 2; margin-top: -28px; padding-top: 22px; background: #fff; border-radius: 28px 28px 0 0; gap: 0; }
  .pdp__tags { display: flex; flex-wrap: wrap; gap: 6px; }
  .pdp__tags .tag--hot { display: none; }
  .pdp__loc { display: block; font-size: 15px; line-height: 1.45; }
  .pdp__loc svg { display: inline-block; vertical-align: -3px; margin-inline-end: 4px; }
  .pdp__tags .tag { white-space: nowrap; text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 700; padding: 6px 12px; }
  .pdp__tags .tag--sale, .pdp__tags .tag--feat { background: var(--soft); color: var(--ink); }
  .pdp__tags .tag--gold { background: var(--peach); color: #4a2f14; }
  .pdp__title { font-family: var(--serif); font-weight: 400; font-size: 34px; letter-spacing: -.01em; line-height: 1.08; }
  .pdp__price b { font-size: 30px; }
  .pdp-bar { padding: 10px calc(var(--gut) + var(--sar)) calc(10px + var(--sab)) calc(var(--gut) + var(--sal)); gap: 10px; background: var(--glass); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-top: var(--hair); box-shadow: none; z-index: 58; }
  .pdp-bar > div { min-width: 0; margin-inline-end: auto; margin-right: auto; display: grid; line-height: 1.2; }
  .pdp-bar > div b { font-size: 19px; font-weight: 800; letter-spacing: -.03em; white-space: nowrap; }
  .pdp-bar .pdp-bar__sub { display: block; font-size: 13px; font-weight: 600; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pdp-bar .btn--wa { width: 52px; height: 52px; padding: 0; border-radius: 16px; display: grid; place-items: center; flex: none; }
  .pdp-bar__lbl { display: none; }
  .pdp-bar .btn--red { height: 52px; padding: 0 20px; border-radius: 16px; font-size: 16px; flex: none; }
  body.page-listing .ft2 { padding-bottom: calc(160px + var(--sab)); }
  body.page-listing.has-tabbar .pdp-bar { bottom: calc(var(--tab-h) + var(--sab)); padding-bottom: 10px; border-top: var(--hair); transition: transform .42s var(--spring), padding .42s var(--spring); }
  body.page-listing.has-tabbar.tab-away .pdp-bar { transform: translateY(calc(var(--tab-h) + var(--sab))); padding-bottom: calc(10px + var(--sab)); }
  body.page-listing .tabbar { border-top: 0; }
  .lsx__t { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  [dir="rtl"] .lsx__t { -webkit-mask-image: linear-gradient(270deg, #000 85%, transparent); mask-image: linear-gradient(270deg, #000 85%, transparent); }

  /* ---- enquiry sheet: Send stays in reach */
  .eq .eq__send { position: sticky; bottom: calc(10px + var(--sab)); z-index: 3; box-shadow: 0 -12px 24px 6px #fff, 0 16px 30px -18px rgba(244,59,47,.8); }
  /* ---- menu: sections scroll into view; sub-links big enough to tap */
  .mnav__g { scroll-margin-top: 8px; }
  .mnav__sub a, .mnav__col a { min-height: 44px; display: flex; align-items: center; }
  /* ---- tap targets of at least 44px */
  .search__f input, .search__f select { min-height: 44px; }
  .card__enq { height: 40px; padding: 0 16px; }
  .dvs__ask, [data-clamp-btn], [class*="review__m"], .link-btn { min-height: 40px; display: inline-flex; align-items: center; }
  .wa-float, [data-video-toggle] { min-width: 44px; min-height: 44px; }
  /* ---- FAQ: the search and topic bar scrolls away instead of covering the answers */
  .fh__bar { position: static !important; }
  /* ---- /areas: sort as chips instead of hidden column headers */
  .ar-tbl__h { display: flex !important; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 12px 14px !important; position: static; letter-spacing: 0; text-transform: none; font-size: 14px; }
  .ar-tbl__h > span { display: none; }
  .ar-tbl__h button { flex: none; height: 36px; padding: 0 14px !important; border-radius: 999px; background: #fff; border: 1px solid var(--line) !important; font-weight: 700; color: var(--ink-2); box-sizing: border-box; }
  .ar-tbl__h button.is-on { background: var(--ink); color: #fff; }
  .ar-tbl__h button.is-on::after { color: #fff; }
  /* ---- /transactions: long option text must not widen the page */
  .tm-select, .tm-select select { max-width: 100%; min-width: 0; }
  .tm-select select { width: 100%; text-overflow: ellipsis; }
  .tm-seg { max-width: 100%; min-width: 0; overflow-x: auto; scrollbar-width: none; }

  /* ---- home hero search: the location field opens the full-screen search */
  .search__f--q input[data-ss-trigger] { caret-color: transparent; }
}

/* =====================================================================
   iPAD (768 to 1180): left rail, split views (items 3, 14)
   ===================================================================== */
@media (min-width: 768px) and (max-width: 1180px), (min-width: 768px) and (max-width: 1400px) and (hover: none) and (pointer: coarse) {
  :root { --gut: 28px; }
  body.has-tabbar { padding-inline-start: calc(var(--rail) + var(--sal)); }
  .tabbar { display: grid; position: fixed; z-index: 60; top: 0; bottom: 0; inset-inline-start: 0; width: calc(var(--rail) + var(--sal)); padding: calc(var(--sat) + 96px) 0 calc(var(--sab) + 16px) var(--sal); grid-template-columns: 1fr; align-content: center; gap: 6px;
    background: rgba(255,255,255,.86); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-inline-end: var(--hair); }
  .tabbar .tabbar__logo { display: block; height: auto; position: absolute; top: calc(var(--sat) + 26px); inset-inline: 0; margin: 0 auto; width: 54px; }
  .tabbar__logo img { width: 54px; height: auto; display: block; }
  .tabbar a, .tabbar button { position: relative; height: 66px; display: grid; place-items: center; align-content: center; gap: 4px; padding: 0; border: 0; background: none; font: inherit; font-size: 11.5px; font-weight: 600; color: #74747c; text-decoration: none; cursor: pointer; }
  .tabbar svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .tabbar [aria-current="page"], .tabbar [aria-expanded="true"] { color: var(--ink); }
  .tabbar [aria-current="page"]::after { content: ""; position: absolute; top: 8px; inset-inline-start: calc(50% + 13px); width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
  .tabbar__badge { position: absolute; top: 6px; inset-inline-start: calc(50% + 6px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--red); color: #fff; font-size: 11px; font-weight: 800; font-style: normal; display: grid; place-items: center; box-shadow: 0 0 0 2px #fff; }
  .tabbar__badge[hidden] { display: none; }
  .tabbar .tabbar__wa { color: var(--wa-d); }
  body.has-tabbar .wa-float, body.has-tabbar .wa-float-wrap, body.has-tabbar .fab-wa { display: none !important; }
  body.has-tabbar .ft2-bot { margin-right: 0 !important; }
  .hdr, .hdr.is-solid { inset-inline-start: calc(var(--rail) + var(--sal) + 12px); left: auto; right: auto; inset-inline-end: calc(12px + var(--sar)); top: calc(12px + var(--sat)); }
  .hdr .logo, .burger, .hdr .nav { display: none !important; }
  .filters-wrap { padding: 12px 0; }
  .filters-wrap > .filters { display: none; }
  .fbar { display: flex; gap: 10px; max-width: 760px; padding-inline: var(--gut); }
  .fchips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 10px var(--gut) 0; }
  .fchips::-webkit-scrollbar { display: none; }
  .hdr .prefs, .hdr__fav { display: block; }
  .hdr__fav { display: grid; }
  .hdr__cta { margin-inline-start: auto; margin-inline-end: 0; }
  .mnav { inset-inline-start: calc(var(--rail) + var(--sal)); padding-top: calc(var(--hdr) + var(--sat) + 16px); padding-bottom: calc(32px + var(--sab)); }
  body.menu-open .tabbar { background: rgba(255,255,255,.94); }
  .edbar { left: calc(50% + var(--rail) / 2); bottom: calc(20px + var(--sab)); }

  /* sheets: centred form sheets */
  .ss { width: min(620px, calc(100vw - var(--rail) - 48px)); height: min(720px, calc(100dvh - 80px)); }
  .ss__top { padding-top: 14px; }

  /* cards: rounded photos, quieter boxes */
  .grid > .card { border: 0; background: none; overflow: visible; box-shadow: none !important; transform: none !important; }
  .grid > .card .card__media { border-radius: 20px; overflow: hidden; }
  .grid > .card .card__body { padding: 14px 2px 0; }
  .card .tag { text-transform: none; letter-spacing: 0; font-size: 12.5px; font-weight: 700; }
  .card .tag--sale, .card .tag--feat { display: none; }
  .card .tag--gold { background: var(--peach); color: #4a2f14; }
  .card .tag--type { display: inline-block; }
  .card__pl { display: block; margin: 2px 0 0; }
  .card__pl b { display: block; font-family: var(--serif); font-weight: 400; font-size: 21px; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .card__pl span { display: block; font-size: 14px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .grid > .card .card__title, .grid > .card .card__loc { display: none; }
  .grid > .card .card__specs { border-top: 0; padding-top: 8px; }
  .grid > .card .card__agent { padding: 10px 2px 0; }
  .grid.is-loading > :not(.skc) { display: none; }
  @media (hover: none) { .card .card__nav { display: none; } }

  /* listing: swipe gallery, overlapping details, action bar */
  .pdp > .wrap:first-child .crumbs { margin-top: 6px; }
  .pdp .gal { display: flex; height: 62vh; max-height: 640px; border-radius: 24px; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .pdp .gal::-webkit-scrollbar { display: none; }
  .pdp .gal__i, .pdp .gal__i--x { display: block; flex: 0 0 100%; height: 100%; scroll-snap-align: start; scroll-snap-stop: always; }
  .pdp .gal__i img { transform: none !important; }
  .pdp .gal-wrap { position: relative; }
  .pdp .gal__all { display: none; }
  .gal__n { display: inline-flex; position: absolute; z-index: 3; bottom: 16px; inset-inline-start: 16px; height: 32px; align-items: center; padding: 0 12px; border-radius: 999px; background: rgba(13,13,15,.5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; pointer-events: none; }
  .pdp__title { font-family: var(--serif); font-weight: 400; letter-spacing: -.01em; }
  .pdp__tags .tag { text-transform: none; letter-spacing: 0; }
  .pdp-bar { background: var(--glass); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-top: var(--hair); box-shadow: none; left: auto; right: auto; inset-inline: calc(var(--rail) + var(--sal)) 0; padding-bottom: calc(10px + var(--sab)); }
  .pdp-bar .pdp-bar__sub { display: block; font-size: 13px; font-weight: 600; color: var(--muted); }
  .pdp-bar > div { display: grid; line-height: 1.2; }
  .pdp-bar .btn { height: 50px; border-radius: 16px; padding: 0 22px; }
}

/* iPad portrait and small iPads: keep the single column, but give the results two columns */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .pdp-bar { display: flex; position: fixed; z-index: 58; bottom: 0; gap: 10px; align-items: center; padding: 10px var(--gut) calc(10px + var(--sab)); }
  .pdp-bar > div { margin-right: auto; margin-inline-end: auto; font-size: 19px; font-weight: 800; }
  body.page-listing .ft2 { padding-bottom: calc(100px + var(--sab)); }
}

/* iPad landscape: list and map side by side; listing as a split view */
@media (min-width: 1024px) and (max-width: 1180px), (min-width: 1024px) and (max-width: 1400px) and (hover: none) and (pointer: coarse) {
  body.app-split .sec--results > .wrap { display: grid; grid-template-columns: 460px minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 0 22px; max-width: none; padding-inline-end: 0; }
  body.app-split .sec--results .rbar { grid-column: 1; }
  body.app-split .sec--results [data-results], body.app-split .sec--results .pagination, body.app-split .sec--results .pager { grid-column: 1; }
  body.app-split .sec--results [data-results] { grid-template-columns: 1fr; gap: 28px; }
  body.app-split .sec--results .mapview { display: block; grid-column: 2; grid-row: 1 / span 3; position: sticky; top: calc(var(--hdr) + var(--sat) + 70px); height: calc(100dvh - var(--hdr) - var(--sat) - 90px); min-height: 0; margin: 0; border-radius: 24px 0 0 24px; }
  [dir="rtl"] body.app-split .sec--results .mapview { border-radius: 0 24px 24px 0; }
  body.app-split .rbar .view-toggle { display: none; }
  body.app-split .sec--results > .wrap > :not(.rbar):not([data-results]):not(.mapview):not(.pagination):not(.pager) { grid-column: 1; }

  .pdp__grid--split { }
  body.page-listing .pdp { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); column-gap: 28px; padding-inline-end: var(--gut); }
  body.page-listing .pdp > .wrap:first-child { grid-column: 1 / -1; }
  body.page-listing .pdp > .wrap:has(.gal) { grid-column: 1; grid-row: 2 / span 2; padding-inline-end: 0; max-width: none; }
  body.page-listing .pdp > .wrap:has(.gal) .gal-wrap { position: sticky; top: calc(var(--hdr) + var(--sat) + 10px); }
  body.page-listing .pdp .gal { height: calc(100dvh - var(--hdr) - var(--sat) - 40px); max-height: none; }
  body.page-listing .pdp > .pdp__grid { grid-column: 2; grid-row: 2; margin-top: 0; grid-template-columns: 1fr; gap: 24px; padding: 0; max-width: none; }
  body.page-listing .pdp > .sec, body.page-listing .pdp > .pdp-bar { grid-column: 1 / -1; }
  body.page-listing .pdp .agent-card { position: static; }
  .pdp-bar { display: none !important; }
}

/* phone in landscape: header, title and filter row stay compact */
@media (max-height: 450px) and (orientation: landscape) {
  .hdr, .hdr.is-solid { height: 46px; top: calc(4px + var(--sat)); }
  :root { --hdr: calc(54px + var(--sat)); }
  .ph--search { padding: 4px 0 2px; }
  .ph--search .ph__h { font-size: 24px; }
  .filters-wrap { padding: 6px 0; }
  .fbar__q, .fbar__f { height: 40px; }
  .fbar__f { width: 40px; }
  .fchips { display: none !important; }
  .tabbar a, .tabbar button { height: 52px; }
}

/* touch devices: no hover-only photo arrows */
@media (hover: none) and (max-width: 1400px) {
  .card .card__nav { display: none; }
  .card:hover { transform: none; box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
  .tabbar, .sheet, .sheet::backdrop, .tap, .abtn, .bchip, .tile { transition: none !important; }
  .sk, .card__media.is-wait { animation: none; }
}
