/* One content boundary for public headers, sections, catalogue pages and footers. */
html.site-menu-open { overflow: hidden; }
.site-page { --site-content-width: 1220px; --site-gutter: 20px; }
.site-page .container, .site-page .food-shell {
    box-sizing: border-box;
    width: 100%;
    max-width: calc(var(--site-content-width) + 2 * var(--site-gutter));
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--site-gutter);
    padding-right: var(--site-gutter);
}
/* Nested promotional-card containers retain their existing local inset. */
.site-page .container .container { padding-left: 12px; padding-right: 12px; }
@media (max-width: 375px) {
    .site-page { --site-gutter: 16px; }
}
@media (min-width: 768px) {
    .site-page { --site-gutter: 24px; }
}
@media (min-width: 1200px) {
    .site-page { --site-gutter: 32px; }
}
/* Shared footer: the grid owns column spacing, without legacy widget padding. */
.site-footer .widget-area { padding: 32px 0 28px; }
.site-footer .footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 28px clamp(24px, 4vw, 56px);
}
.site-footer .footer-widget { min-width: 0; margin: 0; }
.site-footer .footer-widget .widget_title { margin: 0 0 16px; padding-bottom: 12px; }
.site-footer .footer-brand { display: block; width: fit-content; margin: 0 0 12px; }
.site-footer .footer-brand img { display: block; width: 96px; height: auto; object-fit: contain; }
.site-footer .as-widget-about .about-text { max-width: 36ch; margin: 0 0 12px; }
.site-footer .as-social { display: flex; flex-wrap: wrap; gap: 8px; }
.site-footer .as-social a { flex: 0 0 auto; margin: 0; }
.site-footer .footer-widget.widget_nav_menu .menu { display: grid; gap: 8px; margin: 0; }
.site-footer .footer-widget.widget_nav_menu a { margin-bottom: 0; }
.site-footer .as-widget-contact { max-width: none; }
.site-footer .info-box { align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.site-footer .info-box:last-child { margin-bottom: 0; }
.site-footer .info-box_icon { margin-right: 0; }
.site-footer .info-box_text { min-width: 0; overflow-wrap: anywhere; }
.site-footer .footer-contact-link { padding-left: 40px; }
.site-footer .copyright-wrap { padding: 10px 0; }
.site-footer .copyright-text { line-height: 1.5; }
@media (max-width: 640px) {
    /* Keep copyright text clear of the existing fixed scroll-to-top button. */
    .site-footer .copyright-wrap .container { padding-right: calc(var(--site-gutter) + 60px); }
}
@media (min-width: 600px) and (max-width: 991px) {
    .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .site-footer .footer-contact { grid-column: 1 / -1; }
}
@media (min-width: 992px) {
    .site-footer .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
