/* ============================================================
   Energy Telecom — Página de Promociones (estilo Netflix)
   Solo estilos de esta página. Usa las variables de styles.css
   (tema navy monocromático). No reescribe styles.css.
   ============================================================ */

/* ---------- Billboard (hero tipo Netflix) ---------- */
.billboard{
  position:relative;overflow:hidden;background:var(--ink-2);color:var(--text);
  min-height:min(78vh,680px);display:flex;align-items:center;
}
.billboard-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:.55;filter:saturate(105%);
}
.billboard-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(8,20,40,.96) 8%,rgba(8,20,40,.78) 42%,rgba(8,20,40,.32) 72%,rgba(8,20,40,.08) 100%),
    linear-gradient(0deg,var(--ink) 0%,rgba(8,20,40,0) 42%);
}
.billboard-inner{
  position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;
  gap:2rem;align-items:center;padding:6rem 0 4rem;
}
.billboard-copy{max-width:560px}
.billboard-copy h1{font-size:clamp(2.2rem,4.6vw,3.4rem);margin:.2rem 0 1.1rem}
.billboard-copy p{font-size:1.08rem;color:#c3d5ec;max-width:46ch;margin:0 0 1.8rem}
.billboard-mascot{display:flex;justify-content:center;align-items:flex-end;height:100%}
.billboard-mascot img{
  height:clamp(300px,34vw,460px);width:auto;
  filter:drop-shadow(0 30px 40px rgba(4,10,24,.55));
}

/* ---------- Filas Netflix ---------- */
.promo-rows{padding:3.2rem 0 1rem;background:var(--paper)}
.promo-row{margin-bottom:2.6rem}
.promo-row-head{padding:0 22px;max-width:var(--container);margin:0 auto .9rem;width:100%}
.promo-row-head h2{font-size:clamp(1.25rem,2.2vw,1.55rem)}

.promo-row-viewport{position:relative;max-width:var(--container);margin:0 auto;padding:0 22px}
.promo-track{
  display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x proximity;
  padding:.4rem .1rem 1.1rem;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;
}
.promo-track::-webkit-scrollbar{display:none}

.promo-card{
  position:relative;flex:0 0 auto;width:clamp(150px,20vw,208px);aspect-ratio:2/3;
  border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);
  background:var(--white);padding:0;cursor:pointer;scroll-snap-align:start;
  box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s var(--ease),z-index 0s;
}
.promo-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.promo-card-badge{
  position:absolute;top:.6rem;left:.6rem;background:var(--blue);color:#fff;
  font-family:var(--font-head);font-weight:700;font-size:.66rem;letter-spacing:.06em;
  text-transform:uppercase;padding:.28rem .55rem;border-radius:999px;z-index:2;
  box-shadow:0 6px 16px -6px rgba(47,111,208,.7);
}
.promo-card-overlay{
  position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
  padding:1rem .9rem;
  background:linear-gradient(0deg,rgba(6,14,30,.96) 0%,rgba(6,14,30,.55) 55%,rgba(6,14,30,0) 100%);
  opacity:0;transform:translateY(6px);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.promo-card-overlay h3{font-size:.95rem;color:#fff;margin:0 0 .2rem;line-height:1.25}
.promo-card-overlay p{margin:0;font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sky)}

.promo-card:hover,.promo-card:focus-visible{
  transform:scale(1.08) translateY(-4px);z-index:3;box-shadow:var(--shadow);
  border-color:var(--sky);outline:none;
}
.promo-card:hover img,.promo-card:focus-visible img{transform:scale(1.05)}
.promo-card:hover .promo-card-overlay,.promo-card:focus-visible .promo-card-overlay{opacity:1;transform:none}

.promo-arrow{
  position:absolute;top:0;bottom:1.1rem;width:44px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(90deg,rgba(8,20,40,.85),rgba(8,20,40,0));border:0;color:#fff;font-size:1.8rem;
  cursor:pointer;z-index:4;opacity:0;transition:opacity .25s var(--ease);border-radius:var(--radius-sm) 0 0 var(--radius-sm);
}
.promo-arrow-right{left:auto;right:0;background:linear-gradient(270deg,rgba(8,20,40,.85),rgba(8,20,40,0));border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.promo-row-viewport:hover .promo-arrow,.promo-arrow:focus-visible{opacity:1}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.4rem}
.lightbox[hidden]{display:none}
.lightbox-overlay{position:absolute;inset:0;background:rgba(4,10,24,.82);backdrop-filter:blur(4px);opacity:0;transition:opacity .25s var(--ease)}
.lightbox.is-open .lightbox-overlay{opacity:1}
.lightbox-dialog{
  position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr;gap:0;
  max-width:min(940px,94vw);max-height:90vh;width:100%;
  background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:0 40px 90px -20px rgba(2,6,16,.75);
  opacity:0;transform:translateY(18px) scale(.98);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.lightbox.is-open .lightbox-dialog{opacity:1;transform:none}
.lightbox-media{background:var(--ink);display:flex;align-items:center;justify-content:center;max-height:90vh}
.lightbox-media img{max-height:85vh;max-width:min(52vw,460px);width:auto;height:auto;object-fit:contain;display:block}
.lightbox-info{padding:2rem 2.1rem;display:flex;flex-direction:column;justify-content:center;gap:.7rem;max-width:360px}
.lightbox-badge{
  display:inline-flex;align-self:flex-start;background:var(--blue);color:#fff;font-family:var(--font-head);
  font-weight:700;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .7rem;border-radius:999px;
}
.lightbox-badge[hidden]{display:none}
.lightbox-info h3{font-size:1.5rem;color:#fff}
.lightbox-info p{color:#b3cbe4;margin:0 0 .4rem}
.lightbox-info .btn{align-self:flex-start;margin-top:.4rem}
.lightbox-close{
  position:absolute;top:.9rem;right:.9rem;z-index:2;width:38px;height:38px;border-radius:50%;
  background:rgba(8,20,40,.65);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:1.1rem;
  cursor:pointer;display:grid;place-items:center;transition:background .2s,transform .2s;
}
.lightbox-close:hover{background:rgba(8,20,40,.9);transform:scale(1.06)}
body.lightbox-open{overflow:hidden}

/* ---------- Responsive ---------- */
@media (max-width:940px){
  .billboard-inner{grid-template-columns:1fr;padding:4rem 0 2.2rem;text-align:center}
  .billboard-copy{max-width:100%;margin:0 auto}
  .billboard-copy p{margin-inline:auto}
  .billboard-mascot{order:-1;height:auto}
  .billboard-mascot img{height:clamp(220px,42vw,320px)}
  .lightbox-dialog{grid-template-columns:1fr;max-height:92vh;overflow-y:auto}
  .lightbox-media{max-height:52vh}
  .lightbox-media img{max-width:100%;max-height:50vh}
  .lightbox-info{max-width:100%;padding:1.6rem 1.6rem 2rem}
}
@media (max-width:768px){
  .promo-card{width:clamp(128px,38vw,168px)}
  .promo-arrow{display:none}
}
@media (max-width:480px){
  .billboard{min-height:auto}
  .billboard-inner{padding:3.2rem 0 2rem}
  .promo-rows{padding:2.4rem 0 .6rem}
  .promo-row{margin-bottom:2rem}
}
@media (prefers-reduced-motion:reduce){
  .promo-card,.promo-card img,.promo-card-overlay,.promo-arrow,.lightbox-overlay,.lightbox-dialog{transition:none!important}
}
