.home-page { overflow: hidden; }
.home-page .home-hero { position: relative; min-height: 100svh; display: grid; align-items: end; isolation: isolate; background: var(--color-espresso-950); }
.home-page .home-hero__image, .home-page .home-fire__image { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.home-page .home-hero__image { object-position: 62% 45%; transition: transform var(--transition-image); }
.home-page .home-hero__shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(32,26,24,.86) 0%, rgba(32,26,24,.58) 46%, rgba(22,58,60,.18) 100%), linear-gradient(0deg, rgba(22,58,60,.78), transparent 60%); }
.home-page .home-hero__layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 560px) minmax(200px, 220px); justify-content: space-between; align-items: center; gap: var(--space-7); padding-top: calc(var(--header-height) + var(--header-offset) + var(--space-7)); padding-bottom: var(--space-9); }
.home-page .home-hero__panel { min-width: 0; padding: var(--space-7); background: rgba(32,26,24,.82); border: 1px solid var(--color-border-copper); box-shadow: var(--shadow-soft); }
.home-page .home-hero__panel > :last-child, .home-page .home-hero__program > :last-child { margin-bottom: 0; }
.home-page .home-hero__panel h1 { max-width: 540px; font-size: clamp(2.5rem, 5.2vw, 3.5rem); }
.home-page .home-hero__lead { max-width: 470px; font-size: var(--text-lead); line-height: var(--leading-lead); }
.home-page .home-hero__program { min-width: 0; padding: var(--space-5); background: var(--color-burgundy-700); border: 1px solid var(--color-border-copper); }
.home-page .home-hero__program-title { margin-bottom: var(--space-3); font-family: var(--font-heading); font-size: 1.5rem; }
.home-page .home-hero__program-list { display: grid; gap: var(--space-3); margin-bottom: var(--space-4); }
.home-page .home-hero__program-list li { padding-bottom: var(--space-3); border-bottom: 1px solid var(--color-border-copper); font-size: var(--text-small); }
.home-page .home-hero__program p:last-child { color: var(--color-ivory-muted); font-size: .75rem; line-height: 1.5; }
.home-page .home-kitchen__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(320px, 4fr); gap: var(--space-8); }
.home-page .home-kitchen__main { min-width: 0; max-width: 620px; }
.home-page .home-kitchen__season { min-width: 0; width: 100%; max-width: 360px; justify-self: end; padding-top: var(--space-8); }
.home-page .home-kitchen__season .tag { margin-bottom: var(--space-4); }
.home-page .home-kitchen__quote { grid-column: 2; width: 100%; max-width: 520px; justify-self: end; margin-bottom: 0; }
.home-page .home-menu { background: var(--color-petrol-900); }
.home-page .home-menu__intro { width: 44%; min-width: 0; max-width: 520px; margin-left: auto; margin-bottom: var(--space-8); }
.home-page .home-menu__rows { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
.home-page .home-menu__row { display: grid; grid-template-columns: minmax(160px, 18%) minmax(0, 1fr); gap: var(--space-6); padding: var(--space-5); border: 1px solid var(--color-border-copper); background: rgba(22,58,60,.72); }
.home-page .home-menu__row--espresso { background: var(--color-espresso-950); }
.home-page .home-menu__row h3 { min-width: 0; margin: 0; font-size: 1.5rem; }
.home-page .home-menu__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.home-page .home-menu__items > div { min-width: 0; }
.home-page .home-menu__items h4 { display: flex; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-2); font-family: var(--font-heading); font-size: 1.5rem; font-weight: 500; }
.home-page .home-menu__items h4 span { flex: 0 0 auto; color: var(--color-aged-copper); font-family: var(--font-body); font-size: var(--text-small); }
.home-page .home-menu__items p { margin: 0; color: var(--color-ivory-muted); font-size: .875rem; line-height: 1.55; }
.home-page .home-menu__row--final { grid-template-columns: minmax(180px, 18%) minmax(0, 1fr) auto; align-items: center; }
.home-page .home-menu__final-copy { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.home-page .home-menu__final-copy p { margin: 0; font-size: .875rem; line-height: 1.55; }
.home-page .home-fire { position: relative; min-height: 84svh; display: grid; align-items: end; isolation: isolate; }
.home-page .home-fire::after { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(0deg, rgba(32,26,24,.75), transparent 65%); }
.home-page .home-fire__image { object-position: 52% 47%; }
.home-page .home-fire__wrap { position: relative; z-index: 2; display: flex; justify-content: flex-end; padding-bottom: var(--space-8); }
.home-page .home-fire__panel { width: 46%; min-width: 0; padding: var(--space-6); background: rgba(32,26,24,.92); border: 1px solid var(--color-border-copper); }
.home-page .home-fire__panel > :last-child { margin-bottom: 0; }
.home-page .home-fire__panel h2 { max-width: 560px; }
.home-page .home-fire__panel p { max-width: 360px; }
.home-page .home-occasions__grid { display: grid; grid-template-columns: minmax(0, 58%) minmax(390px, 42%); align-items: start; }
.home-page .home-occasions__media { min-width: 0; margin: 0; }
.home-page .home-occasions__media img { width: 100%; height: 690px; object-fit: cover; object-position: 35% 50%; }
.home-page .home-occasions__content { min-width: 0; padding: 0 0 0 var(--space-7); }
.home-page .home-occasions__content > article { width: 100%; max-width: 340px; margin: 0 0 var(--space-7) auto; }
.home-page .home-occasions__content h2 { max-width: 510px; }
.home-page .home-occasions__celebration { padding: var(--space-5); background: var(--color-burgundy-700); color: var(--color-warm-ivory); border-top: 2px solid var(--color-aged-copper); }
.home-page .home-occasions__callout { width: 100%; max-width: 300px; margin-left: auto; padding-left: var(--space-5); border-left: 2px solid var(--color-aged-copper); }
.home-page .home-gallery { background: var(--color-petrol-900); }
.home-page .home-gallery__head { width: 100%; max-width: 460px; margin-right: 0; margin-bottom: var(--space-6); margin-left: auto; }
.home-page .home-gallery__controls { display: none; }
.home-page .home-gallery__track { display: grid; grid-template-columns: minmax(0, 50fr) minmax(0, 28fr) minmax(0, 22fr); gap: var(--space-4); width: min(100% - var(--container-padding), 90rem); margin-left: auto; }
.home-page .home-gallery__track figure { min-width: 0; margin: 0; }
.home-page .home-gallery__track img { width: 100%; object-fit: cover; }
.home-page .home-gallery__track figure:nth-child(1) img { aspect-ratio: 4 / 3; object-position: 58% 50%; }
.home-page .home-gallery__track figure:nth-child(2) img { aspect-ratio: 3 / 4; object-position: 50% 45%; }
.home-page .home-gallery__track figure:nth-child(3) img { aspect-ratio: 4 / 5; object-position: 35% 50%; }
.home-page .home-gallery__track figcaption { max-width: 220px; }
.home-page .home-gallery__track figcaption strong { display: block; margin-bottom: var(--space-2); color: var(--color-aged-copper); }
.home-page .home-evening__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); }
.home-page .home-evening__intro { grid-column: 1 / span 6; min-width: 0; max-width: 560px; }
.home-page .home-evening__tables { grid-column: 8 / span 5; min-width: 0; padding-top: var(--space-8); }
.home-page .home-evening__tables article { padding: var(--space-4) 0; border-bottom: 1px solid var(--color-border-copper); }
.home-page .home-evening__tables h3, .home-page .home-evening__tables p { margin-bottom: var(--space-2); }
.home-page .home-evening__tables p { color: var(--color-ivory-muted); font-size: var(--text-small); }
.home-page .home-evening__notice { grid-column: 6 / span 7; min-width: 0; margin-top: var(--space-5); padding: var(--space-5); background: var(--color-warm-ivory); color: var(--color-espresso-950); }
.home-page .home-evening__notice .tag { margin-bottom: var(--space-3); color: var(--color-burgundy-700); }
.home-page .home-evening__notice p { max-width: 600px; margin: 0; }
.home-page .home-evening__action { grid-column: 6 / span 7; display: flex; align-items: center; gap: var(--space-5); min-width: 0; }
.home-page .home-evening__action p { min-width: 0; margin: 0; }
.home-page .home-evening__action .button { flex: 0 0 auto; }
.home-page .home-timeline__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); position: relative; margin-top: var(--space-8); }
.home-page .home-timeline__list::before { position: absolute; top: 2rem; left: 0; width: 100%; height: 1px; background: var(--color-border-copper); content: ""; }
.home-page .home-timeline__list article { position: relative; min-width: 0; }
.home-page .home-timeline__list article > span { display: block; width: max-content; margin-bottom: var(--space-5); padding-right: var(--space-3); background: var(--color-warm-ivory); color: var(--color-aged-copper); font-family: var(--font-heading); font-size: 2.75rem; line-height: 1; }
.home-page .home-timeline__list h3 { font-size: 1.5rem; }
.home-page .home-timeline__list p { font-size: .9375rem; }
.home-page .home-timeline__final { padding: var(--space-4); background: var(--color-burgundy-700); color: var(--color-warm-ivory); }
.home-page .home-timeline__final > span { background: var(--color-burgundy-700) !important; }
.home-page .home-recommendation { background: var(--color-petrol-900); }
.home-page .home-recommendation__grid { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 62%); gap: var(--space-7); align-items: start; }
.home-page .home-recommendation__head { min-width: 0; max-width: 460px; }
.home-page .home-recommendation__card { min-width: 0; width: 100%; max-width: 760px; justify-self: end; padding: var(--space-6); background: var(--color-warm-ivory); color: var(--color-espresso-950); }
.home-page .home-recommendation__card article { min-width: 0; padding: var(--space-5) 0; border-bottom: 1px solid var(--color-border-light); }
.home-page .home-recommendation__card article:first-child { padding-top: 0; }
.home-page .home-recommendation__card article:last-child { padding-bottom: 0; border-bottom: 0; }
.home-page .home-recommendation__card article > :last-child { margin-bottom: 0; }
.home-page .home-faq__grid { display: grid; grid-template-columns: minmax(0, 32%) minmax(0, 64%); justify-content: space-between; gap: var(--space-6); }
.home-page .home-faq__head { min-width: 0; max-width: 470px; }
.home-page .home-faq__list { min-width: 0; width: 100%; max-width: 780px; justify-self: end; }
.home-page .home-faq__item { border-top: 1px solid var(--color-border-copper); }
.home-page .home-faq__item:last-child { border-bottom: 1px solid var(--color-border-copper); }
.home-page .home-faq__item button { display: flex; width: 100%; min-height: 52px; align-items: center; justify-content: space-between; gap: var(--space-4); margin: 0; padding: var(--space-4) 0; border: 0; border-radius: 0; background: transparent; color: var(--color-warm-ivory); font-family: var(--font-heading); font-size: clamp(1.25rem, 2vw, 1.5rem); font-weight: 500; letter-spacing: -.02em; text-align: left; }
.home-page .home-faq__item button:hover { background: transparent; color: var(--color-aged-copper); }
.home-page .home-faq__item button span { flex: 0 0 44px; font-family: var(--font-body); text-align: center; }
.home-page .home-faq__item [role="region"] { overflow: hidden; max-height: 0; transition: max-height 220ms ease; }
.home-page .home-faq__item [role="region"] p { max-width: 620px; padding-bottom: var(--space-4); color: var(--color-ivory-muted); }
.home-page .home-reservation { background: var(--color-petrol-900); }
.home-page .home-reservation__grid { display: grid; grid-template-columns: minmax(620px, 8fr) minmax(270px, 4fr); gap: var(--space-7); }
.home-page .home-reservation__form-area, .home-page .home-reservation__contact { min-width: 0; }
.home-page .home-reservation__form-area > .lead { max-width: 500px; }
.home-page .home-reservation__form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--color-border-copper); background: var(--color-espresso-950); }
.home-page .home-reservation__field { min-width: 0; }
.home-page .home-reservation__field--full, .home-page .home-reservation__form > button, .home-page .home-reservation__status { grid-column: 1 / -1; }
.home-page .home-reservation__field label small { font-size: .6875rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.home-page .home-reservation__error { min-height: 1.25rem; margin: var(--space-1) 0 0; color: #e2a7a4; font-size: .75rem; line-height: 1.4; }
.home-page .home-reservation__status { margin: 0; color: var(--color-warm-ivory); }
.home-page .home-reservation__contact { align-self: end; padding: var(--space-6); border-left: 1px solid var(--color-border-copper); }
.home-page .home-reservation__contact { display: flex; flex-direction: column; gap: var(--space-4); }
.home-page .home-reservation__contact > * { min-width: 0; margin: 0; }
.home-page .home-closing { background: var(--color-petrol-900); border-top: 1px solid var(--color-border-copper); }
.home-page .home-closing__content { display: flex; width: 100%; max-width: 620px; flex-direction: column; align-items: center; gap: var(--space-4); margin-inline: auto; text-align: center; }
.home-page .home-closing__content::before { width: 64px; height: 1px; background: var(--color-aged-copper); content: ""; }
.home-page .home-closing__content > * { min-width: 0; margin: 0; }
.home-page .home-closing__content h2 { font-size: clamp(2.25rem, 4vw, 3.5rem); }
.home-page .home-closing__content > div { display: flex; align-items: center; justify-content: center; gap: var(--space-5); }
@media (hover:hover) and (pointer:fine) { .home-page .home-hero:hover .home-hero__image { transform: scale(1.02); } .home-page .home-occasions__media:hover img { transform: scale(1.02); } .home-page .home-occasions__media { overflow: hidden; } .home-page .home-occasions__media img { transition: transform var(--transition-image); } }
@media (max-width: 980px) { .home-page .home-hero__layout { grid-template-columns: minmax(0, 1fr); align-items: end; } .home-page .home-hero__program { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); max-width: 720px; } .home-page .home-hero__program-title { grid-column: 1 / -1; margin: 0; } .home-page .home-hero__program-list { display: contents; } .home-page .home-hero__program-list li { border-bottom: 0; } .home-page .home-hero__program p:last-child { grid-column: 1 / -1; margin: 0; } .home-page .home-menu__row, .home-page .home-menu__row--final { grid-template-columns: minmax(0, 1fr); } .home-page .home-gallery__track { display: flex; width: 100%; gap: var(--space-4); overflow-x: auto; padding: 0 var(--container-padding) var(--space-3); scroll-snap-type: x mandatory; scroll-padding-left: var(--container-padding); scrollbar-width: none; } .home-page .home-gallery__track::-webkit-scrollbar { display: none; } .home-page .home-gallery__track figure { flex: 0 0 84vw; max-width: 520px; scroll-snap-align: start; } .home-page .home-gallery__track figure img { aspect-ratio: 4 / 3 !important; } .home-page .home-gallery__controls { display: flex; width: min(100% - (var(--container-padding) * 2), var(--container-max)); align-items: center; justify-content: flex-end; gap: var(--space-3); margin-bottom: var(--space-4); } .home-page .home-gallery__controls button { min-width: 44px; min-height: 44px; padding: var(--space-2); } .home-page .home-occasions__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); } .home-page .home-occasions__media img { height: auto; aspect-ratio: 3 / 2; } .home-page .home-occasions__content { padding: 0; } .home-page .home-occasions__content > article, .home-page .home-occasions__callout { margin-left: 0; } .home-page .home-evening__grid { grid-template-columns: minmax(0, 1fr); } .home-page .home-evening__intro, .home-page .home-evening__tables, .home-page .home-evening__notice, .home-page .home-evening__action { grid-column: 1; width: 100%; max-width: none; margin-top: 0; padding-top: 0; } .home-page .home-timeline__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-page .home-recommendation__grid, .home-page .home-faq__grid, .home-page .home-reservation__grid { grid-template-columns: minmax(0, 1fr); } .home-page .home-recommendation__card, .home-page .home-faq__list { justify-self: start; max-width: none; } .home-page .home-reservation__contact { border-top: 1px solid var(--color-border-copper); border-left: 0; } }
@media (max-width: 880px) { .home-page .home-kitchen__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } .home-page .home-kitchen__season { max-width: 360px; justify-self: start; padding-top: 0; } .home-page .home-kitchen__quote { grid-column: 1; justify-self: start; max-width: 520px; } .home-page .home-fire { min-height: auto; grid-template-rows: 58svh auto; align-items: start; } .home-page .home-fire__image { position: relative; grid-row: 1; height: 58svh; object-position: 48% 45%; } .home-page .home-fire::after { display: none; } .home-page .home-fire__wrap { grid-row: 2; width: 100%; padding: 0; background: var(--color-espresso-950); } .home-page .home-fire__panel { width: 100%; padding: var(--space-7) 0; border: 0; background: transparent; } }
@media (max-width: 680px) { .home-page .home-hero { min-height: 760px; } .home-page .home-hero__layout { gap: var(--space-4); padding-top: calc(var(--header-height) + var(--header-offset) + var(--space-6)); padding-bottom: var(--space-5); } .home-page .home-hero__panel { padding: var(--space-5); } .home-page .home-hero__panel h1 { font-size: 2.5rem; line-height: 1.02; } .home-page .home-hero__program { grid-template-columns: minmax(0, 1fr); } .home-page .home-hero__program-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); } .home-page .home-menu__intro { width: 100%; margin-left: 0; } .home-page .home-menu__row { padding: var(--space-4); gap: var(--space-4); } .home-page .home-menu__items, .home-page .home-menu__final-copy { grid-template-columns: minmax(0, 1fr); } .home-page .home-menu__row .button { width: 100%; } .home-page .home-evening__action { flex-direction: column; align-items: stretch; } .home-page .home-evening__action .button { width: 100%; } .home-page .home-timeline__list { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); } .home-page .home-timeline__list::before { top: 0; left: 31px; width: 1px; height: 100%; } .home-page .home-timeline__list article { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--space-3); } .home-page .home-timeline__list article > span { margin: 0; padding: 0; background: var(--color-warm-ivory); font-size: 2.75rem; } .home-page .home-timeline__final > span { background: var(--color-burgundy-700) !important; } .home-page .home-reservation__form { grid-template-columns: minmax(0, 1fr); padding: var(--space-5); } .home-page .home-reservation__field, .home-page .home-reservation__field--full { grid-column: 1; } .home-page .home-closing__content > div { width: 100%; flex-direction: column; align-items: stretch; } .home-page .home-closing__content > div a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; } }
@media (prefers-reduced-motion: reduce) { .home-page .home-hero__image, .home-page .home-occasions__media img, .home-page .home-faq__item [role="region"] { transition: none; } }
