
/* Afrikaans/mobile overflow fix for WLBT homepage and shared sections */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }

@media (max-width: 980px) {
  .container,
  .wrap {
    width: calc(100% - 24px) !important;
    max-width: none !important;
  }

  .hero,
  .hero-grid,
  .hero-shell,
  .hero-copy,
  .hero-media,
  .hero-image {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .hero-grid,
  .hero-shell {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .hero-copy,
  .panel-copy,
  .section-copy,
  .event-copy,
  .story-copy,
  .blog-copy,
  .cta-band,
  .surface-card,
  .card,
  .light,
  .value-card,
  .event-card,
  .story-card,
  .blog-card {
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .hero-copy,
  .panel-copy,
  .surface-card,
  .cta-band {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  h1,
  .display,
  .hero h1,
  .hero-title,
  .section-title,
  .cta-band h3 {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    hyphens: auto !important;
  }

  .display,
  .hero h1 {
    font-size: clamp(2.2rem, 8.4vw, 3.4rem) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.03em !important;
    margin-bottom: 16px !important;
  }

  .lead,
  .hero-copy p,
  .section-head p,
  .section-copy,
  .event-copy p,
  .story-copy p,
  .blog-copy p,
  .surface-card p,
  .cta-band p {
    font-size: 0.98rem !important;
    line-height: 1.6 !important;
    overflow-wrap: anywhere !important;
  }

  .hero-actions,
  .actions,
  .button-row,
  .cta-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
  }

  .hero-actions .btn,
  .hero-actions .btn-outline,
  .actions .btn,
  .actions .btn-outline,
  .button-row .btn,
  .button-row .btn-outline,
  .cta-actions .btn,
  .cta-actions .btn-outline {
    width: 100% !important;
    justify-content: center !important;
  }

  .hero-stats {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .stat,
  .stat-pill {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    box-sizing: border-box !important;
  }

  .hero-media,
  .hero-image {
    overflow: hidden !important;
    border-radius: 20px !important;
  }

  .hero-media img,
  .hero-image img,
  .feature-media img,
  .story-card img,
  .blog-card img,
  .event-card img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }

  .hero-float {
    position: static !important;
    margin-top: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 16px !important;
    box-sizing: border-box !important;
  }

  .section-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .grid-3,
  .grid-2,
  .events-grid,
  .story-grid,
  .blog-grid,
  .split-panel {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .feature-media,
  .surface-card {
    width: 100% !important;
    max-width: 100% !important;
  }

  .card,
  .surface-card,
  .cta-band {
    border-radius: 18px !important;
  }
}

@media (max-width: 640px) {
  .container,
  .wrap {
    width: calc(100% - 18px) !important;
  }

  .hero-copy,
  .panel-copy,
  .surface-card,
  .cta-band,
  .card,
  .light,
  .value-card,
  .event-card,
  .story-card,
  .blog-card {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .display,
  .hero h1 {
    font-size: clamp(2rem, 11vw, 3rem) !important;
    line-height: 0.96 !important;
  }

  .lead,
  .hero-copy p,
  .section-head p,
  .section-copy,
  .event-copy p,
  .story-copy p,
  .blog-copy p,
  .surface-card p,
  .cta-band p {
    font-size: 0.95rem !important;
    line-height: 1.58 !important;
  }

  .menu-toggle {
    flex: 0 0 42px !important;
  }

  .lang-switch {
    gap: 6px !important;
  }

  .lang-switch a {
    min-width: 48px !important;
    text-align: center !important;
  }
}
