/* ============================================================
   JONSOK · Nueva web intento 2 — estilo premium dinámico
   ============================================================ */
:root{
  --navy:#0F2638;        /* azul oscuro corporativo */
  --navy-2:#143247;
  --ink:#0c1822;
  --yellow:#F6C016;      /* amarillo solar JONSOK */
  --yellow-d:#e0a800;
  --sky:#1E88C9;
  --paper:#ffffff;
  --mist:#f3f6f9;
  --bg:#e9eef3;        /* fondo base tintado (nunca blanco puro) */
  --bg-a:#eef3f8;      /* tinte claro frío A */
  --bg-b:#e3eaf1;      /* tinte claro frío B */
  --line:#e3e9ee;
  --text:#1b2a36;
  --muted:#5c6b78;
  --radius:18px;
  --shadow:0 18px 50px -22px rgba(15,38,56,.45);
  --shadow-sm:0 8px 24px -14px rgba(15,38,56,.4);
  --ease:cubic-bezier(.22,.61,.36,1);
  --container:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:"Manrope",system-ui,sans-serif;color:var(--text);
  background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:"Sora",system-ui,sans-serif;line-height:1.12;margin:0 0 .4em;color:var(--ink);font-weight:700}
p{margin:0 0 1rem}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--container),92vw);margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:"Sora";text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:700;color:var(--yellow-d);margin:0 0 .6rem}
.eyebrow::before{content:"";width:1.8rem;height:2px;border-radius:2px;background:currentColor;flex:none}
.skip-link{position:absolute;left:-999px;top:0;background:var(--yellow);color:var(--ink);padding:.6rem 1rem;z-index:9999}
.skip-link:focus{left:1rem;top:1rem}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:"Sora";font-weight:600;font-size:.96rem;
  padding:.85rem 1.5rem;border-radius:999px;border:2px solid transparent;cursor:pointer;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s;will-change:transform}
.btn--primary{background:var(--yellow);color:var(--ink);box-shadow:0 10px 26px -10px rgba(246,192,22,.7)}
.btn--primary:hover{background:var(--yellow-d);transform:translateY(-2px)}
.btn--ghost{border-color:rgba(255,255,255,.6);color:#fff;background:rgba(255,255,255,.06);backdrop-filter:blur(4px)}
.btn--ghost:hover{background:#fff;color:var(--ink);transform:translateY(-2px)}
.btn--secondary{background:var(--navy);color:#fff}
.btn--secondary:hover{background:var(--navy-2);transform:translateY(-2px)}
.btn--lg{padding:1.05rem 1.9rem;font-size:1.02rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.2rem}

/* ---------- Loader ---------- */
.loader{position:fixed;inset:0;z-index:9000;background:#061018;display:flex;align-items:flex-end;justify-content:flex-start;
  padding:clamp(1rem,4vw,3rem);overflow:hidden;isolation:isolate;transition:opacity .6s var(--ease),visibility .6s}
.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.loader__video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:center}
.loader__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(3,10,15,.78) 0%,rgba(3,10,15,.24) 48%,rgba(3,10,15,.52) 100%),linear-gradient(180deg,rgba(3,10,15,.1),rgba(3,10,15,.72))}
.loader__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;
  min-width:min(310px,92vw);padding:1rem 1.1rem;border-radius:14px;border:1px solid rgba(255,255,255,.18);
  background:rgba(3,10,15,.52);backdrop-filter:blur(12px);box-shadow:0 22px 58px -34px rgba(0,0,0,.95)}
.loader__logo{width:180px;background:#fff;padding:13px 18px;border-radius:18px;animation:floaty 2.4s ease-in-out infinite}
.loader__name{font-family:"Sora";font-weight:800;letter-spacing:.3em;color:#fff;font-size:1.5rem;margin-top:.45rem}
.loader__sub{color:#d8e5ef;font-size:.82rem;letter-spacing:.05em}
.loader__bar{width:100%;height:3px;background:rgba(255,255,255,.16);border-radius:9px;overflow:hidden;margin-top:.85rem}
.loader__bar i{display:block;height:100%;width:0;background:var(--yellow);animation:loadbar 3s var(--ease) forwards}
@keyframes loadbar{to{width:100%}}
@keyframes floaty{0%,100%{transform:translateY(-5px)}50%{transform:translateY(5px)}}

/* ---------- Barra de progreso ---------- */
.scroll-meter{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--yellow),var(--sky));z-index:8000;transition:width .1s linear}

/* ---------- Header ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .3s,box-shadow .3s,padding .3s}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 0}
.header.is-stuck{background:rgba(255,255,255,.92);backdrop-filter:blur(12px);box-shadow:0 6px 24px -16px rgba(15,38,56,.5)}
.header.is-stuck .header__inner{padding:.6rem 0}
.brand{display:flex;align-items:center;gap:.7rem}
.brand__logo{width:118px;height:auto;background:#fff;padding:5px 11px;border-radius:12px;box-shadow:0 6px 18px -8px rgba(15,38,56,.4);transition:width .3s}
.header.is-stuck .brand__logo{width:104px}
.brand__text{display:none}
.brand__title{font-family:"Sora";font-weight:800;letter-spacing:.18em;color:#fff;font-size:1.15rem;transition:color .3s}
.brand__tag{font-size:.68rem;color:#cfdae3;transition:color .3s}
.header.is-stuck .brand__title{color:var(--ink)}
.header.is-stuck .brand__tag{color:var(--muted)}
.nav{display:flex;align-items:center;gap:.3rem}
.nav__link{font-family:"Sora";font-weight:600;font-size:.92rem;color:#eaf1f6;padding:.5rem .85rem;border-radius:999px;transition:color .25s,background .25s}
.header.is-stuck .nav__link{color:var(--text)}
.nav__link:hover,.nav__link.is-active{color:var(--ink);background:var(--yellow)}
.header.is-stuck .nav__link:hover,.header.is-stuck .nav__link.is-active{color:var(--ink);background:var(--yellow)}
.nav__cta{background:var(--yellow);color:var(--ink)!important;margin-left:.4rem}
.nav__cta:hover{background:var(--yellow-d)}
.nav-toggle{display:none;flex-direction:column;gap:5px;width:42px;height:42px;border:0;background:transparent;cursor:pointer;justify-content:center;align-items:center}
.nav-toggle span{width:24px;height:2px;background:#fff;transition:.3s}
.header.is-stuck .nav-toggle span{background:var(--ink)}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero__shade{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(105deg,rgba(8,20,30,.92) 0%,rgba(8,20,30,.62) 45%,rgba(8,20,30,.25) 100%)}
.hero__content{position:relative;max-width:780px;padding:7rem 0 6rem}
.hero__kicker{font-family:"Sora";text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;font-weight:700;color:var(--yellow)}
.hero__title{font-size:clamp(2.3rem,5.4vw,4.2rem);color:#fff;font-weight:800;letter-spacing:-.02em}
.hero__title span{display:block;color:#dbe6ee;font-weight:600;font-size:.62em;margin-top:.3em}
.hero__lead{font-size:clamp(1rem,1.6vw,1.22rem);color:#e6eef4;max-width:60ch}
.hero__scroll{position:absolute;bottom:1.6rem;left:50%;transform:translateX(-50%);color:#dbe6ee;font-family:"Sora";font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem;z-index:2}
.hero__scroll span{width:24px;height:38px;border:2px solid rgba(255,255,255,.6);border-radius:14px;position:relative}
.hero__scroll span::after{content:"";position:absolute;top:7px;left:50%;width:4px;height:8px;border-radius:3px;background:var(--yellow);transform:translateX(-50%);animation:scrolldot 1.6s infinite}
@keyframes scrolldot{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}80%{opacity:0;transform:translate(-50%,12px)}}
.hero__ticker{position:absolute;bottom:0;left:0;right:0;background:rgba(8,20,30,.55);border-top:1px solid rgba(255,255,255,.1);overflow:hidden;padding:.6rem 0;z-index:2}
.hero__ticker-track{display:flex;gap:1.4rem;white-space:nowrap;width:max-content;animation:ticker 32s linear infinite;font-family:"Sora";font-size:.82rem;letter-spacing:.08em;color:#cfdae3}
.hero__ticker-track span{opacity:.85}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ---------- Secciones ---------- */
.section{padding:clamp(4rem,8vw,7rem) 0;position:relative}
.section-head{max-width:720px;margin:0 auto 3rem;text-align:center}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.6rem)}
.section-lead{color:var(--muted);font-size:1.06rem}
/* Resaltado tipo rotulador en titulares (fondo-degradado animado) */

/* Fondos por sección — nunca blanco puro */
.autoconsumo{background:linear-gradient(180deg,var(--bg-a),var(--bg-b))}
.steps{background:var(--bg-b)}
.sectors{background:linear-gradient(180deg,var(--bg-a),var(--bg-b))}
.projects{background:var(--bg-b)}
/* Servicios = sección oscura, da ritmo y hace destacar las tarjetas */
.services{background:linear-gradient(160deg,#13314a 0%,#0c1f2e 100%);color:#eaf1f6}
.services .section-head h2{color:#fff}
.services .section-lead{color:#b9c8d4}

/* ---------- Cifras ---------- */
.stats{background:var(--navy);color:#fff;padding:3.2rem 0}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center}
.stat b{font-family:"Sora";font-size:clamp(2.2rem,4.6vw,3.4rem);font-weight:800;color:var(--yellow);display:block;line-height:1}
.stat span{color:#bcccd8;font-size:.92rem;letter-spacing:.02em}

/* ---------- Two col (autoconsumo) ---------- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.two-col__media{position:relative}
.two-col__media img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;object-fit:cover;aspect-ratio:4/3}
.floating-chips{position:absolute;left:-12px;bottom:-18px;display:flex;flex-direction:column;gap:.6rem;max-width:78%}
.chip{background:#fff;color:var(--ink);font-family:"Sora";font-weight:600;font-size:.8rem;padding:.55rem .9rem;border-radius:999px;box-shadow:var(--shadow-sm);border:1px solid var(--line)}
.two-col__text h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.ticklist{list-style:none;padding:0;margin:1.2rem 0}
.ticklist li{position:relative;padding-left:1.9rem;margin-bottom:.7rem;color:var(--text)}
.ticklist li::before{content:"";position:absolute;left:0;top:.35em;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 4px rgba(246,192,22,.18)}
.ticklist li::after{content:"";position:absolute;left:.34rem;top:.62em;width:.32rem;height:.55rem;border:2px solid var(--ink);border-top:0;border-left:0;transform:rotate(45deg)}

/* ---------- Steps ---------- */
.steps__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.step-card{position:relative;background:var(--mist);border:1px solid var(--line);border-radius:var(--radius);padding:2.2rem 1.8rem 1.8rem;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s}
.step-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.step-card__num{font-family:"Sora";font-weight:800;font-size:3.2rem;color:rgba(15,38,56,.08);position:absolute;top:.4rem;right:1rem}
.step-card h3{font-size:1.3rem}
.step-card p{color:var(--muted);margin:0}
.step-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--yellow);transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.step-card:hover::before{transform:scaleY(1)}

/* ===== Sección "Cómo funciona" cinematográfica ===== */
.steps--cine{position:relative;overflow:hidden;color:#fff;background:#0b1c2b}
.steps__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.45}
.steps__overlay{position:absolute;inset:0;z-index:1;
  background:radial-gradient(120% 90% at 50% -10%,rgba(20,50,71,.35),rgba(8,18,28,.92) 65%),linear-gradient(180deg,rgba(8,18,28,.8),rgba(8,18,28,.94))}
.steps--cine .container{position:relative;z-index:2}
.steps--cine .section-head h2{color:#fff}
.eyebrow--light{color:var(--yellow)}
.section-lead--light{color:#c4d2dd}

/* Diagrama de flujo de energía */
.flow{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap;max-width:840px;margin:0 auto 3.4rem}
.flow__node{display:flex;flex-direction:column;align-items:center;gap:.55rem;min-width:84px}
.flow__icon{width:66px;height:66px;border-radius:18px;display:grid;place-items:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px)}
.flow__icon svg{width:32px;height:32px}
.flow__icon img{width:30px;filter:brightness(0) invert(1)}
.flow__node span{font-family:"Sora";font-size:.82rem;color:#cddae5;font-weight:600}
.flow__node--sun .flow__icon{background:rgba(246,192,22,.16);border-color:rgba(246,192,22,.55);animation:sunpulse 2.4s ease-in-out infinite}
.flow__node--sun svg g{transform-origin:12px 12px;animation:spin 16s linear infinite}
@keyframes sunpulse{0%,100%{box-shadow:0 0 0 0 rgba(246,192,22,0)}50%{box-shadow:0 0 28px 5px rgba(246,192,22,.5)}}
@keyframes spin{to{transform:rotate(360deg)}}
.flow__link{position:relative;flex:1 1 36px;min-width:30px;max-width:120px;height:4px;border-radius:4px;background:rgba(255,255,255,.14);overflow:hidden}
.flow__link i{position:absolute;top:0;left:0;height:100%;width:45%;border-radius:4px;
  background:linear-gradient(90deg,transparent,var(--yellow),transparent);animation:flowdot 1.7s linear infinite}
.flow__link:nth-of-type(4) i{animation-delay:.4s}
.flow__link:nth-of-type(6) i{animation-delay:.8s}
@keyframes flowdot{from{transform:translateX(-110%)}to{transform:translateX(330%)}}

/* Tarjetas glass */
.glass-card{position:relative;padding:2.3rem 1.8rem 1.9rem;border-radius:var(--radius);overflow:hidden;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);
  color:#eaf1f6;transition:transform .4s var(--ease),background .4s,box-shadow .4s,border-color .4s}
.glass-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.14) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .9s var(--ease)}
.glass-card:hover{transform:translateY(-8px);background:rgba(255,255,255,.12);border-color:rgba(246,192,22,.5);box-shadow:0 26px 54px -22px rgba(0,0,0,.7)}
.glass-card:hover::after{transform:translateX(120%)}
.glass-card__num{font-family:"Sora";font-weight:800;font-size:3.2rem;color:rgba(246,192,22,.28);position:absolute;top:.3rem;right:1.1rem}
.glass-card h3{color:#fff;font-size:1.3rem}
.glass-card p{color:#bccadb;margin:0}

/* ---------- Sectores slider ---------- */
.sector-slider{position:relative}
.sector-stage{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);height:min(70vh,560px)}
.sector-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transform:scale(1.06);transition:opacity .8s var(--ease),transform 1.2s var(--ease),visibility .8s}
.sector-slide.is-active{opacity:1;visibility:visible;transform:scale(1)}
.sector-slide img{width:100%;height:100%;object-fit:cover}
/* Ken Burns: la diapositiva activa hace zoom-out lento */
.sector-slide.is-active img{animation:kenburns 16s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.22) translate(2%,-1.5%)}to{transform:scale(1) translate(0,0)}}
.sector-slide__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,20,30,.92) 0%,rgba(8,20,30,.35) 55%,rgba(8,20,30,.1) 100%)}
.sector-slide__body{position:absolute;left:0;right:0;bottom:0;padding:clamp(1.5rem,4vw,3rem);color:#fff;max-width:760px}
.sector-tag{display:inline-block;background:var(--yellow);color:var(--ink);font-family:"Sora";font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;padding:.35rem .8rem;border-radius:999px;margin-bottom:.8rem}
.sector-slide__body h3{font-size:clamp(1.3rem,2.6vw,2rem);color:#fff;margin-bottom:.5rem}
.sector-slide__body p{color:#dbe6ee;margin:0}
.sector-tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem;justify-content:center}
.sector-tabs button{font-family:"Sora";font-weight:600;font-size:.9rem;padding:.6rem 1.2rem;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--text);cursor:pointer;transition:.25s}
.sector-tabs button:hover{border-color:var(--yellow)}
.sector-tabs button.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---------- Cintas de proyectos (reel) ---------- */
.reel{background:var(--bg-b);border-block:1px solid var(--line);padding:1.1rem 0;display:flex;flex-direction:column;gap:1.1rem;overflow:hidden}
.reel__strip{overflow:hidden}
.reel__track{display:flex;gap:1rem;width:max-content;will-change:transform}
.reel__strip[data-reel="ind"] .reel__track{animation:reel-right 70s linear infinite}
.reel__strip[data-reel="dom"] .reel__track{animation:reel-left 70s linear infinite}
.reel__strip:hover .reel__track{animation-play-state:paused}
@keyframes reel-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes reel-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}

.reel-item{position:relative;flex:none;width:300px;height:210px;border-radius:14px;overflow:hidden;
  background:#0b1c2b;box-shadow:var(--shadow-sm);cursor:pointer;
  transition:width .5s var(--ease),box-shadow .5s}
.reel-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.reel-item__tag{position:absolute;top:.7rem;left:.7rem;z-index:3;background:var(--yellow);color:var(--ink);
  font-family:"Sora";font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;
  padding:.25rem .6rem;border-radius:999px}
.reel-item__info{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;
  padding:1rem 1.1rem;color:#fff;opacity:0;transition:opacity .45s;
  background:linear-gradient(180deg,rgba(8,18,28,0) 30%,rgba(8,18,28,.55) 55%,rgba(8,18,28,.94) 100%)}
.reel-item__info h4{color:#fff;font-size:1.18rem;margin:0 0 .15rem}
.reel-item__loc{margin:0;color:var(--yellow);font-family:"Sora";font-weight:600;font-size:.82rem}
.reel-item__desc{margin:.5rem 0 0;color:#d7e2ec;font-size:.86rem;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  opacity:0;max-height:0;transition:opacity .4s .1s,max-height .5s}
/* hover: la cinta se para (regla arriba) y este item crece + muestra descripción */
.reel-item:hover{width:560px;box-shadow:var(--shadow);z-index:6}
.reel-item:hover img{transform:scale(1.06)}
.reel-item:hover .reel-item__info{opacity:1}
.reel-item:hover .reel-item__desc{opacity:1;max-height:6rem}

/* ---------- Servicios ---------- */
.services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.service-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.service-card__media{position:relative;aspect-ratio:16/10;overflow:hidden}
.service-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.service-card:hover .service-card__media img{transform:scale(1.08)}
.service-card__chip{position:absolute;top:1rem;left:1rem;background:var(--yellow);color:var(--ink);font-family:"Sora";font-weight:700;font-size:.75rem;padding:.3rem .8rem;border-radius:999px}
.service-card__body{padding:1.5rem;position:relative}
.service-card__icon{position:absolute;top:-26px;right:1.4rem;width:52px;height:52px;background:var(--navy);padding:.7rem;border-radius:14px;box-shadow:var(--shadow-sm)}
.service-card h3{font-size:1.22rem}
.service-card p{color:var(--muted);margin:0}

/* ===== Acordeón de servicios (paneles que se expanden al pasar el ratón) ===== */
.accordion{display:flex;gap:.7rem;height:460px}
.acc{position:relative;flex:1 1 0;min-width:0;border-radius:var(--radius);overflow:hidden;cursor:pointer;
  background-position:center;background-size:cover;background-repeat:no-repeat;outline:none;
  transition:flex .65s var(--ease)}
.acc.is-open{flex:4 1 0}
.acc:focus-visible{box-shadow:0 0 0 3px var(--yellow)}
.acc__overlay{position:absolute;inset:0;z-index:1;transition:background .6s;
  background:linear-gradient(180deg,rgba(15,38,56,.5) 0%,rgba(8,18,28,.32) 42%,rgba(8,18,28,.92) 100%)}
.acc.is-open .acc__overlay{background:linear-gradient(180deg,rgba(15,38,56,.28) 0%,rgba(8,18,28,.12) 38%,rgba(8,18,28,.86) 100%)}
.acc__icon{position:absolute;top:1.1rem;left:1.1rem;z-index:3;width:52px;height:52px;border-radius:14px;
  display:grid;place-items:center;background:var(--yellow);box-shadow:0 8px 20px -8px rgba(246,192,22,.8)}
.acc__icon img{width:28px}
.acc.is-open .acc__icon{animation:iconpop .6s var(--ease)}
@keyframes iconpop{0%{transform:scale(.7) rotate(-8deg)}60%{transform:scale(1.12) rotate(4deg)}100%{transform:scale(1)}}
.acc__icon::after{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid var(--yellow);opacity:0}
.acc.is-open .acc__icon::after{animation:iconring 1.9s ease-out infinite}
@keyframes iconring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.85);opacity:0}}
.acc__label{position:absolute;left:1.35rem;bottom:1.4rem;z-index:3;color:#fff;font-family:"Sora";font-weight:700;
  font-size:1.15rem;letter-spacing:.02em;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;
  text-shadow:0 2px 10px rgba(0,0,0,.5);transition:opacity .3s,transform .4s}
.acc.is-open .acc__label{opacity:0;transform:rotate(180deg) translateY(-12px)}
.acc__content{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:1.8rem;color:#fff;pointer-events:none;
  opacity:0;transform:translateY(16px);transition:opacity .5s .12s,transform .5s .12s}
.acc.is-open .acc__content{opacity:1;transform:none}
.acc__chip{display:inline-block;background:var(--yellow);color:var(--ink);font-family:"Sora";font-weight:700;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:.3rem .75rem;border-radius:999px;margin-bottom:.7rem}
.acc__content h3{color:#fff;font-size:1.5rem;margin-bottom:.4rem}
.acc__content p{color:#dbe6ee;margin:0;max-width:48ch}
@media(max-width:760px){
  .accordion{flex-direction:column;height:auto}
  .acc{flex:auto;height:230px}
  .acc__label{display:none}
  .acc__content{opacity:1;transform:none}
  .acc__overlay{background:linear-gradient(180deg,rgba(15,38,56,.25),rgba(8,18,28,.86))}
}

/* ---------- Proyectos ---------- */
.projects__logo{width:60px;margin:0 auto .4rem}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:2rem}
.filter{font-family:"Sora";font-weight:600;font-size:.88rem;padding:.55rem 1.15rem;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--text);cursor:pointer;transition:.25s}
.filter:hover{border-color:var(--yellow)}
.filter.is-active{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.project-card{position:relative;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);
  opacity:0;transform:translateY(24px) scale(.98);transition:transform .5s var(--ease),opacity .5s var(--ease),box-shadow .4s}
.project-card.is-shown{opacity:1;transform:none}
.project-card:hover{box-shadow:var(--shadow);transform:translateY(-6px)}
.project-card__media{aspect-ratio:16/10;overflow:hidden}
.project-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.project-card:hover .project-card__media img{transform:scale(1.09)}
.project-card__body{padding:1.2rem 1.3rem 1.4rem}
.project-card__meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}
.tagpill{font-family:"Sora";font-weight:600;font-size:.72rem;padding:.25rem .7rem;border-radius:999px;background:var(--mist);color:var(--navy);border:1px solid var(--line)}
.tagpill--type{background:var(--navy);color:#fff;border-color:var(--navy)}
.project-card h3{font-size:1.15rem;margin-bottom:.2rem}
.project-card__loc{color:var(--muted);font-size:.9rem;margin:0}
.project-card__kwp{position:absolute;top:1rem;right:1rem;background:var(--yellow);color:var(--ink);font-family:"Sora";font-weight:800;font-size:.82rem;padding:.3rem .7rem;border-radius:10px}
.projects__more{text-align:center;margin-top:2.4rem}
.projects__more[hidden]{display:none}

/* ---------- Testimonios ---------- */
.testimonials{background:linear-gradient(180deg,var(--bg-b),var(--bg-a))}
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.quote-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.7rem;box-shadow:var(--shadow-sm);position:relative;transition:transform .35s var(--ease)}
.quote-card:hover{transform:translateY(-6px)}
.quote-card::before{content:"\201C";position:absolute;top:.4rem;right:1.4rem;font-family:Georgia,serif;font-size:4rem;color:var(--yellow);opacity:.5;line-height:1}
.quote-card__avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;margin-bottom:1rem;border:3px solid var(--yellow)}
.quote-card p{color:var(--text);font-size:.98rem}
.quote-card h4{margin:.4rem 0 0;color:var(--navy)}

/* ---------- Claim ---------- */
.claim{position:relative;overflow:hidden;padding:clamp(5rem,12vw,9rem) 0;color:#fff;text-align:center;background:#0b1c2b}
.claim__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.claim__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(8,20,30,.72),rgba(8,20,30,.84))}
.claim .container{position:relative;z-index:2}
.claim p{font-family:"Sora";font-size:clamp(1.4rem,3vw,2.4rem);font-weight:600;line-height:1.4;margin:0}
.claim strong{color:var(--yellow)}

/* ---------- Contacto ---------- */
.contact{background:var(--navy);color:#fff}
.contact__inner{display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;align-items:center}
.contact__text h2{color:#fff;font-size:clamp(1.8rem,3.4vw,2.6rem)}
.contact__text p{color:#cfdae3}
.contact__list{list-style:none;padding:0;margin:1.2rem 0 0}
.contact__list li{margin-bottom:.4rem;color:#eaf1f6}
.contact__list a{color:var(--yellow)}
.contact__cta{display:flex;flex-direction:column;gap:1rem}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:#cdd9e2;padding:3.5rem 0 0}
.footer__inner{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2.4rem}
.footer__logo{width:150px;background:#fff;padding:10px 14px;border-radius:14px;margin-bottom:1rem}
.footer h4{color:#fff;font-size:1rem;margin-bottom:.8rem}
.footer ul{list-style:none;padding:0;margin:0}
.footer li{margin-bottom:.4rem}
.footer a:hover{color:var(--yellow)}
.footer__bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:2.5rem;padding:1.2rem 0;font-size:.85rem;color:#90a2b1;text-align:center}

/* ===== COHESIÓN: lenguaje visual repetido ===== */
/* Barra amarilla superior común a todas las tarjetas en hover */
.service-card,.project-card,.quote-card{position:relative}
.service-card::before,.project-card::before,.quote-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:4;
  background:linear-gradient(90deg,var(--yellow),#ffd84d);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.service-card:hover::before,.project-card:hover::before,.quote-card:hover::before{transform:scaleX(1)}

/* Resplandor solar ambiental a la deriva en secciones claras (les da vida) */
.autoconsumo,.sectors,.projects,.testimonials{overflow:hidden}
.autoconsumo::before,.sectors::before,.projects::before,.testimonials::before{
  content:"";position:absolute;width:48vmax;height:48vmax;border-radius:50%;
  top:-16%;right:-12%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(246,192,22,.12),transparent 62%);
  animation:drift 20s ease-in-out infinite alternate}
.sectors::before{left:-14%;right:auto;top:auto;bottom:-18%;background:radial-gradient(circle,rgba(30,136,201,.10),transparent 62%)}
.testimonials::before{top:auto;bottom:-16%;left:-10%;right:auto}
.autoconsumo>.container,.sectors>.container,.projects>.container,.testimonials>.container{position:relative;z-index:1}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(-7%,9%) scale(1.18)}}

/* ---------- Responsive ---------- */
@media(max-width:920px){
  .nav-toggle{display:flex}
  .nav{position:fixed;inset:0 0 0 auto;width:min(82vw,340px);flex-direction:column;align-items:flex-start;justify-content:center;gap:1rem;
    background:var(--navy);padding:2rem;transform:translateX(110%);transition:transform .4s var(--ease);z-index:1100}
  .nav.is-open{transform:none}
  .nav__link{color:#fff;font-size:1.1rem}
  .stats__grid{grid-template-columns:repeat(2,1fr);gap:2rem}
  .two-col,.steps__grid,.services__grid,.project-grid,.quote-grid,.contact__inner,.footer__inner{grid-template-columns:1fr}
  .floating-chips{position:static;flex-direction:row;flex-wrap:wrap;max-width:none;margin-top:1rem}
  .claim{background-attachment:scroll}
  .project-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .project-grid{grid-template-columns:1fr}
  .hero__content{padding-top:6rem}
}

/* ---------- Accesibilidad: menos movimiento ---------- */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .hero__video,.steps__bg,.claim__video{display:none}
  .hero{background:var(--navy)}
  .sector-slide.is-active img{animation:none}
}

/* ===== Capa cinematográfica JONSOK ===== */
.hero{min-height:92svh}
.hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0) 22%,rgba(0,0,0,.16) 100%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 92px);mix-blend-mode:screen;opacity:.38}
.hero__video{transition:opacity .35s var(--ease),transform 1.1s var(--ease)}
.hero.is-switching .hero__video{opacity:.22;transform:scale(1.05)}
.hero__content{z-index:2;max-width:none;display:grid;grid-template-columns:minmax(0,760px) minmax(300px,390px);gap:clamp(2rem,6vw,5rem);align-items:center;padding:7rem 0 6.8rem}
.hero__copy{max-width:780px}
.hero__console{justify-self:end;width:100%;display:grid;gap:.7rem;padding:1rem;border-left:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,rgba(8,20,30,.46),rgba(8,20,30,.18));backdrop-filter:blur(12px)}
.hero__console-label{font-family:"Sora";font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--yellow);margin:0 0 .2rem}
.hero-scene{appearance:none;width:100%;min-height:78px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.07);color:#fff;text-align:left;cursor:pointer;display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:.8rem;align-items:center;padding:.85rem .95rem;transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.hero-scene span{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(246,192,22,.16);color:var(--yellow);font-family:"Sora";font-size:.78rem;font-weight:800}
.hero-scene strong{font-family:"Sora";font-size:.98rem;line-height:1.15;color:#fff}
.hero-scene em{font-style:normal;color:#cbd8e2;font-size:.84rem;line-height:1.25}
.hero-scene:hover,.hero-scene:focus-visible{transform:translateX(4px);border-color:rgba(246,192,22,.72);outline:none}
.hero-scene.is-active{background:linear-gradient(135deg,rgba(246,192,22,.96),rgba(255,219,82,.86));border-color:rgba(246,192,22,1);color:var(--ink);box-shadow:0 18px 42px -24px rgba(246,192,22,.95)}
.hero-scene.is-active span{background:rgba(15,38,56,.14);color:var(--ink)}
.hero-scene.is-active strong,.hero-scene.is-active em{color:var(--ink)}

.turnkey{position:relative;overflow:hidden;color:#fff;background:#0b1c2b;padding:clamp(4.5rem,8vw,7.5rem) 0}
.turnkey__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.54}
.turnkey__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,rgba(6,16,24,.96) 0%,rgba(6,16,24,.72) 48%,rgba(6,16,24,.28) 100%),linear-gradient(180deg,rgba(6,16,24,.25),rgba(6,16,24,.86))}
.turnkey__inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,520px) 1fr;gap:clamp(2rem,6vw,5rem);align-items:end}
.turnkey__head h2{color:#fff;font-size:2.35rem}
.turnkey__head p{color:#d5e1eb;font-size:1.04rem;margin:0}
.turnkey__timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16)}
.turnkey-step{position:relative;min-height:230px;padding:1.3rem;background:rgba(8,20,30,.54);backdrop-filter:blur(10px);transition:background .3s var(--ease),transform .3s var(--ease)}
.turnkey-step::before{content:"";position:absolute;left:1.3rem;right:1.3rem;top:4.3rem;height:2px;background:linear-gradient(90deg,var(--yellow),rgba(246,192,22,0))}
.turnkey-step:hover{background:rgba(15,38,56,.78);transform:translateY(-6px)}
.turnkey-step span{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--yellow);color:var(--ink);font-family:"Sora";font-weight:800;margin-bottom:2.2rem}
.turnkey-step h3{color:#fff;font-size:1.06rem;margin-bottom:.45rem}
.turnkey-step p{color:#bfccd8;font-size:.91rem;line-height:1.5;margin:0}

.contact{background:linear-gradient(140deg,#0a1824 0%,#0f2638 55%,#143247 100%)}
.contact__cta{display:grid;gap:1rem}
.contact-action{display:grid;gap:.18rem;padding:1.15rem 1.25rem;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;transition:transform .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}
.contact-action span{font-family:"Sora";font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--yellow)}
.contact-action strong{font-family:"Sora";font-size:1.2rem;line-height:1.2}
.contact-action em{font-style:normal;color:#d1dde7;font-size:.94rem}
.contact-action:hover{transform:translateY(-3px);border-color:rgba(246,192,22,.8);background:rgba(255,255,255,.12);box-shadow:0 18px 40px -26px rgba(0,0,0,.85)}
.contact-action--primary{background:var(--yellow);color:var(--ink);border-color:var(--yellow);box-shadow:0 18px 38px -22px rgba(246,192,22,.95)}
.contact-action--primary span,.contact-action--primary em,.contact-action--primary strong{color:var(--ink)}
.contact-action--primary:hover{background:#ffd553;color:var(--ink)}

@media(max-width:920px){
  .hero{min-height:94svh}
  .hero__content{grid-template-columns:1fr;gap:1.6rem;padding:6.8rem 0 6.4rem}
  .hero__console{justify-self:stretch;grid-template-columns:repeat(2,1fr);border-left:0;border-top:1px solid rgba(255,255,255,.18)}
  .hero__console-label{grid-column:1/-1}
  .turnkey__inner{grid-template-columns:1fr;align-items:start}
  .turnkey__timeline{grid-template-columns:repeat(2,1fr)}
  .turnkey-step{min-height:190px}
}
@media(max-width:600px){
  .hero__content{padding-top:6.4rem}
  .hero__console{display:none}
  .turnkey__head h2{font-size:1.65rem}
  .turnkey__timeline{grid-template-columns:1fr}
  .turnkey-step{min-height:auto}
  .contact-action{padding:1rem}
}
@media(prefers-reduced-motion:reduce){
  .hero.is-switching .hero__video{opacity:1;transform:none}
  .turnkey-step:hover,.hero-scene:hover,.hero-scene:focus-visible{transform:none}
}
/* ===== Upgrade: método llave en mano con más impacto ===== */
.turnkey{min-height:88svh;display:flex;align-items:center;isolation:isolate;padding:clamp(5rem,9vw,8.5rem) 0;background:#061018}
.turnkey::before{content:"";position:absolute;inset:-18% -8% auto auto;width:52vmax;height:52vmax;border-radius:50%;z-index:1;pointer-events:none;background:radial-gradient(circle,rgba(246,192,22,.32),rgba(246,192,22,.08) 38%,transparent 68%);filter:blur(2px);animation:turnkeyGlow 9s ease-in-out infinite alternate}
.turnkey::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.12) 44%,transparent 58%);transform:translateX(-120%);animation:turnkeySweep 8s var(--ease) infinite}
.turnkey__video{opacity:.78;filter:saturate(1.18) contrast(1.08) brightness(.82);transform:scale(1.04);animation:turnkeyDrift 20s ease-in-out infinite alternate}
.turnkey__overlay{background:linear-gradient(90deg,rgba(3,10,15,.98) 0%,rgba(3,10,15,.9) 35%,rgba(3,10,15,.58) 68%,rgba(3,10,15,.72) 100%),linear-gradient(180deg,rgba(3,10,15,.42),rgba(3,10,15,.94))}
.turnkey__inner{grid-template-columns:minmax(0,470px) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,4rem)}
.turnkey__head{position:relative;padding:clamp(1.35rem,3vw,2rem);border-radius:16px;background:linear-gradient(180deg,rgba(3,10,15,.7),rgba(3,10,15,.42));border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(14px);box-shadow:0 28px 70px -34px rgba(0,0,0,.95)}
.turnkey__head::before{content:"";position:absolute;left:0;top:1.35rem;bottom:1.35rem;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--yellow),rgba(246,192,22,.18))}
.turnkey__head h2{font-size:clamp(2rem,4.4vw,4.25rem);line-height:1.02;letter-spacing:0;text-wrap:balance;text-shadow:0 14px 34px rgba(0,0,0,.72)}
.turnkey__head p{font-size:clamp(1rem,1.35vw,1.14rem);line-height:1.72;color:#eef5fa;text-shadow:0 2px 10px rgba(0,0,0,.75)}
.turnkey__proof{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.25rem}
.turnkey__proof span{font-family:"Sora";font-weight:800;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);background:var(--yellow);border-radius:999px;padding:.42rem .72rem;box-shadow:0 12px 30px -18px rgba(246,192,22,.9)}
.turnkey__timeline{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;background:transparent;border:0}
.turnkey__timeline::before{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--yellow),var(--sky),transparent);box-shadow:0 0 22px rgba(246,192,22,.44);transform:translateY(-50%);animation:energyPulse 2.9s linear infinite}
.turnkey-step{position:relative;min-height:230px;padding:1.35rem 1.25rem 1.25rem;border-radius:16px;overflow:hidden;background:rgba(3,10,15,.74);border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 44px -28px rgba(0,0,0,.9);backdrop-filter:blur(12px);transition:transform .45s var(--ease),background .45s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease)}
.turnkey-step:nth-child(even){transform:translateY(2rem)}
.turnkey-step::before{left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--yellow),rgba(30,136,201,.8),transparent);opacity:.52;transform:none}
.turnkey-step::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(246,192,22,.18),transparent 36%),linear-gradient(120deg,transparent 28%,rgba(255,255,255,.1) 50%,transparent 72%);opacity:0;transform:translateX(-42%);transition:opacity .45s var(--ease),transform .7s var(--ease)}
.turnkey-step span{width:auto;height:auto;display:block;background:transparent;color:rgba(246,192,22,.72);font-size:clamp(2.25rem,4.6vw,4.8rem);line-height:.86;margin:0 0 1.4rem;text-shadow:0 0 22px rgba(246,192,22,.28)}
.turnkey-step h3{color:#fff;font-size:clamp(1.18rem,1.9vw,1.55rem);margin-bottom:.55rem;text-shadow:0 3px 14px rgba(0,0,0,.62)}
.turnkey-step p{color:#e5eef6;font-size:.98rem;line-height:1.58;text-shadow:0 2px 9px rgba(0,0,0,.72)}
.turnkey-step:hover,.turnkey-step.is-active{background:linear-gradient(180deg,rgba(15,38,56,.88),rgba(5,15,23,.82));border-color:rgba(246,192,22,.78);box-shadow:0 30px 70px -34px rgba(246,192,22,.42),0 22px 62px -36px rgba(0,0,0,1);transform:translateY(-.7rem) scale(1.02)}
.turnkey-step:nth-child(even):hover,.turnkey-step:nth-child(even).is-active{transform:translateY(1.15rem) scale(1.02)}
.turnkey-step:hover::after,.turnkey-step.is-active::after{opacity:1;transform:translateX(18%)}
.turnkey-step.is-active span{color:var(--yellow)}
@keyframes turnkeyGlow{from{transform:translate(4%,-2%) scale(.9);opacity:.62}to{transform:translate(-8%,5%) scale(1.08);opacity:.92}}
@keyframes turnkeySweep{0%,38%{transform:translateX(-120%);opacity:0}48%{opacity:.38}62%,100%{transform:translateX(120%);opacity:0}}
@keyframes turnkeyDrift{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-1.5%,1%,0)}}
@keyframes energyPulse{from{filter:hue-rotate(0deg);opacity:.44}50%{opacity:.92}to{filter:hue-rotate(22deg);opacity:.44}}

.services .section-head{max-width:880px}
.services .section-head h2{font-size:clamp(2rem,4vw,3.35rem);line-height:1.06;text-wrap:balance;text-shadow:0 8px 24px rgba(0,0,0,.28)}
.services .section-lead{max-width:760px;margin-inline:auto;color:#d8e5ef;font-size:1.1rem;line-height:1.75}
.solution-pulse{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;margin:1.45rem auto 0}
.solution-pulse span{position:relative;overflow:hidden;font-family:"Sora";font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#fff;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);border-radius:999px;padding:.55rem .85rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.solution-pulse span::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(246,192,22,.32),transparent);transform:translateX(-120%);animation:pulseSweep 4.2s ease-in-out infinite}
.solution-pulse span:nth-child(2)::after{animation-delay:.55s}.solution-pulse span:nth-child(3)::after{animation-delay:1.1s}.solution-pulse span:nth-child(4)::after{animation-delay:1.65s}.solution-pulse span:nth-child(5)::after{animation-delay:2.2s}
@keyframes pulseSweep{0%,46%{transform:translateX(-120%)}70%,100%{transform:translateX(120%)}}

.monitoring-strip{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,330px);
  gap:clamp(1.4rem,4vw,3.2rem);
  align-items:center;
  margin:2.2rem 0 2rem;
  padding:clamp(1.1rem,2.4vw,1.7rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px) 0 0/42px 42px,
    linear-gradient(180deg,rgba(255,255,255,.045) 1px,transparent 1px) 0 0/42px 42px,
    linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.035));
  box-shadow:0 26px 72px -44px rgba(0,0,0,.95);
}
.monitoring-strip::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(100deg,transparent 0%,rgba(246,192,22,.12) 45%,transparent 72%);
  transform:translateX(-105%);
  animation:monitorSweep 7s ease-in-out infinite;
}
.monitoring-strip__copy{position:relative;z-index:1;max-width:690px}
.monitoring-strip__copy h3{font-size:clamp(1.55rem,3.3vw,2.55rem);line-height:1.08;color:#fff;text-wrap:balance}
.monitoring-strip__copy p:not(.eyebrow){max-width:62ch;color:#d8e5ef;line-height:1.72}
.monitoring-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1.25rem}
.monitoring-points span{
  position:relative;
  min-height:48px;
  display:flex;
  align-items:center;
  padding:.72rem .85rem .72rem 2.15rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  background:rgba(6,18,28,.38);
  color:#f1f7fb;
  font-family:"Sora";
  font-size:.82rem;
  font-weight:700;
  line-height:1.2;
}
.monitoring-points span::before{
  content:"";
  position:absolute;
  left:.82rem;
  top:50%;
  width:.62rem;
  height:.62rem;
  border-radius:50%;
  background:var(--yellow);
  box-shadow:0 0 0 5px rgba(246,192,22,.13);
  transform:translateY(-50%);
}
.monitoring-strip__media{
  position:relative;
  z-index:1;
  justify-self:center;
  width:min(100%,300px);
  margin:0;
}
.monitoring-strip__media::before{
  content:"";
  position:absolute;
  inset:-10px;
  z-index:-1;
  border-radius:20px;
  border:1px solid rgba(246,192,22,.42);
  background:linear-gradient(145deg,rgba(246,192,22,.2),rgba(30,136,201,.12));
}
.monitoring-strip__media img{
  width:100%;
  max-height:440px;
  object-fit:contain;
  padding:.35rem;
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  background:#f8fbfd;
  box-shadow:0 24px 54px -30px rgba(0,0,0,.85);
}
.monitoring-strip__media figcaption{
  margin:.75rem 0 0;
  color:#aebfcb;
  font-size:.78rem;
  text-align:center;
}
@keyframes monitorSweep{0%,42%{transform:translateX(-105%)}64%,100%{transform:translateX(105%)}}

@media(max-width:920px){
  .turnkey{min-height:auto}
  .turnkey__timeline{grid-template-columns:1fr 1fr}
  .turnkey__timeline::before{display:none}
  .turnkey-step:nth-child(even),.turnkey-step:nth-child(even):hover,.turnkey-step:nth-child(even).is-active{transform:none}
  .turnkey-step:hover,.turnkey-step.is-active{transform:translateY(-.35rem)}
}
@media(max-width:600px){
  .turnkey__head{padding:1.15rem}
  .turnkey__timeline{grid-template-columns:1fr}
  .turnkey-step{min-height:auto}
  .solution-pulse{justify-content:flex-start}
  .monitoring-strip{grid-template-columns:1fr;gap:1rem;margin:1.25rem 0 1.55rem;padding:1rem;border-radius:14px}
  .monitoring-strip__copy h3{font-size:clamp(1.4rem,7vw,1.72rem);line-height:1.08}
  .monitoring-strip__copy p:not(.eyebrow){font-size:.94rem;line-height:1.58}
  .monitoring-points{grid-template-columns:1fr;gap:.52rem;margin-top:.9rem}
  .monitoring-points span{min-height:42px;padding:.58rem .75rem .58rem 1.9rem;border-radius:8px;font-size:.76rem}
  .monitoring-points span::before{left:.7rem;width:.52rem;height:.52rem;box-shadow:0 0 0 4px rgba(246,192,22,.13)}
  .monitoring-strip__media{width:min(100%,250px)}
  .monitoring-strip__media img{max-height:350px;border-radius:12px}
  .monitoring-strip__media figcaption{font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){
  .turnkey::before,.turnkey::after,.turnkey__video,.turnkey__timeline::before,.solution-pulse span::after,.monitoring-strip::after{animation:none!important}
  .turnkey-step:nth-child(even),.turnkey-step:hover,.turnkey-step.is-active,.turnkey-step:nth-child(even):hover,.turnkey-step:nth-child(even).is-active{transform:none!important}
}
/* ===== Upgrade: identidad JONSOK con preguntas dinámicas ===== */
.stat__places{font-size:clamp(1.25rem,2.7vw,2rem)!important;line-height:1.08!important;text-transform:uppercase;letter-spacing:.03em}
.identity-panel h2{font-size:clamp(1.75rem,3.2vw,2.55rem);text-wrap:balance}
.identity-panel>p:not(.eyebrow){font-size:1.04rem;color:#344655;line-height:1.72}
.identity-qa{margin-top:1.45rem;border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(238,243,248,.86));border:1px solid rgba(15,38,56,.1);box-shadow:0 18px 46px -28px rgba(15,38,56,.45);overflow:hidden}
.identity-qa__tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(15,38,56,.1)}
.identity-qa__tab{appearance:none;border:0;background:#fff;color:var(--navy);font-family:"Sora";font-weight:800;font-size:.78rem;text-align:left;padding:.9rem 1rem;cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease),box-shadow .25s var(--ease)}
.identity-qa__tab:hover,.identity-qa__tab:focus-visible{background:#f9fbfd;outline:none;box-shadow:inset 0 -3px 0 var(--yellow)}
.identity-qa__tab.is-active{background:var(--navy);color:#fff;box-shadow:inset 0 -3px 0 var(--yellow)}
.identity-qa__answers{position:relative;min-height:210px;background:linear-gradient(135deg,#0f2638,#102f46);color:#fff;overflow:hidden}
.identity-qa__answers::before{content:"";position:absolute;inset:auto -12% -42% auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(246,192,22,.34),transparent 66%);pointer-events:none;animation:identityGlow 8s ease-in-out infinite alternate}
.identity-qa__answer{position:absolute;inset:0;padding:1.35rem 1.45rem;opacity:0;transform:translateY(18px);transition:opacity .42s var(--ease),transform .42s var(--ease);pointer-events:none}
.identity-qa__answer.is-active{opacity:1;transform:none;pointer-events:auto}
.identity-qa__answer h3{color:#fff;font-size:clamp(1.15rem,2vw,1.55rem);margin-bottom:.6rem;max-width:18ch}
.identity-qa__answer p{color:#d9e6ef;line-height:1.68;margin:0;max-width:52ch}
@keyframes identityGlow{from{transform:translate(0,0) scale(.9);opacity:.45}to{transform:translate(-18%,8%) scale(1.18);opacity:.88}}
@media(max-width:600px){
  .identity-qa__tabs{grid-template-columns:1fr}
  .identity-qa__answers{min-height:280px}
  .identity-qa__answer{padding:1.1rem}
}
@media(prefers-reduced-motion:reduce){
  .identity-qa__answers::before{animation:none!important}
  .identity-qa__answer{transition:none!important}
}
/* ===== Compact pass: método llave en mano ===== */
.turnkey{min-height:auto!important;padding:clamp(3.4rem,6vw,5.6rem) 0!important;display:block!important;background:#07131d!important}
.turnkey::before{width:34vmax!important;height:34vmax!important;opacity:.34!important;filter:blur(8px)!important}
.turnkey::after{opacity:.18!important;animation-duration:11s!important}
.turnkey__video{opacity:.48!important;filter:saturate(1.05) contrast(1.02) brightness(.66)!important;transform:scale(1.02)!important}
.turnkey__overlay{background:linear-gradient(90deg,rgba(5,14,21,.96) 0%,rgba(5,14,21,.84) 48%,rgba(5,14,21,.78) 100%),linear-gradient(180deg,rgba(5,14,21,.38),rgba(5,14,21,.86))!important}
.turnkey__inner{grid-template-columns:minmax(0,440px) minmax(0,1fr)!important;gap:clamp(1.5rem,3.8vw,3rem)!important;align-items:center!important}
.turnkey__head{padding:1.15rem 1.25rem!important;border-radius:12px!important;background:rgba(3,10,15,.62)!important;box-shadow:0 18px 44px -32px rgba(0,0,0,.95)!important}
.turnkey__head::before{top:1rem!important;bottom:1rem!important;width:3px!important}
.turnkey__head h2{font-size:clamp(1.55rem,2.6vw,2.45rem)!important;line-height:1.08!important;margin-bottom:.55rem!important;text-shadow:0 8px 22px rgba(0,0,0,.62)!important}
.turnkey__head p{font-size:.96rem!important;line-height:1.58!important;color:#dbe7ef!important}
.turnkey__proof{gap:.45rem!important;margin-top:.85rem!important}
.turnkey__proof span{font-size:.66rem!important;letter-spacing:.08em!important;padding:.32rem .58rem!important;background:rgba(246,192,22,.95)!important;box-shadow:none!important}
.turnkey__timeline{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.75rem!important}
.turnkey__timeline::before{display:none!important}
.turnkey-step{min-height:150px!important;padding:1rem!important;border-radius:12px!important;background:rgba(5,16,24,.72)!important;box-shadow:0 12px 30px -24px rgba(0,0,0,.9)!important;transform:none!important}
.turnkey-step:nth-child(even){transform:none!important}
.turnkey-step::before{height:2px!important;opacity:.45!important}
.turnkey-step::after{display:none!important}
.turnkey-step span{display:inline-grid!important;place-items:center!important;width:34px!important;height:34px!important;border-radius:10px!important;background:rgba(246,192,22,.14)!important;color:var(--yellow)!important;font-size:.82rem!important;line-height:1!important;margin:0 0 .75rem!important;text-shadow:none!important;border:1px solid rgba(246,192,22,.32)!important}
.turnkey-step h3{font-size:1rem!important;line-height:1.18!important;margin-bottom:.38rem!important;text-shadow:none!important}
.turnkey-step p{font-size:.84rem!important;line-height:1.45!important;color:#cbd9e4!important;text-shadow:none!important}
.turnkey-step:hover,.turnkey-step.is-active{transform:translateY(-3px)!important;background:rgba(13,37,54,.86)!important;border-color:rgba(246,192,22,.48)!important;box-shadow:0 18px 40px -28px rgba(246,192,22,.34)!important}
.turnkey-step:nth-child(even):hover,.turnkey-step:nth-child(even).is-active{transform:translateY(-3px)!important}
@media(max-width:1050px){.turnkey__timeline{grid-template-columns:repeat(2,minmax(0,1fr))!important}.turnkey-step{min-height:140px!important}}
@media(max-width:760px){.turnkey__inner{grid-template-columns:1fr!important}.turnkey__timeline{grid-template-columns:1fr!important}.turnkey-step{min-height:auto!important}}

/* ===== Video showreel: material real de dron ===== */
.video-showcase{
  position:relative;
  overflow:hidden;
  color:#fff;
  background:#061018;
  padding:clamp(3.5rem,7vw,6.2rem) 0;
  isolation:isolate;
}
.video-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(120deg,rgba(246,192,22,.12),transparent 34%,rgba(30,136,201,.11) 72%,transparent),
    repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 96px);
}
.video-showcase__inner{
  display:grid;
  grid-template-columns:minmax(260px,390px) minmax(0,1fr);
  gap:clamp(1.5rem,4vw,3.2rem);
  align-items:center;
}
.video-showcase__copy h2{
  color:#fff;
  font-size:clamp(1.85rem,3.6vw,3.3rem);
  line-height:1.04;
  text-wrap:balance;
}
.video-showcase__copy p:not(.eyebrow){
  color:#d6e3ed;
  line-height:1.7;
  margin-bottom:1.1rem;
}
.video-showcase__facts{
  display:flex;
  flex-wrap:wrap;
  gap:.48rem;
}
.video-showcase__facts span{
  font-family:"Sora";
  font-weight:800;
  font-size:.68rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--yellow);
  border-radius:999px;
  padding:.36rem .62rem;
}
.video-showcase__stage{
  position:relative;
  min-height:360px;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  background:#0b1c2b;
  box-shadow:0 34px 90px -48px rgba(0,0,0,.95);
}
.video-showcase__stage::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(6,16,24,.05) 0%,rgba(6,16,24,.22) 48%,rgba(6,16,24,.78) 100%);
}
.video-showcase__stage.is-switching video{opacity:.28;transform:scale(1.04)}
.video-showcase__stage video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:opacity .28s var(--ease),transform .7s var(--ease);
}
.video-showcase__caption{
  position:absolute;
  left:1.2rem;
  right:1.2rem;
  bottom:1.15rem;
  z-index:2;
  max-width:620px;
}
.video-showcase__caption span{
  display:inline-flex;
  margin-bottom:.45rem;
  font-family:"Sora";
  font-weight:800;
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--yellow);
  border-radius:999px;
  padding:.34rem .62rem;
}
.video-showcase__caption h3{
  color:#fff;
  font-size:clamp(1.35rem,2.4vw,2.15rem);
  line-height:1.05;
  margin-bottom:.25rem;
  text-shadow:0 10px 28px rgba(0,0,0,.75);
}
.video-showcase__caption p{
  color:#dce8f1;
  max-width:54ch;
  margin:0;
  line-height:1.45;
  text-shadow:0 4px 18px rgba(0,0,0,.75);
}
.video-showcase__rail{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:.68rem;
  margin-top:.2rem;
}
.video-tile{
  appearance:none;
  position:relative;
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  padding:0;
  background:#0b1c2b;
  color:#fff;
  cursor:pointer;
  text-align:left;
  box-shadow:0 16px 36px -26px rgba(0,0,0,.95);
  transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.video-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.78;
  transition:transform .4s var(--ease),opacity .25s var(--ease);
}
.video-tile::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 35%,rgba(5,13,20,.82));
}
.video-tile span{
  position:absolute;
  left:.75rem;
  right:.75rem;
  bottom:.58rem;
  z-index:1;
  font-family:"Sora";
  font-weight:800;
  font-size:.78rem;
  line-height:1.08;
  text-shadow:0 4px 14px rgba(0,0,0,.8);
}
.video-tile:hover,.video-tile:focus-visible,.video-tile.is-active{
  outline:none;
  transform:translateY(-4px);
  border-color:rgba(246,192,22,.85);
  box-shadow:0 22px 48px -30px rgba(246,192,22,.55);
}
.video-tile:hover img,.video-tile:focus-visible img,.video-tile.is-active img{
  opacity:1;
  transform:scale(1.06);
}
.video-tile.is-active::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  z-index:2;
  background:var(--yellow);
}

@media(max-width:980px){
  .video-showcase__inner{grid-template-columns:1fr}
  .video-showcase__stage{min-height:auto}
  .video-showcase__rail{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
  .video-showcase{padding:3rem 0}
  .video-showcase__copy h2{font-size:clamp(1.65rem,8vw,2.25rem)}
  .video-showcase__stage{border-radius:12px;aspect-ratio:4/5}
  .video-showcase__caption{left:.85rem;right:.85rem;bottom:.85rem}
  .video-showcase__caption p{font-size:.88rem}
  .video-showcase__rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  .video-tile{border-radius:10px}
  .video-tile span{font-size:.7rem;left:.55rem;right:.55rem;bottom:.45rem}
}

/* ===== Execution pass: mobile polish + proof-heavy projects ===== */
html{scroll-padding-top:88px}
[id]{scroll-margin-top:88px}

.projects .section-head{max-width:860px}
.project-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:1.05rem!important;
}
.project-card{
  border-radius:14px!important;
  background:linear-gradient(180deg,#fff,#f8fbfd)!important;
  box-shadow:0 12px 34px -24px rgba(15,38,56,.5)!important;
}
.project-card:hover{
  box-shadow:0 22px 54px -30px rgba(15,38,56,.68)!important;
}
.project-card__media{aspect-ratio:16/9!important;background:#d8e2ea}
.project-card__body{
  display:grid;
  align-content:start;
  gap:.3rem;
  min-height:154px;
  padding:1rem 1.05rem 1.1rem!important;
}
.project-card__meta{margin-bottom:.15rem!important}
.project-card h3{
  font-size:1.02rem!important;
  line-height:1.18!important;
  margin:0!important;
  letter-spacing:0;
}
.project-card__loc{
  font-size:.84rem!important;
  line-height:1.35!important;
  min-height:2.3em;
}
.project-card__brief{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  margin:.18rem 0 0;
  color:#657684;
  font-size:.8rem;
  line-height:1.38;
}
.project-card__kwp{
  top:.65rem!important;
  right:.65rem!important;
  border-radius:999px!important;
  font-size:.76rem!important;
  box-shadow:0 14px 30px -18px rgba(0,0,0,.7);
}
.tagpill{
  font-size:.66rem!important;
  padding:.2rem .55rem!important;
}
.projects__more{margin-top:1.8rem!important}

@media(max-width:1100px){
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:760px){
  html{scroll-padding-top:76px}
  [id]{scroll-margin-top:76px}
  .container{width:min(100% - 1.25rem,var(--container))}
  .header__inner{padding:.7rem 0!important}
  .header.is-stuck .header__inner{padding:.48rem 0!important}
  .brand{gap:.52rem}
  .brand__logo,.header.is-stuck .brand__logo{width:100px;padding:4px 9px}
  .brand__title{font-size:.96rem;letter-spacing:.12em}
  .brand__tag{display:none}
  .nav-toggle{width:40px;height:40px;border-radius:50%;background:rgba(15,38,56,.34);backdrop-filter:blur(10px)}
  .header.is-stuck .nav-toggle{background:rgba(15,38,56,.08)}

  .hero{min-height:92svh!important;align-items:flex-end}
  .hero__shade{
    background:linear-gradient(180deg,rgba(5,13,20,.58) 0%,rgba(5,13,20,.72) 38%,rgba(5,13,20,.94) 100%)!important;
  }
  .hero__content{
    display:block!important;
    padding:5.45rem 0 3.35rem!important;
  }
  .hero__kicker{
    font-size:.66rem!important;
    letter-spacing:.16em!important;
    margin-bottom:.55rem;
  }
  .hero__title{
    font-size:clamp(2rem,13vw,3.15rem)!important;
    line-height:1.02!important;
    letter-spacing:0!important;
  }
  .hero__title span{font-size:.52em!important;line-height:1.18!important}
  .hero__lead{
    max-width:34ch;
    font-size:.98rem!important;
    line-height:1.55!important;
    color:#eef5fa!important;
  }
  .btn-row{gap:.55rem;margin-top:.9rem}
  .btn,.btn--lg{
    width:100%;
    justify-content:center;
    padding:.82rem 1rem!important;
    font-size:.9rem!important;
    min-height:46px;
  }
  .hero__ticker,.hero__scroll{display:none!important}

  .section{padding:3.15rem 0!important}
  .section-head{margin-bottom:1.65rem!important}
  .section-head h2{font-size:clamp(1.55rem,8vw,2.05rem)!important}
  .section-lead{font-size:.98rem!important}
  .stats{padding:2.2rem 0!important}
  .stats__grid{gap:1.15rem!important}
  .stat b{font-size:2.1rem!important}
  .stat__places{font-size:1.08rem!important}

  .identity-qa__answers{min-height:250px!important}
  .turnkey{padding:3rem 0!important}
  .turnkey__head{padding:1rem!important}
  .turnkey__proof span{font-size:.61rem!important}
  .turnkey-step{padding:.9rem!important}
  .turnkey-step p{font-size:.82rem!important}

  .project-grid{grid-template-columns:1fr!important;gap:.9rem!important}
  .project-card__body{min-height:auto}
  .project-card__loc{min-height:auto}
  .projects .section-head{margin-bottom:1.05rem!important}
  .projects__logo{width:46px!important;margin-bottom:.25rem!important}
  .projects .eyebrow{font-size:.58rem!important;letter-spacing:.12em!important;margin-bottom:.35rem!important}
  .projects .section-head h2{font-size:clamp(1.85rem,10vw,2.35rem)!important;line-height:1.04!important}
  .projects .section-lead{max-width:27ch;margin-inline:auto}
  .filters{gap:.42rem!important;margin-bottom:1.1rem!important}
  .filter{font-size:.78rem!important;padding:.45rem .85rem!important}
}

/* ===== Mobile pass: ritmo más compacto y navegación por secciones más rápida ===== */
@media(max-width:760px){
  html{scroll-padding-top:64px}
  [id]{scroll-margin-top:64px}
  .container{width:min(100% - 1rem,var(--container))}
  .header__inner{padding:.55rem 0!important}
  .brand__logo,.header.is-stuck .brand__logo{width:88px;padding:4px 8px}
  .brand__title{font-size:.9rem;letter-spacing:.11em}
  .nav-toggle{width:38px;height:38px}
  .nav{width:min(86vw,320px);padding:1.45rem}
  .nav__link{font-size:1rem;padding:.62rem .9rem}

  .hero{min-height:88svh!important}
  .hero__content{padding:5rem 0 2.55rem!important}
  .hero__title{font-size:clamp(2rem,11.4vw,2.82rem)!important;line-height:1.03!important}
  .hero__lead{max-width:31ch;font-size:.94rem!important}
  .btn,.btn--lg{min-height:44px;padding:.76rem .9rem!important}

  .stats{padding:1.45rem 0 1.35rem!important}
  .stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.95rem .55rem!important}
  .stat b{font-size:clamp(1.85rem,10vw,2.45rem)!important}
  .stat__places{font-size:clamp(1.18rem,7vw,1.8rem)!important}
  .stat span{font-size:.78rem;line-height:1.22}

  .reel{padding:.55rem 0!important;gap:.55rem!important}
  .reel__track{gap:.55rem!important}
  .reel-item{width:220px!important;height:148px!important;border-radius:10px!important}
  .reel-item:hover{width:220px!important}
  .reel-item__tag{top:.45rem!important;left:.45rem!important;max-width:calc(100% - .9rem);font-size:.55rem!important;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.26rem .48rem!important}
  .reel-item__info{padding:.7rem!important;opacity:1;background:linear-gradient(180deg,rgba(8,18,28,0) 42%,rgba(8,18,28,.85) 100%)}
  .reel-item__info h4{font-size:.84rem!important;margin:0!important}
  .reel-item__loc,.reel-item__desc{display:none!important}

  .section{padding:2.55rem 0!important}
  .section-head{margin-bottom:1.25rem!important}
  .section-head h2{font-size:clamp(1.55rem,7.8vw,2rem)!important;line-height:1.08!important}
  .section-lead{font-size:.92rem!important;line-height:1.55!important}
  .eyebrow{font-size:.62rem!important;letter-spacing:.12em!important;margin-bottom:.48rem}
  .eyebrow::before{width:1.55rem}

  .two-col{gap:1.15rem!important}
  .two-col__media img{aspect-ratio:16/10;border-radius:14px}
  .floating-chips{gap:.42rem!important;margin-top:.58rem!important}
  .chip{font-size:.68rem!important;line-height:1.15;padding:.42rem .62rem!important}
  .identity-panel h2{font-size:clamp(1.65rem,8.6vw,2.25rem)!important;line-height:1.07!important}
  .identity-panel>p:not(.eyebrow){font-size:.94rem!important;line-height:1.58!important}
  .identity-qa{margin-top:1rem;border-radius:14px}
  .identity-qa__tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .identity-qa__tab{font-size:.64rem!important;line-height:1.1;padding:.72rem .75rem!important}
  .identity-qa__answers{min-height:218px!important}
  .identity-qa__answer{padding:1rem!important}
  .identity-qa__answer h3{font-size:1.05rem!important;max-width:none!important}
  .identity-qa__answer p{font-size:.86rem!important;line-height:1.5!important}

  .video-showcase{padding:2.35rem 0!important}
  .video-showcase__inner{gap:1rem!important}
  .video-showcase__copy h2{font-size:clamp(1.72rem,8.8vw,2.22rem)!important;line-height:1.06!important}
  .video-showcase__copy p:not(.eyebrow){font-size:.93rem!important;line-height:1.52!important;margin-bottom:.85rem!important}
  .video-showcase__facts{gap:.36rem!important}
  .video-showcase__facts span{font-size:.58rem!important;letter-spacing:.08em;padding:.3rem .52rem!important}
  .video-showcase__stage{aspect-ratio:16/11!important;min-height:0!important;border-radius:12px!important}
  .video-showcase__caption{left:.72rem!important;right:.72rem!important;bottom:.72rem!important}
  .video-showcase__caption span{font-size:.58rem!important;padding:.28rem .52rem!important;margin-bottom:.32rem!important}
  .video-showcase__caption h3{font-size:1.2rem!important}
  .video-showcase__caption p{font-size:.78rem!important;line-height:1.32!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .video-showcase__rail{display:flex!important;grid-template-columns:none!important;overflow-x:auto;gap:.55rem!important;margin-top:.15rem;padding:.05rem .05rem .45rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .video-showcase__rail::-webkit-scrollbar,.filters::-webkit-scrollbar{display:none}
  .video-tile{flex:0 0 138px;aspect-ratio:16/10;border-radius:9px!important;scroll-snap-align:start}
  .video-tile span{font-size:.62rem!important;left:.5rem!important;right:.5rem!important;bottom:.42rem!important}

  .turnkey{padding:2.35rem 0!important}
  .turnkey__inner{gap:1rem!important}
  .turnkey__head{padding:.95rem!important}
  .turnkey__head h2{font-size:clamp(1.55rem,8.2vw,2rem)!important}
  .turnkey__head p{font-size:.9rem!important;line-height:1.5!important}
  .turnkey__proof{gap:.35rem!important}
  .turnkey__proof span{font-size:.55rem!important;padding:.3rem .48rem!important}
  .turnkey__timeline{gap:.55rem!important}
  .turnkey-step{padding:.78rem!important;border-radius:10px!important}
  .turnkey-step span{width:30px!important;height:30px!important;border-radius:9px!important;font-size:.76rem!important;margin-bottom:.55rem!important}
  .turnkey-step h3{font-size:.92rem!important}
  .turnkey-step p{font-size:.78rem!important;line-height:1.38!important}

  .services .section-head{max-width:100%;text-align:left}
  .services .section-head h2{font-size:clamp(1.72rem,8.8vw,2.16rem)!important;text-align:left}
  .services .section-lead{margin-inline:0!important;text-align:left;font-size:.92rem!important}
  .solution-pulse{justify-content:flex-start!important;gap:.42rem!important;margin-top:1rem!important}
  .solution-pulse span{font-size:.6rem!important;letter-spacing:.06em!important;padding:.4rem .55rem!important}
  .monitoring-strip{margin:1rem 0 1.25rem!important}
  .accordion{gap:.55rem!important}
  .acc{height:190px!important;border-radius:12px!important}
  .acc__icon{width:40px!important;height:40px!important;border-radius:10px!important;top:.85rem!important;left:.85rem!important}
  .acc__icon img{width:22px!important}
  .acc__content{padding:1rem!important}
  .acc__chip{font-size:.58rem!important;padding:.25rem .55rem!important;margin-bottom:.48rem!important}
  .acc__content h3{font-size:1.08rem!important}
  .acc__content p{font-size:.82rem!important;line-height:1.38!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

  .steps--cine .section-head,.sectors .section-head,.projects .section-head{text-align:center}
  .flow{gap:.36rem;margin-bottom:1.45rem!important}
  .flow__node{min-width:70px}
  .flow__icon{width:52px;height:52px;border-radius:14px}
  .flow__node span{font-size:.72rem}
  .flow__link{min-width:24px;max-width:58px}
  .glass-card{padding:1.15rem!important;border-radius:12px!important}
  .glass-card__num{font-size:2.3rem!important}
  .glass-card h3{font-size:1.05rem!important}
  .glass-card p{font-size:.86rem!important;line-height:1.45!important}

  .sector-stage{height:520px!important;border-radius:14px!important}
  .sector-slide__body{padding:1rem!important}
  .sector-tag{font-size:.58rem!important;padding:.3rem .55rem!important}
  .sector-slide__body h3{font-size:1.3rem!important;line-height:1.12!important}
  .sector-slide__body p{font-size:.86rem!important;line-height:1.45!important}
  .sector-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;gap:.5rem;padding:.05rem .05rem .35rem}
  .sector-tabs button{flex:0 0 auto;font-size:.82rem!important;padding:.55rem .85rem!important}

  .projects .section-head h2{font-size:clamp(1.85rem,9.2vw,2.18rem)!important}
  .projects .section-lead{max-width:30ch!important}
  .filters{display:flex;flex-wrap:nowrap!important;justify-content:flex-start!important;overflow-x:auto;margin-inline:-.5rem!important;padding:.05rem .5rem .45rem!important}
  .filter{flex:0 0 auto;font-size:.76rem!important;padding:.44rem .78rem!important}
  .project-card{border-radius:12px!important}
  .project-card__body{padding:.9rem!important}
  .project-card h3{font-size:.98rem!important}
  .project-card__loc{font-size:.8rem!important}
  .project-card__brief{font-size:.78rem!important}
  .project-card__kwp{font-size:.68rem!important}

  .claim{min-height:260px!important}
  .claim p{font-size:clamp(1.4rem,8vw,2rem)!important;line-height:1.08!important}
  .contact__inner{gap:1.15rem!important}
  .contact__text h2{font-size:clamp(1.75rem,9vw,2.22rem)!important;line-height:1.05!important}
  .contact__text p{font-size:.93rem!important;line-height:1.55!important}
  .contact__list li{font-size:.95rem!important}
  .contact-action{padding:.9rem!important;border-radius:12px!important}
  .contact-action span{font-size:.6rem!important}
  .contact-action strong{font-size:1.15rem!important}
  .contact-action em{font-size:.9rem!important}
}

@media(max-width:760px){
  .stat b.stat__places{font-size:1.42rem!important;line-height:1.05!important;letter-spacing:.01em!important}
  .identity-panel h2{font-size:clamp(1.48rem,7.2vw,1.82rem)!important}
  .video-showcase__copy h2{font-size:clamp(1.62rem,8vw,2.02rem)!important}
  .turnkey__head h2{font-size:clamp(1.46rem,7.2vw,1.82rem)!important}
  .services .section-head h2{font-size:clamp(1.52rem,7.5vw,1.9rem)!important}
  .steps--cine .section-head h2,.sectors .section-head h2,.projects .section-head h2{font-size:clamp(1.58rem,8vw,2.02rem)!important}
  .brand__tag{display:block!important;font-size:.58rem;line-height:1.05;letter-spacing:.02em}
  .nav-toggle{position:relative;z-index:1201}
  .nav-toggle[aria-expanded="true"]{position:fixed;top:.72rem;right:.72rem;background:rgba(255,255,255,.1)!important}
  .nav-toggle[aria-expanded="true"] span{background:#fff!important}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* ===== Mobile reel mode: escenas verticales + rails internos ===== */
@media(max-width:760px){
  html{scroll-snap-type:y proximity}
  main>.hero,
  main>.stats,
  main>.reel,
  main>.section,
  main>.video-showcase,
  main>.turnkey,
  main>.claim{
    scroll-snap-align:start;
    scroll-snap-stop:normal;
  }
  main>.hero,
  main>.autoconsumo,
  main>.video-showcase,
  main>.turnkey,
  main>.services,
  main>.steps--cine,
  main>.sectors,
  main>.projects,
  main>.contact{
    min-height:100svh!important;
    display:grid!important;
    align-items:center!important;
  }
  .hero{min-height:100svh!important}
  .hero__content{padding:5.8rem 0 3.2rem!important}
  .hero__title{max-width:10ch}
  .hero__lead{max-width:29ch}

  .stats{
    min-height:34svh!important;
    display:grid!important;
    align-items:center!important;
    border-block:1px solid rgba(255,255,255,.08);
  }
  .reel{
    min-height:42svh!important;
    justify-content:center!important;
    background:#07131d!important;
    border-block-color:rgba(255,255,255,.08)!important;
  }
  .reel-item{width:236px!important;height:158px!important}
  .reel-item:hover{width:236px!important}

  .autoconsumo .two-col{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
  }
  .autoconsumo .two-col__text{order:-1}
  .autoconsumo .two-col__media img{aspect-ratio:16/9!important}
  .identity-qa__tabs{
    display:flex!important;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  .identity-qa__tab{
    flex:0 0 48%;
    scroll-snap-align:start;
  }
  .identity-qa__tabs::-webkit-scrollbar{display:none}

  .video-showcase__inner{align-content:center}
  .video-showcase__stage{
    aspect-ratio:9/13!important;
    max-height:56svh;
  }
  .video-showcase__stage video{object-position:center}
  .video-showcase__rail{
    margin-inline:-.5rem!important;
    padding-inline:.5rem!important;
  }

  .turnkey__timeline{
    display:flex!important;
    grid-template-columns:none!important;
    overflow-x:auto;
    gap:.7rem!important;
    margin-inline:-.5rem;
    padding:.08rem .5rem .55rem;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .turnkey__timeline::-webkit-scrollbar{display:none}
  .turnkey-step,
  .turnkey-step.is-active{
    flex:0 0 min(76vw,300px)!important;
    min-height:190px!important;
    scroll-snap-align:center;
    transform:none!important;
  }

  .monitoring-strip{
    grid-template-columns:minmax(0,1fr) 112px!important;
    gap:.75rem!important;
    padding:.85rem!important;
    margin:.85rem 0 1rem!important;
  }
  .monitoring-strip__copy h3{
    font-size:clamp(1.18rem,6vw,1.48rem)!important;
    line-height:1.08!important;
  }
  .monitoring-strip__copy p:not(.eyebrow){
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:.8rem!important;
    line-height:1.42!important;
  }
  .monitoring-points{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.35rem!important;
    margin-top:.55rem!important;
  }
  .monitoring-points span{
    min-height:32px!important;
    padding:.42rem .46rem .42rem 1.35rem!important;
    border-radius:8px!important;
    font-size:.58rem!important;
    line-height:1.08!important;
  }
  .monitoring-points span::before{
    left:.48rem!important;
    width:.42rem!important;
    height:.42rem!important;
  }
  .monitoring-strip__media{
    align-self:center;
    width:112px!important;
  }
  .monitoring-strip__media::before{inset:-6px!important;border-radius:14px!important}
  .monitoring-strip__media img{
    max-height:220px!important;
    border-radius:10px!important;
    padding:.2rem!important;
  }
  .monitoring-strip__media figcaption{display:none}

  .accordion{
    display:flex!important;
    flex-direction:row!important;
    height:auto!important;
    overflow-x:auto;
    gap:.7rem!important;
    margin-inline:-.5rem;
    padding:.05rem .5rem .55rem;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .accordion::-webkit-scrollbar{display:none}
  .acc,
  .acc.is-open{
    flex:0 0 min(84vw,340px)!important;
    height:342px!important;
    scroll-snap-align:center;
    cursor:default;
  }
  .acc__label{display:none!important}
  .acc__content{
    opacity:1!important;
    transform:none!important;
    pointer-events:auto!important;
  }
  .acc__overlay{background:linear-gradient(180deg,rgba(15,38,56,.2),rgba(8,18,28,.9))!important}
  .acc__content p{-webkit-line-clamp:4!important}

  .steps__grid,
  .quote-grid{
    display:flex!important;
    grid-template-columns:none!important;
    overflow-x:auto;
    gap:.75rem!important;
    margin-inline:-.5rem;
    padding:.05rem .5rem .6rem;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .steps__grid::-webkit-scrollbar,
  .quote-grid::-webkit-scrollbar,
  .project-grid::-webkit-scrollbar,
  .sector-tabs::-webkit-scrollbar,
  .video-showcase__rail::-webkit-scrollbar,
  .turnkey__timeline::-webkit-scrollbar,
  .accordion::-webkit-scrollbar{display:none}
  .glass-card{
    flex:0 0 min(78vw,310px)!important;
    min-height:210px;
    scroll-snap-align:center;
  }
  .quote-card{
    flex:0 0 min(82vw,330px);
    scroll-snap-align:center;
  }

  .sector-stage{
    height:64svh!important;
    min-height:480px;
  }
  .sector-slide__shade{
    background:linear-gradient(0deg,rgba(8,20,30,.94) 0%,rgba(8,20,30,.56) 58%,rgba(8,20,30,.08) 100%)!important;
  }
  .sector-slide__body h3{max-width:18ch}

  .project-grid{
    display:flex!important;
    grid-template-columns:none!important;
    overflow-x:auto;
    gap:.85rem!important;
    margin-inline:-.5rem;
    padding:.05rem .5rem .72rem;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .project-card{
    flex:0 0 min(84vw,340px)!important;
    scroll-snap-align:center;
  }
  .project-card__media{aspect-ratio:4/3!important}
  .projects__more{margin-top:.9rem!important}
  .projects__more .btn{width:auto;min-width:min(100%,230px)}

  .claim{
    min-height:72svh!important;
    display:grid;
    align-items:center;
  }
  .contact{
    padding-block:2.4rem!important;
  }
}

@media(max-width:380px){
  .monitoring-strip{
    grid-template-columns:1fr!important;
  }
  .monitoring-strip__media{
    width:min(100%,180px)!important;
  }
  .monitoring-strip__media img{max-height:230px!important}
  .acc,
  .acc.is-open{height:318px!important}
  .video-showcase__stage{max-height:52svh}
}

@media(max-width:760px) and (prefers-reduced-motion:reduce){
  html{scroll-snap-type:none}
}

/* ===== Immersive desktop mode: bloques cinematograficos ===== */
.scene-nav{display:none}

@media(min-width:761px){
  html{scroll-snap-type:y proximity;scroll-padding-top:0}
  [id]{scroll-margin-top:0!important}
  main>.hero,
  main>.stats,
  main>.reel,
  main>.section,
  main>.video-showcase,
  main>.turnkey,
  main>.claim{
    scroll-snap-align:start;
    scroll-snap-stop:normal;
  }
  main>.hero,
  main>.autoconsumo,
  main>.video-showcase,
  main>.turnkey,
  main>.services,
  main>.steps--cine,
  main>.sectors,
  main>.projects,
  main>.contact{
    min-height:100svh!important;
    display:grid!important;
    align-items:center!important;
  }
  .section{padding:clamp(3rem,5vw,5.4rem) 0}
  .hero{min-height:100svh!important}
  .hero__content{padding:7.3rem 0 6.4rem}

  .stats{
    min-height:30svh;
    display:grid;
    align-items:center;
    border-block:1px solid rgba(255,255,255,.08);
  }
  .reel{
    min-height:62svh;
    justify-content:center;
    background:#07131d;
    border-block-color:rgba(255,255,255,.08);
  }
  .reel-item{
    width:clamp(280px,23vw,360px);
    height:clamp(190px,15.5vw,250px);
  }
  .reel-item:hover{width:clamp(460px,42vw,640px)}

  .autoconsumo .two-col{align-items:center}
  .autoconsumo .two-col__media img{aspect-ratio:16/11}

  .video-showcase{padding:clamp(3rem,5vw,5.2rem) 0}
  .video-showcase__inner{
    min-height:calc(100svh - 7rem);
    align-content:center;
  }
  .video-showcase__stage{max-height:62svh}
  .video-showcase__rail{
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    padding-bottom:.55rem;
  }
  .video-tile{scroll-snap-align:start}

  .turnkey{min-height:100svh!important}
  .turnkey__inner{align-items:center!important}
  .turnkey__timeline{grid-template-columns:repeat(4,minmax(0,1fr))!important}

  .services{
    padding:clamp(2.35rem,3.6vw,3.8rem) 0!important;
  }
  .services>.container{
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    grid-template-rows:auto minmax(390px,1fr);
    gap:1rem 1.25rem;
    align-items:stretch;
  }
  .services .section-head{
    grid-column:1/-1;
    margin-bottom:.15rem!important;
    max-width:980px;
  }
  .services .section-head h2{
    font-size:clamp(1.85rem,2.85vw,2.65rem)!important;
    margin-bottom:.28rem;
  }
  .services .section-lead{
    max-width:860px;
    font-size:.98rem;
    line-height:1.55;
  }
  .solution-pulse{margin-top:.8rem!important}
  .monitoring-strip{
    grid-column:1;
    grid-row:2;
    grid-template-columns:minmax(0,1fr)!important;
    align-content:space-between;
    gap:.85rem!important;
    height:100%;
    margin:0!important;
    padding:clamp(.95rem,1.8vw,1.3rem)!important;
  }
  .monitoring-strip__copy h3{
    font-size:clamp(1.28rem,2vw,1.8rem)!important;
  }
  .monitoring-strip__copy p:not(.eyebrow){
    line-height:1.5;
    margin-bottom:.75rem;
  }
  .monitoring-points{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.48rem;
    margin-top:.8rem;
  }
  .monitoring-points span{
    min-height:42px;
    padding:.58rem .64rem .58rem 1.68rem;
    font-size:.68rem;
  }
  .monitoring-points span::before{left:.62rem}
  .monitoring-strip__media{width:min(100%,210px)!important}
  .monitoring-strip__media img{max-height:225px!important}
  .monitoring-strip__media figcaption{font-size:.7rem;margin-top:.42rem}
  .accordion{
    grid-column:2;
    grid-row:2;
    height:100%!important;
    min-height:390px!important;
  }
  .acc__content{padding:1.25rem!important}
  .acc__icon{width:44px;height:44px;border-radius:12px}
  .acc__icon img{width:24px}
  .acc__label{font-size:.92rem}
  .acc__chip{font-size:.64rem;margin-bottom:.5rem}
  .acc__content h3{font-size:clamp(1.08rem,1.5vw,1.34rem)}
  .acc__content p{
    max-width:38ch;
    font-size:.88rem;
    line-height:1.45;
  }

  .steps--cine{padding:clamp(3rem,5vw,5rem) 0!important}
  .steps--cine .section-head{margin-bottom:2rem}
  .flow{margin-bottom:2rem}
  .glass-card{padding:1.65rem 1.35rem 1.45rem}

  .sectors{padding:clamp(3rem,5vw,5rem) 0!important}
  .sectors .section-head{margin-bottom:1.35rem}
  .sector-stage{
    height:min(58svh,540px)!important;
    min-height:430px;
  }
  .sector-tabs{margin-top:.85rem}

  .projects{padding:clamp(2.8rem,4.4vw,4.8rem) 0!important}
  .projects .section-head{margin-bottom:1rem!important}
  .projects .section-lead{max-width:60ch;margin-inline:auto}
  .filters{
    flex-wrap:nowrap;
    justify-content:flex-start;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:.52rem;
    margin-bottom:1rem!important;
    padding:.05rem .05rem .45rem;
  }
  .filter{flex:0 0 auto;scroll-snap-align:start}
  .project-grid{
    display:flex!important;
    grid-template-columns:none!important;
    overflow-x:auto;
    gap:1rem!important;
    padding:.15rem .08rem .95rem;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
  }
  .project-card{
    flex:0 0 clamp(300px,30vw,370px)!important;
    scroll-snap-align:center;
  }
  .project-card__media{aspect-ratio:16/10!important}
  .project-card__body{min-height:145px!important}
  .projects__more{margin-top:.75rem!important}
  .project-grid::-webkit-scrollbar,
  .filters::-webkit-scrollbar,
  .video-showcase__rail::-webkit-scrollbar{display:none}

  .testimonials{scroll-snap-align:start}
  .claim{
    min-height:70svh;
    display:grid;
    align-items:center;
  }
  .contact{padding:clamp(3rem,5vw,5rem) 0!important}
  .footer{scroll-snap-align:start}

  .scene-nav{
    position:fixed;
    right:clamp(.85rem,1.7vw,1.5rem);
    top:50%;
    z-index:1500;
    display:grid;
    gap:.55rem;
    transform:translateY(-50%);
  }
  .scene-nav button{
    position:relative;
    width:13px;
    height:13px;
    padding:0;
    border:1px solid rgba(255,255,255,.68);
    border-radius:50%;
    background:rgba(15,38,56,.34);
    box-shadow:0 8px 20px -12px rgba(0,0,0,.9);
    cursor:pointer;
    transition:transform .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease);
  }
  .scene-nav button::before{
    content:"";
    position:absolute;
    inset:-7px;
    border-radius:50%;
  }
  .scene-nav button span{
    position:absolute;
    right:1.05rem;
    top:50%;
    transform:translateY(-50%) translateX(8px);
    opacity:0;
    pointer-events:none;
    white-space:nowrap;
    color:#fff;
    background:rgba(8,20,30,.82);
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    padding:.28rem .52rem;
    font-family:"Sora";
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    transition:opacity .22s var(--ease),transform .22s var(--ease);
  }
  .scene-nav button:hover,
  .scene-nav button:focus-visible,
  .scene-nav button.is-active{
    transform:scale(1.2);
    background:var(--yellow);
    border-color:var(--yellow);
    outline:none;
  }
  .scene-nav button:hover span,
  .scene-nav button:focus-visible span{
    opacity:1;
    transform:translateY(-50%);
  }
}

@media(min-width:761px) and (max-height:820px){
  .hero__content{padding:6.4rem 0 4.8rem}
  .section{padding:2.5rem 0!important}
  .video-showcase__inner{min-height:auto}
  .video-showcase__stage{max-height:58svh}
  .turnkey-step{min-height:132px!important}
  .monitoring-strip__media img{max-height:280px!important}
  .accordion{height:270px!important}
  .sector-stage{height:54svh!important;min-height:380px}
}

@media(max-width:920px){
  .nav{
    inset:.65rem .65rem .65rem auto!important;
    width:min(86vw,320px)!important;
    max-width:calc(100vw - 1.3rem)!important;
    height:auto!important;
    overflow-y:auto;
    border-radius:18px;
    box-shadow:0 28px 78px -38px rgba(0,0,0,.95);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(10px,0,0) scale(.98)!important;
  }
  .nav.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none!important;
  }
}

@media(max-width:760px){
  .scene-nav{display:none!important}
}

/* Rail containment: evita que carruseles ensanchen la pagina */
.container,
.video-showcase__inner,
.turnkey__inner,
.section-head,
.monitoring-strip,
.accordion,
.project-grid,
.steps__grid,
.quote-grid,
.video-showcase__rail,
.turnkey__timeline,
.filters,
.sector-tabs,
.identity-qa__tabs{
  min-width:0;
}

.accordion,
.project-grid,
.steps__grid,
.quote-grid,
.video-showcase__rail,
.turnkey__timeline,
.filters,
.sector-tabs,
.identity-qa__tabs{
  width:100%;
  max-width:100%;
}

@media(max-width:760px){
  [id]{scroll-margin-top:0!important}
  .services>.container,
  .projects>.container,
  .steps--cine>.container,
  .sectors>.container,
  .video-showcase__inner,
  .turnkey__inner{
    max-width:calc(100vw - 1rem)!important;
  }
}

/* ===== Assisted fullscreen scenes ===== */
html{scroll-snap-type:y mandatory!important}
html.is-scene-jumping{scroll-snap-type:none!important}
body{overscroll-behavior-y:contain}
main>section{
  height:100svh!important;
  min-height:100svh!important;
  max-height:100svh!important;
  overflow:hidden!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:always!important;
  box-sizing:border-box;
}
.scene-scroll{
  max-height:calc(100svh - 5rem);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.scene-scroll::-webkit-scrollbar{display:none}
body.is-assisted-scrolling .scene-nav button.is-active{
  box-shadow:0 0 0 7px rgba(246,192,22,.18),0 0 24px rgba(246,192,22,.32);
}

@media(min-width:761px){
  main>section{padding-block:clamp(4.6rem,7vh,6rem) clamp(1.2rem,3vh,2.2rem)!important}
  .hero{padding:0!important}
  .hero__content{max-height:none;overflow:visible}
  .stats,.reel,.claim{padding-block:clamp(4.5rem,7vh,6rem) clamp(1.5rem,4vh,2.5rem)!important}
  .stats__grid{height:100%;align-content:center}
  .reel{justify-content:center!important}
  .reel__strip{min-height:0}
  .reel__track{align-items:center}

  .video-showcase__inner,
  .turnkey__inner,
  .services>.container,
  .steps--cine>.container,
  .sectors>.container,
  .projects>.container,
  .testimonials>.container,
  .contact__inner{
    height:calc(100svh - 6.4rem);
    max-height:calc(100svh - 6.4rem);
  }
  .video-showcase__inner{grid-template-rows:auto auto;align-content:center}
  .video-showcase__stage{max-height:54svh}
  .video-showcase__rail{max-height:120px}

  .turnkey__head h2{font-size:clamp(1.7rem,2.8vw,2.55rem)!important}
  .turnkey-step{min-height:0!important}

  .services>.container{
    grid-template-rows:auto minmax(0,1fr);
    overflow:hidden;
  }
  .services .section-head h2{font-size:clamp(1.7rem,2.55vw,2.35rem)!important}
  .services .section-lead{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .solution-pulse{
    flex-wrap:nowrap;
    justify-content:center;
    overflow-x:auto;
    padding-bottom:.18rem;
  }
  .solution-pulse::-webkit-scrollbar{display:none}
  .monitoring-strip,
  .accordion{
    min-height:0!important;
    height:100%!important;
  }
  .monitoring-strip__copy p:not(.eyebrow){
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .monitoring-strip__media img{max-height:205px!important}
  .accordion{height:100%!important}

  .flow{margin-bottom:1.35rem!important}
  .steps__grid{max-height:235px}
  .glass-card{min-height:0}

  .sector-stage{
    height:min(50svh,470px)!important;
    min-height:320px!important;
  }

  .projects>.container{
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
  }
  .projects .section-head h2{font-size:clamp(1.85rem,3vw,2.65rem)!important}
  .project-grid{flex:1 1 auto;min-height:0}
  .project-card{align-self:stretch}
  .project-card__body{min-height:128px!important}
  .project-card__brief{-webkit-line-clamp:2}

  .testimonials>.container{
    display:grid;
    align-content:center;
    overflow:hidden;
  }
  .quote-grid{max-height:360px}
  .contact__inner{overflow:hidden}
}

@media(max-width:760px){
  main>section{
    padding-block:4rem .85rem!important;
    display:grid!important;
    align-items:center!important;
  }
  .hero{padding:0!important}
  .hero__content{max-height:none;overflow:visible;padding:5.25rem 0 2rem!important}
  .hero__title{font-size:clamp(1.95rem,10.6vw,2.55rem)!important}
  .hero__lead{font-size:.9rem!important}

  .scene-scroll{
    width:min(100% - 1rem,var(--container));
    max-height:calc(100svh - 4.85rem);
    margin-inline:auto;
  }
  .stats,.reel,.claim{padding-block:4rem 1rem!important}
  .stats__grid{height:100%;align-content:center}
  .reel{justify-content:center!important;gap:.8rem!important}

  .identity-panel h2,
  .video-showcase__copy h2,
  .turnkey__head h2,
  .services .section-head h2,
  .steps--cine .section-head h2,
  .sectors .section-head h2,
  .projects .section-head h2{
    font-size:clamp(1.38rem,7vw,1.82rem)!important;
    line-height:1.06!important;
  }
  .section-lead,
  .identity-panel>p:not(.eyebrow),
  .video-showcase__copy p:not(.eyebrow),
  .turnkey__head p,
  .services .section-lead{
    font-size:.86rem!important;
    line-height:1.42!important;
  }

  .autoconsumo .two-col{height:auto;gap:.75rem!important}
  .autoconsumo .two-col__media img{max-height:22svh;object-fit:cover}
  .floating-chips{display:none!important}
  .identity-qa__answers{min-height:174px!important}
  .identity-qa__answer p{font-size:.78rem!important;line-height:1.38!important}
  .identity-qa__answer h3{font-size:.96rem!important}

  .video-showcase__stage{
    aspect-ratio:16/10!important;
    max-height:34svh!important;
  }
  .video-showcase__rail{max-height:72px}
  .video-tile{flex-basis:118px!important}

  .turnkey__timeline{max-height:180px}
  .turnkey-step,
  .turnkey-step.is-active{
    min-height:164px!important;
    flex-basis:min(74vw,285px)!important;
  }

  .services>.container{
    display:flex!important;
    flex-direction:column;
    gap:.62rem;
  }
  .services .section-head{margin-bottom:0!important}
  .services .section-lead{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .solution-pulse{
    flex-wrap:nowrap!important;
    overflow-x:auto;
    gap:.35rem!important;
    margin-top:.55rem!important;
    padding-bottom:.1rem;
  }
  .solution-pulse span{flex:0 0 auto}
  .solution-pulse::-webkit-scrollbar{display:none}
  .monitoring-strip{
    flex:0 0 auto;
    grid-template-columns:minmax(0,1fr) 96px!important;
    gap:.55rem!important;
    padding:.68rem!important;
    margin:0!important;
  }
  .monitoring-strip__copy h3{font-size:clamp(1.05rem,5.7vw,1.32rem)!important}
  .monitoring-strip__copy p:not(.eyebrow){-webkit-line-clamp:2!important;font-size:.75rem!important}
  .monitoring-points{display:none!important}
  .monitoring-strip__media{width:96px!important}
  .monitoring-strip__media img{max-height:158px!important}
  .accordion{
    flex:1 1 auto;
    min-height:0;
    height:auto!important;
    padding-bottom:.25rem!important;
  }
  .acc,
  .acc.is-open{
    height:min(30svh,250px)!important;
    flex-basis:min(82vw,320px)!important;
  }
  .acc__content p{-webkit-line-clamp:3!important}

  .flow{display:none!important}
  .steps__grid{max-height:245px}
  .sector-stage{
    height:52svh!important;
    min-height:0!important;
  }
  .sector-tabs{margin-top:.55rem!important}

  .projects>.container{
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
  }
  .projects .section-head{margin-bottom:.65rem!important}
  .filters{margin-bottom:.6rem!important}
  .project-grid{flex:1 1 auto;min-height:0}
  .project-card{align-self:stretch}
  .project-card__media{aspect-ratio:16/10!important}
  .project-card__brief{-webkit-line-clamp:2}
  .projects__more{margin-top:.55rem!important}

  .testimonials>.container{
    display:grid;
    align-content:center;
    overflow:hidden;
  }
  .quote-grid{max-height:54svh}
  .quote-card{padding:1.05rem!important}
  .quote-card__avatar{width:46px;height:46px}

  .claim p{font-size:clamp(1.35rem,7.4vw,1.9rem)!important}
  .contact__inner{
    display:grid;
    align-content:center;
    gap:.85rem!important;
  }
}

@media(max-width:380px){
  .scene-scroll{max-height:calc(100svh - 4.55rem)}
  .monitoring-strip{grid-template-columns:1fr 82px!important}
  .monitoring-strip__media{width:82px!important}
  .monitoring-strip__media img{max-height:134px!important}
  .acc,
  .acc.is-open{height:min(28svh,220px)!important}
}

/* Los snaps internos son solo horizontales; el vertical queda reservado a escenas. */
.video-tile,
.project-card,
.turnkey-step,
.glass-card,
.quote-card,
.acc{
  scroll-snap-align:none center!important;
}
.filter,
.sector-tabs button,
.identity-qa__tab{
  scroll-snap-align:none start!important;
}

/* ===== Flujo normal desde proyectos ===== */
html.is-free-scroll{scroll-snap-type:none!important}
html.is-free-scroll main>section{scroll-snap-align:none!important}

#proyectos,
.testimonials,
#contacto{
  height:auto!important;
  min-height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  scroll-snap-align:none!important;
  scroll-snap-stop:normal!important;
  display:block!important;
}

#proyectos{
  padding:clamp(4.2rem,7vw,6.5rem) 0!important;
}
#proyectos>.container,
.testimonials>.container,
#contacto .contact__inner{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
#proyectos .section-head{
  margin-bottom:2rem!important;
}
#proyectos .project-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  overflow:visible!important;
  width:100%!important;
  max-width:100%!important;
  gap:1.05rem!important;
  padding:0!important;
  scroll-snap-type:none!important;
}
#proyectos .project-card{
  flex:none!important;
  scroll-snap-align:none!important;
  align-self:auto!important;
}
#proyectos .project-card__media{
  aspect-ratio:16/10!important;
}
#proyectos .project-card__body{
  min-height:145px!important;
}

.testimonials{
  padding:clamp(3.8rem,6vw,5.6rem) 0!important;
}
.testimonials .quote-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  overflow:visible!important;
  max-height:none!important;
  padding:0!important;
  scroll-snap-type:none!important;
}
.testimonials .quote-card{
  flex:none!important;
  scroll-snap-align:none!important;
}

#contacto{
  padding:clamp(4rem,7vw,6rem) 0!important;
}
#contacto .contact__inner{
  display:grid!important;
  grid-template-columns:1.3fr 1fr!important;
  align-items:center!important;
}

@media(max-width:1100px){
  #proyectos .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:760px){
  #proyectos,
  .testimonials,
  #contacto{
    padding:3rem 0!important;
  }
  #proyectos .project-grid,
  .testimonials .quote-grid,
  #contacto .contact__inner{
    grid-template-columns:1fr!important;
  }
  #proyectos .section-head{
    margin-bottom:1.2rem!important;
  }
  #proyectos .project-card__media{
    aspect-ratio:16/10!important;
  }
}

/* Loader sin video IA */
.loader{
  background:
    linear-gradient(115deg,rgba(6,16,24,.98),rgba(15,38,56,.96) 48%,rgba(6,16,24,.98)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 92px)!important;
}
.loader__shade{
  background:linear-gradient(180deg,rgba(3,10,15,.18),rgba(3,10,15,.72))!important;
}

html,
body{
  max-width:100%;
  overflow-x:hidden!important;
}
.hero,
.hero__ticker,
.reel,
.reel__strip{
  max-width:100vw;
  overflow:hidden!important;
}

/* Cifras: fondo real sobrio y lectura reforzada */
.stats{
  position:relative;
  isolation:isolate;
  display:grid!important;
  align-items:center!important;
  overflow:hidden!important;
  color:#fff;
  background:#07131d!important;
}
.stats::before{
  content:"";
  position:absolute;
  inset:-4%;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(5,14,21,.9),rgba(5,14,21,.58) 48%,rgba(5,14,21,.86)),
    url("../images/wp-content/uploads/2022/05/DJI_0247-scaled.jpg") center 46%/cover no-repeat;
  filter:saturate(.82) contrast(1.08) brightness(.72);
  transform:scale(1.02);
}
.stats::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(3,10,16,.18),rgba(3,10,16,.78)),
    linear-gradient(90deg,rgba(246,192,22,.13),transparent 28%,rgba(30,136,201,.1));
}
.stats__grid{
  position:relative;
  z-index:1;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  align-items:stretch;
  padding:clamp(1.6rem,3vw,2.4rem) 0;
  border-top:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.18);
  background:linear-gradient(90deg,rgba(5,14,21,.24),rgba(5,14,21,.38),rgba(5,14,21,.24));
  backdrop-filter:blur(3px);
}
.stat{
  position:relative;
  min-height:clamp(126px,18svh,176px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.55rem;
  padding:clamp(.95rem,1.8vw,1.45rem);
  overflow:hidden;
  border-left:1px solid rgba(255,255,255,.18);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.stat:first-child{
  border-left:0;
}
.stat::before{
  display:none;
}
.stat::after{
  content:"";
  width:42px;
  height:3px;
  margin:.12rem auto 0;
  border-radius:999px;
  background:var(--yellow);
  box-shadow:0 6px 18px rgba(0,0,0,.35);
}
.stat b{
  color:#fff!important;
  font-size:clamp(2.55rem,4.6vw,4.55rem)!important;
  letter-spacing:0!important;
  line-height:.92!important;
  -webkit-text-stroke:.45px rgba(255,255,255,.22);
  text-shadow:
    0 2px 16px rgba(0,0,0,.82),
    0 0 1px rgba(255,255,255,.4);
}
.stat b.stat__places{
  font-size:clamp(1.7rem,2.75vw,2.7rem)!important;
  line-height:.98!important;
}
.stat span{
  margin-inline:auto;
  padding:0;
  border:0;
  border-radius:0;
  color:rgba(255,255,255,.86)!important;
  background:transparent;
  font-family:"Sora",system-ui,sans-serif;
  font-size:clamp(.68rem,.88vw,.82rem)!important;
  font-weight:700;
  line-height:1.25;
  text-transform:uppercase;
  letter-spacing:.09em;
  text-shadow:
    0 1px 8px rgba(0,0,0,.86),
    0 0 1px rgba(255,255,255,.3);
  box-shadow:none;
}

@media(max-width:900px){
  .stats__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  .stats::before{
    background:
      linear-gradient(180deg,rgba(5,14,21,.88),rgba(5,14,21,.64) 48%,rgba(5,14,21,.9)),
      url("../images/wp-content/uploads/2022/05/DJI_0247-scaled.jpg") 58% center/cover no-repeat;
  }
  .stats__grid{
    width:min(100% - 1rem,var(--container))!important;
    padding:1.05rem 0;
    border:1px solid rgba(255,255,255,.16);
    border-radius:14px;
    background:rgba(5,14,21,.34);
  }
  .stat{
    min-height:clamp(112px,16svh,142px);
    padding:.8rem .55rem;
    border-left:1px solid rgba(255,255,255,.14);
    border-top:1px solid rgba(255,255,255,.14);
  }
  .stat:nth-child(odd){border-left:0}
  .stat:nth-child(-n+2){border-top:0}
  .stat b{
    font-size:clamp(1.95rem,10.6vw,2.9rem)!important;
  }
  .stat b.stat__places{
    font-size:clamp(1.25rem,6.8vw,1.68rem)!important;
  }
  .stat span{
    font-size:clamp(.55rem,2.55vw,.66rem)!important;
    letter-spacing:.07em;
  }
}

/* Metodo llave en mano: fondo fijo real, mas presencia visual */
.turnkey{
  position:relative;
  isolation:isolate;
  background:#061018!important;
  overflow:hidden!important;
}
.turnkey__video{
  display:none!important;
}
.turnkey::before{
  content:""!important;
  position:absolute!important;
  inset:-3%!important;
  width:auto!important;
  height:auto!important;
  border-radius:0!important;
  z-index:0!important;
  opacity:1!important;
  pointer-events:none!important;
  background:url("../images/wp-content/uploads/2023/03/DJI_0044-scaled.jpg") center 48%/cover no-repeat!important;
  filter:saturate(.94) contrast(1.06) brightness(.9)!important;
  transform:scale(1.02)!important;
  animation:none!important;
}
.turnkey::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  opacity:1!important;
  transform:none!important;
  animation:none!important;
  background:
    linear-gradient(90deg,rgba(3,10,15,.9) 0%,rgba(3,10,15,.66) 42%,rgba(3,10,15,.26) 70%,rgba(3,10,15,.56) 100%),
    linear-gradient(180deg,rgba(3,10,15,.1),rgba(3,10,15,.78)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 118px)!important;
}
.turnkey__overlay{
  display:none!important;
}
.turnkey__inner{
  position:relative!important;
  z-index:2!important;
  grid-template-columns:minmax(0,460px) minmax(0,1fr)!important;
  gap:clamp(1.4rem,4vw,4rem)!important;
  align-items:center!important;
}
.turnkey__head{
  position:relative!important;
  padding:clamp(1.15rem,2vw,1.7rem)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:8px!important;
  background:rgba(3,10,15,.46)!important;
  box-shadow:0 24px 70px -42px rgba(0,0,0,.95)!important;
  backdrop-filter:blur(8px)!important;
}
.turnkey__head::before{
  top:1.15rem!important;
  bottom:1.15rem!important;
  width:3px!important;
  background:var(--yellow)!important;
}
.turnkey__head h2{
  max-width:11ch;
  color:#fff!important;
  font-size:clamp(2.15rem,4.1vw,4rem)!important;
  line-height:.98!important;
  text-shadow:0 3px 22px rgba(0,0,0,.86)!important;
}
.turnkey__head p{
  max-width:42rem;
  color:rgba(241,247,252,.92)!important;
  font-size:clamp(.96rem,1.08vw,1.08rem)!important;
  line-height:1.62!important;
  text-shadow:0 2px 12px rgba(0,0,0,.82)!important;
}
.turnkey__proof{
  gap:.5rem!important;
  margin-top:1rem!important;
}
.turnkey__proof span{
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.2)!important;
  border-left:3px solid var(--yellow)!important;
  border-radius:4px!important;
  box-shadow:none!important;
}
.turnkey__timeline{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(.75rem,1.35vw,1.05rem)!important;
  max-height:none!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
}
.turnkey__timeline::before{
  display:none!important;
}
.turnkey-step{
  min-height:clamp(172px,21svh,225px)!important;
  padding:clamp(1rem,1.45vw,1.35rem)!important;
  border-radius:8px!important;
  border:1px solid rgba(255,255,255,.18)!important;
  background:linear-gradient(180deg,rgba(3,10,15,.5),rgba(3,10,15,.28))!important;
  box-shadow:0 22px 58px -42px rgba(0,0,0,.95)!important;
  backdrop-filter:blur(7px)!important;
  transform:none!important;
}
.turnkey-step:nth-child(even){
  transform:none!important;
}
.turnkey-step::before{
  left:0!important;
  right:auto!important;
  top:0!important;
  bottom:0!important;
  width:3px!important;
  height:auto!important;
  opacity:.9!important;
  background:linear-gradient(180deg,var(--yellow),rgba(246,192,22,.08))!important;
}
.turnkey-step::after{
  display:none!important;
}
.turnkey-step span{
  display:block!important;
  width:auto!important;
  height:auto!important;
  margin:0 0 clamp(1.15rem,2.2vw,1.8rem)!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:rgba(255,255,255,.2)!important;
  font-size:clamp(2.5rem,4.6vw,4.7rem)!important;
  line-height:.8!important;
  text-shadow:none!important;
}
.turnkey-step h3{
  color:#fff!important;
  font-size:clamp(1.08rem,1.45vw,1.34rem)!important;
  line-height:1.1!important;
  margin-bottom:.45rem!important;
  text-shadow:0 2px 14px rgba(0,0,0,.8)!important;
}
.turnkey-step p{
  color:rgba(230,239,247,.9)!important;
  font-size:clamp(.82rem,.95vw,.95rem)!important;
  line-height:1.45!important;
  text-shadow:0 2px 10px rgba(0,0,0,.76)!important;
}
.turnkey-step:hover,
.turnkey-step.is-active,
.turnkey-step:nth-child(even):hover,
.turnkey-step:nth-child(even).is-active{
  transform:translateY(-4px)!important;
  background:linear-gradient(180deg,rgba(10,27,40,.62),rgba(3,10,15,.34))!important;
  border-color:rgba(246,192,22,.48)!important;
  box-shadow:0 28px 70px -42px rgba(246,192,22,.28)!important;
}
.turnkey-step.is-active span{
  color:rgba(246,192,22,.55)!important;
}

@media(max-width:900px){
  .turnkey__inner{
    grid-template-columns:1fr!important;
  }
  .turnkey__head h2{
    max-width:14ch;
  }
}

@media(max-width:760px){
  .turnkey::before{
    background:url("../images/wp-content/uploads/2023/03/DJI_0044-scaled.jpg") 50% center/cover no-repeat!important;
  }
  .turnkey::after{
    background:
      linear-gradient(180deg,rgba(3,10,15,.66),rgba(3,10,15,.38) 34%,rgba(3,10,15,.78)),
      repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 96px)!important;
  }
  .turnkey__inner{
    gap:.85rem!important;
  }
  .turnkey__head{
    padding:.9rem!important;
    border-radius:8px!important;
  }
  .turnkey__head h2{
    max-width:12ch;
    font-size:clamp(1.75rem,8.2vw,2.28rem)!important;
    line-height:1.02!important;
  }
  .turnkey__head p{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:.84rem!important;
    line-height:1.42!important;
  }
  .turnkey__proof{
    margin-top:.65rem!important;
  }
  .turnkey__proof span{
    font-size:.52rem!important;
    padding:.28rem .44rem!important;
  }
  .turnkey__timeline{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.5rem!important;
    overflow:visible!important;
  }
  .turnkey-step{
    min-height:118px!important;
    padding:.72rem!important;
    border-radius:8px!important;
  }
  .turnkey-step span{
    font-size:1.85rem!important;
    margin-bottom:.65rem!important;
  }
  .turnkey-step h3{
    font-size:.84rem!important;
  }
  .turnkey-step p{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:.64rem!important;
    line-height:1.24!important;
  }
}

/* ============================================================
   ESCENAS A PANTALLA — override final (jun 2026)
   Cada seccion cinematografica (.is-scene) ocupa 1 pantalla y
   su composicion se ESCALA con JS (.scene-fit) para encajar
   entera, sin recortar arriba ni abajo, a cualquier tamaño.
   El tramo final (Proyectos, Testimonios, Contacto, Pie) fluye
   en scroll normal. La rueda avanza por escenas completas y se
   conserva el scroll horizontal de los carruseles.
   ============================================================ */
:root{--hdr:clamp(3.6rem,6vh,4.9rem)}

html{scroll-snap-type:y proximity!important;scroll-behavior:auto!important}
html.is-free-scroll,
html.is-scene-jumping{scroll-snap-type:none!important}

/* --- ESCENAS: una pantalla completa, contenido centrado --- */
main>section.is-scene{
  height:100svh!important;
  min-height:100svh!important;
  max-height:100svh!important;
  overflow:hidden!important;
  scroll-snap-align:start!important;
  scroll-snap-stop:normal!important;
  display:grid!important;
  place-items:center!important;
  padding:var(--hdr) 0 clamp(1.6rem,4.5vh,3.2rem)!important;
  box-sizing:border-box;
}
.hero.is-scene{padding:0!important;display:flex!important}
/* Escenas cuyo contenido arranca arriba: mas aire bajo la barra blanca fija (~79px),
   que es mas alta que var(--hdr) y dejaba el primer texto casi pegado a ella */
@media(min-width:761px){
  .reel.is-scene,
  #autoconsumo.is-scene,
  .video-showcase.is-scene{
    padding-top:calc(var(--hdr) + 2.6rem)!important;
  }
  /* Estas cajas quedan alineadas arriba: escalar desde el borde superior
     para que el encaje de fitScenes nunca rebase (y corte) por abajo */
  #autoconsumo.is-scene>.container,
  .video-showcase.is-scene>.container{
    transform-origin:center top;
  }
}

/* Caja de contenido de la escena: altura natural para poder medir
   y escalar; el escalado (transform) lo aplica JS en .scene-fit */
main>section.is-scene>.container{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.scene-fit{
  transform-origin:center center;
  transition:transform .25s var(--ease);
  will-change:transform;
}

/* Dentro de una escena no recortamos texto: el encaje lo hace el
   escalado, no el truncado. */
main>section.is-scene .section-lead,
main>section.is-scene .acc__content p,
main>section.is-scene .monitoring-strip__copy p,
main>section.is-scene .video-showcase__caption p,
main>section.is-scene .turnkey-step p,
main>section.is-scene .glass-card p{
  -webkit-line-clamp:unset!important;
  display:block!important;
  overflow:visible!important;
}

/* Medios con altura sensata dentro de la escena (en svh, adaptable) */
main>section.is-scene .video-showcase__stage{max-height:42svh!important;min-height:0!important}
main>section.is-scene .video-showcase__rail{max-height:none!important}
main>section.is-scene .sector-stage{height:min(56svh,520px)!important;min-height:0!important}
main>section.is-scene .monitoring-strip__media img{max-height:34svh!important}
main>section.is-scene .two-col__media img{max-height:54svh!important}
main>section.is-scene .steps__grid{max-height:none!important}

/* Servicios: conservar aire inferior dentro de la escena */
main>section.services.is-scene{
  padding-bottom:clamp(2.8rem,8vh,5rem)!important;
}
main>section.services.is-scene>.container{
  transform-origin:center 46%!important;
}
@media(max-width:760px){
  main>section.services.is-scene{
    padding-bottom:clamp(2.2rem,6.5vh,3.5rem)!important;
  }
}

/* Servicios: fondo real de proyecto para evitar bloque plano */
main>section.services{
  position:relative!important;
  isolation:isolate;
  background:#061018!important;
  overflow:hidden!important;
}
main>section.services::before{
  content:"";
  position:absolute;
  inset:-4%;
  z-index:0;
  pointer-events:none;
  background:url("../images/wp-content/uploads/2026/02/Pr-TPM-16x9.jpg") center 42%/cover no-repeat;
  filter:saturate(.88) contrast(1.08) brightness(.72);
  transform:scale(1.02);
}
main>section.services::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(115deg,rgba(3,10,15,.94) 0%,rgba(3,10,15,.74) 42%,rgba(3,10,15,.58) 100%),
    radial-gradient(circle at 74% 24%,rgba(246,192,22,.16),transparent 34%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 112px);
}
main>section.services>.container{
  position:relative;
  z-index:2;
}
main>section.services .section-head,
main>section.services .monitoring-strip,
main>section.services .accordion{
  position:relative;
  z-index:2;
}
main>section.services .monitoring-strip{
  background:
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/42px 42px,
    linear-gradient(180deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/42px 42px,
    linear-gradient(135deg,rgba(3,10,15,.6),rgba(3,10,15,.38))!important;
  backdrop-filter:blur(8px);
}
@media(max-width:760px){
  main>section.services::before{
    background-position:58% center;
    filter:saturate(.86) contrast(1.08) brightness(.68);
  }
  main>section.services::after{
    background:
      linear-gradient(180deg,rgba(3,10,15,.86),rgba(3,10,15,.64) 44%,rgba(3,10,15,.88)),
      repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 92px);
  }
}

/* --- NUESTROS SERVICIOS: rejilla unificada (glass sobre foto de obra) --- */
/* El contenedor de Soluciones arrastraba display:grid/flex del sistema
   viejo de escenas: lo forzamos a bloque para que la rejilla se estire. */
main>section.services>.container{
  display:block!important;
  grid-template-rows:none!important;
}
.svc-grid{
  position:relative;
  z-index:2;
  width:100%;
  margin-top:clamp(1.5rem,3.8vh,2.6rem);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.8rem,1.5vw,1.25rem);
}
.svc-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  padding:clamp(1.05rem,1.9vw,1.55rem);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.13);
  backdrop-filter:blur(8px);
  box-shadow:0 22px 48px -34px rgba(0,0,0,.92);
  transition:transform .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease);
}
.svc-card:hover{
  transform:translateY(-6px);
  border-color:rgba(246,192,22,.55);
  background:linear-gradient(135deg,rgba(255,255,255,.11),rgba(255,255,255,.04));
}
.svc-card__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:clamp(42px,4.8vh,54px);
  height:clamp(42px,4.8vh,54px);
  border-radius:13px;
  background:rgba(246,192,22,.12);
  border:1px solid rgba(246,192,22,.3);
}
.svc-card__icon img,
.svc-card__icon svg{width:60%;height:60%;display:block}
.svc-card h3{
  color:#fff;
  font-size:clamp(1.02rem,1.45vw,1.22rem);
  line-height:1.16;
  margin:.1rem 0 0;
}
.svc-card p{
  color:#cdd9e4;
  font-size:clamp(.82rem,.98vw,.94rem);
  line-height:1.45;
  margin:0;
}
@media(max-width:900px){
  .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
}
@media(max-width:760px){
  .svc-card{padding:.9rem .95rem;gap:.4rem}
  .svc-card h3{font-size:clamp(.95rem,3.6vw,1.08rem)}
  .svc-card p{font-size:clamp(.76rem,3vw,.86rem);line-height:1.36}
  .svc-card__icon{width:40px;height:40px;border-radius:11px}
}

/* ============================================================
   ESCENA CIFRAS + SERVICIOS (combo) — fondo de vuelo de dron
   Cifras arriba; debajo, tarjetas con imagen oscura que al
   pasar el raton se agrandan, se iluminan y agrandan el texto.
   ============================================================ */
main>section.combo{
  position:relative!important;
  isolation:isolate;
  background:#061018!important;
  overflow:hidden!important;
  color:#eaf1f6;
}
.combo__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.combo__overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(3,10,15,.84) 0%,rgba(3,10,15,.6) 40%,rgba(3,10,15,.84) 100%),
    radial-gradient(circle at 80% 16%,rgba(246,192,22,.14),transparent 42%);
}
.combo__inner{
  position:relative;z-index:2;
  display:flex;flex-direction:column;
  gap:clamp(1rem,2.6vh,1.9rem);
}

/* Cifras arriba */
.combo__stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(.6rem,1.6vw,1.4rem);
  text-align:center;
  padding-bottom:clamp(.7rem,1.8vh,1.2rem);
  border-bottom:1px solid rgba(255,255,255,.14);
}
.combo__stats .stat b{
  display:block;
  font-family:"Sora";font-weight:800;color:#fff;
  font-size:clamp(1.7rem,3.2vw,2.7rem);line-height:1;
}
.combo__stats .stat .stat__places{color:var(--yellow);font-size:clamp(1.15rem,2.1vw,1.7rem);line-height:1.05}
.combo__stats .stat span{display:block;margin-top:.35rem;color:#bdcad6;font-size:clamp(.74rem,1vw,.9rem)}

/* Cabecera */
.combo__head{text-align:center;margin:0}
.combo__head h2{color:#fff;font-size:clamp(1.65rem,3.2vw,2.6rem);line-height:1.04;margin:.15rem 0 0}

/* Tarjetas de servicio con imagen oscura */
.svc-tiles{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.7rem,1.3vw,1.05rem);
}
.svc-tile{
  position:relative;overflow:hidden;border-radius:16px;
  min-height:clamp(138px,20vh,205px);
  display:flex;align-items:flex-end;
  border:1px solid rgba(255,255,255,.13);
  isolation:isolate;cursor:pointer;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
}
.svc-tile__img{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
  filter:brightness(.4) saturate(.85);
  transform:scale(1.02);
  transition:transform .7s var(--ease),filter .6s var(--ease);
}
.svc-tile__grad{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(3,10,15,.05) 28%,rgba(3,10,15,.9) 100%);
}
.svc-tile__body{
  position:relative;z-index:2;
  padding:clamp(.85rem,1.5vw,1.2rem);
  display:flex;flex-direction:column;gap:.3rem;
}
.svc-tile__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:11px;
  background:rgba(246,192,22,.14);border:1px solid rgba(246,192,22,.3);
  margin-bottom:.1rem;
}
.svc-tile__icon img,.svc-tile__icon svg{width:60%;height:60%;display:block}
.svc-tile h3{color:#fff;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.12;margin:0;text-shadow:0 4px 16px rgba(0,0,0,.65);transition:font-size .35s var(--ease)}
.svc-tile p{
  color:#d6e1ea;font-size:.9rem;line-height:1.4;margin:0;
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .45s var(--ease),opacity .35s var(--ease),margin .45s var(--ease);
}
/* HOVER: imagen grande + luminosa, texto en grande */
.svc-tile:hover,
.svc-tile:focus-within{
  transform:translateY(-4px) scale(1.035);
  z-index:5;
  box-shadow:0 32px 60px -30px rgba(0,0,0,.88);
  border-color:rgba(246,192,22,.55);
}
.svc-tile:hover .svc-tile__img,
.svc-tile:focus-within .svc-tile__img{transform:scale(1.12);filter:brightness(.86) saturate(1.08)}
.svc-tile:hover h3,
.svc-tile:focus-within h3{font-size:clamp(1.15rem,1.7vw,1.45rem)}
.svc-tile:hover p,
.svc-tile:focus-within p{max-height:7rem;opacity:1;margin-top:.15rem}

@media(max-width:900px){
  .svc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .combo__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .9rem}
  .svc-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
  .svc-tile{min-height:118px}
  .svc-tile__body{padding:.7rem .75rem}
  .svc-tile__icon{width:34px;height:34px;border-radius:9px;margin-bottom:0}
  .svc-tile h3{font-size:.92rem}
  /* en movil no hay hover: imagen algo mas clara y solo titulo (compacto) */
  .svc-tile__img{filter:brightness(.52) saturate(.9)}
  .svc-tile p{display:none}
}

/* --- CINTA de proyectos en movimiento: composicion con titulo central --- */
main>section.reel.is-scene{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:stretch!important;
  gap:clamp(1.4rem,4.5vh,3rem)!important;
}
.reel__heading{
  text-align:center;
  padding-inline:1rem;
  transform:translateY(clamp(-2.4rem,-4vh,-1rem));
}
.reel__heading .eyebrow{justify-content:center}
.reel__heading h2{
  color:#fff;
  font-size:clamp(2rem,5vw,3.6rem);
  line-height:1.02;
  margin:.2rem 0 0;
}
.reel__heading p.reel__sub{
  color:#cdd9e4;
  margin:.7rem auto 0;
  max-width:52ch;
  font-size:clamp(.95rem,1.4vw,1.1rem);
}

/* Margenes laterales comodos dentro de las escenas en movil */
@media(max-width:760px){
  main>section.is-scene>.container{
    width:min(100% - 2.4rem,var(--container))!important;
    margin-inline:auto!important;
  }
  .reel__heading{padding-inline:1.4rem}
}

/* --- TRAMO FINAL: scroll normal, sin recorte --- */
#proyectos,
.testimonials,
#contacto,
.footer{
  height:auto!important;
  min-height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  scroll-snap-align:none!important;
  scroll-snap-stop:normal!important;
  display:block!important;
}
.footer{scroll-snap-align:none!important}

/* ============================================================
   MAS DE NOSOTROS: pagina explicativa limpia
   ============================================================ */
body.info-page{
  background:#eef3f7;
  color:var(--text);
}
.info-page main{
  overflow:hidden;
}
.info-page [id]{
  scroll-margin-top:96px;
}
.about-hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:center;
  color:#fff;
  isolation:isolate;
  overflow:hidden;
}
.about-hero__bg{
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.96) contrast(1.05);
}
.about-hero__shade{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(105deg,rgba(5,15,23,.92) 0%,rgba(5,15,23,.68) 48%,rgba(5,15,23,.28) 100%),
    linear-gradient(180deg,rgba(5,15,23,.2),rgba(5,15,23,.72));
}
.about-hero__inner{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr);
  gap:clamp(2rem,6vw,5rem);
  align-items:end;
  padding:clamp(7rem,16vh,10rem) 0 clamp(4rem,9vh,6rem);
}
.about-hero__copy{
  max-width:760px;
}
.about-hero h1{
  color:#fff;
  font-size:clamp(2.45rem,5.8vw,5.2rem);
  line-height:1.02;
  letter-spacing:0;
  max-width:12ch;
}
.about-hero p{
  color:#e4edf5;
  font-size:clamp(1rem,1.45vw,1.18rem);
  max-width:62ch;
}
.about-hero__proof{
  display:grid;
  gap:.8rem;
}
.about-hero__proof article{
  padding:1rem 1.1rem;
  border-radius:14px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
  box-shadow:0 22px 58px -36px rgba(0,0,0,.9);
}
.about-hero__proof strong{
  display:block;
  font-family:"Sora";
  color:var(--yellow);
  font-size:clamp(1.35rem,2.3vw,2rem);
  line-height:1.05;
}
.about-hero__proof span{
  display:block;
  color:#d5e1eb;
  font-size:.92rem;
  margin-top:.25rem;
}

.about-band{
  position:relative;
  padding:clamp(4rem,8vw,7rem) 0;
}
.about-band h2{
  font-size:clamp(1.85rem,3.6vw,3rem);
  letter-spacing:0;
}
.about-band p{
  font-size:1.02rem;
}
.about-band--soft{
  background:linear-gradient(180deg,#f6f9fb 0%,#e7eef5 100%);
}
.about-band--dark{
  background:#0a1c2b;
  color:#dce7ef;
  isolation:isolate;
  overflow:hidden;
}
.about-band--dark::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/48px 48px,
    linear-gradient(180deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/48px 48px,
    radial-gradient(circle at 18% 12%,rgba(246,192,22,.18),transparent 36%);
}
.about-band--dark h2,
.about-band--dark h3{
  color:#fff;
}

.about-intro{
  background:#eef3f7;
}
.about-intro__grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);
  gap:clamp(2rem,6vw,5rem);
  align-items:center;
}
.about-intro__copy p{
  color:#435363;
  max-width:67ch;
}
.about-intro__media{
  position:relative;
}
.about-intro__media img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow);
}
.about-note{
  position:absolute;
  right:clamp(.8rem,2vw,1.4rem);
  bottom:clamp(.8rem,2vw,1.4rem);
  max-width:min(320px,72%);
  padding:.9rem 1rem;
  border-radius:14px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,38,56,.1);
  box-shadow:0 18px 44px -28px rgba(15,38,56,.75);
}
.about-note span{
  display:block;
  font-family:"Sora";
  font-size:.72rem;
  font-weight:800;
  color:var(--yellow-d);
  text-transform:uppercase;
  letter-spacing:.12em;
}
.about-note strong{
  display:block;
  color:var(--ink);
  font-family:"Sora";
  line-height:1.2;
  margin-top:.2rem;
}

.plain-flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin:clamp(2rem,4vw,3rem) 0 1.2rem;
}
.plain-flow article{
  position:relative;
  overflow:hidden;
  min-height:360px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,38,56,.08);
  box-shadow:var(--shadow-sm);
}
.plain-flow img{
  width:100%;
  height:190px;
  object-fit:cover;
}
.plain-flow span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  margin:-23px 1.1rem .8rem;
  border-radius:14px;
  background:var(--yellow);
  color:var(--ink);
  font-family:"Sora";
  font-weight:800;
  border:4px solid #fff;
}
.plain-flow h3,
.plain-flow p{
  padding-inline:1.2rem;
}
.plain-flow h3{
  font-size:1.25rem;
  margin-bottom:.35rem;
}
.plain-flow p{
  color:#556575;
  line-height:1.5;
}

.explain-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.explain-grid article{
  padding:1.35rem;
  border-radius:16px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(15,38,56,.09);
  box-shadow:0 12px 34px -26px rgba(15,38,56,.48);
}
.explain-grid h3{
  font-size:1.08rem;
  line-height:1.22;
}
.explain-grid p{
  color:#5b6b79;
  font-size:.95rem;
  margin:0;
}

.compensation{
  background:#fff;
}
.compensation__grid{
  display:grid;
  grid-template-columns:minmax(320px,.92fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}
.compensation__visual{
  position:relative;
}
.compensation__visual img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:18px;
  border:1px solid rgba(15,38,56,.08);
  box-shadow:var(--shadow);
  background:#f5f7fa;
}
.compensation__meter{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  padding:.85rem 1rem;
  border-radius:14px;
  background:rgba(7,20,31,.88);
  color:#fff;
  backdrop-filter:blur(10px);
}
.compensation__meter span{
  display:block;
  color:var(--yellow);
  font-family:"Sora";
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.compensation__meter b{
  display:block;
  margin-top:.2rem;
  font-family:"Sora";
  line-height:1.2;
}
.compensation__copy>p{
  color:#435363;
}
.plain-callout{
  margin:1.2rem 0;
  padding:1rem 1.1rem;
  border-radius:16px;
  background:#fff7d8;
  border:1px solid rgba(246,192,22,.36);
}
.plain-callout strong{
  display:block;
  font-family:"Sora";
  color:var(--ink);
  margin-bottom:.25rem;
}
.plain-callout p{
  color:#504627;
  margin:0;
}
.mini-definitions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}
.mini-definitions article{
  padding:1rem;
  border-radius:14px;
  background:#eef3f7;
  border:1px solid rgba(15,38,56,.08);
}
.mini-definitions span{
  display:block;
  font-family:"Sora";
  font-weight:800;
  color:var(--navy);
  margin-bottom:.35rem;
}
.mini-definitions p{
  font-size:.9rem;
  color:#5b6b79;
  line-height:1.4;
  margin:0;
}

.service-story{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin-bottom:1rem;
}
.service-story article{
  overflow:hidden;
  border-radius:18px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 22px 54px -34px rgba(0,0,0,.88);
}
.service-story img{
  width:100%;
  height:210px;
  object-fit:cover;
}
.service-story div{
  padding:1.1rem;
}
.service-story span{
  display:inline-flex;
  margin-bottom:.45rem;
  color:var(--yellow);
  font-family:"Sora";
  font-size:.74rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.service-story h3{
  font-size:1.24rem;
}
.service-story p{
  color:#c8d5df;
  font-size:.95rem;
  line-height:1.48;
  margin:0;
}
.solution-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}
.solution-grid article{
  padding:1.15rem;
  border-radius:16px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
}
.solution-grid img{
  width:42px;
  height:42px;
  padding:.45rem;
  border-radius:12px;
  background:rgba(246,192,22,.12);
  border:1px solid rgba(246,192,22,.28);
  margin-bottom:.8rem;
}
.solution-grid h3{
  font-size:1.08rem;
}
.solution-grid p{
  color:#c7d4df;
  font-size:.93rem;
  line-height:1.45;
  margin:0;
}

.process{
  background:#e7eef5;
}
.process__grid{
  display:grid;
  grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.process__copy{
  position:sticky;
  top:7rem;
}
.process__copy p{
  color:#556575;
}
.process__steps{
  display:grid;
  gap:.9rem;
}
.process__steps article{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:1rem;
  padding:1.2rem;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,38,56,.08);
  box-shadow:0 14px 34px -28px rgba(15,38,56,.55);
}
.process__steps span{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border-radius:16px;
  background:var(--navy);
  color:var(--yellow);
  font-family:"Sora";
  font-weight:800;
}
.process__steps h3{
  font-size:1.18rem;
}
.process__steps p{
  color:#5b6b79;
  margin:0;
}

.press{
  background:#f6f9fb;
}
.press-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.press-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
  overflow:hidden;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,38,56,.08);
  box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.press-card:hover{
  transform:translateY(-5px);
  border-color:rgba(246,192,22,.65);
  box-shadow:var(--shadow);
}
.press-card img{
  width:100%;
  height:190px;
  object-fit:cover;
  background:#eef3f7;
}
.press-card div{
  padding:1.15rem;
}
.press-card span{
  display:block;
  font-family:"Sora";
  font-size:.72rem;
  color:var(--yellow-d);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.press-card h3{
  font-size:1.08rem;
  line-height:1.28;
  margin:.5rem 0 .8rem;
}
.press-card p{
  display:inline-flex;
  margin:0;
  font-family:"Sora";
  font-weight:800;
  color:var(--navy);
}

.faq{
  background:#eef3f7;
}
.faq__grid{
  display:grid;
  grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.faq__intro p{
  color:#556575;
}
.faq__list{
  display:grid;
  gap:.75rem;
}
.faq details{
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(15,38,56,.08);
  box-shadow:0 12px 30px -26px rgba(15,38,56,.55);
  overflow:hidden;
}
.faq summary{
  cursor:pointer;
  padding:1.05rem 1.2rem;
  font-family:"Sora";
  font-weight:800;
  color:var(--ink);
  list-style:none;
}
.faq summary::-webkit-details-marker{
  display:none;
}
.faq summary::after{
  content:"+";
  float:right;
  color:var(--yellow-d);
}
.faq details[open] summary::after{
  content:"-";
}
.faq details p{
  margin:0;
  padding:0 1.2rem 1.15rem;
  color:#5b6b79;
}

.about-cta{
  position:relative;
  padding:clamp(4rem,8vw,6rem) 0;
  background:#07141f;
  color:#dce7ef;
  overflow:hidden;
}
.about-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,20,31,.94),rgba(7,20,31,.72)),
    url("../images/wp-content/uploads/2026/02/Pr-HUERTO-16x9.jpg") center/cover;
  opacity:.95;
}
.about-cta__inner{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);
  gap:clamp(1.5rem,4vw,3rem);
  align-items:center;
}
.about-cta h2{
  color:#fff;
  font-size:clamp(1.9rem,4vw,3.2rem);
}
.about-cta p{
  color:#d3dee8;
  max-width:62ch;
}
.about-cta__actions{
  display:grid;
  gap:.85rem;
}

@media(max-width:1050px){
  .about-hero__inner,
  .about-intro__grid,
  .compensation__grid,
  .process__grid,
  .faq__grid,
  .about-cta__inner{
    grid-template-columns:1fr;
  }
  .about-hero h1{
    max-width:14ch;
  }
  .about-hero__proof{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .process__copy{
    position:static;
  }
  .solution-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:860px){
  .plain-flow,
  .explain-grid,
  .service-story,
  .press-grid{
    grid-template-columns:1fr;
  }
  .about-hero__proof,
  .mini-definitions{
    grid-template-columns:1fr;
  }
  .plain-flow article{
    min-height:auto;
  }
  .plain-flow img,
  .service-story img,
  .press-card img{
    height:210px;
  }
}
@media(max-width:560px){
  .about-hero__inner{
    padding-top:7.6rem;
    padding-bottom:3.5rem;
  }
  .about-hero h1{
    font-size:clamp(2rem,10.6vw,2.65rem);
    max-width:13ch;
    line-height:1.04;
  }
  .about-hero p{
    font-size:1rem;
    line-height:1.55;
  }
  .about-band{
    padding:3.4rem 0;
  }
  .about-note{
    position:relative;
    right:auto;
    bottom:auto;
    max-width:none;
    margin:.8rem 0 0;
  }
  .solution-grid{
    grid-template-columns:1fr;
  }
  .process__steps article{
    grid-template-columns:1fr;
  }
  .compensation__meter{
    position:static;
    margin-top:.75rem;
  }
  .plain-flow img,
  .service-story img,
  .press-card img{
    height:168px;
  }
}

/* ============================================================
   FICHA DE PROYECTO (modal) + tarjetas clicables — V3
   ============================================================ */
.project-card[data-proj-open]{cursor:pointer}
.project-card[data-proj-open]:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}

.psheet{position:fixed;inset:0;z-index:6000;display:grid;place-items:center;padding:1rem}
.psheet[hidden]{display:none!important}
.psheet__back{position:absolute;inset:0;background:rgba(6,16,24,.72);backdrop-filter:blur(6px)}
.psheet__card{
  position:relative;z-index:2;width:min(880px,96vw);max-height:92svh;overflow:auto;
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);
  display:grid;grid-template-columns:1.25fr 1fr;
  animation:psheetin .35s var(--ease);
}
@keyframes psheetin{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.psheet__x{
  position:absolute;top:.55rem;right:.6rem;z-index:3;width:38px;height:38px;border-radius:50%;
  border:0;background:var(--navy);color:#fff;font-size:1.25rem;cursor:pointer;line-height:1;
  transition:background .25s}
.psheet__x:hover{background:var(--navy-2)}
.psheet__media{background:var(--navy);min-height:300px}
.psheet__media img{width:100%;height:100%;object-fit:cover;display:block}
.psheet__body{padding:1.7rem 1.5rem 1.5rem;display:flex;flex-direction:column;align-items:flex-start}
.psheet__tag{
  font-family:"Sora";font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--yellow-d);margin:0 0 .4rem}
.psheet__body h3{font-size:clamp(1.5rem,3vw,2.1rem);margin:0 0 .15em}
.psheet__loc{color:var(--muted);font-size:.9rem;margin:0 0 .7rem}
.psheet__desc{font-size:.96rem;margin-bottom:1.2rem}
.psheet__body .btn{margin-top:auto}

/* Contacto: accion WhatsApp en verde de marca */
.contact-action--wa{border-color:rgba(37,211,102,.6)}
.contact-action--wa span{color:#5BE49B}
.contact-action--wa:hover{border-color:#25D366}

@media(max-width:760px){
  .psheet__card{grid-template-columns:1fr;max-width:560px}
  .psheet__media{min-height:0;aspect-ratio:16/10}
}

/* ============================================================
   REFERENCIAS (dosier a pantalla completa) — V3
   Cada referencia ocupa una pantalla con snap vertical nativo
   (html ya tiene scroll-snap-type:y proximity). Fotos full-bleed
   con texto tipo hero; recortes de prensa como documento claro.
   ============================================================ */
.rs{
  position:relative;
  min-height:100svh;
  scroll-snap-align:start;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--navy);
  color:#fff;
  isolation:isolate;
}
.rs__bg{
  position:absolute;inset:0;z-index:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
}
.rs__shade{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(8,20,30,.55) 0%,rgba(8,20,30,.05) 32%,rgba(8,20,30,.18) 58%,rgba(8,20,30,.88) 100%),
    linear-gradient(100deg,rgba(8,20,30,.55) 0%,transparent 55%);
}
.rs__shade--deep{
  background:
    linear-gradient(180deg,rgba(8,20,30,.82),rgba(8,20,30,.66) 45%,rgba(8,20,30,.9)),
    radial-gradient(circle at 78% 22%,rgba(246,192,22,.16),transparent 40%);
}
.rs__body{
  position:relative;z-index:2;
  width:min(var(--container),92vw);margin-inline:auto;
  padding:clamp(4.6rem,10vh,6rem) 0 clamp(3rem,8vh,4.6rem);
}
.rs__body--center{
  align-self:center;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
  padding-block:clamp(4.6rem,10vh,6rem);
}
.rs__kicker{
  font-family:"Sora";font-size:.74rem;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--yellow);margin:0 0 .7rem;
}
.rs__kwp{
  font-family:"Sora";font-weight:800;line-height:.95;margin:0 0 .15em;
  font-size:clamp(3.2rem,9vw,7rem);color:#fff;
  text-shadow:0 4px 34px rgba(8,20,30,.65);
}
.rs__kwp small{font-size:.34em;font-weight:700;color:var(--yellow)}
.rs__what{
  font-size:clamp(1.4rem,3.2vw,2.3rem);color:#fff;margin:0 0 .2em;max-width:26ch;
  text-shadow:0 2px 18px rgba(8,20,30,.6);
}
.rs__where{
  font-size:clamp(.95rem,1.6vw,1.12rem);color:#dbe6ee;margin:0;
  text-shadow:0 1px 12px rgba(8,20,30,.7);
}
.rs__pr{
  display:inline-block;margin-top:.9rem;
  font-family:"Sora";font-size:.7rem;font-weight:700;letter-spacing:.16em;
  color:var(--ink);background:var(--yellow);
  padding:.32rem .7rem;border-radius:999px;
}

/* Portada y portadillas de sección */
.rs__no{
  font-family:"Sora";font-weight:800;font-size:clamp(2.6rem,7vw,4.6rem);line-height:1;
  color:transparent;-webkit-text-stroke:2px rgba(246,192,22,.85);
}
.rs__covertitle{
  font-size:clamp(2.8rem,7.4vw,5.6rem);color:#fff;letter-spacing:-.01em;margin:.1em 0 .15em;
}
.rs__divtitle{
  font-size:clamp(2rem,5vw,3.6rem);color:#fff;margin:.25em 0 .2em;max-width:22ch;
}
.rs__divlead{color:#d6e1ea;max-width:60ch;font-size:clamp(.98rem,1.5vw,1.15rem)}
.rs__index{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1.3rem}
.rs__index a{
  font-family:"Sora";font-weight:600;font-size:.88rem;color:#fff;
  border:1.5px solid rgba(255,255,255,.45);border-radius:999px;
  padding:.6rem 1.15rem;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease);
}
.rs__index a:hover{background:var(--yellow);border-color:var(--yellow);color:var(--ink);transform:translateY(-2px)}

/* Prensa: documento sobre fondo claro */
.rs--doc{
  background:var(--mist);color:var(--text);
  align-items:center;
}
.rs--doc::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 84% 12%,rgba(246,192,22,.14),transparent 34%),
    linear-gradient(180deg,var(--bg-a),var(--bg-b));
}
.rs--doc .rs__docwrap{position:relative;z-index:1}
.rs__docwrap{
  flex:1.25;align-self:center;display:flex;gap:1rem;justify-content:center;align-items:center;
  padding:clamp(4.2rem,9vh,5.4rem) 0 1rem 4vw;min-width:0;
}
.rs__docwrap img{
  max-height:min(72svh,860px);max-width:min(100%,820px);width:auto;min-width:0;
  object-fit:contain;border-radius:10px;
  box-shadow:0 30px 70px -34px rgba(15,38,56,.55);
  border:1px solid var(--line);background:#fff;
}
.rs__docwrap--two img:first-child{max-width:min(70%,700px)}
.rs__docwrap--two img:last-child{
  max-height:min(36svh,420px);max-width:26%;align-self:flex-end;margin-left:-2rem;
  transform:rotate(2.2deg);
}
.rs__docmeta{
  position:relative;z-index:2;flex:1;align-self:center;
  padding:clamp(4.2rem,9vh,5.4rem) 4vw 2rem 1.4rem;max-width:560px;
}
.rs__kicker--dark{color:var(--yellow-d)}
.rs__docmeta h2{font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.25;color:var(--ink)}
.rs__src{
  font-family:"Sora";font-size:.8rem;font-weight:700;color:var(--navy);
  border-left:3px solid var(--yellow);padding-left:.6rem;margin:.8rem 0;
}
.rs__docdesc{color:var(--muted);font-size:.95rem;margin:0}

/* Contador fijo */
.rs-counter{
  position:fixed;right:1.1rem;bottom:1rem;z-index:900;
  font-family:"Sora";font-size:.78rem;font-weight:600;letter-spacing:.08em;
  color:#fff;background:rgba(8,20,30,.72);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.2);border-radius:999px;
  padding:.4rem .85rem;pointer-events:none;
}
.rs-counter b{color:var(--yellow)}

@media(max-width:860px){
  .rs--doc{align-items:stretch}
  .rs--doc{flex-direction:column}
  .rs__docwrap{flex:none;padding:4.6rem 4vw .4rem}
  .rs__docwrap img{max-height:52svh}
  .rs__docwrap--two img:last-child{display:none}
  .rs__docmeta{flex:none;padding:0 6vw 3.4rem;max-width:none}
  .rs__body{padding-bottom:3.4rem}
  .rs__kwp{font-size:clamp(2.8rem,14vw,4.4rem)}
  .rs-counter{right:.7rem;bottom:.7rem}
}

/* ============================================================
   HOME mobile final override
   Normal mobile flow; desktop keeps the cinematic scene system.
   ============================================================ */
@media(max-width:760px){
  html.home-page,
  html.home-page.is-free-scroll,
  html.home-page.is-scene-jumping{
    scroll-snap-type:none!important;
    scroll-behavior:smooth!important;
    scroll-padding-top:64px!important;
  }
  html.home-page body{
    overscroll-behavior-y:auto;
  }
  body[data-home-page] .scene-nav{
    display:none!important;
  }
  body[data-home-page] .scene-fit{
    transform:none!important;
    transition:none!important;
  }
  body[data-home-page] .container,
  body[data-home-page] main>section.is-scene>.container{
    width:min(100% - 1.25rem,var(--container))!important;
    max-width:var(--container)!important;
    margin-inline:auto!important;
  }
  body[data-home-page] main>section,
  body[data-home-page] main>section.is-scene,
  body[data-home-page] #proyectos,
  body[data-home-page] .testimonials,
  body[data-home-page] #contacto{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    display:block!important;
    padding:clamp(3rem,10vw,4.4rem) 0!important;
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
  }
  body[data-home-page] main>section.hero,
  body[data-home-page] main>section.combo,
  body[data-home-page] main>section.reel,
  body[data-home-page] main>section.video-showcase{
    overflow:hidden!important;
  }

  body[data-home-page] .header__inner{
    padding:.56rem 0!important;
  }
  body[data-home-page] .brand__logo,
  body[data-home-page] .header.is-stuck .brand__logo{
    width:88px!important;
    padding:4px 8px!important;
  }
  body[data-home-page] .brand__tag{
    display:block!important;
    font-size:.56rem!important;
    line-height:1.05!important;
  }
  body[data-home-page] .nav{
    inset:.65rem .65rem .65rem auto!important;
    width:min(86vw,320px)!important;
    justify-content:flex-start!important;
    padding:4.8rem 1.25rem 1.25rem!important;
  }

  body[data-home-page] .hero,
  body[data-home-page] .hero.is-scene{
    min-height:100svh!important;
    height:auto!important;
    display:flex!important;
    align-items:flex-end!important;
    padding:0!important;
  }
  body[data-home-page] .hero__shade{
    background:linear-gradient(180deg,rgba(5,13,20,.45) 0%,rgba(5,13,20,.72) 42%,rgba(5,13,20,.96) 100%)!important;
  }
  body[data-home-page] .hero__content{
    display:block!important;
    width:min(100% - 1.25rem,var(--container))!important;
    padding:5.35rem 0 2.35rem!important;
  }
  body[data-home-page] .hero__kicker{
    font-size:.64rem!important;
    letter-spacing:.14em!important;
    margin-bottom:.5rem!important;
  }
  body[data-home-page] .hero__title{
    max-width:12ch!important;
    font-size:clamp(2.05rem,11.3vw,2.82rem)!important;
    line-height:1.03!important;
    letter-spacing:0!important;
  }
  body[data-home-page] .hero__title span{
    font-size:.52em!important;
    line-height:1.18!important;
  }
  body[data-home-page] .hero__lead{
    max-width:32ch!important;
    font-size:.94rem!important;
    line-height:1.52!important;
  }
  body[data-home-page] .hero__console,
  body[data-home-page] .hero__scroll,
  body[data-home-page] .hero__ticker{
    display:none!important;
  }
  body[data-home-page] .btn-row{
    gap:.58rem!important;
    margin-top:1rem!important;
  }
  body[data-home-page] .btn,
  body[data-home-page] .btn--lg{
    width:100%!important;
    justify-content:center!important;
    min-height:45px!important;
    padding:.78rem .95rem!important;
    font-size:.9rem!important;
  }

  body[data-home-page] .combo{
    padding:3.2rem 0!important;
  }
  body[data-home-page] .combo__inner{
    gap:1rem!important;
  }
  body[data-home-page] .combo__stats.stats__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.65rem .45rem!important;
    padding:.4rem 0 .95rem!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.16)!important;
    background:transparent!important;
    backdrop-filter:none!important;
  }
  body[data-home-page] .combo__stats .stat{
    min-height:0!important;
    padding:.45rem .35rem!important;
    border:0!important;
    gap:.32rem!important;
  }
  body[data-home-page] .combo__stats .stat::after{
    width:28px!important;
    height:2px!important;
  }
  body[data-home-page] .combo__stats .stat b{
    font-size:clamp(1.65rem,8vw,2.15rem)!important;
    line-height:1!important;
  }
  body[data-home-page] .combo__stats .stat b.stat__places{
    font-size:clamp(1.02rem,5.6vw,1.42rem)!important;
  }
  body[data-home-page] .combo__stats .stat span{
    font-size:.62rem!important;
    letter-spacing:.06em!important;
    line-height:1.2!important;
  }
  body[data-home-page] .combo__head h2{
    font-size:clamp(1.62rem,8.2vw,2.05rem)!important;
  }
  body[data-home-page] .svc-tiles{
    grid-template-columns:1fr!important;
    gap:.72rem!important;
  }
  body[data-home-page] .svc-tile{
    min-height:150px!important;
    border-radius:12px!important;
    cursor:default!important;
  }
  body[data-home-page] .svc-tile__body{
    padding:.9rem!important;
  }
  body[data-home-page] .svc-tile h3{
    font-size:1.03rem!important;
    line-height:1.16!important;
  }
  body[data-home-page] .svc-tile p{
    display:block!important;
    max-height:none!important;
    opacity:1!important;
    overflow:visible!important;
    margin-top:.1rem!important;
    font-size:.82rem!important;
    line-height:1.38!important;
  }

  body[data-home-page] .reel{
    display:flex!important;
    flex-direction:column!important;
    gap:.85rem!important;
    padding:2.6rem 0!important;
    background:#07131d!important;
  }
  body[data-home-page] .reel__heading{
    order:-1;
    transform:none!important;
    padding-inline:1rem!important;
  }
  body[data-home-page] .reel__heading h2{
    font-size:clamp(1.65rem,8vw,2.1rem)!important;
  }
  body[data-home-page] .reel__heading p.reel__sub{
    font-size:.9rem!important;
    line-height:1.45!important;
    max-width:32ch!important;
  }
  body[data-home-page] .reel__track{
    gap:.6rem!important;
  }
  body[data-home-page] .reel-item,
  body[data-home-page] .reel-item:hover{
    width:232px!important;
    height:156px!important;
    border-radius:11px!important;
  }
  body[data-home-page] .reel-item__info{
    opacity:1!important;
    padding:.72rem!important;
  }
  body[data-home-page] .reel-item__info h4{
    font-size:.86rem!important;
  }

  body[data-home-page] .two-col,
  body[data-home-page] .contact__inner,
  body[data-home-page] .footer__inner{
    grid-template-columns:1fr!important;
  }
  body[data-home-page] .autoconsumo .two-col{
    display:grid!important;
    gap:1.25rem!important;
  }
  body[data-home-page] .autoconsumo .two-col__text{
    order:-1;
  }
  body[data-home-page] .two-col__media img,
  body[data-home-page] main>section.is-scene .two-col__media img{
    max-height:none!important;
    aspect-ratio:16/10!important;
    border-radius:14px!important;
  }
  body[data-home-page] .floating-chips{
    display:flex!important;
    position:static!important;
    max-width:none!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    margin-top:.65rem!important;
  }
  body[data-home-page] .chip{
    font-size:.68rem!important;
    line-height:1.18!important;
    padding:.42rem .62rem!important;
  }
  body[data-home-page] .identity-panel h2{
    font-size:clamp(1.55rem,7.7vw,2rem)!important;
    line-height:1.08!important;
  }
  body[data-home-page] .identity-qa__tabs{
    display:flex!important;
    overflow-x:auto!important;
    gap:1px!important;
    scroll-snap-type:x mandatory!important;
  }
  body[data-home-page] .identity-qa__tabs::-webkit-scrollbar{
    display:none;
  }
  body[data-home-page] .identity-qa__tab{
    flex:0 0 48%!important;
    font-size:.65rem!important;
    padding:.75rem!important;
  }
  body[data-home-page] .identity-qa__answers{
    min-height:228px!important;
  }
  body[data-home-page] .identity-qa__answer{
    padding:1rem!important;
  }
  body[data-home-page] .identity-qa__answer h3{
    max-width:none!important;
    font-size:1.04rem!important;
  }
  body[data-home-page] .identity-qa__answer p{
    font-size:.84rem!important;
    line-height:1.48!important;
  }

  body[data-home-page] .video-showcase{
    padding:3.1rem 0!important;
  }
  body[data-home-page] .video-showcase__inner{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:1rem!important;
  }
  body[data-home-page] .video-showcase__copy h2{
    font-size:clamp(1.55rem,7.8vw,2rem)!important;
    line-height:1.08!important;
  }
  body[data-home-page] .video-showcase__copy p:not(.eyebrow){
    font-size:.9rem!important;
    line-height:1.52!important;
  }
  body[data-home-page] .video-showcase__stage,
  body[data-home-page] main>section.is-scene .video-showcase__stage{
    aspect-ratio:4/5!important;
    min-height:0!important;
    max-height:none!important;
    border-radius:12px!important;
  }
  body[data-home-page] .video-showcase__caption{
    left:.8rem!important;
    right:.8rem!important;
    bottom:.8rem!important;
  }
  body[data-home-page] .video-showcase__caption h3{
    font-size:1.2rem!important;
  }
  body[data-home-page] .video-showcase__caption p{
    font-size:.78rem!important;
    line-height:1.34!important;
  }
  body[data-home-page] .video-showcase__rail{
    display:flex!important;
    grid-template-columns:none!important;
    overflow-x:auto!important;
    gap:.55rem!important;
    margin-inline:-.625rem!important;
    padding:.05rem .625rem .45rem!important;
    scroll-snap-type:x mandatory!important;
    -webkit-overflow-scrolling:touch;
  }
  body[data-home-page] .video-showcase__rail::-webkit-scrollbar{
    display:none;
  }
  body[data-home-page] .video-tile{
    flex:0 0 138px!important;
    scroll-snap-align:start!important;
  }

  body[data-home-page] #proyectos .project-grid,
  body[data-home-page] .testimonials .quote-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    overflow:visible!important;
    gap:.95rem!important;
    padding:0!important;
  }
  body[data-home-page] #proyectos .project-card,
  body[data-home-page] .testimonials .quote-card{
    flex:none!important;
    scroll-snap-align:none!important;
  }
  body[data-home-page] .filters{
    display:flex!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    overflow-x:auto!important;
    gap:.48rem!important;
    margin-inline:-.625rem!important;
    padding:.05rem .625rem .5rem!important;
  }
  body[data-home-page] .filters::-webkit-scrollbar{
    display:none;
  }
  body[data-home-page] .filter{
    flex:0 0 auto!important;
    font-size:.76rem!important;
  }
  body[data-home-page] .project-card__body{
    min-height:auto!important;
  }

  body[data-home-page] #contacto .contact__inner{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:1.15rem!important;
  }
  body[data-home-page] .contact-action,
  body[data-home-page] .contact__list a{
    overflow-wrap:anywhere;
  }
  body[data-home-page] .footer{
    padding-top:2.7rem!important;
  }
  body[data-home-page] .footer__inner{
    gap:1.6rem!important;
  }
}

@media(min-width:520px) and (max-width:760px){
  body[data-home-page] .svc-tiles{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body[data-home-page] .svc-tile{
    min-height:168px!important;
  }
}

@media(max-width:390px){
  body[data-home-page] .hero__title{
    font-size:clamp(1.9rem,10.7vw,2.42rem)!important;
  }
  body[data-home-page] .hero__lead{
    font-size:.88rem!important;
  }
  body[data-home-page] .combo__stats .stat b{
    font-size:clamp(1.46rem,7.7vw,1.95rem)!important;
  }
  body[data-home-page] .identity-qa__tab{
    flex-basis:72%!important;
  }
  body[data-home-page] .video-tile{
    flex-basis:126px!important;
  }
}
/* ============================================================
   HOME mobile reel mode
   Full-screen mobile panels without touching desktop.
   ============================================================ */
@media(max-width:760px){
  html.home-page{
    scroll-snap-type:y mandatory!important;
    scroll-padding-top:0!important;
  }
  html.home-page.is-scene-jumping{
    scroll-snap-type:y mandatory!important;
  }
  html.home-page,
  html.home-page body{
    overscroll-behavior-y:contain;
  }
  body[data-home-page] main>section,
  body[data-home-page] main>section.is-scene,
  body[data-home-page] #proyectos,
  body[data-home-page] .testimonials,
  body[data-home-page] #contacto{
    height:100svh!important;
    min-height:100svh!important;
    max-height:100svh!important;
    overflow:hidden!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
    display:grid!important;
    align-items:center!important;
    padding:4.25rem 0 1rem!important;
  }
  body[data-home-page] .footer{
    min-height:100svh!important;
    scroll-snap-align:start!important;
    padding:3.8rem 0 1rem!important;
    overflow:hidden!important;
  }
  body[data-home-page] main>section>.container,
  body[data-home-page] main>section.is-scene>.container,
  body[data-home-page] .video-showcase__inner,
  body[data-home-page] #contacto .contact__inner,
  body[data-home-page] .footer__inner{
    width:min(100% - 1.25rem,var(--container))!important;
    max-width:var(--container)!important;
    max-height:calc(100svh - 5.25rem)!important;
    overflow:hidden!important;
    margin-inline:auto!important;
  }

  body[data-home-page] .hero,
  body[data-home-page] .hero.is-scene{
    padding:0!important;
    display:flex!important;
    min-height:100svh!important;
  }
  body[data-home-page] .hero__content{
    max-height:none!important;
    overflow:visible!important;
    padding:5.4rem 0 2rem!important;
  }

  body[data-home-page] .combo__inner{
    height:calc(100svh - 5.35rem)!important;
    max-height:calc(100svh - 5.35rem)!important;
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr)!important;
    gap:.72rem!important;
  }
  body[data-home-page] .combo__stats.stats__grid{
    flex:none!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:0!important;
    padding:0 0 .58rem!important;
  }
  body[data-home-page] .combo__stats .stat{
    padding:.15rem .2rem!important;
  }
  body[data-home-page] .combo__stats .stat b{
    font-size:clamp(1.08rem,5vw,1.52rem)!important;
  }
  body[data-home-page] .combo__stats .stat b.stat__places{
    font-size:clamp(.72rem,3.8vw,1rem)!important;
  }
  body[data-home-page] .combo__stats .stat span{
    font-size:.49rem!important;
    letter-spacing:.04em!important;
  }
  body[data-home-page] .combo__head{
    min-height:0!important;
  }
  body[data-home-page] .combo__head .eyebrow{
    margin-bottom:.22rem!important;
  }
  body[data-home-page] .combo__head h2{
    font-size:clamp(1.34rem,6.4vw,1.72rem)!important;
  }
  body[data-home-page] .svc-tiles{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:1fr!important;
    overflow:visible!important;
    gap:.5rem!important;
    padding:0!important;
    scroll-snap-type:none!important;
  }
  body[data-home-page] .svc-tile{
    flex:none!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    scroll-snap-align:none!important;
  }
  body[data-home-page] .svc-tile__img{
    filter:brightness(.5) saturate(.92)!important;
  }
  body[data-home-page] .svc-tile__body{
    padding:.6rem .62rem!important;
    justify-content:center!important;
    text-align:center!important;
    align-items:center!important;
  }
  body[data-home-page] .svc-tile__icon{
    width:30px!important;
    height:30px!important;
    border-radius:8px!important;
    margin-bottom:.32rem!important;
  }
  body[data-home-page] .svc-tile h3{
    font-size:.82rem!important;
    line-height:1.16!important;
  }
  body[data-home-page] .svc-tile p{
    display:none!important;
  }

  body[data-home-page] .reel{
    padding:2.5rem 0 1.1rem!important;
    justify-content:center!important;
    gap:1rem!important;
  }
  body[data-home-page] .reel__heading{
    order:0;
  }
  body[data-home-page] .reel__heading p.reel__sub{
    display:block!important;
    max-width:30ch!important;
  }
  body[data-home-page] .reel__strip{
    height:clamp(158px,26svh,220px);
    flex:none;
  }
  body[data-home-page] .reel-item,
  body[data-home-page] .reel-item:hover{
    width:clamp(228px,62vw,268px)!important;
    height:clamp(158px,26svh,220px)!important;
  }

  body[data-home-page] #autoconsumo{
    align-items:start!important;
    padding-top:calc(var(--mobile-header-h) + 1rem)!important;
    padding-bottom:.9rem!important;
  }
  body[data-home-page] .autoconsumo .two-col{
    height:calc(100svh - var(--mobile-header-h) - 2.2rem)!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    gap:.7rem!important;
  }
  body[data-home-page] .autoconsumo .two-col__text{
    min-height:0!important;
    overflow:hidden!important;
  }
  body[data-home-page] .autoconsumo .two-col__text>p:not(.eyebrow){
    display:block!important;
    font-size:.82rem!important;
    line-height:1.38!important;
    margin-bottom:.62rem!important;
  }
  body[data-home-page] .identity-panel h2{
    font-size:clamp(1.25rem,6.1vw,1.64rem)!important;
    line-height:1.06!important;
    margin-bottom:.45rem!important;
  }
  body[data-home-page] .identity-qa{
    margin-top:.7rem!important;
  }
  body[data-home-page] .identity-qa__tabs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
    gap:1px!important;
  }
  body[data-home-page] .identity-qa__tab{
    flex:none!important;
    flex-basis:auto!important;
    font-size:.66rem!important;
    line-height:1.14!important;
    padding:.62rem .5rem!important;
    text-align:center!important;
    white-space:normal!important;
  }
  body[data-home-page] .identity-qa__answers{
    min-height:166px!important;
  }
  body[data-home-page] .identity-qa__answer h3{
    font-size:.94rem!important;
    margin-bottom:.38rem!important;
  }
  body[data-home-page] .identity-qa__answer p{
    font-size:.78rem!important;
    line-height:1.36!important;
  }
  body[data-home-page] .autoconsumo .two-col__media{
    min-height:0!important;
  }
  body[data-home-page] .autoconsumo .two-col__media img{
    height:100%!important;
    max-height:24svh!important;
    object-fit:cover!important;
  }
  body[data-home-page] .autoconsumo .btn-row,
  body[data-home-page] .floating-chips{
    display:none!important;
  }

  body[data-home-page] .video-showcase__inner{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    height:calc(100svh - 5.25rem)!important;
    gap:.72rem!important;
  }
  body[data-home-page] .video-showcase__copy{
    min-height:0!important;
  }
  body[data-home-page] .video-showcase__copy h2{
    font-size:clamp(1.25rem,6.2vw,1.64rem)!important;
    margin-bottom:.4rem!important;
  }
  body[data-home-page] .video-showcase__copy p:not(.eyebrow){
    font-size:.8rem!important;
    line-height:1.36!important;
    margin-bottom:.48rem!important;
  }
  body[data-home-page] .video-showcase__facts{
    display:none!important;
  }
  body[data-home-page] .video-showcase__stage,
  body[data-home-page] main>section.is-scene .video-showcase__stage{
    height:100%!important;
    max-height:none!important;
    aspect-ratio:auto!important;
  }
  body[data-home-page] .video-showcase__rail{
    flex:none!important;
    max-height:none!important;
  }

  body[data-home-page] #proyectos>.container,
  body[data-home-page] .testimonials>.container{
    height:calc(100svh - 5.25rem)!important;
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
    gap:.62rem!important;
    align-content:stretch!important;
  }
  body[data-home-page] #proyectos .section-head,
  body[data-home-page] .testimonials .section-head{
    margin-bottom:0!important;
  }
  body[data-home-page] #proyectos .section-head h2,
  body[data-home-page] .testimonials .section-head h2{
    font-size:clamp(1.35rem,6.8vw,1.76rem)!important;
    margin-bottom:.28rem!important;
  }
  body[data-home-page] #proyectos .section-lead{
    font-size:.8rem!important;
    line-height:1.34!important;
    max-width:32ch!important;
    margin-bottom:0!important;
  }
  body[data-home-page] #proyectos .project-grid,
  body[data-home-page] .testimonials .quote-grid{
    display:flex!important;
    grid-template-columns:none!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    gap:.75rem!important;
    padding:.06rem .08rem .45rem!important;
    scroll-snap-type:x mandatory!important;
    -webkit-overflow-scrolling:touch;
  }
  body[data-home-page] #proyectos .project-grid::-webkit-scrollbar,
  body[data-home-page] .testimonials .quote-grid::-webkit-scrollbar{
    display:none;
  }
  body[data-home-page] #proyectos .project-card{
    flex:0 0 min(82vw,330px)!important;
    height:100%!important;
    scroll-snap-align:center!important;
    display:grid!important;
    /* El cuerpo dicta su altura (nombre siempre visible); la foto absorbe el resto */
    grid-template-rows:minmax(0,1fr) auto!important;
  }
  body[data-home-page] #proyectos .project-card__media{
    aspect-ratio:auto!important;
    height:100%!important;
    min-height:64px!important;
  }
  body[data-home-page] #proyectos .project-card__body{
    overflow:hidden!important;
    padding:.7rem .82rem .78rem!important;
  }
  body[data-home-page] #proyectos .project-card h3{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
  }
  body[data-home-page] #proyectos .project-card__loc{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    min-height:0!important;
  }
  body[data-home-page] #proyectos .project-card__brief{
    -webkit-line-clamp:2!important;
  }
  body[data-home-page] .projects__more{
    margin-top:0!important;
  }
  body[data-home-page] .projects__more .btn{
    width:auto!important;
    min-width:min(100%,210px)!important;
  }
  body[data-home-page] .testimonials .quote-card{
    flex:0 0 min(82vw,330px)!important;
    height:100%!important;
    scroll-snap-align:center!important;
    overflow:hidden!important;
  }

  body[data-home-page] #contacto .contact__inner{
    height:calc(100svh - 5.25rem)!important;
    max-height:calc(100svh - 5.25rem)!important;
    overflow:hidden!important;
    align-content:center!important;
  }
  body[data-home-page] .contact__text h2{
    font-size:clamp(1.42rem,7vw,1.86rem)!important;
  }
  body[data-home-page] .contact__text p{
    font-size:.84rem!important;
    line-height:1.42!important;
  }
  body[data-home-page] .contact-action{
    padding:.78rem!important;
  }
  body[data-home-page] .contact-action strong{
    font-size:1.02rem!important;
  }
}

@media(max-width:760px) and (max-height:720px){
  body[data-home-page] main>section,
  body[data-home-page] main>section.is-scene,
  body[data-home-page] #proyectos,
  body[data-home-page] .testimonials,
  body[data-home-page] #contacto{
    padding-top:3.75rem!important;
    padding-bottom:.65rem!important;
  }
  body[data-home-page] .hero__content{
    padding-top:4.8rem!important;
    padding-bottom:1.4rem!important;
  }
  body[data-home-page] .hero__title{
    font-size:clamp(1.76rem,9.4vw,2.28rem)!important;
  }
  body[data-home-page] .hero__lead{
    font-size:.82rem!important;
    line-height:1.38!important;
  }
  body[data-home-page] .combo__inner,
  body[data-home-page] .autoconsumo .two-col,
  body[data-home-page] .video-showcase__inner,
  body[data-home-page] #proyectos>.container,
  body[data-home-page] .testimonials>.container,
  body[data-home-page] #contacto .contact__inner{
    height:calc(100svh - 4.4rem)!important;
    max-height:calc(100svh - 4.4rem)!important;
  }
  body[data-home-page] .svc-tile p,
  body[data-home-page] .video-showcase__copy p:not(.eyebrow),
  body[data-home-page] .identity-qa__answer p{
    font-size:.72rem!important;
    line-height:1.28!important;
  }
  body[data-home-page] .identity-qa__answers{
    min-height:150px!important;
  }
  body[data-home-page] .autoconsumo .two-col__media img{
    max-height:18svh!important;
  }
  body[data-home-page] .video-showcase__caption p{
    display:none!important;
  }
  body[data-home-page] .contact__list{
    display:none!important;
  }
}
/* Mobile reel QA fixes: no reveal displacement, footer flows normally. */
@media(max-width:760px){
  body[data-home-page] .reveal{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  body[data-home-page] .footer{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
    padding:2.6rem 0 0!important;
  }
  body[data-home-page] .footer__inner{
    max-height:none!important;
    overflow:visible!important;
    gap:1.25rem!important;
  }
  body[data-home-page] .footer__logo{
    width:118px!important;
    margin-bottom:.7rem!important;
  }
  body[data-home-page] .footer p,
  body[data-home-page] .footer li{
    font-size:.86rem!important;
    line-height:1.45!important;
  }
  body[data-home-page] .footer__bottom{
    margin-top:1.4rem!important;
    padding:.85rem 0!important;
  }
}
/* Footer is the last mobile snap panel after compaction. */
@media(max-width:760px){
  body[data-home-page] .footer{
    height:100svh!important;
    min-height:100svh!important;
    max-height:100svh!important;
    display:grid!important;
    align-content:center!important;
    overflow:hidden!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:normal!important;
    padding:2.6rem 0 0!important;
  }
}
/* Mobile nav: compact tab selector instead of the old side drawer. */
@media(max-width:760px){
  body[data-home-page] .nav{
    position:fixed!important;
    top:4.15rem!important;
    left:.65rem!important;
    right:.65rem!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    gap:.45rem!important;
    padding:.62rem!important;
    border-radius:16px!important;
    background:rgba(6,16,24,.94)!important;
    border:1px solid rgba(255,255,255,.14)!important;
    box-shadow:0 22px 62px -30px rgba(0,0,0,.9)!important;
    backdrop-filter:blur(14px)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-8px) scale(.985)!important;
    transform-origin:top center!important;
    transition:opacity .22s var(--ease), transform .22s var(--ease), visibility .22s!important;
    z-index:1180!important;
    overflow:hidden!important;
  }
  body[data-home-page] .nav.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  body[data-home-page] .nav__link{
    width:100%!important;
    min-height:46px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    margin:0!important;
    padding:.78rem .92rem!important;
    border-radius:12px!important;
    color:#fff!important;
    background:rgba(255,255,255,.07)!important;
    border:1px solid rgba(255,255,255,.1)!important;
    font-size:.95rem!important;
    line-height:1.1!important;
  }
  body[data-home-page] .nav__link::after{
    content:"";
    width:.42rem;
    height:.42rem;
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    transform:rotate(45deg);
    opacity:.62;
  }
  body[data-home-page] .nav__link.is-active{
    color:var(--ink)!important;
    background:var(--yellow)!important;
    border-color:var(--yellow)!important;
  }
  body[data-home-page] .nav__cta{
    color:var(--ink)!important;
    background:linear-gradient(135deg,var(--yellow),#ffd95c)!important;
    border-color:rgba(246,192,22,.9)!important;
  }
  body[data-home-page] .nav-toggle{
    position:relative!important;
    z-index:1201!important;
  }
  body[data-home-page] .nav-toggle[aria-expanded="true"]{
    position:relative!important;
    top:auto!important;
    right:auto!important;
    background:rgba(6,16,24,.78)!important;
    box-shadow:0 12px 30px -20px rgba(0,0,0,.8)!important;
  }
  body[data-home-page] .nav-toggle[aria-expanded="true"] span{
    background:#fff!important;
  }
}
/* Mobile touch fix: make main the explicit vertical snap scroller. */
@media(max-width:760px){
  html.home-page,
  html.home-page body{
    height:100%;
    overflow:hidden!important;
    overscroll-behavior-y:auto!important;
  }
  body[data-home-page] main{
    height:100svh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scroll-snap-type:y mandatory!important;
    scroll-behavior:smooth!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-y!important;
  }
  body[data-home-page] main>section,
  body[data-home-page] main>section *,
  body[data-home-page] .footer,
  body[data-home-page] .footer *{
    touch-action:pan-y!important;
  }
  body[data-home-page] .svc-tiles,
  body[data-home-page] #proyectos .project-grid,
  body[data-home-page] .testimonials .quote-grid,
  body[data-home-page] .video-showcase__rail{
    touch-action:pan-x pan-y!important;
    overscroll-behavior-x:auto!important;
  }
  body[data-home-page] .footer{
    scroll-snap-align:start!important;
  }
}
/* Mobile Reels: one-finger full-screen panels, document-level scroll. */
@media (max-width:760px){
  html.home-page,
  html.home-page body{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
  }
  html.home-page{
    scroll-snap-type:y mandatory!important;
    scroll-padding-top:0!important;
    scroll-behavior:auto!important;
  }
  html.home-page.is-mobile-reel-jumping{
    scroll-snap-type:y mandatory!important;
  }
  body[data-home-page] main{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
    -webkit-overflow-scrolling:auto!important;
    touch-action:auto!important;
  }
  body[data-home-page] main>section,
  body[data-home-page] main>section.is-scene,
  body[data-home-page] #proyectos,
  body[data-home-page] .testimonials,
  body[data-home-page] #contacto,
  body[data-home-page] .footer{
    height:100svh!important;
    min-height:100svh!important;
    max-height:100svh!important;
    overflow:hidden!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
    overscroll-behavior-y:contain!important;
    touch-action:auto!important;
  }
  body[data-home-page] main>section *,
  body[data-home-page] .footer *{
    touch-action:auto!important;
  }
  body[data-home-page] #proyectos .project-grid,
  body[data-home-page] .testimonials .quote-grid,
  body[data-home-page] .video-showcase__rail,
  body[data-home-page] .filters{
    touch-action:pan-x!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body[data-home-page] #proyectos .project-grid *,
  body[data-home-page] .testimonials .quote-grid *,
  body[data-home-page] .video-showcase__rail *,
  body[data-home-page] .filters *{
    touch-action:pan-x!important;
  }
}
/* Mobile Reels header-safe viewport: panels start below the fixed top bar. */
@media (max-width:760px){
  html.home-page{
    --mobile-header-h:64px;
    --mobile-vh:100dvh;
    --mobile-panel-pad-top:clamp(.72rem,2svh,1.05rem);
    --mobile-panel-pad-bottom:clamp(.72rem,2svh,1.05rem);
    /* dvh = alto visible REAL del movil (sigue a la barra de URL al colapsarse);
       svh queda como respaldo para navegadores sin soporte dvh */
    --mobile-panel-h:calc(100svh - var(--mobile-header-h));
    --mobile-panel-h:calc(100dvh - var(--mobile-header-h));
    --mobile-panel-h:calc(var(--mobile-vh, 100dvh) - var(--mobile-header-h));
    --mobile-panel-inner-h:calc(var(--mobile-panel-h) - var(--mobile-panel-pad-top) - var(--mobile-panel-pad-bottom));
    scroll-padding-top:var(--mobile-header-h)!important;
  }
  body[data-home-page] .header,
  body[data-home-page] .header.is-stuck{
    background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(14px)!important;
    box-shadow:0 8px 28px -20px rgba(15,38,56,.55)!important;
  }
  body[data-home-page] .header__inner,
  body[data-home-page] .header.is-stuck .header__inner{
    padding:.55rem 0!important;
  }
  body[data-home-page] .brand__logo,
  body[data-home-page] .header.is-stuck .brand__logo{
    width:92px!important;
    padding:4px 8px!important;
  }
  body[data-home-page] .nav-toggle,
  body[data-home-page] .header.is-stuck .nav-toggle{
    width:38px!important;
    height:38px!important;
    background:rgba(15,38,56,.08)!important;
  }
  body[data-home-page] .nav-toggle span,
  body[data-home-page] .header.is-stuck .nav-toggle span{
    background:var(--ink)!important;
  }
  body[data-home-page] .nav-toggle[aria-expanded="true"] span{
    background:#fff!important;
  }
  body[data-home-page] .nav{
    top:calc(var(--mobile-header-h) + .45rem)!important;
  }
  body[data-home-page] main{
    padding-top:var(--mobile-header-h)!important;
  }
  body[data-home-page] main>section,
  body[data-home-page] main>section.is-scene,
  body[data-home-page] #proyectos,
  body[data-home-page] .testimonials,
  body[data-home-page] #contacto,
  body[data-home-page] .footer{
    height:var(--mobile-panel-h)!important;
    min-height:var(--mobile-panel-h)!important;
    max-height:var(--mobile-panel-h)!important;
    scroll-margin-top:0!important;
    padding:var(--mobile-panel-pad-top) 0 var(--mobile-panel-pad-bottom)!important;
  }
  body[data-home-page] .hero,
  body[data-home-page] .hero.is-scene{
    height:var(--mobile-panel-h)!important;
    min-height:var(--mobile-panel-h)!important;
    max-height:var(--mobile-panel-h)!important;
    padding:0!important;
  }
  body[data-home-page] main>section>.container,
  body[data-home-page] main>section.is-scene>.container,
  body[data-home-page] .video-showcase__inner,
  body[data-home-page] #contacto .contact__inner,
  body[data-home-page] .footer__inner{
    max-height:var(--mobile-panel-inner-h)!important;
  }
  body[data-home-page] .hero__content{
    padding:var(--mobile-panel-pad-top) 0 calc(var(--mobile-panel-pad-bottom) + 1.35rem)!important;
  }
  body[data-home-page] .combo__inner,
  body[data-home-page] .autoconsumo .two-col,
  body[data-home-page] .video-showcase__inner,
  body[data-home-page] #proyectos>.container,
  body[data-home-page] .testimonials>.container,
  body[data-home-page] #contacto .contact__inner{
    height:var(--mobile-panel-inner-h)!important;
    max-height:var(--mobile-panel-inner-h)!important;
  }
  body[data-home-page] .reel{
    padding:var(--mobile-panel-pad-top) 0 var(--mobile-panel-pad-bottom)!important;
  }
  body[data-home-page] .footer{
    padding:var(--mobile-panel-pad-top) 0 0!important;
  }
}
@media (max-width:760px) and (max-height:720px){
  html.home-page{
    --mobile-panel-pad-top:.55rem;
    --mobile-panel-pad-bottom:.55rem;
  }
}
/* Mobile Reels header-safe alignment: use the reserved viewport without bottom clipping. */
@media (max-width:760px){
  body[data-home-page] main>section:not(.hero),
  body[data-home-page] main>section.is-scene:not(.hero),
  body[data-home-page] #proyectos,
  body[data-home-page] .testimonials,
  body[data-home-page] #contacto{
    display:grid!important;
    align-items:stretch!important;
    align-content:center!important;
  }
  body[data-home-page] .footer{
    display:grid!important;
    align-items:center!important;
    align-content:center!important;
  }
}

/* Mobile header breathing room and References one-finger reel mode. */
@media (max-width:760px){
  html.home-page{
    --mobile-panel-pad-top:clamp(1.65rem,3.8svh,2rem);
  }

  html.refs-page{
    --refs-header-h:72px;
    --refs-panel-pad-top:clamp(1rem,2.5svh,1.35rem);
    --refs-panel-pad-bottom:clamp(1rem,2.5svh,1.35rem);
    --refs-panel-h:calc(100svh - var(--refs-header-h));
    --refs-panel-h:calc(100dvh - var(--refs-header-h));
    scroll-snap-type:y mandatory!important;
    scroll-padding-top:var(--refs-header-h)!important;
    scroll-behavior:auto!important;
  }
  html.refs-page.is-scene-jumping{
    scroll-snap-type:y mandatory!important;
  }
  body[data-refs-page]{
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
  }
  body[data-refs-page] .header,
  body[data-refs-page] .header.is-stuck{
    background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(14px)!important;
    box-shadow:0 8px 28px -20px rgba(15,38,56,.55)!important;
  }
  body[data-refs-page] .header__inner,
  body[data-refs-page] .header.is-stuck .header__inner{
    padding:.55rem 0!important;
  }
  body[data-refs-page] .brand__logo,
  body[data-refs-page] .header.is-stuck .brand__logo{
    width:92px!important;
    padding:4px 8px!important;
  }
  body[data-refs-page] .nav-toggle,
  body[data-refs-page] .header.is-stuck .nav-toggle{
    width:38px!important;
    height:38px!important;
    background:rgba(15,38,56,.08)!important;
  }
  body[data-refs-page] .nav-toggle span,
  body[data-refs-page] .header.is-stuck .nav-toggle span{
    background:var(--ink)!important;
  }
  body[data-refs-page] .nav-toggle[aria-expanded="true"] span{
    background:#fff!important;
  }
  body[data-refs-page] .nav{
    top:calc(var(--refs-header-h) + .45rem)!important;
  }
  body[data-refs-page] .rs-main{
    padding-top:var(--refs-header-h)!important;
  }
  body[data-refs-page] .rs{
    height:var(--refs-panel-h)!important;
    min-height:var(--refs-panel-h)!important;
    max-height:var(--refs-panel-h)!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
  body[data-refs-page] .rs__body{
    padding-top:var(--refs-panel-pad-top)!important;
    padding-bottom:var(--refs-panel-pad-bottom)!important;
  }
  body[data-refs-page] .rs__body--center{
    padding-block:var(--refs-panel-pad-top) var(--refs-panel-pad-bottom)!important;
  }
  body[data-refs-page] .rs__docwrap{
    padding:var(--refs-panel-pad-top) 5vw .35rem!important;
  }
  body[data-refs-page] .rs__docwrap img{
    max-height:min(44svh,360px)!important;
  }
  body[data-refs-page] .rs__docmeta{
    padding:0 6vw var(--refs-panel-pad-bottom)!important;
  }
  body[data-refs-page] .rs-counter{
    bottom:calc(.72rem + env(safe-area-inset-bottom))!important;
  }
}

@media (max-width:760px) and (max-height:720px){
  html.home-page{
    --mobile-panel-pad-top:1.1rem;
  }
  html.refs-page{
    --refs-panel-pad-top:.75rem;
    --refs-panel-pad-bottom:.75rem;
  }
  body[data-refs-page] .rs__docwrap img{
    max-height:38svh!important;
  }
}

/* References mobile nav parity: the three options stay visible and tappable. */
@media (max-width:760px){
  body[data-refs-page] .nav{
    position:fixed!important;
    top:calc(var(--refs-header-h) + .45rem)!important;
    left:.65rem!important;
    right:.65rem!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    gap:.45rem!important;
    padding:.62rem!important;
    border-radius:16px!important;
    background:rgba(6,16,24,.94)!important;
    border:1px solid rgba(255,255,255,.14)!important;
    box-shadow:0 22px 62px -30px rgba(0,0,0,.9)!important;
    backdrop-filter:blur(14px)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-8px) scale(.985)!important;
    transform-origin:top center!important;
    transition:opacity .22s var(--ease), transform .22s var(--ease), visibility .22s!important;
    z-index:1180!important;
    overflow:visible!important;
  }
  body[data-refs-page] .nav.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  body[data-refs-page] .nav__link{
    width:100%!important;
    min-height:46px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    margin:0!important;
    padding:.78rem .92rem!important;
    border-radius:12px!important;
    color:#fff!important;
    background:rgba(255,255,255,.07)!important;
    border:1px solid rgba(255,255,255,.1)!important;
    font-size:.95rem!important;
    line-height:1.1!important;
    white-space:normal!important;
  }
  body[data-refs-page] .nav__link::after{
    content:"";
    flex:0 0 auto;
    width:.42rem;
    height:.42rem;
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    transform:rotate(45deg);
    opacity:.62;
    margin-left:.85rem;
  }
  body[data-refs-page] .nav__link.is-active{
    color:var(--ink)!important;
    background:var(--yellow)!important;
    border-color:var(--yellow)!important;
  }
  body[data-refs-page] .nav__cta{
    color:var(--ink)!important;
    background:linear-gradient(135deg,var(--yellow),#ffd95c)!important;
    border-color:rgba(246,192,22,.9)!important;
  }
  body[data-refs-page] .nav-toggle{
    position:relative!important;
    z-index:1201!important;
  }
  body[data-refs-page] .nav-toggle[aria-expanded="false"] span{
    opacity:1!important;
    transform:none!important;
  }
  body[data-refs-page] .nav-toggle[aria-expanded="true"]{
    position:relative!important;
    top:auto!important;
    right:auto!important;
    background:rgba(6,16,24,.78)!important;
    box-shadow:0 12px 30px -20px rgba(0,0,0,.8)!important;
  }
  body[data-refs-page] .nav-toggle[aria-expanded="true"] span{
    background:#fff!important;
  }
}

@media (max-width:760px){
  body[data-refs-page] .nav-toggle[aria-expanded="false"] span:nth-child(1),
  body[data-refs-page] .nav-toggle[aria-expanded="false"] span:nth-child(2),
  body[data-refs-page] .nav-toggle[aria-expanded="false"] span:nth-child(3){
    opacity:1!important;
    transform:none!important;
    background:var(--ink)!important;
  }
  body[data-refs-page] .nav-toggle[aria-expanded="true"] span:nth-child(1){
    opacity:1!important;
    transform:translateY(7px) rotate(45deg)!important;
    background:#fff!important;
  }
  body[data-refs-page] .nav-toggle[aria-expanded="true"] span:nth-child(2){
    opacity:0!important;
    transform:none!important;
    background:#fff!important;
  }
  body[data-refs-page] .nav-toggle[aria-expanded="true"] span:nth-child(3){
    opacity:1!important;
    transform:translateY(-7px) rotate(-45deg)!important;
    background:#fff!important;
  }
}

/* Movil bajo: sin resumen en tarjetas de proyecto para priorizar nombre y foto */
@media(max-width:760px) and (max-height:700px){
  body[data-home-page] #proyectos .project-card__brief{display:none!important}
}
