/* ==========================================================================
   Kalvados — Landing Page Styles (desktop first, v2)
   ========================================================================== */

/* Fonts: direct WOFF2 files instead of the Google Fonts CSS waterfall */
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-display: swap;
  font-weight: 300 700;
  src: url("https://cdn.jsdelivr.net/fontsource/fonts/cormorant-garamond:vf@latest/cyrillic-wght-normal.woff2") format("woff2-variations");
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-display: swap;
  font-weight: 300 700;
  src: url("https://cdn.jsdelivr.net/fontsource/fonts/cormorant-garamond:vf@latest/cyrillic-wght-italic.woff2") format("woff2-variations");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@5.3.0/cyrillic-wght-normal.woff2") format("woff2-variations");
}

@font-face {
  font-family: "Libre Baskerville";
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url("https://cdn.jsdelivr.net/fontsource/fonts/libre-baskerville:vf@latest/latin-wght-normal.woff2") format("woff2-variations");
}

@font-face {
  font-family: "Libre Baskerville";
  font-style: italic;
  font-display: swap;
  font-weight: 400 700;
  src: url("https://cdn.jsdelivr.net/fontsource/fonts/libre-baskerville:vf@latest/latin-wght-italic.woff2") format("woff2-variations");
}

/* --------------------------------------------------------------------------
   Custom properties
   -------------------------------------------------------------------------- */
:root {
  --color-bg: #f6f2ed;
  --color-dark: #322216;
  --color-accent: #a26f4b;
  --color-accent-hover: #8a5a3d;
  --color-light-text: #f6f2ed;
  --color-text: #322216;
  --color-text-muted: #6a5848;
  --color-text-muted-on-dark: #c9bdb3;
  --color-border: #ddd4c8;
  --color-border-on-dark: #f6f2ed;
  --color-review-card: #f1ece6;

  --color-cream: #f6f2ed;
  --color-cream-deep: #ebe4da;
  --color-lunch-memorial: #e3dbd0;
  --color-card: #ebe4da;
  --color-card-light: #f6f2ed;

  --font-serif: "Cormorant Garamond", "Times New Roman", serif;
  --font-sans: "Inter", system-ui, -apple-system, sans-serif;
  --font-phone: "Libre Baskerville", Georgia, serif;
  --font-price: var(--font-phone);

  --text-xs: 0.6875rem;
  --text-sm: 0.8125rem;
  --text-base: 1rem;
  --text-md: 1.0625rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: 2rem;
  --text-3xl: 2.75rem;
  --text-hero: 3rem;
  --text-phone-hero: 2.75rem;

  --leading-tight: 1.2;
  --leading-snug: 1.35;
  --leading-normal: 1.6;
  --tracking-wide: 0.08em;
  --tracking-wider: 0.12em;

  --container-max: 1200px;
  --gutter: 1.5rem;

  --section-y-lg: 2.5rem;

  --radius-btn: 2px;
  --radius-md: 8px;

  --header-height: 4.75rem;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  --transition-fast: 0.2s ease;
}

/* --------------------------------------------------------------------------
   Reset & base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  margin: 0;
  overflow-x: clip;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}

.price,
.programs-modal__card-price,
.banquet-menu__accent,
.lunches-included__accent,
.catering-price__value,
.menu-table__row .menu-table__col--price {
  font-family: var(--font-price);
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
p,
blockquote,
figure {
  margin: 0;
}

address {
  font-style: normal;
}

cite {
  font-style: normal;
}

.icon {
  display: block;
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Utilities
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.skip-link {
  position: absolute;
  top: var(--space-2);
  left: var(--space-2);
  z-index: 1000;
  padding: var(--space-2) var(--space-4);
  background: var(--color-bg);
  color: var(--color-dark);
  border-radius: var(--radius-btn);
  transform: translateY(-150%);
  transition: transform var(--transition-fast);
}

.skip-link:focus {
  transform: translateY(0);
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.accent-line {
  display: block;
  width: 2.5rem;
  height: 2px;
  margin-bottom: var(--space-4);
  background-color: var(--color-accent);
}

/* --------------------------------------------------------------------------
   Typography blocks
   -------------------------------------------------------------------------- */
.section-label {
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-3);
}

.section-heading {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 600;
  line-height: var(--leading-tight);
  color: var(--color-text);
  margin-bottom: var(--space-5);
}

.section-heading--light {
  color: var(--color-light-text);
}

.section-text {
  font-size: var(--text-md);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin-bottom: var(--space-6);
}

.section-text--light {
  color: var(--color-text-muted-on-dark);
}

.section-header {
  margin-bottom: var(--space-8);
}

.section-header--center {
  text-align: center;
}

.section-header--center .accent-line {
  margin-inline: auto;
}

.section-intro .section-heading {
  font-size: var(--text-2xl);
}

/* --------------------------------------------------------------------------
   Buttons & links
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   Buttons & links
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2); /* ← добавляем gap для отступа между текстом и стрелкой */
  padding: 0.75rem 1.375rem;
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1;
  border: 1px solid transparent;
  border-radius: var(--radius-btn);
  transition:
    background-color var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast);
}

/* Стрелка для всех кнопок */
.btn::after {
  content: "→";
  display: inline-block;
  transition: transform var(--transition-fast);
}

/* При наведении стрелка двигается */
.btn:hover::after {
  transform: translateX(3px);
}

/* Кнопки без стрелки */
.btn--no-arrow::after {
  content: none;
  display: none;
}

.btn--ghost {
  color: var(--color-light-text);
  border-color: var(--color-border-on-dark);
  background-color: transparent;
}

.btn--ghost:hover,
.btn--ghost:focus-visible,
.btn--ghost:active {
  color: var(--color-light-text);
  border-color: var(--color-accent);
  background-color: var(--color-accent);
}

.btn--outline {
  color: var(--color-accent);
  border-color: var(--color-accent);
  background-color: transparent;
}

.btn--outline:hover,
.btn--outline:focus-visible,
.btn--outline:active {
  color: var(--color-light-text);
  border-color: var(--color-accent);
  background-color: var(--color-accent);
}

.btn--accent {
  color: var(--color-light-text);
  border-color: var(--color-accent);
  background-color: var(--color-accent);
}

.btn--accent:hover,
.btn--accent:focus-visible,
.btn--accent:active {
  color: var(--color-light-text);
  border-color: var(--color-accent-hover);
  background-color: var(--color-accent-hover);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-accent);
  transition: color var(--transition-fast);
}

.text-link::after {
  content: "→";
  transition: transform var(--transition-fast);
}

.text-link:hover,
.text-link:focus-visible {
  color: var(--color-accent-hover);
}

.text-link:hover::after,
.text-link:focus-visible::after {
  transform: translateX(3px);
}

.text-link--inline {
  font-size: inherit;
}

.text-link--light {
  color: var(--color-light-text);
}

.text-link--light:hover,
.text-link--light:focus-visible {
  color: var(--color-accent);
}

/* --------------------------------------------------------------------------
   Sections - общие отступы
   -------------------------------------------------------------------------- */
.section {
  padding-block: var(--section-y-lg);
}

.section--cream {
  background-color: var(--color-bg);
}

.section--surface {
  background-color: var(--color-bg);
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.header {
  position: relative;
  z-index: 20;
  background-color: var(--color-dark);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: var(--header-height);
  padding-block: var(--space-3);
}

.logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  color: var(--color-light-text);
  flex-shrink: 0;
}

.logo__name {
  font-family: var(--font-serif);
  font-size: 3rem;
  font-weight: 500;
  line-height: 1;
}

.logo__subtitle {
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-wider);
  color: var(--color-text-muted-on-dark);
  text-align: center;
}

.header__menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 2.5rem;
  height: 2.5rem;
  padding: var(--space-2);
  color: var(--color-light-text);
}

.header__menu-toggle-bar {
  display: block;
  width: 100%;
  height: 2px;
  background-color: currentColor;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.header__contact {
  flex-shrink: 0;
  text-align: right;
}

.header__phone {
  display: block;
  font-family: var(--font-phone);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-light-text);
  white-space: nowrap;
  margin-bottom: var(--space-1);
  transition: color var(--transition-fast);
}

.header__phone:hover,
.header__phone:focus-visible {
  color: var(--color-accent);
}

.header__hours {
  font-size: var(--text-xs);
  line-height: 1.45;
  color: var(--color-accent);
}

.header__hours_secondary {
  font-size: var(--text-xs);
  line-height: 1.45;
  color: var(--color-text-muted-on-dark);
}

/* --------------------------------------------------------------------------
   Navigation
   -------------------------------------------------------------------------- */
.nav {
  flex: 1;
  display: flex;
  justify-content: center;
  min-width: 0;
}

.nav__list {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.nav__link {
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-text-muted-on-dark);
  white-space: nowrap;
  transition: color var(--transition-fast);
}

.nav__link:hover,
.nav__link:focus-visible {
  color: var(--color-light-text);
}

.nav__link--active {
  color: var(--color-accent);
}

.nav__meta {
  display: none;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 34rem;
  color: var(--color-light-text);
}

.hero__background {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero__background picture {
  display: block;
  width: 100%;
  height: 100%;
}

.hero__background-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /*object-position: top;*/
}

.hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: var(--container-max);
  width: 100%;
  margin: 0 auto;
  padding-block: var(--space-12);
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.hero__title {
  font-family: var(--font-serif);
  font-size: var(--text-hero);
  font-weight: 600;
  line-height: var(--leading-snug);
  margin-bottom: var(--space-5);
  max-width: 36rem;
}

.hero__subtitle {
  font-size: var(--text-md);
  line-height: var(--leading-normal);
  color: var(--color-light-text);
  max-width: 30rem;
  margin-bottom: var(--space-8);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-8);
}

.hero__phone-block {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.hero__phone-label {
  font-size: var(--text-sm);
  color: var(--color-text-muted-on-dark);
}

.hero__phone-link {
  font-family: var(--font-phone);
  font-size: var(--text-phone-hero);
  font-weight: 700;
  line-height: var(--leading-tight);
  color: var(--color-light-text);
  transition: color var(--transition-fast);
}

.hero__phone-link:hover,
.hero__phone-link:focus-visible {
  color: var(--color-accent);
}

/* --------------------------------------------------------------------------
   Business lunch bar
   -------------------------------------------------------------------------- */
.business-lunch {
  background-color: var(--color-bg);
  padding-block: var(--space-6);
}

.business-lunch__inner {
  display: grid;
  grid-template-columns: 1.35fr 1.45fr 1fr;
  align-items: center;
  gap: var(--space-8);
}

.business-lunch__lead {
  display: flex;
  align-items: flex-end;
  gap: var(--space-4);
}

.business-lunch__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-accent);
  font-size: var(--text-2xl);
  line-height: var(--leading-snug);
}

.business-lunch__icon svg {
  width: 2lh;
  height: 2lh;
}

.business-lunch__title {
  font-size: var(--text-2xl);
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--color-text);
  line-height: var(--leading-snug);
}

.business-lunch__schedule {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.business-lunch__text_1 {
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-accent);
}

.business-lunch__text_2 {
  font-size: var(--text-md);
  line-height: var(--leading-normal);
  color: var(--color-accent);
  font-weight: 600;
}

.business-lunch__text {
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

.business-lunch__action {
  display: flex;
  justify-content: flex-end;
}

.business-lunch__inner .btn--outline {
  flex-shrink: 0;
}

.business-lunch__inner .btn--outline::after {
  content: "→";
  margin-left: var(--space-2);
  transition: transform var(--transition-fast);
}

.business-lunch__inner .btn--outline:hover::after {
  transform: translateX(3px);
}

/* --------------------------------------------------------------------------
   Services
   -------------------------------------------------------------------------- */
.services__grid {
  display: grid;
  grid-template-columns: 0.5fr 1.5fr;
  gap: var(--space-8);
  align-items: start;
}

.section-intro {
  padding-top: var(--space-2);
  max-width: 22rem;
}

.service-grid {
  display: grid;
  grid-template-columns: 2fr 3fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--space-4);
  height: 20rem;
}

.service-card--large {
  grid-row: 1 / 3;
  display: flex;
}

.service-card--large .service-card__media {
  height: 100%;
  display: flex;
  width: 100%;
}

.service-card--large .service-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-grid__stack {
  display: grid;
  grid-row: 1 / 3;
  grid-template-rows: 1fr 1fr;
  gap: var(--space-4);
}

.service-grid__stack .service-card {
  display: flex;
  min-height: 0;
}

.service-grid__stack .service-card__media {
  height: 100%;
  display: flex;
  width: 100%;
}

.service-grid__stack .service-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-card__media {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  height: 100%;
  width: 100%;
}

.service-card__link {
  display: block;
  color: var(--color-light-text);
  height: 100%;
  width: 100%;
}

.service-card__body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: var(--space-5) var(--space-5);
  background: linear-gradient(to top, 
    rgba(50, 34, 22, 0.95) 0%, 
    rgba(50, 34, 22, 0.7) 35%, 
    rgba(50, 34, 22, 0.3) 65%, 
    transparent 100%
  );
}

.service-card__title {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-tight);
  color: var(--color-light-text);
  margin-bottom: var(--space-2);
}

.service-card__text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted-on-dark);
  margin-bottom: var(--space-3);
}

/* Ссылки "Подробнее" в карточках услуг */
.service-card__body .text-link {
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-muted-on-dark);
  transition: color var(--transition-fast);
}

.service-card__body .text-link::after {
  content: "→";
  margin-left: var(--space-1);
  transition: transform var(--transition-fast);
}

.service-card__body .text-link:hover {
  color: var(--color-light-text);
}

.service-card__body .text-link:hover::after {
  transform: translateX(3px);
}

/* --------------------------------------------------------------------------
   Halls
   -------------------------------------------------------------------------- */
.hall-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

.hall-card__slider {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  margin-bottom: var(--space-4);
}

.hall-card__slider-track {
  display: flex;
  transition: transform 0.5s ease;
}

.hall-card__slider-track .hall-card__image {
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.page-home .hall-grid .hall-card__slider:not([data-gallery-slider]) .hall-card__image {
  cursor: pointer;
}

.hall-card__slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: rgba(50, 34, 22, 0.7);
  color: var(--color-light-text);
  font-size: 1.5rem;
  line-height: 1;
  opacity: 0;
  transition: opacity var(--transition-fast), background var(--transition-fast);
  cursor: pointer;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.hall-card__slider:hover .hall-card__slider-btn {
  opacity: 1;
}

.hall-card__slider-btn:hover {
  background: var(--color-accent);
}

.hall-card__slider-btn--prev {
  left: var(--space-2);
}

.hall-card__slider-btn--next {
  right: var(--space-2);
}

.hall-card__slider-dots {
  position: absolute;
  bottom: var(--space-3);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: var(--space-2);
  z-index: 2;
}

.hall-card__slider-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background var(--transition-fast);
}

.hall-card__slider-dot--active {
  background: var(--color-light-text);
}

.hall-card__slider-dot:hover {
  background: rgba(255, 255, 255, 0.8);
}

.hall-card__title {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-tight);
  margin-bottom: var(--space-2);
}

.hall-card__capacity {
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-accent);
  margin-bottom: var(--space-3);
}

.hall-card__text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

/* --------------------------------------------------------------------------
   Menu section — full-width image, text on asset
   -------------------------------------------------------------------------- */
.menu-section {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 22rem;
}

.menu-section__image {
  width: 100%;
  min-height: 22rem;
  object-fit: cover;
}

.menu-section__content {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  max-width: var(--container-max);
  width: 100%;
  margin: 0 auto;
  padding-block: var(--section-y-lg);
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.menu-section__content .section-heading {
  font-size: var(--text-3xl);
  margin-bottom: var(--space-5);
  max-width: 28rem;
}

.menu-section__content .section-text {
  max-width: 24rem;
  margin-bottom: var(--space-8);
}

/* --------------------------------------------------------------------------
   Gallery
   -------------------------------------------------------------------------- */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-10);
}

.gallery-item {
  position: relative;
  display: block;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.gallery-item__image {
  width: 100%;
  aspect-ratio: 4 / 2.75;
  object-fit: cover;
}

.gallery-item__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background-color: var(--color-bg);
  color: var(--color-accent);
}

.gallery-item__play .icon {
  width: 24px;
  height: 24px;
}

.gallery__actions {
  display: flex;
  justify-content: center;
}

.gallery-groups {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  margin-bottom: var(--space-10);
}

.gallery-group__title {
  display: none;
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-tight);
  text-align: center;
  color: var(--color-text);
  margin-bottom: var(--space-4);
}

.gallery-slider .hall-card__slider-track > .gallery-item {
  flex: 0 0 100%;
  width: 100%;
}

button.gallery-item,
button.gallery-modal__thumb {
  border: none;
  padding: 0;
  background: none;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.gallery-item--photo:focus-visible,
.gallery-modal__thumb:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* Gallery modal */
.gallery-modal,
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--gutter);
}

.gallery-modal[hidden],
.gallery-lightbox[hidden] {
  display: none;
}

.gallery-modal__backdrop,
.gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(50, 34, 22, 0.72);
}

.gallery-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, var(--container-max));
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: var(--space-6);
  background-color: var(--color-bg);
  border-radius: var(--radius-md);
  box-shadow: 0 1rem 2.5rem rgba(50, 34, 22, 0.2);
}

.gallery-modal__title {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  text-align: center;
  color: var(--color-text);
  margin-bottom: var(--space-5);
}

.gallery-modal__close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.gallery-modal__close:hover,
.gallery-modal__close:focus-visible {
  color: var(--color-accent);
  background-color: var(--color-review-card);
}

.gallery-modal__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

@media (min-width: 768px) {
  .gallery-modal__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
  }
}

/* Gallery lightbox */
.gallery-lightbox__close,
.gallery-lightbox__nav {
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  transition: background var(--transition-fast), opacity var(--transition-fast);
}

.gallery-lightbox__close {
  top: var(--space-4);
  right: var(--space-4);
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: rgba(50, 34, 22, 0.65);
  color: var(--color-light-text);
}

.gallery-lightbox__close:hover,
.gallery-lightbox__close:focus-visible {
  background: var(--color-accent);
}

.gallery-lightbox__nav {
  top: 50%;
  transform: translateY(-50%);
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: var(--color-dark);
  color: var(--color-light-text);
  font-size: 1.5rem;
  line-height: 1;
  opacity: 0.85;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.gallery-lightbox__nav:hover,
.gallery-lightbox__nav:focus-visible {
  background: var(--color-accent);
  opacity: 1;
}

.gallery-lightbox__nav--prev {
  left: var(--space-3);
}

.gallery-lightbox__nav--next {
  right: var(--space-3);
}

.gallery-lightbox__figure {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  width: min(100%, 72rem);
  max-height: calc(100vh - 2rem);
  margin: 0;
}

.gallery-lightbox__image {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 6rem);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-md);
  box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.35);
}

.gallery-lightbox__caption {
  font-size: var(--text-sm);
  color: var(--color-light-text);
  text-align: center;
}

html.gallery-modal-open,
html.gallery-lightbox-open,
html.video-lightbox-open,
html.programs-modal-open,
body.gallery-modal-open,
body.gallery-lightbox-open,
body.video-lightbox-open,
body.programs-modal-open {
  overflow: hidden;
  overscroll-behavior: none;
}

.video-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--gutter);
}

.video-lightbox[hidden] {
  display: none;
}

.video-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(50, 34, 22, 0.72);
}

.video-lightbox__close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: none;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.92);
  color: var(--color-text);
  cursor: pointer;
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.video-lightbox__close:hover,
.video-lightbox__close:focus-visible {
  color: var(--color-accent);
  background-color: #fff;
}

.video-lightbox__player {
  position: relative;
  z-index: 1;
  width: min(90vw, 420px);
  aspect-ratio: 9 / 16;
  overflow: hidden;
  background-color: #000;
}

.video-lightbox__iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 767px) {
  .gallery-modal__dialog {
    padding: var(--space-5) var(--space-4);
  }

  .gallery-lightbox__nav {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 1.25rem;
  }

  .gallery-lightbox__close {
    top: var(--space-3);
    right: var(--space-3);
    width: 2.25rem;
    height: 2.25rem;
  }

  .video-lightbox__close {
    top: var(--space-3);
    right: var(--space-3);
    width: 2.25rem;
    height: 2.25rem;
  }
}

/* Programs modal */
.programs-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--gutter);
}

.programs-modal[hidden] {
  display: none;
}

.programs-modal__extra[hidden] {
  display: none;
}

.programs-modal__backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(50, 34, 22, 0.72);
}

.programs-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, var(--container-max));
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: var(--space-8) var(--space-6);
  background-color: var(--color-bg);
  border-radius: var(--radius-md);
  box-shadow: 0 1rem 2.5rem rgba(50, 34, 22, 0.2);
}

.gallery-modal__dialog,
.programs-modal__dialog {
  scrollbar-width: thin;
  scrollbar-color: var(--color-accent) var(--color-cream-deep);
}

.gallery-modal__dialog::-webkit-scrollbar,
.programs-modal__dialog::-webkit-scrollbar {
  width: 0.5rem;
}

.gallery-modal__dialog::-webkit-scrollbar-track,
.programs-modal__dialog::-webkit-scrollbar-track {
  background: var(--color-cream-deep);
  border-radius: 999px;
}

.gallery-modal__dialog::-webkit-scrollbar-thumb,
.programs-modal__dialog::-webkit-scrollbar-thumb {
  background-color: var(--color-accent);
  border-radius: 999px;
  border: 2px solid var(--color-cream-deep);
}

.gallery-modal__dialog::-webkit-scrollbar-thumb:hover,
.programs-modal__dialog::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-accent-hover);
}

.programs-modal__close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.programs-modal__close:hover,
.programs-modal__close:focus-visible {
  color: var(--color-accent);
  background-color: var(--color-review-card);
}

.programs-modal__header {
  text-align: center;
  margin-bottom: var(--space-6);
}

.programs-modal__title {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
  margin-bottom: var(--space-4);
}

.programs-modal__lead {
  max-width: 34rem;
  margin-inline: auto;
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

.programs-modal__extras {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-5);
  margin-bottom: var(--space-6);
}

.programs-modal__extra {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-top: 0;
  margin-bottom: 0;
  padding: var(--space-4) var(--space-5);
  background-color: var(--color-review-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.programs-modal__extra-icon {
  display: flex;
  flex-shrink: 0;
  color: var(--color-accent);
}

.programs-modal__card-icon svg,
.programs-modal__extra-icon svg {
  display: block;
  overflow: visible;
}

.programs-modal__card-icon svg {
  width: 5.5rem;
  height: 5.5rem;
}

.programs-modal__extra-icon svg {
  width: 3.5rem;
  height: 3.5rem;
}

.programs-modal__extra-text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text);
  margin: 0;
}

.programs-modal__extra-text strong {
  font-weight: 600;
  color: var(--color-text);
}

.programs-modal__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  margin-bottom: 0;
}

.programs-modal__card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-4) var(--space-5);
  padding: var(--space-5);
  background-color: var(--color-review-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.programs-modal__card-aside {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  min-width: 7rem;
}

.programs-modal__card-icon svg :is(path, line, circle, rect),
.programs-modal__extra-icon svg :is(path, line, circle, rect) {
  stroke-width: 1.2;
}

.programs-modal__extra[data-programs-extra="video"] .programs-modal__extra-icon svg :is(path, circle, rect) {
  stroke-width: 1;
}

.programs-modal__card-icon svg :is(path, line),
.programs-modal__extra-icon svg :is(path, line) {
  stroke-linecap: round;
  stroke-linejoin: round;
}

.programs-modal__card-icon {
  display: flex;
  color: var(--color-accent);
}

.programs-modal__card-price {
  font-size: var(--text-lg);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
  text-align: center;
  margin: 0;
  white-space: nowrap;
}

.programs-modal__card-title {
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
  margin-bottom: var(--space-3);
  padding-left: 1.1rem;
}

.programs-modal__card-body {
  min-width: 0;
}

.programs-modal__list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

.programs-modal__list li {
  position: relative;
  padding-left: 1.1rem;
}

.programs-modal__list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--color-text-muted);
}

.programs-modal__list li + li {
  margin-top: var(--space-1);
}

.programs-modal__footer {
  text-align: center;
}

.programs-modal__footer > p {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin: 0;
}

.programs-modal__actions {
  display: flex;
  justify-content: center;
  margin: var(--space-5) 0 var(--space-3);
}

.programs-modal__note {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin: 0;
}

body.programs-modal-open {
  overflow: hidden;
}

@media (min-width: 768px) {
  .programs-modal__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .programs-modal__dialog {
    padding: var(--space-10) var(--space-8);
  }
}

@media (max-width: 767px) {
  .programs-modal__dialog {
    padding: var(--space-6) var(--space-4);
  }

  .programs-modal__title {
    font-size: var(--text-xl);
  }

  .programs-modal__extra {
    flex-direction: column;
    text-align: center;
  }

  .programs-modal__card {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .programs-modal__card-aside {
    flex-direction: row;
    justify-content: flex-start;
    min-width: 0;
  }
}

@media (min-width: 768px) {
  .gallery-groups {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .gallery-slider {
    overflow: visible;
  }

  .gallery-slider .hall-card__slider-track {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
    transform: none !important;
  }

  .gallery-slider .hall-card__slider-dots {
    display: none;
  }
}

/* --------------------------------------------------------------------------
   Reviews
   -------------------------------------------------------------------------- */
.reviews {
  position: relative;
}

.review-slider {
  position: relative;
  overflow: hidden;
  max-width: 100%;
  padding: 0;
}

.review-slider__track {
  display: flex;
  transition: transform 0.5s ease;
}

.review-slider__slide {
  flex-shrink: 0;
  width: 100%;
  padding: 0 var(--space-2);
}

.review-slider--peek {
  padding-inline: var(--space-10);
}

.review-slider--peek .review-slider__track {
  gap: var(--space-4);
}

.review-slider--peek .review-slider__slide {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  padding: 0;
  opacity: 0.42;
  transform: scale(0.94);
  transition:
    opacity 0.45s ease,
    transform 0.45s ease;
}

.review-slider--peek .review-slider__slide.is-active {
  opacity: 1;
  transform: scale(1);
}

.review-slider--peek .review-grid {
  grid-template-columns: 1fr;
  gap: 0;
}

.review-slider__track--carousel {
  align-items: stretch;
  gap: var(--space-6);
}

.review-slider__track--carousel > .review-card {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  height: auto;
  min-width: 0;
}

.review-slider__track--carousel > .review-card .review-card__footer {
  margin-top: auto;
}

.review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

.review-card {
  padding: var(--space-8) var(--space-6);
  background-color: var(--color-review-card);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  height: 100%;
}

.review-card__quote {
  display: block;
  font-family: var(--font-serif);
  font-size: 3rem;
  line-height: 1;
  color: var(--color-accent);
  margin-bottom: var(--space-4);
}

.review-card__text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin-bottom: var(--space-6);
}

.review-card__author {
  display: block;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: var(--space-1);
}

.review-card__meta {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Кнопки поверх контента */
.review-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--color-dark);
  color: var(--color-light-text);
  font-size: 1.25rem;
  line-height: 1;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition-fast), opacity var(--transition-fast);
  opacity: 0.8;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

.review-slider__btn:hover {
  background: var(--color-accent);
  opacity: 1;
}

/* Кнопки накладываются поверх контента */
.review-slider__btn--prev {
  left: var(--space-2); /* ← небольшой отступ от края */
}

.review-slider__btn--next {
  right: var(--space-2); /* ← небольшой отступ от края */
}

/* Точки */
/*.review-slider__dots {
  display: flex;
  justify-content: center;
  gap: var(--space-2);
  margin-top: var(--space-6);
}

.review-slider__dot {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background: var(--color-border);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background var(--transition-fast);
}

.review-slider__dot--active {
  background: var(--color-accent);
}

.review-slider__dot:hover {
  background: var(--color-accent-hover);
}*/

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.contact {
  padding-bottom: 0;
}

.contact__layout {
  display: grid;
  grid-template-columns: minmax(280px, 38vw) 1fr;
  align-items: stretch;
  min-height: 28rem;
}

.contact__photo {
  margin: 0;
  height: 100%;
}

.contact__image {
  width: 100%;
  height: 100%;
  min-height: 28rem;
  object-fit: cover;
  border-radius: 0;
}

.contact__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--space-10);
  align-items: center;
  padding: var(--section-y-lg) var(--gutter);
  padding-left: var(--space-10);
}

.contact__message {
  max-width: 22rem;
}

.contact__quote p {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
  margin-bottom: var(--space-5);
}

.contact__signature {
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-muted);
}

.contact__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.contact-item {
  display: flex;
  align-items: center; /* ← меняем с flex-start на center */
  gap: var(--space-4);
}

.contact-item__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  color: var(--color-accent);
}

.contact-item:has(a[href*="yandex.ru/maps"]) .contact-item__icon svg {
  width: 1.8rem;
  height: 1.8rem;
}

.contact-item__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.contact-item__value {
  font-size: var(--text-md);
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.4; /* ← добавляем для вертикального выравнивания */
  transition: color var(--transition-fast);
}

a.contact-item__value:hover,
a.contact-item__value:focus-visible {
  color: var(--color-accent);
}

.contact-item__label {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.4; /* ← добавляем для вертикального выравнивания */
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.footer {
  background-color: var(--color-dark);
  color: var(--color-text-muted-on-dark);
}

.footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 4.25rem;
  padding-block: var(--space-5);
}

.footer__copyright,
.footer__credit {
  font-size: var(--text-sm);
}

.footer__credit-link {
  color: var(--color-light-text);
  font-weight: 500;
  transition: color var(--transition-fast);
}

.footer__credit-link:hover,
.footer__credit-link:focus-visible {
  color: var(--color-accent);
}

.social-links {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.social-links__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  color: var(--color-text-muted-on-dark);
  transition: color var(--transition-fast);
}

.social-links__link:hover,
.social-links__link:focus-visible {
  color: var(--color-light-text);
}

/* --------------------------------------------------------------------------
   Banquets page
   -------------------------------------------------------------------------- */
.hero--light {
  color: var(--color-text);
}

.hero--light .hero__subtitle {
  color: var(--color-text-muted);
}

.hero--light .hero__phone-label {
  color: var(--color-text-muted);
}

.hero--light .hero__phone-link {
  color: var(--color-text);
}

.hero--light .hero__phone-link:hover,
.hero--light .hero__phone-link:focus-visible {
  color: var(--color-accent);
}

.banquet-features {
  padding-block: var(--section-y-lg);
}

.banquet-features__card {
  background-color: var(--color-review-card);
  border-radius: var(--radius-md);
  padding: var(--space-6) var(--space-8);
}

.banquet-features__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.banquet-features__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding-inline: var(--space-6);
  border-right: 1px solid var(--color-border);
}

.banquet-features__item:first-child {
  padding-left: 0;
}

.banquet-features__item:last-child {
  padding-right: 0;
  border-right: none;
}

.banquet-features__icon {
  display: flex;
  flex-shrink: 0;
  color: var(--color-accent);
}

.banquet-features__icon svg {
  display: block;
  width: 2.75rem;
  height: 2.75rem;
}

.banquet-features__text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

.banquet-features__title {
  display: block;
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
  margin-bottom: var(--space-1);
}

.banquet-menu {
  background-color: var(--color-review-card);
}

.banquet-menu__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}

.banquet-menu__media {
  margin: 0;
  overflow: hidden;
}

.banquet-menu__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 12rem;
  object-fit: cover;
}

.banquet-menu__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: var(--space-5) var(--gutter);
}

@media (min-width: 992px) {
  .banquet-menu__content {
    padding-right: max(var(--gutter), calc((100vw - var(--container-max)) / 2 + var(--gutter)));
  }
}

.banquet-menu__content .section-heading {
  font-size: var(--text-2xl);
  margin-bottom: var(--space-3);
}

.banquet-menu__text {
  font-size: var(--text-md);
  line-height: 1.45;
  color: var(--color-text-muted);
  margin-bottom: var(--space-5);
}

.banquet-menu__accent {
  color: var(--color-accent);
  font-weight: 600;
}

.banquet-menu__text-break {
  display: none;
}

.banquet-halls.section {
  padding-block: var(--space-8);
}

.banquet-halls__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: var(--space-5);
  align-items: start;
}

.banquet-halls__content {
  max-width: 22rem;
}

.banquet-halls__content .section-heading {
  margin-bottom: var(--space-2);
}

.banquet-halls__content .section-text {
  margin-bottom: var(--space-4);
}

.banquet-halls__list {
  display: flex;
  flex-direction: column;
}

.banquet-halls__item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-block: var(--space-2);
  border-bottom: 1px solid var(--color-border);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.3;
}

.banquet-halls__item:first-child {
  border-top: 1px solid var(--color-border);
}

.banquet-halls__check {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.375rem;
  height: 1.375rem;
  color: var(--color-accent);
}

.banquet-halls__photos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  align-self: start;
}

.banquet-halls__photo {
  width: 100%;
  height: 100%;
  min-height: 14rem;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: var(--radius-md);
}

.banquet-steps .section-header {
  margin-bottom: var(--space-6);
}

.banquet-steps__track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}

.banquet-steps__track::before {
  content: "";
  position: absolute;
  top: 1.25rem;
  left: calc(12.5% + 1.25rem);
  right: calc(12.5% + 1.25rem);
  border-top: 1px dashed var(--color-border);
  z-index: 0;
}

.banquet-steps__item {
  position: relative;
  z-index: 1;
  text-align: center;
}

.banquet-steps__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background-color: var(--color-review-card);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
}

.banquet-steps__title {
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 600;
  line-height: var(--leading-snug);
  margin-bottom: var(--space-2);
}

.banquet-steps__text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

.banquet-org__card {
  display: grid;
  grid-template-columns: minmax(180px, 0.75fr) 1fr 0.85fr;
  grid-template-rows: auto 1fr;
  gap: var(--space-4) var(--space-8);
  align-items: start;
  padding: var(--space-8);
  background-color: var(--color-review-card);
  border-radius: var(--radius-md);
}

.banquet-org__photo {
  grid-column: 1;
  grid-row: 1 / -1;
  margin: 0;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.banquet-org__photo-image {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.banquet-org__heading {
  grid-column: 2 / -1;
  grid-row: 1;
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  margin-bottom: 0;
}

.banquet-org__main {
  grid-column: 2;
  grid-row: 2;
  padding-right: var(--space-8);
  border-right: 1px solid var(--color-border);
}

.banquet-org__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}

.banquet-org__list-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text);
}

.banquet-org__list-icon {
  display: flex;
  flex-shrink: 0;
  color: var(--color-accent);
}

.banquet-org__list-icon svg {
  display: block;
  width: 2.75rem;
  height: 2.75rem;
}

.banquet-org__extra {
  grid-column: 3;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  padding-left: var(--space-2);
}

.banquet-org__extra-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
}

.banquet-org__extra-icon {
  display: flex;
  flex-shrink: 0;
  color: var(--color-accent);
}

.banquet-org__extra-icon svg {
  display: block;
  width: 2.75rem;
  height: 2.75rem;
}

.banquet-org__extra-title {
  font-size: var(--text-md);
  font-weight: 600;
  line-height: var(--leading-snug);
  margin-bottom: var(--space-2);
}

.banquet-org__extra-text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

/* --------------------------------------------------------------------------
   Lunches page
   -------------------------------------------------------------------------- */
.lunches-intro {
  padding-block: var(--space-8);
}

.lunches-intro__text {
  max-width: 42rem;
  margin-inline: auto;
  text-align: center;
  font-size: var(--text-md);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
}

.lunches-included {
  padding-bottom: var(--space-10);
}

.page-lunches .lunches-included {
  padding-top: var(--space-8);
}

.lunches-included__card {
  background-color: var(--color-review-card);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.lunches-included__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.34fr) minmax(0, 0.66fr);
  align-items: stretch;
}

.lunches-included__media {
  margin: 0;
  overflow: hidden;
  height: 100%;
  min-height: 100%;
}

.lunches-included__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lunches-included__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: var(--space-6) var(--space-8);
}

.lunches-included__content .section-heading {
  font-size: var(--text-2xl);
  margin-bottom: var(--space-4);
}

.lunches-included__divider {
  width: 100%;
  height: 0;
  margin: var(--space-4) 0;
  border: none;
  border-top: 1px solid var(--color-border);
}

.lunches-included__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: 0;
  width: 100%;
}

.lunches-included__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-md);
  line-height: var(--leading-snug);
  color: var(--color-text);
}

.lunches-included__check {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.375rem;
  height: 1.375rem;
  color: var(--color-accent);
}

.lunches-included__note {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
}

.lunches-included__price {
  font-size: var(--text-md);
  line-height: var(--leading-normal);
  color: var(--color-text);
}

.lunches-included__accent {
  color: var(--color-accent);
  font-weight: 600;
}

.lunches-included__price-break {
  display: none;
}

.lunches-why {
  padding-top: 0;
}

.lunches-why .section-header {
  margin-bottom: var(--space-6);
}

.lunches-why .section-heading {
  margin-bottom: 0;
}

.lunches-why__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--space-8);
}

.lunches-memorial {
  background-color: var(--color-lunch-memorial);
}

.lunches-memorial .section-header {
  margin-bottom: var(--space-6);
}

.lunches-memorial .section-heading {
  margin-bottom: var(--space-3);
}

.lunches-memorial__lead {
  max-width: 43rem;
  margin-inline: auto;
  margin-bottom: 0;
}

.lunches-memorial__grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: var(--space-8);
  align-items: stretch;
}

.lunches-memorial__card {
  display: flex;
  align-items: stretch;
  gap: var(--space-6);
  height: 100%;
  padding: var(--space-6) var(--space-8);
  background-color: transparent;
  border: 1px solid var(--color-text-muted);
  border-radius: var(--radius-md);
}

.lunches-memorial__card-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  align-self: stretch;
  color: var(--color-dark);
}

.lunches-memorial__card-icon svg {
  width: auto;
  height: 100%;
  min-height: 7rem;
  max-height: 9rem;
}

.lunches-memorial__card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
  min-height: 100%;
}

.lunches-memorial__card-title {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
}

.lunches-memorial__card-text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin-bottom: 0;
  flex: 1;
}

.lunches-memorial__steps {
  display: flex;
  flex-direction: column;
}

.lunches-memorial__steps-heading {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
  margin-bottom: var(--space-4);
}

.lunches-memorial__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.lunches-memorial__step {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
}

.lunches-memorial__step-num {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background-color: var(--color-text-muted-on-dark);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1;
  color: var(--color-light-text);
}

.lunches-memorial__step-text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  padding-top: 0.1rem;
}

/* --------------------------------------------------------------------------
   Catering page
   -------------------------------------------------------------------------- */
.catering-venues {
  background-color: var(--color-bg);
}

.catering-venues__inner {
  padding-block: var(--space-5);
  text-align: center;
}

.catering-venues__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.catering-venues__item {
  font-size: var(--text-md);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-text-muted);
}

.catering-venues__item:not(:last-child)::after {
  content: "•";
  margin-inline: var(--space-3);
  color: var(--color-accent);
}

.catering-order {
  padding-top: var(--space-8);
}

.catering-order__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: 0;
  width: 100%;
}

.catering-order__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-md);
  line-height: var(--leading-snug);
  color: var(--color-text);
}

.catering-order__check {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.375rem;
  height: 1.375rem;
  color: var(--color-accent);
}

.catering-order__note {
  margin-bottom: 0;
}

.catering-price {
  --catering-accent: #eabb97;
  position: relative;
  display: flex;
  align-items: center;
  min-height: 24rem;
  padding-block: var(--space-12);
  color: var(--color-light-text);
  overflow: hidden;
}

.catering-price__background {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.catering-price__background-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.catering-price__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
  text-align: center;
}

.catering-price__heading {
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-weight: 600;
  line-height: var(--leading-tight);
  margin-bottom: var(--space-8);
}

.catering-price__grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--space-8);
  max-width: 36rem;
  margin-inline: auto;
  margin-bottom: var(--space-6);
}

.catering-price__col {
  text-align: center;
}

.catering-price__label {
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-text-muted-on-dark);
  margin-bottom: var(--space-2);
}

.catering-price__value {
  font-size: var(--text-3xl);
  font-weight: 600;
  line-height: var(--leading-tight);
  color: var(--catering-accent);
}

.catering-price__divider {
  width: 1px;
  height: 3.5rem;
  background-color: rgba(246, 242, 237, 0.35);
}

.catering-price__text {
  max-width: 40rem;
  margin-inline: auto;
  margin-bottom: var(--space-8);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted-on-dark);
}

.catering-price__accent {
  color: var(--catering-accent);
  font-weight: 500;
}

.catering-price__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
}

/* --------------------------------------------------------------------------
   Menu page
   -------------------------------------------------------------------------- */
.hero--menu {
  background-color: var(--color-bg);
  overflow: hidden;
}

.hero--menu .hero__background {
  left: 38%;
  right: 0;
}

.hero--menu .hero__background::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to right, var(--color-bg) 0%, rgba(246, 242, 237, 0.85) 18%, transparent 42%);
  pointer-events: none;
}

.hero--menu .hero__background-image {
  object-position: center;
}

.menu-categories-block .section-header {
  margin-bottom: var(--space-6);
}

.menu-categories-block .section-heading {
  margin-bottom: var(--space-2);
}

.menu-categories-block__lead {
  max-width: 36rem;
  margin-inline: auto;
  margin-bottom: 0;
}

.menu-categories-slider {
  position: relative;
}

.menu-categories-slider .review-slider__btn {
  display: none;
}

.menu-categories {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}

.menu-categories--other {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.menu-category {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  width: 100%;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background-color: var(--color-review-card);
  overflow: hidden;
  cursor: pointer;
  text-align: center;
  font-family: var(--font-sans);
  color: var(--color-text);
  transition:
    border-color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.menu-category:hover,
.menu-category:focus-visible {
  border-color: var(--color-accent);
}

.menu-category--active {
  border-color: var(--color-accent);
}

.menu-category__image {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0;
}

.menu-category__label {
  width: 100%;
  padding: var(--space-3);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: var(--leading-snug);
}

.menu-panel {
  background-color: var(--color-review-card);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.menu-panel__pane[hidden] {
  display: none;
}

.menu-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-6);
  border-bottom: 1px solid var(--color-border);
}

.menu-panel__title {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
}

.menu-panel__chevron {
  display: flex;
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.menu-table {
  padding: var(--space-2) var(--space-6) var(--space-5);
}

.menu-table__head,
.menu-table__row {
  display: grid;
  grid-template-columns: 1fr 5rem 5.5rem;
  gap: var(--space-4);
  align-items: baseline;
}

.menu-table__head {
  padding-block: var(--space-3);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-accent);
  border-bottom: 1px solid var(--color-border);
}

.menu-table__head .menu-table__col--price {
  color: var(--color-accent);
}

.menu-table__list {
  margin: 0;
  padding: 0;
}

.menu-table__row {
  padding-block: var(--space-3);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text);
  border-bottom: 1px solid var(--color-border);
}

.menu-table__row:last-child {
  border-bottom: none;
}

.menu-table__col--weight,
.menu-table__col--price {
  text-align: right;
}

.menu-table--wide-price .menu-table__head,
.menu-table--wide-price .menu-table__row {
  grid-template-columns: 1fr 6.5rem 7.5rem;
}

.menu-table__col--price {
  font-weight: 600;
  color: var(--color-text);
}

.menu-table__composition {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  line-height: var(--leading-normal);
}

.lunch-complexes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  padding: var(--space-4) var(--space-6) var(--space-5);
}

.lunch-complexes--page {
  padding: 0;
}

.lunch-complexes__note {
  margin: 0;
  padding: 0 var(--space-6) var(--space-5);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  text-align: center;
}

.lunch-complexes--page + .lunch-complexes__note {
  padding: var(--space-4) 0 0;
}

.lunch-complex {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: var(--space-5);
  background-color: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
}

.lunch-complexes--page .lunch-complex {
  background-color: var(--color-review-card);
}

.lunch-complex__title {
  margin: 0 0 var(--space-4);
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 600;
  line-height: var(--leading-snug);
  text-align: center;
  color: var(--color-text);
}

.lunch-complex__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lunch-complex__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
  color: var(--color-text);
}

.lunch-complex__item .lunches-included__check {
  margin-top: 0.1rem;
}

.lunch-complex__text {
  flex: 1;
  min-width: 0;
}

.lunch-complex__name {
  display: block;
}

.lunch-complex__composition {
  display: block;
}

.lunch-complex__price {
  margin: var(--space-4) 0 0;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
  text-align: center;
  font-size: var(--text-md);
  color: var(--color-text);
}

.lunches-variants {
  padding-top: 0;
}

.lunches-variants .section-header {
  margin-bottom: var(--space-8);
}

.lunches-variants__lead {
  max-width: 36rem;
  margin-inline: auto;
}

.menu-info__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

.menu-info__card {
  display: grid;
  grid-template-rows: auto auto 1fr auto auto;
  justify-items: start;
  align-items: start;
  gap: var(--space-3);
  height: 100%;
  padding: var(--space-6) var(--space-8);
  background-color: var(--color-review-card);
  border-radius: var(--radius-md);
}

.menu-info__icon {
  display: flex;
  color: var(--color-accent);
}

.menu-info__icon svg {
  display: block;
  width: 2.75rem;
  height: 2.75rem;
}

.menu-info__title {
  font-family: var(--font-serif);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-text);
}

.menu-info__text {
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin-bottom: 0;
}

.menu-info__btn {
  width: auto;
}

.menu-info__note {
  font-size: var(--text-xs);
  line-height: var(--leading-normal);
  color: var(--color-text-muted);
  margin: 0;
}

.menu-info__note--placeholder {
  visibility: hidden;
}

/* --------------------------------------------------------------------------
   Focus styles
   -------------------------------------------------------------------------- */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Responsive — tablet (≤ 991px)
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
  :root {
    --text-hero: 2.375rem;
    --text-2xl: 1.75rem;
    --text-3xl: 2.25rem;
    --text-phone-hero: 2.25rem;
    --section-y-lg: 2.75rem;
    --gutter: 1.25rem;
  }

  .header__menu-toggle {
    display: flex;
    order: 3;
  }

  .logo {
    order: 1;
  }

  .nav {
    order: 4;
    position: fixed;
    top: calc(var(--header-height) + var(--space-6));
    left: 0;
    right: 0;
    z-index: 100;
    display: none;
    max-height: calc(100dvh - var(--header-height) - var(--space-6));
    overflow-y: auto;
    padding: var(--space-4) var(--gutter);
    background-color: var(--color-dark);
    border-top: 1px solid var(--color-border-on-dark);
  }

  .header--menu-open .nav {
    display: block;
  }

  body.nav-open {
    overflow: hidden;
  }

  .nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .nav__item {
    border-bottom: 1px solid var(--color-border-on-dark);
  }

  .nav__link {
    display: block;
    padding: var(--space-4) var(--space-2);
  }

  .header__contact {
    order: 2;
    margin-left: auto;
    margin-right: var(--space-2);
  }

  .header__phone {
    font-size: var(--text-sm);
  }

  .logo__name {
    font-size: 2.25rem;
  }

  .header__hours {
    display: none;
  }

  .nav__meta {
    display: block;
    margin-top: var(--space-2);
    padding: var(--space-4) var(--space-2) var(--space-2);
    border-top: 1px solid var(--color-border-on-dark);
    text-align: center;
  }

  .nav__hours {
    font-size: var(--text-xs);
    line-height: 1.45;
    color: var(--color-accent);
    margin: 0 0 var(--space-1);
  }

  .nav__hours-secondary {
    font-size: var(--text-xs);
    line-height: 1.45;
    color: var(--color-text-muted-on-dark);
    margin: 0;
  }

  .header--menu-open .header__menu-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .header--menu-open .header__menu-toggle-bar:nth-child(2) {
    opacity: 0;
  }

  .header--menu-open .header__menu-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .business-lunch__inner {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
  }

  .business-lunch__action {
    grid-column: 1 / -1;
    justify-content: center;
  }

  .page-home .services__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(10.5rem, 1fr) minmax(10.5rem, 1fr);
    gap: var(--space-4);
    align-items: stretch;
  }

  .page-home .services .section-intro {
    grid-column: 1;
    grid-row: 1;
    max-width: none;
    align-self: center;
    padding-top: 0;
  }

  .page-home .service-grid {
    display: contents;
  }

  .page-home .service-grid__stack {
    display: contents;
  }

  .page-home .service-card--large {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    min-height: 0;
  }

  .page-home #catering,
  .page-home #lunches {
    display: flex;
    min-height: 0;
  }

  .page-home #catering {
    grid-column: 1;
    grid-row: 2;
  }

  .page-home #lunches {
    grid-column: 2;
    grid-row: 2;
  }

  .page-home .service-card--large .service-card__media,
  .page-home #catering .service-card__media,
  .page-home #lunches .service-card__media {
    aspect-ratio: auto;
    height: 100%;
    min-height: 10.5rem;
  }

  .page-home .hall-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .page-home .hall-grid .hall-card:first-child {
    grid-column: 1 / -1;
  }

  .page-home .hall-grid .hall-card:first-child .hall-card__slider-track .hall-card__image {
    aspect-ratio: 21 / 9;
  }

  .banquet-features__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
  }

  .banquet-features__item {
    padding-inline: 0;
    border-right: none;
    padding-bottom: var(--space-4);
  }

  .banquet-features__item:nth-child(odd) {
    padding-right: var(--space-4);
    border-right: 1px solid var(--color-border);
  }

  .banquet-menu__inner {
    grid-template-columns: 1fr;
  }

  .banquet-menu__content {
    padding: var(--space-6) var(--gutter);
  }

  .lunches-included__inner {
    grid-template-columns: 1fr;
  }

  .lunches-included__content {
    padding: var(--space-6) var(--gutter);
  }

  .lunches-included__media {
    max-height: 16rem;
  }

  .lunches-memorial__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .catering-price__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
    max-width: 16rem;
  }

  .catering-price__divider {
    width: 100%;
    height: 1px;
    margin-inline: auto;
  }

  .menu-categories {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .menu-categories--other {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hero--menu .hero__background {
    left: 30%;
  }

  .menu-info__grid {
    grid-template-columns: 1fr;
  }

  .page-menu .menu-info__grid {
    gap: var(--space-4);
  }

  .page-menu .menu-info__card {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto auto;
    gap: var(--space-2) var(--space-4);
    padding: var(--space-4) var(--space-5);
    align-items: start;
  }

  .page-menu .menu-info__icon {
    grid-column: 1;
    grid-row: 1 / span 3;
    align-self: start;
  }

  .page-menu .menu-info__icon svg {
    width: 2.25rem;
    height: 2.25rem;
  }

  .page-menu .menu-info__title {
    grid-column: 2;
    grid-row: 1;
    font-size: var(--text-lg);
  }

  .page-menu .menu-info__text {
    grid-column: 2;
    grid-row: 2;
  }

  .page-menu .menu-info__btn {
    grid-column: 2;
    grid-row: 3;
    width: auto;
    max-width: none;
  }

  .page-menu .menu-info__note {
    grid-column: 2;
    grid-row: 4;
  }

  .page-menu .menu-info__note--placeholder {
    display: none;
  }

  .lunch-complexes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .banquet-halls__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .banquet-steps__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-8);
  }

  .banquet-steps__track::before {
    display: none;
  }

  .banquet-org__card {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }

  .banquet-org__photo {
    grid-column: 1 / -1;
    grid-row: auto;
    max-width: 20rem;
  }

  .banquet-org__heading {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .banquet-org__main {
    grid-column: 1 / -1;
    grid-row: auto;
    border-right: none;
    padding-right: 0;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-6);
  }

  .banquet-org__extra {
    grid-column: 1 / -1;
    grid-row: auto;
    padding-left: 0;
    padding-top: var(--space-2);
  }

  .services__grid {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .service-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    height: auto;
  }

  .service-card--large .service-card__media {
    aspect-ratio: 16 / 10;
    height: auto;
  }

  .service-grid__stack .service-card__media {
    aspect-ratio: 16 / 9;
    height: auto;
  }

  .service-card--large {
    grid-row: auto;
  }

  .service-grid__stack {
    grid-row: auto;
    grid-template-rows: auto auto;
  }

  .hall-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact__layout {
    grid-template-columns: 1fr;
  }

  .contact__body {
    grid-template-columns: 1fr 1fr;
    padding: var(--section-y-lg) var(--gutter);
    gap: var(--space-8);
  }

  .contact__message {
    max-width: none;
  }

  .catering-venues__inner {
    display: block;
  }

  .catering-venues__item {
    font-size: var(--text-base);
  }

  .catering-price__content {
    padding: var(--space-8) var(--gutter);
  }

  .banquet-features__actions,
  .lunches-why__actions,
  .gallery__actions {
    justify-content: center;
  }

  .review-slider {
    padding-inline: var(--space-8);
  }

  .menu-info__card {
    padding: var(--space-6);
  }

  .lunches-intro__text {
    padding-inline: 0;
  }
}

/* --------------------------------------------------------------------------
   Responsive — mobile (≤ 767px)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  :root {
    --text-hero: 2rem;
    --text-2xl: 1.5rem;
    --text-xl: 1.125rem;
    --text-phone-hero: 1.875rem;
    --section-y-lg: 2.25rem;
    --header-height: 5.25rem;
  }

  .logo__name {
    font-size: 2rem;
  }

  .header__inner {
    gap: var(--space-2);
    padding-block: var(--space-2);
  }

  .header__phone {
    font-size: var(--text-sm);
  }

  .header__contact {
    margin-right: 0;
  }

  .header__hours,
  .header__hours_secondary {
    display: block;
  }

  .header__hours {
    margin-top: var(--space-1);
  }

  .nav {
    top: calc(var(--header-height) + var(--space-4));
    max-height: calc(100dvh - var(--header-height) - var(--space-4));
    padding: var(--space-5) var(--gutter) var(--space-6);
  }

  .nav__link {
    padding: var(--space-5) var(--space-2);
  }

  .nav__meta {
    margin-top: var(--space-3);
    padding: var(--space-5) var(--space-2) var(--space-3);
  }

  .section-header {
    margin-bottom: var(--space-6);
  }

  .section-intro .section-heading,
  .section-heading {
    font-size: var(--text-xl);
  }

  .section-text {
    font-size: var(--text-base);
  }

  .hero {
    min-height: 28rem;
  }

  .hero__content {
    padding-block: var(--space-10);
    align-items: stretch;
  }

  .hero__title {
    max-width: none;
  }

  .hero__subtitle {
    max-width: none;
  }

  .hero__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .hero__actions .btn {
    width: 100%;
  }

  .hero__phone-link {
    font-size: var(--text-phone-hero);
  }

  .hero--menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: auto;
  }

  .hero--menu .hero__background {
    position: relative;
    inset: auto;
    left: 0;
    right: 0;
    height: 14rem;
    order: -1;
  }

  .hero--menu .hero__background::before {
    background: linear-gradient(to bottom, transparent 55%, var(--color-bg) 100%);
  }

  .hero--menu .hero__content {
    padding-top: var(--space-6);
  }

  .business-lunch__inner {
    grid-template-columns: 1fr;
    gap: var(--space-4);
    text-align: center;
  }

  .business-lunch__lead {
    justify-content: center;
    flex-direction: column;
  }

  .business-lunch__action {
    justify-content: center;
  }

  .business-lunch__icon svg {
    width: 3.5rem;
    height: 3.5rem;
  }

  .service-card__body {
    padding: var(--space-5);
  }

  .service-card__title {
    font-size: var(--text-lg);
  }

  .banquet-features__grid {
    grid-template-columns: 1fr;
  }

  .banquet-features__item,
  .banquet-features__item:nth-child(odd) {
    padding-inline: 0;
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid var(--color-border);
  }

  .banquet-features__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .lunches-memorial__card {
    flex-direction: column;
    align-items: flex-start;
  }

  .lunches-memorial__card-icon svg {
    height: 5rem;
    min-height: 0;
    max-height: none;
  }

  .lunches-included__media {
    max-height: 14rem;
  }

  .lunches-included__content {
    padding: var(--space-5) var(--gutter);
  }

  .lunches-memorial__lead br {
    display: none;
  }

  .catering-venues__item {
    font-size: var(--text-sm);
    line-height: 1.5;
  }

  .catering-price {
    min-height: auto;
  }

  .catering-price__content {
    padding: var(--space-6) var(--gutter);
  }

  .catering-price__heading {
    font-size: var(--text-xl);
  }

  .catering-price__value {
    font-size: var(--text-2xl);
  }

  .catering-price__actions {
    flex-direction: column;
    align-items: center;
  }

  .catering-price__actions .btn {
    width: 100%;
    max-width: 16rem;
  }

  .menu-categories,
  .menu-categories--other {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
  }

  .menu-category__label {
    padding: var(--space-2);
    font-size: var(--text-xs);
  }

  .menu-panel__header {
    padding: var(--space-3) var(--space-4);
  }

  .menu-panel__title {
    font-size: var(--text-lg);
  }

  .menu-table {
    padding: var(--space-2) var(--space-4) var(--space-4);
  }

  .menu-table__head,
  .menu-table__row {
    grid-template-columns: 1fr 3.5rem 4rem;
    gap: var(--space-2);
    font-size: var(--text-xs);
  }

  .menu-info__card {
    padding: var(--space-5) var(--gutter);
  }

  .menu-info__btn {
    width: 100%;
    max-width: 16rem;
  }

  .banquet-menu__content {
    padding: var(--space-5) var(--gutter);
  }

  .banquet-halls__content {
    max-width: none;
  }

  .banquet-halls__photos {
    grid-template-columns: 1fr;
  }

  .banquet-halls__photo {
    aspect-ratio: 16 / 9;
    min-height: 10rem;
  }

  .banquet-steps__track {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .banquet-org__card {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    padding: var(--space-6);
  }

  .banquet-org__heading {
    grid-column: auto;
  }

  .banquet-org__main {
    grid-column: auto;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-6);
  }

  .banquet-org__extra {
    grid-column: auto;
  }

  .banquet-org__photo {
    max-width: none;
  }

  .banquet-org__photo-image {
    aspect-ratio: 16 / 10;
  }

  .banquet-steps__item {
    text-align: left;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: var(--space-1) var(--space-4);
    align-items: start;
    padding-bottom: var(--space-5);
    border-bottom: 1px solid var(--color-border);
  }

  .banquet-steps__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .banquet-steps__num {
    grid-row: 1 / -1;
    grid-column: 1;
    margin-bottom: 0;
    align-self: start;
  }

  .banquet-steps__title {
    grid-column: 2;
    grid-row: 1;
    font-size: var(--text-base);
    margin-bottom: var(--space-1);
  }

  .banquet-steps__text {
    grid-column: 2;
    grid-row: 2;
  }

  .review-slider__btn {
    opacity: 1;
  }

  .hall-card__slider-btn {
    display: none;
  }

  .review-slider {
    padding-inline: var(--space-10);
  }

  .review-slider__btn--prev {
    left: 0;
  }

  .review-slider__btn--next {
    right: 0;
  }


  .review-card {
    padding: var(--space-6) var(--space-5);
  }

  .review-card__quote {
    font-size: 2rem;
  }

  .menu-section__content .section-text {
    margin-bottom: var(--space-6);
  }

  .gallery__actions .btn {
    width: 100%;
    max-width: 16rem;
  }

  .hall-grid {
    grid-template-columns: 1fr;
  }

  .menu-section {
    min-height: 20rem;
  }

  .menu-section__image {
    min-height: 20rem;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .review-grid {
    grid-template-columns: 1fr;
  }

  .contact__layout {
    grid-template-columns: 1fr;
  }

  .contact__body {
    grid-template-columns: 1fr;
    padding: var(--section-y-lg) var(--gutter);
    gap: var(--space-8);
  }

  .contact__image {
    min-height: 18rem;
    max-height: 22rem;
  }

  .contact__quote p {
    font-size: var(--text-lg);
  }

  .contact-item__value {
    font-size: var(--text-base);
    word-break: break-word;
  }

  .footer__inner {
    flex-direction: column;
    text-align: center;
    gap: var(--space-3);
  }

  /* Главная — мобильная адаптация */
  .page-home .business-lunch__lead {
    align-items: center;
  }

  .page-home .business-lunch__title {
    text-align: center;
  }

  .page-home .services__grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
  }

  .page-home .services .section-intro {
    max-width: none;
    padding-top: 0;
  }

  .page-home .service-grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    height: auto;
  }

  .page-home .service-grid__stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
  }

  .page-home .service-card--large {
    display: block;
    grid-column: auto;
    grid-row: auto;
  }

  .page-home #catering,
  .page-home #lunches {
    grid-column: auto;
    grid-row: auto;
  }

  .page-home .service-card--large .service-card__media,
  .page-home #catering .service-card__media,
  .page-home #lunches .service-card__media {
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: 0;
  }

  .page-home .halls .section-header {
    padding-inline: var(--gutter);
  }

  .page-home .hall-grid {
    grid-template-columns: 1fr;
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    gap: var(--space-10);
  }

  .page-home .hall-grid .hall-card:first-child {
    grid-column: auto;
  }

  .page-home .hall-grid .hall-card:first-child .hall-card__slider-track .hall-card__image {
    aspect-ratio: 16 / 9;
  }

  .page-home .hall-card__slider {
    border-radius: 0;
  }

  .page-home .hall-card__title,
  .page-home .hall-card__capacity,
  .page-home .hall-card__text {
    padding-inline: var(--gutter);
  }

  .page-home .gallery-group__title {
    display: block;
  }

  .page-home .gallery-groups {
    gap: var(--space-10);
  }

  .page-home .gallery-slider {
    overflow: hidden;
    border-radius: var(--radius-md);
    touch-action: pan-y;
  }

  .page-home .gallery-slider .hall-card__slider-track {
    touch-action: pan-y;
  }

  /* Банкеты — мобильная адаптация */
  .page-banquets .section-heading,
  .page-banquets .banquet-org__heading,
  .page-banquets .banquet-menu__content .section-heading {
    font-size: var(--text-xl);
    margin-bottom: var(--space-4);
  }

  .page-banquets .banquet-menu__content .section-heading {
    margin-bottom: var(--space-3);
  }

  .page-banquets .banquet-features__title,
  .page-banquets .banquet-steps__title {
    font-size: 1.125rem;
  }

  .page-banquets .banquet-menu__text-break {
    display: block;
  }

  .page-banquets .banquet-halls ~ .section {
    padding-block: var(--space-6);
  }

  .page-banquets .banquet-steps .section-header,
  .page-banquets .reviews .section-header {
    margin-bottom: var(--space-4);
  }

  .page-banquets .banquet-gallery .section-header {
    margin-bottom: var(--space-3);
  }

  .page-banquets .banquet-menu__text,
  .page-banquets .banquet-halls__content .section-text {
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
  }

  .page-banquets .banquet-menu__text {
    margin-bottom: var(--space-4);
  }

  .page-banquets .banquet-halls__content .section-text {
    margin-bottom: var(--space-4);
  }

  .page-banquets .banquet-org__card {
    padding: 0 0 var(--space-6);
    gap: 0;
    border-radius: var(--radius-md);
  }

  .page-banquets .banquet-org__photo {
    margin: 0;
    padding: 0;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    max-width: none;
    overflow: hidden;
  }

  .page-banquets .banquet-org__photo-image {
    aspect-ratio: 16 / 7;
    width: 100%;
    height: auto;
    min-height: 0;
  }

  .page-banquets .banquet-org__heading {
    padding: var(--space-5) var(--gutter) 0;
  }

  .page-banquets .banquet-org__main {
    padding: var(--space-4) var(--gutter) var(--space-6);
  }

  .page-banquets .banquet-org__extra {
    padding: var(--space-6) var(--gutter) 0;
    margin-top: 0;
    flex-direction: column;
    gap: var(--space-5);
  }

  .page-banquets .gallery-group__title {
    display: block;
    margin-bottom: var(--space-3);
  }

  .page-banquets .gallery-groups {
    gap: var(--space-3);
    margin-bottom: var(--space-6);
  }

  .page-banquets .gallery-group--photo .gallery-group__title {
    margin-top: var(--space-1);
  }

  .page-banquets .gallery-slider {
    overflow: hidden;
    border-radius: var(--radius-md);
    touch-action: pan-y;
  }

  /* Меню — мобильная адаптация */
  .page-menu .hero--menu {
    display: flex;
    align-items: center;
    min-height: 28rem;
    flex-direction: row;
  }

  .page-menu .hero--menu .hero__background {
    position: absolute;
    inset: 0;
    left: 0;
    right: 0;
    height: auto;
    order: unset;
  }

  .page-menu .hero--menu .hero__background::before {
    display: none;
  }

  .page-menu .hero--menu .hero__background-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .page-menu .hero--menu .hero__content {
    padding-top: var(--space-10);
  }

  .page-menu .section-heading,
  .page-menu .menu-categories-block .section-heading {
    font-size: var(--text-xl);
    margin-bottom: var(--space-3);
  }

  .page-menu .section-text,
  .page-menu .menu-categories-block__lead {
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
    margin-bottom: 0;
  }

  .page-menu .menu-categories-block .section-header {
    margin-bottom: var(--space-4);
  }

  .page-menu .menu-info__title {
    font-size: var(--text-xl);
  }

  .page-menu .menu-panel__title {
    font-size: 1.125rem;
  }

  .page-menu .menu-info__text,
  .page-menu .menu-table__row {
    font-size: var(--text-sm);
  }

  .page-menu #other-pizza .menu-table__row {
    grid-template-columns: 1fr;
  }

  .page-menu #other-pizza .menu-table__col--dish {
    grid-column: 1;
  }

  .page-menu #other-pizza .menu-table__col--weight,
  .page-menu #other-pizza .menu-table__col--price {
    text-align: left;
  }

  .page-menu .menu-categories-slider {
    padding-inline: var(--space-10);
    margin-bottom: var(--space-3);
  }

  .page-menu .menu-categories-slider .review-slider__btn {
    display: flex;
    opacity: 1;
  }

  .page-menu .menu-categories-slider .review-slider__btn--prev {
    left: 0;
  }

  .page-menu .menu-categories-slider .review-slider__btn--next {
    right: 0;
  }

  .page-menu .menu-categories,
  .page-menu .menu-categories--other {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-3);
    margin-bottom: 0;
    padding-bottom: var(--space-1);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .page-menu .menu-categories::-webkit-scrollbar,
  .page-menu .menu-categories--other::-webkit-scrollbar {
    display: none;
  }

  .page-menu .menu-category {
    flex: 0 0 42%;
    max-width: 10.5rem;
    scroll-snap-align: start;
  }

  .page-menu .menu-category__image {
    aspect-ratio: 4 / 3;
  }

  .page-menu .menu-category__label {
    padding: var(--space-2);
    font-size: var(--text-xs);
    line-height: 1.3;
  }

  .page-menu .menu-panel {
    margin-top: var(--space-2);
  }

  .page-menu .menu-info__card {
    padding: var(--space-5) var(--gutter);
  }

  /* Кейтеринг — мобильная адаптация */
  .page-catering .section-heading,
  .page-catering .lunches-included__content .section-heading,
  .page-catering .catering-price__heading {
    font-size: var(--text-xl);
    margin-bottom: var(--space-4);
  }

  .page-catering .catering-price__heading {
    margin-bottom: var(--space-6);
  }

  .page-catering .section-text,
  .page-catering .catering-order__item,
  .page-catering .catering-order__note,
  .page-catering .lunches-included__note,
  .page-catering .catering-price__text,
  .page-catering .catering-price__label,
  .page-catering .catering-venues__item,
  .page-lunches .catering-venues__item,
  .page-catering .banquet-steps__text {
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
  }

  .page-catering .banquet-steps__title {
    font-size: 1.125rem;
  }

  .page-catering .banquet-steps .section-header {
    margin-bottom: var(--space-4);
  }

  .page-catering .catering-venues,
  .page-lunches .catering-venues {
    padding-block: var(--section-y-lg);
  }

  .page-catering .catering-venues__inner,
  .page-lunches .catering-venues__inner {
    padding-block: 0;
  }

  .page-catering .catering-order.section {
    padding-top: 0;
  }

  .page-catering .catering-order {
    padding-top: 0;
  }

  .page-catering .catering-venues__list,
  .page-lunches .catering-venues__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    max-width: 100%;
    margin-inline: 0;
    align-items: stretch;
    justify-items: stretch;
  }

  .page-catering .catering-venues__item,
  .page-lunches .catering-venues__item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    text-align: center;
    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
  }

  .page-catering .catering-venues__item::after,
  .page-lunches .catering-venues__item::after {
    content: none;
  }

  .page-catering .catering-venues__item:nth-child(odd),
  .page-lunches .catering-venues__item:nth-child(odd) {
    padding-right: var(--space-4);
  }

  .page-catering .catering-venues__item:nth-child(even),
  .page-lunches .catering-venues__item:nth-child(even) {
    border-right: none;
  }

  .page-catering .catering-venues__item:nth-child(n + 3),
  .page-lunches .catering-venues__item:nth-child(n + 3) {
    border-bottom: none;
  }

  .page-catering .catering-order .lunches-included__inner {
    grid-template-columns: 1fr;
  }

  .page-catering .catering-order .lunches-included__card {
    padding: 0;
    overflow: hidden;
  }

  .page-catering .catering-order .lunches-included__media {
    max-height: none;
    height: auto;
    min-height: 0;
  }

  .page-catering .catering-order .lunches-included__image {
    aspect-ratio: 16 / 7;
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  .page-catering .catering-order .lunches-included__content {
    padding: var(--space-5) var(--gutter);
  }

  .page-catering .catering-price__value {
    font-size: 2.4rem;
  }

  /* Комплексные обеды — мобильная адаптация */
  .page-lunches .section-heading,
  .page-lunches .lunches-included__content .section-heading,
  .page-lunches .lunches-memorial__card-title,
  .page-lunches .lunches-memorial__steps-heading {
    font-size: var(--text-xl);
    margin-bottom: var(--space-4);
  }

  .page-lunches .lunches-memorial .section-heading {
    margin-bottom: var(--space-3);
  }

  .page-lunches .lunches-included__content .section-heading {
    margin-bottom: var(--space-3);
  }

  .page-lunches .lunches-why .section-heading {
    margin-bottom: 0;
  }

  .page-lunches .lunches-why .section-header,
  .page-lunches .lunches-memorial .section-header {
    margin-bottom: var(--space-4);
  }

  .page-lunches .section-text,
  .page-lunches .lunches-included__item,
  .page-lunches .lunches-included__note,
  .page-lunches .lunches-included__price,
  .page-lunches .lunches-memorial__lead,
  .page-lunches .lunches-memorial__card-text,
  .page-lunches .lunches-memorial__step-text,
  .page-lunches .banquet-features__text {
    font-size: var(--text-sm);
    line-height: var(--leading-normal);
  }

  .page-lunches .banquet-features__title {
    font-size: 1.125rem;
  }

  .page-lunches .lunches-included.section {
    padding-top: 0;
  }

  .page-lunches .lunches-included__inner {
    grid-template-columns: 1fr;
  }

  .page-lunches .lunches-included__card {
    padding: 0;
    overflow: hidden;
  }

  .page-lunches .lunches-included__media {
    max-height: none;
    height: auto;
    min-height: 0;
  }

  .page-lunches .lunches-included__image {
    aspect-ratio: 16 / 7;
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  .page-lunches .lunches-included__content {
    padding: var(--space-5) var(--gutter);
  }

  .page-lunches .lunches-included__price-break {
    display: block;
  }

  .page-lunches .lunches-memorial__card {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto;
    gap: var(--space-3) var(--space-4);
    height: auto;
    align-items: start;
  }

  .page-lunches .lunches-memorial__card-icon {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
  }

  .page-lunches .lunches-memorial__card-icon svg {
    height: 3.5rem;
    min-height: 0;
    max-height: none;
  }

  .page-lunches .lunches-memorial__card-body {
    display: contents;
  }

  .page-lunches .lunches-memorial__card-title {
    grid-column: 2;
    grid-row: 1;
    margin-bottom: 0;
    align-self: center;
  }

  .page-lunches .lunches-memorial__card-text {
    grid-column: 1 / -1;
    grid-row: 2;
    flex: none;
  }

  .page-lunches .lunches-memorial__card .text-link {
    grid-column: 1 / -1;
    grid-row: 3;
  }
}

/* --------------------------------------------------------------------------
   Responsive — small mobile (≤ 480px)
   -------------------------------------------------------------------------- */
@media (max-width: 480px) {
  :root {
    --text-hero: 1.75rem;
    --text-phone-hero: 1.5rem;
    --text-2xl: 1.375rem;
    --gutter: 1rem;
    --section-y-lg: 2rem;
    --header-height: 4.25rem;
  }

  .logo__name {
    font-size: 1.75rem;
  }

  .header__phone {
    font-size: 0.75rem;
  }

  .nav__link {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
  }

  .hero {
    min-height: 24rem;
  }

  .hero__content {
    padding-block: var(--space-8);
  }

  .hero--menu .hero__background {
    height: 11rem;
  }

  .section-intro .section-heading,
  .section-heading {
    font-size: 1.375rem;
  }

  .page-banquets .section-heading,
  .page-banquets .banquet-org__heading,
  .page-banquets .banquet-menu__content .section-heading {
    font-size: 1.375rem;
  }

  .page-menu .section-heading,
  .page-menu .menu-categories-block .section-heading {
    font-size: 1.375rem;
  }

  .page-menu .menu-info__title {
    font-size: 1.375rem;
  }

  .page-catering .section-heading,
  .page-catering .lunches-included__content .section-heading,
  .page-catering .catering-price__heading {
    font-size: 1.375rem;
  }

  .page-catering .catering-price__value {
    font-size: 2.6rem;
  }

  .page-lunches .section-heading,
  .page-lunches .lunches-included__content .section-heading,
  .page-lunches .lunches-memorial__card-title,
  .page-lunches .lunches-memorial__steps-heading {
    font-size: 1.375rem;
  }

  .menu-section__content .section-heading {
    font-size: 1.75rem;
  }

  .page-home .menu-section__content .section-text {
    font-size: 0.8125rem;
    line-height: 1.45;
    max-width: 13.5rem;
    margin-bottom: var(--space-5);
  }

  .page-home .menu-section__content .section-heading {
    font-size: 1.5rem;
    margin-bottom: var(--space-3);
    max-width: 12rem;
  }

  .page-home .services .section-intro .section-text {
    font-size: 0.8125rem;
    line-height: 1.45;
    text-align: center;
  }

  .page-home .services .section-intro .section-label {
    display: none;
  }

  .page-home .services .section-intro .section-heading {
    text-align: center;
  }

  .menu-section {
    min-height: 18rem;
  }

  .menu-section__image {
    min-height: 18rem;
  }

  .menu-categories,
  .menu-categories--other {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2);
  }

  .menu-category__label {
    font-size: 0.6875rem;
    padding: var(--space-2) var(--space-1);
  }

  .menu-table__head {
    display: none;
  }

  .lunch-complexes {
    grid-template-columns: 1fr;
    padding-inline: var(--space-4);
  }

  .lunch-complexes__note {
    padding-inline: var(--space-4);
  }

  .menu-table__row {
    grid-template-columns: 1fr auto;
    gap: var(--space-1) var(--space-3);
    padding-block: var(--space-4);
  }

  .menu-table__col--dish {
    grid-column: 1 / -1;
    font-size: var(--text-sm);
    font-weight: 500;
  }

  .menu-table__col--weight {
    text-align: left;
    color: var(--color-text-muted);
  }

  .menu-table__col--price {
    font-size: var(--text-sm);
    text-align: left;
  }

  .page-menu #other-pizza .menu-table__row {
    grid-template-columns: 1fr;
    gap: var(--space-1);
  }

  .page-menu #other-pizza .menu-table__col--dish {
    grid-column: 1;
  }

  .page-menu #other-pizza .menu-table__col--weight,
  .page-menu #other-pizza .menu-table__col--price {
    text-align: left;
  }

  .page-catering .catering-venues__item,
  .page-lunches .catering-venues__item {
    font-size: var(--text-xs);
  }

  .lunches-memorial__card {
    padding: var(--space-5);
  }

  .banquet-features__card,
  .lunches-included__card {
    border-radius: var(--radius-md);
  }

  .review-slider {
    padding-inline: var(--space-8);
  }

  .review-slider__btn {
    width: 2rem;
    height: 2rem;
    font-size: 1rem;
  }

  .contact__image {
    min-height: 14rem;
    max-height: 18rem;
  }

  .btn {
    padding: 0.6875rem 1.125rem;
  }
}

/* --------------------------------------------------------------------------
   Banquets page — tablet only (768px–991px)
   -------------------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 991px) {
  /* Контактный блок: симметричная обрезка фотографии по краям на планшетах */
  .contact__image {
    object-position: left center;
  }

  .page-banquets .banquet-features__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }

  .page-banquets .banquet-features__item {
    padding: var(--space-5) var(--space-4);
    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
  }

  .page-banquets .banquet-features__item:nth-child(odd) {
    padding-right: var(--space-4);
  }

  .page-banquets .banquet-features__item:nth-child(2n) {
    border-right: none;
  }

  .page-banquets .banquet-features__item:nth-child(n + 3) {
    border-bottom: none;
  }

  .page-banquets .banquet-halls__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(10.5rem, 1fr) minmax(10.5rem, 1fr);
    gap: var(--space-4);
    align-items: stretch;
  }

  .page-banquets .banquet-halls__content {
    grid-column: 1;
    grid-row: 1;
    max-width: none;
    align-self: center;
  }

  .page-banquets .banquet-halls__photos {
    display: contents;
  }

  .page-banquets .banquet-halls__photo:nth-child(1) {
    grid-column: 2;
    grid-row: 1;
  }

  .page-banquets .banquet-halls__photo:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }

  .page-banquets .banquet-halls__photo:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
  }

  .page-banquets .banquet-halls__photo {
    width: 100%;
    height: 100%;
    min-height: 10.5rem;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .page-banquets .banquet-org__card {
    grid-template-columns: minmax(10rem, 0.4fr) 1fr;
    grid-template-rows: auto auto auto;
    gap: var(--space-4) var(--space-6);
    padding: var(--space-6);
  }

  .page-banquets .banquet-org__photo {
    grid-column: 1;
    grid-row: 1 / 3;
    max-width: none;
    align-self: stretch;
  }

  .page-banquets .banquet-org__photo-image {
    width: 100%;
    height: 100%;
    min-height: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
  }

  .page-banquets .banquet-org__heading {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
  }

  .page-banquets .banquet-org__main {
    grid-column: 2;
    grid-row: 2;
    border-right: none;
    border-bottom: none;
    padding-right: 0;
    padding-bottom: 0;
  }

  .page-banquets .banquet-org__extra {
    grid-column: 1 / -1;
    grid-row: 3;
    flex-direction: row;
    gap: var(--space-6);
    padding-left: 0;
    padding-top: var(--space-6);
    margin-top: var(--space-2);
    border-top: 1px solid var(--color-border);
  }

  .page-banquets .banquet-org__extra-item {
    flex: 1;
    min-width: 0;
  }

  .page-lunches .lunches-why .banquet-features__grid {
    gap: 0;
  }

  .page-lunches .lunches-why .banquet-features__item:nth-child(-n + 2) {
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-5);
  }

  .page-lunches .lunches-why .banquet-features__item:nth-child(n + 3) {
    padding-top: var(--space-5);
    padding-bottom: 0;
  }

  /* Меню — планшет: слайдер категорий */
  .page-menu .menu-categories-slider {
    padding-inline: var(--space-10);
    margin-bottom: var(--space-4);
  }

  .page-menu .menu-categories-slider .review-slider__btn {
    display: flex;
    opacity: 1;
  }

  .page-menu .menu-categories-slider .review-slider__btn--prev {
    left: 0;
  }

  .page-menu .menu-categories-slider .review-slider__btn--next {
    right: 0;
  }

  .page-menu .menu-categories,
  .page-menu .menu-categories--other {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-4);
    margin-bottom: 0;
    padding-bottom: var(--space-1);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .page-menu .menu-categories::-webkit-scrollbar,
  .page-menu .menu-categories--other::-webkit-scrollbar {
    display: none;
  }

  .page-menu .menu-category {
    flex: 0 0 28%;
    max-width: 12rem;
    scroll-snap-align: start;
  }

  .page-menu .menu-category__image {
    aspect-ratio: 4 / 3;
  }

  .page-menu .menu-panel {
    margin-top: var(--space-3);
  }
}

/* Mobile hero: image above, text on the header-colored background */
@media (max-width: 767px) {
  .hero,
  .page-menu .hero--menu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: auto;
    color: var(--color-light-text);
    background-color: var(--color-dark);
  }

  .hero .hero__background,
  .page-menu .hero--menu .hero__background {
    position: relative;
    inset: auto;
    order: -1;
    width: 100%;
    height: 33svh;
    min-height: 11rem;
    max-height: 18rem;
  }

  .hero--menu .hero__background::before,
  .page-menu .hero--menu .hero__background::before {
    display: none;
  }

  .hero .hero__background-image,
  .page-menu .hero--menu .hero__background-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .hero .hero__content,
  .page-menu .hero--menu .hero__content {
    padding-block: var(--space-8);
  }

  .hero .hero__title,
  .hero .hero__subtitle,
  .hero .hero__phone-link {
    color: var(--color-light-text);
  }

  .hero .hero__phone-label {
    color: var(--color-text-muted-on-dark);
  }

  .hero.hero--light,
  .page-menu .hero--menu {
    color: var(--color-text);
    background-color: var(--color-bg);
  }

  .hero.hero--light .hero__title,
  .hero.hero--light .hero__phone-link,
  .page-menu .hero--menu .hero__title,
  .page-menu .hero--menu .hero__phone-link {
    color: var(--color-text);
  }

  .hero.hero--light .hero__subtitle,
  .hero.hero--light .hero__phone-label,
  .page-menu .hero--menu .hero__subtitle,
  .page-menu .hero--menu .hero__phone-label {
    color: var(--color-text-muted);
  }
}

/* Contact photo: on tablets in landscape, keep the left side and crop only from the right */
@media (min-width: 768px) and (max-width: 1199px) {
  .contact__photo {
    overflow: hidden;
  }

  .contact__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
  }
}
