/* ==========================
   UFresh — Estilos (optimizado móvil + página de subs aparte)
========================== */

/* ====== THEME / COLORS ====== */
:root{
  --blue:#4aa3ff;
  --blue-strong:#1e7fe6;
  --black:#0b0f13;
  --white:#ffffff;

  --text:var(--white);
  --bg:var(--black);
  --card:rgba(255,255,255,.06);
  --card-border:rgba(255,255,255,.12);
  --shadow:rgba(0,0,0,.45);
  --ring:rgba(74,163,255,.22);

  /* Dorado elegante */
  --gold:#c9a227;
  --gold-2:#f1d66a;
  --gold-glow:rgba(201,162,39,.35);
}

@media(prefers-reduced-motion:no-preference){
  :root{ --dur:.6s; --ease:cubic-bezier(.2,.8,.2,1) }
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.45; color:var(--text);
  /* Fondo dinámico */
  background:
    radial-gradient(80vw 80vh at 15% 10%,rgba(74,163,255,.10),transparent 40%),
    radial-gradient(70vw 70vh at 85% 90%,rgba(74,163,255,.08),transparent 50%),
    conic-gradient(from 0deg at 70% -20%, rgba(255,255,255,.05), transparent 40%, rgba(255,255,255,.05)),
    var(--bg);
  background-attachment: fixed, fixed, fixed, fixed;
  animation:bg-move 22s linear infinite;
  transition:background var(--dur), color var(--dur);
}
@keyframes bg-move{
  0%{background-position: 0 0, 0 0, 0 0, 0 0}
  50%{background-position: 2vw -2vh, -1vw 1vh, 1vw -1vh, 0 0}
  100%{background-position: 0 0, 0 0, 0 0, 0 0}
}

.shell{width:100%;max-width:1080px;margin-inline:auto;padding-inline:16px}
.main-shell{padding-top:18px;padding-bottom:24px}

/* ====== HEADER ====== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:linear-gradient(180deg,rgba(0,0,0,.35),transparent);
  backdrop-filter:saturate(1.2) blur(8px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.nav-shell{
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding-block:10px;
}
.brand-logo{display:inline-flex;align-items:center;height:42px;max-width:220px}
.brand-logo img{height:100%;width:auto;display:block;object-fit:contain}

.main-nav{display:flex; gap:8px; align-items:center}
.nav-link{
  padding:10px 14px; border-radius:999px; text-decoration:none; color:var(--text);
  border:1px solid transparent; font-weight:700; letter-spacing:.2px;
  transition:background .2s, transform .2s, border-color .2s;
}
.nav-link:hover{ transform:translateY(-1px); background:rgba(255,255,255,.06); border-color:var(--card-border) }
.nav-link.active{ background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.02)); border-color:var(--card-border) }

.nav-actions{display:flex; align-items:center; gap:10px}
.theme-toggle{
  display:inline-grid; place-items:center; width:40px; height:40px; border-radius:999px;
  background:linear-gradient(180deg,var(--card),rgba(255,255,255,.02));
  border:1px solid var(--card-border); cursor:pointer; transition:transform .15s ease;
}
.theme-toggle:hover{ transform:translateY(-1px) }
.theme-toggle svg{width:20px;height:20px}
.live-btn{white-space:nowrap; padding:10px 16px}

/* ====== CARD ====== */
.card{
  background:linear-gradient(180deg,var(--card),rgba(255,255,255,.02));
  border:1px solid var(--card-border);
  border-radius:28px;
  box-shadow:0 14px 36px var(--shadow);
  padding:clamp(18px,3vw,32px);
  position:relative; overflow:hidden;
  animation:fadeUp var(--dur) var(--ease) both;
}
@keyframes fadeUp{from{opacity:0; transform:translateY(12px)} to{opacity:1; transform:translateY(0)}}

/* TITLES */
h1{text-align:center;margin:8px 0 0;font-size:clamp(22px,3.6vw,34px);font-weight:800;letter-spacing:.3px}
.subtitle{text-align:center;margin:6px 0 24px;opacity:.8;font-size:clamp(13px,2.5vw,15px)}

/* LINKS & BUTTONS */
.links{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:780px){.links{grid-template-columns:1fr 1fr}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:100%;
  padding:18px 24px;border-radius:999px;text-decoration:none;color:var(--text);
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
  border:1px solid var(--card-border);font-weight:700;letter-spacing:.2px;position:relative;overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease, filter .18s ease}
.btn .icon{display:inline-grid;place-items:center;width:24px;height:24px}
.btn svg{width:22px;height:22px;fill:currentColor}
.btn:hover,.btn:focus-visible{transform:translateY(-2px);border-color:var(--blue);
  box-shadow:0 0 0 6px var(--ring),0 10px 22px var(--shadow); filter:saturate(1.05)}
.btn:active{transform:translateY(0) scale(.99)}
.btn.blue{color:#fff;background:linear-gradient(135deg,var(--blue-strong),var(--blue));border-color:transparent}
.span-2{grid-column:1 / -1}
.btn.gold{color:#111;background:linear-gradient(135deg,var(--gold),var(--gold-2));border:none;box-shadow:0 10px 24px var(--gold-glow)}
.btn.gold:hover{box-shadow:0 0 0 6px rgba(201,162,39,.22),0 16px 32px var(--gold-glow);transform:translateY(-3px)}
.btn.subscribe{color:#fff;background:linear-gradient(135deg,var(--blue-strong),var(--blue));border:0}

/* Ripple */
.ripple{position:absolute;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;width:10px;height:10px;
  background:radial-gradient(circle,rgba(255,255,255,.65) 0%,rgba(255,255,255,.25) 35%,rgba(255,255,255,0) 70%);
  animation:ripple .6s ease-out forwards;opacity:.75;mix-blend-mode:screen}
@keyframes ripple{to{width:420px;height:420px;opacity:0}}

/* PAGES */
.page{display:none}
.page.active{display:block; animation:fadeUp var(--dur) var(--ease) both}

/* ====== PÁGINA DE SUBS ====== */
.hero-pricing .hero-title{font-size:clamp(24px,4vw,38px);margin:6px 0 6px; font-weight:900}
.offer-banner{
  display:flex; gap:10px; align-items:center; justify-content:center;
  padding:10px 12px; border-radius:14px; margin:10px auto 16px; width:max-content; max-width:100%;
  background:linear-gradient(180deg,rgba(74,163,255,.14),rgba(74,163,255,.08));
  border:1px solid var(--card-border);
}
.offer-kicker{opacity:.85; font-weight:800}
.offer-label{
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:#111; padding:8px 12px; font-weight:900; border-radius:999px; white-space:nowrap
}
.offer-copy{opacity:.9}

.currency-toggle{
  display:flex; gap:10px; justify-content:center; align-items:center;
  margin:8px auto 16px;
}
.toggle-pill{
  padding:10px 14px; border-radius:999px; border:1px solid var(--card-border);
  background:linear-gradient(180deg,var(--card),rgba(255,255,255,.02)); color:var(--text);
  font-weight:800; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.toggle-pill:hover{ transform:translateY(-1px) }
.toggle-pill.active{
  color:#111; background:linear-gradient(135deg, var(--gold), var(--gold-2)); border-color:transparent;
  box-shadow:0 2px 10px var(--gold-glow)
}

/* Grid de planes */
.plans-grid{
  display:grid; gap:14px;
  grid-template-columns:1fr;
}
@media(min-width:860px){
  .plans-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
.plan-card{
  position:relative;
  display:flex; flex-direction:column; gap:12px;
  padding:22px; border-radius:22px;
  background:linear-gradient(180deg,var(--card),rgba(255,255,255,.02));
  border:1px solid var(--card-border);
}
.plan-card.highlight{outline:2px solid rgba(201,162,39,.5)}
.most-popular{
  position:absolute; top:12px; left:12px;
  background:linear-gradient(135deg, var(--gold), var(--gold-2));
  color:#111; font-weight:900; font-size:12px; border-radius:10px; padding:6px 10px; letter-spacing:.3px;
}
.save-pill{
  position:absolute; top:12px; right:12px;
  background:rgba(255,255,255,.12); border:1px solid var(--card-border);
  font-weight:900; font-size:12px; border-radius:10px; padding:6px 10px; letter-spacing:.2px
}
.plan-name{font-weight:900; font-size:18px; margin:6px 0 2px}
.price-line{display:flex; align-items:flex-end; gap:8px; margin:0 0 2px}
.price{display:inline-flex; align-items:flex-end; gap:6px; font-size:clamp(22px,4.4vw,32px); font-weight:900;
  background:linear-gradient(135deg, var(--gold), var(--gold-2)); color:#111; padding:6px 10px; border-radius:12px}
.price-unit{font-weight:800; font-size:.55em; opacity:.9}
.price-note{margin:0; opacity:.9}
.muted{opacity:.75}
.features{margin:8px 0 0; padding-left:18px; display:grid; gap:8px}
.features li{line-height:1.35}

/* CONTACTO */
.contact-hero{text-align:center;margin:6px 0 16px}
.contact-card{
  position:relative; border-radius:22px; padding:28px; overflow:hidden;
  background:linear-gradient(180deg,var(--card),rgba(255,255,255,.02));
  border:1px solid var(--card-border); box-shadow:0 12px 28px var(--shadow);
}
.contact-glow{
  content:""; position:absolute; inset:-40%; background:radial-gradient(closest-side, rgba(74,163,255,.18), transparent 65%);
  animation:pulse 6s ease-in-out infinite; filter:blur(16px); pointer-events:none;
}
@keyframes pulse{50%{transform:scale(1.06)}}
.contact-content{position:relative; display:grid; gap:10px; text-align:center}
.contact-mail{max-width:320px; margin:0 auto}
.contact-note{opacity:.8; font-size:14px}

/* FOOTER */
.site-copy{margin-top:12px; text-align:center; opacity:.85; font-size:14px}

/* ACCESIBILIDAD */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.btn:focus-visible,.theme-toggle:focus-visible,.nav-link:focus-visible,.toggle-pill:focus-visible,.buy-btn:focus-visible{
  outline:0;box-shadow:0 0 0 6px var(--ring),0 0 0 2px var(--blue) inset
}

/* Anuncio */
.ad-rect{
  margin:28px auto; display:grid; place-items:center;
  min-height:100px; max-width:460px; width:100%;
  border:1px dashed var(--card-border); border-radius:16px;
  background:linear-gradient(180deg,var(--card),rgba(255,255,255,.02))
}
.ad-note{font-size:12px;opacity:.8;text-align:center;margin-top:4px}

/* ====== OPTIMIZACIONES MÓVIL ====== */
@media (max-width: 860px){
  body{
    background-attachment: scroll, scroll, scroll, scroll; /* evita re-paints pesados */
    animation:none;
  }
  .site-header{
    backdrop-filter:none;
    background:rgba(11,15,19,.92); /* más rápido que blur */
  }
  .nav-shell{ flex-wrap:wrap }
  .main-nav{
    width:100%; overflow:auto; gap:8px; padding-bottom:6px;
    -webkit-overflow-scrolling: touch;
  }
  .main-nav::-webkit-scrollbar{ display:none }
  .btn{ padding:14px 16px }
  .card{ border-radius:22px; padding:16px }
}


/* ====== MOST POPULAR (primer plan) ====== */
.plan-card.mp{
  background: linear-gradient(180deg, #1a1f26 0%, #0e1116 100%);
  border:1px solid rgba(247, 180, 77, .6);
  box-shadow: 0 16px 36px rgba(247,180,77,.18), 0 6px 18px rgba(0,0,0,.6);
  padding-top: 38px; /* espacio para la franja superior */
}
.popular-strip{
  position:absolute; left:12px; right:12px; top:-14px;
  background:linear-gradient(180deg, #ffc170, #f4a940);
  color:#111; font-weight:900; letter-spacing:.4px; text-align:center;
  border-radius:12px; padding:8px 12px; border:1px solid rgba(255,255,255,.35);
  box-shadow:0 8px 20px rgba(247,180,77,.35);
  pointer-events:none;
}
.best-pill{
  position:absolute; top:10px; right:12px;
  background: #ff7ea6; color:#111; font-weight:900; border-radius:999px;
  padding:6px 12px; font-size:12px; letter-spacing:.2px; border:1px solid rgba(255,255,255,.45);
}
.plan-card.mp .plan-name{color:#fff}
.plan-card.mp .price{ background:none; color:#fff; font-size:clamp(26px,5vw,36px); padding:0 }
.plan-card.mp .price-unit{ color:rgba(255,255,255,.75) }
.plan-card.mp .price-note{ color:rgba(255,255,255,.9) }
.plan-card.mp .buy-btn{
  background: linear-gradient(180deg, #ffc170, #f4a940);
  color:#111; border:0;
  box-shadow: 0 5px 10px rgba(247,180,77,.35);
}
.plan-card.mp .buy-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 0 0 6px rgba(247,180,77,.22), 0 16px 32px rgba(247,180,77,.35);
}

/* ====== Listas con checks ====== */
.features{ list-style:none; padding-left:0 }
.features li{
  display:flex; gap:10px; align-items:flex-start;
}
.li-check{ width:18px; height:18px; flex:0 0 18px; margin-top:2px; fill:#5ad07a; filter:drop-shadow(0 1px 0 rgba(0,0,0,.35)) }

/* Separación consistente entre cards dentro del main */
.main-shell > .card + .card{ margin-top: 18px }

/* Barra divisora con imagen para bloques de beneficios */
.benefit-divider{
  position:relative; display:grid; place-items:center; 
  height:120px; border-radius:18px; margin:40px 0;
  background: var(--divider-bg, linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02)));
  overflow:hidden; border:1px solid var(--card-border);
}

.benefit-divider::before{
  content:""; position:absolute; inset:0;
  background-image: var(--bg-url, radial-gradient(80% 100% at 50% 50%, rgba(74,163,255,.18), transparent)),
                    var(--divider-bg, linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.15)));
  background-size: cover; background-position:center; filter:saturate(1.05);
}
.benefit-divider span{
  position:relative; z-index:1; font-weight:1000; letter-spacing:.4px; text-transform:uppercase;
  font-size:clamp(16px,3.6vw,24px);
  padding:10px 16px; border-radius:999px;
  background:linear-gradient(135deg, var(--gold), var(--gold-2)); color:#111; border:0;
  box-shadow:0 4px 12px var(--gold-glow);
}

/* Grids para niveles de beneficios */
.benefits-grid{display:grid; gap:14px; grid-template-columns:1fr}
@media(min-width:860px){ .benefits-grid{ grid-template-columns: repeat(3, minmax(0,1fr)); } }

/* Reutilizar tarjeta estilo "mp" pero sin la franja/píldora */
.plan-card.tier{
  background: linear-gradient(180deg, #1a1f26 0%, #0e1116 100%);
  border:1px solid rgba(247,180,77,.4);
  box-shadow: 0 14px 32px rgba(247,180,77,.12), 0 6px 18px rgba(0,0,0,.6);
}
.plan-card.tier .plan-name{color:#fff}
.plan-card.tier .price{ background:none; color:#fff; font-size:clamp(22px,4.6vw,32px); padding:0 }
.plan-card.tier .price-unit{ color:rgba(255,255,255,.75) }
.plan-card.tier .price-note{ color:rgba(255,255,255,.9) }
.plan-card.tier .buy-btn{
  background: linear-gradient(180deg, #ffc170, #f4a940);
  color:#111; border:0;
  box-shadow: 0 10px 24px rgba(247,180,77,.35);
}
.plan-card.tier .buy-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 0 0 6px rgba(247,180,77,.22), 0 16px 32px rgba(247,180,77,.35);
}

/* Full-bleed (ancho total de viewport) para barras de beneficios */
.full-bleed{
  width:100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  border-radius:0; /* que llegue a los bordes */
  height: clamp(120px, 24vw, 220px);
}
.full-bleed::before{
  background-size: cover;
  background-position: center;
}

/* ----- Header móvil centrado ----- */
@media(max-width:640px){
  .nav-shell{
    display:grid;
    grid-template-columns: 1fr;
    justify-items:center;
    gap:10px;
  }
  .brand-logo{ order:1; justify-self:center; height:44px }
  .main-nav{
    order:2; width:100%; justify-content:center; display:flex; flex-wrap:wrap;
    padding-bottom:0; overflow:visible;
  }
  .nav-actions{ order:3; justify-content:center }
  .live-btn{ width:auto }
}

/* --- UFresh patch 2025-09-01: Botones animados + fondos adaptables (Minecraft/Rust) --- */

/* Fallbacks por si no existen estas vars */
:root{
  --ease: cubic-bezier(.2, .7, .2, 1);
  --ring: rgba(59, 130, 246, .15);
}

/* ===== Botones animados global ===== */
.btn{
  position: relative;
  overflow: hidden;
  will-change: transform, filter, box-shadow, background-position;
  background-size: 200% 200%;
  animation: btnGradient 18s var(--ease) infinite;
}

/* Shine en hover (pasada de luz) */
.btn::after{
  content:"";
  position:absolute; inset:-1px;
  border-radius:inherit; pointer-events:none;
  background: linear-gradient(90deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.35) 42%,
      rgba(255,255,255,.75) 50%,
      rgba(255,255,255,.35) 58%,
      rgba(255,255,255,0) 100%
    );
  transform:translateX(-120%);
  transform: translateX(-140%) skewX(-20deg);
  filter: blur(2px);
  mix-blend-mode: screen;
  opacity:.55;
  animation: btnSheenSide 7s linear infinite;
}
.btn:hover::after{ animation: btnShine 1.2s ease }

/* Keyframes del reflejo lateral */
@keyframes btnSheenSide{
  0%   { transform: translateX(-140%) skewX(-20deg) }
  100% { transform: translateX(160%)  skewX(-20deg) }
}

/* Respeta preferencias de reducción de movimiento */
@media (prefers-reduced-motion: reduce){
  .btn::after{ animation: none; opacity: 0 }
}

/* Pulso suave para CTAs destacados */
.btn-animated{
  animation:
    btnPulse 3.6s ease-in-out infinite,
    btnGradient 18s var(--ease) infinite;
}

/* Botón de tema con shine */
.theme-toggle{
  position:relative;
  overflow:hidden;
}
.theme-toggle::after{
  content:"";
  position:absolute; inset:-2px; border-radius:inherit; pointer-events:none;
  background:linear-gradient(120deg, rgba(255,255,255,0) 0%,
                                      rgba(255,255,255,.35) 15%,
                                      rgba(255,255,255,0) 30%);
  transform:translateX(-120%);
}
.theme-toggle:hover::after{ animation: btnShine .9s ease }

/* Micro-interacciones */
.btn:active{ transform: translateY(1px) scale(.995) }

/* Rendimiento móvil: animación más larga (menos gasto) */
@media (max-width: 860px){
  .btn{ animation-duration: 24s }
  .btn-animated{ animation-duration: 24s }
}

/* Respeta accesibilidad 
@media (prefers-reduced-motion: reduce){
  .btn, .btn-animated, .theme-toggle{ animation: none !important }
  .btn::after, .theme-toggle::after{ display:none }
}*/

/* Keyframes */
@keyframes btnGradient{
  0%{background-position: 0% 50%}
  50%{background-position: 100% 50%}
  100%{background-position: 0% 50%}
}
@keyframes btnShine{ to{ transform: translateX(120%) } }
@keyframes btnPulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(74,163,255,0) }
  50%{ box-shadow:0 0 0 10px var(--ring) }
}

/* ===== Fondos adaptables barras Minecraft/Rust ===== */
/* Control fino del encuadre/corte en banners */
.benefit-divider::before{
  background-position: var(--bg-pos, center);
}

/* Helpers de enfoque (opcionales) */
.benefit-divider.focus-top::before     { --bg-pos: 50% 30% }
.benefit-divider.focus-bottom::before  { --bg-pos: 50% 70% }
.benefit-divider.focus-left::before    { --bg-pos: 20% 50% }
.benefit-divider.focus-right::before   { --bg-pos: 80% 50% }

/* Altura más “elástica” en móviles para evitar recortes agresivos */
@media (max-width: 640px){
  .full-bleed{ height: clamp(140px, 42vw, 220px) }
}


/* --- UFresh: Mejora visibilidad del brillo en botones (shimmer continuo) --- */
.btn::after{
  /* activa shimmer por defecto, sutil */
  animation: btnSheen 7s linear infinite;
  opacity: .35;
}
.btn:hover::after{ animation-duration: 1.2s } /* acelera en hover */

/* Keyframes del shimmer continuo */
@keyframes btnSheen{
  0%{ transform: translateX(-130%) }
  100%{ transform: translateX(130%) }
}

/* --- UFresh: Animación FADE sutil en botones (visible en local) --- */
button,
a.btn,
.btn,
.toggle-pill,
.price-cta,
.plan-card .btn,
.cta {
  will-change: filter, transform;
  animation: btnFade 4.2s ease-in-out infinite;
}

/* Keyframes del fade sutil */
@keyframes btnFade {
  0%, 100% { filter: brightness(1); }
  50%      { filter: brightness(1.06); }
}

@media (prefers-reduced-motion: reduce){
  button, a.btn, .btn, .toggle-pill, .price-cta, .plan-card .btn, .cta { animation: none !important }
}


/* --- UFresh: asegurar contexto de pseudo-elementos en .btn --- */
.btn{ position: relative; overflow: hidden; }


/* --- UFresh: reducir sombra en botones dorados --- */
.btn.gold{ box-shadow: 0 2px 10px var(--gold-glow) !important; }
.btn.gold:hover{ box-shadow: 0 0 0 6px rgba(201,162,39,.18), 0 12px 24px var(--gold-glow) !important; }


/* --- UFresh: hover suave para no eclipsar el fade --- */
.btn:hover, .btn:focus-visible{
  filter: saturate(1.05) brightness(1.04);
}

/* === UFresh Elegant Footer === */
.site-footer{
  margin-top:48px;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
  border-top: 1px solid var(--card-border);
}
/* Espaciado vertical + centra el contenido a un ancho cómodo */
.site-footer .container{
  max-width: 1200px;              /* ajusta si quieres más/menos ancho */
  margin-inline: auto;
  padding-block: clamp(20px, 4vw, 36px);
  padding-inline: 0;              /* el padding lateral va en .site-footer */
}

.footer-brand{
  font-weight:1000; letter-spacing:.3px; text-decoration:none;
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.footer-links{ display:flex; flex-wrap:wrap; gap:10px 16px }
.footer-link{
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 12px; border-radius:999px; text-decoration:none;
  color: var(--text-muted, #cbd5e1);
  background: rgba(255,255,255,.03);
  border:1px solid transparent;
  transition: background .2s ease, border-color .2s ease, transform .18s ease, filter .2s ease;
}
.footer-link:hover, .footer-link:focus-visible{
  background: rgba(255,255,255,.06);
  border-color: var(--card-border);
  transform: translateY(-1px);
  filter: saturate(1.05);
}
.footer-copy{
  margin-top:16px; padding-top:12px;
  border-top:1px dashed var(--card-border);
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:13px; color: var(--muted, #9aa4b2);
}
.footer-copy .copy-rights{ opacity:.9 }
@media (max-width: 640px){
  .footer-links{ gap:8px 10px }
  .footer-link{ padding:8px 10px; font-size:14px }
}
/* Padding lateral fluido + safe-area en móviles con notch */
.site-footer{
  /* padding-left/right dinámico; respeta safe-area en iOS */
  padding-left: max(env(safe-area-inset-left), clamp(16px, 5vw, 40px));
  padding-right: max(env(safe-area-inset-right), clamp(16px, 5vw, 40px));
}

/* Gaps y paddings fluidos dentro del footer */
.footer-top,
.footer-copy{
  gap: clamp(10px, 2.5vw, 24px);
}

.footer-links{
  gap: clamp(8px, 2vw, 18px);
}

.footer-link{
  padding: clamp(6px, 1.2vw, 10px) clamp(10px, 2.4vw, 14px);
}

/* Comportamiento responsive */
@media (max-width: 640px){
  .footer-top{
    flex-direction: column;         /* apila marca + enlaces en móvil */
    align-items: stretch;
  }
  .footer-brand{ margin-bottom: 6px }
  .footer-links{ justify-content: flex-start }
  .footer-copy{
    flex-direction: column;         /* copy en varias líneas en móvil */
    align-items: flex-start;
    gap: 8px;
  }
}

/* Logo centrado arriba y botones debajo, en todas las resoluciones */
.footer-top{
  display:flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;

  /* separación fluida entre logo y botones */
  gap: clamp(12px, 2.4vw, 22px);
}

/* Logo centrado con aire alrededor */
.footer-brand{
  display: inline-flex;            /* por si el logo es una imagen */
  align-items: center;
  font-size: clamp(22px, 2.8vw, 32px);
  line-height: 1.1;
  gap: 10px;
  margin-bottom: clamp(8px, 2vw, 18px);  /* separa de los botones */
}

/* Botonera centrada y con gaps fluidos */
.footer-links{
  justify-content: center;           /* centrado real de los botones */
  gap: clamp(8px, 2vw, 18px);        /* separación fluida entre botones */
}

/* Si usas imagen de logo dentro del enlace .footer-brand */
.footer-brand img{
  height: clamp(32px, 4.8vw, 56px); /* antes ~24–36px; ahora un poco más grande */
  width: auto;
}

/* (Opcional) Si usas SVG inline como logo dentro de .footer-brand */
.footer-brand svg{
  height: clamp(30px, 4.2vw, 52px);
  width: auto;
}

/* === Centrado y respiración del contenido principal (todas las páginas) === */
:root{
  --page-max: 1080px; /* ajusta si quieres más/menos ancho */
}

/* Centra el bloque principal y añade padding lateral fluido + safe-area */
main.container{
  max-width: min(var(--page-max), 100%);
  margin-inline: auto !important;
  padding-inline: max(env(safe-area-inset-left), clamp(16px, 4vw, 40px));
}

/* Asegura que la tarjeta legal quede centrada y con buen padding */
main.container .card{
  margin-inline: auto;
  padding: clamp(20px, 3vw, 32px);
}

/*LIVE*/
  .live-header{ display:flex; align-items:center; gap:12px; flex-wrap:wrap }
  .live-badge{ display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px;
    background:rgba(255,255,255,.06); border:1px solid var(--card-border); font-weight:700; }
  .live-dot{ width:10px; height:10px; border-radius:50%; background:#ef4444; box-shadow:0 0 0 6px rgba(239,68,68,.15) }
  .live-badge.online .live-dot{ background:#10b981; box-shadow:0 0 0 6px rgba(16,185,129,.18) }
  .live-grid{ display:grid; grid-template-columns: 1fr min(380px, 32%); gap:16px }
  .embed-card{ border:1px solid var(--card-border); border-radius:18px; overflow:hidden; box-shadow:0 6px 22px rgba(0,0,0,.22) }
  .ratio-16x9{ aspect-ratio:16/9; width:100% }
  .twitch-chat{ height: 100%; min-height: 460px }
  @media (max-width: 1024px){ .live-grid{ grid-template-columns:1fr } .twitch-chat{ min-height: 380px } }
  .section-title{ display:flex; align-items:center; gap:10px }
  .section-title .badge{ padding:4px 8px; border-radius:8px; font-size:12px; background:rgba(255,255,255,.08); border:1px solid var(--card-border) }

/*X.COM*/
/* Namespacing fuerte para evitar choques con tu CSS global */
  #xspot, #xspot * { box-sizing: border-box; }
  #xspot{ position:relative; width:100%; max-width:960px; margin:12px auto; isolation:isolate; }

  /* Visor de alto fijo: la página no crece */
  #xspot .xs-stage{
    --xs-h: clamp(360px, 55vw, 580px); /* ajusta alto del visor */
    position:relative; height:var(--xs-h); overflow:hidden; border-radius:12px;
    background: transparent;
  }

  /* Todas las capas (1 por tweet) superpuestas */
  #xspot .xs-frame{
    position:absolute; inset:0;
    display:flex; justify-content:center; align-items:flex-start;
    opacity:0; z-index:0;
    transition: opacity .55s ease;
    pointer-events:none; /* el marco no captura clicks */
  }
  /* solo la visible */
  #xspot .xs-frame.xs-on{ opacity:1; z-index:2; }

  /* Contenedor del tweet que escalamos para encajar */
  #xspot .xs-inner{ width:560px; transform-origin:top center; will-change:transform; pointer-events:auto; }

  /* Skeleton inicial */
  #xspot .xs-skel{
    position:absolute; inset:0; border-radius:12px;
    background:linear-gradient(90deg, rgba(255,255,255,.06), rgba(255,255,255,.12), rgba(255,255,255,.06));
    animation:xsShim 1.4s linear infinite;
  }
  @keyframes xsShim{0%{background-position:-200% 0}100%{background-position:200% 0}}
  /*X.COM*/