/* ==========================================================
   UI-012 · Catering menu
========================================================== */

.ct-page-catering-menu,
.ct-page-catering-menu #page,
.ct-page-catering-menu #content,
.ct-page-catering-menu #content > .ast-container,
.ct-catering-menu { background-color: var(--ct-color-background); }

.ct-catering-menu { overflow: clip; }
.ct-catering-menu .ct-container { width: min(100% - (2 * var(--ct-space-lg)), var(--ct-width-container)); margin-inline: auto; }

.ct-catering-menu__hero { position: relative; display: grid; min-height: clamp(22rem, 38vh, 32rem); align-items: end; isolation: isolate; overflow: hidden; background: var(--ct-color-secondary); color: var(--ct-color-text-white); }
.ct-catering-menu__hero-image,
.ct-catering-menu__hero-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.ct-catering-menu__hero-image { z-index: -2; object-fit: cover; object-position: center 54%; }
.ct-catering-menu__hero-overlay { z-index: -1; background: linear-gradient(90deg, rgba(43,43,43,.96) 0%, rgba(43,43,43,.76) 48%, rgba(43,43,43,.28) 100%); }
.ct-catering-menu__hero-content { padding-block: var(--ct-space-xl); }
.ct-catering-menu__hero-content h1,
.ct-catering-menu__hero-content p { max-width: var(--ct-width-content); color: inherit; }
.ct-catering-menu__kicker { margin-bottom: var(--ct-space-sm); color: var(--ct-color-primary) !important; font-size: var(--ct-fs-sm); font-weight: var(--ct-fw-bold); letter-spacing: .12em; text-transform: uppercase; }
.ct-catering-menu__lead { font-size: var(--ct-fs-lg); }
.ct-catering-menu__availability { margin-bottom: 0; color: rgba(255,255,255,.82) !important; font-size: var(--ct-fs-sm); }

/* Dated PDF catalogue. Independent of the responsive dish-card layout. */
.ct-catering-menu__download { padding-block: var(--ct-space-lg); background: var(--ct-color-surface); border-bottom: var(--ct-border-thin) solid var(--ct-color-border); }
.ct-catering-menu__download-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ct-space-lg); }
.ct-catering-menu__download-copy { flex: 1 1 22rem; min-width: 0; }
.ct-catering-menu__download-copy h2 { margin-bottom: var(--ct-space-sm); font-size: var(--ct-fs-2xl); }
.ct-catering-menu__download-copy p { margin-bottom: var(--ct-space-sm); }
.ct-catering-menu__download-copy .ct-catering-menu__download-meta { margin-bottom: 0; color: var(--ct-color-text-light); font-size: var(--ct-fs-sm); }
.ct-catering-menu__download-button { max-width: 100%; white-space: normal; text-align: center; }

.ct-catering-menu__group-nav { padding-block: var(--ct-space-xl); }
.ct-catering-menu__group-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ct-space-md); }
.ct-catering-group-card { display: flex; min-width: 0; min-height: 15rem; flex-direction: column; padding: var(--ct-space-lg); border: var(--ct-border-thin) solid var(--ct-color-border); border-radius: var(--ct-radius-xl); background: var(--ct-color-surface); box-shadow: var(--ct-shadow-sm); color: var(--ct-color-text); text-decoration: none; transition: transform var(--ct-transition-fast), box-shadow var(--ct-transition-fast), border-color var(--ct-transition-fast); }
.ct-catering-group-card:hover { border-color: var(--ct-color-primary); box-shadow: var(--ct-shadow-md); color: var(--ct-color-text); transform: translateY(-3px); }
.ct-catering-group-card:focus-visible { outline: var(--ct-border-thick) solid var(--ct-color-accent); outline-offset: var(--ct-space-xs); }
.ct-catering-group-card__count { color: var(--ct-color-primary-dark); font-size: var(--ct-fs-xs); font-weight: var(--ct-fw-bold); letter-spacing: .08em; text-transform: uppercase; }
.ct-catering-group-card strong { margin-block: var(--ct-space-sm); color: var(--ct-color-secondary); font-family: var(--ct-font-heading); font-size: var(--ct-fs-xl); line-height: var(--ct-lh-tight); }
.ct-catering-group-card > span:not(.ct-catering-group-card__count):not(.ct-catering-group-card__link) { font-size: var(--ct-fs-sm); }
.ct-catering-group-card__link { margin-top: auto; padding-top: var(--ct-space-md); color: var(--ct-color-primary-dark); font-size: var(--ct-fs-sm); font-weight: var(--ct-fw-semibold); }

.ct-catering-menu__section { padding-block: var(--ct-space-xl); scroll-margin-top: calc(var(--ct-header-height) + var(--ct-space-md)); }
.ct-catering-menu__section:nth-child(even) { background: color-mix(in srgb, var(--ct-color-surface) 48%, transparent); }
.ct-catering-menu__section-header { max-width: var(--ct-width-content); margin-bottom: var(--ct-space-lg); }
.ct-catering-menu__section-header h2 { margin-bottom: var(--ct-space-sm); }
.ct-catering-menu__section-header p { margin-bottom: 0; color: var(--ct-color-text-light); font-size: var(--ct-fs-lg); }
.ct-catering-menu__dish-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ct-space-lg); }

.ct-catering-dish-card { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-width: 0; overflow: hidden; border: var(--ct-border-thin) solid var(--ct-color-border); border-radius: var(--ct-radius-xl); background: var(--ct-color-surface); box-shadow: var(--ct-shadow-md); }
.ct-catering-dish-card__image { display: block; width: 100%; height: 100%; min-height: 100%; object-fit: cover; }
.ct-catering-dish-card__content { display: flex; min-width: 0; flex-direction: column; padding: var(--ct-space-lg); background-color: var(--ct-color-surface); }
.ct-catering-dish-card h3 { margin-bottom: var(--ct-space-sm); }
.ct-catering-dish-card__description { color: var(--ct-color-text); }
.ct-catering-dish-card__variants { display: flex; flex-wrap: wrap; gap: var(--ct-space-sm); margin: 0 0 var(--ct-space-md); padding: 0; list-style: none; }
.ct-catering-dish-card__variants li,
.ct-catering-dish-card__diet { width: fit-content; padding: var(--ct-space-xs) var(--ct-space-sm); border-radius: var(--ct-radius-pill); background: var(--ct-color-background); color: var(--ct-color-secondary); font-size: var(--ct-fs-xs); font-weight: var(--ct-fw-semibold); }
.ct-catering-dish-card__diet { margin-bottom: var(--ct-space-md); }
.ct-catering-dish-card__spice { margin: auto 0 0; padding-top: var(--ct-space-sm); border-top: var(--ct-border-thin) solid var(--ct-color-border); color: var(--ct-color-text-light); font-size: var(--ct-fs-sm); }

.ct-catering-menu__notice { padding-block: var(--ct-space-xl); background: var(--ct-color-secondary); color: var(--ct-color-text-white); }
.ct-catering-menu__notice .ct-container,
.ct-catering-menu__cta .ct-container { max-width: var(--ct-width-content); }
.ct-catering-menu__notice h2,
.ct-catering-menu__notice p { color: inherit; }
.ct-catering-menu__notice p { margin-bottom: 0; }
.ct-catering-menu__cta { padding-block: var(--ct-space-2xl); text-align: center; }
.ct-catering-menu__empty { padding-block: var(--ct-space-2xl); text-align: center; }

@media (max-width: 991px) {
    .ct-catering-menu__group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 2026-09-18: UI-012 mobile/tablet readability; desktop remains two cards.
   Only the dish grid changes here; group navigation keeps its breakpoints. */
@media (max-width: 1366px) {
    .ct-catering-menu__dish-grid { grid-template-columns: 1fr; }
    .ct-catering-dish-card__image { min-height: 0; }
    .ct-catering-dish-card__content { background-color: #fffdf5; }
}

/* Narrow screens: independent image row, then opaque text panel.
   Reset height:100% so the image cannot extend into the content row. */
@media (max-width: 767px) {
    .ct-catering-dish-card { grid-template-columns: 1fr; }
    .ct-catering-dish-card__image { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
    .ct-catering-dish-card__content { padding: var(--ct-space-md); }
}

@media (max-width: 575px) {
    .ct-catering-menu .ct-container { width: min(100% - (2 * var(--ct-space-md)), var(--ct-width-container)); }
    .ct-catering-menu__hero { min-height: clamp(20rem, 30vh, 24rem); }
    .ct-catering-menu__hero-overlay { background: rgba(43,43,43,.78); }
    .ct-catering-menu__hero-content,
    .ct-catering-menu__group-nav,
    .ct-catering-menu__section,
    .ct-catering-menu__cta { padding-block: var(--ct-space-xl); }
    .ct-catering-menu__group-grid { grid-template-columns: 1fr; }
    .ct-catering-group-card { min-height: 0; padding: var(--ct-space-md); }
}

@media (prefers-reduced-motion: reduce) {
    .ct-catering-menu *,
    .ct-catering-menu *::before,
    .ct-catering-menu *::after { scroll-behavior: auto; transition-duration: .01ms; }
}
