/* Containment after reserving the lateral ornament lanes. */
main :is(article, .wrap, .dish-body, .section-head, .contact-panel, .location-grid, .review-wall) {
  min-inline-size: 0;
  box-sizing: border-box;
}
main :is(h1, h2, h3, p, a, span, strong, label, dt, dd) {
  overflow-wrap: anywhere;
  max-inline-size: 100%;
}
.menu-section .dish-grid > .dish-card { max-inline-size: 100%; }
.menu-section .dish-grid .dish-body { min-block-size: 0; }
.menu-section .dish-title-row { grid-template-columns: minmax(0, 1fr) max-content; }
.menu-section .dish-title-row h3 { min-inline-size: 0; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.menu-section .dish-price { font-size: .95rem; }
.menu-section .dish-grid .dish-body p { font-size: .85rem; line-height: 1.45; }
.opening-hours { grid-template-columns: minmax(0, 1fr) max-content; column-gap: .75rem; }
.opening-hours dd { text-align: right; white-space: normal; }
.location-card { min-inline-size: 0; }
.location-card .btn { white-space: normal; text-align: center; max-inline-size: 100%; }
.hero .award-tribute { min-inline-size: 0; }
.award-seal .award-number { max-inline-size: none; }
.review-note { min-inline-size: 0; max-inline-size: 100%; }
.review-note h3 { overflow-wrap: normal; hyphens: auto; }
.contact-fields > label { min-inline-size: 0; }
.contact-fields :is(input, select, textarea) { inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; box-sizing: border-box; }
.contact-section .contact-wrap { display: flex; flex-direction: column; min-block-size: 0; }
.contact-section .contact-panel { min-block-size: 0; flex-shrink: 1; overflow-y: auto; }
.contact-section .section-head, .contact-section .contact-channels { flex-shrink: 0; }
.forest-footer :is(.footer-intro, .footer-navigation, .footer-signature) { min-inline-size: 0; }
.footer-signature > span { max-inline-size: 100%; overflow-wrap: anywhere; }
.footer-badge { white-space: normal; }
@media (max-height: 700px) {
  .menu-section .dish-grid { --product-photo-height: 70px; }
  .menu-section .dish-grid .dish-body { padding: .75rem; gap: .5rem; }
}
@media (max-width: 599px) {
  :root { --ornament-lane: 30px; --ornament-size: 22px; }
  .hero .award-tribute { grid-template-columns: 48px minmax(0, 1fr); padding: .75rem; column-gap: .6rem; }
  .hero .award-seal { inline-size: 48px; }
  .hero .award-number { font-size: 1.25rem; }
  .hero .award-tribute #awardTitle { font-size: .95rem; }
  .hero .hero-actions { gap: .6rem; }
  .hero-actions .btn { white-space: normal; text-align: center; }
  #nosotros .fact-list { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
  .opening-hours { grid-template-columns: minmax(0, 1fr); row-gap: .3rem; }
  .opening-hours dd { text-align: left; margin: 0 0 .6rem; }
  .location-card { padding: 1rem; }
  .contact-section .contact-channels { gap: .35rem; }
  .contact-section .contact-channels .btn { font-size: .72rem; padding-inline: .45rem; }
}
@media (max-height: 550px) {
  .menu-section .dish-grid .dish-image { block-size: 100%; }
  .menu-section .dish-grid > .dish-card { grid-template-columns: 23% minmax(0, 1fr); }
  .menu-section .dish-title-row { column-gap: .35rem; }
  .menu-section .dish-title-row h3 { font-size: .95rem; }
  .menu-section .dish-grid .dish-body { padding: .65rem; gap: .35rem; }
  .menu-section .dish-price { font-size: .85rem; }
}
