/* ==========================================================================
   burum — content pages (the house, events, private dining, gallery, news,
   contact, gift cards, careers, allergens, legal, 404).
   1. Page heading  2. Reading  3. Shared pieces  4. The house  5. Events
   6. Forms  7. Private dining  8. Gallery  9. Contact  10. Gift cards
   11. Careers  12. Allergens  13. News  14. Not found  15. Responsive
   Colours are the tokens of main.css, so both themes follow.
   ========================================================================== */

/* 1. Page heading ----------------------------------------------------------- */
.page-hero__grid { display: grid; gap: clamp(2rem, 1rem + 3.5vw, 4.5rem); }
.page-hero--split { padding-block: clamp(2rem, 1.25rem + 3vw, 4.5rem); }
.page-hero--split .page-hero__grid { grid-template-columns: minmax(0, 11fr) minmax(0, 10fr); align-items: center; }
.page-hero--split .page-title { font-size: clamp(2.5rem, 1.6rem + 3vw, 4.5rem); }
.page-hero__text > :last-child { margin-bottom: 0; }
.page-hero .open-pill { margin: 1.5rem 0 0; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.page-hero__media { position: relative; min-width: 0; }
.page-hero__media > .img,
.page-hero__media > .ph { aspect-ratio: 4 / 3; border-radius: var(--radius-lg); box-shadow: 0 40px 80px -40px rgb(var(--c-shade) / 0.55); }

.chip-nav { margin-top: 1.75rem; }
.chip-nav ul { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.chip-nav a { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 40px; padding: 0.4rem 1rem; border: 1px solid var(--c-border); border-radius: 999px; background: var(--c-surface); color: var(--c-text); font-size: var(--fs-sm); font-weight: 500; white-space: nowrap; text-decoration: none; transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.chip-nav a:hover { border-color: var(--c-accent); color: var(--c-accent-text); }
.chip-nav a[aria-current] { border-color: var(--c-accent); background: var(--c-accent); color: var(--c-on-accent); }
.chip-nav__count { font-size: var(--fs-xs); font-variant-numeric: tabular-nums; color: var(--c-muted); }

/* 2. Reading: page content, articles and legal pages ----------------------- */
.prose,
.is-legal .entry-content { max-width: var(--container-text); }
.prose > :first-child,
.is-legal .entry-content > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }
.prose h2,
.is-legal .entry-content h2 { margin: 1.6em 0 0.5em; font-size: clamp(1.75rem, 1.45rem + 1.1vw, 2.375rem); }
.prose h3,
.is-legal .entry-content h3 { margin: 1.4em 0 0.4em; font-size: 1.5rem; }
.prose ul,
.prose ol,
.is-legal .entry-content ul,
.is-legal .entry-content ol { padding-left: 1.25rem; }
.prose li,
.is-legal .entry-content li { margin-bottom: 0.4em; }
.prose li::marker,
.is-legal .entry-content li::marker { color: var(--c-accent-text); }
.prose strong,
.is-legal .entry-content strong { font-weight: 600; }
.prose blockquote { margin: 1.75em 0; padding-left: 1.25rem; border-left: 2px solid var(--c-line); font-family: var(--font-display); font-size: 1.375rem; font-style: italic; line-height: 1.4; }
.prose hr,
.is-legal .entry-content hr { margin: 2.5rem 0; border: 0; border-top: 1px solid var(--c-border); }
.prose table,
.is-legal .entry-content table { width: 100%; margin: 1.5em 0; border-collapse: collapse; font-size: var(--fs-sm); }
.prose th,
.prose td,
.is-legal .entry-content th,
.is-legal .entry-content td { padding: 0.6rem 0.5rem; border-bottom: 1px solid var(--c-border); text-align: left; vertical-align: top; }
.demo-note { padding: 1rem 1.25rem; border: 1px dashed var(--c-line); border-radius: var(--radius); background: color-mix(in srgb, var(--c-accent) 6%, transparent); font-size: var(--fs-sm); }

.is-legal .page-header { max-width: var(--container-text); margin: 0 auto 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--c-border); }
.is-legal .page-title { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.75rem); }
.is-legal .entry-content { margin-inline: auto; }
.is-legal .entry-content h2 { font-size: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem); }

/* 3. Shared pieces ----------------------------------------------------------- */
.facts { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin: 2rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid var(--c-border); list-style: none; }
.facts li { display: flex; flex-direction: column; min-width: 6rem; }
.facts b { font-family: var(--font-display); font-size: 2.5rem; font-weight: 500; line-height: 1; color: var(--c-accent-text); }
.facts span { margin-top: 0.4rem; font-size: var(--fs-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-muted); }

.pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: clamp(1.5rem, 1rem + 2vw, 2.5rem); margin: 0; padding: 0; list-style: none; }
.pillar { padding-top: 1.5rem; border-top: 1px solid var(--c-feature-border); }
.pillar__icon { width: 32px; height: 32px; margin-bottom: 1rem; color: var(--c-feature-accent); }
.pillar__title { margin-bottom: 0.4rem; font-size: 1.625rem; }
.pillar p { margin: 0; font-size: var(--fs-sm); }
.pillars--plain .pillar { border-top-color: var(--c-border); }
.pillars--plain .pillar__icon { color: var(--c-accent-text); }
.pillars--plain .pillar p { color: var(--c-muted); }

.check-list { display: flex; flex-direction: column; gap: 0.5rem; margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); }
.check-list li { display: flex; align-items: flex-start; gap: 0.6rem; }
.check-list .icon { width: 18px; height: 18px; flex: none; margin-top: 0.2em; color: var(--c-accent-text); }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; }
.split--text-first { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; }
.split .section-head { margin-bottom: 1.5rem; }
.split__media { overflow: hidden; border-radius: var(--radius-lg); }
.split__media .img,
.split__media .ph { aspect-ratio: 3 / 2; }

.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 2rem clamp(1.25rem, 0.5rem + 2vw, 2.5rem); margin: 0; padding: 0; list-style: none; counter-reset: step; }
.step { position: relative; padding-top: 3.5rem; counter-increment: step; }
.step::before { content: counter(step, decimal-leading-zero); position: absolute; top: 0; left: 0; font-family: var(--font-display); font-size: 2.5rem; font-weight: 500; line-height: 1; color: var(--c-accent-text); }
.step::after { content: ""; position: absolute; top: 1.3rem; left: 3.75rem; right: 0; height: 1px; background: var(--c-border); }
.step__title { margin-bottom: 0.35rem; font-size: 1.5rem; }
.step p { margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }

.cta-band__inner { max-width: 46rem; margin-inline: auto; text-align: center; }
.cta-band h2 { margin-bottom: 0.35em; }
.cta-band__text { margin-inline: auto; font-size: var(--fs-lg); }
.cta-band__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 2rem; }
.section--feature .cta-band__phone { margin: 1.5rem 0 0; font-size: var(--fs-sm); }
.section--feature .cta-band__phone a { color: var(--c-feature-accent); }

.quick-links { display: flex; flex-direction: column; gap: 0.6rem; margin: 1.75rem 0 0; padding: 0; list-style: none; }
.quick-links a { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); color: var(--c-text); text-decoration: none; transition: border-color var(--dur) var(--ease); }
.quick-links a:hover { border-color: var(--c-accent); color: var(--c-text); }
.quick-links .icon { width: 24px; height: 24px; flex: none; color: var(--c-accent-text); }
.quick-links span { display: flex; flex-direction: column; font-size: var(--fs-sm); line-height: 1.4; color: var(--c-muted); }
.quick-links b { font-size: var(--fs-base); font-weight: 600; color: var(--c-text); }

.link-arrow--back:hover svg { transform: translateX(-3px); }

/* 4. The house --------------------------------------------------------------- */
.story { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2.5rem, 1rem + 5vw, 6rem); align-items: center; }
.story__content p { color: var(--c-muted); }
.story__content > p:first-child { font-size: var(--fs-lg); color: var(--c-text); }
.story__media { position: relative; padding-bottom: 14%; }
.story__main { width: 80%; margin-left: auto; overflow: hidden; border-radius: var(--radius-lg); }
.story__main .img,
.story__main .ph { aspect-ratio: 4 / 5; }
.story__small { position: absolute; left: 0; bottom: 0; width: 44%; overflow: hidden; border: 8px solid var(--c-bg); border-radius: var(--radius-lg); }
.story__small .img,
.story__small .ph { aspect-ratio: 1 / 1; }

.chef__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.chef__photos figure { margin: 0; }
.chef__photos .img,
.chef__photos .ph { aspect-ratio: 4 / 3; border-radius: var(--radius); }
.chef__photos figcaption { margin-top: 0.5rem; font-size: var(--fs-xs); color: var(--c-muted); }

.team-photo { margin: 0 0 clamp(2rem, 1.5rem + 2vw, 3rem); }
.team-photo .img,
.team-photo .ph { aspect-ratio: 16 / 9; border-radius: var(--radius-lg); object-position: center 30%; }
.team-photo figcaption { margin-top: 0.75rem; font-size: var(--fs-sm); color: var(--c-muted); }
.team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem clamp(1.25rem, 0.5rem + 2vw, 2.25rem); margin: 0; padding: 0; list-style: none; }
.person { position: relative; }
.person__media { margin-bottom: 1rem; overflow: hidden; border-radius: var(--radius-lg); }
.person__media .img,
.person__media .ph { aspect-ratio: 4 / 5; transition: transform 700ms var(--ease); }
.person:hover .person__media .img { transform: scale(1.03); }
.person__role { margin: 0 0 0.2rem; font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-accent-text); }
.person__name { margin: 0 0 0.4rem; font-size: 1.625rem; }
.person__text { margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }

.producers { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.producers__head .section-head { margin-bottom: 1.25rem; }
.producers__photo { margin-top: 1.75rem; overflow: hidden; border-radius: var(--radius-lg); }
.producers__photo .img,
.producers__photo .ph { aspect-ratio: 4 / 3; }
.producer-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--c-border); }
.producer { padding: 1.25rem 0; border-bottom: 1px solid var(--c-border); }
.producer__name { margin: 0 0 0.25rem; font-size: 1.375rem; }
.producer__what { margin: 0 0 0.35rem; font-size: var(--fs-sm); }
.producer__where { display: flex; align-items: center; gap: 0.35rem; margin: 0; font-size: var(--fs-xs); letter-spacing: 0.06em; color: var(--c-muted); }
.producer__where .icon { width: 14px; height: 14px; color: var(--c-accent-text); }

/* 5. Events ------------------------------------------------------------------ */
.agenda-intro { margin-bottom: 2.5rem; }
.agenda-empty { padding: 2.5rem; border: 1px dashed var(--c-line); border-radius: var(--radius-lg); text-align: center; }
.agenda-empty .link-arrow { margin-inline: auto; }
.agenda-private { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; }
.agenda-private h2 { margin-bottom: 0.3em; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.agenda-private p { max-width: 40rem; margin: 0; color: var(--c-muted); }

.event-list-cards { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--c-border); }
.event-list-cards > li { border-bottom: 1px solid var(--c-border); }
.event-card { position: relative; display: grid; grid-template-columns: minmax(0, 19rem) minmax(0, 1fr) minmax(0, 13rem); gap: clamp(1.25rem, 0.5rem + 2vw, 2.5rem); align-items: center; padding-block: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); }
.event-card__media { position: relative; }
.event-card__media a { display: block; overflow: hidden; border-radius: var(--radius-lg); }
.event-card__media .img,
.event-card__media .ph { aspect-ratio: 4 / 3; transition: transform 700ms var(--ease); }
.event-card:hover .event-card__media .img { transform: scale(1.04); }
.event-card .date-badge { position: absolute; top: 0.75rem; left: 0.75rem; }
.event-card__when { margin: 0 0 0.4rem; font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-accent-text); }
.event-card__title { margin: 0 0 0.5rem; font-size: clamp(1.625rem, 1.35rem + 0.9vw, 2.125rem); }
.event-card__title a { color: inherit; text-decoration: none; }
.event-card__title a:hover { color: var(--c-accent-text); }
.event-card__text { margin: 0; color: var(--c-muted); }
.event-card__side { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
.event-card__price { display: flex; align-items: baseline; gap: 0.4rem; margin: 0; }
.event-card__price .price { font-family: var(--font-display); font-size: 2rem; font-weight: 600; line-height: 1; color: var(--c-accent-text); }
.event-card__price small { font-size: var(--fs-xs); color: var(--c-muted); }
.event-card__btn { width: 100%; }

.event-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 2rem clamp(1.25rem, 0.5rem + 2vw, 2.5rem); margin: 0; padding: 0; list-style: none; }
.event-card--compact { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 1rem; padding: 0; }
.event-card--compact .event-card__title { font-size: 1.5rem; }
.event-card--compact .event-card__side { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }

.date-badge { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 4.25rem; padding: 0.5rem 0.6rem 0.55rem; border-radius: var(--radius-lg); background: var(--c-surface); color: var(--c-text); line-height: 1; text-align: center; box-shadow: 0 10px 24px -12px rgb(var(--c-shade) / 0.6); }
.date-badge__weekday { font-size: 0.625rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-muted); }
.date-badge__day { margin: 0.2rem 0 0.1rem; font-family: var(--font-display); font-size: 2rem; font-weight: 600; }
.date-badge__month { font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-accent-text); }
.date-badge--large { min-width: 5.25rem; }
.date-badge--large .date-badge__day { font-size: 2.75rem; }

.seats { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; font-size: var(--fs-sm); font-weight: 500; }
.seats__dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--c-ok); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-ok) 25%, transparent); }
.seats--low { color: var(--c-warn); }
.seats--low .seats__dot { background: var(--c-warn); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-warn) 25%, transparent); }
.seats--full { color: var(--c-err); }
.seats--full .seats__dot { background: var(--c-err); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-err) 25%, transparent); }
.seats--past,
.seats--free { color: var(--c-muted); }
.seats--past .seats__dot,
.seats--free .seats__dot { background: var(--c-muted); box-shadow: none; }

.event-facts { display: flex; flex-direction: column; gap: 0.6rem; margin: 1.75rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--c-border); list-style: none; }
.event-facts li { display: flex; align-items: center; gap: 0.75rem; }
.event-facts .icon { width: 20px; height: 20px; flex: none; color: var(--c-accent-text); }
.event-facts .seats__dot { margin-inline: 6px; }
.event-hero__media { position: relative; }
.event-hero__media .img,
.event-hero__media .ph { aspect-ratio: 4 / 3; border-radius: var(--radius-lg); box-shadow: 0 40px 80px -40px rgb(var(--c-shade) / 0.55); }
.event-hero__media .date-badge { position: absolute; top: 1rem; left: 1rem; }

.event-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 25rem); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.event-layout__aside { scroll-margin-top: calc(var(--header-h) + 1rem); }
.programme { margin-top: 2.5rem; padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); }
.programme:first-child { margin-top: 0; }
.programme h2 { margin-bottom: 1rem; font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); }
.programme__list { margin: 0; padding: 0; list-style: none; counter-reset: course; }
.programme__list li { position: relative; padding: 0.9rem 0 0.9rem 2.75rem; border-top: 1px dotted var(--c-line); font-family: var(--font-display); font-size: 1.3125rem; font-weight: 500; line-height: 1.3; counter-increment: course; }
.programme__list li:first-child { border-top: 0; }
.programme__list li::before { content: counter(course); position: absolute; top: 0.85rem; left: 0; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border: 1px solid var(--c-line); border-radius: 50%; font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 500; color: var(--c-accent-text); }
.event-note { display: flex; align-items: flex-start; gap: 0.75rem; margin: 2rem 0 0; padding: 1rem 1.25rem; border-left: 3px solid var(--c-line); background: color-mix(in srgb, var(--c-accent) 5%, transparent); font-size: var(--fs-sm); color: var(--c-muted); }
.event-note .icon { width: 20px; height: 20px; flex: none; margin-top: 0.1em; color: var(--c-accent-text); }
.event-back { margin: 2rem 0 0; }

.register-card { display: flex; flex-direction: column; gap: 1.25rem; padding: clamp(1.25rem, 1rem + 1vw, 2rem); border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); box-shadow: 0 30px 60px -40px rgb(var(--c-shade) / 0.5); }
.register-card__title { margin: 0; font-size: 2rem; }
.register-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; margin: 0; }
.register-card__price .price { font-family: var(--font-display); font-size: 2.75rem; font-weight: 500; line-height: 1; color: var(--c-accent-text); }
.register-card__price span:last-child { font-size: var(--fs-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-muted); }
.register-card__note { margin: -0.75rem 0 0; font-size: var(--fs-sm); color: var(--c-muted); }
.register-card__intro,
.register-card__closed { margin: 0; font-size: var(--fs-sm); }
.seats-meter { display: flex; flex-direction: column; gap: 0.5rem; padding: 1rem 0; border-block: 1px solid var(--c-border); }
.seats-meter__bar { display: block; height: 6px; overflow: hidden; border-radius: 3px; background: var(--c-border); }
.seats-meter__bar > span { display: block; height: 100%; border-radius: inherit; background: var(--c-ok); }
.seats-meter--low .seats-meter__bar > span { background: var(--c-warn); }
.seats-meter--full .seats-meter__bar > span { background: var(--c-err); }
.seats-meter__text { margin: 0; font-size: var(--fs-xs); color: var(--c-muted); }
.register-form__total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.5rem; margin: 0; padding-top: 0.75rem; border-top: 1px solid var(--c-border); font-size: var(--fs-sm); }
.register-form__total output { font-family: var(--font-display); font-size: 1.75rem; font-weight: 600; color: var(--c-accent-text); }
.register-form__total span { color: var(--c-muted); }
.register-form__submit { width: 100%; }

/* 6. Forms ------------------------------------------------------------------- */
.form { position: relative; display: flex; flex-direction: column; gap: 1.25rem; }
.form-card { padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); }
.form__group { min-width: 0; margin: 0; padding: 0; border: 0; }
.form__group legend { margin-bottom: 0.9rem; padding: 0; font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; }
.form__group + .form__group { padding-top: 1.25rem; border-top: 1px solid var(--c-border); }
.form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.form__grid .field--wide,
.form__grid .field--textarea { grid-column: 1 / -1; }
.form .field input:not([type="checkbox"]):not([type="radio"]),
.form .field select,
.form .field textarea { width: 100%; min-height: 50px; padding: 0.6rem 0.85rem; border: 1px solid var(--c-border); border-radius: var(--radius); background-color: var(--c-bg); color: var(--c-text); font: var(--fs-base) / 1.4 var(--font-body); }
.form .field select { padding-right: 2.25rem; }
.form .field textarea { min-height: 7.5rem; resize: vertical; }
.form .field input[type="date"] { color-scheme: inherit; }
.form .field input:not([type="checkbox"]):focus,
.form .field select:focus,
.form .field textarea:focus { border-color: var(--c-accent); outline: 2px solid var(--c-accent); outline-offset: 0; }
.form .field ::placeholder { color: var(--c-muted); opacity: 0.8; }
.field__optional { font-size: 0.95em; font-weight: 400; letter-spacing: 0; text-transform: none; }
.field__hint { margin: 0; font-size: var(--fs-xs); color: var(--c-muted); }
.field__error { margin: 0; font-size: var(--fs-sm); font-weight: 500; color: var(--c-err); }
.form .field.is-invalid input,
.form .field.is-invalid select,
.form .field.is-invalid textarea { border-color: var(--c-err); }
.field--check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.25rem 0.75rem; align-items: start; }
.field--check input[type="checkbox"] { appearance: none; width: 22px; height: 22px; min-height: 0; margin: 0.1rem 0 0; padding: 0; border: 1.5px solid var(--c-line); border-radius: 4px; background: var(--c-bg) center / 16px no-repeat; cursor: pointer; }
.field--check input[type="checkbox"]:checked { border-color: var(--c-accent); background-color: var(--c-accent); background-image: var(--tick); }
.field--check input[type="checkbox"]:focus { outline: none; }
.field--check input[type="checkbox"]:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
.field--check.is-invalid input[type="checkbox"] { border-color: var(--c-err); }
.field--check label { font-size: var(--fs-sm); font-weight: 400; letter-spacing: 0; line-height: 1.5; text-transform: none; color: var(--c-text); cursor: pointer; }
.field--check .field__error { grid-column: 2; }
.form__hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; }
.form__legal { margin: 0; font-size: var(--fs-xs); color: var(--c-muted); }
.btn.is-busy { opacity: 0.7; cursor: progress; }

.form-notice { display: flex; align-items: flex-start; gap: 0.9rem; margin: 0 0 1.25rem; padding: 1.1rem 1.25rem; border: 1px solid var(--c-border); border-left: 3px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); font-size: var(--fs-sm); }
.form-notice:last-child { margin-bottom: 0; }
.form-notice:focus { outline: 2px solid var(--c-focus); outline-offset: 3px; }
.form-notice__icon { width: 22px; height: 22px; flex: none; margin-top: 0.1em; color: var(--c-accent-text); }
.form-notice__title { margin: 0 0 0.35rem; font-family: var(--font-display); font-size: 1.375rem; font-weight: 600; line-height: 1.2; color: var(--c-text); }
.form-notice p { margin: 0 0 0.4rem; }
.form-notice p:last-child { margin-bottom: 0; }
.form-notice ul { margin: 0.5rem 0 0; padding-left: 1.1rem; }
.form-notice li + li { margin-top: 0.25rem; }
.form-notice--ok { border-left-color: var(--c-ok); }
.form-notice--ok .form-notice__icon { color: var(--c-ok); }
.form-notice--error { border-left-color: var(--c-err); }
.form-notice--error .form-notice__icon,
.form-notice--error a { color: var(--c-err); }
.register-card .form-notice { margin: 0; }

.form-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.form-layout__intro .section-head { margin-bottom: 1.5rem; }
.form-layout__intro .contact-lines { margin: 0; }
.form-layout__photo { margin-top: 1.75rem; overflow: hidden; border-radius: var(--radius-lg); }
.form-layout__photo .img,
.form-layout__photo .ph { aspect-ratio: 4 / 3; }

/* 7. Private dining ---------------------------------------------------------- */
.spaces { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 0.5rem + 2vw, 2.25rem); }
.space { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); }
.space__media .img,
.space__media .ph { aspect-ratio: 4 / 3; }
.space__body { display: flex; flex-direction: column; gap: 0.9rem; padding: 1.4rem 1.5rem 1.6rem; }
.space__name { margin: 0; font-size: 2rem; }
.space__capacity { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.space__capacity li { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.3rem 0.75rem; border: 1px solid var(--c-border); border-radius: 999px; font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0.04em; }
.space__capacity .icon { width: 16px; height: 16px; color: var(--c-accent-text); }
.space__body > p { margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }

.packages { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: clamp(1.25rem, 0.5rem + 2vw, 2rem); align-items: start; }
.package { position: relative; display: flex; flex-direction: column; gap: 0.85rem; padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); border: 1px solid var(--c-feature-border); border-radius: var(--radius-lg); background: color-mix(in srgb, var(--c-on-feature) 4%, transparent); }
.package--featured { border-color: var(--c-feature-accent); background: color-mix(in srgb, var(--c-feature-accent) 9%, transparent); }
.package__badge { align-self: flex-start; margin: 0; padding: 0.3rem 0.75rem; border-radius: 999px; background: var(--c-feature-accent); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.section--feature .package__badge { color: var(--c-feature-bg); }
.package__name { margin: 0; font-size: 2rem; color: var(--c-on-feature); }
.package__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; margin: 0; padding-bottom: 1rem; border-bottom: 1px solid var(--c-feature-border); }
.package__price .price { font-family: var(--font-display); font-size: 3rem; font-weight: 500; line-height: 1; color: var(--c-feature-accent); }
.package__unit { font-size: var(--fs-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-on-feature-muted); }
.package__text { margin: 0; font-size: var(--fs-sm); }
.package__courses { margin: 0; padding: 0; list-style: none; }
.package__courses li { padding: 0.55rem 0; border-bottom: 1px dotted var(--c-feature-border); font-family: var(--font-display); font-size: 1.1875rem; line-height: 1.3; color: var(--c-on-feature); }
.packages .package__extra { margin: 0.25rem 0 0; font-size: var(--fs-sm); color: var(--c-feature-accent); }
.packages__note { max-width: 44rem; margin: 2rem auto 0; font-size: var(--fs-sm); text-align: center; }

/* 8. Gallery ----------------------------------------------------------------- */
.gallery-intro { padding-bottom: 0; }
.gallery-section__head { align-items: end; margin-bottom: 1.75rem; }
.gallery-section__head h2 { margin: 0; font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem); }
.gallery-section__head .lead { margin: 0.5rem 0 0; }
.gallery-section + .gallery-section .gallery-section__head { padding-top: clamp(2rem, 1.5rem + 2vw, 3rem); border-top: 1px solid var(--c-border); }
.gallery-section__count { margin: 0; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-muted); }
.gallery { columns: 3 16rem; column-gap: 1rem; margin: 0; padding: 0; list-style: none; }
.gallery__item { position: relative; margin: 0 0 1rem; break-inside: avoid; }
.gallery__link { position: relative; display: block; overflow: hidden; border-radius: var(--radius-lg); background: var(--c-ph-2); }
.gallery__link .img { transition: transform 700ms var(--ease), filter 700ms var(--ease); }
.gallery__link:hover .img { transform: scale(1.03); filter: brightness(1.05); }
.gallery__link:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 3px; }
.gallery__zoom { position: absolute; right: 0.75rem; bottom: 0.75rem; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: color-mix(in srgb, var(--c-surface) 88%, transparent); color: var(--c-text); opacity: 0; transform: translateY(4px); transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); }
.gallery__zoom .icon { width: 18px; height: 18px; }
.gallery__link:hover .gallery__zoom,
.gallery__link:focus-visible .gallery__zoom { opacity: 1; transform: none; }

.has-lightbox { overflow: hidden; }
.lightbox { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; overflow: hidden; border: 0; background: rgb(var(--c-shade) / 0.94); color: var(--c-on-feature); }
.lightbox::backdrop { background: transparent; }
.lightbox__inner { position: relative; display: grid; place-items: center; width: 100%; height: 100%; padding: 4.5rem clamp(0.75rem, 4vw, 5.5rem) 1.5rem; }
.lightbox__figure { display: flex; flex-direction: column; align-items: center; gap: 0.85rem; max-width: 100%; margin: 0; }
.lightbox__img { display: block; width: auto; height: auto; max-width: min(100%, 1400px); max-height: calc(100vh - 9rem); max-height: calc(100dvh - 9rem); border-radius: var(--radius); box-shadow: 0 30px 80px -30px rgb(var(--c-shade) / 0.8); transition: opacity var(--dur) var(--ease); }
.lightbox.is-loading .lightbox__img { opacity: 0.35; }
.lightbox__caption { max-width: 60ch; font-size: var(--fs-sm); text-align: center; color: var(--c-on-feature); }
.lightbox__count { position: absolute; top: 1.45rem; left: 1.5rem; margin: 0; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; letter-spacing: 0.1em; color: var(--c-on-feature-muted); }
.lightbox__btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid color-mix(in srgb, var(--c-on-feature) 30%, transparent); border-radius: 50%; background: color-mix(in srgb, var(--c-feature-bg) 65%, transparent); color: var(--c-on-feature); cursor: pointer; transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.lightbox__btn:hover { border-color: var(--c-feature-accent); background: var(--c-feature-accent); color: var(--c-feature-bg); }
.lightbox__btn:focus-visible { outline: 2px solid var(--c-feature-accent); outline-offset: 3px; }
.lightbox__btn .icon { width: 22px; height: 22px; }
.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev,
.lightbox__next { top: 50%; transform: translateY(-50%); }
.lightbox__prev { left: clamp(0.5rem, 2vw, 1.5rem); }
.lightbox__next { right: clamp(0.5rem, 2vw, 1.5rem); }

@media (prefers-reduced-motion: no-preference) {
	.lightbox[open] { animation: lightbox-in 220ms var(--ease); }
}

@keyframes lightbox-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* 9. Contact ----------------------------------------------------------------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.contact-grid__info { display: flex; flex-direction: column; gap: 2.25rem; }
.contact-card { padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); }
.contact-card__title { margin: 0 0 1rem; font-size: 1.875rem; }
.contact-card__address { margin: 0 0 1.25rem; font-size: var(--fs-lg); font-style: normal; line-height: 1.5; }
.contact-card .contact-lines { margin-bottom: 1.5rem; }
.contact-grid__map .map-card { margin-bottom: 2rem; }
.access-list { display: flex; flex-direction: column; gap: 1.1rem; margin: 0; padding: 0; list-style: none; }
.access-list li { display: flex; align-items: flex-start; gap: 1rem; }
.access-list__icon { width: 26px; height: 26px; flex: none; margin-top: 0.1rem; color: var(--c-accent-text); }
.access-list h3 { margin: 0 0 0.15rem; font-family: var(--font-body); font-size: var(--fs-base); font-weight: 600; letter-spacing: 0; line-height: 1.4; }
.access-list p { margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }
.contact-more { padding-bottom: var(--section-y); }

/* 10. Gift cards ------------------------------------------------------------- */
.gift-hero__visual { margin-bottom: 2.5rem; }
.amounts-card { display: flex; flex-direction: column; gap: 1.1rem; padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); }
.amounts-card__title { margin: 0; font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-muted); }
.amounts { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr)); gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.amounts li { display: grid; place-items: center; min-height: 64px; border: 1px solid var(--c-line); border-radius: var(--radius); font-family: var(--font-display); font-size: 1.75rem; font-weight: 600; color: var(--c-accent-text); }
.amounts-card__free { margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }
.amounts-card__valid { display: flex; align-items: center; gap: 0.6rem; margin: 0; padding-top: 1rem; border-top: 1px solid var(--c-border); font-size: var(--fs-sm); }
.amounts-card__valid .icon { width: 20px; height: 20px; flex: none; color: var(--c-accent-text); }
.amounts-card .btn { align-self: flex-start; }

.buy .section-head { margin-bottom: 2rem; }
.buy__body { max-width: 46rem; margin-inline: auto; }
.buy__fallback { display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: clamp(1.75rem, 1rem + 2vw, 3rem); border: 1px dashed var(--c-line); border-radius: var(--radius-lg); background: var(--c-surface); text-align: center; }
.buy__icon { width: 40px; height: 40px; color: var(--c-accent-text); }
.buy__fallback-text { margin: 0; font-family: var(--font-display); font-size: clamp(1.5rem, 1.3rem + 0.8vw, 2rem); font-weight: 500; line-height: 1.25; }
.buy__note { display: flex; width: fit-content; max-width: 100%; margin: 1.25rem auto 0; }

.faq__list { max-width: 52rem; border-top: 1px solid var(--c-border); }
.faq__item { border-bottom: 1px solid var(--c-border); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; padding: 1rem 0; font-family: var(--font-display); font-size: 1.375rem; font-weight: 600; line-height: 1.25; list-style: none; cursor: pointer; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:hover { color: var(--c-accent-text); }
.faq__icon { width: 22px; height: 22px; flex: none; color: var(--c-accent-text); transition: transform var(--dur) var(--ease); }
.faq__item[open] .faq__icon { transform: rotate(45deg); }
.faq__answer { padding: 0 2.5rem 1.25rem 0; color: var(--c-muted); }
.faq__answer p:last-child { margin-bottom: 0; }

/* 11. Careers ---------------------------------------------------------------- */
.perks-head { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1rem clamp(2rem, 1rem + 4vw, 5rem); align-items: start; margin-bottom: clamp(2.25rem, 1.5rem + 2vw, 3.5rem); }
.perks-head .section-head { margin-bottom: 0; }
.perks-head .prose > p:first-child { font-size: var(--fs-lg); }
.jobs { display: flex; flex-direction: column; gap: 1.25rem; }
.job { position: relative; padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); scroll-margin-top: calc(var(--header-h) + 1rem); }
.job__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1.5rem; margin-bottom: 0.75rem; }
.job__title { margin: 0; font-size: clamp(1.75rem, 1.45rem + 1vw, 2.375rem); }
.job__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }
.job__summary { max-width: 46rem; margin: 0 0 1.5rem; font-size: var(--fs-lg); color: var(--c-muted); }
.job__lists { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 2rem; padding-top: 1.5rem; border-top: 1px solid var(--c-border); }
.job__list-title { margin: 0 0 0.75rem; font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-accent-text); }
.job__apply { margin: 1.5rem 0 0; }

/* 12. Allergens -------------------------------------------------------------- */
.policy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.policy__card { display: flex; flex-direction: column; gap: 1.25rem; padding: 1.75rem; border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); }
.policy__figure { display: flex; flex-direction: column; margin: 0; }
.policy__figure b { font-family: var(--font-display); font-size: 3rem; font-weight: 500; line-height: 1; color: var(--c-accent-text); }
.policy__figure span { margin-top: 0.35rem; font-size: var(--fs-sm); color: var(--c-muted); }

.allergen-table-wrap { overflow-x: auto; border: 1px solid var(--c-border); border-radius: var(--radius-lg); background: var(--c-surface); }
.allergen-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.allergen-table thead th { padding: 0.9rem 1.25rem; border-bottom: 1px solid var(--c-border); font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0.12em; text-align: left; text-transform: uppercase; color: var(--c-muted); }
.allergen-table tbody th,
.allergen-table tbody td { padding: 1rem 1.25rem; border-bottom: 1px solid var(--c-border); text-align: left; vertical-align: top; }
.allergen-table tbody tr:last-child > * { border-bottom: 0; }
.allergen-table tbody th { width: 13rem; font-weight: 400; }
.allergen-table tbody tr:target > * { background: color-mix(in srgb, var(--c-accent) 8%, transparent); }
.allergen-table__name { display: block; font-family: var(--font-display); font-size: 1.375rem; font-weight: 600; line-height: 1.2; }
.allergen-table__count { display: block; margin-top: 0.2rem; font-size: var(--fs-xs); color: var(--c-muted); }
.allergen-table__none,
.allergen-table__options { margin: 0; font-size: var(--fs-xs); color: var(--c-muted); }
.allergen-table__options { margin-top: 0.6rem; }
.allergen-table__action { width: 13rem; }
.allergen-table__action .link-arrow { font-size: var(--fs-xs); }
.allergen-table__legend { margin: 1rem 0 0; font-size: var(--fs-xs); color: var(--c-muted); }
.dish-links { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.dish-links a { display: inline-flex; padding: 0.2rem 0.7rem; border: 1px solid var(--c-border); border-radius: 999px; color: var(--c-text); font-size: var(--fs-xs); text-decoration: none; transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.dish-links a:hover { border-color: var(--c-accent); color: var(--c-accent-text); }

.warning-box { display: flex; align-items: flex-start; gap: 1.25rem; max-width: 56rem; margin-inline: auto; padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); border: 1px solid color-mix(in srgb, var(--c-warn) 45%, var(--c-border)); border-left: 4px solid var(--c-warn); border-radius: var(--radius-lg); background: color-mix(in srgb, var(--c-warn) 8%, var(--c-surface)); }
.warning-box__icon { width: 30px; height: 30px; flex: none; color: var(--c-warn); }
.warning-box__title { margin: 0 0 0.5rem; font-size: clamp(1.625rem, 1.35rem + 0.9vw, 2.125rem); }
.warning-box__actions { display: flex; flex-wrap: wrap; gap: 0.75rem 2rem; margin: 1rem 0 0; }

/* 13. News ------------------------------------------------------------------- */
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem clamp(1.25rem, 0.5rem + 2vw, 2.5rem); }
.news-card { position: relative; display: flex; flex-direction: column; }
.news-card__media { display: block; overflow: hidden; border-radius: var(--radius-lg); }
.news-card__media .img,
.news-card__media .ph { aspect-ratio: 4 / 3; transition: transform 700ms var(--ease); }
.news-card:hover .news-card__media .img { transform: scale(1.04); }
.news-card__body { padding-top: 1.1rem; }
.news-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.5rem; margin: 0 0 0.5rem; font-size: var(--fs-xs); letter-spacing: 0.04em; color: var(--c-muted); }
.news-card__cat { font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-accent-text); text-decoration: none; }
.news-card__title { margin: 0 0 0.5rem; font-size: clamp(1.5rem, 1.3rem + 0.7vw, 1.875rem); }
.news-card__title a { color: inherit; text-decoration: none; }
.news-card__title a:hover { color: var(--c-accent-text); }
.news-card__excerpt { margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }
.news-card--featured { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1.5rem, 1rem + 3vw, 4rem); align-items: center; margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); border-bottom: 1px solid var(--c-border); }
.news-card--featured .news-card__media .img,
.news-card--featured .news-card__media .ph { aspect-ratio: 3 / 2; }
.news-card--featured .news-card__body { padding-top: 0; }
.news-card--featured .news-card__title { font-size: clamp(2rem, 1.5rem + 2vw, 3.25rem); }
.news-card--featured .news-card__excerpt { margin-bottom: 1.5rem; font-size: var(--fs-base); }

.article__head { max-width: calc(52rem + 2 * var(--gutter)); padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.5rem) clamp(1.5rem, 1rem + 1.5vw, 2.5rem); text-align: center; }
.article__head .eyebrow { justify-content: center; }
.article__head .eyebrow::after { content: ""; width: 2.25rem; height: 1px; background: var(--c-line); }
.article__head .eyebrow a { color: inherit; text-decoration: none; }
.article__title { margin-bottom: 0.4em; font-size: clamp(2.25rem, 1.5rem + 3vw, 4.25rem); }
.article__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem 0.6rem; margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }
.article__media { margin: 0 auto clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.article__media .img { aspect-ratio: 16 / 9; border-radius: var(--radius-lg); }
.article__content { margin-inline: auto; }
.article__content > p:first-child { font-size: var(--fs-lg); }
.article__foot { max-width: var(--container-text); margin: clamp(2.5rem, 2rem + 2vw, 3.5rem) auto var(--section-y); padding-top: 1.5rem; border-top: 1px solid var(--c-border); }
.article__foot .post-navigation { margin-top: 1.5rem; }
.article__foot .nav-links { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }
.article__foot .nav-next { grid-column: 2; text-align: right; }
.article__foot .nav-links a { display: block; color: var(--c-text); text-decoration: none; }
.article__foot .nav-title { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; line-height: 1.25; }
.article__foot .nav-links a:hover .nav-title { color: var(--c-accent-text); }

/* 14. Not found -------------------------------------------------------------- */
.error-page__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 1rem + 5vw, 6rem); align-items: center; }
.error-page__media { position: relative; }
.error-page__media .img,
.error-page__media .ph { aspect-ratio: 1 / 1; border-radius: var(--radius-lg); }
.error-page__code { position: absolute; right: 1rem; bottom: -1.25rem; font-family: var(--font-display); font-size: clamp(4.5rem, 3rem + 6vw, 9rem); font-weight: 500; line-height: 1; color: var(--c-accent-text); text-shadow: 0 10px 30px rgb(var(--c-shade) / 0.45); }
.error-page .page-title { font-size: clamp(2.5rem, 1.6rem + 3vw, 4.5rem); }

/* 15. Responsive ------------------------------------------------------------- */
@media (max-width: 1100px) {
	.spaces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.event-card { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); }
	.event-card__side { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 1.25rem; }
	.event-card__btn { width: auto; }
	.event-card--compact .event-card__side { grid-column: auto; }
}

@media (max-width: 1000px) {
	.story,
	.producers,
	.event-layout,
	.form-layout,
	.contact-grid,
	.policy,
	.perks-head,
	.split,
	.split--text-first { grid-template-columns: minmax(0, 1fr); }
	.story__media { max-width: 38rem; }
	.team-grid,
	.news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.news-card--featured { grid-template-columns: minmax(0, 1fr); }
	.news-card--featured .news-card__body { padding-top: 0.25rem; }
	.policy__card { max-width: 30rem; }
	.error-page__grid { grid-template-columns: minmax(0, 1fr); }
	.error-page__media { max-width: 26rem; }
}

@media (max-width: 860px) {
	.page-hero--split .page-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.page-hero__media > .img,
	.page-hero__media > .ph,
	.event-hero__media .img,
	.event-hero__media .ph { aspect-ratio: 3 / 2; }
	.job__lists { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 800px) {
	/* The allergen table reads as a list of cards; roles keep it a table for screen readers. */
	.allergen-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); }
	.allergen-table,
	.allergen-table tbody,
	.allergen-table tr,
	.allergen-table tbody th,
	.allergen-table tbody td { display: block; width: auto; }
	.allergen-table tbody tr { padding: 1.1rem 1.1rem 1.2rem; border-bottom: 1px solid var(--c-border); }
	.allergen-table tbody tr:last-child { border-bottom: 0; }
	.allergen-table tbody th,
	.allergen-table tbody td { padding: 0; border: 0; }
	.allergen-table tbody td { margin-top: 0.65rem; }
	.allergen-table__name { display: inline; }
	.allergen-table__count { display: inline; margin-left: 0.5rem; }
}

@media (max-width: 700px) {
	.spaces { grid-template-columns: minmax(0, 1fr); }
	.producer-list { grid-template-columns: minmax(0, 1fr); }
	.lightbox__inner { padding: 4rem 0.75rem 5.5rem; }
	.lightbox__img { max-height: calc(100vh - 11rem); max-height: calc(100dvh - 11rem); }
	.lightbox__prev,
	.lightbox__next { top: auto; bottom: 1rem; transform: none; }
	.lightbox__prev { left: calc(50% - 60px); }
	.lightbox__next { right: calc(50% - 60px); }
}

@media (max-width: 640px) {
	.event-card { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
	.event-card__side { grid-column: auto; }
	.news-grid { grid-template-columns: minmax(0, 1fr); }
	.form__grid { grid-template-columns: minmax(0, 1fr); }
	.faq__answer { padding-right: 0; }
	.warning-box { flex-direction: column; gap: 0.75rem; }
	.page-hero__actions .btn { flex: 1 1 auto; }
}

@media (max-width: 480px) {
	.team-grid { grid-template-columns: minmax(0, 1fr); }
	.chef__photos { grid-template-columns: minmax(0, 1fr); }
	.chip-nav ul { flex-wrap: nowrap; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); overflow-x: auto; scrollbar-width: none; }
	.chip-nav ul::-webkit-scrollbar { display: none; }
	.step::after { left: 3.5rem; }
}

@media (hover: none) {
	.gallery__zoom { opacity: 1; transform: none; }
}

@media print {
	.page-hero__actions,
	.cta-band,
	.form-layout,
	.register-card form,
	.lightbox { display: none !important; }
}
