/* ==========================================================================
   VivaSpain Games — responsive layer
   Breakpoints checked: 320 / 375 / 390 / 414 / 768 / 1024 / 1440 / 1920
   ========================================================================== */

/* ------------------------------------------------------ 1920px and wider */
@media (min-width: 1600px) {
  :root { --wrap: 1280px; }
  body { font-size: 17px; }
}

/* ------------------------------------------------------- below 1200px */
@media (max-width: 1200px) {
  .nav__link { padding: 9px 10px; font-size: 0.88rem; }
}

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

  .hero__grid { grid-template-columns: 1fr; gap: 34px; }
  .hero h1 { max-width: 18ch; }
  .hero__sub, .hero__disclosure { max-width: 60ch; }
  .reel-device { max-width: 560px; }

  .feature { grid-template-columns: 1fr; }
  .feature__media { order: -1; }

  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .respo { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
}

/* ---------------------------------------------- below 900px: mobile nav */
@media (max-width: 900px) {
  .nav { display: none; }
  .header__tools .btn--ghost { display: none; }
  .burger { display: grid; }
  .header__inner { gap: 12px; }
  .header__tools { margin-left: auto; }

  .steps { grid-template-columns: 1fr !important; }
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
}

/* ---------------------------------------------------------- below 768px */
@media (max-width: 768px) {
  :root { --header-h: 66px; }

  body { font-size: 16px; }

  .section { padding: 52px 0; }
  .section--tight { padding: 38px 0; }

  .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }

  .hero { padding: 34px 0 30px; }
  .hero h1 { max-width: 100%; }

  .strip { flex-direction: column; align-items: flex-start; gap: 14px; padding: 18px 20px; }

  .btn-row .btn { flex: 1 1 auto; }

  .toasts {
    top: auto;
    bottom: 16px;
    left: 16px;
    right: 16px;
    width: auto;
  }

  .cookie {
    left: 12px; right: 12px; bottom: 12px;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    padding: 18px;
  }
  .cookie__actions { flex: 1 1 auto; }
  .cookie__actions .btn { flex: 1 1 auto; }

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

  .modal { padding: 16px; align-items: flex-start; }
  .modal__dialog { margin: 10px auto; }

  .prose { max-width: 100%; }

  .contact-list { gap: 14px; }
}

/* ---------------------------------------------------------- below 560px */
@media (max-width: 560px) {
  .age-gate { padding: 16px; align-items: flex-start; }
  .age-gate__card { padding: 26px 20px; }
  .age-gate__emblem { width: 70px; height: 70px; border-radius: 22px; font-size: 1.4rem; }

  .reels { gap: 9px; padding: 12px; }
  .reel { border-radius: 12px; }

  .btn { padding: 13px 20px; font-size: 0.94rem; width: 100%; }
  .btn--sm { padding: 10px 16px; width: auto; }
  .btn--quiet { width: auto; }
  .btn-row { flex-direction: column; align-items: stretch; }
  .btn-row .btn { width: 100%; }
  .error-page .btn-row { align-items: stretch; }

  .lang a { padding: 5px 9px; font-size: 0.74rem; }

  .feature, .offer, .panel { padding: 22px 18px; }
  .modal__dialog { padding: 24px 18px; }
  .modal__head { padding-right: 38px; }

  .game__meta { flex-direction: column; align-items: flex-start; gap: 6px; }
}

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

  .logo__text { font-size: 1rem; }
  .logo__mark { width: 30px; height: 30px; border-radius: 10px; }

  .reel { font-size: 1.62rem; }
  .reels { gap: 7px; padding: 10px; }

  .footer__flags span { font-size: 0.73rem; padding: 5px 10px; }

  .faq__q { padding: 16px 16px; font-size: 0.94rem; }
  .faq__a { padding: 0 16px 18px; }
}

/* ---------------------------------------------------------- below 340px */
@media (max-width: 340px) {
  h1 { font-size: 1.85rem; }
  .reel { font-size: 1.4rem; }
  .tag { font-size: 0.72rem; padding: 6px 11px; }
  .age-gate__facts p { font-size: 0.88rem; }
}

/* ------------------------------------------------- short viewport tweaks */
@media (max-height: 680px) and (min-width: 561px) {
  .age-gate { align-items: flex-start; }
  .age-gate__card { margin: 24px 0; }
}

/* --------------------------------------------------------------- landscape */
@media (max-width: 900px) and (orientation: landscape) {
  .drawer { padding-top: 16px; }
  .age-gate { align-items: flex-start; }
}

/* ------------------------------------------------------------------ print */
@media print {
  .header, .footer, .cookie, .toasts, .modal, .drawer, .scrim, .age-gate { display: none !important; }
  body { background: #fff; color: #000; }
  .prose p, .prose li { color: #222; }
  h1, h2, h3 { color: #000; }
}
