/**
 * Abryx mobile polish — phones & small tablets
 */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 4.75rem;
}

body {
  overflow-x: clip;
}

/* Notch / home indicator */
.header {
  padding-top: env(safe-area-inset-top, 0);
}

.header-inner {
  padding-left: max(var(--pad, 1.25rem), env(safe-area-inset-left, 0));
  padding-right: max(var(--pad, 1.25rem), env(safe-area-inset-right, 0));
}

.splash-lang {
  top: max(clamp(1rem, 3vw, 1.5rem), env(safe-area-inset-top, 0));
  right: max(var(--pad, 1.25rem), env(safe-area-inset-right, 0));
}

main#main,
.vendor-section,
.lab {
  padding-bottom: env(safe-area-inset-bottom, 0);
}

.footer-inner {
  padding-bottom: max(clamp(1.5rem, 4vw, 2.25rem), env(safe-area-inset-bottom, 0));
}

@media (max-width: 720px) {
  .hero {
    padding-top: clamp(2rem, 6vw, 3rem);
    padding-bottom: clamp(2.5rem, 7vw, 3.5rem);
  }

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

  .hero-actions .btn {
    width: 100%;
    min-height: 44px;
  }

  .hero h1 {
    font-size: clamp(2rem, 9.5vw, 2.65rem);
    line-height: 1.1;
  }

  .hero-lead {
    font-size: 1rem;
    margin-bottom: 1.5rem;
  }

  .hero-kicker {
    font-size: 0.75rem;
    line-height: 1.45;
  }

  .how-step-overlay {
    align-items: flex-end;
    padding: 0.5rem 0.5rem max(0.65rem, env(safe-area-inset-bottom, 0));
  }

  .how-step-panel {
    width: 100%;
    max-height: min(90dvh, 680px);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    margin-bottom: 0;
  }

  .how-step-panel__close {
    width: 2.75rem;
    height: 2.75rem;
  }

  .how-step {
    min-height: 44px;
  }

  .ess-kicker {
    font-size: 0.75rem;
    line-height: 1.55;
    text-align: center;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }

  .headline-block {
    text-align: left;
  }

  .headline-block.center {
    text-align: center;
  }

  .headline-block h2 {
    font-size: clamp(1.5rem, 7vw, 1.9rem);
  }

  .headline-block p {
    font-size: 1rem;
  }

  .cta h2 {
    font-size: clamp(1.5rem, 7vw, 1.9rem);
  }

  .cta .btn-primary.btn-lg {
    width: 100%;
    max-width: 20rem;
    min-height: 44px;
  }

  .auto-card-head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }

  .auto-card-head .auto-ribbon {
    align-self: flex-start;
  }

  .auto-card .btn {
    min-height: 44px;
  }

  .ess-card .btn {
    min-height: 44px;
    width: 100%;
  }

  .faq-wrap summary {
    padding: 1rem 2.75rem 1rem 1rem;
    font-size: 0.9375rem;
    line-height: 1.4;
  }

  .footer-inner p {
    font-size: 0.75rem;
    line-height: 1.55;
    padding: 0 0.25rem;
  }
}

@media (max-width: 640px) {
  .lang-toggle {
    min-height: 40px;
    min-width: 2.65rem;
  }

  .header-cta .btn {
    min-height: 40px;
  }

  .splash-choice {
    min-height: 44px;
  }

  .splash-intro h1 {
    font-size: clamp(1.65rem, 8vw, 2rem);
  }

  .lab-actions,
  .offer-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .lab-actions .btn,
  .offer-actions .btn {
    width: 100%;
    min-height: 44px;
    min-width: 0;
  }

  .offer-card .btn-lg {
    width: 100%;
  }

  .feature-row {
    gap: 12px;
  }

  .vendor-intro,
  .headline-block p {
    font-size: 0.9875rem;
  }
}

@media (max-width: 400px) {
  .brand-mark {
    font-size: 1rem;
  }

  .brand-logo,
  .splash-brand-logo {
    width: 24px;
    height: 24px;
  }

  .header-inner {
    gap: 6px;
  }

  .header-cta {
    gap: 5px;
  }

  .header-cta .btn {
    padding: 8px 9px;
    font-size: 0.6875rem;
  }

  .header-cta .lang-toggle {
    padding: 8px 7px;
    font-size: 0.625rem;
    min-width: 2.35rem;
  }

  .section-beacon__pill {
    padding: 0.4rem 0.65rem;
  }

  .section-beacon__num {
    font-size: 0.6875rem;
  }

  .strip-inner {
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    gap: 5px 8px;
    padding: 0.6rem 0.85rem;
  }

  .how-process-note {
    font-size: 0.8125rem;
    padding: 0.75rem 0.85rem;
  }
}
