/* Keep the shared booking interface inside the homepage's river section. */
/* These preceding sections need their real height before jumping to booking. */
#experience,#ambiance,#louer { content-visibility:visible; }
.home-reservation { position:relative;z-index:2;background:transparent; }
.home-reservation .rez,.home-reservation .rez.camping-active { padding-block:clamp(70px,7vw,110px); }
.home-reservation__heading { margin-bottom:28px;max-width:740px; }
.home-reservation__heading h2 { font-size:clamp(2.2rem,4.2vw,3.7rem);font-weight:500;line-height:1.08;letter-spacing:-.025em;margin:0 0 18px; }
.home-reservation h2::after { display:none; }
.home-reservation__heading p { color:var(--muted);line-height:1.7; }
#reservation,#tab-eau,#tab-camping,#sans-services { scroll-margin-top:100px; }
.home-reservation [hidden] { display:none!important; }
.home-reservation .rez-water-layout { text-align:left; }
.home-reservation .rez-choice { margin-bottom:32px;padding-bottom:0;border:0; }
.home-reservation .rez-toggle { width:100%;padding:5px;max-width:none;border-radius:12px; }
.home-reservation .rz-tab { min-height:82px;padding:16px 24px; }
.home-reservation .rez-toggle::before { inset:5px auto 5px 5px;width:calc((100% - 10px)/2);border-radius:8px; }
.home-reservation .rz-tab>span { font-size:1.45rem; }
.home-reservation .rz-tab small { font-size:.78rem; }
.home-reservation a.rz-tab { text-decoration:none; }
.home-reservation a.rz-tab:not(.on):hover { color:var(--cream);background:var(--panel2); }
.camp-teaser .camp__inner { padding-block:48px 60px; }
.camp-teaser .camp-intro { margin-bottom:24px; }
.camp-teaser .camp-intro h2 { font-size:clamp(1.7rem,3vw,2.5rem); }
.camp-teaser .camp-intro p { max-width:52ch; }
.home-reservation .gcard { border-radius:14px;background:var(--bg2);box-shadow:none; }
.home-reservation .gc-img { border-radius:8px;height:clamp(135px,15vw,195px); }
.home-reservation .rez-water-layout { gap:40px;padding-top:24px; }
.home-reservation .rez-schedule { gap:24px; }
.home-reservation .rez-contact { background:var(--bg2);border-radius:14px;border-color:var(--line2); }
.home-reservation .rez-contact .btn { margin-top:20px; }
.home-reservation input::placeholder { color:#a3b2b4;opacity:1; }
.home-reservation .rez-contact .rez-price { border-top:0;padding:0 0 22px;margin:0 0 24px; }
.home-reservation .rent-models { margin-bottom:24px; }
.home-reservation .mcard { background:var(--bg2);min-width:130px;justify-content:space-between; }
.home-reservation .camp-booking-heading { margin-bottom:12px; }
.home-reservation .camp-guide-details { margin:0 0 22px;border-bottom:1px solid var(--line); }
.home-reservation .camp-guide-details summary { padding:12px 0 18px;color:var(--gold2);font-size:.85rem;cursor:pointer;min-height:48px; }
.home-reservation .camp-guide-details .camp-service-guide__header { display:none; }
.home-reservation .camp-guide-details .camp-service-guide { margin-top:0; }
@media(min-width:1100px) {
  .home-reservation .rez-water-layout { grid-template-columns:minmax(0,1fr) 360px; }
}
@media(max-width:780px) {
  .home-reservation .rez,.home-reservation .rez.camping-active { padding-block:46px 56px; }
  .home-reservation__heading { margin-bottom:22px; }
  .home-reservation__heading p { font-size:.88rem;max-width:38ch; }
  .home-reservation .rz-tab { min-height:72px;padding:12px 16px; }
  .home-reservation .rz-tab>span { font-size:1.18rem; }
  .home-reservation .rz-tab small { font-size:.66rem; }
  .home-reservation .rez-choice { margin-bottom:26px; }
  .home-reservation .rez-water-layout { gap:28px; }
}
@media(max-width:430px) {
  .home-reservation .rent-gears { grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
  .home-reservation .gcard { display:flex;flex-direction:column;align-items:stretch;padding:5px 5px 12px;gap:7px;min-width:0; }
  .home-reservation .gc-img { width:100%;height:82px; }
  .home-reservation .gc-name { padding:0 3px;font-size:.91rem;align-self:stretch;line-height:1.25;min-height:2.5em; }
  .home-reservation .gc-stock { padding:0 3px;font-size:.61rem; }
  .home-reservation .gcard.on::after { top:10px;right:10px;width:20px;height:20px;font-size:.65rem; }
  .home-reservation .mcard { flex:1;min-width:0;padding:12px 10px;font-size:.8rem; }
  .home-reservation .mc-stock { font-size:.68rem; }
}
@media(max-width:360px) {
  .nav { padding-inline:14px;gap:10px; }
  .nav .brand { gap:8px; }
  .nav .brand-txt { font-size:.84rem;white-space:nowrap; }
  .nav .brand-txt small { display:none; }
  .nav .nav-cta { gap:12px; }
  .nav .nav-cta .btn { padding-inline:16px;min-height:44px;font-size:.82rem; }
}
