/* Parcours de séjour local, dans l'identité du Pavillon. */
.stay-search-section { border-bottom:1px solid var(--lp-line); background:var(--lp-cream); padding-block:32px 38px; }
.stay-search-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:24px; }
.stay-search-heading h2 { margin:0; font-size:clamp(1.65rem,3vw,2.3rem); }
.stay-search-heading p:last-child { color:var(--lp-muted); margin:0; max-width:440px; }
.stay-search { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)) auto; align-items:end; gap:14px; }
.stay-search .button { min-height:48px; }
.stay-search :is(input,select) { min-width:0; }
.room-booking-panel .stay-search { grid-template-columns:repeat(2,minmax(0,1fr)); }
.room-booking-panel .stay-search .button { grid-column:1/-1; }
.stay-search--full { grid-template-columns:repeat(2,minmax(0,1fr)); }
.stay-search--full .button { grid-column:1/-1; margin-top:8px; }
.reservation-intro { padding-block:40px 30px; }
.reservation-intro h1 { margin:0; font-size:clamp(2.3rem,4vw,3.5rem); }
.stay-planner { padding:30px; }
.stay-summary { padding:14px 16px; border-left:3px solid var(--lp-gold); background:var(--lp-cream); font-weight:700; font-size:.94rem; }
.stay-room-heading { margin-top:34px; }
.stay-room-heading h3 { margin:0; }
.stay-room-heading p { color:var(--lp-muted); font-size:.9rem; }
.stay-room-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:20px; }
button.reservation-room-option { font:inherit; text-align:left; padding:0; cursor:pointer; }
.stay-email-review { margin-top:24px; padding-top:24px; border-top:1px solid var(--lp-line); }
.stay-email-review textarea { min-height:230px; font-size:.88rem; font-weight:400; }
.stay-email-review [data-copy-status] { color:var(--lp-green-dark); font-size:.9rem; }
.reservation-steps { flex-wrap:wrap; gap:10px 18px; }
.booking-contact a { overflow-wrap:anywhere; }
.contact-map-frame iframe { display:block; width:100%; height:420px; border:0; }
[id] { scroll-margin-top:105px; }
@media(max-width:1040px) { .stay-search { grid-template-columns:repeat(4,minmax(0,1fr)); } .stay-search > .button { grid-column:1/-1; } }
@media(max-width:820px) { .stay-search-heading { flex-direction:column; align-items:start; gap:12px; } .stay-search { grid-template-columns:repeat(2,minmax(0,1fr)); } .stay-search--full { grid-template-columns:repeat(2,minmax(0,1fr)); } .room-booking-panel { grid-template-columns:1fr; } }
@media(max-width:580px) { .stay-search--full { grid-template-columns:1fr; } .stay-planner,.booking-engine-heading { padding:22px 18px; } .stay-room-grid { gap:10px; } .reservation-room-option-body { padding:12px; } .stay-room-grid strong { font-size:1.05rem; } .reservation-room-option-body > span { font-size:.8rem; } .stay-search .contact-field { min-width:0; } .related-rooms-heading { align-items:flex-start; flex-direction:column; } }
@media(max-width:380px) { .stay-search,.room-booking-panel .stay-search { grid-template-columns:1fr; } .stay-room-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .related-rooms-track { scroll-behavior:auto; } }

/* Official booking engine; no local availability or checkout. */
.booking-opening-note { margin:0 0 24px; padding:14px 16px; background:var(--lp-cream); border-left:3px solid var(--lp-gold); font-size:.9rem; }
.booking-search-error { color:#8e2922; font-weight:700; }
.booking-search-error:empty,.booking-load-status:empty { display:none; }
.booking-result { margin-top:28px; border-top:1px solid var(--lp-line); padding-top:24px; }
.booking-result[hidden] { display:none; }
.booking-result-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.booking-result-heading h3 { margin:0; font-size:1.6rem; }
.booking-result-heading .eyebrow { margin-bottom:6px; }
.booking-result-heading .button { white-space:normal; text-align:center; }
.booking-frame-slot { margin-top:20px; }
.booking-official-frame { display:block; width:100%; height:900px; border:1px solid var(--lp-line); border-radius:8px; background:var(--lp-white); }
.booking-help,.booking-load-status { color:var(--lp-muted); font-size:.88rem; overflow-wrap:anywhere; }
.booking-room-picker { margin-top:26px; border-top:1px solid var(--lp-line); padding-top:20px; }
.booking-room-picker > summary,.booking-policy > summary { cursor:pointer; font-weight:800; color:var(--lp-green-dark); }
.booking-room-picker > p,.booking-policy p { font-size:.9rem; }
.booking-policy { margin-top:22px; }
.booking-policy a { font-weight:700; }
button.reservation-room-option:disabled { opacity:.65; cursor:default; transform:none; box-shadow:none; }
.booking-search-error:focus { outline:2px solid var(--lp-green); outline-offset:4px; }
@media(max-width:580px) { .booking-result-heading { align-items:stretch; flex-direction:column; } .booking-result-heading .button { width:100%; } .booking-official-frame { height:1050px; } }
