/* The control is the only intentional addition to the accepted light view. */
.logo .brand-logo--dark { display: none; }
.person-monogram .brand-symbol--dark { display: none; }
:root[data-theme="dark"] .person-monogram .brand-symbol--light { display: none; }
:root[data-theme="dark"] .person-monogram .brand-symbol--dark { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .person-monogram .brand-symbol--light { display: none; }
  :root:not([data-theme]) .person-monogram .brand-symbol--dark { display: block; }
}
.theme-control { position: relative; flex: 0 0 auto; margin: 0; }
.theme-control[hidden] { display: none !important; }
.theme-menu { position: relative; margin: 0; border: 0; padding: 0; }
.theme-toggle { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; list-style: none; cursor: pointer; color: inherit; }
.theme-toggle::-webkit-details-marker { display: none; }
.theme-toggle .theme-moon { display: none; }
.theme-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.theme-menu[open] > .theme-toggle, .theme-toggle:hover { border-color: var(--brand); }
.theme-options { position: absolute; z-index: 60; top: calc(100% + 8px); right: 0; width: min(240px, calc(100vw - 36px)); margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); color: var(--ink); box-shadow: 0 12px 28px rgb(14 40 55 / 18%); }
.theme-options legend { float: none; width: auto; margin-bottom: 6px; padding: 0; font-size: 13px; font-weight: 700; }
.theme-options label { display: grid; grid-template-columns: 20px 1fr; gap: 0 10px; align-items: center; min-height: 44px; font-size: 14px; cursor: pointer; }
.theme-options small { grid-column: 2; font-size: 11px; color: var(--muted); }
.theme-options input { width: 16px; height: 16px; accent-color: var(--brand); }
.theme-toggle:focus-visible, .theme-options input:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
@media (min-width: 1101px) { .site-header { gap: 16px; } .site-header nav { gap: clamp(10px, 1.25vw, 21px); } }
@media (max-width: 1100px) { .site-header { column-gap: 12px; } .site-header .logo { width: min(192px, calc(100% - 164px)); } .site-header .theme-control { order: 2; } .site-header #primary-nav { order: 3; } }
@media (max-width: 359px) { .site-header .logo { flex-basis: 100%; } .site-header .menu-toggle { order: 1; } }

/* Charbon et bleu FabWeb. --ink and --paper keep their inverse-panel roles. */
:root[data-theme="dark"] {
    --white: #1D2732;
    --muted: #BAC5CF;
    --line: #425567;
    --dark-line: #425567;
    --sage: #203B48;
    --coral: #263442;
    --brand: #78C9E8;
    --brand-hover: #A6DEF2;
    --danger: #FFA8B7;
    color-scheme: dark;
}
:root[data-theme="dark"] body { background: #151B22; color: #F3F5F7; }
:root[data-theme="dark"] :is(.site-header, .inner-hero, .content-hero, .work-validated .wv-section:first-child) { background: #1D2732; color: #F3F5F7; border-color: #425567; }
:root[data-theme="dark"] .logo { background: transparent; padding: 0; border-radius: 0; }
:root[data-theme="dark"] .logo .brand-logo--light { display: none; }
:root[data-theme="dark"] .logo .brand-logo--dark { display: block; }
:root[data-theme="dark"] :is(.theme-options, .site-header .nav-services__list) { background: #263442; color: #F3F5F7; border-color: #7E95A7; }
:root[data-theme="dark"] :is(.theme-toggle, .menu-toggle) { color: #F3F5F7; border-color: #7E95A7; }
:root[data-theme="dark"] .theme-toggle .theme-sun { display: none; }
:root[data-theme="dark"] .theme-toggle .theme-moon { display: block; }
:root[data-theme="dark"] .site-header .nav-services__list a:is(:hover, [aria-current="page"]) { background: #203B48; }
:root[data-theme="dark"] :is(.button, .nav-contact, [data-slot="button"], .inner-page .home-button, .editorial-cta, .contact-page button[type="submit"], .error-page__action--primary) { background: #78C9E8; color: #10232D !important; }
:root[data-theme="dark"] :is(.button, .nav-contact, [data-slot="button"], .inner-page .home-button, .editorial-cta, .contact-page button[type="submit"], .error-page__action--primary):hover { background: #A6DEF2; color: #10232D !important; }
:root[data-theme="dark"] :is(.button-light, .inner-final .home-button, .endcap .button) { background: #F3F5F7; color: #10232D !important; border-color: #F3F5F7; }
:root[data-theme="dark"] :is(.button-light, .inner-final .home-button, .endcap .button):hover { background: #A6DEF2; border-color: #A6DEF2; }
:root[data-theme="dark"] :is(a, summary, button, input, select, textarea):focus-visible { outline-color: #78C9E8; box-shadow: 0 0 0 4px #151B22; }
:root[data-theme="dark"] :is(.hero-copy em, .inner-page a, .content-page a, .editorial-home-followup a, .service-section__link, .text-link, .error-page__action--secondary) { color: #78C9E8; }
:root[data-theme="dark"] :is(.hero-copy em, .inner-page a, .content-page a, .editorial-home-followup a, .service-section__link, .text-link, .error-page__action--secondary):hover { color: #A6DEF2; }
:root[data-theme="dark"] :is(.public-breadcrumb, .inner-page figcaption, .editorial-proof figcaption, .editorial-example .example-caption, .contact-page .form-text, .contact-page .field-help, .contact-page .help-text, .contact-privacy) { color: #BAC5CF; }
:root[data-theme="dark"] .public-breadcrumb [aria-current] { color: #F3F5F7; }
:root[data-theme="dark"] :is(.benefit-composition, .technical-strip, .method-overview, .site-footer, .inner-final, .site-blueprint, .endcap, .content-panels > [data-format]:nth-child(2)) { background: #111820; color: #F3F5F7; }
:root[data-theme="dark"] :is(.benefit-composition li, .path-composition li, .format-detail > article[data-format], .service-panel.cream, .faq-stack details, .section-questions details, .editorial-flow > li) { background: #344B5D !important; color: #F3F5F7 !important; border-color: #7E95A7; }
:root[data-theme="dark"] :is(.benefit-composition li:nth-child(2), .path-composition li:nth-child(2), .service-panel.sage, .process-stage:nth-child(2n) .stage-sheet, .editorial-note, .contact-next-steps, .about-working-note, .v34-page figure.editorial-example, .selection-context:not(:empty)) { background: #203B48 !important; color: #F3F5F7; }
:root[data-theme="dark"] .benefit-composition.path-composition li:nth-child(2) { background: #285A70 !important; border-color: #78C9E8; }
:root[data-theme="dark"] :is(.benefit-composition li:nth-child(4), .path-composition li:nth-child(4)) { background: transparent !important; color: #F3F5F7 !important; border-color: #7E95A7; }
:root[data-theme="dark"] .path-tile { color: #F3F5F7; }
:root[data-theme="dark"] .path-tile:focus-visible { outline-color: #78C9E8; box-shadow: 0 0 0 6px #111820; }
:root[data-theme="dark"] :is(.inner-band, .wv-section:nth-of-type(even), .content-section--tint, .story-section:nth-of-type(2n+1), .faq-section, #services .service-section--sage) { background: #203B48; color: #F3F5F7; }
:root[data-theme="dark"] :is(#services .service-section--white, .project-overview, .inner-section, .content-section) { background: #151B22; color: #F3F5F7; }
:root[data-theme="dark"] #services { color: #F3F5F7; }
:root[data-theme="dark"] #services .service-section__code span { color: #BAC5CF; }
:root[data-theme="dark"] #services .service-section__link { color: #78C9E8; }
:root[data-theme="dark"] :is(.sv-item, .bm-possibilities > li, .bm-steps > li, .bm-operations > article, .fv-columns > article, .fv-pricing > article, .st-ledger > article, .studio-price, .service-ledger > article, .fv-services details, .studio-person, .bm-evolution, .st-conclusion, .fv-boundary, .studio-note) { background: #344B5D; color: #F3F5F7; border-color: #7E95A7; border-top-color: #78C9E8; }
:root[data-theme="dark"] :is(.sites-v9 #conception .sv-item, .business-v11 #conception .bm-steps > li) { background: transparent; border-top-color: #425567; }
:root[data-theme="dark"] :is(.studio-price--featured, .content-status, .contact-warning) { background: #203B48; color: #F3F5F7; }
:root[data-theme="dark"] :is(.editorial-example figcaption, .service-section__code, .service-section__link) { color: #F3F5F7; }
:root[data-theme="dark"] :is(.format-card, #services .format-card, .service-formats .format-card) { --format-ink: #F3F5F7; --format-muted: #BAC5CF; --format-line: #7E95A7; background: #344B5D; color: #F3F5F7; border-color: #7E95A7; box-shadow: none; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card__header { background: #1D2732; border-color: #425567; box-shadow: none; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card--tailored .format-card__header { background: #203B48; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card--featured { --format-muted: #F3F5F7; background: #285A70; border-color: #7E95A7; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card--featured .format-card__header { background: #203B48; border-color: #7E95A7; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card > a { background: #1D2732; border-color: #7E95A7; color: #78C9E8; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card > a:hover { background: #203B48; border-color: #A6DEF2; color: #A6DEF2; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card--featured > a { background: #78C9E8; color: #10232D; border-color: #78C9E8; }
:root[data-theme="dark"] :is(#services, .service-formats) .format-card--featured > a:hover { background: #A6DEF2; color: #10232D; }
:root[data-theme="dark"] :is(.content-panels > [data-format]:nth-child(3), .editorial-flow > li, .contact-next-steps) { border-color: #425567; }
:root[data-theme="dark"] .content-panels > [data-format]:nth-child(3) { background: #203B48; color: #F3F5F7; }
:root[data-theme="dark"] :is(.format-detail > article[data-format], .editorial-flow > li) a { color: #78C9E8; }
:root[data-theme="dark"] :is(.contact-page input:not([type="hidden"]), .contact-page select, .contact-page textarea) { background: #1D2732; color: #F3F5F7; border-color: #7E95A7; }
:root[data-theme="dark"] .contact-page :is(input, textarea)::placeholder { color: #BAC5CF; opacity: 1; }
:root[data-theme="dark"] .contact-page :is(input, textarea, select):focus-visible { border-color: #78C9E8; }
:root[data-theme="dark"] :is(.contact-alert, [data-contact-unavailable]) { color: #FFA8B7; background: #3A212C; border-color: #FFA8B7; }
:root[data-theme="dark"] .contact-page .form-error-message { color: #FFA8B7; }
:root[data-theme="dark"] :is(.alert-success) { color: #9CDBC0; background: #1C352D; border-color: #9CDBC0; }
:root[data-theme="dark"] :is(input, textarea, select)[aria-invalid="true"] { border-color: #FFA8B7 !important; }
:root[data-theme="dark"] :is(.site-footer, .footer-name, .inner-final h2, .inner-final p) { color: #F3F5F7; }
:root[data-theme="dark"] .site-footer a { color: #A6DEF2; }
:root[data-theme="dark"] :is(.project-image, .project-preview:nth-child(2) .project-image) { background: #203B48; }
:root[data-theme="dark"] .project-image img { border-color: #7E95A7; }
:root[data-theme="dark"] :is(.person-monogram, .studio-person__monogram) { border-color: #425567; background: #263442; color: #F3F5F7; }
:root[data-theme="dark"] .skip-link { background: #263442; color: #F3F5F7; }

@media (prefers-color-scheme: dark) {

/* Charbon et bleu FabWeb. --ink and --paper keep their inverse-panel roles. */
:root:not([data-theme]) {
    --white: #1D2732;
    --muted: #BAC5CF;
    --line: #425567;
    --dark-line: #425567;
    --sage: #203B48;
    --coral: #263442;
    --brand: #78C9E8;
    --brand-hover: #A6DEF2;
    --danger: #FFA8B7;
    color-scheme: dark;
}
:root:not([data-theme]) body { background: #151B22; color: #F3F5F7; }
:root:not([data-theme]) :is(.site-header, .inner-hero, .content-hero, .work-validated .wv-section:first-child) { background: #1D2732; color: #F3F5F7; border-color: #425567; }
:root:not([data-theme]) .logo { background: transparent; padding: 0; border-radius: 0; }
:root:not([data-theme]) .logo .brand-logo--light { display: none; }
:root:not([data-theme]) .logo .brand-logo--dark { display: block; }
:root:not([data-theme]) :is(.theme-options, .site-header .nav-services__list) { background: #263442; color: #F3F5F7; border-color: #7E95A7; }
:root:not([data-theme]) :is(.theme-toggle, .menu-toggle) { color: #F3F5F7; border-color: #7E95A7; }
:root:not([data-theme]) .theme-toggle .theme-sun { display: none; }
:root:not([data-theme]) .theme-toggle .theme-moon { display: block; }
:root:not([data-theme]) .site-header .nav-services__list a:is(:hover, [aria-current="page"]) { background: #203B48; }
:root:not([data-theme]) :is(.button, .nav-contact, [data-slot="button"], .inner-page .home-button, .editorial-cta, .contact-page button[type="submit"], .error-page__action--primary) { background: #78C9E8; color: #10232D !important; }
:root:not([data-theme]) :is(.button, .nav-contact, [data-slot="button"], .inner-page .home-button, .editorial-cta, .contact-page button[type="submit"], .error-page__action--primary):hover { background: #A6DEF2; color: #10232D !important; }
:root:not([data-theme]) :is(.button-light, .inner-final .home-button, .endcap .button) { background: #F3F5F7; color: #10232D !important; border-color: #F3F5F7; }
:root:not([data-theme]) :is(.button-light, .inner-final .home-button, .endcap .button):hover { background: #A6DEF2; border-color: #A6DEF2; }
:root:not([data-theme]) :is(a, summary, button, input, select, textarea):focus-visible { outline-color: #78C9E8; box-shadow: 0 0 0 4px #151B22; }
:root:not([data-theme]) :is(.hero-copy em, .inner-page a, .content-page a, .editorial-home-followup a, .service-section__link, .text-link, .error-page__action--secondary) { color: #78C9E8; }
:root:not([data-theme]) :is(.hero-copy em, .inner-page a, .content-page a, .editorial-home-followup a, .service-section__link, .text-link, .error-page__action--secondary):hover { color: #A6DEF2; }
:root:not([data-theme]) :is(.public-breadcrumb, .inner-page figcaption, .editorial-proof figcaption, .editorial-example .example-caption, .contact-page .form-text, .contact-page .field-help, .contact-page .help-text, .contact-privacy) { color: #BAC5CF; }
:root:not([data-theme]) .public-breadcrumb [aria-current] { color: #F3F5F7; }
:root:not([data-theme]) :is(.benefit-composition, .technical-strip, .method-overview, .site-footer, .inner-final, .site-blueprint, .endcap, .content-panels > [data-format]:nth-child(2)) { background: #111820; color: #F3F5F7; }
:root:not([data-theme]) :is(.benefit-composition li, .path-composition li, .format-detail > article[data-format], .service-panel.cream, .faq-stack details, .section-questions details, .editorial-flow > li) { background: #344B5D !important; color: #F3F5F7 !important; border-color: #7E95A7; }
:root:not([data-theme]) :is(.benefit-composition li:nth-child(2), .path-composition li:nth-child(2), .service-panel.sage, .process-stage:nth-child(2n) .stage-sheet, .editorial-note, .contact-next-steps, .about-working-note, .v34-page figure.editorial-example, .selection-context:not(:empty)) { background: #203B48 !important; color: #F3F5F7; }
:root:not([data-theme]) .benefit-composition.path-composition li:nth-child(2) { background: #285A70 !important; border-color: #78C9E8; }
:root:not([data-theme]) :is(.benefit-composition li:nth-child(4), .path-composition li:nth-child(4)) { background: transparent !important; color: #F3F5F7 !important; border-color: #7E95A7; }
:root:not([data-theme]) .path-tile { color: #F3F5F7; }
:root:not([data-theme]) .path-tile:focus-visible { outline-color: #78C9E8; box-shadow: 0 0 0 6px #111820; }
:root:not([data-theme]) :is(.inner-band, .wv-section:nth-of-type(even), .content-section--tint, .story-section:nth-of-type(2n+1), .faq-section, #services .service-section--sage) { background: #203B48; color: #F3F5F7; }
:root:not([data-theme]) :is(#services .service-section--white, .project-overview, .inner-section, .content-section) { background: #151B22; color: #F3F5F7; }
:root:not([data-theme]) #services { color: #F3F5F7; }
:root:not([data-theme]) #services .service-section__code span { color: #BAC5CF; }
:root:not([data-theme]) #services .service-section__link { color: #78C9E8; }
:root:not([data-theme]) :is(.sv-item, .bm-possibilities > li, .bm-steps > li, .bm-operations > article, .fv-columns > article, .fv-pricing > article, .st-ledger > article, .studio-price, .service-ledger > article, .fv-services details, .studio-person, .bm-evolution, .st-conclusion, .fv-boundary, .studio-note) { background: #344B5D; color: #F3F5F7; border-color: #7E95A7; border-top-color: #78C9E8; }
:root:not([data-theme]) :is(.sites-v9 #conception .sv-item, .business-v11 #conception .bm-steps > li) { background: transparent; border-top-color: #425567; }
:root:not([data-theme]) :is(.studio-price--featured, .content-status, .contact-warning) { background: #203B48; color: #F3F5F7; }
:root:not([data-theme]) :is(.editorial-example figcaption, .service-section__code, .service-section__link) { color: #F3F5F7; }
:root:not([data-theme]) :is(.format-card, #services .format-card, .service-formats .format-card) { --format-ink: #F3F5F7; --format-muted: #BAC5CF; --format-line: #7E95A7; background: #344B5D; color: #F3F5F7; border-color: #7E95A7; box-shadow: none; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card__header { background: #1D2732; border-color: #425567; box-shadow: none; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card--tailored .format-card__header { background: #203B48; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card--featured { --format-muted: #F3F5F7; background: #285A70; border-color: #7E95A7; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card--featured .format-card__header { background: #203B48; border-color: #7E95A7; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card > a { background: #1D2732; border-color: #7E95A7; color: #78C9E8; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card > a:hover { background: #203B48; border-color: #A6DEF2; color: #A6DEF2; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card--featured > a { background: #78C9E8; color: #10232D; border-color: #78C9E8; }
:root:not([data-theme]) :is(#services, .service-formats) .format-card--featured > a:hover { background: #A6DEF2; color: #10232D; }
:root:not([data-theme]) :is(.content-panels > [data-format]:nth-child(3), .editorial-flow > li, .contact-next-steps) { border-color: #425567; }
:root:not([data-theme]) .content-panels > [data-format]:nth-child(3) { background: #203B48; color: #F3F5F7; }
:root:not([data-theme]) :is(.format-detail > article[data-format], .editorial-flow > li) a { color: #78C9E8; }
:root:not([data-theme]) :is(.contact-page input:not([type="hidden"]), .contact-page select, .contact-page textarea) { background: #1D2732; color: #F3F5F7; border-color: #7E95A7; }
:root:not([data-theme]) .contact-page :is(input, textarea)::placeholder { color: #BAC5CF; opacity: 1; }
:root:not([data-theme]) .contact-page :is(input, textarea, select):focus-visible { border-color: #78C9E8; }
:root:not([data-theme]) :is(.contact-alert, [data-contact-unavailable]) { color: #FFA8B7; background: #3A212C; border-color: #FFA8B7; }
:root:not([data-theme]) .contact-page .form-error-message { color: #FFA8B7; }
:root:not([data-theme]) :is(.alert-success) { color: #9CDBC0; background: #1C352D; border-color: #9CDBC0; }
:root:not([data-theme]) :is(input, textarea, select)[aria-invalid="true"] { border-color: #FFA8B7 !important; }
:root:not([data-theme]) :is(.site-footer, .footer-name, .inner-final h2, .inner-final p) { color: #F3F5F7; }
:root:not([data-theme]) .site-footer a { color: #A6DEF2; }
:root:not([data-theme]) :is(.project-image, .project-preview:nth-child(2) .project-image) { background: #203B48; }
:root:not([data-theme]) .project-image img { border-color: #7E95A7; }
:root:not([data-theme]) :is(.person-monogram, .studio-person__monogram) { border-color: #425567; background: #263442; color: #F3F5F7; }
:root:not([data-theme]) .skip-link { background: #263442; color: #F3F5F7; }
}

@media (max-width: 1100px) {
    .site-header:has(.theme-menu[open]) { max-height: none; overflow: visible; }
}
:root[data-theme="dark"] .path-composition .composition-caption::before { background: #111820; }
:root[data-theme="dark"] .method-overview li::before { background: #78C9E8; color: #10232D; }
:root[data-theme="dark"] .button.button-secondary:hover { background: #A6DEF2; color: #10232D; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme]) .path-composition .composition-caption::before { background: #111820; }
    :root:not([data-theme]) .method-overview li::before { background: #78C9E8; color: #10232D; }
    :root:not([data-theme]) .button.button-secondary:hover { background: #A6DEF2; color: #10232D; }
}
