.sav-booking,.sav-contact-page{--ink:#173a3a;--muted:#667778;--border:#dbe7e5;--soft:#f4f9f8;--primary:#168f8a;--primary-dark:#0f6f6b;--low:#3f8b5c;--mid:#3b6fa8;--high:#c66a28;--danger:#b94d55;--selected:#ccefeb;box-sizing:border-box;max-width:1440px;margin:auto;padding:clamp(1rem,3vw,2.5rem);border:1px solid var(--border);border-radius:24px;background:#fff;color:var(--ink);box-shadow:0 18px 50px rgba(20,65,65,.08);font-family:inherit}.sav-booking *{box-sizing:inherit}.sav-booking__header{max-width:760px;margin:0 auto 1.5rem;text-align:center}.sav-booking__header h2{margin:.25rem 0 .65rem;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.1;color:var(--ink)}.sav-booking__header>p:last-child,.sav-note,.sav-quote>small{color:var(--muted)}.sav-eyebrow{margin:0;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary)}
.sav-rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.5rem 0 1rem}.sav-rate{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:14px;background:var(--soft)}.sav-rate i,.sav-legend i{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;flex:none}.sav-rate--low i{background:var(--low)}.sav-rate--mid i{background:var(--mid)}.sav-rate--high i{background:var(--high)}.sav-rate span{display:flex;flex-direction:column}.sav-rate small{color:var(--muted)}.sav-rate b{white-space:nowrap;font-size:.92rem}.sav-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem;margin:1rem 0;font-size:.83rem;color:var(--muted)}.sav-legend span{display:flex;align-items:center;gap:.4rem}.sav-legend .selected{background:var(--selected);border:1px solid var(--primary)}.sav-legend .unavailable{background:#f4d9dc;border:1px solid var(--danger)}.sav-legend .departure{background:linear-gradient(135deg,#f4d9dc 50%,#fff 50%);border:1px solid var(--danger)}
.sav-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:.75rem;margin:1.25rem 0 .8rem;text-align:center}.sav-toolbar button,.sav-quote header button{display:grid;place-items:center;border:1px solid var(--border);background:#fff;color:var(--ink);cursor:pointer}.sav-toolbar button{width:44px;height:44px;border-radius:50%;font-size:1.8rem}.sav-toolbar button:disabled{opacity:.35;cursor:not-allowed}.sav-calendar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}.sav-month{min-width:0;padding:.65rem;border:1px solid var(--border);border-radius:14px}.sav-month h3{margin:0 0 .55rem;text-align:center;font-size:.92rem}.sav-weekdays,.sav-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.sav-weekdays span{padding:.25rem 0;text-align:center;font-size:.66rem;font-weight:800;color:var(--muted)}.sav-day{position:relative;aspect-ratio:1;min-width:0;padding:0;border:0;border-radius:6px;background:transparent;font:inherit;font-size:clamp(.62rem,.78vw,.8rem);font-weight:750;cursor:pointer}.sav-day:after{content:"";position:absolute;left:28%;right:28%;bottom:12%;height:2px;border-radius:2px;background:currentColor;opacity:.7}.sav-day--low{color:var(--low)}.sav-day--mid{color:var(--mid)}.sav-day--high{color:var(--high)}.sav-day:hover:not(:disabled),.sav-day:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;background:var(--soft)}.sav-day.is-outside{visibility:hidden}.sav-day.is-unavailable{color:var(--danger);background:#f8e6e8;text-decoration:line-through;cursor:not-allowed;opacity:.75}.sav-day.is-unavailable:after{display:none}.sav-day.is-departure-boundary{background:linear-gradient(135deg,#f4d9dc 50%,transparent 50%);box-shadow:inset 0 0 0 1px rgba(185,77,85,.35)}.sav-day.is-in-range,.sav-day.is-range-start,.sav-day.is-range-end{background:var(--selected);color:var(--primary-dark);text-decoration:none}.sav-day.is-range-start,.sav-day.is-range-end{box-shadow:inset 0 0 0 2px var(--primary)}
.sav-selection{display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(170px,1fr) minmax(190px,auto);align-items:center;gap:.75rem;margin-top:1.25rem;padding:1rem;border-radius:16px;background:var(--soft)}.sav-date{display:flex;flex-direction:column;align-items:flex-start;min-height:64px;padding:.7rem .9rem;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.sav-date span{font-size:.73rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.sav-date.is-active{border-color:var(--primary);box-shadow:0 0 0 3px rgba(22,143,138,.12)}.sav-arrow{color:var(--muted)}.sav-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.15rem;border:0;border-radius:999px;background:var(--primary);color:#fff!important;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.sav-button:hover,.sav-button:focus-visible{background:var(--primary-dark)}.sav-button:disabled{opacity:.45;cursor:not-allowed}.sav-button--full{width:100%}.sav-message{min-height:1.5em;margin:.75rem 0 0;text-align:center;font-weight:700;color:var(--muted)}.sav-message.is-error{color:var(--danger)}.sav-message.is-success{color:var(--low)}
.sav-quote{max-width:760px;margin:1.25rem auto 0;padding:clamp(1rem,3vw,1.75rem);border:1px solid var(--border);border-radius:18px;box-shadow:0 15px 40px rgba(20,65,65,.1)}.sav-quote[hidden]{display:none}.sav-quote header{display:flex;justify-content:space-between;gap:1rem}.sav-quote header h3{margin:.2rem 0 0}.sav-quote header button{width:36px;height:36px;border-radius:50%;font-size:1.4rem}.sav-line,.sav-total{display:flex;justify-content:space-between;gap:1rem;padding:.72rem 0;border-bottom:1px solid var(--border)}[data-sav-quote-lines]{margin:1.25rem 0;border-top:1px solid var(--border)}.sav-line span{color:var(--muted)}.sav-line strong,.sav-total strong{white-space:nowrap}.sav-line.is-discount strong{color:var(--low)}.sav-total{font-weight:800}.sav-total strong{font-size:1.45rem;color:var(--primary-dark)}.sav-note{padding:.85rem 1rem;border-radius:12px;background:var(--soft);font-size:.9rem}.sav-quote>small{display:block;margin-top:.75rem;text-align:center}
@media(max-width:1099px){.sav-calendar{grid-template-columns:repeat(3,minmax(0,1fr))}.sav-rates{grid-template-columns:1fr}}@media(max-width:767px){.sav-booking{padding:1rem;border-radius:16px}.sav-calendar{grid-template-columns:1fr}.sav-month{padding:.8rem}.sav-month h3{font-size:1.05rem}.sav-day{font-size:.88rem}.sav-selection{grid-template-columns:1fr}.sav-arrow{display:none}.sav-rate{grid-template-columns:auto 1fr}.sav-rate b{grid-column:2}.sav-line{font-size:.88rem}}
.sav-contact-zone,.sav-faq{margin-top:clamp(2.5rem,6vw,5rem);padding-top:clamp(1.5rem,4vw,3rem);border-top:1px solid var(--border)}.sav-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:900px;margin:0 auto 1.25rem}.sav-choice__button{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:16px;background:var(--soft);color:var(--ink);font:inherit;font-weight:800;text-align:left;cursor:pointer}.sav-choice__button small{font-weight:500;color:var(--muted)}.sav-choice__button.is-active{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(22,143,138,.12)}.sav-panel{max-width:900px;margin:0 auto}.sav-panel[hidden]{display:none}.sav-form{padding:clamp(1rem,3vw,1.75rem);border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(20,65,65,.07)}.sav-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.sav-form label{display:flex;flex-direction:column;gap:.45rem}.sav-form label>span{font-weight:750;color:var(--ink)}.sav-form input,.sav-form select,.sav-form textarea{width:100%;padding:.78rem .85rem;border:1px solid #bfd0ce;border-radius:10px;background:#fff;color:var(--ink);font:inherit}.sav-form input:focus,.sav-form select:focus,.sav-form textarea:focus{outline:2px solid rgba(22,143,138,.25);border-color:var(--primary)}.sav-form__full{grid-column:1/-1}.sav-consent{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:.65rem!important;margin:1rem 0}.sav-consent input{width:auto;margin-top:.2rem}.sav-consent span{font-weight:500!important;color:var(--muted)!important}.sav-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.sav-faq__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;max-width:1000px;margin:auto}.sav-faq details{padding:1rem 1.1rem;border:1px solid var(--border);border-radius:14px;background:var(--soft)}.sav-faq summary{font-weight:800;cursor:pointer;color:var(--ink)}.sav-faq details p{margin:.75rem 0 0;color:var(--muted)}.sav-public-notice{margin:0 0 1.25rem;padding:1rem 1.1rem;border-radius:12px;font-weight:750}.sav-public-notice.is-success{background:#e4f5ec;color:#17613d}.sav-public-notice.is-error{background:#f8e6e8;color:var(--danger)}
@media(max-width:767px){.sav-choice,.sav-form__grid,.sav-faq__list{grid-template-columns:1fr}.sav-form__full{grid-column:auto}}
.sav-contact-zone,.sav-faq{margin-top:clamp(2.5rem,6vw,5rem);padding-top:clamp(1.5rem,4vw,3rem);border-top:1px solid var(--border)}.sav-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:900px;margin:0 auto 1.25rem}.sav-choice__button{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:16px;background:var(--soft);color:var(--ink);font:inherit;font-weight:800;text-align:left;cursor:pointer}.sav-choice__button small{font-weight:500;color:var(--muted)}.sav-choice__button.is-active{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(22,143,138,.12)}.sav-panel{max-width:900px;margin:0 auto}.sav-panel[hidden]{display:none}.sav-form{padding:clamp(1rem,3vw,1.75rem);border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(20,65,65,.07)}.sav-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.sav-form label{display:flex;flex-direction:column;gap:.45rem}.sav-form label>span{font-weight:750;color:var(--ink)}.sav-form input,.sav-form select,.sav-form textarea{width:100%;padding:.78rem .85rem;border:1px solid #bfd0ce;border-radius:10px;background:#fff;color:var(--ink);font:inherit}.sav-form input:focus,.sav-form select:focus,.sav-form textarea:focus{outline:2px solid rgba(22,143,138,.25);border-color:var(--primary)}.sav-form__full{grid-column:1/-1}.sav-consent{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:.65rem!important;margin:1rem 0}.sav-consent input{width:auto;margin-top:.2rem}.sav-consent span{font-weight:500!important;color:var(--muted)!important}.sav-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.sav-faq__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;max-width:1000px;margin:auto}.sav-faq details{padding:1rem 1.1rem;border:1px solid var(--border);border-radius:14px;background:var(--soft)}.sav-faq summary{font-weight:800;cursor:pointer;color:var(--ink)}.sav-faq details p{margin:.75rem 0 0;color:var(--muted)}.sav-public-notice{margin:0 0 1.25rem;padding:1rem 1.1rem;border-radius:12px;font-weight:750}.sav-public-notice.is-success{background:#e4f5ec;color:#17613d}.sav-public-notice.is-error{background:#f8e6e8;color:var(--danger)}
@media(max-width:767px){.sav-choice,.sav-form__grid,.sav-faq__list{grid-template-columns:1fr}.sav-form__full{grid-column:auto}}

.sav-contact-page{max-width:1180px}.sav-contact-hero{padding:clamp(1rem,3vw,2rem) 0}.sav-trust-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1.5rem 0;padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--soft)}.sav-trust-strip span{text-align:center;font-weight:800;color:var(--primary-dark)}.sav-contact-details{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:clamp(2.5rem,6vw,5rem);padding:clamp(1.25rem,4vw,2rem);border-radius:18px;background:var(--ink);color:#fff}.sav-contact-details h2{margin:.15rem 0}.sav-contact-details p{margin:.4rem 0;color:#e5f0ef}.sav-contact-details a:not(.sav-button){color:#fff;text-decoration:underline}.sav-contact-details .sav-eyebrow{color:#bfe4df}.sav-status--new{background:#fff3cd;color:#7a5a00}.sav-status--processed{background:#e4f5ec;color:#17613d}@media(max-width:767px){.sav-trust-strip{grid-template-columns:1fr 1fr}.sav-contact-details{align-items:flex-start;flex-direction:column}}

/* Savannah Booking 1.4.1 : pied de page de la page contact */
.sav-site-footer{margin-top:clamp(2.5rem,6vw,5rem);padding:clamp(1.25rem,4vw,2.25rem);border-radius:20px;background:#173f3f;color:#fff}.sav-footer-grid{display:grid;grid-template-columns:1.05fr 1.25fr .8fr;gap:clamp(1.25rem,3vw,2.5rem);align-items:start}.sav-site-footer h2,.sav-site-footer h3{margin:.1rem 0 .75rem;color:#fff}.sav-site-footer p{color:#e5f0ef}.sav-footer-signature p{line-height:1.7}.sav-footer-map iframe{display:block;border-radius:14px;background:#fff}.sav-map-placeholder{min-height:150px;margin:0;padding:1rem;border:1px dashed rgba(255,255,255,.35);border-radius:14px;display:flex;align-items:center}.sav-footer-links ul{margin:0;padding:0;list-style:none}.sav-footer-links li+li{margin-top:.55rem}.sav-footer-links a{color:#fff!important;text-decoration:underline;text-underline-offset:3px}.sav-pmr{margin:1.5rem 0 0;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.2);font-size:.92rem}.sav-footer-closing{margin:1.25rem 0 .25rem;text-align:center;font-size:1.08rem;font-weight:750}.sav-footer-copy{margin:.35rem 0 0;text-align:center;font-size:.82rem;opacity:.8}
@media(max-width:900px){.sav-footer-grid{grid-template-columns:1fr 1fr}.sav-footer-links{grid-column:1/-1}}@media(max-width:620px){.sav-footer-grid{grid-template-columns:1fr}.sav-footer-links{grid-column:auto}.sav-site-footer{border-radius:16px}}

/* Savannah Booking 1.4.3 */
.sav-footer-map a{color:#fff!important;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.sav-footer-map a:hover,.sav-footer-map a:focus-visible{color:#fff!important;text-decoration-thickness:2px}
.sav-contact-page--combined{margin-top:clamp(2.5rem,6vw,5rem)}



/* Savannah Booking 1.5.0 : lisibilité et finitions */
.sav-booking > .sav-booking__header > p:last-child,
.sav-contact-hero > p:last-child{
  font-weight:700;
  color:var(--ink);
  line-height:1.65;
}

/* Texte d'introduction de la section Gutenberg « Découvrez votre séjour ». */
#decouvrez-votre-sejour p,
.decouvrez-votre-sejour p{
  font-weight:700;
}

/* Séparation nette entre la grille (dont Google Maps) et la phrase d'accueil. */
.sav-footer-grid + .sav-footer-closing{
  display:block;
  margin:2.5rem 0 .25rem !important;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.24);
  clear:both;
}


/* Savannah Booking 1.5.1 : section « Découvrez votre séjour » */
#decouvrez-votre-sejour{
  scroll-margin-top:110px;
}
#decouvrez-votre-sejour .sav-discover-title,
.sav-discover-title{
  margin:.25rem 0 .65rem;
  font-size:clamp(1.8rem,3vw,2.8rem) !important;
  line-height:1.1 !important;
}
#decouvrez-votre-sejour .sav-discover-intro,
.sav-discover-intro{
  font-weight:700 !important;
  line-height:1.65;
}


/* Savannah Booking 1.5.3 : harmonisation du texte d’introduction du formulaire */
#sav-contact-title + p,
.sav-contact-zone > .sav-booking__header > p:last-child{
  margin:.15rem auto 0;
  max-width:760px;
  font-size:clamp(1rem,1.5vw,1.12rem) !important;
  line-height:1.65 !important;
  font-weight:700 !important;
  color:var(--ink) !important;
}

/* Savannah Booking 1.5.4 : FAQ, message simple et demande de séjour séparés */
.sav-contact-page--combined{
  max-width:none;
  margin-top:clamp(2rem,5vw,4rem);
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.sav-contact-page--combined .sav-faq{
  margin-top:0;
  padding-top:0;
  border-top:0;
}
.sav-faq__more{
  margin:clamp(1.5rem,4vw,2.5rem) auto 1.25rem;
  text-align:center;
  font-size:clamp(1.15rem,2vw,1.3rem);
  line-height:1.5;
  font-weight:700;
  color:var(--ink);
}
.sav-form--simple{
  max-width:760px;
  margin:0 auto;
  scroll-margin-top:110px;
}
.sav-contact-zone{
  scroll-margin-top:110px;
}

/* Savannah Booking 1.5.6 : accessibilité Lighthouse / WCAG AA
   - contraste renforcé pour les textes de saison et les textes secondaires
   - cibles interactives d'au moins 24 px
   - conservation de la palette visuelle Savannah */
.sav-booking,
.sav-contact-page{
  --muted:#596a6b;
  --primary:#0f7773;
  --primary-dark:#0b625f;
  --low:#347a50;
  --mid:#3b6fa8;
  --high:#a65318;
  --danger:#a33f48;
}

.sav-day{
  min-width:24px;
  min-height:24px;
  touch-action:manipulation;
}

.sav-footer-links a,
.sav-footer-map a{
  display:inline-flex;
  align-items:center;
  min-height:24px;
}

.sav-faq summary{
  min-height:24px;
  display:flex;
  align-items:center;
}

