:root{
  --bosque:#1e3629; --bosque-2:#13241a; --oliva:#8a9644; --oliva-osc:#56621f; --oliva-cl:#dfe4c4;
  --crema:#f6f1e6; --papel:#fbf8f1; --arena:#e9e1cf; --tinta:#1b2620; --gris:#4f5a53; --linea:rgba(30,54,41,.16);
  --calido:#f2b84b; --alerta:#c9653b;
  --tit:'Fraunces',Georgia,serif; --txt:'Atkinson Hyperlegible',system-ui,sans-serif; --marca:'Montserrat',system-ui,sans-serif;
  --g:clamp(16px,4vw,56px); --ease:cubic-bezier(.2,.75,.2,1); --r:22px;
}
html{font-size:100%}
html.grande{font-size:118.75%}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--crema);color:var(--tinta);font:400 1.125rem/1.6 var(--txt);overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--tit);font-weight:500;margin:0;text-wrap:balance;letter-spacing:-.015em;font-variation-settings:"opsz" 96}
h2{font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.08}
h3{font-size:1.45rem;line-height:1.2;letter-spacing:-.005em;font-variation-settings:"opsz" 28}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;background:var(--bosque);color:var(--papel);padding:10px 14px;border-radius:8px;z-index:100}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--oliva);outline-offset:3px;border-radius:6px}
.eyebrow{font:700 .8rem/1.4 var(--txt);letter-spacing:.12em;text-transform:uppercase;color:var(--oliva-osc)}
.num{font:600 .95rem/1 var(--tit);color:var(--oliva-osc)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--bosque);color:var(--papel);padding:1rem 1.6rem;border-radius:999px;font:700 1.05rem/1.1 var(--txt);text-decoration:none;border:2px solid var(--bosque);cursor:pointer;transition:transform .35s var(--ease),background .25s,color .25s,border-color .25s;min-height:52px;text-align:center}
.btn b{font-weight:700}
.btn:hover{background:var(--oliva-osc);border-color:var(--oliva-osc)}
.btn span{transition:transform .3s var(--ease)}.btn:hover span{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--bosque)}
.btn-ghost:hover{background:var(--bosque);color:var(--papel);border-color:var(--bosque)}
.btn-sm{padding:.6rem 1.15rem;font-size:.95rem;min-height:44px}
.link{font-weight:700;color:var(--bosque);text-decoration:underline;text-decoration-color:var(--oliva);text-decoration-thickness:2px;text-underline-offset:5px}
.link:hover{color:var(--oliva-osc)}

/* Navegación */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px var(--g);transition:background .3s,padding .3s,box-shadow .3s}
.nav.solid{background:rgba(251,248,241,.94);backdrop-filter:blur(12px);padding-block:8px;box-shadow:0 1px 0 var(--linea)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo svg{width:52px;height:auto}
.logo span{font:700 1.05rem/.95 var(--marca);color:var(--bosque);letter-spacing:.02em;display:flex;flex-direction:column}
.logo b{font-weight:700;color:var(--bosque)}
.nav nav{display:flex;gap:28px}
.nav nav a{font:700 1rem var(--txt);text-decoration:none;color:var(--tinta);position:relative;padding:6px 0}
.nav nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--oliva);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav nav a:hover::after{transform:scaleX(1)}
.nav-acc{display:flex;align-items:center;gap:10px}
.btn-txt{width:48px;height:44px;border-radius:12px;border:2px solid var(--linea);background:var(--papel);color:var(--bosque);font:700 .9rem var(--txt);cursor:pointer}
.btn-txt b{font-size:1.25em}
.btn-txt[aria-pressed=true]{background:var(--bosque);color:var(--papel);border-color:var(--bosque)}
.btn-menu{display:none;width:48px;height:44px;border-radius:12px;border:2px solid var(--linea);background:var(--papel);cursor:pointer;position:relative}
.btn-menu>span:first-child,.btn-menu>span:first-child::before,.btn-menu>span:first-child::after{position:absolute;left:13px;right:13px;height:2px;background:var(--bosque);border-radius:2px;content:"";transition:transform .3s var(--ease),opacity .2s}
.btn-menu>span:first-child{top:50%}
.btn-menu>span:first-child::before{left:0;right:0;top:-7px}
.btn-menu>span:first-child::after{left:0;right:0;top:7px}
.btn-menu[aria-expanded=true]>span:first-child{background:transparent}
.btn-menu[aria-expanded=true]>span:first-child::before{transform:translateY(7px) rotate(45deg)}
.btn-menu[aria-expanded=true]>span:first-child::after{transform:translateY(-7px) rotate(-45deg)}

/* Hero */
.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(24px,4vw,64px);padding:110px var(--g) 56px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;right:-12%;top:-18%;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(circle,rgba(138,150,68,.18),transparent 62%);z-index:-1}
h1{font-size:clamp(2.9rem,6.4vw,5.8rem);line-height:1;font-weight:500;margin:18px 0 24px;color:var(--bosque)}
h1 em{font-style:italic;color:var(--oliva-osc);font-weight:400}
.ln{display:block;overflow:hidden;padding-bottom:.1em}
.ln>span{display:block;transform:translateY(105%);animation:sube 1.1s var(--ease) forwards}
.ln:nth-child(2)>span{animation-delay:.14s}
@keyframes sube{to{transform:none}}
.hero-sub{font-size:clamp(1.1rem,1.4vw,1.3rem);max-width:34em;color:var(--gris);opacity:0;animation:aparece .9s .5s forwards}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;opacity:0;animation:aparece .9s .7s forwards}
@keyframes aparece{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.antesdespues{margin:0;opacity:0;animation:aparece 1s .35s forwards}
.ad-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ad-tabs button{position:relative;overflow:hidden;padding:9px 18px;border-radius:999px;border:1.5px solid var(--linea);background:rgba(251,248,241,.7);color:var(--bosque);font:700 .95rem var(--txt);cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.ad-tabs button:hover{border-color:var(--bosque)}
.ad-tabs button.on{background:var(--bosque);border-color:var(--bosque);color:var(--papel)}
.ad-tabs button::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--oliva);transform:scaleX(0);transform-origin:left}
.ad-tabs.auto button.on::after{animation:adAvance var(--adDur,6s) linear forwards}
@keyframes adAvance{to{transform:scaleX(1)}}
.ad-escenas{display:grid;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s ease-out}
.ad-escena{grid-area:1/1;display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative;opacity:0;visibility:hidden;transition:opacity .45s,visibility 0s .45s}
.ad-escena.on{opacity:1;visibility:visible;transition:opacity .45s}
.ad-lado{position:relative;display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:#ece5d5;box-shadow:0 0 0 1px var(--linea)}
.ad-lado svg{display:block;width:100%;height:auto}
.ad-a svg{filter:saturate(.75)}
.ad-d{background:var(--papel);box-shadow:0 0 0 2px var(--bosque),0 30px 60px -30px rgba(30,54,41,.5)}
.ad-lado.noche{background:#26332d}.ad-d.noche{background:#35463e}
.ad-tag{position:absolute;top:12px;left:12px;z-index:1;padding:5px 13px;border-radius:999px;font:700 .8rem var(--txt);letter-spacing:.06em;text-transform:uppercase;background:rgba(251,248,241,.92);color:var(--gris)}
.ad-d .ad-tag{background:var(--bosque);color:var(--papel)}
.ad-d.noche .ad-tag{background:var(--oliva);color:#13241a}
.ad-pie{flex:1;margin:0;padding:12px 14px 14px 40px;position:relative;font:700 1rem/1.3 var(--txt);color:var(--bosque);background:var(--papel);border-top:1px solid var(--linea)}
.ad-pie::before{content:"!";position:absolute;left:12px;top:12px;width:20px;height:20px;border-radius:50%;background:var(--alerta);color:#fff;font:700 .8rem/20px var(--txt);text-align:center}
.ad-d .ad-pie::before{content:"✓";background:var(--oliva);color:#13241a}
.ad-flecha{position:absolute;left:50%;top:38%;z-index:2;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--oliva);box-shadow:0 0 0 5px var(--crema);display:grid;place-items:center}
.ad-flecha svg{width:22px;height:22px;fill:none;stroke:#13241a;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.antesdespues figcaption{margin-top:12px;font-size:.9rem;color:var(--gris);opacity:.8;text-align:right}
.ad-escena .alerta{animation:late 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.ad-escena .luz{animation:luz 3s ease-in-out infinite}
.ad-escena .gotas path{animation:gota 1.2s linear infinite}
.ad-escena .gotas path:nth-child(2){animation-delay:.3s}.ad-escena .gotas path:nth-child(3){animation-delay:.6s}.ad-escena .gotas path:nth-child(4){animation-delay:.9s}
@media (prefers-reduced-motion:no-preference){
  .ad-escena.on .ad-d{animation:adEntra .7s .15s var(--ease) both}
  .ad-escena.on .ad-flecha{animation:adPop .5s .45s var(--ease) both}
  .ad-escena.on .traza{stroke-dasharray:1;stroke-dashoffset:1;animation:adTraza .9s .6s ease-out forwards}
}
@keyframes adEntra{from{opacity:0;transform:translateX(-22px) scale(.97)}to{opacity:1;transform:none}}
@keyframes adPop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes adTraza{to{stroke-dashoffset:0}}
@media (max-width:560px){
  .ad-escena{gap:8px}
  .ad-tabs button{padding:8px 13px;font-size:.85rem}
  .ad-tag{font-size:.65rem;top:8px;left:8px;padding:4px 9px}
  .ad-pie{font-size:.82rem;padding:9px 9px 10px 32px}
  .ad-pie::before{left:8px;top:9px;width:17px;height:17px;font-size:.7rem;line-height:17px}
  .ad-flecha{width:34px;height:34px;margin:-17px 0 0 -17px;box-shadow:0 0 0 4px var(--crema);top:34%}
  .ad-flecha svg{width:16px;height:16px}
}
@keyframes luz{50%{opacity:.55}}
@keyframes gota{from{transform:translateY(-6px);opacity:0}30%{opacity:1}to{transform:translateY(40px);opacity:0}}
@keyframes late{50%{transform:scale(1.15)}}

/* Valores */
.valores{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(20px,5vw,72px);padding:28px var(--g);background:var(--bosque);color:var(--papel)}
.valores li{display:flex;align-items:center;gap:12px;font:500 1.2rem var(--tit)}
.valores svg{flex:none;width:34px;height:34px;fill:none;stroke:var(--oliva-cl);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Secciones */
section{padding:clamp(72px,10vw,130px) var(--g)}
.sec-head{max-width:760px;margin-bottom:clamp(32px,4vw,56px)}
.sec-head h2{margin:14px 0 16px;color:var(--bosque)}
.sec-head p:not(.eyebrow){color:var(--gris);font-size:1.15rem;max-width:40em}

/* Señales */
.senales{background:var(--papel)}
.senales-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(20px,3vw,40px);align-items:start}
.checks{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.check{position:relative;display:flex;gap:14px;align-items:flex-start;padding:18px 18px;border-radius:16px;border:2px solid var(--linea);background:var(--crema);cursor:pointer;transition:border-color .25s,background .25s,transform .25s var(--ease);font-size:1.05rem;line-height:1.4;min-height:84px}
.check:hover{border-color:var(--oliva)}
.check input{position:absolute;opacity:0;pointer-events:none}
.check .caja{flex:none;width:28px;height:28px;border-radius:8px;border:2px solid var(--bosque);display:grid;place-items:center;background:var(--papel);transition:background .2s}
.check .caja svg{width:16px;height:16px;stroke:var(--papel);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:.25s var(--ease)}
.check:has(input:checked){border-color:var(--bosque);background:var(--oliva-cl)}
.check:has(input:checked) .caja{background:var(--bosque)}
.check:has(input:checked) .caja svg{opacity:1;transform:none}
.check:has(input:focus-visible){outline:3px solid var(--oliva);outline-offset:3px}
.sugerencia{position:sticky;top:96px;background:var(--bosque);color:var(--papel);border-radius:var(--r);padding:clamp(24px,3vw,36px);min-height:320px}
.sug-vacia{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;min-height:260px;color:#d4dccf}
.sug-vacia svg{width:120px;opacity:.9;filter:drop-shadow(0 0 0 #fff)}
.sug-vacia svg{background:var(--papel);border-radius:20px;padding:14px}
.sugerencia .eyebrow{color:var(--oliva-cl)}
#sugLista{margin:16px 0 18px;display:grid;gap:10px}
#sugLista li{display:flex;gap:12px;align-items:flex-start;font-size:1.1rem;animation:aparece .5s var(--ease) both}
#sugLista li::before{content:"";flex:none;width:22px;height:22px;margin-top:3px;border-radius:50%;background:var(--oliva) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12l4 4 8-9' stroke='%2313241a' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/16px no-repeat}
#sugLista small{display:block;color:#c3cdbd;font-size:.9rem}
.sug-nota{font-size:.92rem;color:#c3cdbd;margin-bottom:20px}
.sugerencia .btn{background:var(--oliva);border-color:var(--oliva);color:var(--bosque-2)}
.sugerencia .btn:hover{background:var(--papel);border-color:var(--papel)}

/* Servicios */
.serv-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.serv{grid-column:span 2;background:var(--papel);border-radius:var(--r);padding:28px;border:1px solid var(--linea);display:flex;flex-direction:column;gap:12px;transition:transform .4s var(--ease),box-shadow .4s}
.serv:nth-child(4),.serv:nth-child(5){grid-column:span 3}
.serv:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(30,54,41,.5)}
.serv svg{width:56px;height:56px;fill:none;stroke:var(--bosque);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;padding:8px;border-radius:16px;background:var(--oliva-cl);box-sizing:content-box}
.serv h3{color:var(--bosque);margin-top:6px}
.serv p{color:var(--gris)}
.serv ul{display:grid;gap:8px;margin-top:6px}
.serv li{padding-left:22px;position:relative}
.serv li::before{content:"";position:absolute;left:2px;top:.62em;width:10px;height:10px;border-radius:3px;background:var(--oliva)}
.serv-dest{background:var(--bosque);color:var(--papel);border:0;justify-content:center}
.serv-dest h3{color:var(--papel)}.serv-dest p{color:#d4dccf;font-size:1.15rem}
.serv-dest svg{background:var(--oliva);stroke:var(--bosque-2)}
.serv-dest .link{color:var(--papel);margin-top:8px}

/* Recorrido */
.recorrido{background:var(--arena)}
.rec{display:grid;grid-template-columns:minmax(220px,3fr) minmax(0,8fr);gap:clamp(16px,3vw,32px);align-items:start}
.rec-tabs{display:grid;gap:8px}
.rec-tab{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;border:2px solid transparent;background:rgba(251,248,241,.6);font:700 1.1rem var(--txt);color:var(--tinta);cursor:pointer;text-align:left;transition:background .25s,border-color .25s}
.rec-tab svg{width:34px;height:34px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rec-tab .cnt{margin-left:auto;min-width:28px;height:28px;border-radius:14px;background:var(--oliva);color:var(--bosque-2);font-size:.85rem;display:grid;place-items:center;padding:0 8px;transform:scale(0);transition:transform .3s var(--ease)}
.rec-tab .cnt.si{transform:none}
.rec-tab:hover{background:var(--papel)}
.rec-tab[aria-selected=true]{background:var(--bosque);color:var(--papel)}
.rec-panel{background:var(--papel);border-radius:var(--r);padding:clamp(22px,3vw,40px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,3vw,40px);min-height:420px;align-items:start}
.rec-panel:focus-visible{outline:3px solid var(--oliva)}
.rec-ilus{background:var(--crema);border-radius:18px;aspect-ratio:1;display:grid;place-items:center;padding:20px;animation:aparece .5s var(--ease)}
.rec-ilus svg{width:100%;height:auto}
.rec-ilus.foto{padding:0;overflow:hidden;aspect-ratio:4/3}
.rec-ilus.foto img{width:100%;height:100%;object-fit:cover}
.rec-info h3{font-size:1.8rem;color:var(--bosque)}
.rec-info .riesgo{margin:10px 0 20px;color:var(--gris)}
.rec-info .riesgo b{color:var(--alerta)}
.rec-items{display:grid;gap:10px}
.rec-items .check{min-height:0;padding:14px 16px;background:var(--crema)}
.rec-items .check small{display:block;color:var(--gris);font-size:.92rem;margin-top:2px}
.milista{position:sticky;bottom:18px;margin:28px auto 0;width:max-content;max-width:100%;display:flex;gap:22px;align-items:center;background:var(--bosque);color:var(--papel);padding:12px 14px 12px 24px;border-radius:999px;box-shadow:0 18px 40px -16px rgba(19,36,26,.6);transform:translateY(20px);opacity:0;pointer-events:none;transition:.4s var(--ease);z-index:5}
.milista.si{transform:none;opacity:1;pointer-events:auto}
.milista i{font-style:normal}
.milista b{font-family:var(--tit);font-size:1.3rem;color:var(--oliva-cl)}
.milista .link{color:var(--bosque-2);background:var(--oliva);padding:10px 18px;border-radius:999px;text-decoration:none}
.milista .link:hover{background:var(--papel)}
.milista.pulso{animation:pulso .5s var(--ease)}
@keyframes pulso{50%{transform:scale(1.05)}}

/* Precios */
.precios-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tabla-precios,.factores{background:var(--papel);border-radius:var(--r);padding:clamp(24px,3vw,38px);border:1px solid var(--linea)}
.tabla-precios{grid-column:1/-1}
table{width:100%;border-collapse:collapse}
caption{text-align:left;font:500 1.45rem var(--tit);color:var(--bosque);margin-bottom:12px}
th,td{text-align:left;padding:14px 4px;border-bottom:1px solid var(--linea)}
th{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--gris)}
td:last-child,th:last-child{text-align:right;white-space:nowrap}
td:last-child{font:600 1.2rem var(--tit);color:var(--bosque)}
.nota{font-size:.92rem;color:var(--gris);margin-top:12px}
.factores h3{color:var(--bosque);margin-bottom:18px}
.factores ul{display:grid;gap:16px}
.factores li{padding-left:42px;position:relative;color:var(--gris)}
.factores li b{color:var(--tinta);display:block}
.factores li::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;border:5px solid var(--oliva)}
.garantias{background:var(--oliva);color:var(--bosque-2);border-radius:var(--r);padding:clamp(24px,3vw,38px);display:grid;gap:18px;align-content:center}
.garantias li{display:flex;gap:16px;align-items:center;font:500 clamp(1.3rem,2vw,1.7rem)/1.2 var(--tit)}
.garantias span{flex:none;width:44px;height:44px;border-radius:50%;background:var(--bosque);color:var(--papel);display:grid;place-items:center;font:600 1.1rem var(--txt)}

/* Evaluación */
.evaluacion{background:var(--papel)}
.eval-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,4vw,64px);align-items:start}
.eval-foto{margin:0;position:sticky;top:96px}
.eval-foto img{width:100%;height:auto;border-radius:var(--r);box-shadow:0 30px 60px -34px rgba(30,54,41,.55)}
.eval-txt h3{color:var(--bosque);margin-bottom:16px}
.revisamos{display:grid;gap:4px}
.revisamos li{padding:14px 0 14px 44px;position:relative;border-bottom:1px solid var(--linea);color:var(--gris)}
.revisamos li b{display:block;color:var(--tinta);font-size:1.15rem}
.revisamos li::before{content:"";position:absolute;left:0;top:16px;width:28px;height:28px;border-radius:50%;background:var(--oliva) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12l4 4 8-9' stroke='%2313241a' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/18px no-repeat}
.obtienes{margin-top:clamp(40px,5vw,64px);background:var(--bosque);color:var(--papel);border-radius:var(--r);padding:clamp(24px,3vw,40px);display:grid;grid-template-columns:auto 1fr auto;gap:24px 40px;align-items:center}
.obtienes .eyebrow{color:var(--oliva-cl);font-size:.95rem}
.obtienes ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.obtienes li{display:flex;flex-direction:column;gap:10px;font-weight:700;line-height:1.3}
.obtienes svg{width:38px;height:38px;fill:none;stroke:var(--oliva-cl);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.obtienes .btn{background:var(--oliva);border-color:var(--oliva);color:var(--bosque-2)}
.obtienes .btn:hover{background:var(--papel);border-color:var(--papel)}

/* Planes */
.planes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}
.plan{background:var(--papel);border-radius:var(--r);overflow:hidden;border:1px solid var(--linea);display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s}
.plan:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(30,54,41,.5)}
.plan img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.plan-in{padding:24px 26px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.plan-sub{font-weight:700;color:var(--oliva-osc);font-size:.95rem}
.plan h3{font-size:1.75rem;color:var(--bosque)}
.plan ul{display:grid;gap:8px;margin:6px 0 14px;flex:1;align-content:start}
.plan li{padding-left:30px;position:relative}
.plan li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--oliva) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12l4 4 8-9' stroke='%2313241a' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/14px no-repeat}
.plan-dest{background:var(--bosque);color:var(--papel);border:0}
.plan-dest h3{color:var(--papel)}.plan-dest .plan-sub{color:var(--oliva-cl)}.plan-dest .link{color:var(--papel)}

/* Trabajos */
.trabajos{background:var(--papel)}
.trab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.trab{margin:0;border-radius:var(--r);overflow:hidden;background:var(--crema)}
.trab img{width:100%;aspect-ratio:4/3;object-fit:cover}
.trab figcaption{padding:16px 18px}
.trab figcaption b{display:block;font:500 1.2rem var(--tit);color:var(--bosque)}

/* Proceso */
.proceso{background:var(--bosque);color:var(--papel)}
.proceso .sec-head h2{color:var(--papel)}
.proceso .eyebrow,.proceso .num{color:var(--oliva-cl)}
.proc-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center;margin-bottom:clamp(36px,5vw,64px)}
.proc-head .sec-head{margin:0}
.proc-head .sec-head p:not(.eyebrow){color:#cdd6c8}
.proc-foto{width:100%;height:auto;border-radius:var(--r)}
.por-que{margin-top:clamp(40px,5vw,64px)}
.por-que h3{font-size:1.6rem}
.por-que .ventajas{margin-top:18px}
.pasos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;counter-reset:p}
.pasos li{border-top:2px solid rgba(223,228,196,.35);padding-top:22px;position:relative}
.pasos li::before{content:"";position:absolute;left:0;top:-2px;height:2px;width:0;background:var(--oliva);transition:width 1.2s var(--ease) .2s}
.pasos li:not(.oculto)::before{width:100%}
.pasos h3{margin:14px 0 10px;font-size:1.35rem}
.pasos p{color:#cdd6c8}
.ventajas{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(40px,5vw,64px)}
.ventajas li{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 12px;border-radius:999px;background:rgba(223,228,196,.1);border:1px solid rgba(223,228,196,.25);font-weight:700}
.ventajas li::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--oliva) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12l4 4 8-9' stroke='%2313241a' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/16px no-repeat}

/* Contacto */
.contacto .sec-head{margin-bottom:clamp(22px,3vw,34px)}
.consulta{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);background:var(--papel);border-radius:28px;border:1px solid var(--linea);box-shadow:0 40px 80px -50px rgba(30,54,41,.5);overflow:hidden}
.cons-campos{display:grid;gap:18px;align-content:start;padding:clamp(20px,2.6vw,34px)}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend,.lbl,.campo label{font-weight:700;font-size:.95rem;color:var(--bosque);margin-bottom:8px;display:block;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;min-height:42px;padding:7px 15px;border-radius:999px;border:1.5px solid var(--linea);background:var(--crema);cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease);font-size:.98rem}
.chip span:hover{border-color:var(--oliva);transform:translateY(-1px)}
.chip input:checked+span{background:var(--bosque);border-color:var(--bosque);color:var(--papel)}
.chip input:focus-visible+span{outline:3px solid var(--oliva);outline-offset:2px}
.campos2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding-top:18px;border-top:1px solid var(--linea)}
.campo label{margin-bottom:6px}
.campo input,.campo select{width:100%;font:400 1rem var(--txt);color:var(--tinta);background:var(--crema);border:1.5px solid var(--linea);border-radius:12px;padding:10px 14px;min-height:46px;transition:border-color .2s,background .2s,box-shadow .2s}
.campo input:focus,.campo select:focus{outline:none;border-color:var(--bosque);background:#fff;box-shadow:0 0 0 4px rgba(138,150,68,.22)}
.lista-cons{background:var(--crema);border-radius:14px;padding:14px 16px}
.lista-cons .lbl{margin-bottom:6px}
#listaCons{display:grid;gap:6px}
#listaCons li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 8px 6px 14px;border-radius:10px;background:var(--oliva-cl);font-size:.96rem}
#listaCons li small{color:var(--gris)}
#listaCons button{flex:none;width:32px;height:32px;border-radius:50%;border:0;background:var(--papel);cursor:pointer;font-size:1rem;color:var(--bosque)}
#listaCons button:hover{background:var(--bosque);color:var(--papel)}
.lista-vacia{color:var(--gris);font-size:.96rem}
.lista-vacia[hidden]{display:none}
.cons-vista{background:var(--bosque);color:var(--papel);padding:clamp(20px,2.6vw,34px);display:grid;gap:14px;align-content:start;position:relative;overflow:hidden}
.cons-vista::before{content:"";position:absolute;right:-90px;top:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(138,150,68,.4),transparent 70%);pointer-events:none}
.cons-vista .lbl{position:relative;margin:0;color:var(--oliva-cl);display:flex;align-items:center;gap:10px}
.cons-vista .lbl::before{content:"";width:30px;height:30px;border-radius:50%;background:var(--oliva) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 7h12v8h-7l-4 3v-3H6z' fill='none' stroke='%2313241a' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat}
textarea{position:relative;width:100%;resize:none;font:400 .95rem/1.5 var(--txt);color:var(--bosque-2);background:var(--oliva-cl);border:0;border-radius:4px 18px 18px 18px;padding:14px 16px}
textarea:focus{outline:3px solid var(--oliva);outline-offset:2px}
.cons-acc{display:flex;gap:8px;flex-wrap:wrap}
.cons-acc .btn{padding:.85rem 1.3rem}
.cons-acc .btn:first-child{flex:1;background:var(--oliva);border-color:var(--oliva);color:var(--bosque-2)}
.cons-acc .btn:first-child:hover{background:var(--papel);border-color:var(--papel)}
.cons-acc .btn-ghost{color:var(--papel);border-color:rgba(251,248,241,.4)}
.cons-acc .btn-ghost:hover{background:var(--papel);border-color:var(--papel);color:var(--bosque)}
.cons-vista .nota{margin:0;color:var(--oliva-cl)}
.cons-vista .nota:empty{display:none}
.datos{margin:4px 0 0;display:grid;gap:8px;border-top:1px solid rgba(251,248,241,.18);padding-top:14px;font-size:.95rem}
.datos div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.datos dt{color:rgba(251,248,241,.65)}
.datos dd{margin:0;font-weight:700}
.datos a{color:var(--oliva-cl)}

/* Pie */
.pie{background:var(--bosque-2);color:var(--papel);padding:56px var(--g) 40px;display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap}
.pie-marca{display:flex;align-items:center;gap:18px}
.pie-marca svg{width:110px;background:var(--papel);border-radius:20px;padding:12px}
.pie-nombre{font:700 2rem/.95 var(--marca);letter-spacing:.02em}
.pie-nombre b{display:block}
.pie-lema{margin-top:10px;color:#cdd6c8}
.pie-lema em{color:var(--oliva-cl);font-style:normal}
.legal{color:#9fae9a;font-size:.92rem}

.wa-flot.fuera{opacity:0;transform:scale(.6);pointer-events:none}
.wa-flot{transition:opacity .25s,transform .25s var(--ease);position:fixed;right:18px;bottom:18px;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px -8px rgba(0,0,0,.4);z-index:40}

/* Aparición */
.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.oculto{opacity:0;transform:translateY(26px)}

/* Responsivo */
@media (max-width:1100px){
  .nav nav{gap:18px}
  .serv{grid-column:span 3}
  .serv:nth-child(5){grid-column:1/-1}
  .pasos{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:34px}
  .obtienes{grid-template-columns:1fr}
}
@media (max-width:980px){
  .btn-menu{display:block}
  .nav nav{position:fixed;inset:68px 12px auto 12px;flex-direction:column;gap:0;background:var(--papel);border-radius:18px;padding:8px;box-shadow:0 24px 50px -20px rgba(19,36,26,.5);transform:translateY(-10px);opacity:0;pointer-events:none;transition:.3s var(--ease)}
  .nav nav.abierto{transform:none;opacity:1;pointer-events:auto}
  .nav nav a{padding:14px 16px;font-size:1.1rem;border-radius:12px}
  .nav nav a::after{display:none}
  .nav nav a:hover{background:var(--crema)}
  .nav-acc .btn-sm{display:none}
  .hero{grid-template-columns:1fr;padding-top:100px;min-height:0}
  .senales-grid,.consulta,.rec{grid-template-columns:1fr}
  .sugerencia{position:static}
  .sugerencia{min-height:0}.sug-vacia{min-height:0}
  .rec-tabs{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;margin-inline:calc(var(--g)*-1);padding-inline:var(--g)}
  .rec-tab{padding:10px 14px}
  .rec-panel{grid-template-columns:1fr}
  .rec-ilus{aspect-ratio:16/10;max-height:240px}
  .rec-ilus svg{height:100%;width:auto}
  .pasos{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}
  .precios-grid{grid-template-columns:1fr}
  .eval-grid,.proc-head{grid-template-columns:1fr}
  .eval-foto{position:static}
  .obtienes{grid-template-columns:1fr}
  .obtienes ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .planes{grid-template-columns:1fr}
  .plan{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
  .plan img{height:100%;aspect-ratio:auto}
}
@media (max-width:640px){
  .logo span{font-size:.92rem}
  .logo svg{width:44px}
  .checks{grid-template-columns:1fr}
  .check{min-height:0}
  .serv,.serv:nth-child(4),.serv:nth-child(5){grid-column:1/-1}
  .campos2{grid-template-columns:1fr}
  .pasos{grid-template-columns:1fr}
  .plan{display:flex}
  .plan img{height:auto;aspect-ratio:16/10}
  .valores{justify-content:flex-start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
  .valores li{font-size:1.05rem}
  .valores li:last-child{grid-column:1/-1}
  .milista{gap:10px;padding:10px 10px 10px 18px;font-size:.95rem;white-space:nowrap;width:100%;justify-content:space-between}
  .con-lista .wa-flot{opacity:0;transform:scale(.6);pointer-events:none}
  .milista .link{padding:10px 14px;flex:none}
  .milista>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .hero-cta .btn{width:100%}
  .ad-tabs button{min-height:44px}
  .milista i{display:none}
  .cons-acc{flex-direction:column}
  .cons-acc .btn{width:100%;justify-content:center}
  textarea{overflow:hidden}
}
@media (max-width:380px){
  .valores{gap:14px 12px}
  .valores li{gap:9px;font-size:1rem}
  .valores svg{width:28px;height:28px}
  .grande .valores,.grande .obtienes ul{grid-template-columns:1fr}
  .obtienes{padding:20px 18px}
  .obtienes ul{gap:18px 12px}
  .obtienes li{font-size:.95rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* ===== Movimiento y flujos ===== */
.progreso{position:fixed;top:0;left:0;width:100%;height:3px;z-index:60;transform-origin:left;transform:scaleX(var(--s,0));background:linear-gradient(90deg,var(--oliva),var(--bosque))}

/* Navegación flotante */
.nav{transition:background .3s,padding .3s,box-shadow .3s,top .45s var(--ease),left .45s var(--ease),right .45s var(--ease),border-radius .45s}
.nav.solid{top:12px;left:clamp(8px,2vw,28px);right:clamp(8px,2vw,28px);border-radius:999px;padding:8px 10px 8px 20px;box-shadow:0 14px 34px -20px rgba(19,36,26,.55),0 0 0 1px var(--linea)}

/* Hero: corrientes que fluyen y el trazo de la marca */
.hero{isolation:isolate}
.hero::before{animation:deriva 16s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;left:-18%;bottom:-30%;width:55vw;height:55vw;border-radius:50%;background:radial-gradient(circle,rgba(30,54,41,.1),transparent 62%);z-index:-1;animation:deriva 20s ease-in-out infinite alternate-reverse}
@keyframes deriva{to{transform:translate(6vw,4vh) scale(1.12)}}
.corrientes{position:absolute;inset:0;width:100%;height:100%;z-index:-1;fill:none;stroke:var(--oliva);stroke-width:1.5;opacity:.38;pointer-events:none}
.corrientes path{vector-effect:non-scaling-stroke;stroke-dasharray:10 16;animation:fluye 9s linear infinite}
.corrientes path:nth-child(2){animation-duration:13s;opacity:.6}
.corrientes path:nth-child(3){animation-duration:17s;animation-direction:reverse;opacity:.5}
@keyframes fluye{to{stroke-dashoffset:-260}}
h1 em{position:relative;display:inline-block}
.trazo{position:absolute;left:0;bottom:-.02em;width:100%;height:.16em;overflow:visible;fill:none;stroke:var(--oliva);stroke-width:5;stroke-linecap:round}
.trazo path{vector-effect:non-scaling-stroke;stroke-dasharray:320;stroke-dashoffset:320;animation:dibuja 1.1s var(--ease) 1.15s forwards}
@keyframes dibuja{to{stroke-dashoffset:0}}

/* Aparición */
.reveal.oculto{opacity:0;transform:translateY(34px) scale(.985)}
.eval-foto img{box-shadow:none;clip-path:inset(0 0 0 0 round 22px);transition:clip-path 1.3s var(--ease)}
.eval-foto.oculto{opacity:1;transform:none}
.eval-foto.oculto img{clip-path:inset(0 100% 0 0 round 22px)}
.proc-foto{clip-path:inset(0 0 0 0 round 22px);transition:clip-path 1.3s var(--ease),opacity .9s var(--ease),transform .9s var(--ease)}
.proc-foto.oculto{clip-path:inset(0 0 0 100% round 22px)}
.revisamos li::before{transition:transform .55s var(--ease)}
.revisamos li:nth-child(2)::before{transition-delay:.12s}.revisamos li:nth-child(3)::before{transition-delay:.24s}.revisamos li:nth-child(4)::before{transition-delay:.36s}.revisamos li:nth-child(5)::before{transition-delay:.48s}
.revisamos.oculto li::before{transform:scale(0)}

/* Secciones que se montan una sobre otra */
.valores{padding-bottom:64px}
.senales,.proceso,.contacto,.pie{position:relative;border-radius:36px 36px 0 0;margin-top:-36px}
.contacto{background:var(--crema);padding-bottom:calc(clamp(72px,10vw,130px) + 36px)}
.precios{padding-bottom:calc(clamp(72px,10vw,130px) + 36px)}
.proceso{padding-bottom:calc(clamp(72px,10vw,130px) + 36px);overflow:hidden}

/* Cinta de soluciones */
.cinta{overflow:hidden;background:var(--bosque);color:var(--oliva-cl);padding:22px 0}
.cinta-track{display:flex;align-items:center;width:max-content;animation:cinta 48s linear infinite;font:italic 400 clamp(1.8rem,4.2vw,3.4rem)/1.15 var(--tit);white-space:nowrap}
.cinta-track>*{margin-right:36px;flex:none}
.cinta-track span:nth-child(4n+1){color:transparent;-webkit-text-stroke:1px var(--oliva-cl)}
.cinta i{width:12px;height:12px;border-radius:50%;background:var(--oliva)}
@keyframes cinta{to{transform:translateX(-50%)}}

/* Luz que sigue al puntero */
.serv{position:relative;overflow:hidden}
.plan{position:relative}
.serv::after,.plan::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),rgba(138,150,68,.2),transparent 70%)}
.serv-dest::after,.plan-dest::after{background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),rgba(223,228,196,.16),transparent 70%)}
.serv:hover::after,.plan:hover::after{opacity:1}
.serv svg{transition:transform .5s var(--ease)}
.serv:hover svg{transform:rotate(-6deg) scale(1.08)}
.plan img{transition:transform .9s var(--ease)}
.plan:hover img{transform:scale(1.05)}
.proceso::before{content:"";position:absolute;z-index:0;width:560px;height:560px;left:var(--mx,72%);top:var(--my,18%);translate:-50% -50%;background:radial-gradient(circle,rgba(138,150,68,.24),transparent 65%);pointer-events:none;transition:left .7s ease-out,top .7s ease-out}
.proceso>*{position:relative;z-index:1}

/* Proceso: una línea que avanza con el scroll */
.pasos{position:relative;--p:0}
.pasos::before{content:"";position:absolute;left:0;right:0;top:21px;height:2px;background:rgba(223,228,196,.22)}
.pasos::after{content:"";position:absolute;left:0;top:21px;height:2px;width:calc(var(--p)*100%);background:var(--oliva);box-shadow:0 0 16px var(--oliva);border-radius:2px}
.pasos li{border-top:0;padding-top:0;z-index:1}
.pasos li::before{display:none}
.pasos .num{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--bosque);border:2px solid rgba(223,228,196,.35);position:relative;z-index:1;font-size:1rem;transition:background .45s,border-color .45s,color .45s,transform .45s var(--ease)}
.pasos li.on .num{background:var(--oliva);border-color:var(--oliva);color:var(--bosque-2);transform:scale(1.1)}
.pasos li h3,.pasos li p{opacity:.4;transition:opacity .6s}
.pasos li.on h3,.pasos li.on p{opacity:1}
@media (max-width:1100px){
  .pasos{grid-template-columns:1fr;max-width:720px;row-gap:30px}
  .pasos::before{left:21px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .pasos::after{left:21px;top:0;width:2px;height:calc(var(--p)*100%)}
  .pasos li{padding-left:66px;min-height:48px}
  .pasos .num{position:absolute;left:0;top:0}
  .pasos h3{margin:8px 0 8px}
}
@media (max-width:980px){
  .senales,.proceso,.contacto,.pie{border-radius:26px 26px 0 0;margin-top:-26px}
  .nav.solid{padding:6px 8px 6px 14px}
}
