/* telenTIC 3D — estilos. Los colores y fuentes llegan como variables desde el Personalizador. */
:root{
  --bg:#e7e8eb; --bg-rgb:231,232,235; --bg-2:#f4f4f5; --bg2-rgb:244,244,245;
  --ink:#17181b; --mute:#474c55; --line:color-mix(in srgb, var(--ink) 14%, transparent);
  --yellow:#fdc400; --yellow-2:#ffd339; --yellow-ink:#1a1400;
  --graphite:#2b2d33; --error:#c0392b; --ok:#1f8a4c;
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --body:"Albert Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.2,.75,.2,1);
  --glass:rgba(var(--bg2-rgb),.8);
  --field:#fff; --field-ink:#17181b;
}
.tlx-dark{--error:#ff8a7a;--ok:#6fd49a}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:90px}
body.tlx{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}
body.tlx-story{height:100vh;height:100dvh;overflow:hidden;touch-action:none}
a{color:inherit}
button,input,textarea,select{font:inherit}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:10px}
img{max-width:100%;height:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tlx-skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--ink);color:var(--bg-2);padding:12px 16px;border-radius:10px;text-decoration:none;font-weight:600}
.tlx-skip:focus{top:12px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Pantalla de carga ---------- */
.tlx-loader{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:var(--bg-2);color:var(--ink);animation:tlxFailsafe .6s 15s forwards}
@keyframes tlxFailsafe{to{opacity:0;visibility:hidden}}
.tlx-loader .loader-inner{display:flex;flex-direction:column;align-items:center;gap:18px;transition:opacity .6s ease,transform .9s var(--ease)}
.loader-text{margin:0;font-weight:600;font-size:.95rem;color:var(--mute)}
.loader-bar{width:200px;height:3px;border-radius:3px;background:color-mix(in srgb, var(--ink) 12%, transparent);overflow:hidden}
.loader-bar b{display:block;height:100%;background:var(--yellow);transform-origin:left;transform:scaleX(0)}
.loader-num{font-size:.8rem;font-weight:600;color:var(--mute);font-variant-numeric:tabular-nums}
.loader-num::after{content:"%"}
.loader-logo{width:96px;height:142px;overflow:visible}
.loader-logo polygon{transform-box:fill-box;transform-origin:center;opacity:0;transition:transform .8s var(--ease),opacity .5s ease}
.loader-logo polygon:nth-child(4n+1){transform:translate(-90px,-50px) rotate(-60deg) scale(.4)}
.loader-logo polygon:nth-child(4n+2){transform:translate(110px,-80px) rotate(50deg) scale(.4)}
.loader-logo polygon:nth-child(4n+3){transform:translate(90px,90px) rotate(-40deg) scale(.4)}
.loader-logo polygon:nth-child(4n){transform:translate(-110px,70px) rotate(70deg) scale(.4)}
.loader-logo polygon.in{transform:none;opacity:1}
.tlx-loader.out{opacity:0;visibility:hidden;transition:opacity .8s ease .15s,visibility 0s 1s}
.tlx-loader--assemble.out .loader-inner{transform:scale(1.25);opacity:0}
/* Contador */
.tlx-loader--counter{place-items:end start}
.tlx-loader--counter .loader-inner{align-items:flex-start;gap:10px;padding:0 6vw 8vh;width:100%}
.loader-count{font-family:var(--display);font-weight:800;font-size:clamp(6rem,20vw,15rem);line-height:.85;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.loader-count small{font-size:.35em;margin-left:.1em;color:var(--yellow)}
.tlx-loader--counter .loader-bar{width:100%;height:4px}
.tlx-loader--counter .loader-num::after{content:none}
.tlx-loader--counter.out{opacity:1;transform:translateY(-100%);transition:transform 1s var(--ease),visibility 0s 1.1s}
/* Telón */
.tlx-loader--curtain{background:transparent}
.curtain{position:absolute;left:0;right:0;height:50.5%;background:var(--yellow);transition:transform 1.1s var(--ease)}
.curtain-a{top:0}.curtain-b{bottom:0}
.tlx-loader--curtain .loader-inner{position:relative;z-index:1}
.tlx-loader--curtain .loader-text,.tlx-loader--curtain .loader-num{color:var(--yellow-ink)}
.tlx-loader--curtain .loader-bar{background:rgba(0,0,0,.14)}
.tlx-loader--curtain .loader-bar b{background:var(--yellow-ink)}
.tlx-loader--curtain .loader-logo polygon{transform:none;opacity:1}
.tlx-loader--curtain .loader-logo{animation:tlxPulse 1.6s ease-in-out infinite}
@keyframes tlxPulse{50%{transform:scale(1.06) rotate(-2deg)}}
.tlx-loader--curtain.out{opacity:1;transition:visibility 0s 1.2s}
.tlx-loader--curtain.out .curtain-a{transform:translateY(-101%)}
.tlx-loader--curtain.out .curtain-b{transform:translateY(101%)}
.tlx-loader--curtain.out .loader-inner{opacity:0;transform:scale(.9)}

/* ---------- Escena ---------- */
#scene{display:block;opacity:0;transition:opacity 1.4s ease}
#scene.ready{opacity:1}
.tlx-story #scene{position:fixed;inset:0;width:100%;height:100%}
#veil{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:0;background:var(--bg-2)}
#veil.iris{opacity:1;background:var(--yellow);clip-path:circle(var(--r1,0%) at 50% 50%)}
#veil.iris::after{content:"";position:absolute;inset:0;background:var(--bg-2);clip-path:circle(var(--r2,0%) at 50% 50%)}
#veil .veil-logo{position:absolute;z-index:1;left:50%;top:50%;width:54px;height:80px;margin:-40px 0 0 -27px;opacity:var(--lo,0);transform:scale(calc(.7 + var(--lo,0) * .3)) rotate(calc((1 - var(--lo,0)) * -20deg))}
#veil:not(.iris) .veil-logo{display:none}
.scrim{position:fixed;z-index:2;pointer-events:none;opacity:0;transition:opacity .8s ease}
.scrim.on{opacity:1}
.scrim.left{inset:0 auto 0 0;width:min(62vw,860px);background:linear-gradient(90deg,rgba(var(--bg-rgb),.96) 0%,rgba(var(--bg-rgb),.9) 45%,rgba(var(--bg-rgb),0) 100%)}
.scrim.right{inset:0 0 0 auto;width:min(62vw,860px);background:linear-gradient(270deg,rgba(var(--bg-rgb),.96) 0%,rgba(var(--bg-rgb),.9) 45%,rgba(var(--bg-rgb),0) 100%)}
.scrim.bottom{inset:auto 0 0 0;height:min(52vh,460px);background:linear-gradient(0deg,rgba(var(--bg-rgb),.97) 0%,rgba(var(--bg-rgb),.9) 50%,rgba(var(--bg-rgb),0) 100%)}

/* ---------- Cabecera: común ---------- */
.top{position:fixed;left:0;right:0;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:14px clamp(16px,3vw,40px);transition:background .4s,box-shadow .4s}
body:not(.tlx-loading) .top > *{animation:tlxDrop .9s var(--ease) both}
body:not(.tlx-loading) .top > *:nth-child(2){animation-delay:.12s}
body:not(.tlx-loading) .top > *:nth-child(3){animation-delay:.24s}
.tlx-loading .top > *{opacity:0}
@keyframes tlxDrop{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-weight:800;font-size:1.4rem;letter-spacing:-.035em;justify-self:start;min-height:44px}
.logo-mark{width:24px;height:36px;flex:none}
.points{position:relative;display:flex;gap:2px;padding:5px;border-radius:16px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.points a{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:44px;padding:0 16px;border-radius:11px;text-decoration:none;font-weight:600;font-size:.9rem;color:var(--mute);transition:color .4s;white-space:nowrap}
.points a:hover{color:var(--ink)}
.points a.on{color:var(--yellow-ink)}
.points .dots{display:flex;gap:4px;height:4px}
.points .dots i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.25;transition:opacity .3s,width .45s var(--ease),border-radius .3s}
.points .dots i.done{opacity:.6}
.points .dots i.now{opacity:1;width:14px;border-radius:2px}
.pill{position:absolute;z-index:0;left:0;top:0;width:var(--pw,0);height:var(--ph,0);transform:translate(var(--px,0),var(--py,0));border-radius:11px;background:var(--yellow);transition:transform .8s var(--ease),width .8s var(--ease),height .8s var(--ease),opacity .3s;box-shadow:0 6px 18px -8px rgba(160,110,0,.55)}
.hline{position:absolute;left:clamp(16px,3vw,40px);right:clamp(16px,3vw,40px);bottom:2px;height:2px;border-radius:2px;background:color-mix(in srgb, var(--ink) 8%, transparent);overflow:hidden}
.hline b{display:block;height:100%;width:100%;background:var(--ink);transform-origin:left;transform:scaleX(0)}
.tlx-inner .hline{display:none}
.right{justify-self:end;display:flex;align-items:center;gap:6px}
.right a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:11px;text-decoration:none;font-weight:600;font-size:.9rem}
.right a:hover{background:color-mix(in srgb, var(--ink) 7%, transparent)}
.right a.solid{background:var(--ink);color:var(--bg-2)}
.right a.solid:hover{background:color-mix(in srgb, var(--ink) 85%, var(--bg))}
.burger{display:none;width:48px;height:48px;border-radius:12px;border:1px solid var(--line);background:var(--glass);cursor:pointer;position:relative;color:var(--ink)}
.burger i,.burger i::before,.burger i::after{position:absolute;left:14px;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .4s var(--ease);content:""}
.burger i{top:23px}.burger i::before{left:0;top:-6px}.burger i::after{left:0;top:6px}
.burger[aria-expanded="true"] i{background:transparent}
.burger[aria-expanded="true"] i::before{transform:translateY(6px) rotate(45deg);background:var(--ink)}
.burger[aria-expanded="true"] i::after{transform:translateY(-6px) rotate(-45deg);background:var(--ink)}
.menu{position:fixed;inset:0;z-index:15;background:var(--bg-2);padding:96px 24px 32px;clip-path:circle(0% at calc(100% - 44px) 40px);visibility:hidden;transition:clip-path .7s var(--ease),visibility 0s .7s;overflow:auto;touch-action:pan-y}
.menu.open{clip-path:circle(150% at calc(100% - 44px) 40px);visibility:visible;transition:clip-path .8s var(--ease),visibility 0s}
.menu ol,.menu-pages ul{list-style:none;margin:0 auto;padding:0;display:flex;flex-direction:column;gap:2px;max-width:40rem}
.menu a{display:flex;align-items:baseline;gap:14px;min-height:48px;padding:6px 0;text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.7rem;letter-spacing:-.03em}
.menu a small{font-family:var(--body);font-weight:500;font-size:.85rem;color:var(--mute);font-variant-numeric:tabular-nums;width:2ch}
.menu a.sub{font-size:1.15rem;padding-left:34px;font-weight:600}
.menu a[aria-current="step"]{color:color-mix(in srgb, var(--yellow) 55%, var(--ink))}
.menu-pages{max-width:40rem;margin:24px auto 0;padding-top:16px;border-top:1px solid var(--line)}
.menu-pages a{font-size:1.2rem}
.menu .contactline{max-width:40rem;margin:28px auto 0;display:flex;flex-wrap:wrap;gap:10px}
.tlx-menu-open .top .points{visibility:hidden}

/* Cabecera: barra completa */
.tlx-header-bar .top{grid-template-columns:auto 1fr auto;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:8px;padding-bottom:8px}
.tlx-header-bar .points{justify-self:start;margin-left:24px;background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0}
.tlx-header-bar .points a.on{color:var(--ink)}
.tlx-header-bar .pill{height:3px;border-radius:3px;transform:translate(var(--px,0),calc(var(--py,0px) + var(--ph,0px) - 3px));box-shadow:none}
.tlx-header-bar .hline{bottom:-1px;left:0;right:0;border-radius:0}
.tlx-header-bar .ch:not(.contact),.tlx-header-bar .story .contact{margin-top:28px}
/* Cabecera: riel lateral */
.tlx-header-rail .top{grid-template-columns:1fr auto}
.tlx-header-rail .points{position:fixed;right:clamp(10px,2vw,28px);top:50%;transform:translateY(-50%);flex-direction:column;align-items:flex-end;padding:6px}
.tlx-header-rail .points a{flex-direction:row-reverse;gap:10px;justify-content:flex-start;padding:0 12px;min-height:40px}
.tlx-header-rail .points .dots{flex-direction:column;height:auto;gap:3px}
.tlx-header-rail .points .dots i.now{width:4px;height:12px}
.tlx-header-rail .ch[data-pos="right"]{right:calc(clamp(20px,6vw,104px) + 190px)}
.tlx-header-rail .scrim.right{width:min(72vw,1000px)}
.tlx-header-rail.tlx-inner .points{display:none}
/* Cabecera: mínima */
.tlx-header-minimal .top{grid-template-columns:1fr auto}
.tlx-header-minimal .points,.tlx-header-minimal .right a.ticket{display:none}
.tlx-header-minimal .burger{display:block}
/* Interiores: fondo al bajar */
.tlx-inner .top.scrolled{background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}

/* ---------- Capítulos ---------- */
.story{position:fixed;inset:0;z-index:3;pointer-events:none}
.ch{position:absolute;top:50%;left:clamp(20px,6vw,104px);width:min(31rem,calc(100% - 40px));opacity:0;visibility:hidden;transform:translateY(-46%);transition:opacity .45s ease,transform .45s ease,visibility 0s linear .45s}
.ch.on{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%);transition:opacity .9s ease .05s,transform 1s var(--ease) .05s,visibility 0s}
.ch[data-pos="right"]{left:auto;right:clamp(20px,6vw,104px)}
.ch[data-pos="bottom"]{top:auto;left:50%;bottom:60px;width:min(46rem,calc(100% - 40px));text-align:center;transform:translate(-50%,24px)}
.ch[data-pos="bottom"].on{transform:translate(-50%,0)}
.ch[data-pos="bottom"] .lead{margin-inline:auto}
.ch[data-pos="bottom"] .svc,.ch[data-pos="bottom"] .actions{justify-content:center}
.idx{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:.9rem;font-weight:600;color:var(--mute);font-variant-numeric:tabular-nums}
.idx::before{content:"";width:28px;height:3px;border-radius:2px;background:var(--yellow)}
.ch[data-pos="bottom"] .idx{justify-content:center}
.ch h1,.ch h2,.tlx-hero h1{font-family:var(--display);font-weight:700;letter-spacing:-.035em;font-size:clamp(2.2rem,4.3vw,4rem);line-height:.98;margin:0 0 16px;text-wrap:balance}
.ch h1{font-size:clamp(2.8rem,6.2vw,5.8rem);font-weight:800}
.lead{font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.6;color:var(--mute);margin:0;max-width:29rem}
.svc{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}
.svc li{font-size:.88rem;font-weight:500;padding:8px 12px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s}
.btn:hover{background:var(--ink);color:var(--bg-2)}
.btn.primary{background:var(--yellow);border-color:var(--yellow);color:var(--yellow-ink)}
.btn.primary:hover{background:var(--yellow-2);border-color:var(--yellow-2)}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.6;cursor:wait}
.step{display:flex;align-items:flex-end;gap:18px;margin-bottom:10px}
.step b{font-family:var(--display);font-weight:800;font-size:clamp(5rem,9vw,8rem);line-height:.8;color:transparent;-webkit-text-stroke:2px var(--ink);letter-spacing:-.05em}
.step span{padding-bottom:8px;font-weight:600;color:var(--mute);font-size:.9rem}
.bars{display:flex;gap:6px;margin-top:22px}
.bars i{height:4px;flex:1;max-width:56px;border-radius:2px;background:color-mix(in srgb, var(--ink) 14%, transparent)}
.bars i.on{background:var(--yellow)}
.counter{position:fixed;left:clamp(20px,3vw,40px);bottom:22px;z-index:4;margin:0;font-size:.82rem;font-weight:600;color:var(--mute);font-variant-numeric:tabular-nums;display:flex;gap:10px;align-items:center;pointer-events:none}
.counter b{color:var(--ink)}
.hint{position:fixed;right:clamp(20px,3vw,40px);bottom:18px;z-index:4;display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--mute);opacity:0;transition:opacity .6s;pointer-events:none}
.hint.on{opacity:1}
.hint i{width:20px;height:30px;border:2px solid currentColor;border-radius:11px;position:relative}
.hint i::after{content:"";position:absolute;left:50%;top:5px;width:4px;height:6px;margin-left:-2px;border-radius:2px;background:var(--yellow);animation:tlxWheel 1.8s ease-in-out infinite}
@keyframes tlxWheel{0%{transform:translateY(0);opacity:1}70%{transform:translateY(9px);opacity:0}100%{opacity:0}}
.tlx-header-rail .hint{right:auto;left:50%;transform:translateX(-50%)}

/* ---------- Contacto y formulario ---------- */
.ch.contact{left:0;right:0;width:auto;top:0;bottom:0;transform:translateY(16px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,27rem);align-items:center;gap:clamp(24px,5vw,80px);padding:96px clamp(20px,6vw,104px) 40px}
.ch.contact.on{transform:none}
.contact .info{max-width:30rem;padding:28px;margin:-28px;border-radius:20px;background:rgba(var(--bg-rgb),.86)}
.cdata{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:22px 0 0;font-size:.95rem;line-height:1.45}
.cdata dt{color:var(--mute)}
.cdata dd{margin:0;font-weight:500}
.cdata dd a{text-decoration-color:var(--yellow);text-decoration-thickness:2px;text-underline-offset:3px}
.legal{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:26px;font-size:.82rem;color:var(--mute)}
.legal a{text-decoration:none;display:inline-flex;min-height:32px;align-items:center}
.legal a:hover{text-decoration:underline}
.tlx-form{background:rgba(var(--bg2-rgb),.94);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 30px 60px -30px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:12px}
.story .tlx-form{max-height:calc(100vh - 140px);overflow:auto;touch-action:pan-y}
.tlx-form h3{margin:0 0 2px;font-family:var(--display);font-size:1.35rem;letter-spacing:-.02em}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.field{display:flex;flex-direction:column;gap:6px;font-size:.84rem;font-weight:600;min-width:0}
.field input,.field textarea{width:100%;min-width:0;border:1px solid rgba(23,24,27,.22);border-radius:10px;background:var(--field);color:var(--field-ink);padding:11px 12px;font-size:.95rem;font-weight:400;min-height:44px;transition:border-color .2s,box-shadow .2s;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--yellow) 50%, transparent)}
.field [aria-invalid="true"]{border-color:var(--error)}
.tlx-form fieldset{border:0;margin:0;padding:0}
.tlx-form legend{font-size:.84rem;font-weight:600;margin-bottom:8px;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips label{position:relative;cursor:pointer}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips span{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid rgba(23,24,27,.2);font-size:.84rem;font-weight:500;background:var(--field);color:var(--field-ink);transition:background .2s,border-color .2s}
.chips input:checked + span{background:var(--yellow);border-color:var(--yellow);color:var(--yellow-ink)}
.chips input:focus-visible + span{outline:3px solid var(--ink);outline-offset:2px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;line-height:1.4;color:var(--mute)}
.check input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--yellow)}
.check a{color:var(--ink)}
.tlx-form details{font-size:.78rem;color:var(--mute);line-height:1.5}
.tlx-form summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}
.tlx-form details p{margin:6px 0 0}
.status{margin:0;font-size:.88rem;min-height:1.2em;font-weight:500}
.status.err{color:var(--error)}
.status.ok{color:var(--ok)}
.tlx-form-wrap{max-width:34rem;margin:2rem 0}

/* ---------- Páginas interiores ---------- */
.tlx-hero{position:relative;display:flex;align-items:flex-end;min-height:46vh;padding:140px clamp(20px,6vw,104px) 56px;overflow:hidden;isolation:isolate}
.tlx-hero.has-scene{min-height:74vh}
.tlx-hero #scene{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.tlx-hero.has-scene::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(var(--bg-rgb),.95) 0%,rgba(var(--bg-rgb),.75) 38%,rgba(var(--bg-rgb),0) 62%),linear-gradient(0deg,rgba(var(--bg-rgb),1) 0%,rgba(var(--bg-rgb),0) 22%)}
.tlx-hero.no-scene{background-image:linear-gradient(color-mix(in srgb, var(--ink) 7%, transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb, var(--ink) 7%, transparent) 1px,transparent 1px);background-size:56px 56px;background-position:center bottom}
.tlx-hero.no-scene::after{content:"";position:absolute;right:6vw;bottom:-6vh;width:min(26vw,300px);aspect-ratio:3/4;background:var(--yellow);clip-path:polygon(0 60%,55% 60%,100% 100%,0 100%);opacity:.9;z-index:-1}
.hero-text{position:relative;max-width:44rem}
.hero-text .lead{max-width:36rem}
.tlx-hero #veil{position:absolute}
.page-main{padding:24px clamp(20px,6vw,104px) 96px}
.prose{max-width:46rem;margin:0 auto;font-size:1.06rem;line-height:1.72;color:var(--ink)}
.prose > * + *{margin-top:1.1em}
.prose h2,.prose h3,.prose h4{font-family:var(--display);letter-spacing:-.025em;line-height:1.1;margin-top:1.8em}
.prose h2{font-size:clamp(1.7rem,3vw,2.3rem)}
.prose h3{font-size:1.4rem}
.prose a{text-decoration-color:var(--yellow);text-decoration-thickness:2px;text-underline-offset:3px}
.prose blockquote{margin-left:0;padding-left:20px;border-left:3px solid var(--yellow);color:var(--mute)}
.prose img,.prose figure{border-radius:14px}
.prose .alignwide{max-width:64rem;margin-left:50%;transform:translateX(-50%);width:calc(100vw - 2*clamp(20px,6vw,104px))}
.prose .alignfull{width:100vw;margin-left:50%;transform:translateX(-50%);max-width:none}
.prose .wp-block-button__link{background:var(--yellow);color:var(--yellow-ink);border-radius:12px;padding:14px 22px;font-weight:600;text-decoration:none}
.prose table{border-collapse:collapse;width:100%}
.prose td,.prose th{border-bottom:1px solid var(--line);padding:10px;text-align:left}
.cover{margin:0 0 2rem}
.cover img{border-radius:18px;width:100%}
.post-nav{max-width:46rem;margin:48px auto 0;display:flex;justify-content:space-between;gap:16px;font-weight:600}
.post-nav a{text-decoration:none}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:24px;max-width:78rem;margin:0 auto}
.card-post a{display:flex;flex-direction:column;gap:10px;text-decoration:none;height:100%;padding:14px;border-radius:20px;background:var(--bg-2);border:1px solid var(--line);transition:transform .35s var(--ease),box-shadow .35s}
.card-post a:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(0,0,0,.4)}
.card-post .thumb{display:block;aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:var(--bg)}
.card-post .thumb img{width:100%;height:100%;object-fit:cover}
.thumb-empty{display:grid!important;place-items:center}
.thumb-empty svg{height:60%;width:auto}
.card-post .meta{font-size:.82rem;color:var(--mute);font-weight:600}
.card-post h2{margin:0;font-family:var(--display);font-size:1.35rem;letter-spacing:-.02em;line-height:1.15}
.card-post p{margin:0;color:var(--mute);line-height:1.55}
.pager{max-width:78rem;margin:40px auto 0}
.pager .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pager .page-numbers{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border-radius:10px;border:1px solid var(--line);text-decoration:none;font-weight:600}
.pager .current{background:var(--yellow);color:var(--yellow-ink);border-color:var(--yellow)}
.site-foot{background:var(--bg-2);border-top:1px solid var(--line);padding:56px clamp(20px,6vw,104px) 40px}
.foot-in{max-width:78rem;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px}
.foot-brand p{color:var(--mute);line-height:1.6;max-width:26rem}
.foot-data .cdata{margin-top:0}

/* ---------- Tema oscuro ---------- */
.tlx-dark .field input,.tlx-dark .field textarea{border-color:transparent}
.tlx-dark .step b{-webkit-text-stroke-color:var(--ink)}

/* ---------- Responsive ---------- */
@media (max-width:1060px){
  .points,.right a.ticket{display:none}
  .tlx-header-rail .points{display:flex}
  .burger{display:block}
  .top,.tlx-header-bar .top{grid-template-columns:1fr auto}
  .right{grid-column:2}
}
@media (max-width:760px){
  .right a.solid{display:none}
  .tlx-header-rail .points{display:none}
  .scrim.left,.scrim.right{display:none}
  .scrim.bottom{height:62vh}
  .ch,.ch[data-pos="right"],.ch[data-pos="bottom"],.tlx-header-rail .ch[data-pos="right"]{top:auto;left:18px;right:18px;width:auto;bottom:54px;transform:translateY(14px);text-align:left}
  .ch.on,.ch[data-pos="bottom"].on{transform:none}
  .ch[data-pos="bottom"] .idx,.ch[data-pos="bottom"] .svc,.ch[data-pos="bottom"] .actions{justify-content:flex-start}
  .ch h1{font-size:2.6rem}.ch h2{font-size:1.95rem}
  .lead{font-size:.96rem}
  .svc{margin-top:14px;gap:6px}.svc li{font-size:.8rem;padding:6px 10px}
  .step b{font-size:4.2rem}
  .ch.contact{display:block;top:0;bottom:0;left:0;right:0;padding:84px 18px 70px;overflow:auto;touch-action:pan-y;background:rgba(var(--bg-rgb),.92)}
  .contact .info{padding:0;margin:0;background:none}
  .story .tlx-form{max-height:none;margin-top:24px;padding:18px}
  .row{grid-template-columns:1fr}
  .counter span{display:none}
  .tlx-hero{padding:110px 18px 36px}
  .tlx-hero.has-scene{min-height:78vh}
  .tlx-hero.has-scene::before{background:linear-gradient(0deg,rgba(var(--bg-rgb),1) 0%,rgba(var(--bg-rgb),.85) 40%,rgba(var(--bg-rgb),0) 70%)}
  .foot-in{grid-template-columns:1fr}
  .tlx-header-bar .ch:not(.contact){margin-top:0}
}
@media (prefers-reduced-motion: reduce){
  .ch,.ch.on{transition:opacity .3s,visibility 0s}
  body:not(.tlx-loading) .top > *{animation:none}
  .hint i::after,.tlx-loader--curtain .loader-logo{animation:none}
  .pill,.loader-logo polygon{transition:none}
}

/* ---------- Comentarios ---------- */
.comments{margin-top:48px}
.comment-list{list-style:none;padding:0}
.comment-list .comment{padding:16px 0;border-bottom:1px solid var(--line)}
.comment-form{display:grid;gap:12px}
.comment-form p{margin:0;display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600}
.comment-form .comment-form-cookies-consent{flex-direction:row;align-items:center;font-weight:400}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{width:100%;border:1px solid rgba(23,24,27,.22);border-radius:10px;background:var(--field);color:var(--field-ink);padding:11px 12px;font-size:.95rem}
.comment-form textarea{min-height:140px}
.loader-count .loader-num{font-size:inherit;color:inherit;font-weight:inherit}

/* ---------- Barra de navegación ---------- */
.dock{position:fixed;left:50%;bottom:18px;z-index:6;display:flex;align-items:center;gap:4px;padding:6px;border-radius:18px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 40px -24px rgba(0,0,0,.45);transform:translateX(-50%)}
body:not(.tlx-loading) .dock{animation:tlxRise .9s var(--ease) .35s both}
.tlx-loading .dock{opacity:0}
@keyframes tlxRise{from{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%,0)}}
.dock-btn{flex:none;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--ink);cursor:pointer;transition:background .25s,opacity .25s,transform .2s}
.dock-btn svg{width:22px;height:22px}
.dock-btn:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}
.dock-btn:active{transform:scale(.94)}
.dock-btn[disabled]{opacity:.28;cursor:default;background:transparent}
.dock-next{background:var(--yellow);color:var(--yellow-ink)}
.dock-next:hover{background:var(--yellow-2)}
.dock-next.nudge{animation:tlxNudge 1.8s ease-in-out 3}
@keyframes tlxNudge{0%,100%{transform:none}40%{transform:translateX(3px)}60%{transform:translateX(-1px)}}
.dock-play svg{width:34px;height:34px}
.dock-play .ring-bg,.dock-play .ring{fill:none;stroke-width:2.6}
.dock-play .ring-bg{stroke:color-mix(in srgb, var(--ink) 12%, transparent)}
.dock-play .ring{stroke:var(--yellow);stroke-linecap:round;stroke-dasharray:106.8;stroke-dashoffset:calc(106.8 * (1 - var(--t,0)));transform:rotate(-90deg);transform-origin:center}
.dock-play path{fill:currentColor}
.dock-play .i-pause{display:none}
.dock-play[aria-pressed="true"] .i-pause{display:block}
.dock-play[aria-pressed="true"] .i-play{display:none}
.dock-now{display:flex;align-items:baseline;gap:6px;margin:0 8px 0 6px;min-width:12.5rem;font-size:.86rem;font-weight:600;color:var(--mute);white-space:nowrap;font-variant-numeric:tabular-nums}
.dock-now b{color:var(--ink);font-size:.95rem}
.dock-now #dname{color:var(--ink);margin-left:6px;overflow:hidden;text-overflow:ellipsis}
.dock-steps{display:flex;align-items:center;list-style:none;margin:0 6px;padding:0;gap:2px}
.dock-steps li.gs{margin-left:8px}
.dock-steps li:first-child{margin-left:0}
.dock-steps button{position:relative;display:block;width:16px;height:44px;padding:0;border:0;background:none;cursor:pointer;transition:width .5s var(--ease)}
.dock-steps button::before{content:"";position:absolute;left:3px;right:3px;top:50%;height:4px;margin-top:-2px;border-radius:3px;background:color-mix(in srgb, var(--ink) 18%, transparent);transition:background .3s,height .3s,margin .3s}
.dock-steps button:hover::before{background:color-mix(in srgb, var(--ink) 45%, transparent)}
.dock-steps button.done::before{background:color-mix(in srgb, var(--ink) 55%, transparent)}
.dock-steps button.now{width:34px}
.dock-steps button.now::before{background:var(--yellow);height:6px;margin-top:-3px}
.dock-steps .tip{position:absolute;left:50%;bottom:calc(100% + 8px);padding:6px 10px;border-radius:8px;background:var(--ink);color:var(--bg-2);font-size:.78rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .2s,transform .2s}
.dock-steps button:hover .tip,.dock-steps button:focus-visible .tip{opacity:1;transform:translate(-50%,0)}
.tlx-has-dock .counter{display:none}
.tlx-has-dock .ch[data-pos="bottom"]{bottom:104px}
.tlx-has-dock .ch.contact{padding-bottom:96px}
.tlx-has-dock .scrim.bottom{height:min(60vh,540px)}
@media (max-width:1180px){ .tlx-has-dock .hint{display:none} }
@media (max-width:900px){ .dock-steps{display:none} .dock-now{min-width:0} }
@media (max-width:760px){
  .dock{left:12px;right:12px;bottom:12px;transform:none;justify-content:space-between}
  @keyframes tlxRise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  .dock-now{flex:1;justify-content:center;margin:0;font-size:.82rem}
  .dock-now .dock-of{display:none}
  .tlx-has-dock .ch,.tlx-has-dock .ch[data-pos="right"],.tlx-has-dock .ch[data-pos="bottom"]{bottom:88px}
  .tlx-has-dock .ch.contact{bottom:0;padding-bottom:96px}
}
@media (prefers-reduced-motion: reduce){ .dock-next.nudge,body:not(.tlx-loading) .dock{animation:none} }

/* ---------- Entrada escalonada del texto de cada capítulo ---------- */
.story .ch > *{opacity:0;transform:translateY(14px);transition:opacity .3s ease,transform .3s ease}
.story .ch.on > *{opacity:1;transform:none;transition:opacity .7s ease,transform .9s var(--ease)}
.story .ch.on > :nth-child(1){transition-delay:.04s}
.story .ch.on > :nth-child(2){transition-delay:.11s}
.story .ch.on > :nth-child(3){transition-delay:.18s}
.story .ch.on > :nth-child(4){transition-delay:.25s}
.story .ch.on > :nth-child(5){transition-delay:.32s}
.story .ch.on > :nth-child(6){transition-delay:.39s}
.story .ch.on .svc li{animation:tlxChip .6s var(--ease) both}
.story .ch.on .svc li:nth-child(2){animation-delay:.34s}.story .ch.on .svc li:nth-child(3){animation-delay:.4s}.story .ch.on .svc li:nth-child(4){animation-delay:.46s}.story .ch.on .svc li:nth-child(1){animation-delay:.28s}
@keyframes tlxChip{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){ .story .ch > *,.story .ch.on > *{transform:none;transition:opacity .3s} .story .ch.on .svc li{animation:none} }

/* ---------- Botones de cabecera ---------- */
.right .solid{position:relative;overflow:hidden;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:0;border-radius:11px;background:var(--ink);color:var(--bg-2);font:inherit;font-weight:600;font-size:.9rem;text-decoration:none;cursor:pointer;box-shadow:0 8px 20px -12px rgba(0,0,0,.55);transition:transform .25s var(--ease),box-shadow .25s,background .25s}
.right .solid::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);transition:left .7s var(--ease)}
.right .solid:hover{background:var(--ink);transform:translateY(-1px);box-shadow:0 14px 26px -14px rgba(0,0,0,.6)}
.right .solid:hover::after{left:120%}
.right .solid:active{transform:translateY(0) scale(.97)}
.right .remote{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:11px;text-decoration:none;font-weight:600;font-size:.9rem;border:1px solid var(--line);background:var(--glass);color:var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color .25s,transform .25s var(--ease)}
.right .remote svg{width:19px;height:19px;flex:none}
.right .remote svg path:last-child{stroke-dasharray:12;stroke-dashoffset:0;transition:stroke-dashoffset .5s var(--ease)}
.right .remote:hover{border-color:color-mix(in srgb, var(--ink) 30%, transparent);transform:translateY(-1px)}
.right .remote:hover svg path:last-child{animation:tlxTick .6s var(--ease)}
@keyframes tlxTick{from{stroke-dashoffset:12}to{stroke-dashoffset:0}}
.right .phone{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-weight:600;font-size:.9rem;text-decoration:none;color:var(--ink);background:none}
.right .phone::after{content:"";position:absolute;left:10px;right:10px;bottom:10px;height:2px;border-radius:2px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.right .phone:hover{background:none}
.right .phone:hover::after{transform:scaleX(1)}
@media (max-width:1060px){ .right .remote span{display:none} .right .remote{padding:0;width:44px;justify-content:center} .right .phone{display:none} }
@media (max-width:760px){ .right .remote,.right .solid{display:none} }

/* ---------- Alta de ticket: tarjeta 3D de dos caras ---------- */
.tkt{--spring:cubic-bezier(.2,1.25,.35,1);position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;perspective:1600px}
.tkt[hidden]{display:none}
.tkt-back{position:absolute;inset:0;background:rgba(var(--bg-rgb),.55);-webkit-backdrop-filter:blur(10px) saturate(1.1);backdrop-filter:blur(10px) saturate(1.1);opacity:0;transition:opacity .45s ease}
.tkt.in .tkt-back{opacity:1}
.tkt-stage{position:relative;z-index:1;width:min(58rem,100%);perspective:1600px;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s ease-out,opacity .45s ease;opacity:0}
.tkt.in .tkt-stage{opacity:1}
.tkt-card{position:relative;transform-style:preserve-3d;transform:translateY(80px) translateZ(-220px) rotateX(24deg) scale(.92);transition:transform 1s var(--spring)}
.tkt.in .tkt-card{transform:none}
.tkt.flip .tkt-card{transform:rotateY(180deg)}
/* La cara oculta no puede capturar clics aunque esté girada */
.tkt.flip .tkt-rear{pointer-events:auto}
.tkt.flip .tkt-front{pointer-events:none}
.tkt.out .tkt-card{transform:translateY(40px) translateZ(-160px) rotateX(-14deg) scale(.94);transition:transform .45s ease-in}
.tkt.flip.out .tkt-card{transform:rotateY(180deg) translateY(40px) translateZ(-160px) rotateX(14deg) scale(.94)}
.tkt-face{border-radius:26px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:0 50px 100px -40px rgba(0,0,0,.55),0 0 0 1px var(--line)}
.tkt-front{display:grid;grid-template-columns:17rem minmax(0,1fr);background:var(--bg-2);max-height:calc(100vh - 40px)}
.tkt-rear{pointer-events:none;position:absolute;inset:0;transform:rotateY(180deg);display:grid;place-items:center;background:linear-gradient(150deg,#4d6a7b,#2c4555 60%,#22374a);color:#fff}

/* Lateral con las facetas del logo girando en 3D */
.tkt-side{position:relative;overflow:hidden;color:#fff;background:linear-gradient(160deg,#56748a 0%,#365466 55%,#2a4353 100%);perspective:700px}
.tkt-side-in{position:relative;z-index:1;display:flex;flex-direction:column;gap:14px;height:100%;padding:30px 26px}
.tkt-facets{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.fx{position:absolute;display:block;transform-style:preserve-3d;opacity:0}
.fx::before{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 50%,0 100%)}
.f1{width:70px;height:70px;right:-14px;top:18%} .f1::before{background:#fdc400}
.f2{width:46px;height:46px;right:34px;top:48%} .f2::before{background:#9a9a9a}
.f3{width:90px;height:90px;left:-30px;bottom:-12px} .f3::before{background:#f39200}
.f4{width:34px;height:34px;left:60%;bottom:20%} .f4::before{background:#86a3b7}
.f5{width:28px;height:28px;left:18px;top:40%} .f5::before{background:#fdc400;opacity:.8}
.f6{width:54px;height:54px;right:18%;top:-14px} .f6::before{background:#b5b5b5}
.f7{width:22px;height:22px;right:22px;bottom:34%} .f7::before{background:#f39200}
.tkt.in .fx{animation:fxIn 1s var(--spring) both,fxSpin 9s linear infinite}
.tkt.in .f1{animation-delay:.25s,.25s}.tkt.in .f2{animation-delay:.32s,-2s}.tkt.in .f3{animation-delay:.38s,-4s}.tkt.in .f4{animation-delay:.44s,-1s}.tkt.in .f5{animation-delay:.5s,-6s}.tkt.in .f6{animation-delay:.56s,-3s}.tkt.in .f7{animation-delay:.62s,-5s}
@keyframes fxIn{from{opacity:0;transform:translateZ(260px) rotateX(80deg)}to{opacity:.9}}
@keyframes fxSpin{0%{transform:rotateX(0) rotateY(0) rotateZ(0) translateZ(0)}50%{transform:rotateX(180deg) rotateY(90deg) rotateZ(40deg) translateZ(30px)}100%{transform:rotateX(360deg) rotateY(180deg) rotateZ(0) translateZ(0)}}
.tkt-badge{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.14);font-size:.78rem;font-weight:600}
.tkt-badge .dot{width:8px;height:8px;border-radius:50%;background:#46e08a;animation:tktPulse 2s infinite}
@keyframes tktPulse{0%{box-shadow:0 0 0 0 rgba(70,224,138,.6)}70%{box-shadow:0 0 0 8px rgba(70,224,138,0)}100%{box-shadow:0 0 0 0 rgba(70,224,138,0)}}
.tkt-side h2{margin:0;font-family:var(--display);font-size:1.75rem;letter-spacing:-.025em;line-height:1.02}
.tkt-side p{margin:0;font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.8)}
.tkt-map{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:10px}
.tkt-map li{display:flex;align-items:center;gap:11px;font-size:.92rem;color:rgba(255,255,255,.6);transition:color .4s}
.tkt-map b{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:9px;border:1.5px solid rgba(255,255,255,.3);font-size:.85rem;transition:background .4s,border-color .4s,color .4s,transform .5s var(--spring)}
.tkt-map li.on{color:#fff}
.tkt-map li.on b{background:var(--yellow);border-color:var(--yellow);color:var(--yellow-ink);transform:scale(1.08)}
.tkt-map li.done b{background:rgba(255,255,255,.18);border-color:transparent;color:#fff}
.tkt-urgent{margin-top:auto!important;font-size:.86rem!important}
.tkt-urgent a{color:#fff;font-weight:600;text-decoration-color:var(--yellow);text-decoration-thickness:2px;text-underline-offset:3px}

/* Formulario por pasos */
.tkt-form{display:flex;flex-direction:column;min-height:0;background:var(--bg-2);color:var(--ink)}
.tkt-head{display:flex;align-items:center;gap:14px;padding:22px 24px 6px 30px}
.tkt-prog{flex:1;display:flex;gap:6px}
.tkt-prog i{flex:1;height:5px;border-radius:5px;background:color-mix(in srgb, var(--ink) 11%, transparent);position:relative;overflow:hidden}
.tkt-prog i::after{content:"";position:absolute;inset:0;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.tkt-prog i.on::after{transform:scaleX(1)}
.tkt-count{font-size:.82rem;font-weight:600;color:var(--mute);white-space:nowrap;font-variant-numeric:tabular-nums}
.tkt-count b{color:var(--ink)}
.tkt-x{display:grid;place-items:center;width:40px;height:40px;flex:none;border:0;border-radius:11px;background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink);cursor:pointer;transition:background .2s,transform .3s var(--ease)}
.tkt-x:hover{background:color-mix(in srgb, var(--ink) 12%, transparent);transform:rotate(90deg)}
.tkt-x svg{width:20px;height:20px}
.tkt-pages{position:relative;flex:none;perspective:1100px;overflow:hidden;transition:height .55s var(--ease)}
.tkt-page{position:absolute;left:0;right:0;top:0;padding:14px 30px 10px;display:flex;flex-direction:column;gap:14px;transform-origin:left center;transform:rotateY(62deg) translateX(40px) translateZ(-60px);opacity:0;visibility:hidden;pointer-events:none;transition:transform .7s var(--ease),opacity .45s ease,visibility 0s linear .7s}
.tkt-page.is-past{transform-origin:right center;transform:rotateY(-62deg) translateX(-40px) translateZ(-60px)}
.tkt-page.is-on{transform:none;opacity:1;visibility:visible;pointer-events:auto;transition:transform .75s var(--ease),opacity .5s ease .08s,visibility 0s}
.tkt-page h3{margin:0 0 2px;font-family:var(--display);font-size:1.45rem;letter-spacing:-.02em}
.tkt-page.is-on > *{animation:tktRise .6s var(--ease) both}
.tkt-page.is-on > :nth-child(2){animation-delay:.08s}.tkt-page.is-on > :nth-child(3){animation-delay:.14s}.tkt-page.is-on > :nth-child(4){animation-delay:.2s}.tkt-page.is-on > :nth-child(5){animation-delay:.26s}
@keyframes tktRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tkt-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tkt-field{display:flex;flex-direction:column;gap:6px;font-size:.84rem;font-weight:600;min-width:0}
.tkt-field .opt{font-weight:500;font-size:.78rem;color:var(--mute);margin-left:4px}
.tkt-field small{font-weight:400;font-size:.78rem;color:var(--mute)}
.tkt-field input,.tkt-field textarea{width:100%;min-width:0;font:inherit;font-size:.96rem;font-weight:400;color:#17181b;background:#fff;border:1.5px solid color-mix(in srgb, var(--ink) 14%, transparent);border-radius:12px;padding:12px 14px;min-height:46px;resize:vertical;transition:border-color .2s,box-shadow .2s,transform .2s}
.tkt-field input:focus,.tkt-field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb, var(--yellow) 40%, transparent)}
.tkt-field [aria-invalid="true"]{border-color:#d64545;animation:tktShake .4s}
@keyframes tktShake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.tkt-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;perspective:800px}
.lvl{position:relative;display:block;cursor:pointer}
.lvl input{position:absolute;opacity:0;width:0;height:0}
.lvl-body{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px 16px;border-radius:16px;background:#fff;color:#17181b;border:1.5px solid color-mix(in srgb, #17181b 12%, transparent);transform-style:preserve-3d;transition:transform .45s var(--spring),box-shadow .35s,border-color .25s}
.lvl:hover .lvl-body{transform:translateZ(16px) rotateX(6deg)}
.lvl input:checked + .lvl-body{transform:translateZ(28px) rotateX(8deg);border-color:var(--lc);box-shadow:0 22px 34px -20px var(--lc)}
.lvl input:focus-visible + .lvl-body{outline:3px solid var(--ink);outline-offset:3px}
.lvl-baja{--lc:#2f9a5b}.lvl-media{--lc:#e0a000}.lvl-alta{--lc:#d64545}
.lvl-ico{width:30px;height:30px;padding:6px;border-radius:10px;color:var(--lc);background:color-mix(in srgb, var(--lc) 14%, transparent)}
.lvl-title{font-weight:700;font-size:1.02rem}
.lvl-desc{font-size:.84rem;line-height:1.4;color:#555a63}
.tkt-note{margin:0;font-size:.82rem;color:var(--mute)}
.tkt-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.tkt-check{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;line-height:1.45;color:var(--mute)}
.tkt-check input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--ink)}
.tkt-check a{color:var(--ink)}
.tkt-foot{display:flex;align-items:center;gap:12px;padding:12px 24px 24px 30px;margin-top:auto}
.tkt-status{flex:1;margin:0;font-size:.86rem;font-weight:500;min-height:1.2em;color:#c23b3b;text-align:center}
.tkt-prev,.tkt-next,.tkt-send{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:13px;font:inherit;font-weight:700;font-size:.95rem;cursor:pointer;transition:transform .25s var(--ease),background .25s,opacity .25s,box-shadow .25s}
.tkt-prev svg,.tkt-next svg{width:18px;height:18px}
.tkt-prev{border:1.5px solid color-mix(in srgb, var(--ink) 16%, transparent);background:transparent;color:var(--ink)}
.tkt-prev:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}
.tkt-prev[disabled]{opacity:0;pointer-events:none}
.tkt-next[hidden],.tkt-send[hidden]{display:none}
.tkt-next,.tkt-send{border:0;background:var(--ink);color:var(--bg-2);box-shadow:0 10px 22px -12px rgba(0,0,0,.6)}
.tkt-next:hover,.tkt-send:hover:not(:disabled){transform:translateY(-1px)}
.tkt-next:hover svg{transform:translateX(3px)}
.tkt-next svg{transition:transform .25s var(--ease)}
.tkt-send{background:var(--yellow);color:var(--yellow-ink)}
.tkt-send:disabled{opacity:.7;cursor:wait}
.tkt-send .sp{width:18px;height:18px;display:none;animation:tktSpin .9s linear infinite}
.tkt-send.load .sp{display:block}
@keyframes tktSpin{to{transform:rotate(360deg)}}

/* Cara de atrás: confirmación */
.tkt-done{position:relative;z-index:1;padding:40px 34px;text-align:center;max-width:30rem}
.tkt-done .tic{width:82px;height:82px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);color:var(--yellow-ink);box-shadow:0 18px 40px -16px var(--yellow)}
.tkt-done .tic svg{width:40px;height:40px}
.tkt-done .tic path{stroke-dasharray:30;stroke-dashoffset:30}
.tkt.flip .tkt-done .tic{animation:tktPop .7s var(--spring) .55s both}
.tkt.flip .tkt-done .tic path{animation:tktDraw .5s ease .85s forwards}
@keyframes tktPop{from{transform:scale(.3) rotateY(-180deg);opacity:0}to{transform:none;opacity:1}}
@keyframes tktDraw{to{stroke-dashoffset:0}}
.tkt-done h2{margin:0;font-family:var(--display);font-size:1.8rem;letter-spacing:-.02em}
.tkt-done p{margin:10px auto 0;color:rgba(255,255,255,.8);font-size:.96rem;line-height:1.55}
.tkt-ref{display:inline-block;margin:20px 0 0;font-family:"JetBrains Mono","SF Mono",ui-monospace,monospace;font-size:1.35rem;font-weight:600;letter-spacing:.6px;color:var(--yellow-ink);background:var(--yellow);border-radius:12px;padding:12px 22px;box-shadow:0 14px 30px -16px var(--yellow)}
.tkt-done .tkt-done-close{display:flex;margin:26px auto 0;background:#fff;border-color:#fff;color:#17181b}
.tkt-burst{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.tkt-burst i{position:absolute;left:50%;top:40%;width:var(--s);height:var(--s);clip-path:polygon(0 0,100% 50%,0 100%);background:var(--c);opacity:0}
.tkt.flip .tkt-burst i{animation:tktBurst 1.3s cubic-bezier(.15,.8,.3,1) .6s both}
@keyframes tktBurst{0%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(.3)}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(1)}}

@media (max-width:760px){
  .tkt{padding:10px;align-items:end}
  .tkt-front{grid-template-columns:1fr;max-height:calc(100vh - 20px)}
  .tkt-side-in{padding:20px 22px 16px;gap:8px}
  .tkt-side h2{font-size:1.35rem}
  .tkt-side p,.tkt-map,.tkt-urgent{display:none}
  .tkt-head{padding:16px 16px 4px 20px}
  .tkt-page{padding:10px 20px}
  .tkt-foot{padding:10px 16px 18px 20px}
  .tkt-row,.tkt-levels{grid-template-columns:1fr}
  .lvl-body{flex-direction:row;align-items:center;flex-wrap:wrap;padding:12px 14px}
  .lvl-desc{width:100%}
}
@media (prefers-reduced-motion: reduce){
  .tkt-stage,.tkt-card,.tkt-page{transition:opacity .25s!important;transform:none!important}
  .tkt.flip .tkt-card{transform:rotateY(180deg)!important}
  .fx,.tkt-burst i,.tkt-page.is-on > *{animation:none!important;opacity:.9}
}

/* ---------- Logos oficiales de cofinanciación ---------- */
.oficiales{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;justify-content:center;padding:0 16px 10px;pointer-events:none}
.tlx-has-dock .oficiales{display:none} /* en la portada, con la barra de navegación, van dentro del contacto */
.of-strip{display:flex;align-items:center;gap:clamp(18px,3vw,40px);padding:9px 18px;border-radius:14px;background:rgba(var(--bg2-rgb),.82);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 30px -20px rgba(0,0,0,.5);perspective:600px}
.of-item{display:block;transform-style:preserve-3d;animation:ofIn .8s var(--ease) both,ofFloat 6s ease-in-out infinite;animation-delay:calc(.15s + var(--n) * .12s), calc(1s + var(--n) * .5s)}
.of-item img{display:block;height:clamp(26px,3.2vw,34px);width:auto}
@keyframes ofIn{from{opacity:0;transform:translateY(14px) rotateX(-35deg)}to{opacity:1;transform:none}}
@keyframes ofFloat{0%,100%{transform:translateY(0) rotateY(0)}50%{transform:translateY(-3px) rotateY(6deg)}}
/* En la portada la tira se integra dentro del bloque de contacto, no fija */
.tlx-story .ch.contact .of-inline{margin-top:24px}
.of-inline .of-strip{background:transparent;border:0;box-shadow:none;padding:0;flex-wrap:wrap;justify-content:flex-start;gap:clamp(16px,2.5vw,32px)}
.of-inline .of-item img{height:32px;filter:none}
@media (max-width:760px){
  .oficiales{padding:0 10px 8px}
  .of-strip{gap:14px;padding:7px 12px}
  .of-item img{height:22px}
}
@media (prefers-reduced-motion: reduce){ .of-item{animation:ofIn .01s both} }
