/* responsive.css — mobile/tablet overrides for inline-style React layouts.
   Targets [style*="grid-template-columns"] etc. with !important since
   React renders styles inline. */

/* ─── TABLET (≤960px) ────────────────────────────────────────────────── */
@media (max-width: 960px) {
  /* Collapse all multi-column grids → single column */
  [style*="grid-template-columns"]:not([data-keep-grid]) {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* Reduce horizontal padding on sections */
  section {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Tighten huge top/bottom paddings */
  section[style*="padding: 120px"],
  section[style*="padding: 100px"] {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }
  section[style*="padding: 80px"] {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  /* Header padding */
  header > div {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Desktop nav still visible on tablet, hamburger hidden */
  [data-desktop-nav] { display: flex !important; }
  [data-mob-open]    { display: none !important; }
  [data-mob-close]   { display: none !important; }

  /* Footer reflow */
  footer > div > div:first-child {
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
  }

  /* Hero collage hidden on tablet/mobile */
  [data-hero-collage] { display: none !important; }

  /* CTA section padding */
  [style*="padding: 80px 64px"] {
    padding: 48px 32px !important;
  }

  /* Programs side-by-side cards */
  [data-program-row] {
    grid-template-columns: 1fr !important;
  }
  [data-program-row] > [style*="order: 1"],
  [data-program-row] > [style*="order: 2"] {
    order: unset !important;
  }
  [data-program-row] > [data-program-image] {
    min-height: 320px !important;
  }
  [data-program-row] > [data-program-text] {
    padding: 32px !important;
  }

  /* Stats band - stack columns, smaller numbers */
  [data-stats-grid] {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }
  [data-stats-grid] > div > div:first-child {
    font-size: 56px !important;
  }

  /* Matricula sticky aside no longer sticky */
  [data-matricula-summary] {
    position: static !important;
  }

  /* Story timeline */
  [data-story-row] {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  [data-story-row] > div:first-child {
    font-size: 24px !important;
  }

  /* FAQ aside non-sticky */
  [data-faq-side] {
    position: static !important;
  }

  /* Hero text sizes */
  h1 { font-size: clamp(40px, 9vw, 64px) !important; }
  h2 { font-size: clamp(32px, 7vw, 48px) !important; }

  /* Ribbon text wrap */
  [data-ribbon] { padding: 8px 16px !important; gap: 8px !important; font-size: 12px !important; }
}

/* ─── MOBILE (≤640px) ────────────────────────────────────────────────── */
@media (max-width: 640px) {
  /* Hide tablets-only secondary text in ribbon */
  [data-ribbon] > span:nth-child(2) { display: none !important; }

  /* Logo wordmark badge tighter */
  header span[data-nav-tag] { display: none !important; }

  /* Hide some hero collage decorations on small */
  [data-hero-collage] [data-collage-chip],
  [data-hero-collage] [data-collage-stat] {
    display: none !important;
  }
  [data-hero-collage] [data-collage-secondary] {
    display: none !important;
  }
  [data-hero-collage] [data-collage-primary] {
    width: 100% !important;
    height: 100% !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
  }

  /* Footer single column */
  footer > div > div:first-child {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    padding-bottom: 32px !important;
  }
  footer > div > div:last-child {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  /* Stats: single column */
  [data-stats-grid] {
    grid-template-columns: 1fr !important;
  }

  /* CTA card padding */
  [data-cta-card] { padding: 32px 24px !important; }

  /* Pillar / testimonial / FAQ cards: tighter padding */
  [data-card] { padding: 24px !important; }

  /* Hero collage smaller */
  [data-hero-collage] { aspect-ratio: 16/9 !important; max-height: 220px; }

  /* Interior page hero images: same treatment */
  [data-hero-img] { aspect-ratio: 16/9 !important; max-height: 220px; }

  /* Logo bar wraps neatly */
  [data-logo-bar] {
    justify-content: center !important;
    gap: 16px !important;
  }
  [data-logo-bar] > span:first-child { width: 100%; text-align: center; margin-bottom: 8px; }

  /* Programs tab pill: scroll horizontally */
  [data-program-tabs] {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    max-width: 100%;
  }

  /* Reduce program detail padding */
  [data-program-detail] { padding: 24px !important; }

  /* Floating tweaks panel: don't overlap CTA on mobile */
  .twk-panel { right: 12px !important; bottom: 12px !important; width: calc(100vw - 24px) !important; max-width: 280px; }

  /* Matricula form pad */
  [data-matricula-form] { padding: 24px !important; }
  [data-matricula-summary] { padding: 24px !important; }

  /* Body text adjustments */
  p { font-size: 16px !important; }

  /* Section header subtitle smaller */
  [data-section-header] p { font-size: 16px !important; }

  /* Button row wrap nicer */
  a[href="#matricula"], a[href*="matricula.html"] { width: auto; }
}

/* ─── PHONE (≤420px) ─────────────────────────────────────────────────── */
@media (max-width: 420px) {
  h1 { font-size: 40px !important; line-height: 1.05 !important; }
  h2 { font-size: 30px !important; }
  section { padding-left: 16px !important; padding-right: 16px !important; }
  [data-legal-hero] { padding-top: 28px !important; padding-bottom: 20px !important; }
  [data-legal-body] { padding-bottom: 48px !important; }
}

/* ─── MOBILE NAV (≤768px) ────────────────────────────────────────────── */
@media (max-width: 768px) {
  [data-desktop-nav] { display: none  !important; }
  [data-mob-open]    { display: flex  !important; }
  [data-mob-close]   { display: flex  !important; }

  /* Tighter header padding */
  header > div {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Backdrop del menú móvil sólo aparece en móvil */
  [data-mob-backdrop] { display: block !important; }
}

/* ─── HEADER MARINO + RIBBON INVERTIDO (tablet y móvil ≤960px) ────────── */
@media (max-width: 960px) {
  /* Header → azul marino */
  header {
    background: #0E3B47 !important;
    backdrop-filter: none !important;
    border-bottom-color: rgba(255,255,255,.08) !important;
  }

  /* Links de nivel superior del nav → blancos */
  [data-desktop-nav] > a,
  [data-desktop-nav] > div > button {
    color: #FFFFFF !important;
  }

  /* Dropdown → marino coherente con el header */
  [data-desktop-nav] > div > div {
    background: #163f50 !important;
    border-color: rgba(255,255,255,.12) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,.3) !important;
  }
  [data-desktop-nav] > div > div a {
    color: #FFFFFF !important;
  }
  /* Subtítulo de edad → blanco con opacidad */
  [data-desktop-nav] > div > div a > div > div:last-child {
    color: rgba(255,255,255,.55) !important;
  }
  /* Línea separadora */
  [data-desktop-nav] > div > div > div {
    background: rgba(255,255,255,.1) !important;
  }

  /* Ribbon → fondo blanco, texto marino */
  [data-ribbon] {
    background: #FFFFFF !important;
    color: #0E3B47 !important;
  }
  [data-ribbon] a {
    color: #0E3B47 !important;
  }
}

/* ─── LEGAL PAGES TABLET+MOBILE (≤960px) ────────────────────────────── */
@media (max-width: 960px) {
  [data-legal-hero] { padding-top: 48px !important; padding-bottom: 36px !important; }
  [data-legal-body] { padding-bottom: 80px !important; }

  /* Evita que los hijos del grid se expandan más allá del viewport */
  [data-legal-grid] > * { min-width: 0 !important; }

  /* Rompe palabras largas (términos legales) para que no provoquen scroll horizontal */
  [data-legal-body] p,
  [data-legal-body] li,
  [data-legal-body] td,
  [data-legal-body] th { overflow-wrap: break-word; word-break: break-word; }

  /* TOC: no sticky en layout de 1 columna — se convierte en tira horizontal */
  [data-legal-toc] {
    position: static !important;
    top: auto !important;
    margin-bottom: 40px !important;
    overflow: hidden !important;
  }
  [data-legal-toc] > div:first-child { display: none !important; }
  [data-legal-toc] ul {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    padding-bottom: 4px !important;
    gap: 6px !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  [data-legal-toc] ul::-webkit-scrollbar { display: none; }
  [data-legal-toc] button {
    white-space: nowrap !important;
    padding: 7px 14px !important;
    font-size: 13px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(0,0,0,.1) !important;
  }
}

/* ─── LEGAL PAGES MOBILE (≤768px) ───────────────────────────────────── */
@media (max-width: 768px) {
  [data-legal-grid] { gap: 0 !important; }
  [data-legal-hero] { padding-top: 40px !important; padding-bottom: 28px !important; }
  [data-legal-body] { padding-top: 40px !important; padding-bottom: 64px !important; }
}
