/* Ilusionistas v2 · estilos del sitio. Base: maquetas de Alex (móvil primero) + capa de producción y escritorio al final. */
/* transición entre páginas: crossfade nativo (Chrome, Edge, Safari 18.2+); en otros navegadores cambia directo */html{background:#000}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.4s;animation-timing-function:ease-in-out}.top{view-transition-name:topbar}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* Layout: móvil primero. Una columna, cada bloque con un solo trabajo; tarjetas deslizables con selector visible; WhatsApp siempre a un toque. En escritorio se muestra a ancho de teléfono para probar. */
:root{
  --bg:#000000;
  --card:#161617;
  --fg:#f5f5f4;
  --mute:#a3a3a0;
  --line:#2c2c2e;
  --lumen:#ffd885;
  --on-lumen:#111111;
  --display:"Questrial","Century Gothic","Avenir Next",system-ui,sans-serif;
  --body:"DM Sans","Helvetica Neue",Arial,system-ui,sans-serif;
  --phone:440px;
  --pad:max(24px,env(safe-area-inset-left,0px));
  --pad-r:max(24px,env(safe-area-inset-right,0px));
  /* escala: título de sección 2.15rem · título de tarjeta 1.4rem · apoyo 1.05rem · cuerpo 1rem · pequeño .875rem; secciones separadas 72px */
  --gap-section:72px;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{background:#0c0c0c;color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
a{color:inherit}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--lumen);outline-offset:3px}


/* encabezado */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:transparent;border-bottom:1px solid transparent;transition:background .35s,border-color .35s}
.top.solid{background:rgba(0,0,0,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:rgba(255,255,255,.06)}
.top .in{display:flex;justify-content:space-between;align-items:center;padding:12px var(--pad-r) 12px var(--pad)}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;background:none;border:0;cursor:pointer;border-radius:10px;text-decoration:none}
.icon-btn svg{display:block}
.burger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
.burger span{display:block;width:18px;height:1px;background:var(--fg);transition:transform .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

/* menú */
.menu{position:fixed;top:calc(64px + env(safe-area-inset-top,0px));bottom:0;left:50%;transform:translateX(-50%);width:min(100%,var(--phone));overflow-y:auto;z-index:35;background:var(--bg);padding:28px var(--pad-r) 40px var(--pad);display:grid;align-content:start;gap:4px}
.menu a{font-family:var(--display);font-size:1.9rem;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--line)}
.menu a:hover{color:var(--lumen)}
.menu small{display:block;margin-top:24px;color:var(--mute);font-size:.85rem}

/* hero: solo reel y logotipo */
.hero{position:relative;margin-top:-65px;height:100svh;min-height:560px;max-height:980px;background:#000 var(--hero,none) var(--hero-pos,50% 50%)/cover no-repeat;display:grid;place-items:center}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.18) 28%,rgba(0,0,0,.28) 70%,#000 100%)}
.hero .word{position:relative;z-index:1;font-family:var(--display);font-size:2.5rem;letter-spacing:-.01em;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35)}
/* varita: la i del logotipo. El punto se enciende y la línea baja como un pulso hasta el texto */
.wand{position:absolute;z-index:2;left:50%;bottom:-52px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}
.wand .tip{display:block;width:5px;height:5px;background:var(--oficio);opacity:.55;animation:tip 3.2s ease-in-out infinite}
.wand .beam{display:block;width:1px;height:110px;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.75) 70%,rgba(255,255,255,.15));clip-path:inset(0 0 100% 0);animation:beam 3.2s cubic-bezier(.65,0,.25,1) infinite}
@keyframes beam{0%{clip-path:inset(0 0 100% 0)}45%{clip-path:inset(0 0 0 0)}78%,100%{clip-path:inset(100% 0 0 0)}}
@keyframes tip{0%{opacity:.55;filter:none}10%{opacity:1;filter:drop-shadow(0 0 6px rgba(255,216,133,.95))}45%{opacity:.85;filter:drop-shadow(0 0 2px rgba(255,216,133,.5))}100%{opacity:.55;filter:none}}
@media (prefers-reduced-motion:reduce){.wand .tip,.wand .beam{animation:none!important}.wand .beam{clip-path:none}.wand .tip{opacity:1}}

/* intención */
.intent{padding:64px var(--pad-r) 0 var(--pad);display:grid;gap:14px;justify-items:center;text-align:center}
.intent .eyebrow{font-size:.875rem;color:var(--fg);opacity:.85}
.intent h1{font-family:var(--body);font-weight:700;font-size:2.15rem;line-height:1.08;letter-spacing:-.02em;max-width:12ch}
.intent p.lead{font-size:1.05rem;line-height:1.5;max-width:32ch;margin-top:2px}
:root{--oficio:linear-gradient(95deg,#ffe2a0 0%,#f2b46c 52%,#c97a4b 100%)}
:root[data-of="lumen"]{--oficio:linear-gradient(#ffd885,#ffd885)}
:root[data-of="cobre"]{--oficio:linear-gradient(95deg,#f7cfb2 0%,#dc8e5f 50%,#a65d36 100%)}
:root{--edge-seg:linear-gradient(180deg,rgba(255,255,255,.17) 0%,rgba(255,255,255,0) 96%);--edge-card:linear-gradient(180deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.12) 100%)}
:root[data-edge="oficio"]{--edge-seg:linear-gradient(180deg,rgba(0,0,0,.4),#000 96%),var(--oficio);--edge-card:linear-gradient(180deg,#000 38%,rgba(0,0,0,.5) 100%),var(--oficio)}
:root[data-edge="none"]{--edge-seg:linear-gradient(transparent,transparent);--edge-card:linear-gradient(transparent,transparent)}
.oficio{background:var(--oficio);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}

/* selector */
.areas{padding-top:48px;container-type:inline-size;--cw:calc(100cqw - var(--pad) - var(--pad-r))}
.seg{margin:0 0 0 var(--pad);width:var(--cw);will-change:transform;display:grid;grid-template-columns:repeat(3,1fr);background:#1f1f21;border-radius:16px 16px 0 0;padding:0;position:relative}
.seg button{position:relative;z-index:1;background:none;border:0;padding:12px 4px 11px;font-size:.92rem;font-weight:500;color:var(--mute);cursor:pointer;border-radius:0;transition:color .25s}
.seg button[aria-selected="true"]{color:var(--on-lumen)}
:root[data-tab="cobre"] .seg .pill{background:linear-gradient(var(--card),var(--card)) padding-box,var(--oficio) border-box;border:1px solid transparent;border-bottom:0}
:root[data-tab="linea"] .seg .pill{background:var(--card);border:1px solid rgba(255,255,255,.4);border-bottom:0}
:root[data-tab="cobre"] .seg button[aria-selected="true"],:root[data-tab="linea"] .seg button[aria-selected="true"]{color:var(--fg)}
.seg .pill{position:absolute;z-index:0;top:0;bottom:0;left:0;width:calc(100% / 3);background:var(--lumen);border-radius:16px 16px 0 0;transition:transform .35s cubic-bezier(.2,.8,.2,1)}

/* carrusel */
/* bordes dibujados encima (no ocupan espacio), así selector y tarjeta comparten el mismo filo exacto */
.seg::before,.card::before{content:"";position:absolute;inset:0;padding:1px;border-radius:inherit;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:3}
.seg::before{background:var(--edge-seg)}
.card::before{background:var(--edge-card)}
.track::after{content:"";flex:0 0 var(--spacer,calc(var(--pad-r) - var(--gap,10px) + 2px))}
.track{display:flex;gap:var(--gap,10px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--pad);padding:0 0 8px var(--pad);scrollbar-width:none;align-items:stretch}
.track::-webkit-scrollbar{display:none}
.card{flex:0 0 var(--cw);scroll-snap-align:start;background:var(--card);position:relative;border-radius:0 0 20px 20px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.media{position:relative;aspect-ratio:16/9;max-width:100%;background:#000 center/cover no-repeat}
.media button.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;border:0;background:rgba(255,255,255,.94);display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 24px rgba(0,0,0,.35);transition:transform .2s}
.media button.play:active{transform:translate(-50%,-50%) scale(.94)}
.media .playing{position:absolute;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;text-align:center;padding:18px;font-size:.88rem;color:var(--fg)}
.media .playing b{display:block;font-weight:500;color:var(--lumen);margin-bottom:4px}
.body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.for{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.card h2{font-family:var(--body);font-weight:700;font-size:1.4rem;line-height:1.2;letter-spacing:-.01em}
.card p.d{color:var(--mute);font-size:1rem;line-height:1.5}
.card ul{list-style:none;margin:8px 0 0;padding:0;display:grid}
.card li{padding:11px 0;border-top:1px solid var(--line);font-size:1rem;display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.card li small{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lumen);white-space:nowrap}
.card ul{margin-bottom:22px}
.card .go{margin-top:auto;align-self:flex-start;font-weight:500;font-size:.95rem;text-decoration:none;display:inline-flex;align-items:center;padding:11px 22px;background:#f5f5f4;color:#111;border-radius:999px;transition:background .25s,box-shadow .25s}
.card .go:hover,.card .go:active{background:var(--lumen);color:#111;box-shadow:0 0 14px rgba(255,216,133,.3)}
:root[data-cta="linea"] .card .go{background:transparent;color:var(--fg);border:1px solid rgba(255,255,255,.35);padding:10px 21px}
:root[data-cta="cobre"] .card .go{background:linear-gradient(#232325,#232325) padding-box,var(--oficio) border-box;border:1px solid transparent;color:var(--fg);padding:10px 21px}
:root[data-cta="linea"] .card .go:hover,:root[data-cta="linea"] .card .go:active,:root[data-cta="cobre"] .card .go:hover,:root[data-cta="cobre"] .card .go:active{color:var(--lumen);border-color:rgba(255,216,133,.9);box-shadow:0 0 14px rgba(255,216,133,.28),inset 0 0 8px rgba(255,216,133,.12)}
:root[data-cta="link"] .card .go{background:none;color:var(--fg);padding:4px 0;border-radius:0;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;box-shadow:none}
:root[data-cta="link"] .card .go::after{content:"\00a0→"}
:root[data-cta="link"] .card .go:hover,:root[data-cta="link"] .card .go:active{color:var(--lumen);background:none;box-shadow:none}
.swipe{margin:14px var(--pad-r) 0 var(--pad);font-size:.875rem;color:#76766f;text-align:center}

/* clientes: franja continua con bordes que se funden */
.clients{padding:var(--gap-section) 0 0;text-align:center}
.clients h2{font-family:var(--body);font-weight:700;font-size:2.15rem;line-height:1.08;letter-spacing:-.02em;margin-bottom:32px}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent)}
.rail{display:flex;align-items:center;width:max-content;animation:rail 34s linear infinite}
.rail img{flex:none;height:auto;max-width:none;margin-right:32px;opacity:.62}
@keyframes rail{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.rail{animation:none;width:auto;flex-wrap:wrap;justify-content:center;gap:24px 0;padding-inline:var(--pad)}.rail .dup{display:none}}

/* contacto */
.contact{container-type:inline-size;background:#1a1a1a;margin-top:var(--gap-section);padding:var(--gap-section) var(--pad-r) 64px var(--pad)}
.contact h2{font-family:var(--body);font-weight:700;font-size:2.15rem;line-height:1.08;letter-spacing:-.02em;text-align:center;max-width:12ch;margin-inline:auto}
.contact .sub{text-align:center;margin:14px auto 0;font-size:1.05rem;line-height:1.5;max-width:32ch}
.contact form{display:grid;grid-template-columns:1fr;gap:28px 40px;margin-top:48px}
@container (min-width:640px){.contact form{grid-template-columns:1fr 1fr}.contact .full,.contact .send,.contact .legal,.contact #ok{grid-column:1/-1}}
.f label{display:block;font-size:.875rem;color:var(--mute);margin-bottom:6px}
.f input,.f select,.f textarea{font:inherit;font-size:1rem;color:var(--fg);background:transparent;border:0;border-bottom:1px solid #444;border-radius:0;padding:8px 0 12px;width:100%;-webkit-appearance:none;appearance:none;transition:border-color .25s}
.f select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23f5f5f4' stroke-width='1.5'/%3E%3C/svg%3E") right 2px center/12px 8px no-repeat;padding-right:24px;color:var(--fg)}
.f select:invalid{color:#7d7d7a}
.f select option{background:#1a1a1a;color:var(--fg)}
.f textarea{min-height:110px;resize:vertical}
.f ::placeholder{color:#7d7d7a}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-bottom-color:var(--lumen)}
.send{display:flex;flex-direction:column;gap:18px;align-items:stretch;margin-top:4px}
.send p{color:var(--mute);font-size:.875rem;line-height:1.5;text-align:center}
.send button{align-self:center;font:500 1rem var(--body);letter-spacing:.01em;background:transparent;color:var(--fg);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:13px 34px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,box-shadow .25s}
.send button:hover,.send button:active{border-color:rgba(255,216,133,.9);color:var(--lumen);box-shadow:0 0 14px rgba(255,216,133,.3),inset 0 0 8px rgba(255,216,133,.12)}
:root[data-btn="pill"] .send button{background:#f5f5f4;color:#111;border-color:transparent}
:root[data-btn="pill"] .send button:hover,:root[data-btn="pill"] .send button:active{background:var(--lumen);color:#111}
:root[data-btn="cobre"] .send button{background:linear-gradient(#232325,#232325) padding-box,var(--oficio) border-box;border-color:transparent}
:root[data-btn="link"] .send button{border:0;border-radius:0;padding:4px 0;background:none;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;box-shadow:none}
:root[data-btn="link"] .send button::after{content:" →"}
@container (min-width:640px){.send{flex-direction:row;align-items:center;justify-content:space-between}}
.legal{font-size:.875rem;color:var(--mute);text-align:center}
.legal span{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.contact #ok{color:var(--lumen);font-size:.95rem}

/* pie de página */
.foot{container-type:inline-size;background:#111}
.foot .in{padding:var(--gap-section) var(--pad-r) 48px var(--pad);display:grid;gap:40px}
.foot .logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.foot .logo svg{width:32px;height:auto}
.foot .logo span{font-family:var(--display);font-size:1.45rem;line-height:1;letter-spacing:-.01em}
.social{display:flex;gap:10px;margin-top:22px}
.social a{width:32px;height:32px;border-radius:50%;background:#ececea;color:#111;display:grid;place-items:center;text-decoration:none;font-size:.95rem;transition:background .25s,box-shadow .25s}
.social a:hover,.social a:active{background:var(--lumen);box-shadow:0 0 14px rgba(255,216,133,.3)}
.reach{list-style:none;margin:0;padding:0;display:grid;gap:22px;font-size:1rem;line-height:1.5}
.reach li{display:grid;grid-template-columns:22px 1fr;gap:14px;align-items:start}
.reach svg{margin-top:3px;color:#bdbdba}
.reach a{text-decoration:none}
.reach a:hover{color:var(--lumen)}
.copy{font-size:.875rem;color:var(--mute)}
.foot .photo{aspect-ratio:3/2;max-width:100%;background:#222 url("../assets/img/v2/footer-bw-m.webp") 50% 60%/cover no-repeat}
@container (min-width:640px){.foot .in{grid-template-columns:1fr 1fr;row-gap:56px;padding-block:96px 60px}.foot .copy{grid-column:1/-1}.foot .photo{aspect-ratio:21/9}}


/* menú: etiquetas y niveles */
.menu .mlabel{margin:22px 0 2px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);border:0;padding:0}
.menu .mlabel:first-child{margin-top:0}
.menu a.msub{font-family:var(--body);font-size:1.05rem;padding:11px 0 11px 2px;color:#d6d6d3}
.menu a[aria-current="page"]{color:var(--lumen)}
.menu a.mhead{display:flex;align-items:baseline;justify-content:space-between}
.menu a.mhead::after{content:"Ver todo";font-family:var(--body);font-size:.8rem;color:var(--mute)}
/* servicios como enlaces dentro de las tarjetas */
.card li a{display:flex;align-items:baseline;gap:10px;width:100%;text-decoration:none;color:inherit}
.card li a .n{flex:1}
.card li a::after{content:"";width:7px;height:7px;border-top:1.5px solid #8a8a87;border-right:1.5px solid #8a8a87;transform:rotate(45deg);align-self:center;flex:none;margin-right:3px;transition:border-color .2s}
.card li a:hover,.card li a:active{color:var(--lumen)}
.card li a:hover::after,.card li a:active::after{border-color:var(--lumen)}

/* lo que sigue */
.next{margin:0;padding:22px var(--pad-r) 22px var(--pad);text-align:center;color:#6f6f6c;font-size:.8rem;border-top:1px solid var(--line)}

/* WhatsApp siempre presente */
.wa{position:fixed;z-index:45;right:max(18px,calc(env(safe-area-inset-right,0px) + 14px));bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 14px));width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.32);color:rgba(255,255,255,.78);display:grid;place-items:center;text-decoration:none;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .45s,transform .45s,border-color .3s,color .3s,box-shadow .3s}
.wa.show{opacity:1;transform:none;pointer-events:auto}
.wa:hover,.wa:active,.wa:focus-visible{border-color:rgba(255,216,133,.9);color:var(--lumen);box-shadow:0 0 14px rgba(255,216,133,.35),inset 0 0 8px rgba(255,216,133,.14)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* categorías */

/* landing de solución: hero 16:9, encabezado siempre sólido, lista de servicios, proceso y preguntas */
.hero.emp::after{background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.05) 30%,rgba(0,0,0,.2) 68%,#000 100%)}
.hero .htxt{position:relative;z-index:1;display:grid;gap:14px;justify-items:center;text-align:center;padding:0 var(--pad-r) 0 var(--pad)}
.hero .htxt .eyebrow{font-size:.75rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.hero .htxt h1{font-family:var(--body);font-weight:700;font-size:2.15rem;line-height:1.05;letter-spacing:-.02em;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero .htxt p{font-size:1.02rem;line-height:1.5;color:rgba(255,255,255,.85);max-width:30ch}
.stitle{font-family:var(--body);font-weight:700;font-size:2.15rem;line-height:1.08;letter-spacing:-.02em;text-align:center;max-width:14ch;margin:0 auto}
.ssub{text-align:center;margin:14px auto 0;font-size:1.05rem;line-height:1.5;max-width:32ch;color:var(--mute)}
.svc{padding:var(--gap-section) var(--pad-r) 0 var(--pad)}
.svc-grid{display:grid;gap:14px;margin-top:32px}
.scard{position:relative;display:block;aspect-ratio:3/2;max-width:100%;border-radius:20px;overflow:hidden;text-decoration:none;color:#fff;background:#111;scroll-margin-top:90px;isolation:isolate}
.scard::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--img) var(--pos,center)/cover no-repeat;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.scard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.82) 100%);border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.scard:hover::before,.scard:active::before{transform:scale(1.04)}
.scard .tx{position:absolute;left:20px;right:62px;bottom:18px;display:grid;gap:4px}
.scard b{font-weight:700;font-size:1.3rem;line-height:1.15;letter-spacing:-.01em}
.scard .tx span{font-size:.9rem;color:rgba(255,255,255,.8);line-height:1.4}
.scard .ic{position:absolute;right:18px;bottom:20px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.5);display:grid;place-items:center;transition:border-color .25s,box-shadow .25s}
.scard .ic::after{content:"";width:7px;height:7px;border-top:1.5px solid #fff;border-right:1.5px solid #fff;transform:translateX(-1px) rotate(45deg)}
.scard:hover .ic,.scard:active .ic{border-color:var(--lumen);box-shadow:0 0 12px rgba(255,216,133,.35)}
.scard:target{box-shadow:0 0 0 1px var(--lumen)}
.steps{padding:var(--gap-section) var(--pad-r) 0 var(--pad)}
.steps ol{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:26px;counter-reset:s}
.steps li{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);grid-row:span 3;font-family:var(--body);font-weight:700;font-size:1.4rem;line-height:1.2;background:var(--oficio);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.steps li b{font-weight:700;font-size:1.1rem}
.steps li span{color:var(--mute);font-size:1rem;line-height:1.5}
.steps li .you{grid-column:2;margin-top:6px;font-size:.875rem;line-height:1.5;color:var(--fg)}
.steps li .you i{font-style:normal;color:var(--lumen)}
.steps .terms{margin-top:28px;color:var(--mute);font-size:.875rem;text-align:center}
.faq{padding:var(--gap-section) var(--pad-r) 0 var(--pad)}
.faq .qs{margin-top:32px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:500;font-size:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;font-weight:400;color:var(--mute);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--mute);font-size:1rem;line-height:1.55;padding:0 0 20px}

/* servicios */

/* landing de servicio */
.hero.svc-hero::after{background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.2) 30%,rgba(0,0,0,.35) 68%,#000 100%)}
.crumb{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8);display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.crumb a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:2px}
.crumb a:hover{color:var(--lumen);border-color:var(--lumen)}
.crumb i{font-style:normal;color:rgba(255,255,255,.5)}
.block{padding:var(--gap-section) var(--pad-r) 0 var(--pad)}
.goals{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.goals li{display:flex;gap:14px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line);font-size:1.05rem}
.goals li::before{content:"";width:5px;height:5px;background:var(--oficio);flex:none;transform:translateY(-3px)}
.examples{display:grid;gap:14px;margin-top:32px}
.ex{position:relative;aspect-ratio:16/9;max-width:100%;border-radius:20px;overflow:hidden;background:#111 var(--img) var(--pos,center)/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.ex::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.8))}
.ex .cap{position:absolute;z-index:1;left:18px;bottom:14px;right:18px;display:grid;gap:2px}
.ex .cap b{font-weight:700;font-size:1.05rem}
.ex .cap span{font-size:.85rem;color:rgba(255,255,255,.75)}
.ex button.play{position:absolute;z-index:1;left:50%;top:44%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.94);display:grid;place-items:center;cursor:pointer}
.ex iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:2;background:#000}
.ex.on::after{opacity:0}
.gallery{column-count:2;column-gap:8px;margin-top:32px}
.gallery button{position:relative;display:block;width:100%;margin:0 0 8px;padding:0;border:0;border-radius:14px;overflow:hidden;cursor:zoom-in;background:#111;isolation:isolate;break-inside:avoid}
.gallery img{display:block;width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gallery button:hover img,.gallery button:active img{transform:scale(1.04)}
.gnote{margin:16px auto 0;text-align:center;font-size:.875rem;line-height:1.5;color:var(--mute);max-width:34ch}
.lb{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.95);display:grid;grid-template-rows:auto 1fr auto;touch-action:pan-y}
.lb[hidden]{display:none!important}
.lb .bar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;color:var(--mute);font-size:.875rem}
.lb .stage{display:flex;align-items:center;justify-content:center;min-height:0;padding:0 12px;overflow:hidden}
.lb .stage img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);object-fit:contain;border-radius:10px}
.lb .nav{display:flex;justify-content:center;gap:14px;padding:16px 16px 28px}
.lb button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--fg);display:grid;place-items:center;cursor:pointer;font-size:1.1rem;line-height:1}
.lb button:hover{border-color:var(--lumen);color:var(--lumen)}
.incl{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:28px}
.incl span{border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:8px 14px;font-size:.92rem}
.plant{margin:var(--gap-section) var(--pad-r) 0 var(--pad);background:var(--card);border-radius:20px;padding:26px 22px;display:grid;gap:10px;position:relative}
.plant::before{content:"";position:absolute;inset:0;padding:1px;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.03));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.plant .k{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.plant b{font-weight:700;font-size:1.3rem;line-height:1.2}
.plant p{color:var(--mute);font-size:1rem;line-height:1.5}
.plant a{justify-self:start;margin-top:8px;font-weight:500;font-size:.95rem;text-decoration:none;padding:11px 22px;background:#f5f5f4;color:#111;border-radius:999px}
.plant a:hover{background:var(--lumen)}
.more{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:28px calc(-1 * var(--pad-r)) 0 calc(-1 * var(--pad));padding:0 var(--pad-r) 4px var(--pad);scroll-snap-type:x mandatory;scroll-padding-left:var(--pad)}
.more::-webkit-scrollbar{display:none}
.more a{flex:0 0 62%;scroll-snap-align:start;position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;text-decoration:none;color:#fff;background:#111 var(--img) var(--pos,center)/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.more a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.8))}
.more a b{position:absolute;z-index:1;left:14px;right:14px;bottom:12px;font-weight:700;font-size:1rem;line-height:1.2}

/* nosotros */
.team{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:32px}
.team figure{margin:0;display:grid;gap:10px}
.team .ph{position:relative;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:#151515 linear-gradient(180deg,#1d1d1d,#101010);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.team figcaption b{display:block;font-weight:700;font-size:1.05rem}
.team figcaption span{font-size:.875rem;color:var(--mute)}
.story{margin:20px auto 0;max-width:34ch;text-align:center;font-size:1.05rem;line-height:1.55;color:var(--mute)}


/* video de fondo del hero (Vimeo, modo background) */.hero .vbg{position:absolute;inset:0;overflow:hidden;z-index:0;opacity:0;transition:opacity .9s ease;pointer-events:none}.hero .vbg.on{opacity:1}.hero .vbg iframe{position:absolute;top:50%;left:var(--vx,50%);transform:translate(calc(var(--vx,50%) * -1),-50%);border:0}
/* videos en loop dentro de las tarjetas del carrusel (Vimeo, modo background) */.media .vbg{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity .9s ease;pointer-events:none}.media .vbg.on{opacity:1}.media .vbg iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:0}

/* =====================================================================
   PRODUCCIÓN · ajustes sobre la maqueta (Ilusionistas v2)
   ===================================================================== */

/* El sitio ocupa toda la pantalla: ya no es un "teléfono" centrado */
body{background:var(--bg);margin:0}
.site{background:var(--bg);min-height:100vh;position:relative}
.wa{right:max(18px,calc(env(safe-area-inset-right,0px) + 14px));bottom:max(18px,calc(env(safe-area-inset-bottom,0px) + 14px))}

/* Hero: la imagen y su encuadre vienen de cada página */
.hero{background-image:var(--hero,none);background-position:var(--hero-pos,50% 50%);overflow:hidden}
.hero.emp,.hero.svc-hero{background-image:var(--hero,none);background-position:var(--hero-pos,50% 50%)}
.hero.emp::after{background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.05) 30%,rgba(0,0,0,.2) 68%,#000 100%)}
.hero.svc-hero::after{background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.2) 30%,rgba(0,0,0,.35) 68%,#000 100%)}
.page-nosotros .hero.svc-hero::after{background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.45) 40%,rgba(0,0,0,.55) 70%,#000 100%)}
.hero .word,.hero .htxt{z-index:2}
.wand{z-index:3}
.hero::after{z-index:1}

/* Videos de fondo (hero y carrusel): encima de la foto, debajo del degradado y del texto */
.hero .vbg{z-index:0}
.media{overflow:hidden}
.media .vbg{z-index:1}
.ex iframe{z-index:4}

/* Formulario: mensajes y campo trampa */
.legal a{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.legal a:hover{color:var(--lumen)}
.form-msg{grid-column:1/-1;text-align:center;font-size:.95rem;line-height:1.5;margin:0}
.form-msg.ok{color:var(--lumen)}
.form-msg.err{color:#ffb4a2}
.form-msg.err a{color:inherit}
.f.bad input,.f.bad select{border-bottom-color:#ff8f7a}
.form-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none}
.send button[disabled]{opacity:.6;cursor:wait}

/* Íconos de redes (SVG propio en lugar de Font Awesome) */
.social a svg{width:15px;height:15px;display:block}

/* Logos de clientes (blancos, alto por logo para igualar su peso visual) */
.rail img{height:calc(var(--h,28px) * var(--ls,1));width:auto;margin-right:40px;opacity:.62}

/* Modo revisión (?revision): marca lo tentativo y muestra lo que está oculto */
.tent{display:none}
.tent-hide{display:none!important}
.rev .tent{display:inline-block;position:absolute;z-index:6;top:12px;left:12px;font-style:normal;font-size:.68rem;letter-spacing:.06em;line-height:1.4;color:#111;background:var(--lumen);border-radius:999px;padding:3px 9px}
.rev .tent.inline{position:static;vertical-align:middle;margin-left:6px}
.rev .tent-hide{display:revert!important;outline:1px dashed var(--lumen);outline-offset:4px}
.rev .examples.tent-hide{display:grid!important}
.rev .team.tent-hide{display:grid!important}
.rev-bar{display:none}
.rev .rev-bar{display:block;position:fixed;z-index:80;left:50%;bottom:16px;transform:translateX(-50%);background:var(--lumen);color:#111;font-size:.8rem;padding:8px 16px;border-radius:999px;box-shadow:0 6px 24px rgba(0,0,0,.4);white-space:nowrap}
.has-tent{position:relative}

/* Nosotros */
.page-nosotros .foot .photo{display:none}
.team .ph{background-size:cover;background-position:center}

/* Aviso de privacidad */
.legal-page{padding:calc(64px + 56px) var(--pad-r) var(--gap-section) var(--pad)}
.legal-page .wrap{max-width:760px;margin:0 auto}
.legal-page h1{font-family:var(--body);font-weight:700;font-size:2.15rem;line-height:1.08;letter-spacing:-.02em}
.legal-page .legal-updated{color:var(--mute);font-size:.875rem;margin-top:10px}
.legal-page h2{font-family:var(--body);font-weight:700;font-size:1.2rem;margin:40px 0 12px}
.legal-page p,.legal-page li{color:#d6d6d3;font-size:1rem;line-height:1.65}
.legal-page p+p{margin-top:12px}
.legal-page ul{padding-left:1.2em;margin:10px 0}
.legal-page a{color:var(--fg)}
.legal-page a:hover{color:var(--lumen)}
.page-aviso .top{background:rgba(0,0,0,.82)}

/* =====================================================================
   TABLET Y ESCRITORIO
   El diseño se pensó en vertical; aquí se abre a pantallas grandes
   con el mismo sistema: negro, Lumen a cobre, píldoras y radios de 20 px.
   ===================================================================== */
@media (min-width:768px){
  :root{--pad:max(40px,calc((100vw - 1180px) / 2));--pad-r:max(40px,calc((100vw - 1180px) / 2));--gap-section:104px}
  .top .in{padding-top:18px;padding-bottom:18px}
  .hero{margin-top:-81px} /* = alto del header en escritorio (18 + 44 + 18 + 1 px de borde) */
  .icon-btn{width:44px;height:44px}
  .top .icon-btn svg{width:28px;height:22px}
  .burger span{width:24px}

  /* menú a pantalla completa, contenido centrado */
  /* el menú ocupa toda la pantalla (sin sombra ni medio pixel suelto a los lados); el contenido va centrado a 620 px */
  .menu{left:0;right:0;width:auto;transform:none;top:calc(80px + env(safe-area-inset-top,0px));padding:48px max(40px,calc((100% - 620px) / 2)) 48px;scrollbar-width:thin;scrollbar-color:#333 transparent}
  .menu a{font-size:2.3rem}
  .menu a.msub{font-size:1.15rem}

  /* tipografía de titulares */
  .intent h1,.stitle,.clients h2,.contact h2{font-size:clamp(2.6rem,4vw,3.6rem);max-width:18ch;margin-inline:auto}
  .hero .htxt h1{font-size:clamp(2.6rem,5vw,4.4rem);max-width:16ch}
  .hero .htxt p{font-size:1.2rem;max-width:40ch}
  .hero .word{font-size:clamp(3rem,7vw,6.5rem)}
  .intent{padding-top:96px}
  .intent p.lead{font-size:1.25rem;max-width:44ch}
  .ssub{font-size:1.15rem;max-width:46ch}
  .wand{bottom:-64px}
  .wand .beam{height:140px}

  /* servicios en tarjetas */
  .svc-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:48px}
  .scard{aspect-ratio:4/3}

  /* ejemplos */
  .examples{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:48px}
  .examples > .ex:only-child{grid-column:1/-1;max-width:860px;width:100%;justify-self:center}

  /* listas y bloques angostos, centrados */
  .goals{max-width:980px;margin-inline:auto;grid-template-columns:1fr 1fr;column-gap:56px;margin-top:48px}
  .goals li{font-size:1.1rem}
  .incl{max-width:860px;margin-inline:auto;margin-top:36px}
  .incl span{font-size:1rem;padding:10px 18px}
  .plant{margin-inline:auto;width:min(860px,calc(100% - 80px));padding:40px 44px;grid-template-columns:1fr auto;column-gap:40px;align-items:center}
  .plant .k,.plant b,.plant p{grid-column:1}
  .plant a{grid-column:2;grid-row:1 / span 3;align-self:center;margin-top:0;white-space:nowrap}
  .faq .qs{max-width:860px;margin-inline:auto;margin-top:44px}
  .faq summary{font-size:1.1rem;padding:22px 0}

  /* galería detrás de cámaras */
  .gallery{column-count:3;column-gap:12px;max-width:1180px;margin-inline:auto;margin-top:48px}
  .gallery button{margin-bottom:12px}
  .gnote{max-width:60ch}

  /* otros servicios: rejilla en lugar de deslizar */
  /* mismo tamaño siempre (1/5 del ancho), centradas aunque sean pocas */
  .more{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;overflow:visible;margin:40px 0 0;padding:0}
  .more a{flex:0 0 calc((100% - 64px) / 5);min-width:200px;aspect-ratio:4/3}

  /* clientes */
  .rail img{--ls:1.3;margin-right:64px}
  .marquee{max-width:1180px;margin-inline:auto}

  /* contacto */
  .contact form{max-width:880px;margin-inline:auto;margin-top:56px}
  .contact .sub{font-size:1.15rem}

  /* pie de página */
  .foot .in{max-width:none}

  /* nosotros */
  .story{max-width:58ch;font-size:1.15rem}
  .team{max-width:640px;margin-inline:auto;gap:20px}

  .legal-page{padding-top:calc(80px + 72px)}
  .legal-page h1{font-size:clamp(2.6rem,4vw,3.4rem)}
}

@media (min-width:1100px){
  .svc-grid{grid-template-columns:repeat(3,1fr)}
  .gallery{column-count:4}

  /* carrusel de Soluciones: cada tarjeta se acuesta (video a la izquierda, texto a la derecha) */
  .seg button{font-size:1.05rem;padding:16px 4px 15px}
  .card{flex-direction:row;align-items:stretch;border-radius:0 0 24px 24px}
  .card .media{flex:0 0 56%;aspect-ratio:auto;min-height:100%;border-radius:0 0 0 24px}
  .card .body{padding:44px 48px;justify-content:center}
  .card h2{font-size:1.9rem}
  .card p.d{font-size:1.1rem}
  .card li{font-size:1.05rem;padding:13px 0}
  .swipe{display:none}

  /* pie de página en 3 columnas */
  .foot .in{grid-template-columns:1.2fr 1fr 1fr;align-items:start}
  .foot .copy{grid-column:1/-1}
}

/* Lista "Servicio de interés": en Windows los títulos de grupo salían en blanco sobre blanco */
.f select optgroup{background:#1a1a1a;color:var(--lumen);font-style:normal;font-weight:700}
.f select option{background:#1a1a1a;color:var(--fg);font-weight:400}
.f select option:disabled{color:#7d7d7a}

@media (min-width:768px){.foot .photo{background-image:url("../assets/img/v2/footer-bw.webp")}}
