/*
 * Safe Site Core — Riddle Room
 * Correctif SSU-B003-V1
 *
 * Customify 0.4.24 applique deux couches de fond distinctes :
 *   .site-content { background-color: var(--customify-base, #fff); }
 *   .site-content .content-area { background-color: var(--customify-base, #fff); }
 *
 * Le lot précédent neutralisait uniquement la première. La zone blanche
 * visible sur l'accueil provient de .content-area, qui couvre la zone centrale.
 *
 * On rend donc transparentes les deux couches du thème afin de laisser voir
 * le décor / effet de pluie situé derrière, sans toucher aux fonds propres
 * des sections, cartes, formulaires ou widgets.
 */
.site-content,
.site-content .content-area {
    background-color: transparent !important;
}

/* =========================================================
   SSU-B009-V1 — HARMONISATION VISUELLE RIDDLE ROOM
   Le hero principal de l'accueil n'est pas modifié.
========================================================= */

/* ---------- FAQ / ACCORDÉONS ---------- */
.rrx-acc {
    position: relative !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 106, 0, 0.18) !important;
    border-radius: 18px !important;
    background:
        radial-gradient(circle at 16% 0%, rgba(255, 106, 0, 0.07), transparent 42%),
        linear-gradient(180deg, rgba(18, 6, 0, 0.76), rgba(6, 2, 0, 0.94)) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.02),
        inset 0 0 20px rgba(255,106,0,0.035),
        0 12px 30px rgba(0,0,0,0.22) !important;
    transition: border-color .22s ease, box-shadow .22s ease !important;
}

.rrx-acc + .rrx-acc {
    margin-top: 12px !important;
}

.rrx-acc:hover,
.rrx-acc.open {
    border-color: rgba(255, 154, 60, 0.42) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.025),
        inset 0 0 24px rgba(255,106,0,0.045),
        0 16px 36px rgba(0,0,0,0.28) !important;
}

.rrx-acc-btn,
.rrx-acc-btn.rrx-btnlike {
    position: relative !important;
    width: 100% !important;
    min-height: 62px !important;
    margin: 0 !important;
    padding: 17px 58px 17px 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255,244,235,0.96) !important;
    box-shadow: none !important;
    font: inherit !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
    line-height: 1.45 !important;
    text-transform: none !important;
    cursor: pointer !important;
    transition: color .2s ease, background .2s ease !important;
}

.rrx-acc-btn:hover,
.rrx-acc-btn.rrx-btnlike:hover {
    color: #ffcfaa !important;
    background: linear-gradient(90deg, rgba(255,106,0,.075), rgba(255,106,0,.015)) !important;
    transform: none !important;
}

.rrx-acc-btn::after {
    content: "+" !important;
    position: absolute !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 32px !important;
    height: 32px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 11px !important;
    border: 1px solid rgba(255,154,60,.32) !important;
    background: linear-gradient(180deg, rgba(32,11,0,.88), rgba(10,4,0,.96)) !important;
    color: #ffad68 !important;
    box-shadow:
        inset 0 0 12px rgba(255,106,0,.06),
        0 0 12px rgba(255,106,0,.05) !important;
    font-size: 1.35rem !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}

.rrx-acc-btn[aria-expanded="true"] {
    color: #ffd6b5 !important;
    background: linear-gradient(90deg, rgba(255,106,0,.09), rgba(255,106,0,.018)) !important;
}

.rrx-acc-btn[aria-expanded="true"]::after {
    content: "−" !important;
    border-color: rgba(255,176,110,.56) !important;
    color: #ffe2cb !important;
}

.rrx-acc-btn:focus-visible {
    outline: 2px solid rgba(255,154,60,.80) !important;
    outline-offset: -3px !important;
}

.rrx-acc-body {
    padding-left: 20px !important;
    padding-right: 20px !important;
    color: rgba(243,243,243,.88) !important;
    line-height: 1.72 !important;
}

.rrx-acc.open .rrx-acc-body,
.rrx-acc-btn[aria-expanded="true"] + .rrx-acc-body {
    padding-top: 16px !important;
    padding-bottom: 19px !important;
    border-top: 1px solid rgba(255,106,0,.10) !important;
    background: rgba(0,0,0,.16) !important;
}

.rrx-acc-body > :first-child { margin-top: 0 !important; }
.rrx-acc-body > :last-child { margin-bottom: 0 !important; }
.rrx-acc-body strong { color: #ffd4b1 !important; }

/* ---------- RÉSERVATIONS : ancien style RR -> style premium ---------- */
body.page-id-622 .rr-centres {
    max-width: 1180px !important;
    margin: 28px auto 34px !important;
    padding: clamp(22px,4vw,38px) !important;
    border: 1px solid rgba(255,106,0,.18) !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 15% 0%, rgba(255,106,0,.09), transparent 42%),
        linear-gradient(180deg, rgba(12,5,0,.84), rgba(0,0,0,.95)) !important;
    box-shadow:
        0 18px 42px rgba(0,0,0,.36),
        inset 0 0 0 1px rgba(255,255,255,.02),
        inset 0 0 24px rgba(255,106,0,.04) !important;
}

body.page-id-622 .rr-title {
    color: #ff9a3c !important;
    font-size: clamp(1.65rem,3vw,2.15rem) !important;
    text-transform: uppercase !important;
    letter-spacing: .035em !important;
    text-shadow: 0 0 12px rgba(255,106,0,.14) !important;
}

body.page-id-622 .rr-card {
    max-width: 780px !important;
    margin: 0 auto 16px !important;
    padding: 19px 20px !important;
    border: 1px solid rgba(255,106,0,.16) !important;
    border-radius: 18px !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,106,0,.065), transparent 52%),
        linear-gradient(180deg, rgba(18,6,0,.76), rgba(6,2,0,.94)) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.02),
        0 12px 28px rgba(0,0,0,.22) !important;
}

body.page-id-622 .rr-h3 { color: #ffd7b7 !important; }
body.page-id-622 .rr-text {
    color: rgba(243,243,243,.84) !important;
    line-height: 1.7 !important;
}

body.page-id-622 .rr-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 12px 20px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,106,0,.58) !important;
    background: linear-gradient(180deg, rgba(31,10,0,.92), rgba(10,4,0,.97)) !important;
    color: #ffd8bb !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.28) !important;
    font-weight: 700 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
}

body.page-id-622 .rr-btn:hover {
    border-color: rgba(255,176,110,.94) !important;
    color: #fff1e5 !important;
    box-shadow:
        0 0 14px rgba(255,106,0,.12),
        0 12px 26px rgba(0,0,0,.32) !important;
}

body.page-id-622 .forescape {
    display: block !important;
    max-width: 1180px !important;
    margin: 0 auto 28px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,106,0,.14) !important;
    background: rgba(5,2,0,.76) !important;
    box-shadow:
        0 18px 40px rgba(0,0,0,.30),
        inset 0 0 0 1px rgba(255,255,255,.015) !important;
}

/* ---------- QUOI FAIRE À NICE : ancienne charte rouge -> Riddle ---------- */
body.page-id-18527 .elementor-widget-html section {
    box-sizing: border-box !important;
    max-width: 1180px !important;
    margin: 0 auto 24px !important;
    padding: clamp(22px,4vw,40px) !important;
    border: 1px solid rgba(255,106,0,.18) !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 15% 0%, rgba(255,106,0,.085), transparent 42%),
        linear-gradient(180deg, rgba(12,5,0,.84), rgba(0,0,0,.95)) !important;
    color: #f3f3f3 !important;
    box-shadow:
        0 18px 42px rgba(0,0,0,.36),
        inset 0 0 0 1px rgba(255,255,255,.02),
        inset 0 0 24px rgba(255,106,0,.035) !important;
}

body.page-id-18527 .elementor-widget-html section[style*="ARP.gif"] {
    background:
        linear-gradient(rgba(0,0,0,.62), rgba(0,0,0,.84)),
        url("https://www.riddleroom.fr/wp-content/uploads/ARP.gif") center/cover no-repeat !important;
    overflow: hidden !important;
}

body.page-id-18527 .elementor-widget-html section[style*="ARP.gif"] > div {
    border: 1px solid rgba(255,106,0,.20) !important;
    border-radius: 18px !important;
    background: rgba(6,2,0,.78) !important;
    box-shadow:
        inset 0 0 20px rgba(255,106,0,.04),
        0 14px 30px rgba(0,0,0,.30) !important;
}

body.page-id-18527 .elementor-widget-html h1 {
    color: #fff4eb !important;
    text-transform: uppercase !important;
    letter-spacing: .025em !important;
}

body.page-id-18527 .elementor-widget-html h2,
body.page-id-18527 .elementor-widget-html h3 {
    color: #ff9a3c !important;
    text-shadow: 0 0 12px rgba(255,106,0,.10) !important;
}

body.page-id-18527 .elementor-widget-html p,
body.page-id-18527 .elementor-widget-html li {
    color: rgba(243,243,243,.88) !important;
    line-height: 1.75 !important;
}

body.page-id-18527 .elementor-widget-html a[style*="color: #f44336"],
body.page-id-18527 .elementor-widget-html a[style*="color:#f44336"] {
    color: #ffad68 !important;
}

body.page-id-18527 .elementor-widget-html a[style*="background-color"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 50px !important;
    padding: 13px 22px !important;
    border: 1px solid rgba(255,106,0,.62) !important;
    border-radius: 999px !important;
    background: linear-gradient(180deg, rgba(34,11,0,.94), rgba(11,4,0,.98)) !important;
    color: #ffd8bb !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    box-shadow: 0 9px 22px rgba(0,0,0,.30) !important;
}

body.page-id-18527 .elementor-widget-html a[style*="background-color"]:hover {
    color: #fff1e5 !important;
    border-color: rgba(255,176,110,.96) !important;
}

body.page-id-18527 .elementor-widget-html img {
    border-radius: 20px !important;
    border: 1px solid rgba(255,106,0,.16) !important;
    box-shadow: 0 16px 34px rgba(0,0,0,.34) !important;
}

/* ---------- FORMULAIRES CONTACT / TEAM BUILDING ---------- */
body.page-id-17860 #wpforms-16952 input[type="text"],
body.page-id-17860 #wpforms-16952 input[type="email"],
body.page-id-17860 #wpforms-16952 input[type="number"],
body.page-id-17860 #wpforms-16952 input[type="tel"],
body.page-id-17860 #wpforms-16952 input[type="date"],
body.page-id-17860 #wpforms-16952 textarea,
body.page-id-17860 #wpforms-16952 select,
body.page-id-17868 #wpforms-17001 input[type="text"],
body.page-id-17868 #wpforms-17001 input[type="email"],
body.page-id-17868 #wpforms-17001 input[type="number"],
body.page-id-17868 #wpforms-17001 input[type="tel"],
body.page-id-17868 #wpforms-17001 input[type="date"],
body.page-id-17868 #wpforms-17001 textarea,
body.page-id-17868 #wpforms-17001 select {
    background: linear-gradient(180deg, rgba(18,6,0,.82), rgba(6,2,0,.96)) !important;
    color: #f3f3f3 !important;
    border: 1px solid rgba(255,106,0,.24) !important;
    border-radius: 14px !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,154,60,.035),
        inset 0 0 18px rgba(255,106,0,.045),
        0 10px 24px rgba(0,0,0,.16) !important;
}

body.page-id-17860 #wpforms-16952 input::placeholder,
body.page-id-17860 #wpforms-16952 textarea::placeholder,
body.page-id-17868 #wpforms-17001 input::placeholder,
body.page-id-17868 #wpforms-17001 textarea::placeholder {
    color: rgba(255,210,173,.58) !important;
}

body.page-id-17860 #wpforms-16952 select option,
body.page-id-17868 #wpforms-17001 select option {
    color: #f3f3f3 !important;
    background: #120600 !important;
}

body.page-id-17860 #wpforms-16952 input:focus,
body.page-id-17860 #wpforms-16952 textarea:focus,
body.page-id-17860 #wpforms-16952 select:focus,
body.page-id-17868 #wpforms-17001 input:focus,
body.page-id-17868 #wpforms-17001 textarea:focus,
body.page-id-17868 #wpforms-17001 select:focus {
    color: #fff !important;
    background: linear-gradient(180deg, rgba(24,8,0,.90), rgba(8,3,0,.98)) !important;
    border-color: rgba(255,154,60,.66) !important;
    outline: none !important;
    box-shadow:
        0 0 0 1px rgba(255,154,60,.10),
        0 0 16px rgba(255,106,0,.11),
        0 12px 28px rgba(0,0,0,.22) !important;
}

@media (max-width: 768px) {
    .rrx-acc-btn,
    .rrx-acc-btn.rrx-btnlike {
        min-height: 58px !important;
        padding: 15px 52px 15px 16px !important;
        font-size: .96rem !important;
    }

    .rrx-acc-btn::after {
        right: 13px !important;
        width: 30px !important;
        height: 30px !important;
    }

    .rrx-acc-body {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    body.page-id-622 .rr-centres,
    body.page-id-18527 .elementor-widget-html section {
        border-radius: 18px !important;
        padding: 20px 17px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rrx-acc,
    .rrx-acc-btn,
    .rrx-acc-btn::after {
        transition: none !important;
    }
}

/* =========================================================
   SSU-B012-V1 — FONDATIONS FRONTEND / PERFORMANCE / HERO
   - le premier bloc de l'accueil reste le modèle visuel maître
   - les hero utilisent désormais un vrai <img> découvrable dans le HTML
   - le hero accueil réserve sa hauteur pour limiter le CLS mobile
   - les grilles tarifaires deviennent responsives en CSS, sans listener resize
========================================================= */

/* Image réelle placée dans le calque de fond du hero. */
.rrx-hero-bg.rrx-hero-media {
    overflow: hidden !important;
    background: none !important;
}

.rrx-hero-bg.rrx-hero-media > img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center center !important;
}

/* Variante sans photo pour les pages où une image n'apporte rien. */
.rrx-hero-bg.rrx-hero-bg--plain {
    background:
        radial-gradient(circle at 20% 0%, rgba(255,106,0,.13), transparent 42%),
        radial-gradient(circle at 85% 20%, rgba(105,24,0,.11), transparent 38%),
        linear-gradient(180deg, rgba(20,7,0,.96), rgba(4,2,0,.99)) !important;
}

/* Empilement explicite : évite les recalculs visuels et conserve le rendu actuel. */
.rrx-hero {
    position: relative !important;
    overflow: hidden !important;
}

.rrx-hero .rrx-hero-bg { z-index: 0 !important; }
.rrx-hero .rrx-hero-overlay { z-index: 1 !important; }
.rrx-hero .rrx-hero-content { position: relative !important; z-index: 2 !important; }

/* Page d'accueil : hauteur réservée dès le premier calcul de mise en page. */
body.home .rrx-hero {
    min-height: 560px !important;
}

/* Les images des blocs éditoriaux gardent un espace stable avant décodage. */
body.home .rrx-videoWrap img,
body.home .rrx-imgFrame img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
}

body.home .rrx-promo-photo img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1122 / 1402 !important;
    object-fit: cover !important;
}

/* Labels sémantiques du calculateur scénario. */
.rrx-price-label {
    display: block !important;
    margin: 0 0 10px !important;
    color: inherit !important;
    font: inherit !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

/* Responsive purement CSS : aucun JavaScript resize n'est nécessaire. */
.rr-price-grid-esprit {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (max-width: 768px) {
    body.home .rrx-hero {
        min-height: 680px !important;
    }

    .rr-price-grid-esprit {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 430px) {
    body.home .rrx-hero {
        min-height: 700px !important;
    }
}

/* SSU-B024 — le fond décoratif reste hors du flux, quel que soit son parent. */
html body .eh-bg {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

/* Neutralise toute hauteur héritée sur le pied de page personnalisé. */
#rr-footer {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 0 !important;
}

#rr-footer .inner,
#rr-footer .bottom {
    min-height: 0 !important;
    height: auto !important;
}

/* =========================================================
   SSU-B013-V1 — CONSOLIDATION FRONTEND / ACCESSIBILITÉ
========================================================= */
.rr-pricing-grid,
.rr-price-grid-esprit {
    display: grid;
    gap: 14px;
    max-width: 1100px;
    margin: 18px auto 0;
}
.rr-pricing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rr-price-grid-esprit { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.rrx-pricing-field {
    padding: 14px;
    border-radius: 14px;
    border: 1px solid rgba(255,106,0,.25);
    background: rgba(255,106,0,.10);
}
.rrx-field-label {
    display: block;
    margin: 0 0 10px;
    color: #fff4eb;
    font-weight: 800;
    line-height: 1.35;
}
.rrx-pricing-field select {
    width: 100%;
    min-height: 52px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1px solid rgba(255,106,0,.25);
    background: #fff;
    color: #111;
    font-size: 16px;
    box-sizing: border-box;
}
.rrx-pricing-note {
    margin-top: 10px;
    font-size: .92rem;
    color: rgba(243,243,243,.84);
}
.rrx-video-choice {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 12px 0 0;
}
.rrx-video-choice input { margin-top: 4px; }
.rrx-pricing-result {
    max-width: 1100px;
    margin: 16px auto 0;
    padding: 14px;
    border-radius: 14px;
    border: 2px solid rgba(255,106,0,.40);
    background: rgba(255,106,0,.12);
}
.rrx-pricing-result[hidden],
.rrx-acc-body[hidden],
.rrx-mapFrame iframe[hidden] { display: none !important; }

.rrx-mapFrame[data-rrx-map] {
    min-height: 300px;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,106,0,.08), transparent 50%),
        linear-gradient(180deg, rgba(16,6,0,.94), rgba(4,2,0,.99));
}
.rrx-map-load {
    appearance: none;
    max-width: 360px;
    margin: 20px;
    padding: 18px 22px;
    border: 1px solid rgba(255,106,0,.48);
    border-radius: 16px;
    background: rgba(8,3,0,.90);
    color: #fff4eb;
    font: inherit;
    font-weight: 800;
    line-height: 1.5;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(0,0,0,.28);
}
.rrx-map-load small {
    display: block;
    margin-top: 7px;
    color: rgba(243,243,243,.76);
    font-weight: 400;
}
.rrx-map-load:hover,
.rrx-map-load:focus-visible {
    border-color: rgba(255,176,110,.92);
    color: #fff;
    outline: 2px solid rgba(255,154,60,.72);
    outline-offset: 3px;
}
.rrx-mapFrame.is-loaded { min-height: 360px; }
.rrx-mapFrame.is-loaded iframe { width: 100%; min-height: 360px; }

/* Contraste du bouton d’acceptation signalé par Lighthouse. */
#wt-cli-accept-all-btn {
    background-color: #8a3100 !important;
    color: #ffffff !important;
    border-color: #ff9a3c !important;
}

/* Blocs legacy réécrits en composants Riddle Room. */
.rrx-content-list { margin: 16px 0; padding-left: 1.25rem; }
.rrx-content-list li { margin: 8px 0; line-height: 1.65; }
.rrx-legacy-cta { text-align: center; padding: 22px; }

@media (max-width: 980px) {
    .rr-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    .rr-pricing-grid,
    .rr-price-grid-esprit { grid-template-columns: 1fr; }
    .rrx-mapFrame[data-rrx-map] { min-height: 260px; }
}

/* =========================================================
   SSU-B014-V1 — CONSOLIDATION CSS / ACCESSIBILITÉ
========================================================= */

/* Utilitaires remplaçant les derniers styles inline récurrents. */
.rrx-pad-18 { padding:18px !important; }
.rrx-pad-24 { padding:24px !important; }
.rrx-copy-900 { max-width:900px !important; margin-left:auto !important; margin-right:auto !important; }
.rrx-copy-820 { max-width:820px !important; margin-left:auto !important; margin-right:auto !important; }
.rrx-mb-18 { margin-bottom:18px !important; }
.rrx-mt-18 { margin-top:18px !important; }
.rrx-actions-center { justify-content:center !important; }
.rrx-two-flush { padding:0 !important; margin-top:18px !important; }
.rrx-map-copy { padding:10px 18px 10px 0 !important; }
.rrx-price-featured { max-width:760px !important; margin:20px auto 0 !important; }
.rrx-price-intro { margin-top:6px !important; }

/* Les titres de cartes utilisent désormais H3 de façon cohérente. */
.rrx-feature h3,
.rrx-feature .txt h3 {
    margin-top:0 !important;
    color:#ffd2ad !important;
}

/* Contact : réutilisation des composants Riddle Room au lieu d'une feuille dédiée. */
body.page-id-17868 .rrx-contact-note {
    margin-top:16px !important;
    padding:14px 16px !important;
    border-radius:16px !important;
    border:1px solid rgba(255,106,0,.16) !important;
    background:rgba(255,106,0,.08) !important;
    color:#ffe6cf !important;
    line-height:1.7 !important;
}

/* Formulaires communs Contact + Team Building. */
body.page-id-17860 #wpforms-16952 .wpforms-form,
body.page-id-17868 #wpforms-17001 .wpforms-form {
    padding:24px !important;
    border-radius:20px !important;
    border:1px solid rgba(255,106,0,.18) !important;
    background:linear-gradient(180deg,rgba(12,5,0,.82),rgba(0,0,0,.95)) !important;
    box-shadow:0 18px 42px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.02) !important;
}
body.page-id-17860 #wpforms-16952 .wpforms-field-label,
body.page-id-17860 #wpforms-16952 .wpforms-field-sublabel,
body.page-id-17868 #wpforms-17001 .wpforms-field-label,
body.page-id-17868 #wpforms-17001 .wpforms-field-sublabel {
    color:#ffe1c8 !important;
    font-weight:700 !important;
}
body.page-id-17860 #wpforms-16952 .wpforms-required-label,
body.page-id-17868 #wpforms-17001 .wpforms-required-label { color:#ff9a3c !important; }
body.page-id-17860 #wpforms-16952 textarea,
body.page-id-17868 #wpforms-17001 textarea { min-height:150px !important; resize:vertical !important; }
body.page-id-17860 #wpforms-16952 .wpforms-submit,
body.page-id-17868 #wpforms-17001 .wpforms-submit {
    min-height:52px !important;
    padding:14px 24px !important;
    border-radius:999px !important;
    border:1px solid rgba(255,106,0,.68) !important;
    background:linear-gradient(180deg,rgba(35,12,0,.95),rgba(15,5,0,.98)) !important;
    color:#ffd8bb !important;
    text-transform:uppercase !important;
    letter-spacing:.07em !important;
    font-weight:700 !important;
}
body.page-id-17860 #wpforms-16952 .wpforms-submit:hover,
body.page-id-17868 #wpforms-17001 .wpforms-submit:hover {
    border-color:rgba(255,176,110,.98) !important;
    color:#fff1e5 !important;
    box-shadow:0 0 14px rgba(255,106,0,.16),0 12px 26px rgba(0,0,0,.30) !important;
}
body.page-id-17860 #wpforms-16952 .wpforms-error,
body.page-id-17868 #wpforms-17001 .wpforms-error { color:#ffb3a7 !important; }

/* Cadeau Original : styles spécifiques conservés, mais centralisés. */
.rrx-gift-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:24px;align-items:stretch;}
.rrx-gift-col{padding:24px;}
.rrx-gift-visual{position:relative;min-height:100%;overflow:hidden;border-left:1px solid rgba(255,106,0,.18);background:radial-gradient(circle at 50% 0%,rgba(255,106,0,.08),transparent 46%),linear-gradient(180deg,rgba(18,6,0,.82),rgba(6,2,0,.96));}
.rrx-gift-visual img{width:100%;height:100%;min-height:420px;object-fit:cover;filter:saturate(1.02) contrast(1.04) brightness(.88);}
.rrx-gift-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:12px;}
.rrx-gift-list li{padding:14px 16px;border-radius:14px;border:1px solid rgba(255,106,0,.16);background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0)),rgba(0,0,0,.24);color:rgba(243,243,243,.92);line-height:1.6;}
.rrx-gift-note{margin-top:18px;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,106,0,.22);background:rgba(255,106,0,.08);color:#ffe6cf;line-height:1.7;}
.rrx-gift-mini{font-size:.95rem;color:rgba(243,243,243,.76);}
.rrx-gift-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:18px;}
.rrx-gift-step{padding:20px 18px;border-radius:18px;border:1px solid rgba(255,106,0,.18);background:radial-gradient(circle at 50% 0%,rgba(255,106,0,.07),transparent 48%),linear-gradient(180deg,rgba(18,6,0,.82),rgba(6,2,0,.96));box-shadow:inset 0 0 0 1px rgba(255,154,60,.04),0 14px 30px rgba(0,0,0,.28);}
.rrx-gift-step-num{width:42px;height:42px;display:grid;place-items:center;margin:0 0 14px;border-radius:14px;border:1px solid rgba(255,106,0,.28);background:linear-gradient(180deg,rgba(28,10,0,.82),rgba(10,4,0,.94));color:var(--rr-accent-soft);font-weight:800;}
.rrx-gift-bottom{padding:24px;}.rrx-gift-bottom .rrx-actions{justify-content:center;}.rrx-gift-center{text-align:center;}

@media(max-width:980px){
    .rrx-gift-grid{grid-template-columns:1fr;}
    .rrx-gift-visual{border-left:0;border-top:1px solid rgba(255,106,0,.18);}
    .rrx-gift-visual img{min-height:280px;}
    .rrx-gift-steps{grid-template-columns:1fr;}
}
@media(max-width:768px){
    .rrx-gift-col,.rrx-gift-bottom{padding:18px;}
    body.page-id-17860 #wpforms-16952 .wpforms-form,
    body.page-id-17868 #wpforms-17001 .wpforms-form{padding:18px !important;border-radius:18px !important;}
    body.page-id-17860 #wpforms-16952 .wpforms-submit,
    body.page-id-17868 #wpforms-17001 .wpforms-submit{width:100% !important;}
}


/* =========================================================
   SSU-B018-V1 — STABILISATION MOBILE / ANCRAGES / EFFETS
========================================================= */
.elementor-menu-anchor,
[id="Tarifs"],
#scenario-riddle-room {
    scroll-margin-top: 96px;
}

/* L'effet pluie historique anime background-position-y et déclenche un audit
   Lighthouse non composé. Sur mobile on conserve l'ambiance sans cette
   animation coûteuse. */
@media (max-width: 768px) {
    body.home .eh-bg::before {
        animation: none !important;
        -webkit-animation: none !important;
        background-position-y: 0 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.home .eh-bg::before {
        animation: none !important;
        -webkit-animation: none !important;
        background-position-y: 0 !important;
    }
}

/* =========================================================
   SSU-B026 — RIDDLE ROOM / FIN DE PAGE DESKTOP
   Le footer personnalisé est injecté dans #page. Sur Customify,
   une hauteur résiduelle du conteneur principal peut laisser un
   grand vide après « Tous droits réservés ». On neutralise
   uniquement l'espace résiduel du conteneur, sans toucher au
   contenu du footer ni au responsive de ses colonnes.
========================================================= */
html body #page,
html body #page.site {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

html body #rr-footer {
    margin-bottom: 0 !important;
}


/* =========================================================
   SSU-B028 — RIDDLE ROOM / SUPPRESSION ESPACE AVANT FOOTER
   Customify conserve un espacement vertical sur le wrapper de contenu.
   Le footer personnalisé est maintenant hors de #page (B027) ; on supprime
   donc uniquement l'espace bas du contenu afin que la dernière box rejoigne
   naturellement le footer sur toutes les pages.
========================================================= */
html body #site-content,
html body .site-content,
html body #site-content > .customify-container,
html body #main.content-area,
html body #main .content-inner,
html body #main .entry-content {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

html body #site-content .elementor > .elementor-section:last-child,
html body #site-content .elementor > .e-con:last-child {
    margin-bottom: 0 !important;
}


/* =========================================================
   SSU-B036 — RIDDLE ROOM / ESPACE ENTRE LA DERNIÈRE BOX ET LE FOOTER
   Mesure (1440 px et 390 px) : la bande vide sous la dernière box
   additionne 56 px de margin-top du footer (CSS additionnel du
   Customizer), 22 px de marge basse de la dernière box .rrx-section
   et 10 px de padding de la colonne Elementor, soit ~88 px.
   On remplace cet empilement par un espacement unique et constant
   de 28 px (20 px sur mobile), quelle que soit la page.
   Le contenu du footer, ses couleurs et ses colonnes ne changent pas.
========================================================= */
html body #rr-footer {
    margin-top: 28px !important;
}

html body #site-content .elementor > .elementor-section:last-child > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding-bottom: 0 !important;
}

html body #site-content .elementor > .elementor-section:last-child .elementor-widget:last-child .rrx-section:last-child,
html body #site-content .elementor > .elementor-section:last-child .elementor-widget:last-child .elementor-widget-container > :last-child {
    margin-bottom: 0 !important;
}

@media (max-width: 767px) {
    html body #rr-footer {
        margin-top: 20px !important;
    }
}
