.home-page { overflow: hidden; }
.home-page .home-hero { background: linear-gradient(135deg, var(--color-ivoire) 0%, #fff9ec 100%); }
.home-hero__grid, .home-restaurant__grid, .home-strategy__grid, .home-booking__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
.home-hero__copy, .home-hero__media, .home-restaurant__copy, .home-restaurant__media, .home-strategy__copy, .home-strategy__guides, .home-booking__copy, .home-booking__action { min-width: 0; width: 100%; }
.home-hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); order: 2; }
.home-hero__copy > * { min-width: 0; margin: 0; }
.home-hero__copy h1 { max-inline-size: 18ch; }
.home-hero__lead { max-inline-size: 56ch; font-size: var(--text-md); }
.home-hero__context { max-inline-size: 50ch; color: var(--color-text-muted); }
.home-hero__actions { width: 100%; }
.home-hero__media { position: relative; order: 1; }
.home-hero__figure { aspect-ratio: 4 / 3; margin: 0; }
.home-hero__figure img { object-position: center; }
.home-age-card { display: flex; align-items: flex-start; gap: var(--space-3); min-width: 0; margin-top: var(--space-4); border: 1px solid var(--color-border-warm); border-radius: var(--radius-md); background: var(--color-blanc-perle); box-shadow: var(--shadow-soft); padding: var(--space-4); }
.home-age-card > * { min-width: 0; }
.home-age-card p { margin: 0; font-size: var(--text-sm); }
.home-age-card .badge { margin-bottom: var(--space-2); }
.home-age-card__pearl { flex: 0 0 2rem; width: 2rem; height: 2rem; border: 1px solid var(--color-bleu-royal); border-radius: 50%; background: radial-gradient(circle at 35% 35%, var(--color-blanc-perle) 0 30%, var(--color-champagne) 32% 100%); }
.home-concept__intro, .home-experience__intro, .home-strengths__intro, .home-gallery__intro, .home-audience__intro, .home-faq__intro { min-width: 0; }
.home-concept__intro { max-inline-size: 64ch; }
.home-concept__cards, .home-experience__details, .home-strengths__grid, .home-audience__grid, .home-responsible__top { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.home-concept__cards { margin-top: var(--space-6); }
.home-concept__card, .home-strength, .home-audience__card { min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-blanc-perle); padding: var(--space-5); }
.home-concept__card > :last-child, .home-strength > :last-child, .home-audience__card > :last-child { margin-bottom: 0; }
.home-concept__card h3 { max-inline-size: 19ch; }
.home-concept__card p { max-inline-size: 38ch; }
.home-concept__card--soft, .home-strength--soft, .home-audience__card--soft { background: var(--color-beige-doux); border-color: var(--color-border-warm); }
.home-concept__mark { display: block; width: 2rem; height: 2rem; margin-bottom: var(--space-4); border: 1px solid var(--color-or-feuille); border-radius: 50%; position: relative; }
.home-concept__mark::after { content: ""; position: absolute; inset: .35rem; border: 1px solid var(--color-bleu-royal); border-radius: 50%; }
.home-experience__intro { max-inline-size: 58ch; }
.home-experience__details { margin-top: var(--space-6); }
.home-experience__detail { min-width: 0; border-top: 2px solid var(--color-champagne); padding-top: var(--space-4); }
.home-experience__detail p { max-inline-size: 50ch; }
.home-line-list { max-inline-size: 38ch; }
.home-experience__band { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); margin-top: var(--space-6); border-radius: var(--radius-md); background: var(--color-beige-doux); padding: var(--space-5); }
.home-experience__band > div { min-width: 0; }
.home-experience__band h3 { font-size: var(--text-lg); }
.home-experience__band p { max-inline-size: 42ch; margin-bottom: 0; }
.home-reservation-card { width: 100%; max-width: 44rem; margin-top: var(--space-6); }
.home-reservation-card__body { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-4); }
.home-reservation-card__body > * { min-width: 0; }
.home-reservation-card__body h3, .home-reservation-card__body p { margin: 0 0 var(--space-2); }
.home-reservation-card__body p { max-inline-size: 42ch; }
.home-strengths__intro { max-inline-size: 58ch; }
.home-strengths__grid { margin-top: var(--space-6); }
.home-strength { min-height: 100%; }
.home-strength h3 { font-size: var(--text-lg); }
.home-strength p { max-inline-size: 32ch; margin-bottom: 0; }
.home-strength--responsible { border-color: color-mix(in srgb, var(--color-bordeaux-sourd) 35%, var(--color-border)); }
.home-restaurant__media { width: 100%; aspect-ratio: 4 / 3; margin: 0; }
.home-restaurant__media img { object-position: center; }
.home-restaurant__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.home-restaurant__copy > * { min-width: 0; margin: 0; }
.home-restaurant__copy > p { max-inline-size: 60ch; }
.home-restaurant__copy h3 { margin-top: var(--space-2); }
.home-restaurant__details { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2); width: 100%; margin: 0; padding-left: 1.25rem; }
.home-restaurant__details li { min-width: 0; }
.home-restaurant__note { width: 100%; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-blanc-perle); padding: var(--space-4); }
.home-restaurant__note h3, .home-restaurant__note p { margin: 0 0 var(--space-2); }
.home-restaurant__note p { max-inline-size: 48ch; margin-bottom: 0; }
.home-strategy__copy { border-inline-start: 3px solid var(--color-champagne); padding-inline-start: var(--space-5); }
.home-strategy__copy > p { max-inline-size: 62ch; }
.home-strategy__opening::first-letter { float: left; margin: .05em .1em 0 0; color: var(--color-bleu-royal-fonce); font-family: var(--font-heading); font-size: 3.3em; line-height: .8; }
.home-strategy__copy blockquote { max-inline-size: 40ch; }
.home-strategy__guides { align-self: start; border: 1px solid var(--color-border-warm); border-radius: var(--radius-md); background: #fffaf0; padding: var(--space-5); }
.home-strategy__guides h3 { font-size: var(--text-lg); }
.home-strategy__guides p, .home-strategy__guides ul { max-inline-size: 34ch; }
.home-strategy__guides > :last-child { margin-bottom: 0; }
.home-gallery__intro { max-inline-size: 60ch; }
.home-gallery__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); margin-top: var(--space-6); }
.home-gallery__item { min-width: 0; margin: 0; }
.home-gallery__button { position: relative; width: 100%; min-width: 0; min-height: 0; overflow: hidden; border: 6px solid var(--color-ivoire); border-radius: var(--radius-md); background: var(--color-beige-doux); box-shadow: 0 0 0 1px var(--color-border-warm); padding: 0; }
.home-gallery__button img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.home-gallery__button span { position: absolute; right: var(--space-3); bottom: var(--space-3); border-radius: var(--radius-sm); background: rgb(24 34 53 / 82%); color: var(--color-blanc-perle); padding: var(--space-2) var(--space-3); font-size: var(--text-xs); font-weight: 700; }
.home-gallery__item figcaption { max-inline-size: 32ch; }
.home-audience__intro { max-inline-size: 58ch; }
.home-audience__grid { margin-top: var(--space-6); }
.home-audience__card h3 { max-inline-size: 19ch; }
.home-audience__card p { max-inline-size: 36ch; margin-bottom: 0; }
.home-audience__card--bordeaux { border-color: color-mix(in srgb, var(--color-bordeaux-sourd) 45%, var(--color-border)); }
.home-audience__age { margin-top: var(--space-5); border-top: 1px solid var(--color-border); padding-top: var(--space-4); }
.home-audience__age strong { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; min-height: 2rem; margin-right: var(--space-2); border-radius: var(--radius-sm); background: var(--color-bordeaux-sourd); color: var(--color-blanc-perle); }
.home-responsible__heading { max-inline-size: 58ch; }
.home-responsible__top { margin-top: var(--space-6); }
.home-responsible__warning, .home-responsible__avoid article, .home-responsible__control { min-width: 0; }
.home-responsible__warning { border-inline-start: 4px solid var(--color-bordeaux-sourd); border-radius: var(--radius-md); background: var(--color-blanc-perle); padding: var(--space-5); }
.home-responsible__warning p { max-inline-size: 58ch; }
.home-responsible__warning ul { margin-bottom: 0; }
.home-responsible__avoid { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.home-responsible__avoid article { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-blanc-perle); padding: var(--space-4); }
.home-responsible__avoid h3 { font-size: var(--text-lg); }
.home-responsible__avoid p { max-inline-size: 34ch; margin-bottom: 0; }
.home-responsible__control { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-4); margin-top: var(--space-5); border: 1px solid var(--color-border-warm); border-radius: var(--radius-lg); background: var(--color-ivoire); padding: var(--space-5); }
.home-responsible__control > * { min-width: 0; }
.home-responsible__control p { max-inline-size: 58ch; margin-bottom: 0; }
.home-faq__intro { max-inline-size: 60ch; }
.home-faq__list { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; margin-top: var(--space-6); }
.home-faq__item { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-blanc-perle); }
.home-faq__item h3 { margin: 0; font-family: var(--font-body); font-size: var(--text-base); letter-spacing: 0; }
.home-faq__item button { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); width: 100%; min-width: 0; min-height: 3.5rem; background: transparent; padding: var(--space-4); color: var(--color-encre); font-weight: 700; text-align: left; }
.home-faq__item button span { flex: 0 0 auto; color: var(--color-bleu-royal); font-size: 1.5rem; line-height: 1; transition: transform var(--transition-fast); }
.home-faq__item button[aria-expanded="true"] span { transform: rotate(45deg); }
.home-faq__item [role="region"] { overflow: hidden; padding: 0 var(--space-4) var(--space-4); }
.home-faq__item [role="region"] p { max-inline-size: 65ch; margin-bottom: 0; }
.home-booking { background: var(--color-bleu-royal-fonce); color: var(--color-ivoire); scroll-margin-top: var(--space-6); }
.home-booking h2, .home-booking .eyebrow { color: var(--color-ivoire); }
.home-booking .eyebrow { opacity: .88; }
.home-booking__copy p { max-inline-size: 54ch; margin-bottom: 0; }
.home-booking__action { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-4); }
.home-booking__action p { max-inline-size: 52ch; margin: 0; color: color-mix(in srgb, var(--color-ivoire) 82%, var(--color-champagne)); font-size: var(--text-sm); }
.home-booking__action a:not(.button) { color: var(--color-ivoire); }
.home-final { background: radial-gradient(circle at 50% 0, #fff2d4 0, var(--color-ivoire) 58%); }
.home-final__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); min-width: 0; text-align: center; }
.home-final__inner > * { min-width: 0; margin: 0; }
.home-final__inner h2 { max-inline-size: 28ch; }
.home-final__inner > p:not(.eyebrow):not(.home-final__note) { max-inline-size: 48ch; margin-inline: auto; }
.home-final__line { width: 4rem; height: 1px; background: var(--color-or-feuille); }
.home-final__note { max-inline-size: 54ch; color: var(--color-text-muted); font-size: var(--text-sm); }
.home-lightbox { position: fixed; z-index: 900; inset: 0; display: grid; place-items: center; padding: var(--space-4); }
.home-lightbox__backdrop { position: absolute; inset: 0; background: rgb(24 34 53 / 76%); }
.home-lightbox__dialog { position: relative; width: min(100%, 62rem); max-height: calc(100vh - 2rem); overflow: auto; border-radius: var(--radius-md); background: var(--color-blanc-perle); box-shadow: var(--shadow-soft); padding: var(--space-5); }
.home-lightbox__dialog img { width: 100%; max-height: 70vh; object-fit: contain; }
.home-lightbox__dialog p { margin: var(--space-3) var(--space-6) 0 0; }
.home-lightbox__close { position: absolute; top: var(--space-2); right: var(--space-2); display: grid; place-items: center; width: 2.75rem; min-width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--color-encre); color: var(--color-blanc-perle); font-size: 1.75rem; line-height: 1; }
.home-page [data-home-hero-copy], .home-page [data-home-hero-media] { opacity: 0; transform: translateY(12px); }
.home-page.home-is-ready [data-home-hero-copy], .home-page.home-is-ready [data-home-hero-media] { opacity: 1; transform: translateY(0); transition: opacity 200ms ease-out, transform 200ms ease-out; }
.home-page.home-is-ready [data-home-hero-media] { transition-delay: 50ms; }
@media (min-width: 32.5rem) { .home-restaurant__details { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 36.25rem) { .home-strengths__grid, .home-audience__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-gallery__item--main { grid-column: 1 / -1; } }
@media (min-width: 40rem) { .home-experience__band { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 47.5rem) { .home-hero__grid, .home-booking__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; } .home-hero__copy { order: 1; } .home-hero__media { order: 2; } .home-hero__figure { aspect-ratio: 16 / 10; } .home-hero__actions { width: auto; } .home-booking__action { align-items: flex-start; } .home-booking__action .button { width: auto; } .home-responsible__control { flex-direction: row; align-items: center; justify-content: space-between; } .home-responsible__control .button { width: auto; flex: 0 0 auto; } }
@media (min-width: 52.5rem) { .home-concept__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-concept__card:last-child { grid-column: 1 / -1; } .home-experience__details, .home-responsible__top { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-restaurant__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } .home-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-gallery__item--main { grid-row: span 2; } }
@media (min-width: 64rem) { .home-hero__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); align-items: center; } .home-hero__copy { grid-column: 1 / span 5; } .home-hero__media { grid-column: 7 / span 6; } .home-age-card { position: absolute; right: var(--space-4); bottom: calc(var(--space-5) * -1); width: min(17rem, 72%); margin: 0; } .home-concept__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } .home-concept__card:last-child { grid-column: auto; } .home-experience__details { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-strengths__grid, .home-audience__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .home-restaurant__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); } .home-restaurant__media { grid-column: 1 / span 6; } .home-restaurant__copy { grid-column: 8 / span 5; } .home-strategy__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); } .home-strategy__copy { grid-column: 1 / span 7; } .home-strategy__guides { grid-column: 10 / span 3; } .home-gallery__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); } .home-gallery__item--main { grid-column: 1 / span 7; grid-row: span 2; } .home-gallery__item:not(.home-gallery__item--main) { grid-column: 8 / span 5; } .home-responsible__top { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); } .home-responsible__warning { grid-column: 1 / span 7; } .home-responsible__avoid { grid-column: 8 / span 5; } .home-faq__list { width: calc(66.666% - var(--space-4)); margin-inline: auto; } .home-booking__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); } .home-booking__copy { grid-column: 1 / span 7; } .home-booking__action { grid-column: 9 / span 4; align-self: end; } .home-final__inner { width: calc(50% - var(--space-4)); margin-inline: auto; } }
@media (max-width: 47.99rem) { .home-hero__actions .button { width: 100%; } .home-booking__action .button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .home-page [data-home-hero-copy], .home-page [data-home-hero-media], .home-page.home-is-ready [data-home-hero-copy], .home-page.home-is-ready [data-home-hero-media] { opacity: 1; transform: none; transition: none; } }
