/* ==========================================================================
   SudBed — Design System global (chargé en dernier)
   Palette stricte + typographies unifiées (Geist + Dancing Script).
   ========================================================================== */

:root {
    --sb-text:        #3F3F3F;
    --sb-text-on-accent: #FFFFFF;
    --sb-accent:      #009ABF;
    --sb-accent-hover:#007a94;
    --sb-chrome-bg:   #F2F2F2; /* header / footer */
    --sb-bg-1:        #FFFFFF;
    --sb-bg-2:        #F9FAFB;
    --sb-bg-3:        #FBFAF6;

    /* Override variables historiques du thème */
    --sudbed-light-bg:    #F2F2F2;
    --sudbed-light-text:  #3F3F3F;
    --sudbed-light-card:  #FFFFFF;
    --sudbed-footer:      #F2F2F2;
    --sudbed-accent:      #009ABF;
    --sudbed-accent-hover:#007a94;
    --sudbed-body-bg-light: #FFFFFF;

    --background: #FFFFFF;
    --foreground: #3F3F3F;
    --card: #FFFFFF;
    --card-foreground: #3F3F3F;
    --popover: #FFFFFF;
    --popover-foreground: #3F3F3F;
    --primary: #009ABF;
    --primary-foreground: #FFFFFF;
    --secondary: #F9FAFB;
    --secondary-foreground: #3F3F3F;
    --muted: #F9FAFB;
    --muted-foreground: #3F3F3F;
    --accent: #009ABF;
    --accent-foreground: #FFFFFF;
    --border: #F2F2F2;
    --input: #F2F2F2;
    --ring: #009ABF;

    --font-sans: "Geist", "Geist Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    --font-display: "Dancing Script", cursive;
}

/* ==========================================================================
   Typographies — Geist par défaut, Dancing Script en accent uniquement
   ========================================================================== */
html, body, button, input, select, textarea, optgroup,
h1, h2, h3, h4, h5, h6, p, a, li, span, label, blockquote, figcaption {
    font-family: var(--font-sans) !important;
}
.font-dancing-script,
.font-display,
.sb-script,
.accent-handwritten,
[data-accent-script],
.sb-card__title em,
.sb-diag__title em,
.sudbed-hero__title em {
    font-family: var(--font-display) !important;
    font-style: normal;
    font-weight: 600;
}

/* ==========================================================================
   Base : couleur texte / fond
   ========================================================================== */
html, body { background-color: var(--sb-bg-1) !important; color: var(--sb-text) !important; }
h1, h2, h3, h4, h5, h6, p, li, dd, dt, label, figcaption, blockquote { color: var(--sb-text); }

/* Liens et accents typographiques */
a { color: var(--sb-accent); }
a:hover, a:focus { color: var(--sb-accent-hover); }
h1 em, h2 em, h3 em, h4 em,
.sb-card__title em, .sb-diag__title em,
.text-sudbed-accent, .sudbed-accent {
    color: var(--sb-accent) !important;
}

/* ==========================================================================
   Header / Footer : fond gris clair, texte foncé.
   IMPORTANT : on ne force PAS la couleur de tous les enfants (sinon les états
   hover/actifs avec fond accent perdent leur libellé blanc).
   On donne la couleur de base, et les états gèrent leur propre texte.
   ========================================================================== */
header, .site-header, nav[role="navigation"],
footer.sb-footer, .sb-footer, .site-footer, .sudbed-footer,
.template-parts-footer, .footer-particulier, .footer-professionnel {
    background-color: var(--sb-chrome-bg) !important;
    color: var(--sb-text);
    border-color: var(--sb-chrome-bg);
}
nav[role="navigation"] a,
nav[role="navigation"] button,
.sb-footer a, .site-footer a, footer a {
    color: var(--sb-text);
}

/* États menu : fond accent => texte blanc lisible. Force texte ET enfants. */
nav[role="navigation"] a:hover,
nav[role="navigation"] a:focus,
nav[role="navigation"] a.current,
nav[role="navigation"] a[aria-current="page"],
nav[role="navigation"] .current-menu-item > a,
nav[role="navigation"] .current_page_item > a,
nav[role="navigation"] button:hover,
nav[role="navigation"] button:focus,
nav[role="navigation"] [role="menu"] a:hover,
nav[role="navigation"] [role="menu"] a:focus,
.mobile-submenu-btn:hover,
.mobile-submenu-btn:focus,
.mobile-submenu a:hover,
.mobile-submenu a:focus {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
}
nav[role="navigation"] a:hover *,
nav[role="navigation"] a:focus *,
nav[role="navigation"] a.current *,
nav[role="navigation"] a[aria-current="page"] *,
nav[role="navigation"] .current-menu-item > a *,
nav[role="navigation"] .current_page_item > a *,
nav[role="navigation"] button:hover *,
nav[role="navigation"] button:focus *,
nav[role="navigation"] [role="menu"] a:hover *,
nav[role="navigation"] [role="menu"] a:focus * { color: #FFFFFF !important; }

/* Le panneau dropdown : fond blanc, texte foncé par défaut */
nav[role="navigation"] [role="menu"] {
    background-color: #FFFFFF !important;
    color: var(--sb-text) !important;
    border: 1px solid var(--sb-chrome-bg);
}
nav[role="navigation"] [role="menu"] a { color: var(--sb-text) !important; background-color: transparent !important; }

/* Anti tap-highlight bleu fantôme sur le premier item du dropdown */
nav[role="navigation"] [role="menu"] a:first-child { background-color: transparent !important; color: var(--sb-text) !important; }
nav[role="navigation"] [role="menu"] a:first-child:hover,
nav[role="navigation"] [role="menu"] a:first-child:focus { background-color: var(--sb-accent) !important; color: #FFFFFF !important; }

/* ==========================================================================
   Boutons / CTA — texte blanc garanti, y compris sur enfants <span>/<svg>
   ========================================================================== */
.btn, .button, .wp-block-button__link, button[type="submit"],
.sb-aside__btn, .sudbed-cta, .cta,
.sudbed-hero__cta,
.sb-footer-cta__btn,
a.sudbed-mobile-bar__item--cta,
.sudbed-mobile-bar__item--cta {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border: 1px solid var(--sb-accent) !important;
}
.btn *, .button *, .wp-block-button__link *,
button[type="submit"] *,
.sb-aside__btn *, .sudbed-cta *, .cta *,
.sudbed-hero__cta *,
.sb-footer-cta__btn *,
.sudbed-mobile-bar__item--cta * { color: #FFFFFF !important; fill: currentColor !important; stroke: currentColor !important; }

.btn:hover, .button:hover, .wp-block-button__link:hover,
button[type="submit"]:hover, .sb-aside__btn:hover, .sudbed-cta:hover, .cta:hover,
.sudbed-hero__cta:hover, .sb-footer-cta__btn:hover {
    background-color: var(--sb-accent-hover) !important;
    border-color: var(--sb-accent-hover) !important;
    color: #FFFFFF !important;
}

/* Boutons fantômes / outline (texte accent sur fond blanc) */
.btn--ghost, .button.ghost, .ghost,
a.ghost, .sudbed-hero__alt {
    background-color: transparent !important;
    color: var(--sb-accent) !important;
    border: 1px solid var(--sb-accent) !important;
}
.sudbed-hero__alt * { color: inherit !important; }

/* ==========================================================================
   Hero accueil split (image gauche / contenu droite sur fond blanc)
   On RESPECTE le design original : pas d'overlay, texte foncé sur blanc.
   ========================================================================== */
.sudbed-hero { position: relative; }
/* Pas d'overlay sur l'image */
.sudbed-hero .sudbed-hero__media::after,
.sudbed-hero .sudbed-hero__media::before { content: none !important; }
.sudbed-hero__content { background: #FFFFFF !important; }
.sudbed-hero__eyebrow { color: var(--sb-accent) !important; text-shadow: none !important; }
.sudbed-hero__title { color: #1a2329 !important; text-shadow: none !important; }
.sudbed-hero__title em { color: var(--sb-accent) !important; font-family: var(--font-display) !important; font-style: normal; }
.sudbed-hero__subtitle { color: #4a5860 !important; text-shadow: none !important; opacity: 1 !important; }
.sudbed-hero__cta {
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border: 1px solid var(--sb-accent) !important;
    border-radius: 6px !important;
    padding: 14px 28px !important;
    font-weight: 600;
}
.sudbed-hero__cta:hover { background: var(--sb-accent-hover) !important; color: #FFFFFF !important; }
.sudbed-hero__alt {
    background: transparent !important;
    color: #1a2329 !important;
    border: 1.5px solid var(--sb-accent) !important;
    border-radius: 6px !important;
    padding: 12px 22px !important;
    font-weight: 600;
    text-shadow: none !important;
    text-decoration: none !important;
}
.sudbed-hero__alt:hover {
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border-color: var(--sb-accent) !important;
}
.sudbed-hero__alt-line { display: none !important; }

/* ==========================================================================
   Bandeau Newsletter compact (au-dessus de sb-footer-cta) — aligné sur la
   typo et les couleurs du bloc « Dormez mieux ».
   ========================================================================== */
.sb-newsletter {
    background: #F9FAFB;
    padding: 18px 24px;
    margin-bottom: 0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.04);
}
.sb-footer-cta { margin-top: 0 !important; }
.sb-newsletter + .sb-footer-cta { margin-top: 0 !important; }

.sb-newsletter__form {
    max-width: 1240px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 24px;
    color: #1a1a1a;
}
.sb-newsletter__label {
    margin: 0;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #009ABF;
    font-weight: 600;
    flex: 0 1 auto;
}
.sb-newsletter__radios {
    display: inline-flex;
    gap: 16px;
    font-size: 13px;
}
.sb-newsletter__radios label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    color: #4a4a4a;
}
.sb-newsletter__radios input[type="radio"] {
    accent-color: #009ABF;
    margin: 0;
}
.sb-newsletter__row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 1 380px;
    min-width: 0;
}
.sb-newsletter__row input[type="email"] {
    flex: 1;
    min-width: 0;
    padding: 10px 16px;
    font-size: 13px;
    border: 1px solid rgba(0,0,0,0.12);
    border-radius: 999px;
    background: #fff;
    color: #1a1a1a;
    outline: none;
    transition: border-color .15s;
}
.sb-newsletter__row input[type="email"]:focus { border-color: #009ABF; }
.sb-newsletter__row button {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: #009ABF;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 13px;
    font-weight: 600;
    padding: 10px 22px;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    transition: background .18s ease, transform .18s ease;
}
.sb-newsletter__row button:hover { background: #007a9a; transform: translateY(-1px); }
.sb-newsletter__row button[disabled] { opacity: .6; cursor: progress; transform: none; }
.sb-newsletter__hp { position: absolute; left: -9999px; top: -9999px; height: 0; width: 0; opacity: 0; }
.sb-newsletter__feedback {
    flex: 1 1 100%;
    margin: 0;
    font-size: 12px;
    color: #4a4a4a;
    text-align: center;
    min-height: 0;
}
.sb-newsletter__feedback.is-success { color: #007a55; }
.sb-newsletter__feedback.is-error { color: #b91c1c; }
@media (max-width: 720px) {
    .sb-newsletter { padding: 16px 20px; }
    .sb-newsletter__form { gap: 10px 16px; }
    .sb-newsletter__row { flex: 1 1 100%; }
}

/* ==========================================================================
   CTA "Dormez mieux — enfin." (sb-footer-cta) : un seul bouton avec texte
   ========================================================================== */
.sb-footer-cta { background-color: var(--sb-bg-2) !important; }
.sb-footer-cta__eyebrow { color: var(--sb-accent) !important; }
.sb-footer-cta__title, .sb-footer-cta__lead { color: var(--sb-text) !important; }
.sb-footer-cta__title em { color: var(--sb-accent) !important; }
.sb-footer-cta__btn,
.sb-footer-cta__btn span,
.sb-footer-cta__btn svg { color: #FFFFFF !important; fill: currentColor !important; stroke: currentColor !important; }
.sb-footer-cta__btn { display: inline-flex; align-items: center; gap: .5rem; padding: 14px 22px; border-radius: 999px; }

/* ==========================================================================
   Cartes / blocs / sections
   ========================================================================== */
.sb-card, .card, .sudbed-card, article.card {
    background-color: var(--sb-bg-1) !important;
    color: var(--sb-text) !important;
    border-color: var(--sb-chrome-bg) !important;
}
.sb-aside { background-color: var(--sb-bg-3) !important; color: var(--sb-text) !important; }

/* ==========================================================================
   Cartes produits / déstockage : titres, prix barrés lisibles, CTA panier
   ========================================================================== */
.sb-product-card, .product-card, .destockage-card,
.product-card a, .sb-product-card a {
    color: var(--sb-text);
}
.product-card .price, .sb-product-card .price,
.product-card__price, .destockage-card__price { color: var(--sb-accent) !important; }
.product-card .price--old, .sb-product-card .price--old,
.product-card__price-old, .destockage-card__price-old, del, .price del {
    color: rgba(63,63,63,0.55) !important;
    text-decoration: line-through;
}
/* CTA dans une carte : doit avoir un texte/icone visible */
.product-card .btn,
.product-card a.cta,
.sb-product-card .btn,
.destockage-card .btn,
.destockage-card a.cta {
    color: #FFFFFF !important;
    background: var(--sb-accent) !important;
    min-height: 44px;
    padding: 10px 18px;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.product-card .btn:empty::after,
.product-card a.cta:empty::after,
.destockage-card .btn:empty::after,
.destockage-card a.cta:empty::after { content: "Voir la fiche"; color:#FFFFFF; }

/* Badge promo (-27% etc) : palette ne le permet pas, on neutralise en accent */
.product-card .badge, .product-card__badge,
.sb-product-card .badge, .destockage-card .badge,
.badge--promo, .badge--discount {
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
}

/* ==========================================================================
   Champs de formulaire
   ========================================================================== */
input, select, textarea, .wpforms-field input, .wpforms-field textarea, .wpforms-field select {
    background-color: var(--sb-bg-1) !important;
    color: var(--sb-text) !important;
    border: 1px solid var(--sb-chrome-bg) !important;
}
input:focus, select:focus, textarea:focus { border-color: var(--sb-accent) !important; outline-color: var(--sb-accent) !important; }
::placeholder { color: rgba(63,63,63,0.55) !important; }

/* Boutons submit forms : assurer texte blanc */
.wpforms-submit, .wpforms-submit-container button, button.wpforms-submit {
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border: 1px solid var(--sb-accent) !important;
}

/* ==========================================================================
   Séparateurs, badges, FAQ, sliders
   ========================================================================== */
hr, .sb-card__rule { border-color: var(--sb-chrome-bg) !important; background: var(--sb-chrome-bg) !important; }
.badge, .sb-badge, .tag { background: var(--sb-bg-3); color: var(--sb-accent); border: 1px solid var(--sb-chrome-bg); }

.sb-faq, .faq, details { background-color: var(--sb-bg-1); color: var(--sb-text); border-color: var(--sb-chrome-bg); }
.sb-faq summary, details summary { color: var(--sb-text); }
.sb-faq summary:hover, details summary:hover { color: var(--sb-accent); }

.swiper-pagination-bullet-active { background: var(--sb-accent) !important; }
.swiper-button-next, .swiper-button-prev { color: var(--sb-accent) !important; }

/* Mobile bar */
.sudbed-mobile-bar { background: var(--sb-bg-1) !important; border-top-color: var(--sb-chrome-bg) !important; }
.sudbed-mobile-bar__item { color: var(--sb-text) !important; border-left-color: var(--sb-chrome-bg) !important; }
.sudbed-mobile-bar__item--cta,
.sudbed-mobile-bar__item--cta * { background: var(--sb-accent) !important; color: #FFFFFF !important; fill: #FFFFFF !important; stroke: #FFFFFF !important; }
.sudbed-mobile-bar__item--cta:active { background: var(--sb-accent-hover) !important; }

/* ==========================================================================
   Visite virtuelle / showroom : panneaux et compteurs lisibles
   ========================================================================== */
.sb-showroom, .showroom, .visite-virtuelle { color: var(--sb-text); }
/* Panneau sombre (10 chambres configurées) : palette interdit foncé hors texte → on remet en accent */
.sb-showroom .stat, .showroom .stat,
.sb-showroom__stat, .showroom__stat,
[class*="chambres-configurees"], [class*="counter--dark"] {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
}
.sb-showroom .stat *, .showroom .stat *,
.sb-showroom__stat *, .showroom__stat * { color: #FFFFFF !important; }

/* ==========================================================================
   Suppression espaces vides / blocs vides parasites
   ========================================================================== */
.sb-formpage main:empty,
.sb-formpage .sb-card + div:empty,
.sb-formpage .sb-card ~ section:empty,
.sb-formpage .sb-card ~ div:empty,
.sb-formpage__grid > div:empty,
.sb-formpage__wrap > div:empty,
.sb-formpage + div:empty,
.sb-formpage + section:empty,
main.sb-formpage + div:empty,
main.sb-formpage ~ div:empty,
.sb-formpage ~ .wp-block-group:empty,
.entry-content > p:empty,
.entry-content > div:empty,
.wp-block-group:empty,
.wp-block-columns:empty,
.wp-block-column:empty {
    display: none !important;
}
.sb-formpage { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.sb-formpage + .sb-footer-cta,
main.sb-formpage + .sb-footer-cta { margin-top: 0 !important; }

/* Neutralise dark mode résiduel */
html.dark, html.dark body { background-color: var(--sb-bg-1) !important; color: var(--sb-text) !important; color-scheme: light; }

/* Black/white inline styles → palette */
[style*="color: #000"], [style*="color:#000"], [style*="color: black"] { color: var(--sb-text) !important; }

/* ==========================================================================
   P1 — Passe corrective globale visibilité (logos, CTA, hero, splash, cartes)
   ========================================================================== */

/* 1) Logo dans le header : ne JAMAIS prendre le fond accent au survol.
   Le <a> qui enveloppe le SVG du logo héritait de nav a:hover -> bg accent,
   ce qui peignait des rectangles bleus derrière les zones transparentes du SVG. */
nav[role="navigation"] a[aria-label^="Accueil"],
nav[role="navigation"] a[aria-label^="Accueil"]:hover,
nav[role="navigation"] a[aria-label^="Accueil"]:focus,
nav[role="navigation"] a[aria-label^="Accueil"]:active {
    background-color: transparent !important;
    color: inherit !important;
    box-shadow: none !important;
}
nav[role="navigation"] a[aria-label^="Accueil"] svg path { transition: opacity .2s ease; }
nav[role="navigation"] a[aria-label^="Accueil"]:hover svg { opacity: .85; }

/* 2) Splash page-accueil : les <button> Particulier / Professionnel
   apparaissaient parfois sans libellé visible (héritages de couleur).
   Force texte blanc + background accent stables, et état hover lisible. */
#sudbed-overlay button,
#sudbed-overlay #particulier-access-btn,
#sudbed-overlay #pro-access-btn {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border: 2px solid #FFFFFF !important;
    text-shadow: 0 1px 6px rgba(0,0,0,.35);
}
#sudbed-overlay button:hover,
#sudbed-overlay #particulier-access-btn:hover,
#sudbed-overlay #pro-access-btn:hover {
    background-color: #FFFFFF !important;
    color: var(--sb-accent) !important;
    text-shadow: none;
}
#sudbed-overlay h1,
#sudbed-overlay p { color: #FFFFFF !important; opacity: 1 !important; text-shadow: 0 2px 12px rgba(0,0,0,.55); }

/* 3) Hero d'accueil — split image gauche / contenu droite sur fond clair.
   Reste géré dans la section principale ligne 184. */

/* 4) Cartes "Nos offres" page Particulier : le <a> wrapper héritait de
   `a { color: var(--sb-accent) }`, ce qui rendait le titre/lien bleu sur fond bleu.
   On force texte blanc dans toute la carte gradient. */
a.group[class*="from-[#009ABF]"],
a.group[class*="from-[#3F3F3F]"] {
    color: #FFFFFF !important;
}
a.group[class*="from-[#009ABF]"] *,
a.group[class*="from-[#3F3F3F]"] * { color: #FFFFFF !important; }
a.group[class*="from-[#009ABF]"]:hover,
a.group[class*="from-[#3F3F3F]"]:hover { color: #FFFFFF !important; }
a.group[class*="from-[#009ABF]"] .text-white\/80,
a.group[class*="from-[#3F3F3F]"] .text-white\/80 { color: rgba(255,255,255,.92) !important; }

/* 5) Boutons "inline-block bg-[#009ABF]" génériques (pages chambres,
   références "Demander un devis", showroom, surmesure, etc.) :
   la règle `a { color: accent }` rendait le texte bleu sur fond bleu. */
a.inline-block[class*="bg-[#009ABF]"],
a[class*="bg-[#009ABF]"][class*="text-white"],
a[class*="bg-sudbed-accent"][class*="text-white"] {
    color: #FFFFFF !important;
}
a.inline-block[class*="bg-[#009ABF]"]:hover,
a[class*="bg-[#009ABF]"][class*="text-white"]:hover { color: #FFFFFF !important; }

/* 6) Liens génériques sur fond clair : garantir un contraste suffisant
   et un état hover net (souligné + accent foncé). */
main a:not([class*="bg-"]):not(.btn):not(.button):not(.sudbed-cta):not(.cta):not(.sudbed-hero__cta):not(.sudbed-hero__alt):not([role="menuitem"]) {
    color: var(--sb-accent);
    text-decoration-color: rgba(0,154,191,.45);
    text-underline-offset: 3px;
}
main a:not([class*="bg-"]):not(.btn):not(.button):not(.sudbed-cta):not(.cta):not(.sudbed-hero__cta):not(.sudbed-hero__alt):not([role="menuitem"]):hover {
    color: var(--sb-accent-hover);
    text-decoration: underline;
}

/* 7) Titres / paragraphes dark-mode laissés dans le markup
   (dark:text-white, text-gray-600 dark:text-gray-300, etc.) :
   on force des valeurs lisibles pour le mode clair. */
.dark\:text-white { color: var(--sb-text); }
h1.dark\:text-white, h2.dark\:text-white, h3.dark\:text-white,
h4.dark\:text-white, h5.dark\:text-white, h6.dark\:text-white { color: var(--sb-text) !important; }

/* 8) "En savoir plus" dans cartes gradient : déjà sur fond coloré, on
   garantit visibilité et soulignement subtil au hover du group. */
.group:hover .group-hover\:gap-3 { gap: .75rem; }
a.group span.inline-flex { color: #FFFFFF !important; }

/* 9) Boutons vides (rendu sans label visible côté éditeur) : fallback. */
.btn:empty::after,
.button:empty::after,
a.inline-block[class*="bg-[#009ABF]"]:empty::after { content: "En savoir plus"; color: #FFFFFF; }

/* 10) Focus visible accessible partout */
a:focus-visible, button:focus-visible, [role="button"]:focus-visible {
    outline: 2px solid var(--sb-accent) !important;
    outline-offset: 2px;
}

/* ==========================================================================
   P1bis — Corrections supplémentaires (header, hero alt, splash, .sb-btn)
   ========================================================================== */

/* A) Header : texte NOIR par défaut, BLANC uniquement au survol/actif.
   On retire le texte blanc permanent qui rendait le menu illisible. */
header nav[role="navigation"] a,
header nav[role="navigation"] button,
nav[role="navigation"] a,
nav[role="navigation"] button,
.mobile-submenu a,
.mobile-submenu-btn {
    color: var(--sb-text) !important;
    background-color: transparent !important;
}
nav[role="navigation"] a:hover,
nav[role="navigation"] a:focus,
nav[role="navigation"] a.current,
nav[role="navigation"] a[aria-current="page"],
nav[role="navigation"] .current-menu-item > a,
nav[role="navigation"] .current_page_item > a,
nav[role="navigation"] button:hover,
nav[role="navigation"] button:focus,
.mobile-submenu a:hover,
.mobile-submenu a:focus,
.mobile-submenu-btn:hover,
.mobile-submenu-btn:focus {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
}
nav[role="navigation"] a:hover *,
nav[role="navigation"] a:focus *,
nav[role="navigation"] a.current *,
nav[role="navigation"] a[aria-current="page"] *,
nav[role="navigation"] .current-menu-item > a *,
nav[role="navigation"] .current_page_item > a *,
nav[role="navigation"] button:hover *,
nav[role="navigation"] button:focus * { color: #FFFFFF !important; }

/* Logo wrapper : exception, jamais de fond bleu */
nav[role="navigation"] a[aria-label^="Accueil"],
nav[role="navigation"] a[aria-label^="Accueil"]:hover,
nav[role="navigation"] a[aria-label^="Accueil"]:focus {
    background-color: transparent !important;
}

/* B) Splash overlay : éviter blanc-sur-blanc au survol.
   Hover = fond blanc + texte accent (jamais blanc/blanc). */
#sudbed-overlay #particulier-access-btn,
#sudbed-overlay #pro-access-btn { color: #FFFFFF !important; }
#sudbed-overlay #particulier-access-btn:hover,
#sudbed-overlay #pro-access-btn:hover,
#sudbed-overlay #particulier-access-btn:focus,
#sudbed-overlay #pro-access-btn:focus {
    background-color: #FFFFFF !important;
    color: var(--sb-accent) !important;
    border-color: #FFFFFF !important;
    text-shadow: none !important;
}

/* C) Hero alt button — désormais sur fond blanc (texte foncé, hover bleu).
   Géré dans la section principale ligne 184. Bloc neutralisé. */

/* D) Front-page editorial : citation grise sur fond accent → blanc lisible. */
.sb-edito__quote,
.sb-edito__quote * { color: #FFFFFF !important; }
.sb-edito__quote blockquote p { color: #FFFFFF !important; opacity: 1 !important; }
.sb-edito__quote cite { color: rgba(255,255,255,.85) !important; font-style: italic; }

/* E) .sb-btn (front-page) : aucun style défini → on les pose proprement.
   Primaire = fond accent + texte blanc (toujours).
   Ghost = outline accent + texte accent ; hover = remplit accent + texte blanc. */
.sb-btn {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: 12px 22px; border-radius: 999px;
    font-weight: 600; text-decoration: none;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
    border: 1.5px solid transparent;
}
.sb-btn--primary,
.sb-btn--primary:link,
.sb-btn--primary:visited {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border-color: var(--sb-accent) !important;
}
.sb-btn--primary:hover,
.sb-btn--primary:focus {
    background-color: var(--sb-accent-hover) !important;
    border-color: var(--sb-accent-hover) !important;
    color: #FFFFFF !important;
}
.sb-btn--ghost,
.sb-btn--ghost:link,
.sb-btn--ghost:visited {
    background-color: transparent !important;
    color: var(--sb-accent) !important;
    border-color: var(--sb-accent) !important;
}
.sb-btn--ghost:hover,
.sb-btn--ghost:focus {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border-color: var(--sb-accent) !important;
}

/* F) .sb-link (front-page) — lien fléché lisible et souligné au hover */
.sb-link {
    color: var(--sb-accent) !important;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex; align-items: center; gap: .35rem;
}
.sb-link:hover { color: var(--sb-accent-hover) !important; text-decoration: underline; text-underline-offset: 4px; }

/* G) Stickybar : boutons lisibles */
.sb-stickybar__btn--primary { background: var(--sb-accent) !important; color: #FFFFFF !important; }
.sb-stickybar__btn--primary:hover { background: var(--sb-accent-hover) !important; color: #FFFFFF !important; }
.sb-stickybar__btn--ghost { background: transparent !important; color: var(--sb-accent) !important; border: 1.5px solid var(--sb-accent) !important; }
.sb-stickybar__btn--ghost:hover { background: var(--sb-accent) !important; color: #FFFFFF !important; }

/* ==========================================================================
   P1ter — Fix racine : variable --sudbed-light-text dupliquée dans output.css
   (Tailwind déclare #e0e0e0 qui gagne et rend tout le texte du header gris clair).
   On force la valeur correcte au niveau :root et html, avec spécificité max.
   ========================================================================== */
:root,
html, html.dark, html[data-theme],
body {
    --sudbed-light-text: #3f3f3f !important;
    --sudbed-light-bg:   #F2F2F2 !important;
    --sudbed-light-card: #FFFFFF !important;
    --sudbed-accent:     #009ABF !important;
    --sudbed-accent-hover:#007a94 !important;
    --sudbed-footer:     #F2F2F2 !important;
}
.text-sudbed-light-text { color: #3f3f3f !important; }
.bg-sudbed-light-bg     { background-color: #F2F2F2 !important; }

/* Header nav : double sécurité — texte foncé en état normal partout. */
nav.bg-sudbed-light-bg a,
nav.bg-sudbed-light-bg button,
nav[aria-label="Navigation principale"] a,
nav[aria-label="Navigation principale"] button,
nav[aria-label="Navigation principale professionnels"] a,
nav[aria-label="Navigation principale professionnels"] button {
    color: #3f3f3f !important;
    background-color: transparent !important;
}
nav.bg-sudbed-light-bg a:hover,
nav.bg-sudbed-light-bg button:hover,
nav[aria-label="Navigation principale"] a:hover,
nav[aria-label="Navigation principale"] button:hover,
nav[aria-label="Navigation principale professionnels"] a:hover,
nav[aria-label="Navigation principale professionnels"] button:hover {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
}
/* Logo wrapper exception */
nav a[aria-label^="Accueil"],
nav a[aria-label^="Accueil"]:hover,
nav a[aria-label^="Accueil"]:focus {
    background-color: transparent !important;
    color: inherit !important;
}

/* ==========================================================================
   P1ter — Splash front-page.php (section #sudbed-home / #sudbed-overlay)
   Boutons = <a> Tailwind hover:bg-white hover:text-[#009ABF].
   Le texte au hover était invisible. On force texte accent au hover, blanc en normal.
   ========================================================================== */
#sudbed-home #sudbed-overlay nav a,
#sudbed-overlay nav[aria-label="Sélection du parcours"] a {
    background-color: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border: 2px solid rgba(255,255,255,.6) !important;
    text-decoration: none !important;
}
#sudbed-home #sudbed-overlay nav a:hover,
#sudbed-home #sudbed-overlay nav a:focus,
#sudbed-overlay nav[aria-label="Sélection du parcours"] a:hover,
#sudbed-overlay nav[aria-label="Sélection du parcours"] a:focus {
    background-color: #FFFFFF !important;
    color: var(--sb-accent) !important;
    border-color: #FFFFFF !important;
}
#sudbed-overlay h1, #sudbed-overlay p {
    color: #FFFFFF !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.55);
}

/* P1ter hero override neutralisé — voir gestion split clair ligne 184. */

/* ==========================================================================
   P1quater — Header NOIR garanti + Hero accueil encore plus contrasté
   ========================================================================== */

/* Header : on cible directement le markup réel (sélecteur très spécifique
   pour battre toute règle Tailwind/utility). Couleur en dur, sans variable. */
html body nav[aria-label="Navigation principale"] a,
html body nav[aria-label="Navigation principale"] button,
html body nav[aria-label="Navigation principale professionnels"] a,
html body nav[aria-label="Navigation principale professionnels"] button,
html body nav.bg-sudbed-light-bg a,
html body nav.bg-sudbed-light-bg button,
html body nav.bg-sudbed-light-bg .text-sudbed-light-text,
html body nav.bg-sudbed-light-bg [class*="text-sudbed"] {
    color: #1a2329 !important;
}
html body nav[aria-label="Navigation principale"] a:hover,
html body nav[aria-label="Navigation principale"] button:hover,
html body nav[aria-label="Navigation principale professionnels"] a:hover,
html body nav[aria-label="Navigation principale professionnels"] button:hover,
html body nav.bg-sudbed-light-bg a:hover,
html body nav.bg-sudbed-light-bg button:hover {
    color: #FFFFFF !important;
    background-color: #009ABF !important;
}
/* Logo wrapper : pas de fond bleu, pas de texte forcé */
html body nav a[aria-label^="Accueil"],
html body nav a[aria-label^="Accueil"]:hover {
    background-color: transparent !important;
}

/* Hero accueil — split image gauche/contenu droite (fond blanc, texte sombre).
   Texte foncé style éditorial QSN, sans overlay. */
.sudbed-hero { position: relative; background: #FFFFFF !important; }
.sudbed-hero .sudbed-hero__content {
    background: #FFFFFF !important;
    padding: clamp(40px, 6vw, 80px) clamp(24px, 4vw, 64px) !important;
}
.sudbed-hero .sudbed-hero__inner {
    max-width: 540px;
    width: 100%;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-radius: 0 !important;
}
.sudbed-hero .sudbed-hero__eyebrow {
    color: var(--sb-accent) !important;
    text-shadow: none !important;
    font-size: .78rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 1.5rem;
}
.sudbed-hero .sudbed-hero__title {
    color: #1a2329 !important;
    text-shadow: none !important;
    font-size: clamp(2.2rem, 4.2vw, 3.4rem);
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -0.01em;
    margin-bottom: 1.5rem;
}
.sudbed-hero .sudbed-hero__title em {
    color: var(--sb-accent) !important;
    font-family: var(--font-display) !important;
    font-style: normal;
    font-weight: 600;
}
.sudbed-hero .sudbed-hero__subtitle {
    color: #4a5860 !important;
    text-shadow: none !important;
    font-size: 1.0625rem;
    line-height: 1.7;
    margin-bottom: 2.25rem;
    max-width: 46ch;
}
.sudbed-hero .sudbed-hero__cta {
    display: inline-flex; align-items: center; gap: .5rem;
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
    padding: 14px 28px !important;
    border-radius: 4px !important;
    font-weight: 600;
    text-decoration: none !important;
    box-shadow: none !important;
    border: 1px solid var(--sb-accent) !important;
}
.sudbed-hero .sudbed-hero__cta:hover {
    background: var(--sb-accent-hover) !important;
    color: #FFFFFF !important;
}
.sudbed-hero .sudbed-hero__alt {
    display: inline-flex; align-items: center; gap: .5rem;
    background: transparent !important;
    color: #1a2329 !important;
    border: 1.5px solid var(--sb-accent) !important;
    padding: 12px 24px !important;
    border-radius: 4px !important;
    font-weight: 600;
    text-decoration: none !important;
    text-shadow: none !important;
    margin-top: 0 !important;
    backdrop-filter: none !important;
}
.sudbed-hero .sudbed-hero__alt:hover {
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border-color: var(--sb-accent) !important;
}
.sudbed-hero .sudbed-hero__alt-line { display: none !important; }
/* Pas d'overlay sur l'image */
.sudbed-hero .sudbed-hero__media::after,
.sudbed-hero .sudbed-hero__media::before { content: none !important; display: none !important; }
/* Boutons hero centrés et côte à côte */
.sudbed-hero__inner {
    text-align: center !important;
    margin: 0 auto !important;
}
.sudbed-hero__inner > * {
    margin-left: auto !important;
    margin-right: auto !important;
}
.sudbed-hero__inner .sudbed-hero__subtitle {
    margin-left: auto !important;
    margin-right: auto !important;
}
.sudbed-hero__cta {
    display: inline-flex !important;
    margin-right: .5rem !important;
}
.sudbed-hero__alt {
    display: inline-flex !important;
    margin-left: .5rem !important;
    margin-top: 0 !important;
}
@media (max-width: 640px) {
    .sudbed-hero__cta, .sudbed-hero__alt {
        margin: .375rem !important;
    }
}

/* Header — sécurité ultime : *toutes* les ancres descendantes héritent du style inline du <nav>. */
nav[aria-label="Navigation principale"] a:not([aria-label^="Accueil"]),
nav[aria-label="Navigation principale"] button:not([id="mobile-menu-btn"]),
nav[aria-label="Navigation principale professionnels"] a:not([aria-label^="Accueil"]),
nav[aria-label="Navigation principale professionnels"] button:not([id="mobile-menu-btn"]) {
    color: #1a2329 !important;
}
nav[aria-label="Navigation principale"] a:not([aria-label^="Accueil"]):hover,
nav[aria-label="Navigation principale"] button:not([id="mobile-menu-btn"]):hover,
nav[aria-label="Navigation principale professionnels"] a:not([aria-label^="Accueil"]):hover,
nav[aria-label="Navigation principale professionnels"] button:not([id="mobile-menu-btn"]):hover {
    color: #FFFFFF !important;
    background-color: #009ABF !important;
}

/* ==========================================================================
   P2 — Page chambre (single-chambre.php) — design premium aligné /references
   ========================================================================== */

/* Hero split sombre + slider */
.sb-chambre__hero {
    display: grid;
    grid-template-columns: 1fr;
    background: #1a2329;
    color: #FFFFFF;
    overflow: hidden;
    font-family: var(--font-sans);
}
@media (min-width: 1024px) {
    .sb-chambre__hero {
        grid-template-columns: 1fr 1fr;
        align-items: stretch;
    }
    .sb-chambre__hero-text { overflow: visible; }
    /* Image sticky pour rester visible pendant le scroll du descriptif long */
    .sb-chambre__hero-media {
        position: sticky;
        top: 0;
        height: 100svh;
        align-self: start;
    }
}
@media (max-width: 1023px) {
    .sb-chambre__hero-media { aspect-ratio: 16/10; min-height: 0; position: relative; }
}

.sb-chambre__hero-text {
    padding: clamp(56px, 7vw, 100px) clamp(28px, 5vw, 72px);
    display: flex; flex-direction: column; justify-content: center;
}
.sb-chambre__eyebrow {
    font-size: .72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #6FB7C9;
    font-weight: 600;
    margin: 0 0 1.5rem;
}
.sb-chambre__title {
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: clamp(2.2rem, 4.6vw, 3.6rem);
    line-height: 1.08;
    letter-spacing: -0.01em;
    margin: 0 0 1.5rem;
    color: #FFFFFF !important;
}
.sb-chambre__price {
    display: inline-flex; align-items: baseline; gap: .6rem;
    margin: 0 0 1.75rem;
    padding: .65rem 1.1rem;
    background: rgba(0, 154, 191, 0.16);
    border: 1px solid rgba(0, 154, 191, 0.4);
    border-radius: 999px;
    width: fit-content;
}
.sb-chambre__price-from {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: rgba(255,255,255,0.7) !important;
    font-weight: 500;
}
.sb-chambre__price-num {
    font-size: 1.5rem;
    font-weight: 700;
    color: #6FB7C9 !important;
}
.sb-chambre__lede {
    max-width: 480px;
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.78) !important;
    margin: 0 0 2rem;
    white-space: pre-line;
}
.sb-chambre__cta-row {
    display: flex; flex-wrap: wrap; gap: .75rem;
    margin: 0 0 2.5rem;
}
.sb-chambre__cta {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 13px 24px;
    border-radius: 4px;
    font-weight: 600;
    font-size: .95rem;
    text-decoration: none !important;
    border: 1.5px solid transparent;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.sb-chambre__cta--primary {
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border-color: var(--sb-accent) !important;
}
.sb-chambre__cta--primary:hover {
    background: var(--sb-accent-hover) !important;
    border-color: var(--sb-accent-hover) !important;
    color: #FFFFFF !important;
}
.sb-chambre__cta--ghost {
    background: transparent !important;
    color: #FFFFFF !important;
    border-color: rgba(255,255,255,0.55) !important;
}
.sb-chambre__cta--ghost:hover {
    background: #FFFFFF !important;
    color: #1a2329 !important;
    border-color: #FFFFFF !important;
}
.sb-chambre__cta--ghost-dark {
    background: transparent !important;
    color: #1a2329 !important;
    border-color: #1a2329 !important;
}
.sb-chambre__cta--ghost-dark:hover {
    background: #1a2329 !important;
    color: #FFFFFF !important;
}
.sb-chambre__crumbs {
    margin-top: auto;
    padding-top: 2rem;
    font-size: .72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45) !important;
}
.sb-chambre__crumbs a {
    color: rgba(255,255,255,0.55) !important;
    text-decoration: none !important;
}
.sb-chambre__crumbs a:hover { color: #FFFFFF !important; }
.sb-chambre__crumbs .sep { color: rgba(255,255,255,0.3); margin: 0 .5rem; }

/* Slider images */
.sb-chambre__hero-media {
    position: relative;
    background: #c5d8df;
    min-height: 320px;
    overflow: hidden;
}
.sb-chambre__slide {
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity .7s ease;
}
.sb-chambre__slide.is-active { opacity: 1; }
.sb-chambre__slide img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.sb-chambre__slide-caption {
    position: absolute; right: 18px; bottom: 18px;
    font-family: "Geist Mono", ui-monospace, monospace;
    font-size: .72rem;
    color: rgba(255,255,255,0.92) !important;
    background: rgba(11, 18, 24, 0.6);
    padding: .3rem .7rem;
    border-radius: 999px;
    z-index: 3;
    letter-spacing: .04em;
}
.sb-chambre__nav {
    position: absolute; top: 50%;
    transform: translateY(-50%);
    width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,0.9) !important;
    border: 0; border-radius: 999px;
    cursor: pointer;
    color: #0b1218 !important;
    z-index: 4;
    box-shadow: 0 6px 18px rgba(0,0,0,0.22);
    transition: background .2s ease, transform .2s ease;
}
.sb-chambre__nav:hover { background: #FFFFFF !important; transform: translateY(-50%) scale(1.05); }
.sb-chambre__nav svg { width: 18px; height: 18px; }
.sb-chambre__nav--prev { left: 16px; }
.sb-chambre__nav--next { right: 16px; }
.sb-chambre__dots {
    position: absolute; bottom: 18px; left: 50%;
    transform: translateX(-50%);
    display: flex; gap: 8px; z-index: 4;
}
.sb-chambre__dots button {
    width: 9px; height: 9px;
    border-radius: 999px;
    background: rgba(255,255,255,0.55) !important;
    border: 0; padding: 0;
    cursor: pointer;
    transition: background .25s ease, width .25s ease;
}
.sb-chambre__dots button.is-active {
    background: #FFFFFF !important;
    width: 28px;
}

/* Section "Caractéristiques" */
.sb-chambre__details {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(40px, 5vw, 80px);
    padding: clamp(64px, 9vw, 120px) clamp(28px, 5vw, 80px);
    background: #FBF8F1;
    color: #1a2329;
    font-family: var(--font-sans);
}
@media (min-width: 1024px) {
    .sb-chambre__details {
        grid-template-columns: 1.4fr 1fr;
        align-items: start;
    }
}
.sb-chambre__details-eyebrow {
    font-size: .72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--sb-accent) !important;
    font-weight: 600;
    margin: 0 0 1.25rem;
}
.sb-chambre__details-title {
    font-size: clamp(1.8rem, 3.4vw, 2.6rem);
    line-height: 1.15;
    font-weight: 600;
    margin: 0 0 1.25rem;
    color: #1a2329 !important;
    letter-spacing: -0.005em;
}
.sb-chambre__details-title em {
    font-family: var(--font-display) !important;
    font-style: normal;
    color: var(--sb-accent) !important;
    font-weight: 600;
}
.sb-chambre__details-lede {
    font-size: 1.0625rem;
    line-height: 1.75;
    color: #4a5860 !important;
    max-width: 600px;
    margin: 0 0 2rem;
}
.sb-chambre__features {
    list-style: none;
    margin: 0; padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
    max-width: 560px;
}
@media (min-width: 600px) {
    .sb-chambre__features { grid-template-columns: 1fr 1fr; }
}
.sb-chambre__features li {
    position: relative;
    padding: .85rem 1rem .85rem 2.6rem;
    background: #FFFFFF;
    border-radius: 6px;
    box-shadow: 0 1px 0 rgba(26,35,41,0.06), 0 1px 3px rgba(26,35,41,0.04);
    color: #1a2329 !important;
    font-size: .95rem;
    font-weight: 500;
}
.sb-chambre__features li::before {
    content: "";
    position: absolute;
    left: 1rem; top: 50%;
    transform: translateY(-50%);
    width: 18px; height: 18px;
    border-radius: 999px;
    background: var(--sb-accent);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 12px 12px;
}

.sb-chambre__details-aside {
    display: flex; flex-direction: column;
    gap: 1.25rem;
}
.sb-chambre__qr {
    display: flex; gap: 1.25rem;
    padding: 1.5rem;
    background: #FFFFFF;
    border-radius: 8px;
    border: 1px solid rgba(26,35,41,0.08);
}
.sb-chambre__qr img { border-radius: 6px; flex-shrink: 0; }
.sb-chambre__qr-eyebrow {
    font-size: .7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--sb-accent) !important;
    font-weight: 600;
    margin: 0 0 .5rem;
}
.sb-chambre__qr-text p:not(.sb-chambre__qr-eyebrow) {
    color: #4a5860 !important;
    font-size: .9rem; line-height: 1.55;
    margin: 0;
}
.sb-chambre__contact-card {
    padding: 1.75rem;
    background: #1a2329;
    border-radius: 8px;
    color: #FFFFFF;
}
.sb-chambre__contact-eyebrow {
    font-size: .72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #6FB7C9 !important;
    font-weight: 600;
    margin: 0 0 .75rem;
}
.sb-chambre__contact-text {
    color: rgba(255,255,255,0.78) !important;
    font-size: .95rem; line-height: 1.6;
    margin: 0 0 1.25rem;
}
.sb-chambre__contact-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 12px 22px;
    background: var(--sb-accent) !important;
    color: #FFFFFF !important;
    border-radius: 4px;
    font-weight: 600;
    font-size: .92rem;
    text-decoration: none !important;
    transition: background .2s ease;
}
.sb-chambre__contact-btn:hover { background: var(--sb-accent-hover) !important; color: #FFFFFF !important; }

/* CTA final bande blanche */
.sb-chambre__cta-band {
    padding: clamp(64px, 9vw, 120px) clamp(28px, 5vw, 80px);
    background: #FFFFFF;
    text-align: center;
    font-family: var(--font-sans);
    margin-bottom: 0 !important;
}
/* Pas de gap entre la bande CTA chambre et le footer CTA suivant */
.sb-chambre__cta-band + .sb-footer-cta,
body.single-chambre .sb-footer-cta { margin-top: 0 !important; }
body.single-chambre main + * { margin-top: 0 !important; }
.sb-chambre__cta-band-inner {
    max-width: 720px; margin: 0 auto;
}
.sb-chambre__cta-band h2 {
    font-size: clamp(1.8rem, 3.6vw, 2.6rem);
    font-weight: 600;
    margin: 0 0 1rem;
    color: #1a2329 !important;
    line-height: 1.15;
}
.sb-chambre__cta-band p {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #4a5860 !important;
    margin: 0 0 2rem;
}
.sb-chambre__cta-band-actions {
    display: flex; flex-wrap: wrap;
    gap: .75rem;
    justify-content: center;
}

/* ==========================================================================
   Variantes pour les pages "Bons plans" / déstockage
   ========================================================================== */
.sb-chambre__price-old {
    margin-left: .6rem;
    font-size: 1rem;
    color: rgba(255,255,255,0.45) !important;
    text-decoration: line-through;
    font-weight: 500;
}
.sb-chambre__lede--rich { white-space: normal !important; }
.sb-chambre__lede--rich p { margin: 0 0 .9rem; line-height: 1.7; color: rgba(255,255,255,0.78) !important; }
.sb-chambre__lede--rich strong, .sb-chambre__lede--rich b { color: #FFFFFF !important; font-weight: 600; }
.sb-chambre__lede--rich ul, .sb-chambre__lede--rich ol {
    margin: 0 0 1rem 1.25rem; padding: 0;
    color: rgba(255,255,255,0.78) !important;
}
.sb-chambre__lede--rich a {
    color: #6FB7C9 !important;
    text-decoration: underline; text-underline-offset: 3px;
}
.sb-chambre__lede--rich a:hover { color: #FFFFFF !important; }
.sb-chambre__trust {
    display: inline-flex; align-items: center; gap: .5rem;
    margin: 0 0 1.5rem;
    color: rgba(255,255,255,0.55) !important;
    font-size: .85rem;
    font-weight: 500;
}
.sb-chambre__trust svg {
    width: 18px; height: 18px;
    color: #6FB7C9;
    flex-shrink: 0;
}
.sb-chambre__badge {
    position: absolute;
    top: 18px; left: 18px;
    z-index: 5;
    background: var(--sb-accent);
    color: #FFFFFF;
    font-weight: 700;
    font-size: .92rem;
    padding: .5rem .9rem;
    border-radius: 6px;
    letter-spacing: .03em;
    box-shadow: 0 6px 18px rgba(0,154,191,0.35);
}
