/* Long translated words and accented capitals must fit without clipping. */
html { overflow-wrap: break-word; }
h1, h2, h3 { overflow-wrap: break-word; hyphens: none; }
body[data-page="ai-assistant-conditions"] main { width: calc(100% - 40px); max-width: 820px; }
body[data-page="ai-assistant-conditions"] h1 { font-size: clamp(28px, 4.2vw, 56px); line-height: 1.2; letter-spacing: -.02em; }
body[data-page="confirm-email"] h1 { font-size: clamp(24px, 4vw, 36px); line-height: 1.25; }
[data-ui="hero"] h1 { hyphens: none; overflow-wrap: normal; }
[data-ui="hero"] h1 > span { white-space: nowrap; }
[data-ui="booking-summary-heading"] { gap: 16px; flex-wrap: wrap; }
[data-ui="booking-summary-heading"] > div { min-width: 0; }
/* Grid children must be allowed to shrink before translated text determines width. */
#dc-root footer, #static-page footer {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)) !important;
}
#dc-root footer > div, #static-page footer > div { min-width: 0; max-width: 100%; }
#dc-root header [data-ui="open-booking"],
#static-page header [data-ui="open-booking"] {
  min-width: 0; white-space: normal !important; overflow-wrap: anywhere;
}
[data-ui="hero-information"] { flex-wrap: wrap; }
[data-ui="hero-information"] > button {
  min-width: 0; white-space: normal !important; overflow-wrap: anywhere;
}
[data-ui="booking-dialog"] { min-width: 0; }
[data-ui="booking-row"] > div {
  min-width: min(100%, 250px) !important; max-width: 100%; box-sizing: border-box;
}
[data-ui="booking-times"] {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 100px), 1fr)) !important;
  grid-template-rows: none !important; grid-auto-flow: row !important;
  height: auto !important; min-height: 0 !important;
}
[data-ui="booking-phone"] { min-width: 0; }
[data-ui="booking-details"] {
  min-width: 0; white-space: normal !important; overflow-wrap: anywhere;
}
[data-ui="booking-card-header"] { flex-wrap: wrap; gap: 8px; }
[data-ui="booking-card-header"] > div { min-width: 0; }
@media (max-width: 600px) {
  [data-ui="hero-information"] { flex-wrap: wrap; }
  [data-ui="hero-information"] > button {
    flex: 1 1 100px !important; min-width: 0; white-space: normal !important;
    overflow-wrap: anywhere; padding: 11px 8px !important;
  }
  /* The pre-hydration render uses desktop state, so its footer must reflow too. */
  #static-page footer { grid-template-columns: minmax(0, 1fr) !important; }
  #static-page footer > div { min-width: 0; max-width: 100%; }
  #static-page footer > div:last-child {
    align-items: flex-start !important; text-align: left !important; justify-self: start !important;
  }
  #dc-root header > div:first-child,
  #static-page header > div:first-child { flex: 0 0 71px !important; }
  #dc-root header > div:nth-child(2),
  #static-page header > div:nth-child(2) {
    flex: 1 1 auto; min-width: 0; white-space: normal !important;
    text-align: center; overflow-wrap: anywhere; line-height: 1.5;
  }
  #dc-root header > div:last-child,
  #static-page header > div:last-child { flex: 0 1 auto !important; max-width: 40%; }
  #dc-root header [data-ui="open-booking"],
  #static-page header [data-ui="open-booking"] {
    white-space: normal !important; overflow-wrap: anywhere; hyphens: auto;
    padding: 8px 10px !important; font-size: 12px !important; line-height: 1.4 !important;
  }
}

[data-ui="carousel"] { overflow: clip; }

/* Display-font accents extend beyond cap height, including instructional copy. */
#dc-root [style*="Anton"], #static-page [style*="Anton"],
#dc-root [style*="Oswald"], #static-page [style*="Oswald"] { line-height: 1.4 !important; }
