/* Solenne Residences - fr-vantara likeness build. Original CSS. Tokens measured from the
   reference. Fonts self-hosted. Built by Ziwi. */
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-garamond-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-300.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Playfair Display";src:url("../fonts/playfair-display-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  --paper:#F7F4ED;          /* page ground */
  --paper-2:#FAF8F6;        /* card ground */
  --white:#FFFFFF;
  --ink:#121820;            /* headings, dark buttons */
  --ink-2:#17251E;          /* deep green (footer heads, address) */
  --green:#152818;
  --muted:#5F6670;          /* body */
  --muted-2:#8A8F94;        /* captions */
  --muted-3:#4D5157;        /* glass-caption descriptions (rgb 77,81,87) */
  --accent:#B68A5E;         /* bronze: rules, icons, circles, non-text accents */
  --bronze-text:#7E5C39;    /* bronze set as TEXT (same hue, deepened in-family; 5.50:1 on paper) */
  --bronze-fill:#85613C;    /* bronze as a FILL under a white label (5.57:1) */
  --accent-soft:#E9D9C6;    /* hairlines, borders */
  --line:#E8E3DA;
  --glass:rgba(255,255,255,.72);
  --glass-2:rgba(255,255,255,.4);
  --glass-3:rgba(255,255,255,.85);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --serif-2:"Playfair Display",Georgia,serif;
  --r-xl:20px;--r-lg:16px;--r-md:12px;--r-sm:8px;--r-pill:100px;
  --wrap:1200px;
  --shadow-card:0 10px 40px rgba(18,24,32,.06);
  --shadow-glass:0 12px 40px rgba(18,24,32,.10);
  --ease:cubic-bezier(.2,.7,.2,1);
  --dur:.6s;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
h1,h2,h3,h4{margin:0;font-weight:500;font-family:var(--serif);line-height:1.05;letter-spacing:-.01em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.wrap{width:min(var(--wrap),calc(100% - 40px));margin:0 auto}
svg{display:block}
.i{width:24px;height:24px;flex:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- type ---------- */
.eyebrow{display:flex;align-items:center;gap:16px;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-text);line-height:1}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--accent)}
.eyebrow.center{justify-content:center}
.eyebrow.center::before{display:none}
.h-hero{font-size:86px;line-height:1;width:630px;max-width:100%;letter-spacing:-2.5px}
.h-70{font-size:70px;line-height:1.05;letter-spacing:-1.5px}
.h-64{font-size:64px;line-height:1.05;letter-spacing:-1.5px}
.h-48{font-size:48px;line-height:1.05;letter-spacing:-1px}
.lead{font-size:20px;line-height:1.6;color:var(--muted);font-weight:400}
.body{font-size:16px;line-height:1.75;color:var(--muted)}
.body-sm{font-size:14px;line-height:1.65;color:var(--muted)}
.words .w{display:inline-block;opacity:0;filter:blur(2px);transition:opacity .7s var(--ease),filter .7s var(--ease)}
.words .w.on{opacity:1;filter:blur(0)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:46px;padding:0 28px;border-radius:var(--r-pill);font-size:14px;font-weight:500;letter-spacing:.01em;white-space:nowrap;transition:transform .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease)}
.btn .i{width:16px;height:16px}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#1f2733;transform:translateY(-2px)}
.btn-accent{background:var(--bronze-fill);color:#fff}
.btn-accent:hover{background:#6E4F30;transform:translateY(-2px)}
.btn-ghost{background:var(--glass-2);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(182,138,94,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-ghost:hover{background:rgba(255,255,255,.7);transform:translateY(-2px)}

/* ---------- header ---------- */
.header{position:fixed;inset:10px 0 auto;z-index:50;pointer-events:none}
.header .pill{position:relative;z-index:2;pointer-events:auto;width:min(1280px,calc(100% - 24px));margin:0 auto;height:66px;border-radius:var(--r-pill);background:var(--glass-2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 4px 24px rgba(18,24,32,.04);display:flex;align-items:center;padding:0 40px 0 44px;transition:background .4s var(--ease)}
.brand{display:flex;align-items:center;gap:8px}
.brand .mark{width:48px;height:48px;color:var(--accent)}
.brand .name{font-family:var(--serif);font-size:28px;font-weight:400;letter-spacing:.02em;line-height:1;color:var(--ink)}
.brand .tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-text);line-height:1;margin-top:5px;font-weight:400}
.nav{display:flex;gap:48px;margin-left:auto;margin-right:auto}
.nav a{font-size:14px;color:var(--ink);position:relative;padding:4px 0}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent);transition:right .35s var(--ease)}
.nav a:hover::after{right:0}
.header .btn{flex:none;padding:0 34px}
.burger{display:none;width:40px;height:40px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--accent-soft);align-items:center;justify-content:center;color:var(--ink);background:rgba(255,255,255,.5)}
.burger .ico-x{display:none}
.burger[aria-expanded="true"] .ico-menu{display:none}
.burger[aria-expanded="true"] .ico-x{display:block}
.drawer{display:none}
body.nav-open{overflow:hidden}

/* ---------- hero ---------- */
.hero{position:relative;height:900px;overflow:hidden;background:var(--paper)}
.hero .bg{position:absolute;inset:0}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:70% 60%}
.hero .veil{position:absolute;inset:0;background:
  linear-gradient(90deg,var(--paper) 0%,rgba(247,244,237,.96) 30%,rgba(247,244,237,.55) 52%,rgba(247,244,237,0) 72%),
  linear-gradient(180deg,rgba(247,244,237,.9) 0%,rgba(247,244,237,0) 38%)}
.hero .wrap{position:relative;height:100%}
.hero .copy{position:absolute;left:0;top:157px;width:640px}
.hero .h-hero{margin-top:22px}
.hero .lead{margin-top:32px;max-width:470px}
.hero .actions{display:flex;gap:16px;margin-top:26px}
.hero .stats{position:absolute;left:0;top:590px;display:flex;gap:11px}
.stat{width:239px;height:200px;border-radius:var(--r-xl);background:var(--glass-3);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),var(--shadow-glass);padding:34px 24px 0;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.stat:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 20px 50px rgba(18,24,32,.14)}
.stat .i{width:36px;height:36px;color:var(--accent)}
.stat .num{font-family:var(--serif);font-size:32px;font-weight:400;line-height:1;margin-top:14px}
.stat .lbl{font-size:14px;color:var(--muted-3);margin-top:12px;line-height:1.3}
.stat .rule{width:24px;height:1px;background:var(--accent);margin:14px 0 12px}
.stat .sub{font-size:13px;color:var(--muted-3)}
.float{position:absolute;right:0;top:100px;width:250px;height:245px;border-radius:var(--r-xl);background:var(--glass-3);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),var(--shadow-glass);padding:26px 24px 0}
.avs{display:flex;align-items:center}
.avs img,.avs .badge{width:32px;height:32px;border-radius:50%;box-shadow:0 0 0 2px #fff;object-fit:cover}
.avs img+img,.avs .badge{margin-left:-8px}
.avs .badge{background:var(--bronze-fill);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
.float .num{font-family:var(--serif);font-size:32px;font-weight:400;line-height:1;margin-top:20px}
.float .lbl{font-size:16px;color:var(--muted-3);margin-top:8px}
.float .rule{height:1px;background:var(--accent-soft);margin:14px 0 12px}
.stars{display:flex;gap:2px;color:var(--accent)}
.stars .i{width:14px;height:14px}
.float .sub{font-size:13px;color:var(--muted-3);margin-top:10px}

/* ---------- sections ---------- */
section{position:relative}
.about{padding:60px 0 0;min-height:889px}
.split{display:grid;grid-template-columns:minmax(0,1fr) 612px;grid-template-areas:"copy photo" "minis photo";gap:0 68px;align-items:start}
.about .copy{grid-area:copy}.about .minis{grid-area:minis}.about .photo-wrap{grid-area:photo}
.split>*,.why .grid>*,.plans .grid>*,.map .grid>*,.cta .grid>*{min-width:0}
.about .copy{padding-top:27px}
.about .h-70{margin-top:22px}
.about .body{margin-top:30px;max-width:490px}
.about .btn{margin-top:38px}
.about .pair{display:grid;grid-template-columns:269px 269px;gap:10px;margin-top:30px}
.about .pair img{height:200px;width:100%;object-fit:cover;border-radius:var(--r-xl)}
.about .minis{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,244px);gap:17px;margin-top:30px;width:766px;align-self:start}
.mini:last-child{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),var(--shadow-glass)}
.mini{background:var(--white);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:24px 20px;display:flex;align-items:center;gap:18px;min-height:113px;transition:transform .5s var(--ease)}
.mini:hover{transform:translateY(-4px)}
.mini .i{width:44px;height:44px;color:var(--accent)}
.mini .num{font-family:var(--serif);font-size:32px;line-height:1;font-weight:400}
.mini .lbl{font-size:16px;line-height:1.35;color:var(--ink);margin-top:6px}
.about .photo{width:612px;height:769px;object-fit:cover;border-radius:var(--r-xl)}

.why{padding:66px 0 0;min-height:838px}
.why .grid{display:grid;grid-template-columns:548px minmax(0,1fr);gap:40px}
.why .h-70{margin-top:22px}
.mosaic{position:relative;display:grid;grid-template-columns:318px 220px;gap:10px;margin-top:30px}
.mosaic .tall{grid-row:1/3;width:318px;height:417px;object-fit:cover;border-radius:var(--r-xl)}
.mosaic .sm{width:220px;height:200px;object-fit:cover;border-radius:var(--r-xl)}
.why .glass{position:absolute;left:60px;top:256px;width:428px;min-height:245px;border-radius:var(--r-xl);background:var(--glass-3);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),var(--shadow-glass);padding:30px 34px 28px 90px}
.why .glass .i{position:absolute;left:30px;top:32px;width:40px;height:40px;color:var(--accent)}
.why .glass h3{font-size:28px;line-height:1.15;font-weight:400}
.why .glass .rule{width:40px;height:1px;background:var(--accent);margin:16px 0 20px}
.why .glass p{font-size:14px;line-height:1.6;color:var(--muted-3)}
.reasons{padding-top:28px}
.reason{display:grid;grid-template-columns:98px 1px 1fr;gap:0 38px;padding:0 0 50px;border-bottom:1px solid var(--accent-soft);margin-bottom:47px}
.reason:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}
.reason .n{font-family:var(--serif);font-size:64px;line-height:1;font-weight:500;color:var(--bronze-text)}
.reason .bar{background:var(--accent);height:90px}
.reason h3{font-size:28px;line-height:1.15;font-weight:400}
.reason p{font-size:14px;line-height:1.65;color:var(--muted);margin-top:8px;max-width:430px}

.amen{padding:66px 0 0;min-height:1140px}
.amen .h-70{margin-top:22px;max-width:640px}
.amen .body{margin-top:26px;max-width:470px}
.cards3{display:grid;grid-template-columns:repeat(3,387px);gap:20px 19px;margin-top:32px}
.acard{position:relative;height:350px;border-radius:var(--r-xl);overflow:hidden;box-shadow:inset 0 0 0 1px var(--accent-soft),var(--shadow-card)}
.acard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.acard:hover img{transform:scale(1.05)}
.acap{position:absolute;left:10px;right:10px;bottom:10px;height:80px;border-radius:var(--r-md);background:rgba(255,255,255,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);display:flex;align-items:center;gap:20px;padding:0 20px}
.acap .i{width:40px;height:40px;color:var(--accent)}
.acap b{display:block;font-weight:500;font-size:16px;line-height:1.3}
.acap span{display:block;font-size:13px;color:var(--muted-3);margin-top:4px}

.plans{padding:60px 0 0;min-height:598px}
.plans .grid{display:grid;grid-template-columns:428px 732px;gap:40px;justify-content:space-between}
.plans .h-48{margin-top:22px}
.plans .grid>div:first-child{padding-top:45px}
.plans .body{margin-top:26px}
.tabs{margin-top:34px}
.tab{display:grid;grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:0 18px;height:46px;padding:0 20px;border-radius:10px;font-size:16px;color:var(--ink);width:100%;text-align:left;transition:background .35s var(--ease),color .35s var(--ease)}
.tab .dot{width:4px;height:4px;border-radius:50%;background:currentColor}
.tab .area{text-align:right}
.tab .i{width:18px;height:18px}
.tab+.tab{margin-top:9px}
.tab[aria-selected="true"]{background:var(--ink);color:#fff}
.tab:not([aria-selected="true"]):hover{background:rgba(18,24,32,.05)}
.pcard{background:var(--paper-2);border-radius:var(--r-xl);box-shadow:inset 0 0 0 1px var(--accent-soft);min-height:478px;padding:46px 20px 40px 20px;display:grid;grid-template-columns:240px 1fr;grid-template-rows:auto 1fr;grid-template-areas:"text draw" "tot draw";gap:0 30px}
.ptext{grid-area:text}.ptot{grid-area:tot;align-self:start;display:flex;flex-direction:column}.drawings{grid-area:draw}
.pcard .kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-text);font-weight:500}
.pcard h3{font-size:24px;font-weight:500;margin-top:14px;line-height:1.2}
.pcard .rule{height:1px;background:var(--accent-soft);margin:22px 0 26px}
.spec{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ink);height:44px}
.spec .i{width:22px;height:22px;color:var(--accent)}
.pcard .tot{font-size:16px;color:var(--ink);margin-top:2px}
.pcard .area{font-family:var(--serif);font-size:32px;font-weight:500;line-height:1;margin-top:10px}
.drawings{display:flex;gap:34px;align-items:flex-start;justify-content:center;padding-top:14px}
.drawing{text-align:center}
.drawing img{width:222px;height:310px;object-fit:cover;object-position:center;border-radius:4px;box-shadow:0 0 0 1px var(--line)}
.drawing.b img{width:180px;height:260px;margin-top:26px}
.drawing span{display:block;font-size:10px;color:var(--muted);margin-top:12px;letter-spacing:.02em}
.pane{display:none}
.pane.on{display:grid}

.testi{padding:60px 0 0;min-height:1106px;overflow:hidden}
.testi .h-64{text-align:center;margin:26px auto 0;max-width:640px}
.testi .body{text-align:center;max-width:520px;margin:24px auto 0}
.marq{position:relative;margin-top:24px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marq+.marq{margin-top:24px}
.track{display:flex;gap:24px;width:max-content;animation:marq 21s linear infinite}
.marq.rev .track{animation-direction:reverse}
.marq:hover .track{animation-play-state:paused}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tcard{width:330px;height:340px;border-radius:var(--r-xl);background:var(--white);box-shadow:inset 0 0 0 1px var(--accent-soft);padding:36px 30px 0;display:flex;flex-direction:column}
.tcard .q{width:32px;height:24px;color:var(--accent)}
.tcard p{font-size:16px;line-height:1.6;color:var(--ink);margin-top:26px;flex:1}
.tcard .who{display:flex;align-items:center;gap:14px;border-top:1px solid var(--accent-soft);padding:22px 0 28px}
.tcard .who img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.tcard .who b{display:block;font-weight:500;font-size:16px}
.tcard .who span{display:block;font-size:13px;color:var(--muted);margin-top:2px}

.map{padding:60px 0 0;min-height:848px}
.map .grid{display:grid;grid-template-columns:430px 732px;grid-template-rows:520px;justify-content:space-between;gap:40px}
.map .h-48{margin-top:22px}
.map .grid>div:first-child{padding-top:13px}
.map .body-sm{margin-top:24px;max-width:420px}
.rows{margin-top:30px}
.row{display:grid;grid-template-columns:44px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--accent-soft)}
.row:last-child{border-bottom:0}
.row .ic{width:44px;height:44px;border-radius:50%;background:var(--white);box-shadow:inset 0 0 0 1px var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.row .ic .i{width:20px;height:20px}
.row b{display:block;font-weight:500;font-size:16px;line-height:1.3}
.row p{font-size:13px;line-height:1.5;color:var(--muted);margin-top:6px;max-width:300px}
.mapcard{height:520px;border-radius:var(--r-xl);overflow:hidden;box-shadow:inset 0 0 0 1px var(--accent-soft);background:#F3F1EA}
.mapcard svg{width:100%;height:100%}
.dist{margin-top:40px;background:var(--white);border-radius:var(--r-xl);box-shadow:inset 0 0 0 1px var(--accent-soft);display:grid;grid-template-columns:repeat(6,1fr);min-height:167px}
.dist>div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px 10px;border-left:1px solid var(--line)}
.dist>div:first-child{border-left:0}
.dist .i{width:30px;height:30px;color:var(--accent)}
.dist b{font-weight:500;font-size:20px;margin-top:22px;line-height:1}
.dist span{font-size:13px;color:var(--muted);margin-top:12px}

.faq{padding:64px 0 0;min-height:923px}
.faq .h-64{text-align:center;margin-top:24px}
.faq .body{text-align:center;margin-top:20px}
.acc{width:740px;max-width:100%;margin:34px auto 0}
.qa{background:var(--white);border-radius:var(--r-md);margin-bottom:20px;overflow:hidden;box-shadow:0 1px 0 rgba(18,24,32,.02)}
.qa summary{list-style:none;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 30px;min-height:60px;text-align:left;font-size:20px;color:var(--ink);font-weight:400}
.qa summary::-webkit-details-marker{display:none}
.qa .pm{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;transition:transform .4s var(--ease)}
.qa .pm .i{width:14px;height:14px}
.qa[open] .pm{transform:rotate(45deg)}
.qa .a{padding:0 30px 24px;font-size:15px;line-height:1.7;color:var(--muted);max-width:640px}
.qa .a{display:none}
.qa[open] .a{display:block}

.cta{padding:68px 0 0;min-height:852px}
.cta .grid{display:grid;grid-template-columns:minmax(0,1fr) 677px;gap:60px;align-items:start}
.cta .copy{padding:104px 0 0 6px}
.cta .h-48{margin-top:22px;max-width:470px}
.cta .body{margin-top:26px;max-width:440px}
.clist{margin-top:32px}
.clist li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;padding:8px 0}
.clist .ic{width:40px;height:40px;border-radius:50%;background:var(--white);box-shadow:inset 0 0 0 1px var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.clist .ic .i{width:18px;height:18px}
.clist small{display:block;font-size:10px;color:var(--ink);line-height:1.2}
.clist span{display:block;font-size:14px;line-height:1.55;color:var(--ink);margin-top:2px}
.clist .addr{color:var(--ink-2)}
.fwrap{position:relative;height:720px}
.fwrap>img{width:677px;height:720px;object-fit:cover;border-radius:var(--r-xl)}
.form{position:absolute;left:20px;right:20px;top:205px;border-radius:var(--r-xl);background:var(--glass-3);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),var(--shadow-glass);padding:30px 30px 30px}
.form h3{font-size:32px;font-weight:400}
.form .sub{font-size:13px;color:var(--muted-3);margin-top:8px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.field{border:0;height:46px;border-radius:var(--r-sm);background:var(--white);box-shadow:inset 0 0 0 1px var(--line);padding:0 14px;font:inherit;font-size:14px;color:var(--ink);width:100%;outline:0;transition:box-shadow .3s}
.field::placeholder{color:#8A8F94}
.field:focus{box-shadow:inset 0 0 0 1px var(--accent)}
textarea.field{height:130px;padding:14px;resize:vertical;margin-top:20px;line-height:1.5}
.agree{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:13px;color:var(--muted-3);white-space:nowrap;overflow:hidden;min-width:0;max-width:100%}
.agree span{overflow:hidden;text-overflow:clip;min-width:0}
.agree input{appearance:none;width:16px;height:16px;border-radius:4px;box-shadow:inset 0 0 0 1px var(--accent);flex:none;margin:0;background:#fff}
.agree input:checked{background:var(--accent)}
.form .btn{margin-top:18px;width:100%;height:40px;border-radius:10px}
.form .ok{display:none;padding:22px 0 0;font-size:15px;color:var(--ink)}
.form.sent .ok{display:block}
.form.sent .f2,.form.sent textarea,.form.sent .agree,.form.sent .btn{display:none}

/* ---------- footer ---------- */
.footer{padding:60px 0 40px;min-height:408px}
.footer .cols{display:grid;grid-template-columns:minmax(0,1fr) 295px 309px;gap:40px}
.footer .brand .mark{width:56px;height:56px}
.footer .brand .name{font-size:40px}
.footer .brand .tag{font-size:12px}
.footer .blurb{font-size:14px;line-height:1.6;color:var(--ink);max-width:320px;margin-top:22px}
.social{display:flex;gap:8px;margin-top:26px}
.social a{width:40px;height:40px;border-radius:50%;background:var(--white);box-shadow:inset 0 0 0 1px var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent);transition:transform .35s var(--ease)}
.social a:hover{transform:translateY(-3px)}
.social .i{width:16px;height:16px}
.footer h3{font-family:var(--serif-2);font-size:24px;font-weight:500;color:var(--ink-2)}
.footer .rule{width:40px;height:1px;background:#C9C5BC;margin:14px 0 20px}
.footer .links li{margin-bottom:12px;font-size:14px}
.footer .links a:hover{color:var(--accent)}
.footer .cl li{display:flex;align-items:center;gap:12px;font-size:14px;margin-bottom:16px;color:var(--ink-2)}
.footer .cl .i{width:18px;height:18px;color:var(--accent)}
.disc{font-size:12px;line-height:1.6;color:var(--muted);margin-top:44px;max-width:900px}
.bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;font-size:13px;color:var(--ink)}
.bottom .legal{display:flex;gap:18px}
.bottom .legal a+a{border-left:1px solid var(--line);padding-left:18px}

/* ---------- privacy ---------- */
.page{padding:120px 0 80px}
.page h1{font-size:48px;line-height:1.05;letter-spacing:-1.5px}
.page .date{font-family:var(--serif);font-size:28px;margin-top:39px}
.page .date b{font-weight:500}
.page h2{font-family:var(--serif);font-size:32px;font-weight:400;letter-spacing:-.5px;margin-top:38px}
.page p,.page li{font-size:16px;line-height:1.6;color:var(--muted)}
.page p{margin-top:18px}
.page ul{list-style:disc;padding-left:20px;margin-top:8px}
.page li{margin-top:4px}
.page .biz{color:var(--muted);font-weight:500;margin-top:18px}

/* ---------- reveal ---------- */
/* reveals only hide when JS is present (html.js), so the page paints complete without scripts */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0)*90ms)}
.js .rv.on{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .about .photo{width:100%;height:auto;aspect-ratio:612/769}
  .split{grid-template-columns:1fr 46%}
  .plans .grid,.map .grid{grid-template-columns:1fr 1fr}
  .plans .grid>div:first-child,.map .grid>div:first-child{padding-top:0}
  .pcard{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"text" "tot" "draw"}
  .cards3{grid-template-columns:repeat(3,1fr)}
  .about .minis{grid-template-columns:repeat(3,1fr)}
  .cta .grid{grid-template-columns:1fr 1fr}
  .fwrap>img{width:100%}
}
@media (max-width:900px){
  .wrap{width:calc(100% - 40px)}
  .header{inset:12px 0 auto}
  .header .pill{height:70px;padding:0 18px 0 20px;background:rgba(250,248,246,.78)}
  .brand .mark{width:32px;height:32px}
  .brand .name{font-size:26px}
  .brand .tag{font-size:10px;margin-top:4px}
  .nav,.header>.pill>.btn{display:none}
  .burger{display:flex;margin-left:auto}
  .drawer{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;position:fixed;inset:0;z-index:1;border-radius:0;background:rgba(255,255,255,.76);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:92px 28px 40px;opacity:0;pointer-events:none;transition:opacity .35s var(--ease)}
  .drawer.open{opacity:1;pointer-events:auto}
  .drawer a{display:block;padding:8px 0;font-size:20px;font-weight:500;line-height:1.2;letter-spacing:-.01em;border-bottom:0}
  .drawer a.btn{display:inline-flex;justify-content:center;margin-top:22px;width:auto;padding:0 30px;height:44px;font-size:15px;border-bottom:0}
  .hero{height:auto;min-height:100vh;padding:161px 0 40px}
  .hero .bg img{object-position:62% 100%}
  .hero .veil{background:linear-gradient(180deg,var(--paper) 0%,rgba(247,244,237,.95) 40%,rgba(247,244,237,.2) 70%,rgba(247,244,237,0) 100%)}
  .hero .copy{position:static;width:100%}
  .h-hero{font-size:48px;line-height:1;width:100%;letter-spacing:-1px}
  .hero .lead{font-size:18px;max-width:100%;margin-top:22px}
  .hero .actions{flex-direction:column;gap:16px;margin-top:19px}
  .hero .btn{width:100%;height:46px}
  .hero .stats{position:static;flex-direction:column;gap:12px;margin-top:25px}
  .stat{width:100%;height:auto;padding:34px 24px 34px}
  .float{display:none}
  .h-70,.h-64{font-size:48px;line-height:1}
  .h-48{font-size:40px}
  .split,.why .grid,.plans .grid,.map .grid,.cta .grid{grid-template-columns:minmax(0,1fr);gap:28px}
  /* about at 390 (live ref): both pair photos 350x280 stacked, the three glass minis overlay the
     SECOND pair photo from 40px below its top (third card spills onto paper), main photo hidden */
  .about{padding:64px 0 80px;min-height:0}
  .about .copy{padding-top:0}
  .split{display:flex;flex-direction:column;gap:0}
  .about .pair{grid-template-columns:1fr;gap:16px;margin-top:30px}
  .about .pair img{height:280px;aspect-ratio:auto}
  .about .photo-wrap{display:none}
  .about .minis{grid-template-columns:1fr;gap:15px;width:calc(100% - 40px);margin:-240px 20px 0}
  .mini{min-height:97px;padding:20px 30px;background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),var(--shadow-glass)}
  .hero .eyebrow::before{display:none}
  .mapcard svg{width:100%;height:100%}
  /* why at 390 (live ref): kicker + 2-line h2 + ONE tall photo 350x482 with the glass card
     overlaid from 226px below the photo top (spills 85px); numbered rows + small photos hidden */
  .why{min-height:0;padding-bottom:63px}
  .mosaic{display:block;margin-top:30px}
  .mosaic .tall{width:100%;height:auto;aspect-ratio:350/482}
  .mosaic .sm{display:none}
  .why .glass{position:relative;left:auto;top:auto;width:auto;min-height:0;margin:-256px 20px 0;padding:24px}
  .why .glass .i{position:static;margin-bottom:27px}
  .why .glass .rule{margin:18px 0 22px}
  .reasons{display:none}
  .cards3{grid-template-columns:1fr;gap:20px}
  .acard{height:320px}
  /* plan card at 390 (live ref order): plan images, total area, villa label + title, features */
  .pcard{display:flex;flex-direction:column;padding:30px 20px}
  .pane:not(.on){display:none}
  .pane.on{display:flex}
  .drawings{order:1;gap:22px;justify-content:flex-start;padding-top:0}
  .drawing img{width:157px;height:220px}
  .drawing.b img{width:128px;height:185px;margin-top:20px}
  .ptot{order:2;margin-top:30px}
  .ptot .rule{order:9;margin:26px 0 0}
  .ptext{order:3;margin-top:26px}
  /* location map at 390: slide the edge POIs inside the cropped viewBox (visible x 150..582) */
  .poi-w{transform:translateX(60px)}
  .poi-e{transform:translateX(-60px)}
  .tab{height:44px;padding:0 14px;font-size:15px;gap:0 10px}
  .tab span{white-space:nowrap}
  .marq{margin-top:36px}
  .dist{grid-template-columns:1fr 1fr}
  .dist>div{border-left:0;border-top:1px solid var(--line)}
  .dist>div:nth-child(-n+2){border-top:0}
  .dist>div:nth-child(2n){border-left:1px solid var(--line)}
  .mapcard{height:420px}
  .acc{margin-top:36px}
  .qa summary{font-size:18px;padding:0 20px;min-height:64px}
  .qa .a{padding:0 20px 20px}
  .cta{padding-top:86px}
  .cta .grid{gap:52px}
  .cta .copy{padding:0}
  .fwrap{height:auto}
  .fwrap>img{height:625px}
  .form{position:static;margin-top:-552px;margin-left:10px;margin-right:10px;padding:22px 18px}
  .form .f2{gap:14px;margin-top:16px}
  .form textarea.field{height:110px;margin-top:16px}
  .form .btn{margin-top:14px}
  .agree{white-space:normal;align-items:flex-start}
  .agree input{margin-top:2px}
  .f2{grid-template-columns:1fr}
  .footer .cols{grid-template-columns:minmax(0,1fr);gap:40px}
  .bottom{flex-direction:column;align-items:flex-start;gap:12px}
  .page h1{font-size:38px}
  .page h2{font-size:32px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .words .w{opacity:1;filter:none;transition:none}
  .track{animation:none}
  .acard img,.stat,.mini,.btn,.social a,.qa .pm,.drawer{transition:none}
  .acard:hover img,.stat:hover,.mini:hover,.btn:hover,.social a:hover{transform:none}
}
