/* ============================================================
   Turismo Cáceres — RESPONSIVE (breakpoints globales)
   ============================================================ */
/* =========================================================
   RESPONSIVE — 1280px (large tablet / small desktop)
   ========================================================= */
@media (max-width: 1280px) {
  .site-header,
  .site-header.scrolled { padding-left: 40px; padding-right: 40px; }
  .main-nav { gap: 26px; }
  .hero { padding: 0 40px 56px; }
  .scroll-hint { right: 40px; }
  .intro-band { padding: 72px 40px; gap: 56px; }
  .experiences { padding: 80px 40px; }
  .destinos { padding: 80px 40px; }
  .gastro-content { padding: 56px 48px; }
  .events { padding: 80px 40px; }
  .stats { padding: 56px 40px; }
  .newsletter { padding: 64px 40px; gap: 56px; }
  .footer-top { padding: 64px 40px 48px; gap: 40px; }
  .footer-bottom { padding: 20px 40px; }
}

/* =========================================================
   RESPONSIVE — 1024px (tablet landscape)
   ========================================================= */
@media (max-width: 1024px) {
  /* Header: menú oculto → hamburguesa */
  .site-header { padding: 20px 32px; }
  .site-header.scrolled { padding: 14px 32px; }
  .main-nav { display: none; }
  .lang-switcher { display: none; }
  .header-social { display: none; }
  .header-divider { display: none; }
  .menu-toggle { display: flex; }
  .nav-logo img { height: 62px; }
  .site-header.scrolled .nav-logo img { height: 56px; }

  /* Hero */
  .hero { padding: 0 32px 56px; }
  .hero-content { max-width: 560px; padding: 0; }
  .scroll-hint { right: 32px; }

  /* Intro */
  .intro-band { padding: 64px 32px; grid-template-columns: 1fr; gap: 22px; }
  .intro-label { line-height: 1.3; }

  /* Experiencias: 3 cols → 2 + 1 centrada */
  .experiences { padding: 72px 32px; }
  .exp-card { flex: 0 0 calc((100% - 14px) / 2); }   /* 2 visibles */

  /* Editorial */
  .editorial { grid-template-columns: 1fr; min-height: auto; }
  .ed-main { min-height: 500px; }
  .ed-stack { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .ed-small { min-height: 320px; }

  /* Stats */
  .stats { padding: 48px 32px; }
  .stat-num { font-size: 44px; }

  /* Destinos: 4 → 2x2 */
  .destinos { padding: 72px 32px; }
  .destinos-grid { grid-template-columns: repeat(2, 1fr); }
  /* En tableta se ven dos, pase lo que ponga el elemento. */
  .destinos--carousel { --tc-per-view: 2; }
  .destino-card { aspect-ratio: 3/4; }

  /* Gastronomía */
  .gastro { grid-template-columns: 1fr; min-height: auto; }
  .gastro-img-wrap { min-height: 420px; }
  .gastro-content { padding: 56px 32px; }

  /* Eventos */
  .events { padding: 72px 32px; background: var(--cream); }
  .events-layout { grid-template-columns: 1fr; gap: 0; }
  .events-visual { margin-top: 40px; background: #F1E8DE; padding: 30px; padding-left: 30px; }

  /* Plan CTA */
  .plan-cta-content { padding: 0 32px; }

  /* Newsletter */
  .newsletter { padding: 56px 32px; gap: 40px; }

  /* Footer: 4 cols → 2x2 */
  .footer-top { padding: 56px 32px 40px; grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { padding: 18px 32px; flex-direction: column; gap: 12px; text-align: center; }
  .footer-bottom-links { flex-wrap: wrap; justify-content: center; gap: 14px; }
}

/* =========================================================
   RESPONSIVE — 768px (tablet portrait / mobile grande)
   ========================================================= */
@media (max-width: 768px) {
  /* Header */
  .site-header { padding: 18px 24px; }
  .site-header.scrolled { padding: 14px 24px; }
  .nav-logo img { height: 38px; }

  /* Hero */
  .hero { min-height: 100svh; padding: 0 20px 40px; }
  .hero-content { max-width: 100%; padding: 0; }
  .hero h1 { font-size: clamp(36px, 9.5vw, 56px); }
  .hero-desc { font-size: 15px; max-width: 100%; margin-bottom: 32px; }
  .hero-eyebrow { font-size: 10px; letter-spacing: 0.2em; }
  .scroll-hint { display: none; }

  /* Intro */
  .intro-band { padding: 52px 24px; }
  .intro-silhouette { width: 360px; right: -50px; bottom: -30px; opacity: 0.06; }
  .intro-mark { width: 66px; margin-bottom: 18px; }
  .intro-text h2 { font-size: 24px; }

  /* Experiencias.
     Aquí sólo lo que depende del ancho. Lo que depende de si hay dedo o ratón
     —esconder las flechas, revelar el texto de la tarjeta— está al final de
     css/tc-components.css, con consultas de puntero. */
  .experiences { padding: 60px 24px; }
  .section-header { flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 32px; }

  /* Con la cabecera apilada, los controles cuelgan debajo del titular: el
     `align-self: flex-end` que los pega a la derecha cuando van en la misma
     línea aquí los mandaba al otro extremo de la columna, con el enlace «ver
     todas» a 766 px del borde izquierdo y sin nada al lado. */
  .exp-controls { align-self: flex-start; }

  .exp-card { flex: 0 0 82%; aspect-ratio: 3/4; }   /* 1 + asomo de la siguiente */

  /* Editorial */
  .ed-main { min-height: 400px; }
  .ed-main-body { padding: 32px 28px; }
  .ed-main-body h2 { font-size: 26px; }
  .ed-main-body p { display: none; }
  .ed-stack { grid-template-columns: 1fr; }
  .ed-small { min-height: 260px; }
  .ed-small-body { padding: 24px 24px; }
  .ed-small-body h3 { font-size: 18px; }
  .ed-small-link { opacity: 1; transform: none; }   /* siempre visible en táctil */

  /* Stats: 4 → 2x2 */
  .stats { grid-template-columns: 1fr 1fr; padding: 0; gap: 0; }
  .stat-item {
    padding: 36px 20px;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.16);
  }
  .stat-item:nth-child(odd)  { border-right: 1px solid rgba(255,255,255,0.16); }
  .stat-item:nth-child(3),
  .stat-item:nth-child(4)    { border-bottom: none; }
  .stat-num { font-size: 36px; }

  /* Destinos */
  .destinos { padding: 60px 24px; }
  .destinos-grid { grid-template-columns: 1fr 1fr; gap: 3px; }
  .destinos--carousel { --tc-per-view: 2; }
  .destino-card { aspect-ratio: 2/3; }
  .destino-body h3 { font-size: 17px; }

  /* Gastronomía */
  .gastro-img-wrap { min-height: 300px; }
  .gastro-content { padding: 48px 24px; }
  .gastro-content h2 { font-size: 26px; }

  /* Eventos */
  .events { padding: 60px 24px; }
  .event-list { margin-top: 28px; }
  .event-item { padding: 20px 0; }
  .event-item:hover { transform: none; } /* no hover en touch */
  .event-date .d { font-size: 28px; }

  /* Plan CTA */
  .plan-cta { min-height: 400px; }
  .plan-cta-content { padding: 40px 24px; }
  .plan-cta-content h2 { font-size: 28px; }
  .plan-cta-content p { font-size: 14px; margin-bottom: 28px; }

  /* Newsletter.
     Estas reglas apuntaban a `.newsletter-form` y `.newsletter h3`, clases de
     una versión anterior del marcado que ya no existen: la rejilla vive en
     `.news` y el formulario es `.nl-form`. Con los selectores muertos el bloque
     se quedaba a dos columnas en el móvil, con el formulario y la foto
     estrujados uno al lado del otro. */
  .newsletter { padding: 52px 24px !important; }
  .news { grid-template-columns: 1fr; }
  .news__body { padding: 32px 24px; }
  .news__body h3 { font-size: 24px; }
  .news__body > p { margin-bottom: 22px; }

  /* La foto pasa debajo, con altura propia, y sin el degradado lateral que
     sólo tiene sentido cuando está al lado del texto. */
  .news__media { min-height: 220px; }
  .news__media::after { background: linear-gradient(180deg, rgba(124,38,41,0.55) 0%, rgba(124,38,41,0) 45%); }

  #top .nl-form { gap: 16px; max-width: none; }
  #top .nl-btn { width: 100%; justify-content: center; }
  #top .nl-privacy { margin-top: 2px; }

  /* Footer */
  .footer-top { padding: 48px 24px 36px; grid-template-columns: 1fr; gap: 32px; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { padding: 18px 24px; }
  .footer-bottom-links { gap: 10px 16px; justify-content: center; }
}

/* =========================================================
   RESPONSIVE — 480px (mobile estándar)
   ========================================================= */
@media (max-width: 480px) {
  /* Header */
  .site-header { padding: 16px 20px; }
  .site-header.scrolled { padding: 12px 20px; }
  .nav-logo img { height: 34px; }

  /* Hero */
  .hero { padding: 0 16px 32px; }
  .hero-content { padding: 0; }
  .hero h1 { font-size: clamp(32px, 9vw, 44px); }
  .hero-desc { font-size: 14px; }
  .cta-group { flex-direction: column; align-items: flex-start; }
  .btn-primary, .btn-ghost { width: 100%; max-width: 300px; justify-content: center; }

  /* Experiencias */
  .exp-card-body h3 { font-size: 20px; }

  /* Stats */
  .stat-num { font-size: 30px; }
  .stat-lbl { font-size: 10px; }
  .stat-item { padding: 28px 12px; }

  /* Destinos */
  .destinos-grid { grid-template-columns: 1fr 1fr; gap: 3px; }
  .destinos--carousel { --tc-per-view: 1; }
  .destino-body h3 { font-size: 15px; }
  .destino-body span { font-size: 11px; }
  .destino-body { padding: 20px 16px; }

  /* Gastronomía */
  .gastro-img-wrap { min-height: 250px; }
  .gastro-content { padding: 40px 20px; }

  /* Eventos */
  .events { padding: 52px 20px; }
  .event-date .d { font-size: 26px; }
  .event-info h4 { font-size: 15px; }

  /* Plan CTA */
  .plan-cta-content { padding: 32px 20px; }
  .btn-primary { max-width: 100%; }

  /* Newsletter */
  .newsletter { padding: 44px 20px; }

  /* Footer */
  .footer-top { padding: 40px 20px 28px; }
  .footer-bottom { padding: 16px 20px; }
  .footer-bottom p { font-size: 11px; }
  .footer-bottom-links a { font-size: 11px; }

  /* Mobile nav */
  .mobile-nav { padding: 70px 28px 40px; }
  .m-acc, .m-link { font-size: clamp(24px, 7.5vw, 34px); }
}

