html {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

@supports (overflow: clip) {
  html,
  body { overflow-x: clip; }
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

@media (max-width: 1050px) {
  input:not([type="checkbox"]):not([type="radio"]),
  textarea,
  select {
    min-height: 44px;
    font-size: 16px !important;
  }
}

@media (max-width: 720px) {
  .site-header {
    padding-left: max(14px, env(safe-area-inset-left));
    padding-right: max(14px, env(safe-area-inset-right));
  }

  .mobile-menu {
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-left: max(24px, env(safe-area-inset-left));
    padding-right: max(24px, env(safe-area-inset-right));
    padding-bottom: max(30px, env(safe-area-inset-bottom));
  }

  .menu-toggle,
  .slider-controls button,
  .map-pin {
    min-width: 44px;
    min-height: 44px;
  }

  .menu-heading h2,
  .intro h2,
  .process h2,
  .places h2,
  .order h2 {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .product-slider {
    max-width: 100%;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 1050px) and (max-height: 500px) {
  .mobile-menu {
    justify-content: flex-start;
    padding-top: max(78px, env(safe-area-inset-top));
  }
  .mobile-menu a { font-size: clamp(26px, 8vh, 38px); }
}

@media (max-width: 520px) {
  .menu-heading h2,
  .intro h2,
  .process h2,
  .places h2,
  .order h2 {
    font-size: clamp(32px, 9vw, 44px) !important;
    line-height: 1.04;
  }

  .manifesto h2 {
    font-size: clamp(40px, 11vw, 58px);
    overflow-wrap: anywhere;
  }

  .manifesto-orbit {
    width: 300px;
    height: 300px;
    right: -190px;
  }

  .product-slider {
    grid-auto-columns: minmax(270px, calc(100vw - 42px));
  }
}

@media (max-width: 340px) {
  .hero h1 { font-size: 43px; }
  .product-slider { grid-auto-columns: minmax(250px, calc(100vw - 36px)); }
  .order-gallery { grid-template-rows: 270px 135px; }
}

@media (hover: none) {
  .pill-button:hover,
  .product-card:hover .product-photo img,
  .footer-cta:hover,
  .order-photo:hover img {
    transform: none;
  }
}

/* One centered menu card per mobile viewport. */
@media (max-width: 720px) {
  .product-slider {
    width:calc(100% - 28px);
    grid-auto-columns:100%;
    gap:16px;
    overflow-x:auto;
    padding:0 0 16px;
    scroll-snap-type:x mandatory;
    touch-action:pan-x;
  }

  .product-card {
    scroll-snap-align:center;
    scroll-snap-stop:always;
  }
}

/* Mobile composition: section labels are anchors; key messages are centered. */
@media (max-width: 720px) {
  .hero-copy h1,
  .hero-lead,
  .intro-grid h2,
  .intro-text,
  .heading-row h2,
  .manifesto-content h2,
  .manifesto-content > p,
  .process-heading h2,
  .process-heading > p,
  .places-copy h2,
  .places-copy > p,
  .order-copy h2,
  .order-lead,
  .quote-copy blockquote,
  .quote-meta {
    text-align: center;
  }

  .hero-actions {
    justify-content: center;
    align-items: center;
  }

  .hero-note {
    text-align: center;
  }
}
