/* =====================================================================
   OMIC public website — V3 design (Dash World Limited)
   Sky-and-cloud openings, editorial off-white pages in OMIC sky blue + red,
   deep ink footer. Desktop: top nav. Phones: app-like shell with a bottom tab bar.
   Replaces site.css + site-rebrand.css on public pages. Light + dark themes.
   ===================================================================== */
:root{
  --paper:#F3F5F4; --paper-2:#E7ECEE; --card:#FFFFFF;
  --ink:#0D1A24; --ink-soft:#4A5A66; --ink-mute:#7F94A3;
  --sky:#3E9BD6; --sky-deep:#145F96; --sky-pale:#CFE6F5;
  --red:#D3222C; --red-deep:#B51A23; --wa:#25D366;
  --line:rgba(13,26,36,.14);
  --hero-a:#6FB6E3; --hero-b:#A9D3EE; --hero-c:#E6EEF0;
  --foot:#0D1A24;
  --f-display:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-logo:"Montserrat","Archivo",system-ui,sans-serif;
  --f-serif:"Instrument Serif",Georgia,serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --gut:clamp(16px,4vw,56px); --max:1320px; --nav-h:76px; --tab-h:64px;
  /* legacy names used by inline styles in older templates */
  --blue:var(--sky-deep); --grey:var(--ink-soft); --rule:var(--line); --serif:var(--f-serif);
  color-scheme:light;
}
html[data-theme="dark"]{
  --paper:#0A141C; --paper-2:#101E29; --card:#132433;
  --ink:#E8F0F5; --ink-soft:#A9BBC8; --ink-mute:#7F94A3;
  --sky:#5CB4E8; --sky-deep:#8ACCF2; --sky-pale:#16354B;
  --line:rgba(232,240,245,.14);
  --hero-a:#0E2D45; --hero-b:#163F5C; --hero-c:#0F2131;
  --foot:#050B10;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--f-display);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
h1,h2,h3,h4{margin:0;text-wrap:balance;font-weight:700;letter-spacing:-.02em}
p{margin:0}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.skip-link{position:fixed;left:16px;top:10px;z-index:100;background:var(--card);color:var(--sky-deep);padding:10px 14px;border-radius:10px;transform:translateY(-200%);transition:transform .2s;text-decoration:none;font-weight:600}
.skip-link:focus{transform:none}
.hp{position:absolute!important;left:-9999px}
.kicker,.eyebrow{font:500 12px/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:inline-flex;align-items:center;gap:10px}
.kicker::before,.eyebrow::before{content:"";width:8px;height:8px;background:var(--red);border-radius:50%;flex:none}
.kicker.pale{color:#CFE6F5}
.serif{font:italic 400 1.06em/1 var(--f-serif);letter-spacing:-.01em;color:var(--sky-deep)}
.lead{font-size:clamp(16px,1.4vw,18px);color:var(--ink-soft);max-width:58ch;margin-top:14px}
.sec{padding-block:clamp(64px,9vw,120px)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:18px 32px;flex-wrap:wrap;margin-bottom:clamp(26px,4vw,44px)}
.sec-head h2,.h-l{font-size:clamp(32px,4.4vw,60px);line-height:1;letter-spacing:-.03em;font-stretch:90%;margin-top:14px}
.more,.link-arrow{font-weight:600;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:3px;white-space:nowrap}
.more:hover,.link-arrow:hover{color:var(--red)}

/* buttons (old names kept: btn-blue, btn-line, btn-outline, btn-w) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 15px/1 var(--f-display);padding:15px 22px;border-radius:999px;border:0;cursor:pointer;text-decoration:none;transition:transform .25s,background .25s,color .25s,box-shadow .25s;white-space:nowrap}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-deep);transform:translateY(-2px)}
.btn-blue,.btn-ink{background:var(--ink);color:var(--paper)}
.btn-blue:hover,.btn-ink:hover{background:var(--sky-deep);color:#fff}
.btn-line,.btn-outline,.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-line:hover,.btn-outline:hover,.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-w,.btn-light{background:#fff;color:#0D1A24}
.btn-wa{background:var(--wa);color:#073B1E}
.btn-wa:hover{background:#1fb859}

/* messages */
.msg{padding:12px 16px;border-radius:14px;margin-bottom:14px;font-size:14.5px;border:1px solid transparent}
.m-err{background:#FBE1E2;color:#8F141B;border-color:#F3B8BB}
.m-ok{background:#DDF1E4;color:#1D6B3A}

/* ---------- logo ---------- */
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand svg{height:40px;width:auto;flex:none}
.brand .swash{fill:var(--red)}
.brand-txt{display:grid;line-height:1}
.brand-txt b{font:800 21px/1 var(--f-logo);letter-spacing:.04em}
.brand-txt i{font:700 8.5px/1 var(--f-logo);letter-spacing:.2em;margin-top:4px;color:var(--ink-soft);font-style:normal;text-transform:uppercase}
.brand.light{color:#fff}.brand.light .brand-txt i{color:#9FB3C2}

/* ---------- header ---------- */
.site-head{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .35s,box-shadow .35s}
.site-head.solid,.site-head.always{background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:20px;height:var(--nav-h)}
.desktop-nav{display:flex;gap:28px;font-size:15px;font-weight:500}
.desktop-nav a{text-decoration:none;position:relative;padding-block:6px}
.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--red);transition:right .3s}
.desktop-nav a:hover::after,.desktop-nav a[aria-current="page"]::after{right:0}
.head-right{display:flex;align-items:center;gap:10px}
.theme-toggle{border:1.5px solid var(--line);background:transparent;border-radius:999px;padding:9px 14px;font:600 12px var(--f-mono);letter-spacing:.06em;cursor:pointer;color:var(--ink)}
.theme-toggle:hover{border-color:var(--ink)}
.head-right .btn{padding:12px 18px;font-size:14px}
.menu-btn{display:none;place-items:center;width:44px;height:44px;border:0;background:var(--ink);border-radius:50%;color:var(--paper);cursor:pointer}
.menu-btn span{display:block;width:16px;height:1.5px;background:currentColor;box-shadow:0 5px 0 currentColor,0 -5px 0 currentColor}
.page-pad{padding-top:calc(var(--nav-h) + env(safe-area-inset-top,0px))}
.drawer{position:fixed;inset:0;z-index:80;background:#0D1A24;color:#F3F5F4;padding:calc(env(safe-area-inset-top,0px) + 20px) var(--gut) calc(env(safe-area-inset-bottom,0px) + 28px);display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.drawer-x{background:none;border:1px solid rgba(255,255,255,.3);color:inherit;border-radius:999px;padding:10px 16px;font:500 13px var(--f-mono);cursor:pointer}
.drawer a.big{font:700 36px/1.2 var(--f-display);font-stretch:110%;text-decoration:none;letter-spacing:-.02em;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding-block:6px}
.drawer a.big[aria-current="page"]{color:var(--sky)}
.drawer .meta{margin-top:auto;padding-top:28px;font:13px/1.8 var(--f-mono);color:#9FB3C2}
.drawer .theme-toggle{color:#fff;border-color:rgba(255,255,255,.3);align-self:flex-start;margin-top:18px}

/* inner-page opening band */
.page-hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--hero-a) 0%,var(--hero-b) 55%,var(--paper) 100%);padding-block:calc(var(--nav-h) + 52px) 52px}
.page-hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(40px,6vw,88px);line-height:.96;letter-spacing:-.035em;font-weight:800;font-stretch:88%}
.crumb{font:500 12px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--red)}

/* ---------- home hero: looping reel in the clouds ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--hero-a) 0%,var(--hero-b) 40%,var(--hero-c) 74%,var(--paper) 100%);padding-top:calc(var(--nav-h) + env(safe-area-inset-top,0px))}
.hero>canvas.clouds{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-word{position:absolute;left:0;right:0;top:calc(var(--nav-h) + 3%);text-align:center;font:800 clamp(110px,27vw,460px)/.8 var(--f-logo);letter-spacing:-.04em;color:rgba(255,255,255,.6);user-select:none;pointer-events:none;animation:omic-rise 1.4s cubic-bezier(.2,.7,.2,1) both}
html[data-theme="dark"] .hero-word{color:rgba(255,255,255,.12)}
.hero-word .o{color:var(--red);opacity:.9}
@keyframes omic-rise{from{transform:translateY(30%);opacity:0}}
.reel{position:relative;width:min(900px,94vw);margin:clamp(40px,7vw,90px) auto 0;aspect-ratio:900/560;animation:omic-lift 1.4s .2s cubic-bezier(.2,.7,.2,1) both}
@keyframes omic-lift{from{transform:translateY(50px);opacity:0}}
.reel-mask{position:absolute;inset:0;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 26%),linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,transparent 0%,#000 26%),linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);mask-composite:intersect}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.3s ease}
.slide.on{opacity:1}
.slide img,.slide video{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform-origin:50% 60%}
.slide.on img{animation:omic-kb var(--hold,6s) linear both}
.slide.alt.on img{animation-name:omic-kb2}
@keyframes omic-kb{from{transform:scale(1.02)}to{transform:scale(1.14) translate(-2%,-1.5%)}}
@keyframes omic-kb2{from{transform:scale(1.14) translate(2%,-1%)}to{transform:scale(1.03)}}
.reel canvas.mist{position:absolute;left:-10%;bottom:-8%;height:42%;width:120%;pointer-events:none;z-index:2}
.reel-empty{position:absolute;inset:18% 12% 0;display:grid;place-items:center;text-align:center;color:var(--ink-soft);font:500 13px var(--f-mono)}
.reel-ui{position:absolute;left:12%;right:12%;bottom:18px;z-index:3;display:flex;justify-content:space-between;align-items:end;gap:12px}
.cap{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.95);color:#0D1A24;border-radius:999px;padding:7px 16px 7px 7px;text-decoration:none;box-shadow:0 10px 30px -12px rgba(13,26,36,.45);max-width:100%;min-width:0;transition:transform .25s}
.cap:hover{transform:translateY(-2px)}
.cap span{font:600 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--red);color:#fff;padding:7px 10px;border-radius:999px;flex:none}
.cap b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bars{display:flex;gap:6px;flex:none}
.bars button{width:30px;height:4px;border:0;padding:0;border-radius:4px;background:rgba(13,26,36,.25);overflow:hidden;cursor:pointer;position:relative}
html[data-theme="dark"] .bars button{background:rgba(255,255,255,.25)}
.bars button i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(0)}
.bars button.done i{transform:scaleX(1)}
.bars button.run i{animation:omic-fill var(--hold,6s) linear forwards}
@keyframes omic-fill{to{transform:scaleX(1)}}
.hero-copy{position:relative;z-index:3;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:end;padding-block:30px 26px}
.hero-copy h1{font-size:clamp(38px,5vw,76px);line-height:.96;letter-spacing:-.035em;font-weight:800;font-stretch:88%}
.hero-copy p{color:var(--ink-soft);max-width:40ch;font-size:17px;margin-bottom:18px}
.est{font:500 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:12px}

/* search (home) */
.searchbar{position:relative;z-index:4;background:var(--card);border-radius:22px;box-shadow:0 30px 60px -30px rgba(13,26,36,.35),0 0 0 1px var(--line);padding:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:stretch;margin-bottom:clamp(36px,5vw,64px)}
.searchbar>div{display:grid;gap:2px;padding:9px 14px;border-radius:14px;background:var(--paper);min-width:0}
.searchbar>div:last-child{padding:0;background:none}
.searchbar label{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.searchbar select,.searchbar input{border:0;background:none;font-weight:600;font-size:16px;padding:2px 0;appearance:none;-webkit-appearance:none;width:100%;min-width:0;color:var(--ink)}
.searchbar input::placeholder{color:var(--ink-mute)}
.searchbar .btn{height:100%;border-radius:14px;padding-inline:26px}

/* facts strip */
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.fact{display:flex;gap:16px;align-items:baseline;padding-top:18px;border-top:1px solid var(--line)}
.fact b{font:800 clamp(30px,3.4vw,46px)/1 var(--f-display);font-stretch:80%;letter-spacing:-.03em}
.fact b sup{color:var(--red);font-size:.5em;vertical-align:top}
.fact span{color:var(--ink-soft);font-size:14px;max-width:24ch}

/* ---------- property cards (property_card()) ---------- */
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pcard{display:grid;gap:14px;text-decoration:none;min-width:0;align-content:start;color:var(--ink)}
.pcard-img{position:relative;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,var(--sky-pale),var(--paper-2))}
.pcard-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.pcard:hover .pcard-img img{transform:scale(1.05)}
.noimg{position:absolute;inset:0;display:grid;place-items:center;color:var(--sky-deep);opacity:.5}
.pbadge{position:absolute;top:14px;left:14px;font:600 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:var(--red);color:#fff}
.pbadge.sale{background:#0D1A24}
.pstatus{position:absolute;top:14px;right:14px;font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:#fff;color:#0D1A24}
.pcard-b{display:grid;gap:6px}
.ptype{font:500 12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.pcard h3{font-size:19px;letter-spacing:-.01em;font-weight:600;line-height:1.25}
.pprice{font:500 15px var(--f-mono);color:var(--sky-deep)}
.pprice .per{color:var(--ink-soft);font-size:.9em}
.pspecs{font-size:14px;color:var(--ink-soft);display:flex;gap:6px 14px;flex-wrap:wrap}

/* home duo + band */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.duo-card{position:relative;border-radius:32px;overflow:hidden;min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(24px,3vw,40px);text-decoration:none;color:#fff;isolation:isolate;background:#0D1A24}
.duo-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.duo-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,26,36,.05) 25%,rgba(13,26,36,.86))}
.duo-card:hover>img{transform:scale(1.05)}
.duo-card h2{font-size:clamp(28px,3vw,42px);letter-spacing:-.03em;line-height:1.02;margin:12px 0;max-width:16ch}
.duo-card p{color:#D6DFE5;max-width:40ch;margin-bottom:22px}
.duo-card .kicker{color:#CFE6F5}
.duo-card.portal{background:linear-gradient(160deg,#145F96,#0D1A24 75%)}
.duo-card.portal::after{display:none}
.mini{background:#fff;color:#0D1A24;border-radius:20px;padding:18px;margin-bottom:auto;box-shadow:0 30px 50px -30px rgba(0,0,0,.6);display:grid;gap:12px;max-width:420px}
.mini-due{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#0D1A24;color:#fff;border-radius:14px;padding:14px 16px}
.mini-due small{font:11px var(--f-mono);color:#9FB3C2;letter-spacing:.08em;text-transform:uppercase;display:block}
.mini-due b{font:800 22px/1.1 var(--f-display);font-stretch:85%}
.mini-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}
.pill{font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 9px;border-radius:999px;white-space:nowrap;display:inline-block}
.pill.ok{background:#DDF1E4;color:#1D6B3A}.pill.prog{background:#CFE6F5;color:#145F96}.pill.wait{background:#FFF0D6;color:#8A5A00}
.band{position:relative;min-height:clamp(380px,48vw,600px);display:grid;align-items:end;overflow:hidden;color:#fff;border-radius:32px;isolation:isolate;background:#0D1A24}
.band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;object-position:50% 60%}
.band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,26,36,0) 30%,rgba(13,26,36,.78))}
.band-in{padding:clamp(24px,4vw,48px);display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.band h2{font-size:clamp(34px,5vw,80px);line-height:.95;letter-spacing:-.04em;font-stretch:88%;max-width:13ch}
.band h2 .serif{color:#fff}

/* ---------- listing page ---------- */
.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;background:var(--card);border-radius:24px;padding:12px;box-shadow:0 0 0 1px var(--line)}
.filters>div{display:grid;gap:2px;padding:9px 14px;border-radius:14px;background:var(--paper);min-width:0}
.filters>div:last-child{background:none;padding:0;align-items:stretch}
.filters label{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.filters input,.filters select{border:0;background:none;font-weight:600;font-size:15px;padding:2px 0;width:100%;min-width:0;color:var(--ink)}
.filters .btn{border-radius:14px}
.list-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.list-chips a{border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.list-chips a[aria-current="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.rescount{font:500 13px var(--f-mono);color:var(--ink-soft);margin:26px 0 22px}
.pager{display:flex;gap:8px;flex-wrap:wrap;margin-top:40px}
.pager a,.pager span{padding:10px 15px;border-radius:999px;border:1.5px solid var(--line);text-decoration:none;font-weight:600;font-size:14px}
.pager .on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.empty{padding:clamp(32px,5vw,56px);text-align:center;border:1.5px dashed var(--line);border-radius:24px;display:grid;gap:14px;justify-items:center}
.empty h3{font-size:clamp(22px,2.4vw,30px)}
.empty p{color:var(--ink-soft);max-width:52ch}
.filter-toggle{display:none}

/* ---------- property detail ---------- */
.pd-top{padding-top:calc(var(--nav-h) + 26px)}
.property-carousel{margin:0 0 40px}
.carousel-stage{position:relative;aspect-ratio:16/8;overflow:hidden;background:var(--paper-2);border-radius:26px}
.carousel-main{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.carousel-main img{display:block;width:100%;height:100%;object-fit:cover}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#0D1A24;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
.carousel-arrow:hover,.carousel-arrow:focus-visible{background:var(--red);color:#fff}
.carousel-prev{left:16px}.carousel-next{right:16px}
.carousel-count{position:absolute;right:16px;bottom:14px;padding:7px 11px;background:rgba(13,26,36,.75);color:#fff;font:600 12px var(--f-mono);border-radius:999px}
.carousel-thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding:2px;scrollbar-width:none}
.carousel-thumbs::-webkit-scrollbar{display:none}
.carousel-thumb{flex:0 0 108px;aspect-ratio:4/3;padding:0;border:2px solid transparent;border-radius:14px;background:var(--paper-2);cursor:pointer;overflow:hidden;opacity:.7}
.carousel-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.carousel-thumb.is-active{border-color:var(--red);opacity:1}
.det{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:clamp(28px,4vw,64px);align-items:start;padding-bottom:40px}
.det h1{font-size:clamp(32px,4vw,56px);letter-spacing:-.03em;line-height:1;font-stretch:90%;margin-top:14px}
.det .loc{color:var(--ink-soft);margin-top:12px;font-size:16px}
.det h3{font-size:22px;margin:40px 0 14px;padding-top:30px;border-top:1px solid var(--line)}
.det p{color:var(--ink-soft);max-width:64ch;margin-bottom:12px;font-size:17px}
.specrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.specrow>div{background:var(--card);box-shadow:0 0 0 1px var(--line);border-radius:16px;padding:12px 16px;display:grid;gap:2px;min-width:96px}
.specrow .k{font:500 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.specrow .v{font-size:18px;font-weight:700}
.feats{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;list-style:none;padding:0;margin:0}
.feats li{display:flex;gap:10px;align-items:center}
.feats li::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--sky);flex:none}
.vid{aspect-ratio:16/9;margin-top:16px;background:#000;border-radius:20px;overflow:hidden}
.vid iframe{width:100%;height:100%;border:0;display:block}
.video-request{margin-top:24px}
.enq{position:sticky;top:calc(var(--nav-h) + 20px);background:#0D1A24;color:#fff;border-radius:28px;padding:clamp(22px,3vw,32px);display:grid;gap:8px}
.enq h3{font-size:24px;letter-spacing:-.02em;color:#fff;margin:0;padding:0;border:0}
.enq .p{font:500 22px var(--f-mono);color:#8FD0F7;margin-top:6px}
.enq .pm{font:12px var(--f-mono);color:#9FB3C2;margin-bottom:10px}
.enq form{display:grid;gap:6px}
.enq label{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#9FB3C2;margin-top:8px}
.enq input,.enq textarea{width:100%;border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);border-radius:14px;padding:13px 15px;color:#fff;font-size:16px}
.enq input:focus,.enq textarea:focus{outline:none;border-color:var(--sky)}
.enq input::placeholder,.enq textarea::placeholder{color:#7F94A3}
.enq .btn{margin-top:14px;width:100%}
.enq .alt{font-size:13.5px;color:#B9C7D1;text-align:center;margin-top:8px;line-height:1.7}
.enq .alt a{color:#fff}
.mbar{display:none}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(7,14,20,.96);display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;padding:72px 22px 28px}
.lightbox figure{margin:0;height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.lightbox figure img{display:block;max-width:100%;max-height:calc(100vh - 130px);width:auto;height:auto;object-fit:contain;border-radius:8px}
.lightbox figcaption{color:#fff;margin-top:14px;font:13px var(--f-mono)}
.lightbox button{border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:30px;line-height:1;cursor:pointer}
.lightbox button:hover,.lightbox button:focus-visible{background:var(--red)}
.lightbox .lb-close{position:absolute;right:22px;top:18px;font-size:26px}
.gallery-active{overflow:hidden}

/* ---------- forms + contact ---------- */
.form-card,.panel{background:var(--card);border-radius:28px;box-shadow:0 0 0 1px var(--line);padding:clamp(22px,3vw,36px)}
.form-card form,.panel form{display:grid;gap:6px}
.form-card label,.panel label{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px}
.form-card input,.form-card select,.form-card textarea,.panel input,.panel select,.panel textarea{width:100%;min-width:0;border:1.5px solid var(--line);background:var(--paper);border-radius:14px;padding:14px 16px;font-size:16px;color:var(--ink)}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:var(--sky)}
.c-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;margin-top:40px;align-items:start}
.off-grid{display:grid;gap:16px}
.off{background:var(--card);border-radius:24px;padding:24px;box-shadow:0 0 0 1px var(--line);display:grid;gap:6px}
.off.head{background:#0D1A24;color:#fff;box-shadow:none}
.off.head address,.off.head .tel{color:#B9C7D1}
.off .tag{font:500 11px var(--f-mono)!important;letter-spacing:.12em!important;text-transform:uppercase;color:var(--red)!important}
.off h3{font-size:22px}
.off address{font-style:normal;color:var(--ink-soft);line-height:1.6}
.off .tel{font:500 15px var(--f-mono);text-decoration:none;color:var(--sky-deep)}
.off.head .phones{display:grid;gap:4px;margin-top:6px}
.off.head .phones a{font:500 16px var(--f-mono);color:#fff;text-decoration:none}
.off-sub{margin-top:8px}
.off-sub h4{font-size:18px;margin-bottom:10px}

/* services + landlords pages */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:var(--line);border-radius:28px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.svc-grid .svc{background:var(--paper);padding:clamp(24px,3vw,40px);display:grid;gap:12px;align-content:start;scroll-margin-top:calc(var(--nav-h) + 20px);transition:background .3s}
.svc-grid .svc:hover{background:var(--card)}
.svc .k{font:500 11px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.svc h2,.svc h3{font-size:clamp(22px,2.3vw,30px)}
.svc p{color:var(--ink-soft);max-width:50ch}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:0;counter-reset:s}
.step{counter-increment:s;background:var(--card);border-radius:24px;padding:28px;box-shadow:0 0 0 1px var(--line);display:grid;gap:12px;align-content:start}
.step::before{content:"Step " counter(s);font:500 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sky-deep)}
.step h3{font-size:22px}.step p{color:var(--ink-soft);font-size:15px}
.handle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.h-card{background:var(--card);border-radius:24px;padding:28px;box-shadow:0 0 0 1px var(--line);display:grid;gap:10px;align-content:start}
.h-card svg{width:34px;height:34px;stroke:var(--sky-deep);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.h-card h3{font-size:20px}.h-card p{color:var(--ink-soft);font-size:15px}
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,72px);align-items:center}
.arch{aspect-ratio:4/5;border-radius:200px 200px 28px 28px;overflow:hidden;max-height:600px;background:var(--paper-2)}
.arch img{width:100%;height:100%;object-fit:cover}
.cta-band{background:#0D1A24;color:#fff;border-radius:32px;padding:clamp(32px,5vw,64px);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta-band h2{font-size:clamp(28px,3.6vw,48px);letter-spacing:-.03em;line-height:1.02;max-width:18ch}
.cta-band .serif{color:var(--sky)}

/* ---------- footer ---------- */
.site-foot{background:var(--foot);color:#F3F5F4;padding-top:clamp(56px,7vw,96px);border-radius:40px 40px 0 0;margin-top:clamp(64px,8vw,112px)}
.f-top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:40px}
.f-brand p{color:#9FB3C2;margin-top:18px;max-width:36ch;font-size:15px}
.f-col h4{font:500 11px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#7F94A3;margin-bottom:16px}
.f-col a,.f-col span{display:block;text-decoration:none;padding:5px 0;color:#D6DFE5;font-size:15px}
.f-col a:hover{color:#fff}
.f-col .mono{font:500 13px var(--f-mono)}
.f-bot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-block:22px 30px;padding-right:96px;border-top:1px solid rgba(255,255,255,.12);margin-top:clamp(40px,5vw,64px);font:12px var(--f-mono);color:#7F94A3}
.dw-credit{display:inline-flex;align-items:center;gap:10px;text-decoration:none;padding:8px 14px 8px 8px;border-radius:999px;background:#070707;box-shadow:inset 0 0 0 1px rgba(214,174,98,.45);color:#F5F1E8;font:600 12px var(--f-display);transition:box-shadow .3s}
.dw-credit:hover{box-shadow:inset 0 0 0 1px #D6AE62}
.dw-credit i{width:24px;height:24px;border-radius:50%;background:#D6AE62;color:#070707;display:grid;place-items:center;font:800 11px var(--f-display);font-style:normal}
.dw-t b{color:#D6AE62;letter-spacing:.12em;font-weight:800}

/* ---------- WhatsApp widget ---------- */
.wa-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:70;width:60px;height:60px;border-radius:50%;border:0;background:var(--wa);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 30px -10px rgba(7,59,30,.6);transition:transform .25s}
.wa-fab:hover{transform:scale(1.06)}
.wa-fab svg{width:30px;height:30px}
.wa-fab .ping{position:absolute;inset:0;border-radius:50%;animation:omic-ping 2.6s infinite}
@keyframes omic-ping{0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
.wa-panel{position:fixed;right:20px;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:71;width:min(360px,calc(100vw - 32px));background:#fff;color:#0D1A24;border-radius:24px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(13,26,36,.45),0 0 0 1px rgba(13,26,36,.14);animation:omic-pop .3s cubic-bezier(.2,.7,.2,1)}
@keyframes omic-pop{from{transform:scale(.92) translateY(10px);opacity:0}}
.wa-head{background:#075E54;color:#fff;padding:18px;display:flex;gap:12px;align-items:center}
.wa-av{width:44px;height:44px;border-radius:50%;background:#fff;color:#0D1A24;display:grid;place-items:center;flex:none}
.wa-av svg{height:28px;width:auto}.wa-av .swash{fill:var(--red)}
.wa-head b{display:block;font-size:16px}.wa-head small{font-size:12px;color:#C9F2DA}
.wa-x{margin-left:auto;background:rgba(255,255,255,.15);border:0;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:16px}
.wa-body{padding:18px;background:#ECE5DD}
.wa-bubble{background:#fff;border-radius:4px 16px 16px 16px;padding:12px 14px;font-size:14px;max-width:88%;box-shadow:0 1px 1px rgba(0,0,0,.08)}
.wa-opts{display:grid;gap:8px;padding:14px 18px 18px}
.wa-opts a{display:flex;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;padding:12px 14px;border-radius:14px;background:#F3F5F4;font-weight:600;font-size:14px;color:#0D1A24}
.wa-opts a:hover{background:#DDF7E7}
.wa-num{font:12px var(--f-mono);color:#4A5A66;padding:0 18px 16px}

/* ---------- mobile tab bar ---------- */
.tabbar{display:none}

/* reveal: visible at rest, animates only once JS opts in */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}

@media (max-width:1100px){
  .searchbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .searchbar>div:last-child{grid-column:1/-1}
  .searchbar .btn{width:100%;padding-block:16px}
}
@media (max-width:1000px){
  :root{--nav-h:64px}
  .desktop-nav,.head-right .btn,.head-right .theme-toggle{display:none}
  .menu-btn{display:grid}
  .brand svg{height:34px}.brand-txt b{font-size:18px}.brand-txt i{font-size:7.5px}
  .hero-copy{grid-template-columns:1fr;gap:6px}
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .duo,.c-grid,.split{grid-template-columns:1fr}
  .det{grid-template-columns:1fr}
  .enq{position:static}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters>div:last-child{grid-column:1/-1}
  .f-top{grid-template-columns:1fr 1fr}.f-brand{grid-column:1/-1}
  .handle{grid-template-columns:1fr 1fr}
  .arch{max-width:480px}
}
/* phones: app-like shell */
@media (max-width:720px){
  body{padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom,0px))}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:color-mix(in srgb,var(--card) 96%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 -1px 0 var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
  .tabbar a{display:grid;justify-items:center;align-content:center;gap:4px;height:var(--tab-h);text-decoration:none;font:600 10.5px var(--f-display);color:var(--ink-mute)}
  .tabbar svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .tabbar a[aria-current="page"]{color:var(--ink)}
  .tabbar a[aria-current="page"] svg{stroke:var(--red)}
  .wa-fab{bottom:calc(var(--tab-h) + 14px + env(safe-area-inset-bottom,0px));right:14px;width:54px;height:54px}
  .wa-panel{right:16px;left:16px;width:auto;bottom:calc(var(--tab-h) + 80px + env(safe-area-inset-bottom,0px))}
  .hero-word{top:calc(var(--nav-h) + 2%);font-size:34vw}
  .reel{width:100%;aspect-ratio:4/5;margin-top:44px}
  .reel-mask{-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 20%);mask-image:linear-gradient(180deg,transparent 0%,#000 20%)}
  .reel-ui{left:16px;right:16px;bottom:16px;flex-direction:column-reverse;align-items:flex-start;gap:10px}
  .bars button{width:22px}
  .hero-copy{padding-block:18px 16px}
  .hero-copy h1{font-size:36px}
  .hero-copy p{font-size:16px;margin-bottom:4px}
  .searchbar{grid-template-columns:1fr;padding:8px;border-radius:20px;margin-bottom:32px}
  .facts{gap:12px}.fact{flex-direction:column;gap:6px}.fact span{font-size:12px}
  .rail{display:grid;grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scrollbar-width:none;padding-bottom:6px}
  .rail::-webkit-scrollbar{display:none}
  .rail>*{scroll-snap-align:start}
  .pgrid:not(.rail){grid-template-columns:1fr}
  .duo-card{min-height:460px;border-radius:24px}
  .band{border-radius:24px;min-height:440px}
  .band .btn{flex:1}
  .page-hero{padding-block:calc(var(--nav-h) + 26px) 34px}
  .list-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut)}
  .filter-toggle{display:inline-flex;margin-bottom:12px}
  .filters{display:none;grid-template-columns:1fr}
  .filters.open{display:grid}
  .pd-top{padding-top:var(--nav-h)}
  .pd-top .property-carousel{margin-inline:calc(var(--gut) * -1)}
  .pd-top .crumb{margin-bottom:12px}
  .carousel-stage{border-radius:0;aspect-ratio:4/3.3}
  .carousel-arrow{width:40px;height:40px;font-size:24px}
  .carousel-thumbs{padding-inline:var(--gut)}
  .det{padding-bottom:20px}
  .carousel-thumb{flex-basis:84px}
  .feats{grid-template-columns:1fr}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:8px;position:fixed;left:0;right:0;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom,0px));z-index:61;background:var(--card);padding:10px 12px;box-shadow:0 -1px 0 var(--line),0 -10px 30px -20px rgba(0,0,0,.3)}
  .mbar .btn{padding:13px 10px;font-size:14px}
  body.has-mbar{padding-bottom:calc(var(--tab-h) + 72px + env(safe-area-inset-bottom,0px))}
  body.has-mbar .wa-fab{bottom:calc(var(--tab-h) + 86px + env(safe-area-inset-bottom,0px))}
  .lightbox{grid-template-columns:46px minmax(0,1fr) 46px;padding:64px 8px 20px}
  .lightbox button{width:42px;height:42px}
  .svc-grid{grid-template-columns:1fr;border-radius:22px}
  .steps,.handle{grid-template-columns:1fr}
  .cta-band{border-radius:24px}.cta-band .btn{flex:1}
  .site-foot{border-radius:28px 28px 0 0}
  .f-top{gap:28px}
  .f-bot{display:grid;justify-content:start;gap:16px;padding-right:0;padding-bottom:26px}
  .dw-credit{justify-self:start;padding:9px 18px 9px 9px;border-radius:18px;gap:12px}
  .dw-credit i{width:34px;height:34px;font-size:14px}
  .dw-t{display:grid;gap:3px;line-height:1.1}
  .dw-t span{font-weight:500;font-size:11px;color:#CFC8B8}
  .dw-t b{font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
}
