:root{
  --g:#a31e15; --g2:#c8281d; --gd:#6e100b; --gx:#3a0805; --gl:#f6dcd8; --cream:#fff7f5;
  --ink:#2b0e0c; --mute:#7a5a57; --w:#fff;
  --r:26px; --ease:cubic-bezier(.22,.8,.24,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);background:#fff;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{line-height:1.08;letter-spacing:-.02em;font-weight:800}
.center{text-align:center;margin-top:44px}

/* progreso */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--g),#ff6a5c);z-index:200}

/* ---------- Cabecera ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px clamp(18px,4vw,56px);transition:.4s var(--ease)}
.site-header.stuck{background:rgba(255,255,255,.82);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);padding-block:10px;box-shadow:0 8px 30px -12px rgba(110,16,11,.25)}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.14em;color:var(--g);font-size:1.05rem}
.brand img{width:40px;height:40px;transition:transform .6s var(--ease)}
.brand:hover img{transform:rotate(-12deg) scale(1.1)}
.nav{display:flex;align-items:center;gap:6px}
.nav a{font-weight:600;font-size:.88rem;padding:9px 14px;border-radius:99px;color:var(--ink);position:relative;transition:.3s}
.nav a:not(.btn):hover,.nav a.on:not(.btn){color:var(--g);background:rgba(163,30,21,.07)}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.burger i{position:absolute;left:11px;right:11px;height:2px;background:var(--g);border-radius:2px;transition:.35s var(--ease)}
.burger i:nth-child(1){top:15px}.burger i:nth-child(2){top:21px}.burger i:nth-child(3){top:27px}
.burger[aria-expanded=true] i:nth-child(1){top:21px;transform:rotate(45deg)}
.burger[aria-expanded=true] i:nth-child(2){opacity:0}
.burger[aria-expanded=true] i:nth-child(3){top:21px;transform:rotate(-45deg)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--g2),var(--g) 55%,var(--gd));color:#fff;font-weight:700;font-size:.95rem;padding:15px 28px;border-radius:99px;border:0;cursor:pointer;box-shadow:0 14px 30px -12px rgba(163,30,21,.7);transition:.35s var(--ease);position:relative;overflow:hidden;font-family:inherit}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:.7s var(--ease)}
.btn:hover{transform:translateY(-3px);box-shadow:0 20px 38px -12px rgba(163,30,21,.8)}
.btn:hover::after{transform:translateX(120%)}
.btn b{transition:transform .3s var(--ease)}.btn:hover b{transform:translateX(5px)}
.btn-sm{padding:10px 20px;font-size:.84rem;color:#fff!important;margin-left:6px}
.btn-ghost{background:transparent;color:var(--g);box-shadow:inset 0 0 0 2px var(--g)}
.btn-ghost:hover{background:var(--g);color:#fff}
.btn-white{background:#fff;color:var(--g);box-shadow:0 14px 34px -10px rgba(0,0,0,.45)}

/* ---------- Tipografía común ---------- */
.kicker{display:inline-block;font-size:.76rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--g);padding:7px 16px;border-radius:99px;background:rgba(163,30,21,.08);margin-bottom:18px}
.lead{font-size:clamp(1.02rem,1.5vw,1.25rem);color:var(--mute);max-width:56ch}
.section{padding:clamp(64px,9vw,120px) clamp(18px,5vw,72px);max-width:1360px;margin:0 auto}
.section-head{text-align:center;margin-bottom:clamp(36px,5vw,64px)}
.section-head h2{font-size:clamp(1.9rem,4vw,3.2rem);max-width:20ch;margin:0 auto}

/* ---------- Hero ---------- */
.hero,.page-hero{position:relative;overflow:hidden;background:radial-gradient(1200px 700px at 85% 10%,#ffe9e5,transparent 60%),#fff}
.hero{min-height:100svh;display:flex;align-items:center;padding:120px clamp(18px,5vw,72px) 80px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,70px);align-items:center;max-width:1360px;margin:0 auto;width:100%;position:relative;z-index:2}
.hero h1{font-size:clamp(2.6rem,6.2vw,5.6rem);font-weight:900;margin-bottom:24px;background:linear-gradient(120deg,var(--gx),var(--g) 55%,#e0463a);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;animation:float 14s ease-in-out infinite;pointer-events:none}
.b1{width:520px;height:520px;background:#e0463a;top:-160px;right:-120px;opacity:.28}
.b2{width:420px;height:420px;background:var(--g);bottom:-180px;left:-120px;opacity:.2;animation-delay:-5s}
.b3{width:300px;height:300px;background:#ff9a8f;top:40%;left:38%;opacity:.25;animation-delay:-9s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-30px) scale(1.12)}}

.hero-stage{position:relative;aspect-ratio:1;max-width:560px;margin-left:auto;width:100%;transition:transform .2s linear}
.ring{position:absolute;inset:0;border-radius:50%;border:2px dashed rgba(163,30,21,.28);animation:spin 40s linear infinite}
.ring.r2{inset:9%;border:2px solid rgba(163,30,21,.12);animation-direction:reverse;animation-duration:60s}
@keyframes spin{to{transform:rotate(360deg)}}
.orb{position:absolute;inset:14%;border-radius:50%;background:radial-gradient(circle at 30% 25%,#e8564a,var(--g) 45%,var(--gx) 100%);display:grid;place-items:center;box-shadow:0 0 0 18px rgba(163,30,21,.08),0 0 90px 20px rgba(200,40,29,.35),inset 0 -30px 60px rgba(0,0,0,.3);animation:pulse 5s ease-in-out infinite}
.orb img{width:56%;filter:drop-shadow(0 12px 22px rgba(0,0,0,.35));animation:bob 6s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.04)}}
@keyframes bob{50%{transform:translateY(-12px) rotate(-3deg)}}
.stage-slides{position:absolute;inset:12%;border-radius:50% 50% 50% 14%;overflow:visible}
.stage-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;opacity:0;transform:scale(1.12);transition:opacity 1.2s,transform 6s linear}
.stage-slides img.on{opacity:1;transform:scale(1)}
.float-g{position:absolute;width:23%;right:-2%;top:2%;filter:drop-shadow(0 14px 20px rgba(163,30,21,.35));animation:bob 5s ease-in-out infinite}
.chip{position:absolute;background:#fff;color:var(--g);font-weight:700;font-size:.82rem;padding:10px 18px;border-radius:99px;box-shadow:0 14px 34px -10px rgba(110,16,11,.45);animation:bob 6s ease-in-out infinite}
.c1{left:-4%;top:22%}.c2{right:-6%;top:56%;animation-delay:-2s}.c3{left:8%;bottom:6%;animation-delay:-4s}
.scroll-hint{position:absolute;bottom:26px;left:50%;width:26px;height:42px;border:2px solid var(--g);border-radius:20px;transform:translateX(-50%);z-index:3}
.scroll-hint span{position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;background:var(--g);border-radius:4px;animation:wheel 1.6s infinite}
@keyframes wheel{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(14px)}}

/* ---------- Marquee ---------- */
.marquee{background:linear-gradient(100deg,var(--gx),var(--g),var(--gd));color:#fff;overflow:hidden;padding:20px 0;transform:rotate(-1.2deg);margin:-6px -2% 0;position:relative;z-index:5;box-shadow:0 20px 40px -20px rgba(110,16,11,.6)}
.marquee-track{display:flex;gap:34px;width:max-content;animation:marq 38s linear infinite;align-items:center}
.marquee span{font-weight:800;font-size:clamp(1rem,2vw,1.5rem);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap}
.marquee i{width:10px;height:10px;border-radius:50%;background:#ff9a8f;flex:none}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Tres mundos ---------- */
.worlds{display:flex;gap:18px;height:clamp(520px,72vh,680px)}
.world{position:relative;flex:1;border-radius:var(--r);overflow:hidden;color:#fff;isolation:isolate;transition:flex .7s var(--ease),transform .5s var(--ease),box-shadow .5s;box-shadow:0 30px 60px -30px rgba(110,16,11,.55);--mx:50%;--my:50%}
.worlds:hover .world{flex:.8}
.worlds .world:hover{flex:2}
.world-bg{position:absolute;inset:0;background:center/cover no-repeat;z-index:-3;transition:transform 1.2s var(--ease)}
.world:hover .world-bg{transform:scale(1.12)}
.w-fotografia .world-bg{background-color:#3a0805;background-image:radial-gradient(circle at 70% 25%,#e0463a 0,transparent 45%),radial-gradient(circle at 20% 90%,#a31e15 0,transparent 55%),linear-gradient(160deg,#6e100b,#2a0503)}
.w-publicidad .world-bg{background-color:#a31e15;background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 22px,transparent 22px 60px),linear-gradient(160deg,#c8281d,#8c1710 55%,#4a0a07)}
.w-directo .world-bg{background-color:#6e100b;background-image:radial-gradient(circle at 80% 80%,#ff7a6d 0,transparent 42%),linear-gradient(200deg,#b3231a,#5c0d09 70%)}
.world-bg .wm{position:absolute;width:70%;right:-14%;bottom:-8%;opacity:.14;transition:transform 1.2s var(--ease)}
.world:hover .wm{transform:rotate(-8deg) scale(1.1)}
.world-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(to top,rgba(42,5,3,.92) 0%,rgba(110,16,11,.45) 45%,rgba(163,30,21,.05) 100%);transition:.5s}
.world:hover .world-shade{background:linear-gradient(to top,rgba(42,5,3,.95) 0%,rgba(163,30,21,.5) 55%,rgba(255,106,92,.08) 100%)}
.world-spot{position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,255,255,.2),transparent 60%);opacity:0;transition:opacity .4s}
.world:hover .world-spot{opacity:1}
.world-num{position:absolute;top:22px;right:26px;font-weight:900;font-size:3.6rem;color:rgba(255,255,255,.18);line-height:1}
.world-body{position:absolute;inset:auto 0 0 0;padding:clamp(22px,3vw,40px)}
.world-ico{width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);display:grid;place-items:center;margin-bottom:16px;transition:.5s var(--ease)}
.world-ico svg{width:30px;height:30px}
.world:hover .world-ico{background:#fff;color:var(--g);transform:rotate(-8deg) scale(1.08)}
.world small{font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;opacity:.85}
.world h3{font-size:clamp(1.5rem,2.6vw,2.4rem);margin:6px 0 10px}
.world p{font-size:.95rem;opacity:.92;max-width:42ch;max-height:0;overflow:hidden;opacity:0;transition:max-height .6s var(--ease),opacity .5s .1s}
.world:hover p{max-height:160px;opacity:.95}
.world-btn{display:inline-flex;gap:10px;margin-top:14px;font-weight:700;font-size:.9rem;padding:11px 20px;border-radius:99px;background:#fff;color:var(--g);transition:.4s var(--ease)}
.world:hover .world-btn{transform:translateX(6px)}
.world:hover .world-btn b{animation:nudge .8s infinite}
@keyframes nudge{50%{transform:translateX(5px)}}

/* ---------- Feature (imágenes con halo) ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px);align-items:center}
.feature.rev .feature-media{order:2}
.feature-copy h2{font-size:clamp(2rem,4vw,3.4rem);margin-bottom:18px;color:var(--gx)}
.feature-copy p{font-size:1.08rem;color:var(--mute);margin-bottom:28px;max-width:48ch}
.glow-img{position:relative;aspect-ratio:5/4;border-radius:var(--r);transition:transform .3s ease;transform-style:preserve-3d}
.glow-img::before{content:"";position:absolute;inset:-9%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,rgba(224,70,58,.55),rgba(163,30,21,.22) 55%,transparent 75%);filter:blur(22px);transition:.7s var(--ease)}
.glow-img::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),inset 0 -80px 80px -60px rgba(110,16,11,.55);pointer-events:none}
.glow-img>img,.glow-img>.fallback{width:100%;height:100%;object-fit:cover;border-radius:inherit;transition:transform 1s var(--ease),filter .6s;box-shadow:0 40px 70px -35px rgba(110,16,11,.7)}
.glow-img:hover::before{inset:-16%;filter:blur(30px)}
.glow-img:hover>img{transform:scale(1.06) translateZ(30px)}
.feature-media{position:relative;padding:4%}
.fallback{display:grid;place-items:center;overflow:hidden}
.fallback img{width:42%;opacity:.95;filter:drop-shadow(0 14px 24px rgba(0,0,0,.35));transition:transform 1s var(--ease)}
.glow-img:hover .fallback img{transform:rotate(-8deg) scale(1.1)}
.f-fotografia{background:radial-gradient(circle at 70% 25%,#e0463a,transparent 50%),linear-gradient(160deg,#8c1710,#2a0503)}
.f-publicidad{background:repeating-linear-gradient(115deg,rgba(255,255,255,.08) 0 22px,transparent 22px 60px),linear-gradient(160deg,#c8281d,#6e100b)}
.f-directo{background:radial-gradient(circle at 80% 80%,#ff7a6d,transparent 45%),linear-gradient(200deg,#b3231a,#4a0a07)}

/* ---------- Trabajos / galería ---------- */
.works{background:linear-gradient(#fff,var(--cream) 30%,var(--cream) 70%,#fff);max-width:none}
.works>*{max-width:1280px;margin-inline:auto}
.work-grid,.gallery{columns:3 280px;column-gap:18px}
.work{position:relative;break-inside:avoid;margin-bottom:18px;border-radius:20px;overflow:hidden;cursor:zoom-in;background:#eee;box-shadow:0 22px 44px -26px rgba(110,16,11,.6);transition:transform .5s var(--ease),box-shadow .5s}
.work img{width:100%;transition:transform 1s var(--ease)}
.work::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(58,8,5,.85),rgba(163,30,21,.1) 55%,transparent);opacity:.55;transition:.5s}
.work:hover{transform:translateY(-6px);box-shadow:0 34px 60px -24px rgba(163,30,21,.75)}
.work:hover img{transform:scale(1.08)}
.work:hover::after{opacity:1}
.work figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 20px;color:#fff;z-index:2;display:flex;flex-direction:column;gap:2px;transform:translateY(8px);transition:.5s var(--ease)}
.work:hover figcaption{transform:none}
.work figcaption small{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:700;color:#ffb3aa}
.work figcaption span{font-size:.85rem;opacity:0;max-height:0;transition:.5s;overflow:hidden}
.work:hover figcaption span{opacity:.9;max-height:80px}
.work.hide{display:none}
.filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:36px}
.filters button{font-family:inherit;font-weight:700;font-size:.88rem;padding:10px 22px;border-radius:99px;border:2px solid rgba(163,30,21,.25);background:#fff;color:var(--g);cursor:pointer;transition:.3s}
.filters button:hover{border-color:var(--g)}
.filters button.on{background:var(--g);color:#fff;border-color:var(--g);box-shadow:0 10px 24px -10px var(--g)}

/* ---------- Páginas interiores ---------- */
.page-hero{padding:150px clamp(18px,5vw,72px) 80px}
.page-hero.short{padding-bottom:30px}
.page-hero-in{max-width:1100px;margin:0 auto;position:relative;z-index:2}
.page-hero h1{font-size:clamp(2.4rem,5.5vw,4.8rem);font-weight:900;margin-bottom:18px;background:linear-gradient(120deg,var(--gx),var(--g) 60%,#e0463a);-webkit-background-clip:text;background-clip:text;color:transparent}
.cats{padding-top:30px;padding-bottom:30px}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.cat-card{position:relative;padding:34px 30px;border-radius:var(--r);background:#fff;box-shadow:0 0 0 1px rgba(163,30,21,.12),0 24px 50px -30px rgba(110,16,11,.5);overflow:hidden;transition:.5s var(--ease)}
.cat-card::before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,var(--g2),var(--gd));opacity:0;transition:.5s var(--ease);z-index:0}
.cat-card>*{position:relative;z-index:1;transition:color .4s}
.cat-card:hover{transform:translateY(-8px)}
.cat-card:hover::before{opacity:1}
.cat-card:hover>*{color:#fff}
.cat-n{font-weight:900;font-size:3rem;color:rgba(163,30,21,.15);line-height:1;display:block}
.cat-card:hover .cat-n{color:rgba(255,255,255,.3)}
.cat-card h3{font-size:1.7rem;margin:10px 0}
.cat-card p{color:var(--mute);font-size:.95rem;margin-bottom:18px}
.cat-more{font-weight:700;color:var(--g);font-size:.9rem}
.empty,.thanks{text-align:center;max-width:560px;margin:0 auto;padding:50px 20px}
.empty img,.thanks img{width:90px;margin:0 auto 20px;animation:bob 5s ease-in-out infinite}
.empty h3,.thanks h2{font-size:1.7rem;margin-bottom:12px}
.empty p,.thanks p{color:var(--mute);margin-bottom:26px}

/* ---------- Formulario ---------- */
.form-wrap{max-width:860px;padding-top:30px}
.quote-form{display:grid;gap:20px;background:#fff;padding:clamp(24px,4vw,48px);border-radius:var(--r);box-shadow:0 0 0 1px rgba(163,30,21,.1),0 40px 80px -40px rgba(110,16,11,.55)}
.quote-form label{display:grid;gap:8px;font-weight:700;font-size:.88rem}
.quote-form label small{font-weight:500;color:var(--mute)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.quote-form input:not([type=checkbox]),.quote-form select,.quote-form textarea{font:inherit;font-weight:500;padding:14px 16px;border-radius:14px;border:2px solid #efd9d6;background:#fffaf9;outline:0;transition:.3s;color:var(--ink);width:100%}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--g);box-shadow:0 0 0 5px rgba(163,30,21,.12);background:#fff}
.quote-form .check{display:flex;gap:10px;align-items:flex-start;font-weight:500;color:var(--mute)}
.quote-form .check input{margin-top:4px;accent-color:var(--g);width:18px;height:18px}
.quote-form .btn{justify-self:start}
.hp{position:absolute!important;left:-9999px;opacity:0;height:0;width:0}
.alert{background:#fff0ee;border:2px solid #f3b5ad;color:#8c1710;padding:14px 18px;border-radius:14px;font-weight:600;font-size:.9rem}

/* ---------- CTA ---------- */
.cta-band{margin:clamp(40px,6vw,90px) clamp(14px,3vw,40px);border-radius:36px;overflow:hidden;position:relative;background:radial-gradient(800px 400px at 85% 0,#e0463a,transparent 60%),linear-gradient(120deg,var(--gx),var(--g) 60%,var(--gd));color:#fff}
.cta-inner{position:relative;text-align:center;padding:clamp(54px,8vw,110px) 24px;max-width:760px;margin:0 auto}
.cta-inner h2{font-size:clamp(2rem,4.5vw,3.6rem);margin-bottom:14px}
.cta-inner p{opacity:.9;margin-bottom:30px;font-size:1.1rem}
.cta-g{position:absolute;width:420px;right:-200px;top:50%;transform:translateY(-50%) rotate(-12deg);opacity:.09;pointer-events:none;animation:spin 90s linear infinite}

/* ---------- Pie ---------- */
.site-footer{position:relative;background:var(--gx);color:#f6dcd8;margin-top:clamp(40px,6vw,80px);overflow:hidden}
.footer-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:var(--g);filter:blur(140px);opacity:.35;left:-200px;top:-300px}
.footer-grid{position:relative;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;max-width:1280px;margin:0 auto;padding:70px clamp(18px,5vw,72px) 40px}
.f-logo{width:130px;margin-bottom:16px;filter:brightness(0) invert(1)}
.site-footer h4{color:#fff;margin-bottom:16px;font-size:.9rem;letter-spacing:.16em;text-transform:uppercase}
.site-footer ul{list-style:none;display:grid;gap:10px;font-size:.94rem}
.site-footer li a{transition:.3s}.site-footer li a:hover{color:#fff;padding-left:6px}
.footer-bottom{position:relative;text-align:center;padding:22px;border-top:1px solid rgba(255,255,255,.1);font-size:.82rem;opacity:.7}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;background:rgba(30,4,2,.94);z-index:300;display:none;align-items:center;justify-content:center;padding:30px}
.lightbox.open{display:flex;animation:fade .3s}
@keyframes fade{from{opacity:0}}
.lightbox figure{max-width:min(1100px,92vw);text-align:center;color:#fff}
.lightbox img{max-height:80vh;border-radius:14px;box-shadow:0 0 120px rgba(224,70,58,.45);margin:0 auto}
.lightbox figcaption{margin-top:14px;font-weight:700}
.lb-close,.lb-nav{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:50%;width:52px;height:52px;font-size:2rem;cursor:pointer;transition:.3s;line-height:1}
.lb-close{top:22px;right:22px}.lb-prev{left:22px}.lb-next{right:22px}
.lb-nav{top:50%;margin-top:-26px}
.lb-close:hover,.lb-nav:hover{background:var(--g)}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(40px) scale(.98);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}
.no-js .reveal{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .hero-grid,.feature{grid-template-columns:1fr}
  .feature.rev .feature-media{order:0}
  .hero-stage{max-width:420px;margin:20px auto 0}
  .worlds{flex-direction:column;height:auto}
  .world,.worlds:hover .world,.worlds .world:hover{flex:none;min-height:400px}
  .world p{max-height:160px;opacity:.95}
  .footer-grid{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .burger{display:block}
  .nav{position:fixed;inset:0 0 0 auto;width:min(320px,86vw);background:#fff;flex-direction:column;align-items:stretch;padding:90px 22px 30px;gap:4px;transform:translateX(105%);transition:transform .5s var(--ease);box-shadow:-30px 0 60px -20px rgba(0,0,0,.3)}
  .nav.open{transform:none}
  .nav a{font-size:1.05rem;padding:14px 16px}
  .btn-sm{margin:10px 0 0;justify-content:center}
  .burger{z-index:2}
  .scroll-hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* =====================================================
   v2 · Más dinamismo (Fotografía y Envíos con prioridad)
   ===================================================== */

/* Títulos: aparición palabra a palabra + brillo + deriva suave */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .02em .14em;margin:-.08em -.02em -.14em}
.split .w>span{display:inline-block;transform:translateY(115%) rotate(4deg);transform-origin:0 100%;transition:transform 1.1s var(--ease) calc(var(--i)*.09s)}
.split.in .w>span{transform:none}
.split.in.done .w{overflow:visible}
.split.in.done .w>span{animation:drift 6s ease-in-out infinite calc(var(--i)*-.7s)}
@keyframes drift{0%,100%{translate:0 0}50%{translate:0 -5px}}
.hero h1.is-split,.page-hero h1.is-split{background:none;color:inherit;-webkit-text-fill-color:initial}
.hero h1 .w>span,.page-hero h1 .w>span{background:linear-gradient(105deg,var(--gx) 0%,var(--g) 35%,#f0574a 50%,var(--g) 65%,var(--gx) 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:shimmer 7s ease-in-out infinite}
.hero h1 .w>span{padding-right:.04em}
.hero h1.in.done .w>span,.page-hero h1.in.done .w>span{animation:shimmer 7s ease-in-out infinite,drift 6s ease-in-out infinite calc(var(--i)*-.7s)}
@keyframes shimmer{0%{background-position:100% 0}50%{background-position:0 0}100%{background-position:100% 0}}
.section-head h2.split{margin-inline:auto}

/* Hero: órbitas y partículas */
.orbit{position:absolute;inset:-5%;border-radius:50%;animation:spin 26s linear infinite;pointer-events:none}
.orbit.o2{animation-duration:34s;animation-direction:reverse;inset:2%}
.orbit .chip{left:50%;top:0;right:auto;bottom:auto;transform:translate(-50%,-50%);animation:counter 26s linear infinite;pointer-events:auto;font-size:.9rem;padding:12px 22px}
.orbit.o2 .chip{top:100%;animation:counter2 34s linear infinite;background:linear-gradient(135deg,var(--g2),var(--gd));color:#fff}
@keyframes counter{to{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes counter2{to{transform:translate(-50%,-50%) rotate(360deg)}}
.dot{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle,#ff8a7d,var(--g));opacity:.35;animation:dotfloat var(--d) ease-in-out var(--dl) infinite;pointer-events:none}
@keyframes dotfloat{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,-34px)}}
.hero h1{margin-bottom:24px}

/* Segunda cinta cruzada */
.marquee.alt{background:#fff;transform:rotate(1.2deg);margin:-34px -2% 0;z-index:4;padding:14px 0;box-shadow:0 14px 34px -20px rgba(110,16,11,.45)}
.marquee.alt span{color:transparent;-webkit-text-stroke:1.5px var(--g);font-size:clamp(1.3rem,3vw,2.3rem)}
.marquee.alt i{background:var(--g)}
.marquee-track.rev{animation:marq 46s linear infinite reverse}
.marquee:hover .marquee-track{animation-play-state:paused}

/* Tres mundos: prioridad Fotografía y Envíos + auto-enfoque rotatorio */
.world{flex:1.25}
.w-publicidad{flex:.8}
.worlds:not(:hover) .world.auto{flex:2}
.worlds:not(:hover) .world.auto p{max-height:160px;opacity:.95}
.worlds:not(:hover) .world.auto .world-bg{transform:scale(1.1)}
.worlds:not(:hover) .world.auto .world-ico{background:#fff;color:var(--g);transform:rotate(-8deg) scale(1.08)}
.worlds:not(:hover) .world.auto .world-spot{opacity:1;--mx:70%;--my:30%}
.worlds:not(:hover) .world.auto .world-btn{transform:translateX(6px)}
.world-bg{animation:kenburns 18s ease-in-out infinite alternate}
@keyframes kenburns{from{scale:1}to{scale:1.07}}
.world::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 0 rgba(255,255,255,.0);transition:box-shadow .5s;pointer-events:none}
.world:hover::after,.worlds:not(:hover) .world.auto::after{box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.world-num{transition:transform .8s var(--ease),color .5s}
.world:hover .world-num,.worlds:not(:hover) .world.auto .world-num{transform:translateY(8px) scale(1.12);color:rgba(255,255,255,.4)}

/* Botones magnéticos y brillo de cursor */
.btn,.world-btn{translate:var(--tx,0) var(--ty,0);transition:translate .25s ease-out,transform .35s var(--ease),box-shadow .35s}
.cursor-glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;background:radial-gradient(closest-side,rgba(224,70,58,.20),transparent 70%);pointer-events:none;z-index:40;mix-blend-mode:multiply;opacity:0;transition:opacity .5s;will-change:transform}
.cursor-glow.on{opacity:1}

/* Parallax con la propiedad independiente translate */
.feature-media,.blob{will-change:translate}
.glow-img{animation:breathe 7s ease-in-out infinite}
@keyframes breathe{50%{scale:1.015}}
.glow-img::before{animation:halo 6s ease-in-out infinite}
@keyframes halo{50%{transform:scale(1.08);opacity:.85}}

@media (max-width:980px){
  .worlds:not(:hover) .world.auto{flex:none}
  .marquee.alt{margin-top:-24px}
  .orbit .chip{font-size:.78rem;padding:9px 16px}
  .cursor-glow{display:none}
}
@media (prefers-reduced-motion:reduce){
  .split .w>span{transform:none}.split .w{overflow:visible}
}

html,body{overflow-x:clip;max-width:100%}
.hero,.page-hero,.marquee,.cta-band{overflow:clip}

.w-publicidad{flex:.95}
.world-body{padding:clamp(20px,2.2vw,34px)}
.world h3{font-size:clamp(1.35rem,2.2vw,2.2rem);overflow-wrap:anywhere}

/* =====================================================
   v3 · Órbitas con las seis etiquetas + más movimiento
   ===================================================== */
.orbit{inset:var(--in,0%)!important;animation:spin var(--dur,30s) linear var(--dl,0s) infinite!important}
.orbit.rev{animation-direction:reverse!important}
.orbit::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(163,30,21,.22)}
.orbit .chip{left:50%;top:0;display:inline-block;white-space:nowrap;transform:translate(-50%,-50%);animation:counter var(--dur,30s) linear var(--dl,0s) infinite!important;transition:box-shadow .3s,scale .3s;background:#fff;color:var(--g)}
.orbit.rev .chip{animation-direction:reverse!important}
.orbit .chip:hover{scale:1.15;box-shadow:0 20px 40px -10px rgba(163,30,21,.7)}
.chip.main{font-size:1rem;padding:14px 26px;background:linear-gradient(135deg,var(--g2),var(--gd));color:#fff;box-shadow:0 18px 40px -10px rgba(163,30,21,.75)}
.chip.main.alt{background:#fff;color:var(--g);box-shadow:0 0 0 2px var(--g),0 18px 40px -12px rgba(163,30,21,.5)}
.chip.mid{font-size:.92rem;padding:12px 22px}
.chip.sm{font-size:.8rem;padding:9px 18px;background:rgba(255,255,255,.94);backdrop-filter:blur(6px)}
.hero-stage:has(.chip:hover) .orbit,.hero-stage:has(.chip:hover) .orbit .chip{animation-play-state:paused!important}
.orb{box-shadow:0 0 0 18px rgba(163,30,21,.08),0 0 110px 26px rgba(200,40,29,.4),inset 0 -30px 60px rgba(0,0,0,.3)}

/* Rotador de palabras */
.rotator{font-weight:800;font-size:clamp(1.15rem,2.2vw,1.7rem);color:var(--gx);margin-bottom:14px;display:flex;gap:.45em;align-items:baseline;flex-wrap:wrap}
.rot{position:relative;display:inline-block;height:1.25em;min-width:9.5ch;overflow:hidden;vertical-align:bottom;color:var(--g)}
.rot b{position:absolute;left:0;top:0;white-space:nowrap;opacity:0;transform:translateY(110%);animation:rotw 12s cubic-bezier(.22,.8,.24,1) infinite}
.rot b:nth-child(1){animation-delay:0s}.rot b:nth-child(2){animation-delay:2s}.rot b:nth-child(3){animation-delay:4s}
.rot b:nth-child(4){animation-delay:6s}.rot b:nth-child(5){animation-delay:8s}.rot b:nth-child(6){animation-delay:10s}
@keyframes rotw{0%{opacity:0;transform:translateY(110%)}4%,15%{opacity:1;transform:none}19%,100%{opacity:0;transform:translateY(-110%)}}

/* Etiquetas de categorías en Publicidad */
.pills{display:flex;flex-wrap:wrap;gap:10px;margin:-8px 0 26px}
.pills a{font-weight:700;font-size:.88rem;color:var(--g);padding:9px 20px;border-radius:99px;background:rgba(163,30,21,.08);transition:.35s var(--ease);animation:bob 5s ease-in-out calc(var(--i)*-1.1s) infinite}
.pills a:hover{background:var(--g);color:#fff;transform:translateY(-4px) scale(1.06)!important}

/* Cinta que acelera con el scroll */
.marquee{will-change:transform}

@media (max-width:980px){
  .chip.main{font-size:.85rem;padding:11px 18px}.chip.mid{font-size:.8rem;padding:9px 15px}.chip.sm{font-size:.72rem;padding:7px 12px}
  .orbit[style*="--in:-2%"]{inset:-3%!important}
}

.hero-stage{margin-right:clamp(0px,5vw,84px)}
@media (max-width:980px){.hero-stage{margin-right:auto}}
