/* ═══ RESET ═══ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}

:root{
  --black:#090909;
  --orange:#FF5C00;
  --orange2:#FF7A2F;
  --white:#fff;
  --muted:rgba(255,255,255,.6);
  --card:rgba(16,16,16,.88);
  --border:rgba(255,255,255,.08);
  --pill-bg:rgba(12,12,12,.92);
  --ease:.25s cubic-bezier(.4,0,.2,1);
}

body{
  background:var(--black);
  color:var(--white);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:400;
  overflow-x:hidden;
  cursor:none;
}
::selection{background:var(--orange);color:#fff}
em.acc{font-style:normal;color:var(--orange)}
.acc{color:var(--orange)}
.mt8{margin-top:8px}
.mt24{margin-top:24px}

/* ═══ CURSOR ═══ */
#cdot,#cring{
  position:fixed;border-radius:50%;
  pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
}
#cdot{
  width:7px;height:7px;
  background:var(--orange);
  box-shadow:0 0 10px var(--orange);
  transition:width .2s,height .2s,background .2s;
}
#cring{
  width:32px;height:32px;
  border:1.5px solid rgba(255,92,0,.5);
  transition:width .3s,height .3s,border-color .2s;
}
body.ch #cdot{width:11px;height:11px}
body.ch #cring{width:48px;height:48px;border-color:var(--orange)}

/* ═══ NAV ═══ */
nav{
  position:fixed;inset:0 0 auto 0;
  z-index:100;
  height:68px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 48px;
  background:rgba(9,9,9,.75);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  border-bottom:1px solid rgba(255,255,255,.05);
  transition:background .3s;
}
nav.sd{background:rgba(9,9,9,.96);border-color:rgba(255,255,255,.09)}

.nl{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.nl-hex{width:36px;height:42px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.nl:hover .nl-hex{transform:rotate(-8deg) scale(1.06)}
.nl-hex svg{width:100%;height:100%}
.nl-brand{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:16px;letter-spacing:.02em;line-height:1}
.nl-sub{display:block;font-size:11.5px;font-weight:500;color:var(--orange);margin-top:3px;letter-spacing:.01em}

.nav-links{display:flex;gap:4px;list-style:none}
.nav-links a{
  color:rgba(255,255,255,.7);text-decoration:none;
  font-size:14.5px;font-weight:500;
  padding:8px 16px;border-radius:8px;
  transition:color var(--ease),background var(--ease);
  position:relative;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.nav-links a::after{
  content:'';position:absolute;bottom:5px;left:16px;right:16px;
  height:1.5px;background:var(--orange);
  transform:scaleX(0);transform-origin:left;
  transition:transform .28s cubic-bezier(.4,0,.2,1);
}
.nav-links a:hover,.nav-links a.active{color:#fff}
.nav-links a.active::after{transform:scaleX(1)}
.nav-links a:hover{background:rgba(255,255,255,.04)}

.nav-ig{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--orange);color:#fff;text-decoration:none;
  padding:10px 20px;border-radius:9px;
  font-size:13.5px;font-weight:600;
  transition:background .2s,transform .2s,box-shadow .2s;
  flex-shrink:0;overflow:hidden;position:relative;
}
.nav-ig::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);
  transform:translateX(-100%);pointer-events:none;
}
.nav-ig:hover{background:var(--orange2);transform:translateY(-1px);box-shadow:0 5px 20px rgba(255,92,0,.4)}
.nav-ig:hover::after{animation:shine .55s ease forwards}
@keyframes shine{to{transform:translateX(100%)}}

/* ═══ VIDEO SECTION ═══ */
.vs{
  position:relative;
  height:1080px;
  display:flex;flex-direction:column;
  overflow:hidden;
}
.vbg{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center center;z-index:0;
}


.vov{position:absolute;inset:0;z-index:1}
.vov-hero{
  background:
    linear-gradient(100deg,rgba(9,9,9,.9) 0%,rgba(9,9,9,.6) 42%,rgba(9,9,9,.15) 68%,rgba(9,9,9,.35) 100%),
    linear-gradient(0deg,rgba(9,9,9,.45) 0%,transparent 20%,transparent 80%,rgba(9,9,9,.3) 100%);
}
.vov-qh{
  background:
    linear-gradient(100deg,rgba(9,9,9,.82) 0%,rgba(9,9,9,.55) 40%,rgba(9,9,9,.25) 65%,rgba(9,9,9,.5) 100%),
    linear-gradient(0deg,rgba(9,9,9,.6) 0%,transparent 18%,transparent 82%,rgba(9,9,9,.4) 100%);
}
.vov-left{
  background:
    linear-gradient(100deg,rgba(9,9,9,.94) 0%,rgba(9,9,9,.72) 40%,rgba(9,9,9,.2) 68%,rgba(9,9,9,.4) 100%),
    linear-gradient(0deg,rgba(9,9,9,.5) 0%,transparent 18%,transparent 82%,rgba(9,9,9,.35) 100%);
}

/* ═══ PILLS BAR BASE ═══ */
.pills-bar{
  position:relative;z-index:2;
  background:var(--pill-bg);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border-top:1px solid rgba(255,255,255,.06);
}
.pb-inner{
  display:flex;align-items:stretch;
  max-width:1440px;margin:0 auto;
  padding:0 48px;
}
.pb-inner-3{
  max-width:1200px;
}
.pb-sep{
  width:1px;
  background:rgba(255,255,255,.07);
  align-self:stretch;margin:16px 0;flex-shrink:0;
}
.pb-pill{
  display:flex;align-items:center;gap:16px;
  flex:1;padding:16px 24px;
  transition:background .2s;cursor:default;
}
.pb-pill:first-child{padding-left:0}
.pb-pill:last-child{padding-right:0}
.pb-pill:hover{background:rgba(255,92,0,.04)}

/* ícono circular outline */
.pb-ico-circle{
  width:44px;height:44px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.pb-pill:hover .pb-ico-circle{transform:scale(1.08)}
.pb-ico-circle svg{width:100%;height:100%}

/* ícono hexagonal (fondo fill oscuro con borde) */
.pb-ico-hex{
  width:44px;height:44px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.pb-pill:hover .pb-ico-hex{transform:scale(1.08)}
.pb-ico-hex svg{width:100%;height:100%}

/* ícono circular grande (nosotros/contacto) */
.pb-ico-circ-lg{
  width:54px;height:54px;flex-shrink:0;
  border:2px solid var(--orange);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  padding:12px;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.pb-pill:hover .pb-ico-circ-lg{transform:scale(1.08)}
.pb-ico-circ-lg svg{width:100%;height:100%}

.pb-text strong{
  display:block;font-size:14.5px;font-weight:700;
  color:#fff;margin-bottom:3px;line-height:1.2;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.pb-text span{
  font-size:12.5px;color:var(--muted);line-height:1.5;
  font-weight:400;
}
.pb-text-nos strong{font-size:15px}
.pb-text-nos span{font-size:13px}

/* ═══ BUTTONS ═══ */
.btn-primary,.btn-outline,.btn-ig{
  display:inline-flex;align-items:center;gap:10px;
  text-decoration:none;border-radius:10px;
  font-size:15px;font-weight:600;letter-spacing:-.01em;
  padding:14px 26px;
  font-family:'Plus Jakarta Sans',sans-serif;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),
             box-shadow .25s,background .18s,border-color .18s;
  position:relative;overflow:hidden;cursor:pointer;
}
.btn-primary{
  background:var(--orange);color:#fff;border:2px solid transparent;
}
.btn-primary::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  transform:translateX(-100%);pointer-events:none;
}
.btn-primary:hover{background:var(--orange2);transform:scale(1.15);box-shadow:0 0 32px rgba(255,92,0,.6),0 0 64px rgba(255,92,0,.2)}
.btn-primary:hover::after{animation:shine .55s ease forwards}
.btn-primary:active{transform:scale(1.06)}

.btn-outline{
  background:rgba(255,255,255,.07);color:#fff;
  border:1.5px solid rgba(255,255,255,.18);
  backdrop-filter:blur(6px);
}
.btn-outline:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4);transform:scale(1.15);box-shadow:0 0 24px rgba(255,255,255,.12)}
.btn-outline:active{transform:scale(1.06)}

.arr{transition:transform .22s}
.btn-primary:hover .arr,.btn-outline:hover .arr{transform:translateX(4px)}

.btns-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn-ig svg{flex-shrink:0}

/* ═══ TYPOGRAPHY BASE ═══ */
.sec-h2{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;
  font-size:clamp(36px,4vw,60px);
  line-height:1.02;letter-spacing:-.025em;margin-bottom:12px;
}
.sec-p{
  font-size:15.5px;color:rgba(255,255,255,.75);
  line-height:1.65;max-width:520px;
  font-weight:400;
}

/* ═══════════════════════════
   01 · HERO
═══════════════════════════ */
.hero-inner{
  position:relative;z-index:2;flex:1 1 0;min-height:0;
  display:flex;align-items:center;
  padding:78px 56px 16px;
  max-width:1440px;width:100%;margin:0 auto;
}
.hero-copy{max-width:600px}

.hero-h1{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;
  font-size:clamp(48px,6.2vw,96px);
  line-height:.95;letter-spacing:-.03em;margin-bottom:20px;
  display:flex;flex-direction:column;
}
.hero-h1 span{display:block}
.hero-accent{color:var(--orange);font-weight:800}

.hero-p{
  font-size:16.5px;color:rgba(255,255,255,.75);
  line-height:1.6;max-width:490px;margin-bottom:32px;
}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}

/* ═══════════════════════════
   02 · QUÉ HACEMOS
═══════════════════════════ */
.qh-inner{
  position:relative;z-index:2;flex:1 1 0;min-height:0;
  display:flex;align-items:center;
  padding:78px 56px 16px;
  max-width:900px;width:100%;margin:0 auto;
}
.qh-left{display:flex;flex-direction:column}
.qh-left .sec-h2{font-size:clamp(32px,3.6vw,54px)}

.social-proof{
  display:flex;align-items:center;gap:12px;
  margin-top:18px;font-size:14px;color:rgba(255,255,255,.6);
}
.sp-avs{display:flex}
.sp-av{
  width:32px;height:32px;border-radius:50%;
  border:2.5px solid var(--black);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;color:#fff;
  margin-left:-8px;
}
.sp-av:first-child{margin-left:0}

/* ANTES / DESPUÉS */
.qh-right{display:flex;flex-direction:column;gap:14px}
.ad-title{font-size:15.5px;color:rgba(255,255,255,.82);line-height:1.45;font-weight:500}

.ad-grid{
  display:grid;
  grid-template-columns:1fr 40px 1fr;
  align-items:center;gap:0;
}
.ad-card{
  background:rgba(14,14,14,.9);
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;padding:18px 16px;
  backdrop-filter:blur(12px);
}
.ad-b{filter:saturate(.2) brightness(.65);opacity:.75}
.ad-a{border-color:rgba(255,92,0,.35);box-shadow:0 0 40px rgba(255,92,0,.1)}

.ad-lbl{
  display:inline-block;
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  padding:3px 10px;border-radius:5px;margin-bottom:10px;
  background:rgba(255,255,255,.1);color:rgba(255,255,255,.55);
}
.ad-lbl-on{background:var(--orange);color:#fff}

.ad-mid{display:flex;align-items:center;justify-content:center}
.ad-arr{
  width:34px;height:34px;background:var(--orange);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 20px rgba(255,92,0,.55);
  animation:arrPulse 3s ease-in-out infinite;
}
@keyframes arrPulse{
  0%,100%{box-shadow:0 0 20px rgba(255,92,0,.45);transform:scale(1)}
  50%{box-shadow:0 0 32px rgba(255,92,0,.75);transform:scale(1.08)}
}
.ad-arr svg{width:18px;height:18px}

.ad-store{margin-bottom:10px}
.ad-sname{font-family:'Syne',sans-serif;font-weight:800;font-size:17px;letter-spacing:.04em}
.ad-sname-dim{color:rgba(255,255,255,.4)}
.ad-ssub{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;margin-top:2px}
.ad-ssub-dim{color:rgba(255,255,255,.28)}
.ad-ssub-acc{color:var(--orange)}
.ad-ig{border-top:1px solid rgba(255,255,255,.06);padding-top:10px}
.ad-ig-row{display:flex;gap:9px;align-items:flex-start;margin-bottom:9px}
.ad-av{
  width:28px;height:28px;border-radius:50%;
  background:rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:700;flex-shrink:0;
}
.ad-av-dim{opacity:.5}
.ad-av-on{background:var(--orange)}
.ad-nm{font-size:10.5px;font-weight:700}
.ad-bio{font-size:9px;color:rgba(255,255,255,.45);line-height:1.4;margin-top:2px}
.ad-stats{display:flex;gap:14px}
.ad-stats>div{display:flex;flex-direction:column;gap:1px}
.ad-stats b{font-size:12px;font-weight:700}
.ad-stats s{font-size:9px;color:rgba(255,255,255,.35);text-decoration:none}

/* QH pills separación */
.pills-bar-qh1,.pills-bar-qh2{margin-top:0}
.pills-bar-qh1 .pb-pill,.pills-bar-qh2 .pb-pill{padding:18px 24px}
.pills-bar-qh2 .pb-inner{border-top:1px solid rgba(255,255,255,.04)}

/* ═══════════════════════════
   03 · NOSOTROS
═══════════════════════════ */
.nos-inner{
  position:relative;z-index:2;flex:1 1 0;min-height:0;
  display:flex;align-items:center;
  padding:78px 56px 16px;
  max-width:1440px;width:100%;margin:0 auto;
}
.nos-copy{max-width:580px}
.sec-h2-nos{font-size:clamp(32px,3.8vw,58px);font-family:'Plus Jakarta Sans',sans-serif;font-weight:800}
.sec-h2-nos>br+.acc{font-size:inherit}

.pills-bar-nos .pb-pill{padding:24px 28px}
.pills-bar-nos .pb-ico-circ-lg{width:58px;height:58px;padding:13px}

/* ═══════════════════════════
   04 · PACKS
═══════════════════════════ */
/* packs section is now height:100vh via .vs */
.packs-inner{
  position:relative;z-index:2;flex:1 1 0;min-height:0;
  display:flex;flex-direction:column;
  justify-content:center;
  padding:78px 56px 16px;
  max-width:1440px;width:100%;margin:0 auto;
  gap:32px;
}
.packs-top{max-width:780px}
.packs-h2{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;
  font-size:clamp(36px,4.8vw,70px);
  line-height:.97;letter-spacing:-.03em;margin-bottom:14px;
}
.packs-sub{margin-bottom:0;font-size:16px}

.packs-cards{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:20px;max-width:860px;
}

.pk-card{
  background:rgba(14,14,14,.88);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  padding:28px 24px 24px;
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  backdrop-filter:blur(16px);
  transition:border-color .3s,box-shadow .35s,transform .35s cubic-bezier(.34,1.56,.64,1);
  cursor:pointer;
}
.pk-card::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:2px;background:linear-gradient(90deg,var(--orange),transparent);
  opacity:0;transition:opacity .3s;
}
.pk-card::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 0%,rgba(255,92,0,.15) 0%,transparent 65%);
  opacity:0;transition:opacity .35s;pointer-events:none;
}
.pk-card:hover{border-color:rgba(255,92,0,.4);box-shadow:0 20px 54px rgba(0,0,0,.55),0 0 44px rgba(255,92,0,.16);transform:translateY(-4px)}
.pk-card:hover::before{opacity:1}
.pk-card:hover::after{opacity:1}
.pk-card:active{transform:translateY(-1px)}

.pk-ico{
  display:flex;align-items:center;justify-content:center;
  margin-bottom:12px;position:relative;z-index:1;
}
.pk-ico svg{width:100%;height:100%}

.pk-name{
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:19px;
  line-height:1.2;position:relative;z-index:1;
}
.pk-line{
  width:38px;height:2.5px;background:var(--orange);
  margin:14px 0;
  transition:width .3s cubic-bezier(.4,0,.2,1);
  position:relative;z-index:1;
}
.pk-card:hover .pk-line{width:66px}
.pk-desc{
  font-size:13.5px;color:rgba(255,255,255,.62);
  line-height:1.6;flex:1;margin-bottom:20px;
  position:relative;z-index:1;
}

.btn-pack{
  display:flex;align-items:center;justify-content:center;
  background:var(--orange);color:#fff;
  text-decoration:none;border:none;
  padding:13px 18px;border-radius:9px;
  font-size:14px;font-weight:600;font-family:'Plus Jakarta Sans',sans-serif;
  transition:background .2s,transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;
  position:relative;z-index:1;overflow:hidden;cursor:pointer;
}
.btn-pack::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  transform:translateX(-100%);pointer-events:none;
}
.btn-pack:hover{background:var(--orange2);transform:scale(1.15);box-shadow:0 0 28px rgba(255,92,0,.6),0 0 56px rgba(255,92,0,.2)}
.btn-pack:hover::after{animation:shine .55s ease forwards}
.btn-pack:active{transform:scale(1.06)}

.pills-bar-packs .pb-pill{padding:20px 28px}

/* ═══════════════════════════
   05 · CONTACTO
═══════════════════════════ */
.con-inner{
  position:relative;z-index:2;flex:1 1 0;min-height:0;
  display:flex;align-items:center;
  padding:78px 56px 16px;
  max-width:1440px;width:100%;margin:0 auto;
}
.con-copy{max-width:500px}
.sec-h2-con{font-size:clamp(34px,4vw,60px);margin-bottom:12px}
.con-p{margin-bottom:0;font-size:16px}

/* CONTACTO BUTTONS — apilados tipo lista */
.con-btns{display:flex;flex-direction:column;gap:12px;margin-top:20px;width:100%;max-width:420px}

.con-btn{
  display:flex;align-items:center;gap:16px;
  text-decoration:none;
  border-radius:12px;
  padding:16px 22px;
  font-size:15.5px;font-weight:600;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,background .18s;
  cursor:pointer;
}
.con-btn:active{transform:scale(1.06)}

.con-btn-primary{
  background:var(--orange);color:#fff;
  position:relative;overflow:hidden;
}
.con-btn-primary::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  transform:translateX(-100%);pointer-events:none;
}
.con-btn-primary:hover{background:var(--orange2);transform:scale(1.15);box-shadow:0 0 32px rgba(255,92,0,.6),0 0 64px rgba(255,92,0,.2)}
.con-btn-primary:hover::after{animation:shine .55s ease forwards}

.con-btn-dark{
  background:rgba(255,255,255,.07);color:rgba(255,255,255,.88);
  border:1.5px solid rgba(255,255,255,.13);
  backdrop-filter:blur(8px);
}
.con-btn-dark:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);transform:scale(1.15);box-shadow:0 0 24px rgba(255,255,255,.1)}

.con-btn-ico{
  width:36px;height:36px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.con-btn-ico svg{width:22px;height:22px}
.con-btn-label{flex:1;text-align:left}
.con-btn-arr{font-size:18px;transition:transform .22s;opacity:.7}
.con-btn:hover .con-btn-arr{transform:translateX(5px);opacity:1}

/* ═══ REVEAL ═══ */
[data-r]{
  opacity:0;transform:translateY(28px);
  transition:opacity .75s cubic-bezier(.4,0,.2,1),transform .75s cubic-bezier(.4,0,.2,1);
}
[data-r].rv{opacity:1;transform:translateY(0)}

/* ═══ WA FLOAT ═══ */
.wa-float{
  position:fixed;bottom:28px;right:28px;
  width:58px;height:58px;
  background:#22c55e;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  z-index:200;box-shadow:0 6px 24px rgba(34,197,94,.45);
  text-decoration:none;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.wa-float:hover{transform:scale(1.12)}
.wa-ring{
  position:absolute;inset:0;border-radius:50%;
  background:#22c55e;z-index:-1;
  animation:waPulse 2.5s ease-out infinite;
}
@keyframes waPulse{
  0%{transform:scale(1);opacity:.45}
  100%{transform:scale(2.1);opacity:0}
}

/* ═══ FOOTER ═══ */
#footer{
  background:#050505;
  border-top:1px solid rgba(255,255,255,.07);
  padding: 72px 0 0;
  position:relative;
  z-index:10;
}

.ft-inner{
  max-width:1280px;margin:0 auto;
  padding:0 56px;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.4fr;
  gap:60px;
  padding-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,.06);
}

/* Brand col */
.ft-brand{}
.ft-logo{
  display:inline-flex;align-items:center;gap:12px;
  text-decoration:none;color:inherit;margin-bottom:20px;
}
.ft-logo:hover{opacity:.85}
.ft-hex{width:36px;height:42px}
.ft-hex svg{width:100%;height:100%}
.ft-brand-name{
  display:block;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;font-size:15.5px;letter-spacing:.02em;line-height:1;
}
.ft-brand-sub{
  display:block;font-size:11px;font-weight:500;
  color:var(--orange);margin-top:3px;letter-spacing:.01em;
}
.ft-desc{
  font-size:13.5px;color:rgba(255,255,255,.5);
  line-height:1.7;max-width:300px;font-weight:400;
  margin-bottom:24px;
}

.ft-socials{display:flex;gap:10px;margin-top:4px}
.ft-social{
  width:38px;height:38px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.09);
  border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.55);
  text-decoration:none;
  transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.ft-social svg{width:16px;height:16px}
.ft-social:hover{
  background:var(--orange);border-color:var(--orange);
  color:#fff;transform:translateY(-2px);
}

/* cols */
.ft-col-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;font-size:12px;
  text-transform:uppercase;letter-spacing:.16em;
  color:rgba(255,255,255,.35);
  margin-bottom:12px;
}

.ft-links{
  list-style:none;display:flex;flex-direction:column;gap:11px;
}
.ft-links li{display:flex;align-items:center;gap:9px}
.ft-links a,.ft-links span{
  font-size:13.5px;font-weight:400;
  color:rgba(255,255,255,.52);
  text-decoration:none;
  transition:color .18s,padding-left .18s;
}
.ft-links a:hover{color:#fff;padding-left:4px}
.ft-links svg{flex-shrink:0;color:var(--orange);opacity:.7}

.ft-links-contact li{align-items:center}
.ft-links-contact svg{margin-top:0}

/* bottom bar */
.ft-bottom{padding:0}
.ft-bottom-inner{
  max-width:1280px;margin:0 auto;
  padding:20px 56px;
  display:flex;justify-content:space-between;align-items:center;
  gap:16px;flex-wrap:wrap;
}
.ft-copy{
  font-size:12.5px;color:rgba(255,255,255,.3);font-weight:400;
}
.ft-badge{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12px;font-weight:600;
  color:rgba(255,255,255,.3);
  letter-spacing:.04em;
}
.ft-badge-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 8px var(--orange);
  animation:dotPulse 2.5s ease-in-out infinite;
}
@keyframes dotPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.6;transform:scale(1.4)}
}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1100px){
  nav{padding:0 24px}
  .nav-links{display:none}
  .hero-inner,.nos-inner,.con-inner{padding:88px 24px 24px}
  .qh-inner{grid-template-columns:1fr;padding:88px 24px 24px}
  .qh-right{display:none}
  .packs-inner{padding:88px 24px 24px}
  .packs-cards{grid-template-columns:1fr 1fr;max-width:100%}
  .pb-inner{padding:0 24px}
  .pb-pill{padding:18px 0}
  .pb-pill:nth-child(odd){padding-right:14px}
  .ft-inner{grid-template-columns:1fr 1fr;padding:0 24px 48px;gap:40px}
  .ft-brand{grid-column:1/-1}
  .ft-bottom-inner{padding:16px 24px}
}
@media(max-width:720px){
  .hero-h1{font-size:52px}
  .packs-cards{grid-template-columns:1fr}
  .packs-h2{font-size:44px}
  .sec-h2-con{font-size:52px}
  .con-btns{max-width:100%}
  .ft-inner{grid-template-columns:1fr}
  .ft-brand{grid-column:auto}
  body{cursor:auto}
  #cdot,#cring{display:none}
}

/* ═══════════════════════════════════════════════════
   QUÉ HACEMOS · SCRUBBER CURSOR & HINT
   ═══════════════════════════════════════════════════ */

/* Grab cursor on the section */
#que-hacemos {
  cursor: grab;
  --qh-prog: 0;
}
#que-hacemos.qh-scrubbing {
  cursor: grabbing;
}

/* ── Scrub progress bar (thin line at the bottom of video) ── */
#que-hacemos::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  height: 3px;
  width: calc(var(--qh-prog, 0) * 100%);
  background: var(--orange);
  z-index: 30;
  pointer-events: none;
  transition: width .05s linear;
  box-shadow: 0 0 12px var(--orange);
}

/* ── Swipe hint pill ── */
.qh-swipe-hint {
  position: absolute;
  bottom: 108px; /* above pills bar */
  left: 50%;
  transform: translateX(-50%) translateY(16px);
  z-index: 25;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s ease, transform .4s cubic-bezier(.34,1.56,.64,1);
}
.qh-swipe-hint.visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.qh-swipe-hint.qhh-done {
  opacity: 0;
  transform: translateX(-50%) translateY(-8px);
  transition: opacity .3s ease, transform .3s ease;
}

.qhh-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(9,9,9,.72);
  border: 1px solid rgba(255,92,0,.35);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: 100px;
  padding: 10px 22px 10px 18px;
  box-shadow: 0 4px 32px rgba(0,0,0,.5), 0 0 0 1px rgba(255,92,0,.12) inset;
}

.qhh-text {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  color: rgba(255,255,255,.82);
  letter-spacing: .03em;
  white-space: nowrap;
}

.qhh-arrow {
  width: 17px;
  height: 17px;
  color: var(--orange);
  flex-shrink: 0;
}

/* Pulse animation on arrows when idle */
@keyframes qhhPulseL {
  0%, 100% { transform: translateX(0); opacity: 1; }
  50%       { transform: translateX(-4px); opacity: .6; }
}
@keyframes qhhPulseR {
  0%, 100% { transform: translateX(0); opacity: 1; }
  50%       { transform: translateX(4px); opacity: .6; }
}
.qh-swipe-hint.qhh-pulse .qhh-left  { animation: qhhPulseL 1.1s ease-in-out infinite; }
.qh-swipe-hint.qhh-pulse .qhh-right { animation: qhhPulseR 1.1s ease-in-out infinite .15s; }

/* Orange dot on hint */
.qhh-inner::before {
  content: '';
  display: block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 8px var(--orange);
  flex-shrink: 0;
  animation: dotPulse 2s ease-in-out infinite;
}

/* ═══════════════════════════════════════════════════
   PACK MODALS
   ═══════════════════════════════════════════════════ */
.pack-overlay{
  position:fixed;inset:0;z-index:1000;
  background:rgba(5,5,5,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
.pack-overlay.pm-open{
  opacity:1;pointer-events:all;
}

.pack-modal{
  position:relative;
  background:rgba(14,14,14,.98);
  border:1px solid rgba(255,92,0,.2);
  border-radius:20px;
  width:100%;max-width:600px;
  max-height:90vh;overflow-y:auto;
  box-shadow:0 0 80px rgba(255,92,0,.12),0 32px 80px rgba(0,0,0,.7);
  transform:translateY(28px) scale(.97);
  transition:transform .4s cubic-bezier(.34,1.56,.64,1);
  scrollbar-width:none;
}
.pack-modal::-webkit-scrollbar{display:none}
.pack-overlay.pm-open .pack-modal{
  transform:translateY(0) scale(1);
}

.pm-close{
  position:sticky;top:0;float:right;
  margin:20px 20px 0 0;
  width:36px;height:36px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:2;
  transition:background .18s,transform .2s;
  color:#fff;
}
.pm-close:hover{background:rgba(255,255,255,.14);transform:rotate(90deg)}
.pm-close svg{width:16px;height:16px}

.pm-content{
  display:none;
  padding:20px 40px 40px;
}
.pm-content.pm-active{display:block;}

.pm-badge{
  display:inline-flex;align-items:center;
  background:rgba(255,92,0,.15);
  border:1px solid rgba(255,92,0,.3);
  color:var(--orange);
  font-size:11px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;
  border-radius:100px;padding:4px 14px;
  margin-bottom:20px;
}
.pm-badge-gold{
  background:rgba(255,200,0,.12);
  border-color:rgba(255,200,0,.3);
  color:#ffc800;
}

.pm-title{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(28px,3.5vw,42px);
  font-weight:800;line-height:1.05;
  letter-spacing:-.03em;
  color:#fff;margin-bottom:14px;
}

.pm-sub{
  font-size:15px;font-weight:400;
  color:rgba(255,255,255,.55);
  line-height:1.65;margin-bottom:0;
}

.pm-divider{
  height:1px;
  background:linear-gradient(90deg,rgba(255,92,0,.3),transparent);
  margin:28px 0;
}

.pm-list{
  list-style:none;display:flex;flex-direction:column;gap:18px;
  margin-bottom:32px;
}
.pm-list li{
  display:flex;gap:14px;align-items:flex-start;
}
.pm-check{
  color:var(--orange);font-size:12px;
  flex-shrink:0;margin-top:3px;
  text-shadow:0 0 10px rgba(255,92,0,.6);
}
.pm-list strong{
  display:block;font-size:15px;font-weight:700;
  color:#fff;margin-bottom:3px;
}
.pm-list span{
  font-size:13.5px;color:rgba(255,255,255,.48);line-height:1.55;
}

.pm-ctas{
  display:flex;flex-direction:column;gap:10px;
}
.pm-cta{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 24px;border-radius:12px;
  font-size:15px;font-weight:700;
  text-decoration:none;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,background .18s;
}
.pm-cta span{transition:transform .22s}
.pm-cta:hover span{transform:translateX(4px)}
.pm-cta-primary{
  background:var(--orange);color:#fff;
}
.pm-cta-primary:hover{
  background:var(--orange2);
  transform:scale(1.06);
  box-shadow:0 0 28px rgba(255,92,0,.5);
}
.pm-cta-dark{
  background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.1);
}
.pm-cta-dark:hover{
  background:rgba(255,255,255,.1);
  transform:scale(1.06);
}

@media(max-width:600px){
  .pm-content{padding:16px 24px 32px}
  .pm-title{font-size:28px}
}

/* ═══════════════════════════════════════════════════
   RUBROS CAROUSEL SEPARATOR
   ═══════════════════════════════════════════════════ */
.rubros-sep {
  background: #080808;
  padding: 48px 0;
  overflow: hidden;
}
/* left/right edge fade on each row */
.rr-track {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right,
    transparent 0%, black 6%, black 94%, transparent 100%);
  mask-image: linear-gradient(to right,
    transparent 0%, black 6%, black 94%, transparent 100%);
}

.rr-row {
  display: flex;
  gap: 16px;
  width: max-content;
}

.rr-item {
  flex-shrink: 0;
  width: 200px;
  height: 250px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.06);
}

.rr-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* ── Animations (driven by JS now) ── */

.rr-ltr .rr-row { will-change: transform; }
.rr-rtl .rr-row { will-change: transform; }



@media(max-width:720px) {
  .rr-item {
  flex-shrink: 0;
  width: 200px;
  height: 250px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.06);
}
  .rubros-sep { padding: 28px 0; gap: 12px; }
}

/* ═══════════════════════════════════════════════════
   REAL ICONS & LOGO IMAGES
   ═══════════════════════════════════════════════════ */

/* Nav logo */
.nl-logo-img {
  height: 44px;
  width: auto;
  display: block;
  object-fit: contain;
  mix-blend-mode: screen;
}

/* Footer logo */
.ft-logo-img {
  height: 50px;
  width: auto;
  display: block;
  object-fit: contain;
  margin-bottom: 16px;
  mix-blend-mode: screen;
}

/* Icon image — clean, no frame */
.pb-ico-img {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pb-ico-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1);
}
.pb-pill:hover .pb-ico-img img {
  transform: scale(1.1);
}

/* Pack card icon image */
.pk-ico-img {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}
.pk-ico-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
}
.pk-card:hover .pk-ico-img img {
  transform: scale(1.12) rotate(-3deg);
}

/* Fix ft-logo link — remove flex row since logo img has text built in */
.ft-logo {
  display: block;
}

/* ═══════════════════════════════════════════════════
   SERVICE PANEL — dropdown que abre cada servicio
   ═══════════════════════════════════════════════════ */

/* Make svc-pill cursor pointer + indicate it's interactive */
.svc-pill {
  cursor: pointer;
  position: relative;
  transition: background .2s;
}
.svc-pill.svc-active {
  background: rgba(255,92,0,.1);
  border-radius: 10px;
}
.svc-pill.svc-active .pb-ico-hex {
  background: rgba(255,92,0,.2);
  border-color: var(--orange);
}

/* Shared service detail panel — slides up from pills bar */
.svc-panel {
  position: absolute;
  bottom: calc(100% + 8px);   /* just above the pills-bar */
  left: 56px;
  right: 56px;
  z-index: 20;
  background: rgba(10,10,10,.96);
  border: 1px solid rgba(255,92,0,.25);
  border-radius: 16px;
  padding: 28px 32px 24px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 -8px 48px rgba(0,0,0,.6), 0 0 0 1px rgba(255,92,0,.08) inset;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .28s ease, transform .32s cubic-bezier(.34,1.56,.64,1);
  min-height: 220px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
  gap: 0 32px;
  align-items: start;
}
.svc-panel.svc-open {
  opacity: 1;
  pointer-events: all;
  transform: translateY(0);
}

.svc-close {
  position: absolute;
  top: 14px; right: 14px;
  width: 30px; height: 30px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: #fff;
  transition: background .18s, transform .2s;
}
.svc-close:hover { background: rgba(255,92,0,.2); transform: rotate(90deg); }
.svc-close svg { width: 14px; height: 14px; }

/* Panel head — col 1 */
.svc-panel-head { grid-column: 1; grid-row: 1 / 3; }

.svc-panel-badge {
  display: inline-block;
  font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--orange);
  border: 1px solid rgba(255,92,0,.3);
  background: rgba(255,92,0,.1);
  border-radius: 100px; padding: 3px 10px;
  margin-bottom: 10px;
}
.svc-panel-title {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 22px; font-weight: 800;
  color: #fff; letter-spacing: -.02em;
  line-height: 1.1; margin-bottom: 10px;
  display: block;
}
.svc-panel-desc {
  font-size: 13.5px; color: rgba(255,255,255,.5);
  line-height: 1.6; margin: 0;
}

/* List — col 2 */
.svc-panel-list {
  grid-column: 2; grid-row: 1 / 3;
  list-style: none;
  display: flex; flex-direction: column; gap: 10px;
  margin: 0; padding: 0;
}
.svc-panel-list li {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 13.5px; color: rgba(255,255,255,.72); line-height: 1.45;
}
.svc-panel-list li::before {
  content: '✦';
  color: var(--orange); font-size: 10px;
  flex-shrink: 0; margin-top: 3px;
  text-shadow: 0 0 8px rgba(255,92,0,.5);
}

/* CTA — full width bottom */
.svc-panel-cta {
  grid-column: 1 / -1; grid-row: 3;
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 20px;
  color: var(--orange); font-size: 13px; font-weight: 700;
  text-decoration: none; letter-spacing: .01em;
  border-top: 1px solid rgba(255,92,0,.15);
  padding-top: 16px;
  transition: gap .2s;
}
.svc-panel-cta:hover { gap: 14px; }
.svc-panel-cta span { font-size: 16px; }

@media(max-width:1100px) {
  .svc-panel { left: 24px; right: 24px; grid-template-columns: 1fr; }
  .svc-panel-head { grid-column: 1; grid-row: 1; }
  .svc-panel-list { grid-column: 1; grid-row: 2; }
  .svc-panel-cta { grid-row: 3; }
}

/* Ghost button */
.btn-ghost {
  display: inline-flex; align-items: center; gap: 10px;
  text-decoration: none; border-radius: 10px;
  font-size: 15px; font-weight: 600; letter-spacing: -.01em;
  padding: 14px 26px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  background: transparent;
  color: rgba(255,255,255,.6);
  border: 1.5px solid rgba(255,255,255,.12);
  transition: transform .25s cubic-bezier(.34,1.56,.64,1), background .18s, border-color .18s, color .18s;
  cursor: pointer;
}
.btn-ghost:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.25);
  color: #fff;
  transform: scale(1.1);
}
.btn-ghost .arr { transition: transform .22s; }
.btn-ghost:hover .arr { transform: translateX(4px); }

/* ═══════════════════════════════════════════════════
   WORD TICKER SEPARATOR
   ═══════════════════════════════════════════════════ */
.word-ticker {
  background: #050505;
  overflow: hidden;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid rgba(255,92,0,.1);
  border-bottom: 1px solid rgba(255,92,0,.1);
}

.tk-track {
  overflow: hidden;
  padding: 14px 0;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
}
.tk-track:first-child {
  border-bottom: 1px solid rgba(255,255,255,.04);
}

.tk-row {
  display: flex;
  align-items: center;
  gap: 0;
  width: max-content;
  will-change: transform;
}

.tk-word {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.28);
  padding: 0 20px;
  white-space: nowrap;
  transition: color .3s;
}
.tk-word:hover { color: var(--orange); }

.tk-dot {
  font-size: 8px;
  color: var(--orange);
  opacity: .6;
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════
   HAMBURGER + MOBILE MENU
   ═══════════════════════════════════════════════════════════ */
.nav-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px; height: 40px;
  background: transparent;
  border: none; cursor: pointer;
  padding: 4px;
  z-index: 1001;
}
.nav-burger span {
  display: block;
  width: 22px; height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform .3s, opacity .3s;
  transform-origin: center;
}
.nav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mob-menu {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(120% 60% at 85% 100%, rgba(255,92,0,.14) 0%, transparent 60%),
    rgba(6,6,6,.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
.mob-menu.open {
  opacity: 1;
  pointer-events: all;
}
.mob-nav {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  width: 100%;
  padding: 92px 26px 30px;
  overflow-y: auto;
}

/* ── links numerados ── */
.mob-links { display: flex; flex-direction: column; }
.mob-link {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(26px, 7.5vw, 36px);
  font-weight: 800;
  letter-spacing: -.03em;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  padding: 16px 2px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  /* entrada escalonada */
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .4s ease, transform .4s ease, color .2s;
}
.mob-num {
  font-size: 12px;
  font-weight: 600;
  color: var(--orange);
  letter-spacing: .08em;
  flex: 0 0 26px;
}
.mob-txt { flex: 1 1 auto; }
.mob-arr {
  font-size: 20px;
  font-weight: 400;
  color: rgba(255,92,0,.45);
  transform: translateX(-6px);
  transition: transform .25s, color .25s;
}
.mob-link:active .mob-txt,
.mob-link:hover  .mob-txt { color: #fff; }
.mob-link:active .mob-arr,
.mob-link:hover  .mob-arr { color: var(--orange); transform: translateX(0); }

/* stagger al abrir */
.mob-menu.open .mob-link { opacity: 1; transform: none; }
.mob-menu.open .mob-link:nth-child(1) { transition-delay: .06s, .06s, 0s; }
.mob-menu.open .mob-link:nth-child(2) { transition-delay: .12s, .12s, 0s; }
.mob-menu.open .mob-link:nth-child(3) { transition-delay: .18s, .18s, 0s; }
.mob-menu.open .mob-link:nth-child(4) { transition-delay: .24s, .24s, 0s; }
.mob-menu.open .mob-link:nth-child(5) { transition-delay: .30s, .30s, 0s; }

/* ── pie del menú ── */
.mob-foot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding-top: 28px;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .4s ease, transform .4s ease;
}
.mob-menu.open .mob-foot { opacity: 1; transform: none; transition-delay: .38s; }

.mob-link-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  background: var(--orange);
  color: #fff;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  padding: 16px 32px;
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(255,92,0,.35);
  transition: background .2s, transform .2s;
}
.mob-link-cta:hover { background: var(--orange2); transform: scale(1.02); }

.mob-socials { display: flex; gap: 14px; }
.mob-social {
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  color: rgba(255,255,255,.75);
  transition: color .2s, border-color .2s, background .2s;
}
.mob-social svg { width: 19px; height: 19px; }
.mob-social:active,
.mob-social:hover { color: #fff; border-color: var(--orange); background: rgba(255,92,0,.12); }

.mob-tag {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px;
  color: var(--muted);
  letter-spacing: .04em;
}
.mob-tag-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 8px var(--orange);
}

/* ═══════════════════════════════════════════════════════════
   MOBILE — ≤ 860px · estructura completa, sin scroll horizontal
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 860px) {

  /* ── Globals ── */
  body { cursor: auto; overflow-x: hidden; }
  #cdot, #cring { display: none; }

  /* ── Nav ── */
  .nav-links, .nav-ig-desk { display: none; }
  .nav-burger { display: flex; }
  nav { padding: 0 16px; }

  /* ═══ VIDEO SECTIONS — auto height, video as fixed stage ═══ */
  .vs {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: flex;
    flex-direction: column;
  }

  /* Video covers only the top "stage" (the content area) */
  .vbg {
    position: absolute !important;
    top: 0; left: 0; right: 0;
    width: 100%;
    height: 86svh;
    object-fit: cover;
    object-position: center center;
  }
  .vov {
    position: absolute !important;
    top: 0; left: 0; right: 0;
    height: 86svh;
  }

  /* HERO + CONTACTO video: shift right so character face isn't cut */
  #hero .vbg,
  #contacto .vbg { object-position: 78% center; }

  /* PACKS section: video covers FULL section, not 86svh */
  #packs .vbg,
  #packs .vov {
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
  }

  /* Ensure packs section min-height isn't constrained */
  #packs.vs { min-height: auto !important; }

  /* No horizontal overflow from any track */
  html, body { overflow-x: hidden; max-width: 100vw; }
  .rr-row, .tk-row { will-change: transform; }


  /* Content inner occupies the stage */
  .hero-inner, .qh-inner, .nos-inner, .con-inner {
    position: relative;
    z-index: 3;
    min-height: 86svh;
    box-sizing: border-box;
    padding: 92px 22px 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  /* ── Hero content ── */
  .hero-h1 { font-size: clamp(34px, 9vw, 50px); line-height: 1.05; }
  .hero-copy { max-width: 100%; }
  .sec-p, .sec-h2, .sec-h2-con { max-width: 100%; }
  .sec-p { font-size: 15px; }
  .sec-h2 { font-size: clamp(30px, 8vw, 46px); line-height: 1.08; }
  .sec-h2-con { font-size: clamp(30px, 8vw, 46px); }

  /* ── Buttons: stack full width ── */
  .btns-row, .con-btns {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: 100%;
    max-width: 380px;
  }
  .btns-row .btn-primary,
  .btns-row .btn-outline,
  .btns-row .btn-ghost,
  .con-btn {
    width: 100%;
    justify-content: center;
    font-size: 14px;
    padding: 13px 18px;
    box-sizing: border-box;
  }
  .social-proof { flex-wrap: wrap; gap: 8px; margin-top: 8px; }
  .sp-txt { font-size: 13px; }

  /* ═══ PILLS BARS — static blocks below the video, 2-col grid ═══ */
  .pills-bar {
    position: static !important;
    width: 100%;
    background: #0c0c0c;
    left: auto; right: auto; bottom: auto;
  }
  .pb-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: rgba(255,255,255,.06);
    padding: 0 !important;
    margin: 0;
    max-width: 100%;
    overflow: visible !important;
  }
  /* 3-pill bar (packs) — last item spans full width */
  .pb-inner-3 { grid-template-columns: 1fr 1fr; }
  .pb-inner-3 .pb-pill:last-child { grid-column: 1 / -1; }

  .pb-pill {
    flex-direction: column !important;
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 24px 14px !important;
    background: #0c0c0c;
    width: auto;
    min-width: 0;
    box-sizing: border-box;
  }
  .pb-sep { display: none !important; }

  /* Pill icons */
  .pb-ico, .pb-ico-img, .pb-ico-hex, .pb-ico-circle, .pb-ico-circ-lg {
    width: 46px !important;
    height: 46px !important;
  }
  .pb-ico-img img, .pb-ico-hex svg, .pb-ico-circle svg { width: 100%; height: 100%; }

  /* Pill text */
  .pb-text { width: 100%; }
  .pb-text strong {
    display: block;
    font-size: 13.5px;
    white-space: normal;
    line-height: 1.25;
    margin-bottom: 4px;
  }
  .pb-text span {
    display: block;
    font-size: 11.5px;
    line-height: 1.4;
    color: rgba(255,255,255,.5);
  }

  /* Service pills get a tap affordance */
  .svc-pill { cursor: pointer; }
  .svc-pill::after {
    content: 'Ver +';
    font-size: 9px; font-weight: 700; letter-spacing: .08em;
    color: var(--orange);
    text-transform: uppercase;
    margin-top: 2px;
  }

  /* ═══ SERVICE PANEL — bottom sheet on mobile ═══ */
  .svc-panel {
    position: fixed !important;
    left: 0 !important; right: 0 !important;
    bottom: 0 !important; top: auto !important;
    width: 100%;
    border-radius: 20px 20px 0 0;
    grid-template-columns: 1fr;
    padding: 28px 22px 32px;
    max-height: 85vh;
    overflow-y: auto;
    transform: translateY(100%);
    z-index: 1000;
  }
  .svc-panel.svc-open { transform: translateY(0); }
  .svc-panel-head { grid-column: 1; grid-row: 1; }
  .svc-panel-list { grid-column: 1; grid-row: 2; margin-top: 16px; }
  .svc-panel-cta   { grid-column: 1; grid-row: 3; }
  .svc-panel-title { font-size: 22px; }
  .svc-panel-desc  { font-size: 13px; }
  .svc-panel-list li { font-size: 13px; }

  /* ── QUÉ HACEMOS section: 2 pill bars stack ── */
  .qh-inner { padding-top: 92px; }

  /* ── NOSOTROS ── */
  .nos-inner { text-align: left; align-items: flex-start; }
  .nos-copy { max-width: 100%; }

  /* ── PACKS section ── */
  #packs.vs { overflow: visible !important; }
  .packs-inner {
    position: relative; z-index: 3;
    padding: 92px 22px 40px;
    min-height: auto;
  }
  #packs .vbg, #packs .vov { height: 100%; }
  .packs-h2 { font-size: clamp(28px, 8vw, 42px); }
  .packs-top { max-width: 100%; }
  .packs-cards {
    grid-template-columns: 1fr;
    gap: 16px;
    max-width: 100%;
  }
  .pk-card { padding: 26px 22px; }
  .pk-ico, .pk-ico-img {
    width: 68px !important; height: 68px !important;
    background: none !important; border: none !important; padding: 0 !important;
  }

  /* ── CONTACTO ── */
  .con-inner { text-align: left; align-items: flex-start; }
  .con-copy { max-width: 100%; }

  /* ── CAROUSEL — 4:5, fits screen ── */
  .rr-item { width: 132px; height: 165px; border-radius: 12px; }
  .rubros-sep { padding: 30px 0; }

  /* ── WORD TICKER ── */
  .tk-track { padding: 11px 0; }
  .tk-word { font-size: 9px; letter-spacing: .14em; padding: 0 12px; }

  /* ── FOOTER ── */
  .ft-inner {
    grid-template-columns: 1fr;
    padding: 48px 22px 40px;
    gap: 32px;
  }
  .ft-brand { grid-column: auto; }
  .ft-logo-img { height: 40px; }
  .ft-desc { font-size: 14px; }
  .ft-bottom-inner {
    flex-direction: column;
    gap: 8px;
    text-align: center;
    padding: 16px 22px;
  }
  .ft-bottom-inner p { font-size: 12px; }

  /* ── PACK MODALS — bottom sheet ── */
  .pack-overlay { align-items: flex-end; padding: 0; }
  .pack-modal {
    border-radius: 20px 20px 0 0;
    max-height: 92vh;
    max-width: 100%;
  }
  .pm-content { padding: 16px 22px 30px; }
  .pm-title { font-size: 25px; }
  .pm-sub { font-size: 14px; }
  .pm-list li { gap: 10px; }
  .pm-list strong { font-size: 14px; }
  .pm-list span { font-size: 12.5px; }
  .pm-cta { padding: 13px 18px; font-size: 14px; }

  /* ── WhatsApp float — smaller, out of the way ── */
  .wa-float { width: 54px; height: 54px; bottom: 18px; right: 18px; }
}

/* ── Extra small (≤ 380px) ── */
@media (max-width: 380px) {
  .hero-h1 { font-size: 32px; }
  .pb-text strong { font-size: 12.5px; }
  .pb-text span { font-size: 11px; }
  .mob-link { font-size: 26px; }
  .rr-item { width: 116px; height: 145px; }
}

/* ═══════════════════════════════════════════════════
   RUBROS — heading + tickers flush
   ═══════════════════════════════════════════════════ */
.rubros-title {
  text-align: center;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 800;
  letter-spacing: -.02em;
  color: #fff;
  padding: 48px 24px 28px;
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.15;
}
.rubros-title .acc { color: var(--orange); }

/* Ticker variant sitting flush inside rubros (no top/bottom border doubling) */
.word-ticker-flush {
  border: none;
  background: transparent;
}
.word-ticker-flush .tk-track {
  border: none;
  padding: 12px 0;
}

/* Closing tickers before footer */
.word-ticker-cierre {
  margin-top: 0;
}
.word-ticker-cierre .tk-word {
  font-size: 13px;
  font-weight: 800;
  color: rgba(255,255,255,.4);
}
.word-ticker-cierre .tk-track {
  padding: 16px 0;
}
.word-ticker-cierre .tk-track:first-child .tk-word { color: var(--orange); opacity: .85; }

@media (max-width: 860px) {
  .rubros-title { font-size: clamp(22px, 6vw, 30px); padding: 36px 20px 22px; }
  .word-ticker-cierre .tk-word { font-size: 11px; }
}

/* ═══════════════════════════════════════════════════════════
   MOBILE — refinamientos finales después de los tickers + rubros
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 860px) {

  /* Rubros section spacing */
  .rubros-sep { padding: 20px 0 24px; }
  .rubros-title {
    font-size: clamp(22px, 6.5vw, 30px);
    padding: 32px 22px 20px;
    line-height: 1.2;
  }
  .word-ticker-flush .tk-track { padding: 10px 0; }
  .word-ticker-flush .tk-word { font-size: 10px; padding: 0 12px; }

  /* Closing tickers before footer */
  .word-ticker-cierre { padding: 0; }
  .word-ticker-cierre .tk-track { padding: 14px 0; }
  .word-ticker-cierre .tk-word { font-size: 11px; padding: 0 14px; letter-spacing: .14em; }

  /* Make sure rubros image strip doesn't break on mobile */
  .rubros-sep .rr-track {
    overflow: hidden;
    padding: 6px 0;
  }
  .rr-row { gap: 12px; padding: 0 12px; }
  .rr-item { width: 124px; height: 155px; border-radius: 10px; }

  /* QH section has 2 pills bars stacked — give them a hairline between */
  .pills-bar-qh1 + .pills-bar-qh2 {
    border-top: 1px solid rgba(255,255,255,.05);
  }

  /* Packs pills bar (3 pills) — single column reads better than 2+1 spanned */
  .pills-bar-packs .pb-inner {
    grid-template-columns: 1fr !important;
  }
  .pills-bar-packs .pb-inner .pb-pill:last-child {
    grid-column: auto !important;
  }
  .pills-bar-packs .pb-pill {
    flex-direction: row !important;
    text-align: left;
    align-items: center;
    gap: 14px;
    padding: 18px 20px !important;
  }
  .pills-bar-packs .pb-text { flex: 1; }
  .pills-bar-packs .pb-text strong { margin-bottom: 2px; }

  /* WA float — never on top of buttons; offset higher when nothing else there */
  .wa-float { z-index: 90; }

  /* Footer logo width safety */
  .ft-logo-img { max-width: 70%; }

  /* Hero pills 2x2 - make sure icon doesn't get squished on tiny screens */
  .hero-pills .pb-pill,
  #hero .pb-pill { padding: 22px 12px !important; }
}

/* ═══════════════════════════════════════════════════════════
   MOBILE — OVERRIDES FINALES de máxima prioridad
   Resuelve conflictos con pb-inner-3 y refuerza layout mobile
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 860px) {

  /* PACKS pills: 3 en columna simple, fila horizontal cada uno */
  body .pills-bar-packs .pb-inner,
  body .pills-bar-packs .pb-inner-3,
  body .pills-bar-packs .pb-inner.pb-inner-3 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    overflow: visible !important;
    flex-wrap: wrap !important;
    width: 100% !important;
  }
  body .pills-bar-packs .pb-pill {
    grid-column: 1 !important;
    flex-direction: row !important;
    text-align: left !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    padding: 18px 20px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  body .pills-bar-packs .pb-pill .pb-text { flex: 1 1 auto !important; text-align: left !important; }
  body .pills-bar-packs .pb-pill .pb-text strong { font-size: 14px !important; }
  body .pills-bar-packs .pb-pill .pb-text span { display: block !important; font-size: 12.5px !important; }

  /* Hero pills (4): grilla 2x2 forzada — overflow imposible */
  body #hero .pb-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    width: 100% !important;
    overflow: visible !important;
  }
  body #hero .pb-pill {
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* QH pills (4 cada bar): grilla 2x2 forzada */
  body #que-hacemos .pills-bar .pb-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    width: 100% !important;
    overflow: visible !important;
  }
  body #que-hacemos .pb-pill {
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   FAQ — Preguntas frecuentes (AEO / SEO)
   ═══════════════════════════════════════════════════════════ */
#faq{
  background:#070707;
  border-top:1px solid var(--border);
  padding:90px 24px 100px;
}
.faq-inner{max-width:860px;margin:0 auto}
.faq-h2{
  font-size:clamp(30px,4.5vw,46px);
  font-weight:800;line-height:1.1;
  margin-bottom:14px;
}
.faq-sub{color:var(--muted);font-size:16px;margin-bottom:42px}
.faq-item{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  margin-bottom:12px;
  overflow:hidden;
  transition:border-color var(--ease);
}
.faq-item[open]{border-color:rgba(255,92,0,.45)}
.faq-item summary{
  list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 24px;
  font-weight:600;font-size:16.5px;
  user-select:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:'+';
  color:var(--orange);
  font-size:24px;font-weight:400;line-height:1;
  flex:0 0 auto;
  transition:transform .25s;
}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{
  padding:0 24px 22px;
  color:rgba(255,255,255,.75);
  font-size:15px;line-height:1.65;
}
.faq-item p a{color:var(--orange)}

/* ═══════════════════════════════════════════════════════════
   CHIMI ASISTENTE · Chat IA flotante
   ═══════════════════════════════════════════════════════════ */
/* WhatsApp se oculta mientras el chat está abierto */
.wa-float{transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .25s,visibility .25s}
body.cc-chat-open .wa-float{opacity:0;visibility:hidden;pointer-events:none}

.cc-fab{
  position:fixed;bottom:100px;right:28px;
  width:58px;height:58px;
  background:var(--orange);border:none;border-radius:50%;
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  z-index:200;box-shadow:0 6px 24px rgba(255,92,0,.45);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .25s,bottom .3s ease;
}
.cc-fab svg{width:26px;height:26px}
.cc-fab:hover{transform:scale(1.12)}
.cc-fab-open{background:#1a1a1a}
/* con el chat abierto, el botón de IA baja al lugar del de WhatsApp */
body.cc-chat-open .cc-fab{bottom:28px}
.cc-fab-ring{
  position:absolute;inset:0;border-radius:50%;
  background:var(--orange);z-index:-1;
  animation:waPulse 2.5s ease-out infinite;
  animation-delay:1.2s;
}
.cc-fab-open .cc-fab-ring{display:none}

.cc-panel{
  position:fixed;bottom:98px;right:28px;
  width:min(380px,calc(100vw - 32px));
  /* nunca llega a taparse con el nav (68px) */
  max-height:min(560px,calc(100vh - 190px));
  display:flex;flex-direction:column;
  background:#0d0d0d;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  box-shadow:0 24px 60px rgba(0,0,0,.6);
  z-index:210;
  opacity:0;visibility:hidden;
  transform:translateY(16px) scale(.97);
  transition:opacity .25s,transform .25s,visibility .25s;
}
.cc-panel.cc-open{opacity:1;visibility:visible;transform:none}

.cc-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(255,92,0,.06);
  border-radius:18px 18px 0 0;
}
.cc-head-info{display:flex;align-items:center;gap:12px}
.cc-head-info strong{display:block;font-size:14.5px}
.cc-status{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.cc-avatar{
  width:36px;height:36px;border-radius:50%;
  background:var(--orange);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:16px;flex:0 0 auto;
}
.cc-close{
  background:none;border:none;color:rgba(255,255,255,.55);
  width:32px;height:32px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  transition:color .2s,background .2s;
}
.cc-close:hover{color:#fff;background:rgba(255,255,255,.08)}
.cc-close svg{width:18px;height:18px}

.cc-msgs{
  flex:1 1 auto;overflow-y:auto;
  padding:18px;
  display:flex;flex-direction:column;gap:10px;
  min-height:160px;
}
.cc-msg{
  max-width:85%;
  padding:11px 14px;border-radius:14px;
  font-size:14px;line-height:1.55;
  white-space:pre-line;word-break:break-word;
}
.cc-msg-bot{
  align-self:flex-start;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.07);
  border-bottom-left-radius:4px;
}
.cc-msg-user{
  align-self:flex-end;
  background:var(--orange);color:#fff;
  border-bottom-right-radius:4px;
}
.cc-msg a{color:var(--orange);word-break:break-all}
.cc-msg-user a{color:#fff;text-decoration:underline}

.cc-typing{display:flex;gap:5px;padding:14px 16px}
.cc-typing span{
  width:7px;height:7px;border-radius:50%;
  background:rgba(255,255,255,.5);
  animation:ccBlink 1.2s infinite;
}
.cc-typing span:nth-child(2){animation-delay:.2s}
.cc-typing span:nth-child(3){animation-delay:.4s}
@keyframes ccBlink{0%,80%,100%{opacity:.25}40%{opacity:1}}

.cc-chips{
  display:flex;flex-wrap:wrap;gap:8px;
  padding:0 18px 10px;
}
.cc-chip{
  background:rgba(255,92,0,.1);
  border:1px solid rgba(255,92,0,.35);
  color:#ffb38a;
  font-size:12.5px;font-weight:500;
  padding:7px 12px;border-radius:999px;
  transition:background .2s,color .2s;
}
.cc-chip:hover{background:rgba(255,92,0,.25);color:#fff}

.cc-form{
  display:flex;gap:8px;
  padding:12px 14px;
  border-top:1px solid rgba(255,255,255,.08);
}
.cc-form input{
  flex:1 1 auto;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  color:#fff;font-size:14px;
  font-family:'Plus Jakarta Sans',sans-serif;
  padding:11px 14px;
  outline:none;
  transition:border-color .2s;
}
.cc-form input:focus{border-color:rgba(255,92,0,.6)}
.cc-form input::placeholder{color:rgba(255,255,255,.35)}
.cc-send{
  width:44px;height:44px;flex:0 0 auto;
  background:var(--orange);border:none;border-radius:10px;
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s,background .2s;
}
.cc-send:hover{transform:scale(1.06)}
.cc-send svg{width:18px;height:18px}

.cc-wa{
  display:block;text-align:center;
  padding:10px 16px 14px;
  font-size:12px;color:var(--muted);
  text-decoration:none;
  transition:color .2s;
}
.cc-wa:hover{color:#25d366}

@media (max-width:860px){
  .cc-fab{bottom:84px;right:18px;width:54px;height:54px;z-index:90}
  body.cc-chat-open .cc-fab{bottom:18px}
  .cc-panel{
    bottom:84px;right:16px;left:16px;width:auto;
    /* tope: 68px de nav + aire; base: botón de IA abajo */
    max-height:calc(100vh - 172px);
    max-height:calc(100dvh - 172px); /* respeta la barra del navegador móvil */
    z-index:95;
  }
  /* 16px mínimo: evita que iOS haga zoom automático al enfocar el input */
  .cc-form input{font-size:16px}
  /* chips en una sola fila deslizable para no comer altura */
  .cc-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:12px}
  .cc-chips::-webkit-scrollbar{display:none}
  .cc-chip{flex:0 0 auto;white-space:nowrap}
}
