/* LDC Multimedia — versión 3. Negro + amarillo #F5C518 + rojo de "al aire". Manrope / Inter. Sin frameworks. */

@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url('../fonts/inter-latin.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url('../fonts/manrope-latin.woff2') format('woff2')}

:root{
  --bg:#070707; --bg2:#101010; --bg3:#181818; --field:#1a1a1a;
  --tx:#fff; --tx2:#bdbdbd; --tx3:#8f8f8f;
  --y:#F5C518; --y2:#E0B30C; --red:#FF3B30; --green:#2BD46B;
  --pad:clamp(20px,5vw,56px); --maxw:1320px; --nav-h:78px;
  --ease:cubic-bezier(.2,.75,.2,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --f:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --fh:'Manrope','Inter',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 8px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);font:400 16px/1.6 var(--f);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
body.no-scroll{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer}
h1,h2,h3{font-family:var(--fh);font-weight:800;letter-spacing:-.025em;line-height:1.02;margin:0}
p{margin:0}
:focus-visible{outline:2px solid var(--y);outline-offset:3px;border-radius:6px}
::selection{background:var(--y);color:#000}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-64px;z-index:400;background:var(--y);color:#000;padding:10px 16px;border-radius:10px;font-weight:600;transition:top .2s}
.skip:focus{top:16px}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.i{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--y);font:600 13px/1 var(--f);letter-spacing:.2em}
.eyebrow::before{content:"";width:34px;height:2px;background:currentColor}
.eyebrow--dark{color:#000}
.sec{padding-block:clamp(48px,5.2vw,72px)}
.lead{color:var(--tx2);font-size:clamp(16px,1.5vw,19px);line-height:1.7}

/* grano de película */
.grain{position:fixed;inset:-50%;z-index:300;pointer-events:none;opacity:.06;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,-2%)}80%{transform:translate(5%,4%)}100%{transform:translate(0,0)}}

/* cursor tipo visor (solo computadora) */
.cursor{position:fixed;left:0;top:0;z-index:350;pointer-events:none;display:none}
.has-cursor .cursor{display:block}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor label,.has-cursor [data-cursor]{cursor:none}
.has-cursor input,.has-cursor textarea{cursor:text}
.cursor__dot{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--y);transform:translate(var(--cx,-100px),var(--cy,-100px))}
.cursor__ring{position:absolute;left:0;top:0;width:var(--s,38px);height:var(--s,38px);margin:calc(var(--s,38px) / -2) 0 0 calc(var(--s,38px) / -2);transform:translate(var(--qx,-100px),var(--qy,-100px));transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease)}
.cursor__ring i{position:absolute;width:10px;height:10px;border:2px solid var(--y)}
.cursor__ring i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}
.cursor__ring i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.cursor__ring i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}
.cursor__ring i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.cursor__lbl{position:absolute;left:0;top:0;transform:translate(calc(var(--qx,-100px) - 50%),calc(var(--qy,-100px) - 50%));color:#000;background:var(--y);font:800 11px/1 var(--fh);letter-spacing:.14em;padding:6px 8px;border-radius:4px;opacity:0;transition:opacity .2s}
.cursor.is-big{--s:88px}
.cursor.is-big .cursor__lbl{opacity:1}
.cursor.is-big .cursor__dot{opacity:0}
.cursor.is-link{--s:54px}

/* ---------- botones ---------- */
.btn{--b:var(--bg3);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:12px;background:var(--b);color:var(--tx);font:700 15px/1.2 var(--fh);letter-spacing:.01em;white-space:nowrap;transition:background-color .2s,box-shadow .3s,color .2s;transform:translate(var(--mx,0),var(--my,0))}
.btn .i{width:20px;height:20px;transition:transform .3s var(--ease)}
.btn:hover .i:last-child{transform:translateX(4px)}
.btn:active{filter:brightness(.92)}
.btn--y{--b:var(--y);color:#000;box-shadow:0 14px 36px -14px rgba(245,197,24,.7)}
.btn--y:hover{--b:#ffd43b;box-shadow:0 20px 50px -14px rgba(245,197,24,.85)}
.btn--ghost{--b:rgba(255,255,255,.1)}
.btn--ghost:hover{--b:rgba(255,255,255,.18)}
.btn--sm{min-height:44px;padding:0 20px;font-size:14px;border-radius:10px}
.btn--lg{min-height:58px;padding:0 30px;font-size:16px}
.btn--xl{min-height:68px;padding:0 40px;font-size:19px;border-radius:14px}
[data-magnetic]{transition:transform .35s var(--ease),background-color .2s,box-shadow .3s,color .2s}

/* ---------- menú superior ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:200;transition:background-color .3s,box-shadow .3s}
.nav.is-solid{background:rgba(7,7,7,.82);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3)}
.nav.is-menu{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.nav__in{display:flex;align-items:center;gap:30px;height:var(--nav-h);max-width:1440px;margin-inline:auto;padding-inline:var(--pad)}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto;color:#fff}
.brand__logo{width:74px;height:37px;display:block;color:#fff;fill:currentColor;transition:color .25s}
.brand:hover .brand__logo{color:var(--y)}
.brand__txt{font:800 14px/1 var(--fh);letter-spacing:.32em;padding-top:2px}
.nav__links{position:relative;display:flex;gap:34px}
.nav__links a{color:var(--tx2);font:600 15px/1 var(--fh);letter-spacing:.02em;padding:10px 0;transition:color .2s}
.nav__links a:hover,.nav__links a.is-active{color:#fff}
.nav__ink{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--y);opacity:0;transition:transform .45s var(--ease),width .45s var(--ease),opacity .25s}
.nav__ink.is-on{opacity:1}
.nav__progress{position:absolute;left:0;right:0;bottom:0;height:2px;pointer-events:none}
.nav__progress span{display:block;height:100%;background:var(--y);transform-origin:0 50%;transform:scaleX(0)}
.nav__burger{display:none;position:relative;width:48px;height:48px;border-radius:12px;background:var(--y)}
.nav__burger span{position:absolute;left:14px;right:14px;height:2.5px;border-radius:2px;background:#000;transition:transform .35s var(--ease),top .35s var(--ease)}
.nav__burger span:first-child{top:18px}
.nav__burger span:last-child{top:27px}
.nav__burger[aria-expanded="true"]{background:#000}
.nav__burger[aria-expanded="true"] span{background:var(--y)}
.nav__burger[aria-expanded="true"] span:first-child{top:22.5px;transform:rotate(45deg)}
.nav__burger[aria-expanded="true"] span:last-child{top:22.5px;transform:rotate(-45deg)}
.nav.is-menu .brand,.nav.is-menu .brand__logo{color:#000}

.menu{position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--nav-h) + 30px) var(--pad) calc(34px + env(safe-area-inset-bottom));background:var(--y);color:#000;clip-path:circle(0% at calc(100% - 44px) 39px);transition:clip-path .6s var(--ease-io);overflow-y:auto}
.menu[hidden]{display:none}
.menu.is-open{clip-path:circle(150% at calc(100% - 44px) 39px)}
.menu__links{display:flex;flex-direction:column}
.menu__links a{display:flex;align-items:baseline;gap:14px;padding:4px 0;font:800 clamp(40px,12vw,64px)/1.05 var(--fh);letter-spacing:-.03em;opacity:0;transform:translateY(24px);transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i) * 70ms + 150ms)}
.menu__links small{font:700 13px/1 var(--f);letter-spacing:.1em}
.menu.is-open .menu__links a{opacity:1;transform:none}
.menu__tel{display:inline-flex;align-items:center;gap:12px;font:800 22px/1 var(--fh)}

/* ---------- portada ---------- */
.hero{position:relative;isolation:isolate;display:flex;align-items:center;overflow:hidden;padding:calc(var(--nav-h) + 34px) 0 56px;background:radial-gradient(60% 70% at 78% 45%,rgba(245,197,24,.14),transparent 70%),radial-gradient(40% 50% at 10% 90%,rgba(255,59,48,.08),transparent 70%),var(--bg)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px);pointer-events:none}
.hero__in{width:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--pad);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(30px,4vw,64px);align-items:center}
.live{display:flex;align-items:center;gap:14px;margin-bottom:22px;font:600 13px/1 var(--f);letter-spacing:.16em;font-variant-numeric:tabular-nums;color:var(--tx2);animation:up .8s var(--ease) both}
.live__pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--red);color:#fff;font-weight:700}
.live__pill i{width:8px;height:8px;border-radius:50%;background:#fff;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:.2}}
.hero__title{font-size:clamp(40px,13vw,72px);line-height:.92;letter-spacing:-.045em}
@media (min-width:901px){.hero__title{font-size:clamp(50px,7vw,112px)}}
.hero__title .l1{display:block;animation:rise 1s var(--ease) .05s both}
.hero__title .l2{display:block;margin-top:.08em}
.hero__title .l2>span{position:relative;display:inline-block;padding:.02em .14em .06em;margin-left:-.14em;color:#000;z-index:0;white-space:nowrap}
.hero__title .l2>span::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--y);transform:skewX(-9deg);transform-origin:0 50%;animation:wipe .8s var(--ease-io) .35s both}
.hero__title .l2>span{animation:fadein .01s linear .75s both}
@keyframes wipe{from{transform:skewX(-9deg) scaleX(0)}to{transform:skewX(-9deg) scaleX(1)}}
@keyframes fadein{from{color:transparent}to{color:#000}}
@keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hero__sub{max-width:560px;margin-top:24px;color:#d6d6d6;font-size:clamp(17px,1.6vw,21px);line-height:1.5;animation:up .9s var(--ease) .5s both}
.rot{position:relative;display:inline-block;color:var(--y);font-weight:600;transition:transform .3s var(--ease),opacity .3s}
.rot.is-out{transform:translateY(-50%);opacity:0}
.rot.is-pre{transform:translateY(50%);opacity:0;transition:none}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;animation:up .9s var(--ease) .65s both}
.hero__scroll{display:none}
.hero__scroll i{width:2px;height:34px;background:linear-gradient(var(--y),transparent);animation:drop 1.8s var(--ease) infinite;transform-origin:top}
@keyframes drop{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* pared de monitores (multiview) */
.hero__wall{position:relative;perspective:1400px;animation:up 1s var(--ease) .3s both}
.wall__hint{display:flex;align-items:center;gap:8px;margin:0 0 12px 4px;color:var(--tx3);font:600 12px/1 var(--f);letter-spacing:.12em;text-transform:uppercase}
.wall__hint b{color:#fff;background:var(--red);padding:4px 7px;border-radius:4px;font-weight:700}
.mv{--g:5px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--g);padding:var(--g);border-radius:14px;background:#000;box-shadow:0 0 0 1px rgba(255,255,255,.06),0 50px 120px -40px rgba(0,0,0,.9),0 0 90px -30px rgba(245,197,24,.35);transform:rotateY(var(--ry,-14deg)) rotateX(var(--rx,4deg));transform-style:preserve-3d;transition:transform .5s var(--ease)}
.mv__tile{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:4px;background:#111}
.mv__big{grid-column:span 2;grid-row:span 2;aspect-ratio:16/9}
.mv__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.8)}
.mv__pgm .mv__img{filter:none}
.mv__pgm::after,.mv__pvw::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 3px var(--red);pointer-events:none}
.mv__pvw::after{box-shadow:inset 0 0 0 3px var(--green)}
.mv__lbl{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:6px;padding:4px 6px;background:rgba(0,0,0,.72);font:700 10px/1 var(--f);letter-spacing:.12em;text-align:center}
.mv__big .mv__lbl{font-size:12px;padding:6px 8px}
.tag{padding:3px 6px;border-radius:3px;color:#000;font-size:10px}
.tag--r{background:var(--red);color:#fff}
.tag--g{background:var(--green)}
.mv__tc{position:absolute;top:8px;right:8px;z-index:2;padding:4px 6px;border-radius:3px;background:rgba(0,0,0,.6);font:600 11px/1 var(--f);letter-spacing:.08em;font-variant-numeric:tabular-nums}
.mv__flash{position:absolute;inset:0;z-index:3;background:#fff;opacity:0;pointer-events:none}
.mv__pgm.is-cut .mv__flash{animation:flash .4s ease-out}
@keyframes flash{from{opacity:.35}to{opacity:0}}
.mv__cam{cursor:pointer;transition:transform .25s var(--ease)}
.mv__cam:hover{transform:scale(1.04);z-index:3}
.mv__cam:hover .mv__img{filter:grayscale(1) brightness(1.05)}
.mv__cam.is-pgm{box-shadow:0 0 0 2px var(--red)}
.mv__cam.is-pvw{box-shadow:0 0 0 2px var(--green)}
.mv__tally{width:7px;height:7px;border-radius:50%;background:#444}
.mv__cam.is-pgm .mv__tally{background:var(--red);box-shadow:0 0 8px var(--red)}
.mv__cam.is-pvw .mv__tally{background:var(--green);box-shadow:0 0 8px var(--green)}
.mv__meter{position:absolute;right:4px;top:4px;bottom:20px;width:4px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden}
.mv__meter::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--green) 0 60%,var(--y) 60% 85%,var(--red) 85%);animation:lvl 1.6s ease-in-out infinite;animation-delay:calc(var(--k,0) * -.37s)}
@keyframes lvl{0%,100%{clip-path:inset(60% 0 0 0)}20%{clip-path:inset(22% 0 0 0)}40%{clip-path:inset(48% 0 0 0)}60%{clip-path:inset(10% 0 0 0)}80%{clip-path:inset(36% 0 0 0)}}
.mv__bars{display:grid;place-items:center;background:linear-gradient(90deg,#c0c0c0 0 14.28%,#c0c000 0 28.57%,#00c0c0 0 42.85%,#00c000 0 57.14%,#c000c0 0 71.42%,#c00000 0 85.71%,#0000c0 0)}
.mv__bars span{display:grid;place-items:center;padding:6px 10px;border-radius:3px;background:#000}
.mv__logo{width:44px;height:22px;color:#fff;fill:currentColor;display:block}
.mv__clock{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#0d0d0d}
.mv__clock .tc{font:700 clamp(10px,1.05vw,15px)/1 var(--f);letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--y)}
.mv__clock small{display:flex;align-items:center;gap:5px;font:700 9px/1 var(--f);letter-spacing:.16em;color:var(--tx2)}
.mv__clock small i{width:6px;height:6px;border-radius:50%;background:var(--red);animation:blink 1.1s steps(1) infinite}

/* ---------- cinta gigante ---------- */
.mq{position:relative;padding-block:clamp(8px,1.2vw,16px);overflow:hidden;background:var(--bg)}
.mq__row{overflow:hidden;white-space:nowrap}
.mq__row+.mq__row{margin-top:clamp(2px,.5vw,6px)}
.mq__track{display:inline-flex;will-change:transform}
.mq__set{display:inline-flex;align-items:center}
.mq span,.mq i{font:800 clamp(24px,3.4vw,50px)/1.1 var(--fh);letter-spacing:-.02em;font-style:normal}
.mq span{padding-inline:clamp(10px,1.2vw,18px)}
.mq .f{color:#fff}
.mq .o{color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.85)}
.mq .mq__row:nth-child(2) .f{color:var(--y)}
.mq i{color:var(--y);font-size:clamp(16px,2vw,28px)}

/* ---------- servicios: segmentos que corren de lado ---------- */
.rd{position:relative;background:var(--bg)}
.rd__pin{position:relative;padding-block:clamp(48px,5.5vw,76px)}
.rd__head{max-width:1440px;margin:0 auto clamp(18px,2.4vw,30px);padding-inline:var(--pad);display:flex;align-items:flex-end;justify-content:space-between;gap:24px 50px;flex-wrap:wrap}
.rd__head h2{font-size:clamp(32px,4.4vw,64px);max-width:900px;letter-spacing:-.04em}
.rd__bar{display:flex;gap:6px}
.rd__bar button{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:110px;padding:12px 14px 18px;border-radius:10px;background:var(--bg2);color:var(--tx3);font:700 14px/1 var(--fh);text-align:left;transition:background-color .3s,color .3s}
.rd__bar button:hover{background:var(--bg3);color:#fff}
.rd__bar button b{font:700 11px/1 var(--f);letter-spacing:.14em}
.rd__bar button i{position:absolute;left:14px;right:14px;bottom:8px;height:3px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden}
.rd__bar button i::after{content:"";position:absolute;inset:0;background:var(--y);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--ease)}
.rd__bar button.is-past i::after,.rd__bar button.is-on i::after{transform:scaleX(1)}
.rd__bar button.is-on{background:var(--bg3);color:#fff}
.rd__lbl{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd__bar button.is-on b{color:var(--y)}
.rd__track{display:flex;gap:clamp(18px,2.4vw,36px);padding-inline:var(--pad);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.rd__track::-webkit-scrollbar{display:none}
.rd__panel{flex:none;width:min(1240px,86vw);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,3.5vw,56px);align-items:center;padding:clamp(16px,2vw,24px);border-radius:24px;background:var(--bg2);scroll-snap-align:center}
.rd__media{position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;background:#000}
.rd__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transform:scale(1.06);transition:transform 1.2s var(--ease)}
.rd__panel:hover .rd__media img{transform:scale(1.12)}
.rd__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 30%,transparent 50%,rgba(0,0,0,.8))}
.rd__live{position:absolute;z-index:1;left:16px;top:16px;display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;background:var(--red);color:#fff;font:700 11px/1 var(--f);letter-spacing:.14em}
.rd__live i{width:7px;height:7px;border-radius:50%;background:#fff;animation:blink 1.1s steps(1) infinite}
.lt{position:absolute;z-index:1;left:clamp(14px,2.4vw,26px);right:clamp(14px,2.4vw,26px);bottom:clamp(14px,2.4vw,24px);display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.lt__bar{padding:10px 16px;background:var(--y);color:#000;font:800 clamp(14px,1.5vw,20px)/1 var(--fh);letter-spacing:.06em;text-transform:uppercase;clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%);padding-right:28px}
.lt__txt{max-width:100%;padding:8px 14px;background:rgba(0,0,0,.82);color:#eee;font-size:clamp(13px,1.2vw,15px);line-height:1.4}
.rd__text{position:relative;padding:clamp(6px,1vw,14px) clamp(4px,1vw,14px)}
.rd__num{display:block;margin-bottom:6px;color:transparent;-webkit-text-stroke:2px var(--y);font:800 clamp(64px,8vw,130px)/.9 var(--fh);letter-spacing:-.05em}
.rd__text h3{margin-bottom:16px;font-size:clamp(30px,3.4vw,52px);letter-spacing:-.035em}
.rd__text p{margin-bottom:22px;color:var(--tx2);font-size:clamp(15px,1.25vw,17px);line-height:1.7}
.ticks{display:grid;gap:12px;margin:0 0 30px;padding:0;list-style:none}
.ticks li{display:flex;align-items:flex-start;gap:12px;color:#e5e5e5;font-size:15px;line-height:1.5}
.ticks .i{width:20px;height:20px;margin-top:1px;padding:3px;border-radius:50%;background:var(--y);color:#000;stroke-width:3}
.rd.is-pinned .rd__pin{position:sticky;top:0;height:100vh;padding-block:calc(var(--nav-h) + 18px) 24px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.rd.is-pinned .rd__track{flex:1;min-height:0;max-height:660px;align-items:stretch;overflow:visible;scroll-snap-type:none;will-change:transform}
.rd.is-pinned .rd__panel{height:auto}
.rd.is-pinned .rd__media{aspect-ratio:auto;height:100%}
.rd.is-pinned .rd__panel{width:min(1180px,78vw)}
.rd.is-pinned .rd__head h2{font-size:clamp(34px,4.2vw,64px)}

/* ---------- nosotros: bloque amarillo ---------- */
.ys{position:relative;background:var(--y);color:#000;clip-path:polygon(0 3vw,100% 0,100% calc(100% - 3vw),0 100%);margin-block:-1px;padding-block:calc(3vw + clamp(34px,4vw,54px))}
.ys__in{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.ys__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(36px,6vw,90px);align-items:center}
.ys h2{font-size:clamp(34px,4.6vw,68px);letter-spacing:-.045em;margin-bottom:20px}
.ys__lead{font-size:clamp(17px,1.5vw,20px);line-height:1.65;font-weight:500;max-width:620px}
.ys__photo{position:relative;margin:0;border-radius:18px;overflow:hidden;background:#000;transform:rotate(2.5deg);box-shadow:0 40px 80px -30px rgba(0,0,0,.55)}
.ys__photo img{width:100%;aspect-ratio:4/3.3;object-fit:cover;filter:grayscale(1) contrast(1.08)}
.ys__sticker{position:absolute;left:16px;top:16px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#000;color:#fff;font:700 12px/1 var(--f);letter-spacing:.16em}
.ys__sticker i{width:9px;height:9px;border-radius:50%;background:var(--red);animation:blink 1.1s steps(1) infinite}
.ys__caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:clamp(28px,3.4vw,44px) 0 0;padding:0;list-style:none}
.ys__caps li{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:14px;background:#000;color:#fff;font:700 16px/1.2 var(--fh);transition:transform .3s var(--ease)}
.ys__caps li:hover{transform:translateY(-4px) rotate(-1deg)}
.ys__caps .i{color:var(--y)}
.ys__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,44px);margin:clamp(32px,4vw,56px) 0 0;padding:0;list-style:none;counter-reset:s}
.step{position:relative;padding-top:24px;border-top:3px solid #000}
.step__n{display:block;margin-bottom:10px;font:800 clamp(56px,6vw,96px)/.9 var(--fh);letter-spacing:-.05em}
.step h3{margin-bottom:8px;font-size:clamp(22px,2vw,28px)}
.step p{max-width:320px;font-size:16px;line-height:1.55;font-weight:500}

/* ---------- portafolio ---------- */
.pf__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;margin-bottom:clamp(22px,3vw,34px)}
.pf__head h2{font-size:clamp(32px,4.2vw,60px);max-width:820px;letter-spacing:-.04em}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{padding:11px 18px;border-radius:999px;background:var(--bg2);color:var(--tx2);font:600 14px/1 var(--fh);transition:background-color .2s,color .2s,transform .2s}
.filters button:hover{background:var(--bg3);color:#fff}
.filters button[aria-pressed="true"]{background:var(--y);color:#000}
.pf__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(150px,17vw,250px);grid-auto-flow:dense;gap:clamp(10px,1.2vw,16px);margin:0;padding:0;list-style:none}
.pf__item.is-big{grid-column:span 2;grid-row:span 2}
.pf__item.is-wide{grid-column:span 2}
.pf__grid.is-filtered .pf__item{grid-column:auto;grid-row:auto}
.pf__item[hidden]{display:none}
.pf__item.pop{animation:pop .5s var(--ease) var(--pd,0ms) both}
@keyframes pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.pf__btn{position:relative;display:block;width:100%;height:100%;border-radius:16px;overflow:hidden;background:#000;text-align:left}
.pf__btn img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.85);transition:transform .8s var(--ease),filter .4s}
.pf__btn::before{content:"";position:absolute;inset:0;z-index:1;background:var(--y);mix-blend-mode:multiply;opacity:0;transition:opacity .4s}
.pf__btn::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.8))}
.pf__btn:hover img,.pf__btn:focus-visible img{transform:scale(1.08);filter:grayscale(1) brightness(1.05)}
.pf__btn:hover::before,.pf__btn:focus-visible::before{opacity:.9}
.pf__cap{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;display:flex;flex-direction:column;gap:4px;font:700 16px/1.25 var(--fh);transition:transform .4s var(--ease)}
.pf__cap small{color:var(--y);font:700 11px/1 var(--f);letter-spacing:.16em;transition:color .3s}
.pf__btn:hover .pf__cap small{color:#000}
.pf__btn:hover .pf__cap{transform:translateY(-6px)}
.pf__vf{position:absolute;z-index:2;inset:14px;opacity:0;transform:scale(1.06);transition:opacity .3s,transform .45s var(--ease);
  background:linear-gradient(#000,#000) 0 0/22px 3px no-repeat,linear-gradient(#000,#000) 0 0/3px 22px no-repeat,
    linear-gradient(#000,#000) 100% 0/22px 3px no-repeat,linear-gradient(#000,#000) 100% 0/3px 22px no-repeat,
    linear-gradient(#000,#000) 0 100%/22px 3px no-repeat,linear-gradient(#000,#000) 0 100%/3px 22px no-repeat,
    linear-gradient(#000,#000) 100% 100%/22px 3px no-repeat,linear-gradient(#000,#000) 100% 100%/3px 22px no-repeat}
.pf__btn:hover .pf__vf{opacity:1;transform:none}

.lb{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(5,5,5,.96);color:#fff;overflow:hidden}
.lb::backdrop{background:rgba(0,0,0,.6)}
.lb[open]{display:grid;place-items:center;animation:lbIn .3s var(--ease)}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lb__fig{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:min(1240px,90vw);margin:0}
.lb__fig img{width:auto;height:auto;max-width:100%;max-height:76vh;max-height:76dvh;border-radius:12px;filter:grayscale(1);user-select:none;-webkit-user-drag:none}
.lb__fig img.is-swap{animation:pop .35s var(--ease)}
.lb figcaption{display:flex;align-items:baseline;gap:16px;font:700 16px/1.2 var(--fh)}
.lb__count{color:var(--y);font:600 13px/1 var(--f);letter-spacing:.12em;font-variant-numeric:tabular-nums}
.lb__nav,.lb__close{position:absolute;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.1);transition:background-color .2s,color .2s}
.lb__nav:hover,.lb__close:hover{background:var(--y);color:#000}
.lb__prev{left:clamp(10px,3vw,34px);top:50%;margin-top:-28px}
.lb__next{right:clamp(10px,3vw,34px);top:50%;margin-top:-28px}
.lb__close{right:clamp(10px,3vw,30px);top:clamp(10px,3vw,24px)}

/* ---------- ON AIR ---------- */
.onair{position:relative;isolation:isolate;padding-block:clamp(56px,7vw,96px);text-align:center;overflow:hidden}
.onair::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(55% 65% at 50% 38%,rgba(255,59,48,.26),transparent 70%);opacity:0;transition:opacity 1.4s}
.onair.is-live::before{opacity:1}
.onair__in{display:flex;flex-direction:column;align-items:center;gap:22px;padding-inline:var(--pad)}
.onair__sign{display:inline-flex;padding:18px 40px;border-radius:16px;background:#1d0c0b;color:#4f1d1a;font:800 clamp(34px,6vw,80px)/1 var(--fh);letter-spacing:.14em;box-shadow:inset 0 0 0 4px #2f1311;transition:background-color .3s,color .3s,box-shadow .3s}
.onair.is-live .onair__sign{background:var(--red);color:#fff;box-shadow:inset 0 0 0 4px rgba(255,255,255,.25),0 0 50px rgba(255,59,48,.7),0 0 160px rgba(255,59,48,.4);animation:flicker 1.1s steps(1) both}
@keyframes flicker{0%{opacity:.35}8%{opacity:1}14%{opacity:.3}22%{opacity:1}30%{opacity:.55}38%{opacity:1}}
.onair h2{max-width:980px;font-size:clamp(30px,4.6vw,64px);letter-spacing:-.045em}

/* ---------- contacto ---------- */
.contact__t{font-size:clamp(36px,5vw,72px);letter-spacing:-.045em;max-width:900px}
.contact__tel{display:inline-flex;flex-direction:column;gap:10px;margin-top:clamp(18px,2.4vw,30px);color:#fff;transition:color .25s}
.contact__lbl{display:inline-flex;align-items:center;gap:10px;color:var(--y);font:700 13px/1 var(--f);letter-spacing:.2em}
.contact__lbl .i{width:20px;height:20px}
.contact__num{font:800 clamp(40px,7vw,110px)/.95 var(--fh);letter-spacing:-.045em;background:linear-gradient(90deg,var(--y),var(--y)) 0 100%/0 6px no-repeat;padding-bottom:8px;transition:background-size .5s var(--ease)}
.contact__tel:hover .contact__num{background-size:100% 6px}
.contact__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,70px);align-items:start;margin-top:clamp(20px,2.6vw,34px)}
.contact__web{margin-top:28px;font:800 20px/1.2 var(--fh)}
.contact__web span{display:block;margin-bottom:8px;color:var(--tx3);font:600 12px/1 var(--f);letter-spacing:.16em}
.form{position:relative;display:grid;gap:18px;padding:clamp(22px,3.5vw,42px);border-radius:24px;background:var(--bg2)}
.field{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;border:0}
.field label,.field legend{padding:0;color:var(--tx2);font-size:13px;font-weight:600}
.field legend{margin-bottom:8px}
.opt{margin-left:6px;color:var(--tx3);font-weight:400}
.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.form input:not([type=radio]),.form textarea{width:100%;min-height:52px;padding:14px 16px;border:0;border-radius:12px;background:var(--field);color:#fff;font:400 16px/1.4 var(--f);transition:box-shadow .2s,background-color .2s;-webkit-appearance:none;appearance:none}
.form textarea{min-height:124px;resize:vertical}
.form input::placeholder,.form textarea::placeholder{color:#717171}
.form input:focus,.form textarea:focus{outline:none;background:#212121;box-shadow:0 0 0 2px var(--y)}
.form [aria-invalid="true"]{box-shadow:0 0 0 2px var(--red)}
.form input[type=date]{color-scheme:dark}
.pick{display:flex;flex-wrap:wrap;gap:8px}
.pick label{position:relative;cursor:pointer}
.pick input{position:absolute;width:1px;height:1px;opacity:0}
.pick span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--field);color:var(--tx2);font:600 14px/1 var(--fh);transition:background-color .2s,color .2s}
.pick label:hover span{background:#262626;color:#fff}
.pick input:checked+span{background:var(--y);color:#000}
.pick input:focus-visible+span{outline:2px solid var(--y);outline-offset:3px}
.form__err{color:#ff8f86;font-size:14px}
.form__send{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}
.form__send .btn{flex:1 1 220px;white-space:normal;text-align:center;line-height:1.25;padding-block:12px}
.form__ok{padding:12px 14px;border-radius:10px;background:rgba(43,212,107,.1);color:var(--tx2);font-size:14px}
.form__ok b{color:#fff}
.form.is-shake{animation:shake .4s}
@keyframes shake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}

/* ---------- pie ---------- */
.foot{padding-top:clamp(36px,4.4vw,56px);padding-bottom:calc(30px + env(safe-area-inset-bottom));background:#030303;overflow:hidden}
.foot__top{display:flex;flex-wrap:wrap;align-items:center;gap:20px 36px}
.foot .brand{margin-right:auto}
.foot__nav{display:flex;flex-wrap:wrap;gap:26px}
.foot__nav a,.foot__tel{color:var(--tx2);font:600 15px/1 var(--fh);transition:color .2s}
.foot__nav a:hover,.foot__tel:hover{color:var(--y)}
.foot__tel{color:#fff}
.foot__big{margin:clamp(22px,3vw,40px) 0 0;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.22);font:800 clamp(48px,11.6vw,190px)/.85 var(--fh);letter-spacing:-.05em;white-space:nowrap;transition:-webkit-text-stroke-color .4s}
.foot__big:hover{-webkit-text-stroke-color:var(--y)}
.foot__c{margin-top:24px;color:#5e5e5e;font-size:13px}

/* barra fija en celular */
.dock{position:fixed;z-index:120;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:none;gap:10px;padding:8px;border-radius:18px;background:rgba(20,20,20,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 20px 50px -10px rgba(0,0,0,.85);transform:translateY(150%);transition:transform .45s var(--ease)}
.dock.is-on{transform:none}
.dock__b{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:12px;background:rgba(255,255,255,.08);font:700 15px/1 var(--fh)}
.dock__b .i{width:20px;height:20px}
.dock__b--y{background:var(--y);color:#000}

/* aparición: palabras que suben y bloques que entran */
.js [data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.js [data-split] .w>span{display:inline-block;transform:translateY(105%);transition:transform .9s var(--ease) calc(var(--wi) * 55ms)}
.js [data-split].is-in .w>span{transform:none}
.js [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease) var(--d,0ms),transform .8s var(--ease) var(--d,0ms)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js .ys__photo[data-reveal]{transform:translateY(34px) rotate(6deg)}
.js .ys__photo[data-reveal].is-in{transform:rotate(2.5deg)}

/* ---------- tamaños ---------- */
@media (max-width:900px){
  .hero__in{grid-template-columns:minmax(0,1fr)}
  .hero__wall{max-width:640px}
  .mv{--ry:0deg;--rx:0deg}
}
@media (max-width:1100px){
  .ys__grid{grid-template-columns:minmax(0,1fr)}
  .ys__photo{max-width:560px}
  .contact__grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1000px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:block}
  .rd__panel{grid-template-columns:minmax(0,1fr);width:84vw}
  .rd__bar{width:100%}
  .rd__bar button{flex:1;min-width:0;padding:10px 10px 16px;font-size:12px}
  .pf__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(150px,30vw,280px)}
  .ys__caps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  :root{--nav-h:68px}
  .brand__logo{width:62px;height:31px}
  .brand__txt{font-size:12px;letter-spacing:.26em}
  .hero{padding-bottom:40px}
  .hero__cta .btn{flex:1 1 auto}
  .hero__scroll{display:none}
  .wall__hint{font-size:10px}
  .mv{--g:3px;border-radius:10px}
  .mv__lbl{font-size:8px;padding:3px 4px;gap:4px}
  .mv__big .mv__lbl{font-size:10px}
  .mv__tc{font-size:9px;top:5px;right:5px}
  .mv__logo{width:30px;height:15px}
  .mv__clock small{font-size:7px}
  .rd__panel{width:88vw;padding:12px}
  .ys{clip-path:polygon(0 18px,100% 0,100% calc(100% - 18px),0 100%);padding-block:calc(18px + 70px)}
  .ys__caps,.ys__steps{grid-template-columns:minmax(0,1fr)}
  .field-row{grid-template-columns:minmax(0,1fr)}
  .dock{display:flex}
  .foot{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
  .lb__prev,.lb__next{top:auto;bottom:calc(22px + env(safe-area-inset-bottom));margin:0}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .grain{display:none}
  .js [data-reveal],.js [data-split] .w>span{opacity:1;transform:none}
}

/* el visor de fotos va en la capa superior: ahí se usa el cursor normal */
.has-cursor .lb,.has-cursor .lb *{cursor:auto}
.has-cursor .lb button{cursor:pointer}

/* chat de AD3X: cursor normal dentro del chat y, en celular, al lado de la barra Llamar/Cotiza */
.has-cursor #ad3x-chat-widget,.has-cursor #ad3x-chat-widget *{cursor:auto}
.has-cursor #ad3x-chat-widget button,.has-cursor #ad3x-chat-bubble{cursor:pointer}
.cursor.is-off{opacity:0}
@media (max-width:760px){
  .has-chat .dock{right:92px}
  #ad3x-chat-widget{bottom:calc(16px + env(safe-area-inset-bottom))!important}
}
/* formulario: trampa para bots (invisible) y estado de envío */
.hp{position:absolute!important;width:1px;height:1px;opacity:0;pointer-events:none;clip-path:inset(50%);overflow:hidden}
.form.is-sending button[type=submit]{opacity:.7;pointer-events:none}

/* pantallas bajas: los segmentos de servicios caben sin cortar el texto */
@media (min-width:1001px) and (max-height:780px){
  .rd.is-pinned .rd__head h2{font-size:clamp(30px,3.4vw,46px)}
  .rd.is-pinned .rd__num{font-size:clamp(48px,5vw,72px)}
  .rd.is-pinned .rd__text h3{font-size:clamp(26px,2.6vw,36px);margin-bottom:10px}
  .rd.is-pinned .rd__text p{margin-bottom:14px;font-size:15px;line-height:1.6}
  .rd.is-pinned .ticks{gap:8px;margin-bottom:18px}
}
