/* Palette et typographies existantes conservées. */
@keyframes welcome { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes photo-welcome { from { transform:scale(1.035); } to { transform:scale(1); } }
@media (prefers-reduced-motion:no-preference) {
  .hero-summary > div:first-child > :not(.hero-price) { animation:welcome .7s ease-out both; }
  .hero-summary .wordmark { animation-delay:.08s!important; }
  .hero-summary .promise { animation-delay:.15s!important; }
  .hero-summary .cta-row { animation-delay:.22s!important; }
  .hero-img img { animation:photo-welcome 1.4s ease-out both; }
  .grid2.reveal.in > *, .grid3.reveal.in > *, .four.reveal.in > * { animation:welcome .55s ease-out both; }
  .four.reveal.in > :nth-child(2), .grid2.reveal.in > :nth-child(2), .grid3.reveal.in > :nth-child(2) { animation-delay:.08s; }
  .season-switcher .season:not([hidden]) { animation:welcome .35s ease-out; }
}
.photo-open { display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in; }
.photo-open:focus-visible { outline:4px solid var(--ember); outline-offset:-5px; }
.photos-open { overflow:hidden; }
.photo-dialog { width:min(1100px,96vw); max-width:96vw; max-height:94dvh; padding:20px; border:0; border-radius:20px; background:var(--paper); color:var(--ink); box-sizing:border-box; }
.photo-dialog::backdrop { background:#102e35e8; }
.photo-dialog figure { margin:16px 0; }
.photo-dialog img { width:100%; height:64dvh; object-fit:contain; border-radius:10px; }
.photo-dialog figcaption { text-align:center; margin:12px auto 0; max-width:75ch; font-size:.9rem; }
.photo-dialog button, .season-tabs button { font:inherit; cursor:pointer; border:1px solid var(--rule); border-radius:99px; background:var(--card); color:var(--ink); padding:10px 18px; }
.photo-close { display:block; margin-left:auto; }
.photo-controls { display:flex; align-items:center; justify-content:center; gap:24px; }
.photo-dialog button:focus-visible, .season-tabs button:focus-visible, .mobile-booking:focus-visible { outline:3px solid var(--ember); outline-offset:3px; }
.season-tabs { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.season-tabs button[aria-selected="true"] { background:var(--lake); color:white; border-color:var(--lake); }
.season-switcher { display:block; }
.season-switcher .season:not([hidden]) { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:32px; align-items:center; border-radius:20px; }
.season-switcher .season > .frame { aspect-ratio:1.5; width:100%; height:auto; margin:0; }
.season-switcher .season[hidden], .mobile-booking[hidden] { display:none!important; }
.mobile-booking { display:none; }
@media (max-width:800px) {
  .mobile-booking { display:block; position:fixed; bottom:max(16px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); white-space:nowrap; z-index:35; box-shadow:0 8px 30px #183e4340; }
  .mobile-booking:hover { transform:translateX(-50%); }
  .photos-open .mobile-booking { display:none; }
  .season-switcher .season:not([hidden]) { display:block; }
  .season-switcher .season > .frame { margin-bottom:20px; }
  .photo-dialog { padding:14px; }
  .photo-dialog img { height:52dvh; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-summary *, .season-switcher *, .reveal, .reveal * { animation:none!important; transition:none!important; }
}
