/* Hazlo con Thor — ver design-system.md */
@font-face{font-family:"Anton";src:url(assets/fonts/Anton-Regular.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Poppins";font-weight:900;src:url(assets/fonts/Poppins-Black.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Allura";src:url(assets/fonts/Allura-firma.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Jakarta";font-weight:200 800;src:url(assets/fonts/PlusJakartaSans.woff2) format("woff2");font-display:swap}

:root{
  --negro:#0B0B0C; --carbon:#151517; --acero:#232327; --hueso:#F4F1EA; --gris:#A7A39B;
  --rayo:#FFC61A; --azul:#1F6FE5;
  --borde:rgba(244,241,234,.12);
  --pad:clamp(18px,4.5vw,64px);
  --radio:18px;
  --sale:cubic-bezier(.16,1,.3,1);      /* ease-out fuerte: entradas */
  --suave:cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
.sin-mov *,.sin-mov *::before,.sin-mov *::after{animation-play-state:paused!important}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--negro);color:var(--hueso);font:400 17px/1.6 "Jakarta",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p,figure,ul,ol,dl,dd,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
:focus-visible{outline:3px solid var(--azul);outline-offset:3px;border-radius:6px}
::selection{background:var(--rayo);color:var(--negro)}
.skip{position:absolute;left:-999px;top:8px;background:var(--rayo);color:var(--negro);padding:10px 14px;border-radius:8px;z-index:100;font-weight:700}
.skip:focus{left:8px}

/* ── barra de progreso: rayo fino arriba ── */
.progreso{position:fixed;inset:0 0 auto 0;height:3px;background:var(--rayo);transform-origin:0 50%;transform:scaleX(0);z-index:60}
@supports (animation-timeline:scroll()){
  .progreso{animation:crece linear both;animation-timeline:scroll(root)}
  @keyframes crece{to{transform:scaleX(1)}}
}

/* ── cabecera ── */
.cabecera{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--pad);transition:background .3s var(--suave),backdrop-filter .3s var(--suave)}
.cabecera.fija{background:rgba(11,11,12,.72);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--borde)}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none}
.marca-txt{font:900 13px/1 "Poppins",sans-serif;letter-spacing:.01em}
.nav{display:none;gap:28px;font-size:15px;font-weight:600}
.nav a{text-decoration:none;opacity:.8;transition:opacity .2s}
.nav a:hover{opacity:1}
@media (min-width:900px){.nav{display:flex}}

/* ── botones ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;font:700 16px/1 "Jakarta",sans-serif;text-decoration:none;border:0;cursor:pointer;transition:transform .16s var(--sale),background .2s,color .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.97)}
.btn-s{min-height:42px;padding:0 18px;font-size:14px}
.btn-ancho{width:100%}
.btn-rayo{background:var(--rayo);color:var(--negro);box-shadow:0 0 0 0 rgba(255,198,26,.5)}
.btn-linea{background:transparent;color:var(--hueso);box-shadow:inset 0 0 0 1.5px rgba(244,241,234,.45)}
.btn-negro{background:var(--negro);color:var(--hueso)}
@media (hover:hover){
  .btn-rayo:hover{box-shadow:0 0 0 6px rgba(255,198,26,.18),0 10px 40px -8px rgba(255,198,26,.55)}
  .btn-linea:hover{box-shadow:inset 0 0 0 1.5px var(--hueso)}
  .btn-negro:hover{background:#000}
}
.ico{width:20px;height:20px;flex:none}

/* ── tipografía ── */
.sobre{font:700 12px/1 "Jakarta",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--rayo);margin-bottom:18px}
.titulo{font:400 clamp(2.3rem,6.2vw,5rem)/.98 "Anton",Impact,sans-serif;text-transform:uppercase;letter-spacing:.005em;text-wrap:balance}
.titulo-xl{font-size:clamp(3rem,7vw,6rem)}
.entrada{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--gris);max-width:46ch;margin-top:20px;text-wrap:pretty}
.amarillo{color:var(--rayo)}
.enlace{font-weight:700;text-decoration:none;border-bottom:2px solid var(--rayo);padding-bottom:4px}

/* ── HERO ── */
.hero{padding:0;height:100svh;min-height:620px}
.hero-marco{position:relative;height:100%;overflow:clip;background:#000;cursor:crosshair;transform-origin:50% 100%}
.hero-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 18%}
.hero-velo{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,.55) 0%,rgba(11,11,12,0) 28%,rgba(11,11,12,.25) 52%,rgba(11,11,12,.96) 100%)}
.hero-rayo{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.hero-flash{position:absolute;inset:0;background:#dff1ff;opacity:0;pointer-events:none;mix-blend-mode:overlay}
.hero-texto{position:absolute;inset:auto 0 0 0;padding:0 var(--pad) clamp(64px,9vh,96px);max-width:1100px}
.titular{font:400 clamp(3.1rem,11.5vw,9rem)/.92 "Anton",Impact,sans-serif;text-transform:uppercase;letter-spacing:.004em}
.linea{display:block;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
.linea>span{display:block}
.hero-sub{max-width:38ch;margin-top:18px;font-size:clamp(1.02rem,1.6vw,1.3rem);color:rgba(244,241,234,.86)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-pista{position:absolute;right:var(--pad);bottom:22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,241,234,.55);display:none}
@media (min-width:900px){
  .hero-foto{object-position:40% 22%;width:62%;left:auto}
  .hero-velo{background:linear-gradient(90deg,#0B0B0C 0%,#0B0B0C 34%,rgba(11,11,12,.72) 50%,rgba(11,11,12,0) 74%),linear-gradient(180deg,rgba(11,11,12,.5) 0%,rgba(11,11,12,0) 22%,rgba(11,11,12,0) 70%,rgba(11,11,12,.85) 100%)}
  .hero-texto{inset:50% auto auto 0;transform:translateY(-44%);padding-bottom:0}
  .titular{font-size:clamp(4rem,7.6vw,7.6rem)}
  .hero-pista{display:block}
}

/* entrada del hero y despegue: solo si se admite movimiento */
@media (prefers-reduced-motion:no-preference){
  .js .linea>span{transform:translateY(110%);animation:sube .95s var(--sale) forwards}
  .js .linea:nth-child(2)>span{animation-delay:.09s}
  .js .linea:nth-child(3)>span{animation-delay:.18s}
  .js .hero-sub,.js .hero-cta{opacity:0;transform:translateY(14px);animation:aparece .7s var(--sale) .5s forwards}
  .js .hero-cta{animation-delay:.62s}
  @keyframes sube{to{transform:none}}
  @keyframes aparece{to{opacity:1;transform:none}}
  .hero-foto{animation:respira 14s ease-in-out infinite alternate}
  @keyframes respira{from{scale:1}to{scale:1.05}}
  .tiembla{animation:tiembla .38s linear}
  @keyframes tiembla{10%{translate:-3px 2px}30%{translate:4px -2px}50%{translate:-2px -3px}70%{translate:2px 2px}100%{translate:0}}
  @supports (animation-timeline:scroll()){
    .hero-marco{animation:despega linear both;animation-timeline:scroll(root);animation-range:0 90svh}
    @keyframes despega{to{scale:.93;border-radius:28px;translate:0 -1.5svh}}
    .hero-texto{animation:hunde linear both;animation-timeline:scroll(root);animation-range:0 70svh}
    @keyframes hunde{to{opacity:.15;translate:0 6svh}}
  }
}
@media (min-width:900px) and (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){ @keyframes hunde{to{opacity:.15;translate:0 4svh}} }
}

/* ── CINTA ── */
.cinta{background:var(--rayo);color:var(--negro);overflow:clip;rotate:-1.2deg;margin:-18px -2vw 0;position:relative;z-index:2;border-block:3px solid var(--negro)}
.cinta-pista{display:flex;align-items:center;gap:28px;width:max-content;padding:14px 0;font:400 clamp(1.1rem,2.4vw,1.7rem)/1 "Anton",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.cinta-pista i{width:10px;height:18px;background:var(--negro);clip-path:polygon(60% 0,0 58%,42% 58%,30% 100%,100% 40%,56% 40%);flex:none}
@media (prefers-reduced-motion:no-preference){
  .cinta-pista{animation:corre 38s linear infinite}
  @keyframes corre{to{transform:translateX(-50%)}}
}

/* ── secciones ── */
.seccion{padding:clamp(72px,11vw,150px) var(--pad)}
.cab-seccion{max-width:1100px;margin-bottom:clamp(36px,5vw,64px)}
.cab-fila{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;max-width:none}
.seccion-clara{background:var(--hueso);color:var(--negro)}
.seccion-clara .sobre{color:#8a6500}
.seccion-clara .entrada{color:#55524c}

/* ── especialidad: cocinas ── */
.espec{display:grid;gap:40px;align-items:center;background:var(--carbon);border-bottom:1px solid var(--borde)}
@media (min-width:960px){.espec{grid-template-columns:1fr 1.05fr;gap:72px}}
.espec-lista{margin-top:26px}
.espec-lista li{padding:13px 0 13px 34px;border-bottom:1px solid var(--borde);font-weight:600;position:relative}
.espec-lista li::before{content:"";position:absolute;left:4px;top:15px;width:13px;height:22px;background:var(--rayo);clip-path:polygon(60% 0,0 58%,42% 58%,30% 100%,100% 40%,56% 40%)}
.espec .hero-cta{margin-top:30px}
.espec-fotos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.espec-fotos figure{position:relative;border-radius:var(--radio);overflow:clip}
.espec-fotos img{width:100%;height:100%;aspect-ratio:1;object-fit:cover}
.espec-grande{grid-column:1/-1}
.espec-grande img{aspect-ratio:16/11;object-position:50% 70%}
.hero-sub strong{color:var(--rayo);font-weight:700}
.insignia{align-self:flex-start;margin-bottom:10px;padding:7px 12px;border-radius:999px;background:var(--rayo);color:var(--negro);font:800 11px/1 "Jakarta",sans-serif;letter-spacing:.14em;text-transform:uppercase}

/* ── rejilla de servicios ── */
.rejilla{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
.obra{position:relative;border-radius:var(--radio);overflow:clip;background:var(--carbon);aspect-ratio:3/4.4;isolation:isolate}
.obra video,.obra img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale .8s var(--sale)}
.obra::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,0) 38%,rgba(11,11,12,.92) 100%);z-index:1}
.obra-pie{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;z-index:2}
@media (max-width:999px){.obra-a{grid-column:1/-1;aspect-ratio:4/3.4}.obra-a .obra-pie p{display:block}}
.obra-pie .num{font:400 13px/1 "Anton",sans-serif;color:var(--rayo);letter-spacing:.1em}
.obra-pie h3{font:400 clamp(1.25rem,2.4vw,2rem)/1.02 "Anton",sans-serif;text-transform:uppercase;margin-top:8px;letter-spacing:.01em}
.obra-pie p{font-size:14px;line-height:1.45;color:rgba(244,241,234,.8);margin-top:8px;display:none}
@media (hover:hover){.obra:hover video,.obra:hover img{scale:1.045}}
@media (min-width:1000px){
  .rejilla{grid-template-columns:repeat(4,1fr);gap:16px}
  .obra-pie{padding:22px}
  .obra-pie p{display:block}
  .obra-a{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
}
.tambien{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.tambien li{padding:10px 16px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--borde);font-size:14px;font-weight:600;color:var(--gris)}

/* ── antes / después ── */
.ad{display:grid;gap:36px;align-items:center}
@media (min-width:900px){.ad{grid-template-columns:1fr 1.05fr;gap:72px}}
.ad-texto .btn{margin-top:28px}
.deslizador{--pos:50%;position:relative;aspect-ratio:1000/1432;max-height:82svh;margin-inline:auto;width:100%;max-width:560px;border-radius:var(--radio);overflow:clip;touch-action:pan-y;user-select:none;-webkit-user-select:none;box-shadow:0 30px 80px -30px rgba(0,0,0,.5)}
.deslizador img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.d-antes{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.d-barra{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:var(--rayo);box-shadow:0 0 18px rgba(255,198,26,.9)}
.d-pomo{position:absolute;top:50%;left:50%;width:52px;height:52px;margin:-26px;border-radius:50%;background:var(--rayo);display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.35)}
.d-etq{position:absolute;top:14px;padding:7px 12px;border-radius:999px;background:rgba(11,11,12,.72);color:var(--hueso);font:700 11px/1 "Jakarta",sans-serif;letter-spacing:.14em;text-transform:uppercase;backdrop-filter:blur(8px)}
.d-etq-a{left:14px}.d-etq-d{right:14px}
.d-rango{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.d-rango:focus-visible~.d-barra .d-pomo,.deslizador:has(.d-rango:focus-visible) .d-pomo{outline:3px solid var(--azul);outline-offset:3px}
.par{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:clamp(40px,6vw,80px)}
.par figure{position:relative}
.par img{border-radius:var(--radio);aspect-ratio:3/4;object-fit:cover;width:100%}
.par figcaption{margin-top:12px;font-size:14px;font-weight:600;color:#55524c}
@media (min-width:900px){.par{gap:24px;max-width:900px;margin-inline:auto}}

/* ── carril de trabajos ── */
.carril{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--pad)*-1);padding:4px var(--pad) 18px;scrollbar-width:none;overscroll-behavior-x:contain}
.carril::-webkit-scrollbar{display:none}
.carril figure{flex:none;width:min(72vw,360px);scroll-snap-align:center}
.carril img{aspect-ratio:3/4;object-fit:cover;width:100%;border-radius:var(--radio);background:var(--carbon)}
.carril figcaption{margin-top:12px;font-size:14px;font-weight:600;color:var(--gris)}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .carril figure{animation:asoma linear both;animation-timeline:view(inline);animation-range:entry 0% entry 90%}
    @keyframes asoma{from{scale:.86;opacity:.35}to{scale:1;opacity:1}}
  }
}

/* ── pasos ── */
.seccion-pasos{background:var(--carbon);border-block:1px solid var(--borde)}
.pasos{display:grid;gap:14px;counter-reset:p}
.pasos li{padding:28px;border-radius:var(--radio);background:var(--negro);box-shadow:inset 0 0 0 1px var(--borde)}
.paso-n{font:400 4.2rem/1 "Anton",sans-serif;color:var(--rayo);display:block}
.pasos h3{font:400 1.7rem/1.05 "Anton",sans-serif;text-transform:uppercase;margin-top:14px}
.pasos p{color:var(--gris);margin-top:10px;font-size:16px}
@media (min-width:800px){.pasos{grid-template-columns:repeat(3,1fr);gap:18px}}

/* ── quién ── */
.quien{display:grid;gap:40px;align-items:center}
@media (min-width:900px){.quien{grid-template-columns:.85fr 1fr;gap:80px}}
.quien-foto{border-radius:var(--radio);overflow:clip;aspect-ratio:3/4;max-width:520px}
.quien-foto img{width:100%;height:112%;object-fit:cover}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .quien-foto img{animation:desliza linear both;animation-timeline:view();animation-range:cover}
    @keyframes desliza{from{translate:0 -10%}to{translate:0 0}}
  }
}
.quien-texto p:not(.sobre){color:var(--gris);margin-top:20px;max-width:54ch}
.quien-texto blockquote{font:400 clamp(1.6rem,3vw,2.4rem)/1.08 "Anton",sans-serif;text-transform:uppercase;color:var(--hueso);margin-top:32px;padding-left:18px;border-left:4px solid var(--rayo);text-wrap:balance}
.cifras{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px;padding-top:28px;border-top:1px solid var(--borde)}
.cifras dt{font:400 clamp(2.6rem,6vw,4.4rem)/1 "Anton",sans-serif;color:var(--rayo);font-variant-numeric:tabular-nums}
.cifras dd{font-size:13px;color:var(--gris);margin-top:6px;line-height:1.35}
.prensa{margin-top:28px;display:grid;gap:10px;font-size:15px}
.prensa span{display:inline-block;min-width:88px;font:700 11px/1 "Jakarta",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--rayo)}
.prensa a{text-decoration-color:var(--rayo);text-underline-offset:4px;display:inline-block;padding:10px 0}

/* ── contacto ── */
.seccion-contacto{background:var(--rayo);color:var(--negro)}
.seccion-contacto .sobre{color:var(--negro);opacity:.7}
.seccion-contacto .entrada{color:#3a3320}
.contacto{display:grid;gap:44px}
@media (min-width:960px){.contacto{grid-template-columns:1fr .9fr;gap:80px;align-items:start}}
.vias{margin-top:32px;border-top:2px solid var(--negro)}
.vias li{border-bottom:2px solid var(--negro)}
.vias a,.via-fija{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;font:400 clamp(1.15rem,2.2vw,1.6rem)/1.1 "Anton",sans-serif;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:padding .25s var(--sale)}
.vias a span,.via-fija span{font:700 11px/1 "Jakarta",sans-serif;letter-spacing:.14em;opacity:.65}
.via-fija{cursor:default}
@media (hover:hover){.vias a:hover{padding-inline:10px}}
.form{background:var(--negro);color:var(--hueso);border-radius:24px;padding:clamp(22px,3.4vw,38px);display:grid;gap:18px;box-shadow:0 40px 90px -40px rgba(0,0,0,.6)}
.campo{display:grid;gap:8px}
.campo label{font:700 12px/1 "Jakarta",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.campo input,.campo select,.campo textarea{width:100%;font:500 16px/1.4 "Jakarta",sans-serif;color:var(--hueso);background:var(--acero);border:1.5px solid transparent;border-radius:12px;padding:14px 16px;transition:border-color .2s,background .2s;appearance:none;-webkit-appearance:none}
.campo select{background-image:linear-gradient(45deg,transparent 50%,var(--gris) 50%),linear-gradient(135deg,var(--gris) 50%,transparent 50%);background-position:calc(100% - 22px) 55%,calc(100% - 16px) 55%;background-size:6px 6px;background-repeat:no-repeat}
.campo textarea{resize:vertical;min-height:110px}
.campo ::placeholder{color:#9a968e}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--rayo);background:#2a2a2f}
.campo .mal{border-color:#ff6b5e}
.form-error{color:#ff8a7f;font-size:14px;font-weight:600}
.form-nojs{display:block;font-weight:600}
.form-nojs a,.form-seguir a{color:var(--rayo)}
.form-seguir{font-size:14px;font-weight:600}
.pausa{background:none;border:0;padding:12px 0;font:600 14px 'Jakarta',sans-serif;color:var(--hueso);opacity:.8;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.form-nota{font-size:13px;color:var(--gris);line-height:1.5}
.form-nota a{color:var(--hueso);display:inline-block;padding:8px 0}

/* ── pie ── */
.pie{padding:clamp(56px,8vw,110px) var(--pad) calc(150px + env(safe-area-inset-bottom));overflow:clip}
.pie-lema{font:400 clamp(2.2rem,10.3vw,14rem)/.86 "Anton",sans-serif;text-transform:uppercase;color:transparent;-webkit-text-stroke:1.5px rgba(244,241,234,.28);white-space:nowrap;margin-bottom:clamp(36px,6vw,72px)}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .pie-lema{animation:rellena linear both;animation-timeline:view();animation-range:entry 10% entry 100%}
    @keyframes rellena{from{translate:-6% 0}to{translate:0 0;color:var(--rayo);-webkit-text-stroke-color:var(--rayo)}}
  }
}
.pie-fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px;padding-top:26px;border-top:1px solid var(--borde)}
.pie nav{display:flex;flex-wrap:wrap;gap:22px;font-size:14px;font-weight:600}
.pie nav a{text-decoration:none;opacity:.8;padding:12px 0;display:inline-block}
.pie nav a:hover{opacity:1}
.pie-copy{font-size:13px;color:var(--gris);width:100%}
@media (min-width:900px){.pie{padding-bottom:56px}}

/* ── páginas de servicio ── */
.serv-cab{padding:clamp(120px,16vw,190px) var(--pad) clamp(48px,7vw,90px);border-bottom:1px solid var(--borde);background:radial-gradient(120% 90% at 85% 0%,rgba(255,198,26,.13),transparent 60%)}
.serv-cab .titulo-xl{max-width:16ch}
.migas{display:flex;flex-wrap:wrap;gap:10px;font-size:14px;font-weight:600;color:var(--gris);margin-bottom:26px}
.migas a{text-decoration:none;padding:6px 0}
.migas a:hover{color:var(--hueso)}
.migas [aria-current]{color:var(--rayo)}
.serv-cuerpo{display:grid;gap:44px}
@media (min-width:960px){.serv-cuerpo{grid-template-columns:.8fr 1.2fr;gap:72px;align-items:start}.serv-lista{position:sticky;top:110px}}
.serv-lista li{padding:16px 0 16px 34px;border-bottom:1px solid var(--borde);font-size:1.12rem;font-weight:600;position:relative}
.serv-lista li::before{content:"";position:absolute;left:4px;top:19px;width:13px;height:22px;background:var(--rayo);clip-path:polygon(60% 0,0 58%,42% 58%,30% 100%,100% 40%,56% 40%)}
.serv-lista blockquote{font:400 clamp(1.5rem,2.6vw,2.1rem)/1.1 "Anton",sans-serif;text-transform:uppercase;margin-top:34px;padding-left:18px;border-left:4px solid var(--rayo);text-wrap:balance}
.serv-lista h2.sobre{margin-top:0}
.serv-caso{margin-top:28px;padding:20px 22px;border-radius:var(--radio);background:var(--carbon);box-shadow:inset 0 0 0 1px var(--borde);color:var(--gris);font-size:1rem}
.serv-caso span{display:block;font:700 11px/1 "Jakarta",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--rayo);margin-bottom:8px}
.serv-fotos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.serv-fotos figure:first-child{grid-column:1/-1}
.serv-fotos img,.serv-fotos video{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radio);background:var(--carbon)}
.serv-fotos figure:first-child img,.serv-fotos figure:first-child video{aspect-ratio:16/11}
.serv-fotos figcaption{margin-top:10px;font-size:14px;font-weight:600;color:var(--gris)}
.tambien-enlaces li{padding:0;box-shadow:none}
.tambien-enlaces a{display:block;padding:14px 20px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--borde);text-decoration:none;color:var(--hueso);transition:box-shadow .2s,color .2s}
@media (hover:hover){.tambien-enlaces a:hover{box-shadow:inset 0 0 0 1.5px var(--rayo);color:var(--rayo)}}
.serv-cierre .btn{margin-top:28px}
.obra-pie h3 a{text-decoration:none}
.obra-pie h3 a::after{content:"";position:absolute;inset:0}
.obra:focus-within{outline:3px solid var(--azul);outline-offset:3px}

/* ── firma de quien hizo la web ── */
.firma{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:44px;padding:26px 0 6px;border-top:1px solid var(--borde);text-decoration:none;color:var(--hueso)}
.firma-chispa{width:30px;height:37px;flex:none;transform-origin:50% 85%;transition:rotate .5s var(--sale),scale .5s var(--sale),filter .5s}
.firma-txt{display:grid;justify-items:start}
.firma-sobre,.firma-bajo{font:700 10.5px/1 "Jakarta",sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--gris)}
.firma-nombre{font:400 clamp(1.9rem,5vw,2.4rem)/1.05 "Allura",cursive;color:var(--hueso);margin:2px 0 4px;transition:color .4s var(--suave)}
.firma{position:relative}
.firma-rayo{position:absolute;pointer-events:none;overflow:visible;filter:drop-shadow(0 0 7px #7fc4ff) drop-shadow(0 0 22px rgba(127,196,255,.7))}
.firma-brasa{position:absolute;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#ffd76a;box-shadow:0 0 8px 2px rgba(255,150,30,.9);pointer-events:none}
@media (hover:hover){
  .firma:hover .firma-nombre{color:var(--rayo)}
  .firma:hover .firma-chispa{rotate:-16deg;scale:1.12}
}
/* recién forjada: blanco incandescente, naranja, y se enfría hasta su color */
.al-rojo .firma-nombre{animation:enfria 2.6s var(--suave) both}
.al-rojo .firma-chispa{animation:golpe-chispa .7s var(--sale) both}
@keyframes enfria{
  0%{color:#fff;text-shadow:0 0 6px #fff,0 0 22px #ffcf5a,0 0 54px #ff7a1a;opacity:.25}
  6%{opacity:1}
  22%{color:#ffe9a8;text-shadow:0 0 4px #ffd76a,0 0 20px #ff9a2a,0 0 44px rgba(255,90,20,.7)}
  55%{color:#ffc61a;text-shadow:0 0 14px rgba(255,140,30,.55)}
  100%{color:var(--hueso);text-shadow:0 0 0 rgba(255,140,30,0)}
}
@keyframes golpe-chispa{0%{scale:1.5;rotate:-38deg;filter:brightness(2.6) drop-shadow(0 0 10px #7fc4ff)}35%{rotate:10deg}100%{scale:1;rotate:0deg;filter:none}}

/* ── botones flotantes: solo el símbolo; el nombre se despliega al pasar el ratón o con el teclado ── */
.flotantes{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:55;display:flex;flex-direction:column;align-items:flex-end;gap:10px;opacity:0;visibility:hidden;translate:0 20px;transition:opacity .3s var(--sale),translate .3s var(--sale),visibility .3s}
.flotantes.visible{opacity:1;visibility:visible;translate:0 0}
.flotantes.oculta{opacity:0;visibility:hidden;translate:0 20px}
.flota{display:flex;align-items:center;height:56px;min-width:56px;border-radius:999px;color:#fff;font-weight:800;text-decoration:none;box-shadow:0 12px 30px -10px rgba(0,0,0,.65);transition:scale .16s var(--sale)}
.flota svg{width:28px;height:28px;margin:0 14px;flex:none}
.flota span{max-width:0;overflow:clip;white-space:nowrap;transition:max-width .3s var(--sale),padding .3s var(--sale)}
.flota:active{scale:.94}
.flota-wa{background:#25D366;color:#06210f}
.flota-ig{height:48px;min-width:48px;margin-right:4px}
.flota-ig svg{width:24px;height:24px;margin:0 12px}
.flota-ig,.ig-icono{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%);color:#fff}
@media (hover:hover){.flota:hover span{max-width:120px;padding-right:18px}}
.flota:focus-visible span{max-width:120px;padding-right:18px}
.ig-icono{display:inline-grid;place-items:center;width:1.5em;height:1.5em;border-radius:.42em;margin-right:.45em;vertical-align:-.32em;flex:none}
.ig-icono svg{width:.95em;height:.95em}
.via-ig b{font-weight:400;display:inline-flex;align-items:center}
.pie-ig{display:inline-flex!important;align-items:center}
.enlace-ig{display:inline-flex;align-items:center;flex-wrap:wrap}

/* ── legal ── */
.legal{max-width:760px;margin:0 auto;padding:120px var(--pad) 80px}
.legal h1{font:400 clamp(2.4rem,6vw,4rem)/1 "Anton",sans-serif;text-transform:uppercase}
.legal h2{font:400 1.5rem/1.1 "Anton",sans-serif;text-transform:uppercase;margin-top:40px;color:var(--rayo)}
.legal p,.legal li{color:var(--gris);margin-top:14px}
.legal ul{list-style:disc;padding-left:20px}
.legal-discreto{max-width:620px;padding-top:110px}
.legal-discreto h1{font-size:clamp(1.5rem,3.4vw,2rem)}
.legal-discreto h2{font-size:1rem;margin-top:26px;color:var(--gris);letter-spacing:.04em}
.legal-discreto p,.legal-discreto li{font-size:13.5px;line-height:1.6;margin-top:8px}
.legal-datos{font-size:12.5px!important}
.legal-ver{font:600 12.5px "Jakarta",sans-serif;color:var(--hueso);background:none;border:0;padding:10px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.pie-copy a{color:inherit;text-underline-offset:3px;display:inline-block;padding:10px 0}
.legal mark{background:var(--rayo);color:var(--negro);padding:0 4px;border-radius:3px}
