@font-face{font-family:"Bilmond";src:url("../fonts/Bilmond-ExtraBlack.woff2") format("woff2");font-weight:900;font-display:swap}
@font-face{font-family:"Bilmond";src:url("../fonts/Bilmond-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Serotiva";src:url("../fonts/Serotiva-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Serotiva";src:url("../fonts/Serotiva-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Serotiva";src:url("../fonts/Serotiva-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Serotiva";src:url("../fonts/Serotiva-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Interform Mono";src:url("../fonts/InterformMono-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Interform Mono";src:url("../fonts/InterformMono-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}

:root{
  --lima:#CEFB56;--lima-h:#BCEA3E;--azul:#564CF8;--azul-h:#4433E6;--rosa:#F982FB;--rosa-h:#F455F6;
  --tinta:#0B0B0B;--tinta-2:#161616;--tinta-3:#1F1F1F;--papel:#FFFFFF;--hueso:#F4F4F1;--gris:#EDEDEA;--borde:#E4E4E0;--borde-osc:rgba(255,255,255,.14);
  --tx:#0B0B0B;--tx-mute:#5F5F5F;--tx-inv:#FFF;--tx-inv-mute:#A6A6AD;
  --display:"Bilmond","Bilmond-fb","Serotiva",system-ui,sans-serif;--cuerpo:"Serotiva",system-ui,-apple-system,sans-serif;--mono:"Interform Mono",ui-monospace,monospace;
  --r:34px;--r2:24px;--r3:16px;--pill:999px;--wrap:1240px;--pad:clamp(16px,4vw,40px);--gap:clamp(16px,2.4vw,26px);--ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--cuerpo);color:var(--tx);background:var(--papel);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.wrap-inner{width:100%}
section{scroll-margin-top:88px}
h1,h2,h3{font-family:var(--display);font-weight:900;line-height:1;letter-spacing:-.02em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.5rem,4.6vw,3.9rem);line-height:1.03}
h2{font-size:clamp(1.85rem,3.4vw,2.85rem);line-height:1.04}
.h2-tight{font-size:clamp(1.5rem,2.5vw,2.1rem)}
h3{font-family:var(--display);font-weight:700;font-size:1.12rem;letter-spacing:-.01em}
p{margin:0;text-wrap:pretty}
.eyebrow{display:inline-flex;align-items:center;gap:.55em;font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:.55em 1.1em;border:1px solid rgba(11,11,11,.28);border-radius:var(--pill)}
.eyebrow--inv{border-color:rgba(255,255,255,.3);color:#fff}
.eyebrow .dot{width:.5em;height:.5em;border-radius:50%;background:var(--lima)}
.lead{font-size:clamp(1rem,1.25vw,1.14rem);color:var(--tx-mute);max-width:56ch}
.lead--inv{color:var(--tx-inv-mute)}
.sec-head{max-width:56ch}.sec-head .eyebrow{margin-bottom:24px}.sec-head h2{margin-bottom:16px}
.eyebrow{margin-bottom:18px}
.btn{display:inline-flex;align-items:center;gap:.55em;font-weight:600;font-size:.96rem;padding:.9em 1.5em;border-radius:var(--pill);border:1.5px solid transparent;transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s;white-space:nowrap}
.btn .a{transition:transform .25s var(--ease)}.btn:hover{transform:translateY(-2px)}.btn:hover .a{transform:translate(2px,-2px)}
.btn--dark{background:var(--tinta);color:#fff}.btn--dark:hover{background:var(--tinta-3)}
.btn--lime{background:var(--lima);color:var(--tinta)}.btn--lime:hover{background:var(--lima-h)}
.btn--azul{background:var(--azul);color:#fff}.btn--azul:hover{background:var(--azul-h)}
.btn--ghost{border-color:rgba(11,11,11,.28);color:var(--tx)}.btn--ghost:hover{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.btn--ghost-inv{border-color:rgba(255,255,255,.35);color:#fff}.btn--ghost-inv:hover{background:#fff;color:var(--tinta);border-color:#fff}
.ic{display:inline-grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(11,11,11,.2);color:var(--tx);transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s}
.ic svg{width:19px;height:19px}.ic:hover{background:var(--tinta);color:#fff;border-color:var(--tinta);transform:translateY(-2px)}
.ic--fill{background:var(--tinta);color:#fff;border-color:var(--tinta)}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:saturate(150%) blur(12px);-webkit-backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid var(--borde)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px}
.brand{display:flex;align-items:center;gap:9px;flex:none}
.logo-iso{position:relative;width:37px;height:34px;flex:none}
.logo-iso img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;animation:heartCycle 9s var(--ease) infinite}
.logo-iso img:nth-child(2){animation-delay:-3s}.logo-iso img:nth-child(3){animation-delay:-6s}
@keyframes heartCycle{0%{opacity:1}28%{opacity:1}35%{opacity:0}93%{opacity:0}100%{opacity:1}}
.logo-word{height:21px;width:auto;flex:none}
.nav-links{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}
.nav-links a{font-weight:500;font-size:1.02rem;color:#242424;position:relative;padding:4px 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background:var(--tinta);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta{display:flex;align-items:center;gap:14px;flex:none}
.nav-phone{display:inline-flex;align-items:center;gap:.5em;font-family:var(--mono);font-size:.8rem;color:#242424;white-space:nowrap}
.nav-phone svg{width:14px;height:14px}
.burger{display:none;width:44px;height:44px;border:1px solid var(--borde);border-radius:12px;background:#fff;place-items:center}
.burger span,.burger span::before,.burger span::after{content:"";display:block;width:20px;height:2px;background:var(--tinta);position:relative}
.burger span::before{position:absolute;top:-6px}.burger span::after{position:absolute;top:6px}
.burger span{transition:background .2s}
.burger span::before,.burger span::after{transition:transform .28s var(--ease),top .28s var(--ease)}
.nav.open .burger span{background:transparent}
.nav.open .burger span::before{top:0;transform:rotate(45deg)}
.nav.open .burger span::after{top:0;transform:rotate(-45deg)}
.nav-extra{display:none}

/* escritorio estrecho (941–1080): compactar la barra para que quepan los 5 ítems sin desbordes */
@media (min-width:941px) and (max-width:1080px){
  .nav{gap:14px}
  .nav-links{gap:18px}
  .nav-phone{display:none}
}
/* selector de idioma */
.lang{position:relative;flex:none}
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 13px;border:1px solid var(--borde);border-radius:var(--pill);background:#fff;font-family:var(--mono);font-weight:600;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:#242424;transition:border-color .2s,background .2s}
.lang-btn:hover{border-color:var(--tinta)}
.lang-btn>svg{width:15px;height:15px}
.lang-btn .chev{width:12px;height:12px;transition:transform .25s var(--ease)}
.lang.open .lang-btn .chev{transform:rotate(180deg)}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:190px;background:#fff;border:1px solid var(--borde);border-radius:var(--r3);box-shadow:0 22px 44px -24px rgba(0,0,0,.32);padding:6px;display:none;z-index:70}
.lang.open .lang-menu{display:block;animation:menuIn .2s var(--ease)}
.lang-menu a,.lang-menu span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:10px;font-size:.94rem;color:var(--tinta)}
.lang-menu a:hover{background:var(--hueso)}
.lang-menu a.on{font-weight:700}
.lang-menu a.on::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--lima)}
.lang-menu .soon{color:var(--tx-mute);cursor:default}
.lang-menu .soon b{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--azul);font-weight:600}

.stack{display:flex;flex-direction:column;gap:clamp(14px,2vw,22px);padding-top:clamp(14px,2vw,22px)}
.block{border-radius:var(--r);overflow:hidden}
.pad{padding:clamp(30px,4.5vw,66px)}

/* hero */
.hero{background:var(--lima);color:var(--tinta)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(24px,4vw,54px);align-items:center}
.hero h1{margin:.08em 0 .34em;font-size:clamp(2.15rem,3.3vw,3rem);max-width:16ch}
.hero .eyebrow{margin-bottom:14px;max-width:100%}
.hero .lead{color:#243016;max-width:42ch;font-weight:500}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-trust{margin-top:28px}
.ht-row{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;color:var(--tinta)}
.hero-trust .stars{letter-spacing:1px}
.hero-trust p{font-size:.85rem;color:#2c3a1a;margin-top:7px;line-height:1.4}
.hero-media{position:relative;border-radius:var(--r2);background:linear-gradient(150deg,#fff,#eef0ea);padding:clamp(20px,2.4vw,32px);aspect-ratio:5/4.3;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.hero-shots{position:absolute;inset:clamp(20px,2.4vw,32px)}
.hero-shots img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .9s var(--ease);filter:drop-shadow(0 20px 36px rgba(0,0,0,.22))}
.hero-shots img.on{opacity:1}
.hero-badge{position:absolute;left:16px;top:16px;z-index:3;background:rgba(11,11,11,.92);border-radius:var(--r3);padding:10px 14px;color:#fff;max-width:70%}
.hero-badge .k{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lima)}
.hero-badge .v{font-family:var(--display);font-weight:900;font-size:1.1rem;line-height:1.1;margin-top:2px}
/* botón en un corte limpio del panel blanco (una sola esquina redondeada, deja ver la lima del hero) */
.notch{position:absolute;right:0;bottom:0;z-index:4;background:var(--lima);padding:16px 0 0 18px;border-radius:32px 0 var(--r2) 0}
.notch-btn{position:static;box-shadow:0 6px 16px -10px rgba(11,11,11,.28)}
.notch-btn:hover{transform:translateY(-2px)}

/* marquees */
.marqbar{background:var(--hueso);padding:24px clamp(20px,4vw,40px)}
.toolbar{background:var(--papel);border:1px solid var(--borde);border-radius:var(--r);padding:24px clamp(20px,4vw,40px)}
.marqbar__lbl{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tx-mute);margin-bottom:16px}
.marq{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.marq__track{display:flex;align-items:center;gap:clamp(44px,6vw,88px);width:max-content;animation:marq 34s linear infinite;will-change:transform}
.marqbar .marq__track{animation-duration:44s}
.toolbar .marq__track{animation-duration:30s}
.marq:hover .marq__track{animation-play-state:paused}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.clogo{height:30px;width:auto;max-width:136px;flex:0 0 auto;object-fit:contain;opacity:.88;transition:opacity .3s,transform .3s}
.clogo:hover{opacity:1;transform:scale(1.06)}
.tool{display:flex;align-items:center;gap:11px;flex:0 0 auto;color:#2A2724;opacity:.7;font-family:var(--display);font-weight:700;font-size:clamp(1.05rem,1.5vw,1.35rem);letter-spacing:-.01em;transition:opacity .3s}
.tool:hover{opacity:1}
.tool img{height:28px;width:28px;object-fit:contain;flex:none}

/* about + bentos */
.about-head{max-width:none;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,3.4vw,48px);align-items:end}
.about-head .hl{display:flex;flex-direction:column;align-items:flex-start}
.about-head h2{margin-bottom:0}
.about-head .lead{max-width:50ch}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-top:clamp(24px,3.4vw,40px);align-items:stretch}
.about-media{position:relative;border-radius:var(--r2);overflow:hidden;min-height:420px;background:#ddd}
.about-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.08)}}
.about-float{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.94);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--r3);padding:18px 20px;max-width:66%;box-shadow:0 18px 40px -22px rgba(0,0,0,.45)}
.about-float h3{font-size:1.18rem;margin-bottom:6px}.about-float p{color:var(--tx-mute);font-size:.9rem;margin-bottom:14px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.stat{border-radius:var(--r2);padding:30px 28px;display:flex;flex-direction:column;gap:16px;min-height:230px;background:var(--gris);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.stat:hover{transform:translateY(-6px);box-shadow:0 22px 42px -26px rgba(0,0,0,.32)}
.stat--lime{background:var(--lima)}.stat--azul{background:var(--azul);color:#fff}.stat--rosa{background:var(--rosa)}
.stat .sic{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:rgba(11,11,11,.09);transition:transform .35s var(--ease)}
.stat:hover .sic{transform:scale(1.12) rotate(-8deg)}
.stat--azul .sic{background:rgba(255,255,255,.18)}.stat .sic svg{width:24px;height:24px}
.stat h3{font-size:1.3rem}
.stat .desc{font-size:1rem;color:var(--tx-mute);line-height:1.45;margin-top:auto}
.stat--azul .desc{color:rgba(255,255,255,.93)}.stat--lime .desc,.stat--rosa .desc{color:#2a3315}.stat--rosa .desc{color:#3a1533}

/* servicios */
.serv{background:var(--tinta);color:#fff}
.serv-top{display:grid;grid-template-columns:1.5fr .9fr;gap:28px;align-items:end}
.serv-top .lead{color:var(--tx-inv-mute)}
.serv-list{margin-top:clamp(30px,4vw,50px);border-top:1px solid var(--borde-osc)}
.serv-item{border-bottom:1px solid var(--borde-osc)}
.serv-row{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:22px;padding:24px 18px;width:100%;text-align:left;background:transparent;color:#fff;border:0;transition:background .3s var(--ease),transform .3s var(--ease),border-radius .3s,color .3s}
.serv-row .n{font-family:var(--mono);font-size:.88rem;color:var(--tx-inv-mute);transition:color .3s}
.serv-row .ttl{font-family:var(--display);font-weight:700;font-size:clamp(1.15rem,1.9vw,1.5rem)}
.serv-row .di{color:var(--tx-inv-mute);font-size:.95rem;max-width:56ch;margin-top:6px;transition:color .3s}
.serv-row .tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--tx-inv-mute);margin-top:8px;display:inline-block;transition:color .3s}
.mid{display:flex;flex-direction:column}
.serv-item.open .serv-row{background:var(--lima);color:var(--tinta);border-radius:var(--r2);transform:translateX(6px)}
.serv-item.open .n,.serv-item.open .di,.serv-item.open .tag{color:#2a3810}
.serv-item.open .ic{background:var(--tinta);color:var(--lima);border-color:var(--tinta)}

/* band */
.band{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px 48px}
.band--azul{background:var(--azul);color:#fff}.band--lima{background:var(--lima);color:var(--tinta)}
.band--rosa{background:var(--rosa);color:var(--tinta)}
.band h2{max-width:18ch}
.band .r{display:flex;align-items:center;justify-content:flex-end;gap:24px;flex-wrap:wrap}.band .r p{max-width:34ch;font-size:clamp(1.06rem,1.4vw,1.24rem);font-weight:500;line-height:1.4}
.band--azul .r p{color:rgba(255,255,255,.93)}.band--rosa .r p{color:#3a1533}

/* radiografia */
.radio{background:var(--azul);color:#fff;position:relative;overflow:hidden}
.radio-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62;z-index:0;pointer-events:none}
.radio::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,var(--azul) 30%,rgba(86,76,248,.82) 48%,rgba(86,76,248,.4) 74%,rgba(86,76,248,.15));z-index:1;pointer-events:none}
.radio-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.18fr .82fr;gap:clamp(26px,4vw,54px);align-items:center}
.radio h2{color:#fff;font-size:clamp(2rem,3.4vw,2.9rem);margin-bottom:18px}
.radio .lead{color:rgba(255,255,255,.9);font-size:clamp(1.05rem,1.4vw,1.2rem);max-width:52ch}
.radio ul{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:13px}
.radio li{display:flex;align-items:center;gap:12px;font-weight:500;font-size:1.02rem}
.radio li svg{width:22px;height:22px;color:var(--lima);flex:none}
.radio .card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:var(--r2);padding:clamp(28px,3vw,42px);text-align:center;backdrop-filter:blur(3px)}
.radio .card .big{font-family:var(--display);font-weight:900;font-size:clamp(2.8rem,5vw,4.2rem);line-height:1;color:var(--lima)}
.radio .card p{color:rgba(255,255,255,.9);margin:14px 0 22px}

/* portfolio carrusel */
.port-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.port-head h2{font-size:clamp(1.7rem,3vw,2.5rem)}
.port-ctrls{display:flex;gap:10px;align-items:center}
.pcar{position:relative;-webkit-mask:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent);mask:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent)}
.pcar__scroll{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.pcar__scroll::-webkit-scrollbar{display:none}
.pcar__track{display:flex;gap:var(--gap);width:max-content;padding:6px 0}
.work{flex:0 0 clamp(260px,25vw,330px);border-radius:var(--r2);padding:14px;display:flex;flex-direction:column;background:var(--gris)}
.work--lime{background:var(--lima)}.work--rosa{background:var(--rosa)}.work--azul{background:var(--azul)}
.work-thumb{border-radius:var(--r3);overflow:hidden;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;padding:8px}
.work-thumb img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 20px rgba(0,0,0,.18));transition:transform .4s var(--ease)}
.work:hover .work-thumb img{transform:scale(1.05)}
.work-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px 6px 4px}
.work-foot h3{font-size:1.15rem}
.work-foot .cat{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(11,11,11,.78);margin-top:6px}
.work--azul .work-foot h3{color:#fff}.work--azul .cat{color:#fff}

/* redes */
.redes{background:var(--rosa);color:var(--tinta)}
.redes-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,54px);align-items:center}
.redes h2{max-width:16ch;margin-bottom:16px}
.redes .lead{color:#3a1533;max-width:46ch}
.redes .chips{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
.redes .chips span{background:rgba(11,11,11,.9);color:#fff;border-radius:var(--pill);padding:.5em 1em;font-size:.85rem;font-weight:500}
.redes-gal{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:14px;aspect-ratio:1/1}
.rg{position:relative;border-radius:var(--r2);overflow:hidden;background:rgba(11,11,11,.12)}
.rg--tall{grid-row:span 2}
.rg img{width:100%;height:100%;object-fit:cover;animation:kb 18s ease-in-out infinite alternate}
.rg__tag{position:absolute;left:12px;bottom:12px;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(11,11,11,.55);padding:.3em .7em;border-radius:var(--pill)}
.rg--pink{background:var(--tinta);display:grid;place-items:center}
.rg__big{font-family:var(--display);font-weight:900;font-size:clamp(1.3rem,2.4vw,2rem);color:var(--rosa);text-align:center;line-height:1.05}

/* planes */
.planes .head{text-align:center;max-width:80ch;margin-inline:auto}
.planes .head .eyebrow{margin-bottom:18px}.planes .head .lead{margin-inline:auto;max-width:80ch}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:clamp(36px,4vw,56px)}
.plan{border:1px solid var(--borde);border-radius:var(--r2);padding:30px 26px;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s}
.plan:hover{transform:translateY(-6px);box-shadow:0 24px 40px -26px rgba(0,0,0,.22)}
.plan.feat{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.plan .kick{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tx-mute)}
.plan.feat .kick{color:var(--lima)}
.plan .price{font-family:var(--display);font-weight:900;font-size:clamp(1.9rem,2.8vw,2.5rem);line-height:1;margin:14px 0 4px;letter-spacing:-.02em;white-space:nowrap;display:flex;align-items:baseline;gap:.18em;flex-wrap:nowrap}
.plan .pfrom{font-size:.42em;font-weight:600;opacity:.72;letter-spacing:0}
.plan .per{font-size:.4em;font-weight:600;opacity:.82;letter-spacing:0}
.plan .from{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-mute)}
.plan.feat .from{color:var(--tx-inv-mute)}
.plan p{color:var(--tx-mute);font-size:.94rem;margin:14px 0 22px}
.plan.feat p{color:var(--tx-inv-mute)}
.plan .btn{margin-top:auto;justify-content:center}
.plan-wide .plan .price{font-size:clamp(1.5rem,1.9vw,2rem)}
#redes .plan:not(.feat) .kick,#redes .plan:not(.feat) .from,#redes .plan:not(.feat) p,#redes .plan:not(.feat) .plan__feats li,#redes .plan:not(.feat) .ent{color:#3a1533}
#redes .plan:not(.feat){background:rgba(255,255,255,.28);border-color:rgba(11,11,11,.14)}
#redes .plan__feats svg{color:var(--azul)}
.planes .note{text-align:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-mute);margin-top:26px}
/* pagina de planes */
.planhero{background:var(--tinta);color:#fff;text-align:center}
.planhero h1{color:#fff;max-width:20ch;margin:16px auto 14px}
.planhero .lead{color:var(--tx-inv-mute);margin-inline:auto}
.planhero .ha{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.plan-wide{display:grid;grid-template-columns:repeat(auto-fit,minmax(216px,1fr));gap:var(--gap);margin-top:clamp(30px,4vw,50px);align-items:stretch}
.plan{position:relative}
.plan .ent{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-mute);margin:6px 0 12px;display:block}
.plan.feat .ent{color:var(--tx-inv-mute)}
.plan__feats{list-style:none;margin:14px 0 20px;padding:0;display:grid;gap:9px}
.plan__feats li{display:flex;gap:9px;align-items:flex-start;font-size:.88rem;color:var(--tx-mute);line-height:1.35}
.plan.feat .plan__feats li{color:var(--tx-inv-mute)}
.plan__feats svg{width:15px;height:15px;color:var(--azul);flex:none;margin-top:3px}
.plan.feat .plan__feats svg{color:var(--lima)}
.plan .tagfeat{position:absolute;top:-11px;left:24px;background:var(--lima);color:var(--tinta);font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;padding:.35em .8em;border-radius:var(--pill)}
.addons{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(24px,3vw,36px)}
.addons span{border:1px solid var(--borde);border-radius:var(--pill);padding:.6em 1.1em;font-size:.9rem;color:var(--tx)}
.addons span b{color:var(--azul)}
/* planes: trío 3-por-línea + destacado + tiras */
.plan-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:clamp(28px,3.6vw,46px);align-items:stretch}
.plan-trio .plan{padding:32px 28px}
.plan-trio .plan p{font-size:.98rem}
.plan-trio .plan__feats li{font-size:.92rem}
.diag,.setup{display:flex;align-items:center;justify-content:space-between;gap:16px 34px;flex-wrap:wrap;border-radius:var(--r2);padding:24px 28px}
.diag{border:1px dashed var(--borde);margin-bottom:clamp(20px,2.6vw,30px);background:var(--papel)}
.setup{border:1px solid rgba(11,11,11,.16);margin-top:var(--gap);background:rgba(255,255,255,.42)}
.diag .dl,.setup .dl{display:flex;flex-direction:column;gap:5px;min-width:min(100%,320px);flex:1}
.diag .kick{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--azul)}
.setup .kick{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#8a1f66}
.diag h3,.setup h3{font-size:1.24rem}
.diag p{color:var(--tx-mute);font-size:.94rem;max-width:60ch}
.setup h3{color:var(--tinta)}.setup p{color:#3a1533;font-size:.94rem;max-width:60ch}
.diag .dr,.setup .dr{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.diag .price,.setup .price{font-family:var(--display);font-weight:900;font-size:1.8rem;line-height:1;white-space:nowrap}
.setup .price{color:var(--tinta)}
.diag .price small,.setup .price small{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-mute);display:block;margin-top:5px;font-weight:500}
.setup .price small{color:#3a1533}
.plan-hero{margin-top:var(--gap);background:var(--tinta);color:#fff;border-radius:var(--r2);padding:clamp(28px,3.4vw,46px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,4vw,50px);align-items:center;position:relative;overflow:hidden}
.plan-hero::before{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(206,251,86,.22),transparent 68%);pointer-events:none}
.plan-hero .tagfeat{position:static;display:inline-block;margin-bottom:14px}
.plan-hero h3{font-family:var(--display);font-weight:900;font-size:clamp(1.6rem,2.6vw,2.3rem);line-height:1.02;letter-spacing:-.02em}
.plan-hero .price{font-family:var(--display);font-weight:900;font-size:clamp(2rem,3vw,2.8rem);line-height:1;margin:14px 0 4px}
.plan-hero .ent{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-inv-mute);display:block;margin-bottom:14px}
.plan-hero p{color:var(--tx-inv-mute);margin:0 0 22px;font-size:1rem;max-width:42ch}
.plan-hero .plan__feats{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.plan-hero .plan__feats li{color:#e9e9e9;font-size:.94rem}
.plan-hero .plan__feats svg{color:var(--lima)}
.plan-hero .btn{margin-top:8px}
.plan-hero .ph-r{display:flex;flex-direction:column}

/* proceso */
.proc{background:var(--hueso)}
.proc .head{text-align:center;max-width:56ch;margin-inline:auto}.proc .head .eyebrow{margin-bottom:18px}.proc .head .lead{margin-inline:auto}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:clamp(46px,5vw,72px)}
.step{position:relative;background:var(--papel);border:1px solid var(--borde);border-radius:var(--r2);padding:44px 24px 26px;text-align:center;transition:transform .3s var(--ease),box-shadow .3s}
.step:hover{transform:translateY(-6px);box-shadow:0 22px 40px -26px rgba(0,0,0,.22)}
.step .cn{position:absolute;top:-28px;left:50%;transform:translateX(-50%);width:56px;height:56px;border-radius:50%;background:var(--papel);border:1px solid var(--borde);display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:1.2rem}
.step.hl .cn{background:var(--lima);border-color:var(--lima)}
.step h3{margin:6px 0 10px;font-size:1.15rem}.step p{color:var(--tx-mute);font-size:.92rem}
.proc .cta{display:flex;justify-content:center;margin-top:clamp(30px,4vw,50px)}

/* testimonios */
.testi{background:var(--tinta);color:#fff}
.testi .head{text-align:center;max-width:92ch;margin-inline:auto}.testi .head .eyebrow{color:#fff;margin-bottom:18px}.testi h2{color:#fff;font-size:clamp(1.7rem,3vw,2.4rem)}.testi .head .lead{max-width:none;font-size:clamp(.95rem,1.2vw,1.1rem)}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:clamp(36px,4vw,54px)}
.tcard{background:var(--tinta-2);border:1px solid var(--borde-osc);border-radius:var(--r2);padding:28px 26px;display:flex;flex-direction:column}
.tcard .stars{color:var(--lima);letter-spacing:2px;font-size:.9rem;margin-bottom:14px}
.tcard .q{font-size:1rem;line-height:1.5;color:#eee;flex:1}
.tcard .who{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--borde-osc)}
.tcard .av{width:46px;height:46px;border-radius:50%;flex:none;object-fit:cover;background:var(--tinta-3)}
.tcard .nm{font-weight:600;font-size:.95rem}.tcard .rl{font-size:.82rem;color:var(--tx-inv-mute)}

/* equipo */
.team-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(26px,4vw,54px);align-items:center}
.team h2{margin-bottom:16px}
.people{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.person{background:var(--hueso);border-radius:var(--r2);padding:22px;text-align:center}
.person .ph{width:96px;height:96px;border-radius:50%;margin:0 auto 14px;object-fit:cover;background:var(--gris)}
.person .nm{font-weight:600}.person .rl{font-size:.85rem;color:var(--tx-mute);margin-top:4px}
.team-stats{display:flex;flex-direction:column;gap:var(--gap)}
.tstat{border-radius:var(--r2);padding:24px 26px}
.tstat:nth-child(1){background:var(--lima)}.tstat:nth-child(2){background:var(--tinta);color:#fff}.tstat:nth-child(3){background:var(--gris)}
.tstat .big{font-family:var(--display);font-weight:900;font-size:clamp(2rem,3vw,2.6rem);line-height:1;letter-spacing:-.02em}
.tstat .lb{font-size:.92rem;margin-top:6px;opacity:.85}

/* donde */
.donde{background:var(--tinta);color:#fff}
.donde .head{max-width:60ch}.donde .head.center{text-align:center;margin-inline:auto}.donde .head .eyebrow{color:#fff;margin-bottom:18px}.donde h2{color:#fff}.donde .lead{color:var(--tx-inv-mute)}.donde .head.center .lead{margin-inline:auto}
.mapwrap{position:relative;overflow:hidden;margin:clamp(16px,2.2vw,30px) auto 0;aspect-ratio:16/6.7;max-width:960px;border-radius:var(--r2)}
.mapinner{position:absolute;left:-11%;top:-25%;width:142%;aspect-ratio:950/620}
.mapimg{width:100%;height:100%;object-fit:contain;opacity:.5;filter:brightness(0) invert(.3)}
.arcs{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.arcs path{fill:none;stroke:var(--lima);stroke-width:1.4;stroke-dasharray:5 6;opacity:.5;animation:dash 3s linear infinite}
@keyframes dash{to{stroke-dashoffset:-44}}
.pin{position:absolute;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:var(--lima);z-index:2}
.pin::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--lima);animation:ping 2.6s var(--ease) infinite}
.pin.rosa{background:var(--rosa)}.pin.rosa::after{border-color:var(--rosa)}
.pin.azul{background:var(--azul)}.pin.azul::after{border-color:var(--azul)}
.pin.main{width:18px;height:18px}
.pin b{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;white-space:nowrap;font-weight:500;background:rgba(11,11,11,.55);padding:.22em .5em;border-radius:6px}
@keyframes ping{0%{transform:scale(1);opacity:.7}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}
.places{display:flex;flex-wrap:wrap;gap:9px;margin-top:clamp(22px,2.6vw,32px);justify-content:center}
.places span{border:1px solid var(--borde-osc);border-radius:var(--pill);padding:.5em .95em;font-family:var(--display);font-weight:700;font-size:clamp(.82rem,1.05vw,1rem)}
.places span.on{background:var(--lima);color:var(--tinta);border-color:var(--lima)}
.donde .foot-cap{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tx-inv-mute);margin-top:clamp(22px,2.6vw,34px);text-align:center}

/* faq */
.faq{background:var(--hueso)}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(26px,4vw,54px);align-items:start}
.faq h2{margin-bottom:14px}
.faq-list{display:flex;flex-direction:column;gap:12px}
.qa{background:var(--papel);border:1px solid var(--borde);border-radius:var(--r2);overflow:hidden}
.qa summary{list-style:none;cursor:pointer;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--display);font-weight:700;font-size:1.05rem}
.qa summary::-webkit-details-marker{display:none}
.qa summary .pm{width:26px;height:26px;flex:none;position:relative;transition:transform .3s var(--ease)}
.qa summary .pm::before,.qa summary .pm::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:2px;background:var(--tinta);transform:translate(-50%,-50%)}
.qa summary .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:opacity .3s}
.qa[open] summary .pm::after{opacity:0}
.qa .ans{padding:0 24px 20px;color:var(--tx-mute);font-size:.96rem}

/* contacto */
.contacto{background:var(--tinta);color:#fff}
.cont-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,54px)}
.contacto h2{color:#fff;margin-bottom:16px}.contacto .lead{color:var(--tx-inv-mute)}
.cont-info{display:flex;flex-direction:column;gap:16px;margin-top:26px}
.cont-info a,.cont-info span{display:flex;align-items:center;gap:12px;color:#fff;font-size:1.02rem}
.cont-info svg{width:20px;height:20px;color:var(--lima);flex:none}
.form{display:flex;flex-direction:column;gap:14px}
.form input,.form textarea{width:100%;background:var(--tinta-2);border:1px solid var(--borde-osc);border-radius:var(--r3);padding:15px 18px;color:#fff;font:inherit;font-size:.98rem}
.form input::placeholder,.form textarea::placeholder{color:var(--tx-inv-mute)}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--lima)}
.form textarea{min-height:120px;resize:vertical}
.form .btn{justify-content:center}
.form .fine{font-size:.82rem;color:var(--tx-inv-mute);text-align:center}

/* footer */
.foot{padding:clamp(46px,5vw,72px) 0 30px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.25fr;gap:30px}
.foot-brand .brand{margin-bottom:16px}.foot-brand p{color:var(--tx-mute);max-width:32ch;font-size:.94rem}
.fsoc{display:flex;gap:10px;margin-top:18px}
.fsoc a{width:40px;height:40px;border-radius:50%;border:1px solid var(--borde);display:grid;place-items:center;color:#242424;transition:background .25s,color .25s,border-color .25s}
.fsoc a:hover{background:var(--tinta);color:#fff;border-color:var(--tinta)}.fsoc svg{width:16px;height:16px}
.fcol h4{font-family:var(--mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--tx-mute);margin:0 0 16px;font-weight:600}
.fcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.fcol a{color:#242424;font-size:.95rem}.fcol a:hover{text-decoration:underline;text-underline-offset:3px}
.fcont .row{display:flex;gap:10px;align-items:flex-start;margin-bottom:13px;font-size:.94rem;color:#242424}
.fcont svg{width:16px;height:16px;margin-top:3px;flex:none;color:var(--tx-mute)}
.fbot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:clamp(36px,4vw,56px);padding-top:22px;border-top:1px solid var(--borde)}
.fbot .cp{font-size:.85rem;color:var(--tx-mute)}
.flegal{display:flex;gap:8px 18px;flex-wrap:wrap}
.flegal a{font-size:.82rem;color:var(--tx-mute)}.flegal a:hover{color:var(--tx);text-decoration:underline;text-underline-offset:3px}
.fcont-note{font-size:.82rem;color:var(--tx-mute);margin-top:14px;max-width:32ch;line-height:1.5}
.backtop{display:inline-flex;align-items:center;gap:.6em;font-family:var(--mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:#242424}.backtop .ic{width:38px;height:38px}

.wa{position:fixed;right:20px;bottom:20px;z-index:60;width:56px;height:56px;border-radius:50%;background:var(--lima);color:var(--tinta);display:grid;place-items:center;box-shadow:0 14px 30px -8px rgba(0,0,0,.4)}
.wa svg{width:27px;height:27px}
.wa::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--lima);animation:pulse 2.4s var(--ease) infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.5);opacity:0}100%{opacity:0}}

/* redes: elementos flotantes (dirección de arte social) */
.redes{position:relative}
.redes-grid{position:relative;z-index:2}
.redes-fx{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.redes-fx .fx{position:absolute;bottom:-70px;will-change:transform,opacity;animation:fxUp linear infinite}
.redes-fx .fx img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 10px 16px rgba(11,11,11,.16))}
@keyframes fxUp{0%{transform:translateY(0) scale(.7) rotate(-10deg);opacity:0}14%{opacity:.62}82%{opacity:.42}100%{transform:translateY(-600px) scale(1.05) rotate(10deg);opacity:0}}

/* modal de formulario */
.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px}
.modal[hidden]{display:none}
.modal__ov{position:absolute;inset:0;background:rgba(11,11,11,.58);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:mOv .3s var(--ease)}
.modal__box{position:relative;z-index:1;width:min(540px,100%);max-height:calc(100dvh - 36px);overflow:auto;background:var(--papel);color:var(--tx);border-radius:var(--r2);padding:clamp(26px,3.6vw,42px);box-shadow:0 50px 100px -30px rgba(0,0,0,.6);animation:mBox .38s var(--ease)}
.modal__close{position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:50%;border:1px solid var(--borde);background:#fff;display:grid;place-items:center;transition:background .2s,color .2s,transform .3s var(--ease)}
.modal__close:hover{background:var(--tinta);color:#fff;transform:rotate(90deg)}
.modal__close svg{width:18px;height:18px}
.modal .m-eb{display:inline-flex;align-items:center;gap:.55em;font-family:var(--mono);font-weight:500;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--azul);margin-bottom:12px}
.modal .m-eb .dot{width:.5em;height:.5em;border-radius:50%;background:var(--azul)}
.modal h3{font-family:var(--display);font-weight:900;font-size:clamp(1.5rem,2.5vw,2.05rem);line-height:1.05;letter-spacing:-.02em}
.modal .m-lead{color:var(--tx-mute);margin:8px 0 20px;font-size:.98rem}
.modal form{display:flex;flex-direction:column;gap:13px}
.modal .m-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal .fld{display:flex;flex-direction:column;gap:7px}
.modal label{font-size:.74rem;font-weight:600;letter-spacing:.02em;color:var(--tx-mute);text-transform:uppercase;font-family:var(--mono)}
.modal input,.modal select,.modal textarea{width:100%;background:var(--hueso);border:1px solid var(--borde);border-radius:var(--r3);padding:13px 15px;font:inherit;font-size:.98rem;color:var(--tx);transition:border-color .2s,background .2s,box-shadow .2s}
.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--azul);background:#fff;box-shadow:0 0 0 4px rgba(86,76,248,.13)}
.modal textarea{min-height:92px;resize:vertical}
.modal .btn{justify-content:center;margin-top:4px}
.modal .m-fine{font-size:.8rem;color:var(--tx-mute);text-align:center;margin-top:2px}
.modal__ok{display:none;text-align:center;padding:14px 0}
.modal.sent .modal__form{display:none}
.modal.sent .modal__ok{display:block}
.modal__ok .okic{width:66px;height:66px;border-radius:50%;background:var(--lima);display:grid;place-items:center;margin:0 auto 16px;animation:okPop .4s var(--ease)}
.modal__ok .okic svg{width:30px;height:30px;color:var(--tinta)}
.modal__ok h3{margin-bottom:8px}
.modal__ok p{color:var(--tx-mute)}
@keyframes okPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
@keyframes mOv{from{opacity:0}to{opacity:1}}
@keyframes mBox{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
body.modal-open{overflow:hidden}

/* microinteracciones con el ratón */
.tcard{transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.tcard:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.26);box-shadow:0 28px 54px -32px rgba(0,0,0,.65)}
.tcard .av{transition:transform .3s var(--ease)}.tcard:hover .av{transform:scale(1.07)}
.person{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.person:hover{transform:translateY(-5px);box-shadow:0 20px 40px -28px rgba(0,0,0,.3)}
.person .ph{transition:transform .35s var(--ease)}.person:hover .ph{transform:scale(1.07)}
.tstat{transition:transform .3s var(--ease)}.tstat:hover{transform:translateY(-5px)}
.rg img{transition:transform .5s var(--ease)}.rg:hover img{transform:scale(1.07)}
.redes .chips span{transition:transform .25s var(--ease)}.redes .chips span:hover{transform:translateY(-2px)}
.places span{transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s}
.places span:hover{transform:translateY(-2px);background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.4)}
.addons span{transition:transform .25s var(--ease),border-color .25s}.addons span:hover{transform:translateY(-2px);border-color:var(--azul)}
.qa{transition:border-color .25s}.qa:hover{border-color:rgba(11,11,11,.24)}
.pin b{transition:transform .3s var(--ease)}.pin:hover{z-index:6}.pin:hover b{transform:translateY(-50%) scale(1.08)}
.cont-info a{transition:transform .2s var(--ease),color .2s}.cont-info a:hover{transform:translateX(3px);color:var(--lima)}
.backtop .ic{transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s}.backtop:hover .ic{transform:translateY(-3px)}
.diag,.setup{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.diag:hover,.setup:hover{transform:translateY(-4px);box-shadow:0 22px 42px -28px rgba(0,0,0,.28)}
.plan-hero{transition:box-shadow .3s var(--ease)}.plan-hero:hover{box-shadow:0 30px 60px -34px rgba(0,0,0,.6)}

.js [data-rv]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0ms)}
.js [data-rv].vis{opacity:1;transform:none}
/* Hero above-the-fold visible al instante: el LCP no depende de JS (perf móvil) */
.hero [data-rv],.subhero [data-rv]{opacity:1!important;transform:none!important;transition:none!important}

/* ---- páginas internas ---- */
.subhero{background:var(--tinta);color:#fff;text-align:center;position:relative;overflow:hidden}
.subhero .eyebrow{margin-bottom:16px}
.subhero h1{color:#fff;margin:0 auto 14px;max-width:22ch}
.subhero .lead{color:var(--tx-inv-mute);margin-inline:auto;max-width:60ch}
.subhero .ha{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.subhero .subkpis{display:flex;gap:clamp(20px,4vw,54px);justify-content:center;flex-wrap:wrap;margin-top:34px}
.subhero .subkpis .k{font-family:var(--display);font-weight:900;font-size:clamp(1.6rem,2.6vw,2.3rem);line-height:1}
.subhero .subkpis .l{font-size:.82rem;color:var(--tx-inv-mute);margin-top:6px}
.subhero .subkpis>div .k{color:var(--lima)}
.subhero.has-bg{background:var(--tinta)}
.subhero.has-bg .subhero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;z-index:0}
.subhero.has-bg::before{content:"";position:absolute;inset:0;background:linear-gradient(175deg,rgba(11,11,11,.5) 30%,rgba(11,11,11,.74));z-index:1;pointer-events:none}
.subhero.has-bg>*{position:relative;z-index:2}

/* filas de servicio alternadas */
.srv-row2{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);align-items:center}
.srv-row2+.srv-row2{margin-top:clamp(34px,5vw,64px)}
.srv-row2 .num{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--azul)}
.srv-row2 h2{margin:12px 0 14px}
.srv-row2 .lead{margin-bottom:18px}
.srv-row2.rev .srv-txt{order:2}
.srv-feats{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:11px}
.srv-feats li{display:flex;gap:11px;align-items:flex-start;font-size:.98rem;color:var(--tx-mute)}
.srv-feats svg{width:18px;height:18px;color:var(--azul);flex:none;margin-top:3px}
.srv-media{border-radius:var(--r2);padding:clamp(26px,3vw,40px);min-height:280px;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.srv-media .mtag{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase}
.srv-media .k{font-family:var(--display);font-weight:900;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.02;letter-spacing:-.02em}
.srv-media.m-lima{background:var(--lima);color:var(--tinta)}
.srv-media.m-azul{background:var(--azul);color:#fff}
.srv-media.m-rosa{background:var(--rosa);color:var(--tinta)}
.srv-media.m-tinta{background:var(--tinta);color:#fff}
.srv-media.m-hueso{background:var(--hueso);color:var(--tinta)}

/* trabajos */
.works{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap);margin-top:clamp(30px,4vw,50px)}
.wk{border-radius:var(--r2);overflow:hidden;border:1px solid var(--borde);background:var(--papel);display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s}
.wk:hover{transform:translateY(-6px);box-shadow:0 26px 48px -30px rgba(0,0,0,.28)}
.wk-thumb{aspect-ratio:16/10;overflow:hidden;background:linear-gradient(150deg,#fff,#eef0ea);display:flex;align-items:center;justify-content:center;padding:20px}
.wk-thumb img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 24px rgba(0,0,0,.18));transition:transform .4s var(--ease)}
.wk:hover .wk-thumb img{transform:scale(1.05)}
.wk-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.wk-body .cat{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--azul)}
.wk-body h3{margin:8px 0 8px;font-size:1.32rem}
.wk-body p{color:var(--tx-mute);font-size:.95rem;margin-bottom:16px}
.wk-metrics{display:flex;gap:18px;flex-wrap:wrap;margin:auto 0 16px}
.wk-metrics b{font-family:var(--display);font-weight:900;font-size:1.35rem;display:block;line-height:1}
.wk-metrics span{font-size:.76rem;color:var(--tx-mute)}
.wk-body .btn{margin-top:auto}

/* laboratorio */
.arts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:clamp(30px,4vw,50px)}
.art{display:flex;flex-direction:column;border:1px solid var(--borde);border-radius:var(--r2);overflow:hidden;background:var(--papel);transition:transform .3s var(--ease),box-shadow .3s}
.art:hover{transform:translateY(-6px);box-shadow:0 24px 44px -28px rgba(0,0,0,.25)}
.art .art-cover{aspect-ratio:16/9;display:grid;place-items:center;color:#fff}
.art .art-cover .ico{width:46px;height:46px;opacity:.9}
.art-cover.c1{background:var(--azul)}.art-cover.c2{background:var(--rosa);color:var(--tinta)}.art-cover.c3{background:var(--lima);color:var(--tinta)}.art-cover.c4{background:var(--tinta)}
.art .tag{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--azul);padding:22px 24px 0}
.art h3{margin:10px 0 8px;font-size:1.18rem;padding:0 24px}
.art p{color:var(--tx-mute);font-size:.93rem;padding:0 24px 20px}
.art .art-foot{margin-top:auto;padding:0 24px 22px;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-mute)}

/* prosa legal */
.legal{max-width:820px;margin-inline:auto}
.legal .upd{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-mute);margin-bottom:26px}
.legal h2{font-size:clamp(1.25rem,2vw,1.6rem);margin:34px 0 12px}
.legal h2:first-of-type{margin-top:0}
.legal p,.legal li{color:var(--tx-mute);font-size:.98rem;line-height:1.7}
.legal p{margin-bottom:12px}
.legal ul{padding-left:20px;margin:0 0 12px}.legal li{margin-bottom:8px}
.legal a{color:var(--azul);text-decoration:underline;text-underline-offset:3px}
.legal .flag{background:var(--hueso);border:1px dashed var(--borde);border-radius:var(--r3);padding:14px 18px;color:var(--tx-mute);font-size:.9rem;margin:14px 0}

@media(max-width:940px){
  .srv-row2,.works,.arts{grid-template-columns:1fr}
  .srv-row2.rev .srv-txt{order:0}
  .hero-grid,.about-grid,.about-head,.serv-top,.radio-grid,.redes-grid,.team-grid,.cont-grid,.faq-grid{grid-template-columns:1fr}
  .plan-grid,.plan-trio,.steps,.testi-grid,.plan-hero{grid-template-columns:1fr}
  .about-head{gap:14px}
  .foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}
  .about-float{position:static;max-width:100%;border-radius:0 0 var(--r2) var(--r2);padding:20px 22px}
  .about-media{min-height:0}.about-media img{position:static;height:220px}
  .people{grid-template-columns:1fr 1fr}
  .redes-gal{aspect-ratio:auto}.rg{aspect-ratio:1}
  /* cabecera: modo burger (menú lean) */
  .nav-links,.nav-phone{display:none}
  .burger{display:grid}
  .nav.open .nav-links{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;padding:8px var(--pad) 22px;gap:0;border-bottom:1px solid var(--borde);box-shadow:0 26px 42px -26px rgba(0,0,0,.35);animation:menuIn .28s var(--ease);max-height:calc(100vh - 76px);overflow-y:auto;overscroll-behavior:contain}
  .nav.open .nav-links a::after{display:none}
  .nav.open .nav-links>li:not(.nav-extra){border-bottom:1px solid var(--borde)}
  .nav.open .nav-extra{display:flex;flex-direction:column;gap:9px;padding-top:16px}
  .nav-extra .ne-row{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:1rem;color:#242424;padding:9px 4px}
  .nav-extra .ne-row svg{width:18px;height:18px;color:var(--tx-mute);flex:none}
  .nav-extra .ne-tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-mute);padding:4px 4px}
  .nav-extra .btn{justify-content:center;margin-top:12px;font-size:1.05rem;padding:1.05em 1.5em}
}
@media(max-width:600px){
  .nav{gap:10px}
  .brand .logo-word{height:18px}
  .logo-iso{width:32px;height:30px}
  .nav-cta{gap:7px}
  .nav-cta .btn--dark{padding:.68em .95em;font-size:.85rem}
  .nav-cta .btn--dark .a{display:none}
  .lang-btn{height:40px;padding:0 9px;gap:3px;font-size:.72rem}
  .lang-btn>svg:first-child{display:none}
  .lang-menu{min-width:170px}
  .hero .eyebrow{font-size:.5rem;letter-spacing:.045em;padding:.5em .8em;gap:.4em;white-space:nowrap}
  .stats,.people{grid-template-columns:1fr}
  .serv-row{grid-template-columns:34px 1fr auto;gap:12px;padding:18px 6px}
  .port-head{flex-direction:column;align-items:flex-start}
  .band{grid-template-columns:1fr;gap:18px}.band .r{justify-content:flex-start}
  .foot-grid{grid-template-columns:1fr}
  .plan-hero .plan__feats{grid-template-columns:1fr}
  .diag .dr,.setup .dr{width:100%;justify-content:space-between}
  .modal .m-row{grid-template-columns:1fr}
  .pin b{display:none}.pin.main b{display:block;font-size:.52rem}
}
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*{animation:none!important;transition:none!important}
  .js [data-rv],[data-rv]{opacity:1!important;transform:none!important}.logo-iso img{opacity:1}.hero-shots img.on{opacity:1}
}

/* ==== FOOTER v3 (oscuro) ==== */
.foot{background:var(--tinta);color:var(--tx-inv);padding:clamp(48px,5vw,72px) 0 26px;margin-top:clamp(52px,6.5vw,96px)}
.foot-brand p{color:var(--tx-inv-mute);max-width:34ch;font-size:.92rem;line-height:1.6;margin:0}
.fsoc{margin-top:20px}
.fsoc a{border-color:rgba(255,255,255,.18);color:#fff}
.fsoc a:hover{background:#fff;color:var(--tinta);border-color:#fff}
.fcol h3{color:var(--tx-inv-mute);font-size:.95rem;font-weight:600}
.fcol a{color:#E6E6E9}.fcol a:hover{color:#fff}
.foot-auth{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:clamp(30px,3.4vw,44px);padding:clamp(32px,4vw,46px) 0;border-top:1px solid rgba(255,255,255,.12)}
.foot-auth .badge{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--tinta);border-radius:999px;padding:8px 14px;font-family:var(--mono);font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600}
.foot-auth .badge img{height:15px;width:auto;display:block}
.foot-auth .badge .bic{display:inline-flex;width:15px;height:15px}.foot-auth .badge .bic svg{width:15px;height:15px}
.fbot{border-top-color:rgba(255,255,255,.12);margin-top:0}
.fbot .cp{color:var(--tx-inv-mute)}
.flegal a{color:var(--tx-inv-mute)}.flegal a:hover{color:#fff}
.backtop{color:#fff}.backtop .ic{border:1px solid rgba(255,255,255,.2)}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}

/* ==== PLAN-HERO 360 (mejora) ==== */
.plan-hero{border:2px solid rgba(206,251,86,.55)}
.ph-feats-h{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lima);display:block;margin-bottom:14px}
.ph-stack{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.ph-stack span{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:#EDEDEA;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:5px 11px}

/* ==== SECCIÓN LOCAL SEO (landings ciudad) ==== */
.loc-sec{margin-top:clamp(38px,5vw,66px)}
.loc-eyebrow2{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tx-mute);margin-top:2px}
.loc-grid{display:grid;gap:16px;grid-template-columns:1fr;margin-top:2px}
@media(min-width:720px){.loc-grid{grid-template-columns:1fr 1fr}}
.loc-grid--3{grid-template-columns:1fr}
@media(min-width:760px){.loc-grid--3{grid-template-columns:repeat(3,1fr)}}
.loc-card{background:var(--papel);border:1px solid var(--borde);border-radius:16px;padding:22px 24px;box-shadow:0 1px 2px rgba(11,11,11,.03)}
.loc-card-h{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--azul);margin-bottom:10px}
.loc-card p{font-size:.95rem;line-height:1.6;color:var(--tx);margin:0}
.loc-card .src{display:block;font-family:var(--mono);font-size:.68rem;color:var(--tx-mute);margin-top:8px}
.loc-card a{color:var(--azul);text-decoration:underline;text-underline-offset:2px}
.loc-nota{font-size:.85rem;color:var(--tx-mute);margin-top:2px}
.loc-cierre{font-size:1rem;line-height:1.6;color:var(--tx-mute);max-width:62ch}

/* ==== CONSENTIMIENTO DE COOKIES (RGPD/LSSI) ==== */
.btn--sm{font-size:.82rem;padding:.62em 1.05em}
.ck{position:fixed;left:0;right:0;bottom:0;z-index:1200;display:flex;justify-content:center;padding:clamp(12px,2vw,22px);pointer-events:none;opacity:0;transform:translateY(14px);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.ck.on{opacity:1;transform:none;pointer-events:auto}
.ck [hidden]{display:none!important}
.ck-in{width:min(720px,100%);background:var(--tinta);color:var(--tx-inv);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:clamp(18px,2.4vw,26px);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.ck-h{font-family:var(--display,inherit);font-size:1.12rem;margin:0 0 6px;color:#fff;letter-spacing:-.01em}
.ck-p{font-size:.9rem;line-height:1.55;color:var(--tx-inv-mute);margin:0}
.ck-p a{color:var(--lima);text-decoration:underline;text-underline-offset:2px}
.ck-cfg{margin-top:16px;display:grid;gap:10px}
.ck-opt{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 14px}
.ck-opt span{display:flex;flex-direction:column;gap:2px}
.ck-opt b{font-size:.86rem;color:#fff;font-weight:600}
.ck-opt em{font-style:normal;font-size:.76rem;color:var(--tx-inv-mute);line-height:1.4}
.ck-opt input{margin-top:3px;width:18px;height:18px;accent-color:var(--lima);flex:none;cursor:pointer}
.ck-opt input:disabled{opacity:.5;cursor:not-allowed}
.ck-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;justify-content:flex-end;align-items:center}
.ck-btns .ck-cfgb{margin-right:auto;background:transparent;border-color:rgba(255,255,255,.28);color:#fff}
.ck-btns .btn--ghost-inv{background:var(--tinta-3);color:#fff;border-color:rgba(255,255,255,.4)}
.ck-btns .btn--ghost-inv:hover{background:#fff;color:var(--tinta);border-color:#fff}
.ck-btns .ck-cfgb:hover{background:rgba(255,255,255,.08)}
.ck-prefs-link{display:inline-block;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--tx-inv-mute);text-decoration:none;cursor:pointer}
.ck-prefs-link:hover{color:#fff;text-decoration:underline}
.fbot .ck-prefs-link{margin-left:14px}
@media (max-width:560px){.ck-btns{justify-content:stretch}.ck-btns .btn{flex:1 1 auto;justify-content:center}.ck-btns .ck-cfgb{margin-right:0;flex-basis:100%}}
@media (prefers-reduced-motion:reduce){.ck{transition:opacity .2s}.ck.on{transform:none}}
/* Móvil: mockup más compacto para que el LCP sea el H1 (texto), no la imagen */
@media(max-width:767px){.hero-media{width:min(48%,176px);margin:clamp(28px,9vw,52px) auto 0}.hero .lead{max-width:none}}
/* Perf: no renderizar/animar bloques fuera de pantalla hasta acercarse (LCP + CPU) */
.block:not(.hero):not(.subhero):not(.contacto){content-visibility:auto;contain-intrinsic-size:auto 640px}
/* Fallback métrico de Bilmond: Arial/Liberation ≈ mismo ancho (573=573 medido) → el H1 no cambia de tamaño al cargar Bilmond, así el LCP (texto) queda anclado al FCP y no lo arrastra la carga de la fuente */
@font-face{font-family:"Bilmond-fb";src:local("Arial"),local("Liberation Sans"),local("Helvetica Neue"),local("Helvetica");size-adjust:107%;font-weight:400 900;font-display:swap}
