/* Final phone-first guardrails shared by every public page. */
html { max-width: 100%; overflow-x: clip; -webkit-text-size-adjust: 100%; }
body { max-width: 100%; overflow-x: clip; }
img, svg, video, canvas { max-width: 100%; height: auto; }
a, button, input, textarea, label { touch-action: manipulation; }
h1, h2, h3, p, li, a, button, label, dt, dd { overflow-wrap: break-word; }

@media (max-width: 919px) {
  .site-nav { position: sticky !important; top: 0; }
  .site-nav .shell-wrap { width: min(calc(100% - 28px), 100%); }
  .site-nav__inner { min-height: 66px; gap: 12px; }
  .site-nav__brand { font-size: 17px; }
  .site-nav__toggle { width: 46px; height: 46px; flex: 0 0 46px; }
  .site-nav__links {
    max-height: calc(100svh - 66px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 10px 14px calc(16px + env(safe-area-inset-bottom));
    box-shadow: 0 14px 24px rgba(10,10,8,.14);
  }
  .site-nav__links a { min-height: 52px; font-size: 15px; }
  .site-nav__links .site-nav__cta { min-height: 56px; margin-top: 4px; }

  .site-footer { padding-block: 52px calc(102px + env(safe-area-inset-bottom)); }
  .site-footer .shell-wrap { width: min(calc(100% - 32px), 100%); }
  .footer-main { gap: 34px; }
  .footer-copy p { line-height: 1.75; }
  .footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .footer-nav a { min-height: 46px; display: grid; place-items: center; padding: 8px 10px; text-align: center; }
  .footer-mascot { width: min(100%, 300px); min-height: 252px; }
  .footer-radar { right: 26px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }

  /* Upsell pages */
  .hero { min-height: auto !important; padding-block: 54px 68px !important; }
  .hero__content { width: min(calc(100% - 32px), 100%); max-width: none; }
  .hero-copy-block { min-width: 0; }
  .hero h1 { font-size: clamp(37px, 10.3vw, 43px); line-height: 1.16; }
  .hero__desc { font-size: 17px; line-height: 1.8; }
  .hero__actions .primary-cta { width: 100%; }
  .hero-story { width: calc(100% - 10px); min-height: 292px; margin: 38px 0 8px 10px; box-shadow: 7px 7px 0 var(--ink); }
  .hero-story__orbit { width: 212px; }
  .hero-story__card { width: 158px; min-height: 108px; padding: 14px; font-size: 15px; }
  .hero-story__stamp { max-width: 138px; padding: 8px 10px; font-size: 12px; }
  .section { padding-block: 66px; }
  .section .container { width: min(calc(100% - 32px), 100%); }
  .section h2 { font-size: clamp(29px, 8.2vw, 34px); }
  .section h3 { font-size: 21px; }
  .story-scene, .managed-machine { width: calc(100% - 8px); margin-left: 8px; box-shadow: 6px 6px 0 var(--pink); }
  .live-visual { gap: 10px; }
  .live-card { min-width: 0; min-height: 178px; padding: 14px; }
  .live-card__screen { height: 65px; }
  .live-card strong { font-size: 13px; }
  .session-row, .week-row { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .session-number, .week-number { font-size: 61px; }
  .session-result, .week-result { font-size: 15px; line-height: 1.65; }
  .deliverable-row, .details__row, .call-row { min-width: 0; }
  .details__row { grid-template-columns: minmax(80px, .38fr) minmax(0, 1fr); gap: 12px; }
  .fit-block { padding: 23px; }
  .outcome-dashboard__tile { min-width: 0; padding: 11px; font-size: 13px; }
  .managed-machine__input, .managed-machine__output { width: 94px; padding: 9px; font-size: 12px; }
  .time-clock { width: 160px; height: 160px; }
  .time-clock::before { right: 72px; height: 48px; }
  .time-clock::after { right: 72px; bottom: 74px; }
  .payment-grid { gap: 9px; }
  .payment-block { min-width: 0; padding: 18px 12px; }
  .payment-block__amount { font-size: clamp(27px, 8.2vw, 35px); white-space: normal; }
  .faq-question { min-height: 72px; gap: 12px; font-size: 18px; line-height: 1.6; }
  .faq-question::after { width: 34px; height: 34px; }
  .primary-cta { min-height: 60px; padding: 17px 23px; }
  .sticky-booking, .sticky-apply {
    min-height: calc(68px + env(safe-area-inset-bottom));
    height: auto;
    align-items: center;
    padding: 7px 10px calc(7px + env(safe-area-inset-bottom));
  }
  .sticky-booking__price, .sticky-apply__fact { min-width: max-content; font-size: 14px; }
  .sticky-booking .primary-cta, .sticky-apply .primary-cta {
    min-width: 0;
    min-height: 50px;
    flex: 1;
    padding: 10px 12px;
    font-size: 13px;
    line-height: 1.35;
  }

  /* Homepage */
  .top-note__track { padding-block: 8px; }
  .hero-grid, .final__inner { min-width: 0; }
  .hero-grid > *, .final__inner > * { min-width: 0; }
  .sticky-buy { min-height: calc(68px + env(safe-area-inset-bottom)); padding: 7px 10px calc(7px + env(safe-area-inset-bottom)); }
  .sticky-buy__price { font-size: 16px; }
  .sticky-buy .btn { min-width: 0; padding-inline: 14px; }

  /* Contact */
  .contact-hero { padding-block: 56px 68px; }
  .contact-wrap { width: min(calc(100% - 32px), 100%); }
  .contact-grid { gap: 36px; }
  .contact-hero h1 { font-size: clamp(39px, 11vw, 46px); line-height: 1.12; }
  .hero-lead { font-size: 17px; }
  .mail-radar { width: calc(100% - 10px); min-height: 310px; margin-left: 10px; box-shadow: 7px 7px 0 var(--pink); }
  .contact-section, .quick-route { padding-block: 68px; }
  .contact-section h2, .quick-route h2 { font-size: 31px; }
  .contact-form { gap: 22px; }
  .form-field input, .form-field textarea { min-height: 54px; font-size: 16px; }
  .form-field textarea { min-height: 156px; }
  .topic-option span { min-height: 58px; font-size: 15px; }
  .prepare-button { min-height: 62px; }
  .message-result { margin-left: 7px; padding: 20px; box-shadow: 7px 7px 0 var(--pink); }
  .result-action { min-height: 52px; flex: 1 1 140px; }
  .route-card { min-height: 132px; }
}

@media (max-width: 359px) {
  .site-nav__brand { font-size: 16px; }
  .footer-nav, .live-visual, .payment-grid, .topic-options { grid-template-columns: 1fr; }
  .hero h1 { font-size: 35px; }
  .hero-story__stamp--one { right: 10px; }
  .hero-story__stamp--two { left: 10px; }
  .sticky-booking__price { display: none; }
  .sticky-booking .primary-cta { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .site-nav { scroll-behavior: auto; }
}
