/* =============================================================================
   Adaptive Kit 2026 — fluid type, container, safe-area, breakpoints
   ============================================================================= */

:root {
  --fluid-min: 360;
  --fluid-max: 1200;
  --type-lead: clamp(1.05rem, 0.95rem + 0.45vw, 1.25rem);
  --type-h1: clamp(1.85rem, 1.35rem + 2.2vw, 3.15rem);
  --type-h2: clamp(1.35rem, 1.15rem + 0.9vw, 2rem);
  --space-section: clamp(3rem, 2.2rem + 3.5vw, 6.5rem);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}

html {
  hanging-punctuation: first last;
}

body {
  padding-left: var(--safe-left);
  padding-right: var(--safe-right);
}

.site-header {
  padding-top: var(--safe-top);
}

.site-footer {
  padding-bottom: calc(1.5rem + var(--safe-bottom));
}

h1, .bm-kinetic {
  font-size: var(--type-h1);
  line-height: 1.15;
  text-wrap: balance;
}

h2 {
  font-size: var(--type-h2);
  text-wrap: balance;
}

.lead, .hero__lead {
  font-size: var(--type-lead);
  text-wrap: pretty;
}

.section {
  padding-block: var(--space-section);
}

.container {
  width: min(100% - (var(--gutter, 1.25rem) * 2), var(--container, 72rem));
  margin-inline: auto;
}

/* Container queries for card grids */
.card-grid {
  container-type: inline-size;
  container-name: cards;
}

@container cards (max-width: 520px) {
  .card-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Hit targets */
a, button, .btn, .nav a, .header-cta, .faq__q {
  touch-action: manipulation;
}

@media (pointer: coarse) {
  .nav a,
  .header-cta,
  .btn,
  .faq__q,
  .nav-toggle {
    min-height: 48px;
  }
}

/* Breakpoints: 360 / 768 / 1024 / 1200 */
@media (max-width: 767.98px) {
  .nav--mega { display: none; }
  .split {
    display: grid;
    gap: 1.75rem;
  }
  .stat-row {
    grid-template-columns: 1fr;
  }
  .hero__content {
    padding-block: clamp(4rem, 18vw, 6rem) 3rem;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .nav--mega a {
    padding-inline: 0.55rem;
    font-size: 0.92rem;
  }
}

@media (min-width: 1200px) {
  .hero--fullbleed .hero__content {
    max-width: 40rem;
  }
}

/* Tel visibility on tablet+ */
@media (max-width: 1023.98px) {
  .header-cta {
    display: none;
  }
}

@media (min-width: 1024px) {
  .header-cta {
    display: inline-flex;
  }
}

/* Dark-scheme opt-in only if system + data attr (not default) */
@media (prefers-color-scheme: dark) {
  html[data-theme="system-ink"] {
    color-scheme: dark;
  }
}

/* Print */
@media print {
  .site-header, .nav-panel, .bm-scroll-progress, .hero__mesh {
    display: none !important;
  }
  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
  }
}
