/* ==========================================================================
   Wiva.pro — responsive.css
   Breakpoints checked: 1920 · 1440 · 1024 · 768 · 414 · 390 · 375 · 320
   Loaded after style.css.
   ========================================================================== */

/* ------------------------------------------------- 1920px and wider screens */
@media (min-width: 1600px) {
  :root { --maxw: 1260px; }
  body { font-size: 17.5px; }
}

/* --------------------------------------------------------------- < 1180px */
@media (max-width: 1180px) {
  .nav-list a { padding: 9px 9px; font-size: .9rem; }
}

/* ---------------------------------------------------------------- < 1024px */
@media (max-width: 1024px) {
  :root { --gutter: 20px; }

  /* Nav collapses to a drawer */
  .nav-toggle { display: inline-flex; }

  .nav {
    position: fixed;
    inset: 70px 0 auto 0;
    margin: 0;
    background: var(--pizarra-800);
    border-bottom: 1px solid var(--linea-fuerte);
    box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .9);
    padding: 10px var(--gutter) 22px;
    max-height: calc(100vh - 70px);
    overflow-y: auto;
    display: none;
  }
  .nav.is-open { display: block; }

  .nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-list li { border-bottom: 1px solid var(--linea); }
  .nav-list li:last-child { border-bottom: 0; }
  .nav-list a {
    padding: 15px 4px;
    font-size: 1.02rem;
    border-radius: 0;
    color: var(--on-dark);
  }
  .nav-list a[aria-current="page"] { box-shadow: none; color: var(--celeste); }
  .nav-list a[aria-current="page"]::before { content: "› "; }

  .header-bar { min-height: 70px; }
  .header-tools { margin-left: auto; }
  .btn--header { display: none; }

  .fichas { grid-template-columns: 1fr; gap: 20px; }
  .pasos { grid-template-columns: repeat(2, 1fr); }
  .suscribe-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 34px; }
  .footer-about { grid-column: 1 / -1; }
  .hero-guilloche { background-size: 560px auto; background-position: right -160px top -40px; opacity: .35; }
}

/* ----------------------------------------------------------------- < 768px */
@media (max-width: 768px) {
  body { font-size: 16.5px; }

  .brand-tag { display: none; }
  .brand img { width: 31px; height: 31px; }
  .brand-name { font-size: 1.18rem; }

  .section { padding: 52px 0; }
  .section--tight { padding: 40px 0; }
  .hero { padding: 56px 0 48px; }

  .intro-grid { grid-template-columns: 1fr; gap: 18px; }
  .pasos { grid-template-columns: 1fr; gap: 14px; }
  .reglas { grid-template-columns: 1fr; }

  .form-grid { grid-template-columns: 1fr; }
  .form-foot { flex-direction: column; align-items: stretch; }
  .form-foot .btn { width: 100%; }
  .form-foot p { order: 2; }

  .scroll-hint { display: block; }
  table.comparativa th, table.comparativa td { padding: 13px 15px; }

  .faq-a { padding-right: 8px; }
  .faq-q { padding: 19px 2px; gap: 14px; }

  .aviso { flex-direction: column; gap: 12px; padding: 18px 20px; }

  .cookies { left: 10px; right: 10px; bottom: 10px; padding: 18px 18px; }
  .cookies-actions { width: 100%; }
  .cookies-actions .btn { flex: 1 1 auto; }

  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ----------------------------------------------------------------- < 560px */
@media (max-width: 560px) {
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { width: 100%; }
  .hero-sub { max-width: none; }

  .ficha-rail { width: 36px; }
  .ficha-rail span { font-size: .6rem; letter-spacing: .22em; }

  .e404-code { -webkit-text-stroke-width: 1.2px; }
  .page-head { padding: 40px 0 26px; }
}

/* ----------------------------------------------------- < 400px (390 / 375) */
@media (max-width: 400px) {
  :root { --gutter: 16px; }

  .header-bar { gap: 10px; }
  .lang { font-size: .69rem; }
  .lang a, .lang span { padding: 4px 8px; }

  .btn { padding: 14px 20px; font-size: .96rem; }
  .ficha-body { padding: 20px; }
  .ficha p.ficha-oferta { font-size: 1.4rem; }
  .form-card, .panel, .suscribe { padding: 22px 18px; }
  .success { padding: 24px 18px; }
}

/* ----------------------------------------------------------------- 320px */
@media (max-width: 340px) {
  body { font-size: 16px; }
  .brand-name { font-size: 1.06rem; }
  .brand img { width: 28px; height: 28px; }
  .nav-toggle { width: 40px; height: 38px; }
  .ficha-rail { display: none; }
  .badge { font-size: .6rem; letter-spacing: .1em; }
  .age-strip { font-size: .66rem; padding: 8px 12px 8px 8px; }
}

/* -------------------------------------------------------------- Landscape */
@media (max-height: 480px) and (orientation: landscape) {
  .nav { max-height: calc(100vh - 60px); }
  .e404 { min-height: auto; }
}

/* ------------------------------------------------------------------ Print */
@media print {
  .site-header, .site-footer, .cookies, .hero-guilloche, .btn, .nav-toggle { display: none !important; }
  body { background: #fff; color: #000; }
  h1, h2, h3, p, li { color: #000 !important; }
  .ficha { box-shadow: none; border: 1px solid #999; }
}
