.restaurants-page { overflow: clip; }
.restaurants-page section { scroll-margin-top: 6rem; }
.restaurants-hero { position: relative; min-height: 42.5rem; display: grid; grid-template-columns: minmax(0, 1fr); color: var(--color-smoked-white); background: var(--color-deep-atlantic); }
.restaurants-hero__media, .restaurants-hero__overlay, .restaurants-hero__content { grid-column: 1; grid-row: 1; min-width: 0; }
.restaurants-hero__media { width: 100%; height: 100%; }
.restaurants-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.restaurants-hero__overlay { background: linear-gradient(90deg, rgba(7,25,35,.9) 0%, rgba(7,25,35,.76) 42%, rgba(7,25,35,.22) 76%, rgba(7,25,35,.18) 100%); }
.restaurants-hero__content { z-index: 1; width: 100%; display: flex; align-items: end; padding-block: var(--space-9); }
.restaurants-hero__panel { width: min(100%, 42.5rem); min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.restaurants-hero__panel > * { min-width: 0; margin: 0; }
.restaurants-hero__panel h1 { max-width: 42rem; }
.restaurants-hero__panel .lead { max-width: 40rem; }
.restaurants-hero__route { width: min(100%, 40rem); display: flex; flex-wrap: wrap; gap: var(--space-3); color: var(--color-polished-steel); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; line-height: var(--leading-label); }
.restaurants-hero__route span { min-width: 0; display: flex; align-items: center; gap: var(--space-3); }
.restaurants-hero__route span:not(:last-child)::after { width: 2.5rem; height: 1px; background: var(--color-burnished-metal); content: ""; }
.restaurants-hero__facts { width: min(100%, 47.5rem); }
.restaurants-hero__facts .fact-value { font-size: clamp(1.5rem, 3vw, 2.2rem); }
.restaurants-formats__intro { width: min(100%, 40rem); min-width: 0; }
.restaurants-formats__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.format-module { min-width: 0; display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-6); border-top: var(--border-metal); }
.format-module > * { min-width: 0; }
.format-module__number { color: var(--color-burnished-metal); font-family: var(--font-heading); font-size: 3.5rem; line-height: 1; }
.format-module h3, .format-module p { margin: 0; }
.format-module div { display: flex; flex-direction: column; gap: var(--space-3); }
.format-module--buffet { background: var(--color-abyss-blue); color: var(--color-smoked-white); }
.format-module--specialty { background: rgba(13,43,56,.08); }
.format-module--bars { border-color: var(--color-ocean-jade); }
.format-module__tag { color: var(--color-ocean-jade); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; line-height: var(--leading-label); }
.restaurants-dinner__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(22.5rem, 5fr); gap: var(--space-7); align-items: start; }
.restaurants-dinner__layout > * { min-width: 0; }
.restaurants-dinner__figure { width: 100%; }
.restaurants-dinner__image { overflow: hidden; width: 100%; aspect-ratio: 4 / 5; border-radius: var(--radius-sm); }
.restaurants-dinner__image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.restaurants-dinner__figure:hover img { transform: scale(1.02); }
.restaurants-dinner__figure figcaption { width: min(100%, 16rem); margin-top: var(--space-3); color: var(--color-storm-grey-light); font-size: var(--text-xs); line-height: var(--leading-small); }
.restaurants-dinner__copy { width: min(100%, 36.25rem); display: flex; flex-direction: column; gap: var(--space-5); }
.restaurants-dinner__copy > * { min-width: 0; margin: 0; }
.dinner-note { padding-top: var(--space-5); border-top: 1px solid var(--color-border-dark); }
.dinner-note > * { margin: 0; }
.dinner-note { display: flex; flex-direction: column; gap: var(--space-3); }
.dinner-note a { color: var(--color-ocean-jade-light); font-weight: 700; }
.restaurants-buffet__intro { width: min(100%, 40rem); }
.restaurants-buffet__facts { width: 100%; margin-top: var(--space-7); }
.buffet-fact { min-width: 0; flex: 1 1 0; padding: var(--space-4); text-align: left; }
.buffet-fact small { display: block; margin-top: var(--space-2); color: var(--color-storm-grey); }
.restaurants-buffet__scenarios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.restaurants-buffet__scenarios > * { min-width: 0; }
.restaurants-buffet__scenarios article { padding-top: var(--space-5); border-top: var(--border-metal); }
.restaurants-buffet__scenarios h3 { margin-top: var(--space-3); }
.scenario__route { color: var(--color-burnished-metal); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; line-height: var(--leading-label); }
.restaurants-specialty__intro { width: min(100%, 38.75rem); }
.restaurants-specialty__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); align-items: stretch; }
.specialty-card { min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border: var(--border-metal); background: rgba(233,221,200,.05); }
.specialty-card > * { min-width: 0; margin: 0; }
.specialty-card--dark { background: var(--color-abyss-blue); border-color: var(--color-border-dark); }
.specialty-card__symbol { color: var(--color-burnished-metal); font-family: var(--font-heading); font-size: 4rem; line-height: .8; }
.specialty-card a { color: var(--color-ocean-jade-light); }
.restaurants-bar { display: grid; grid-template-columns: minmax(22.5rem, 2fr) minmax(0, 3fr); min-height: 43rem; background: var(--color-abyss-blue); color: var(--color-smoked-white); }
.restaurants-bar > * { min-width: 0; }
.restaurants-bar__panel { grid-column: 1; grid-row: 1; display: flex; justify-content: flex-end; padding: var(--space-9) var(--space-7); }
.restaurants-bar__copy { width: min(100%, 33.75rem); display: flex; flex-direction: column; gap: var(--space-5); }
.restaurants-bar__copy > * { min-width: 0; margin: 0; }
.restaurants-bar__image { grid-column: 2; grid-row: 1; overflow: hidden; }
.restaurants-bar__image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.restaurants-bar__image:hover img { transform: scale(1.02); }
.restaurants-bar a { color: var(--color-ocean-jade-light); font-weight: 700; }
.bar-markers { display: flex; flex-direction: column; gap: var(--space-5); }
.bar-markers article { min-width: 0; padding-left: var(--space-5); border-left: 1px solid var(--color-burnished-metal); }
.bar-markers article > * { margin: 0; }
.bar-markers article { display: flex; flex-direction: column; gap: var(--space-2); }
.bar-markers span { color: var(--color-burnished-metal); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; }
.restaurants-day__heading { width: min(100%, 38.75rem); }
.day-route { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 4rem minmax(0, 1fr); gap: var(--space-5); margin-top: var(--space-7); }
.day-route::before { position: absolute; top: 1rem; bottom: 1rem; left: 50%; width: 1px; background: var(--color-burnished-metal); content: ""; }
.day-stop { width: 100%; min-width: 0; max-width: 31.25rem; padding: var(--space-5); border: var(--border-subtle); background: rgba(7,25,35,.28); }
.day-stop::before { position: absolute; width: .9rem; height: .9rem; border: 2px solid var(--color-abyss-blue); border-radius: 50%; background: var(--color-ocean-jade); content: ""; }
.day-stop--left { grid-column: 1; justify-self: end; position: relative; }
.day-stop--left::before { right: calc(-2rem - .45rem); top: var(--space-6); }
.day-stop--right { grid-column: 3; justify-self: start; position: relative; }
.day-stop--right::before { left: calc(-2rem - .45rem); top: var(--space-6); }
.day-stop > * { margin: 0; }
.day-stop { display: flex; flex-direction: column; gap: var(--space-3); }
.day-stop__time { color: var(--color-burnished-metal); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; }
.day-stop--jade { border-color: var(--color-ocean-jade); }
.day-stop a { color: var(--color-ocean-jade-light); }
.restaurants-checklist__intro { width: min(100%, 37.5rem); }
.restaurants-checklist__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); }
.restaurants-checklist__grid article { min-width: 0; padding: var(--space-6); border-top: var(--border-metal); background: rgba(244,240,232,.34); }
.restaurants-checklist__grid article > * { margin: 0; }
.restaurants-checklist__grid article { display: flex; flex-direction: column; gap: var(--space-3); }
.restaurants-checklist__grid article > span { color: var(--color-ocean-jade); font-size: var(--text-sm); font-weight: 700; letter-spacing: .12em; }
.restaurants-checklist__grid .button { margin-top: var(--space-2); }
.restaurants-links__intro { width: min(100%, 38.75rem); }
.restaurants-links__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.editorial-link { min-width: 0; min-height: 100%; display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border-top: var(--border-metal); color: var(--color-smoked-white); text-decoration: none; transition: border-color var(--transition-fast), background-color var(--transition-fast); }
.editorial-link > * { min-width: 0; margin: 0; }
.editorial-link:hover { border-color: var(--color-ocean-jade); background: rgba(47,158,145,.08); }
.editorial-link__number { color: var(--color-burnished-metal); font-size: var(--text-xs); font-weight: 700; letter-spacing: .12em; }
.editorial-link__action { margin-top: auto; color: var(--color-ocean-jade-light); font-size: var(--text-sm); font-weight: 700; }
.editorial-link--entertainment .editorial-link__number { color: var(--color-ocean-jade-light); }
.restaurants-note { padding-inline: var(--page-padding); }
.restaurants-note__content { width: min(100%, 42.5rem); min-width: 0; margin-inline: auto; padding-top: var(--space-6); border-top: var(--border-metal); }
.restaurants-note__content h3 { margin-top: var(--space-6); }
@media (max-width: 65rem) { .restaurants-hero { min-height: 38rem; } .restaurants-hero__content { padding-block: var(--space-8); } .restaurants-bar__panel { padding-inline: var(--space-6); } }
@media (max-width: 61.25rem) { .restaurants-dinner__layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } .restaurants-dinner__figure { width: min(100%, 43rem); } .restaurants-dinner__image { aspect-ratio: 4 / 3; } .restaurants-dinner__copy { width: min(100%, 36.25rem); } .restaurants-specialty__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .specialty-card:last-child { grid-column: 1 / -1; } .restaurants-bar { grid-template-columns: minmax(0, 1fr); min-height: 0; } .restaurants-bar__image { grid-column: 1; grid-row: 1; aspect-ratio: 3 / 2; } .restaurants-bar__panel { grid-column: 1; grid-row: 2; padding: var(--space-7) var(--page-padding); justify-content: start; } }
@media (max-width: 60rem) { .restaurants-links__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .editorial-link:last-child { grid-column: 1 / -1; } }
@media (max-width: 56.25rem) { .restaurants-hero { min-height: 0; display: block; } .restaurants-hero__media { height: auto; aspect-ratio: 16 / 10; } .restaurants-hero__overlay { display: none; } .restaurants-hero__content { display: block; padding: var(--space-7) var(--page-padding); background: var(--color-deep-atlantic); } .restaurants-hero__panel { width: 100%; } .restaurants-hero__panel h1 { font-size: clamp(2.625rem, 10vw, 3.5rem); } .restaurants-formats__grid { gap: var(--space-5); } .day-route { grid-template-columns: 2rem minmax(0, 1fr); gap: var(--space-4); } .day-route::before { left: 1rem; } .day-stop, .day-stop--left, .day-stop--right { grid-column: 2; grid-row: auto; justify-self: stretch; max-width: none; } .day-stop::before, .day-stop--left::before, .day-stop--right::before { left: calc(-1rem - .45rem); right: auto; } }
@media (max-width: 47.5rem) { .restaurants-formats__grid, .restaurants-checklist__grid { grid-template-columns: minmax(0, 1fr); } .restaurants-buffet__scenarios { grid-template-columns: repeat(2, minmax(0, 1fr)); } .restaurants-buffet__scenarios article:last-child { grid-column: 1 / -1; } }
@media (max-width: 40rem) { .restaurants-hero__route { flex-direction: column; align-items: flex-start; } .restaurants-hero__route span::after { display: none; } .format-module { grid-template-columns: minmax(0, 1fr); } .format-module__number { font-size: 2.5rem; } .restaurants-specialty__grid, .restaurants-links__grid, .restaurants-buffet__scenarios { grid-template-columns: minmax(0, 1fr); } .specialty-card:last-child, .editorial-link:last-child, .restaurants-buffet__scenarios article:last-child { grid-column: 1; } .restaurants-bar__panel { padding: var(--space-7) var(--page-padding); } .day-route { grid-template-columns: 1.5rem minmax(0, 1fr); gap: var(--space-3); } .day-route::before { left: .75rem; } .day-stop { padding: var(--space-4); } .day-stop::before, .day-stop--left::before, .day-stop--right::before { left: calc(-.75rem - .45rem); } }
@media (prefers-reduced-motion: no-preference) { .restaurants-hero__route::after { width: 5rem; height: 1px; background: linear-gradient(90deg, transparent, var(--color-ocean-jade), transparent); content: ""; animation: restaurants-route 9s linear infinite; } @keyframes restaurants-route { from { transform: translateX(-2rem); opacity: .3; } 50% { opacity: 1; } to { transform: translateX(20rem); opacity: .3; } } }
@media (prefers-reduced-motion: reduce) { .restaurants-dinner__figure:hover img, .restaurants-bar__image:hover img { transform: none; } }