/* Compact, touch-friendly layout for the public booking website. */
.booking-step {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  color: #172b4d;
  font-size: 1.05rem;
  line-height: 1.3;
}

.report-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.booking-progress, .booking-wizard-actions { display: none; }
.booking-panel { margin-bottom: 12px; }
.booking-panel .form-grid { margin-bottom: 0; }
.booking-wizard .booking-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-bottom: 12px; }
.booking-progress span { padding: 8px 4px; border-bottom: 3px solid #dbe4ed; color: #697b88; font-size: .78rem; font-weight: 700; text-align: center; }
.booking-progress span.is-current { border-color: #0f927c; color: #126b5e; }
.booking-wizard .booking-panel:not(.is-current) { display: none; }
.booking-wizard .booking-wizard-actions { display: flex; gap: 9px; margin-top: 12px; }
.booking-wizard-actions button { min-height: 48px; border-radius: 10px; font-weight: 700; }
.booking-wizard-back { padding: 0 18px; background: #fff; border: 1px solid #bdd2d5; color: #183a40; }
.booking-wizard-next { flex: 1; }
.booking-wizard-actions button[hidden] { display: none; }

@media (max-width: 767px) {
  :root { --mobile-bar-h: 72px; }
  .topbar { display: none; }
  .site-header .header__inner { height: 62px; }
  .site-header.is-scrolled .header__inner {
    width: 100%;
    height: 62px;
    margin-top: 0;
    padding-inline: 12px;
    border-radius: 0;
    background: #fff;
    box-shadow: 0 2px 16px rgba(15, 27, 51, .07);
    backdrop-filter: none;
  }
  .site-header.is-hidden { transform: none; }

  .mobile-bar {
    height: calc(var(--mobile-bar-h) + env(safe-area-inset-bottom));
    background: #fff;
    backdrop-filter: none;
    box-shadow: 0 -6px 24px rgba(15, 27, 51, .09);
  }
  .mobile-bar a { min-height: 56px; font-size: 11px; }
  .mobile-bar a.is-primary::before { inset: 5px 4px; border-radius: 12px; }
  body { padding-bottom: calc(var(--mobile-bar-h) + env(safe-area-inset-bottom)); }

  .hero-hub {
    padding-top: 24px;
    padding-bottom: 30px;
    background: linear-gradient(155deg, #f5faff 0%, #eefbf7 100%);
  }
  .hero-hub__head { align-items: flex-start; text-align: left; }
  .hero-hub h1 { margin-top: 16px; font-size: clamp(2rem, 8vw, 2.75rem); line-height: 1.08; }
  .hero-hub__lead { margin-top: 12px; font-size: .94rem; line-height: 1.55; }
  .hero-hub__cta { width: 100%; margin-top: 20px; justify-content: stretch; gap: 9px; }
  .hero-hub__cta .btn { width: 100%; min-height: 48px; justify-content: center; }
  .hero-hub__diagram,
  .hero-hub__particles,
  .hero-hub__flare,
  .hero-hub__spot { display: none; }
  .hero-search-card { margin-top: 20px; padding: 10px; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(20, 54, 89, .08); backdrop-filter: none; }
  .hero-search-card .hero-quick { margin-top: 8px; padding-inline: 2px; }
  .hero-search-card .chip { min-height: 36px; display: inline-flex; align-items: center; }
  .quick-grid { gap: 10px; }
  .quick-card { min-height: 126px; padding: 16px 14px; border-radius: 16px; }

  .booking-hero { padding: 12px 0 7px; }
  .booking-hero h1 { font-size: 1.65rem; line-height: 1.15; }
  .booking-hero .page-hero__lead { font-size: .88rem; line-height: 1.45; }
  .booking-section { padding-top: 8px; scroll-margin-top: 66px; }
  .booking-section .detail-card { padding: 15px 14px; border-radius: 16px; box-shadow: 0 8px 24px rgba(20, 54, 89, .07); }
  .booking-progress span { font-size: .68rem; white-space: nowrap; }
  .report-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-bottom: 16px; }
  .report-form .form-grid > .field { grid-column: 1 / -1; }
  .report-form .form-grid > .field--half-mobile { grid-column: span 1; }
  .booking-step { margin: 10px 0 1px; font-size: 1rem; }
  .booking-step:first-child { margin-top: 0; }
  .report-form .label { font-size: .84rem; }
  .report-form .input,
  .report-form .select,
  .report-form .textarea { min-height: 48px; font-size: 16px; border-radius: 10px; }
  .booking-collection__options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .booking-collection__option { min-height: 100px; padding: 11px; gap: 7px; }
  .booking-collection__option strong { font-size: .83rem; }
  .booking-collection__option small { font-size: .72rem; }
  .booking-submit { width: 100%; min-height: 50px; }
  .fab-whatsapp { display: none; }
}

@media (prefers-reduced-motion: reduce), (max-width: 767px) {
  .hero-hub h1 .text-gradient,
  .hero-hub h1 .text-gradient .split-word > span,
  .pill-badge__dot { animation: none; }
}
