/* Keep decorative overflow inside the viewport without disabling zoom. */
html, body {
  overflow-x: clip;
  overscroll-behavior-x: none;
}
.home-hero .grid > *, .home-search > input { min-width: 0; }
/* Opaque mobile navigation with independent vertical scrolling. */
@media (max-width: 1023px) {
  [data-site-navigation] {
    background: #102f30;
    color: #f4faf8;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  #mobile-menu {
    position: absolute;
    inset: 100% 0 auto;
    height: calc(100dvh - 4.5rem);
    max-height: calc(100dvh - 4.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #102f30;
    color: #f4faf8;
    border-color: #315253;
    padding: 1rem 1rem max(1.5rem, env(safe-area-inset-bottom));
    box-shadow: 0 12px 24px rgb(23 35 34 / 10%);
  }
  #mobile-menu > .grid > a,
  #mobile-menu details {
    background: #1b4041;
    color: #f4faf8;
    border-color: #416162;
  }
  #mobile-menu details > div { border-color: #416162; }
  #mobile-menu details a { color: #e0efea; }
  #mobile-menu a:hover { background: #2b5556; color: #fff; }
  #mobile-menu a:focus-visible, #mobile-menu summary:focus-visible {
    outline: 2px solid #8de5d2;
    outline-offset: 3px;
  }
  #mobile-menu form { color: #172322; }
  #mobile-menu-toggle { background: #1b4041; color: #fff; border-color: #416162; }
  html[data-mobile-menu-open], html[data-mobile-menu-open] body {
    overflow: hidden;
  }
  html[data-mobile-menu-open] [data-site-navigation] {
    z-index: 100;
  }
}

/* Grid children must shrink to the available column, including when ads load. */
.establishment-layout > *,
.establishment-sidebar > *,
.establishment-fields > *,
.local-detail dl > div {
  min-width: 0;
  max-width: 100%;
}
.establishment-layout .local-detail {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
.establishment-form input:not([type="checkbox"]),
.establishment-form select,
.establishment-form textarea,
.transport-help input {
  min-width: 0;
  max-width: 100%;
}
.establishment-address iframe { max-width: 100%; }
@media (max-width: 760px) {
  .establishment-layout, .establishment-fields {
    grid-template-columns: minmax(0, 1fr);
  }
}
