/* Tipografías alojadas en la propia web (sin llamadas a Google) */
@font-face{font-family:'Gilda Display'; font-style:normal; font-weight:400; font-display:swap; src:url(/assets/fonts/gilda-display-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk'; font-style:normal; font-weight:400; font-display:swap; src:url(/assets/fonts/hanken-grotesk-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk'; font-style:normal; font-weight:500; font-display:swap; src:url(/assets/fonts/hanken-grotesk-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk'; font-style:normal; font-weight:600; font-display:swap; src:url(/assets/fonts/hanken-grotesk-latin-600-normal.woff2) format('woff2')}

:root{
  --navy:#172A42; --navy-2:#20375A; --gold:#B08249; --gold-text:#8A6434;
  --ivory:#F6F3EC; --paper:#FFFFFF; --ink:#172A42; --muted:#3E5068; --line:#E3DED3;
  --bg:var(--paper); --surface:var(--ivory); --text:var(--ink);
  --head:'Gilda Display', Georgia, 'Times New Roman', serif;
  --body:'Hanken Grotesk', 'Helvetica Neue', Arial, sans-serif;
  color-scheme: light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}

*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth; scroll-padding-top:calc(76px + env(safe-area-inset-top,0px))}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0; background:var(--bg); color:var(--text); font-family:var(--body); font-size:1.0625rem; line-height:1.6}
img,svg{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px}
.wrap{width:min(1120px, 100% - 2.5rem); margin-inline:auto}
h1,h2,h3{font-family:var(--head); font-weight:400; line-height:1.15; margin:0}
h2{font-size:clamp(1.9rem, 3.5vw, 2.6rem)}
h3{font-size:1.35rem}
p{margin:0}

/* Cabecera */
.top{position:sticky; isolation:isolate; top:env(safe-area-inset-top,0px); z-index:20; background:var(--navy); color:var(--ivory)}
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:21; background:var(--navy)}
.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:1.5rem; height:72px}
.brand{display:flex; align-items:center; gap:.75rem; text-decoration:none}
.brand svg{width:40px; height:40px; flex:none}
.brand b{font-family:var(--head); font-weight:400; font-size:1.25rem; letter-spacing:.12em}
.brand small{display:block; font-size:.72rem; letter-spacing:.4em; color:#D8C3A0}
.nav{display:flex; align-items:center; gap:1.6rem; font-size:.95rem}
.nav a{text-decoration:none; color:#DCE2EA}
.nav a:hover{color:#fff}
.btn{display:inline-block; white-space:nowrap; font:600 .98rem/1 var(--body); text-decoration:none; padding:.95rem 1.4rem; border-radius:3px; border:1px solid transparent; cursor:pointer}
.btn-gold{background:var(--gold); color:#fff}
.btn-gold:hover{background:#9A713E}
.btn-line{border-color:rgba(246,243,236,.5); color:var(--ivory)}
.btn-line:hover{border-color:var(--ivory)}
@media (max-width:860px){.nav a:not(.btn){display:none}}
@media (max-width:420px){.top .btn{padding:.75rem 1rem; font-size:.9rem}}

/* Portada */
.hero{background:var(--navy); color:var(--ivory); position:relative; overflow:hidden}
.hero-main{display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; padding:5.5rem 0 4.5rem}
.hero h1{font-size:clamp(2.4rem, 5.2vw, 4rem); max-width:16ch}
.hero p.lead{margin-top:1.5rem; font-size:1.18rem; color:#C9D1DC; max-width:46ch}
.hero .ctas{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.2rem}
.roof{width:100%; height:auto; display:block}
.facts{border-top:1px solid rgba(176,130,73,.45)}
.facts ul{list-style:none; margin:0; padding:1.4rem 0; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem}
.facts li{color:#DCE2EA; font-size:.98rem; padding-left:1.4rem; position:relative}
.facts li{padding-left:1.8rem}
.facts li::before{content:""; position:absolute; left:.15rem; top:.45em; width:.8rem; height:.42rem; border-left:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(-45deg)}
@media (max-width:860px){
  .hero-main{grid-template-columns:1fr; padding:3.5rem 0 3rem}
  .hero-art{max-width:280px; width:100%; margin:0 auto}
  .facts ul{grid-template-columns:1fr; gap:.7rem}
}

/* Secciones */
section{padding:5.5rem 0}
.alt{background:var(--surface)}
.intro{max-width:60ch; margin-top:1rem; color:var(--muted)}
.split{display:grid; grid-template-columns:.8fr 1.2fr; gap:3.5rem; align-items:start}
.split > *, .row > *{min-width:0}
@media (max-width:860px){.split{grid-template-columns:1fr; gap:2rem} section{padding:4rem 0}}

.services{display:grid; grid-template-columns:1fr 1fr; gap:2.4rem 3rem; margin:0}
.services div{border-top:1px solid var(--line); padding-top:1.2rem}
.services dt{font-family:var(--head); font-size:1.3rem}
.services dd{margin:.5rem 0 0; color:var(--muted)}
@media (max-width:620px){.services{grid-template-columns:1fr}}

.new-build{display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:2.5rem}
.new-build article{background:var(--paper); border:1px solid var(--line); padding:1.8rem}
.new-build p{color:var(--muted); margin-top:.6rem}
@media (max-width:860px){.new-build{grid-template-columns:1fr}}

.steps{list-style:none; margin:2.8rem 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; counter-reset:paso}
.steps li{counter-increment:paso; position:relative; padding-top:3.4rem}
.steps li::before{content:counter(paso); position:absolute; top:0; left:0; width:2.5rem; height:2.5rem; display:grid; place-items:center; background:var(--navy); color:var(--ivory); font-family:var(--head); font-size:1.15rem; outline:1px solid var(--gold); outline-offset:-5px}
.steps p{color:var(--muted); margin-top:.5rem}
.steps a{color:var(--gold-text)}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

.guarantees{display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:2.5rem; border-top:1px solid var(--line)}
.guarantees div{padding:1.6rem 1.6rem 1.6rem 0; border-bottom:1px solid var(--line)}
.guarantees div:nth-child(odd){padding-right:2rem; border-right:1px solid var(--line)}
.guarantees div:nth-child(even){padding-left:2rem}
.guarantees p{color:var(--muted); margin-top:.45rem}
@media (max-width:620px){.guarantees{grid-template-columns:1fr} .guarantees div:nth-child(n){padding:1.4rem 0; border-right:0}}

.about p + p{margin-top:1rem}
.about p{color:var(--muted); max-width:62ch}
.zones{display:flex; flex-wrap:wrap; gap:.6rem; margin:1.8rem 0 0; padding:0; list-style:none}
.zones li{border:1px solid var(--line); padding:.45rem .9rem; border-radius:2px; font-size:.95rem}

.faq{margin-top:2rem; border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer; list-style:none; padding:1.25rem 2.5rem 1.25rem 0; font-family:var(--head); font-size:1.2rem; position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:.25rem; top:1.05rem; font-family:var(--body); font-size:1.5rem; color:var(--gold-text)}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 1.4rem; color:var(--muted); max-width:66ch}

/* Contacto */
.contact{background:var(--navy); color:var(--ivory)}
.contact .split{grid-template-columns:.85fr 1.15fr}
@media (max-width:860px){.contact .split{grid-template-columns:1fr}}
.contact .intro{color:#C9D1DC}
.direct{margin-top:2rem; display:grid; gap:.9rem}
.direct a{text-decoration:none; color:var(--ivory); font-size:1.05rem}
.direct span{display:block; font-size:.85rem; color:#AFB9C7}
.wa-link{display:flex !important; align-items:center; gap:.8rem; border:1px solid rgba(246,243,236,.35); border-radius:3px; padding:.9rem 1rem; max-width:340px}
.wa-link:hover{border-color:var(--ivory)}
.wa-link svg{flex:none; width:26px; height:26px; color:var(--gold)}
.wa-link .wa-text{display:block; color:var(--ivory); font-size:.95rem}
.wa-link .wa-text span{color:var(--ivory); font-size:1.05rem; font-weight:600}
form{background:var(--paper); color:var(--text); padding:2rem; border-radius:3px}
.row{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
@media (max-width:620px){.row{grid-template-columns:1fr} form{padding:1.4rem}}
label{display:block; font-size:.92rem; font-weight:600; margin-bottom:1rem}
input,select,textarea{display:block; width:100%; margin-top:.35rem; font:400 1rem/1.4 var(--body); color:var(--text); background:var(--bg); border:1px solid #C9C2B4; border-radius:2px; padding:.7rem .8rem}
textarea{min-height:120px; resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold); outline-offset:0; border-color:var(--gold)}
.check{display:flex; gap:.6rem; align-items:flex-start; font-weight:400; font-size:.9rem}
.check input{width:auto; margin-top:.25rem}
.legal-note{font-size:.8rem; color:var(--muted); margin-top:1rem; line-height:1.5}
.hp{position:absolute; left:-9999px}
form .btn{width:100%; margin-top:.4rem}

footer{background:#0F1C2E; color:#AFB9C7; font-size:.9rem; padding:2rem 0}
footer .wrap{display:flex; flex-wrap:wrap; gap:1rem 2rem; justify-content:space-between}
footer nav{display:flex; flex-wrap:wrap; gap:1.2rem}
footer a{color:#DCE2EA; text-decoration:none}

/* Menú desplegable */
.top .wrap{transition:height .3s ease}
.top.scrolled .wrap{height:60px}
.top::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:calc(var(--p,0) * 100%); background:var(--gold)}
.actions{display:flex; align-items:center; gap:.8rem}
.menu-btn{display:inline-flex; align-items:center; gap:.6rem; background:transparent; color:var(--ivory); border:1px solid rgba(246,243,236,.45); border-radius:3px; padding:.8rem 1rem; font:600 .95rem/1 var(--body); cursor:pointer}
.menu-btn:hover{border-color:var(--ivory)}
.burger{width:18px; height:12px; position:relative}
.burger::before,.burger::after{content:""; position:absolute; left:0; width:100%; height:1.5px; background:currentColor; transition:transform .3s ease, top .3s ease}
.burger::before{top:2px} .burger::after{top:9px}
.menu-btn[aria-expanded="true"] .burger::before{top:5.5px; transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .burger::after{top:5.5px; transform:rotate(-45deg)}
.menu-panel{position:absolute; left:0; right:0; top:100%; background:var(--navy); border-top:1px solid rgba(176,130,73,.4); box-shadow:0 24px 40px rgba(10,20,35,.35); visibility:hidden; opacity:0; transform:translateY(-12px); transition:opacity .25s ease, transform .25s ease, visibility 0s .25s; max-height:calc(100vh - 72px); overflow-y:auto}
.top.open .menu-panel{visibility:visible; opacity:1; transform:none; transition:opacity .25s ease, transform .25s ease}
.menu-panel ul{list-style:none; margin:0 auto; padding:1.2rem 0 1.8rem; width:min(1120px, 100% - 2.5rem); display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem 2rem}
.menu-panel a{display:block; text-decoration:none; color:var(--ivory); padding:.9rem 0 .9rem 1rem; border-left:2px solid transparent; transition:border-color .2s, background .2s}
.menu-panel a:hover,.menu-panel a[aria-current="true"]{border-left-color:var(--gold); background:rgba(246,243,236,.04)}
.menu-panel b{display:block; font-family:var(--head); font-weight:400; font-size:1.25rem}
.menu-panel span{display:block; font-size:.88rem; color:#AFB9C7; margin-top:.15rem}
@media (max-width:860px){.menu-panel ul{grid-template-columns:1fr}}
@media (max-width:520px){.actions .btn{display:none}}

/* Movimiento */
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes rise{from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none}}
.js .roof-line{stroke-dasharray:420; stroke-dashoffset:420; animation:draw 1.4s .2s ease-out forwards}
.js .hero-main h1,.js .hero-main .lead,.js .hero-main .ctas{animation:rise .8s ease-out both}
.js .hero-main .lead{animation-delay:.12s}
.js .hero-main .ctas{animation-delay:.24s}
.js .reveal{opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease}
.js .reveal.in{opacity:1; transform:none}
.js .stagger > *{opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease}
.js .stagger.in > *{opacity:1; transform:none}
.js .stagger.in > *:nth-child(2){transition-delay:.1s}
.js .stagger.in > *:nth-child(3){transition-delay:.2s}
.js .stagger.in > *:nth-child(4){transition-delay:.3s}
.js .stagger.in > *:nth-child(5){transition-delay:.4s}
.js .stagger.in > *:nth-child(6){transition-delay:.5s}
.btn{transition:background .2s, border-color .2s, transform .15s}
.btn:active{transform:scale(.97)}

/* Botón flotante */
.fabs{position:fixed; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom,0px)); z-index:30; display:none; align-items:center; gap:.6rem}
.fab{display:inline-flex; align-items:center; gap:.5rem; background:var(--gold); color:#fff; text-decoration:none; font:600 .95rem/1 var(--body); padding:.95rem 1.2rem; border-radius:999px; box-shadow:0 10px 24px rgba(10,20,35,.3); opacity:0; transform:translateY(20px); transition:opacity .3s, transform .3s}
.fabs.show .fab,.fabs.show .fab-wa{opacity:1; transform:none}
.fab-wa{display:inline-grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--paper); color:var(--navy); border:1px solid var(--line); box-shadow:0 10px 24px rgba(10,20,35,.25); opacity:0; transform:translateY(20px); transition:opacity .3s, transform .3s}
.fab-wa svg{width:24px; height:24px}
@media (max-width:860px){.fabs{display:flex}}

@media (prefers-reduced-motion: reduce){
  .js .roof-line{animation:none; stroke-dashoffset:0}
  .js .hero-main h1,.js .hero-main .lead,.js .hero-main .ctas{animation:none}
  .js .reveal,.js .stagger > *{opacity:1; transform:none; transition:none}
  .menu-panel,.top .wrap,.burger::before,.burger::after,.fab,.fab-wa{transition:none}
}

.vecinos{color:#DCE2EA; text-decoration:none; font-size:.95rem; margin-right:.4rem}
.vecinos:hover{color:#fff}
@media (max-width:860px){.vecinos{display:none}}
.panel{background:var(--paper); border:1px solid var(--line); padding:2rem; border-radius:3px}
.alt form{border:1px solid var(--line)}
.ticks{list-style:none; padding:0; margin:1.6rem 0 0; display:grid; gap:.7rem}
.ticks li{position:relative; padding-left:1.6rem; color:var(--muted)}
.ticks li::before{content:""; position:absolute; left:.1rem; top:.5em; width:.75rem; height:.4rem; border-left:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold); transform:rotate(-45deg)}
.call{display:inline-flex; align-items:center; gap:.6rem; margin-top:1.6rem; color:var(--gold-text); font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.15rem}
.contact .call,.dark-band .call{color:#E3C08E}
.inline-form{display:grid; grid-template-columns:1fr 1fr auto; gap:.8rem; align-items:end; margin-top:1.6rem}
.inline-form label{margin:0}
.inline-form .btn{margin:0; width:auto}
@media (max-width:760px){.inline-form{grid-template-columns:1fr}}
.dark-band{background:var(--navy); color:var(--ivory)}
.dark-band .intro,.dark-band .ticks li{color:#C9D1DC}
.file-note{font-size:.82rem; color:var(--muted); font-weight:400; display:block; margin-top:.3rem}

.table-wrap{overflow-x:auto; margin-top:1.4rem; border:1px solid var(--line); background:var(--paper)}
.fees{width:100%; border-collapse:collapse; min-width:520px; font-size:.97rem}
.fees th,.fees td{text-align:left; padding:.85rem 1rem; border-bottom:1px solid var(--line); vertical-align:top}
.fees th{font-weight:600; background:var(--surface)}
.fees td:nth-child(2){white-space:nowrap; font-weight:600}
.fees tr:last-child td{border-bottom:0}
@media (max-width:620px){
  .fees{min-width:0}
  .fees thead{display:none}
  .fees tr{display:grid; grid-template-columns:1fr auto; gap:.2rem 1rem; padding:.9rem 1rem; border-bottom:1px solid var(--line)}
  .fees tr:last-child{border-bottom:0}
  .fees td{padding:0; border:0}
  .fees td:nth-child(3){grid-column:1 / -1; font-size:.88rem; color:var(--muted)}
}
.disclaimer{margin-top:1.4rem; padding:1rem 1.2rem; border-left:3px solid var(--gold); background:var(--paper); color:var(--muted); font-size:.95rem}
.scope{display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; margin-top:2.2rem}
.scope .ticks{margin-top:1rem}
@media (max-width:760px){.scope{grid-template-columns:1fr}}
.guides{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; margin-top:2.4rem}
.guides a{display:block; text-decoration:none; background:var(--paper); border:1px solid var(--line); padding:1.6rem; transition:border-color .2s, transform .2s}
.guides a:hover{border-color:var(--gold); transform:translateY(-3px)}
.guides p{color:var(--muted); margin-top:.5rem}
.guides .more{display:inline-block; margin-top:1rem; color:var(--gold-text); font-weight:600}
@media (max-width:860px){.guides{grid-template-columns:1fr}}
@media (prefers-reduced-motion: reduce){.guides a{transition:none}}

.change-cta{margin-top:3rem; padding:2rem; border:1px solid var(--line); background:var(--surface)}
.change-cta p{color:var(--muted); max-width:70ch}
.change-cta .ctas{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.4rem}
.btn-outline{border-color:var(--navy); color:var(--text)}
.btn-outline:hover{background:var(--navy); color:var(--ivory)}

.meta-link{margin-top:1.2rem; font-size:.95rem}
.meta-link a{color:var(--gold-text)}
@media (max-width:520px){.change-cta{padding:1.4rem} .change-cta .btn{width:100%; text-align:center; white-space:normal}}
.call-note{margin-top:.6rem; font-size:.92rem; color:#AFB9C7; max-width:40ch}

/* Ilustración portada */
.town{width:100%; height:auto; display:block}
.win{fill:#B08249; opacity:.12}
.js .win{animation:light .6s ease-out forwards}
@keyframes light{to{opacity:.85}}
/* Iconos de servicios */
.services dt{display:flex; align-items:center; gap:.6rem}
.ico{width:26px; height:26px; flex:none; fill:none; stroke:var(--gold-text); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
/* Cifras */
.numbers{background:var(--navy); color:var(--ivory); padding:3rem 0}
.nums{display:grid; grid-template-columns:repeat(4,1fr); gap:2rem}
.nums b{display:block; font-family:var(--head); font-weight:400; font-size:clamp(2.2rem,4vw,3rem); line-height:1; color:#E3C08E}
.nums span:not(.count){display:block; margin-top:.5rem; color:#C9D1DC; font-size:.95rem}
@media (max-width:860px){.nums{grid-template-columns:1fr 1fr}}
/* Móvil de la app */
.app-split{align-items:center}
.phone-wrap{display:flex; flex-direction:column; align-items:center}
.phone{position:relative; width:270px; max-width:100%; aspect-ratio:9/18.5; background:#0E1A2B; border-radius:38px; padding:12px; box-shadow:0 30px 60px rgba(10,20,35,.25), inset 0 0 0 2px #2A3B54}
.notch{position:absolute; top:12px; left:50%; transform:translateX(-50%); width:90px; height:20px; background:#0E1A2B; border-radius:0 0 12px 12px; z-index:2}
.screen{position:relative; height:100%; background:#F6F3EC; border-radius:28px; padding:2.4rem .9rem 1rem; overflow:hidden; color:#1C2533}
.app-title{font-family:var(--head); font-size:1.05rem; margin-bottom:.7rem}
.card{background:#fff; border-radius:12px; padding:.7rem .8rem; margin-bottom:.6rem; box-shadow:0 2px 6px rgba(23,42,66,.06)}
.card-h{font-weight:600; font-size:.82rem}
.card-f{font-size:.72rem; color:#5A6472}
.bars{display:flex; align-items:flex-end; gap:6px; height:58px; margin:.5rem 0}
.bars i{flex:1; height:var(--h); background:#172A42; border-radius:3px 3px 0 0; transform-origin:bottom}
.bars i:nth-child(4){background:#B08249}
.js .phone-wrap .bars i{transform:scaleY(0); transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.js .phone-wrap.in .bars i{transform:scaleY(1)}
.js .phone-wrap.in .bars i:nth-child(2){transition-delay:.1s}
.js .phone-wrap.in .bars i:nth-child(3){transition-delay:.2s}
.js .phone-wrap.in .bars i:nth-child(4){transition-delay:.3s}
.js .phone-wrap.in .bars i:nth-child(5){transition-delay:.4s}
.row-card{display:flex; align-items:center; gap:.6rem}
.dot{width:10px; height:10px; border-radius:50%; background:#B08249; flex:none}
.dot.ok{background:#3E8E63}
.dot.doc{background:#172A42}
.toast{position:absolute; top:2.2rem; left:.6rem; right:.6rem; background:#172A42; color:#F6F3EC; font-size:.72rem; padding:.6rem .7rem; border-radius:10px; z-index:3; opacity:0; transform:translateY(-14px)}
.js .phone-wrap.in .toast{animation:toast 4.5s 1.2s ease both}
@keyframes toast{0%{opacity:0; transform:translateY(-14px)} 12%,80%{opacity:1; transform:none} 100%{opacity:0; transform:translateY(-14px)}}
.caption{margin-top:.8rem; font-size:.8rem; color:var(--muted)}
/* Línea de los pasos */
.steps{position:relative}
.steps::before{content:""; position:absolute; top:1.25rem; left:1.25rem; right:1.25rem; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform 1.4s ease}
.steps.in::before{transform:scaleX(1)}
.no-js .steps::before{transform:none}
@media (max-width:860px){.steps::before{display:none}}
@media (prefers-reduced-motion: reduce){
  .js .win{animation:none; opacity:.85}
  .js .phone-wrap .bars i{transform:none; transition:none}
  .js .phone-wrap.in .toast{animation:none; opacity:1; transform:none}
  .steps::before{transform:none; transition:none}
}
.prose{color:#C9D1DC; max-width:60ch; margin-bottom:1rem}

/* ===== Versión con fondo blanco ===== */
.top{background:var(--bg); color:var(--text); border-bottom:1px solid var(--line)}
body::before{background:var(--bg)}
.brand b{color:var(--text)}
.brand small{color:var(--gold-text)}
.vecinos{color:var(--text)}
.vecinos:hover{color:var(--gold-text)}
.menu-btn{color:var(--text); border-color:var(--line)}
.menu-btn:hover{border-color:var(--text)}
.menu-panel{background:var(--bg); border-top:1px solid var(--line); box-shadow:0 24px 40px rgba(23,42,66,.12)}
.menu-panel a{color:var(--text)}
.menu-panel a:hover,.menu-panel a[aria-current="true"]{background:var(--surface)}
.menu-panel span{color:var(--muted)}

.btn-gold{background:var(--navy); color:#fff}
.btn-gold:hover{background:#20375A}
.btn-line{border-color:var(--navy); color:var(--text)}
.btn-line:hover{background:var(--navy); color:#fff}

.hero{background:var(--bg); color:var(--text)}
.hero p.lead{color:var(--muted)}
.facts{border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.facts li{color:var(--muted)}

main > section + section{border-top:1px solid var(--line)}
.alt{background:var(--bg)}
.dark-band{background:var(--bg); color:var(--text)}
.dark-band .intro,.dark-band .ticks li,.prose{color:var(--muted)}
.contact .call,.dark-band .call{color:var(--gold-text)}
.change-cta{background:var(--bg); border:1px solid var(--line); border-left:3px solid var(--gold)}
form{border:1px solid var(--line)}

.contact{background:var(--bg); color:var(--text)}
.contact .intro{color:var(--muted)}
.direct a{color:var(--text)}
.direct span{color:var(--muted)}
.wa-link{border-color:var(--line)}
.wa-link:hover{border-color:var(--navy)}
.wa-link .wa-text,.wa-link .wa-text span{color:var(--text)}
.call-note{color:var(--muted)}

.fab{background:var(--navy)}
.top::after{background:var(--gold)}


/* ===== Versión más ligera ===== */
.top .wrap{height:88px}
.top.scrolled .wrap{height:68px}
.brand{gap:.9rem}
.brand svg{width:56px; height:56px; transition:width .3s, height .3s}
.top.scrolled .brand svg{width:46px; height:46px}
.brand b{font-size:1.65rem; letter-spacing:.14em}
.brand small{font-size:.8rem; letter-spacing:.45em}
html{scroll-padding-top:calc(92px + env(safe-area-inset-top,0px))}
.menu-panel{max-height:calc(100vh - 88px)}
@media (max-width:520px){.top .wrap{height:76px} .brand svg{width:48px; height:48px} .brand b{font-size:1.35rem} .brand small{font-size:.7rem}}
section{padding:4.5rem 0}
.services.three{grid-template-columns:repeat(3,1fr); margin-top:2.2rem}
@media (max-width:860px){.services.three{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.services.three{grid-template-columns:1fr}}
.new-build h3{font-size:1.2rem}
.mini-form{margin-top:2rem; padding:1.4rem 1.6rem; border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:3px}
.mini-form > p{color:var(--text); margin-bottom:.8rem}
.mini-form .inline-form{margin-top:0}
.mini-form .check{margin:.9rem 0 0}
.help{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:2rem}
.help-card{display:block; text-decoration:none; color:var(--text); border:1px solid var(--line); padding:1.5rem; border-radius:3px; transition:border-color .2s, transform .2s}
.help-card:hover{border-color:var(--gold); transform:translateY(-3px)}
.help-card p{color:var(--muted); margin-top:.4rem}
.help-card .more,.guides .more{display:inline-block; margin-top:1rem; color:var(--gold-text); font-weight:600}
@media (max-width:860px){.help{grid-template-columns:1fr}}
.promise{display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem; margin-top:2rem}
.promise div{border-top:2px solid var(--gold); padding-top:1rem}
.promise p{color:var(--muted); margin-top:.3rem}
@media (max-width:860px){.promise{grid-template-columns:1fr 1fr}}
.guides a h3{font-size:1.25rem}
.menu-panel b{font-size:1.2rem}
@media (prefers-reduced-motion: reduce){.help-card{transition:none} .brand svg{transition:none}}

/* ===== Cabecera y textos más grandes ===== */
.top .wrap{height:104px}
.top.scrolled .wrap{height:78px}
.brand{gap:1.1rem}
.brand svg{width:70px; height:70px}
.top.scrolled .brand svg{width:54px; height:54px}
.brand b{font-size:2.1rem; letter-spacing:.14em}
.brand small{font-size:.95rem; letter-spacing:.5em; margin-top:.15rem}
.vecinos{font-size:1.05rem}
.actions .btn,.menu-btn{font-size:1.05rem; padding:1rem 1.4rem}
html{scroll-padding-top:calc(110px + env(safe-area-inset-top,0px))}
.menu-panel{max-height:calc(100vh - 104px)}
@media (max-width:520px){
  .top .wrap{height:84px} .top.scrolled .wrap{height:70px}
  .brand svg{width:54px; height:54px} .top.scrolled .brand svg{width:46px; height:46px}
  .brand b{font-size:1.5rem} .brand small{font-size:.75rem}
  .menu-btn{padding:.85rem 1rem}
}
body{font-size:1.2rem}
.hero h1{font-size:clamp(2.8rem, 6.2vw, 4.8rem)}
.hero p.lead{font-size:1.4rem}
h2{font-size:clamp(2.3rem, 4.4vw, 3.3rem)}
h3{font-size:1.55rem}
.intro{font-size:1.25rem; max-width:none}
.btn{font-size:1.1rem; padding:1.1rem 1.6rem}
.facts li{font-size:1.15rem}
.services dt{font-size:1.5rem}
.services dd{font-size:1.15rem}
.ico{width:32px; height:32px}
.ticks li{font-size:1.15rem}
.new-build h3,.help-card h3,.promise h3{font-size:1.5rem}
.new-build p,.help-card p,.promise p,.prose{font-size:1.12rem}
.guides a h3{font-size:1.45rem}
.faq summary{font-size:1.4rem}
.faq details p{font-size:1.12rem}
.menu-panel b{font-size:1.35rem}
label{font-size:1.02rem}
input,select,textarea{font-size:1.1rem; padding:.85rem .9rem}
.mini-form > p{font-size:1.12rem}
.zones li{font-size:1.05rem}
@media (max-width:520px){
  body{font-size:1.1rem}
  .hero p.lead{font-size:1.22rem}
  .services dt{font-size:1.35rem}
}

/* ===== Cabecera XL con nombre equilibrado ===== */
.top .wrap{height:120px}
.top.scrolled .wrap{height:86px}
.brand{gap:1.2rem}
.brand svg{width:84px; height:84px}
.top.scrolled .brand svg{width:60px; height:60px}
.brand > span{display:flex; flex-direction:column; align-items:flex-start; line-height:1}
.brand b{display:inline-block; font-size:2.6rem; letter-spacing:.12em; line-height:1}
.brand small{display:inline-block; font-family:var(--body); font-weight:600; font-size:1.3rem; line-height:1; margin-top:.55rem; letter-spacing:.5em; color:var(--gold-text)}
html{scroll-padding-top:calc(126px + env(safe-area-inset-top,0px))}
.menu-panel{max-height:calc(100vh - 120px)}
@media (max-width:860px){.brand b{font-size:2.1rem} .brand small{font-size:1.05rem} .brand svg{width:70px; height:70px}}
@media (max-width:520px){
  .top .wrap{height:92px} .top.scrolled .wrap{height:76px}
  .brand{gap:.8rem}
  .brand svg{width:58px; height:58px} .top.scrolled .brand svg{width:48px; height:48px}
  .brand b{font-size:1.6rem} .brand small{font-size:.8rem; margin-top:.4rem}
  .menu-btn .label{display:none}
  .menu-btn{padding:.9rem}
}

.brand small{font-family:var(--head); font-weight:400; font-size:1.6rem; margin-top:.35rem}
@media (max-width:860px){.brand small{font-size:1.3rem}}
@media (max-width:520px){.brand b{font-size:1.8rem} .brand svg{width:62px; height:62px} .brand small{font-size:1.1rem; margin-top:.25rem}}

/* FINCAS centrado entre dos líneas doradas */
.brand > span{align-items:stretch}
.brand b{display:block}
.brand small{display:flex; align-items:center; gap:.55rem; font-size:1.2rem; letter-spacing:.3em; margin-top:.45rem}
.brand small::before,.brand small::after{content:""; flex:1; height:1.5px; background:var(--gold)}
.brand small::after{margin-left:-.3em}
@media (max-width:860px){.brand small{font-size:1rem; gap:.45rem}}
@media (max-width:520px){.brand small{font-size:.85rem; gap:.4rem; margin-top:.3rem}}

/* ===== Dinamismo ===== */
:root{--d-bg:#172A42; --d-text:#F6F3EC; --d-muted:#C9D1DC; --d-line:rgba(246,243,236,.18); --d-gold:#E3C08E}
/* Elementos que siempre se leen sobre claro */
.top,form,.mini-form,.panel,.new-build article,.help-card,.guides a,.change-cta,.svc{--bg:#fff; --text:#172A42; --muted:#3E5068; --line:#E3DED3; --gold-text:#8A6434}
.top{background:#fff}
form,.mini-form,.panel,.new-build article,.help-card,.guides a,.svc{background:#fff; color:#172A42}
/* Sin JavaScript o con movimiento reducido: secciones azules fijas */
section[data-dark]{--bg:var(--d-bg); --text:var(--d-text); --muted:var(--d-muted); --line:var(--d-line); --gold-text:var(--d-gold); background:var(--d-bg); color:var(--d-text)}
@media (prefers-reduced-motion: reduce){
  section[data-dark]{--bg:var(--d-bg); --text:var(--d-text); --muted:var(--d-muted); --line:var(--d-line); --gold-text:var(--d-gold); background:var(--d-bg); color:var(--d-text)}
  body,main section,main section *{transition:none !important}
}
section[data-dark] .ticks li,section[data-dark] .prose,section[data-dark] .intro,section[data-dark] .promise p{color:var(--muted)}
main > section[data-dark] + section, main > section + section[data-dark]{border-top-color:transparent}

/* Subrayado dorado que se dibuja */
.mark{background-image:linear-gradient(var(--gold),var(--gold)); background-repeat:no-repeat; background-position:0 92%; background-size:0 3px; transition:background-size 1.1s cubic-bezier(.2,.8,.2,1) .2s; padding-bottom:.05em}
.mark.in,html:not(.js) .mark{background-size:100% 3px}
@media (prefers-reduced-motion: reduce){.mark{background-size:100% 3px; transition:none}}

/* Menú a pantalla completa */
.menu-panel{position:fixed; left:0; right:0; top:var(--hh,120px); bottom:0; max-height:none; background:var(--navy) !important; border:0; box-shadow:none; transform:none; display:flex; align-items:center}
.top.open .menu-panel{transform:none}
.menu-panel ul{grid-template-columns:repeat(3,1fr); gap:.2rem 2.5rem; padding:2rem 0}
.menu-panel a{color:#F6F3EC; border-left:2px solid transparent; padding:.7rem 0 .7rem 1rem}
.menu-panel a:hover,.menu-panel a[aria-current="true"]{background:rgba(246,243,236,.06); border-left-color:var(--gold)}
.menu-panel b{font-size:clamp(1.5rem,2.6vw,2.2rem)}
.menu-panel li{opacity:0; transform:translateY(16px); transition:opacity .4s ease, transform .4s ease}
.top.open .menu-panel li{opacity:1; transform:none; transition-delay:calc(var(--i) * 40ms)}
@media (max-width:860px){.menu-panel{align-items:flex-start; overflow-y:auto} .menu-panel ul{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.menu-panel ul{grid-template-columns:1fr} .menu-panel b{font-size:1.6rem}}
@media (prefers-reduced-motion: reduce){.menu-panel li{opacity:1; transform:none; transition:none}}
body.menu-open{overflow:hidden}

/* Servicios interactivos */
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:2rem}
.svc{border:1px solid var(--line); border-radius:4px}
.svc-head{all:unset; box-sizing:border-box; cursor:pointer; display:flex; align-items:flex-start; gap:.9rem; width:100%; padding:1.4rem}
.svc-head:focus-visible{outline:2px solid var(--gold); outline-offset:2px}
.svc-t{flex:1}
.svc-t b{display:block; font-family:var(--head); font-weight:400; font-size:1.5rem; line-height:1.2}
.svc-t span{display:block; color:var(--muted); margin-top:.3rem; font-size:1.1rem}
.plus{position:relative; width:22px; height:22px; flex:none; margin-top:.4rem}
.plus::before,.plus::after{content:""; position:absolute; left:3px; right:3px; top:10px; height:2px; background:var(--gold); transition:transform .3s ease}
.plus::after{transform:rotate(90deg)}
.svc.open .plus::after{transform:rotate(0)}
.svc.open{border-color:var(--gold)}
.svc-more{display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s ease}
.svc-more > div{overflow:hidden}
.svc-more p{padding:0 1.4rem 1.4rem 4.3rem; color:var(--muted); font-size:1.08rem}
.svc.open .svc-more{grid-template-rows:1fr}
@media (max-width:860px){.svc-grid{grid-template-columns:1fr 1fr}}
.hint{font-size:1rem !important; margin-top:.4rem}

/* Tarjetas deslizables en el móvil */
@media (max-width:760px){
  .swipe{display:flex !important; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-left:1.25rem; gap:1rem; padding:0 1.25rem 1rem; margin-left:-1.25rem; margin-right:-1.25rem; scrollbar-width:none; -webkit-overflow-scrolling:touch}
  .swipe::-webkit-scrollbar{display:none}
  .swipe > *{flex:0 0 82%; scroll-snap-align:start}
  .svc-grid.swipe{align-items:flex-start}
  .svc-more p{padding-left:1.4rem}
}

/* Botones con relleno animado */
.btn{position:relative; overflow:hidden; isolation:isolate}
.btn::before{content:""; position:absolute; inset:0; z-index:-1; background:var(--sweep,#8A6434); transform:scaleX(0); transform-origin:left; transition:transform .35s ease}
.btn:hover::before,.btn:focus-visible::before{transform:scaleX(1)}
.btn-gold{--sweep:#8A6434}
.btn-gold:hover{background:var(--navy)}
.btn-line{--sweep:#172A42; transition:color .35s ease}
.btn-line:hover{background:transparent; color:#fff}
@media (prefers-reduced-motion: reduce){.btn::before{transition:none}}

/* Formulario rápido de la portada */
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.quick{margin-top:2rem; padding:1.4rem; border:1px solid var(--line); border-top:3px solid var(--gold); border-radius:4px; background:#fff; max-width:560px; box-shadow:0 18px 40px rgba(23,42,66,.08)}
.quick-t{font-family:var(--head); font-size:1.5rem; margin-bottom:.8rem; color:var(--navy)}
.quick select,.quick input[type=email]{margin-top:0}
.quick-row{display:grid; grid-template-columns:1fr auto; gap:.6rem; margin-top:.6rem}
.quick .btn{white-space:nowrap}
.quick .check{margin:.8rem 0 0; font-size:.95rem}
@media (max-width:520px){.quick-row{grid-template-columns:1fr} .quick{padding:1.1rem}}
@media (max-width:860px){.hero-art{display:none}}
/* Páginas interiores */
.page-hero{padding:4rem 0 1rem}
.page-hero h1{font-size:clamp(2.6rem,5.5vw,4rem)}
.page-hero p{color:var(--muted); font-size:1.3rem; margin-top:1rem; max-width:52ch}
.page-cta{text-align:left}
.page-cta .ctas{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.4rem}
footer nav{gap:1rem 1.4rem}

section[data-dark] .btn-gold{background:#F6F3EC; color:#172A42; --sweep:#E3C08E}
section[data-dark] .btn-gold:hover{background:#F6F3EC; color:#172A42}
section[data-dark] .btn-line{border-color:rgba(246,243,236,.7); color:#F6F3EC; --sweep:#F6F3EC}
section[data-dark] .btn-line:hover{color:#172A42}

/* Menú con desplegables */
.menu-panel{align-items:flex-start; overflow-y:auto}
.menu-panel ul.m{display:block; list-style:none; width:min(760px, 100% - 2.5rem); margin:0 auto; padding:2.5rem 0 1rem}
.menu-panel ul.m > li{border-bottom:1px solid rgba(246,243,236,.15)}
.menu-panel .m-btn,.menu-panel a.m-link{all:unset; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; width:100%; cursor:pointer; color:#F6F3EC; font-family:var(--head); font-size:clamp(1.7rem,3vw,2.4rem); padding:1.1rem 0; border:0}
.menu-panel .m-btn:focus-visible,.menu-panel a.m-link:focus-visible,.menu-panel .sub a:focus-visible{outline:2px solid var(--gold); outline-offset:4px}
.menu-panel a.m-link:hover,.menu-panel .m-btn:hover{color:#E3C08E; background:none}
.chev{width:14px; height:14px; border-right:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(45deg) translate(-3px,-3px); transition:transform .3s ease; flex:none; margin-left:1rem}
li.open > .m-btn .chev{transform:rotate(225deg) translate(-3px,-3px)}
.sub{display:grid; grid-template-rows:0fr; visibility:hidden; transition:grid-template-rows .35s ease, visibility 0s .35s}
li.open > .sub{grid-template-rows:1fr; visibility:visible; transition:grid-template-rows .35s ease}
.sub > ul{overflow:hidden; list-style:none; margin:0; padding:0}
.menu-panel .sub a{display:block; font-family:var(--body); font-size:1.2rem; color:#C9D1DC; padding:.6rem 0 .6rem 1rem; border-left:2px solid transparent; background:none}
.menu-panel .sub a:hover,.menu-panel .sub a[aria-current="true"]{color:#fff; border-left-color:var(--gold); background:none}
.sub > ul > li:last-child a{margin-bottom:1rem}
.m-foot{width:min(760px, 100% - 2.5rem); margin:0 auto 2rem}
.m-foot a{color:#E3C08E; font-size:1.1rem}
@media (prefers-reduced-motion: reduce){.sub,.chev{transition:none}}

.menu-panel{display:block}
.menu-panel .sub > ul{display:block; width:auto; margin:0; padding:0; gap:0}

/* Páginas interiores: texto largo */
.page-hero .crumbs{font-size:1rem; color:var(--muted); margin:0 0 1rem}
.page-hero .crumbs a{color:var(--gold-text)}
.doc{max-width:72ch}
.doc h2{font-size:clamp(1.7rem,3vw,2.2rem); margin:2.6rem 0 .8rem}
.doc h2:first-child{margin-top:0}
.doc h3{margin:1.8rem 0 .5rem}
.doc p,.doc li{color:var(--muted)}
.doc p + p{margin-top:1rem}
.doc ul,.doc ol{padding-left:1.3rem; margin:1rem 0}
.doc li + li{margin-top:.4rem}
.doc a{color:var(--gold-text)}
.doc strong{color:var(--text); font-weight:600}
.doc .ticks{padding-left:0}
.data{display:grid; grid-template-columns:max-content 1fr; gap:.5rem 1.6rem; margin:1.2rem 0}
.data dt{font-weight:600}
.data dd{margin:0; color:var(--muted)}
@media (max-width:560px){.data{grid-template-columns:1fr; gap:.1rem} .data dd{margin-bottom:.7rem}}
.updated{font-size:.95rem; color:var(--muted); margin-top:2.4rem}
.team{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; margin-top:2rem}
.team div{border-top:2px solid var(--gold); padding-top:1rem}
.team p{color:var(--muted); margin-top:.3rem}
@media (max-width:860px){.team{grid-template-columns:1fr}}
.not-found{padding:2.5rem 0 5rem}
.call-form{background:var(--surface); max-width:none}
.call-form > p{font-size:1.05rem}
.call-form label{margin-bottom:.8rem}
.call-form .btn{width:100%; margin-top:.8rem}
section[data-dark] form .btn-gold,section[data-dark] form .btn-gold:hover{background:var(--navy); color:#fff; --sweep:#8A6434}
/* WhatsApp y llamadas a la acción */
.wa-link svg,.contact .wa-link svg{color:#25D366; width:28px; height:28px}
.fab-wa{color:#25D366}
.cta-row{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.8rem}
@media (max-width:520px){.cta-row .btn{width:100%; text-align:center; white-space:normal}}
@media (min-width:861px){.facts ul{justify-items:center}}

/* Formulario por pasos (propuesta.html) */
.wizard-page{padding:3rem 0 5rem}
.wizard{max-width:680px; margin:0 auto; border:1px solid var(--line); border-top:3px solid var(--gold); border-radius:4px; padding:2rem; box-shadow:0 18px 40px rgba(23,42,66,.08)}
.wz-top{margin-bottom:1.6rem}
.wz-count{font-size:.95rem; color:var(--muted); margin-bottom:.5rem}
.wz-bar{height:4px; background:var(--line); border-radius:2px; overflow:hidden}
.wz-bar i{display:block; height:100%; width:33.3%; background:var(--gold); transition:width .35s ease}
.wizard:not(.wz-on) .wz-top,.wizard:not(.wz-on) .wz-back,.wizard:not(.wz-on) .wz-next{display:none}
.wz-step{border:0; margin:0; padding:0; min-width:0}
.wizard:not(.wz-on) .wz-step + .wz-step{margin-top:2.4rem}
.wz-step legend{padding:0; margin-bottom:1.4rem}
.wz-title{display:block; font-family:var(--head); font-size:clamp(1.8rem,4vw,2.4rem); line-height:1.15; outline:none}
.wz-sub{display:block; color:var(--muted); margin-top:.4rem}
.wz-label{font-weight:600; font-size:1.02rem; margin:.4rem 0 .6rem}
.wizard small{font-weight:400; color:var(--muted)}
.choices{display:grid; gap:.7rem}
.choice,.chip{position:relative; margin:0; cursor:pointer; font-weight:400}
.choice input,.chip input{position:absolute; opacity:0; width:1px; height:1px; margin:0}
.choice span{display:block; border:1px solid var(--line); border-radius:4px; padding:1rem 1.2rem 1rem 3.2rem; position:relative; transition:border-color .2s, background .2s}
.choice span::before{content:""; position:absolute; left:1.1rem; top:50%; width:1.2rem; height:1.2rem; margin-top:-.6rem; border:1.5px solid #C9C2B4; border-radius:50%; transition:border-color .2s, box-shadow .2s}
.choice b{display:block; font-weight:600}
.choice small{display:block; font-size:.98rem; margin-top:.15rem}
.choice:hover span,.chip:hover span{border-color:var(--gold)}
.choice input:checked + span{border-color:var(--gold); background:var(--surface)}
.choice input:checked + span::before{border-color:var(--gold); box-shadow:inset 0 0 0 .3rem #fff, inset 0 0 0 .7rem var(--gold)}
.choice input:focus-visible + span,.chip input:focus-visible + span{outline:2px solid var(--gold); outline-offset:2px}
.chips{display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:1.2rem}
.chip span{display:inline-block; border:1px solid var(--line); border-radius:999px; padding:.6rem 1.05rem; font-size:1.02rem; transition:border-color .2s, background .2s, color .2s}
.chip input:checked + span{background:var(--navy); border-color:var(--navy); color:#fff}
.wz-nav{display:flex; gap:.8rem; margin-top:1.8rem}
.wz-nav .btn{flex:1; text-align:center}
.wz-nav .wz-back{flex:0 0 auto}
.wz-note{font-size:.92rem; color:var(--muted); margin-top:1rem; text-align:center}
@media (max-width:620px){.wizard{padding:1.4rem 1.1rem; border-left:0; border-right:0; border-radius:0; box-shadow:none; margin:0 -1.25rem} .wizard-page{padding:1.5rem 0 4rem}}
@media (prefers-reduced-motion: reduce){.wz-bar i,.choice span,.chip span{transition:none}}
.hero-cta{margin-top:2rem}
.hero-cta .ctas{margin-top:0}
.hero-cta p{margin-top:1rem; color:var(--muted); font-size:1rem}
.cta-card{background:var(--paper); color:var(--text); border:1px solid var(--line); border-top:3px solid var(--gold); border-radius:4px; padding:2rem}
.cta-card h3{font-size:1.7rem}
.cta-card ol{margin:1.2rem 0 1.6rem; padding-left:1.3rem; color:var(--muted)}
.cta-card li + li{margin-top:.4rem}
.cta-card .btn{width:100%; text-align:center}
section[data-dark] .cta-card .btn-gold,section[data-dark] .cta-card .btn-gold:hover{background:var(--navy); color:#fff; --sweep:#8A6434}
.wizard [hidden]{display:none !important}
section[data-dark] .cta-card h3{color:#172A42}
section[data-dark] .cta-card ol,section[data-dark] .cta-card li{color:#3E5068}
.wizard .wz-nav .btn{width:auto; margin-top:0}
.wizard .wz-back{background:transparent}
