/* ====================== Theme sombre commun ======================
   Accueil, A propos, Contact, Matieres et pages legales : meme fond, memes encres et memes cartes que les pages de services.
   Les variables de l'accueil sont redefinies ici : tout ce qui les utilise bascule en une fois. */

body.dark-site {
    --home-paper: #0b1220;
    --home-paper-2: #0e1829;
    --home-card: #111c31;
    --home-ink: #f1f5fb;
    --home-ink-2: #d6dfec;
    --home-muted: #a9b6ca;
    --home-muted-2: #8b9ab1;
    --home-rule: rgba(255, 255, 255, 0.13);
    --home-rule-soft: rgba(255, 255, 255, 0.07);
    --home-blue: #2f6bff;
    --home-blue-dark: #245cff;
    --home-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 22px 52px rgba(0, 0, 0, 0.38);
    --button-text: #f1f5fb;
    --button-muted: #a9b6ca;
    --button-border: rgba(255, 255, 255, 0.18);
    --button-soft: rgba(255, 255, 255, 0.05);
    background: #0b1220;
    color: #f1f5fb;
    color-scheme: dark;
}

/* ====================== ACCUEIL ====================== */

body.dark-site.home-page .hero { background: #0b1220; border-bottom-color: rgba(255, 255, 255, 0.07); }
body.dark-site.home-page .hero::before {
    background-image:
        linear-gradient(rgba(127, 177, 255, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(127, 177, 255, 0.07) 1px, transparent 1px);
}
body.dark-site.home-page .hero::after { background: radial-gradient(closest-side, rgba(58, 184, 255, 0.16), rgba(36, 92, 255, 0.07) 55%, transparent 100%); }
body.dark-site .hero-fade { background: #0b1220; }

body.dark-site .hero-kicker,
body.dark-site.home-page .hero-kicker { color: #a9b6ca; }
body.dark-site .hero-left h1 { color: #f1f5fb; }
body.dark-site.home-page .hero-subtitle { color: #a9b6ca; }
body.dark-site.home-page .hero-question,
body.dark-site .hero-subtitle strong { color: #e6edf7; }
body.dark-site.home-page .hero-btn-secondary { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); color: #f1f5fb; }
body.dark-site.home-page .hero-btn-secondary:hover { background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.4); }

/* fiche de fabrication */
body.dark-site.home-page .workorder { background: linear-gradient(180deg, rgba(17, 28, 49, 0.92), rgba(13, 22, 40, 0.86)); border-color: rgba(255, 255, 255, 0.12); box-shadow: 0 28px 48px -36px rgba(0, 0, 0, 0.7); }
body.dark-site.home-page .workorder-head { background: rgba(59, 123, 255, 0.1); border-bottom-color: rgba(255, 255, 255, 0.08); color: #a9b6ca; }
body.dark-site .workorder-status { color: #f1f5fb; }
body.dark-site.home-page .workorder-part {
    border-color: rgba(127, 177, 255, 0.2);
    background:
        linear-gradient(rgba(127, 177, 255, 0.07) 1px, transparent 1px) 0 0 / 14px 14px,
        linear-gradient(90deg, rgba(127, 177, 255, 0.07) 1px, transparent 1px) 0 0 / 14px 14px,
        #0d1729;
}
body.dark-site.home-page .workorder-readout { border-top-color: rgba(127, 177, 255, 0.28); color: #8b9ab1; }
body.dark-site .workorder-readout b { color: #7fb1ff; }
body.dark-site .workorder-steps::before { background: linear-gradient(180deg, #245cff, #3ab8ff) 0 0 / 100% var(--wf) no-repeat, rgba(255, 255, 255, 0.16); }
body.dark-site .workorder-steps li::before { background: #0b1220; border-color: rgba(255, 255, 255, 0.32); }
body.dark-site .workorder-steps b { color: #7fb1ff; }
body.dark-site .workorder-steps span { color: #f1f5fb; }
body.dark-site .workorder-steps small { color: #a9b6ca; }
body.dark-site.home-page .workorder .hero-stats { background: rgba(255, 255, 255, 0.04); border-top-color: rgba(255, 255, 255, 0.1); }
body.dark-site .workorder .hero-stats .stat + .stat { border-left-color: rgba(255, 255, 255, 0.1); }
body.dark-site .stat-value { color: #f1f5fb; }
body.dark-site .stat-label { color: #a9b6ca; }
body.dark-site.home-page .workorder .hero-stats .stat-icon { background: rgba(127, 177, 255, 0.14); color: #7fb1ff; }
body.dark-site .stat { background: transparent; border-color: rgba(255, 255, 255, 0.1); box-shadow: none; }
body.dark-site .wo-guides path { stroke: rgba(255, 255, 255, 0.3); }
body.dark-site .wo-dim path { stroke: #a9b6ca; fill: none; }
body.dark-site .wo-dim text { fill: #a9b6ca; }

/* clients */
body.dark-site.home-page .clients { background: linear-gradient(180deg, #0b1220 0%, #0d1627 100%); border-top-color: rgba(255, 255, 255, 0.07); }
body.dark-site .clients::after { background: linear-gradient(180deg, rgba(13, 22, 39, 0), #0b1220); }
body.dark-site .client-logo-card { background: #111c31; border-color: rgba(255, 255, 255, 0.12); box-shadow: none; }
body.dark-site .client-logo-card:hover { border-color: #7fb1ff; box-shadow: 0 0 0 1px #7fb1ff; }
body.dark-site .client-logo-card img { filter: grayscale(1) invert(1) brightness(1.15); opacity: 0.82; }
body.dark-site .client-logo-card:hover img { filter: grayscale(1) invert(1) brightness(1.3); opacity: 1; }
body.dark-site .clients-marquee::after { background: linear-gradient(100deg, transparent 42%, rgba(127, 177, 255, 0.12) 50%, transparent 58%); }
body.dark-site .clients-belt { border-top-color: rgba(255, 255, 255, 0.14); background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.26) 0 2px, transparent 2px 32px) 0 5px / 100% 7px no-repeat; }

/* services */
body.dark-site.home-page .services,
body.dark-site.home-page .realisations,
body.dark-site.home-page .reviews { background: #0b1220; border-color: rgba(255, 255, 255, 0.07); }
body.dark-site .services::before { background: linear-gradient(135deg, rgba(59, 123, 255, 0.1) 0%, transparent 34%); }
body.dark-site .services-header { background: linear-gradient(135deg, rgba(17, 28, 49, 0.98), rgba(13, 22, 40, 0.96)); border-color: rgba(255, 255, 255, 0.12); box-shadow: 0 18px 42px rgba(0, 0, 0, 0.35); }
body.dark-site .services-header h2 { color: #f1f5fb; }
body.dark-site .services-intro { color: #a9b6ca; }
body.dark-site .services-proof li { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); color: #e6edf7; box-shadow: none; }
body.dark-site.home-page .service-card { background: #111c31; border-color: rgba(255, 255, 255, 0.12); box-shadow: none; }
body.dark-site.home-page .service-card:hover { border-color: #3b7bff; box-shadow: 0 24px 58px rgba(0, 0, 0, 0.45); }
body.dark-site.home-page .service-card-featured { background: linear-gradient(145deg, rgba(59, 123, 255, 0.16), #111c31 58%); border-color: rgba(59, 123, 255, 0.5); }
body.dark-site .service-card h3 { color: #f1f5fb; }
body.dark-site .service-card-body > p,
body.dark-site.home-page .service-card small,
body.dark-site.home-page .service-price > span em,
body.dark-site.home-page .service-card .service-price > small { color: #a9b6ca; }
body.dark-site.home-page .service-price > span { color: #f1f5fb; }
body.dark-site.home-page .service-price { border-top-color: rgba(255, 255, 255, 0.1); }
body.dark-site.home-page .service-card-media { background: #0d1627; }
body.dark-site.home-page .services-process { background: #111c31; border-color: rgba(255, 255, 255, 0.12); }
body.dark-site .services-process-heading { border-bottom-color: rgba(255, 255, 255, 0.1); }
body.dark-site .services-process-heading h3,
body.dark-site .services-process-list strong { color: #f1f5fb; }
body.dark-site.home-page .services-process-heading > p,
body.dark-site .services-process-list p { color: #a9b6ca; }
body.dark-site .services-process-list::before { background: linear-gradient(90deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08) 78%, transparent); }
body.dark-site.home-page .services-pricing-note { color: #a9b6ca; }

/* realisations */
body.dark-site .realisations-header h2,
body.dark-site .reviews-header h2 { color: #f1f5fb; }
body.dark-site .realisations-intro,
body.dark-site .reviews-intro { color: #a9b6ca; }
body.dark-site.home-page .realisations-intro { border-left-color: rgba(255, 255, 255, 0.2); }
body.dark-site.home-page .instagram-card { background: #111c31; border-color: rgba(255, 255, 255, 0.14); color: #f1f5fb; }
body.dark-site.home-page .instagram-card:hover,
body.dark-site.home-page .instagram-card:focus-visible { border-color: #7fb1ff; box-shadow: 8px 8px 0 -1px rgba(0, 0, 0, 0.35); }
body.dark-site.home-page .instagram-card-media { background: #0d1627; border-bottom-color: rgba(255, 255, 255, 0.14); }
body.dark-site .instagram-card-caption { color: #c8d3e3; }
/* lien « Voir sur Instagram » (pseudo-element) : il restait en encre sombre sur la carte sombre */
body.dark-site.home-page .instagram-card-caption::after { color: #9ecbff; border-top-color: rgba(255, 255, 255, 0.22); }
body.dark-site .instagram-feed-status,
body.dark-site .realisations-fallback { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.12); color: #a9b6ca; }
body.dark-site .realisations-fallback-title { color: #f1f5fb; }

/* avis */
body.dark-site.home-page .google-review-card { background: #111c31; border-color: rgba(255, 255, 255, 0.12); }

/* appel final + FAQ */
body.dark-site.home-page .cta-final { background: #0b1220; }
body.dark-site .faq { background: #0b1220; border-color: rgba(255, 255, 255, 0.07); }
body.dark-site .faq-header h2 { color: #f1f5fb; }
body.dark-site .faq-intro,
body.dark-site .faq-content p { color: #a9b6ca; }
body.dark-site .faq-item { border-color: rgba(255, 255, 255, 0.12); }
body.dark-site .faq-item summary,
body.dark-site .faq-question { color: #f1f5fb; }
body.dark-site .faq-toggle { background: rgba(255, 255, 255, 0.08); }
body.dark-site .faq-content strong { color: #f1f5fb; }

/* ====================== MENU : verre fonce partout, y compris apres l'intro ====================== */

html body.dark-site .site-header,
html body.dark-site .site-header.is-scrolled,
html body.dark-site .site-header.is-past-intro:not(.nav-open) {
    background: rgba(8, 15, 30, 0.88);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.32);
}

@media (max-width: 1100px) {
    html body.dark-site .site-header.is-past-intro:not(.nav-open) {
        background: rgba(8, 15, 30, 0.92) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
        box-shadow: 0 10px 28px -18px rgba(0, 0, 0, 0.6);
    }

    html body.dark-site .site-header.is-past-intro.nav-open,
    html body.dark-site .site-header.is-past-intro .main-nav {
        background: #0b1220 !important;
        border-top-color: rgba(255, 255, 255, 0.08);
    }

    html body.dark-site .site-header.is-past-intro .main-nav a:not(.nav-cta-mobile) { color: #f1f5fb !important; }

    html body.dark-site .site-header.is-past-intro .main-nav a:not(.nav-cta-mobile):hover,
    html body.dark-site .site-header.is-past-intro .main-nav a.active:not(.nav-cta-mobile) { background: rgba(127, 177, 255, 0.12) !important; }
}

/* ====================== ACCUEIL (suite) ====================== */

body.dark-site .stat-suffix { color: #7fb1ff; }
body.dark-site .clients-hud,
body.dark-site .clients-hud span { color: #8b9ab1; }
body.dark-site .clients-hud b { color: #f1f5fb; }
body.dark-site .clients-hud-line { background: rgba(255, 255, 255, 0.12); }

body.dark-site .service-path { color: #8b9ab1; }
body.dark-site .service-path .sp-step { color: #7fb1ff; }
body.dark-site.home-page .service-card-body > .service-price { background: rgba(255, 255, 255, 0.05); }
body.dark-site.home-page .service-card small.service-card-detail-cue { background: rgba(59, 123, 255, 0.16); border-color: rgba(127, 177, 255, 0.5); color: #f1f5fb; }
body.dark-site.home-page .service-card:hover small.service-card-detail-cue,
body.dark-site.home-page .service-card:focus-within small.service-card-detail-cue { background: #3b7bff; border-color: #3b7bff; }

body.dark-site.home-page .services-process-list li,
body.dark-site.home-page .services-process-list li.is-lit { background: #111c31; border: 1px solid rgba(255, 255, 255, 0.12); box-shadow: none; }
body.dark-site.home-page .services-process-list li.is-lit { border-color: rgba(127, 177, 255, 0.5); background: linear-gradient(160deg, rgba(59, 123, 255, 0.16), #111c31 60%); }
body.dark-site .process-step-number { border-color: rgba(255, 255, 255, 0.16); }
body.dark-site .process-step-icon { background: rgba(127, 177, 255, 0.12); color: #7fb1ff; border-color: rgba(127, 177, 255, 0.25); }
body.dark-site.home-page .services-process-list li:first-child .process-step-number,
body.dark-site .services-process-list li.is-lit .process-step-number { background: #2f6bff; border-color: #2f6bff; color: #ffffff; }

/* formulaire de devis (accueil et contact) */
body.dark-site .quote-card { background: #111c31; border-color: rgba(255, 255, 255, 0.14); box-shadow: 0 28px 60px -30px rgba(0, 0, 0, 0.7); color: #f1f5fb; }
body.dark-site .quote-card-kicker,
body.dark-site .quote-card-kicker span { color: #a9b6ca; }
body.dark-site .quote-card h2,
body.dark-site .quote-title,
body.dark-site .quote-card .quote-title { color: #f1f5fb; }
body.dark-site .quote-wizard-count,
body.dark-site .quote-wizard-count b,
body.dark-site .file-reassurance,
body.dark-site .quote-step-hint,
body.dark-site .quote-note { color: #a9b6ca; }
body.dark-site .quote-wizard-count b { color: #f1f5fb; }
body.dark-site .quote-wizard-bar i { background: rgba(255, 255, 255, 0.14); }
body.dark-site .quote-wizard-bar i.is-done,
body.dark-site .quote-wizard-bar i.is-current { background: #3b7bff; }
body.dark-site .quote-title-icon { background: rgba(127, 177, 255, 0.14); color: #7fb1ff; }
body.dark-site .quote-card .field-label { color: #d6dfec; }
body.dark-site .quote-card input,
body.dark-site .quote-card select,
body.dark-site .quote-card textarea { background: #0d1627; border-color: rgba(255, 255, 255, 0.2); color: #f1f5fb; }
body.dark-site .quote-card input::placeholder,
body.dark-site .quote-card textarea::placeholder { color: #7d8ba1; }
body.dark-site .quote-card input:focus,
body.dark-site .quote-card select:focus,
body.dark-site .quote-card textarea:focus { border-color: #3b7bff; box-shadow: 0 0 0 3px rgba(59, 123, 255, 0.25); }
body.dark-site .quote-card input[type="file"] { background: #0d1627 !important; border-color: rgba(255, 255, 255, 0.2) !important; color: #f1f5fb !important; }
body.dark-site .quote-card input[type="file"]::file-selector-button { background: #1b2a47; color: #f1f5fb; border: 0; }
body.dark-site .quote-card .tooltip-content { background: #0d1627; border-color: rgba(255, 255, 255, 0.18); color: #e6edf7; }
body.dark-site .quote-card .step-next:disabled,
body.dark-site .quote-card .step-next[disabled] { background: #1c2740; border-color: #1c2740; color: #9aa8bd; opacity: 1; }

/* avis */
body.dark-site .rv-board { background: #111c31; border-color: rgba(255, 255, 255, 0.12); box-shadow: none; color: #f1f5fb; }
body.dark-site .rv-score b { color: #f1f5fb; }
body.dark-site .rv-score span,
body.dark-site .rv-label,
body.dark-site .rv-total,
body.dark-site .rv-bars-n,
body.dark-site .rv-bars-c { color: #a9b6ca; }
body.dark-site .rv-total b { color: #f1f5fb; }
body.dark-site .rv-bars-track { background: rgba(255, 255, 255, 0.1); }
body.dark-site .google-review-meta,
body.dark-site .google-review-meta span { color: #a9b6ca; }
body.dark-site .google-reviews-summary span { color: #a9b6ca; }
body.dark-site .google-reviews-summary { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.12); color: #a9b6ca; }
body.dark-site.home-page .google-reviews-actions a { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); color: #f1f5fb; }

/* ====================== A PROPOS ====================== */

body.dark-site.about-page .ab-stats { background: #0d1627; border-bottom-color: rgba(255, 255, 255, 0.08); }
body.dark-site .ab-stat { border-left-color: rgba(255, 255, 255, 0.1); }
body.dark-site .ab-stat b { color: #f1f5fb; }
body.dark-site .ab-stat b em { color: #7fb1ff; }
body.dark-site .ab-stat span { color: #a9b6ca; }
body.dark-site.about-page .ab-story,
body.dark-site.about-page .ab-know { background: #0b1220; border-color: rgba(255, 255, 255, 0.08); }
body.dark-site.about-page .ab-eng,
body.dark-site.about-page .ab-trust { background: #0d1627; }
body.dark-site.about-page .ab-story-copy p:not(.section-kicker),
body.dark-site.about-page .ab-know-copy p:not(.section-kicker),
body.dark-site.about-page .ab-head-lead { color: #a9b6ca; }
body.dark-site .ab-ledger { background: #111c31; border-color: rgba(255, 255, 255, 0.12); }
body.dark-site .ab-ledger li { border-top-color: rgba(255, 255, 255, 0.08); }
body.dark-site .ab-ledger i { color: #7fb1ff; }
body.dark-site .ab-ledger b { color: #f1f5fb; }
body.dark-site .ab-ledger span { color: #a9b6ca; }
body.dark-site .ab-ledger li.is-now { background: linear-gradient(90deg, rgba(59, 123, 255, 0.16), rgba(59, 123, 255, 0) 85%); }
body.dark-site .ab-tick { background: #0b1220; border-color: rgba(255, 255, 255, 0.28); }
body.dark-site .ab-eng-card { background: #111c31; border-color: rgba(255, 255, 255, 0.12); }
body.dark-site .ab-eng.is-visible .ab-eng-card:hover { border-color: rgba(127, 177, 255, 0.5); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4); }
body.dark-site .ab-eng-icon { background: rgba(127, 177, 255, 0.12); border-color: rgba(127, 177, 255, 0.28); color: #7fb1ff; }
body.dark-site .ab-eng-index { color: #6f7f97; }
body.dark-site .ab-eng-card p { color: #a9b6ca; }
body.dark-site .ab-fam li { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.12); }
body.dark-site .ab-fam b { color: #7fb1ff; }
body.dark-site .ab-fam span { color: #f1f5fb; }
body.dark-site .ab-fam small { color: #aebbd2; }
body.dark-site .ab-fam-note { color: #aebbd2; }
body.dark-site .ab-who li { background: #111c31; border-color: rgba(255, 255, 255, 0.12); color: #f1f5fb; }
body.dark-site .ab-rev { background: linear-gradient(180deg, #111c31 0%, #0e1829 100%); border-color: rgba(255, 255, 255, 0.12); box-shadow: 0 24px 50px -30px rgba(0, 0, 0, 0.7); }
body.dark-site .ab-rev::after { background: radial-gradient(260px circle at var(--gx, 50%) var(--gy, 0%), rgba(127, 177, 255, 0.12), rgba(127, 177, 255, 0) 62%); }
body.dark-site .ab-rev:hover { border-color: rgba(127, 177, 255, 0.45); }
body.dark-site .ab-rev-stars { background: linear-gradient(90deg, #f2b705 var(--ab-fill), rgba(255, 255, 255, 0.2) var(--ab-fill)); -webkit-background-clip: text; background-clip: text; }
body.dark-site .ab-rev-quote { color: rgba(127, 177, 255, 0.14); }
body.dark-site .ab-rev blockquote { color: #f1f5fb; }
body.dark-site .ab-rev figcaption { color: #a9b6ca; }
body.dark-site .ab-links .hero-btn-secondary { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); color: #f1f5fb; }
body.dark-site.about-page .cta-final { background: #0b1220; }

/* boutons secondaires : fantome sur fond sombre */
html body.dark-site .hero-btn-secondary,
html body.dark-site.about-page .hero-btn-secondary { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.22); color: #f1f5fb; box-shadow: none; }
html body.dark-site .hero-btn-secondary:hover { background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.4); color: #ffffff; }

/* ====================== CONTACT ====================== */

html body.dark-site.contact-page .contact-wrapper { background: linear-gradient(180deg, #0d1627 0%, #0b1220 100%); }
html body.dark-site.contact-page .contact-wrapper::before { background-image: radial-gradient(rgba(127, 177, 255, 0.12) 1px, transparent 1.2px); }
html body.dark-site.contact-page .contact-wrapper::after { background: linear-gradient(180deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0)); }
body.dark-site .cf-kicker { color: #a9b6ca; }
body.dark-site .cf-title { color: #f1f5fb; }
body.dark-site .cf-title em { color: #7fb1ff; }
body.dark-site .cf-num { background: #111c31; border-color: rgba(255, 255, 255, 0.16); color: #a9b6ca; }
body.dark-site .cf-step.is-done .cf-num { background: linear-gradient(rgba(59, 123, 255, 0.18), rgba(59, 123, 255, 0.18)), #111c31; color: #7fb1ff; border-color: rgba(127, 177, 255, 0.55); }
body.dark-site .cf-step.is-done .cf-num::before { box-shadow: 0 0 0 2px #0b1220; }
body.dark-site .cf-body h3 { color: #f1f5fb; }
body.dark-site .cf-body p { color: #a9b6ca; }
body.dark-site .cf-live { background: rgba(59, 123, 255, 0.14); color: #9cc0ff; }
body.dark-site .cf-live-bar { background: rgba(127, 177, 255, 0.2); }
body.dark-site .cf-proof li { color: #f1f5fb; }
body.dark-site .cf-proof small { color: #a9b6ca; }
body.dark-site .cf-proof svg { background: rgba(127, 177, 255, 0.14); stroke: #7fb1ff; }
body.dark-site .cf-person { background: #111c31; border-color: rgba(255, 255, 255, 0.12); }
body.dark-site .cf-person:hover { border-color: rgba(127, 177, 255, 0.5); box-shadow: 0 16px 34px rgba(0, 0, 0, 0.4); }
body.dark-site .cf-person b { color: #f1f5fb; }
body.dark-site .cf-person span { color: #a9b6ca; }

/* chemins : en ligne / a l'atelier */
html body.dark-site .cm-paths { background: #0b1220; border-bottom-color: rgba(255, 255, 255, 0.08); }
body.dark-site .cm-kicker { color: #a9b6ca; }
body.dark-site .cm-paths-head h2 { color: #f1f5fb; }
body.dark-site .cm-paths-grid::before { background: #111c31; border-color: rgba(255, 255, 255, 0.16); color: #a9b6ca; }
body.dark-site .cm-path { background: linear-gradient(180deg, #111c31 0%, #0e1829 100%); border-color: rgba(255, 255, 255, 0.12); box-shadow: 0 24px 50px -30px rgba(0, 0, 0, 0.7); }
body.dark-site .cm-path::after { background: radial-gradient(320px circle at var(--gx, 50%) var(--gy, 0%), rgba(127, 177, 255, 0.1), rgba(127, 177, 255, 0) 62%); }
body.dark-site .cm-path:hover { border-color: rgba(127, 177, 255, 0.5); box-shadow: 0 28px 54px -26px rgba(0, 0, 0, 0.8); }
body.dark-site .cm-body h3 { color: #f1f5fb; }
body.dark-site .cm-body p { color: #a9b6ca; }
body.dark-site .cm-chips li { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); color: #e6edf7; }
body.dark-site .cm-hours { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.12); }
body.dark-site .cm-hours h3 { color: #7fb1ff; }
body.dark-site .cm-status { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.14); color: #a9b6ca; }
body.dark-site .cm-status.is-open { background: rgba(34, 197, 94, 0.12); border-color: rgba(34, 197, 94, 0.4); color: #6ee7a0; }
body.dark-site .cm-week i { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.14); }
body.dark-site .cm-week .is-closed i { background: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0 5px, rgba(255, 255, 255, 0.1) 5px 6px); }
body.dark-site .cm-week b { color: #a9b6ca; }
body.dark-site .cm-week li.is-today b { background: #f1f5fb; color: #0b1220; }
body.dark-site .cm-hours-note b { color: #f1f5fb; }
body.dark-site .cm-hours-note span { color: #a9b6ca; }

/* plan et horaires */
html body.dark-site .cl-section { background: linear-gradient(180deg, #0b1220 0%, #0d1627 100%); }
body.dark-site .cl-map { background: #0d1627; border-color: rgba(255, 255, 255, 0.12); box-shadow: none; }
body.dark-site .cl-map img { filter: none; }
body.dark-site .cl-tint { background: linear-gradient(90deg, rgba(11, 18, 32, 0.5), rgba(11, 18, 32, 0) 45%); }
body.dark-site .cl-callout { background: #111c31; border-color: rgba(255, 255, 255, 0.16); box-shadow: 0 16px 34px rgba(0, 0, 0, 0.5); }
body.dark-site .cl-callout b { color: #f1f5fb; }
body.dark-site .cl-callout small { color: #a9b6ca; }
body.dark-site .cl-credit { background: rgba(11, 18, 32, 0.85); color: #8b9ab1; }
body.dark-site .cl-panel { background: #111c31; border-color: rgba(255, 255, 255, 0.12); box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.7); }
body.dark-site .cl-title { color: #f1f5fb; }
body.dark-site .cl-lead { color: #a9b6ca; }
body.dark-site .cl-facts,
body.dark-site .cl-facts li { border-color: rgba(255, 255, 255, 0.1); }
body.dark-site .cl-facts svg { background: rgba(127, 177, 255, 0.14); stroke: #7fb1ff; }
body.dark-site .cl-facts small { color: #8b9ab1; }
body.dark-site .cl-facts b { color: #f1f5fb; }

/* ====================== MATIERES : assistant, glossaire, bibliotheque ====================== */

body.dark-site .fdm-lib {
    --fdm-ink: #f1f5fb;
    --fdm-ink-soft: #0b1220;
    --fdm-muted: #a9b6ca;
    --fdm-rule: rgba(255, 255, 255, 0.13);
    --fdm-paper: #0b1220;
    --fdm-blue: #5b93ff;
    --fdm-ok: #4cc98a;
    --fdm-warn: #e0a84a;
    --fdm-no: #ff7f6b;
}
body.dark-site.fdm-page { background: #0b1220; color: #f1f5fb; }
body.dark-site .fdm-lib .fdm-nd { color: #8b9ab1; }
body.dark-site .fdm-lib .fdm-notice { background: rgba(255, 127, 107, 0.1); border-color: rgba(255, 127, 107, 0.4); color: #ffb3a6; }
body.dark-site .fdm-lib .fdm-filters,
body.dark-site .fdm-lib .fdm-gloss,
body.dark-site .fdm-lib .fdm-sources,
body.dark-site .fdm-lib .fdm-method,
body.dark-site .fdm-lib .fdm-empty { background: #111c31; border-color: rgba(255, 255, 255, 0.13); box-shadow: none; }
body.dark-site .fdm-lib .fdm-method { border-left-color: #5b93ff; }
body.dark-site .fdm-lib .fdm-field input[type="search"],
body.dark-site .fdm-lib .fdm-field select,
body.dark-site .fdm-lib .fdm-sort select,
body.dark-site .fdm-lib .fdm-reset,
body.dark-site .fdm-lib .fdm-more,
body.dark-site .fdm-lib .fdm-context-clear { background: #0d1627; border-color: rgba(255, 255, 255, 0.2); color: #f1f5fb; }
body.dark-site .fdm-lib .fdm-reset:hover,
body.dark-site .fdm-lib .fdm-more:hover { background: #15233c; border-color: #5b93ff; }
body.dark-site .fdm-lib .fdm-chip span,
body.dark-site .fdm-lib .fdm-need { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.16); color: #e6edf7; }
body.dark-site .fdm-lib .fdm-chip input:checked + span,
body.dark-site .fdm-lib .fdm-need.is-on { background: #2f6bff; border-color: #2f6bff; color: #ffffff; }
body.dark-site .fdm-lib .fdm-range-note,
body.dark-site .fdm-lib .fdm-card-src,
body.dark-site .fdm-lib .fdm-gloss-head p,
body.dark-site .fdm-lib .fdm-gl-ends,
body.dark-site .fdm-lib .fdm-adv > summary small,
body.dark-site .fdm-lib .fdm-bar dd small,
body.dark-site .fdm-lib .fdm-bar.is-nd dd .fdm-num { color: #8b9ab1; }
body.dark-site .fdm-lib .fdm-card-link,
body.dark-site .fdm-lib .fdm-gl { background: linear-gradient(180deg, #111c31 0%, #0e1829 100%); border-color: rgba(255, 255, 255, 0.13); box-shadow: none; }
body.dark-site .fdm-lib .fdm-card-link:hover { border-color: rgba(127, 177, 255, 0.55); box-shadow: 0 24px 40px -24px rgba(0, 0, 0, 0.7); }
body.dark-site .fdm-lib .fdm-card.is-reco .fdm-card-link { border-color: #5b93ff; box-shadow: 0 0 0 3px rgba(91, 147, 255, 0.22); }
body.dark-site .fdm-lib .fdm-bar i,
body.dark-site .fdm-lib .fdm-gl-track { background: rgba(255, 255, 255, 0.12); }
body.dark-site .fdm-lib .fdm-gl-track b { border-color: #111c31; }
body.dark-site .fdm-lib .fdm-tip { background: #0d1627; border-color: rgba(255, 255, 255, 0.25); color: #7fb1ff; }
body.dark-site .fdm-lib .fdm-tip-pop { background: #1b2a47; border-color: rgba(255, 255, 255, 0.2); }
body.dark-site .fdm-lib .fdm-brandnote { background: rgba(224, 162, 27, 0.1); border-color: rgba(224, 162, 27, 0.4); color: #f0d08a; }
body.dark-site .fdm-lib .fdm-sources li em { color: #e0a84a; }
body.dark-site .fdm-lib .fdm-context { background: rgba(59, 123, 255, 0.12); border-color: rgba(127, 177, 255, 0.4); }
body.dark-site .fdm-lib .fdm-adv { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.13); }
body.dark-site .fdm-lib .fdm-filter-toggle { background: #1b2a47; border-color: #1b2a47; }
body.dark-site .fdm-lib .fdm-inline-link,
body.dark-site .ab-res-lib-rank { color: #7fb1ff; }

/* assistant : quelle matiere pour ma piece */
body.dark-site .ab-wiz-count { color: #a9b6ca; }
body.dark-site .ab-wiz-count b { color: #7fb1ff; }
body.dark-site .ab-wiz-count span,
body.dark-site .ab-res-kicker,
body.dark-site .ab-wiz-back,
body.dark-site .ab-res-more > summary { color: #7fb1ff; }
body.dark-site .ab-wiz-count span::before { color: #6f7f97; }
body.dark-site .ab-wiz-segs i { background: rgba(255, 255, 255, 0.14); }
body.dark-site .ab-wiz-chips span { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); color: #a9b6ca; }
body.dark-site .ab-wiz-q,
body.dark-site .ab-res-list b,
body.dark-site .ab-res-lib-name,
body.dark-site .ab-res-more-head b,
body.dark-site .ab-res-empty-title,
body.dark-site .ab-wiz-refine-title { color: #f1f5fb; }
body.dark-site .ab-wiz-sub,
body.dark-site .ab-wiz-opt small,
body.dark-site .ab-res-lib-head,
body.dark-site .ab-res-more-cost,
body.dark-site .ab-res-again,
body.dark-site .ab-res-note b { color: #8b9ab1; }
body.dark-site .ab-wiz-label,
body.dark-site .ab-res-list span,
body.dark-site .ab-res-lib-facts,
body.dark-site .ab-res-note,
body.dark-site .ab-res-empty-list,
body.dark-site .ab-wiz-refine > summary { color: #a9b6ca; }
body.dark-site .ab-wiz-opt,
body.dark-site .ab-wiz-chip,
body.dark-site .ab-res-more { background: #111c31; border-color: rgba(255, 255, 255, 0.14); color: #f1f5fb; }
body.dark-site .ab-wiz-opt:hover,
body.dark-site .ab-wiz-opt:focus-visible { background: #15233c; border-color: rgba(127, 177, 255, 0.6); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4); }
body.dark-site .ab-wiz-opt.is-picked { background: rgba(59, 123, 255, 0.18); border-color: #5b93ff; box-shadow: 0 0 0 3px rgba(91, 147, 255, 0.2); }
body.dark-site .ab-wiz-chip.is-on { background: #2f6bff; border-color: #2f6bff; color: #ffffff; }
body.dark-site .ab-wiz-ico { background: rgba(127, 177, 255, 0.12); border-color: rgba(127, 177, 255, 0.28); color: #7fb1ff; }
body.dark-site .ab-res-list,
body.dark-site .ab-res-lib { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.13); }
body.dark-site .ab-res-lib { border-left-color: #5b93ff; }
body.dark-site .ab-res-list li { border-top-color: rgba(255, 255, 255, 0.08); }
body.dark-site .ab-res-note { background: rgba(255, 255, 255, 0.05); border-left-color: #5b93ff; }
body.dark-site .ab-res-more-list li { border-top-color: rgba(255, 255, 255, 0.14); }
body.dark-site .ab-wiz-live { border-top-color: rgba(255, 255, 255, 0.12); }
body.dark-site .ab-wiz-live.is-empty { background: rgba(255, 255, 255, 0.03); border-color: rgba(255, 255, 255, 0.22); }
body.dark-site .ab-res-empty-art svg { fill: rgba(127, 177, 255, 0.1); stroke: #7fb1ff; }
body.dark-site .ab-wiz-refine { background: rgba(255, 255, 255, 0.03); border-color: rgba(255, 255, 255, 0.2); }
body.dark-site .ab-res-lib-go,
body.dark-site .ab-res-see .ab-res-next-arrow { color: #7fb1ff; }

/* sections generiques des pages de service sans sequence */
body.dark-site.service-page .svc-hero,
body.dark-site.service-page .svc-section { background: #0b1220; }
body.dark-site.service-page .svc-section-alt { background: #0d1627; border-color: rgba(255, 255, 255, 0.08); }
body.dark-site.service-page .svc-related { background: #0d1627; border-top-color: rgba(255, 255, 255, 0.08); }
body.dark-site.service-page .svc-related-list a { background: linear-gradient(180deg, #111c31 0%, #0e1829 100%); border-color: rgba(255, 255, 255, 0.13); }
body.dark-site.service-page .svc-related-list a:hover,
body.dark-site.service-page .svc-related-list a:focus-visible { border-color: rgba(127, 177, 255, 0.55); box-shadow: 0 16px 34px rgba(0, 0, 0, 0.45); }
body.dark-site.service-page .svc-rel-ico { background: rgba(127, 177, 255, 0.12); border-color: rgba(127, 177, 255, 0.28); color: #7fb1ff; }
body.dark-site.service-page .svc-rel-go { color: #7fb1ff; }
body.dark-site.service-page .svc-price { background: rgba(255, 255, 255, 0.05); border-color: rgba(127, 177, 255, 0.3); box-shadow: none; }
body.dark-site.service-page .svc-card,
body.dark-site.service-page .svc-steps li { background: #111c31; border-color: rgba(255, 255, 255, 0.13); }
body.dark-site.service-page .svc-group { background: #0d1627; }

/* retouches de specificite */
html body.dark-site .ab-wiz { background: #111c31; border-color: rgba(255, 255, 255, 0.13); box-shadow: none; }
html body.dark-site.service-page .faq-direct-link,
html body.dark-site.home-page .faq-direct-link { background: #2f6bff; border-color: #2f6bff; color: #ffffff; }
html body.dark-site .faq-direct-link:hover { background: #245cff; border-color: #245cff; color: #ffffff; }

/* confirmation d'envoi du devis (dans la carte) */
body.dark-site .qs-kicker { color: #7fb1ff; }
body.dark-site .qs-kicker time { background: rgba(127, 177, 255, 0.1); border-color: rgba(127, 177, 255, 0.3); color: #a9b6ca; }
body.dark-site .qs-title,
body.dark-site .qs-lead strong,
body.dark-site .qs-recap dd,
body.dark-site .qs-flow b { color: #f1f5fb; }
body.dark-site .qs-lead,
body.dark-site .qs-recap dt,
body.dark-site .qs-flow span,
body.dark-site .qs-reset { color: #a9b6ca; }
body.dark-site .qs-warning { background: rgba(251, 146, 60, 0.12); border-color: rgba(251, 146, 60, 0.4); color: #fdba74; }
body.dark-site .qs-sheet { background: #0d1627; border-color: rgba(255, 255, 255, 0.14); }
body.dark-site .qs-sheet-head { background: rgba(255, 255, 255, 0.05); border-bottom-color: rgba(255, 255, 255, 0.12); color: #a9b6ca; }
body.dark-site .qs-sheet-head .qs-ref { background: rgba(127, 177, 255, 0.12); border-color: rgba(127, 177, 255, 0.3); color: #9cc0ff; }
body.dark-site .qs-recap,
body.dark-site .qs-recap div { background: transparent; border-bottom-color: rgba(255, 255, 255, 0.08); }
body.dark-site .qs-node { background: #0d1627; border-color: rgba(127, 177, 255, 0.35); }
body.dark-site .qs-flow .is-done .qs-node { background: #3b7bff; border-color: #3b7bff; }
body.dark-site .qs-flow .is-active .qs-node { border-color: #5b93ff; }
body.dark-site .qs-flow .is-active span,
body.dark-site .qs-reset b { color: #7fb1ff; }

/* points cles du bandeau services : texte clair */
body.dark-site.home-page .services-proof li,
body.dark-site.home-page .services-proof li span,
body.dark-site.home-page .services-proof li strong { color: #e6edf7; }
body.dark-site.home-page .services-proof { border-color: rgba(255, 255, 255, 0.14); }
body.dark-site.home-page .services-proof li { border-top-color: rgba(255, 255, 255, 0.14); background: transparent; }

/* illustrations des cartes de service : rendus deja sombres (voir style.css, « SERVICES : rendus photoréalistes »), aucune inversion */

/* realisations : bloc « flux indisponible » */
html body.dark-site.home-page .realisations-fallback { border-color: rgba(255, 255, 255, 0.18); color: #a9b6ca; box-shadow: none; }
html body.dark-site.home-page .realisations-fallback p { color: #a9b6ca; }
html body.dark-site.home-page .realisations-fallback-title { color: #f1f5fb; }
html body.dark-site.home-page .realisations-fallback a { color: #ffffff; }
html body.dark-site.home-page .realisations-fallback a:hover { background: #245cff; border-color: #245cff; }
html body.dark-site.home-page .instagram-feed-status { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); color: #a9b6ca; }
html body.dark-site.home-page .realisations-fallback { background: rgba(255, 255, 255, 0.05) !important; }
html body.dark-site.home-page p.realisations-fallback-title { color: #f1f5fb; }

/* contrastes : reperes du menu, compteurs, accents */
html body.dark-site .site-header.is-on-dark { --hd-idx: rgba(255, 255, 255, 0.62); }
body.dark-site .quote-wizard-count span { color: #a9b6ca; }
body.dark-site .hero-kicker span,
body.dark-site.home-page .hero-kicker { color: #a9b6ca; }

/* ====================== BOUTONS : standard sombre (surcharge buttons.css) ====================== */

body.dark-site { --btn-link: #a9c8ff; --btn-disabled: #1c2a4a; }

html body.dark-site :is(
    .hero-btn-secondary, .retro-secondary-btn, .step-prev, .qs-call,
    .consent-btn:not([data-choice="granted"]),
    .google-reviews-actions a, .instagram-feed-actions a
) {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 255, 255, 0.26) !important;
    color: #f1f5fb !important;
    box-shadow: none !important;
}

html body.dark-site :is(
    .hero-btn-secondary, .retro-secondary-btn, .step-prev, .qs-call,
    .consent-btn:not([data-choice="granted"]),
    .google-reviews-actions a, .instagram-feed-actions a
):is(:hover, :focus-visible):not(:disabled):not([aria-disabled="true"]) {
    background: rgba(255, 255, 255, 0.13) !important;
    border-color: rgba(255, 255, 255, 0.5) !important;
    color: #ffffff !important;
}

/* lien d'aide (« Poser ma question », « Voir tous les avis ») : bouton bleu plein */
html body.dark-site .faq-direct-link {
    background: #245cff !important;
    border-color: #245cff !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

html body.dark-site .faq-direct-link:is(:hover, :focus-visible) {
    background: #3b7bff !important;
    border-color: #3b7bff !important;
    color: #ffffff !important;
}

/* boutons inactifs : bleu nuit lisible, pas de gris */
html body.dark-site :is(.step-next, .step-prev, .step-submit):is(:disabled, [aria-disabled="true"]) {
    background: #1c2a4a !important;
    border-color: rgba(127, 177, 255, 0.35) !important;
    color: #c7d3e8 !important;
    opacity: 1 !important;
    box-shadow: none !important;
}

/* liens et textes qui restaient sombres */
html body.dark-site .faq-item[open] summary .faq-question,
html body.dark-site .faq-item[open] summary { color: #ffffff; }
body.dark-site .google-reviews-fallback a { color: #8ab4f8; }
body.dark-site main p a:not([class]),
body.dark-site .faq-content a:not([class]) { color: #7fb1ff; }
html body.dark-site.home-page .realisations-fallback a { background: #245cff !important; border-color: #245cff !important; }
body.dark-site .process-step-number { background: rgba(255, 255, 255, 0.1); color: #ffffff; }

/* a propos : titres et reperes */
html body.dark-site .ab-story-copy h2,
html body.dark-site .ab-know-copy h2,
html body.dark-site .about-section-head h2,
html body.dark-site.about-page h2 { color: #f1f5fb; }
html body.dark-site .section-kicker-number,
html body.dark-site .ab-eng-card .ab-eng-index { color: #a9b6ca; }
html body.dark-site .ab-ledger li > :not(.ab-tick) { opacity: 0.8; }
html body.dark-site .ab-ledger li.is-on > :not(.ab-tick) { opacity: 1; }
html body.dark-site .ab-ledger li.is-on i { color: #7fb1ff; }
html body.dark-site .faq-item[open]:not(.is-closing) .faq-question,
html body.dark-site :root .faq-question,
:root body.dark-site .faq-item[open]:not(.is-closing) .faq-question { color: #ffffff; }
:root body.dark-site .faq-question { color: #f1f5fb; }

/* matieres : lignes « non communique » et pastilles de ton */
body.dark-site .fdm-viz .fdm-viz-row.is-nd .fdm-viz-val,
body.dark-site .fdm-viz .fdm-viz-row.is-nd .fdm-viz-name { color: rgba(255, 255, 255, 0.62); }
body.dark-site .fdm-lib .fdm-gl h4 small { color: #eaf1ff; }
body.dark-site .fdm-lib .fdm-gl-ends small,
body.dark-site .fdm-lib small { color: #aebbd2; }
html body.dark-site .ab-res-kicker,
html body.dark-site .ab-rec .ab-res-kicker { color: #9cc0ff; }

/* bandeau services : plus de cadre, le titre et les points cles reposent directement sur le fond */
html body.dark-site.home-page .services-header { background: transparent; border: 0; box-shadow: none; border-radius: 0; }
html body.dark-site.home-page .services-header::before { display: none; }

/* plan de l'engrenage : trace blanc */
html body.dark-site .wo-outline { stroke: #ffffff; }
html body.dark-site .wo-guides path { stroke: rgba(255, 255, 255, 0.4); }
html body.dark-site .wo-nozzle { stroke: #7fb1ff; }
html body.dark-site .wo-nozzle circle { fill: #7fb1ff; }
html body.dark-site .wo-dim path { stroke: #9cc0ff; }
html body.dark-site .wo-dim text { fill: #f1f5fb; }
html body.dark-site .wo-dim .wo-dim-sub { fill: #a9b6ca; }

/* viseur des cartes clients : trace blanc */
html body.dark-site .cx-h { background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.75) 0 4px, transparent 4px 8px); }
html body.dark-site .cx-v { background: repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.75) 0 4px, transparent 4px 8px); }
html body.dark-site .cx-label { background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.35); color: #ffffff; }
html body.dark-site .cx-scan { background: #ffffff; box-shadow: 0 0 10px rgba(127, 177, 255, 0.9); }
html body.dark-site .cx-frame {
    background:
        linear-gradient(#ffffff, #ffffff) top left / 12px 2px no-repeat,
        linear-gradient(#ffffff, #ffffff) top left / 2px 12px no-repeat,
        linear-gradient(#ffffff, #ffffff) top right / 12px 2px no-repeat,
        linear-gradient(#ffffff, #ffffff) top right / 2px 12px no-repeat,
        linear-gradient(#ffffff, #ffffff) bottom left / 12px 2px no-repeat,
        linear-gradient(#ffffff, #ffffff) bottom left / 2px 12px no-repeat,
        linear-gradient(#ffffff, #ffffff) bottom right / 12px 2px no-repeat,
        linear-gradient(#ffffff, #ffffff) bottom right / 2px 12px no-repeat;
}
html body.dark-site .cx-name { color: #ffffff; }
html body.dark-site .service-card-media .cx-h,
html body.dark-site .service-card-media .cx-v { opacity: 0; }

/* avis : cadran et barres en couleur */
html body.dark-site .rv-ring { stroke: rgba(255, 255, 255, 0.12); }
html body.dark-site .rv-arc { stroke: #f5b50a; filter: drop-shadow(0 0 6px rgba(245, 181, 10, 0.55)); stroke-linecap: round; }
html body.dark-site .rv-bars-fill { background: linear-gradient(90deg, #f59e0b, #ffd25a); box-shadow: 0 0 10px rgba(245, 181, 10, 0.4); }
html body.dark-site .rv-bars-track { background: rgba(255, 255, 255, 0.1); }
html body.dark-site .rv-label { color: #7fb1ff; }
html body.dark-site .rv-score b { color: #ffffff; }
html body.dark-site .rv-track .google-review-stars i { color: rgba(255, 255, 255, 0.22); }
html body.dark-site .rv-track .google-review-stars i.is-on,
html body.dark-site .rv-track .google-review-stars .on { color: #f5b50a; }
html body.dark-site .rv-board { background: linear-gradient(135deg, #111c31 0%, #14264a 100%); border-color: rgba(127, 177, 255, 0.22); }

/* FAQ : pictos + / - bien visibles */
html body.dark-site .faq-toggle { background: rgba(127, 177, 255, 0.16); border: 1px solid rgba(127, 177, 255, 0.45); box-shadow: none; }
html body.dark-site .faq-toggle::before,
html body.dark-site .faq-toggle::after { background: #ffffff; }
html body.dark-site .faq-item[open] .faq-toggle { background: #245cff; border-color: #245cff; }
html body.dark-site .faq-item[open] .faq-toggle::before,
html body.dark-site .faq-item[open] .faq-toggle::after { background: #ffffff; }
html body.dark-site .faq-item summary:hover .faq-toggle { background: rgba(127, 177, 255, 0.3); }
html body.dark-site .faq-num,
html body.dark-site .faq-item summary > span:first-child:not(.faq-question) { color: #9cc0ff; }

/* cartes clients : plus de balayage ni de rideau a l'entree (il rejouait a chaque passage et laissait un trait blanc) */
html body.dark-site .cx-scan { display: none !important; }
html body.dark-site .clients.clients-anim .clients-logo-group:first-child .client-logo-card img,
html body.dark-site .clients.clients-anim.is-in .clients-logo-group:first-child .client-logo-card img { clip-path: none; transition: filter 0.35s ease, opacity 0.35s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

/* ====================== FORMULAIRE : controles des etapes suivantes ====================== */

html body.dark-site :is(.qty-chips button, .color-swatches button, .deadline-card-body, .cselect-trigger) {
    background: #0d1627;
    border-color: rgba(255, 255, 255, 0.2);
    color: #f1f5fb;
    box-shadow: none;
}
html body.dark-site :is(.qty-chips button:hover, .color-swatches button:hover, .deadline-card:hover .deadline-card-body, .cselect-trigger:hover) { background: #15233c; border-color: rgba(127, 177, 255, 0.55); color: #ffffff; }
html body.dark-site :is(.qty-chips button.is-selected, .color-swatches button.is-selected, .deadline-card input:checked + .deadline-card-body, .cselect.is-open .cselect-trigger) { background: rgba(47, 107, 255, 0.22); border-color: #5b93ff; color: #ffffff; }
html body.dark-site .deadline-card-body b { color: #ffffff; }
html body.dark-site .deadline-card-body small { color: #a9b6ca; }
html body.dark-site .color-swatches button span { color: inherit; }
html body.dark-site .cselect-value { color: #f1f5fb; }
html body.dark-site .cselect-trigger svg { color: #9cc0ff; stroke: currentColor; }
html body.dark-site .cselect-panel { background: #111c31; border-color: rgba(255, 255, 255, 0.18); box-shadow: 0 24px 50px -16px rgba(0, 0, 0, 0.8); }
html body.dark-site .cselect-label { color: #a9b6ca; }
html body.dark-site .cselect-option { background: transparent; color: #e6edf7; }
html body.dark-site .cselect-option:hover,
html body.dark-site .cselect-option:focus-visible { background: rgba(127, 177, 255, 0.16); color: #ffffff; }
html body.dark-site .cselect-option.is-selected { background: rgba(47, 107, 255, 0.28); color: #ffffff; }
html body.dark-site .cselect-option.is-selected span { color: #ffffff; }
html body.dark-site .field-optional { color: #a9b6ca; }
html body.dark-site .deadline-cards legend { color: #d6dfec; }

/* tuiles de choix (type de projet, etc.) */
html body.dark-site .choice-tiles button { background: #0d1627; border-color: rgba(255, 255, 255, 0.2); color: #f1f5fb; box-shadow: none; }
html body.dark-site .choice-tiles button span,
html body.dark-site .choice-tiles button b,
html body.dark-site .choice-tiles button strong { color: #f1f5fb; }
html body.dark-site .choice-tiles button small,
html body.dark-site .choice-tiles button em { color: #a9b6ca; }
html body.dark-site .choice-tiles button:hover { background: #15233c; border-color: rgba(127, 177, 255, 0.55); }
html body.dark-site .choice-tiles button.is-selected,
html body.dark-site .choice-tiles button[aria-checked="true"],
html body.dark-site .choice-tiles button[aria-pressed="true"] { background: rgba(47, 107, 255, 0.24); border-color: #5b93ff; }
html body.dark-site .choice-tiles button.is-selected span,
html body.dark-site .choice-tiles button[aria-checked="true"] span { color: #ffffff; }
html body.dark-site .cc-ph { color: #9aa8bd; }
html body.dark-site .rv-count,
html body.dark-site .rv-slider-foot span { color: #a9b6ca; }
html body.dark-site .rv-count b { color: #ffffff; }


/* mobile : boutons du hero de la page matieres, pleine largeur et libelle centre (comme les pages services) */
@media (max-width: 560px) {
    html body.dark-site .intro-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; justify-items: stretch; }
    html body.dark-site .intro-actions > .hero-btn { width: 100% !important; max-width: none !important; justify-content: center; text-align: center; }
}

/* ---- envoi de fichiers du formulaire de devis : panneau, ligne de fichier, retrait, etats pret / chargement ---- */
html body.dark-site .file-progress { background: #0d1627; border-color: rgba(127, 177, 255, 0.3); box-shadow: none; }
html body.dark-site .file-progress-name,
html body.dark-site .file-progress-item-name { color: #f1f5fb; }
html body.dark-site .file-progress-percent { color: #7fb1ff; }
html body.dark-site .file-progress-bar { background: rgba(127, 177, 255, 0.18); }
html body.dark-site .file-progress-note { color: #a9b6ca; }
html body.dark-site .file-progress[data-state="ready"] .file-progress-note { background: rgba(34, 197, 94, 0.16); color: #86e8ae; }
html body.dark-site .file-progress-item { background: #111c31; border-color: rgba(255, 255, 255, 0.14); box-shadow: none; }
html body.dark-site .file-progress-item-size { color: #a9b6ca; }
html body.dark-site .file-progress-thumb { background: #1a2a4a; border-color: rgba(255, 255, 255, 0.16); }
html body.dark-site .file-progress-thumb-fallback.is-loading {
    color: #a9b6ca;
    background: linear-gradient(110deg, #16233d 30%, #22345a 50%, #16233d 70%) 0 0 / 200% 100%;
}
html body.dark-site .file-progress-remove { background: transparent; color: #a9b6ca; border-color: rgba(255, 255, 255, 0.28); }
html body.dark-site .file-progress-remove:hover,
html body.dark-site .file-progress-remove:focus-visible { background: rgba(239, 68, 68, 0.2); border-color: #f87171; color: #fecaca; }
html body.dark-site .file-signature-warning { background: rgba(245, 158, 11, 0.14); border-color: rgba(245, 158, 11, 0.5); color: #fcd9a0; }

/* ====================== delais : Economique (€) / Standard (€€) / Rapide (€€€), fond de signes euro, trois couleurs ====================== */
html body.dark-site .deadline-eco { --dl: 74, 222, 128; --dl-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46'%3E%3Ctext x='8' y='31' font-family='Arial,Helvetica,sans-serif' font-size='24' font-weight='700' fill='%234ade80' fill-opacity='.2' transform='rotate(-16 23 23)'%3E%E2%82%AC%3C/text%3E%3C/svg%3E"); }
html body.dark-site .deadline-std { --dl: 96, 165, 250; --dl-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='46'%3E%3Ctext x='4' y='30' font-family='Arial,Helvetica,sans-serif' font-size='18' font-weight='700' fill='%2360a5fa' fill-opacity='.22' transform='rotate(-16 26 23)'%3E%E2%82%AC%E2%82%AC%3C/text%3E%3C/svg%3E"); }
html body.dark-site .deadline-fast { --dl: 251, 146, 60; --dl-bg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='58' height='46'%3E%3Ctext x='3' y='29' font-family='Arial,Helvetica,sans-serif' font-size='14' font-weight='700' fill='%23fb923c' fill-opacity='.24' transform='rotate(-16 29 23)'%3E%E2%82%AC%E2%82%AC%E2%82%AC%3C/text%3E%3C/svg%3E"); }

html body.dark-site .deadline-card .deadline-card-body {
    position: relative;
    overflow: hidden;
    gap: 8px;
    background: var(--dl-bg) 0 0 / auto 46px repeat, linear-gradient(135deg, rgba(var(--dl), 0.16), rgba(var(--dl), 0.04)), #0d1627;
    border-color: rgba(var(--dl), 0.5);
}
html body.dark-site .deadline-card:hover .deadline-card-body {
    background: var(--dl-bg) 0 0 / auto 46px repeat, linear-gradient(135deg, rgba(var(--dl), 0.24), rgba(var(--dl), 0.08)), #0d1627;
    border-color: rgb(var(--dl));
}
html body.dark-site .deadline-card input:checked + .deadline-card-body {
    background: var(--dl-bg) 0 0 / auto 46px repeat, linear-gradient(135deg, rgba(var(--dl), 0.36), rgba(var(--dl), 0.14)), #0d1627;
    border-color: rgb(var(--dl));
    box-shadow: 0 0 0 1px rgb(var(--dl)), 0 12px 26px -16px rgba(var(--dl), 0.9);
}
html body.dark-site .deadline-card input:checked + .deadline-card-body::after {
    background-color: rgb(var(--dl));
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230b1220' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.2 8.4 2.4 2.4 5-5.4'/%3E%3C/svg%3E");
}
html body.dark-site .deadline-card input:focus-visible + .deadline-card-body { outline-color: rgb(var(--dl)); }

html body.dark-site .deadline-price {
    align-self: flex-start;
    flex: none;
    padding: 4px 8px;
    border: 1px solid rgba(var(--dl), 0.55);
    border-radius: 4px;
    background: rgba(var(--dl), 0.18);
    color: rgb(var(--dl));
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.02em;
}
html body.dark-site .deadline-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
html body.dark-site .deadline-card-body small { color: #cdd6e4; }

@media (max-width: 480px) {
    html body.dark-site .deadline-card .deadline-card-body { flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px; padding-right: 40px; }
    html body.dark-site .deadline-card input:checked + .deadline-card-body::after { top: 50%; margin-top: -8px; }
}


/* ====================== formulaire de devis : ecran de choix (fichier / modelisation / les deux) ====================== */

/* les anciens onglets restent dans la page (le script les utilise) mais ne s'affichent plus : le choix se fait par les cartes ci-dessous */
html body .quote-card .quote-tabs { display: none; }

/* tant que le choix n'est pas fait, seul l'ecran de choix s'affiche (repli sans JavaScript : voir le <noscript> du formulaire) */
html body .quote-card:not(.has-choice) .quote-forms,
html body .quote-card:not(.has-choice) .quote-form { display: none !important; }
html body .quote-card.has-choice .quote-choice { display: none; }

.quote-choice { padding: 18px 16px 6px; }
.quote-choice .quote-title { margin-bottom: 14px; }

.quote-choice-cards { display: grid; gap: 10px; }

html body.dark-site .quote-choice-card {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 14px 16px;
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    background: #0d1627;
    color: #f1f5fb;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

html body.dark-site .quote-choice-card:hover,
html body.dark-site .quote-choice-card:focus-visible {
    border-color: #5b93ff;
    background: #15233c;
}

html body.dark-site .quote-choice-card:focus-visible { outline: 2px solid #5b93ff; outline-offset: 2px; }
html body.dark-site .quote-choice-card:active { transform: scale(0.985); }

.quote-choice-icon {
    flex: none;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 4px;
    background: rgba(127, 177, 255, 0.14);
    color: #9cc0ff;
}

.quote-choice-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.quote-choice-text b { font-size: 1rem; font-weight: 650; color: #ffffff; }
.quote-choice-text small { font-size: 0.8rem; line-height: 1.35; color: #a9b6ca; }

/* resume du choix, au-dessus de l'etape 1 ; disparait des l'etape 2 comme les onglets */
.quote-chosen {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 12px 14px 0;
    padding: 8px 12px;
    border: 1px solid rgba(127, 177, 255, 0.3);
    border-radius: 4px;
    background: rgba(47, 107, 255, 0.12);
    color: #cdd6e4;
    font-size: 0.82rem;
}

.quote-chosen[hidden] { display: none; }
.quote-chosen-label b { color: #ffffff; font-weight: 650; }

.quote-chosen-change {
    flex: none;
    min-height: 36px;
    padding: 0 10px;
    border: 0;
    background: transparent;
    color: #9cc0ff;
    font: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.quote-chosen-change:hover,
.quote-chosen-change:focus-visible { color: #ffffff; }

html body .quote-card.is-past-choice .quote-chosen { display: none; }

@media (max-width: 480px) {
    .quote-choice { padding: 16px 14px 4px; }
    html body.dark-site .quote-choice-card { padding: 12px 14px; gap: 12px; }
    .quote-choice-icon { width: 42px; height: 42px; }
}

/* bureau : l ecran de choix a la hauteur du formulaire (etape 1), la carte ne saute pas au choix */
@media (min-width: 769px) {
    html body .quote-card:not(.has-choice) .quote-choice { min-height: 496px; display: flex; flex-direction: column; justify-content: center; }
}

/* ecran de choix : cartes plus lisibles (fleche, filet d'accent, icone qui s'allume au survol) */
html body.dark-site .quote-choice-card { position: relative; overflow: hidden; padding-right: 44px; }
html body.dark-site .quote-choice-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #2f6bff; transform: scaleY(0); transform-origin: center; transition: transform 0.25s ease; }
html body.dark-site .quote-choice-card::after { content: ""; position: absolute; right: 16px; top: 50%; width: 9px; height: 9px; border: solid #7fb1ff; border-width: 2px 2px 0 0; transform: translate(0, -50%) rotate(45deg); opacity: 0.7; transition: transform 0.25s ease, opacity 0.25s ease; }
html body.dark-site .quote-choice-card:hover::before,
html body.dark-site .quote-choice-card:focus-visible::before { transform: scaleY(1); }
html body.dark-site .quote-choice-card:hover::after,
html body.dark-site .quote-choice-card:focus-visible::after { transform: translate(4px, -50%) rotate(45deg); opacity: 1; }
html body.dark-site .quote-choice-card:hover .quote-choice-icon,
html body.dark-site .quote-choice-card:focus-visible .quote-choice-icon { background: #2f6bff; color: #fff; }
.quote-choice-icon { transition: background-color 0.2s ease, color 0.2s ease; }
.quote-choice-hint { margin: 14px 2px 0; font-size: 0.78rem; color: #8fa0b8; text-align: center; }
@media (min-width: 769px) {
    .quote-choice-cards { gap: 14px; }
    html body.dark-site .quote-choice-card { padding: 20px 48px 20px 20px; gap: 18px; }
    .quote-choice-icon { width: 54px; height: 54px; }
    .quote-choice-text b { font-size: 1.08rem; }
    .quote-choice-text small { font-size: 0.86rem; }
}
@media (prefers-reduced-motion: reduce) {
    html body.dark-site .quote-choice-card::before, html body.dark-site .quote-choice-card::after, .quote-choice-icon { transition: none; }
}

/* bureau : les cartes se repartissent sur toute la hauteur de l'ecran de choix (pas de vide autour) */
@media (min-width: 769px) {
    html body .quote-card:not(.has-choice) .quote-choice { justify-content: flex-start; }
    html body .quote-card:not(.has-choice) .quote-choice-cards { flex: 1; grid-auto-rows: 1fr; }
    html body.dark-site .quote-choice-card { padding-top: 0; padding-bottom: 0; }
    .quote-choice-icon { width: 60px; height: 60px; }
    .quote-choice-text b { font-size: 1.15rem; }
    .quote-choice-hint { margin-top: 16px; }
}

/* titre de l'ecran de choix : meme mise en page que les titres d'etape (icone a gauche, texte centre) */
.quote-choice .quote-title { display: flex; align-items: center; gap: 12px; }

/* ecran de choix : meme marge en bas qu'en haut (la ligne d'aide a ete retiree) ; filet d'accent invisible au repos (un point restait visible) */
.quote-choice { padding-bottom: 18px; }
@media (max-width: 480px) { .quote-choice { padding-bottom: 16px; } }
html body.dark-site .quote-choice-card::before { opacity: 0; transition: transform 0.25s ease, opacity 0.2s ease; }
html body.dark-site .quote-choice-card:hover::before,
html body.dark-site .quote-choice-card:focus-visible::before { opacity: 1; }

/* telephone : boucles decoratives qui obligent le navigateur a REPEINDRE la zone a chaque image (ombre, bordure, fond, position) : figees.
   Les animations de transform / opacity (marquee, flottement, anneaux) restent : elles passent par le processeur graphique. */
@media (max-width: 700px), (hover: none) {
    .hero-tag-b i,
    .workorder-status i,
    html body .ft .ft-open.is-open i,
    html body .ft.fx.is-in .ft-ico,
    :root body .quote-card::before,
    .hero.hero-anim.is-in .quote-frame,
    .hero-flow li::before,
    .workorder-steps li::before,
    .clients-belt,
    .service-path::after,
    .intro-scroll i::after,
    .file-progress-thumb-fallback.is-loading {
        animation: none !important;
    }

    body.home-page .services-cta::before,
    body.home-page .cta-final .container::before,
    body.about-page .cta-final .container::before {
        animation: none !important;
        opacity: 0 !important;
    }
}
