.galerie-page { overflow: clip; }
.galerie-page .section { position: relative; }
.galerie-hero { background: linear-gradient(135deg, var(--color-ivoire) 0%, #fff9ec 100%); }
.galerie-hero__grid, .galerie-matieres__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
.galerie-hero__copy, .galerie-hero__media, .galerie-matieres__copy, .galerie-matieres__aside { min-width: 0; width: 100%; }
.galerie-hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.galerie-hero__copy > * { margin: 0; min-width: 0; }
.galerie-hero__lead { max-width: 54ch; font-size: var(--text-md); }
.galerie-hero__note { display: flex; align-items: flex-start; gap: var(--space-3); max-width: 40ch; border-left: 2px solid var(--color-bordeaux-sourd); background: var(--color-blanc-perle); padding: var(--space-4); color: var(--color-bordeaux-sourd); }
.galerie-hero__note p { margin: 0; }
.galerie-hero__spark { color: var(--color-or-feuille); font-size: var(--text-lg); line-height: 1; }
.galerie-hero__actions { margin-top: var(--space-2); }
.galerie-hero__media { display: flex; flex-direction: column; gap: var(--space-3); margin: 0; }
.galerie-hero__media img { aspect-ratio: 16 / 10; object-position: center; }
.galerie-lightbox-trigger { min-height: 2.75rem; align-self: flex-start; background: transparent; color: var(--color-bleu-royal); padding: 0; font-weight: 700; text-decoration: underline; text-underline-offset: .18em; }
.galerie-reperes__intro, .galerie-mosaique__intro, .galerie-temps__intro, .galerie-engagements__intro, .galerie-orientation__intro { max-width: 58ch; }
.galerie-reperes__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); margin-top: var(--space-7); }
.galerie-repere { min-width: 0; border-top: 1px solid var(--color-champagne); padding-top: var(--space-4); }
.galerie-repere--soft { background: rgb(255 255 255 / 45%); padding: var(--space-4); }
.galerie-repere__number { display: block; color: var(--color-bleu-royal-fonce); font-family: var(--font-heading); font-size: var(--text-2xl); line-height: 1; }
.galerie-repere h3 { margin-top: var(--space-3); }
.galerie-mosaique__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-7) var(--space-5); margin-top: var(--space-7); }
.galerie-tile { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); margin: 0; }
.galerie-tile__media { width: 100%; min-width: 0; }
.galerie-tile__media img { width: 100%; height: 100%; object-fit: cover; }
.galerie-tile--salle img, .galerie-tile--mains img { aspect-ratio: 4 / 3; }
.galerie-tile--table img { aspect-ratio: 4 / 5; }
.galerie-tile--diner img { aspect-ratio: 1 / 1; }
.galerie-tile--groupe img { aspect-ratio: 16 / 10; }
.galerie-tile--fin img { aspect-ratio: 16 / 9; }
.galerie-tile figcaption { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); max-width: 44ch; margin: 0; }
.galerie-tile figcaption > * { margin: 0; }
.galerie-tile h3 { color: var(--color-bleu-royal-fonce); }
.galerie-matieres__copy { max-width: 64ch; }
.galerie-matieres__aside { display: flex; flex-direction: column; gap: var(--space-5); }
.galerie-matieres__aside blockquote { margin: 0; max-width: 32ch; color: var(--color-bordeaux-sourd); }
.galerie-detail-notes { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.galerie-detail-note { min-width: 0; border-top: 1px solid var(--color-champagne); padding: var(--space-4) 0 0; }
.galerie-detail-note--white { border: 1px solid var(--color-border); background: var(--color-blanc-perle); padding: var(--space-4); }
.galerie-detail-note h3 { color: var(--color-bleu-royal-fonce); }
.galerie-temps__timeline { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); margin-top: var(--space-7); }
.galerie-step { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--space-3); min-width: 0; position: relative; padding: 0 0 var(--space-5); }
.galerie-step:not(:last-child)::after { content: ""; position: absolute; top: 2.5rem; bottom: 0; left: 1.1875rem; width: 1px; background: var(--color-champagne); }
.galerie-step__marker { display: grid; place-items: center; width: 2.375rem; min-width: 2.375rem; height: 2.375rem; border: 1px solid var(--color-champagne); border-radius: 50%; background: var(--color-ivoire); color: var(--color-bleu-royal-fonce); font-family: var(--font-heading); font-size: var(--text-lg); font-weight: 600; }
.galerie-step--featured > div { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-blanc-perle); padding: var(--space-5); box-shadow: var(--shadow-soft); }
.galerie-step h3, .galerie-step p { margin-bottom: var(--space-3); }
.galerie-engagements__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); margin-top: var(--space-7); }
.galerie-engagement { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-blanc-perle); padding: var(--space-5); }
.galerie-engagement > * { margin: 0; }
.galerie-engagement--soft { background: var(--color-beige-doux); }
.galerie-orientation__panels { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); margin-top: var(--space-7); }
.galerie-destination { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-6); }
.galerie-destination > * { margin: 0; }
.galerie-destination--primary { background: var(--color-blanc-perle); }
.galerie-destination--restaurant { background: var(--color-beige-doux); }
.galerie-destination .button { margin-top: auto; }
.galerie-responsable__panel { max-width: 72rem; margin-inline: auto; border-left: 3px solid var(--color-bordeaux-sourd); border-radius: var(--radius-lg); background: var(--color-fond-responsable); padding: var(--space-6); }
.galerie-responsable__panel p:not(.eyebrow) { max-width: 60ch; color: var(--color-bordeaux-sourd); }
.galerie-conclusion { background: linear-gradient(135deg, var(--color-ivoire), #fff8e8); }
.galerie-conclusion__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); max-width: 44ch; margin-inline: auto; text-align: center; }
.galerie-conclusion__inner > * { margin: 0; }
.galerie-conclusion__inner::before { content: ""; width: 5rem; height: 2.5rem; border-top: 1px solid var(--color-champagne); border-radius: 50% 50% 0 0; }
.galerie-lightbox { width: min(100% - 2rem, 72rem); max-height: calc(100dvh - 2rem); border: 0; border-radius: var(--radius-lg); background: var(--color-blanc-perle); box-shadow: var(--shadow-soft); padding: 0; color: var(--color-encre); }
.galerie-lightbox::backdrop { background: rgb(24 34 53 / 70%); }
.galerie-lightbox__shell { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-4); }
.galerie-lightbox__top { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); }
.galerie-lightbox__top p, .galerie-lightbox__count { margin: 0; }
.galerie-lightbox__close, .galerie-lightbox__nav { min-width: 2.75rem; min-height: 2.75rem; border: 1px solid var(--color-bleu-royal); border-radius: var(--radius-md); background: var(--color-blanc-perle); color: var(--color-bleu-royal-fonce); font-weight: 700; padding: .5rem .75rem; }
.galerie-lightbox__content { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); align-items: center; }
.galerie-lightbox__content figure { display: flex; flex-direction: column; min-width: 0; gap: var(--space-2); margin: 0; }
.galerie-lightbox__content img { width: 100%; max-height: 65dvh; object-fit: contain; background: var(--color-beige-doux); }
.galerie-lightbox__content figcaption { margin: 0; }
@media (min-width: 40rem) { .galerie-reperes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .galerie-detail-notes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 48rem) { .galerie-mosaique__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .galerie-engagements__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .galerie-lightbox__content { grid-template-columns: auto minmax(0, 1fr) auto; } }
@media (min-width: 51.25rem) { .galerie-orientation__panels { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
@media (min-width: 64rem) { .galerie-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: calc(var(--space-6) + var(--space-5)); align-items: center; } .galerie-hero__copy { grid-column: 1; } .galerie-hero__media { grid-column: 2; } .galerie-reperes__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .galerie-mosaique__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .galerie-tile--salle { grid-column: span 7; } .galerie-tile--table { grid-column: span 5; } .galerie-tile--mains, .galerie-tile--diner, .galerie-tile--groupe { grid-column: span 4; } .galerie-tile--fin { grid-column: 1 / -1; } .galerie-tile--fin figcaption { max-width: 52ch; } .galerie-matieres__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); column-gap: calc(var(--space-6) + var(--space-5)); } .galerie-temps__timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); } .galerie-step { grid-template-columns: minmax(0, 1fr); padding: 0; } .galerie-step:not(:last-child)::after { top: 1.1875rem; right: calc(var(--space-5) * -1); bottom: auto; left: auto; width: var(--space-5); height: 1px; } .galerie-step__marker { margin-bottom: var(--space-3); } .galerie-step--featured > div { padding: var(--space-5); } .galerie-engagements__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .galerie-responsable__panel { width: 75%; } }
@media (max-width: 39.99rem) { .galerie-hero__actions { width: 100%; } .galerie-hero__actions .button { width: 100%; } .galerie-tile__media img { min-height: 13.75rem; } .galerie-destination .button { width: 100%; } }
@media (hover: hover) and (pointer: fine) { .galerie-destination:hover { transform: translateY(-2px); box-shadow: var(--shadow-soft); } }
@media (prefers-reduced-motion: reduce) { .galerie-destination { transition: none; } }
