/* ==========================================================================
   ILC Wellness — responsive.css
   Min-width enhancements. Breakpoints:
     sm 40rem (640px)  · md 56rem (896px)  · lg 64rem (1024px)  · xl 80rem (1280px)
   ========================================================================== */

/* ---------- sm: large phones / small tablets ---------- */
@media (min-width: 40rem) {
  .info-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-cols { grid-template-columns: repeat(3, 1fr); }
  .trust-list { grid-template-columns: repeat(2, 1fr); column-gap: var(--space-5); }
  .book-options { grid-template-columns: repeat(2, 1fr); }
  .book-option--primary { grid-column: 1 / -1; }
}

/* ---------- md: tablets ---------- */
@media (min-width: 56rem) {
  :root { --header-h: 5.25rem; }
  body { font-size: 1.0625rem; }

  .services-grid { grid-template-columns: 1.25fr 1fr; align-items: stretch; }
  .principles { grid-template-columns: repeat(2, 1fr); column-gap: var(--space-8); }
  .journey { grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
  .journey__step { padding: 3.5rem 0 0 0; }
  .journey__step::before {
    left: 2.6rem;
    right: calc(var(--space-6) * -1);
    top: 0.92rem;
    bottom: auto;
    width: auto;
    height: 1px;
  }
  .journey__step:last-child::before { display: none; }
  .journey--four { grid-template-columns: repeat(4, 1fr); }

  .split { grid-template-columns: 5fr 7fr; gap: var(--space-9); }
  .split--even { grid-template-columns: 1fr 1fr; }
  .sticky-col { position: sticky; top: calc(var(--header-h) + 2rem); }
  .statement-split { grid-template-columns: 4fr 8fr; gap: var(--space-8); align-items: start; }

  .footer-top { grid-template-columns: 5fr 7fr; gap: var(--space-9); }
  .footer-bottom { grid-template-columns: 1fr auto; align-items: end; }

  .mobile-book { display: none; }
}

/* ---------- lg: laptops ---------- */
@media (min-width: 64rem) {
  .primary-nav { display: block; }
  .primary-nav ul { display: flex; gap: clamp(1rem, 0.2rem + 1.4vw, 2.1rem); }
  .primary-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-decoration: none;
    color: var(--ink);
  }
  .primary-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0.55rem;
    height: 1px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--dur) var(--ease);
  }
  .primary-nav a:hover::after, .primary-nav a[aria-current="page"]::after { transform: scaleX(1); }
  .header-cta { display: inline-flex; }
  .nav-toggle, .mobile-menu { display: none !important; }
  .no-js .mobile-menu { display: none !important; }

  .hero__grid { grid-template-columns: 7fr 5fr; gap: var(--space-9); }
  .hero__visual { justify-self: end; width: 100%; max-width: 27rem; }
  .float-note { position: absolute; left: -4rem; bottom: 1.75rem; margin: 0; }

  .provider { grid-template-columns: 5fr 7fr; gap: var(--space-10); }
  .provider--reverse .provider__visual { order: 2; }
  .provider__visual { justify-self: start; }

  .info-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .book-options { grid-template-columns: 1.3fr 1fr 1fr; }
  .book-option--primary { grid-column: auto; }

  .page-hero__inner--split { grid-template-columns: 7fr 5fr; align-items: end; gap: var(--space-9); }
}

/* ---------- xl: desktops ---------- */
@media (min-width: 80rem) {
  .hero h1 { font-size: 5.5rem; }
}

/* ---------- Motion and print ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media print {
  .site-header, .mobile-book, .cta-band, .site-footer .footer-cols { display: none !important; }
  body { background: #fff; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}
