/* ==========================================================================
   Responsive breakpoints
   Desktop-first component layout is defined in components.css;
   this file adapts it down for tablet and mobile, then fine-tunes
   large desktop canvases.
   ========================================================================== */

/* -------------------- Large desktop (1440px+) -------------------- */
@media (min-width: 1440px) {
  :root { --container-max: 1320px; }
}

/* -------------------- Small desktop / large tablet (max 1180px) -------------------- */
@media (max-width: 1180px) {
  .main-nav { gap: 0; }
  .main-nav a { padding: 10px 12px; font-size: 0.9rem; }
  .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-grid .footer-col-services { display: none; }
}

/* -------------------- Tablet (max 1024px) -------------------- */
@media (max-width: 1024px) {
  .main-nav { display: none; }
  .menu-toggle { display: inline-flex; }

  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .hero-media { order: -1; max-width: 420px; margin-inline: auto; width: 100%; }
  .hero-stat-card { inset-inline-start: 12px; }

  .split-section { grid-template-columns: 1fr; }
  .split-section .media-frame { max-width: 460px; margin-inline: auto; width: 100%; }

  .trust-strip { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }

  .booking-layout { grid-template-columns: 1fr; }
  .booking-side-card { position: static; }

  .service-detail-grid { grid-template-columns: 1fr !important; direction: initial !important; }
  .service-detail-grid > * { direction: initial !important; }
  .service-detail-grid .media-frame { max-width: 480px; margin-inline: auto; width: 100%; }
}

/* -------------------- Tablet widths 768-820 -------------------- */
@media (max-width: 900px) {
  section { padding-block: clamp(48px, 6vw, 72px); }
  .grid-2 { grid-template-columns: 1fr; }
}

/* -------------------- Mobile (max 640px) -------------------- */
@media (max-width: 640px) {
  :root { --header-height: 72px; }

  .container { padding-inline: 18px; }

  .brand-name small { display: none; }

  .header-cta { display: none; }

  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { width: 100%; }

  .hero-badges { gap: 8px; }
  .hero-badge { font-size: 0.76rem; padding: 7px 12px; }

  .hero-stat-card {
    position: static;
    max-width: none;
    margin-top: 16px;
  }

  .trust-strip { grid-template-columns: 1fr 1fr; gap: 14px; }
  .trust-item { padding: 20px 14px; }

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

  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .form-row-2 { grid-template-columns: 1fr; }

  .cta-band { border-radius: var(--radius-md); }

  .sticky-cta { display: block; }
  body { padding-bottom: 76px; }

  .disclaimer-box { flex-direction: column; }

  .booking-side-card { position: static; }
}

/* -------------------- Small phones (max 375px) -------------------- */
@media (max-width: 375px) {
  .btn { padding: 13px 22px; font-size: 0.92rem; }
  .header-actions { gap: 6px; }
  .icon-btn { width: 38px; height: 38px; }
  .lang-toggle button { padding: 7px 10px; }
}
