/* ============================================================
   TWIS World — Responsive CSS
   Mobile-first breakpoint overrides
   ============================================================ */

/* ============================================================
   BREAKPOINTS (Bootstrap 5.3 standard)
   xs  : < 576px
   sm  : 576px+
   md  : 768px+
   lg  : 992px+
   xl  : 1200px+
   xxl : 1400px+
   ============================================================ */

/* ============================================================
   1. EXTRA SMALL (< 576px) — Default mobile
   ============================================================ */
.home-hero,
.hero-section { min-height: auto; padding-top: 6rem; padding-bottom: 3rem; }

.page-hero {
  padding: 6.5rem var(--px-mobile) 2.5rem;
}

.stats-section { padding: var(--section-gap) var(--px-mobile); }

.cta-section { padding: 2.5rem 1.5rem; }

h1, .display-lg { font-size: clamp(2rem, 8vw, 2.5rem); }
h2, .headline-xl { font-size: clamp(1.625rem, 6vw, 2rem); }
h3, .headline-lg { font-size: clamp(1.25rem, 4vw, 1.5rem); }

.bento-card { min-height: 200px; }

.section-bar { margin-left: auto; margin-right: auto; }
.section-bar.left { margin-left: auto; }

/* ============================================================
   2. SMALL (≥ 576px)
   ============================================================ */
@media (min-width: 576px) {
  .page-hero { padding-left: var(--px-mobile); padding-right: var(--px-mobile); }
}

/* ============================================================
   3. MEDIUM (≥ 768px)
   ============================================================ */
@media (min-width: 768px) {
  .home-hero, .hero-section {
    min-height: 85vh;
    padding-top: 5rem;
  }

  .page-hero {
    padding: 8rem var(--px-desktop) 4rem;
  }

  .section-bar.left { margin-left: 0; }

  .stats-section { padding: var(--section-gap) var(--px-desktop); }

  .bento-card { padding: 2.5rem; }

  /* Step timeline horizontal line visible md+ */
  .step-timeline::before { display: block; }
}

/* ============================================================
   4. LARGE (≥ 992px)
   ============================================================ */
@media (min-width: 992px) {
  .home-hero { min-height: 100vh; }

  /* Bento grid fixed heights */
  .bento-grid-main { min-height: 550px; }
}

/* ============================================================
   5. EXTRA LARGE (≥ 1200px)
   ============================================================ */
@media (min-width: 1200px) {
  /* Large screen navigation */
  #main-navbar .nav-link { padding: 0.5rem 1rem; }
}

/* ============================================================
   6. BREAKPOINT-SPECIFIC FIXES
   ============================================================ */

/* Fix: timeline dots hidden on mobile vertical layout */
@media (max-width: 767.98px) {
  .timeline-vertical::before { left: 1rem; transform: none; }
  .timeline-item-right,
  .timeline-item-left { padding-left: 3rem; text-align: left !important; }
  .timeline-dot-center { left: 1rem !important; transform: none !important; }
}

/* Fix: step timeline icons center on mobile */
@media (max-width: 767.98px) {
  .step-icon { margin-left: auto; margin-right: auto; }
  .step-col { text-align: center; }
}

/* Fix: hero stats card grid */
@media (max-width: 575.98px) {
  .hero-stats-row { grid-template-columns: 1fr 1fr; }
}

/* Fix: footer newsletter single column */
@media (max-width: 575.98px) {
  .footer-newsletter-form {
    flex-direction: column;
  }
  .footer-newsletter-form input,
  .footer-newsletter-form .btn-newsletter {
    width: 100%;
  }
}

/* Fix: case study grid bento on mobile */
@media (max-width: 767.98px) {
  .bento-grid-main { height: auto !important; }
}

/* Fix: horizontal overflow prevention */
body, html { overflow-x: hidden; }

/* Fix: large fonts on very wide screens */
@media (min-width: 1440px) {
  h1, .display-lg { font-size: 64px; }
  h2, .headline-xl { font-size: 48px; }
}

/* Fix: nav hidden on mobile */
@media (max-width: 991.98px) {
  #main-navbar .navbar-nav { display: none; }
  #main-navbar .d-lg-flex { display: none !important; }
}

/* Fix: logo carousel speed on mobile */
@media (max-width: 575.98px) {
  .logo-carousel-track { animation-duration: 25s; }
}

/* Fix: contact form padding */
@media (max-width: 767.98px) {
  .contact-form-card { padding: 1.75rem 1.25rem; }
}

/* Fix: blog card images */
@media (max-width: 575.98px) {
  .blog-card-img { height: 200px; }
}

/* Fix: back-to-top position on mobile */
@media (max-width: 575.98px) {
  #back-to-top { bottom: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; }
}

/* ============================================================
   7. FOLD DEVICES (280px–320px)
   ============================================================ */
@media (max-width: 320px) {
  h1, .display-lg { font-size: 1.875rem; }
  .btn-cta, .btn-outline-brand { padding: 0.625rem 1.25rem; font-size: 0.875rem; }
  .bento-card { padding: 1.25rem; }
  .hero-stats-row { grid-template-columns: 1fr; }
}

/* ============================================================
   8. LANDSCAPE MOBILE
   ============================================================ */
@media (max-height: 500px) and (orientation: landscape) {
  .home-hero { min-height: auto; padding-top: 5rem; padding-bottom: 2rem; }
  .page-hero { padding-top: 5rem; }
}

/* ============================================================
   9. LARGE DESKTOP (≥ 1440px)
   ============================================================ */
@media (min-width: 1440px) {
  .container {
    max-width: var(--container-max);
  }
}

/* ============================================================
   10. PRINT STYLES
   ============================================================ */
@media print {
  #main-navbar, #back-to-top, .cta-section, .logo-carousel-wrap { display: none; }
  body { font-size: 12pt; }
  a[href]::after { content: ' (' attr(href) ')'; font-size: 0.75em; }
}

/* ============================================================
   END OF RESPONSIVE.CSS
   ============================================================ */
