.home-page { overflow: hidden; }
.home-page .section { position: relative; }
.home-hero__layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--space-6); align-items: center; }
.home-hero__intro { min-width: 0; padding: var(--space-7); border: 1px solid var(--color-border); border-radius: var(--radius-lg); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-hero__intro > * { min-width: 0; margin: 0; }
.home-hero__intro h1 { max-width: 12ch; font-size: clamp(3.1rem, 5vw, 4.25rem); }
.home-hero__lead { max-width: 27rem; font-size: var(--text-md); line-height: 1.5; }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); min-width: 0; }
.home-hero__route { display: flex; min-width: 0; height: 28rem; gap: var(--space-2); position: relative; }
.home-hero__route::before { content: ""; position: absolute; top: 1.25rem; left: 5%; right: 5%; height: 2px; background: var(--color-route-blue); opacity: .55; z-index: 1; }
.home-hero__stop { min-width: 0; flex: .75 1 0; position: relative; overflow: hidden; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); }
.home-hero__stop--plate { flex-grow: 1; }
.home-hero__stop--table { flex-grow: 1.2; }
.home-hero__stop--evening { flex-grow: .9; }
.home-hero__stop img { width: 100%; height: 100%; object-fit: cover; }
.home-hero__stop > div { position: absolute; right: var(--space-3); bottom: var(--space-3); left: var(--space-3); z-index: 2; padding: var(--space-3); border-radius: var(--radius-sm); background: rgb(251 247 239 / 92%); color: var(--color-ink); }
.home-hero__stop span { display: block; font-size: var(--text-2xs); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.home-hero__stop p { margin: var(--space-1) 0 0; font-size: var(--text-xs); line-height: var(--leading-small); }
.home-season__intro { width: min(100%, 42rem); min-width: 0; }
.home-season__points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-7); position: relative; }
.home-season__points::before { content: ""; position: absolute; top: .55rem; left: 3%; right: 3%; height: 2px; background: var(--color-route-blue); opacity: .35; }
.home-season__point { min-width: 0; position: relative; padding-top: var(--space-6); }
.home-season__point > span { position: absolute; top: 0; display: grid; width: 1.2rem; height: 1.2rem; place-items: center; border-radius: 50%; background: var(--color-ochre); font-size: .62rem; font-weight: 800; }
.home-season__point h3 { font-size: var(--text-lg); }
.home-menu-map__intro { width: min(100%, 39rem); min-width: 0; }
.home-menu-map__content { display: grid; grid-template-columns: minmax(1.5rem, 1fr) minmax(0, 11fr); gap: var(--space-5); margin-top: var(--space-7); }
.home-menu-map__axis { min-width: 0; margin: var(--space-3) auto; width: 2px; background: linear-gradient(var(--color-route-blue), var(--color-ochre)); opacity: .65; }
.home-menu-map__cards { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-5); min-width: 0; }
.home-menu-card { min-width: 0; padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.home-menu-card > * { min-width: 0; margin: 0; }
.home-menu-card > span { color: var(--color-route-blue); font-size: var(--text-2xs); font-weight: 800; letter-spacing: .08em; }
.home-menu-card h3 { font-size: var(--text-lg); }
.home-menu-card--cream { background: var(--color-cream); }
.home-menu-card--paper { background: var(--color-paper); border-color: var(--color-route-blue); }
.home-menu-card--terracotta { background: var(--color-terracotta); color: var(--color-cream); }
.home-menu-card--terracotta h3, .home-menu-card--terracotta > span, .home-menu-card--terracotta a { color: inherit; }
.home-menu-card--sage { background: var(--color-sage); color: var(--color-cream); }
.home-menu-card--sage h3, .home-menu-card--sage > span { color: inherit; }
.home-menu-card--route { background: var(--color-route-blue); color: var(--color-cream); }
.home-menu-card--route h3, .home-menu-card--route > span, .home-menu-card--route a { color: inherit; }
.home-picks__intro { width: min(100%, 39rem); min-width: 0; }
.home-picks__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-6); }
.home-pick { min-width: 0; padding: var(--space-6); border-radius: var(--radius-lg); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-pick > * { min-width: 0; margin: 0; }
.home-pick p:not(.route-label) { max-width: 24rem; }
.home-pick--cream { border: 1px solid var(--color-border); background: var(--color-cream); }
.home-pick--route { background: var(--color-route-blue); color: var(--color-cream); }
.home-pick--route h3, .home-pick--route a, .home-pick--route .route-label { color: inherit; }
.home-table__wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0 var(--space-6); align-items: end; }
.home-table__panel { grid-column: 1; grid-row: 1; z-index: 2; margin: 0 -5rem -4rem 0; padding: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.home-table__panel p { max-width: 30rem; }
.home-table__image { grid-column: 1 / -1; grid-row: 1; min-width: 0; margin: 0; justify-self: stretch; }
.home-table__image img { width: 100%; height: 32.5rem; object-fit: cover; object-position: center; border-radius: var(--radius-md); transition: transform var(--transition-standard); }
.home-table__image figcaption { margin-left: 42%; }
.home-table__notes { grid-column: 1 / -1; display: flex; min-width: 0; gap: var(--space-6); margin-top: var(--space-6); }
.home-table__notes > article { min-width: 0; width: min(100%, 15.5rem); }
.home-table__notes p:last-child { margin-bottom: 0; }
.home-celebration__intro { width: min(100%, 37.5rem); min-width: 0; }
.home-celebration__layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(18rem, 4fr); gap: var(--space-6); margin-top: var(--space-7); align-items: start; }
.home-celebration__points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); min-width: 0; }
.home-celebration__points article { min-width: 0; }
.home-celebration__points span { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; margin-bottom: var(--space-3); border: 2px solid var(--color-route-blue); border-radius: 50%; font-size: var(--text-2xs); font-weight: 800; }
.home-celebration__points h3 { font-size: var(--text-lg); }
.home-celebration__cta { min-width: 0; padding: var(--space-6); border-radius: var(--radius-lg); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-celebration__cta > * { min-width: 0; margin: 0; }
.home-celebration__cta .button { background: var(--color-cream); color: var(--color-ink); }
.home-celebration__cta .button:hover { background: var(--color-ink); color: var(--color-cream); }
.home-evening__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); align-items: start; }
.home-evening__copy { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.home-evening__copy > * { min-width: 0; margin: 0; }
.home-evening__copy > p { max-width: 30rem; }
.home-evening__copy article { width: min(100%, 24rem); }
.home-evening__copy h3 { color: var(--color-cream); font-size: var(--text-lg); }
.home-evening .route-label { color: var(--color-cream); }
.home-evening__poker { min-width: 0; margin-top: 9rem; }
.home-evening__poker figure { margin: 0; }
.home-evening__poker img { width: 100%; height: 18rem; object-fit: cover; border-radius: var(--radius-md); }
.home-evening__poker-note { min-width: 0; margin-top: var(--space-4); padding: var(--space-5); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: var(--space-3); }
.home-evening__poker-note > * { margin: 0; }
.home-gallery__intro { width: min(100%, 32.5rem); min-width: 0; }
.home-gallery__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: 1fr 1fr; gap: var(--space-5); margin-top: var(--space-6); }
.home-gallery__item { min-width: 0; overflow: hidden; border-radius: var(--radius-md); color: var(--color-ink); text-decoration: none; }
.home-gallery__item:hover { background: transparent; }
.home-gallery__item img { width: 100%; height: calc(100% - 2rem); object-fit: cover; transition: transform var(--transition-standard); }
.home-gallery__item:hover img { transform: scale(1.02); }
.home-gallery__item span { display: block; padding-top: var(--space-2); font-size: var(--text-xs); font-weight: 700; }
.home-gallery__item--main { grid-column: 1; grid-row: 1 / span 2; height: 31rem; }
.home-gallery__item--interior { grid-column: 2; grid-row: 1; height: 15rem; }
.home-gallery__item--drink { grid-column: 2; grid-row: 2; height: 15rem; }
.home-gallery__link { display: inline-block; margin-top: var(--space-5); }
.home-contact-stop__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); align-items: center; }
.home-contact-stop__address { min-width: 0; padding: var(--space-7); border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.home-contact-stop__address h2 { max-width: 20ch; font-size: clamp(2.3rem, 4vw, 3rem); }
.home-contact-stop__address p { max-width: 34rem; }
.home-contact-stop__details { min-width: 0; }
.home-contact-stop__details h3 { font-size: var(--text-xl); }
.home-contact-stop__details > a { display: block; width: fit-content; margin-bottom: var(--space-3); }
.home-contact-stop__phone { min-height: 2.75rem; display: inline-flex !important; align-items: center; font-size: var(--text-lg); font-weight: 800; }
.home-faq__layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--space-7); }
.home-faq__content { min-width: 0; }
.home-faq__content > p { width: min(100%, 39rem); }
.home-faq__items { min-width: 0; margin-top: var(--space-6); }
.home-faq__items article { min-width: 0; border-bottom: 1px solid var(--color-border); }
.home-faq__items button { display: flex; width: 100%; min-width: 0; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: var(--space-4); border: 0; background: transparent; padding: var(--space-3) 0; color: var(--color-ink); font-weight: 800; text-align: left; }
.home-faq__items button span { min-width: 0; }
.home-faq__items button b { flex: 0 0 auto; font-size: var(--text-lg); font-weight: 400; }
.home-faq__items [role="region"] { width: min(100%, 40rem); }
.home-faq__aside { min-width: 0; border-left: 2px solid var(--color-route-blue); opacity: .65; padding-left: var(--space-4); }
.home-faq__aside span { font-size: var(--text-2xs); font-weight: 800; letter-spacing: .08em; writing-mode: vertical-rl; }
.home-reservation__intro { width: min(100%, 31.25rem); min-width: 0; }
.home-reservation__layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(16rem, 4fr); gap: var(--space-6); margin-top: var(--space-6); align-items: stretch; }
.home-reservation__form { min-width: 0; padding: var(--space-6); border-radius: var(--radius-lg); display: flex; flex-direction: column; align-items: stretch; gap: var(--space-5); }
.home-reservation__form > * { min-width: 0; margin: 0; }
.home-reservation__form-intro { width: min(100%, 32.5rem); }
.home-reservation__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.home-reservation__fields > div { min-width: 0; }
.home-reservation__full { grid-column: 1 / -1; }
.home-form-error { min-height: 1.25rem; margin: var(--space-1) 0 0; color: var(--color-error); font-size: var(--text-xs); font-weight: 700; line-height: 1.35; }
.home-reservation__consent { font-size: var(--text-xs); }
.home-reservation__form .button { width: fit-content; min-height: 3rem; }
.home-form-status { min-height: 1.5rem; color: var(--color-route-blue); font-weight: 700; }
.home-reservation__contact { min-width: 0; padding: var(--space-6); border-radius: var(--radius-lg); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-reservation__contact > * { min-width: 0; margin: 0; }
.home-reservation__contact a { color: var(--color-cream); font-weight: 800; }
.home-reservation__address { margin-top: auto !important; font-size: var(--text-xs); }
@media (max-width: 66.25rem) { .home-hero__layout { grid-template-columns: 1fr; } .home-hero__intro { width: min(100%, 37rem); } .home-hero__route { height: 20rem; } }
@media (max-width: 61.25rem) { .home-menu-map__content { grid-template-columns: 1fr; } .home-menu-map__axis { width: 100%; height: 2px; margin: 0; } .home-menu-map__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-celebration__layout { grid-template-columns: 1fr; } .home-celebration__cta { width: 100%; } }
@media (max-width: 56.25rem) { .home-table__wrap { display: flex; flex-direction: column; gap: var(--space-5); } .home-table__panel { width: 100%; margin: 0; } .home-table__image img { height: auto; aspect-ratio: 4 / 3; } .home-table__image figcaption { margin-left: 0; } .home-table__notes { width: 100%; margin-top: 0; } .home-evening__layout, .home-contact-stop__layout, .home-reservation__layout { grid-template-columns: 1fr; } .home-evening__poker { margin-top: 0; } .home-reservation__contact { min-height: auto; } }
@media (max-width: 52.5rem) { .home-picks__cards { grid-template-columns: 1fr; } .home-faq__layout { grid-template-columns: 1fr; } .home-faq__aside { display: none; } }
@media (max-width: 45rem) { .home-menu-map__cards, .home-celebration__points { grid-template-columns: 1fr; } .home-menu-map__axis { position: absolute; top: 0; bottom: 0; left: .4rem; width: 2px; height: auto; } .home-menu-map__content { position: relative; padding-left: var(--space-5); } .home-menu-card { min-height: 0; } .home-gallery__grid { grid-template-columns: 1fr; grid-template-rows: auto; } .home-gallery__item--main, .home-gallery__item--interior, .home-gallery__item--drink { grid-column: 1; grid-row: auto; height: auto; } .home-gallery__item img { height: auto; aspect-ratio: 4 / 3; } .home-gallery__item--interior img { aspect-ratio: 4 / 5; } .home-reservation__fields { grid-template-columns: 1fr; } .home-reservation__form .button { width: 100%; } }
@media (max-width: 42.5rem) { .home-hero__intro { padding: var(--space-5); } .home-hero__intro h1 { font-size: clamp(2.5rem, 11vw, 2.75rem); } .home-hero__actions { flex-direction: column; align-items: flex-start; } .home-hero__route { width: calc(100vw - var(--container-padding)); margin-right: calc(-1 * var(--container-padding)); height: 22.5rem; overflow-x: auto; padding-right: var(--container-padding); scroll-snap-type: x mandatory; } .home-hero__route::before { display: none; } .home-hero__stop { flex: 0 0 78vw; min-width: 16.25rem; scroll-snap-align: start; } .home-season__points { grid-template-columns: 1fr; gap: var(--space-5); margin-top: var(--space-6); padding-left: var(--space-5); } .home-season__points::before { top: .5rem; bottom: .5rem; left: .55rem; right: auto; width: 2px; height: auto; } .home-season__point { padding-top: 0; } .home-season__point > span { left: calc(-1 * var(--space-5)); } .home-table__notes { flex-direction: column; gap: var(--space-4); } .home-table__notes > article { width: 100%; } .home-contact-stop__address { padding: var(--space-5); } .home-reservation__form, .home-reservation__contact { padding: var(--space-5); } }
@media (hover: hover) and (pointer: fine) { .home-table__image:hover img { transform: scale(1.02); } }
@media (prefers-reduced-motion: reduce) { .home-gallery__item img, .home-table__image img { transition: none; } }