:root{
--bg:#000; --surface:#0d0d0e; --line:#20201f; --fg:#fff; --muted:#a7a6a1; --cream:#f7f5ee; --onfg:#000; --border2:#3a3a38;
--navbg:rgba(0,0,0,.86); --barbg:rgba(0,0,0,.92); --inputbg:#000; --link:#7da0ff; --err:#ffb4ab; --star:#ffc93c; --ph1:#0d0d0e; --ph2:#121213; --todobg:rgba(255,18,0,.14);
--blue:#0043ff; --navy:#000e35; --wine:#660000; --red:#ff1200; --green:#0f8040;
--display:"Montserrat",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
--body:"Montserrat",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
color-scheme:dark;
}
:root[data-mode="light"]{
--bg:#fff; --surface:#f5f5f2; --line:#e4e3de; --fg:#0b0b0c; --muted:#5e5d58; --cream:#1c1c1e; --onfg:#fff; --border2:#cfcec8;
--navbg:rgba(255,255,255,.9); --barbg:rgba(255,255,255,.95); --inputbg:#fff; --link:#0043ff; --err:#c20e00; --star:#e8a400; --ph1:#f3f3f0; --ph2:#ecebe7; --todobg:rgba(255,18,0,.08);
color-scheme:light;
}
.for-light{display:none}
:root[data-mode="light"] .for-dark{display:none}
:root[data-mode="light"] .for-light{display:inline-block}
.mode{background:transparent;border:1px solid var(--border2);color:var(--fg);border-radius:999px;width:40px;height:40px;display:grid;place-items:center;cursor:pointer;flex:none;font-size:1.05rem;line-height:1}
.mode:hover{border-color:var(--fg)}
.nav-r{display:flex;align-items:center;gap:10px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16.5px;line-height:1.6;margin:0}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding-inline:20px}
section{padding-block:88px;border-top:1px solid var(--line)}
section{scroll-margin-top:calc(70px + env(safe-area-inset-top,0px))}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;line-height:1.08}
h1{font-size:clamp(2.3rem,6vw,4.6rem);font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(1.9rem,4.4vw,3.4rem);font-weight:800;letter-spacing:-.015em}
h3{font-size:1.25rem;font-weight:700}
em.acc{font-style:italic;font-weight:700;color:var(--muted)}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.lead{color:var(--muted);max-width:62ch;font-size:1.08rem;margin:18px 0 0}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:999px;font-weight:700;font-size:.98rem;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--body)}
.btn-blue{background:var(--blue);color:#fff}
.btn-red{background:var(--red);color:#fff}
.btn-green{background:var(--green);color:#fff}
.btn-ig{background:linear-gradient(45deg,#f58529,#dd2a7b 45%,#8134af 75%,#515bd4);color:#fff}
.btn-ghost{background:transparent;color:var(--fg);border-color:var(--border2)}
.btn:hover{filter:brightness(1.12)}
.btn:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
/* nav */
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--navbg);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:70px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo b{display:block;font-size:.98rem;line-height:1.1}
.logo small{color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;font-size:.92rem;font-weight:600}
.nav ul a{text-decoration:none;color:var(--muted)}
.nav ul a:hover{color:var(--fg)}
@media(max-width:860px){.nav ul{display:none}}
/* hero */
.hero{border-top:0;padding-block:64px 80px}
.hero .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.values{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.values span{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border2);border-radius:999px;padding:6px 12px;color:var(--cream)}
.stars{margin-top:24px;font-size:.92rem;color:var(--muted)}
.stars b{color:var(--star);letter-spacing:2px}
.portrait{position:relative;border-radius:28px;overflow:hidden;background:var(--surface);border:1px solid var(--line);aspect-ratio:4/5;max-width:100%}
.photo{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.stat{border-left:2px solid var(--red);padding-left:14px}
.stat b{display:block;font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);font-size:.88rem}
@media(max-width:860px){.hero .grid{grid-template-columns:1fr}.portrait{max-width:420px}}
/* valorador */
.val{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.checks{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px}
.checks li{display:flex;gap:10px}
.checks li::before{content:"✓";color:var(--green);font-weight:800}
.card{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:28px}
.step-lbl{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.bar{height:4px;background:var(--line);border-radius:4px;margin:10px 0 22px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--blue);width:33%;transition:width .3s}
label{display:block;font-size:.85rem;font-weight:600;margin:16px 0 6px;color:var(--cream)}
input,select{width:100%;background:var(--inputbg);color:var(--cream);border:1px solid var(--border2);border-radius:12px;padding:13px 14px;font:inherit;font-size:.95rem}
.chips{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.chip{display:block;margin:0;cursor:pointer}
.chip input{position:absolute;opacity:0;pointer-events:none;width:auto}
.chip span{display:block;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-weight:600;font-size:.92rem;color:var(--cream)}
.chip span small{display:block;color:var(--muted);font-weight:500;font-size:.78rem}
.chip input:checked+span{border-color:var(--blue);background:rgba(0,67,255,.14)}
.chip input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chips.sm{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.chips.sm span{padding:9px 12px;font-size:.86rem}
.nav-steps{display:flex;justify-content:space-between;gap:10px;margin-top:24px}
.legal{font-size:.78rem;color:var(--muted);margin-top:14px;display:flex;gap:8px;align-items:flex-start}
.legal input{width:auto;margin-top:3px}
.done h3{font-size:1.6rem}
@media(max-width:860px){.val{grid-template-columns:1fr}}
@media(max-width:420px){.row2,.chips{grid-template-columns:1fr}}
/* situaciones */
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.tab{background:transparent;color:var(--fg);border:1px solid var(--border2);border-radius:999px;padding:10px 18px;font:inherit;font-weight:600;font-size:.92rem;cursor:pointer}
.tab[aria-selected="true"]{background:var(--fg);color:var(--onfg);border-color:var(--fg)}
.panel{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.panel p{margin:10px 0 0;color:var(--muted)}
@media(max-width:760px){.panel{grid-template-columns:1fr}}
/* comparativa */
/* proceso */
/* servicios */
/* remax */
.rmx{background:var(--navy);color:#fff;border-top:0}
.rmx .eyebrow{color:#fff;opacity:.8}
.rmx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.rmx-grid b{display:block;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;line-height:1}
.rmx-grid span{font-size:.92rem;opacity:.9}
@media(max-width:700px){.rmx-grid{grid-template-columns:1fr 1fr}}
/* sobre mí */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.about .portrait{aspect-ratio:4/3}
.about p{color:var(--muted);max-width:62ch}
.about p strong{color:var(--fg)}
@media(max-width:860px){.about{grid-template-columns:1fr}}
/* faq */
details{border-top:1px solid var(--line);padding-block:20px}
details:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:700;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--red)}
details[open] summary::after{content:"–"}
details p{color:var(--muted);margin:12px 0 0;max-width:70ch}
.faq{margin-top:36px}
/* contacto */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.cdata{display:grid;gap:14px;margin-top:28px}
.cdata div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;flex-wrap:wrap}
.cdata span{color:var(--muted)}
.cdata b{user-select:all}
@media(max-width:860px){.contact{grid-template-columns:1fr}}
/* bloques añadidos */
.hl-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.hl .portrait{aspect-ratio:4/3}
.big{font-size:clamp(3.5rem,10vw,7rem);font-weight:800;line-height:1;margin:18px 0 0;color:var(--red)}
.refer{margin-top:24px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.refer>div{flex:1;min-width:240px}
.zone{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.cita{display:grid!important;grid-template-columns:1fr 1fr;gap:12px;border:0!important;padding:0!important}
.cita a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--surface)}
.cita a:hover{border-color:var(--blue)}
.cita b{display:block}.cita span{color:var(--muted);font-size:.85rem}
@media(max-width:860px){.hl-grid,.zone{grid-template-columns:1fr}}
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin-top:36px}
.post{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;min-width:0;text-decoration:none;color:var(--fg)}
.post-meta{display:flex;justify-content:space-between;gap:10px;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.post-meta .cat{color:var(--red)}
.post h3{font-size:1.15rem;line-height:1.25}
.post p{margin:0;color:var(--muted);font-size:.93rem;flex:1}
.post .more{font-weight:700;font-size:.9rem;color:var(--link)}
[hidden]{display:none!important}
.post{font:inherit;text-align:left;cursor:pointer;width:100%}
.post:hover{border-color:var(--blue)}
.reader{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:flex-start;padding:calc(24px + env(safe-area-inset-top,0px)) 16px calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto}
.reader-box{position:relative;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:24px;max-width:760px;width:100%;padding:44px 40px 36px}
.reader-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:999px;border:1px solid var(--border2);background:transparent;color:var(--fg);font-size:1.3rem;cursor:pointer;line-height:1}
.reader h2{font-size:clamp(1.6rem,4vw,2.4rem);margin-top:12px}
.byline{color:var(--muted);font-size:.88rem;margin:12px 0 0}
.art{margin-top:24px}
.art h3{font-size:1.1rem;margin:28px 0 8px;color:var(--red);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}
.art p{margin:0 0 14px;color:var(--cream);max-width:65ch}
.art strong{color:var(--fg)}
.src{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}
.src a{color:var(--link)}
@media(max-width:520px){.reader-box{padding:52px 20px 28px}}
.wa-ico{width:1.25em;height:1.25em;flex:none}
/* reseñas opción A */
.sumbar{display:flex;flex-wrap:wrap;align-items:center;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px 28px;margin-top:36px}
.sumbar .score{font-size:3.6rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.sumbar .meta{display:grid;gap:2px}
.sumbar .meta .gstars{font-size:1.3rem}
.sumbar .meta span:last-child{color:var(--muted);font-size:.9rem}
.gstars{color:var(--star);letter-spacing:2px}
.gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px;margin-top:16px;align-items:start}
.gcard{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:12px;min-width:0;transition:transform .2s,border-color .2s}
.gcard:hover{transform:translateY(-4px);border-color:var(--border2)}
.ghead{display:flex;align-items:center;gap:12px}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;flex:none;font-size:.95rem}
.ghead b{display:block;line-height:1.2}
.ghead small{color:var(--muted);font-size:.8rem}
.verified{margin-left:auto;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border2);border-radius:999px;padding:3px 8px;white-space:nowrap}
.gtext{color:var(--cream);font-size:.95rem;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.gtext p{margin:0 0 10px}.gtext p:last-child{margin:0}
.gcard.open .gtext{-webkit-line-clamp:unset;display:block}
.gmore{align-self:flex-start;background:none;border:0;padding:0;color:var(--link);font:inherit;font-weight:700;font-size:.88rem;cursor:pointer}
@media(prefers-reduced-motion:reduce){.gcard{transition:none}.gcard:hover{transform:none}}
/* comparativa: interruptor */
.switch{display:inline-flex;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px;gap:4px;margin:32px 0 24px}
.switch button{font:inherit;font-weight:700;font-size:.95rem;border:0;border-radius:999px;padding:12px 22px;background:transparent;color:var(--muted);cursor:pointer;transition:background .25s,color .25s}
.switch button[aria-pressed="true"]{background:var(--fg);color:var(--onfg)}
.switch button.me[aria-pressed="true"]{background:var(--blue);color:#fff}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tile{border-radius:20px;padding:24px;border:1px solid var(--line);background:var(--surface);min-width:0;transition:background .35s,border-color .35s}
.tile .k{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tile .big{font-size:2.2rem;line-height:1;margin:14px 0 12px;display:block}
.tile p{margin:0;font-size:.95rem;color:var(--cream)}
.tiles.on .tile{background:var(--navy);border-color:var(--blue)}
.tiles.on .tile p{color:#fff}
.tiles.on .tile .k{color:rgba(255,255,255,.7)}
.tiles.on .tile:nth-child(2){transition-delay:.05s}.tiles.on .tile:nth-child(3){transition-delay:.1s}.tiles.on .tile:nth-child(4){transition-delay:.15s}
.result{margin-top:18px;border-radius:20px;padding:18px 24px;border:1px dashed var(--border2);color:var(--muted)}
.result b{color:var(--fg)}
.tiles.on+.result{border-style:solid;border-color:var(--blue);color:var(--fg)}
@media(max-width:900px){.tiles{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.tiles{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.tile,.switch button{transition:none}}
/* cinco pasos: camino con paradas */
.road{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:44px}
.road::before{content:"";position:absolute;left:10%;right:10%;top:38px;height:4px;border-radius:4px;background:var(--line)}
.road .fill{position:absolute;left:10%;top:38px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--navy),var(--red));width:0;transition:width .5s ease}
.node{position:relative;text-align:center;background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0 6px}
.node .dot{width:76px;height:76px;margin:0 auto;border-radius:50%;background:var(--surface);border:2px solid var(--border2);display:grid;place-items:center;font-size:1.9rem;position:relative;z-index:1;transition:transform .25s,border-color .25s,background .25s}
.node .n{position:absolute;top:-6px;right:-6px;width:28px;height:28px;border-radius:50%;background:var(--fg);color:var(--onfg);font-weight:800;font-size:.8rem;display:grid;place-items:center}
.node h3{margin:14px 0 4px;font-size:1.02rem;font-weight:800}
.node p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}
.node.done .dot,.node.active .dot{border-color:var(--blue);background:var(--navy)}
.node.even.done .dot,.node.even.active .dot{border-color:var(--red);background:var(--red)}
.node.active .dot{transform:scale(1.12);border-color:#fff}
.node.even.active .dot{border-color:#fff}
.node.active .n{background:var(--red);color:#fff}
.node.even.active .n{background:var(--navy)}
.detail{margin-top:30px;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px 28px;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center}
.detail .big{font-size:3.4rem;font-weight:800;color:var(--red);line-height:1;font-variant-numeric:tabular-nums}
.detail h4{margin:0;font-size:1.2rem}
.detail p{margin:6px 0 0;color:var(--cream)}
@media(max-width:820px){
.road{grid-template-columns:1fr;gap:18px}
.road::before,.road .fill{display:none}
.node{display:grid;grid-template-columns:76px 1fr;gap:16px;text-align:left;align-items:center}
.node h3{margin:0 0 2px}
}
@media(prefers-reduced-motion:reduce){.road .fill,.node .dot{transition:none}}
/* servicios: lista con checks */
.svc-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.svc-grid .lead{max-width:40ch}
.svc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.svc-list li{display:flex;gap:14px;padding-block:16px;border-bottom:1px solid var(--line);min-width:0}
.svc-list li::before{content:"✓";color:var(--red);font-weight:800;font-size:1.1rem;line-height:1.4;flex:none}
.svc-list b{display:block;line-height:1.3}
.svc-list span{display:block;color:var(--muted);font-size:.9rem}
.svc-list .opt-sm{font-style:normal;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
@media(max-width:860px){.svc-grid{grid-template-columns:1fr;gap:24px}}
@media(max-width:560px){.svc-list{grid-template-columns:1fr}}
/* menú móvil */
.burger{display:none}
.bars,.bars::before,.bars::after{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;position:relative;transition:transform .25s,opacity .25s}
.bars::before,.bars::after{content:"";position:absolute;left:0}
.bars::before{top:-6px}.bars::after{top:6px}
.burger[aria-expanded="true"] .bars{background:transparent}
.burger[aria-expanded="true"] .bars::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] .bars::after{transform:translateY(-6px) rotate(-45deg)}
.mnav{position:sticky;top:calc(70px + env(safe-area-inset-top,0px));z-index:19;background:var(--bg);border-bottom:1px solid var(--line);display:flex;flex-direction:column;padding:8px 20px 20px}
.mnav a:not(.btn){display:block;padding:14px 0;border-bottom:1px solid var(--line);font-weight:700;font-size:1.1rem;text-decoration:none;color:var(--fg)}
.mnav .btn{margin-top:16px;align-self:flex-start}
@media(max-width:860px){.burger{display:grid}}
@media(min-width:861px){.mnav{display:none!important}}
@media(max-width:560px){.nav-r .btn-red{display:none}.logo small{display:none}}
@media(prefers-reduced-motion:reduce){.bars,.bars::before,.bars::after{transition:none}}
footer{border-top:1px solid var(--line);padding-block:36px 110px;color:var(--muted);font-size:.82rem}
footer b{color:var(--fg)}
/* barra móvil */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--barbg);border-top:1px solid var(--line)}
.mbar .btn{flex:1;padding:12px 10px;font-size:.88rem}
@media(max-width:760px){.mbar{display:flex}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.bar i{transition:none}}
