.restaurants-page { overflow: clip; }
.restaurants-page .container { width: min(100%, var(--container-max)); }
.restaurants-section { padding-block: clamp(var(--space-8), 7vw, var(--space-9)); }
.restaurants-section__intro { display: flex; flex-direction: column; min-width: 0; align-items: flex-start; gap: var(--space-4); }
.restaurants-section__intro > * { min-width: 0; margin: 0; }
.restaurants-section__intro h2 { margin: 0; }
.restaurants-hero { padding-block: var(--space-7) var(--space-8); }
.restaurants-hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4); align-items: stretch; }
.restaurants-hero__content { grid-column: 1 / span 7; grid-row: 1; display: flex; flex-direction: column; min-width: 0; align-items: flex-start; gap: var(--space-5); padding: clamp(var(--space-6), 4vw, var(--space-7)); border: var(--border-default); background: var(--color-module); }
.restaurants-hero__content > * { min-width: 0; margin: 0; }
.restaurants-hero__content h1 { max-width: 47.5rem; }
.restaurants-hero__lead { max-width: 38.75rem; padding-inline-start: var(--space-4); border-inline-start: 2px solid var(--color-orange); font-size: var(--text-lead); line-height: var(--leading-lead); }
.restaurants-hero__lead p { margin: 0; }
.restaurants-hero__media { grid-column: 8 / span 5; grid-row: 1; width: 100%; min-width: 0; margin: 0; aspect-ratio: 16 / 9; align-self: stretch; }
.restaurants-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 65% center; }
.restaurants-hero__jump { display: inline-flex; min-width: 0; align-items: center; gap: var(--space-2); padding-block-end: var(--space-1); border-bottom: 1px solid var(--color-orange); color: var(--color-text); font-size: var(--text-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.restaurants-hero__jump:hover { transform: translateX(2px); }
.restaurants-hero__index { display: grid; width: min(100%, 16rem); grid-template-columns: 1fr; gap: var(--space-2); padding: var(--space-4); border: var(--border-default); border-inline-start-color: var(--color-orange); background: var(--color-bg); }
.restaurants-hero__index > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); padding-block: var(--space-2); border-top: 1px solid var(--color-line); }
.restaurants-hero__index strong { color: var(--color-text); font-size: var(--text-label); letter-spacing: .08em; text-transform: uppercase; }
.restaurants-hero__index span:not(.micro) { color: var(--color-text-secondary); font-size: var(--text-small); line-height: var(--leading-small); }
.restaurants-map__intro { max-width: 40.625rem; }
.restaurants-map__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.restaurants-type-card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-5); border: var(--border-default); background: var(--color-module); }
.restaurants-type-card > * { min-width: 0; margin: 0; }
.restaurants-type-card h3 { font-size: clamp(1.5rem, 2vw, 1.875rem); }
.restaurants-type-card p { color: var(--color-text-secondary); }
.restaurants-type-card__code, .restaurants-type-card__meta { color: var(--color-text-muted); font-size: var(--text-micro); font-weight: 600; letter-spacing: .12em; line-height: var(--leading-micro); text-transform: uppercase; }
.restaurants-type-card__code { padding-inline-start: var(--space-3); border-inline-start: 2px solid var(--color-line); }
.restaurants-type-card:hover .restaurants-type-card__code, .restaurants-type-card:focus-visible .restaurants-type-card__code { border-color: var(--color-orange); color: var(--color-orange); }
.restaurants-type-card--active .restaurants-type-card__meta { color: var(--color-orange); }
.restaurants-rhythm__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4); align-items: stretch; }
.restaurants-rhythm__panel { grid-column: 1 / span 8; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.restaurants-rhythm__panel > * { min-width: 0; margin: 0; }
.restaurants-rhythm__panel h2 { max-width: 42rem; }
.restaurants-rhythm__intro { max-width: 38.125rem; color: var(--color-text-secondary); }
.restaurants-rhythm__rows { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); }
.restaurants-rhythm__row { display: grid; grid-template-columns: minmax(7rem, 2fr) minmax(0, 6fr); gap: var(--space-4); padding-block: var(--space-4); border-top: 1px solid var(--color-line); }
.restaurants-rhythm__row > * { min-width: 0; }
.restaurants-rhythm__row > span { color: var(--color-text-secondary); font-size: var(--text-label); font-weight: 700; letter-spacing: .1em; line-height: var(--leading-label); text-transform: uppercase; }
.restaurants-rhythm__row > div { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.restaurants-rhythm__row h3, .restaurants-rhythm__row p { margin: 0; }
.restaurants-rhythm__row p { max-width: 35rem; color: var(--color-text-secondary); }
.restaurants-rhythm__row--evening > span { color: var(--color-orange); }
.restaurants-rhythm__row--evening > span::before { display: inline-block; width: .3125rem; height: .3125rem; margin-inline-end: var(--space-2); background: var(--color-orange); content: ""; vertical-align: middle; }
.restaurants-rhythm__row:focus-visible > span { color: var(--color-orange); }
.restaurants-rhythm__media { grid-column: 9 / span 4; width: 100%; min-width: 0; margin: 0; aspect-ratio: 3 / 4; }
.restaurants-rhythm__media img { width: 100%; height: 100%; object-fit: cover; }
.restaurants-comparison__intro { max-width: 40.625rem; }
.restaurants-comparison__table-wrap { margin-top: var(--space-6); border: var(--border-default); background: var(--color-module); }
.restaurants-comparison__table { margin: 0; }
.restaurants-comparison__table th:first-child { width: 25%; }
.restaurants-comparison__table td { width: 18.75%; color: var(--color-text-secondary); }
.restaurants-comparison__active { border-inline-start: 2px solid var(--color-orange); color: var(--color-text) !important; }
.restaurants-comparison__cards { display: none; }
.restaurants-comparison__note { max-width: 40.625rem; margin-block: var(--space-5) 0; color: var(--color-text-secondary); }
.restaurants-booking__intro { max-width: 38.75rem; }
.restaurants-booking__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.restaurants-booking__steps article { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-5); border: var(--border-default); border-inline-start: 2px solid var(--color-orange); background: var(--color-module); }
.restaurants-booking__steps article > * { min-width: 0; margin: 0; }
.restaurants-booking__steps article > span, .restaurants-diet__actions article > span { color: var(--color-orange); font-family: var(--font-display); font-size: 1.875rem; line-height: 1; }
.restaurants-booking__steps p { color: var(--color-text-secondary); }
.restaurants-booking__check { display: flex; width: calc((100% - var(--space-4)) / 3 * 2 + var(--space-4)); min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); margin-top: var(--space-4); }
.restaurants-booking__check > * { margin: 0; }
.restaurants-booking__check p { max-width: 56.25rem; color: var(--color-text-secondary); }
.restaurants-cost__intro { max-width: 40rem; }
.restaurants-cost__panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.restaurants-cost__panels article { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.restaurants-cost__panels article > * { min-width: 0; margin: 0; }
.restaurants-cost__panels p { color: var(--color-text-secondary); }
.restaurants-cost__verify { border-inline-start: 2px solid var(--color-orange); }
.restaurants-cost__verify .technical-label { color: var(--color-orange); }
.restaurants-cost__note { max-width: 40rem; margin: 0; color: var(--color-text-secondary); }
.restaurants-diet__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4); align-items: stretch; }
.restaurants-diet__content { grid-column: 1 / span 8; display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.restaurants-diet__content > * { min-width: 0; margin: 0; }
.restaurants-diet__content h2, .restaurants-diet__intro { max-width: 38.75rem; }
.restaurants-diet__intro { color: var(--color-text-secondary); }
.restaurants-diet__actions { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.restaurants-diet__actions article { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--color-line); }
.restaurants-diet__actions article > * { min-width: 0; margin: 0; }
.restaurants-diet__actions article:nth-child(3) { grid-column: 1 / span 1; }
.restaurants-diet__actions p { color: var(--color-text-secondary); }
.restaurants-diet__media { grid-column: 9 / span 4; width: 100%; min-width: 0; margin: 0; aspect-ratio: 3 / 4; }
.restaurants-diet__media img { width: 100%; height: 100%; object-fit: cover; }
.restaurants-etiquette__intro { max-width: 40.625rem; }
.restaurants-etiquette__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.restaurants-etiquette__grid article { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-5) 0; border-top: 1px solid var(--color-line); }
.restaurants-etiquette__grid article > * { min-width: 0; margin: 0; }
.restaurants-etiquette__grid p { color: var(--color-text-secondary); }
.restaurants-etiquette__program { color: var(--color-orange); }
.restaurants-etiquette__program::before { display: inline-block; width: .3125rem; height: .3125rem; margin-inline-end: var(--space-2); background: currentColor; content: ""; }
.restaurants-etiquette blockquote { max-width: 40rem; margin-top: var(--space-5); }
.restaurants-decisions__intro { max-width: 38.75rem; }
.restaurants-decisions__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.restaurants-decisions__grid article, .restaurants-decisions__space { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-5); border: var(--border-default); background: var(--color-module); }
.restaurants-decisions__grid article > *, .restaurants-decisions__space > * { min-width: 0; margin: 0; }
.restaurants-decisions__grid article > span { color: var(--color-text-muted); font-size: var(--text-micro); font-weight: 700; letter-spacing: .12em; line-height: var(--leading-micro); text-transform: uppercase; }
.restaurants-decisions__grid article p, .restaurants-decisions__space p { color: var(--color-text-secondary); }
.restaurants-decisions__grid article a { margin-top: auto; padding-top: var(--space-2); border-bottom: 1px solid transparent; color: var(--color-text); font-size: var(--text-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.restaurants-decisions__grid article:hover a, .restaurants-decisions__grid article:focus-within a { border-color: var(--color-orange); color: var(--color-orange); transform: translateX(2px); }
.restaurants-decisions__a { grid-column: 1 / span 3; }
.restaurants-decisions__b { grid-column: 4 / span 5; border-inline-start: 2px solid var(--color-orange) !important; }
.restaurants-decisions__c { grid-column: 9 / span 4; }
.restaurants-decisions__d { grid-column: 1 / span 6; }
.restaurants-decisions__space { grid-column: 7 / span 6; justify-content: center; background: transparent; }
.restaurants-next__panel { display: flex; width: calc((100% - var(--space-4)) / 3 * 2); min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.restaurants-next__panel > * { min-width: 0; margin: 0; }
.restaurants-next__panel h2, .restaurants-next__panel > p { max-width: 40.625rem; }
.restaurants-next__panel > p { color: var(--color-text-secondary); font-size: var(--text-lead); line-height: var(--leading-lead); }
.restaurants-next__panel .route-divider { width: 100%; margin: 0; }
.restaurants-next__actions { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-3); }
.restaurants-next__actions > * { min-width: 11.25rem; }
@media (max-width: 67.5rem) {
  .restaurants-map__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurants-decisions__a { grid-column: 1 / span 3; }
  .restaurants-decisions__b { grid-column: 4 / span 3; }
  .restaurants-decisions__c, .restaurants-decisions__d { grid-column: 1 / span 6; }
  .restaurants-decisions__space { display: none; }
}
@media (max-width: 60rem) {
  .restaurants-hero__grid, .restaurants-rhythm__grid, .restaurants-diet__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .restaurants-hero__media, .restaurants-rhythm__media, .restaurants-diet__media { grid-column: 1 / span 6; grid-row: auto; aspect-ratio: 16 / 9; }
  .restaurants-hero__content, .restaurants-rhythm__panel, .restaurants-diet__content { grid-column: 1 / span 6; grid-row: auto; }
  .restaurants-hero__media { order: -1; }
  .restaurants-rhythm__media, .restaurants-diet__media { order: -1; }
  .restaurants-rhythm__panel { order: 2; }
  .restaurants-diet__content { order: 2; }
  .restaurants-booking__steps { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .restaurants-booking__steps article:nth-child(1), .restaurants-booking__steps article:nth-child(2) { grid-column: span 3; }
  .restaurants-booking__steps article:nth-child(3) { grid-column: 1 / span 6; }
  .restaurants-booking__check, .restaurants-next__panel { width: 100%; }
  .restaurants-cost__panels { grid-template-columns: minmax(0, 1fr); }
  .restaurants-diet__actions { grid-template-columns: minmax(0, 1fr); }
  .restaurants-diet__actions article:nth-child(3) { grid-column: auto; }
  .restaurants-etiquette__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .restaurants-etiquette__grid article:nth-child(1), .restaurants-etiquette__grid article:nth-child(2) { grid-column: span 3; }
  .restaurants-etiquette__grid article:nth-child(3) { grid-column: 1 / span 6; }
  .restaurants-comparison__table-wrap { display: none; }
  .restaurants-comparison__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
  .restaurants-comparison__cards article { min-width: 0; padding: var(--space-5); border: var(--border-default); background: var(--color-module); }
  .restaurants-comparison__cards h3 { margin-bottom: var(--space-4); }
  .restaurants-comparison__cards dl { display: grid; gap: var(--space-3); margin: 0; }
  .restaurants-comparison__cards dl > div { display: grid; min-width: 0; gap: var(--space-1); padding-top: var(--space-2); border-top: 1px solid var(--color-line); }
  .restaurants-comparison__cards dd { margin: 0; color: var(--color-text-secondary); }
}
@media (max-width: 45rem) {
  .restaurants-hero { padding-block: var(--space-5) var(--space-7); }
  .restaurants-hero__content { padding: var(--space-5); }
  .restaurants-hero__lead { padding-inline-start: var(--space-3); }
  .restaurants-hero__index { width: 100%; }
  .restaurants-map__grid, .restaurants-booking__steps, .restaurants-etiquette__grid, .restaurants-comparison__cards { grid-template-columns: minmax(0, 1fr); }
  .restaurants-booking__steps article:nth-child(1), .restaurants-booking__steps article:nth-child(2), .restaurants-booking__steps article:nth-child(3), .restaurants-etiquette__grid article:nth-child(1), .restaurants-etiquette__grid article:nth-child(2), .restaurants-etiquette__grid article:nth-child(3) { grid-column: auto; }
  .restaurants-rhythm__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .restaurants-rhythm__media, .restaurants-diet__media { aspect-ratio: 4 / 3; }
  .restaurants-decisions__grid { grid-template-columns: minmax(0, 1fr); }
  .restaurants-decisions__a, .restaurants-decisions__b, .restaurants-decisions__c, .restaurants-decisions__d { grid-column: auto; }
  .restaurants-next__actions { width: 100%; flex-direction: column; }
  .restaurants-next__actions > * { width: 100%; min-width: 0; }
}
