/* ============================================
   RESPONSIVE.CSS — Dark Luxury Breakpoints
   Unified typography + overflow prevention
   ============================================ */

/* ── Global overflow prevention ── */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

/* ── Tablet (max 1024px) ── */
@media (max-width: 1024px) {
  .social-rail { display: none; }

  .hero-slide__content {
    padding-right: var(--container-padding);
    padding-left: var(--container-padding);
  }

  .slider-arrow--next { right: var(--container-padding); }

  .events-grid { grid-template-columns: repeat(2, 1fr); }

  .media-wall__collage {
    height: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md);
    position: static;
  }

  .media-wall__item {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3/4;
  }

  .media-wall__floating-title { display: none; }

  .club-teaser__grid { grid-template-columns: 1fr; gap: var(--space-2xl); }
  .club-teaser__visual { aspect-ratio: 16/10; max-height: 400px; }

  .greetings-teaser__grid { grid-template-columns: repeat(2, 1fr); }

  .news-section__grid { grid-template-columns: repeat(2, 1fr); }
  .news-section__grid .news-card:last-child { grid-column: 1 / -1; max-width: 50%; }

  .subscribe-section { grid-template-columns: 1fr; }
  .subscribe-section__col:first-child { border-right: none; border-bottom: 1px solid var(--color-white-08); }

  .tier-cards { grid-template-columns: 1fr; max-width: 500px; margin: 0 auto; }
  .process-steps { grid-template-columns: repeat(2, 1fr); }
  .gallery-masonry { columns: 3; }
  .contact-cards { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: repeat(2, 1fr); }
  .news-card--featured { grid-template-columns: 1fr; }
}

/* ── Mobile (max 768px) ── */
@media (max-width: 768px) {

  /* Overflow lockdown */
  .hero-slider, .hero-slide, .page-hero, .section,
  .events-section, .media-wall, .club-teaser,
  .greetings-teaser, .news-section, .subscribe-section {
    max-width: 100vw;
    overflow-x: hidden;
  }

  /* ── Hero ── */
  .hero-slide__content {
    padding: 0 var(--space-xl);
  }

  .hero-slide__title {
    font-size: var(--text-2xl);
    letter-spacing: var(--tracking-wide);
    max-width: 100%;
    word-break: break-word;
  }

  .hero-slide__text {
    font-size: var(--text-sm);
    max-width: 100%;
  }

  .slider-arrow { display: none; }

  .slider-dots {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--space-xl);
  }

  .scroll-indicator { display: none; }

  /* ── Section titles ── */
  .section-title {
    font-size: var(--text-xl);
    letter-spacing: var(--tracking-wider);
    word-break: break-word;
  }

  /* ── Grids ── */
  .events-section__header { flex-direction: column; align-items: flex-start; gap: var(--space-md); }
  .events-grid { grid-template-columns: 1fr; }
  .media-wall__collage { grid-template-columns: 1fr 1fr; gap: var(--space-sm); }
  .media-wall__header { flex-direction: column; align-items: flex-start; gap: var(--space-md); }
  .greetings-teaser__grid { grid-template-columns: 1fr; }
  .news-section__header { flex-direction: column; align-items: flex-start; gap: var(--space-md); }
  .news-section__grid { grid-template-columns: 1fr; }
  .news-section__grid .news-card:last-child { max-width: 100%; }
  .news-card__image { height: 200px; }
  .news-grid { grid-template-columns: 1fr; }

  /* ── Subscribe / Follow footer ── */
  .subscribe-section__col { padding: var(--space-3xl) var(--space-xl); }
  .subscribe-section__title { font-size: var(--text-lg); letter-spacing: var(--tracking-wider); margin-bottom: var(--space-xl); }
  .subscribe-form { max-width: 100%; }
  .follow-icons { gap: var(--space-sm); }
  .follow-icon { width: 42px; height: 42px; }
  .follow-icon svg { width: 16px; height: 16px; }

  /* ── Header ── */
  .header__logo { font-size: clamp(1.3rem, 1rem + 1.5vw, 1.8rem); }
  .header__logo-line { max-width: 50px; }
  .header__controls-left, .header__controls-right { gap: 4px; }
  .header__btn { width: 38px; height: 38px; font-size: 0.9rem; }
  .header__btn svg { width: 16px; height: 16px; }
  .header__lang { gap: 0; }
  .header__lang-btn { padding: 4px 6px; font-size: 0.6rem; }

  /* ── Page hero ── */
  .page-hero { min-height: 45vh; }
  .page-hero__content { padding: var(--space-3xl) var(--space-xl) var(--space-2xl); }
  .page-hero__title { font-size: var(--text-xl); letter-spacing: var(--tracking-wider); max-width: 100%; }
  .page-hero__subtitle { font-size: var(--text-sm); max-width: 100%; }

  /* ── Menu overlay ── */
  .menu-overlay__link {
    font-size: clamp(0.8rem, 0.7rem + 0.6vw, 1rem);
    padding: var(--space-sm) var(--space-xl);
    letter-spacing: var(--tracking-wider);
  }
  .menu-overlay__close { width: 40px; height: 40px; font-size: 1.1rem; top: var(--space-md); right: var(--space-md); }
  .menu-overlay__lang { margin-top: var(--space-xl); }
  .menu-overlay__group { padding: var(--space-md) var(--space-xl) var(--space-xs); }
  /* Top padding clears the smaller close button (16px offset + 40px tall);
     6rem of it would waste most of a landscape phone's height. */
  .menu-overlay { padding: 68px var(--space-lg) var(--space-2xl); }

  /* ── Article page (Phase G) ── */
  .article-nav { grid-template-columns: 1fr; }
  .article-nav__link--next { text-align: left; }

  /* ── Inner page elements ── */
  .process-steps { grid-template-columns: 1fr; gap: var(--space-2xl); }
  .gallery-masonry { columns: 2; column-gap: var(--space-sm); }
  .gallery-item { margin-bottom: var(--space-sm); }
  .grid--2 { grid-template-columns: 1fr; }
  .contact-card { padding: var(--space-xl) var(--space-lg); }
  .news-card--featured { grid-template-columns: 1fr; }

  /* ── Section padding ── */
  .section, .events-section, .media-wall,
  .club-teaser, .greetings-teaser, .news-section {
    padding: var(--space-3xl) 0;
  }

  /* ── Event/Tier cards ── */
  .event-card { padding: var(--space-xl) var(--space-lg); min-height: 170px; }
  .tier-card { padding: var(--space-2xl) var(--space-lg); }

  /* ── Buttons ── */
  .btn { padding: 11px 22px; font-size: var(--text-xs); }
  .btn--sm { padding: 8px 16px; font-size: 0.6rem; }
  .btn--lg { padding: 13px 26px; }

  /* ── Filter tabs ── */
  .filter-tabs { gap: 4px; margin-bottom: var(--space-2xl); }
  .filter-tab { padding: 6px 14px; font-size: 0.6rem; }

  /* ── Footer ── */
  .site-footer { flex-direction: column; gap: var(--space-sm); padding: var(--space-lg) var(--space-xl); font-size: 0.65rem; }

  /* ── Club teaser ── */
  .club-teaser__title { font-size: var(--text-lg); }
}

/* ── Small mobile (max 480px) ── */
@media (max-width: 480px) {
  .hero-slide__title {
    font-size: var(--text-xl);
    letter-spacing: var(--tracking-wide);
  }

  .header__logo-line { display: none; }
  .header__logo { font-size: 1.35rem; }
  .header__lang-btn { font-size: 0.55rem; padding: 3px 5px; }
  .header__btn { width: 34px; height: 34px; }
  .header__btn svg { width: 14px; height: 14px; }

  .media-wall__collage { grid-template-columns: 1fr; }
  .gallery-masonry { columns: 1; }

  .section-title { font-size: var(--text-lg); letter-spacing: var(--tracking-wider); }
  .page-hero__title { font-size: var(--text-lg); letter-spacing: var(--tracking-wider); }
  .club-teaser__title { font-size: var(--text-lg); letter-spacing: var(--tracking-wider); }
  .subscribe-section__title { font-size: var(--text-md); }

  .events-section__cta { text-align: center; }

  .container { padding: 0 var(--space-lg); }
  .page-hero__content { padding: var(--space-2xl) var(--space-lg) var(--space-xl); }
  .hero-slide__content { padding: 0 var(--space-lg); }

  .menu-overlay__link {
    font-size: 0.8rem;
    padding: var(--space-xs) var(--space-lg);
  }
  .menu-overlay__group { padding: var(--space-sm) var(--space-lg) 2px; }
}

/* ── Large Desktop (min 1440px) ── */
@media (min-width: 1440px) {
  .hero-slide__content { max-width: var(--container-wide); }
}
