/* =========================================================
html,body{overflow-x:clip}
   GEDONÍSTICA v10 — two directions: Hospitality + Real Estate
   Builds on the v9 system (dark base, Italiana + DM Sans).
   Hospitality keeps the electric blue; Real Estate gets warm gold.
   ========================================================= */
:root{--ho:#174cff;--ho-soft:#6f8dff;--re:#c8a35a;--re-soft:#e0c283;--accent:var(--blue);--accent-soft:#718cff}

/* ---------- Direction code: Real Estate pages switch the accent to gold ---------- */
body.dir-re{--blue:#c8a35a;--electric:#d9b86c;--accent:#c8a35a;--accent-soft:#e0c283}
body.dir-re .cursor-glow{background:radial-gradient(circle,rgba(200,163,90,.14),transparent 68%)}
body.dir-re .ticker{color:#0b0a07}
body.dir-re .contact h2 em,body.dir-re .email span,body.dir-re .contact-links .whatsapp span,body.dir-re .founders-line strong,body.dir-re .vision-track span,body.dir-re .way span,body.dir-re .signal span,body.dir-re .operator-copy blockquote em,body.dir-re .operator-copy>span,body.dir-re .hero-audience>span{color:var(--re-soft)}
body.dir-re .service .service-panel small{color:#9a7630}
body.dir-re .step:after{box-shadow:0 0 18px rgba(200,163,90,.7)}
body.dir-re .experience-ribbon{background:var(--re);color:#0b0a07}
body.dir-re .round-link:hover{color:#0b0a07}
body.dir-re .contact-orbit{border-color:rgba(200,163,90,.26);box-shadow:0 0 120px rgba(200,163,90,.12)}
body.dir-re .contact{background:linear-gradient(160deg,#03040a 40%,#15110a)}
body.dir-re .hero:after{background:linear-gradient(90deg,transparent,#c8a35a,transparent)}
body.dir-re .kinetic-word:hover{filter:drop-shadow(0 0 24px rgba(200,163,90,.45))}

/* ---------- Header additions: active page + direction tag ---------- */
.site-header nav a.is-current{color:#fff;position:relative}
.site-header nav a.is-current:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--accent)}
.site-header nav a.nav-ho:before,.site-header nav a.nav-re:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:8px;vertical-align:middle}
.site-header nav a.nav-ho:before{background:var(--ho);box-shadow:0 0 8px var(--ho)}
.site-header nav a.nav-re:before{background:var(--re);box-shadow:0 0 8px var(--re)}
.nav-cta{white-space:nowrap}
body.dir-re .nav-cta:hover{background:var(--re);color:#0b0a07;border-color:var(--re)}
body.dir-ho .nav-cta:hover{background:var(--ho);color:#fff;border-color:var(--ho)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.8rem;min-height:52px;padding:0 1.5rem;border:1px solid var(--line);border-radius:99px;font:500 .86rem/1 var(--sans);letter-spacing:.02em;color:var(--ink);background:transparent;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.btn span{transition:transform .3s}
.btn:hover span{transform:translateX(4px)}
.btn-ho{background:var(--ho);border-color:var(--ho);color:#fff}
.btn-ho:hover{background:#3c67ff;border-color:#3c67ff}
.btn-re{background:var(--re);border-color:var(--re);color:#0b0a07}
.btn-re:hover{background:var(--re-soft);border-color:var(--re-soft)}
.btn-ghost:hover{background:#fff;color:#05060b}
.btn:focus-visible,.door:focus-visible,.faq summary:focus-visible,.market-dot:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- Home hero tweaks ---------- */
.hero-title.two-line em{margin-left:9vw}
.hero-audience.wide p{white-space:nowrap}

/* ---------- Doors: the two directions ---------- */
.doors{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.door{position:relative;min-height:78vh;padding:4.5vw 4vw 3.5vw;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;isolation:isolate}
.door+.door{border-left:1px solid var(--line)}
.door:before{content:"";position:absolute;inset:0;z-index:-1;transform:translateY(101%);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.door.ho:before{background:linear-gradient(170deg,#0c1a55,#174cff 140%)}
.door.re:before{background:linear-gradient(170deg,#2a2111,#c8a35a 150%)}
.door:hover:before,.door:focus-visible:before{transform:none}
.door-top{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}
.door-tag{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:#b8bbc6}
.door-tag i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px;vertical-align:middle}
.door.ho .door-tag i{background:var(--ho);box-shadow:0 0 12px var(--ho)}
.door.re .door-tag i{background:var(--re);box-shadow:0 0 12px var(--re)}
.door-sign{width:120px;height:120px;flex:none;opacity:.9}
.door-sign path,.door-sign line,.door-sign circle{fill:none;stroke-width:1.2;stroke-linecap:round}
.door.ho .door-sign *{stroke:var(--ho-soft)}
.door.re .door-sign *{stroke:var(--re-soft)}
.door:hover .door-sign *{stroke:#fff}
.door h3{font:clamp(3.4rem,6.6vw,8rem)/.88 var(--serif);font-weight:400;letter-spacing:-.04em;margin:3rem 0 1.5rem}
.door h3 em{display:block;font-style:normal;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.85)}
.door .door-lead{font:clamp(1.3rem,1.8vw,1.9rem)/1.25 var(--serif);max-width:520px;margin:0 0 1.6rem}
.door ul{list-style:none;padding:0;margin:0 0 2.2rem;display:grid;gap:.55rem;max-width:520px}
.door li{color:#c2c3cc;font-size:.95rem;line-height:1.5;padding-left:1.4rem;position:relative}
.door li:before{content:"";position:absolute;left:0;top:.62em;width:8px;height:1px;background:currentColor}
.door-foot{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;border-top:1px solid var(--line);padding-top:1.4rem}
.door-foot small{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#8d91a1;line-height:1.7}
.door-go{width:74px;height:74px;flex:none;border:1px solid rgba(255,255,255,.3);border-radius:50%;display:grid;place-items:center;font-size:1.3rem;transition:transform .5s cubic-bezier(.2,.7,.2,1),background .3s}
.door:hover .door-go{transform:rotate(-45deg);background:#fff;color:#05060b}
.door:hover li,.door:hover .door-foot small,.door:hover .door-tag{color:#fff}
.door.re:hover h3 em{-webkit-text-stroke-color:#fff}

/* ---------- Stages: "From first stay to first key" ---------- */
.idea-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:8vw;align-items:end}
.idea-copy{color:#bbbcc5;font-size:1.05rem;line-height:1.75}
.idea-copy strong{color:#fff}
.stages{--n:3;position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);margin-top:8vw;padding-top:3.2rem}
.stages:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.stages:after{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:linear-gradient(90deg,var(--ho),var(--re));transform:scaleX(0);transform-origin:left;transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.stages.visible:after{transform:scaleX(1)}
.stage{position:relative;padding-right:3vw}
.stage:before{content:"";position:absolute;top:-3.2rem;left:0;width:13px;height:13px;border-radius:50%;transform:translateY(-6px);background:#03040a;border:1px solid var(--st,var(--ho))}
.stage.fill:before{background:var(--st,var(--ho));box-shadow:0 0 18px var(--st,var(--ho))}
.stage small{display:block;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--st-soft,#718cff)}
.stage h3{font:2.6rem/1 var(--serif);font-weight:400;margin:1.2rem 0 .9rem}
.stage p{color:var(--muted);line-height:1.6;margin:0;max-width:330px}
.stage.s-ho{--st:var(--ho);--st-soft:var(--ho-soft)}
.stage.s-mid{--st:#8a78a8;--st-soft:#b6a8cf}
.stage.s-re{--st:var(--re);--st-soft:var(--re-soft)}
.stages.five{--n:5}
.stages.five .stage h3{font-size:1.9rem}
.stages.five .stage p{font-size:.9rem}

/* ---------- Dual lists inside the shared services accordion ---------- */
.dual{display:grid;grid-template-columns:1fr 1fr;gap:3vw;margin-top:1.4rem}
.dual>div{border-top:1px solid #c7c6c2;padding-top:1.1rem}
.dual h4{margin:0 0 .8rem;font:1.35rem/1 var(--serif);font-weight:400;color:#070810;display:flex;align-items:center;gap:.6rem}
.dual h4 i{width:8px;height:8px;border-radius:50%}
.dual .d-ho h4 i{background:var(--ho)}
.dual .d-re h4 i{background:var(--re)}
.services .service .service-panel .dual ul{grid-template-columns:1fr;margin-top:0}

/* ---------- Light "paper" section used for calculators, forms ---------- */
.paper{background:#f1f0eb;color:#070810}
.paper .section-label{color:#555866}
.paper .display em{color:transparent;-webkit-text-stroke:1px #111}
.paper p{color:#3f414b}

/* ---------- OTA calculator ---------- */
.calc-head{display:grid;grid-template-columns:1fr 340px;gap:5vw;align-items:end}
.calc-head p{line-height:1.65;margin:0}
.calc{display:grid;grid-template-columns:1.05fr .95fr;margin-top:5vw;border:1px solid #c7c6c2;background:#f7f6f2}
.calc-inputs{padding:2.6rem 2.6rem 2rem;border-right:1px solid #c7c6c2;display:grid;gap:1.7rem}
.calc-row label{display:flex;justify-content:space-between;align-items:baseline;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#555866}
.calc-row output{font:1.6rem/1 var(--serif);letter-spacing:0;text-transform:none;color:#070810}
.calc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent;margin-top:.7rem;cursor:pointer}
.calc input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--accent) var(--p,50%),#c7c6c2 var(--p,50%))}
.calc input[type=range]::-moz-range-track{height:2px;background:#c7c6c2}
.calc input[type=range]::-moz-range-progress{height:2px;background:var(--accent)}
.calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#070810;border:4px solid #f7f6f2;box-shadow:0 0 0 1px #070810;margin-top:-9px}
.calc input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#070810;border:4px solid #f7f6f2;box-shadow:0 0 0 1px #070810}
.calc input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.calc-result{padding:2.6rem;display:flex;flex-direction:column;justify-content:space-between;background:#070810;color:var(--ink);position:relative;overflow:hidden}
.calc-result:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px}
.calc-result>*{position:relative}
.calc-result small{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-soft)}
.calc-big{font:clamp(3.4rem,6vw,6.4rem)/.95 var(--serif);margin:.8rem 0 .4rem;letter-spacing:-.03em}
.calc-sub{color:var(--muted);margin:0;font-size:.95rem}
.calc-save{border-top:1px solid var(--line);margin-top:2.4rem;padding-top:1.6rem}
.calc-save strong{display:block;font:2.6rem/1 var(--serif);font-weight:400;color:#8fa6ff;margin:.6rem 0}
.calc-save p{color:var(--muted);font-size:.9rem;margin:0;line-height:1.55}
.calc-foot{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:2.2rem;flex-wrap:wrap}
.calc-foot em{font-style:normal;color:#6f7280;font-size:.72rem;line-height:1.5;max-width:260px}

/* ---------- Tiles (who it's for) ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:5vw}
.tile{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:2.3rem 1.8rem;position:relative;display:flex;flex-direction:column;min-height:300px;transition:background .35s}
.tile:after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.tile:hover{background:rgba(255,255,255,.025)}
.tile:hover:after{transform:scaleX(1)}
.tile span{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft)}
.tile h3{font:1.9rem/1.08 var(--serif);font-weight:400;margin:1.4rem 0 .9rem}
.tile p{color:var(--muted);line-height:1.55;font-size:.92rem;margin:0}
.tile b{margin-top:auto;padding-top:1.5rem;font-weight:400;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#c9cbd4}

/* ---------- Funnel: where leads leak ---------- */
.funnel{margin-top:5vw;display:grid;gap:10px}
.fstep{--w:100%;position:relative;display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:1.5rem;width:var(--w);min-height:74px;padding:0 1.6rem;border:1px solid var(--line);background:linear-gradient(90deg,rgba(200,163,90,.14),rgba(200,163,90,.02));transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.fstep span{font-size:.66rem;color:var(--accent-soft);letter-spacing:.14em}
.fstep h3{font:1.7rem/1 var(--serif);font-weight:400;margin:0}
.fstep small{color:#8d91a1;font-size:.75rem;text-align:right}
.leak{display:grid;grid-template-columns:60px 1fr;gap:1.5rem;padding:.3rem 1.6rem .9rem;align-items:start}
.leak i{justify-self:center;width:8px;height:8px;border-radius:50%;background:#ff5d5d;box-shadow:0 0 0 0 rgba(255,93,93,.5);margin-top:.35rem;animation:leakPulse 2.2s infinite}
.leak p{margin:0;color:#c9cbd4;line-height:1.5;font-size:.95rem}
.leak p b{font-weight:500;color:#fff}
.leak p em{display:block;font-style:normal;color:#8d91a1;font-size:.85rem;margin-top:.2rem}
.leak p em:before{content:"Fix — ";color:var(--re-soft)}
@keyframes leakPulse{0%{box-shadow:0 0 0 0 rgba(255,93,93,.5)}70%{box-shadow:0 0 0 9px rgba(255,93,93,0)}100%{box-shadow:0 0 0 0 rgba(255,93,93,0)}}

/* ---------- Buyer markets map ---------- */
.markets{display:grid;grid-template-columns:1.45fr .55fr;border:1px solid var(--line);margin-top:5vw;background:#070810}
.map-wrap{position:relative;border-right:1px solid var(--line);padding:1.5rem}
.map-wrap svg{display:block;width:100%;height:auto;overflow:visible}
.map-grid circle{fill:rgba(255,255,255,.09)}
.arc{fill:none;stroke:var(--re);stroke-width:1.3;opacity:.35;stroke-dasharray:4 6;transition:opacity .3s,stroke-width .3s}
.arc.on{opacity:1;stroke-width:2;stroke-dasharray:none;filter:drop-shadow(0 0 6px rgba(200,163,90,.6))}
.market-dot{cursor:pointer}
.market-dot circle.core{fill:#070810;stroke:var(--re);stroke-width:1.5;transition:fill .25s}
.market-dot circle.halo{fill:rgba(200,163,90,.14);transition:r .3s}
.market-dot text{fill:#c9cbd4;font:500 13px var(--sans);letter-spacing:.12em;text-transform:uppercase}
.market-dot.on circle.core,.market-dot:hover circle.core{fill:var(--re)}
.market-dot.on text{fill:#fff}
.home-dot circle{fill:var(--re)}
.home-dot .ring{fill:none;stroke:var(--re);opacity:.5;animation:homePulse 2.6s infinite;transform-origin:center;transform-box:fill-box}
.home-dot text{fill:var(--re-soft);font:500 13px var(--sans);letter-spacing:.14em}
@keyframes homePulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(2.4);opacity:0}}
.market-card{padding:2.2rem;display:flex;flex-direction:column}
.market-card>small{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--re-soft)}
.market-card h3{font:2.6rem/1 var(--serif);font-weight:400;margin:1.2rem 0 1.4rem}
.market-card dl{margin:0;display:grid;gap:1.1rem}
.market-card dt{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:#6f7280}
.market-card dd{margin:.35rem 0 0;color:#c9cbd4;line-height:1.5;font-size:.92rem}
.market-card .hint{margin-top:auto;padding-top:1.5rem;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#6f7280}
.market-card.changing{animation:detailIn .45s ease both}
.market-list{display:none}

/* ---------- Lead engine ---------- */
.engine{display:grid;grid-template-columns:1.35fr .65fr;gap:4vw;margin-top:5vw;align-items:start}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);counter-reset:fl}
.flow li{counter-increment:fl;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.8rem 1.5rem;min-height:190px;position:relative;transition:background .4s}
.flow li:before{content:"0" counter(fl);font-size:.62rem;letter-spacing:.14em;color:var(--accent-soft)}
.flow li:after{content:"→";position:absolute;right:-.55rem;top:1.6rem;z-index:2;width:1.1rem;height:1.1rem;display:grid;place-items:center;font-size:.8rem;background:#03040a;color:var(--accent-soft)}
.flow li:nth-child(3n):after,.flow li:last-child:after{display:none}
.flow li.lit{background:rgba(200,163,90,.08)}
.flow h3{font:1.5rem/1.1 var(--serif);font-weight:400;margin:1.1rem 0 .7rem}
.flow p{color:var(--muted);font-size:.88rem;line-height:1.55;margin:0}
.flow li.goal{background:rgba(200,163,90,.12)}
.flow li.goal h3{color:var(--re-soft)}
.report{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.report>span{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#6f7280;margin-right:.6rem}
.chip{border:1px solid var(--line);border-radius:99px;padding:.5rem .9rem;font-size:.78rem;color:#c9cbd4;background:none;font-family:inherit;cursor:pointer}
.chip.on{background:var(--accent);border-color:var(--accent);color:#0b0a07}
.phone{border:1px solid rgba(255,255,255,.18);border-radius:34px;padding:14px;background:#0a0c15;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.phone-screen{border-radius:22px;background:#0e1019;min-height:470px;display:flex;flex-direction:column;overflow:hidden}
.phone-top{display:flex;align-items:center;gap:.7rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}
.phone-top i{width:32px;height:32px;border-radius:50%;background:var(--re);display:grid;place-items:center;font:1.1rem var(--serif);font-style:normal;color:#0b0a07}
.phone-top b{font-weight:500;font-size:.85rem;display:block}
.phone-top small{font-size:.68rem;color:#3ddc84}
.chat{flex:1;padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.msg{max-width:84%;padding:.65rem .85rem;border-radius:14px;font-size:.8rem;line-height:1.45;opacity:0;transform:translateY(8px);animation:msgIn .45s forwards}
.msg.in{background:#1b1e2b;align-self:flex-start;border-bottom-left-radius:4px}
.msg.out{background:var(--re);color:#0b0a07;align-self:flex-end;border-bottom-right-radius:4px}
.msg.note{align-self:center;background:none;color:#6f7280;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}
@keyframes msgIn{to{opacity:1;transform:none}}
.lang-switch{display:flex;gap:.4rem;justify-content:center;margin-top:1rem}

/* ---------- Coast / towns ---------- */
.coast{margin-top:5vw;position:relative}
.coast svg{width:100%;height:auto;display:block}
.coast path.shore{fill:none;stroke:rgba(255,255,255,.25);stroke-width:1.2}
.coast path.sea{fill:rgba(200,163,90,.05)}
.town circle{fill:#03040a;stroke:var(--re);stroke-width:1.4;transition:fill .25s}
.town text{fill:#c9cbd4;font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase}
.town:hover circle{fill:var(--re)}
.town:hover text{fill:#fff}
.town.home circle{fill:var(--re)}
.coast-note{display:flex;justify-content:space-between;gap:2rem;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:1.5rem;color:var(--muted);font-size:.9rem;line-height:1.6}
.coast-note b{font-weight:400;color:#fff}

/* ---------- Packages: highlight the Check-up ---------- */
.way.start{position:relative;background:linear-gradient(170deg,rgba(23,76,255,.14),transparent 70%);padding-left:1.6rem}
body.dir-re .way.start{background:linear-gradient(170deg,rgba(200,163,90,.16),transparent 70%)}
.way .tag{display:inline-block;margin-left:.6rem;padding:.25rem .55rem;border-radius:99px;background:var(--accent);color:#fff;font-size:.55rem;letter-spacing:.14em}
body.dir-re .way .tag{color:#0b0a07}
.way ul{list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:.4rem}
.way li{color:#aeb1bd;font-size:.84rem;line-height:1.45;padding-left:1rem;position:relative}
.way li:before{content:"—";position:absolute;left:0;color:#5a5e6c}
.way .way-meta{display:block;margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#8d91a1}
.way a.btn{margin-top:1.4rem;min-height:44px;font-size:.78rem}
.ways-note{margin-top:2.5rem;color:var(--muted);font-size:.95rem}
.ways-note a{color:#fff;border-bottom:1px solid var(--line)}

/* ---------- Bridge between directions ---------- */
.bridge{display:grid;grid-template-columns:auto 1fr auto;gap:3vw;align-items:center;padding:3.2rem 7vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .4s}
.bridge.to-re{background:linear-gradient(90deg,rgba(200,163,90,.1),transparent 70%)}
.bridge.to-ho{background:linear-gradient(90deg,rgba(23,76,255,.12),transparent 70%)}
.bridge:hover{background-color:rgba(255,255,255,.02)}
.bridge svg{width:64px;height:64px}
.bridge svg *{fill:none;stroke-width:1.2;stroke-linecap:round}
.bridge.to-re svg *{stroke:var(--re-soft)}
.bridge.to-ho svg *{stroke:var(--ho-soft)}
.bridge p{margin:0;font:clamp(1.3rem,2.2vw,2.3rem)/1.25 var(--serif)}
.bridge p small{display:block;font:.64rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#8d91a1;margin-bottom:.8rem}
.bridge b{font-weight:400;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--line);padding-bottom:.4rem}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}
.faq-title{position:sticky;top:140px;height:max-content}
.faq-title p{color:var(--muted);line-height:1.7;margin-top:2rem;max-width:340px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 30px;gap:1.5rem;align-items:center;padding:1.8rem 0;font:clamp(1.3rem,1.9vw,1.8rem)/1.25 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font:300 1.6rem var(--sans);color:var(--accent-soft);transition:transform .35s;justify-self:end}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details p{margin:0 0 1.8rem;color:#b7b9c4;line-height:1.7;max-width:640px}

/* ---------- Check-up form ---------- */
.checkup{display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:start}
.checkup-copy .display{font-size:clamp(3rem,5.6vw,6.4rem)}
.checkup-copy ol{list-style:none;counter-reset:ck;padding:0;margin:3rem 0 0;border-top:1px solid #c7c6c2}
.checkup-copy li{counter-increment:ck;display:grid;grid-template-columns:44px 1fr;padding:1.1rem 0;border-bottom:1px solid #c7c6c2;color:#33343d;line-height:1.5}
.checkup-copy li:before{content:"0" counter(ck);font-size:.66rem;letter-spacing:.14em;color:#8a8b93;padding-top:.2rem}
.checkup-copy li b{font-weight:500;color:#070810}
.signoff{display:flex;align-items:center;gap:1rem;margin-top:2.2rem}
.signoff img{width:62px;height:62px;border-radius:50%;object-fit:cover;filter:grayscale(1)}
.signoff p{margin:0;font-size:.9rem;line-height:1.5;color:#3f414b}
.signoff b{display:block;color:#070810;font-weight:500}
.lead-form{background:#070810;color:var(--ink);padding:2.6rem;position:relative}
.lead-form .progress{display:flex;justify-content:space-between;align-items:center;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#8d91a1;margin-bottom:2rem}
.lead-form .bar{height:1px;background:var(--line);margin:-1.2rem 0 2rem;position:relative}
.lead-form .bar i{position:absolute;left:0;top:0;height:1px;width:50%;background:var(--accent);transition:width .5s}
.lead-form[data-step="2"] .bar i{width:100%}
.lead-form .step-panel{display:none;gap:1.4rem}
.lead-form[data-step="1"] .p1,.lead-form[data-step="2"] .p2,.lead-form[data-step="done"] .p3{display:grid}
.field label,.field legend{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#a8a9b3;margin-bottom:.6rem;padding:0}
.field fieldset{border:0;margin:0;padding:0}
.field input[type=text],.field input[type=email],.field input[type=url],.field input[type=tel],.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.25);color:#fff;font:1.05rem var(--sans);padding:.6rem 0;border-radius:0}
.field textarea{min-height:80px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--accent)}
.field .err{display:none;color:#ff8a8a;font-size:.78rem;margin-top:.45rem}
.field.invalid .err{display:block}
.field.invalid input{border-bottom-color:#ff8a8a}
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pills label{margin:0;text-transform:none;letter-spacing:0;font-size:.85rem;color:#c9cbd4}
.pills input{position:absolute;opacity:0;pointer-events:none}
.pills span{display:inline-block;border:1px solid var(--line);border-radius:99px;padding:.55rem .95rem;cursor:pointer;transition:.2s}
.pills input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}
body.dir-re .pills input:checked+span{color:#0b0a07}
.pills input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.8rem;color:#a8a9b3;line-height:1.5}
.consent input{margin-top:.2rem;accent-color:var(--accent)}
.form-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.6rem}
.form-actions small{color:#6f7280;font-size:.75rem}
.link-btn{background:none;border:0;color:#a8a9b3;font:inherit;font-size:.8rem;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.hp{position:absolute;left:-9999px}
.done h3{font:3rem/1 var(--serif);font-weight:400;margin:0}
.done p{color:#b7b9c4;line-height:1.7;margin:0}

/* ---------- Mobile sticky CTA on direction pages ---------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:14;display:none;gap:.6rem;padding:.7rem 4vw calc(.7rem + env(safe-area-inset-bottom));background:rgba(3,4,10,.9);backdrop-filter:blur(14px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .4s}
.sticky-cta.show{transform:none}
.sticky-cta .btn{flex:1;justify-content:center;min-height:48px}
.sticky-cta .wa{flex:0 0 48px;padding:0;justify-content:center}

/* ---------- Contact variations ---------- */
.contact-ctas{display:flex;flex-wrap:wrap;gap:1rem;margin:0 0 3vw}

/* ---------- Footer ---------- */
.site-footer{padding:5vw 7vw 2.5vw;border-top:1px solid var(--line);display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:3vw;background:#03040a;font-size:.88rem}
.site-footer .wordmark{display:block;margin-bottom:1rem}
.site-footer p{color:var(--muted);line-height:1.6;margin:0}
.site-footer h4{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:#8d91a1;font-weight:400;margin:0 0 1rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.site-footer a{color:#c9cbd4}
.site-footer a:hover{color:#fff}
.site-footer .legal{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:1.5rem;color:#6f7280;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase}

/* ---------- Responsive ---------- */
@media(max-width:1100px){.site-header nav{gap:1.3rem}.site-header nav a{font-size:.72rem}}
@media(max-width:900px){
  .doors{grid-template-columns:1fr}.door+.door{border-left:0;border-top:1px solid var(--line)}.door{min-height:0;padding:12vw 6vw 8vw}
  .idea-grid,.calc-head,.faq-grid,.checkup,.engine{grid-template-columns:1fr}
  .faq-title{position:relative;top:0}
  .calc{grid-template-columns:1fr}.calc-inputs{border-right:0;border-bottom:1px solid #c7c6c2}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .markets{grid-template-columns:1fr}.map-wrap{border-right:0;border-bottom:1px solid var(--line)}
  .flow{grid-template-columns:repeat(2,1fr)}.flow li:nth-child(3n):after{display:grid}.flow li:nth-child(2n):after{display:none}
  .stages.five{--n:1;gap:2.4rem;padding-top:0;padding-left:2.2rem}
  .stages.five:before,.stages.five:after{left:0;top:0;bottom:0;width:1px;height:auto;right:auto}
  .stages.five:after{transform:scaleY(0);transform-origin:top;background:linear-gradient(180deg,var(--ho),var(--re))}
  .stages.five.visible:after{transform:scaleY(1)}
  .stages.five .stage:before{top:.3rem;left:-2.2rem;transform:translateX(-6px)}
  .site-footer{grid-template-columns:1fr 1fr}
  .bridge{grid-template-columns:auto 1fr;padding:3rem 6vw}.bridge b{grid-column:1/-1;justify-self:start}
  .site-header.open nav a{font-size:1rem;padding:.4rem 0}
}
@media(max-width:620px){
  .door h3{font-size:17vw;margin-top:2.2rem}.door-sign{width:78px;height:78px}.door-go{width:58px;height:58px}
  .stages{--n:1;gap:2.4rem;padding-top:0;padding-left:2.2rem}
  .stages:before,.stages:after{left:0;top:0;bottom:0;width:1px;height:auto;right:auto}
  .stages:after{transform:scaleY(0);transform-origin:top;background:linear-gradient(180deg,var(--ho),var(--re))}
  .stages.visible:after{transform:scaleY(1)}
  .stage:before{top:.3rem;left:-2.2rem;transform:translateX(-6px)}
  .stage h3{font-size:2.1rem}
  .dual{grid-template-columns:1fr;gap:1.4rem}
  .calc-inputs,.calc-result,.lead-form{padding:1.8rem 1.4rem}
  .tiles{grid-template-columns:1fr}.tile{min-height:0}
  .fstep{grid-template-columns:34px 1fr;padding:1rem 1rem;width:100%!important;min-height:0}.fstep small{grid-column:2;text-align:left}
  .leak{grid-template-columns:34px 1fr;padding:.3rem 1rem .9rem}
  .map-wrap{padding:.6rem}.market-dot text,.home-dot text{font-size:20px}
  .market-card{padding:1.6rem 1.4rem}.market-card h3{font-size:2.1rem}
  .flow{grid-template-columns:1fr}.flow li{min-height:0}.flow li:after{display:none!important}
  .phone{max-width:340px;margin:0 auto}
  .coast-note{flex-direction:column}
  .site-footer{grid-template-columns:1fr;padding:14vw 6vw 24vw}
  .sticky-cta{display:flex}
  .contact-ctas .btn{width:100%;justify-content:space-between}
  .hero-audience.wide p{white-space:normal}
  .way.start{padding-left:0;background:none}
}
@media(prefers-reduced-motion:reduce){.door:before,.stages:after,.fstep,.msg,.leak i,.home-dot .ring{transition:none;animation:none}.msg{opacity:1;transform:none}}

/* ---------- Fixes on top of v9 ---------- */
/* collapsed accordion rows no longer leak a sliver of their label */
.service:not(.active) .service-panel .service-detail{padding-bottom:0;border-top-color:transparent;visibility:hidden}
.service-panel .service-detail{min-height:0}
body.dir-re .vision-head .display em{color:var(--re-soft)}
.report .chip{font-style:normal;cursor:default}
/* mobile: market chips under the map, readable coast map */
button.market-dot{font-family:var(--sans)}
@media(max-width:900px){
  .market-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:1.2rem 1.4rem 0}
  .market-list .chip.on{color:#0b0a07}
}
@media(max-width:620px){
  .kinetic-field{opacity:.35}
  .map-wrap svg text{display:none}
  .map-wrap .home-dot text{display:block;font-size:30px}
  .coast{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-6vw;margin-right:-6vw;padding:0 6vw}
  .coast svg{min-width:760px}
  .coast-note{margin-left:0}
}
