/* Keep intrinsic image and form sizes inside their responsive columns. */
.hero > *, .story > *, .store-gallery > *, .connect-form-section > *,
.registration > *, .locations > *, .location > *, .form-grid > *,
.order-category-grid > *, .order-category > *, footer > * {
  min-width: 0;
}
.contact-form, .job-form, .job-form fieldset {
  min-width: 0;
  max-width: 100%;
}
.contact-form input, .contact-form select, .contact-form textarea,
.job-form input, .job-form select, .job-form textarea {
  min-width: 0;
  max-width: 100%;
}
.order-category span { overflow-wrap: anywhere; }
.btn { max-width: 100%; white-space: normal; text-align: center; }
.contact-status, .career-status { overflow-wrap: anywhere; }
.hero-food-dot { width: 44px; height: 44px; }
.close { min-width: 44px; min-height: 44px; }

/* Use the collapsible navigation before the full header becomes crowded. */
@media (max-width: 960px) {
  header { flex-wrap: wrap; }
  .nav-toggle {
    display: block;
    min-width: 44px;
    min-height: 44px;
    border: 1px solid #c9c5bc;
    background: transparent;
    color: var(--navy);
    font-size: 23px;
    padding: 5px 13px;
  }
  header nav { display: none; flex-basis: 100%; padding-top: 12px; gap: 0; }
  header nav.is-open {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    max-height: calc(100dvh - 110px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  header nav a, header nav a[href='#locations'] {
    display: block;
    font-size: 12px;
    padding: 15px 0;
    border-top: 1px solid #d5d0c5;
  }
  header nav .btn { margin-top: 10px; flex-shrink: 0; }
}

@media (max-width: 760px) {
  .form-actions .btn, .contact-form > .btn { width: 100%; }
  .job-form legend { max-width: 100%; }
  .footer-nav { column-gap: 18px; row-gap: 0; }
  .footer-nav a { display: inline-flex; align-items: center; min-height: 44px; }
  dialog { padding: 30px 22px; }
}

@media (max-width: 380px) {
  .order-category { grid-template-columns: 38% 62%; }
  .order-category span { padding: 6px; font-size: 12px; }
  .contact-form { padding: 16px; }
  .store-hours dl > div { flex-wrap: wrap; gap: 3px 12px; }
  .store-hours dd { text-align: left; }
}

.page-heading{font-size:clamp(35px,4vw,58px);line-height:1;letter-spacing:-2px;margin:12px 0}.story .page-heading{font-size:clamp(44px,5vw,72px)}.order-menu-top .page-heading{font-size:32px;line-height:1.2;letter-spacing:-.6px;margin:0 0 9px}@media(max-width:760px){.order-menu-top .page-heading{font-size:27px}}
