/* =====================================================================
   dominium-theme.css
   Surcharge de palette pour le site public Dominium (ADR design).
   Ne modifie jamais style.css / responsive.css / plugin.min.css
   (fichiers du template TechCore, à garder resynchronisables).
   Charger APRES plugin.min.css, theme-spacing.min.css, style.css et
   responsive.css dans le layout public.

   Exigence stricte client : rendu final exclusivement noir / jaune / blanc.
   ===================================================================== */

:root {
    /* --- Variables de marque du template (assets/css/style.css :root) --- */
    --atf-thm-color: #FFC300;   /* était #1A73E8 (bleu) : accent principal, CTA, liens actifs */
    --atf-thm-black: #1c1c1c;   /* noir doux (09/10/2026, le noir pur #000 était trop dur ; était #0a165e à l'origine) : titres, fonds sombres */
    --atf-thm-base: #FFF6DB;    /* était #E8F0FE (bleu clair) : fonds teintés, badges, cercles icônes */

    /* --- Couleurs de survol / variantes dérivées, utilisées ponctuellement
       par des règles qui ne référencent pas --atf-thm-color directement --- */
    --dominium-accent-hover: #E6B000;
    --dominium-accent-light: #FFCF33;

    /* -----------------------------------------------------------------
       Typographie (Lot 1 — Fondations, brief section 5) : le template
       déclare --atf-ff-heading: "Rajdhani" (police condensée "ingénierie")
       dans son propre :root (style.css ligne 75). Décision Design : on la
       remplace par Inter — déjà chargée pour le corps de texte
       (--atf-ff-body, style.css ligne 74 + @import Google Fonts ligne 45,
       variable font 100..900, aucune requête réseau supplémentaire) —
       plutôt que d'introduire une 2e famille.
       Raisons : (1) Inter fait partie des polices suggérées par le brief
       (section 5 : Inter/Manrope/Geist/Plus Jakarta Sans/DM Sans), Rajdhani
       n'y figure pas et est un choix typique de template IT générique —
       l'audit UX (audit-uxui-2026-10.md §2) identifie justement "look
       template générique" comme le problème n°1 de direction artistique ;
       (2) un seul système typographique (une famille, plusieurs graisses)
       au lieu de deux est plus cohérent avec un vrai Design System
       (section 32 du brief) et plus simple à maintenir ; (3) Inter en
       graisse 700/800 donne des titres plus "puissants" (section 5 :
       "H1 très grand/puissant/court") que Rajdhani, dont les graisses
       hautes restent fines à cause du dessin condensé de la fonte.
       Vérifié visuellement (captures 375/768/1440) sur Accueil, Services,
       À propos après bascule : aucune régression de débordement, la
       graisse 700 déjà appliquée par défaut aux h1-h6 (style.css ligne
       117) suffit, aucune nouvelle requête de poids de police nécessaire. */
    --atf-ff-heading: "Inter", sans-serif;
}

/* =====================================================================
   DESIGN SYSTEM — tokens (Lot 1, brief section 32)
   Couche sémantique posée AU-DESSUS des variables historiques du template
   (--atf-*) : les nouveaux composants (hero, dropdown Services, et tout
   composant à venir dans les lots suivants) consomment ces tokens plutôt
   que de coder des hex en dur ou de réutiliser directement le vocabulaire
   --atf-* (pensé pour le template d'origine, pas pour un design system).
   Les composants déjà convertis (cartes, boutons .atf-themes-btn, etc.)
   continuent de lire --atf-thm-color/--atf-thm-black tel quel : les deux
   jeux de variables pointent sur les mêmes valeurs de marque, il n'y a
   qu'un seul endroit à modifier (ce bloc + le bloc de surcharge --atf-*
   ci-dessus) pour changer la palette.
   ===================================================================== */
:root {
    /* --- Colors (brief 32 : Primary/Secondary/Accent/Background/Surface/
       Text/Muted/Border/Success/Warning/Error) --- */
    --color-primary: var(--atf-thm-color);          /* jaune marque — jamais en texte (voir plus bas) */
    --color-primary-hover: var(--dominium-accent-hover);
    --color-primary-light: var(--dominium-accent-light);
    --color-dark: var(--atf-thm-black);             /* noir marque — hero/footer/sections tech (brief 4) */
    --color-light: #FAF9F5;                         /* blanc légèrement teinté, jamais blanc pur (brief 4) */
    --color-accent: var(--atf-thm-color);           /* une seule couleur d'accent dans la palette noir/jaune/blanc (ARCHITECTURE.md) : Primary et Accent se confondent volontairement ici */
    --color-bg: #FFFFFF;
    --color-surface: #F5F5F3;                       /* fonds de carte/section alternée : gris très légèrement chaud plutôt que blanc pur ou gris froid */
    --color-text: var(--atf-thm-black);
    --color-text-on-dark: #FFFFFF;
    --color-text-muted: var(--atf-text-body);       /* #585b6f, déjà utilisé par tout le template pour le texte courant */
    --color-text-muted-on-dark: rgba(255, 255, 255, 0.72);
    --color-border: var(--atf-border-1);            /* #dddddd, déjà utilisé par le template */
    --color-border-on-dark: rgba(255, 255, 255, 0.14);
    --color-success: #1C7C4D;
    --color-warning: #B8860B;                       /* jaune foncé distinct du jaune de marque : un warning ne doit jamais être confondu avec un CTA */
    --color-error: #C23B3B;

    /* --- Typography (brief 32 : Display/H1-H4/Body/Small/Caption) ---
       Échelle fluide (clamp) pour éviter les sauts brusques entre
       breakpoints Bootstrap ; s'ajoute aux tailles fixes h1-h6 déjà
       posées par style.css (non modifiées, ADR-001) — ces tokens sont
       destinés aux NOUVEAUX composants (hero en premier lieu). */
    --font-heading: var(--atf-ff-heading);
    --font-body: var(--atf-ff-body);
    --fs-display: clamp(2.5rem, 1.9rem + 2.6vw, 4rem);
    --fs-h1: clamp(2rem, 1.6rem + 1.8vw, 3rem);
    --fs-h2: clamp(1.625rem, 1.4rem + 1vw, 2.25rem);
    --fs-h3: 1.375rem;
    --fs-h4: 1.125rem;
    --fs-body: 1rem;
    --fs-small: 0.875rem;
    --fs-caption: 0.75rem;

    /* --- Spacing scale (base 4px) --- */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 48px;
    --space-8: 64px;
    --space-9: 96px;
    --space-10: 128px;

    /* --- Radius --- */
    --radius-sm: 6px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --radius-pill: 999px;

    /* --- Shadows : volontairement très douces (brief 33 proscrit les
       "ombres lourdes") — réservées aux nouveaux composants, ne remplacent
       pas les .shadow-lg existants des anciennes cartes (hors périmètre
       de ce lot, voir audit-uxui-2026-10.md §5 point 5). --- */
    --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.14);

    /* --- Motion (brief 41 : opacity/translateY/scale, 300-700ms, easing
       naturel) --- */
    --ease-natural: cubic-bezier(0.22, 0.61, 0.36, 1);
    --duration-fast: 200ms;
    --duration-base: 450ms;
    --duration-slow: 650ms;

    /* -----------------------------------------------------------------
       Neutralisation des variables Bootstrap "bleu" embarquées dans
       plugin.min.css (:root, [data-bs-theme=light]) : --bs-blue,
       --bs-primary et toutes ses variantes dérivées (rgb, text-emphasis,
       bg-subtle, border-subtle, link-color, btn hover/active...).
       Le template n'utilise quasiment jamais les classes Bootstrap
       brutes (.btn-primary, .form-check-input...), mais .text-primary
       est utilisé tel quel sur service-details.html : sans cette
       neutralisation, les icônes de la liste de fonctionnalités
       resteraient bleues (#0d6efd).
       ----------------------------------------------------------------- */
    --bs-blue: #FFC300;
    --bs-primary: #FFC300;
    --bs-primary-rgb: 255, 195, 0;
    --bs-primary-text-emphasis: #7a5f00;
    --bs-primary-bg-subtle: #FFF6DB;
    --bs-primary-border-subtle: #FFE180;
    --bs-link-color: #000000;
    --bs-link-color-rgb: 0, 0, 0;
    --bs-link-hover-color: #E6B000;
    --bs-link-hover-color-rgb: 230, 176, 0;
}

/* -----------------------------------------------------------------------
   Correctif important (trouvé lors de l'auto-audit, absent de la liste de
   hex bleus d'ARCHITECTURE.md) : les variables --atf-grey-7 (#dceaff) et
   --atf-grey-8 (#e6effd) ne sont PAS des gris neutres malgré leur nom et
   la consigne "inchangés (pas de charge de marque)" — ce sont des bleus
   pâles. Elles alimentent .grey-bg-7/.grey-bg-8 (fond des formulaires de
   contact/FAQ, bandeau mail du footer, section service-details...) ET le
   fond de TOUTES les pastilles "eyebrow" (.atf-section-title .sub-title)
   sur chaque page du site. Remappées ici vers des gris neutres réels pour
   respecter l'exigence stricte noir/jaune/blanc.
   ----------------------------------------------------------------------- */
:root {
    --atf-grey-7: #f0f0f0;
    --atf-grey-8: #f5f5f5;
}

/* -----------------------------------------------------------------------
   Autres hex bleus codés en dur hors :root, trouvés par un grep élargi aux
   teintes bleutées probables (pas seulement les 3 hex cités par
   ARCHITECTURE.md) : #d4e9f9 et #75bfec dans style.css.
   ----------------------------------------------------------------------- */
.atf-about-img {
    border-color: var(--atf-thm-color) !important;
}
.hero_round_image,
.choose_round_image {
    background: var(--atf-thm-base) !important;
}

/* .text-primary est utilisé directement (hors variable) sur
   service-details.html : filet de sécurité explicite. */
.text-primary {
    color: var(--atf-thm-color) !important;
}

/* Filet de sécurité générique pour tout ce qui s'appuierait malgré tout
   sur les classes utilitaires Bootstrap "primary" (pagination active,
   boutons, formulaires) : on les ramène sur la palette de marque plutôt
   que de laisser le bleu Bootstrap par défaut transparaître. */
.btn-primary,
.badge.bg-primary,
.bg-primary {
    background-color: var(--atf-thm-color) !important;
    border-color: var(--atf-thm-color) !important;
    color: var(--atf-thm-black) !important;
}
.border-primary {
    border-color: var(--atf-thm-color) !important;
}
a:not([class]) {
    color: inherit;
}
.form-check-input:checked {
    background-color: var(--atf-thm-color) !important;
    border-color: var(--atf-thm-color) !important;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--atf-thm-color) !important;
    box-shadow: 0 0 0 0.25rem rgba(255, 195, 0, 0.25) !important;
}

/* -----------------------------------------------------------------------
   Filet de sécurité supplémentaire : composants Bootstrap non utilisés par
   le template TechCore aujourd'hui, mais dont plugin.min.css fixe la
   couleur "active/checked" en dur (#0d6efd et dérivés) au niveau du
   composant lui-même plutôt que via --bs-primary. Aucun d'eux n'apparaît
   dans les pages du template actuellement (vérifié par grep), mais le
   composant `portfolio-filters` introduit par l'agent Design utilise
   `.nav-pills` : sans cette règle, l'onglet actif resterait bleu Bootstrap
   par défaut.
   ----------------------------------------------------------------------- */
.nav-pills {
    --bs-nav-pills-link-active-bg: var(--atf-thm-color);
    --bs-nav-pills-link-active-color: var(--atf-thm-black);
}
.btn-outline-primary {
    --bs-btn-color: var(--atf-thm-black);
    --bs-btn-border-color: var(--atf-thm-color);
    --bs-btn-hover-bg: var(--atf-thm-color);
    --bs-btn-hover-border-color: var(--atf-thm-color);
    --bs-btn-active-bg: var(--atf-thm-color);
    --bs-btn-active-border-color: var(--atf-thm-color);
}
.dropdown-menu {
    --bs-dropdown-link-active-bg: var(--atf-thm-color);
    --bs-dropdown-link-active-color: var(--atf-thm-black);
}
.list-group {
    --bs-list-group-active-bg: var(--atf-thm-color);
    --bs-list-group-active-border-color: var(--atf-thm-color);
    --bs-list-group-active-color: var(--atf-thm-black);
}
.progress {
    --bs-progress-bar-bg: var(--atf-thm-color);
}
.table-primary {
    --bs-table-bg: var(--atf-thm-base);
}

/* -----------------------------------------------------------------------
   Accessibilité formulaires : le template TechCore s'appuie uniquement sur
   des `placeholder` pour indiquer la nature de chaque champ, sans <label>
   associé (gap WCAG 1.3.1/3.3.2 — repéré lors du premier audit, corrigé ici
   plutôt que reporté). Classe standard "masqué visuellement mais lu par les
   lecteurs d'écran" (équivalent Bootstrap .visually-hidden, non fourni par
   plugin.min.css) : un <label for="..."> avec cette classe est ajouté
   devant chaque champ de formulaire public, sans changer le rendu visuel
   voulu par le template (placeholder toujours visible).
   ----------------------------------------------------------------------- */
.dominium-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* -----------------------------------------------------------------------
   Accessibilité clavier : le template TechCore supprime globalement
   l'outline de focus par défaut sur les liens, boutons et champs de
   formulaire (style.css, règles `outline: none`) sans fournir de remplacement.
   On restaure un indicateur de focus visible — uniquement pour la
   navigation clavier (:focus-visible), afin de ne pas modifier l'esthétique
   voulue par le template au clic souris.
   ----------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.atf-themes-btn:focus-visible,
.nav-link:focus-visible {
    outline: 2px solid var(--atf-thm-color) !important;
    outline-offset: 2px;
}

/* =====================================================================
   Bouton WhatsApp flottant Dominium
   Fonctionnalité maison absente du template d'origine, réintégrée en
   CSS natif (pas de Tailwind côté public, ADR-001) et alignée sur la
   charte noir/jaune/blanc + le langage visuel du template (rounded,
   ombre, atf-thm-color).
   ===================================================================== */
.dominium-whatsapp-float {
    position: fixed;
    right: 25px;
    bottom: 25px;
    z-index: 999;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}

.dominium-whatsapp-float__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background-color: #25D366;
    color: #ffffff;
    font-size: 30px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.25);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.dominium-whatsapp-float__link:hover {
    transform: translateY(-4px) scale(1.05);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
    color: #ffffff;
}

.dominium-whatsapp-float__link i {
    line-height: 1;
}

.dominium-whatsapp-float__pulse {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background-color: #25D366;
    opacity: 0.6;
    animation: dominium-whatsapp-pulse 2.2s ease-out infinite;
    z-index: -1;
}

@keyframes dominium-whatsapp-pulse {
    0% {
        transform: scale(1);
        opacity: 0.55;
    }
    100% {
        transform: scale(1.8);
        opacity: 0;
    }
}

@media (max-width: 575px) {
    .dominium-whatsapp-float {
        right: 16px;
        bottom: 16px;
    }
    .dominium-whatsapp-float__link {
        width: 52px;
        height: 52px;
        font-size: 26px;
    }
}

/* =====================================================================
   Décision client : le jaune (--atf-thm-color) est réservé aux fonds,
   bordures, boutons et icônes/accents visuels — jamais comme couleur de
   TEXTE (titres, paragraphes, chiffres, liens hors boutons).

   style.css utilise une seule et même variable --atf-thm-color à la fois
   pour les fonds/boutons/icônes (accents, à garder jaunes) ET pour la
   couleur de texte de nombreux titres/liens/chiffres (à repasser en noir).
   Plutôt que de modifier style.css (ADR-001, fichier du template à garder
   resynchronisable), chaque sélecteur de style.css qui fixe `color:
   var(--atf-thm-color)` sur du texte (et non une icône) est neutralisé
   ici, à la source, pour s'appliquer sur les 16 pages publiques sans
   reprise page par page. Les sélecteurs d'icônes (`i`, `.icon`, `*-icon`)
   et les éléments réellement boutons (search toggle, close toggle) ne
   sont volontairement PAS dans cette liste : ils restent jaunes (accent).
   ===================================================================== */

/* Texte de substitution des champs (placeholder) : gris neutre plutôt que
   jaune ou noir pur, conforme à l'usage habituel d'un indice de saisie. */
*::placeholder,
*::-webkit-input-placeholder,
*::-moz-placeholder {
    color: var(--atf-text-body) !important;
}

/* Préchargeur (texte "DOMINIUM" + "Loading...") */
.atf-preloader__letter,
.atf-preloader__loading {
    color: var(--atf-thm-black) !important;
}

/* Liens de navigation (hors boutons) */
.atf-top-header-list li a:hover,
.atf-main-menu > nav > ul > li > a:hover,
.atf-main-menu > nav > ul > li .sub-menu li:hover > a,
.atf-hamburger-menu ul li > a:hover,
.atf-hamburger-menu ul li.active > a,
.breadcrumb-single-content span a:hover,
.atf-copyright-text a {
    color: var(--atf-thm-black) !important;
}

/* Filtres portfolio (nav-pills) : texte noir, le fond jaune de l'onglet
   actif reste géré par la surcharge --bs-nav-pills-link-active-bg. */
.nav-pills > li > a,
.nav-pills > a {
    color: var(--atf-thm-black) !important;
}

/* Titres de cartes (services, portfolio, blog, équipe, articles liés) au
   survol : plus de changement de couleur vers le jaune. */
.atf-title-hover:hover,
.atf-single-service .title a:hover,
.atf-single-team .team-title:hover,
.sinlge_post .post-bar li a:hover,
.sinlge_post .post-title a:hover,
.atf-post-btn-group .title:hover,
.lp-post-title:hover,
.atf-single-process .process-title:hover,
.atf_team-about-details ul li a:hover {
    color: var(--atf-thm-black) !important;
}

/* Chiffres clés / compteurs affichés comme texte (pas des icônes) */
.atf_choose_number,
.atf_process_number,
.experience-counter h3 {
    color: var(--atf-thm-black) !important;
}

/* Liens texte (fiche réalisation, CTA téléphone, FAQ, barres de progression
   des compétences — ces deux derniers sélecteurs sont inactifs sur les 16
   pages publiques actuelles mais neutralisés par cohérence) */
.atf_portfolio__details-info-item ul li a,
.atf_portfolio__details-info-item ul li a:hover,
.call_to_action_btn .call_to_action_content_call,
.atf-faq-accordion .card .card-body ul li,
.progress .progress-bar:after,
.progress .progress-value {
    color: var(--atf-thm-black) !important;
}

/* Logo Dominium réel : le template s'appuyait uniquement sur les dimensions
   du fichier source (204x74, déjà pré-redimensionné) sans aucune contrainte
   CSS. Notre logo réel (742x631, icône + texte empilés) a un ratio très
   différent et débordait du header sans ces règles. */
.atf-site-logo img,
.atf-hamburger-logo img,
.footer-logo img {
    max-height: 48px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

@media (max-width: 575px) {
    .atf-site-logo img,
    .atf-hamburger-logo img {
        max-height: 38px;
    }
}

/* -----------------------------------------------------------------------
   Correctif critique trouvé lors de l'audit responsive du 01/10/2026
   (capture d'écran réelle, toutes largeurs) : le seul fichier logo
   disponible (`logodominium-full.png`, utilisé à la fois pour .logo-white
   ET .logo-black, voir public.blade.php) est en réalité JAUNE (couleur de
   marque), pas blanc ni noir malgré le nom des classes. Résultat : dans
   le header, le logo est posé sur le bandeau jaune `.atf_bg_skew` (ou sur
   le fond blanc du header "sticky"/du tiroir hamburger) et devient quasi
   invisible (jaune sur jaune, ou jaune très pâle sur blanc) à TOUTES les
   largeurs d'écran, pas seulement un breakpoint particulier — vérifié par
   capture zoomée. Le logo réel n'est pas modifié (consigne explicite) :
   on le re-colore uniquement à l'affichage, via un filtre CSS sans perte
   (le fichier est un aplat de couleur sur fond transparent, donc
   `brightness(0)` le rend parfaitement noir, contour conservé), dans les
   deux seuls contextes où il repose sur un fond clair (jaune ou blanc).
   Le logo du footer, lui, repose sur un fond sombre (photo + overlay) :
   le jaune d'origine y est déjà lisible, volontairement non touché. */
.atf-site-logo img,
.atf-hamburger-logo img {
    filter: brightness(0);
}

/* -----------------------------------------------------------------------
   Round 3 : le bandeau jaune du header (.atf_bg_skew::after, défini dans
   style.css) décale son bord diagonal à "30%+5px" entre 992 et 1199px —
   calibré par le gabarit d'origine pour une colonne logo à col-lg-6 (50%
   de la largeur du header). Depuis que la colonne logo repasse à col-lg-2
   sur toute la plage desktop (voir public.blade.php), on réaligne le
   bandeau sur la même proportion qu'à partir de 1200px (25%) pour que le
   jaune reste cadré sur le logo et ne morde plus sur le début du menu. */
@media (min-width: 992px) {
    .atf_bg_skew::after {
        left: calc(25% + 0px);
    }
}

/* Palier 992-1199px : le menu à plat (6 liens, sans dropdown depuis le
   round 2) et le bouton "Demander un devis" tiennent large à partir de
   1200px (style.css : margin-right 40px, padding bouton 40px) mais
   passaient à la ligne sur cette plage plus étroite une fois le menu
   complet affiché dès 992px (voir public.blade.php). Resserré ici plutôt
   que de réduire encore les colonnes, pour garder la même proportion
   logo/menu/actions qu'au-delà de 1200px. */
@media (min-width: 992px) and (max-width: 1199px) {
    .atf-main-menu > nav > ul > li {
        margin-right: 18px;
    }
    .atf-main-menu > nav > ul > li > a {
        font-size: 15px;
        padding: 36px 0;
    }
    .atf-header-bottom-right {
        gap: 12px;
    }
    .atf-themes-btn {
        padding: 14px 18px;
        font-size: 14px;
        white-space: nowrap;
    }
    .atf-searching-btn.style1 {
        width: 42px;
        height: 42px;
        font-size: 15px;
    }
}

/* =====================================================================
   Fiches services réelles (catalogue 2026) : prix / délai sur la carte,
   actions "Voir détails" + "Contactez-nous" (WhatsApp) sur la page
   /services (ajoutés par le composant service-card quand style="style1" —
   pas d'impact sur la variante slider compacte de l'accueil, qui n'affiche
   ni la liste de meta ni les actions). Pas de couleur de marque en dur :
   tout passe par les variables du thème.
   ===================================================================== */
.dominium-service-meta {
    gap: 6px 16px;
    margin-top: 14px;
    font-size: 13px;
    color: var(--atf-text-body);
}
.dominium-service-meta i {
    color: var(--atf-thm-color);
    margin-right: 4px;
}
.dominium-service-actions {
    gap: 10px;
    margin-top: 18px;
}
.dominium-service-actions__whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 50px;
    border: 1px solid var(--atf-thm-black);
    color: var(--atf-thm-black);
    font-weight: 600;
    font-size: 14px;
    transition: background-color .3s ease, color .3s ease;
}
.dominium-service-actions__whatsapp:hover,
.dominium-service-actions__whatsapp:focus-visible {
    background-color: var(--atf-thm-black);
    color: var(--atf-thm-white);
}
.dominium-service-actions__whatsapp i {
    color: #25D366;
    font-size: 16px;
}

/* =====================================================================
   Liste "prestations incluses" / "avantages" réutilisable (fiche service
   détail) : variante générique de .atf-pricing-list (déjà fournie par le
   template pour pricing.html, hors périmètre v1) appliquée ici à un
   contexte différent — mêmes classes, pas de nouveau composant visuel
   inventé.
   ===================================================================== */
.dominium-service-feature-title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 18px;
}
.dominium-service-meta-box {
    display: flex;
    align-items: center;
    gap: 16px;
    height: 100%;
}
.dominium-service-meta-box h5 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--atf-text-body);
    margin-bottom: 4px;
}
.dominium-service-meta-box p {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 0;
    color: var(--atf-thm-black);
}

/* -----------------------------------------------------------------------
   Nettoyage (Lot 1) : le correctif round 3 ci-dessus ciblait le hero
   Slick plein cadre (`.atf-slider-content`, `.atf-single-slider`,
   `.slick-active`) pour un débordement de texte au chargement sur mobile.
   Ce hero a été intégralement remplacé (voir
   components/public/hero-slider.blade.php, Lot 1 — Fondations) : ces
   classes n'apparaissent plus nulle part dans les vues publiques (vérifié
   par grep), le correctif est donc devenu du code mort et a été retiré
   plutôt que conservé "au cas où" — le nouveau hero a son propre
   garde-fou responsive (voir plus bas, section HERO D'ACCUEIL).
   ----------------------------------------------------------------------- */

/* =====================================================================
   Round 3 : vraie fiche réalisation (resources/views/gallery-details.blade.php)
   — galerie multi-images + vidéo de présentation, remplace l'ancien
   gabarit texte-seul (2 images en dur, aucune vidéo, aucune vraie
   donnée branchée — voir commentaire en tête de la vue).
   ===================================================================== */
.dominium-portfolio-subtitle {
    font-size: 20px;
    font-weight: 700;
    color: var(--atf-thm-black);
}

/* Lecteur vidéo responsive (iframe YouTube/Vimeo ou <video> natif) :
   ratio 16:9 maintenu à toutes les largeurs sans dépendre de JS. */
.dominium-portfolio-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 15px;
    overflow: hidden;
    background-color: var(--atf-thm-black);
}
.dominium-portfolio-video iframe,
.dominium-portfolio-video video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Grille de galerie photo : vignettes carrées homogènes quel que soit le
   ratio d'origine de chaque image uploadée en admin (évite une grille à
   la hauteur irrégulière, cf. audit visuel round 3). */
.dominium-portfolio-gallery__thumb {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}
.dominium-portfolio-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.dominium-portfolio-gallery__thumb:hover img {
    transform: scale(1.06);
}

/* =====================================================================
   Lot 4 (Réalisations / Études de cas, brief section 15) : rendu de
   `dominium_portfolio_case_study()` (resources/views/public-demo-data.php)
   — une fiche découpée en sections numérotées (Contexte/Problématique/
   Solution/Implémentation/Résultats) plutôt que le bloc de texte unique
   d'origine. Même vocabulaire que les sections numérotées déjà posées pour
   /solutions (.dominium-solution-features__index) : filets horizontaux,
   pas de carte à ombre (brief section 33).
   ===================================================================== */
.dominium-case-study__intro {
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--color-text-muted);
    padding-bottom: var(--space-5);
    margin-bottom: var(--space-2);
    border-bottom: 1px solid var(--color-border);
}
.dominium-case-study__section {
    display: flex;
    gap: var(--space-5);
    padding: var(--space-6) 0;
    border-top: 1px solid var(--color-border);
}
.dominium-case-study__section:first-child {
    border-top: 0;
    padding-top: var(--space-2);
}
.dominium-case-study__index {
    flex-shrink: 0;
    width: 36px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-primary);
}
.dominium-case-study__title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-h4);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-2);
}
.dominium-case-study__title i {
    color: var(--color-primary);
}
.dominium-case-study__text p {
    color: var(--color-text-muted);
    line-height: 1.7;
}
.dominium-case-study__text p:last-child,
.dominium-case-study__text ul:last-child,
.dominium-case-study__text ol:last-child {
    margin-bottom: 0;
}
/* Technologies citées en ligne dans le texte (convention <code>Nom</code>,
   voir dominium_portfolio_technologies()) : rendues en pastille plutôt
   qu'en police "code" brute, qui n'aurait aucun sens pour un nom de techno
   dans une phrase en langage courant. */
.dominium-case-study__text code,
.dominium-case-study__intro code {
    display: inline-block;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    padding: 2px 10px;
    margin: 0 2px;
    font-family: var(--font-body);
    font-size: var(--fs-caption);
    font-weight: 600;
    color: var(--color-text);
    white-space: nowrap;
}
@media (max-width: 575px) {
    .dominium-case-study__section {
        gap: var(--space-3);
    }
}
/* Liste de technologies de la colonne latérale "Détails du projet"
   (extraction à plat de la même convention <code>, voir gallery-details). */
.dominium-case-study__tech {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.dominium-case-study__tech li {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    padding: 4px 12px;
    font-size: var(--fs-caption);
    font-weight: 600;
    color: var(--color-text);
    background: #fff;
}
/* =====================================================================
   Lot 4 : page /realisations reconstruite en "projets éditoriaux" (brief
   section 14 — explicitement PAS une grille de petites cartes). Lignes
   pleine largeur alternées image/texte, même logique que les filets déjà
   utilisés pour /solutions et /expertises (pas de carte à ombre), mais
   avec un visuel (capture du projet) en vis-à-vis du texte — ce que les
   réalisations ont et que les solutions/expertises n'ont pas.
   ===================================================================== */
.dominium-portfolio-editorial {
    display: flex;
    flex-direction: column;
}
.dominium-portfolio-editorial__row {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-9) 0;
    border-top: 1px solid var(--color-border);
}
.dominium-portfolio-editorial__row:last-child {
    border-bottom: 1px solid var(--color-border);
}
.dominium-portfolio-editorial__media {
    order: 1;
    display: block;
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
}
.dominium-portfolio-editorial__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.dominium-portfolio-editorial__media:hover img {
    transform: scale(1.04);
}
.dominium-portfolio-editorial__body {
    order: 2;
}
.dominium-portfolio-editorial__row--reverse .dominium-portfolio-editorial__media {
    order: 2;
}
.dominium-portfolio-editorial__row--reverse .dominium-portfolio-editorial__body {
    order: 1;
}
.dominium-portfolio-editorial__eyebrow {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.dominium-portfolio-editorial__index {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--color-primary);
    font-size: var(--fs-small);
}
.dominium-portfolio-editorial__category {
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: var(--fs-caption);
    font-weight: 700;
    color: var(--color-text-muted);
}
.dominium-portfolio-editorial__title {
    font-size: var(--fs-h2);
    font-weight: 700;
    margin-bottom: var(--space-2);
}
.dominium-portfolio-editorial__title a {
    color: var(--color-text);
}
.dominium-portfolio-editorial__title a:hover,
.dominium-portfolio-editorial__title a:focus-visible {
    color: var(--color-primary);
}
.dominium-portfolio-editorial__client {
    font-size: var(--fs-small);
    color: var(--color-text-muted);
    margin-bottom: var(--space-4);
}
.dominium-portfolio-editorial__line {
    font-size: var(--fs-body);
    line-height: 1.7;
    color: var(--color-text-muted);
    margin-bottom: var(--space-3);
}
.dominium-portfolio-editorial__line strong {
    color: var(--color-text);
}
.dominium-portfolio-editorial__tech {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: var(--space-2) 0 var(--space-5);
    padding: 0;
}
.dominium-portfolio-editorial__tech li {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    padding: 4px 12px;
    font-size: var(--fs-caption);
    font-weight: 600;
    color: var(--color-text-muted);
}
.dominium-portfolio-editorial__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
}
.dominium-portfolio-editorial__cta i {
    transition: transform .25s ease;
}
.dominium-portfolio-editorial__cta:hover,
.dominium-portfolio-editorial__cta:focus-visible {
    color: var(--color-primary-hover);
}
.dominium-portfolio-editorial__cta:hover i,
.dominium-portfolio-editorial__cta:focus-visible i {
    transform: translateX(4px);
}
@media (max-width: 991px) {
    .dominium-portfolio-editorial__row,
    .dominium-portfolio-editorial__row--reverse {
        grid-template-columns: 1fr;
        gap: var(--space-5);
        padding: var(--space-7) 0;
    }
    .dominium-portfolio-editorial__row .dominium-portfolio-editorial__media,
    .dominium-portfolio-editorial__row--reverse .dominium-portfolio-editorial__media {
        order: 1;
    }
    .dominium-portfolio-editorial__row .dominium-portfolio-editorial__body,
    .dominium-portfolio-editorial__row--reverse .dominium-portfolio-editorial__body {
        order: 2;
    }
    .dominium-portfolio-editorial__title {
        font-size: var(--fs-h3);
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-portfolio-editorial__media img,
    .dominium-portfolio-editorial__cta i {
        transition: none;
    }
}


/* -----------------------------------------------------------------------
   Correctif critique trouvé lors de l'audit responsive round 3 : les
   cartes de réalisation (`.atf_single_gallery`, page /realisations et
   teaser accueil) n'affichent leur titre/catégorie ET leurs icônes
   (loupe + lien vers la fiche détail) qu'au `:hover` (style.css,
   opacity:0 par défaut). Sur mobile/tablette (pas de souris, le `:hover`
   ne se déclenche jamais de façon fiable), les cartes apparaissent comme
   de simples photos sans titre et surtout SANS AUCUN lien cliquable
   visible vers la fiche réalisation — la page /realisations était de
   fait inutilisable au toucher. Rendu permanent sur tactile/petits
   écrans, comme une légende de bas de carte classique. */
@media (hover: none), (max-width: 991px) {
    /* Même défaut sur les mini-réseaux sociaux des cartes équipe
       (.atf-single-team .atf-social-list, pages /equipe et /a-propos) :
       overlay révélé seulement au survol, donc jamais atteignable au
       toucher. Le nom et la photo du membre restent toujours visibles et
       le lien vers sa fiche n'est pas concerné (pas de perte de
       navigation), mais les icônes réseaux sociaux méritent la même
       correction par cohérence. */
    .atf-single-team .atf-social-list {
        opacity: 1;
        bottom: 10px;
    }
    .atf_single_gallery::before {
        transform: translateX(-50%) translateY(-50%) scale(1);
    }
    .atf_single_gallery .inner-content {
        opacity: 1;
        bottom: 0;
        /* Le translateY(-50%) d'origine (style.css) n'a de sens que pour
           l'animation de hover (translation depuis bottom:-30%) : conservé
           tel quel, il recentre le bloc légende au milieu de la carte au
           lieu de l'ancrer en bas, et le fait déborder au-dessus (rogné
           par l'overflow:hidden de la carte). Supprimé ici, seul le
           centrage horizontal est conservé. */
        transform: translateX(-50%);
        padding-bottom: 16px;
    }
}

/* Bleu résiduel du gabarit trouvé en rendant ce dégradé visible ci-dessus :
   `rgba(3, 88, 199, .99)` (équivalent de l'ancien bleu template) écrit en
   RGB et non en hex dans style.css — invisible depuis le round 1 (opacity:0
   par défaut) donc absent du grep hexadécimal d'ARCHITECTURE.md, jamais vu
   à l'écran avant ce correctif de visibilité mobile. Neutralisé vers un
   dégradé noir, cohérent avec la charte et plus lisible pour un texte
   blanc en légende. */
.atf_single_gallery::before {
    background: linear-gradient(to bottom, rgba(28, 28, 28, 0) 0%, rgba(28, 28, 28, 0.85) 60%) !important;
}

/* -----------------------------------------------------------------------
   Contraste insuffisant trouvé sur /services (audit visuel round 3) : le
   bouton "Voir détails" de chaque fiche service utilise `.atf-themes-btn
   .style2` — un bouton fantôme blanc sur blanc/transparent (style.css),
   pensé pour un fond sombre (hero, bandeau image). Sur la grille
   `/services`, il est posé sur le fond gris clair de la carte
   (.atf-service-content, var(--atf-grey-7)) : texte et bordure blancs
   quasi invisibles. Seul usage de "style2" sur un fond clair (vérifié par
   grep), corrigé ici sans toucher aux autres usages du template. */
.dominium-service-actions .atf-themes-btn.style2 {
    border-color: var(--atf-thm-black) !important;
    color: var(--atf-thm-black) !important;
}
.dominium-service-actions .atf-themes-btn.style2:hover,
.dominium-service-actions .atf-themes-btn.style2:focus-visible {
    color: var(--atf-thm-black) !important;
}

/* -----------------------------------------------------------------------
   Contraste insuffisant trouvé en testant l'état :hover du bouton CTA
   principal du site (.atf-themes-btn — "Demander un devis" du header,
   "Nous contacter" du hero, "Envoyer la demande" des formulaires, "Voir
   détails"...), utilisé sur les 16 pages publiques. style.css fait passer
   le texte en blanc au survol/focus pendant que le fond se remplit en
   jaune (--atf-thm-color) via le pseudo-élément ::after : texte blanc sur
   fond jaune, contraste trop faible (~1.6:1, bien en-dessous du minimum
   WCAG AA 4.5:1) — invisible à l'oeil nu tant qu'on ne survole pas
   vraiment le bouton, donc jamais repéré par une revue uniquement
   statique du HTML/CSS. Texte gardé noir au survol : bon contraste sur le
   jaune, cohérent avec la règle déjà appliquée ailleurs dans ce fichier
   (jaune jamais en texte, toujours en fond/accent). */
.atf-themes-btn:hover,
.atf-themes-btn:focus {
    color: var(--atf-thm-black) !important;
}

/* -----------------------------------------------------------------------
   Illustration raster (image bitmap, pas du SVG/CSS) contenant du bleu de
   marque qui ne peut pas être neutralisée par les variables du thème —
   voir commentaire dans errors/404.blade.php. Passage en niveaux de gris :
   respecte l'exigence stricte noir/blanc sans dépendre d'un nouvel asset
   (hors périmètre Design d'ajouter de l'illustration originale).
   ----------------------------------------------------------------------- */
.dominium-illustration-mono {
    filter: grayscale(100%);
}

/* -----------------------------------------------------------------------
   Bandeau titre (breadcrumb) — Round 8 (Lot 5, nettoyage final).
   Remplace l'ancienne photo de fond unique et générique
   (`assets/img/breadcrumb/breadcrumb.jpg`, une réunion de bureau sans
   rapport avec Dominium, partagée par les 15 pages secondaires du site —
   voir audit-uxui-2026-10.md §2 et brief section 3 "photos stock
   évidentes") par un fond sombre en CSS pur (grille retirée le 22/10/2026) : aucune
   nouvelle image, cohérent avec le visuel du hero/section IA (Lots 1-2),
   conforme à la palette noir/jaune/blanc. `.breadcrumb-cover-bg` (photo)
   reste disponible via le prop `background` du composant, inchangé.
   ----------------------------------------------------------------------- */
.dominium-breadcrumb--pattern {
    position: relative;
    background-color: var(--color-dark);
    overflow: hidden;
}

.dominium-breadcrumb--pattern::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(60% 140% at 85% 0%, rgba(255, 195, 0, 0.16), transparent 70%),
        linear-gradient(180deg, rgba(28, 28, 28, 0) 0%, rgba(28, 28, 28, 0.55) 100%);
    pointer-events: none;
}

.dominium-breadcrumb--pattern .container {
    position: relative;
    z-index: 2;
}

/* =====================================================================
   DROPDOWN "SERVICES" ENRICHI — Lot 1 (Fondations), brief section 6.
   Réutilise le mécanisme natif du template (`.menu-item-children` +
   `.sub-menu`, déjà géré par style.css pour le survol desktop ET par
   script.js pour l'accordéon du tiroir mobile, voir public-nav.blade.php)
   — seule une surcharge visuelle est ajoutée ici, aucun nouveau mécanisme
   d'ouverture/fermeture.
   ===================================================================== */

/* Accessibilité clavier (brief section 6) : style.css ne révèle le
   sous-menu qu'au survol souris (`:hover`). On ajoute `:focus-within`
   pour qu'un utilisateur clavier (Tab) obtienne exactement le même
   panneau, avec les mêmes règles que le survol (scaleY en dessous de
   1199px, opacity/translateY à partir de 1199px). */
.atf-main-menu > nav > ul > li:focus-within > .sub-menu {
    transform: scaleY(1);
    visibility: visible;
}
@media only screen and (min-width: 1199px) {
    .menu-item-children:focus-within > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .menu-item-children:focus-within > .sub-menu > li {
        opacity: 1;
        transform: translateY(0);
    }
    .atf-main-menu > nav > ul > li.menu-item-children:focus-within > a:after {
        transform: rotate(180deg);
    }
}

/* Note de spécificité : `.dominium-nav-solutions` porte aussi la classe
   `.sub-menu` (voir public-nav.blade.php) pour hériter gratuitement du
   mécanisme de révélation desktop + de l'accordéon mobile déjà câblés par
   style.css/script.js sur `.menu-item-children`/`.sub-menu`. Conséquence :
   plusieurs règles de style.css ciblant `.atf-main-menu > nav > ul > li
   .sub-menu...` ont une spécificité supérieure (2 classes + plusieurs
   types) à un simple `.dominium-nav-solutions` : `!important` est utilisé
   ci-dessous chaque fois qu'une propriété doit réellement gagner face à
   ces règles (vérifié au cas par cas, pas par réflexe). */
@media only screen and (min-width: 992px) {
    .dominium-nav-solutions {
        width: 420px;
        max-width: calc(100vw - 48px) !important;
        padding: var(--space-4) !important;
    }
    .dominium-nav-solutions__footer {
        border-top: 1px solid var(--color-border);
        margin-top: var(--space-2);
        padding-top: var(--space-3) !important;
    }
}

/* `.sub-menu li > a::before` (petit trait jaune qui glisse au survol,
   pensé pour une liste de liens texte indentée) n'a pas de sens sur nos
   cartes icône + texte : neutralisé. `!important` nécessaire, cette
   pseudo-règle du template a une spécificité plus élevée. */
.dominium-nav-solutions > li > a::before {
    display: none !important;
}

.dominium-nav-solutions__item {
    display: flex !important;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-2) !important;
    border-radius: var(--radius-sm);
    white-space: normal !important;
}
.dominium-nav-solutions__item:hover,
.dominium-nav-solutions__item:focus-visible {
    background: var(--color-surface);
    /* `.sub-menu li:hover > a` (style.css) recolore le texte en jaune de
       marque au survol — interdit par la charte (jaune jamais en texte,
       voir plus haut dans ce fichier). On force le texte à rester noir,
       et on annule aussi le décalage `padding-left: 40px` prévu pour une
       liste de liens simples. */
    color: var(--color-text) !important;
    padding-left: var(--space-2) !important;
}
.dominium-nav-solutions__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-primary);
    font-size: 17px;
}
.dominium-nav-solutions__item:hover .dominium-nav-solutions__icon,
.dominium-nav-solutions__item:focus-visible .dominium-nav-solutions__icon {
    background: var(--color-bg);
}
.dominium-nav-solutions__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.dominium-nav-solutions__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    color: var(--color-text);
}
.dominium-nav-solutions__desc {
    font-family: var(--font-body);
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--color-text-muted);
    font-weight: 400;
}
.dominium-nav-solutions__footer > a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text) !important;
    padding-left: 0 !important;
}
.dominium-nav-solutions__footer > a i {
    color: var(--color-primary);
    transition: transform var(--duration-fast) var(--ease-natural);
}
.dominium-nav-solutions__footer > a:hover i,
.dominium-nav-solutions__footer > a:focus-visible i {
    transform: translateX(4px);
}

/* Dans le tiroir mobile (clone de .atf-nav-list, voir script.js), le
   panneau redevient une liste verticale simple : pas de grille, icônes
   plus petites, dernière entrée ("Voir tout...") sans bordure séparatrice
   dupliquée (déjà gérée par .atf-hamburger-menu ul li:not(:last-child)). */
.atf-hamburger-menu .dominium-nav-solutions {
    display: block;
    padding-left: 0;
}
.atf-hamburger-menu .dominium-nav-solutions__item {
    padding: var(--space-2) 0 !important;
}
.atf-hamburger-menu .dominium-nav-solutions__footer {
    border-bottom: none !important;
}

/* =====================================================================
   HERO D'ACCUEIL — Lot 1 (Fondations), brief sections 7-8.
   Remplace l'ancien hero plein cadre (photo stock + carrousel Slick) par
   une section sombre avec proposition de valeur + visuel abstrait SVG/CSS
   (écosystème Web→API→Cloud→Data→IA→Applications). Voir
   resources/views/components/public/hero-slider.blade.php pour le
   contrat de données et le raisonnement détaillé.
   ===================================================================== */
.dominium-hero {
    position: relative;
    overflow: hidden;
    background-color: var(--color-dark);
    padding-top: var(--space-10);
    padding-bottom: var(--space-10);
    isolation: isolate;
}
@media (max-width: 991px) {
    .dominium-hero {
        padding-top: var(--space-8);
        padding-bottom: var(--space-8);
    }
}

/* Lueurs jaune de marque, très douces : seule touche de couleur du hero
   (brief section 4 : "utiliser la couleur avec parcimonie"), jamais en
   texte (voir règle déjà en place plus haut dans ce fichier). */
.dominium-hero__glow {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    filter: blur(90px);
    pointer-events: none;
    background: var(--color-primary);
}
.dominium-hero__glow--1 {
    width: 420px;
    height: 420px;
    top: -140px;
    right: -120px;
    opacity: 0.18;
}
.dominium-hero__glow--2 {
    width: 320px;
    height: 320px;
    bottom: -120px;
    left: -100px;
    opacity: 0.1;
}

.dominium-hero__row {
    position: relative;
    z-index: 1;
}

.dominium-hero__content {
    padding-top: var(--space-6);
    padding-bottom: var(--space-6);
}

.dominium-hero__label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid var(--color-border-on-dark);
    color: var(--color-text-on-dark);
    font-size: var(--fs-small);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--space-5);
}
.dominium-hero__label-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-primary);
    flex-shrink: 0;
}

.dominium-hero__title {
    font-family: var(--font-heading);
    color: var(--color-text-on-dark);
    font-size: var(--fs-display);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-5);
    max-width: 16ch;
    /* Évite un mot orphelin seul sur la dernière ligne (support Chrome/
       Edge/Firefox récents ; dégrade sans risque en retour à la ligne
       standard sur les navigateurs qui ne connaissent pas la propriété). */
    text-wrap: balance;
}

.dominium-hero__subtitle {
    font-family: var(--font-body);
    color: var(--color-text-muted-on-dark);
    font-size: 1.125rem;
    line-height: 1.7;
    max-width: 46ch;
    margin-bottom: var(--space-6);
}

.dominium-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}
/* `.atf-themes-btn.bg-white` (CTA principal, fond blanc/texte noir) et
   `.atf-themes-btn.style2` (CTA secondaire, contour blanc fantôme) sont
   déjà fournis par style.css pour un usage sur fond sombre — réutilisés
   tels quels (ADR-001), aucune classe de bouton supplémentaire créée. */

.dominium-hero__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text-on-dark);
    font-weight: 600;
    font-size: var(--fs-body);
    border-bottom: 1px solid var(--color-border-on-dark);
    padding-bottom: 2px;
    transition: border-color var(--duration-fast) var(--ease-natural), gap var(--duration-fast) var(--ease-natural), color var(--duration-fast) var(--ease-natural);
}
.dominium-hero__link i {
    color: var(--color-primary);
    transition: transform var(--duration-fast) var(--ease-natural);
}
.dominium-hero__link:hover,
.dominium-hero__link:focus-visible {
    color: var(--color-text-on-dark);
    border-color: var(--color-primary);
}
.dominium-hero__link:hover i,
.dominium-hero__link:focus-visible i {
    transform: translateX(4px);
}

/* --- Visuel abstrait (écosystème technologique) --- */
.dominium-hero__visual {
    position: relative;
    z-index: 1;
    padding: var(--space-6) 0;
}
.dominium-hero__stage {
    position: relative;
    width: 100%;
    max-width: 480px;
    margin-inline: auto;
    aspect-ratio: 1 / 1;
}
@media (max-width: 991px) {
    .dominium-hero__stage {
        max-width: 360px;
    }
}

.dominium-hero__svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.dominium-hero__line {
    fill: none;
    stroke: rgba(255, 195, 0, 0.45);
    stroke-width: 2;
    stroke-linecap: round;
    /* Effet de flux discret : tirets qui défilent lentement le long de la
       ligne. État de base déjà visible (trait plein animé), aucune
       dépendance au JS pour être perçu. */
    stroke-dasharray: 6 10;
    animation: dominium-hero-flow 3.5s linear infinite;
}
@keyframes dominium-hero-flow {
    to {
        stroke-dashoffset: -32;
    }
}

.dominium-hero__node {
    position: absolute;
    left: var(--x);
    top: var(--y);
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    animation: dominium-hero-node-pulse 4.5s ease-in-out infinite;
}
.dominium-hero__node:nth-child(odd) {
    animation-delay: -1.2s;
}
.dominium-hero__node-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--color-border-on-dark);
    color: var(--color-primary);
    font-size: 22px;
    box-shadow: var(--shadow-md);
}
.dominium-hero__node-label {
    font-size: var(--fs-caption);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted-on-dark);
}
@keyframes dominium-hero-node-pulse {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    50% { transform: translate(-50%, -50%) scale(1.06); }
}

@media (max-width: 575px) {
    .dominium-hero__node-icon {
        width: 44px;
        height: 44px;
        font-size: 18px;
    }
}

/* Respect strict de prefers-reduced-motion (brief sections 26, 41) : le
   diagramme reste entièrement visible (état statique propre), seules les
   animations de mouvement sont coupées. */
@media (prefers-reduced-motion: reduce) {
    .dominium-hero__line {
        animation: none !important;
        stroke-dashoffset: 0;
    }
    .dominium-hero__node {
        animation: none !important;
    }
}

/* -----------------------------------------------------------------------
   Collage photo de la page /a-propos (.atf_about_thumb_list, "abouttwo"
   dans style.css) : les deux images sont positionnées en pixels fixes
   (415px/380px) et la seconde en `position:absolute` par rapport au
   conteneur, un montage pensé pour une colonne desktop large. En dessous
   de 992px (tablette ET mobile, vérifié par capture d'écran réelle aux
   deux largeurs), la 2ᵉ image recouvre presque entièrement la 1ʳᵉ, le
   badge "45+ clients" chevauche les deux, et le bloc "Années d'expérience"
   se retrouve posé par-dessus la photo plutôt qu'en dessous. Resimplifié
   ici en empilement vertical propre, sans positionnement absolu, pour
   toutes les largeurs sous le breakpoint lg (aucune régression au-dessus :
   le montage desktop d'origine n'est pas touché).
   ----------------------------------------------------------------------- */
@media (max-width: 991px) {
    .atf_about_thumb_list {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    .atf_about_img_1 img,
    .atf_about_img_2 img {
        position: static;
        width: 100%;
        height: auto;
        max-height: 320px;
    }
    .atf_about_img_2 {
        min-height: 0;
    }
    .atf_about_counter {
        width: 100%;
        height: auto;
        margin-top: 16px;
    }
    .about_avatar_2 {
        position: static;
        width: 100%;
        margin-top: 16px;
    }
}

/* =====================================================================
   LOT 2 — NOUVELLES SECTIONS HOMEPAGE
   Brief sections 9 (confiance), 10 (problème), 12 (approche),
   13 (technologies), 16 (secteurs, aperçu), 17 (IA), 18 (cloud).
   Toutes ces sections consomment les tokens posés au Lot 1
   (--color-*/--space-*/--font-*/--fs-*/--duration-*/--ease-*) plutôt que
   les variables --atf-* historiques, conformément au design system. Aucune
   carte systématique, aucune ombre lourde, aucun gradient (brief 33).
   ===================================================================== */

/* --- Bandeau de confiance (brief 9) ---------------------------------- */
.dominium-trust {
    padding: var(--space-7) 0;
}
.dominium-trust__label {
    text-align: center;
    font-size: var(--fs-caption);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: var(--space-6);
}
.dominium-trust__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--space-7) var(--space-8);
}
.dominium-trust__logo {
    display: inline-flex;
    opacity: 0.55;
    filter: grayscale(100%);
    transition: opacity var(--duration-base) var(--ease-natural), filter var(--duration-base) var(--ease-natural);
}
.dominium-trust__logo:hover,
.dominium-trust__logo:focus-visible {
    opacity: 1;
    filter: grayscale(0%);
}
.dominium-trust__logo img {
    height: 34px;
    width: auto;
    max-width: 140px;
    object-fit: contain;
}
@media (max-width: 575px) {
    .dominium-trust__logos {
        gap: var(--space-6) var(--space-6);
    }
    .dominium-trust__logo img {
        height: 26px;
    }
}

/* --- Section Problème (brief 10) ------------------------------------- */
.dominium-problem__closing {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-6);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-text);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 4px;
    transition: border-color var(--duration-fast) var(--ease-natural);
}
.dominium-problem__closing i {
    color: var(--color-primary);
    transition: transform var(--duration-fast) var(--ease-natural);
}
.dominium-problem__closing:hover,
.dominium-problem__closing:focus-visible {
    color: var(--color-text);
    border-color: var(--color-primary);
}
.dominium-problem__closing:hover i,
.dominium-problem__closing:focus-visible i {
    transform: translateX(4px);
}

.dominium-problem__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: var(--space-6);
}
.dominium-problem__item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--color-border);
}
.dominium-problem__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    font-size: 18px;
    color: var(--color-primary);
    margin-top: 2px;
}
.dominium-problem__text {
    font-size: var(--fs-body);
    color: var(--color-text);
    line-height: 1.5;
}
@media (max-width: 767px) {
    .dominium-problem__list {
        grid-template-columns: 1fr;
    }
}

/* --- Notre approche (brief 12) ---------------------------------------- */
.dominium-approach__timeline {
    list-style: none;
    margin: 0;
    padding: 0;
}
@media (min-width: 992px) {
    .dominium-approach__timeline {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: var(--space-5);
        position: relative;
        padding-top: var(--space-3);
    }
    .dominium-approach__timeline::before {
        content: "";
        position: absolute;
        top: calc(var(--space-3) + 28px);
        left: 10%;
        right: 10%;
        height: 1px;
        background: var(--color-border);
        z-index: 0;
    }
    .dominium-approach__step {
        position: relative;
        z-index: 1;
        text-align: center;
    }
}
@media (max-width: 991px) {
    .dominium-approach__step {
        display: flex;
        align-items: flex-start;
        gap: var(--space-4);
        text-align: left;
        position: relative;
        padding-bottom: var(--space-6);
    }
    .dominium-approach__step:not(:last-child)::after {
        content: "";
        position: absolute;
        left: 27px;
        top: 56px;
        bottom: 0;
        width: 1px;
        background: var(--color-border);
    }
}
.dominium-approach__marker {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-dark);
    border: 2px solid var(--color-dark);
    color: var(--color-text-on-dark);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-small);
    margin: 0 auto var(--space-4);
    transition: transform var(--duration-fast) var(--ease-natural), border-color var(--duration-fast) var(--ease-natural);
}
@media (max-width: 991px) {
    .dominium-approach__marker {
        margin: 0;
    }
}
.dominium-approach__step:hover .dominium-approach__marker,
.dominium-approach__step:focus-within .dominium-approach__marker {
    transform: scale(1.08);
    border-color: var(--color-primary);
}
.dominium-approach__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-text);
    margin-bottom: var(--space-2);
}
.dominium-approach__desc {
    font-size: var(--fs-small);
    color: var(--color-text-muted);
    line-height: 1.6;
    margin-bottom: 0;
    max-width: 26ch;
    margin-inline: auto;
}
@media (max-width: 991px) {
    .dominium-approach__desc {
        max-width: none;
        margin-inline: 0;
    }
}

/* --- Technologies (brief 13) ------------------------------------------ */
.dominium-tech__nav {
    gap: var(--space-2);
    margin-bottom: var(--space-7);
}
.dominium-tech__nav .nav-link {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    padding: 10px 22px;
    font-size: var(--fs-small);
    font-weight: 600;
    color: var(--color-text);
    background: transparent;
    transition: background-color var(--duration-fast) var(--ease-natural), border-color var(--duration-fast) var(--ease-natural);
}
.dominium-tech__nav .nav-link:hover,
.dominium-tech__nav .nav-link:focus-visible {
    border-color: var(--color-primary);
}
.dominium-tech__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-6) var(--space-7);
    padding: var(--space-3) 0;
}
.dominium-tech__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    min-width: 96px;
}
.dominium-tech__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: 26px;
}
.dominium-tech__name {
    font-size: var(--fs-small);
    font-weight: 600;
    color: var(--color-text-muted);
    text-align: center;
}

/* --- Secteurs, aperçu homepage (brief 16) ------------------------------ */
.dominium-sectors__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--color-border);
    border: 1px solid var(--color-border);
}
.dominium-sectors__item {
    background: var(--color-bg);
    padding: var(--space-6) var(--space-5);
    border-left: 3px solid transparent;
    transition: border-color var(--duration-fast) var(--ease-natural), background-color var(--duration-fast) var(--ease-natural);
}
.dominium-sectors__item:hover {
    border-left-color: var(--color-primary);
    background: var(--color-surface);
}
.dominium-sectors__icon {
    display: inline-flex;
    font-size: 22px;
    color: var(--color-primary);
    margin-bottom: var(--space-3);
}
.dominium-sectors__name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-text);
    margin-bottom: var(--space-2);
}
.dominium-sectors__desc {
    font-size: var(--fs-small);
    color: var(--color-text-muted);
    line-height: 1.6;
    margin-bottom: 0;
}
@media (max-width: 991px) {
    .dominium-sectors__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 575px) {
    .dominium-sectors__grid {
        grid-template-columns: 1fr;
    }
}

/* --- IA immersive (brief 17) -------------------------------------------
   Même construction que le hero (Lot 1) : section sombre, réseau SVG en
   arrière-plan (lignes + points), état statique entièrement visible sans
   JS, animation discrète coupée sous prefers-reduced-motion. */
.dominium-ai {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background-color: var(--color-dark);
    padding: var(--space-10) 0;
}
@media (max-width: 991px) {
    .dominium-ai {
        padding: var(--space-8) 0;
    }
}
.dominium-ai__network {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0.55;
    pointer-events: none;
}
.dominium-ai__network-svg {
    width: 100%;
    height: 100%;
}
.dominium-ai__network-line {
    fill: none;
    stroke: rgba(255, 195, 0, 0.35);
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-dasharray: 5 9;
    animation: dominium-ai-flow 9s linear infinite;
}
.dominium-ai__network-dot {
    fill: var(--color-primary);
    opacity: 0.6;
    animation: dominium-ai-dot-pulse 5s ease-in-out infinite;
}
.dominium-ai__network-dot:nth-child(even) {
    animation-delay: -2.4s;
}
@keyframes dominium-ai-flow {
    to {
        stroke-dashoffset: -56;
    }
}
@keyframes dominium-ai-dot-pulse {
    0%, 100% { opacity: 0.35; }
    50% { opacity: 0.9; }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-ai__network-line {
        animation: none !important;
    }
    .dominium-ai__network-dot {
        animation: none !important;
        opacity: 0.6 !important;
    }
}
.dominium-ai .container {
    position: relative;
    z-index: 1;
}
.dominium-ai__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-7) var(--space-6);
}
.dominium-ai__item {
    text-align: left;
}
.dominium-ai__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--color-border-on-dark);
    color: var(--color-primary);
    font-size: 20px;
    margin-bottom: var(--space-4);
}
.dominium-ai__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-text-on-dark);
    margin-bottom: var(--space-2);
}
.dominium-ai__desc {
    font-size: var(--fs-small);
    color: var(--color-text-muted-on-dark);
    line-height: 1.6;
    margin-bottom: 0;
}
@media (max-width: 991px) {
    .dominium-ai__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 575px) {
    .dominium-ai__grid {
        grid-template-columns: 1fr;
    }
}

/* --- Cloud (brief 18) --------------------------------------------------- */
.dominium-cloud__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-7) var(--space-6);
}
.dominium-cloud__item {
    border-top: 2px solid var(--color-border);
    padding-top: var(--space-4);
    transition: border-color var(--duration-fast) var(--ease-natural);
}
.dominium-cloud__item:hover {
    border-top-color: var(--color-primary);
}
.dominium-cloud__icon {
    display: inline-flex;
    font-size: 22px;
    color: var(--color-primary);
    margin-bottom: var(--space-3);
}
.dominium-cloud__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-text);
    margin-bottom: var(--space-2);
}
.dominium-cloud__desc {
    font-size: var(--fs-small);
    color: var(--color-text-muted);
    line-height: 1.6;
    margin-bottom: 0;
}
@media (max-width: 991px) {
    .dominium-cloud__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 575px) {
    .dominium-cloud__grid {
        grid-template-columns: 1fr;
    }
}

/* =====================================================================
   LOT 3 — Pages Solutions / Expertises / Secteurs détaillées
   (brief sections 11/16/24/25)
   ===================================================================== */

/* --- Nav principale : 6 -> 7 items à plat (ajout Expertise + Secteurs,
   voir layouts/partials/public-nav.blade.php) --------------------------
   Bug confirmé par capture d'écran à 1440px : avec l'espacement par défaut
   du template (40px entre items, style.css ligne ~1054, pensé pour 6 items
   max), "À propos" retombait sur deux lignes ("À" / "Propos") faute de
   place, cassant l'alignement vertical de toute la nav. Resserré à 22px et
   `white-space: nowrap` pour empêcher qu'un libellé à deux mots ne se coupe
   au milieu — vérifié par capture, la nav tient sur une seule ligne à
   992/1024/1280/1440px avec les 7 items. */
.atf-main-menu > nav > ul > li {
    margin-right: 22px;
}
.atf-main-menu > nav > ul > li > a {
    white-space: nowrap;
}

/* --- Icône du bandeau de confiance : ajustement mineur pour que
   <img> et <i> cohabitent proprement dans .dominium-tech__icon (nouveau
   composant tech-grid, Lot 3) sans toucher à l'usage existant (homepage,
   <i> uniquement). --- */
.dominium-tech__icon img {
    max-width: 32px;
    max-height: 32px;
    object-fit: contain;
}

/* --- Index /solutions : composition éditoriale (brief 11) ---------------
   Pas une grille de 6 cartes identiques : une liste de lignes pleine
   largeur, alternées (texte/icône inversés une ligne sur deux), séparées
   par un filet (pas de carte, pas d'ombre). Chaque ligne est un lien entier
   vers /solutions/{slug} — "ouvrable pour plus de détails" au sens où elle
   mène au gabarit détail complet (brief section 25), plutôt qu'un accordéon
   qui dupliquerait le même texte court déjà visible. */
.dominium-solutions-index {
    border-top: 1px solid var(--color-border);
}
.dominium-solutions-index__row {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    align-items: center;
    gap: var(--space-6);
    padding: var(--space-7) 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
    text-decoration: none;
    transition: background-color var(--duration-fast) var(--ease-natural), padding-left var(--duration-fast) var(--ease-natural);
}
.dominium-solutions-index__row:hover,
.dominium-solutions-index__row:focus-visible {
    background: var(--color-surface);
    color: var(--color-text);
    padding-left: var(--space-4);
}
.dominium-solutions-index__row:nth-child(even) {
    grid-template-columns: auto 1fr 72px;
}
.dominium-solutions-index__row:nth-child(even) .dominium-solutions-index__index {
    order: 3;
    text-align: right;
}
.dominium-solutions-index__row:nth-child(even) .dominium-solutions-index__arrow {
    order: 1;
    transform: scaleX(-1);
}
.dominium-solutions-index__row:nth-child(even) .dominium-solutions-index__body {
    order: 2;
    text-align: right;
}
.dominium-solutions-index__index {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h3);
    color: var(--color-border);
    transition: color var(--duration-fast) var(--ease-natural);
}
.dominium-solutions-index__row:hover .dominium-solutions-index__index,
.dominium-solutions-index__row:focus-visible .dominium-solutions-index__index {
    color: var(--color-primary);
}
.dominium-solutions-index__body {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-6);
}
.dominium-solutions-index__name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h1);
    margin: 0;
    flex: 0 0 auto;
}
.dominium-solutions-index__desc {
    font-size: var(--fs-body);
    color: var(--color-text-muted);
    max-width: 48ch;
    margin: 0;
}
.dominium-solutions-index__arrow {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
    transition: background-color var(--duration-fast) var(--ease-natural), border-color var(--duration-fast) var(--ease-natural), color var(--duration-fast) var(--ease-natural);
}
.dominium-solutions-index__row:hover .dominium-solutions-index__arrow,
.dominium-solutions-index__row:focus-visible .dominium-solutions-index__arrow {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-dark);
}
@media (max-width: 767px) {
    .dominium-solutions-index__row,
    .dominium-solutions-index__row:nth-child(even) {
        grid-template-columns: 40px 1fr;
        gap: var(--space-4);
        padding: var(--space-5) 0;
    }
    .dominium-solutions-index__row:nth-child(even) .dominium-solutions-index__index,
    .dominium-solutions-index__row:nth-child(even) .dominium-solutions-index__body {
        order: initial;
        text-align: left;
    }
    .dominium-solutions-index__row .dominium-solutions-index__arrow,
    .dominium-solutions-index__row:nth-child(even) .dominium-solutions-index__arrow {
        display: none;
    }
    .dominium-solutions-index__name {
        font-size: var(--fs-h3);
        display: block;
    }
    .dominium-solutions-index__body {
        display: block;
    }
}

/* --- Hero de détail solution (brief 25) --------------------------------
   Variante plus simple que le hero d'accueil (pas de visuel réseau animé,
   signature propre à la homepage) : fond sombre, grande icône en filigrane,
   fil d'Ariane texte, titre/sous-titre propres à la solution. */
.dominium-solution-hero {
    position: relative;
    overflow: hidden;
    background-color: var(--color-dark);
    padding: var(--space-9) 0 var(--space-8);
}
.dominium-solution-hero__icon {
    position: absolute;
    top: 50%;
    right: -40px;
    transform: translateY(-50%);
    font-size: 320px;
    line-height: 1;
    color: rgba(255, 255, 255, 0.05);
    pointer-events: none;
}
@media (max-width: 991px) {
    .dominium-solution-hero__icon {
        font-size: 180px;
    }
}
.dominium-solution-hero .container {
    position: relative;
    z-index: 1;
}
.dominium-solution-hero__trail {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-caption);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted-on-dark);
    margin-bottom: var(--space-5);
}
.dominium-solution-hero__trail a {
    color: var(--color-text-muted-on-dark);
    text-decoration: none;
}
.dominium-solution-hero__trail a:hover,
.dominium-solution-hero__trail a:focus-visible {
    color: var(--color-primary);
}
.dominium-solution-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-small);
    font-weight: 600;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: var(--space-4);
}
.dominium-solution-hero__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-display);
    color: var(--color-text-on-dark);
    max-width: 18ch;
    margin-bottom: var(--space-5);
    text-wrap: balance;
}
.dominium-solution-hero__subtitle {
    font-size: 1.125rem;
    color: var(--color-text-muted-on-dark);
    max-width: 58ch;
    margin-bottom: var(--space-6);
}
.dominium-solution-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

/* --- Problématique (texte centré, type "pull-quote") -------------------- */
.dominium-solution-problem {
    text-align: center;
}
.dominium-solution-problem__label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-small);
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: var(--space-5);
}
.dominium-solution-problem__label i {
    color: var(--color-primary);
}
.dominium-solution-problem__text {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: var(--fs-h2);
    line-height: 1.4;
    max-width: 44ch;
    margin: 0 auto;
    color: var(--color-text);
}

/* --- Solution (deux colonnes, asymétrique, sens inversé du bloc
   Problématique pour rythmer le scroll) ----------------------------------- */
.dominium-solution-solution__label {
    font-size: var(--fs-small);
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: var(--space-4);
    display: block;
}
.dominium-solution-solution__text {
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--color-text);
}

/* --- Fonctionnalités (liste numérotée, pas de cartes) ------------------- */
.dominium-solution-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-7) var(--space-8);
}
.dominium-solution-features__item {
    display: flex;
    gap: var(--space-5);
    border-top: 2px solid var(--color-border);
    padding-top: var(--space-4);
}
.dominium-solution-features__index {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-primary);
    flex-shrink: 0;
}
.dominium-solution-features__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-text);
    margin-bottom: var(--space-2);
}
.dominium-solution-features__desc {
    font-size: var(--fs-small);
    color: var(--color-text-muted);
    line-height: 1.6;
    margin-bottom: 0;
}
@media (max-width: 767px) {
    .dominium-solution-features {
        grid-template-columns: 1fr;
    }
}

/* --- Architecture (bloc texte avec accent, pas de diagramme inventé à
   partir d'un champ texte libre) ------------------------------------------ */
.dominium-solution-architecture__text {
    border-left: 3px solid var(--color-primary);
    padding-left: var(--space-6);
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--color-text);
}
@media (max-width: 767px) {
    .dominium-solution-architecture__text {
        padding-left: var(--space-4);
    }
}

/* --- Processus (timeline verticale compacte, variante de
   .dominium-approach__timeline pensée pour une seule solution) ------------ */
.dominium-solution-process {
    list-style: none;
    margin: 0;
    padding: 0;
    max-width: 760px;
}
.dominium-solution-process__item {
    position: relative;
    display: flex;
    gap: var(--space-5);
    padding-bottom: var(--space-6);
}
.dominium-solution-process__item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 19px;
    top: 44px;
    bottom: 0;
    width: 1px;
    background: var(--color-border);
}
.dominium-solution-process__marker {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-dark);
    color: var(--color-text-on-dark);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-caption);
}
.dominium-solution-process__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h4);
    color: var(--color-text);
    margin-bottom: var(--space-2);
}
.dominium-solution-process__desc {
    font-size: var(--fs-small);
    color: var(--color-text-muted);
    line-height: 1.6;
    margin-bottom: 0;
}

/* --- Cas d'utilisation (liste simple, pas de carte) ---------------------- */
.dominium-solution-usecases {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4) var(--space-7);
    list-style: none;
    margin: 0;
    padding: 0;
}
.dominium-solution-usecases__item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--fs-body);
    color: var(--color-text);
}
.dominium-solution-usecases__item i {
    color: var(--color-primary);
    margin-top: 4px;
}
@media (max-width: 767px) {
    .dominium-solution-usecases {
        grid-template-columns: 1fr;
    }
}

/* --- Index /expertises : angle "preuve de compétence" -------------------
   Même logique de ligne pleine largeur que /solutions (pas de carte), mais
   enrichie des technologies maîtrisées (badges) et, si disponibles, des
   réalisations liées — contrairement à /solutions, pas de grand titre
   éditorial : cette page est volontairement plus dense/factuelle. */
.dominium-expertise-row {
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-6) 0;
}
.dominium-expertise-row:first-child {
    border-top: 1px solid var(--color-border);
}
.dominium-expertise-row__head {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}
.dominium-expertise-row__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-primary);
    font-size: 20px;
    flex-shrink: 0;
}
.dominium-expertise-row__name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-h3);
    margin: 0;
}
.dominium-expertise-row__link {
    margin-left: auto;
    font-size: var(--fs-small);
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    white-space: nowrap;
}
.dominium-expertise-row__link:hover,
.dominium-expertise-row__link:focus-visible {
    color: var(--color-primary);
}
.dominium-expertise-row__link i {
    margin-left: var(--space-1);
}
.dominium-expertise-row__pills {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}
.dominium-expertise-row__pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    padding: 6px 14px;
    font-size: var(--fs-caption);
    font-weight: 600;
    color: var(--color-text-muted);
}
.dominium-expertise-row__projects {
    font-size: var(--fs-small);
    color: var(--color-text-muted);
    margin: 0;
}
.dominium-expertise-row__projects a {
    color: var(--color-text);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.dominium-expertise-row__projects a:hover,
.dominium-expertise-row__projects a:focus-visible {
    color: var(--color-primary);
}

/* --- Secteurs : réutilisation de .dominium-sectors__* (homepage, Lot 2)
   en version lien (page /secteurs) : l'ajout ci-dessous ne change rien au
   rendu homepage (où l'élément est un <div>, pas un <a>), uniquement le
   comportement de <a> (soulignement/couleur par défaut du navigateur). --- */
.dominium-sectors__item {
    color: inherit;
    text-decoration: none;
    display: block;
}

/* --- Détail secteur --------------------------------------------------- */
.dominium-sector-challenges {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dominium-sector-challenges__item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--color-border);
    font-size: var(--fs-body);
    color: var(--color-text);
}
.dominium-sector-challenges__item:last-child {
    border-bottom: 1px solid var(--color-border);
}
.dominium-sector-challenges__item i {
    color: var(--color-primary);
    margin-top: 4px;
}
.dominium-sector-solutions {
    border-left: 3px solid var(--color-primary);
    padding-left: var(--space-6);
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--color-text);
}
@media (max-width: 767px) {
    .dominium-sector-solutions {
        padding-left: var(--space-4);
    }
}

/* =====================================================================
   FOOTER — Round 8 (Lot 5, nettoyage final), brief section 23.
   Grille en CSS pur (indépendante du système `.row`/`.col-lg-*`
   Bootstrap) : 5 blocs (marque + Solutions/Entreprise/Ressources/Contact)
   ne se répartissent pas proprement sur 12 colonnes. Les classes internes
   de chaque colonne (`.atf-single-footer`, `.title`, `.atf-list-menu`,
   `.atf-footer-widget-*`) restent celles du template, inchangées.
   ===================================================================== */
.dominium-footer-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, 1fr);
    gap: var(--space-8) var(--space-6);
    padding-top: 120px;
    padding-bottom: 80px;
}

@media (max-width: 1199px) {
    .dominium-footer-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .dominium-footer-grid__brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767px) {
    .dominium-footer-grid {
        grid-template-columns: repeat(2, 1fr);
        padding-top: 80px;
        padding-bottom: 50px;
    }
}

@media (max-width: 479px) {
    .dominium-footer-grid {
        grid-template-columns: 1fr;
    }
}

.dominium-footer-grid .atf-single-footer {
    margin: 0;
}

.dominium-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
    padding: 30px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

@media (min-width: 768px) {
    .dominium-footer-bottom {
        /* Dégage la zone du bouton WhatsApp flottant (fixed, 60px,
           right:25px, voir .dominium-whatsapp-float) pour que "Cookies"
           ne passe jamais dessous — trouvé par vérification réelle
           (capture du footer, pas seulement relecture de code). En
           dessous de 768px la barre est centrée (règle plus bas), le
           groupe de liens reste naturellement loin du coin bas-droit. */
        padding-right: 100px;
    }
}

.dominium-footer-bottom__copyright {
    color: var(--atf-thm-white);
    opacity: 0.7;
    margin: 0;
    font-size: var(--fs-small, 14px);
}

.dominium-footer-bottom__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-5);
    list-style: none;
    margin: 0;
    padding: 0;
}

.dominium-footer-bottom__legal a {
    color: var(--atf-thm-white);
    opacity: 0.7;
    font-size: var(--fs-small, 14px);
    text-decoration: none;
    transition: opacity 0.3s ease-in-out;
}

.dominium-footer-bottom__legal a:hover,
.dominium-footer-bottom__legal a:focus-visible {
    opacity: 1;
    text-decoration: underline;
}

@media (max-width: 767px) {
    .dominium-footer-bottom {
        justify-content: center;
        text-align: center;
    }
}

/* -----------------------------------------------------------------------
   FAQ — Round 8 (Lot 5, nettoyage final). Remplace l'ancien encadré
   "carte" (fond gris + coins arrondis, `grey-bg-7 rounded-4`) par un bloc
   à accent latéral jaune, même langage visuel que `.dominium-sector-
   solutions` (Lot 3) : pas de carte, pas d'ombre (brief section 33).
   ----------------------------------------------------------------------- */
.dominium-faq-contact-block {
    border-left: 3px solid var(--color-primary);
    padding: var(--space-6) 0 var(--space-6) var(--space-6);
}

@media (max-width: 767px) {
    .dominium-faq-contact-block {
        padding-left: var(--space-4);
    }
}

/* -----------------------------------------------------------------------
   Cartes services sans photo (`components/public/service-card.blade.php`,
   variante sans `cover_image`). Remplace la photo stock du template
   (assets/img/service/1.jpg) répétée à l'identique sur les 13 cartes de
   /services et du carrousel de l'accueil. Langage du design system :
   bordure fine plutôt qu'ombre (brief section 33), jaune en fond de
   tuile/barre d'accent uniquement — jamais en couleur de texte.
   ----------------------------------------------------------------------- */
.dominium-service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: var(--space-6);
    background-color: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-service-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s var(--ease-natural);
}
.dominium-service-card:hover,
.dominium-service-card:focus-within {
    border-color: var(--color-dark);
    transform: translateY(-4px);
}
.dominium-service-card:hover::before,
.dominium-service-card:focus-within::before {
    transform: scaleX(1);
}
.dominium-service-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: var(--space-5);
}
.dominium-service-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: var(--radius-md);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 24px;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural);
}
.dominium-service-card:hover .dominium-service-card__icon,
.dominium-service-card:focus-within .dominium-service-card__icon {
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-service-card__number {
    font-size: var(--fs-h2);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
    color: transparent;
    -webkit-text-stroke: 1px var(--color-border);
    font-variant-numeric: tabular-nums;
}
.dominium-service-card__title {
    font-size: var(--fs-h4);
    line-height: 1.35;
    margin-bottom: var(--space-3);
    text-wrap: balance;
}
.dominium-service-card__link,
.dominium-service-card__link:hover {
    color: var(--color-text);
}
/* Lien étiré : toute la carte mène à la fiche détail. */
.dominium-service-card__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}
.dominium-service-card__link:focus-visible {
    outline: none;
}
.dominium-service-card:has(.dominium-service-card__link:focus-visible) {
    outline: 2px solid var(--color-dark);
    outline-offset: 3px;
}
.dominium-service-card__excerpt {
    font-size: var(--fs-small);
    line-height: 1.6;
    color: var(--color-text-muted);
    margin-bottom: var(--space-4);
}
.dominium-service-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0 0 var(--space-5);
}
.dominium-service-card__meta li {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-pill);
    background-color: var(--color-surface);
    font-size: var(--fs-caption);
    font-weight: 600;
    color: var(--color-text);
}
.dominium-service-card__meta i {
    color: var(--color-text-muted);
}
.dominium-service-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}
.dominium-service-card__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-small);
    font-weight: 700;
    color: var(--color-text);
}
.dominium-service-card__cta i {
    transition: transform .3s var(--ease-natural);
}
.dominium-service-card:hover .dominium-service-card__cta i {
    transform: translateX(4px);
}
.dominium-service-card__whatsapp {
    position: relative;
    z-index: 2;
    padding: 8px 16px;
    font-size: var(--fs-small);
}

/* Variante compacte (carrousel de l'accueil, 4 colonnes) : pas de meta ni
   de WhatsApp, cartes de même hauteur dans la piste Slick. */
.dominium-service-card--compact {
    padding: var(--space-5);
}
.atf__service_slider_active .slick-track {
    display: flex;
}
/* Slick enveloppe les colonnes : elles ne sont plus enfants directs de
   .row et perdent la gouttière Bootstrap — on la redonne à la diapositive. */
.atf__service_slider_active .slick-slide {
    height: auto;
    padding: var(--space-2) calc(var(--bs-gutter-x, 1.5rem) * .5);
}
.atf__service_slider_active .slick-slide > div,
.atf__service_slider_active .slick-slide > div > div {
    height: 100%;
}

@media (prefers-reduced-motion: reduce) {
    .dominium-service-card,
    .dominium-service-card::before,
    .dominium-service-card__icon,
    .dominium-service-card__cta i {
        transition: none;
    }
    .dominium-service-card:hover,
    .dominium-service-card:focus-within {
        transform: none;
    }
}

/* -----------------------------------------------------------------------
   Replis typographiques quand un visuel manque (contenu non modifié) :
   - `.dominium-partner-wordmark` : nom du partenaire composé en logotype
     quand son fichier logo n'existe pas (components/public/partner-logo).
     Hérite du niveau de gris / de l'opacité du bandeau de confiance.
   - `.dominium-tech__monogram` : 2 lettres quand une technologie n'a ni
     logo ni icône de marque connue (components/public/tech-logo).
   ----------------------------------------------------------------------- */
.dominium-partner-wordmark {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    font-size: 1.125rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: var(--color-text);
    white-space: nowrap;
}
.atf-partner .dominium-partner-wordmark {
    justify-content: center;
    width: 100%;
    min-height: 60px;
    text-align: center;
    white-space: normal;
    color: var(--color-text-muted);
}
@media (max-width: 575px) {
    .dominium-partner-wordmark {
        min-height: 26px;
        font-size: 1rem;
    }
}
.dominium-tech__monogram {
    font-size: 1.125rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--color-text);
}

/* -----------------------------------------------------------------------
   Avatar à initiales (components/public/initials-avatar) — remplace la
   photo stock du template quand team_members.photo / testimonials.photo
   est vide. Noir + blanc, jaune uniquement en forme décorative.
   ----------------------------------------------------------------------- */
.dominium-avatar {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    isolation: isolate;
}
.dominium-avatar::before {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    background-color: var(--color-primary);
}
.dominium-avatar__initials {
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1;
}

/* Portrait : même format que les photos d'équipe (700×795). */
.dominium-avatar--portrait {
    aspect-ratio: 700 / 795;
    width: 100%;
    border-radius: 15px;
}
.dominium-avatar--portrait::before {
    width: 70%;
    aspect-ratio: 1;
    right: -22%;
    bottom: -22%;
}
.dominium-avatar--portrait .dominium-avatar__initials {
    font-size: clamp(3rem, 2rem + 4vw, 5.5rem);
}

/* Pastille ronde (témoignages, 80×80 imposé par .testimonial .pic). */
.dominium-avatar--round {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}
.dominium-avatar--round::before {
    width: 60%;
    aspect-ratio: 1;
    right: -18%;
    bottom: -18%;
}
.dominium-avatar--round .dominium-avatar__initials {
    font-size: 1.5rem;
}

/* Dans la carte équipe, la photo du template a des coins de 20px. */
.atf-single-team .dominium-avatar--portrait {
    border-radius: 15px 15px 0 0;
}
.atf-single-team:hover .dominium-avatar--portrait::before {
    transform: scale(1.15);
}
.dominium-avatar--portrait::before {
    transition: transform .5s var(--ease-natural);
}
@media (prefers-reduced-motion: reduce) {
    .dominium-avatar--portrait::before {
        transition: none;
    }
}
/* La pastille photo/initiales des témoignages ne doit jamais être
   comprimée par un nom d'auteur long (flex du template). */
.testimonial .pic {
    flex-shrink: 0;
}

/* =======================================================================
   /a-propos — section "Nos experts" (maquette client du 04/10/2026).
   Proportions relevées sur la maquette v2 (carte de 341×475px à 1920px) :
   cadre noir de 45px (13,2 %) autour d'un portrait carré, barre de
   contacts de 52px (15,2 %) sur le bord gauche du portrait, de 12 % à
   98 % de sa hauteur, ~60px (5 %) entre deux cartes, 3 cartes visibles. Nom en
   jaune (demande explicite du client, comme la maquette). Portrait N&B
   par défaut, teinté jaune au survol. Toutes les tailles internes sont
   exprimées en cqw (largeur de la carte, container query sur la
   diapositive) : 3 cartes se partagent toujours la colonne, quelle que
   soit la largeur d'écran ou le zoom du navigateur.
   ======================================================================= */
.dominium-team-showcase {
    --team-card-gap: 40px;
    position: relative;
    padding: var(--space-9) 0;
    overflow: hidden;
    background-color: var(--color-bg);
}
.dominium-team-showcase__intro {
    padding-right: var(--space-6);
    margin-bottom: var(--space-7);
}
.dominium-team-showcase__title {
    position: relative;
    font-size: clamp(2rem, 1.2rem + 1.7vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
    margin-bottom: var(--space-7);
}
/* Trait jaune qui part du bord gauche de l'écran jusqu'à 24px du titre. */
.dominium-team-showcase__title::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 24px);
    width: 100vw;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-team-showcase__text {
    font-size: 1.125rem;
    line-height: 1.95;
    color: var(--color-text-muted);
    max-width: 380px;
    margin-bottom: var(--space-8);
}

/* Bouton rectangulaire noir + pastille carrée jaune (réutilisable). */
.dominium-square-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-5);
    min-height: 56px;
    padding: 0 12px 0 32px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-size: 1rem;
    font-weight: 700;
    transition: background-color .3s var(--ease-natural);
}
.dominium-square-btn:hover,
.dominium-square-btn:focus-visible {
    background-color: #1C1C1C;
    color: var(--color-text-on-dark);
}
.dominium-square-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 15px;
    transition: transform .3s var(--ease-natural);
}
.dominium-square-btn:hover .dominium-square-btn__icon {
    transform: translateX(3px);
}

/* Le carrousel déborde à droite jusqu'au bord de l'écran (la section
   coupe en overflow:hidden), mais reste coupé net au bord gauche de sa
   colonne pour ne jamais passer sous le texte d'intro. */
.dominium-team-showcase__bleed {
    clip-path: none;
}
.dominium-team-showcase__slider,
.dominium-team-showcase__slider .slick-list {
    margin: 0 calc(var(--team-card-gap) / -2);
}
.dominium-team-showcase__slider .slick-list {
    margin: 0;
}
.dominium-team-showcase__slide {
    padding: 0 calc(var(--team-card-gap) / 2);
    container-type: inline-size;
}
.dominium-team-showcase__slider:not(.slick-initialized) .dominium-team-showcase__slide {
    flex: 0 0 33.333%;
}
.dominium-team-showcase__slider:not(.slick-initialized) {
    display: flex;
}
/* Directeur technique fixe, les autres membres défilent à côté (même largeur de carte). */
.dominium-team-showcase__row {
    display: flex;
    align-items: flex-start;
    gap: var(--team-card-gap);
}
.dominium-team-showcase__lead {
    flex: 0 0 calc((100% - 2 * var(--team-card-gap)) / 3);
    container-type: inline-size;
}
.dominium-team-showcase__rest {
    flex: 1 1 auto;
    min-width: 0;
}
.dominium-team-showcase__slider--with-lead:not(.slick-initialized) .dominium-team-showcase__slide {
    flex-basis: 50%;
}
@media (max-width: 1199px) {
    .dominium-team-showcase__lead {
        flex-basis: calc((100% - var(--team-card-gap)) / 2);
    }
    .dominium-team-showcase__slider--with-lead:not(.slick-initialized) .dominium-team-showcase__slide {
        flex-basis: 100%;
    }
}
@media (max-width: 767px) {
    .dominium-team-showcase__row {
        flex-direction: column;
        align-items: stretch;
    }
}

.dominium-team-card {
    width: 100%;
    padding: 13.2cqw 13.2cqw 15.2cqw;
    background-color: var(--color-dark);
    text-align: center;
}
.dominium-team-card__media {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background-color: #EFEFEF;
}
.dominium-team-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: transform .8s var(--ease-natural);
}
.dominium-team-card__media > .dominium-avatar {
    transition: transform .8s var(--ease-natural);
}
/* Survol : le portrait N&B se teinte en jaune (calque jaune en
   "multiply" : les clairs deviennent jaunes, les noirs restent noirs),
   avec un léger zoom. Même rendu pour une photo ou l'avatar initiales. */
.dominium-team-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: var(--color-primary);
    mix-blend-mode: multiply;
    opacity: 0;
    pointer-events: none;
    transition: opacity .6s var(--ease-natural);
}
.dominium-team-card:hover .dominium-team-card__media::after,
.dominium-team-card:focus-within .dominium-team-card__media::after {
    opacity: 1;
}
.dominium-team-card:hover .dominium-team-card__media img,
.dominium-team-card:hover .dominium-team-card__media > .dominium-avatar,
.dominium-team-card:focus-within .dominium-team-card__media img,
.dominium-team-card:focus-within .dominium-team-card__media > .dominium-avatar {
    transform: scale(1.06);
}
.dominium-team-card__links {
    position: absolute;
    z-index: 2;
    top: 12%;
    bottom: 2%;
    left: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5cqw;
    width: 15.2cqw;
    margin: 0;
    padding: 0;
    list-style: none;
    background-color: var(--color-dark);
}
.dominium-team-card__links a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 7.5cqw;
    color: var(--color-primary);
    font-size: 5.6cqw;
    transition: color .25s var(--ease-natural), transform .25s var(--ease-natural);
}
.dominium-team-card__links a:hover,
.dominium-team-card__links a:focus-visible {
    color: var(--color-text-on-dark);
    transform: scale(1.12);
}
.dominium-team-card__name {
    margin: 12.5cqw 0 3cqw;
    font-size: max(7.7cqw, 17px);
    font-weight: 700;
    letter-spacing: -0.015em;
    line-height: 1.2;
}
.dominium-team-card__name a,
.dominium-team-card__name a:hover {
    color: var(--color-primary);
}
.dominium-team-card__role {
    margin: 0;
    font-size: max(5cqw, 13px);
    color: var(--color-text-muted-on-dark);
}

/* Avatar "photo N&B" (variant="mono") : même cadre que les portraits
   passés en niveaux de gris, initiales noires. */
.dominium-avatar--mono {
    width: 100%;
    height: 100%;
    background-color: #EFEFEF;
    color: #1A1A1A;
}
.dominium-avatar--mono::before {
    width: 75%;
    aspect-ratio: 1;
    right: -25%;
    bottom: -25%;
    background-color: #C4C4C4;
}
.dominium-avatar--mono .dominium-avatar__initials {
    font-size: 22cqw;
}

.dominium-team-showcase__nav {
    display: flex;
    justify-content: center;
    gap: 5px;
    margin-top: 83px;
}
.dominium-team-showcase__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border: 0;
    font-size: 18px;
    cursor: pointer;
    transition: background-color .25s var(--ease-natural), color .25s var(--ease-natural), opacity .25s;
}
.dominium-team-showcase__arrow--prev {
    background-color: var(--color-dark);
    color: var(--color-primary);
}
.dominium-team-showcase__arrow--next {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-team-showcase__arrow--prev:hover {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-team-showcase__arrow--next:hover {
    background-color: var(--color-dark);
    color: var(--color-primary);
}
.dominium-team-showcase__arrow.slick-disabled {
    opacity: .35;
    cursor: default;
    pointer-events: none;
}

/* 3 cartes pleines à côté de l'intro, comme la maquette : la colonne
   carrousel (col-xxl-9) fait 990px de 1400 à 1599px, 1170px au-delà. */
@media (min-width: 1400px) {
    .dominium-team-showcase {
        --team-card-gap: 48px;
    }
}
@media (min-width: 1600px) {
    .dominium-team-showcase {
        --team-card-gap: 60px;
    }
    .dominium-team-showcase__text {
        font-size: 1.25rem;
        line-height: 2;
    }
    .dominium-square-btn {
        min-height: 64px;
        padding-left: 36px;
        font-size: 1.0625rem;
    }
    .dominium-square-btn__icon {
        width: 40px;
        height: 40px;
        font-size: 17px;
    }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .dominium-team-showcase {
        --team-card-gap: 30px;
    }
}
@media (max-width: 991px) {
    .dominium-team-showcase__intro {
        padding-right: 0;
    }
    .dominium-team-showcase__text {
        margin-bottom: var(--space-6);
    }
    .dominium-team-showcase__nav {
        margin-top: var(--space-7);
    }
}
@media (max-width: 575px) {
    .dominium-team-showcase {
        --team-card-gap: 20px;
        padding: var(--space-8) 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-square-btn__icon,
    .dominium-team-showcase__arrow,
    .dominium-team-card__links a {
        transition: none;
    }
}

/* -----------------------------------------------------------------------
   Bandeau réseaux sociaux (maquette client du 04/10/2026) : bloc noir
   (pastille jaune + titre blanc), fond jaune, barre noire d'icônes
   blanches alignée à droite.
   ----------------------------------------------------------------------- */
.dominium-social-band-wrap {
    padding-bottom: 0;
}
.dominium-social-band {
    display: flex;
    min-height: 160px;
    background-color: var(--color-primary);
}
.dominium-social-band__label {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    flex: 0 0 clamp(300px, 25%, 420px);
    padding: var(--space-5);
    background-color: var(--color-dark);
}
.dominium-social-band__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 58px;
    height: 58px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 24px;
}
.dominium-social-band__title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--color-text-on-dark);
}
.dominium-social-band__links {
    display: flex;
    align-items: center;
    justify-content: space-around;
    flex: 0 1 684px;
    min-height: 89px;
    margin: 36px 36px 36px auto;
    padding: 0 var(--space-6);
    list-style: none;
    background-color: var(--color-dark);
}
.dominium-social-band__links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    color: var(--color-text-on-dark);
    font-size: 34px;
    transition: color .25s var(--ease-natural), transform .25s var(--ease-natural);
}
.dominium-social-band__links a:hover,
.dominium-social-band__links a:focus-visible {
    color: var(--color-primary);
    transform: translateY(-2px);
}
@media (max-width: 991px) {
    .dominium-social-band {
        flex-direction: column;
    }
    .dominium-social-band__label {
        flex-basis: auto;
    }
    .dominium-social-band__links {
        flex-basis: auto;
        margin: var(--space-5);
    }
}
@media (max-width: 575px) {
    .dominium-social-band__title {
        font-size: 1.375rem;
    }
    .dominium-social-band__links {
        padding: 0 var(--space-3);
    }
    .dominium-social-band__links a {
        font-size: 26px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-social-band__links a {
        transition: none;
    }
}

/* =======================================================================
   PASSE DE DENSITÉ — desktop (04/10/2026, retour client : « le contenu
   est trop gros à 100 %, je suis obligé de zoomer à 75 % »).
   Mesuré à 1920px : en-tête de 182px, bandeau titre ~400px, titres de
   section à 48-60px, sections à 120px de marge, le tout dans un
   conteneur de 1320px — contenu énorme dans une colonne étroite. La
   maquette de référence du client utilise ~1640px de conteneur à 1920px.
   Correction par le design system (tokens + surcharges ciblées du
   template), pas par un `zoom` global qui fausserait GSAP/ScrollTrigger,
   Slick et les unités vw/vh. Le mobile (< 1200px) n'est pas modifié.
   ======================================================================= */
@media (min-width: 1200px) {
    :root {
        --fs-display: clamp(2.25rem, 1.6rem + 1.6vw, 3.25rem);
        --fs-h1: clamp(1.875rem, 1.4rem + 1.1vw, 2.5rem);
        --fs-h2: clamp(1.5rem, 1.25rem + 0.7vw, 2rem);
        --fs-h3: 1.25rem;
        --space-9: 80px;
        --space-10: 104px;
    }

    /* En-tête : barre d'infos et menu plus compacts. */
    .atf-top-header.style1,
    .atf-top-header.style2 {
        padding: 6px 0;
    }
    .atf-top-header-list li {
        font-size: 14px;
    }
    .atf-top-header .atf-header-top-social {
        font-size: 14px;
    }
    .atf-main-menu > nav > ul > li > a {
        font-size: 16px;
        padding: 26px 0;
    }
    .atf-site-branding img {
        max-width: 120px;
    }

    /* Bandeau titre des pages secondaires. */
    .breadcrumb-spacing {
        padding-top: 96px;
        padding-bottom: 72px;
    }
    .breadcrumb-title {
        font-size: 44px;
    }

    /* Titres et marges de section du template. */
    .atf-section-title .section-title {
        font-size: 38px;
        letter-spacing: -1px;
    }
    .atf-section-padding {
        padding-top: 96px;
        padding-bottom: 96px;
    }
    h1 { font-size: 34px; }
    h2 { font-size: 30px; }
    h3 { font-size: 21px; }

    .atf-themes-btn {
        padding: 13px 32px;
        font-size: 15px;
    }
}

/* Conteneur plus large sur grands écrans (référence client : ~1640px
   utiles à 1920px) : le contenu respire au lieu de s'empiler en hauteur. */
@media (min-width: 1600px) {
    .container,
    .container-lg,
    .container-md,
    .container-sm,
    .container-xl,
    .container-xxl {
        max-width: 1560px;
    }
}

/* =======================================================================
   /a-propos — "Nos statistiques" (maquettes client du 04/10/2026, v2).
   Proportions relevées sur la maquette (en part de la largeur W du
   visuel) : visuel sur toute la largeur du conteneur, posé à fleur sur
   une bande jaune pleine largeur haute de ~22 % W ; bloc noir des
   chiffres de 25 % W jusqu'au bord droit du visuel ; chiffres ~4,5 % W,
   libellés ~1,3 % W ; "Nos statistiques" ~2,7 % W dans la partie jaune,
   précédé d'un filet blanc venu du bord de l'écran. Légende centrée +
   trait jaune vertical au-dessus du visuel, trame de points décalée
   derrière, points chauds pulsés.
   Animations d'entrée (.is-inview, IntersectionObserver en bas de
   about.blade.php) ; sans JS tout reste visible.
   ======================================================================= */
.dominium-stats-showcase {
    position: relative;
    padding-top: var(--space-9);
    overflow: hidden;
}
.dominium-stats-showcase__figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
}
.dominium-stats-showcase__caption {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    text-align: center;
}
.dominium-stats-showcase__caption a,
.dominium-stats-showcase__caption a:hover {
    color: var(--color-text);
}
.dominium-stats-showcase__stem {
    display: block;
    width: 2px;
    height: 72px;
    margin-top: var(--space-3);
    background-color: var(--color-primary);
    transform-origin: top;
}
.dominium-stats-showcase__frame {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 7;
}
/* Trame de points, décalée en haut à gauche derrière le visuel. */
.dominium-stats-showcase__frame::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -40px;
    left: -40px;
    right: 40px;
    bottom: 40px;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .55) 1.2px, transparent 1.5px);
    background-size: 12px 12px;
}
.dominium-stats-showcase__frame > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural), filter .6s var(--ease-natural);
}
.dominium-stats-showcase__media {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.dominium-stats-showcase__frame:hover .dominium-stats-showcase__media > img {
    transform: scale(1.03);
}
.dominium-stats-showcase__media > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}

/* Points chauds : pastille jaune cerclée de noir + onde qui pulse. */
.dominium-stats-showcase__hotspot {
    position: absolute;
    z-index: 2;
    width: 18px;
    height: 18px;
    margin: -9px 0 0 -9px;
    border-radius: 50%;
    background-color: var(--color-primary);
    box-shadow: 0 0 0 5px var(--color-dark);
}
.dominium-stats-showcase__hotspot::after {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 2px solid var(--color-primary);
    animation: dominium-hotspot-pulse 2.4s var(--ease-natural) infinite;
    animation-delay: var(--delay, 0s);
}
@keyframes dominium-hotspot-pulse {
    0% { transform: scale(1); opacity: .9; }
    80%, 100% { transform: scale(2.6); opacity: 0; }
}

/* Bande jaune + bloc noir des chiffres. */
.dominium-stats-showcase__band {
    background-color: var(--color-primary);
}
.dominium-stats-showcase__band-inner {
    display: flex;
    align-items: stretch;
    min-height: clamp(220px, 18vw, 340px);
}
.dominium-stats-showcase__label {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 0 25%;
    margin: 0;
    padding-right: var(--space-5);
    font-size: clamp(1.625rem, 1rem + 1.1vw, 2.5rem);
    white-space: nowrap;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: var(--color-dark);
}
/* Filet blanc qui précède le libellé, depuis le bord de l'écran. */
.dominium-stats-showcase__label::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 24px);
    width: 100vw;
    height: 2px;
    background-color: var(--color-text-on-dark);
    transform-origin: right;
}
.dominium-stats-showcase__stats {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    align-items: center;
    column-gap: var(--space-5);
    flex: 1;
    margin: 0;
    padding: var(--space-6) var(--space-6);
    list-style: none;
    background-color: var(--color-dark);
}
.dominium-stats-showcase__stats li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
    text-align: center;
}
.dominium-stats-showcase__number {
    font-size: clamp(2.5rem, 1.4rem + 3vw, 4.5rem);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1;
    color: var(--color-primary);
    font-variant-numeric: tabular-nums;
}
.dominium-stats-showcase .counter-number {
    font: inherit;
    color: inherit;
}
.dominium-stats-showcase__stat-label {
    max-width: 100%;
    font-size: clamp(.9375rem, .8rem + .35vw, 1.25rem);
    line-height: 1.3;
    color: var(--color-text-on-dark);
    text-wrap: balance;
}

/* --- Animations d'entrée --- */
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__caption {
    opacity: 0;
    transform: translateY(12px);
}
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__stem {
    transform: scaleY(0);
}
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__frame {
    opacity: 0;
    transform: translateY(48px);
}
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__frame::before {
    opacity: 0;
    transform: translate(24px, 24px);
}
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__stats {
    clip-path: inset(0 0 0 100%);
}
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__stats li {
    opacity: 0;
    transform: translateY(16px);
}
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__label {
    opacity: 0;
    transform: translateX(-20px);
}
.dominium-stats-showcase.js-reveal .dominium-stats-showcase__label::before {
    transform: scaleX(0);
}
.dominium-stats-showcase__caption,
.dominium-stats-showcase__stem,
.dominium-stats-showcase__frame,
.dominium-stats-showcase__frame::before,
.dominium-stats-showcase__stats,
.dominium-stats-showcase__stats li,
.dominium-stats-showcase__label,
.dominium-stats-showcase__label::before {
    transition:
        opacity .8s var(--ease-natural),
        transform .9s var(--ease-natural),
        clip-path 1s var(--ease-natural);
}
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stem { transition-delay: .2s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__frame { transition-delay: .35s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__frame::before { transition-delay: .7s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stats { transition-delay: .5s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stats li:nth-child(1) { transition-delay: .9s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stats li:nth-child(2) { transition-delay: 1s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stats li:nth-child(3) { transition-delay: 1.1s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stats li:nth-child(4) { transition-delay: 1.2s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__label { transition-delay: .8s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__label::before { transition-delay: 1s; }
.dominium-stats-showcase.is-inview .dominium-stats-showcase__caption,
.dominium-stats-showcase.is-inview .dominium-stats-showcase__frame,
.dominium-stats-showcase.is-inview .dominium-stats-showcase__frame::before,
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stats li,
.dominium-stats-showcase.is-inview .dominium-stats-showcase__label {
    opacity: 1;
    transform: none;
}
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stem,
.dominium-stats-showcase.is-inview .dominium-stats-showcase__label::before {
    transform: none;
}
.dominium-stats-showcase.is-inview .dominium-stats-showcase__stats {
    clip-path: inset(0);
}

@media (max-width: 991px) {
    .dominium-stats-showcase__frame {
        aspect-ratio: 16 / 9;
    }
    .dominium-stats-showcase__band-inner {
        flex-direction: column;
        min-height: 0;
    }
    .dominium-stats-showcase__label {
        flex-basis: auto;
        padding: var(--space-5) 0;
    }
    .dominium-stats-showcase__label::before {
        display: none;
    }
    .dominium-stats-showcase__stats {
        grid-auto-flow: row;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-6) var(--space-4);
        padding: var(--space-6) var(--space-4);
    }
}
@media (max-width: 575px) {
    .dominium-stats-showcase__frame::before {
        top: -16px;
        left: -16px;
        right: 16px;
        bottom: 16px;
    }
    .dominium-stats-showcase__stem {
        height: 48px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-stats-showcase__hotspot::after {
        animation: none;
        opacity: 0;
    }
    .dominium-stats-showcase__caption,
    .dominium-stats-showcase__stem,
    .dominium-stats-showcase__frame,
    .dominium-stats-showcase__frame::before,
    .dominium-stats-showcase__stats,
    .dominium-stats-showcase__stats li,
    .dominium-stats-showcase__label,
    .dominium-stats-showcase__label::before,
    .dominium-stats-showcase__media > img,
    .dominium-team-card__media::after,
    .dominium-team-card__media img,
    .dominium-team-card__media > .dominium-avatar {
        transition: none;
    }
}


/* =======================================================================
   /a-propos — "À propos de Dominium" (maquette client du 04/10/2026).
   Relevés de la maquette : rangées alternées image 4:3 / texte de
   largeurs voisines, ~40px entre image et texte à l'échelle de la
   maquette, grand espace entre deux rangées ; trame de points derrière
   chaque image, décalée vers le haut et vers le texte ; titre + tiret
   jaune court, texte justifié, puces cochées en ligne, petit bouton noir
   à pastille jaune. En-tête dans le langage de "Nos statistiques".
   Apparition au défilement via [data-reveal] (script du layout).
   ======================================================================= */
.dominium-story {
    padding: var(--space-9) 0;
    overflow: hidden;
}
.dominium-story__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 900px;
    margin: 0 auto var(--space-8);
    text-align: center;
}
.dominium-story__eyebrow {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--color-text);
}
.dominium-story__stem {
    display: block;
    width: 2px;
    height: 72px;
    margin: var(--space-3) 0 var(--space-5);
    background-color: var(--color-primary);
    transform-origin: top;
}
.dominium-story__title {
    margin: 0;
    font-size: clamp(2.25rem, 1.4rem + 1.9vw, 3.5rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
    text-wrap: balance;
}
.dominium-story__subtitle {
    margin: var(--space-4) 0 0;
    font-size: 1.375rem;
    color: var(--color-text-muted);
}

.dominium-story__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: clamp(48px, 5vw, 96px);
    max-width: 1320px;
    margin: 0 auto;
}
.dominium-story__row + .dominium-story__row {
    margin-top: clamp(72px, 8vw, 128px);
}
.dominium-story__row--reverse .dominium-story__media {
    order: 2;
}

.dominium-story__frame {
    position: relative;
    aspect-ratio: 4 / 3;
}
/* Trame de points, décalée vers le haut et vers le texte. */
.dominium-story__frame::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -32px;
    bottom: 32px;
    left: 32px;
    right: -36px;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .5) 1.2px, transparent 1.5px);
    background-size: 12px 12px;
}
.dominium-story__row--reverse .dominium-story__frame::before {
    left: -36px;
    right: 32px;
}
.dominium-story__frame-inner {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.dominium-story__frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.4s var(--ease-natural);
}
/* Survol : l'image zoome lentement dans son cadre et la trame de points
   glisse vers elle (pas de changement de couleur, demande client). */
.dominium-story__row:hover .dominium-story__frame img {
    transform: scale(1.08);
}
.dominium-story__row.is-inview:hover .dominium-story__frame::before,
.dominium-story__row:not(.js-reveal):hover .dominium-story__frame::before {
    transform: translate(-12px, 12px);
}
.dominium-story__row--reverse.is-inview:hover .dominium-story__frame::before,
.dominium-story__row--reverse:not(.js-reveal):hover .dominium-story__frame::before {
    transform: translate(12px, 12px);
}

.dominium-story__row-title {
    margin: 0;
    font-size: clamp(2rem, 1.4rem + 1.2vw, 2.75rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
}
.dominium-story__dash {
    display: block;
    width: 56px;
    height: 4px;
    margin: var(--space-4) 0 var(--space-5);
    background-color: var(--color-primary);
    transform-origin: left;
}
.dominium-story__text {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.85;
    color: var(--color-text-muted);
    text-align: justify;
    hyphens: auto;
}
.dominium-story__checks {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-6);
    margin: var(--space-5) 0 0;
    padding: 0;
    list-style: none;
}
.dominium-story__checks li {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text);
}
.dominium-story__checks i {
    color: var(--color-primary);
    font-size: 1rem;
}
.dominium-story__body .dominium-square-btn {
    margin-top: var(--space-6);
}

/* Petit bouton carré (rangées "À propos"). */
.dominium-square-btn--sm {
    min-height: 50px;
    padding-left: 24px;
    gap: var(--space-4);
    font-size: .9375rem;
}
.dominium-square-btn--sm .dominium-square-btn__icon {
    width: 30px;
    height: 30px;
    font-size: 13px;
}

/* --- Apparition --- */
.dominium-story__header.js-reveal .dominium-story__eyebrow,
.dominium-story__header.js-reveal .dominium-story__title,
.dominium-story__header.js-reveal .dominium-story__subtitle {
    opacity: 0;
    transform: translateY(16px);
}
.dominium-story__header.js-reveal .dominium-story__stem {
    transform: scaleY(0);
}
.dominium-story__row.js-reveal .dominium-story__frame {
    opacity: 0;
    transform: translateX(-56px);
}
.dominium-story__row--reverse.js-reveal .dominium-story__frame {
    transform: translateX(56px);
}
.dominium-story__row.js-reveal .dominium-story__frame::before {
    opacity: 0;
    transform: translate(-20px, 20px);
}
.dominium-story__row.js-reveal .dominium-story__body > * {
    opacity: 0;
    transform: translateY(20px);
}
.dominium-story__row.js-reveal .dominium-story__dash {
    transform: scaleX(0);
}
.dominium-story__eyebrow,
.dominium-story__stem,
.dominium-story__title,
.dominium-story__subtitle,
.dominium-story__frame,
.dominium-story__frame::before,
.dominium-story__body > * {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-story__header.is-inview .dominium-story__stem { transition-delay: .2s; }
.dominium-story__header.is-inview .dominium-story__title { transition-delay: .4s; }
.dominium-story__header.is-inview .dominium-story__subtitle { transition-delay: .55s; }
.dominium-story__row.is-inview .dominium-story__frame::before { transition-delay: .35s; }
.dominium-story__row.is-inview .dominium-story__body > :nth-child(1) { transition-delay: .2s; }
.dominium-story__row.is-inview .dominium-story__body > :nth-child(2) { transition-delay: .3s; }
.dominium-story__row.is-inview .dominium-story__body > :nth-child(3) { transition-delay: .4s; }
.dominium-story__row.is-inview .dominium-story__body > :nth-child(4) { transition-delay: .5s; }
.dominium-story__row.is-inview .dominium-story__body > :nth-child(5) { transition-delay: .6s; }
.dominium-story__header.is-inview .dominium-story__eyebrow,
.dominium-story__header.is-inview .dominium-story__title,
.dominium-story__header.is-inview .dominium-story__subtitle,
.dominium-story__header.is-inview .dominium-story__stem,
.dominium-story__row.is-inview .dominium-story__frame,
.dominium-story__row.is-inview .dominium-story__frame::before,
.dominium-story__row.is-inview .dominium-story__body > * {
    opacity: 1;
    transform: none;
}

@media (max-width: 991px) {
    .dominium-story__row {
        grid-template-columns: 1fr;
    }
    .dominium-story__row--reverse .dominium-story__media {
        order: 0;
    }
    .dominium-story__frame::before,
    .dominium-story__row--reverse .dominium-story__frame::before {
        top: -18px;
        bottom: 18px;
        left: 18px;
        right: -18px;
    }
}

/* =======================================================================
   Titre avec trait jaune venu du bord gauche de l'écran (réutilisable :
   accueil "À propos de nous"). Même dessin que "Nos experts".
   ======================================================================= */
.dominium-edge-title {
    position: relative;
    margin: 0;
    font-size: clamp(2rem, 1.2rem + 1.7vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.dominium-edge-title::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 24px);
    width: 100vw;
    height: 3px;
    background-color: var(--color-primary);
    transform-origin: left;
}

/* =======================================================================
   Accueil — "À propos de nous" (maquette client du 04/10/2026).
   Relevés : titre à trait jaune depuis le bord, grand paragraphe léger
   justifié (~60 % de la largeur), bouton noir "En savoir plus" à
   pastille jaune ; à droite, très grand chiffre d'années devant un
   losange jaune au trait épais (carré pivoté de 45°, décalé à droite du
   chiffre), mot "Années" en dessous.
   ======================================================================= */
.dominium-about-home {
    padding: var(--space-9) 0;
    overflow: hidden;
}
.dominium-about-home__text {
    margin: var(--space-7) 0 var(--space-7);
    font-size: clamp(1.125rem, .95rem + .45vw, 1.5rem);
    font-weight: 300;
    line-height: 1.75;
    color: var(--color-text-muted);
    text-align: justify;
    hyphens: auto;
}
.dominium-years {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: fit-content;
    margin: 0 auto;
    font-size: clamp(7rem, 3rem + 8vw, 13rem);
    color: var(--color-dark);
    isolation: isolate;
}
.dominium-years__diamond {
    position: absolute;
    z-index: -1;
    top: .1em;
    left: 50%;
    width: .78em;
    height: .78em;
    margin-left: -.24em;
    border: .045em solid var(--color-primary);
    transform: rotate(45deg);
}
.dominium-years__number {
    font-weight: 800;
    letter-spacing: -0.06em;
    line-height: .9;
    font-variant-numeric: tabular-nums;
}
.dominium-years__number .counter-number {
    font: inherit;
    color: inherit;
}
.dominium-years__word {
    margin-top: .02em;
    font-size: .46em;
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1;
}
.dominium-years__detail {
    margin-top: .12em;
    font-size: .1em;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

/* --- Apparition --- */
.dominium-about-home.js-reveal .dominium-edge-title::before {
    transform: scaleX(0);
}
.dominium-about-home.js-reveal .dominium-edge-title,
.dominium-about-home.js-reveal .dominium-about-home__text,
.dominium-about-home.js-reveal .dominium-square-btn,
.dominium-about-home.js-reveal .dominium-years__number,
.dominium-about-home.js-reveal .dominium-years__word,
.dominium-about-home.js-reveal .dominium-years__detail {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-about-home.js-reveal .dominium-years__diamond {
    opacity: 0;
    transform: rotate(0deg) scale(.4);
}
.dominium-edge-title::before,
.dominium-about-home .dominium-edge-title,
.dominium-about-home__text,
.dominium-about-home .dominium-square-btn,
.dominium-years__number,
.dominium-years__word,
.dominium-years__detail {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural), background-color .3s var(--ease-natural);
}
.dominium-years__diamond {
    transition: opacity .6s var(--ease-natural), transform 1.2s cubic-bezier(.34, 1.4, .64, 1);
}
.dominium-about-home.is-inview .dominium-edge-title::before { transition-delay: .1s; }
.dominium-about-home.is-inview .dominium-about-home__text { transition-delay: .25s; }
.dominium-about-home.is-inview .dominium-square-btn { transition-delay: .4s; }
.dominium-about-home.is-inview .dominium-years__diamond { transition-delay: .3s; }
.dominium-about-home.is-inview .dominium-years__number { transition-delay: .5s; }
.dominium-about-home.is-inview .dominium-years__word { transition-delay: .65s; }
.dominium-about-home.is-inview .dominium-years__detail { transition-delay: .8s; }
.dominium-about-home.is-inview .dominium-edge-title,
.dominium-about-home.is-inview .dominium-about-home__text,
.dominium-about-home.is-inview .dominium-square-btn,
.dominium-about-home.is-inview .dominium-years__number,
.dominium-about-home.is-inview .dominium-years__word,
.dominium-about-home.is-inview .dominium-years__detail,
.dominium-about-home.is-inview .dominium-edge-title::before {
    opacity: 1;
    transform: none;
}
.dominium-about-home.is-inview .dominium-years__diamond {
    opacity: 1;
    transform: rotate(45deg);
}
@media (max-width: 991px) {
    .dominium-years {
        margin-top: var(--space-8);
    }
}

@media (prefers-reduced-motion: reduce) {
    .dominium-story__eyebrow,
    .dominium-story__stem,
    .dominium-story__title,
    .dominium-story__subtitle,
    .dominium-story__frame,
    .dominium-story__frame::before,
    .dominium-story__frame img,
    .dominium-story__body > *,
    .dominium-edge-title::before,
    .dominium-about-home .dominium-edge-title,
    .dominium-about-home__text,
    .dominium-about-home .dominium-square-btn,
    .dominium-years__diamond,
    .dominium-years__number,
    .dominium-years__word,
    .dominium-years__detail {
        transition: none;
    }
}

/* Sur mobile, le texte justifié crée de grands trous entre les mots :
   alignement à gauche sous 768px (la justification reste sur desktop). */
@media (max-width: 767px) {
    .dominium-story__text,
    .dominium-about-home__text {
        text-align: left;
    }
}


/* =======================================================================
   Accueil — HERO (refait le 05/10/2026) : texte à gauche sur voile
   dégradé, slides texte + photo synchronisés (7 s), titre en mots qui
   montent en cascade, accroche qui sort du flou, pagination numérotée à
   droite avec progression ; onglets à cheval sur le bas (inchangés).
   Hauteur = fenêtre moins l'en-tête (corrigée de --page-zoom).
   ======================================================================= */
.dominium-hero2 {
    --hero-tab-h: clamp(104px, 9.5vw, 186px);
    position: relative;
    display: flex;
    align-items: center;
    min-height: max(620px, calc(100vh / var(--page-zoom, 1) - 125px));
    margin-bottom: calc(var(--hero-tab-h) * .7);
    padding: var(--space-9) 0 calc(var(--hero-tab-h) * .3 + var(--space-8));
    background-color: var(--color-dark);
    isolation: isolate;
    overflow-x: clip;
}
.dominium-hero2__slides {
    position: absolute;
    inset: 0;
    z-index: -3;
    overflow: hidden;
}
.dominium-hero2__bg {
    position: absolute;
    inset: 0;
    background-position: center;
    background-size: cover;
    opacity: 0;
    transform: scale(1.08);
    transition: opacity 1.4s var(--ease-natural), transform 1.4s var(--ease-natural);
}
.dominium-hero2__bg.is-active {
    opacity: 1;
    transform: scale(1);
    animation: dominium-hero-zoom 8s ease-out both;
}
@keyframes dominium-hero-zoom {
    from { transform: scale(1.08); }
    to { transform: scale(1); }
}
.dominium-hero2__shade {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(28, 28, 28, .9) 0%, rgba(28, 28, 28, .72) 38%, rgba(28, 28, 28, .3) 70%, rgba(28, 28, 28, .15) 100%),
        linear-gradient(180deg, rgba(28, 28, 28, .25) 0%, transparent 30%, rgba(28, 28, 28, .55) 100%);
}
.dominium-hero2__inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-7);
}
.dominium-hero2__content {
    max-width: min(980px, 78%);
}

/* Compteur 01 / 03. */
.dominium-hero2__eyebrow {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    font-size: .9375rem;
    font-weight: 800;
    letter-spacing: .2em;
    color: var(--color-text-muted-on-dark);
}
.dominium-hero2__eyebrow-line {
    width: 64px;
    height: 4px;
    background-color: var(--color-primary);
    transform-origin: left;
}

/* Slides texte empilés dans la même cellule : pas de saut de hauteur. */
.dominium-hero2__texts {
    display: grid;
}
.dominium-hero2__slide {
    grid-area: 1 / 1;
    visibility: hidden;
}
.dominium-hero2__slide.is-active,
.dominium-hero2__slide.is-leaving {
    visibility: visible;
}
.dominium-hero2__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2.5rem, 1.3rem + 3.9vw, 5.5rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.02;
    color: var(--color-text-on-dark);
}
.dominium-hero2__word {
    display: inline-block;
    overflow: hidden;
    margin: -.08em 0;
    padding: .08em 0;
    vertical-align: top;
}
.dominium-hero2__word > span {
    display: inline-block;
    padding-right: 0;
    transform: translateY(115%) rotate(8deg);
    transform-origin: left bottom;
    transition: transform .55s cubic-bezier(.7, 0, .84, 0);
    transition-delay: calc(var(--w) * 25ms);
}
.dominium-hero2__word > span.is-accent {
    background-image: linear-gradient(var(--color-primary), var(--color-primary));
    background-repeat: no-repeat;
    background-position: 0 88%;
    background-size: 0 .14em;
    transition: transform .55s cubic-bezier(.7, 0, .84, 0), background-size .6s var(--ease-natural);
}
.dominium-hero2__slide.is-active .dominium-hero2__word > span {
    transform: none;
    transition: transform 1s cubic-bezier(.16, 1, .3, 1);
    transition-delay: calc(var(--w) * 70ms + .35s);
}
.dominium-hero2__slide.is-active .dominium-hero2__word > span.is-accent {
    background-size: 100% .14em;
    transition: transform 1s cubic-bezier(.16, 1, .3, 1) calc(var(--w) * 70ms + .35s), background-size .8s cubic-bezier(.77, 0, .18, 1) calc(var(--w) * 70ms + 1.1s);
}
.dominium-hero2__slide.is-leaving .dominium-hero2__word > span {
    transform: translateY(-115%) rotate(-4deg);
}
.dominium-hero2__tagline {
    max-width: 640px;
    margin: 0 0 var(--space-6);
    font-size: clamp(1.125rem, .95rem + .55vw, 1.5rem);
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-text-on-dark);
    opacity: 0;
    filter: blur(10px);
    transform: translateX(-24px);
    transition: opacity .4s var(--ease-natural), filter .4s var(--ease-natural), transform .4s var(--ease-natural);
}
.dominium-hero2__cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 62px;
    padding: 0 10px 0 30px;
    overflow: hidden;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 1.0625rem;
    font-weight: 800;
    isolation: isolate;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .35s var(--ease-natural), transform .35s var(--ease-natural), color .4s var(--ease-natural);
}
.dominium-hero2__cta::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-bg);
    transform: translateX(-101%);
    transition: transform .5s cubic-bezier(.77, 0, .18, 1);
}
.dominium-hero2__cta:hover,
.dominium-hero2__cta:focus-visible {
    color: var(--color-dark);
}
.dominium-hero2__cta:hover::before,
.dominium-hero2__cta:focus-visible::before {
    transform: none;
}
.dominium-hero2__cta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    transition: transform .4s var(--ease-natural);
}
.dominium-hero2__cta:hover .dominium-hero2__cta-icon {
    transform: rotate(-45deg);
}
.dominium-hero2__slide.is-active .dominium-hero2__tagline {
    opacity: 1;
    filter: none;
    transform: none;
    transition: opacity .9s var(--ease-natural) 1s, filter .9s var(--ease-natural) 1s, transform .9s cubic-bezier(.16, 1, .3, 1) 1s;
}
.dominium-hero2__slide.is-active .dominium-hero2__cta {
    opacity: 1;
    transform: none;
    transition: opacity .7s var(--ease-natural) 1.25s, transform .8s cubic-bezier(.16, 1, .3, 1) 1.25s, color .4s var(--ease-natural);
}
.dominium-hero2__text {
    max-width: 620px;
    margin: var(--space-7) 0 0;
    padding-left: var(--space-5);
    border-left: 2px solid rgba(255, 255, 255, .25);
    font-size: clamp(1rem, .9rem + .3vw, 1.1875rem);
    line-height: 1.7;
    color: var(--color-text-muted-on-dark);
}

/* Onglets à cheval sur le bas de la photo. */
.dominium-hero2__tabs {
    position: absolute;
    left: 50%;
    bottom: 0;
    display: flex;
    width: min(1820px, calc(100% - 48px));
    transform: translate(-50%, 70%);
}
.dominium-hero2__tab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(14px, 1.5vw, 28px);
    flex: 1 1 0;
    min-height: var(--hero-tab-h);
    padding: 0 clamp(16px, 2vw, 40px);
    font-size: clamp(1.125rem, .6rem + 1.25vw, 2.125rem);
    font-weight: 700;
    letter-spacing: -0.01em;
    transition: transform .35s var(--ease-natural), background-color .35s var(--ease-natural);
}
.dominium-hero2__tab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: clamp(40px, 3.4vw, 66px);
    height: clamp(40px, 3.4vw, 66px);
    font-size: clamp(15px, 1.3vw, 26px);
    transition: transform .35s var(--ease-natural);
}
.dominium-hero2__tab--1 {
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-hero2__tab--1 .dominium-hero2__tab-icon {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-hero2__tab--2 {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-hero2__tab--3 {
    background-color: #FFDA5C;
    color: var(--color-dark);
}
.dominium-hero2__tab--4 {
    background-color: #FFE68F;
    color: var(--color-dark);
}
.dominium-hero2__tab--2 .dominium-hero2__tab-icon,
.dominium-hero2__tab--3 .dominium-hero2__tab-icon,
.dominium-hero2__tab--4 .dominium-hero2__tab-icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
}
.dominium-hero2__tab:hover,
.dominium-hero2__tab:focus-visible {
    transform: translateY(-6px);
}
.dominium-hero2__tab--1:hover,
.dominium-hero2__tab--1:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-hero2__tab--2:hover,
.dominium-hero2__tab--3:hover,
.dominium-hero2__tab--4:hover,
.dominium-hero2__tab--2:focus-visible,
.dominium-hero2__tab--3:focus-visible,
.dominium-hero2__tab--4:focus-visible {
    color: var(--color-dark);
}
.dominium-hero2__tab:hover .dominium-hero2__tab-icon {
    transform: translateX(4px);
}

/* --- Entrée de page (.js-hero = états initiaux, .is-playing) --- */
.dominium-hero2.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__word > span {
    transform: translateY(115%) rotate(8deg);
}
.dominium-hero2.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__word > span.is-accent {
    background-size: 0 .14em;
}
.dominium-hero2.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__tagline {
    opacity: 0;
    filter: blur(10px);
    transform: translateX(-24px);
}
.dominium-hero2.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__cta {
    opacity: 0;
    transform: translateY(20px);
}
.dominium-hero2.js-hero .dominium-hero2__eyebrow-line {
    transform: scaleX(0);
    transition: transform .8s cubic-bezier(.77, 0, .18, 1) .1s;
}
.dominium-hero2.js-hero .dominium-hero2__text,
.dominium-hero2.js-hero .dominium-hero2__tab {
    opacity: 0;
    transform: translateY(32px);
}
.dominium-hero2.js-hero .dominium-hero2__text { transition: opacity .8s var(--ease-natural) 1.5s, transform .8s var(--ease-natural) 1.5s; }
.dominium-hero2.js-hero .dominium-hero2__tab--1 { transition: opacity .7s var(--ease-natural) 1.7s, transform .7s var(--ease-natural) 1.7s; }
.dominium-hero2.js-hero .dominium-hero2__tab--2 { transition: opacity .7s var(--ease-natural) 1.8s, transform .7s var(--ease-natural) 1.8s; }
.dominium-hero2.js-hero .dominium-hero2__tab--3 { transition: opacity .7s var(--ease-natural) 1.9s, transform .7s var(--ease-natural) 1.9s; }
.dominium-hero2.js-hero .dominium-hero2__tab--4 { transition: opacity .7s var(--ease-natural) 2s, transform .7s var(--ease-natural) 2s; }
.dominium-hero2.js-hero.is-playing .dominium-hero2__eyebrow-line,
.dominium-hero2.js-hero.is-playing .dominium-hero2__text,
.dominium-hero2.js-hero.is-playing .dominium-hero2__tab {
    opacity: 1;
    transform: none;
}
.dominium-hero2.js-hero.is-playing .dominium-hero2__tab:hover,
.dominium-hero2.js-hero.is-playing .dominium-hero2__tab:focus-visible {
    transform: translateY(-6px);
    transition-delay: 0s;
}

@media (max-width: 991px) {
    .dominium-hero2__content {
        max-width: 100%;
    }
}
@media (max-width: 767px) {
    .dominium-hero2 {
        --hero-tab-h: 64px;
        min-height: 0;
        margin-bottom: 0;
        padding: var(--space-8) 0 var(--space-7);
        flex-direction: column;
    }
    .dominium-hero2__inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .dominium-hero2__shade {
        background: linear-gradient(180deg, rgba(28, 28, 28, .6), rgba(28, 28, 28, .85));
    }
    .dominium-hero2__tabs {
        position: static;
        flex-direction: column;
        width: calc(100% - 32px);
        margin-top: var(--space-7);
        transform: none;
    }
    .dominium-hero2__tab {
        justify-content: flex-start;
        gap: var(--space-4);
        padding: 0 var(--space-5);
        font-size: 1.0625rem;
    }
    .dominium-hero2__text {
        margin-top: var(--space-6);
    }
}

/* Le bandeau de confiance suit le hero : laisser respirer sous les
   onglets à cheval. */
.dominium-hero2 + .dominium-trust,
.dominium-hero2 ~ .dominium-trust {
    padding-top: var(--space-8);
}
@media (max-width: 767px) {
    .dominium-hero2 + .dominium-trust,
    .dominium-hero2 ~ .dominium-trust {
        padding-top: var(--space-6);
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-hero2__bg.is-active {
        animation: none;
    }
    .dominium-hero2__word > span,
    .dominium-hero2__tagline,
    .dominium-hero2__cta {
        transition: none !important;
    }
}

/* =======================================================================
   Accueil — "Notre méthode" (maquette client du 04/10/2026).
   Relevés de la maquette : à gauche, mot en filigrane très clair derrière
   l'étiquette et le grand titre ; image ~16:9 posée sur un bloc jaune
   décalé de ~45px vers le bas et la gauche (et rentré de ~35px à
   droite). À droite, panneau sombre jusqu'au bord de l'écran ; chaque
   étape = carré jaune de ~122px débordant de moitié sur le bord gauche du
   panneau, titre blanc gras, description atténuée, ~80px entre étapes.
   Adaptations charte : panneau noir (au lieu du bleu marine), étiquette
   et numéros en noir (jaune sur blanc / blanc sur jaune illisibles).
   Apparition via [data-reveal] (script du layout).
   ======================================================================= */
.dominium-method {
    --method-square: clamp(76px, 6.4vw, 122px);
    --method-offset: clamp(22px, 2.4vw, 45px);
    position: relative;
    padding: var(--space-9) 0;
    overflow: hidden;
}
.dominium-method__intro {
    position: relative;
    padding-right: var(--space-6);
}
.dominium-method__watermark {
    position: absolute;
    z-index: -1;
    top: -.42em;
    left: -.18em;
    font-size: clamp(5rem, 2rem + 8vw, 10.5rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    color: rgba(255, 195, 0, .14);
    pointer-events: none;
    user-select: none;
}
.dominium-method__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text);
}
.dominium-method__eyebrow::before {
    content: "";
    width: 36px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-method__title {
    max-width: 620px;
    margin: 0 0 var(--space-8);
    font-size: clamp(2.25rem, 1.4rem + 2vw, 3.5rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.12;
}

.dominium-method__media {
    position: relative;
    margin: 0 0 var(--method-offset) var(--method-offset);
}
.dominium-method__media-block {
    position: absolute;
    top: var(--method-offset);
    left: calc(var(--method-offset) * -1);
    right: calc(var(--method-offset) * .8);
    bottom: calc(var(--method-offset) * -1);
    background-color: var(--color-primary);
}
.dominium-method__media-frame {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}
.dominium-method__media-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.4s var(--ease-natural);
}
.dominium-method__media:hover .dominium-method__media-frame img {
    transform: scale(1.06);
}

/* Panneau noir jusqu'au bord droit de l'écran. */
.dominium-method__panel {
    position: relative;
    margin-left: calc(var(--method-square) * .55);
    padding: clamp(64px, 6vw, 120px) 0 clamp(64px, 6vw, 120px);
}
.dominium-method__panel::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100vw;
    background-color: var(--color-dark);
}
.dominium-method__steps {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 4.2vw, 80px);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-method__step {
    display: flex;
    align-items: center;
    gap: clamp(24px, 2.4vw, 45px);
    margin-left: calc(var(--method-square) * -.55);
    padding-right: var(--space-6);
}
.dominium-method__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--method-square);
    height: var(--method-square);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: calc(var(--method-square) * .42);
    font-weight: 300;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    transition: transform .5s var(--ease-natural);
}
.dominium-method__step:hover .dominium-method__number {
    transform: translateX(-8px) rotate(-4deg);
}
.dominium-method__step-title {
    margin: 0 0 var(--space-2);
    font-size: clamp(1.5rem, 1rem + 1vw, 2.125rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--color-text-on-dark);
}
.dominium-method__step-text {
    max-width: 440px;
    margin: 0;
    font-size: clamp(1rem, .9rem + .25vw, 1.125rem);
    line-height: 1.75;
    color: var(--color-text-muted-on-dark);
}

/* --- Apparition --- */
.dominium-method.js-reveal .dominium-method__watermark {
    opacity: 0;
    transform: translateX(-80px);
}
.dominium-method.js-reveal .dominium-method__eyebrow,
.dominium-method.js-reveal .dominium-method__title {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-method.js-reveal .dominium-method__media-frame {
    opacity: 0;
    transform: translateY(48px);
}
.dominium-method.js-reveal .dominium-method__media-block {
    opacity: 0;
    transform: translate(36px, -36px);
}
.dominium-method.js-reveal .dominium-method__panel::before {
    clip-path: inset(0 0 0 100%);
}
.dominium-method.js-reveal .dominium-method__number {
    opacity: 0;
    transform: scale(.4) rotate(-90deg);
}
.dominium-method.js-reveal .dominium-method__step-body {
    opacity: 0;
    transform: translateX(28px);
}
.dominium-method__watermark,
.dominium-method__eyebrow,
.dominium-method__title,
.dominium-method__media-frame,
.dominium-method__media-block,
.dominium-method__step-body {
    transition: opacity .9s var(--ease-natural), transform 1s var(--ease-natural);
}
.dominium-method__panel::before {
    transition: clip-path 1.1s cubic-bezier(.77, 0, .18, 1) .15s;
}
.dominium-method.js-reveal .dominium-method__number {
    transition: opacity .6s var(--ease-natural), transform .8s cubic-bezier(.34, 1.4, .64, 1);
}
.dominium-method.is-inview .dominium-method__eyebrow { transition-delay: .1s; }
.dominium-method.is-inview .dominium-method__title { transition-delay: .2s; }
.dominium-method.is-inview .dominium-method__media-frame { transition-delay: .35s; }
.dominium-method.is-inview .dominium-method__media-block { transition-delay: .6s; }
.dominium-method.is-inview .dominium-method__number {
    transition-delay: calc(.8s + var(--i, 0) * .16s);
}
.dominium-method.is-inview .dominium-method__step-body {
    transition-delay: calc(.9s + var(--i, 0) * .16s);
}
.dominium-method.is-inview .dominium-method__watermark,
.dominium-method.is-inview .dominium-method__eyebrow,
.dominium-method.is-inview .dominium-method__title,
.dominium-method.is-inview .dominium-method__media-frame,
.dominium-method.is-inview .dominium-method__media-block,
.dominium-method.is-inview .dominium-method__number,
.dominium-method.is-inview .dominium-method__step-body {
    opacity: 1;
    transform: none;
}
.dominium-method.is-inview .dominium-method__panel::before {
    clip-path: inset(0);
}
/* Après l'apparition, le survol des numéros reste réactif. */
.dominium-method.is-inview .dominium-method__step:hover .dominium-method__number {
    transform: translateX(-8px) rotate(-4deg);
    transition-delay: 0s;
}

@media (max-width: 991px) {
    .dominium-method__intro {
        padding-right: 0;
    }
    .dominium-method__panel {
        margin-top: var(--space-9);
    }
    .dominium-method__panel::before {
        left: calc(var(--method-square) * -.2);
    }
}
@media (max-width: 575px) {
    .dominium-method__step {
        align-items: flex-start;
        padding-right: var(--space-4);
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-method__watermark,
    .dominium-method__eyebrow,
    .dominium-method__title,
    .dominium-method__media-frame,
    .dominium-method__media-frame img,
    .dominium-method__media-block,
    .dominium-method__panel::before,
    .dominium-method__number,
    .dominium-method__step-body {
        transition: none;
    }
}


/* =======================================================================
   PIED DE PAGE (maquettes client du 04/10/2026).
   Relevés : bande jaune pleine largeur du conteneur, ~225px de haut, à
   cheval sur le haut du pied de page (~45 % au-dessus) avec les logos
   partenaires en sombre ; fond sombre ; logo centré ; 4 colonnes (titre
   jaune + filet avec segment blanc, texte clair, liens à chevron sur 2
   colonnes, coordonnées à icônes rondes, horaires reliés par un filet) ;
   barre blanche du bas (copyright à gauche, liens séparés à droite).
   Défilement automatique des logos : deux pistes identiques animées en
   continu (sans couture), pause au survol, coupé si reduced-motion.
   ======================================================================= */
.dominium-footer {
    --footer-band-h: clamp(130px, 11.5vw, 225px);
    position: relative;
    margin-top: calc(var(--footer-band-h) / 2 + var(--space-7));
}
/* Sans partenaires actifs, la bande n'est pas rendue : pas de demi-bande à réserver. */
.dominium-footer:not(:has(.dominium-footer__partners-wrap)) {
    margin-top: var(--space-7);
}
.dominium-footer__partners-wrap {
    position: relative;
    z-index: 2;
    margin-bottom: calc(var(--footer-band-h) / -2);
}
.dominium-footer__partners {
    display: flex;
    align-items: center;
    min-height: var(--footer-band-h);
    background-color: var(--color-primary);
}
.dominium-footer__marquee {
    display: flex;
    width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.dominium-footer__marquee-track {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: clamp(48px, 6vw, 112px);
    min-width: 100%;
    justify-content: space-around;
    margin: 0;
    padding: 0 clamp(24px, 3vw, 56px);
    list-style: none;
    animation: dominium-marquee 32s linear infinite;
}
.dominium-footer__marquee:hover .dominium-footer__marquee-track {
    animation-play-state: paused;
}
@keyframes dominium-marquee {
    to { transform: translateX(-100%); }
}
.dominium-footer__marquee-track li {
    flex-shrink: 0;
}
.dominium-footer__marquee-track img {
    display: block;
    height: clamp(40px, 3.6vw, 64px);
    width: auto;
    max-width: 200px;
    object-fit: contain;
    filter: brightness(0);
    opacity: .85;
    transition: opacity .3s var(--ease-natural);
}
.dominium-footer__marquee-track .dominium-partner-wordmark {
    min-height: 0;
    font-size: clamp(1.125rem, .8rem + .9vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-dark);
    opacity: .85;
    transition: opacity .3s var(--ease-natural);
}
.dominium-footer__marquee-track a:hover img,
.dominium-footer__marquee-track a:hover .dominium-partner-wordmark {
    opacity: 1;
}

.dominium-footer__main {
    padding: calc(var(--footer-band-h) / 2 + var(--space-8)) 0 var(--space-8);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-footer__brand {
    display: flex;
    justify-content: center;
    margin-bottom: var(--space-8);
}
.dominium-footer__brand img {
    max-width: 180px;
    height: auto;
}
.dominium-footer__cols {
    display: grid;
    grid-template-columns: 1.1fr 1.2fr 1fr 1fr;
    gap: var(--space-8) clamp(32px, 3.5vw, 72px);
}
.dominium-footer__title {
    position: relative;
    margin: 0 0 var(--space-6);
    padding-bottom: var(--space-4);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-primary);
    border-bottom: 1px solid var(--color-border-on-dark);
}
.dominium-footer__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 36px;
    height: 2px;
    background-color: var(--color-text-on-dark);
    transition: width .5s var(--ease-natural);
}
.dominium-footer__col:hover .dominium-footer__title::after {
    width: 72px;
}
.dominium-footer__text {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.9;
    color: rgba(255, 255, 255, .82);
}
.dominium-footer__text--small {
    margin-top: var(--space-5);
    font-size: .9375rem;
    line-height: 1.7;
    color: var(--color-text-muted-on-dark);
}
.dominium-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin: var(--space-6) 0 0;
    padding: 0;
    list-style: none;
}
.dominium-footer__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .08);
    color: var(--color-text-on-dark);
    font-size: 18px;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-footer__social a:hover,
.dominium-footer__social a:focus-visible {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: translateY(-3px);
}
.dominium-footer__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3) var(--space-5);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-footer__links a {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-3);
    font-size: 1.0625rem;
    color: rgba(255, 255, 255, .88);
    transition: color .25s var(--ease-natural), transform .25s var(--ease-natural);
}
.dominium-footer__links i {
    font-size: .75rem;
    color: var(--color-primary);
}
.dominium-footer__links a:hover,
.dominium-footer__links a:focus-visible {
    color: var(--color-text-on-dark);
    transform: translateX(4px);
}
.dominium-footer__contact {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-footer__contact li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    font-size: 1.0625rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .88);
}
.dominium-footer__contact a {
    color: rgba(255, 255, 255, .88);
    word-break: break-word;
}
.dominium-footer__contact a:hover {
    color: var(--color-primary);
}
.dominium-footer__contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .08);
    color: var(--color-primary);
    font-size: 15px;
}
.dominium-footer__hours {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-footer__hours li {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: 1.0625rem;
    color: rgba(255, 255, 255, .88);
}
.dominium-footer__hours-line {
    flex: 1;
    min-width: 24px;
    height: 1px;
    background-color: var(--color-border-on-dark);
}

.dominium-footer__bottom {
    padding: var(--space-5) 0;
    background-color: var(--color-bg);
}
.dominium-footer__bottom .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-6);
}
.dominium-footer__copyright {
    margin: 0;
    font-size: .9375rem;
    color: var(--color-text-muted);
}
.dominium-footer__legal {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-footer__legal li + li {
    border-left: 1px solid var(--color-border);
}
.dominium-footer__legal a {
    display: block;
    padding: 2px var(--space-4);
    font-size: .9375rem;
    color: var(--color-text);
}
.dominium-footer__legal li:last-child a {
    padding-right: 0;
}
.dominium-footer__legal a:hover {
    text-decoration: underline;
}

@media (max-width: 1199px) {
    .dominium-footer__cols {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 575px) {
    .dominium-footer__cols {
        grid-template-columns: 1fr;
    }
    .dominium-footer__bottom .container {
        flex-direction: column;
        align-items: flex-start;
    }
    .dominium-footer__legal li:first-child a {
        padding-left: 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-footer__marquee-track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
    }
    .dominium-footer__marquee-track[aria-hidden="true"] {
        display: none;
    }
    .dominium-footer__marquee {
        mask-image: none;
    }
}


/* =======================================================================
   "Avis clients" (components/public/testimonials-showcase, maquette
   client du 04/10/2026). Relevés : carte ~510x260 à 1900px, photo
   carrée ~100px débordant de ~50px à gauche et ~22px en haut, bloc jaune
   décalé de ~8px vers le bas/la gauche derrière la photo ; citation à
   droite de la photo ; auteur en italique ; grand guillemet jaune pâle
   en bas à droite ; cartes voisines estompées ; points (actif allongé).
   ======================================================================= */
.dominium-reviews {
    position: relative;
    padding: var(--space-9) 0 var(--space-8);
    overflow: hidden;
}
.dominium-reviews__header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: var(--space-8);
    text-align: center;
}
.dominium-reviews__watermark {
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -62%);
    font-size: clamp(3.5rem, 1.5rem + 6vw, 8rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    color: rgba(255, 195, 0, .13);
    pointer-events: none;
    user-select: none;
}
.dominium-reviews__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-3);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text);
}
.dominium-reviews__eyebrow::before,
.dominium-reviews__eyebrow::after {
    content: "";
    width: 28px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-reviews__title {
    max-width: 760px;
    margin: 0;
    font-size: clamp(2rem, 1.3rem + 1.6vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.12;
    text-wrap: balance;
}

/* Carrousel centré. */
.dominium-reviews__slider .slick-list {
    padding-top: 40px !important;
    padding-bottom: 48px !important;
}
.dominium-reviews__slider .slick-track {
    display: flex;
}
.dominium-reviews__slider .slick-slide {
    height: auto;
}
.dominium-reviews__slider .slick-slide > div {
    height: 100%;
}
.dominium-reviews__slide {
    height: 100%;
    padding: 0 clamp(16px, 1.8vw, 36px) 0 clamp(56px, 4vw, 72px);
}
.dominium-reviews__slider:not(.slick-initialized) {
    display: flex;
    justify-content: center;
}
.dominium-reviews__slider:not(.slick-initialized) .dominium-reviews__slide:not(:first-child) {
    display: none;
}

.dominium-review {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 280px;
    padding: clamp(40px, 3.2vw, 56px) clamp(32px, 3vw, 64px) clamp(32px, 2.6vw, 48px) clamp(84px, 5.6vw, 110px);
    background-color: var(--color-bg);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .08);
    opacity: .35;
    transform: scale(.92);
    transition: opacity .7s var(--ease-natural), transform .7s var(--ease-natural), box-shadow .7s var(--ease-natural);
}
.dominium-reviews__slider .slick-center .dominium-review,
.dominium-reviews__slider:not(.slick-initialized) .dominium-review {
    opacity: 1;
    transform: none;
    box-shadow: 0 26px 70px rgba(0, 0, 0, .12);
}
.dominium-review__photo {
    position: absolute;
    top: -22px;
    left: calc(clamp(40px, 3vw, 52px) * -1);
    width: clamp(84px, 6vw, 108px);
    aspect-ratio: 1;
}
.dominium-review__photo-block {
    position: absolute;
    top: 8px;
    left: -8px;
    right: 8px;
    bottom: -8px;
    background-color: var(--color-primary);
}
.dominium-review__photo img,
.dominium-review__photo .dominium-avatar {
    position: relative;
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .15);
}
.dominium-review__photo .dominium-avatar {
    aspect-ratio: 1;
    border-radius: 0;
}
.dominium-review__photo .dominium-avatar__initials {
    font-size: clamp(1.5rem, 1rem + 1vw, 2.25rem);
}
.dominium-review__quote {
    flex: 1;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: clamp(1rem, .9rem + .3vw, 1.1875rem);
    line-height: 1.85;
    color: var(--color-text);
}
.dominium-review__author {
    margin: var(--space-5) 0 0;
    padding-right: 64px;
    font-size: .9375rem;
    font-style: italic;
    font-weight: 600;
    color: var(--color-text);
}
.dominium-review__author span {
    font-weight: 400;
    color: var(--color-text-muted);
}
.dominium-review__mark {
    position: absolute;
    right: clamp(28px, 2.6vw, 48px);
    bottom: clamp(22px, 2vw, 36px);
    font-size: clamp(2.5rem, 2rem + 1.2vw, 3.5rem);
    line-height: 1;
    color: var(--color-primary);
    opacity: .45;
    transition: opacity .7s var(--ease-natural), transform .7s var(--ease-natural);
}
.dominium-reviews__slider .slick-center .dominium-review__mark {
    opacity: .9;
    transform: translateY(-4px);
}

/* Points : le point actif s'allonge en barre jaune. */
.dominium-reviews__dots .slick-dots {
    position: static;
    display: flex !important;
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-reviews__dots .slick-dots li {
    width: auto;
    height: auto;
    margin: 0;
}
.dominium-reviews__dots .slick-dots button {
    display: block;
    width: 14px;
    height: 4px;
    padding: 0;
    border: 0;
    font-size: 0;
    background-color: rgba(255, 195, 0, .4);
    transition: width .4s var(--ease-natural), background-color .4s var(--ease-natural);
}
.dominium-reviews__dots .slick-dots button::before {
    display: none;
}
.dominium-reviews__dots .slick-dots .slick-active button {
    width: 36px;
    background-color: var(--color-primary);
}

/* Apparition de l'en-tête. */
.dominium-reviews.js-reveal .dominium-reviews__watermark {
    opacity: 0;
    transform: translate(-50%, -30%);
}
.dominium-reviews.js-reveal .dominium-reviews__eyebrow,
.dominium-reviews.js-reveal .dominium-reviews__title,
.dominium-reviews.js-reveal .dominium-reviews__slider {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-reviews__watermark,
.dominium-reviews__eyebrow,
.dominium-reviews__title,
.dominium-reviews__slider {
    transition: opacity .9s var(--ease-natural), transform 1s var(--ease-natural);
}
.dominium-reviews.is-inview .dominium-reviews__eyebrow { transition-delay: .15s; }
.dominium-reviews.is-inview .dominium-reviews__title { transition-delay: .25s; }
.dominium-reviews.is-inview .dominium-reviews__slider { transition-delay: .4s; }
.dominium-reviews.is-inview .dominium-reviews__eyebrow,
.dominium-reviews.is-inview .dominium-reviews__title,
.dominium-reviews.is-inview .dominium-reviews__slider {
    opacity: 1;
    transform: none;
}
.dominium-reviews.is-inview .dominium-reviews__watermark {
    opacity: 1;
    transform: translate(-50%, -62%);
}

@media (max-width: 767px) {
    .dominium-reviews__slide {
        padding: 0 8px;
    }
    .dominium-review {
        padding: 96px 24px 32px;
    }
    .dominium-review__photo {
        left: 24px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-review,
    .dominium-review__mark,
    .dominium-reviews__watermark,
    .dominium-reviews__eyebrow,
    .dominium-reviews__title,
    .dominium-reviews__slider,
    .dominium-reviews__dots .slick-dots button {
        transition: none;
    }
}


/* =======================================================================
   Accueil — "Secteurs d'activité" (maquette client du 04/10/2026).
   Relevés : mot en filigrane très clair derrière le titre ; titre à
   trait jaune venu du bord gauche (dernier mot en jaune) ; sous-titre
   gris ; grille 2x2 : grand numéro en filigrane jaune pâle derrière
   l'icône jaune + le nom en gras, description grise ; à droite,
   personnage détouré devant une trame de points décalée vers la droite
   et le haut, posé sur le bas de la section.
   ======================================================================= */
.dominium-sectors2 {
    position: relative;
    padding-top: var(--space-9);
    overflow: hidden;
}
.dominium-sectors2__content {
    position: relative;
    padding-bottom: var(--space-9);
}
.dominium-sectors2__watermark {
    position: absolute;
    z-index: -1;
    top: -.5em;
    left: -.05em;
    font-size: clamp(4.5rem, 2rem + 6vw, 8.5rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    color: rgba(255, 195, 0, .13);
    pointer-events: none;
    user-select: none;
}
.dominium-sectors2__title {
    max-width: 680px;
    font-size: clamp(2rem, 1.3rem + 1.6vw, 3rem);
}
.dominium-sectors2__title span {
    color: var(--color-primary);
}
.dominium-sectors2__subtitle {
    margin: var(--space-3) 0 0;
    font-size: 1.125rem;
    color: var(--color-text-muted);
}
.dominium-sectors2__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-7) clamp(32px, 3.5vw, 64px);
    margin: var(--space-8) 0 var(--space-7);
}
.dominium-sectors2__item {
    position: relative;
    display: block;
    padding-top: clamp(40px, 3.4vw, 56px);
    color: inherit;
}
.dominium-sectors2__number {
    position: absolute;
    z-index: -1;
    top: 0;
    left: -.04em;
    font-size: clamp(4.5rem, 3rem + 3vw, 6.5rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: .8;
    color: rgba(255, 195, 0, .2);
    transition: color .4s var(--ease-natural), transform .5s var(--ease-natural);
}
.dominium-sectors2__name {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-3);
    font-size: clamp(1.125rem, .95rem + .5vw, 1.375rem);
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--color-text);
}
.dominium-sectors2__name i {
    flex-shrink: 0;
    font-size: 1.25em;
    color: var(--color-primary);
    transition: transform .4s var(--ease-natural);
}
.dominium-sectors2__desc {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.85;
    color: var(--color-text-muted);
}
.dominium-sectors2__item:hover .dominium-sectors2__number,
.dominium-sectors2__item:focus-visible .dominium-sectors2__number {
    color: rgba(255, 195, 0, .45);
    transform: translateY(-4px);
}
.dominium-sectors2__item:hover .dominium-sectors2__name i {
    transform: translateX(3px) rotate(-8deg);
}

.dominium-sectors2__visual {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
}
.dominium-sectors2__dots {
    position: absolute;
    z-index: -1;
    top: 14%;
    right: 2%;
    width: 62%;
    height: 56%;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .3) 1.2px, transparent 1.5px);
    background-size: 12px 12px;
}
.dominium-sectors2__visual img {
    display: block;
    width: 100%;
    max-width: 640px;
    height: auto;
}

/* --- Apparition --- */
.dominium-sectors2.js-reveal .dominium-sectors2__watermark {
    opacity: 0;
    transform: translateX(-70px);
}
.dominium-sectors2.js-reveal .dominium-sectors2__title,
.dominium-sectors2.js-reveal .dominium-sectors2__subtitle,
.dominium-sectors2.js-reveal .dominium-sectors2__content > .dominium-square-btn {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-sectors2.js-reveal .dominium-edge-title::before {
    transform: scaleX(0);
}
.dominium-sectors2.js-reveal .dominium-sectors2__item {
    opacity: 0;
    transform: translateY(32px);
}
.dominium-sectors2.js-reveal .dominium-sectors2__number {
    opacity: 0;
    transform: translateX(-24px);
}
.dominium-sectors2.js-reveal .dominium-sectors2__visual img {
    opacity: 0;
    transform: translateY(60px);
}
.dominium-sectors2.js-reveal .dominium-sectors2__dots {
    opacity: 0;
    transform: translate(30px, -30px);
}
.dominium-sectors2__watermark,
.dominium-sectors2__title,
.dominium-sectors2__subtitle,
.dominium-sectors2__content > .dominium-square-btn,
.dominium-sectors2 .dominium-edge-title::before,
.dominium-sectors2__item,
.dominium-sectors2__visual img,
.dominium-sectors2__dots {
    transition: opacity .9s var(--ease-natural), transform 1s var(--ease-natural);
}
.dominium-sectors2.js-reveal .dominium-sectors2__number {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural), color .4s var(--ease-natural);
}
.dominium-sectors2.is-inview .dominium-edge-title::before { transition-delay: .1s; }
.dominium-sectors2.is-inview .dominium-sectors2__subtitle { transition-delay: .2s; }
.dominium-sectors2.is-inview .dominium-sectors2__item { transition-delay: calc(.3s + var(--i, 0) * .12s); }
.dominium-sectors2.is-inview .dominium-sectors2__number { transition-delay: calc(.45s + var(--i, 0) * .12s); }
.dominium-sectors2.is-inview .dominium-sectors2__content > .dominium-square-btn { transition-delay: .85s; }
.dominium-sectors2.is-inview .dominium-sectors2__visual img { transition-delay: .3s; }
.dominium-sectors2.is-inview .dominium-sectors2__dots { transition-delay: .6s; }
.dominium-sectors2.is-inview .dominium-sectors2__watermark,
.dominium-sectors2.is-inview .dominium-sectors2__title,
.dominium-sectors2.is-inview .dominium-sectors2__subtitle,
.dominium-sectors2.is-inview .dominium-sectors2__content > .dominium-square-btn,
.dominium-sectors2.is-inview .dominium-edge-title::before,
.dominium-sectors2.is-inview .dominium-sectors2__item,
.dominium-sectors2.is-inview .dominium-sectors2__number,
.dominium-sectors2.is-inview .dominium-sectors2__visual img,
.dominium-sectors2.is-inview .dominium-sectors2__dots {
    opacity: 1;
    transform: none;
}
.dominium-sectors2.is-inview .dominium-sectors2__item:hover .dominium-sectors2__number {
    transform: translateY(-4px);
    transition-delay: 0s;
}

@media (max-width: 991px) {
    .dominium-sectors2__content {
        padding-bottom: var(--space-7);
    }
    .dominium-sectors2__visual img {
        max-width: 420px;
    }
}
@media (max-width: 575px) {
    .dominium-sectors2__grid {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-sectors2__watermark,
    .dominium-sectors2__title,
    .dominium-sectors2__subtitle,
    .dominium-sectors2__content > .dominium-square-btn,
    .dominium-sectors2 .dominium-edge-title::before,
    .dominium-sectors2__item,
    .dominium-sectors2__number,
    .dominium-sectors2__name i,
    .dominium-sectors2__visual img,
    .dominium-sectors2__dots {
        transition: none;
    }
}


/* =======================================================================
   Accueil — "Nos services" en mosaïque (maquette client du 04/10/2026).
   Relevés : fond noir ; titre précédé d'un filet blanc ; grille de
   6 colonnes à rangées carrées : grande tuile 3x3 à gauche + 3 petites
   en haut à droite, grande tuile 3x3 à droite + 3 petites en bas à
   gauche, ~18px d'écart. Touches ajoutées : photo + dégradé + numéro +
   tarif sur les grandes tuiles, petites tuiles typographiques jaune /
   anthracite avec icône, flèche, survol et apparition en cascade.
   ======================================================================= */
.dominium-mosaic {
    --mosaic-gap: clamp(10px, 1.2vw, 18px);
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
}
.dominium-mosaic__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-5);
    margin-bottom: var(--space-7);
}
.dominium-mosaic__eyebrow {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    margin: 0 0 var(--space-3);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-on-dark);
}
.dominium-mosaic__eyebrow::before {
    content: "";
    width: clamp(64px, 7vw, 128px);
    height: 1px;
    background-color: var(--color-text-on-dark);
    transform-origin: left;
}
.dominium-mosaic__title {
    max-width: 760px;
    margin: 0;
    font-size: clamp(2rem, 1.3rem + 1.6vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.12;
    color: var(--color-text-on-dark);
}
.dominium-mosaic__all {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text-on-dark);
}
.dominium-mosaic__all span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    transition: transform .3s var(--ease-natural);
}
.dominium-mosaic__all:hover,
.dominium-mosaic__all:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-mosaic__all:hover span {
    transform: translateX(4px);
}

/* Grille : 6 colonnes, rangées carrées (container query). */
.dominium-mosaic__grid {
    container-type: inline-size;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-rows: calc((100cqw - 5 * var(--mosaic-gap)) / 6);
    gap: var(--mosaic-gap);
}
.dominium-mosaic__tile:nth-child(1) { grid-area: 1 / 1 / 4 / 4; }
.dominium-mosaic__tile:nth-child(2) { grid-area: 1 / 4; }
.dominium-mosaic__tile:nth-child(3) { grid-area: 1 / 5; }
.dominium-mosaic__tile:nth-child(4) { grid-area: 1 / 6; }
.dominium-mosaic__tile:nth-child(5) { grid-area: 2 / 4 / 5 / 7; }
.dominium-mosaic__tile:nth-child(6) { grid-area: 4 / 1; }
.dominium-mosaic__tile:nth-child(7) { grid-area: 4 / 2; }
.dominium-mosaic__tile:nth-child(8) { grid-area: 4 / 3; }

.dominium-mosaic__tile {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: clamp(14px, 1.4vw, 24px);
    background-color: #161616;
    color: var(--color-text-on-dark);
    isolation: isolate;
    transition: transform .45s var(--ease-natural), background-color .45s var(--ease-natural);
}
.dominium-mosaic__tile:hover,
.dominium-mosaic__tile:focus-visible {
    color: var(--color-text-on-dark);
}
/* Petites tuiles : icône, nom, "Voir" au survol. */
.dominium-mosaic__icon {
    font-size: clamp(1.5rem, 1rem + 1.2vw, 2.5rem);
    line-height: 1;
    color: var(--color-primary);
    transition: transform .45s var(--ease-natural);
}
.dominium-mosaic__tile:not(.dominium-mosaic__tile--big) .dominium-mosaic__name {
    font-size: clamp(.875rem, .7rem + .45vw, 1.125rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.01em;
}
.dominium-mosaic__more {
    position: absolute;
    top: clamp(14px, 1.4vw, 24px);
    right: clamp(14px, 1.4vw, 24px);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .8125rem;
    font-weight: 700;
    opacity: 0;
    transform: translateX(-8px);
    transition: opacity .35s var(--ease-natural), transform .35s var(--ease-natural);
}
.dominium-mosaic__tile:not(.dominium-mosaic__tile--big):hover {
    transform: translateY(-6px);
    background-color: #222;
}
.dominium-mosaic__tile:hover .dominium-mosaic__icon {
    transform: scale(1.12) rotate(-6deg);
}
.dominium-mosaic__tile:hover .dominium-mosaic__more,
.dominium-mosaic__tile:focus-visible .dominium-mosaic__more {
    opacity: 1;
    transform: none;
}
.dominium-mosaic__tile--alt {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-mosaic__tile--alt .dominium-mosaic__icon {
    color: var(--color-dark);
}
.dominium-mosaic__tile--alt:hover,
.dominium-mosaic__tile--alt:focus-visible {
    color: var(--color-dark);
}
.dominium-mosaic__tile--alt:not(.dominium-mosaic__tile--big):hover {
    background-color: var(--color-primary-hover);
}

/* Grandes tuiles : photo + dégradé + contenu en bas. */
.dominium-mosaic__tile--big {
    justify-content: flex-end;
    padding: clamp(20px, 2.4vw, 44px);
}
.dominium-mosaic__media {
    position: absolute;
    inset: 0;
    z-index: -2;
}
.dominium-mosaic__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-mosaic__tile--big::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(28, 28, 28, .1) 20%, rgba(28, 28, 28, .55) 55%, rgba(28, 28, 28, .9) 100%);
    transition: opacity .6s var(--ease-natural);
}
.dominium-mosaic__tile--big:hover .dominium-mosaic__media img {
    transform: scale(1.08);
}
.dominium-mosaic__number {
    position: absolute;
    top: clamp(16px, 2vw, 36px);
    left: clamp(20px, 2.4vw, 44px);
    font-size: clamp(2.5rem, 1.5rem + 2.5vw, 4.5rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255, 255, 255, .7);
}
.dominium-mosaic__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-width: 85%;
}
.dominium-mosaic__tile--big .dominium-mosaic__name {
    font-size: clamp(1.5rem, 1rem + 1.2vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.12;
}
.dominium-mosaic__excerpt {
    font-size: clamp(.9375rem, .85rem + .25vw, 1.0625rem);
    line-height: 1.6;
    color: rgba(255, 255, 255, .82);
}
.dominium-mosaic__price {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    align-self: flex-start;
    padding: 6px 12px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: .8125rem;
    font-weight: 700;
}
.dominium-mosaic__go {
    position: absolute;
    right: clamp(20px, 2.4vw, 44px);
    bottom: clamp(20px, 2.4vw, 44px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(44px, 3.4vw, 60px);
    height: clamp(44px, 3.4vw, 60px);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: clamp(16px, 1.2vw, 22px);
    transition: transform .45s var(--ease-natural);
}
.dominium-mosaic__tile--big:hover .dominium-mosaic__go {
    transform: rotate(-45deg);
}

/* --- Apparition en cascade --- */
.dominium-mosaic.js-reveal .dominium-mosaic__eyebrow,
.dominium-mosaic.js-reveal .dominium-mosaic__title,
.dominium-mosaic.js-reveal .dominium-mosaic__all {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-mosaic.js-reveal .dominium-mosaic__eyebrow::before {
    transform: scaleX(0);
}
.dominium-mosaic.js-reveal .dominium-mosaic__tile {
    clip-path: inset(100% 0 0 0);
}
.dominium-mosaic.js-reveal .dominium-mosaic__tile > * {
    opacity: 0;
}
.dominium-mosaic__eyebrow,
.dominium-mosaic__title,
.dominium-mosaic__all,
.dominium-mosaic__eyebrow::before {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-mosaic.js-reveal .dominium-mosaic__tile {
    transition: clip-path .9s cubic-bezier(.77, 0, .18, 1) calc(.2s + var(--i, 0) * .08s), transform .45s var(--ease-natural), background-color .45s var(--ease-natural);
}
.dominium-mosaic.js-reveal .dominium-mosaic__tile > * {
    transition: opacity .6s var(--ease-natural) calc(.6s + var(--i, 0) * .08s), transform .45s var(--ease-natural);
}
.dominium-mosaic.is-inview .dominium-mosaic__title { transition-delay: .1s; }
.dominium-mosaic.is-inview .dominium-mosaic__all { transition-delay: .2s; }
.dominium-mosaic.is-inview .dominium-mosaic__eyebrow,
.dominium-mosaic.is-inview .dominium-mosaic__title,
.dominium-mosaic.is-inview .dominium-mosaic__all,
.dominium-mosaic.is-inview .dominium-mosaic__eyebrow::before {
    opacity: 1;
    transform: none;
}
.dominium-mosaic.is-inview .dominium-mosaic__tile {
    clip-path: inset(0);
}
.dominium-mosaic.is-inview .dominium-mosaic__tile > * {
    opacity: 1;
}
/* Les éléments animés au survol gardent leur propre état. */
.dominium-mosaic.is-inview .dominium-mosaic__tile .dominium-mosaic__more {
    opacity: 0;
}
.dominium-mosaic.is-inview .dominium-mosaic__tile:hover .dominium-mosaic__more,
.dominium-mosaic.is-inview .dominium-mosaic__tile:focus-visible .dominium-mosaic__more {
    opacity: 1;
}

@media (max-width: 991px) {
    .dominium-mosaic__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: auto;
    }
    .dominium-mosaic__tile:nth-child(n) {
        grid-area: auto;
        min-height: 150px;
    }
    .dominium-mosaic__tile--big:nth-child(n) {
        grid-column: 1 / -1;
        min-height: 380px;
    }
    /* 3 petites tuiles par groupe sur 2 colonnes : la 3e prend la largeur. */
    .dominium-mosaic__tile:nth-child(4),
    .dominium-mosaic__tile:nth-child(8) {
        grid-column: 1 / -1;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-mosaic__tile,
    .dominium-mosaic__tile > *,
    .dominium-mosaic__media img,
    .dominium-mosaic__icon,
    .dominium-mosaic__go,
    .dominium-mosaic__more,
    .dominium-mosaic__eyebrow,
    .dominium-mosaic__title,
    .dominium-mosaic__all {
        transition: none;
    }
}

/* =======================================================================
   Accueil — bandeau CTA final (maquette client du 04/10/2026).
   Bloc noir, titre jaune, bouton jaune à pastille noire ; touches
   ajoutées : grand losange jaune au trait partiellement coupé à droite,
   trame de points, lien WhatsApp, apparition au défilement.
   ======================================================================= */
.dominium-cta {
    padding: var(--space-8) 0 var(--space-9);
}
.dominium-cta__box {
    position: relative;
    overflow: hidden;
    padding: clamp(48px, 5vw, 96px) clamp(28px, 5vw, 96px);
    background-color: var(--color-dark);
    isolation: isolate;
}
.dominium-cta__diamond {
    position: absolute;
    z-index: -1;
    top: 50%;
    right: clamp(-160px, -6vw, -60px);
    width: clamp(240px, 26vw, 440px);
    aspect-ratio: 1;
    margin-top: calc(clamp(240px, 26vw, 440px) / -2);
    border: clamp(10px, 1.1vw, 18px) solid var(--color-primary);
    transform: rotate(45deg);
}
.dominium-cta__dots {
    position: absolute;
    z-index: -1;
    top: 18%;
    right: 26%;
    width: 22%;
    height: 64%;
    background-image: radial-gradient(circle, rgba(255, 255, 255, .22) 1.2px, transparent 1.5px);
    background-size: 14px 14px;
}
.dominium-cta__content {
    max-width: 620px;
}
.dominium-cta__title {
    margin: 0 0 var(--space-4);
    font-size: clamp(2rem, 1.3rem + 2vw, 3.5rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.08;
    color: var(--color-primary);
}
.dominium-cta__text {
    margin: 0 0 var(--space-6);
    font-size: clamp(1rem, .9rem + .35vw, 1.25rem);
    line-height: 1.7;
    color: var(--color-text-muted-on-dark);
}
.dominium-cta__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4) var(--space-6);
}
.dominium-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 56px;
    padding: 0 10px 0 28px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 1rem;
    font-weight: 700;
    transition: background-color .3s var(--ease-natural);
}
.dominium-cta__btn:hover,
.dominium-cta__btn:focus-visible {
    background-color: var(--color-primary-hover);
    color: var(--color-dark);
}
.dominium-cta__btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    transition: transform .3s var(--ease-natural);
}
.dominium-cta__btn:hover .dominium-cta__btn-icon {
    transform: translateX(4px);
}
.dominium-cta__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-weight: 700;
    color: var(--color-text-on-dark);
    border-bottom: 1px solid rgba(255, 255, 255, .35);
    padding-bottom: 2px;
}
.dominium-cta__link i {
    color: #25D366;
    font-size: 1.125rem;
}
.dominium-cta__link:hover,
.dominium-cta__link:focus-visible {
    color: var(--color-text-on-dark);
    border-bottom-color: var(--color-primary);
}

.dominium-cta.js-reveal .dominium-cta__box {
    clip-path: inset(0 100% 0 0);
}
.dominium-cta.js-reveal .dominium-cta__diamond {
    opacity: 0;
    transform: rotate(0deg) scale(.5);
}
.dominium-cta.js-reveal .dominium-cta__content > * {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-cta__box {
    transition: clip-path 1s cubic-bezier(.77, 0, .18, 1);
}
.dominium-cta__diamond {
    transition: opacity .8s var(--ease-natural) .5s, transform 1.3s cubic-bezier(.34, 1.4, .64, 1) .5s;
}
.dominium-cta__content > * {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-cta.is-inview .dominium-cta__content > :nth-child(1) { transition-delay: .6s; }
.dominium-cta.is-inview .dominium-cta__content > :nth-child(2) { transition-delay: .72s; }
.dominium-cta.is-inview .dominium-cta__content > :nth-child(3) { transition-delay: .84s; }
.dominium-cta.is-inview .dominium-cta__box {
    clip-path: inset(0);
}
.dominium-cta.is-inview .dominium-cta__diamond {
    opacity: 1;
    transform: rotate(45deg);
}
.dominium-cta.is-inview .dominium-cta__content > * {
    opacity: 1;
    transform: none;
}
@media (max-width: 767px) {
    .dominium-cta__diamond,
    .dominium-cta__dots,
    .dominium-cta.is-inview .dominium-cta__diamond {
        opacity: .3;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-cta__box,
    .dominium-cta__diamond,
    .dominium-cta__content > *,
    .dominium-cta__btn-icon {
        transition: none;
    }
}


/* =======================================================================
   PAGE CONTACT (maquette client du 04/10/2026).
   Bandeau jaune (titre noir avec dernier mot en blanc, boutons, 3
   repères à pastille blanche, personnage détouré sur halo, pastille ronde
   au texte tournant, bord inférieur ondulé) ; 3 cartes blanches à icône
   ronde teintée ; section crème avec formulaire (libellés flottants,
   sujets en pastilles) et carte Google Maps sur bloc jaune + encart
   horaires noir. Apparition via [data-reveal].
   ======================================================================= */

/* --- Bandeau --- */
.dominium-contact-hero {
    position: relative;
    padding: var(--space-8) 0 calc(var(--space-9) + 40px);
    background:
        radial-gradient(60% 80% at 85% 20%, rgba(255, 255, 255, .35), transparent 60%),
        linear-gradient(135deg, #FFD43B 0%, var(--color-primary) 55%, #F5B800 100%);
    overflow: hidden;
    isolation: isolate;
}
.dominium-contact-hero__shape {
    position: absolute;
    z-index: -1;
    top: -18%;
    right: -6%;
    width: clamp(320px, 38vw, 640px);
    aspect-ratio: 1;
    border: 2px solid rgba(255, 255, 255, .55);
    transform: rotate(45deg);
}
.dominium-contact-hero__shape::after {
    content: "";
    position: absolute;
    inset: 14%;
    border: 2px solid rgba(255, 255, 255, .3);
}
.dominium-contact-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    color: var(--color-dark);
}
.dominium-contact-hero__eyebrow::before {
    content: "";
    width: 32px;
    height: 3px;
    background-color: var(--color-dark);
}
.dominium-contact-hero__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2.75rem, 1.5rem + 4vw, 5.25rem);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.02;
    color: var(--color-dark);
}
.dominium-contact-hero__title span {
    color: var(--color-text-on-dark);
}
.dominium-contact-hero__text {
    max-width: 460px;
    margin: 0 0 var(--space-6);
    font-size: clamp(1.0625rem, .95rem + .35vw, 1.3125rem);
    line-height: 1.6;
    color: rgba(0, 0, 0, .78);
}
.dominium-contact-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4) var(--space-6);
    margin-bottom: var(--space-7);
}
.dominium-contact-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 56px;
    padding: 0 28px;
    border-radius: var(--radius-pill);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-weight: 700;
    transition: transform .3s var(--ease-natural), box-shadow .3s var(--ease-natural);
}
.dominium-contact-hero__btn:hover,
.dominium-contact-hero__btn:focus-visible {
    color: var(--color-text-on-dark);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .25);
}
.dominium-contact-hero__btn i {
    transition: transform .3s var(--ease-natural);
}
.dominium-contact-hero__btn:hover i {
    transform: translateX(4px);
}
.dominium-contact-hero__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-weight: 700;
    color: var(--color-dark);
}
.dominium-contact-hero__link:hover,
.dominium-contact-hero__link:focus-visible {
    color: var(--color-dark);
}
.dominium-contact-hero__link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 2px solid var(--color-dark);
    border-radius: 50%;
    font-size: 20px;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural);
}
.dominium-contact-hero__link:hover .dominium-contact-hero__link-icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
}
.dominium-contact-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-6);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-contact-hero__facts li {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: .875rem;
    line-height: 1.3;
    color: rgba(0, 0, 0, .72);
}
.dominium-contact-hero__facts strong {
    display: block;
    font-size: 1.0625rem;
    color: var(--color-dark);
}
.dominium-contact-hero__fact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    background-color: var(--color-bg);
    color: var(--color-dark);
    font-size: 18px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
}

.dominium-contact-hero__visual {
    position: relative;
    display: flex;
    justify-content: center;
    margin-top: var(--space-6);
}
.dominium-contact-hero__halo {
    position: absolute;
    z-index: -1;
    top: 8%;
    left: 50%;
    width: 78%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 68%);
    transform: translateX(-46%);
}
.dominium-contact-hero__visual img {
    display: block;
    width: 100%;
    max-width: 640px;
    height: auto;
    filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .18));
}
.dominium-contact-hero__badge {
    position: absolute;
    top: 6%;
    right: 2%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(110px, 9vw, 150px);
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-primary);
    box-shadow: 0 16px 36px rgba(0, 0, 0, .25);
}
.dominium-contact-hero__badge svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    animation: dominium-badge-spin 18s linear infinite;
}
.dominium-contact-hero__badge text {
    fill: var(--color-text-on-dark);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.9px;
}
.dominium-contact-hero__badge i {
    font-size: clamp(22px, 2vw, 32px);
}
@keyframes dominium-badge-spin {
    to { transform: rotate(360deg); }
}
.dominium-contact-hero__wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    width: 100%;
    height: clamp(50px, 7vw, 120px);
}
.dominium-contact-hero__wave path {
    fill: var(--color-bg);
}

.dominium-contact-hero.js-reveal .dominium-contact-hero__content > * {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-contact-hero.js-reveal .dominium-contact-hero__visual img {
    opacity: 0;
    transform: translateY(60px);
}
.dominium-contact-hero.js-reveal .dominium-contact-hero__badge {
    opacity: 0;
    transform: scale(.4) rotate(-90deg);
}
.dominium-contact-hero__content > *,
.dominium-contact-hero__visual img {
    transition: opacity .9s var(--ease-natural), transform 1s var(--ease-natural);
}
.dominium-contact-hero__badge {
    transition: opacity .7s var(--ease-natural) .8s, transform 1s cubic-bezier(.34, 1.4, .64, 1) .8s;
}
.dominium-contact-hero.is-inview .dominium-contact-hero__content > :nth-child(2) { transition-delay: .1s; }
.dominium-contact-hero.is-inview .dominium-contact-hero__content > :nth-child(3) { transition-delay: .2s; }
.dominium-contact-hero.is-inview .dominium-contact-hero__content > :nth-child(4) { transition-delay: .3s; }
.dominium-contact-hero.is-inview .dominium-contact-hero__content > :nth-child(5) { transition-delay: .4s; }
.dominium-contact-hero.is-inview .dominium-contact-hero__visual img { transition-delay: .25s; }
.dominium-contact-hero.is-inview .dominium-contact-hero__content > *,
.dominium-contact-hero.is-inview .dominium-contact-hero__visual img,
.dominium-contact-hero.is-inview .dominium-contact-hero__badge {
    opacity: 1;
    transform: none;
}

/* --- Coordonnées --- */
.dominium-contact-ways {
    padding: var(--space-8) 0 var(--space-9);
}
.dominium-contact-ways__header {
    max-width: 720px;
    margin: 0 auto var(--space-8);
    text-align: center;
}
.dominium-contact-ways__eyebrow,
.dominium-contact-form-area__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-3);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-text);
}
.dominium-contact-ways__eyebrow::before,
.dominium-contact-ways__eyebrow::after,
.dominium-contact-form-area__eyebrow::before {
    content: "";
    width: 28px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-contact-ways__title,
.dominium-contact-form-area__title {
    margin: 0 0 var(--space-3);
    font-size: clamp(2rem, 1.3rem + 1.6vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
}
.dominium-contact-ways__text,
.dominium-contact-form-area__text {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--color-text-muted);
}
.dominium-contact-ways__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 2.4vw, 40px);
}
.dominium-contact-card {
    display: flex;
    flex-direction: column;
    padding: clamp(28px, 2.6vw, 44px);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background-color: var(--color-bg);
    box-shadow: 0 14px 40px rgba(0, 0, 0, .05);
    transition: transform .4s var(--ease-natural), box-shadow .4s var(--ease-natural), border-color .4s var(--ease-natural);
}
.dominium-contact-card:hover {
    transform: translateY(-6px);
    border-color: var(--color-primary);
    box-shadow: 0 24px 50px rgba(0, 0, 0, .09);
}
.dominium-contact-card__head {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}
.dominium-contact-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-color: var(--atf-thm-base);
    color: var(--color-dark);
    font-size: 22px;
    transition: background-color .4s var(--ease-natural);
}
.dominium-contact-card:hover .dominium-contact-card__icon {
    background-color: var(--color-primary);
}
.dominium-contact-card__title {
    margin: 0;
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.dominium-contact-card__value {
    margin: 0 0 var(--space-2);
    font-size: 1.1875rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text);
    word-break: break-word;
}
.dominium-contact-card__text {
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--color-text-muted);
}
.dominium-contact-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: auto;
    padding-top: var(--space-5);
    font-weight: 700;
    color: var(--color-text);
}
.dominium-contact-card__link span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 13px;
    transition: transform .3s var(--ease-natural);
}
.dominium-contact-card__link:hover {
    color: var(--color-text);
}
.dominium-contact-card__link:hover span {
    transform: translateX(4px);
}
.dominium-contact-ways.js-reveal .dominium-contact-ways__header,
.dominium-contact-ways.js-reveal .dominium-contact-card {
    opacity: 0;
    transform: translateY(32px);
}
.dominium-contact-ways__header {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-contact-ways.js-reveal .dominium-contact-card {
    transition: opacity .8s var(--ease-natural) calc(.2s + var(--i, 0) * .12s), transform .9s var(--ease-natural) calc(.2s + var(--i, 0) * .12s), box-shadow .4s, border-color .4s;
}
.dominium-contact-ways.is-inview .dominium-contact-ways__header,
.dominium-contact-ways.is-inview .dominium-contact-card {
    opacity: 1;
    transform: none;
}
.dominium-contact-ways.is-inview .dominium-contact-card:hover {
    transform: translateY(-6px);
    transition-delay: 0s;
}

/* --- Formulaire --- */
.dominium-contact-form-area {
    padding: var(--space-9) 0;
    background-color: #FFFAEB;
}
.dominium-contact-form-area__title span {
    color: var(--color-primary);
}
.dominium-contact-form-area__text {
    margin-bottom: var(--space-6);
}
.dominium-form {
    padding: clamp(24px, 3vw, 48px);
    border-radius: var(--radius-lg);
    background-color: var(--color-bg);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .07);
}
.dominium-form__success,
.dominium-form__alert {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    padding: var(--space-4) var(--space-5);
    border-radius: var(--radius-md);
    font-weight: 600;
}
.dominium-form__success {
    background-color: rgba(28, 124, 77, .1);
    color: var(--color-success);
}
.dominium-form__alert {
    background-color: rgba(180, 35, 24, .08);
    color: #B42318;
}
.dominium-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
}
.dominium-form__field {
    position: relative;
}
.dominium-form__field--full {
    grid-column: 1 / -1;
}
.dominium-form__field input,
.dominium-form__field textarea {
    display: block;
    width: 100%;
    padding: 26px 18px 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background-color: var(--color-surface);
    color: var(--color-text);
    font-size: 1.0625rem;
    line-height: 1.5;
    transition: border-color .25s var(--ease-natural), background-color .25s var(--ease-natural), box-shadow .25s var(--ease-natural);
}
.dominium-form__field textarea {
    min-height: 170px;
    padding-bottom: 32px;
    resize: vertical;
}
.dominium-form__field label {
    position: absolute;
    top: 18px;
    left: 19px;
    margin: 0;
    font-size: 1.0625rem;
    color: var(--color-text-muted);
    pointer-events: none;
    transform-origin: left top;
    transition: transform .25s var(--ease-natural), color .25s var(--ease-natural);
}
.dominium-form__field label abbr {
    text-decoration: none;
    color: var(--color-text);
}
.dominium-form__field input:focus,
.dominium-form__field textarea:focus {
    outline: none;
    border-color: var(--color-dark);
    background-color: var(--color-bg);
    box-shadow: 0 0 0 4px rgba(255, 195, 0, .35);
}
.dominium-form__field input:focus + label,
.dominium-form__field input:not(:placeholder-shown) + label,
.dominium-form__field textarea:focus + label,
.dominium-form__field textarea:not(:placeholder-shown) + label {
    color: var(--color-text);
    transform: translateY(-11px) scale(.78);
}
.dominium-form__field.has-error input,
.dominium-form__field.has-error textarea {
    border-color: #B42318;
}
.dominium-form__error {
    margin: 6px 0 0 4px;
    font-size: .875rem;
    color: #B42318;
}
.dominium-form__counter {
    position: absolute;
    right: 16px;
    bottom: 10px;
    font-size: .75rem;
    color: var(--color-text-muted);
}
.dominium-form__field--area .dominium-form__error {
    margin-top: 6px;
}
/* Liste déroulante du sujet : même champ que les autres, libellé
   toujours remonté (une option est toujours sélectionnée). */
.dominium-form__field select {
    display: block;
    width: 100%;
    padding: 26px 44px 10px 18px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background-color: var(--color-surface);
    color: var(--color-text);
    font-size: 1.0625rem;
    line-height: 1.5;
    appearance: none;
    cursor: pointer;
    transition: border-color .25s var(--ease-natural), background-color .25s var(--ease-natural), box-shadow .25s var(--ease-natural);
}
.dominium-form__field select:focus {
    outline: none;
    border-color: var(--color-dark);
    background-color: var(--color-bg);
    box-shadow: 0 0 0 4px rgba(255, 195, 0, .35);
}
.dominium-form__field--select label {
    color: var(--color-text);
    transform: translateY(-11px) scale(.78);
}
.dominium-form__select-arrow {
    position: absolute;
    top: 50%;
    right: 18px;
    margin-top: -7px;
    font-size: 13px;
    color: var(--color-text);
    pointer-events: none;
}
.dominium-form__field--area {
    margin-top: var(--space-5);
}
.dominium-form__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-6);
}
.dominium-form__submit {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 58px;
    padding: 0 10px 0 30px;
    border: 0;
    border-radius: var(--radius-pill);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 1.0625rem;
    font-weight: 700;
    cursor: pointer;
    transition: transform .3s var(--ease-natural), box-shadow .3s var(--ease-natural);
}
.dominium-form__submit span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-primary);
    transition: transform .3s var(--ease-natural);
}
.dominium-form__submit:hover,
.dominium-form__submit:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(255, 195, 0, .45);
}
.dominium-form__submit:hover span {
    transform: rotate(-20deg) translateX(2px);
}
.dominium-form__note {
    margin: 0;
    font-size: .875rem;
    color: var(--color-text-muted);
}
.dominium-form__note i {
    margin-right: 6px;
}

/* Carte + horaires. */
.dominium-contact-map {
    position: relative;
    margin: 0 0 var(--space-7) var(--space-5);
}
.dominium-contact-map__block {
    position: absolute;
    top: var(--space-5);
    left: calc(var(--space-5) * -1);
    right: var(--space-5);
    bottom: calc(var(--space-5) * -1);
    border-radius: var(--radius-lg);
    background-color: var(--color-primary);
}
.dominium-contact-map__frame {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg);
    aspect-ratio: 4 / 5;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .12);
}
.dominium-contact-map__frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(.35) contrast(1.05);
}
.dominium-contact-map__hours {
    position: absolute;
    right: calc(var(--space-5) * -1);
    bottom: var(--space-7);
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border-radius: var(--radius-md);
    background-color: var(--color-dark);
    color: var(--color-text-muted-on-dark);
    font-size: .9375rem;
    line-height: 1.4;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .25);
}
.dominium-contact-map__hours strong {
    display: block;
    font-size: 1.0625rem;
    color: var(--color-text-on-dark);
}
.dominium-contact-map__hours-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-contact-social {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-left: var(--space-5);
}
.dominium-contact-social p {
    margin: 0;
    font-weight: 700;
}
.dominium-contact-social ul {
    display: flex;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-contact-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-contact-social a:hover,
.dominium-contact-social a:focus-visible {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: translateY(-3px);
}
.dominium-contact-form-area.js-reveal .col-lg-7 > *,
.dominium-contact-form-area.js-reveal .dominium-contact-map,
.dominium-contact-form-area.js-reveal .dominium-contact-social {
    opacity: 0;
    transform: translateY(32px);
}
.dominium-contact-form-area .col-lg-7 > *,
.dominium-contact-map,
.dominium-contact-social {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-contact-form-area.is-inview .col-lg-7 > :nth-child(2) { transition-delay: .08s; }
.dominium-contact-form-area.is-inview .col-lg-7 > :nth-child(3) { transition-delay: .16s; }
.dominium-contact-form-area.is-inview .col-lg-7 > :nth-child(4) { transition-delay: .26s; }
.dominium-contact-form-area.is-inview .dominium-contact-map { transition-delay: .3s; }
.dominium-contact-form-area.is-inview .dominium-contact-social { transition-delay: .45s; }
.dominium-contact-form-area.is-inview .col-lg-7 > *,
.dominium-contact-form-area.is-inview .dominium-contact-map,
.dominium-contact-form-area.is-inview .dominium-contact-social {
    opacity: 1;
    transform: none;
}

@media (max-width: 991px) {
    .dominium-contact-hero {
        padding-top: var(--space-7);
    }
    .dominium-contact-hero__visual img {
        max-width: 440px;
    }
    .dominium-contact-ways__grid {
        grid-template-columns: 1fr;
    }
    .dominium-contact-map {
        margin-top: var(--space-6);
    }
    .dominium-contact-map__frame {
        aspect-ratio: 4 / 3;
    }
}
@media (max-width: 575px) {
    .dominium-form__grid {
        grid-template-columns: 1fr;
    }
    .dominium-contact-hero__badge {
        top: 0;
        right: 0;
        width: 92px;
    }
    .dominium-contact-map__hours {
        right: 8px;
        bottom: 8px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-contact-hero__badge svg {
        animation: none;
    }
    .dominium-contact-hero__content > *,
    .dominium-contact-hero__visual img,
    .dominium-contact-hero__badge,
    .dominium-contact-ways__header,
    .dominium-contact-card,
    .dominium-contact-form-area .col-lg-7 > *,
    .dominium-contact-map,
    .dominium-contact-social {
        transition: none;
    }
}

/* Bandeau Contact : la photo détourée est coupée net en bas ; on la cale
   sur le bas du bandeau, sous la vague (qui passe devant), pour que la
   coupe soit masquée par la courbe. */
.dominium-contact-hero .col-lg-6:last-child {
    align-self: flex-end;
}
.dominium-contact-hero__visual {
    z-index: 0;
    margin-top: var(--space-6);
    margin-bottom: calc(-1 * (var(--space-9) + 40px));
}
.dominium-contact-hero__wave {
    z-index: 1;
}
.dominium-contact-hero__badge {
    z-index: 2;
}

/* =======================================================================
   Motif géométrique décoratif (components/public/geo-pattern) — triangles
   aux couleurs Dominium dans les marges latérales d'une section (retour
   client du 04/10/2026). N'apparaît que si la marge du conteneur est
   assez large pour ne jamais passer sous un texte ; triangles qui
   surgissent en cascade à l'entrée de la section ([data-reveal]).
   ======================================================================= */
.dominium-about-home {
    position: relative;
}
.dominium-geo {
    position: absolute;
    z-index: 0;
    display: none;
    width: min(170px, calc((100vw - 1560px) / 2 - 24px));
    height: auto;
    pointer-events: none;
}
.dominium-geo--tl { top: 0; left: 0; }
.dominium-geo--tr { top: 0; right: 0; transform: scaleX(-1); }
.dominium-geo--bl { bottom: 0; left: 0; transform: scaleY(-1); }
.dominium-geo--br { bottom: 0; right: 0; transform: rotate(180deg); }
.dominium-geo polygon {
    transform-box: fill-box;
    transform-origin: center;
}
@media (min-width: 1800px) {
    .dominium-geo {
        display: block;
    }
}
[data-reveal].js-reveal .dominium-geo polygon {
    opacity: 0;
    transform: scale(0) rotate(-45deg);
    transition: opacity .5s var(--ease-natural) var(--d, 0s), transform .7s cubic-bezier(.34, 1.4, .64, 1) var(--d, 0s);
}
[data-reveal].js-reveal.is-inview .dominium-geo polygon {
    opacity: 1;
    transform: none;
}
@media (prefers-reduced-motion: reduce) {
    [data-reveal].js-reveal .dominium-geo polygon {
        transition: none;
    }
}


/* =======================================================================
   PAGE /expertises (maquettes client du 04/10/2026).
   ======================================================================= */

/* Variante jaune du bouton carré (sur fond sombre). */
.dominium-square-btn--yellow {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-square-btn--yellow:hover,
.dominium-square-btn--yellow:focus-visible {
    background-color: var(--color-primary-hover);
    color: var(--color-dark);
}
.dominium-square-btn--yellow .dominium-square-btn__icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
}

/* --- Hero sombre, bas taillé en V avec liseré jaune --- */
.dominium-xp-hero {
    --xp-v: clamp(40px, 6vw, 110px);
    position: relative;
    padding: clamp(96px, 9vw, 170px) 0 0;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--xp-v)), 50% 100%, 0 calc(100% - var(--xp-v)));
    isolation: isolate;
    overflow: hidden;
}
/* Liseré jaune qui suit le V (pseudo-élément sous le hero). */
.dominium-xp-hero-wrap {
    position: relative;
}
.dominium-xp-hero__bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background-size: cover;
    background-position: center 35%;
    animation: dominium-xp-pan 22s ease-in-out infinite alternate;
}
.dominium-xp-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(28, 28, 28, .92) 0%, rgba(28, 28, 28, .78) 45%, rgba(28, 28, 28, .35) 100%),
        linear-gradient(0deg, rgba(28, 28, 28, .55), transparent 40%);
}
.dominium-xp-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--xp-v);
    z-index: 1;
    background: linear-gradient(to bottom right, transparent calc(50% - 3px), var(--color-primary) calc(50% - 3px), var(--color-primary) 50%, transparent 50%) left / 50% 100% no-repeat,
                linear-gradient(to bottom left, transparent calc(50% - 3px), var(--color-primary) calc(50% - 3px), var(--color-primary) 50%, transparent 50%) right / 50% 100% no-repeat;
}
@keyframes dominium-xp-pan {
    from { transform: scale(1.05) translateX(0); }
    to { transform: scale(1.15) translateX(-2%); }
}
.dominium-xp-hero__medallion {
    position: absolute;
    top: clamp(24px, 3vw, 56px);
    right: 6%;
    width: clamp(180px, 18vw, 320px);
    aspect-ratio: 1;
    border-radius: 50%;
    border: 8px solid var(--color-primary);
    background-size: cover;
    background-position: center;
    box-shadow: 0 30px 60px rgba(0, 0, 0, .45);
}
.dominium-xp-hero__content {
    position: relative;
    z-index: 2;
    max-width: 780px;
}
.dominium-xp-hero__crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
    font-size: .875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-text-muted-on-dark);
}
.dominium-xp-hero__crumbs a {
    color: var(--color-text-on-dark);
}
.dominium-xp-hero__crumbs a:hover {
    color: var(--color-primary);
}
.dominium-xp-hero__crumbs i {
    font-size: .625rem;
    color: var(--color-primary);
}
.dominium-xp-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-text-on-dark);
}
.dominium-xp-hero__eyebrow::after {
    content: "";
    width: 48px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-xp-hero__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2.75rem, 1.4rem + 4.2vw, 5.5rem);
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.02;
    text-transform: uppercase;
    color: var(--color-text-on-dark);
}
.dominium-xp-hero__title span {
    display: block;
    font-size: .52em;
    letter-spacing: -0.02em;
    color: var(--color-primary);
}
.dominium-xp-hero__text {
    max-width: 620px;
    margin: 0 0 var(--space-7);
    font-size: clamp(1.0625rem, .95rem + .4vw, 1.375rem);
    line-height: 1.7;
    color: rgba(255, 255, 255, .8);
}
.dominium-xp-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-5) var(--space-7);
}
.dominium-xp-hero__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-weight: 700;
    color: var(--color-text-on-dark);
    border-bottom: 1px solid rgba(255, 255, 255, .4);
    padding-bottom: 3px;
}
.dominium-xp-hero__link:hover,
.dominium-xp-hero__link:focus-visible {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
}
.dominium-xp-hero__stats {
    position: relative;
    z-index: 2;
    margin-top: clamp(64px, 6vw, 110px);
    padding-bottom: calc(var(--xp-v) + var(--space-5));
}
.dominium-xp-hero__stats ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-6) clamp(32px, 5vw, 96px);
    margin: 0;
    padding: var(--space-6) 0 0;
    list-style: none;
    border-top: 1px solid var(--color-border-on-dark);
}
.dominium-xp-hero__stats li {
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
}
.dominium-xp-hero__stats strong {
    font-size: clamp(2rem, 1.4rem + 1.6vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--color-primary);
}
.dominium-xp-hero__stats span {
    font-size: .9375rem;
    color: var(--color-text-muted-on-dark);
}

.dominium-xp-hero.js-reveal .dominium-xp-hero__content > *,
.dominium-xp-hero.js-reveal .dominium-xp-hero__stats li {
    opacity: 0;
    transform: translateY(30px);
}
.dominium-xp-hero.js-reveal .dominium-xp-hero__medallion {
    opacity: 0;
    transform: scale(.6) rotate(-20deg);
}
.dominium-xp-hero__content > *,
.dominium-xp-hero__stats li {
    transition: opacity .9s var(--ease-natural), transform 1s var(--ease-natural);
}
.dominium-xp-hero__medallion {
    transition: opacity .9s var(--ease-natural) .3s, transform 1.2s cubic-bezier(.34, 1.4, .64, 1) .3s;
}
.dominium-xp-hero.is-inview .dominium-xp-hero__content > :nth-child(2) { transition-delay: .08s; }
.dominium-xp-hero.is-inview .dominium-xp-hero__content > :nth-child(3) { transition-delay: .16s; }
.dominium-xp-hero.is-inview .dominium-xp-hero__content > :nth-child(4) { transition-delay: .26s; }
.dominium-xp-hero.is-inview .dominium-xp-hero__content > :nth-child(5) { transition-delay: .36s; }
.dominium-xp-hero.is-inview .dominium-xp-hero__stats li:nth-child(1) { transition-delay: .5s; }
.dominium-xp-hero.is-inview .dominium-xp-hero__stats li:nth-child(2) { transition-delay: .6s; }
.dominium-xp-hero.is-inview .dominium-xp-hero__stats li:nth-child(3) { transition-delay: .7s; }
.dominium-xp-hero.is-inview .dominium-xp-hero__content > *,
.dominium-xp-hero.is-inview .dominium-xp-hero__stats li,
.dominium-xp-hero.is-inview .dominium-xp-hero__medallion {
    opacity: 1;
    transform: none;
}

/* --- Bandeau d'engagements --- */
.dominium-xp-values {
    padding: var(--space-8) 0 var(--space-7);
}
.dominium-xp-values__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-xp-values__list li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    text-align: center;
}
.dominium-xp-values__list li + li {
    border-left: 1px solid var(--color-border);
}
.dominium-xp-values__icon {
    font-size: clamp(2rem, 1.5rem + 1vw, 2.75rem);
    color: var(--color-text);
    transition: transform .4s var(--ease-natural), color .4s var(--ease-natural);
}
.dominium-xp-values__list li:hover .dominium-xp-values__icon {
    color: var(--color-primary);
    transform: translateY(-4px);
}
.dominium-xp-values__dash {
    width: 36px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-xp-values__list h2 {
    margin: 0;
    font-size: clamp(1rem, .9rem + .35vw, 1.25rem);
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.dominium-xp-values.js-reveal li {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-xp-values li {
    transition: opacity .8s var(--ease-natural) calc(var(--i, 0) * .12s), transform .9s var(--ease-natural) calc(var(--i, 0) * .12s);
}
.dominium-xp-values.is-inview li {
    opacity: 1;
    transform: none;
}

/* --- Cartes parallélogramme --- */
.dominium-xp-grid {
    position: relative;
    padding: var(--space-8) 0 var(--space-9);
    background:
        linear-gradient(var(--color-surface), var(--color-surface)) 0 100% / 100% 55% no-repeat,
        var(--color-bg);
    overflow: hidden;
}
.dominium-xp-grid__vertical {
    position: absolute;
    top: 50%;
    left: clamp(-60px, -2vw, -10px);
    display: flex;
    align-items: baseline;
    gap: var(--space-4);
    font-size: clamp(4rem, 2rem + 4vw, 7.5rem);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1;
    text-transform: uppercase;
    color: rgba(0, 0, 0, .045);
    white-space: nowrap;
    transform: translateY(-50%) rotate(-90deg) translateX(-50%);
    transform-origin: left top;
    pointer-events: none;
}
.dominium-xp-grid__vertical small {
    font-size: .16em;
    font-weight: 700;
    letter-spacing: .3em;
    color: rgba(0, 0, 0, .18);
}
.dominium-xp-grid__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: var(--space-8);
    text-align: center;
}
.dominium-xp-grid__title {
    margin: 0;
    font-size: clamp(2rem, 1.3rem + 1.8vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}
.dominium-xp-grid__title span {
    color: var(--color-primary);
}
/* Partie non surlignée d'un titre découpé pour l'éditeur visuel (titre « X <span>Y</span> »
   devenu deux textes modifiables) : garde la couleur du titre, pas celle du mot en jaune. */
.dm-plain {
    color: inherit !important;
}
.dominium-xp-grid__dash {
    width: 48px;
    height: 4px;
    margin: var(--space-4) 0;
    background-color: var(--color-primary);
}
.dominium-xp-grid__text {
    max-width: 620px;
    margin: 0;
    font-size: 1.125rem;
    color: var(--color-text-muted);
}
.dominium-xp-grid__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-8) clamp(16px, 2vw, 36px);
}
.dominium-xp-card {
    display: flex;
    flex-direction: column;
}
.dominium-xp-card__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    clip-path: polygon(14% 0, 100% 0, 86% 100%, 0 100%);
    overflow: hidden;
    background-color: var(--color-dark);
}
.dominium-xp-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.1s var(--ease-natural), filter .6s var(--ease-natural);
}
.dominium-xp-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(200deg, transparent 40%, rgba(28, 28, 28, .65));
    transition: opacity .5s var(--ease-natural);
}
.dominium-xp-card:hover .dominium-xp-card__media img {
    transform: scale(1.08);
}
.dominium-xp-card__number {
    position: absolute;
    z-index: 1;
    left: 18%;
    bottom: 12px;
    font-size: clamp(2.5rem, 1.6rem + 2vw, 3.75rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255, 255, 255, .85);
}
.dominium-xp-card__icon {
    position: absolute;
    z-index: 1;
    top: 14px;
    right: 18%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 22px;
    transition: transform .5s var(--ease-natural);
}
.dominium-xp-card:hover .dominium-xp-card__icon {
    transform: rotate(-8deg) scale(1.08);
}
.dominium-xp-card__body {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;
    margin: -1px 7% 0;
    padding: var(--space-5) var(--space-5) var(--space-6);
    background-color: var(--color-bg);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .06);
    border-bottom: 3px solid transparent;
    transition: border-color .4s var(--ease-natural), transform .4s var(--ease-natural);
}
.dominium-xp-card:hover .dominium-xp-card__body {
    border-bottom-color: var(--color-primary);
    transform: translateY(-6px);
}
.dominium-xp-card__name {
    margin: 0 0 var(--space-4);
    font-size: clamp(1.25rem, 1rem + .6vw, 1.625rem);
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    text-align: center;
}
.dominium-xp-card__name a,
.dominium-xp-card__name a:hover {
    color: var(--color-text);
}
.dominium-xp-card__techs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0 0 var(--space-4);
    padding: 0;
    list-style: none;
}
.dominium-xp-card__techs li {
    padding: 4px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    font-size: .8125rem;
    font-weight: 600;
    color: var(--color-text);
    transition: background-color .3s var(--ease-natural), border-color .3s var(--ease-natural);
}
.dominium-xp-card:hover .dominium-xp-card__techs li {
    border-color: var(--color-primary);
    background-color: rgba(255, 195, 0, .12);
}
.dominium-xp-card__projects {
    margin: 0 0 var(--space-4);
    font-size: .875rem;
    line-height: 1.6;
    text-align: center;
    color: var(--color-text-muted);
}
.dominium-xp-card__projects i {
    margin-right: 6px;
    color: var(--color-primary);
}
.dominium-xp-card__projects a {
    color: var(--color-text);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--color-primary);
    text-underline-offset: 3px;
}
.dominium-xp-card__more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    margin-top: auto;
    font-size: .9375rem;
    font-weight: 700;
    color: var(--color-text);
}
.dominium-xp-card__more i {
    transition: transform .3s var(--ease-natural);
}
.dominium-xp-card__more:hover {
    color: var(--color-text);
}
.dominium-xp-card:hover .dominium-xp-card__more i {
    transform: translateX(5px);
}
.dominium-xp-grid__cta {
    display: flex;
    justify-content: center;
    margin-top: var(--space-8);
}

.dominium-xp-grid.js-reveal .dominium-xp-grid__header,
.dominium-xp-grid.js-reveal .dominium-xp-card {
    opacity: 0;
    transform: translateY(40px);
}
.dominium-xp-grid.js-reveal .dominium-xp-card__media {
    clip-path: polygon(14% 0, 14% 0, 0 100%, 0 100%);
}
.dominium-xp-grid__header {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-xp-grid.js-reveal .dominium-xp-card {
    transition: opacity .8s var(--ease-natural) calc(.15s + var(--i, 0) * .1s), transform .9s var(--ease-natural) calc(.15s + var(--i, 0) * .1s);
}
.dominium-xp-grid.js-reveal .dominium-xp-card__media {
    transition: clip-path 1.1s cubic-bezier(.77, 0, .18, 1) calc(.3s + var(--i, 0) * .1s);
}
.dominium-xp-grid.is-inview .dominium-xp-grid__header,
.dominium-xp-grid.is-inview .dominium-xp-card {
    opacity: 1;
    transform: none;
}
.dominium-xp-grid.is-inview .dominium-xp-card__media {
    clip-path: polygon(14% 0, 100% 0, 86% 100%, 0 100%);
}

/* --- Bandeau final à crêtes --- */
.dominium-xp-band {
    position: relative;
    padding: clamp(110px, 10vw, 170px) 0 var(--space-8);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
}
.dominium-xp-band__peaks {
    position: absolute;
    top: -1px;
    left: 0;
    width: 100%;
    height: clamp(50px, 6vw, 110px);
    transform: scaleY(-1);
}
.dominium-xp-band__peaks path {
    fill: var(--color-surface);
}
.dominium-xp-band__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-6);
}
.dominium-xp-band__title {
    margin: 0;
    font-size: clamp(2.25rem, 1.4rem + 2.4vw, 4rem);
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-text-on-dark);
}
.dominium-xp-band__title span {
    color: var(--color-primary);
}
.dominium-xp-band__sub {
    margin: var(--space-3) 0 0;
    font-size: clamp(.9375rem, .85rem + .3vw, 1.125rem);
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--color-text-muted-on-dark);
}
.dominium-xp-band__words {
    display: flex;
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--color-text-muted-on-dark);
}
.dominium-xp-band__words li + li::before {
    content: "/";
    margin-right: var(--space-4);
    color: var(--color-primary);
}
.dominium-xp-band.js-reveal .dominium-xp-band__inner > * {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-xp-band__inner > * {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-xp-band.is-inview .dominium-xp-band__inner > :nth-child(2) { transition-delay: .15s; }
.dominium-xp-band.is-inview .dominium-xp-band__inner > :nth-child(3) { transition-delay: .3s; }
.dominium-xp-band.is-inview .dominium-xp-band__inner > * {
    opacity: 1;
    transform: none;
}

@media (max-width: 991px) {
    .dominium-xp-grid__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dominium-xp-grid__vertical {
        display: none;
    }
    .dominium-xp-hero__medallion {
        width: 140px;
        top: -40px;
        right: -30px;
        opacity: .6;
    }
}
@media (max-width: 575px) {
    .dominium-xp-grid__cards {
        grid-template-columns: 1fr;
    }
    .dominium-xp-hero__medallion {
        display: none;
    }
    .dominium-xp-values__list {
        grid-template-columns: 1fr;
    }
    .dominium-xp-values__list li + li {
        border-left: 0;
        border-top: 1px solid var(--color-border);
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-xp-hero__bg {
        animation: none;
    }
    .dominium-xp-hero__content > *,
    .dominium-xp-hero__stats li,
    .dominium-xp-hero__medallion,
    .dominium-xp-values li,
    .dominium-xp-grid__header,
    .dominium-xp-card,
    .dominium-xp-card__media,
    .dominium-xp-card__media img,
    .dominium-xp-card__body,
    .dominium-xp-band__inner > * {
        transition: none;
    }
}

/* =======================================================================
   /solutions/{slug} — compléments au gabarit (composants réutilisés).
   ======================================================================= */
.dominium-xp-hero__medallion--icon {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: clamp(3.5rem, 2rem + 4vw, 7rem);
    border-color: var(--color-dark);
    outline: 2px solid var(--color-primary);
    outline-offset: 8px;
}
.dominium-xp-hero__title--long {
    max-width: 900px;
    font-size: clamp(2.25rem, 1.3rem + 3vw, 4.25rem);
    text-transform: none;
    line-height: 1.08;
}
.dominium-solution-caps {
    background-color: var(--color-surface);
}
.dominium-solution-stack {
    position: relative;
    margin-bottom: var(--space-9);
    padding: clamp(28px, 3vw, 48px);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .15);
}
.dominium-solution-stack::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 18px;
    left: -18px;
    right: 18px;
    bottom: -18px;
    background-color: var(--color-primary);
}
.dominium-solution-stack__eyebrow {
    margin: 0 0 var(--space-2);
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.dominium-solution-stack__title {
    margin: 0 0 var(--space-6);
    font-size: clamp(1.5rem, 1.1rem + 1vw, 2rem);
    font-weight: 800;
    color: var(--color-text-on-dark);
}
.dominium-solution-stack .dominium-tech__grid {
    justify-content: flex-start;
}
.dominium-solution-stack .dominium-tech__icon {
    border-color: var(--color-border-on-dark);
    background-color: rgba(255, 255, 255, .06);
    color: var(--color-text-on-dark);
}
.dominium-solution-stack .dominium-tech__name {
    color: var(--color-text-muted-on-dark);
}
.dominium-solution-stack .dominium-tech__monogram {
    color: var(--color-text-on-dark);
}
.dominium-solution-faq {
    padding: var(--space-9) 0;
}
.dominium-solution-faq.js-reveal .dominium-reviews__header,
.dominium-solution-faq.js-reveal .accordion {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-solution-faq .dominium-reviews__header,
.dominium-solution-faq .accordion {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-solution-faq.is-inview .accordion { transition-delay: .2s; }
.dominium-solution-faq.is-inview .dominium-reviews__header,
.dominium-solution-faq.is-inview .accordion {
    opacity: 1;
    transform: none;
}
@media (max-width: 991px) {
    .dominium-solution-stack {
        margin: var(--space-4) 0 var(--space-8) 18px;
    }
}


/* =======================================================================
   Accueil — "Écosystème technique" (maquettes client du 04/10/2026).
   Fond jaune + motif géométrique clair ; très grand titre noir ; onglets
   "fiche" (carré icône + nom + nombre, actif noir) ; cartes blanches
   flottantes autour d'un noyau noir. Les cartes apparaissent en
   rebondissant à chaque changement d'onglet (scale) puis flottent
   doucement (translate, propriété distincte : pas de conflit).
   ======================================================================= */
.dominium-eco {
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-primary);
    overflow: hidden;
    isolation: isolate;
}
.dominium-eco__pattern {
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    width: 62%;
    height: 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%);
    mask-image: linear-gradient(90deg, transparent, #000 30%);
}
.dominium-eco__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-dark);
}
.dominium-eco__eyebrow::before {
    content: "";
    width: 40px;
    height: 3px;
    background-color: var(--color-dark);
}
.dominium-eco__title {
    max-width: 640px;
    margin: 0 0 var(--space-5);
    font-size: clamp(2.5rem, 1.3rem + 3.6vw, 5rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: .98;
    color: var(--color-dark);
}
.dominium-eco__text {
    max-width: 560px;
    margin: 0 0 var(--space-7);
    font-size: clamp(1.0625rem, .95rem + .4vw, 1.375rem);
    line-height: 1.6;
    color: rgba(0, 0, 0, .78);
}
.dominium-eco__tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    max-width: 600px;
}
.dominium-eco__tab {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: 14px 18px;
    border: 0;
    background-color: rgba(255, 255, 255, .55);
    color: var(--color-dark);
    text-align: left;
    cursor: pointer;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-eco__tab:hover {
    background-color: rgba(255, 255, 255, .85);
    transform: translateY(-3px);
}
.dominium-eco__tab:focus-visible {
    outline: 2px solid var(--color-dark);
    outline-offset: 2px;
}
.dominium-eco__tab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    background-color: var(--color-bg);
    color: var(--color-dark);
    font-size: 20px;
    transition: transform .4s var(--ease-natural);
}
.dominium-eco__tab-text strong {
    display: block;
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.2;
}
.dominium-eco__tab-text small {
    font-size: .875rem;
    opacity: .7;
}
.dominium-eco__tab.active {
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-eco__tab.active .dominium-eco__tab-icon {
    transform: rotate(-6deg);
}

/* Scène : noyau noir + cartes flottantes. */
.dominium-eco__stage {
    position: relative;
    min-height: 520px;
    margin-top: var(--space-7);
}
.dominium-eco__core {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 200px;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    transform: translate(-50%, -50%);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .25);
}
.dominium-eco__core strong {
    font-size: 3.5rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
    color: var(--color-primary);
}
.dominium-eco__core small {
    font-size: .875rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-text-muted-on-dark);
}
.dominium-eco__core-ring {
    position: absolute;
    inset: -28px;
    border: 2px dashed rgba(0, 0, 0, .35);
    border-radius: 50%;
    animation: dominium-badge-spin 40s linear infinite;
}
.dominium-eco__cards {
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-eco__card {
    position: absolute;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 210px;
    padding: 14px 18px 14px 14px;
    background-color: var(--color-bg);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .14);
    border-bottom: 3px solid var(--color-dark);
    animation:
        dominium-eco-pop .7s cubic-bezier(.34, 1.5, .64, 1) both calc(var(--i, 0) * .12s),
        dominium-eco-float 6s ease-in-out calc(.8s + var(--i, 0) * .5s) infinite;
}
.dominium-eco__card:nth-child(1) { top: 2%; left: 4%; }
.dominium-eco__card:nth-child(2) { top: 10%; right: 0; }
.dominium-eco__card:nth-child(3) { bottom: 6%; left: 18%; }
.dominium-eco__card:nth-child(4) { bottom: 14%; right: 2%; }
.dominium-eco__card:nth-child(5) { top: 44%; left: -4%; }
.dominium-eco__card:nth-child(6) { top: 46%; right: -6%; }
.dominium-eco__card:nth-child(7) { top: -6%; left: 40%; }
.dominium-eco__card:nth-child(8) { bottom: -6%; right: 34%; }
.dominium-eco__card-logo.dominium-tech__icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    background-color: var(--color-surface);
    font-size: 22px;
}
.dominium-eco__card-body strong {
    display: block;
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-text);
}
.dominium-eco__card-body small {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    padding: 2px 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    font-size: .75rem;
    color: var(--color-text-muted);
}
.dominium-eco__card-body small::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: var(--color-primary);
}
@keyframes dominium-eco-pop {
    from { opacity: 0; transform: scale(.4); }
    to { opacity: 1; transform: scale(1); }
}
@keyframes dominium-eco-float {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -12px; }
}
/* Le contenu des onglets reste dans la scène (fondu Bootstrap). */
.dominium-eco__stage .tab-content,
.dominium-eco__stage .tab-pane {
    position: absolute;
    inset: 0;
}
.dominium-eco__stage .tab-pane:not(.active) {
    display: none;
}

/* Apparition de la section. */
.dominium-eco.js-reveal .dominium-eco__content > *,
.dominium-eco.js-reveal .dominium-eco__core {
    opacity: 0;
}
.dominium-eco.js-reveal .dominium-eco__content > * {
    transform: translateY(28px);
}
.dominium-eco.js-reveal .dominium-eco__core {
    scale: .5;
}
.dominium-eco__content > * {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-eco__core {
    transition: opacity .8s var(--ease-natural) .3s, scale 1s cubic-bezier(.34, 1.4, .64, 1) .3s;
}
.dominium-eco.is-inview .dominium-eco__content > :nth-child(2) { transition-delay: .1s; }
.dominium-eco.is-inview .dominium-eco__content > :nth-child(3) { transition-delay: .2s; }
.dominium-eco.is-inview .dominium-eco__content > :nth-child(4) { transition-delay: .3s; }
.dominium-eco.is-inview .dominium-eco__content > *,
.dominium-eco.is-inview .dominium-eco__core {
    opacity: 1;
    transform: none;
    scale: 1;
}
.dominium-eco.is-inview .dominium-eco__content > .dominium-eco__tabs .dominium-eco__tab:hover {
    transform: translateY(-3px);
}

@media (max-width: 991px) {
    .dominium-eco__pattern {
        width: 100%;
        opacity: .6;
    }
    .dominium-eco__stage {
        min-height: 0;
    }
    .dominium-eco__core {
        display: none;
    }
    .dominium-eco__stage .tab-content,
    .dominium-eco__stage .tab-pane {
        position: static;
    }
    .dominium-eco__cards {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: var(--space-3);
    }
    .dominium-eco__card:nth-child(n) {
        position: static;
        min-width: 0;
    }
}
@media (max-width: 575px) {
    .dominium-eco__tab {
        gap: var(--space-3);
        padding: 10px;
    }
    .dominium-eco__tab-icon {
        width: 36px;
        height: 36px;
        font-size: 16px;
    }
    .dominium-eco__tab-text strong {
        font-size: .9375rem;
    }
    .dominium-eco__tab-text small {
        font-size: .75rem;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-eco__card,
    .dominium-eco__core-ring {
        animation: none;
    }
    .dominium-eco__content > *,
    .dominium-eco__core,
    .dominium-eco__tab {
        transition: none;
    }
}

/* =======================================================================
   Boutons flottants (09/10/2026) : le bouton WhatsApp est retiré, le
   chatbot (components/public/chatbot-widget) prend sa place à gauche du
   bouton rond « haut de page » (components/public/back-to-top). Quand ce
   dernier est masqué, le chatbot glisse dans le coin.
   ======================================================================= */
.dominium-float {
    --float-gap: clamp(12px, 1.6vw, 28px);
    position: fixed;
    z-index: 999;
    right: var(--float-gap);
    bottom: var(--float-gap);
}
.dominium-float__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .18);
    transition: transform .3s var(--ease-natural), background-color .3s var(--ease-natural), color .3s var(--ease-natural), opacity .3s var(--ease-natural), visibility .3s;
}
.dominium-float__btn--top {
    border: 1px solid var(--color-border);
    background-color: var(--color-bg);
    color: var(--color-dark);
    font-size: 18px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px) scale(.8);
}
.dominium-float__btn--top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}
.dominium-float__btn--top:hover,
.dominium-float__btn--top:focus-visible {
    border-color: var(--color-dark);
    background-color: var(--color-dark);
    color: var(--color-primary);
    transform: translateY(-3px);
}

/* Chatbot : même ligne que le bouton « haut de page ». */
.dominium-chatbot .dominium-chatbot__toggle {
    right: var(--float-gap, clamp(12px, 1.6vw, 28px));
    bottom: clamp(12px, 1.6vw, 28px);
    width: 54px;
    height: 54px;
    transition: right .45s cubic-bezier(.16, 1, .3, 1), transform .3s var(--ease-natural), background-color .3s var(--ease-natural), color .3s var(--ease-natural), box-shadow .3s var(--ease-natural);
}
.dominium-top-visible .dominium-chatbot .dominium-chatbot__toggle {
    right: calc(clamp(12px, 1.6vw, 28px) + 54px + 10px);
}
.dominium-chatbot .dominium-chatbot__panel {
    right: clamp(12px, 1.6vw, 28px);
    bottom: calc(clamp(12px, 1.6vw, 28px) + 54px + 16px);
}
@media (max-width: 575px) {
    .dominium-chatbot .dominium-chatbot__toggle {
        right: 12px;
        bottom: 12px;
    }
    .dominium-top-visible .dominium-chatbot .dominium-chatbot__toggle {
        right: calc(12px + 54px + 10px);
    }
    .dominium-chatbot .dominium-chatbot__panel {
        right: 8px;
        bottom: calc(12px + 54px + 14px);
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-float__btn,
    .dominium-chatbot .dominium-chatbot__toggle {
        transition: none;
    }
}

/* =======================================================================
   Pied de page (09/10/2026) : photo en fond sous un voile sombre (le noir
   uni était trop dur), bande partenaires arrondie et dégradée.
   ======================================================================= */
.dominium-footer__main {
    position: relative;
    isolation: isolate;
    background:
        linear-gradient(180deg, rgba(28, 28, 28, .7) 0%, rgba(28, 28, 28, .78) 50%, rgba(28, 28, 28, .9) 100%),
        url('../img/slider/2.jpg') center 35% / cover no-repeat,
        var(--color-dark);
}
.dominium-footer__main::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(60% 50% at 50% 0%, rgba(255, 195, 0, .14), transparent 70%),
        radial-gradient(circle, rgba(255, 255, 255, .06) 1px, transparent 1.4px) 0 0 / 22px 22px;
    pointer-events: none;
}
.dominium-footer__partners {
    position: relative;
    overflow: hidden;
    border-radius: clamp(20px, 2vw, 32px);
    background: linear-gradient(115deg, var(--color-primary) 0%, var(--color-primary-light) 50%, var(--color-primary) 100%);
    box-shadow: 0 30px 70px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .45);
}
/* Reflet qui balaie lentement la bande. */
.dominium-footer__partners::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%);
    transform: translateX(-100%);
    animation: dominium-footer-shine 7s ease-in-out infinite;
    pointer-events: none;
}
@keyframes dominium-footer-shine {
    0%, 55% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-footer__partners::after {
        animation: none;
        display: none;
    }
}

/* =======================================================================
   PAGE /realisations (maquette client du 04/10/2026, style "Gymo").
   ======================================================================= */

/* --- Hero encadré --- */
.dominium-works-hero {
    position: relative;
    padding: clamp(16px, 2vw, 32px) clamp(12px, 2.4vw, 48px) 0;
}
.dominium-works-hero__frame {
    position: relative;
    padding: clamp(80px, 8vw, 150px) 0 clamp(140px, 12vw, 220px);
    background-color: var(--color-dark);
    overflow: hidden;
    isolation: isolate;
}
.dominium-works-hero__bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background-size: cover;
    background-position: center 30%;
    animation: dominium-xp-pan 24s ease-in-out infinite alternate;
}
.dominium-works-hero__frame::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(100deg, rgba(28, 28, 28, .94) 0%, rgba(28, 28, 28, .8) 42%, rgba(28, 28, 28, .25) 75%, rgba(255, 195, 0, .35) 100%);
}
.dominium-works-hero__frame::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    width: 38%;
    height: 100%;
    background: repeating-linear-gradient(-60deg, transparent 0 46px, rgba(255, 195, 0, .18) 46px 48px);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%);
    mask-image: linear-gradient(90deg, transparent, #000 60%);
}
.dominium-works-hero__content {
    max-width: 760px;
    color: var(--color-text-on-dark);
}
.dominium-works-hero__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2.5rem, 1.4rem + 3.4vw, 4.75rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.02;
    color: var(--color-text-on-dark);
}
.dominium-works-hero__text {
    max-width: 560px;
    margin: 0 0 var(--space-7);
    font-size: clamp(1.0625rem, .95rem + .4vw, 1.3125rem);
    line-height: 1.7;
    color: rgba(255, 255, 255, .8);
}
.dominium-works-hero__badge {
    position: absolute;
    top: 50%;
    right: clamp(24px, 10vw, 220px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: clamp(130px, 12vw, 200px);
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: translateY(-60%);
    box-shadow: 0 0 0 14px rgba(255, 195, 0, .25), 0 0 0 30px rgba(255, 195, 0, .1);
    animation: dominium-works-pulse 3s ease-in-out infinite;
}
.dominium-works-hero__badge strong {
    font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.5rem);
    font-weight: 900;
    line-height: 1;
}
.dominium-works-hero__badge small {
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
@keyframes dominium-works-pulse {
    0%, 100% { box-shadow: 0 0 0 14px rgba(255, 195, 0, .25), 0 0 0 30px rgba(255, 195, 0, .1); }
    50% { box-shadow: 0 0 0 20px rgba(255, 195, 0, .18), 0 0 0 42px rgba(255, 195, 0, .06); }
}

/* --- Filtres à pastilles rondes --- */
.dominium-works-filters {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    margin: calc(clamp(110px, 9vw, 170px) * -1) auto 0;
    max-width: 1180px;
    padding: var(--space-6) var(--space-5);
    background-color: var(--color-dark);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .25);
}
.dominium-works-filters__item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: var(--space-4) var(--space-3) var(--space-7);
    text-align: center;
    color: var(--color-text-on-dark);
    transition: background-color .35s var(--ease-natural);
}
.dominium-works-filters__item + .dominium-works-filters__item::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 0;
    height: 60%;
    width: 1px;
    background-color: var(--color-border-on-dark);
}
.dominium-works-filters__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    margin-bottom: var(--space-3);
    border-radius: 50%;
    border: 4px solid var(--color-dark);
    outline: 2px solid var(--color-primary);
    background-color: var(--color-bg);
    color: var(--color-dark);
    font-size: 28px;
    transition: transform .45s var(--ease-natural), background-color .35s var(--ease-natural);
}
.dominium-works-filters__item strong {
    font-size: 1.125rem;
    font-weight: 800;
    line-height: 1.25;
}
.dominium-works-filters__item small {
    font-size: .875rem;
    color: var(--color-text-muted-on-dark);
}
.dominium-works-filters__go {
    position: absolute;
    left: 50%;
    bottom: -18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin-left: -18px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 13px;
    transition: transform .35s var(--ease-natural);
}
.dominium-works-filters__item:hover,
.dominium-works-filters__item:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-works-filters__item:hover .dominium-works-filters__icon {
    transform: translateY(-4px) rotate(-6deg);
}
.dominium-works-filters__item:hover .dominium-works-filters__go {
    transform: rotate(-45deg);
}
.dominium-works-filters__item.is-active .dominium-works-filters__icon {
    background-color: var(--color-primary);
}
.dominium-works-filters__item.is-active strong {
    color: var(--color-primary);
}

.dominium-works-hero.js-reveal .dominium-works-hero__content > *,
.dominium-works-hero.js-reveal .dominium-works-filters__item {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-works-hero.js-reveal .dominium-works-hero__badge {
    opacity: 0;
    scale: .4;
}
.dominium-works-hero__content > * {
    transition: opacity .9s var(--ease-natural), transform 1s var(--ease-natural);
}
.dominium-works-hero.js-reveal .dominium-works-filters__item {
    transition: opacity .8s var(--ease-natural) calc(.4s + var(--i, 0) * .1s), transform .9s var(--ease-natural) calc(.4s + var(--i, 0) * .1s), background-color .35s;
}
.dominium-works-hero__badge {
    transition: opacity .8s var(--ease-natural) .5s, scale 1.1s cubic-bezier(.34, 1.4, .64, 1) .5s;
}
.dominium-works-hero.is-inview .dominium-works-hero__content > :nth-child(2) { transition-delay: .08s; }
.dominium-works-hero.is-inview .dominium-works-hero__content > :nth-child(3) { transition-delay: .16s; }
.dominium-works-hero.is-inview .dominium-works-hero__content > :nth-child(4) { transition-delay: .24s; }
.dominium-works-hero.is-inview .dominium-works-hero__content > :nth-child(5) { transition-delay: .32s; }
.dominium-works-hero.is-inview .dominium-works-hero__content > *,
.dominium-works-hero.is-inview .dominium-works-filters__item {
    opacity: 1;
    transform: none;
}
.dominium-works-hero.is-inview .dominium-works-hero__badge {
    opacity: 1;
    scale: 1;
}

/* --- Démarche --- */
.dominium-works-intro {
    position: relative;
    padding: var(--space-9) 0;
    overflow: hidden;
}
.dominium-works-intro__eyebrow {
    position: relative;
    margin: 0 0 var(--space-2);
    padding-left: var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.dominium-works-intro__eyebrow::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 220%;
    background-color: var(--color-primary);
}
.dominium-works-intro__title {
    margin: 0 0 var(--space-5);
    padding-left: var(--space-4);
    font-size: clamp(2rem, 1.3rem + 1.8vw, 3.25rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.05;
}
.dominium-works-intro__text {
    max-width: 560px;
    margin: 0 0 var(--space-6);
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--color-text-muted);
}
.dominium-works-intro__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: var(--space-5);
}
.dominium-works-intro__tabs button {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 12px 20px;
    border: 0;
    background-color: var(--color-surface);
    color: var(--color-text);
    font-size: .9375rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural);
}
.dominium-works-intro__tabs button.active {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-works-intro__tabs button.active::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    border: 8px solid transparent;
    border-bottom: 0;
    border-top-color: var(--color-primary);
    transform: translateX(-50%);
}
.dominium-works-intro__panes p {
    max-width: 560px;
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text-muted);
}
.dominium-works-intro__visual {
    position: relative;
    width: min(100%, 520px);
    aspect-ratio: 1;
    margin: var(--space-7) auto 0;
}
.dominium-works-intro__ring {
    position: absolute;
    border-radius: 50%;
    border: 2px solid var(--color-border);
}
.dominium-works-intro__ring--1 { inset: 0; border-style: dashed; animation: dominium-badge-spin 50s linear infinite; }
.dominium-works-intro__ring--2 { inset: 7%; }
.dominium-works-intro__ring--3 { inset: 14%; border: 0; background: radial-gradient(circle, var(--color-surface) 60%, transparent 61%); }
.dominium-works-intro__disc {
    position: absolute;
    inset: 20%;
    overflow: hidden;
    border-radius: 50%;
    border: 10px solid var(--color-primary);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .18);
}
.dominium-works-intro__disc img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-works-intro__visual:hover .dominium-works-intro__disc img {
    transform: scale(1.08);
}
.dominium-works-intro__chip {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 10px 16px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-size: .875rem;
    font-weight: 700;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .2);
    animation: dominium-eco-float 5s ease-in-out infinite;
}
.dominium-works-intro__chip i {
    color: var(--color-primary);
}
.dominium-works-intro__chip--a { top: 16%; left: 0; }
.dominium-works-intro__chip--b { bottom: 14%; right: 0; animation-delay: 1.5s; }
.dominium-works-intro.js-reveal .col-lg-6:first-child > *,
.dominium-works-intro.js-reveal .dominium-works-intro__visual {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-works-intro .col-lg-6:first-child > *,
.dominium-works-intro__visual {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-works-intro.is-inview .col-lg-6:first-child > :nth-child(2) { transition-delay: .08s; }
.dominium-works-intro.is-inview .col-lg-6:first-child > :nth-child(3) { transition-delay: .16s; }
.dominium-works-intro.is-inview .col-lg-6:first-child > :nth-child(4) { transition-delay: .24s; }
.dominium-works-intro.is-inview .col-lg-6:first-child > :nth-child(5) { transition-delay: .3s; }
.dominium-works-intro.is-inview .dominium-works-intro__visual { transition-delay: .25s; }
.dominium-works-intro.is-inview .col-lg-6:first-child > *,
.dominium-works-intro.is-inview .dominium-works-intro__visual {
    opacity: 1;
    transform: none;
}

/* --- Section noire à traits diagonaux + cartes --- */
.dominium-works-grid {
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
    isolation: isolate;
}
.dominium-works-grid::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(-55deg, transparent 47%, rgba(255, 195, 0, .55) 47.2%, rgba(255, 195, 0, .55) 47.6%, transparent 47.8%) 0 0 / 520px 520px,
        linear-gradient(-55deg, transparent 49%, rgba(255, 255, 255, .06) 49.2%, rgba(255, 255, 255, .06) 49.6%, transparent 49.8%) 160px 90px / 380px 380px;
    -webkit-mask-image: radial-gradient(80% 70% at 50% 50%, transparent 30%, #000 75%);
    mask-image: radial-gradient(80% 70% at 50% 50%, transparent 30%, #000 75%);
    animation: dominium-works-lines 30s linear infinite;
}
@keyframes dominium-works-lines {
    to { background-position: 520px -520px, 540px -290px; }
}
.dominium-works-grid__header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
    align-items: center;
    margin-bottom: var(--space-8);
}
.dominium-works-grid__title {
    position: relative;
    margin: 0;
    padding-left: var(--space-5);
    font-size: clamp(2rem, 1.3rem + 1.8vw, 3.25rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.05;
    color: var(--color-text-on-dark);
}
.dominium-works-grid__title::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background-color: var(--color-primary);
}
.dominium-works-grid__text {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text-muted-on-dark);
}
.dominium-works-grid__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 32px);
}
.dominium-work-card__link {
    position: relative;
    display: block;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: var(--radius-md);
    color: var(--color-text-on-dark);
    isolation: isolate;
}
.dominium-work-card__link:hover,
.dominium-work-card__link:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-work-card__img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-work-card__shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(28, 28, 28, .05) 25%, rgba(28, 28, 28, .6) 55%, rgba(28, 28, 28, .95) 100%);
    transition: background-color .5s var(--ease-natural);
}
.dominium-work-card__link:hover .dominium-work-card__img {
    transform: scale(1.08);
}
.dominium-work-card__link:hover .dominium-work-card__shade {
    background-color: rgba(0, 0, 0, .35);
}
.dominium-work-card__index {
    position: absolute;
    top: 18px;
    right: 20px;
    font-size: 3rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255, 255, 255, .7);
}
.dominium-work-card__body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: clamp(20px, 2vw, 32px);
}
.dominium-work-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: var(--space-2);
    border-radius: 50%;
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
    font-size: 22px;
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural);
}
.dominium-work-card__link:hover .dominium-work-card__icon {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-work-card__category {
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.dominium-work-card__title {
    position: relative;
    padding-bottom: var(--space-3);
    font-size: clamp(1.25rem, 1rem + .7vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
}
.dominium-work-card__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40px;
    height: 3px;
    background-color: var(--color-primary);
    transition: width .5s var(--ease-natural);
}
.dominium-work-card__link:hover .dominium-work-card__title::after {
    width: 90px;
}
/* Détails révélés au survol (toujours visibles au clavier / tactile). */
.dominium-work-card__excerpt,
.dominium-work-card__tech,
.dominium-work-card__more {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height .6s var(--ease-natural), opacity .5s var(--ease-natural);
}
.dominium-work-card__excerpt {
    font-size: .9375rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .82);
}
.dominium-work-card__tech {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.dominium-work-card__tech span {
    padding: 3px 10px;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: var(--radius-pill);
    font-size: .75rem;
}
.dominium-work-card__more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-weight: 700;
    color: var(--color-primary);
}
.dominium-work-card__link:hover .dominium-work-card__excerpt,
.dominium-work-card__link:focus-visible .dominium-work-card__excerpt,
.dominium-work-card__link:hover .dominium-work-card__tech,
.dominium-work-card__link:focus-visible .dominium-work-card__tech,
.dominium-work-card__link:hover .dominium-work-card__more,
.dominium-work-card__link:focus-visible .dominium-work-card__more {
    max-height: 160px;
    opacity: 1;
}
@media (hover: none) {
    .dominium-work-card__excerpt,
    .dominium-work-card__more {
        max-height: 160px;
        opacity: 1;
    }
}
.dominium-works-grid__empty {
    grid-column: 1 / -1;
    margin: 0;
    text-align: center;
    color: var(--color-text-muted-on-dark);
}
.dominium-works-grid__pagination {
    margin-top: var(--space-7);
    text-align: center;
}
.dominium-works-grid.js-reveal .dominium-works-grid__header,
.dominium-works-grid.js-reveal .dominium-work-card {
    opacity: 0;
    transform: translateY(40px);
}
.dominium-works-grid__header {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-works-grid.js-reveal .dominium-work-card {
    transition: opacity .8s var(--ease-natural) calc(.15s + var(--i, 0) * .12s), transform .9s var(--ease-natural) calc(.15s + var(--i, 0) * .12s);
}
.dominium-works-grid.is-inview .dominium-works-grid__header,
.dominium-works-grid.is-inview .dominium-work-card {
    opacity: 1;
    transform: none;
}

@media (max-width: 991px) {
    .dominium-works-grid__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dominium-works-grid__header {
        grid-template-columns: 1fr;
    }
    .dominium-works-hero__badge {
        display: none;
    }
}
@media (max-width: 575px) {
    .dominium-works-grid__cards {
        grid-template-columns: 1fr;
    }
    .dominium-works-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: var(--space-6);
        padding: var(--space-5) var(--space-3) var(--space-7);
    }
    .dominium-works-filters__item + .dominium-works-filters__item::before {
        display: none;
    }
    .dominium-works-filters__icon {
        width: 60px;
        height: 60px;
        font-size: 22px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-works-hero__bg,
    .dominium-works-hero__badge,
    .dominium-works-grid::before,
    .dominium-works-intro__ring--1,
    .dominium-works-intro__chip {
        animation: none;
    }
    .dominium-works-hero__content > *,
    .dominium-works-filters__item,
    .dominium-works-intro .col-lg-6:first-child > *,
    .dominium-works-intro__visual,
    .dominium-works-grid__header,
    .dominium-work-card,
    .dominium-work-card__img {
        transition: none;
    }
}

/* =======================================================================
   FICHE RÉALISATION /realisations/{slug} — compléments (composants de
   /realisations, /a-propos et de l'accueil réutilisés).
   ======================================================================= */
.dominium-case-hero__badge {
    font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4.5rem);
}
.dominium-case-hero .dominium-works-hero__title {
    max-width: 900px;
}
.dominium-case-facts {
    margin-bottom: 0;
}
.dominium-case-facts .dominium-works-filters__item {
    padding-bottom: var(--space-4);
}
.dominium-case-facts dt {
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.dominium-case-facts dd {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--color-text-on-dark);
}
.dominium-case-story {
    padding-top: var(--space-9);
}
.dominium-case-story .dominium-story__subtitle {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
.dominium-case-story__step {
    position: absolute;
    z-index: 1;
    left: -18px;
    bottom: -18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 1.75rem;
    font-weight: 900;
    letter-spacing: -0.03em;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .18);
}
.dominium-story__row--reverse .dominium-case-story__step {
    left: auto;
    right: -18px;
}
.dominium-case-story__label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0 0 var(--space-3);
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-case-story__label i {
    color: var(--color-primary);
}
.dominium-case-story__text p {
    margin: 0 0 var(--space-4);
}
.dominium-case-story__text code {
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background-color: rgba(255, 195, 0, .18);
    color: var(--color-text);
    font-family: inherit;
    font-size: .92em;
}
.dominium-case-story__tech {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-case-story__tech li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    border-left: 4px solid var(--color-primary);
    background-color: var(--color-surface);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--color-text);
    transition: transform .3s var(--ease-natural);
}
.dominium-case-story__tech li:hover {
    transform: translateX(6px);
}
.dominium-case-story__tech i {
    margin-top: 4px;
    color: var(--color-primary);
}

/* Navigateur simulé. */
.dominium-case-browser {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    border-radius: var(--radius-md);
    background-color: #1C1C1C;
    box-shadow: 0 40px 90px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .08);
    overflow: hidden;
}
.dominium-case-browser__bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 18px;
    background-color: #262626;
}
.dominium-case-browser__bar span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .25);
}
.dominium-case-browser__bar span:first-child {
    background-color: var(--color-primary);
}
.dominium-case-browser__bar p {
    flex: 1;
    max-width: 460px;
    margin: 0 auto;
    padding: 6px 16px;
    border-radius: var(--radius-pill);
    background-color: rgba(255, 255, 255, .08);
    font-size: .875rem;
    text-align: center;
    color: var(--color-text-muted-on-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dominium-case-browser__screen {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.dominium-case-browser__screen img,
.dominium-case-browser__screen iframe,
.dominium-case-browser__screen video {
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
    object-position: top;
}
/* Survol : la capture défile lentement vers le bas, comme un visiteur. */
.dominium-case-browser__screen img {
    transition: object-position 6s ease-in-out;
}
.dominium-case-browser:hover .dominium-case-browser__screen img {
    object-position: bottom;
}
.dominium-case-browser__cta {
    position: absolute;
    right: 24px;
    bottom: 24px;
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    padding: 14px 22px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-weight: 700;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .35);
    transition: transform .3s var(--ease-natural);
}
.dominium-case-browser__cta:hover,
.dominium-case-browser__cta:focus-visible {
    color: var(--color-dark);
    transform: translateY(-3px);
}
.dominium-case-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--space-4);
    max-width: 1100px;
    margin: var(--space-7) auto 0;
}
.dominium-case-gallery__item {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--radius-sm);
}
.dominium-case-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease-natural);
}
.dominium-case-gallery__item span {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(0, 0, 0, .55);
    color: var(--color-primary);
    font-size: 28px;
    opacity: 0;
    transition: opacity .4s var(--ease-natural);
}
.dominium-case-gallery__item:hover img {
    transform: scale(1.08);
}
.dominium-case-gallery__item:hover span {
    opacity: 1;
}
.dominium-case-showcase.js-reveal .dominium-case-browser {
    opacity: 0;
    transform: translateY(60px) scale(.96);
}
.dominium-case-browser {
    transition: opacity 1s var(--ease-natural) .2s, transform 1.1s var(--ease-natural) .2s;
}
.dominium-case-showcase.is-inview .dominium-case-browser {
    opacity: 1;
    transform: none;
}
.dominium-case-related {
    padding: var(--space-9) 0 var(--space-6);
}
.dominium-case-related.js-reveal .dominium-work-card {
    opacity: 0;
    transform: translateY(40px);
}
.dominium-case-related .dominium-work-card {
    transition: opacity .8s var(--ease-natural) calc(.15s + var(--i, 0) * .12s), transform .9s var(--ease-natural) calc(.15s + var(--i, 0) * .12s);
}
.dominium-case-related.is-inview .dominium-work-card {
    opacity: 1;
    transform: none;
}
@media (max-width: 767px) {
    .dominium-case-browser__cta {
        position: static;
        display: flex;
        justify-content: center;
    }
    .dominium-case-story__step {
        width: 56px;
        height: 56px;
        font-size: 1.25rem;
        left: 8px;
        bottom: -14px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-case-browser,
    .dominium-case-browser__screen img,
    .dominium-case-related .dominium-work-card,
    .dominium-case-story__tech li {
        transition: none;
    }
}

/* -----------------------------------------------------------------------
   Carrousel de projets (retour client du 04/10/2026) : 3 cartes plus
   compactes sur une ligne, flèches carrées de "Nos experts".
   ----------------------------------------------------------------------- */
.dominium-works-slider.slick-initialized {
    display: block;
    margin: 0 calc(clamp(16px, 2vw, 32px) / -2);
}
.dominium-works-slider .slick-slide {
    padding: 0 calc(clamp(16px, 2vw, 32px) / 2);
}
.dominium-works-slider .dominium-work-card__link {
    aspect-ratio: 5 / 4;
}
.dominium-works-slider .dominium-work-card__body {
    padding: clamp(18px, 1.6vw, 26px);
}
.dominium-works-slider .dominium-work-card__title {
    font-size: clamp(1.125rem, .95rem + .45vw, 1.375rem);
}
.dominium-works-slider .dominium-work-card__index {
    font-size: 2.25rem;
}
.dominium-works-slider .dominium-work-card__icon {
    width: 44px;
    height: 44px;
    font-size: 18px;
}
.dominium-works-nav {
    margin-top: var(--space-7);
    padding-right: 0;
}
.dominium-works-grid .dominium-works-nav .dominium-team-showcase__arrow--prev {
    background-color: var(--color-bg);
    color: var(--color-dark);
}
.dominium-works-grid .dominium-works-nav .dominium-team-showcase__arrow--prev:hover {
    background-color: var(--color-primary);
}


/* =======================================================================
   Bandeau de titre des pages secondaires (components/public/breadcrumb,
   v2 du 04/10/2026) : texte à gauche, visuel en parallélogramme à
   droite, bas droit souligné d'une barre jaune.
   ======================================================================= */
.dominium-page-hero {
    position: relative;
    padding: clamp(56px, 5vw, 96px) 0 clamp(64px, 6vw, 110px);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
    isolation: isolate;
}
.dominium-page-hero__glow {
    position: absolute;
    z-index: -1;
    top: -30%;
    left: 40%;
    width: 50%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 195, 0, .22), transparent 65%);
    animation: dominium-page-glow 10s ease-in-out infinite alternate;
}
@keyframes dominium-page-glow {
    from { transform: translate(0, 0) scale(1); }
    to { transform: translate(10%, 12%) scale(1.15); }
}
.dominium-page-hero__curtain {
    position: absolute;
    inset: 0;
    z-index: 5;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: right;
    pointer-events: none;
}
.dominium-page-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(32px, 5vw, 96px);
}
.dominium-page-hero__crumbs {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
    padding: 8px 18px;
    border: 1px solid var(--color-border-on-dark);
    border-radius: var(--radius-pill);
    background-color: rgba(255, 255, 255, .04);
    font-size: .875rem;
    font-weight: 600;
    color: var(--color-text-muted-on-dark);
}
.dominium-page-hero__crumbs a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text-on-dark);
    transition: color .25s var(--ease-natural);
}
.dominium-page-hero__crumbs a:hover,
.dominium-page-hero__crumbs a:focus-visible {
    color: var(--color-primary);
}
.dominium-page-hero__crumbs > i {
    font-size: .625rem;
    color: var(--color-primary);
}
.dominium-page-hero__crumbs span {
    color: var(--color-primary);
}
.dominium-page-hero__title {
    position: relative;
    margin: 0 0 var(--space-5);
    padding-top: var(--space-5);
    overflow: hidden;
    font-size: clamp(2.75rem, 1.4rem + 4.4vw, 6rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1;
    color: var(--color-text-on-dark);
}
.dominium-page-hero__title::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 72px;
    height: 4px;
    background-color: var(--color-primary);
    transform-origin: left;
    transition: transform .7s cubic-bezier(.77, 0, .18, 1) .85s;
}
.dominium-page-hero__title span {
    display: inline-block;
}
.dominium-page-hero__subtitle {
    max-width: 520px;
    margin: 0 0 var(--space-7);
    font-size: clamp(1.0625rem, .95rem + .45vw, 1.375rem);
    line-height: 1.6;
    color: rgba(255, 255, 255, .78);
}
.dominium-page-hero__scroll {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text-muted-on-dark);
}
.dominium-page-hero__scroll:hover,
.dominium-page-hero__scroll:focus-visible {
    color: var(--color-primary);
}
.dominium-page-hero__mouse {
    position: relative;
    width: 24px;
    height: 38px;
    border: 2px solid currentColor;
    border-radius: 14px;
}
.dominium-page-hero__mouse span {
    position: absolute;
    top: 6px;
    left: 50%;
    width: 4px;
    height: 8px;
    margin-left: -2px;
    border-radius: 2px;
    background-color: var(--color-primary);
    animation: dominium-page-mouse 1.8s ease-in-out infinite;
}
@keyframes dominium-page-mouse {
    0% { transform: translateY(0); opacity: 1; }
    70% { transform: translateY(12px); opacity: 0; }
    100% { transform: translateY(0); opacity: 0; }
}

/* Visuel : photo en parallélogramme sur bloc jaune. */
.dominium-page-hero__visual {
    position: relative;
    height: clamp(260px, 24vw, 420px);
}
.dominium-page-hero__dots {
    position: absolute;
    top: -24px;
    right: -10px;
    width: 46%;
    height: 60%;
    background-image: radial-gradient(circle, rgba(255, 255, 255, .28) 1.2px, transparent 1.5px);
    background-size: 14px 14px;
}
.dominium-page-hero__block {
    position: absolute;
    top: 26px;
    left: 4%;
    right: 10%;
    bottom: -26px;
    background-color: var(--color-primary);
    clip-path: polygon(16% 0, 100% 0, 84% 100%, 0 100%);
}
.dominium-page-hero__frame {
    position: absolute;
    inset: 0 0 0 12%;
    overflow: hidden;
    clip-path: polygon(16% 0, 100% 0, 84% 100%, 0 100%);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .4);
}
.dominium-page-hero__frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation: dominium-page-kenburns 18s ease-in-out infinite alternate;
}
@keyframes dominium-page-kenburns {
    from { transform: scale(1.04); }
    to { transform: scale(1.14) translateX(-2%); }
}
.dominium-page-hero__badge {
    position: absolute;
    z-index: 2;
    left: 0;
    bottom: 8%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(100px, 8.5vw, 140px);
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: clamp(18px, 1.6vw, 26px);
    box-shadow: 0 0 0 6px rgba(255, 195, 0, .9), 0 20px 40px rgba(0, 0, 0, .45);
}
.dominium-page-hero__badge svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    animation: dominium-badge-spin 16s linear infinite;
}
.dominium-page-hero__badge text {
    fill: var(--color-text-on-dark);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.4px;
}
.dominium-page-hero__bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--color-primary) 0 68%, rgba(255, 195, 0, .3) 68% 100%);
    transform-origin: left;
}

/* --- Ouverture --- */
.dominium-page-hero.js-reveal .dominium-page-hero__curtain {
    transform: scaleX(1);
}
.dominium-page-hero.js-reveal .dominium-page-hero__crumbs,
.dominium-page-hero.js-reveal .dominium-page-hero__subtitle,
.dominium-page-hero.js-reveal .dominium-page-hero__scroll {
    opacity: 0;
    transform: translateY(20px);
}
.dominium-page-hero.js-reveal .dominium-page-hero__title::before,
.dominium-page-hero.js-reveal .dominium-page-hero__bar {
    transform: scaleX(0);
}
.dominium-page-hero.js-reveal .dominium-page-hero__title span {
    transform: translateY(110%);
}
.dominium-page-hero.js-reveal .dominium-page-hero__frame {
    clip-path: polygon(16% 0, 16% 0, 0 100%, 0 100%);
}
.dominium-page-hero.js-reveal .dominium-page-hero__block {
    opacity: 0;
    transform: translate(40px, -30px);
}
.dominium-page-hero.js-reveal .dominium-page-hero__dots {
    opacity: 0;
}
.dominium-page-hero.js-reveal .dominium-page-hero__badge {
    opacity: 0;
    transform: scale(.3) rotate(-120deg);
}
.dominium-page-hero__curtain {
    transition: transform .9s cubic-bezier(.77, 0, .18, 1) .05s;
}
.dominium-page-hero__crumbs {
    transition: opacity .7s var(--ease-natural) .7s, transform .8s var(--ease-natural) .7s;
}
.dominium-page-hero__title span {
    transition: transform 1s cubic-bezier(.16, 1, .3, 1) .9s;
}
.dominium-page-hero__subtitle {
    transition: opacity .8s var(--ease-natural) 1.1s, transform .9s var(--ease-natural) 1.1s;
}
.dominium-page-hero__scroll {
    transition: opacity .8s var(--ease-natural) 1.3s, transform .9s var(--ease-natural) 1.3s;
}
.dominium-page-hero__frame {
    transition: clip-path 1.2s cubic-bezier(.77, 0, .18, 1) .8s;
}
.dominium-page-hero__block {
    transition: opacity .8s var(--ease-natural) 1.2s, transform 1s var(--ease-natural) 1.2s;
}
.dominium-page-hero__dots {
    transition: opacity 1s var(--ease-natural) 1.4s;
}
.dominium-page-hero__badge {
    transition: opacity .7s var(--ease-natural) 1.5s, transform 1.1s cubic-bezier(.34, 1.4, .64, 1) 1.5s;
}
.dominium-page-hero__bar {
    transition: transform 1.4s cubic-bezier(.77, 0, .18, 1) 1s;
}
.dominium-page-hero.is-inview .dominium-page-hero__curtain {
    transform: scaleX(0);
}
.dominium-page-hero.is-inview .dominium-page-hero__crumbs,
.dominium-page-hero.is-inview .dominium-page-hero__subtitle,
.dominium-page-hero.is-inview .dominium-page-hero__scroll,
.dominium-page-hero.is-inview .dominium-page-hero__title span,
.dominium-page-hero.is-inview .dominium-page-hero__block,
.dominium-page-hero.is-inview .dominium-page-hero__badge {
    opacity: 1;
    transform: none;
}
.dominium-page-hero.is-inview .dominium-page-hero__title::before,
.dominium-page-hero.is-inview .dominium-page-hero__bar {
    transform: none;
}
.dominium-page-hero.is-inview .dominium-page-hero__frame {
    clip-path: polygon(16% 0, 100% 0, 84% 100%, 0 100%);
}
.dominium-page-hero.is-inview .dominium-page-hero__dots {
    opacity: 1;
}

@media (max-width: 991px) {
    .dominium-page-hero__inner {
        grid-template-columns: 1fr;
    }
    .dominium-page-hero__visual {
        height: 240px;
        margin: var(--space-4) 0 var(--space-5);
    }
    .dominium-page-hero__scroll {
        display: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-page-hero__glow,
    .dominium-page-hero__frame img,
    .dominium-page-hero__badge svg,
    .dominium-page-hero__mouse span {
        animation: none;
    }
    .dominium-page-hero__curtain {
        display: none;
    }
    .dominium-page-hero__crumbs,
    .dominium-page-hero__title span,
    .dominium-page-hero__title::before,
    .dominium-page-hero__subtitle,
    .dominium-page-hero__scroll,
    .dominium-page-hero__frame,
    .dominium-page-hero__block,
    .dominium-page-hero__dots,
    .dominium-page-hero__badge,
    .dominium-page-hero__bar {
        transition: none;
    }
}


/* =======================================================================
   Menu : page active (li.is-current) et survol — trait jaune animé sous
   le lien + petit losange, glissement du trait au survol.
   ======================================================================= */
.atf-main-menu > nav > ul > li > a {
    position: relative;
}
.atf-main-menu > nav > ul > li > a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 18px;
    height: 3px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .45s cubic-bezier(.77, 0, .18, 1);
}
.atf-main-menu > nav > ul > li:hover > a::after,
.atf-main-menu > nav > ul > li > a:focus-visible::after {
    transform: scaleX(1);
    transform-origin: left;
}
.atf-main-menu > nav > ul > li.is-current > a {
    font-weight: 700;
    color: var(--color-dark) !important;
}
.atf-main-menu > nav > ul > li.is-current > a::after {
    transform: scaleX(1);
}
.atf-main-menu > nav > ul > li.is-current > a::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 12px;
    width: 7px;
    height: 7px;
    margin-left: -3.5px;
    background-color: var(--color-dark);
    transform: rotate(45deg);
}
/* Tiroir mobile : page active en jaune sur fond noir. */
.atf-hamburger-menu li.is-current > a {
    border-left: 3px solid var(--color-primary);
    padding-left: 12px;
    font-weight: 700;
}
@media (prefers-reduced-motion: reduce) {
    .atf-main-menu > nav > ul > li > a::after,
    .atf-main-menu > nav > ul > li.is-current > a::after,
    .atf-main-menu > nav > ul > li.is-current > a::before {
        animation: none;
        transition: none;
    }
}

/* =======================================================================
   /a-propos — "Pourquoi choisir Dominium" (refait le 04/10/2026).
   ======================================================================= */
.dominium-why {
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-surface);
    overflow: hidden;
}
.dominium-why__aside {
    position: sticky;
    top: 120px;
    padding-right: var(--space-6);
    padding-bottom: var(--space-6);
}
.dominium-why__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text);
}
.dominium-why__eyebrow::before {
    content: "";
    width: 40px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-why__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2rem, 1.3rem + 1.8vw, 3.25rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.08;
}
.dominium-why__text {
    margin: 0 0 var(--space-7);
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--color-text-muted);
}
.dominium-why__media {
    position: relative;
    margin: 0 var(--space-6) var(--space-6) var(--space-5);
}
.dominium-why__media-block {
    position: absolute;
    top: 24px;
    left: -24px;
    right: 24px;
    bottom: -24px;
    background-color: var(--color-primary);
}
.dominium-why__media-frame {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}
.dominium-why__media-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-why__media:hover .dominium-why__media-frame img {
    transform: scale(1.06);
}
.dominium-why__years {
    position: absolute;
    right: -24px;
    bottom: -40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: clamp(120px, 10vw, 150px);
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    text-align: center;
    box-shadow: 0 20px 40px rgba(0, 0, 0, .25);
}
.dominium-why__years strong {
    font-size: clamp(2rem, 1.4rem + 1.4vw, 2.75rem);
    font-weight: 900;
    line-height: 1;
    color: var(--color-primary);
}
.dominium-why__years .counter-number {
    font: inherit;
    color: inherit;
}
.dominium-why__years small {
    max-width: 90px;
    margin-top: 4px;
    font-size: .75rem;
    line-height: 1.25;
    color: var(--color-text-muted-on-dark);
}
.dominium-why__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-why__item {
    position: relative;
    padding: clamp(24px, 2.4vw, 36px);
    background-color: var(--color-bg);
    border-bottom: 3px solid transparent;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .05);
    overflow: hidden;
    transition: transform .4s var(--ease-natural), border-color .4s var(--ease-natural), box-shadow .4s var(--ease-natural);
}
.dominium-why__item::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-color: var(--color-dark);
    transform: translateY(101%);
    transition: transform .5s cubic-bezier(.77, 0, .18, 1);
}
.dominium-why__item > * {
    position: relative;
    z-index: 1;
}
.dominium-why__item:hover {
    transform: translateY(-6px);
    border-bottom-color: var(--color-primary);
    box-shadow: 0 24px 50px rgba(0, 0, 0, .12);
}
.dominium-why__item:hover::before {
    transform: none;
}
.dominium-why__number {
    position: absolute;
    top: 16px;
    right: 20px;
    font-size: 2.5rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(0, 0, 0, .15);
    transition: -webkit-text-stroke-color .4s var(--ease-natural);
}
.dominium-why__item:hover .dominium-why__number {
    -webkit-text-stroke-color: rgba(255, 195, 0, .7);
}
.dominium-why__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: var(--space-5);
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 24px;
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural), transform .5s var(--ease-natural);
}
.dominium-why__item:hover .dominium-why__icon {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: rotate(-8deg);
}
.dominium-why__item-title {
    margin: 0 0 var(--space-3);
    font-size: clamp(1.125rem, .95rem + .45vw, 1.375rem);
    font-weight: 800;
    letter-spacing: -0.01em;
    transition: color .4s var(--ease-natural);
}
.dominium-why__item-text {
    margin: 0;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-text-muted);
    transition: color .4s var(--ease-natural);
}
.dominium-why__item:hover .dominium-why__item-title {
    color: var(--color-text-on-dark);
}
.dominium-why__item:hover .dominium-why__item-text {
    color: var(--color-text-muted-on-dark);
}
.dominium-why.js-reveal .dominium-why__aside > * {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-why.js-reveal .dominium-why__item {
    opacity: 0;
    transform: translateY(36px);
}
.dominium-why__aside > * {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-why.js-reveal .dominium-why__item {
    transition: opacity .8s var(--ease-natural) calc(.2s + var(--i, 0) * .08s), transform .9s var(--ease-natural) calc(.2s + var(--i, 0) * .08s), border-color .4s, box-shadow .4s;
}
.dominium-why.is-inview .dominium-why__aside > :nth-child(2) { transition-delay: .08s; }
.dominium-why.is-inview .dominium-why__aside > :nth-child(3) { transition-delay: .16s; }
.dominium-why.is-inview .dominium-why__aside > :nth-child(4) { transition-delay: .26s; }
.dominium-why.is-inview .dominium-why__aside > *,
.dominium-why.is-inview .dominium-why__item {
    opacity: 1;
    transform: none;
}
.dominium-why.is-inview .dominium-why__item:hover {
    transform: translateY(-6px);
    transition-delay: 0s;
}
@media (max-width: 991px) {
    .dominium-why__aside {
        position: static;
        padding-right: 0;
        margin-bottom: var(--space-8);
    }
}
@media (max-width: 575px) {
    .dominium-why__list {
        grid-template-columns: 1fr;
    }
    .dominium-why__years {
        right: -8px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-why__item,
    .dominium-why__item::before,
    .dominium-why__icon,
    .dominium-why__aside > * {
        transition: none;
    }
}


/* =======================================================================
   Accueil — "Actualités & analyses" (refait le 04/10/2026) : mise en
   page magazine, article à la une + fiches horizontales numérotées.
   ======================================================================= */
.dominium-news {
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-surface);
    overflow: hidden;
}
.dominium-news::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    width: 34%;
    height: 100%;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .12) 1.2px, transparent 1.5px);
    background-size: 16px 16px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%);
    mask-image: linear-gradient(90deg, transparent, #000 60%);
}
.dominium-news__watermark {
    position: absolute;
    z-index: 0;
    left: -.06em;
    bottom: -.18em;
    font-size: clamp(7rem, 3rem + 12vw, 16rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
    text-transform: uppercase;
    color: rgba(255, 195, 0, .14);
    pointer-events: none;
    user-select: none;
}
.dominium-news .container {
    position: relative;
    z-index: 1;
}
.dominium-news__header {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: end;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
}
.dominium-news__eyebrow {
    margin: 0 0 var(--space-3);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text);
}
.dominium-news__title span {
    color: var(--color-primary);
}
.dominium-news__intro {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-5);
}
.dominium-news__intro p {
    flex: 1 1 260px;
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.7;
    color: var(--color-text-muted);
}
.dominium-news__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: clamp(20px, 2.4vw, 40px);
}
.dominium-news__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2) var(--space-4);
    font-size: .8125rem;
    font-weight: 600;
    color: var(--color-text-muted);
}
.dominium-news__meta i {
    margin-right: 4px;
    color: var(--color-primary);
}
.dominium-news__pill {
    padding: 4px 12px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.dominium-news__more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-size: .9375rem;
    font-weight: 700;
}
.dominium-news__more span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 13px;
    transition: transform .4s var(--ease-natural);
}

/* --- Article à la une --- */
.dominium-news-feature__link {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    min-height: 520px;
    overflow: hidden;
    color: var(--color-text-on-dark);
    isolation: isolate;
}
.dominium-news-feature__link:hover,
.dominium-news-feature__link:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-news-feature__media {
    position: absolute;
    inset: 0;
    z-index: -2;
}
.dominium-news-feature__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.4s var(--ease-natural);
}
.dominium-news-feature__link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(28, 28, 28, .05) 15%, rgba(28, 28, 28, .55) 50%, rgba(28, 28, 28, .95) 100%);
}
.dominium-news-feature__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 5px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .7s cubic-bezier(.77, 0, .18, 1);
}
.dominium-news-feature__link:hover .dominium-news-feature__media img {
    transform: scale(1.07);
}
.dominium-news-feature__link:hover::after,
.dominium-news-feature__link:focus-visible::after {
    transform: scaleX(1);
}
.dominium-news-feature__date {
    position: absolute;
    top: 0;
    left: clamp(24px, 2.6vw, 44px);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 18px 16px 14px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    line-height: 1;
}
.dominium-news-feature__date strong {
    font-size: 2.5rem;
    font-weight: 900;
    letter-spacing: -0.04em;
}
.dominium-news-feature__date small {
    margin-top: 6px;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
}
.dominium-news-feature__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: clamp(24px, 2.6vw, 44px);
}
.dominium-news-feature__body .dominium-news__meta {
    color: rgba(255, 255, 255, .78);
}
.dominium-news-feature__title {
    font-size: clamp(1.625rem, 1.1rem + 1.3vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.15;
}
.dominium-news-feature__excerpt {
    max-width: 560px;
    font-size: 1.0625rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, .8);
}
.dominium-news-feature__link:hover .dominium-news__more span {
    transform: rotate(-45deg);
}

/* --- Fiches horizontales --- */
.dominium-news__list {
    display: grid;
    grid-auto-rows: 1fr;
    gap: clamp(20px, 2.4vw, 40px);
}
.dominium-news-item__link {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    height: 100%;
    background-color: var(--color-bg);
    color: var(--color-text);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .06);
    transition: transform .45s var(--ease-natural), box-shadow .45s var(--ease-natural);
}
.dominium-news-item__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 4px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .6s cubic-bezier(.77, 0, .18, 1);
}
.dominium-news-item__link:hover,
.dominium-news-item__link:focus-visible {
    color: var(--color-text);
    transform: translateY(-6px);
    box-shadow: 0 26px 56px rgba(0, 0, 0, .12);
}
.dominium-news-item__link:hover::after,
.dominium-news-item__link:focus-visible::after {
    transform: scaleX(1);
}
.dominium-news-item__media {
    position: relative;
    overflow: hidden;
    min-height: 220px;
}
.dominium-news-item__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-news-item__link:hover .dominium-news-item__media img {
    transform: scale(1.08);
}
.dominium-news-item__index {
    position: absolute;
    top: 0;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 1.25rem;
    font-weight: 900;
}
.dominium-news-item__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-4);
    padding: clamp(20px, 2.2vw, 36px);
}
.dominium-news-item__title {
    font-size: clamp(1.125rem, .95rem + .5vw, 1.375rem);
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.3;
}
.dominium-news-item__link:hover .dominium-news__more span {
    transform: rotate(-45deg);
}

/* --- Apparition --- */
.dominium-news.js-reveal .dominium-news__header > *,
.dominium-news.js-reveal .dominium-news-item {
    opacity: 0;
    transform: translateY(30px);
}
.dominium-news.js-reveal .dominium-news-feature {
    clip-path: inset(0 100% 0 0);
}
.dominium-news.js-reveal .dominium-news__watermark {
    opacity: 0;
    transform: translateY(60px);
}
.dominium-news.js-reveal .dominium-edge-title::before {
    transform: scaleX(0);
}
.dominium-news__header > *,
.dominium-news__watermark {
    transition: opacity .9s var(--ease-natural), transform 1s var(--ease-natural);
}
.dominium-news-feature {
    transition: clip-path 1.2s cubic-bezier(.77, 0, .18, 1) .3s;
}
.dominium-news.js-reveal .dominium-news-item {
    transition: opacity .8s var(--ease-natural) calc(.6s + var(--i, 0) * .15s), transform .9s var(--ease-natural) calc(.6s + var(--i, 0) * .15s);
}
.dominium-news.is-inview .dominium-news__header > :nth-child(2) { transition-delay: .15s; }
.dominium-news.is-inview .dominium-news__watermark { transition-delay: .4s; }
.dominium-news.is-inview .dominium-news__header > *,
.dominium-news.is-inview .dominium-news-item,
.dominium-news.is-inview .dominium-news__watermark,
.dominium-news.is-inview .dominium-edge-title::before {
    opacity: 1;
    transform: none;
}
.dominium-news.is-inview .dominium-news-feature {
    clip-path: inset(0);
}

@media (max-width: 991px) {
    .dominium-news__header,
    .dominium-news__grid {
        grid-template-columns: 1fr;
    }
    .dominium-news__intro {
        justify-content: flex-start;
    }
    .dominium-news-feature__link {
        min-height: 440px;
    }
}
@media (max-width: 575px) {
    .dominium-news-item__link {
        grid-template-columns: 1fr;
    }
    .dominium-news-item__media {
        min-height: 190px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-news__header > *,
    .dominium-news__watermark,
    .dominium-news-feature,
    .dominium-news-item,
    .dominium-news-feature__media img,
    .dominium-news-item__media img,
    .dominium-news-item__link,
    .dominium-news-feature__link::after,
    .dominium-news-item__link::after {
        transition: none;
    }
}


/* =======================================================================
   Accueil — "Le constat" (refait le 04/10/2026) : défis → réponse.
   ======================================================================= */
.dominium-challenges {
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-bg);
    overflow: hidden;
}
.dominium-challenges__watermark {
    position: absolute;
    z-index: 0;
    right: -.04em;
    top: .1em;
    font-size: clamp(6rem, 3rem + 10vw, 14rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
    text-transform: uppercase;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(0, 0, 0, .06);
    pointer-events: none;
    user-select: none;
}
.dominium-challenges .container {
    position: relative;
    z-index: 1;
}
.dominium-challenges__aside {
    position: sticky;
    top: 120px;
    padding-right: var(--space-6);
    padding-bottom: var(--space-6);
}
.dominium-challenges__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text);
}
.dominium-challenges__eyebrow::before {
    content: "";
    width: 40px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-challenges__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2rem, 1.3rem + 1.8vw, 3.25rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.08;
}
.dominium-challenges__text {
    margin: 0 0 var(--space-7);
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--color-text-muted);
}
.dominium-challenges__count {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-7);
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--color-border);
}
.dominium-challenges__count strong {
    font-size: clamp(3.5rem, 2.4rem + 3vw, 5.5rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: .9;
    color: var(--color-primary);
    -webkit-text-stroke: 1.5px var(--color-dark);
}
.dominium-challenges__count span {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-text);
}
.dominium-challenges__cta {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-5);
    background-color: var(--color-primary);
    color: var(--color-dark);
    box-shadow: 10px 10px 0 var(--color-dark);
    transition: transform .35s var(--ease-natural), box-shadow .35s var(--ease-natural);
}
.dominium-challenges__cta:hover,
.dominium-challenges__cta:focus-visible {
    color: var(--color-dark);
    transform: translate(-3px, -3px);
    box-shadow: 14px 14px 0 var(--color-dark);
}
.dominium-challenges__cta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 20px;
}
.dominium-challenges__cta-text {
    flex: 1;
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.35;
}
.dominium-challenges__cta-arrow {
    font-size: 20px;
    transition: transform .35s var(--ease-natural);
}
.dominium-challenges__cta:hover .dominium-challenges__cta-arrow {
    transform: translateX(6px);
}

/* Grille des défis. */
.dominium-challenges__board {
    position: relative;
}
.dominium-challenges__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-challenge {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-height: 190px;
    padding: clamp(20px, 2vw, 30px);
    border: 1px solid var(--color-border);
    background-color: var(--color-bg);
    overflow: hidden;
    isolation: isolate;
    transition: border-color .4s var(--ease-natural), transform .4s var(--ease-natural), box-shadow .4s var(--ease-natural);
}
.dominium-challenge::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-dark);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .55s cubic-bezier(.77, 0, .18, 1);
}
.dominium-challenge:hover {
    border-color: var(--color-dark);
    transform: translateY(-4px);
    box-shadow: 0 22px 46px rgba(0, 0, 0, .14);
}
.dominium-challenge:hover::before {
    transform: scaleX(1);
}
.dominium-challenge__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}
.dominium-challenge__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background-color: var(--atf-thm-base);
    color: var(--color-dark);
    font-size: 22px;
    transition: background-color .4s var(--ease-natural), transform .5s var(--ease-natural);
}
.dominium-challenge:hover .dominium-challenge__icon {
    background-color: var(--color-primary);
    transform: rotate(-8deg);
}
.dominium-challenge__number {
    font-size: 2.25rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(0, 0, 0, .15);
    transition: -webkit-text-stroke-color .4s var(--ease-natural);
}
.dominium-challenge:hover .dominium-challenge__number {
    -webkit-text-stroke-color: rgba(255, 195, 0, .8);
}
.dominium-challenge__text {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.45;
    color: var(--color-text);
    transition: color .4s var(--ease-natural);
}
.dominium-challenge:hover .dominium-challenge__text {
    color: var(--color-text-on-dark);
}
.dominium-challenge__solved {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: auto;
    font-size: .8125rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-primary);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .4s var(--ease-natural) .1s, transform .4s var(--ease-natural) .1s;
}
.dominium-challenge__solved i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 11px;
}
.dominium-challenge:hover .dominium-challenge__solved {
    opacity: 1;
    transform: none;
}

/* Trait de balayage jaune à l'apparition. */
.dominium-challenges__scan {
    position: absolute;
    z-index: 2;
    top: 0;
    left: -2%;
    width: 4px;
    height: 100%;
    background-color: var(--color-primary);
    box-shadow: 0 0 24px 6px rgba(255, 195, 0, .45);
    opacity: 0;
    pointer-events: none;
}
.dominium-challenges.is-inview .dominium-challenges__scan {
    animation: dominium-challenges-scan 1.6s cubic-bezier(.77, 0, .18, 1) .35s both;
}
@keyframes dominium-challenges-scan {
    0% { left: -2%; opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { left: 102%; opacity: 0; }
}

/* --- Apparition --- */
.dominium-challenges.js-reveal .dominium-challenges__aside > *,
.dominium-challenges.js-reveal .dominium-challenge {
    opacity: 0;
    transform: translateY(30px);
}
.dominium-challenges.js-reveal .dominium-challenges__watermark {
    opacity: 0;
    transform: translateX(80px);
}
.dominium-challenges__aside > *,
.dominium-challenges__watermark {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-challenges.js-reveal .dominium-challenge {
    transition: opacity .7s var(--ease-natural) calc(.35s + var(--i, 0) * .09s), transform .8s var(--ease-natural) calc(.35s + var(--i, 0) * .09s), border-color .4s, box-shadow .4s;
}
.dominium-challenges.is-inview .dominium-challenges__aside > :nth-child(2) { transition-delay: .08s; }
.dominium-challenges.is-inview .dominium-challenges__aside > :nth-child(3) { transition-delay: .16s; }
.dominium-challenges.is-inview .dominium-challenges__aside > :nth-child(4) { transition-delay: .24s; }
.dominium-challenges.is-inview .dominium-challenges__aside > :nth-child(5) { transition-delay: .32s; }
.dominium-challenges.is-inview .dominium-challenges__watermark { transition-delay: .3s; }
.dominium-challenges.is-inview .dominium-challenges__aside > *,
.dominium-challenges.is-inview .dominium-challenge,
.dominium-challenges.is-inview .dominium-challenges__watermark {
    opacity: 1;
    transform: none;
}
.dominium-challenges.is-inview .dominium-challenge:hover {
    transform: translateY(-4px);
    transition-delay: 0s;
}

@media (max-width: 991px) {
    .dominium-challenges__aside {
        position: static;
        padding-right: 0;
        margin-bottom: var(--space-7);
    }
}
@media (max-width: 575px) {
    .dominium-challenges__grid {
        grid-template-columns: 1fr;
    }
    .dominium-challenge {
        min-height: 0;
    }
    .dominium-challenge__solved {
        display: none;
    }
}
@media (hover: none) {
    .dominium-challenge__solved {
        display: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-challenges__scan {
        display: none;
    }
    .dominium-challenges__aside > *,
    .dominium-challenges__watermark,
    .dominium-challenge,
    .dominium-challenge::before,
    .dominium-challenge__icon,
    .dominium-challenge__solved,
    .dominium-challenges__cta {
        transition: none;
    }
}


/* =======================================================================
   Accueil — "Intelligence artificielle" (refait le 04/10/2026) : noyau
   IA en orbite sur fond noir.
   ======================================================================= */
.dominium-ai2 {
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
    isolation: isolate;
}
.dominium-ai2__glow {
    position: absolute;
    z-index: -1;
    top: 50%;
    right: 8%;
    width: 46%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 195, 0, .2), transparent 62%);
    transform: translateY(-50%);
    animation: dominium-ai2-breathe 6s ease-in-out infinite alternate;
}
@keyframes dominium-ai2-breathe {
    from { opacity: .6; transform: translateY(-50%) scale(.92); }
    to { opacity: 1; transform: translateY(-50%) scale(1.08); }
}
.dominium-ai2__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.dominium-ai2__eyebrow::before {
    content: "";
    width: 40px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-ai2__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2rem, 1.3rem + 1.8vw, 3.25rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.08;
    color: var(--color-text-on-dark);
}
.dominium-ai2__text {
    margin: 0 0 var(--space-6);
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--color-text-muted-on-dark);
}
.dominium-ai2__chips {
    display: none;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0 0 var(--space-6);
    padding: 0;
    list-style: none;
}
.dominium-ai2__chips li {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 8px 14px;
    border: 1px solid var(--color-border-on-dark);
    font-size: .875rem;
    font-weight: 600;
}
.dominium-ai2__chips i {
    color: var(--color-primary);
}

/* Orbite. */
.dominium-ai2__orbit {
    position: relative;
    width: min(100%, 600px);
    aspect-ratio: 1;
    margin: 0 auto;
}
.dominium-ai2__links {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}
.dominium-ai2__link {
    stroke: rgba(255, 255, 255, .14);
    stroke-width: .25;
    stroke-dasharray: 1 1.2;
}
.dominium-ai2__pulse {
    stroke: var(--color-primary);
    stroke-width: .5;
    stroke-linecap: round;
    stroke-dasharray: 4 60;
    stroke-dashoffset: 64;
    animation: dominium-ai2-pulse 3.2s linear infinite;
    animation-delay: calc(var(--i, 0) * .4s);
}
@keyframes dominium-ai2-pulse {
    to { stroke-dashoffset: 0; }
}
.dominium-ai2__ring {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}
.dominium-ai2__ring--1 {
    width: 82%;
    height: 82%;
    border: 1px dashed rgba(255, 255, 255, .16);
    animation: dominium-ai2-spin 60s linear infinite;
}
.dominium-ai2__ring--2 {
    width: 46%;
    height: 46%;
    border: 2px solid transparent;
    border-top-color: var(--color-primary);
    border-right-color: rgba(255, 195, 0, .3);
    animation: dominium-ai2-spin 8s linear infinite;
}
.dominium-ai2__ring--3 {
    width: 36%;
    height: 36%;
    border: 1px solid rgba(255, 195, 0, .25);
    animation: dominium-ai2-spin 12s linear infinite reverse;
}
@keyframes dominium-ai2-spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}
.dominium-ai2__core {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 24%;
    aspect-ratio: 1;
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: translate(-50%, -50%);
    box-shadow: 0 0 0 10px rgba(255, 195, 0, .15), 0 0 60px rgba(255, 195, 0, .55);
    animation: dominium-ai2-core 3s ease-in-out infinite;
}
.dominium-ai2__core i {
    font-size: clamp(2rem, 1.4rem + 1.6vw, 3.25rem);
}
.dominium-ai2__core small {
    margin-top: 2px;
    font-size: .875rem;
    font-weight: 900;
    letter-spacing: .2em;
}
/* Broches de "puce" autour du noyau. */
.dominium-ai2__core-pins {
    position: absolute;
    inset: -10px;
    background:
        repeating-linear-gradient(90deg, transparent 0 14%, var(--color-primary) 14% 18%) top / 100% 6px no-repeat,
        repeating-linear-gradient(90deg, transparent 0 14%, var(--color-primary) 14% 18%) bottom / 100% 6px no-repeat,
        repeating-linear-gradient(0deg, transparent 0 14%, var(--color-primary) 14% 18%) left / 6px 100% no-repeat,
        repeating-linear-gradient(0deg, transparent 0 14%, var(--color-primary) 14% 18%) right / 6px 100% no-repeat;
    z-index: -1;
}
@keyframes dominium-ai2-core {
    0%, 100% { box-shadow: 0 0 0 10px rgba(255, 195, 0, .15), 0 0 50px rgba(255, 195, 0, .45); }
    50% { box-shadow: 0 0 0 18px rgba(255, 195, 0, .08), 0 0 80px rgba(255, 195, 0, .7); }
}
.dominium-ai2__node {
    position: absolute;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 120px;
    margin-left: -60px;
    margin-top: -28px;
    text-align: center;
}
.dominium-ai2__node-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border: 1px solid rgba(255, 195, 0, .45);
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 22px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .5);
    transition: background-color .35s var(--ease-natural), color .35s var(--ease-natural), transform .35s var(--ease-natural);
}
.dominium-ai2__node:hover .dominium-ai2__node-icon {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: scale(1.12) rotate(-6deg);
}
.dominium-ai2__node-label {
    font-size: .8125rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-text-on-dark);
}

/* Apparition. */
.dominium-ai2.js-reveal .dominium-ai2__content > * {
    opacity: 0;
    transform: translateY(26px);
}
.dominium-ai2.js-reveal .dominium-ai2__core {
    opacity: 0;
    scale: .3;
}
.dominium-ai2.js-reveal .dominium-ai2__node {
    opacity: 0;
    scale: .4;
}
.dominium-ai2.js-reveal .dominium-ai2__ring {
    opacity: 0;
}
.dominium-ai2__content > * {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-ai2__core {
    transition: opacity .8s var(--ease-natural) .3s, scale 1s cubic-bezier(.34, 1.4, .64, 1) .3s;
}
.dominium-ai2__ring {
    transition: opacity 1s var(--ease-natural) .5s;
}
.dominium-ai2__node {
    transition: opacity .6s var(--ease-natural) calc(.6s + var(--i, 0) * .1s), scale .8s cubic-bezier(.34, 1.5, .64, 1) calc(.6s + var(--i, 0) * .1s);
}
.dominium-ai2.is-inview .dominium-ai2__content > :nth-child(2) { transition-delay: .08s; }
.dominium-ai2.is-inview .dominium-ai2__content > :nth-child(3) { transition-delay: .16s; }
.dominium-ai2.is-inview .dominium-ai2__content > :nth-child(4) { transition-delay: .24s; }
.dominium-ai2.is-inview .dominium-ai2__content > :nth-child(5) { transition-delay: .32s; }
.dominium-ai2.is-inview .dominium-ai2__content > *,
.dominium-ai2.is-inview .dominium-ai2__ring {
    opacity: 1;
    transform: none;
}
.dominium-ai2.is-inview .dominium-ai2__ring {
    transform: translate(-50%, -50%);
}
.dominium-ai2.is-inview .dominium-ai2__core,
.dominium-ai2.is-inview .dominium-ai2__node {
    opacity: 1;
    scale: 1;
}
@media (max-width: 991px) {
    .dominium-ai2__orbit {
        display: none;
    }
    .dominium-ai2__chips {
        display: flex;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-ai2__glow,
    .dominium-ai2__pulse,
    .dominium-ai2__ring,
    .dominium-ai2__core {
        animation: none;
    }
    .dominium-ai2__content > *,
    .dominium-ai2__core,
    .dominium-ai2__ring,
    .dominium-ai2__node {
        transition: none;
    }
}

/* =======================================================================
   Accueil — "Nos réalisations" en vitrine interactive (04/10/2026).
   ======================================================================= */
.dominium-showcase {
    position: relative;
    padding: var(--space-9) 0;
    overflow: hidden;
}
.dominium-showcase__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-5);
    margin-bottom: var(--space-8);
}
.dominium-showcase__eyebrow {
    margin: 0 0 var(--space-3);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.dominium-showcase__title {
    max-width: 760px;
}
.dominium-showcase__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: clamp(28px, 3.5vw, 64px);
    align-items: center;
}
.dominium-showcase__stage {
    position: relative;
    padding: 0 0 28px 28px;
}
.dominium-showcase__block {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 70%;
    height: 70%;
    background-color: var(--color-primary);
}
.dominium-showcase__browser {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-md);
    background-color: #1C1C1C;
    box-shadow: 0 40px 80px rgba(0, 0, 0, .3);
}
.dominium-showcase__screens {
    position: relative;
    aspect-ratio: 16 / 10;
}
.dominium-showcase__screen {
    position: absolute;
    inset: 0;
    display: block;
    color: var(--color-text-on-dark);
    opacity: 0;
    visibility: hidden;
    transform: scale(1.04);
    transition: opacity .7s var(--ease-natural), transform 1s var(--ease-natural), visibility .7s;
}
.dominium-showcase__screen.is-active {
    opacity: 1;
    visibility: visible;
    transform: none;
}
.dominium-showcase__screen:hover,
.dominium-showcase__screen:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-showcase__screen img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    transition: object-position 6s ease-in-out;
}
.dominium-showcase__screen:hover img {
    object-position: bottom;
}
.dominium-showcase__screen::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(28, 28, 28, .85));
}
.dominium-showcase__caption {
    position: absolute;
    z-index: 1;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    padding: clamp(20px, 2.4vw, 36px);
}
.dominium-showcase__caption strong {
    font-size: clamp(1.25rem, 1rem + .8vw, 1.875rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
}
.dominium-showcase__open {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: .9375rem;
    font-weight: 700;
    color: var(--color-primary);
}
.dominium-showcase__progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    height: 4px;
    background-color: rgba(255, 255, 255, .15);
}
.dominium-showcase__progress span {
    display: block;
    height: 100%;
    background-color: var(--color-primary);
    transform-origin: left;
    animation: dominium-showcase-progress 5s linear both;
}
.dominium-showcase__layout.is-paused .dominium-showcase__progress span {
    animation-play-state: paused;
}
@keyframes dominium-showcase-progress {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}
.dominium-showcase__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-showcase__item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    width: 100%;
    padding: var(--space-5);
    border: 1px solid var(--color-border);
    background-color: var(--color-bg);
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    transition: border-color .35s var(--ease-natural), background-color .35s var(--ease-natural), transform .35s var(--ease-natural);
}
.dominium-showcase__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 4px;
    background-color: var(--color-primary);
    transform: scaleY(0);
    transition: transform .4s var(--ease-natural);
}
.dominium-showcase__item:hover {
    transform: translateX(4px);
}
.dominium-showcase__item.is-active {
    border-color: var(--color-dark);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-showcase__item.is-active::before {
    transform: none;
}
.dominium-showcase__index {
    flex-shrink: 0;
    font-size: 1.75rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(0, 0, 0, .3);
}
.dominium-showcase__item.is-active .dominium-showcase__index {
    color: var(--color-primary);
    -webkit-text-stroke: 0;
    opacity: 1;
}
.dominium-showcase__item-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 4px;
}
.dominium-showcase__item-cat {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-showcase__item-cat i {
    color: var(--color-primary);
}
.dominium-showcase__item.is-active .dominium-showcase__item-cat {
    color: var(--color-text-muted-on-dark);
}
.dominium-showcase__item-title {
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.3;
}
.dominium-showcase__item-excerpt {
    display: none;
    margin-top: 4px;
    font-size: .875rem;
    line-height: 1.6;
    color: var(--color-text-muted-on-dark);
}
.dominium-showcase__item.is-active .dominium-showcase__item-excerpt {
    display: block;
}
.dominium-showcase__item-arrow {
    align-self: center;
    font-size: 16px;
    opacity: 0;
    transform: translateX(-6px);
    transition: opacity .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-showcase__item.is-active .dominium-showcase__item-arrow,
.dominium-showcase__item:hover .dominium-showcase__item-arrow {
    opacity: 1;
    transform: none;
    color: var(--color-primary);
}
.dominium-showcase__item:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
.dominium-showcase.js-reveal .dominium-showcase__header > *,
.dominium-showcase.js-reveal .dominium-showcase__list li {
    opacity: 0;
    transform: translateY(26px);
}
.dominium-showcase.js-reveal .dominium-showcase__browser {
    clip-path: inset(0 100% 0 0);
}
.dominium-showcase.js-reveal .dominium-showcase__block {
    opacity: 0;
    transform: translate(-30px, 30px);
}
.dominium-showcase.js-reveal .dominium-edge-title::before {
    transform: scaleX(0);
}
.dominium-showcase__header > *,
.dominium-showcase__list li {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-showcase__browser {
    transition: clip-path 1.2s cubic-bezier(.77, 0, .18, 1) .25s;
}
.dominium-showcase__block {
    transition: opacity .8s var(--ease-natural) .8s, transform 1s var(--ease-natural) .8s;
}
.dominium-showcase.is-inview .dominium-showcase__list li:nth-child(1) { transition-delay: .5s; }
.dominium-showcase.is-inview .dominium-showcase__list li:nth-child(2) { transition-delay: .62s; }
.dominium-showcase.is-inview .dominium-showcase__list li:nth-child(3) { transition-delay: .74s; }
.dominium-showcase.is-inview .dominium-showcase__list li:nth-child(4) { transition-delay: .86s; }
.dominium-showcase.is-inview .dominium-showcase__header > *,
.dominium-showcase.is-inview .dominium-showcase__list li,
.dominium-showcase.is-inview .dominium-showcase__block,
.dominium-showcase.is-inview .dominium-edge-title::before {
    opacity: 1;
    transform: none;
}
.dominium-showcase.is-inview .dominium-showcase__browser {
    clip-path: inset(0);
}
@media (max-width: 991px) {
    .dominium-showcase__layout {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-showcase__progress {
        display: none;
    }
    .dominium-showcase__screen,
    .dominium-showcase__screen img,
    .dominium-showcase__item,
    .dominium-showcase__header > *,
    .dominium-showcase__list li,
    .dominium-showcase__browser,
    .dominium-showcase__block {
        transition: none;
    }
}


/* =======================================================================
   Accueil — "Vos questions" (refait le 04/10/2026).
   ======================================================================= */
.dominium-faq {
    position: relative;
    padding: var(--space-9) 0;
    background-color: var(--color-surface);
    overflow: hidden;
}
.dominium-faq__watermark {
    position: absolute;
    z-index: 0;
    right: -.04em;
    bottom: -.2em;
    font-size: clamp(8rem, 4rem + 12vw, 18rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 2px rgba(0, 0, 0, .05);
    pointer-events: none;
    user-select: none;
}
.dominium-faq .container {
    position: relative;
    z-index: 1;
}
.dominium-faq__aside {
    position: sticky;
    top: 120px;
    padding-right: var(--space-6);
    padding-bottom: var(--space-6);
}
.dominium-faq__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0 0 var(--space-4);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.dominium-faq__eyebrow::before {
    content: "";
    width: 40px;
    height: 3px;
    background-color: var(--color-primary);
}
.dominium-faq__title {
    margin: 0 0 var(--space-4);
    font-size: clamp(2.25rem, 1.4rem + 2vw, 3.5rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.05;
}
.dominium-faq__title span {
    color: var(--color-primary);
}
.dominium-faq__text {
    margin: 0 0 var(--space-6);
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--color-text-muted);
}
.dominium-faq__stat {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
    padding: 10px 18px 10px 10px;
    border-radius: var(--radius-pill);
    background-color: var(--color-bg);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    font-size: .9375rem;
    color: var(--color-text);
}
.dominium-faq__stat strong {
    font-size: 1.125rem;
    font-weight: 900;
}
.dominium-faq__stat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-faq__help {
    position: relative;
    padding: clamp(28px, 3vw, 44px);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
    box-shadow: 14px 14px 0 var(--color-primary);
}
.dominium-faq__help-dots {
    position: absolute;
    top: 0;
    right: 0;
    width: 45%;
    height: 70%;
    background-image: radial-gradient(circle, rgba(255, 255, 255, .18) 1.2px, transparent 1.5px);
    background-size: 14px 14px;
    -webkit-mask-image: linear-gradient(225deg, #000, transparent 70%);
    mask-image: linear-gradient(225deg, #000, transparent 70%);
}
.dominium-faq__help-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin-bottom: var(--space-5);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 26px;
}
.dominium-faq__help-icon::after {
    content: "";
    position: absolute;
    inset: -6px;
    border: 2px solid var(--color-primary);
    opacity: 0;
    animation: dominium-faq-ping 2.4s ease-out infinite;
}
@keyframes dominium-faq-ping {
    0% { opacity: .8; transform: scale(1); }
    80%, 100% { opacity: 0; transform: scale(1.4); }
}
.dominium-faq__help-title {
    position: relative;
    margin: 0 0 var(--space-2);
    font-size: clamp(1.375rem, 1.1rem + .7vw, 1.75rem);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-text-on-dark);
}
.dominium-faq__help-text {
    position: relative;
    margin: 0 0 var(--space-5);
    color: var(--color-text-muted-on-dark);
}
.dominium-faq__help-links {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0 0 var(--space-5);
    padding: 0;
    list-style: none;
}
.dominium-faq__help-links a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 10px 16px;
    border: 1px solid var(--color-border-on-dark);
    color: var(--color-text-on-dark);
    font-size: .9375rem;
    font-weight: 700;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), border-color .3s var(--ease-natural);
}
.dominium-faq__help-links a i {
    color: var(--color-primary);
    transition: color .3s var(--ease-natural);
}
.dominium-faq__help-links a:hover,
.dominium-faq__help-links a:focus-visible {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-faq__help-links a:hover i {
    color: var(--color-dark);
}
.dominium-faq__help-more {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-weight: 700;
    color: var(--color-primary);
}
.dominium-faq__help-more:hover,
.dominium-faq__help-more:focus-visible {
    color: var(--color-primary);
}
.dominium-faq__help-more i {
    transition: transform .3s var(--ease-natural);
}
.dominium-faq__help-more:hover i {
    transform: translateX(5px);
}

/* Accordéon. */
.dominium-faq__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.dominium-faq-item {
    position: relative;
    background-color: var(--color-bg);
    box-shadow: 0 8px 26px rgba(0, 0, 0, .04);
    transition: box-shadow .4s var(--ease-natural), transform .4s var(--ease-natural);
}
.dominium-faq-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 4px;
    background-color: var(--color-primary);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform .5s cubic-bezier(.77, 0, .18, 1);
}
.dominium-faq-item.is-open {
    box-shadow: 0 24px 54px rgba(0, 0, 0, .1);
}
.dominium-faq-item.is-open::before {
    transform: scaleY(1);
}
.dominium-faq-item:not(.is-open):hover {
    transform: translateX(6px);
}
.dominium-faq-item__heading {
    margin: 0;
}
.dominium-faq-item__toggle {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    width: 100%;
    padding: clamp(20px, 2vw, 28px) clamp(20px, 2.4vw, 32px);
    border: 0;
    background: none;
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
}
.dominium-faq-item__toggle:focus-visible {
    outline: 2px solid var(--color-dark);
    outline-offset: -2px;
}
.dominium-faq-item__number {
    flex-shrink: 0;
    width: 2.6rem;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(0, 0, 0, .25);
    transition: color .4s var(--ease-natural), -webkit-text-stroke-color .4s var(--ease-natural);
}
.dominium-faq-item.is-open .dominium-faq-item__number {
    color: var(--color-primary);
    -webkit-text-stroke-color: var(--color-dark);
}
.dominium-faq-item__question {
    flex: 1;
    font-size: clamp(1.0625rem, .95rem + .4vw, 1.3125rem);
    font-weight: 800;
    line-height: 1.35;
}
.dominium-faq-item__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-border);
    color: var(--color-dark);
    font-size: 15px;
    transition: transform .45s cubic-bezier(.34, 1.4, .64, 1), background-color .35s var(--ease-natural), border-color .35s var(--ease-natural);
}
.dominium-faq-item__toggle:hover .dominium-faq-item__icon {
    border-color: var(--color-dark);
}
.dominium-faq-item.is-open .dominium-faq-item__icon {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    transform: rotate(135deg);
}
.dominium-faq-item__answer {
    padding: 0 clamp(20px, 2.4vw, 32px) clamp(22px, 2.2vw, 30px) calc(clamp(20px, 2.4vw, 32px) + 2.6rem + var(--space-5));
}
.dominium-faq-item__answer p {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text-muted);
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .45s var(--ease-natural) .1s, transform .45s var(--ease-natural) .1s;
}
.dominium-faq-item.is-open .dominium-faq-item__answer p {
    opacity: 1;
    transform: none;
}
/* Hauteur animée du collapse Bootstrap plus douce. */
.dominium-faq__list .collapsing {
    transition: height .45s cubic-bezier(.77, 0, .18, 1);
}

/* Apparition. */
.dominium-faq.js-reveal .dominium-faq__aside > *,
.dominium-faq.js-reveal .dominium-faq-item {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-faq.js-reveal .dominium-faq__watermark {
    opacity: 0;
    transform: translateX(80px);
}
.dominium-faq__aside > *,
.dominium-faq__watermark {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-faq.js-reveal .dominium-faq-item {
    transition: opacity .7s var(--ease-natural) calc(.3s + var(--i, 0) * .1s), transform .8s var(--ease-natural) calc(.3s + var(--i, 0) * .1s), box-shadow .4s;
}
.dominium-faq.is-inview .dominium-faq__aside > :nth-child(2) { transition-delay: .08s; }
.dominium-faq.is-inview .dominium-faq__aside > :nth-child(3) { transition-delay: .16s; }
.dominium-faq.is-inview .dominium-faq__aside > :nth-child(4) { transition-delay: .24s; }
.dominium-faq.is-inview .dominium-faq__aside > :nth-child(5) { transition-delay: .34s; }
.dominium-faq.is-inview .dominium-faq__watermark { transition-delay: .3s; }
.dominium-faq.is-inview .dominium-faq__aside > *,
.dominium-faq.is-inview .dominium-faq-item,
.dominium-faq.is-inview .dominium-faq__watermark {
    opacity: 1;
    transform: none;
}
.dominium-faq.is-inview .dominium-faq-item:not(.is-open):hover {
    transform: translateX(6px);
    transition-delay: 0s;
}
@media (max-width: 991px) {
    .dominium-faq__aside {
        position: static;
        padding-right: 0;
        margin-bottom: var(--space-7);
    }
}
@media (max-width: 575px) {
    .dominium-faq-item__toggle {
        gap: var(--space-3);
    }
    .dominium-faq-item__number {
        width: 2rem;
        font-size: 1.5rem;
    }
    .dominium-faq-item__answer {
        padding-left: clamp(20px, 2.4vw, 32px);
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-faq__help-icon::after {
        animation: none;
    }
    .dominium-faq__aside > *,
    .dominium-faq__watermark,
    .dominium-faq-item,
    .dominium-faq-item::before,
    .dominium-faq-item__icon,
    .dominium-faq-item__answer p,
    .dominium-faq__list .collapsing {
        transition: none;
    }
}


/* =======================================================================
   PAGE /blog (refaite le 04/10/2026).
   ======================================================================= */
.dominium-blog {
    position: relative;
    padding: var(--space-8) 0 var(--space-9);
    background-color: var(--color-surface);
    overflow: hidden;
}
.dominium-blog .container {
    position: relative;
    z-index: 1;
}
.dominium-blog__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
    margin-bottom: var(--space-7);
}
.dominium-blog__filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}
.dominium-blog__filter {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    padding: 10px 18px 10px 10px;
    background-color: var(--color-bg);
    color: var(--color-text);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .05);
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-blog__filter:hover {
    color: var(--color-text);
    transform: translateY(-3px);
}
.dominium-blog__filter strong {
    display: block;
    font-size: .9375rem;
    font-weight: 800;
    line-height: 1.2;
}
.dominium-blog__filter small {
    font-size: .75rem;
    color: var(--color-text-muted);
}
.dominium-blog__filter-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: var(--color-surface);
    color: var(--color-dark);
    font-size: 17px;
    transition: background-color .3s var(--ease-natural), transform .4s var(--ease-natural);
}
.dominium-blog__filter.is-active {
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-blog__filter.is-active small {
    color: var(--color-text-muted-on-dark);
}
.dominium-blog__filter.is-active .dominium-blog__filter-icon {
    background-color: var(--color-primary);
    transform: rotate(-6deg);
}
.dominium-blog__search {
    position: relative;
    display: flex;
    flex: 0 1 360px;
}
.dominium-blog__search input {
    flex: 1;
    min-width: 0;
    height: 56px;
    padding: 0 64px 0 20px;
    border: 1px solid var(--color-border);
    background-color: var(--color-bg);
    font-size: 1rem;
    color: var(--color-text);
    transition: border-color .25s var(--ease-natural), box-shadow .25s var(--ease-natural);
}
.dominium-blog__search input:focus {
    outline: none;
    border-color: var(--color-dark);
    box-shadow: 0 0 0 4px rgba(255, 195, 0, .35);
}
.dominium-blog__search button {
    position: absolute;
    top: 6px;
    right: 6px;
    bottom: 6px;
    width: 44px;
    border: 0;
    background-color: var(--color-primary);
    color: var(--color-dark);
    cursor: pointer;
    transition: background-color .3s var(--ease-natural);
}
.dominium-blog__search button:hover {
    background-color: var(--color-primary-hover);
}
.dominium-blog__status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin: calc(var(--space-4) * -1) 0 var(--space-6);
    font-size: 1rem;
    color: var(--color-text-muted);
}
.dominium-blog__status strong {
    color: var(--color-text);
}
.dominium-blog__status a {
    margin-left: var(--space-3);
    font-weight: 700;
    color: var(--color-text);
    border-bottom: 2px solid var(--color-primary);
}
.dominium-blog__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-9) var(--space-5);
    background-color: var(--color-bg);
    text-align: center;
}
.dominium-blog__empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    margin-bottom: var(--space-5);
    background-color: var(--color-primary);
    font-size: 32px;
}
.dominium-blog__empty h2 {
    margin: 0 0 var(--space-2);
    font-size: 1.75rem;
    font-weight: 800;
}
.dominium-blog__empty p {
    margin: 0 0 var(--space-6);
    color: var(--color-text-muted);
}

/* À la une. */
.dominium-blog__featured {
    margin-bottom: var(--space-7);
}
.dominium-blog__featured-link {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .18);
}
.dominium-blog__featured-link:hover,
.dominium-blog__featured-link:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-blog__featured-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 5px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .7s cubic-bezier(.77, 0, .18, 1);
}
.dominium-blog__featured-link:hover::after {
    transform: scaleX(1);
}
.dominium-blog__featured-media {
    position: relative;
    min-height: 420px;
    overflow: hidden;
}
.dominium-blog__featured-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.4s var(--ease-natural);
}
.dominium-blog__featured-link:hover .dominium-blog__featured-media img {
    transform: scale(1.06);
}
.dominium-blog__featured-badge {
    position: absolute;
    top: 24px;
    left: 24px;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 8px 14px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: .8125rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.dominium-blog__featured-body {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-5);
    padding: clamp(28px, 3.4vw, 60px);
    background-image: radial-gradient(circle, rgba(255, 255, 255, .08) 1.2px, transparent 1.5px);
    background-size: 16px 16px;
}
.dominium-blog__featured-body .dominium-news__meta {
    color: var(--color-text-muted-on-dark);
}
.dominium-blog__featured-title {
    font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.75rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.1;
}
.dominium-blog__featured-excerpt {
    font-size: 1.0625rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, .78);
}
.dominium-blog__featured-link:hover .dominium-news__more span {
    transform: rotate(-45deg);
}

/* Grille de cartes. */
.dominium-blog__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 2.2vw, 36px);
}
.dominium-post-card__link {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: var(--color-bg);
    color: var(--color-text);
    box-shadow: 0 14px 36px rgba(0, 0, 0, .06);
    transition: transform .45s var(--ease-natural), box-shadow .45s var(--ease-natural);
}
.dominium-post-card__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 4px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .6s cubic-bezier(.77, 0, .18, 1);
}
.dominium-post-card__link:hover,
.dominium-post-card__link:focus-visible {
    color: var(--color-text);
    transform: translateY(-8px);
    box-shadow: 0 28px 60px rgba(0, 0, 0, .12);
}
.dominium-post-card__link:hover::after {
    transform: scaleX(1);
}
.dominium-post-card__media {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
.dominium-post-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-post-card__link:hover .dominium-post-card__media img {
    transform: scale(1.08);
}
.dominium-post-card__date {
    position: absolute;
    top: 0;
    right: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 12px 10px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    line-height: 1;
}
.dominium-post-card__date strong {
    font-size: 1.75rem;
    font-weight: 900;
    letter-spacing: -0.04em;
}
.dominium-post-card__date small {
    margin-top: 4px;
    font-size: .6875rem;
    font-weight: 700;
    text-transform: uppercase;
}
.dominium-post-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--space-4);
    padding: clamp(22px, 2vw, 32px);
}
.dominium-post-card__title {
    font-size: clamp(1.125rem, .95rem + .5vw, 1.375rem);
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.3;
}
.dominium-post-card__excerpt {
    font-size: .9375rem;
    line-height: 1.7;
    color: var(--color-text-muted);
}
.dominium-post-card__body .dominium-news__more {
    margin-top: auto;
}
.dominium-post-card__link:hover .dominium-news__more span {
    transform: rotate(-45deg);
}

/* Pagination. */
.dominium-blog__pagination {
    margin-top: var(--space-8);
    text-align: center;
}

/* Apparition. */
.dominium-blog.js-reveal .dominium-blog__filter,
.dominium-blog.js-reveal .dominium-blog__search,
.dominium-blog.js-reveal .dominium-post-card {
    opacity: 0;
    transform: translateY(26px);
}
.dominium-blog.js-reveal .dominium-blog__featured {
    clip-path: inset(0 100% 0 0);
}
.dominium-blog.js-reveal .dominium-news__watermark {
    opacity: 0;
    transform: translateY(60px);
}
.dominium-blog.js-reveal .dominium-blog__filter {
    transition: opacity .6s var(--ease-natural) calc(var(--i, 0) * .07s), transform .7s var(--ease-natural) calc(var(--i, 0) * .07s), background-color .3s, color .3s;
}
.dominium-blog__search,
.dominium-news__watermark {
    transition: opacity .8s var(--ease-natural) .2s, transform .9s var(--ease-natural) .2s;
}
.dominium-blog__featured {
    transition: clip-path 1.2s cubic-bezier(.77, 0, .18, 1) .3s;
}
.dominium-blog.js-reveal .dominium-post-card {
    transition: opacity .8s var(--ease-natural) calc(.55s + var(--i, 0) * .1s), transform .9s var(--ease-natural) calc(.55s + var(--i, 0) * .1s);
}
.dominium-blog.is-inview .dominium-blog__filter,
.dominium-blog.is-inview .dominium-blog__search,
.dominium-blog.is-inview .dominium-post-card,
.dominium-blog.is-inview .dominium-news__watermark {
    opacity: 1;
    transform: none;
}
.dominium-blog.is-inview .dominium-blog__featured {
    clip-path: inset(0);
}
.dominium-blog.is-inview .dominium-blog__filter:hover {
    transform: translateY(-3px);
    transition-delay: 0s;
}
@media (max-width: 991px) {
    .dominium-blog__featured-link {
        grid-template-columns: 1fr;
    }
    .dominium-blog__featured-media {
        min-height: 280px;
    }
    .dominium-blog__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dominium-blog__search {
        flex-basis: 100%;
    }
}
@media (max-width: 575px) {
    .dominium-blog__grid {
        grid-template-columns: 1fr;
    }
    .dominium-blog__filters {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-blog__filter,
    .dominium-blog__search,
    .dominium-blog__featured,
    .dominium-post-card,
    .dominium-post-card__link,
    .dominium-post-card__media img,
    .dominium-blog__featured-media img {
        transition: none;
    }
}

.dominium-blog__search input::placeholder {
    color: var(--color-text-muted);
    opacity: 1;
}


/* =======================================================================
   PAGE /faq (04/10/2026) — compléments à .dominium-faq (accueil).
   ======================================================================= */
.dominium-faq--page {
    padding-top: var(--space-8);
}
.dominium-faq__search {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: var(--space-6);
}
.dominium-faq__search i {
    position: absolute;
    left: 18px;
    color: var(--color-text-muted);
    pointer-events: none;
}
.dominium-faq__search input {
    width: 100%;
    height: 58px;
    padding: 0 76px 0 48px;
    border: 1px solid var(--color-border);
    background-color: var(--color-bg);
    font-size: 1rem;
    color: var(--color-text);
    transition: border-color .25s var(--ease-natural), box-shadow .25s var(--ease-natural);
}
.dominium-faq__search input::placeholder {
    color: var(--color-text-muted);
    opacity: 1;
}
.dominium-faq__search input:focus {
    outline: none;
    border-color: var(--color-dark);
    box-shadow: 0 0 0 4px rgba(255, 195, 0, .35);
}
.dominium-faq__search-count {
    position: absolute;
    right: 10px;
    padding: 4px 10px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: .8125rem;
    font-weight: 800;
}
.dominium-faq__noresult {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0;
    padding: var(--space-6);
    background-color: var(--color-bg);
    font-weight: 600;
    color: var(--color-text-muted);
}
.dominium-faq__noresult i {
    font-size: 1.5rem;
    color: var(--color-primary);
}
.dominium-faq__noresult a {
    color: var(--color-text);
    border-bottom: 2px solid var(--color-primary);
}
.dominium-faq-item[hidden] {
    display: none;
}

/* Bloc "Posez votre question". */
.dominium-ask {
    padding: var(--space-8) 0 var(--space-9);
}
.dominium-ask__box {
    position: relative;
    padding: clamp(32px, 4vw, 72px);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    overflow: hidden;
    isolation: isolate;
}
.dominium-ask__box .dominium-cta__diamond {
    opacity: .9;
}
.dominium-ask__eyebrow {
    margin: 0 0 var(--space-3);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.dominium-ask__title {
    margin: 0 0 var(--space-4);
    font-size: clamp(2rem, 1.3rem + 1.8vw, 3rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.08;
    color: var(--color-text-on-dark);
}
.dominium-ask__text {
    margin: 0;
    font-size: 1.125rem;
    color: var(--color-text-muted-on-dark);
}
.dominium-ask__form {
    position: relative;
}
.dominium-ask.js-reveal .dominium-ask__box {
    clip-path: inset(0 100% 0 0);
}
.dominium-ask__box {
    transition: clip-path 1.1s cubic-bezier(.77, 0, .18, 1);
}
.dominium-ask.is-inview .dominium-ask__box {
    clip-path: inset(0);
}

/* =======================================================================
   PAGE /services — catalogue (04/10/2026).
   ======================================================================= */
.dominium-catalog {
    position: relative;
    padding: var(--space-8) 0 var(--space-9);
    background-color: var(--color-surface);
}
.dominium-catalog__header {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: end;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
}
.dominium-catalog__eyebrow {
    margin: 0 0 var(--space-3);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.dominium-catalog__intro {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.75;
    color: var(--color-text-muted);
}
.dominium-catalog__nav {
    position: sticky;
    top: 110px;
    margin-bottom: var(--space-6);
    padding: var(--space-5);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-catalog__nav-title {
    margin: 0 0 var(--space-4);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border-on-dark);
    font-size: .875rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-text-muted-on-dark);
}
.dominium-catalog__nav-title strong {
    font-size: 1.75rem;
    color: var(--color-primary);
}
.dominium-catalog__nav ol {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0 0 var(--space-5);
    padding: 0;
    list-style: none;
}
.dominium-catalog__nav a[data-catalog-link] {
    position: relative;
    display: flex;
    gap: var(--space-3);
    padding: 8px 10px;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.35;
    color: rgba(255, 255, 255, .72);
    transition: color .25s var(--ease-natural), background-color .25s var(--ease-natural), padding-left .3s var(--ease-natural);
}
.dominium-catalog__nav a[data-catalog-link] span {
    flex-shrink: 0;
    font-weight: 800;
    color: rgba(255, 255, 255, .35);
}
.dominium-catalog__nav a[data-catalog-link]:hover,
.dominium-catalog__nav a[data-catalog-link].is-active {
    padding-left: 16px;
    background-color: rgba(255, 255, 255, .06);
    color: var(--color-text-on-dark);
}
.dominium-catalog__nav a[data-catalog-link].is-active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 3px;
    background-color: var(--color-primary);
}
.dominium-catalog__nav a[data-catalog-link].is-active span {
    color: var(--color-primary);
}
.dominium-catalog__nav-cta {
    width: 100%;
    justify-content: space-between;
}
.dominium-catalog__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.dominium-catalog-item {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) 220px;
    gap: clamp(20px, 2.4vw, 36px);
    padding: clamp(24px, 2.6vw, 40px);
    background-color: var(--color-bg);
    scroll-margin-top: 120px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .05);
    transition: transform .4s var(--ease-natural), box-shadow .4s var(--ease-natural);
}
.dominium-catalog-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 4px;
    background-color: var(--color-primary);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform .5s cubic-bezier(.77, 0, .18, 1);
}
.dominium-catalog-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 54px rgba(0, 0, 0, .1);
}
.dominium-catalog-item:hover::before,
.dominium-catalog-item:target::before {
    transform: none;
}
.dominium-catalog-item__aside {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
}
.dominium-catalog-item__number {
    font-size: 1.75rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(0, 0, 0, .2);
}
.dominium-catalog-item__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 26px;
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural), transform .5s var(--ease-natural);
}
.dominium-catalog-item:hover .dominium-catalog-item__icon {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: rotate(-8deg);
}
.dominium-catalog-item__title {
    margin: 0 0 var(--space-3);
    font-size: clamp(1.25rem, 1rem + .7vw, 1.625rem);
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.25;
}
.dominium-catalog-item__title a,
.dominium-catalog-item__title a:hover {
    color: var(--color-text);
}
.dominium-catalog-item__excerpt {
    margin: 0 0 var(--space-4);
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-text-muted);
}
.dominium-catalog-item__features {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-catalog-item__features li {
    display: flex;
    gap: var(--space-2);
    font-size: .9375rem;
    line-height: 1.5;
    color: var(--color-text);
}
.dominium-catalog-item__features i {
    margin-top: 4px;
    font-size: .75rem;
    color: var(--color-primary);
}
.dominium-catalog-item__side {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding-left: var(--space-5);
    border-left: 1px solid var(--color-border);
}
.dominium-catalog-item__meta {
    margin: 0;
}
.dominium-catalog-item__meta small {
    display: block;
    margin-bottom: 2px;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-catalog-item__meta strong {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
    color: var(--color-text);
}
.dominium-catalog-item__actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: auto;
}
.dominium-catalog-item__more {
    display: inline-flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 46px;
    padding: 0 14px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-size: .875rem;
    font-weight: 700;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural);
}
.dominium-catalog-item__more:hover,
.dominium-catalog-item__more:focus-visible {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-catalog-item__wa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    border: 1px solid var(--color-border);
    color: #25D366;
    font-size: 20px;
    transition: border-color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-catalog-item__wa:hover {
    border-color: #25D366;
    color: #25D366;
    transform: translateY(-2px);
}
.dominium-catalog.js-reveal .dominium-catalog__header > *,
.dominium-catalog.js-reveal .dominium-catalog__nav,
.dominium-catalog.js-reveal .dominium-catalog-item {
    opacity: 0;
    transform: translateY(28px);
}
.dominium-catalog.js-reveal .dominium-edge-title::before {
    transform: scaleX(0);
}
.dominium-catalog__header > *,
.dominium-catalog__nav {
    transition: opacity .8s var(--ease-natural) .1s, transform .9s var(--ease-natural) .1s;
}
.dominium-catalog.js-reveal .dominium-catalog-item {
    transition: opacity .7s var(--ease-natural) calc(.3s + min(var(--i, 0), 4) * .1s), transform .8s var(--ease-natural) calc(.3s + min(var(--i, 0), 4) * .1s), box-shadow .4s;
}
.dominium-catalog.is-inview .dominium-catalog__header > *,
.dominium-catalog.is-inview .dominium-catalog__nav,
.dominium-catalog.is-inview .dominium-catalog-item,
.dominium-catalog.is-inview .dominium-edge-title::before {
    opacity: 1;
    transform: none;
}
.dominium-catalog.is-inview .dominium-catalog-item:hover {
    transform: translateY(-4px);
    transition-delay: 0s;
}

/* Processus en 4 étapes. */
.dominium-steps {
    padding: var(--space-9) 0;
}
.dominium-steps__title span {
    color: var(--color-primary);
}
.dominium-steps__text {
    max-width: 620px;
    margin: 0;
    font-size: 1.125rem;
    color: var(--color-text-muted);
}
.dominium-steps__list {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-6);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-steps__line {
    position: absolute;
    top: 44px;
    left: 12%;
    right: 12%;
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--color-dark) 0 10px, transparent 10px 18px);
    transform-origin: left;
}
.dominium-steps__item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.dominium-steps__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    height: 88px;
    margin-bottom: var(--space-5);
    background-color: var(--color-bg);
    border: 2px solid var(--color-dark);
    color: var(--color-dark);
    font-size: 30px;
    transition: background-color .4s var(--ease-natural), transform .5s var(--ease-natural);
}
.dominium-steps__icon em {
    position: absolute;
    top: -12px;
    right: -12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background-color: var(--color-primary);
    font-size: .9375rem;
    font-style: normal;
    font-weight: 900;
}
.dominium-steps__item:hover .dominium-steps__icon {
    background-color: var(--color-primary);
    transform: rotate(-6deg);
}
.dominium-steps__item h3 {
    margin: 0 0 var(--space-2);
    font-size: 1.25rem;
    font-weight: 800;
}
.dominium-steps__item p {
    margin: 0;
    font-size: .9375rem;
    line-height: 1.65;
    color: var(--color-text-muted);
}
.dominium-steps.js-reveal .dominium-steps__line {
    transform: scaleX(0);
}
.dominium-steps.js-reveal .dominium-steps__item {
    opacity: 0;
    transform: translateY(30px);
}
.dominium-steps__line {
    transition: transform 1.4s cubic-bezier(.77, 0, .18, 1) .3s;
}
.dominium-steps.js-reveal .dominium-steps__item {
    transition: opacity .7s var(--ease-natural) calc(.4s + var(--i, 0) * .2s), transform .8s var(--ease-natural) calc(.4s + var(--i, 0) * .2s);
}
.dominium-steps.is-inview .dominium-steps__line,
.dominium-steps.is-inview .dominium-steps__item {
    opacity: 1;
    transform: none;
}
@media (max-width: 1199px) {
    .dominium-catalog-item {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .dominium-catalog-item__side {
        grid-column: 2;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        padding: var(--space-4) 0 0;
        border-left: 0;
        border-top: 1px solid var(--color-border);
    }
    .dominium-catalog-item__actions {
        margin-left: auto;
        margin-top: 0;
    }
}
@media (max-width: 991px) {
    .dominium-catalog__header {
        grid-template-columns: 1fr;
    }
    .dominium-catalog__nav {
        display: none;
    }
    .dominium-steps__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dominium-steps__line {
        display: none;
    }
}
@media (max-width: 575px) {
    .dominium-catalog-item {
        grid-template-columns: 1fr;
    }
    .dominium-catalog-item__aside {
        flex-direction: row;
    }
    .dominium-catalog-item__side {
        grid-column: auto;
    }
    .dominium-catalog-item__actions {
        width: 100%;
        margin-left: 0;
    }
    .dominium-steps__list {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-catalog__header > *,
    .dominium-catalog__nav,
    .dominium-catalog-item,
    .dominium-steps__line,
    .dominium-steps__item,
    .dominium-ask__box {
        transition: none;
    }
}


/* =======================================================================
   FICHE SERVICE /services/{slug} (04/10/2026) — compléments.
   ======================================================================= */
/* Fiche sans tarif/délai/prestations : pas de bandeau de chiffres, donc
   pas d'espace sous les boutons — le V les coupait (retour client du
   05/10/2026). On réserve la hauteur du V + une marge. */
.dominium-xp-hero:not(:has(.dominium-xp-hero__stats)) {
    padding-bottom: calc(var(--xp-v) + clamp(56px, 6vw, 100px));
}
/* Le médaillon-icône (display:flex plus bas dans le fichier) annulait le
   masquage mobile : il recouvrait le fil d'Ariane. */
@media (max-width: 575px) {
    .dominium-xp-hero__medallion--icon {
        display: none;
    }
}
.dominium-xp-hero__stats .dominium-svc-stat {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}
.dominium-svc-stat span {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-muted-on-dark);
}
.dominium-xp-hero__stats .dominium-svc-stat strong {
    font-size: clamp(1.25rem, 1rem + .8vw, 1.875rem);
}
.dominium-svc-feature {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text);
}
.dominium-svc-feature i {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin-top: 1px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: .75rem;
}
.dominium-svc-benefits {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-svc-benefits li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border-on-dark);
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, .88);
}
.dominium-svc-benefits li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.dominium-svc-benefits span {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 195, 0, .5);
    color: var(--color-primary);
    font-size: .875rem;
}

/* Bandeau tarif. */
.dominium-svc-price {
    padding: var(--space-8) 0 0;
}
.dominium-svc-price__box {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    align-items: center;
    gap: var(--space-6);
    padding: clamp(24px, 3vw, 44px);
    background-color: var(--color-primary);
    box-shadow: 14px 14px 0 var(--color-dark);
}
.dominium-svc-price__item {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}
.dominium-svc-price__item + .dominium-svc-price__item {
    padding-left: var(--space-6);
    border-left: 2px solid rgba(0, 0, 0, .15);
}
.dominium-svc-price__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 58px;
    height: 58px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 24px;
}
.dominium-svc-price__item small {
    display: block;
    margin-bottom: 4px;
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, .65);
}
.dominium-svc-price__item strong {
    font-size: clamp(1.25rem, 1rem + .9vw, 2rem);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--color-dark);
}
.dominium-svc-price__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 60px;
    padding: 0 12px 0 28px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-weight: 700;
    white-space: nowrap;
    transition: transform .3s var(--ease-natural);
}
.dominium-svc-price__cta span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    transition: transform .3s var(--ease-natural);
}
.dominium-svc-price__cta:hover,
.dominium-svc-price__cta:focus-visible {
    color: var(--color-text-on-dark);
    transform: translateY(-3px);
}
.dominium-svc-price__cta:hover span {
    transform: rotate(-45deg);
}
.dominium-svc-price__note {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-6) 0 0;
    font-size: .875rem;
    color: var(--color-text-muted);
}
.dominium-svc-price.js-reveal .dominium-svc-price__box {
    clip-path: inset(0 100% 0 0);
}
.dominium-svc-price__box {
    transition: clip-path 1.1s cubic-bezier(.77, 0, .18, 1) .1s;
}
.dominium-svc-price.is-inview .dominium-svc-price__box {
    clip-path: inset(-20px -40px -40px -20px);
}

/* Autres services. */
.dominium-svc-faq {
    background-color: var(--color-surface);
}
.dominium-svc-others {
    padding: var(--space-9) 0 var(--space-6);
}
.dominium-svc-others__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 32px);
}
.dominium-svc-others.js-reveal .dominium-svc-others__cell {
    opacity: 0;
    transform: translateY(32px);
}
.dominium-svc-others__cell {
    transition: opacity .8s var(--ease-natural) calc(.15s + var(--i, 0) * .12s), transform .9s var(--ease-natural) calc(.15s + var(--i, 0) * .12s);
}
.dominium-svc-others.is-inview .dominium-svc-others__cell {
    opacity: 1;
    transform: none;
}
@media (max-width: 991px) {
    .dominium-svc-price__box {
        grid-template-columns: 1fr;
    }
    .dominium-svc-price__item + .dominium-svc-price__item {
        padding-left: 0;
        border-left: 0;
    }
    .dominium-svc-others__grid {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-svc-price__box,
    .dominium-svc-others__cell {
        transition: none;
    }
}


/* Fiche service — "Autres services" en cartes visuelles (04/10/2026). */
.dominium-svc-tile__link {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: var(--color-bg);
    color: var(--color-text);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .07);
    overflow: hidden;
    isolation: isolate;
    transition: transform .45s var(--ease-natural), box-shadow .45s var(--ease-natural);
}
/* Voile jaune qui monte au survol. */
.dominium-svc-tile__link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-primary);
    transform: translateY(101%);
    transition: transform .6s cubic-bezier(.77, 0, .18, 1);
}
.dominium-svc-tile__link:hover,
.dominium-svc-tile__link:focus-visible {
    color: var(--color-text);
    transform: translateY(-8px);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .14);
}
.dominium-svc-tile__link:hover::before,
.dominium-svc-tile__link:focus-visible::before {
    transform: none;
}
.dominium-svc-tile__media {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%);
}
.dominium-svc-tile__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-svc-tile__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(28, 28, 28, .05), rgba(28, 28, 28, .45));
}
.dominium-svc-tile__link:hover .dominium-svc-tile__media img {
    transform: scale(1.08);
}
.dominium-svc-tile__number {
    position: absolute;
    z-index: 1;
    top: 16px;
    right: 20px;
    font-size: 2.5rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255, 255, 255, .85);
}
.dominium-svc-tile__icon {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: -40px 0 0 clamp(22px, 2.2vw, 32px);
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 26px;
    box-shadow: 0 12px 26px rgba(0, 0, 0, .25);
    transition: transform .5s var(--ease-natural);
}
.dominium-svc-tile__link:hover .dominium-svc-tile__icon {
    transform: rotate(-8deg) scale(1.05);
}
.dominium-svc-tile__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5) clamp(22px, 2.2vw, 32px) clamp(22px, 2.2vw, 30px);
}
.dominium-svc-tile__title {
    font-size: clamp(1.25rem, 1rem + .6vw, 1.5rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
}
.dominium-svc-tile__excerpt {
    font-size: .9375rem;
    line-height: 1.65;
    color: var(--color-text-muted);
    transition: color .4s var(--ease-natural);
}
.dominium-svc-tile__link:hover .dominium-svc-tile__excerpt {
    color: rgba(0, 0, 0, .75);
}
.dominium-svc-tile__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: auto;
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
    transition: border-color .4s var(--ease-natural);
}
.dominium-svc-tile__link:hover .dominium-svc-tile__foot {
    border-color: rgba(0, 0, 0, .2);
}
.dominium-svc-tile__price {
    display: flex;
    flex-direction: column;
    font-size: 1.0625rem;
    font-weight: 900;
    line-height: 1.2;
}
.dominium-svc-tile__price small {
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-svc-tile__go {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural), transform .4s var(--ease-natural);
}
.dominium-svc-tile__link:hover .dominium-svc-tile__go {
    background-color: var(--color-dark);
    color: var(--color-primary);
    transform: rotate(-45deg);
}
@media (prefers-reduced-motion: reduce) {
    .dominium-svc-tile__link,
    .dominium-svc-tile__link::before,
    .dominium-svc-tile__media img,
    .dominium-svc-tile__icon,
    .dominium-svc-tile__go {
        transition: none;
    }
}


/* =======================================================================
   PAGE /secteurs (refaite le 04/10/2026).
   ======================================================================= */

/* --- Bandeau défilant géant --- */
.dominium-sx-marquee {
    display: flex;
    overflow: hidden;
    padding: var(--space-5) 0;
    background-color: var(--color-primary);
    border-bottom: 4px solid var(--color-dark);
}
.dominium-sx-marquee__track {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: clamp(20px, 2.4vw, 40px);
    padding-right: clamp(20px, 2.4vw, 40px);
    animation: dominium-marquee 40s linear infinite;
}
.dominium-sx-marquee span {
    font-size: clamp(2rem, 1.2rem + 3vw, 4.25rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--color-dark);
}
.dominium-sx-marquee span.is-outline {
    color: transparent;
    -webkit-text-stroke: 2px var(--color-dark);
}
.dominium-sx-marquee i {
    font-size: clamp(1rem, .8rem + .8vw, 1.75rem);
    color: var(--color-dark);
}

/* --- Explorateur --- */
.dominium-sx {
    position: relative;
    padding: var(--space-9) 0;
    overflow: hidden;
}
.dominium-sx__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
}
.dominium-sx__eyebrow {
    margin: 0 0 var(--space-3);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.dominium-sx__title {
    max-width: 760px;
}
.dominium-sx__title span {
    color: var(--color-primary);
}
.dominium-sx__count {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}
.dominium-sx__count strong {
    font-size: clamp(3.5rem, 2.4rem + 3vw, 5.5rem);
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: .9;
    color: var(--color-primary);
    -webkit-text-stroke: 1.5px var(--color-dark);
}
.dominium-sx__count span {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}
.dominium-sx__explorer {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.6fr);
    gap: clamp(24px, 3vw, 56px);
    align-items: stretch;
}
.dominium-sx__list {
    display: flex;
    position: relative;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--color-border);
}
.dominium-sx__tab {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-4);
    width: 100%;
    padding: 16px 12px;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    background: none;
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    isolation: isolate;
    transition: color .35s var(--ease-natural), padding-left .4s var(--ease-natural);
}
.dominium-sx__tab::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-dark);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s cubic-bezier(.77, 0, .18, 1);
}
.dominium-sx__tab-index {
    flex-shrink: 0;
    width: 2rem;
    font-size: .875rem;
    font-weight: 800;
    color: var(--color-text-muted);
    transition: color .35s var(--ease-natural);
}
.dominium-sx__tab-name {
    flex: 1;
    font-size: clamp(1.0625rem, .95rem + .4vw, 1.3125rem);
    font-weight: 800;
    letter-spacing: -0.01em;
}
.dominium-sx__tab-icon {
    font-size: 1.125rem;
    color: var(--color-text-muted);
    opacity: .5;
    transition: color .35s var(--ease-natural), opacity .35s var(--ease-natural), transform .45s var(--ease-natural);
}
.dominium-sx__tab:hover {
    padding-left: 20px;
}
.dominium-sx__tab.is-active {
    padding-left: 20px;
    color: var(--color-text-on-dark);
}
.dominium-sx__tab.is-active::before {
    transform: scaleX(1);
}
.dominium-sx__tab.is-active .dominium-sx__tab-index,
.dominium-sx__tab.is-active .dominium-sx__tab-icon {
    color: var(--color-primary);
    opacity: 1;
}
.dominium-sx__tab.is-active .dominium-sx__tab-icon {
    transform: rotate(-10deg) scale(1.15);
}
.dominium-sx__tab:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
}

/* Scène. */
.dominium-sx__stage {
    position: relative;
    min-height: 600px;
    background-color: var(--color-dark);
    overflow: hidden;
    box-shadow: 18px 18px 0 var(--color-primary);
}
.dominium-sx__panel {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    color: var(--color-text-on-dark);
    opacity: 0;
    visibility: hidden;
    transition: opacity .6s var(--ease-natural), visibility .6s;
}
.dominium-sx__panel.is-active {
    opacity: 1;
    visibility: visible;
}
.dominium-sx__panel-media {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.dominium-sx__panel-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.15);
    transition: transform 6.5s ease-out;
}
.dominium-sx__panel.is-active .dominium-sx__panel-media img {
    transform: scale(1);
}
.dominium-sx__panel-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(28, 28, 28, .15) 0%, rgba(28, 28, 28, .55) 45%, rgba(28, 28, 28, .95) 100%),
        linear-gradient(90deg, rgba(28, 28, 28, .55), transparent 70%);
}
.dominium-sx__panel-icon {
    position: absolute;
    top: clamp(24px, 3vw, 44px);
    right: clamp(24px, 3vw, 44px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(90px, 8vw, 130px);
    aspect-ratio: 1;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: clamp(2.5rem, 1.8rem + 2vw, 3.75rem);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    transform: rotate(0deg) scale(.6);
    opacity: 0;
    transition: transform .8s cubic-bezier(.34, 1.4, .64, 1) .2s, opacity .5s var(--ease-natural) .2s;
}
.dominium-sx__panel.is-active .dominium-sx__panel-icon {
    transform: rotate(-6deg) scale(1);
    opacity: 1;
}
.dominium-sx__panel-body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
    padding: clamp(28px, 3.4vw, 56px);
}
.dominium-sx__panel-body > * {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s var(--ease-natural), transform .7s var(--ease-natural);
}
.dominium-sx__panel.is-active .dominium-sx__panel-body > * {
    opacity: 1;
    transform: none;
}
.dominium-sx__panel.is-active .dominium-sx__panel-body > :nth-child(2) { transition-delay: .1s; }
.dominium-sx__panel.is-active .dominium-sx__panel-body > :nth-child(3) { transition-delay: .2s; }
.dominium-sx__panel.is-active .dominium-sx__panel-body > :nth-child(4) { transition-delay: .3s; }
.dominium-sx__panel.is-active .dominium-sx__panel-body > :nth-child(5) { transition-delay: .4s; }
.dominium-sx__panel-index {
    font-size: .875rem;
    font-weight: 800;
    letter-spacing: .14em;
    color: var(--color-primary);
}
.dominium-sx__panel-title {
    margin: 0;
    font-size: clamp(2.25rem, 1.4rem + 2.6vw, 4.25rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: var(--color-text-on-dark);
}
.dominium-sx__panel-text {
    max-width: 560px;
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, .8);
}
.dominium-sx__panel-challenges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-sx__panel-challenges li {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 8px 14px;
    border: 1px solid rgba(255, 255, 255, .25);
    background-color: rgba(0, 0, 0, .35);
    font-size: .875rem;
    font-weight: 700;
    backdrop-filter: blur(4px);
}
.dominium-sx__panel-challenges i {
    color: var(--color-primary);
}
.dominium-sx__progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    height: 4px;
    background-color: rgba(255, 255, 255, .15);
}
.dominium-sx__progress span {
    display: block;
    height: 100%;
    background-color: var(--color-primary);
    transform-origin: left;
    animation: dominium-showcase-progress 6s linear both;
}
.dominium-sx__explorer.is-paused .dominium-sx__progress span {
    animation-play-state: paused;
}

/* Apparition. */
.dominium-sx.js-reveal .dominium-sx__header > *,
.dominium-sx.js-reveal .dominium-sx__list li {
    opacity: 0;
    transform: translateY(24px);
}
.dominium-sx.js-reveal .dominium-sx__stage {
    clip-path: inset(0 0 0 100%);
}
.dominium-sx.js-reveal .dominium-edge-title::before {
    transform: scaleX(0);
}
.dominium-sx__header > * {
    transition: opacity .8s var(--ease-natural), transform .9s var(--ease-natural);
}
.dominium-sx.js-reveal .dominium-sx__list li {
    transition: opacity .6s var(--ease-natural) calc(.2s + var(--i, 0) * .06s), transform .7s var(--ease-natural) calc(.2s + var(--i, 0) * .06s);
}
.dominium-sx__list li:nth-child(n) { --i: 0; }
.dominium-sx__stage {
    transition: clip-path 1.2s cubic-bezier(.77, 0, .18, 1) .3s;
}
.dominium-sx.is-inview .dominium-sx__header > *,
.dominium-sx.is-inview .dominium-sx__list li,
.dominium-sx.is-inview .dominium-edge-title::before {
    opacity: 1;
    transform: none;
}
.dominium-sx.is-inview .dominium-sx__stage {
    clip-path: inset(-30px -30px -30px -30px);
}

/* --- Mosaïque --- */
.dominium-sx-mosaic {
    padding: var(--space-9) 0;
    background-color: var(--color-surface);
}
.dominium-sx-mosaic__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-flow: dense;
    gap: clamp(12px, 1.4vw, 24px);
}
.dominium-sx-tile {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    color: var(--color-text-on-dark);
    isolation: isolate;
}
.dominium-sx-tile:hover,
.dominium-sx-tile:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-sx-tile:nth-child(1),
.dominium-sx-tile:nth-child(5) {
    grid-row: span 2;
    aspect-ratio: auto;
}
.dominium-sx-tile:nth-child(9) {
    grid-column: span 2;
    aspect-ratio: auto;
}
.dominium-sx-tile img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-sx-tile__shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(28, 28, 28, .1) 30%, rgba(28, 28, 28, .85));
    transition: background-color .5s var(--ease-natural);
}
.dominium-sx-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-primary);
    mix-blend-mode: multiply;
    clip-path: circle(0% at 90% 10%);
    transition: clip-path .8s cubic-bezier(.77, 0, .18, 1);
}
.dominium-sx-tile:hover::after,
.dominium-sx-tile:focus-visible::after {
    clip-path: circle(150% at 90% 10%);
}
.dominium-sx-tile:hover img {
    transform: scale(1.08);
}
.dominium-sx-tile__index {
    position: absolute;
    top: 18px;
    right: 20px;
    font-size: 2.25rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255, 255, 255, .85);
}
.dominium-sx-tile__body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    padding: clamp(18px, 2vw, 30px);
}
.dominium-sx-tile__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    margin-bottom: var(--space-2);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 22px;
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural), transform .5s var(--ease-natural);
}
.dominium-sx-tile:hover .dominium-sx-tile__icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
    transform: rotate(-8deg);
}
.dominium-sx-tile__name {
    font-size: clamp(1.25rem, 1rem + .8vw, 1.875rem);
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.dominium-sx-tile__more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    max-height: 0;
    overflow: hidden;
    font-size: .9375rem;
    font-weight: 700;
    opacity: 0;
    transition: max-height .5s var(--ease-natural), opacity .4s var(--ease-natural);
}
.dominium-sx-tile:hover .dominium-sx-tile__more,
.dominium-sx-tile:focus-visible .dominium-sx-tile__more {
    max-height: 30px;
    opacity: 1;
}
.dominium-sx-mosaic.js-reveal .dominium-sx-tile {
    opacity: 0;
    transform: scale(.92);
}
.dominium-sx-mosaic.js-reveal .dominium-sx-tile {
    transition: opacity .7s var(--ease-natural) calc(var(--i, 0) * .08s), transform .8s var(--ease-natural) calc(var(--i, 0) * .08s);
}
.dominium-sx-mosaic.is-inview .dominium-sx-tile {
    opacity: 1;
    transform: none;
}

@media (max-width: 991px) {
    .dominium-sx__explorer {
        grid-template-columns: 1fr;
    }
    .dominium-sx__list {
        flex-direction: row;
        overflow-x: auto;
        border-top: 0;
        scrollbar-width: none;
    }
    .dominium-sx__tab {
        width: auto;
        white-space: nowrap;
        border: 1px solid var(--color-border);
    }
    .dominium-sx__tab-icon {
        display: none;
    }
    .dominium-sx__stage {
        min-height: 520px;
        box-shadow: 10px 10px 0 var(--color-primary);
    }
    .dominium-sx-mosaic__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dominium-sx-tile:nth-child(n) {
        grid-row: auto;
        grid-column: auto;
        aspect-ratio: 4 / 3;
    }
}
@media (max-width: 575px) {
    .dominium-sx-mosaic__grid {
        grid-template-columns: 1fr;
    }
    .dominium-sx-tile__more {
        max-height: 30px;
        opacity: 1;
    }
}
@media (hover: none) {
    .dominium-sx-tile__more {
        max-height: 30px;
        opacity: 1;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-sx-marquee__track,
    .dominium-sx__progress span {
        animation: none;
    }
    .dominium-sx__panel,
    .dominium-sx__panel-media img,
    .dominium-sx__panel-icon,
    .dominium-sx__panel-body > *,
    .dominium-sx__tab,
    .dominium-sx__tab::before,
    .dominium-sx__stage,
    .dominium-sx-tile,
    .dominium-sx-tile img,
    .dominium-sx-tile::after {
        transition: none;
    }
}


/* =======================================================================
   FICHE SECTEUR /secteurs/{slug} (04/10/2026) — compléments.
   ======================================================================= */
.dominium-sxd-challenges {
    background-color: var(--color-surface);
}
.dominium-sxd__solutions {
    max-width: 560px;
    margin: calc(var(--space-6) * -1) 0 var(--space-7);
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text-muted);
}
.dominium-method__number i {
    font-size: .62em;
}

/* Précédent / suivant. */
.dominium-sxd-pager {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    background-color: var(--color-dark);
}
.dominium-sxd-pager__link {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-5);
    min-height: 170px;
    padding: var(--space-6) clamp(24px, 5vw, 96px);
    color: var(--color-text-on-dark);
    overflow: hidden;
    isolation: isolate;
}
.dominium-sxd-pager__link--next {
    justify-content: flex-end;
    text-align: right;
}
.dominium-sxd-pager__link:hover,
.dominium-sxd-pager__link:focus-visible {
    color: var(--color-text-on-dark);
}
.dominium-sxd-pager__bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-size: cover;
    background-position: center;
    opacity: .18;
    transform: scale(1.1);
    transition: opacity .6s var(--ease-natural), transform 1.2s var(--ease-natural);
}
.dominium-sxd-pager__link:hover .dominium-sxd-pager__bg {
    opacity: .45;
    transform: scale(1);
}
.dominium-sxd-pager__link small {
    display: block;
    margin-bottom: 4px;
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.dominium-sxd-pager__link strong {
    font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.5rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.05;
}
.dominium-sxd-pager__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
    font-size: 18px;
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural), transform .4s var(--ease-natural);
}
.dominium-sxd-pager__link:hover .dominium-sxd-pager__arrow {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-sxd-pager__link--prev:hover .dominium-sxd-pager__arrow {
    transform: translateX(-6px);
}
.dominium-sxd-pager__link--next:hover .dominium-sxd-pager__arrow {
    transform: translateX(6px);
}
.dominium-sxd-pager__all {
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(80px, 8vw, 140px);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 26px;
    transition: background-color .3s var(--ease-natural);
}
.dominium-sxd-pager__all:hover,
.dominium-sxd-pager__all:focus-visible {
    background-color: var(--color-primary-hover);
    color: var(--color-dark);
}

/* Autres secteurs. */
.dominium-sxd-others__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(12px, 1.4vw, 24px);
}
.dominium-sxd-others__grid .dominium-sx-tile:nth-child(n) {
    grid-row: auto;
    grid-column: auto;
    aspect-ratio: 4 / 3;
}
@media (max-width: 991px) {
    .dominium-sxd-pager {
        grid-template-columns: 1fr;
    }
    .dominium-sxd-pager__link--next {
        justify-content: flex-start;
        text-align: left;
        flex-direction: row-reverse;
    }
    .dominium-sxd-pager__all {
        width: 100%;
        height: 64px;
    }
    .dominium-sxd-others__grid {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-sxd-pager__bg,
    .dominium-sxd-pager__arrow {
        transition: none;
    }
}


/* =======================================================================
   HEADER (04/10/2026) — barre du haut noire, bouton recherche carré avec
   raccourci, CTA à flèche, header collant compact + barre de progression.
   ======================================================================= */
.atf-top-header.style1 {
    background-color: var(--color-dark);
    border-bottom: 0;
}
.atf-top-header-list li,
.atf-top-header-list li a {
    color: rgba(255, 255, 255, .78) !important;
}
.atf-top-header-list li a:hover {
    color: var(--color-primary) !important;
}
.atf-top-header-list li i {
    color: var(--color-primary);
}
.dominium-topbar-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-5);
}
.dominium-topbar-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 4px 12px;
    border: 1px solid rgba(255, 195, 0, .45);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-primary);
    white-space: nowrap;
}
.dominium-topbar-badge__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: var(--color-primary);
    animation: dominium-dot-blink 1.6s ease-in-out infinite;
}
@keyframes dominium-dot-blink {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(255, 195, 0, .6); }
    50% { opacity: .6; box-shadow: 0 0 0 5px rgba(255, 195, 0, 0); }
}
.atf-top-header .atf-header-top-social ul li a {
    border-color: rgba(255, 255, 255, .2) !important;
    background-color: transparent !important;
    color: var(--color-text-on-dark) !important;
}
.atf-top-header .atf-header-top-social ul li a:hover {
    border-color: var(--color-primary) !important;
    background-color: var(--color-primary) !important;
    color: var(--color-dark) !important;
}

/* Header principal. */
.atf-site-header.atf-style1 {
    position: relative;
}
.atf-header-bottom-right {
    gap: var(--space-3);
}
.dominium-header-search {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    height: 50px;
    padding: 0 14px;
    border: 1px solid var(--color-border);
    background-color: var(--color-bg);
    color: var(--color-dark);
    font-size: 18px;
    cursor: pointer;
    transition: border-color .3s var(--ease-natural), background-color .3s var(--ease-natural);
}
.dominium-header-search:hover,
.dominium-header-search:focus-visible {
    border-color: var(--color-dark);
    background-color: var(--color-primary);
}
.dominium-header-search__hint {
    padding: 2px 6px;
    border: 1px solid var(--color-border);
    background-color: var(--color-surface);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--color-text-muted);
}
.dominium-header-cta {
    position: relative;
    align-items: center;
    gap: var(--space-3);
    height: 50px;
    padding: 0 8px 0 22px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-size: .9375rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    isolation: isolate;
}
.dominium-header-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-primary);
    transform: translateX(-101%);
    transition: transform .5s cubic-bezier(.77, 0, .18, 1);
}
.dominium-header-cta:hover,
.dominium-header-cta:focus-visible {
    color: var(--color-dark);
}
.dominium-header-cta:hover::before,
.dominium-header-cta:focus-visible::before {
    transform: none;
}
.dominium-header-cta__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 13px;
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural), transform .4s var(--ease-natural);
}
.dominium-header-cta:hover .dominium-header-cta__icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
    transform: rotate(-45deg);
}
.atf-hamburger-toogle {
    width: 50px;
    height: 50px;
}

/* Header collant : plus compact, ombre douce, barre de progression. */
.atf-site-header.atf-style1.atf-sticky-active {
    box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
}
.atf-site-header.atf-style1.atf-sticky-active .atf-main-menu > nav > ul > li > a {
    padding-top: 20px;
    padding-bottom: 20px;
}
.dominium-header-progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    pointer-events: none;
    opacity: 0;
    transition: opacity .3s var(--ease-natural);
}
.atf-sticky-active .dominium-header-progress {
    opacity: 1;
}
.dominium-header-progress span {
    display: block;
    height: 100%;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
}
@media (max-width: 1399px) {
    .dominium-header-search__hint {
        display: none;
    }
}
@media (max-width: 1199px) {
    .dominium-topbar-badge {
        display: none;
    }
}
@media (max-width: 767px) {
    .dominium-header-search {
        width: 46px;
        height: 46px;
        justify-content: center;
        padding: 0;
    }
}

/* =======================================================================
   Palette de recherche (components/public/site-search).
   ======================================================================= */
.dominium-search-open,
.dominium-search-open body {
    overflow: hidden;
}
.dominium-search {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(60px, 12vh, 140px) 16px 16px;
}
.dominium-search[hidden] {
    display: none;
}
.dominium-search__backdrop {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, .72);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    opacity: 0;
    transition: opacity .3s var(--ease-natural);
}
.dominium-search__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    width: min(720px, 100%);
    max-height: calc(100vh - 180px);
    background-color: var(--color-bg);
    box-shadow: 0 40px 100px rgba(0, 0, 0, .5), 12px 12px 0 var(--color-primary);
    opacity: 0;
    transform: translateY(-24px) scale(.97);
    transition: opacity .3s var(--ease-natural), transform .4s cubic-bezier(.16, 1, .3, 1);
}
.dominium-search.is-open .dominium-search__backdrop,
.dominium-search.is-open .dominium-search__panel {
    opacity: 1;
}
.dominium-search.is-open .dominium-search__panel {
    transform: none;
}
.dominium-search__form {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 0 var(--space-4) 0 var(--space-5);
    border-bottom: 1px solid var(--color-border);
}
.dominium-search__glass {
    font-size: 22px;
    color: var(--color-dark);
}
.dominium-search__form input {
    flex: 1;
    min-width: 0;
    height: 74px;
    border: 0;
    background: none;
    font-size: clamp(1.0625rem, .95rem + .4vw, 1.375rem);
    font-weight: 600;
    color: var(--color-text);
}
.dominium-search__form input:focus {
    outline: none;
}
.dominium-search__form input::placeholder {
    color: var(--color-text-muted);
    font-weight: 400;
    opacity: 1;
}
.dominium-search__form input::-webkit-search-cancel-button {
    display: none;
}
.dominium-search kbd {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border: 1px solid var(--color-border);
    border-bottom-width: 2px;
    background-color: var(--color-surface);
    font-family: inherit;
    font-size: .6875rem;
    font-weight: 700;
    color: var(--color-text-muted);
}
.dominium-search__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 0;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-size: 18px;
    cursor: pointer;
    transition: background-color .25s var(--ease-natural), color .25s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-search__close:hover {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: rotate(90deg);
}
.dominium-search__body {
    overflow-y: auto;
    padding: var(--space-5);
}
.dominium-search__label {
    margin: 0 0 var(--space-3);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-search__chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.dominium-search__chips a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    font-size: .9375rem;
    font-weight: 600;
    color: var(--color-text);
    transition: background-color .25s var(--ease-natural), border-color .25s var(--ease-natural);
}
.dominium-search__chips a i {
    color: var(--color-text-muted);
}
.dominium-search__chips a:hover,
.dominium-search__chips a:focus-visible {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-search__chips a:hover i {
    color: var(--color-dark);
}
.dominium-search__results {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-search__results li {
    animation: dominium-search-in .35s var(--ease-natural) both;
    animation-delay: calc(var(--i, 0) * .03s);
}
@keyframes dominium-search-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}
.dominium-search__hit {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: 12px 14px;
    color: var(--color-text);
    transition: background-color .2s var(--ease-natural);
}
.dominium-search__hit:hover,
.dominium-search__hit.is-active {
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-search__hit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    background-color: var(--color-surface);
    color: var(--color-dark);
    font-size: 17px;
    transition: background-color .2s var(--ease-natural);
}
.dominium-search__hit.is-active .dominium-search__hit-icon,
.dominium-search__hit:hover .dominium-search__hit-icon {
    background-color: var(--color-primary);
}
.dominium-search__hit-text {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}
.dominium-search__hit-text strong {
    overflow: hidden;
    font-size: 1rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dominium-search__hit-text mark {
    padding: 0 2px;
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-search__hit-text small {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-search__hit.is-active .dominium-search__hit-text small,
.dominium-search__hit:hover .dominium-search__hit-text small {
    color: var(--color-text-muted-on-dark);
}
.dominium-search__hit-go {
    color: var(--color-primary);
    opacity: 0;
    transform: translateX(-6px);
    transition: opacity .2s var(--ease-natural), transform .2s var(--ease-natural);
}
.dominium-search__hit.is-active .dominium-search__hit-go,
.dominium-search__hit:hover .dominium-search__hit-go {
    opacity: 1;
    transform: none;
}
.dominium-search__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-6) 0;
    text-align: center;
}
.dominium-search__empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: var(--space-3);
    background-color: var(--color-primary);
    font-size: 28px;
}
.dominium-search__empty p {
    margin: 0 0 var(--space-4);
    color: var(--color-text-muted);
}
.dominium-search__empty strong {
    color: var(--color-text);
}
.dominium-search__blog {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 12px 18px;
    border: 0;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-weight: 700;
    cursor: pointer;
}
.dominium-search__blog:hover {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-search__foot {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-5);
    padding: 12px var(--space-5);
    border-top: 1px solid var(--color-border);
    background-color: var(--color-surface);
    font-size: .8125rem;
    color: var(--color-text-muted);
}
.dominium-search__foot span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
@media (max-width: 575px) {
    .dominium-search .dominium-search__kbd,
    .dominium-search__foot {
        display: none;
    }
    .dominium-search__form input {
        height: 62px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-topbar-badge__dot,
    .dominium-search__results li {
        animation: none;
    }
    .dominium-search__panel,
    .dominium-search__backdrop,
    .dominium-header-cta::before {
        transition: none;
    }
}


/* =======================================================================
   Sous-menu "Solutions" (refait le 04/10/2026) : panneau large 2 colonnes,
   barre jaune qui se déploie, cartes qui passent au noir au survol avec
   flèche glissante, pied sombre "Voir toutes les solutions".
   Desktop uniquement (le tiroir mobile garde sa liste simple).
   ======================================================================= */
@media only screen and (min-width: 992px) {
    .atf-main-menu .atf-nav-list > li > .dominium-nav-solutions {
        left: 50%;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        width: 720px;
        margin-left: -360px;
        padding: 22px 22px 0 !important;
        border-top: 0;
        background-color: var(--color-bg);
        box-shadow: 0 30px 70px rgba(0, 0, 0, .18), 0 0 0 1px rgba(0, 0, 0, .04);
    }
    /* Pont invisible : le survol ne se perd pas entre le lien et le panneau. */
    .atf-main-menu .atf-nav-list > li > .dominium-nav-solutions::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 100%;
        height: 14px;
    }
    .atf-main-menu .atf-nav-list > li > .dominium-nav-solutions::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background-color: var(--color-primary);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform .6s cubic-bezier(.77, 0, .18, 1) .1s;
    }
    .atf-main-menu .atf-nav-list > li.menu-item-children:hover > .dominium-nav-solutions::before,
    .atf-main-menu .atf-nav-list > li.menu-item-children:focus-within > .dominium-nav-solutions::before {
        transform: none;
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions li > .dominium-nav-solutions__item {
        position: relative;
        align-items: center;
        gap: var(--space-4);
        height: 100%;
        padding: 16px 44px 16px 16px !important;
        border-radius: 0;
        text-transform: none;
        transition: background-color .3s var(--ease-natural);
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions li > .dominium-nav-solutions__item::after {
        content: "\f061";
        position: absolute;
        top: 50%;
        right: 16px;
        font-family: var(--atf-ff-fontawesome);
        font-weight: 900;
        font-size: 13px;
        color: var(--color-primary);
        opacity: 0;
        transform: translate(-8px, -50%);
        transition: opacity .3s var(--ease-natural), transform .3s var(--ease-natural);
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions li > .dominium-nav-solutions__item:hover,
    .atf-main-menu .atf-nav-list .dominium-nav-solutions li > .dominium-nav-solutions__item:focus-visible {
        padding-left: 16px !important;
        background-color: var(--color-dark);
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions li > .dominium-nav-solutions__item:hover::after,
    .atf-main-menu .atf-nav-list .dominium-nav-solutions li > .dominium-nav-solutions__item:focus-visible::after {
        opacity: 1;
        transform: translate(0, -50%);
    }
    .dominium-nav-solutions .dominium-nav-solutions__icon {
        width: 50px;
        height: 50px;
        border-radius: 0;
        background-color: var(--color-surface);
        color: var(--color-dark);
        font-size: 20px;
        transition: background-color .3s var(--ease-natural), transform .4s var(--ease-natural);
    }
    .dominium-nav-solutions .dominium-nav-solutions__item:hover .dominium-nav-solutions__icon,
    .dominium-nav-solutions .dominium-nav-solutions__item:focus-visible .dominium-nav-solutions__icon {
        background-color: var(--color-primary);
        transform: rotate(-6deg) scale(1.05);
    }
    .dominium-nav-solutions .dominium-nav-solutions__title {
        font-size: 1rem;
        text-transform: none;
        transition: color .3s var(--ease-natural);
    }
    .dominium-nav-solutions .dominium-nav-solutions__desc {
        font-size: .8125rem;
        text-transform: none;
        transition: color .3s var(--ease-natural);
    }
    .dominium-nav-solutions .dominium-nav-solutions__item:hover .dominium-nav-solutions__title,
    .dominium-nav-solutions .dominium-nav-solutions__item:focus-visible .dominium-nav-solutions__title {
        color: var(--color-text-on-dark);
    }
    .dominium-nav-solutions .dominium-nav-solutions__item:hover .dominium-nav-solutions__desc,
    .dominium-nav-solutions .dominium-nav-solutions__item:focus-visible .dominium-nav-solutions__desc {
        color: var(--color-text-muted-on-dark);
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions > li.dominium-nav-solutions__footer {
        grid-column: 1 / -1;
        margin: 16px -22px 0;
        padding: 0 !important;
        border-top: 0;
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions > li.dominium-nav-solutions__footer > a {
        display: flex;
        justify-content: space-between;
        padding: 18px 24px !important;
        background-color: var(--color-dark);
        color: var(--color-text-on-dark) !important;
        font-size: .9375rem;
        font-weight: 700;
        text-transform: none;
        transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural);
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions > li.dominium-nav-solutions__footer > a:hover,
    .atf-main-menu .atf-nav-list .dominium-nav-solutions > li.dominium-nav-solutions__footer > a:focus-visible {
        background-color: var(--color-primary);
        color: var(--color-dark) !important;
    }
    .atf-main-menu .atf-nav-list .dominium-nav-solutions > li.dominium-nav-solutions__footer > a:hover i {
        color: var(--color-dark);
        transform: translateX(6px);
    }
}
/* Lien "Solutions" : le ::after redevient le trait jaune commun (le
   chevron du template y entrait en conflit), chevron en icône dédiée. */
.atf-main-menu > nav > ul > li.menu-item-children > a::after {
    content: "";
    margin-left: 0;
}
.atf-main-menu > nav > ul > li.menu-item-children:hover > a::after,
.atf-main-menu > nav > ul > li.menu-item-children:focus-within > a::after {
    transform: scaleX(1);
}
.dominium-nav-caret {
    margin-left: 7px;
    font-size: 10px;
    vertical-align: 2px;
    transition: transform .35s var(--ease-natural);
}
.atf-main-menu li.menu-item-children:hover .dominium-nav-caret,
.atf-main-menu li.menu-item-children:focus-within .dominium-nav-caret {
    transform: rotate(180deg);
}
.atf-hamburger-menu .dominium-nav-caret {
    display: none;
}
/* Le header collant garde son bandeau jaune derrière le logo. */
.atf-site-header.atf-style1.atf_bg_skew.atf-sticky-active {
    background-color: var(--color-primary);
}
.dominium-header-progress {
    z-index: 3;
}

/* Préchargeur : sortie courte (0,45 s au lieu d'environ 1 s + 0,6 s). */
.atf-preloader.loaded {
    pointer-events: none;
}
.atf-preloader.loaded .atf-preloader__inner {
    transition: opacity .15s ease-out;
}
.atf-preloader.loaded .atf-preloader__bg {
    transition: width .45s cubic-bezier(.77, 0, .18, 1);
}

/* Ancres (#team, #testimonial…) : la section n'est pas masquée par le
   header collant à l'arrivée depuis un lien. */
section[id] {
    scroll-margin-top: 90px;
}

/* =======================================================================
   /solutions (refaite le 04/10/2026) : intro + orbite animée, bande
   défilante, explorateur à défilement automatique, CTA commun.
   ======================================================================= */
.dominium-sol-intro {
    position: relative;
    overflow: hidden;
    padding: clamp(80px, 9vw, 140px) 0;
    background-color: var(--color-bg);
}
.dominium-sol-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(40px, 6vw, 110px);
}
.dominium-sol-intro__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    font-size: .875rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text);
}
.dominium-sol-intro__eyebrow::before {
    content: "";
    width: 40px;
    height: 4px;
    background-color: var(--color-primary);
}
.dominium-sol-intro__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2.25rem, 1.5rem + 2.4vw, 4rem);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.05;
    color: var(--color-text);
}
.dominium-sol-intro__lead {
    max-width: 560px;
    margin: 0 0 var(--space-6);
    font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
    line-height: 1.75;
    color: var(--color-text-muted);
}
.dominium-sol-intro__meta {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.dominium-sol-intro__count {
    position: relative;
    font-size: clamp(3rem, 2.4rem + 2vw, 4.5rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1;
    color: var(--color-text);
    isolation: isolate;
}
.dominium-sol-intro__count::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: -4px;
    right: -4px;
    bottom: 6px;
    height: 38%;
    background-color: var(--color-primary);
}
.dominium-sol-intro__count-label {
    max-width: 220px;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-text);
}
.dominium-sol-intro__btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    min-height: 58px;
    padding: 0 10px 0 28px;
    overflow: hidden;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-size: 1rem;
    font-weight: 700;
    isolation: isolate;
}
.dominium-sol-intro__btn::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-primary);
    transform: translateX(-101%);
    transition: transform .5s cubic-bezier(.77, 0, .18, 1);
}
.dominium-sol-intro__btn:hover,
.dominium-sol-intro__btn:focus-visible {
    color: var(--color-dark);
}
.dominium-sol-intro__btn:hover::before,
.dominium-sol-intro__btn:focus-visible::before {
    transform: none;
}
.dominium-sol-intro__btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    transition: background-color .4s var(--ease-natural), color .4s var(--ease-natural);
}
.dominium-sol-intro__btn:hover .dominium-sol-intro__btn-icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
    animation: dominium-sol-bounce 1s ease-in-out infinite;
}
@keyframes dominium-sol-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
}

/* Orbite : anneaux, noyau noir, 6 pastilles qui tournent lentement. */
.dominium-sol-orbit {
    --r: clamp(150px, 15vw, 230px);
    position: relative;
    width: calc(var(--r) * 2 + 150px);
    max-width: 100%;
    aspect-ratio: 1;
    margin-inline: auto;
}
.dominium-sol-orbit::before {
    content: "";
    position: absolute;
    inset: 18%;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .14) 1.2px, transparent 1.6px);
    background-size: 16px 16px;
    border-radius: 50%;
    -webkit-mask-image: radial-gradient(circle, #000 40%, transparent 72%);
    mask-image: radial-gradient(circle, #000 40%, transparent 72%);
}
.dominium-sol-orbit__ring {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}
.dominium-sol-orbit__ring--outer {
    width: calc(var(--r) * 2);
    height: calc(var(--r) * 2);
    border: 1.5px dashed rgba(0, 0, 0, .22);
    animation: dominium-sol-spin 90s linear infinite reverse;
}
.dominium-sol-orbit__ring--inner {
    width: calc(var(--r) * 1.25);
    height: calc(var(--r) * 1.25);
    border: 10px solid var(--color-primary);
    border-right-color: transparent;
    border-bottom-color: transparent;
    animation: dominium-sol-spin 14s linear infinite;
}
@keyframes dominium-sol-spin {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}
.dominium-sol-orbit__core {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: calc(var(--r) * .85);
    height: calc(var(--r) * .85);
    border-radius: 50%;
    background-color: var(--color-dark);
    box-shadow: 0 0 0 12px rgba(0, 0, 0, .05), 0 30px 60px rgba(0, 0, 0, .25);
    transform: translate(-50%, -50%);
}
.dominium-sol-orbit__core::after {
    content: "";
    position: absolute;
    inset: -12px;
    border-radius: 50%;
    border: 2px solid var(--color-primary);
    opacity: 0;
    animation: dominium-sol-pulse 3s ease-out infinite;
}
@keyframes dominium-sol-pulse {
    0% { opacity: .8; transform: scale(.9); }
    100% { opacity: 0; transform: scale(1.35); }
}
.dominium-sol-orbit__core-num {
    font-size: clamp(2.5rem, 2rem + 1.6vw, 3.75rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1;
    color: var(--color-primary);
}
.dominium-sol-orbit__core-label {
    margin-top: 6px;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text-on-dark);
}
.dominium-sol-orbit__track {
    position: absolute;
    inset: 0;
    animation: dominium-sol-track 60s linear infinite;
}
@keyframes dominium-sol-track {
    to { transform: rotate(360deg); }
}
.dominium-sol-orbit__node {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    transform: rotate(var(--a)) translateX(var(--r)) rotate(calc(var(--a) * -1));
}
.dominium-sol-orbit__chip {
    position: absolute;
    top: 0;
    left: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px 8px 8px;
    background-color: var(--color-bg);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .14);
    font-size: .9375rem;
    font-weight: 700;
    white-space: nowrap;
    color: var(--color-text);
    transform: translate(-50%, -50%);
    animation: dominium-sol-counter 60s linear infinite;
}
@keyframes dominium-sol-counter {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(-360deg); }
}
.dominium-sol-orbit__chip i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 17px;
}
.dominium-sol-orbit:hover .dominium-sol-orbit__track,
.dominium-sol-orbit:hover .dominium-sol-orbit__chip {
    animation-play-state: paused;
}

/* Apparition de l'intro. */
.dominium-sol-intro.js-reveal .dominium-sol-intro__text > * {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .8s var(--ease-natural), transform .8s var(--ease-natural);
}
.dominium-sol-intro.js-reveal .dominium-sol-intro__text > :nth-child(2) { transition-delay: .1s; }
.dominium-sol-intro.js-reveal .dominium-sol-intro__text > :nth-child(3) { transition-delay: .2s; }
.dominium-sol-intro.js-reveal .dominium-sol-intro__text > :nth-child(4) { transition-delay: .3s; }
.dominium-sol-intro.js-reveal .dominium-sol-intro__text > :nth-child(5) { transition-delay: .4s; }
.dominium-sol-intro.js-reveal .dominium-sol-orbit {
    opacity: 0;
    transform: scale(.82) rotate(-12deg);
    transition: opacity 1s var(--ease-natural) .2s, transform 1.2s cubic-bezier(.16, 1, .3, 1) .2s;
}
.dominium-sol-intro.is-inview .dominium-sol-intro__text > *,
.dominium-sol-intro.is-inview .dominium-sol-orbit {
    opacity: 1;
    transform: none;
}

/* Bande jaune défilante. */
.dominium-sol-band {
    overflow: hidden;
    padding: 22px 0;
    background-color: var(--color-primary);
    transform: rotate(-1.5deg) scale(1.03);
    margin: 10px 0 -10px;
    position: relative;
    z-index: 2;
}
.dominium-sol-band__track {
    display: flex;
    align-items: center;
    gap: 40px;
    width: max-content;
    animation: dominium-sol-marquee 38s linear infinite;
}
.dominium-sol-band:hover .dominium-sol-band__track {
    animation-play-state: paused;
}
@keyframes dominium-sol-marquee {
    to { transform: translateX(-50%); }
}
.dominium-sol-band__item {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -.02em;
    white-space: nowrap;
    color: var(--color-dark);
}
.dominium-sol-band__item i {
    font-size: .8em;
}
.dominium-sol-band__sep {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    background-color: var(--color-dark);
    transform: rotate(45deg);
}

/* Explorateur. */
.dominium-sol-explorer {
    position: relative;
    overflow: hidden;
    padding: clamp(110px, 11vw, 170px) 0 clamp(80px, 9vw, 140px);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-sol-explorer .container {
    position: relative;
}
.dominium-sol-explorer__head {
    max-width: 760px;
    margin-bottom: clamp(40px, 5vw, 64px);
}
.dominium-sol-explorer__head .dominium-sol-intro__eyebrow {
    color: var(--color-text-on-dark);
}
.dominium-sol-explorer__title {
    margin: 0;
    font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.1;
    color: var(--color-text-on-dark);
}
.dominium-sol-explorer__layout {
    display: grid;
    grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 64px);
    align-items: stretch;
}
.dominium-sol-explorer__tabs {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--color-border-on-dark);
}
.dominium-sol-explorer__tab {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-4);
    width: 100%;
    padding: 20px 18px;
    border: 0;
    border-bottom: 1px solid var(--color-border-on-dark);
    background: none;
    color: var(--color-text-muted-on-dark);
    font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    isolation: isolate;
    transition: color .3s var(--ease-natural), padding .4s var(--ease-natural);
}
.dominium-sol-explorer__tab::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .55s cubic-bezier(.77, 0, .18, 1);
}
.dominium-sol-explorer__tab:hover {
    color: var(--color-text-on-dark);
    padding-left: 26px;
}
.dominium-sol-explorer__tab.is-active {
    color: var(--color-dark);
    padding-left: 26px;
}
.dominium-sol-explorer__tab.is-active::before {
    transform: none;
}
.dominium-sol-explorer__tab:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
.dominium-sol-explorer__tab-num {
    min-width: 26px;
    font-size: .8125rem;
    font-weight: 800;
    letter-spacing: .08em;
    opacity: .7;
}
.dominium-sol-explorer__tab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    border: 1px solid var(--color-border-on-dark);
    font-size: 18px;
    transition: background-color .3s var(--ease-natural), border-color .3s var(--ease-natural), color .3s var(--ease-natural);
}
.dominium-sol-explorer__tab:hover .dominium-sol-explorer__tab-icon {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.dominium-sol-explorer__tab.is-active .dominium-sol-explorer__tab-icon {
    border-color: var(--color-dark);
    background-color: var(--color-dark);
    color: var(--color-primary);
}
.dominium-sol-explorer__tab-name {
    flex: 1;
}
.dominium-sol-explorer__tab-go {
    font-size: 14px;
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-sol-explorer__tab.is-active .dominium-sol-explorer__tab-go,
.dominium-sol-explorer__tab:hover .dominium-sol-explorer__tab-go {
    opacity: 1;
    transform: none;
}
.dominium-sol-explorer__tab-progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background-color: rgba(0, 0, 0, .15);
    opacity: 0;
}
.dominium-sol-explorer__tab-progress span {
    display: block;
    height: 100%;
    background-color: var(--color-dark);
    transform: scaleX(0);
    transform-origin: left;
}
.dominium-sol-explorer__tab.is-active .dominium-sol-explorer__tab-progress {
    opacity: 1;
}
.dominium-sol-explorer.is-running .dominium-sol-explorer__tab.is-active .dominium-sol-explorer__tab-progress span {
    animation: dominium-sol-progress var(--sol-duration, 7000ms) linear forwards;
}
.dominium-sol-explorer.is-paused .dominium-sol-explorer__tab.is-active .dominium-sol-explorer__tab-progress span {
    animation-play-state: paused;
}
@keyframes dominium-sol-progress {
    to { transform: scaleX(1); }
}

/* Scène : image + carte. */
.dominium-sol-explorer__stage {
    position: relative;
    min-height: clamp(460px, 40vw, 600px);
}
.dominium-sol-panel {
    position: relative;
    height: 100%;
    min-height: inherit;
}
.dominium-sol-panel[hidden] {
    display: none;
}
.dominium-sol-panel__media {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 60px;
    left: 12%;
}
.dominium-sol-panel__block {
    position: absolute;
    top: -18px;
    right: -18px;
    width: 46%;
    height: 56%;
    background-color: var(--color-primary);
}
.dominium-sol-panel__media img {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.dominium-sol-panel__num {
    position: absolute;
    top: 18px;
    left: 26px;
    font-size: clamp(4rem, 3rem + 4vw, 7.5rem);
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 2px rgba(255, 255, 255, .85);
    text-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}
.dominium-sol-panel__card {
    position: absolute;
    left: 0;
    bottom: 0;
    width: min(460px, 78%);
    padding: clamp(24px, 2.4vw, 36px);
    background-color: var(--color-bg);
    color: var(--color-text);
    box-shadow: 0 40px 80px rgba(0, 0, 0, .45);
}
.dominium-sol-panel__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background-color: var(--color-primary);
}
.dominium-sol-panel__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: var(--space-4);
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 24px;
}
.dominium-sol-panel__name {
    margin: 0 0 var(--space-3);
    font-size: clamp(1.625rem, 1.3rem + 1vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -.03em;
    color: var(--color-text);
}
.dominium-sol-panel__desc {
    margin: 0 0 var(--space-4);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--color-text-muted);
}
.dominium-sol-panel__features {
    display: grid;
    gap: 8px;
    margin: 0 0 var(--space-5);
    padding: 0;
    list-style: none;
}
.dominium-sol-panel__features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-text);
}
.dominium-sol-panel__features i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 10px;
}
.dominium-sol-panel__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-text);
}
.dominium-sol-panel__link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-sol-panel__link:hover,
.dominium-sol-panel__link:focus-visible {
    color: var(--color-text);
}
.dominium-sol-panel__link:hover .dominium-sol-panel__link-icon,
.dominium-sol-panel__link:focus-visible .dominium-sol-panel__link-icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
    transform: translateX(6px);
}

/* Changement de solution : rideau sur l'image, carte qui monte. */
.dominium-sol-panel.is-active .dominium-sol-panel__media img {
    animation: dominium-sol-img-in 1s cubic-bezier(.77, 0, .18, 1) both;
}
.dominium-sol-panel.is-active .dominium-sol-panel__block {
    animation: dominium-sol-block-in .9s cubic-bezier(.16, 1, .3, 1) both;
}
.dominium-sol-panel.is-active .dominium-sol-panel__num {
    animation: dominium-sol-fade-up .8s var(--ease-natural) .45s both;
}
.dominium-sol-panel.is-active .dominium-sol-panel__card {
    animation: dominium-sol-card-in .8s cubic-bezier(.16, 1, .3, 1) .25s both;
}
.dominium-sol-panel.is-active .dominium-sol-panel__card > * {
    animation: dominium-sol-fade-up .6s var(--ease-natural) both;
}
.dominium-sol-panel.is-active .dominium-sol-panel__card > :nth-child(1) { animation-delay: .4s; }
.dominium-sol-panel.is-active .dominium-sol-panel__card > :nth-child(2) { animation-delay: .48s; }
.dominium-sol-panel.is-active .dominium-sol-panel__card > :nth-child(3) { animation-delay: .56s; }
.dominium-sol-panel.is-active .dominium-sol-panel__card > :nth-child(4) { animation-delay: .64s; }
.dominium-sol-panel.is-active .dominium-sol-panel__card > :nth-child(5) { animation-delay: .72s; }
@keyframes dominium-sol-img-in {
    from { clip-path: inset(0 0 0 100%); transform: scale(1.12); }
    to { clip-path: inset(0 0 0 0); transform: scale(1); }
}
@keyframes dominium-sol-block-in {
    from { transform: translate(-30px, 30px); opacity: 0; }
    to { transform: none; opacity: 1; }
}
@keyframes dominium-sol-card-in {
    from { opacity: 0; transform: translateY(50px); }
    to { opacity: 1; transform: none; }
}
@keyframes dominium-sol-fade-up {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: none; }
}

/* Apparition de l'explorateur. */
.dominium-sol-explorer.js-reveal .dominium-sol-explorer__head,
.dominium-sol-explorer.js-reveal .dominium-sol-explorer__tab {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .7s var(--ease-natural), transform .7s var(--ease-natural), color .3s var(--ease-natural), padding .4s var(--ease-natural);
}
.dominium-sol-explorer.js-reveal .dominium-sol-explorer__tab:nth-child(2) { transition-delay: .08s, .08s, 0s, 0s; }
.dominium-sol-explorer.js-reveal .dominium-sol-explorer__tab:nth-child(3) { transition-delay: .16s, .16s, 0s, 0s; }
.dominium-sol-explorer.js-reveal .dominium-sol-explorer__tab:nth-child(4) { transition-delay: .24s, .24s, 0s, 0s; }
.dominium-sol-explorer.js-reveal .dominium-sol-explorer__tab:nth-child(5) { transition-delay: .32s, .32s, 0s, 0s; }
.dominium-sol-explorer.js-reveal .dominium-sol-explorer__tab:nth-child(6) { transition-delay: .4s, .4s, 0s, 0s; }
.dominium-sol-explorer.is-inview .dominium-sol-explorer__head,
.dominium-sol-explorer.is-inview .dominium-sol-explorer__tab {
    opacity: 1;
    transform: none;
}

@media (max-width: 1199px) {
    .dominium-sol-intro__grid {
        grid-template-columns: 1fr;
    }
    .dominium-sol-orbit {
        --r: clamp(120px, 30vw, 220px);
    }
}
@media (max-width: 991px) {
    .dominium-sol-explorer__layout {
        grid-template-columns: 1fr;
    }
    .dominium-sol-explorer__tabs {
        flex-direction: row;
        gap: 8px;
        margin: 0 -16px;
        padding: 0 16px 6px;
        overflow-x: auto;
        border-top: 0;
        scrollbar-width: none;
    }
    .dominium-sol-explorer__tabs::-webkit-scrollbar {
        display: none;
    }
    .dominium-sol-explorer__tab {
        flex: 0 0 auto;
        width: auto;
        padding: 10px 16px 10px 10px;
        border: 1px solid var(--color-border-on-dark);
        font-size: 1rem;
    }
    .dominium-sol-explorer__tab:hover,
    .dominium-sol-explorer__tab.is-active {
        padding-left: 10px;
    }
    .dominium-sol-explorer__tab-num,
    .dominium-sol-explorer__tab-go {
        display: none;
    }
    .dominium-sol-explorer__tab-icon {
        width: 34px;
        height: 34px;
        font-size: 15px;
    }
    .dominium-sol-explorer__stage {
        min-height: 0;
    }
    .dominium-sol-panel__media {
        position: relative;
        inset: auto;
        height: clamp(240px, 55vw, 420px);
        margin-right: 18px;
        margin-top: 18px;
    }
    .dominium-sol-panel__card {
        position: relative;
        width: auto;
        margin: -60px 0 0 18px;
    }
}
@media (max-width: 575px) {
    .dominium-sol-intro__meta {
        flex-direction: column;
        align-items: flex-start;
    }
    .dominium-sol-orbit {
        --r: 38vw;
        width: 100%;
    }
    .dominium-sol-orbit__chip {
        padding: 6px;
        font-size: 0;
        gap: 0;
    }
    .dominium-sol-orbit__chip i {
        width: 34px;
        height: 34px;
        font-size: 15px;
    }
    .dominium-sol-orbit__ring--inner {
        border-width: 7px;
    }
    .dominium-sol-panel__card {
        margin-left: 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-sol-orbit__ring,
    .dominium-sol-orbit__track,
    .dominium-sol-orbit__chip,
    .dominium-sol-orbit__core::after,
    .dominium-sol-band__track,
    .dominium-sol-panel.is-active *,
    .dominium-sol-panel.is-active .dominium-sol-panel__card {
        animation: none !important;
    }
}

/* =======================================================================
   /carrieres (refaite le 05/10/2026).
   ======================================================================= */
/* Lien secondaire des CTA : flèche jaune (le vert est réservé à WhatsApp). */
.dominium-cta__link .fa-arrow-right {
    color: var(--color-primary);
    font-size: .875rem;
    transition: transform .3s var(--ease-natural);
}
.dominium-cta__link:hover .fa-arrow-right {
    transform: translateX(4px);
}

.dominium-car-intro {
    overflow: hidden;
    padding: clamp(80px, 9vw, 140px) 0;
}
.dominium-car-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(48px, 7vw, 120px);
}
.dominium-car-intro__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2.25rem, 1.5rem + 2.4vw, 4rem);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.05;
    color: var(--color-text);
}
.dominium-car-intro__title span {
    position: relative;
    display: inline-block;
    isolation: isolate;
}
.dominium-car-intro__title span::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: -4px;
    right: -4px;
    bottom: .08em;
    height: .32em;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .9s cubic-bezier(.77, 0, .18, 1) .7s;
}
.dominium-car-intro:not(.js-reveal) .dominium-car-intro__title span::after,
.dominium-car-intro.is-inview .dominium-car-intro__title span::after {
    transform: none;
}
.dominium-car-intro__lead {
    max-width: 580px;
    margin: 0 0 var(--space-7);
    font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
    line-height: 1.75;
    color: var(--color-text-muted);
}
.dominium-car-intro__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4) var(--space-6);
}
.dominium-car-intro__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding-bottom: 3px;
    border-bottom: 2px solid var(--color-primary);
    font-weight: 700;
    color: var(--color-text);
}
.dominium-car-intro__link:hover,
.dominium-car-intro__link:focus-visible {
    color: var(--color-text);
}
.dominium-car-intro__link i {
    font-size: .8125rem;
    transition: transform .3s var(--ease-natural);
}
.dominium-car-intro__link:hover i {
    transform: translateY(3px);
}

.dominium-car-intro__visual {
    position: relative;
    padding: 0 0 40px 40px;
}
.dominium-car-intro__block {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 62%;
    height: 70%;
    background-color: var(--color-primary);
}
.dominium-car-intro__dots {
    position: absolute;
    top: -30px;
    right: -30px;
    width: 160px;
    height: 160px;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .25) 1.4px, transparent 1.8px);
    background-size: 16px 16px;
}
.dominium-car-intro__frame {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 4.4;
}
.dominium-car-intro__frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--ease-natural);
}
.dominium-car-intro__visual:hover .dominium-car-intro__frame img {
    transform: scale(1.05);
}
.dominium-car-intro__profiles {
    position: absolute;
    top: 50%;
    right: -28px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
    transform: translateY(-50%);
}
.dominium-car-intro__profiles li {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px 10px 10px;
    background-color: var(--color-bg);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .16);
    font-size: .9375rem;
    font-weight: 700;
    white-space: nowrap;
    color: var(--color-text);
    animation: dominium-car-float 5s ease-in-out infinite;
    animation-delay: calc(var(--i) * -1.2s);
}
.dominium-car-intro__profiles li:nth-child(even) {
    margin-right: 46px;
}
.dominium-car-intro__profiles li i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 16px;
}
@keyframes dominium-car-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.dominium-car-intro.js-reveal .dominium-car-intro__text > * {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .8s var(--ease-natural), transform .8s var(--ease-natural);
}
.dominium-car-intro.js-reveal .dominium-car-intro__text > :nth-child(2) { transition-delay: .1s; }
.dominium-car-intro.js-reveal .dominium-car-intro__text > :nth-child(3) { transition-delay: .2s; }
.dominium-car-intro.js-reveal .dominium-car-intro__text > :nth-child(4) { transition-delay: .3s; }
.dominium-car-intro.js-reveal .dominium-car-intro__frame {
    clip-path: inset(0 0 100% 0);
    transition: clip-path 1.1s cubic-bezier(.77, 0, .18, 1) .15s;
}
.dominium-car-intro.js-reveal .dominium-car-intro__block {
    transform: scale(0);
    transform-origin: bottom left;
    transition: transform .9s cubic-bezier(.16, 1, .3, 1) .5s;
}
.dominium-car-intro.js-reveal .dominium-car-intro__profiles {
    opacity: 0;
    transform: translate(40px, -50%);
    transition: opacity .7s var(--ease-natural) .9s, transform .9s cubic-bezier(.16, 1, .3, 1) .9s;
}
.dominium-car-intro.is-inview .dominium-car-intro__text > * {
    opacity: 1;
    transform: none;
}
.dominium-car-intro.is-inview .dominium-car-intro__frame {
    clip-path: inset(0);
}
.dominium-car-intro.is-inview .dominium-car-intro__block {
    transform: none;
}
.dominium-car-intro.is-inview .dominium-car-intro__profiles {
    opacity: 1;
    transform: translateY(-50%);
}

/* Valeurs. */
.dominium-car-values {
    padding: clamp(80px, 9vw, 130px) 0;
    background-color: var(--color-surface);
}
.dominium-car-values__head {
    max-width: 640px;
    margin-bottom: clamp(36px, 4vw, 56px);
}
.dominium-car-values__title {
    margin: 0;
    font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.1;
    color: var(--color-text);
}
.dominium-car-values__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.dominium-car-value {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 2.6vw, 40px);
    background-color: var(--color-bg);
    isolation: isolate;
    transition: transform .45s var(--ease-natural), box-shadow .45s var(--ease-natural);
}
.dominium-car-value::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--color-dark);
    transform: translateY(101%);
    transition: transform .55s cubic-bezier(.77, 0, .18, 1);
}
.dominium-car-value::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 4px;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .55s cubic-bezier(.77, 0, .18, 1) .1s;
}
.dominium-car-value:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .18);
}
.dominium-car-value:hover::before {
    transform: none;
}
.dominium-car-value:hover::after {
    transform: none;
}
.dominium-car-value__num {
    position: absolute;
    top: 18px;
    right: 24px;
    font-size: 3.5rem;
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--color-border);
    transition: -webkit-text-stroke-color .4s var(--ease-natural);
}
.dominium-car-value:hover .dominium-car-value__num {
    -webkit-text-stroke-color: rgba(255, 195, 0, .7);
}
.dominium-car-value__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin-bottom: var(--space-5);
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 26px;
    transition: transform .5s cubic-bezier(.34, 1.4, .64, 1);
}
.dominium-car-value:hover .dominium-car-value__icon {
    transform: rotate(-8deg) scale(1.08);
}
.dominium-car-value__title {
    margin: 0 0 var(--space-3);
    font-size: clamp(1.25rem, 1.1rem + .4vw, 1.5rem);
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--color-text);
    transition: color .4s var(--ease-natural);
}
.dominium-car-value__text {
    margin: 0;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-text-muted);
    transition: color .4s var(--ease-natural);
}
.dominium-car-value:hover .dominium-car-value__title {
    color: var(--color-text-on-dark);
}
.dominium-car-value:hover .dominium-car-value__text {
    color: var(--color-text-muted-on-dark);
}
.dominium-car-values.js-reveal .dominium-car-values__head,
.dominium-car-values.js-reveal .dominium-car-value {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity .7s var(--ease-natural), transform .8s var(--ease-natural), box-shadow .45s var(--ease-natural);
}
.dominium-car-values.js-reveal .dominium-car-value {
    transition-delay: calc(var(--i) * .09s + .1s), calc(var(--i) * .09s + .1s), 0s;
}
.dominium-car-values.is-inview .dominium-car-values__head,
.dominium-car-values.is-inview .dominium-car-value {
    opacity: 1;
    transform: none;
}
.dominium-car-values.is-inview .dominium-car-value:hover {
    transform: translateY(-8px);
    transition-delay: 0s;
}

/* Équipe : bande d'avatars. */
.dominium-car-team {
    padding: clamp(70px, 8vw, 110px) 0 0;
}
.dominium-car-team__box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6) var(--space-7);
    padding: clamp(28px, 3vw, 44px) clamp(28px, 3.5vw, 56px);
    border: 1px solid var(--color-border);
    border-left: 6px solid var(--color-primary);
}
.dominium-car-team__text {
    flex: 1 1 320px;
}
.dominium-car-team__text .dominium-sol-intro__eyebrow {
    margin-bottom: var(--space-2);
}
.dominium-car-team__title {
    margin: 0;
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem);
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.15;
    color: var(--color-text);
}
.dominium-car-team__faces {
    display: flex;
    margin: 0;
    padding: 0 0 0 18px;
    list-style: none;
}
.dominium-car-team__faces li {
    margin-left: -18px;
}
.dominium-car-team__face {
    position: relative;
    display: block;
    width: 78px;
    height: 78px;
    border: 4px solid var(--color-bg);
    border-radius: 50%;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .15);
    transition: transform .35s cubic-bezier(.34, 1.4, .64, 1), border-color .3s var(--ease-natural);
}
.dominium-car-team__face img,
.dominium-car-team__face .dominium-avatar {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}
.dominium-car-team__face:hover,
.dominium-car-team__face:focus-visible {
    z-index: 2;
    border-color: var(--color-primary);
    transform: translateY(-8px) scale(1.08);
}
.dominium-car-team__tip {
    position: absolute;
    bottom: calc(100% + 12px);
    left: 50%;
    display: flex;
    flex-direction: column;
    padding: 8px 12px;
    background-color: var(--color-dark);
    color: var(--color-text-muted-on-dark);
    font-size: .75rem;
    white-space: nowrap;
    text-align: center;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, 6px);
    transition: opacity .25s var(--ease-natural), transform .25s var(--ease-natural);
}
.dominium-car-team__tip strong {
    font-size: .875rem;
    color: var(--color-text-on-dark);
}
.dominium-car-team__face:hover .dominium-car-team__tip,
.dominium-car-team__face:focus-visible .dominium-car-team__tip {
    opacity: 1;
    transform: translate(-50%, 0);
}
.dominium-car-team__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    height: 54px;
    padding: 0 8px 0 22px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-weight: 700;
    white-space: nowrap;
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural);
}
.dominium-car-team__btn:hover,
.dominium-car-team__btn:focus-visible {
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-car-team__btn:hover .dominium-header-cta__icon {
    background-color: var(--color-dark);
    color: var(--color-primary);
}
.dominium-car-team.js-reveal .dominium-car-team__box {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .7s var(--ease-natural), transform .8s var(--ease-natural);
}
.dominium-car-team.js-reveal .dominium-car-team__faces li {
    opacity: 0;
    transform: translateX(-20px) scale(.7);
    transition: opacity .5s var(--ease-natural), transform .6s cubic-bezier(.34, 1.4, .64, 1);
    transition-delay: calc(var(--i) * .1s + .4s);
}
.dominium-car-team.is-inview .dominium-car-team__box,
.dominium-car-team.is-inview .dominium-car-team__faces li {
    opacity: 1;
    transform: none;
}

/* Candidature. */
.dominium-car-apply__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
    padding: 6px 14px;
    border: 1px solid rgba(255, 195, 0, .45);
    font-size: .8125rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-on-dark);
}
.dominium-car-apply__eyebrow i {
    color: var(--color-primary);
}
.dominium-car-apply .dominium-cta__content {
    max-width: 700px;
}

@media (max-width: 1199px) {
    .dominium-car-values__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 991px) {
    .dominium-car-intro__grid {
        grid-template-columns: 1fr;
    }
    .dominium-car-intro__visual {
        max-width: 560px;
    }
    .dominium-car-intro__profiles {
        right: -8px;
    }
}
@media (max-width: 575px) {
    .dominium-car-values__grid {
        grid-template-columns: 1fr;
    }
    .dominium-car-intro__visual {
        padding: 0 0 0 16px;
    }
    /* Bloc jaune limité à la hauteur de la photo (les profils passent
       dessous sur mobile). */
    .dominium-car-intro__block {
        top: 36px;
        bottom: auto;
        width: 60%;
        height: auto;
        aspect-ratio: 1;
    }
    .dominium-car-intro__dots {
        right: 0;
    }
    .dominium-car-intro__profiles {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        margin-top: var(--space-5);
        transform: none !important;
    }
    .dominium-car-intro__profiles li:nth-child(even) {
        margin-right: 0;
    }
    .dominium-car-intro__profiles li {
        font-size: .8125rem;
    }
    .dominium-car-team__face {
        width: 64px;
        height: 64px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-car-intro__profiles li {
        animation: none;
    }
}

/* =======================================================================
   Accueil — hero sur le modèle de l'ex-page Expertises (09/10/2026) :
   .dominium-xp-hero (photo + voile, V jaune, médaillon rond) avec les
   diapositives animées des hero_slides et les accès rapides en bas.
   ======================================================================= */
.dominium-xp-hero--home {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: max(640px, calc(100vh / var(--page-zoom, 1) - 125px));
    padding-top: clamp(72px, 7vw, 130px);
}
.dominium-xp-hero__slides {
    position: absolute;
    inset: 0;
    z-index: -2;
    overflow: hidden;
}
.dominium-xp-hero--home .dominium-xp-hero__content {
    max-width: 880px;
}
.dominium-xp-hero--home .dominium-hero2__title {
    margin-bottom: var(--space-5);
    font-size: clamp(2.4rem, 1.3rem + 3.4vw, 4.75rem);
    color: var(--color-text-on-dark);
}
.dominium-xp-hero--home .dominium-xp-hero__text {
    margin: var(--space-6) 0 0;
    padding-left: var(--space-5);
    border-left: 2px solid rgba(255, 255, 255, .25);
    font-size: clamp(1rem, .9rem + .3vw, 1.1875rem);
}
.dominium-xp-hero__links ul {
    gap: var(--space-4) clamp(24px, 3.5vw, 64px);
}
.dominium-xp-hero__links li a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    font-size: clamp(1rem, .9rem + .35vw, 1.25rem);
    font-weight: 700;
    color: var(--color-text-on-dark);
    transition: color .3s var(--ease-natural);
}
.dominium-xp-hero__links-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 13px;
    transition: transform .3s var(--ease-natural);
}
.dominium-xp-hero__links li a:hover,
.dominium-xp-hero__links li a:focus-visible {
    color: var(--color-primary);
}
.dominium-xp-hero__links li a:hover .dominium-xp-hero__links-icon {
    transform: translateX(4px);
}
/* Entrée de page : mots, accroche et bouton masqués jusqu'au départ. */
.dominium-xp-hero--home.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__word > span {
    transform: translateY(115%) rotate(8deg);
}
.dominium-xp-hero--home.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__word > span.is-accent {
    background-size: 0 .14em;
}
.dominium-xp-hero--home.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__tagline {
    opacity: 0;
    filter: blur(10px);
    transform: translateX(-24px);
}
.dominium-xp-hero--home.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__cta {
    opacity: 0;
    transform: translateY(20px);
}
@media (max-width: 767px) {
    .dominium-xp-hero--home {
        min-height: 0;
    }
    .dominium-xp-hero__links ul {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--space-4);
    }
    .dominium-xp-hero__links li a {
        font-size: .9375rem;
    }
}

/* Pied de page : voile allégé (retour client : noir encore trop fort). */
.dominium-footer__main {
    background:
        linear-gradient(180deg, rgba(12, 12, 12, .64) 0%, rgba(12, 12, 12, .74) 45%, rgba(12, 12, 12, .88) 100%),
        url('../img/slider/2.jpg') center 35% / cover no-repeat,
        #1a1a1a;
}
.dominium-footer__main .dominium-footer__cols {
    text-shadow: 0 1px 12px rgba(0, 0, 0, .55);
}

/* =======================================================================
   Mobile (09/10/2026) : les listes de cartes défilent à l'horizontale
   (une ligne que l'on fait glisser au doigt) au lieu d'être empilées.
   ======================================================================= */
@media (max-width: 767px) {
    .dominium-challenges__grid,
    .dominium-sectors2__grid,
    .dominium-mosaic__grid,
    .dominium-news__grid,
    .dominium-eco__cards,
    .dominium-ai2__grid,
    .dominium-why__list,
    .dominium-xp-grid__cards,
    .dominium-sx-mosaic__grid,
    .dominium-car-values__grid,
    .dominium-blog__grid,
    .dominium-works-grid__cards,
    .dominium-svc-others__grid,
    .dominium-sxd-others__grid,
    .dominium-contact-ways__grid,
    .dominium-catalog__list,
    .dominium-showcase__list {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        grid-template-columns: none !important;
        gap: 14px !important;
        margin-left: -16px !important;
        margin-right: -16px !important;
        padding: 6px 16px 20px !important;
        overflow-x: auto !important;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 16px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .dominium-challenges__grid::-webkit-scrollbar,
    .dominium-sectors2__grid::-webkit-scrollbar,
    .dominium-mosaic__grid::-webkit-scrollbar,
    .dominium-news__grid::-webkit-scrollbar,
    .dominium-eco__cards::-webkit-scrollbar,
    .dominium-ai2__grid::-webkit-scrollbar,
    .dominium-why__list::-webkit-scrollbar,
    .dominium-xp-grid__cards::-webkit-scrollbar,
    .dominium-sx-mosaic__grid::-webkit-scrollbar,
    .dominium-car-values__grid::-webkit-scrollbar,
    .dominium-blog__grid::-webkit-scrollbar,
    .dominium-works-grid__cards::-webkit-scrollbar,
    .dominium-svc-others__grid::-webkit-scrollbar,
    .dominium-sxd-others__grid::-webkit-scrollbar,
    .dominium-contact-ways__grid::-webkit-scrollbar,
    .dominium-catalog__list::-webkit-scrollbar,
    .dominium-showcase__list::-webkit-scrollbar {
        display: none;
    }
    .dominium-challenges__grid > *,
    .dominium-sectors2__grid > *,
    .dominium-mosaic__grid > *,
    .dominium-news__grid > *,
    .dominium-eco__cards > *,
    .dominium-ai2__grid > *,
    .dominium-why__list > *,
    .dominium-xp-grid__cards > *,
    .dominium-sx-mosaic__grid > *,
    .dominium-car-values__grid > *,
    .dominium-blog__grid > *,
    .dominium-works-grid__cards > *,
    .dominium-svc-others__grid > *,
    .dominium-sxd-others__grid > *,
    .dominium-contact-ways__grid > *,
    .dominium-catalog__list > *,
    .dominium-showcase__list > * {
        flex: 0 0 82% !important;
        width: auto !important;
        max-width: 82% !important;
        min-width: 0;
        margin: 0 !important;
        grid-column: auto !important;
        grid-row: auto !important;
        scroll-snap-align: start;
    }
}

/* Bandeau titre des pages intérieures (09/10/2026) : photo de la page en
   fond, légèrement floutée, sous un voile plus sombre côté texte. */
.dominium-page-hero {
    background-color: var(--color-dark);
}
.dominium-page-hero__backdrop {
    position: absolute;
    inset: -20px;
    z-index: -3;
    background-position: center;
    background-size: cover;
    filter: blur(3px) saturate(.9);
    transform: scale(1.04);
}
.dominium-page-hero__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(10, 10, 10, .9) 0%, rgba(10, 10, 10, .78) 45%, rgba(10, 10, 10, .55) 100%),
        linear-gradient(0deg, rgba(10, 10, 10, .5), transparent 45%);
}

/* =======================================================================
   Pages légales (09/10/2026) : mentions légales, confidentialité, cookies
   (resources/views/legal/partials/document.blade.php).
   ======================================================================= */
.dominium-legal {
    padding: clamp(56px, 6vw, 100px) 0 clamp(40px, 4vw, 64px);
    background:
        radial-gradient(60% 40% at 100% 0%, rgba(255, 195, 0, .08), transparent 70%),
        var(--color-bg);
}

/* L'essentiel. */
.dominium-legal__summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    gap: clamp(24px, 4vw, 64px);
    align-items: center;
    margin-bottom: clamp(48px, 5vw, 80px);
    padding: clamp(28px, 3.5vw, 48px);
    border-radius: 24px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.dominium-legal__summary::before {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    z-index: -1;
    width: 260px;
    aspect-ratio: 1;
    border: 14px solid var(--color-primary);
    border-radius: 50%;
    opacity: .2;
}
.dominium-legal__updated {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
    padding: 6px 14px;
    border-radius: 999px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: .8125rem;
    font-weight: 800;
}
.dominium-legal__lead {
    margin: 0;
    font-size: clamp(1.125rem, 1rem + .45vw, 1.4375rem);
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-text-on-dark);
}
.dominium-legal__highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-legal__highlights li {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 16px;
    background-color: rgba(255, 255, 255, .04);
    transition: transform .4s var(--ease-natural), border-color .4s var(--ease-natural), background-color .4s var(--ease-natural);
}
.dominium-legal__highlights li:hover {
    transform: translateY(-4px);
    border-color: var(--color-primary);
    background-color: rgba(255, 195, 0, .08);
}
.dominium-legal__highlight-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 6px;
    border-radius: 12px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 19px;
}
.dominium-legal__highlights strong {
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-text-on-dark);
}
.dominium-legal__highlights span:last-child {
    font-size: .875rem;
    line-height: 1.55;
    color: var(--color-text-muted-on-dark);
}

/* Mise en page : sommaire + document. */
.dominium-legal__layout {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: clamp(32px, 5vw, 80px);
    align-items: start;
}
.dominium-legal__aside {
    position: sticky;
    top: 110px;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}
.dominium-legal__toc {
    padding: 24px;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    background-color: var(--color-bg);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .06);
}
.dominium-legal__toc-title {
    margin: 0 0 var(--space-3);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-legal__progress {
    display: block;
    height: 4px;
    margin-bottom: var(--space-4);
    border-radius: 4px;
    background-color: var(--color-surface);
    overflow: hidden;
}
.dominium-legal__progress span {
    display: block;
    height: 100%;
    background-color: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .15s linear;
}
.dominium-legal__toc ol {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dominium-legal__toc a {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 10px 12px;
    border-radius: 10px;
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-text-muted);
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), padding .3s var(--ease-natural);
}
.dominium-legal__toc-num {
    flex-shrink: 0;
    min-width: 24px;
    font-size: .75rem;
    font-weight: 800;
    color: var(--color-text-muted);
}
.dominium-legal__toc a:hover {
    color: var(--color-text);
    background-color: var(--color-surface);
}
.dominium-legal__toc a.is-active {
    padding-left: 16px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-legal__toc a.is-active .dominium-legal__toc-num {
    color: var(--color-primary);
}
.dominium-legal__help {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 22px 24px;
    border-radius: 20px;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
    color: var(--color-dark);
}
.dominium-legal__help-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 4px;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 17px;
}
.dominium-legal__help p {
    margin: 0;
    font-weight: 800;
}
.dominium-legal__help a {
    font-size: .9375rem;
    font-weight: 600;
    color: var(--color-dark);
    border-bottom: 1px solid rgba(0, 0, 0, .35);
    word-break: break-all;
}

/* Sections du document. */
.dominium-legal__body {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.dominium-legal__section {
    position: relative;
    padding: clamp(24px, 3vw, 40px);
    border: 1px solid var(--color-border);
    border-radius: 22px;
    background-color: var(--color-bg);
    scroll-margin-top: 110px;
    transition: border-color .4s var(--ease-natural), box-shadow .4s var(--ease-natural);
}
.dominium-legal__section:hover {
    border-color: rgba(0, 0, 0, .18);
    box-shadow: 0 24px 50px rgba(0, 0, 0, .07);
}
.dominium-legal__section::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 28px;
    width: 4px;
    height: 44px;
    border-radius: 0 4px 4px 0;
    background-color: var(--color-primary);
}
.dominium-legal__section-head {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}
.dominium-legal__section-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 22px;
    transition: transform .5s cubic-bezier(.34, 1.4, .64, 1);
}
.dominium-legal__section:hover .dominium-legal__section-icon {
    transform: rotate(-8deg) scale(1.06);
}
.dominium-legal__section-title {
    flex: 1;
    margin: 0;
    font-size: clamp(1.25rem, 1.1rem + .5vw, 1.625rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.25;
    color: var(--color-text);
}
.dominium-legal__section-num {
    font-size: 2.75rem;
    font-weight: 800;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--color-border);
}
.dominium-legal__content {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text-muted);
}
.dominium-legal__content p {
    margin: 0 0 var(--space-4);
}
.dominium-legal__content > :last-child {
    margin-bottom: 0;
}
.dominium-legal__content strong {
    color: var(--color-text);
}
.dominium-legal__content a {
    font-weight: 700;
    color: var(--color-text);
    background-image: linear-gradient(var(--color-primary), var(--color-primary));
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 2px;
    transition: background-size .3s var(--ease-natural);
}
.dominium-legal__content a:hover {
    background-size: 100% 100%;
    color: var(--color-dark);
}
.dominium-legal__content ul {
    display: grid;
    gap: 10px;
    margin: 0 0 var(--space-4);
    padding: 0;
    list-style: none;
}
.dominium-legal__content ul li {
    position: relative;
    padding-left: 32px;
}
.dominium-legal__content ul li::before {
    content: "\f00c";
    position: absolute;
    left: 0;
    top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-family: var(--atf-ff-fontawesome);
    font-size: 10px;
    font-weight: 900;
}
.dominium-legal__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
}
.dominium-legal__facts div {
    padding: 14px 16px;
    border-radius: 14px;
    background-color: var(--color-surface);
}
.dominium-legal__facts dt {
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-legal__facts dd {
    margin: 4px 0 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.45;
    color: var(--color-text);
}
.dominium-legal__table-wrap {
    margin: 0 0 var(--space-4);
    overflow-x: auto;
    border: 1px solid var(--color-border);
    border-radius: 16px;
}
.dominium-legal__table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: .9375rem;
}
.dominium-legal__table th {
    padding: 14px 16px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-align: left;
    text-transform: uppercase;
}
.dominium-legal__table td {
    padding: 14px 16px;
    border-top: 1px solid var(--color-border);
    line-height: 1.5;
    vertical-align: top;
}
.dominium-legal__table code {
    padding: 3px 8px;
    border-radius: 6px;
    background-color: var(--color-surface);
    color: var(--color-text);
    font-size: .875rem;
}
.dominium-legal__tag {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    background-color: rgba(255, 195, 0, .2);
    color: var(--color-text);
    font-size: .75rem;
    font-weight: 800;
    white-space: nowrap;
}
.dominium-legal__content ul.dominium-legal__browsers {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.dominium-legal__content ul.dominium-legal__browsers li {
    padding: 0;
}
.dominium-legal__content ul.dominium-legal__browsers li::before {
    display: none;
}
.dominium-legal__content .dominium-legal__browsers a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background-image: none;
    font-size: .9375rem;
    transition: border-color .3s var(--ease-natural), background-color .3s var(--ease-natural);
}
.dominium-legal__content .dominium-legal__browsers a:hover {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
}

/* Autres documents. */
.dominium-legal__others {
    margin-top: clamp(48px, 5vw, 80px);
}
.dominium-legal__others-title {
    margin: 0 0 var(--space-4);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.dominium-legal__others-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.dominium-legal__doc {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: 22px 24px;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    background-color: var(--color-bg);
    color: var(--color-text);
    transition: transform .4s var(--ease-natural), background-color .4s var(--ease-natural), border-color .4s var(--ease-natural);
}
.dominium-legal__doc:hover,
.dominium-legal__doc:focus-visible {
    transform: translateY(-4px);
    border-color: var(--color-dark);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-legal__doc-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 22px;
}
.dominium-legal__doc-text {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 2px;
}
.dominium-legal__doc-text strong {
    font-size: 1.0625rem;
    font-weight: 800;
}
.dominium-legal__doc-text span {
    font-size: .875rem;
    color: var(--color-text-muted);
    transition: color .4s var(--ease-natural);
}
.dominium-legal__doc:hover .dominium-legal__doc-text span {
    color: var(--color-text-muted-on-dark);
}
.dominium-legal__doc-go {
    color: var(--color-primary);
    transition: transform .3s var(--ease-natural);
}
.dominium-legal__doc:hover .dominium-legal__doc-go {
    transform: translateX(6px);
}

/* Apparitions. */
.dominium-legal__summary.js-reveal,
.dominium-legal__section.js-reveal,
.dominium-legal__others.js-reveal {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity .8s var(--ease-natural), transform .9s cubic-bezier(.16, 1, .3, 1), border-color .4s var(--ease-natural), box-shadow .4s var(--ease-natural);
}
.dominium-legal__summary.js-reveal .dominium-legal__highlights li {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .6s var(--ease-natural), transform .7s var(--ease-natural), border-color .4s, background-color .4s;
    transition-delay: calc(var(--i) * .12s + .3s), calc(var(--i) * .12s + .3s), 0s, 0s;
}
.dominium-legal__summary.is-inview,
.dominium-legal__section.is-inview,
.dominium-legal__others.is-inview,
.dominium-legal__summary.is-inview .dominium-legal__highlights li {
    opacity: 1;
    transform: none;
}
.dominium-legal__summary.is-inview .dominium-legal__highlights li:hover {
    transform: translateY(-4px);
    transition-delay: 0s;
}

@media (max-width: 991px) {
    .dominium-legal__summary,
    .dominium-legal__layout {
        grid-template-columns: 1fr;
    }
    .dominium-legal__aside {
        position: static;
    }
    /* Sommaire en pastilles qui défilent à l'horizontale. */
    .dominium-legal__toc {
        padding: 18px;
    }
    .dominium-legal__toc ol {
        flex-direction: row;
        gap: 8px;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .dominium-legal__toc ol::-webkit-scrollbar {
        display: none;
    }
    .dominium-legal__toc a {
        white-space: nowrap;
        border: 1px solid var(--color-border);
    }
    .dominium-legal__help {
        display: none;
    }
}
@media (max-width: 767px) {
    .dominium-legal__highlights,
    .dominium-legal__facts,
    .dominium-legal__others-grid {
        grid-template-columns: 1fr;
    }
    .dominium-legal__section-num {
        display: none;
    }
    .dominium-legal__section-icon {
        width: 44px;
        height: 44px;
        font-size: 19px;
    }
    .dominium-legal__content {
        font-size: 1rem;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-legal__summary.js-reveal,
    .dominium-legal__section.js-reveal,
    .dominium-legal__others.js-reveal,
    .dominium-legal__summary.js-reveal .dominium-legal__highlights li {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Pages légales : les colonnes ne débordent plus sur mobile (min-width
   des éléments de grille), points « en bref » en défilement horizontal. */
.dominium-legal__layout > *,
.dominium-legal__summary > *,
.dominium-legal__toc {
    min-width: 0;
}
@media (max-width: 767px) {
    .dominium-legal__highlights {
        display: flex;
        gap: 12px;
        margin: 0 -28px;
        padding: 0 28px 6px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .dominium-legal__highlights::-webkit-scrollbar {
        display: none;
    }
    .dominium-legal__highlights li {
        flex: 0 0 78%;
        scroll-snap-align: start;
    }
    .dominium-legal__summary {
        padding: 24px;
    }
}

/* =======================================================================
   Accueil (09/10/2026) : section À propos avant « Le constat », fond crème
   pour À propos et Nos services (le hero et l'IA gardent leur style sombre).
   ======================================================================= */
/* À propos (ouvre désormais la page, avant « Le constat »). */
.dominium-about-home--v2 {
    padding: clamp(80px, 9vw, 140px) 0;
    background-color: #FFFAEB;
}
.dominium-about-home__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(48px, 7vw, 120px);
}
.dominium-about-home__visual {
    position: relative;
    padding: 0 0 70px 40px;
}
.dominium-about-home__block {
    position: absolute;
    left: 0;
    top: 50px;
    width: 55%;
    height: 70%;
    background-color: var(--color-primary);
}
.dominium-about-home__dots {
    position: absolute;
    top: -26px;
    right: 8%;
    width: 150px;
    height: 120px;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .28) 1.4px, transparent 1.8px);
    background-size: 15px 15px;
}
.dominium-about-home__photo {
    position: relative;
    display: block;
    width: 82%;
    aspect-ratio: 4 / 4.2;
    object-fit: cover;
    box-shadow: 0 30px 60px rgba(28, 28, 28, .18);
}
.dominium-about-home__photo-sm {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 46%;
    aspect-ratio: 1;
    object-fit: cover;
    border: 8px solid var(--color-bg);
    box-shadow: 0 24px 50px rgba(28, 28, 28, .2);
}
.dominium-about-home__badge {
    position: absolute;
    left: 6%;
    bottom: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: clamp(130px, 11vw, 170px);
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    text-align: center;
    box-shadow: 0 0 0 8px rgba(255, 195, 0, .35), 0 24px 50px rgba(28, 28, 28, .3);
    animation: dominium-car-float 5s ease-in-out infinite;
}
.dominium-about-home__badge-num {
    font-size: clamp(2.25rem, 1.8rem + 1.4vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1;
    color: var(--color-primary);
}
.dominium-about-home__badge-label {
    max-width: 80%;
    margin-top: 6px;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.3;
}
.dominium-about-home__title {
    margin: 0 0 var(--space-5);
    font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.1;
    color: var(--color-text);
}
.dominium-about-home__title span {
    display: block;
    color: var(--color-text-muted);
    font-weight: 700;
}
.dominium-about-home--v2 .dominium-about-home__text {
    margin: 0 0 var(--space-6);
    font-size: clamp(1rem, .95rem + .25vw, 1.1875rem);
    line-height: 1.8;
}
.dominium-about-home--v2.js-reveal .dominium-about-home__body > *,
.dominium-about-home--v2.js-reveal .dominium-about-home__photo,
.dominium-about-home--v2.js-reveal .dominium-about-home__photo-sm,
.dominium-about-home--v2.js-reveal .dominium-about-home__badge {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .8s var(--ease-natural), transform .9s cubic-bezier(.16, 1, .3, 1);
}
.dominium-about-home--v2.js-reveal .dominium-about-home__block {
    transform: scale(0);
    transform-origin: top left;
    transition: transform .9s cubic-bezier(.16, 1, .3, 1) .15s;
}
.dominium-about-home--v2.js-reveal .dominium-about-home__photo-sm { transition-delay: .25s; }
.dominium-about-home--v2.js-reveal .dominium-about-home__badge { transition-delay: .45s; }
.dominium-about-home--v2.js-reveal .dominium-about-home__body > :nth-child(2) { transition-delay: .1s; }
.dominium-about-home--v2.js-reveal .dominium-about-home__body > :nth-child(3) { transition-delay: .2s; }
.dominium-about-home--v2.js-reveal .dominium-about-home__body > :nth-child(4) { transition-delay: .3s; }
.dominium-about-home--v2.is-inview .dominium-about-home__body > *,
.dominium-about-home--v2.is-inview .dominium-about-home__photo,
.dominium-about-home--v2.is-inview .dominium-about-home__photo-sm,
.dominium-about-home--v2.is-inview .dominium-about-home__badge,
.dominium-about-home--v2.is-inview .dominium-about-home__block {
    opacity: 1;
    transform: none;
}

/* Nos services : fond crème, tuiles sombres conservées. */
.dominium-mosaic {
    background-color: #FFFAEB;
    color: var(--color-dark);
}
.dominium-mosaic .dominium-mosaic__eyebrow,
.dominium-mosaic .dominium-mosaic__title,
.dominium-mosaic .dominium-mosaic__all,
.dominium-mosaic .dominium-mosaic__all:hover,
.dominium-mosaic .dominium-mosaic__all:focus-visible {
    color: var(--color-dark);
}
.dominium-mosaic .dominium-mosaic__eyebrow::before {
    background-color: var(--color-dark);
}

/* Réalisations : barre de filtres / fiche projet sous le bandeau commun. */
.dominium-works-bar .dominium-works-filters {
    margin-top: -48px;
    border-radius: 0;
}
@media (max-width: 991px) {
    .dominium-about-home__grid {
        grid-template-columns: 1fr;
    }
    .dominium-about-home__visual {
        max-width: 560px;
    }
}
@media (max-width: 575px) {
    .dominium-about-home__visual {
        padding: 0 0 50px 20px;
    }
    .dominium-works-bar .dominium-works-filters {
        margin-top: -24px;
    }
}

/* Titres longs (fiches projet, articles) : taille réduite dans le bandeau. */
.dominium-page-hero__title--long {
    font-size: clamp(2rem, 1.3rem + 2.2vw, 3.5rem);
    line-height: 1.08;
}

/* Grands mots en filigrane derrière les titres de section : plus lisibles
   (retour client du 09/10/2026, ils ne se voyaient presque pas). */
.dominium-challenges__watermark {
    -webkit-text-stroke: 2px rgba(28, 28, 28, .14);
}
.dominium-faq__watermark {
    -webkit-text-stroke: 2px rgba(28, 28, 28, .12);
}
.dominium-method__watermark,
.dominium-news__watermark,
.dominium-reviews__watermark {
    color: rgba(255, 195, 0, .3);
}

/* =======================================================================
   Accueil (09/10/2026, retour client : ni noir ni jaune) : hero clair —
   photo bien visible à droite, voile blanc côté texte, textes sombres.
   ======================================================================= */
.dominium-xp-hero--home {
    background-color: #f4f2ec;
    color: var(--color-dark);
}
.dominium-xp-hero--home::before {
    background:
        linear-gradient(90deg, rgba(250, 249, 245, .97) 0%, rgba(250, 249, 245, .88) 38%, rgba(250, 249, 245, .35) 66%, rgba(250, 249, 245, 0) 85%),
        linear-gradient(0deg, rgba(250, 249, 245, .6), transparent 35%);
}
.dominium-xp-hero--home .dominium-xp-hero__eyebrow,
.dominium-xp-hero--home .dominium-hero2__title,
.dominium-xp-hero--home .dominium-hero2__tagline {
    color: var(--color-dark);
    text-shadow: none;
}
.dominium-xp-hero--home .dominium-xp-hero__text {
    border-left-color: var(--color-primary);
    color: var(--color-text-muted);
}
.dominium-xp-hero--home .dominium-xp-hero__stats ul {
    border-top-color: rgba(28, 28, 28, .14);
}
.dominium-xp-hero--home .dominium-xp-hero__links li a {
    color: var(--color-dark);
}
.dominium-xp-hero--home .dominium-xp-hero__links li a:hover,
.dominium-xp-hero--home .dominium-xp-hero__links li a:focus-visible {
    color: var(--color-dark);
    text-decoration: underline;
    text-decoration-color: var(--color-primary);
    text-underline-offset: 6px;
}
.dominium-xp-hero--home .dominium-xp-hero__medallion {
    border-color: var(--color-primary);
    box-shadow: 0 30px 60px rgba(28, 28, 28, .2), 0 0 0 10px rgba(255, 255, 255, .7);
}

/* IA : sombre adouci (gris anthracite clair, halo jaune). */
.dominium-ai2 {
    background:
        radial-gradient(55% 70% at 75% 50%, rgba(255, 195, 0, .12), transparent 70%),
        linear-gradient(135deg, #34343a 0%, #2b2b30 100%);
}
@media (max-width: 991px) {
    .dominium-xp-hero--home::before {
        background: linear-gradient(180deg, rgba(250, 249, 245, .9) 0%, rgba(250, 249, 245, .82) 100%);
    }
}

/* =======================================================================
   Accueil — hero « vitrine » (09/10/2026) : fond jaune adouci (dégradé
   clair → jaune, cohérent avec la page Contact), texte à gauche, photos du
   diaporama dans un grand cadre à droite avec cartes flottantes, accès
   rapides numérotés, vague en bas. Aucun voile noir.
   ======================================================================= */
.dominium-hero3 {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: max(680px, calc(100vh / var(--page-zoom, 1) - 125px));
    padding: clamp(56px, 6vw, 110px) 0 clamp(90px, 9vw, 150px);
    background:
        radial-gradient(45% 60% at 18% 30%, rgba(255, 255, 255, .75), transparent 70%),
        radial-gradient(40% 50% at 90% 85%, rgba(255, 255, 255, .35), transparent 70%),
        linear-gradient(120deg, #FFF6D8 0%, #FFE58A 42%, #FFD23F 75%, #FFC91A 100%);
    color: var(--color-dark);
    overflow: hidden;
    isolation: isolate;
}
.dominium-hero3__shape {
    position: absolute;
    z-index: -1;
    top: -22%;
    right: -8%;
    width: clamp(380px, 42vw, 760px);
    aspect-ratio: 1;
    border: 2px solid rgba(255, 255, 255, .7);
    transform: rotate(45deg);
    animation: dominium-hero3-spin 60s linear infinite;
}
@keyframes dominium-hero3-spin {
    to { transform: rotate(405deg); }
}
.dominium-hero3__dots {
    position: absolute;
    z-index: -1;
    left: 3%;
    bottom: 18%;
    width: 180px;
    height: 140px;
    background-image: radial-gradient(circle, rgba(28, 28, 28, .18) 1.4px, transparent 1.8px);
    background-size: 16px 16px;
}
.dominium-hero3__wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    width: 100%;
    height: clamp(50px, 6vw, 110px);
    fill: var(--color-bg);
}
.dominium-hero3__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(40px, 5vw, 90px);
}

/* Texte. */
.dominium-hero3__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 var(--space-5);
    padding: 8px 16px;
    border-radius: 999px;
    background-color: rgba(255, 255, 255, .7);
    box-shadow: 0 8px 24px rgba(28, 28, 28, .08);
    font-size: .8125rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-dark);
}
.dominium-hero3__pulse {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background-color: #1C7C4D;
    box-shadow: 0 0 0 0 rgba(28, 124, 77, .5);
    animation: dominium-hero3-pulse 1.8s ease-out infinite;
}
@keyframes dominium-hero3-pulse {
    70% { box-shadow: 0 0 0 9px rgba(28, 124, 77, 0); }
    100% { box-shadow: 0 0 0 0 rgba(28, 124, 77, 0); }
}
.dominium-hero3 .dominium-hero2__title {
    margin-bottom: var(--space-5);
    font-size: clamp(2.5rem, 1.3rem + 3.4vw, 4.75rem);
    color: var(--color-dark);
}
/* Mots d'accent : surligneur blanc. */
.dominium-hero3 .dominium-hero2__word > span.is-accent {
    background-image: linear-gradient(rgba(255, 255, 255, .85), rgba(255, 255, 255, .85));
    background-position: 0 85%;
}
.dominium-hero3 .dominium-hero2__slide.is-active .dominium-hero2__word > span.is-accent {
    background-size: calc(100% - .1em) .38em;
}
.dominium-hero3 .dominium-hero2__tagline {
    color: rgba(28, 28, 28, .82);
}
.dominium-hero3 .dominium-hero2__cta {
    border-radius: 999px;
    padding-left: 32px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    box-shadow: 0 18px 40px rgba(28, 28, 28, .25);
}
.dominium-hero3 .dominium-hero2__cta::before {
    border-radius: 999px;
    background-color: var(--color-bg);
}
.dominium-hero3 .dominium-hero2__cta:hover,
.dominium-hero3 .dominium-hero2__cta:focus-visible {
    color: var(--color-dark);
}
.dominium-hero3 .dominium-hero2__cta-icon {
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-dark);
}
.dominium-hero3__text {
    max-width: 560px;
    margin: var(--space-6) 0 0;
    padding-left: var(--space-5);
    border-left: 3px solid var(--color-dark);
    font-size: clamp(1rem, .92rem + .3vw, 1.1875rem);
    line-height: 1.7;
    color: rgba(28, 28, 28, .75);
}

/* Visuel. */
.dominium-hero3__visual {
    position: relative;
    padding: 30px 30px 40px 40px;
}
.dominium-hero3__block {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 70%;
    height: 72%;
    border-radius: 32px;
    background-color: rgba(255, 255, 255, .55);
    border: 2px solid rgba(255, 255, 255, .9);
}
.dominium-hero3__frame {
    position: relative;
    /* Format paysage 4/3 : celui des photos Dominium, affichées entières (22/10/2026). */
    aspect-ratio: 4 / 3;
    border-radius: 32px;
    overflow: hidden;
    box-shadow: 0 40px 80px rgba(120, 80, 0, .28);
}
.dominium-hero3__frame .dominium-hero2__bg {
    border-radius: inherit;
}
.dominium-hero3__card {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-radius: 18px;
    background-color: rgba(255, 255, 255, .92);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 20px 45px rgba(28, 28, 28, .16);
    color: var(--color-dark);
    animation: dominium-car-float 6s ease-in-out infinite;
}
.dominium-hero3__card strong {
    display: block;
    font-size: 1rem;
    font-weight: 800;
}
.dominium-hero3__card small {
    display: block;
    font-size: .8125rem;
    color: var(--color-text-muted);
}
.dominium-hero3__card--top {
    top: 0;
    left: 0;
}
.dominium-hero3__card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 18px;
}
.dominium-hero3__card--bottom {
    left: 0;
    bottom: 8%;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 160px;
    animation-delay: -2s;
}
.dominium-hero3__card-num {
    font-size: 2.5rem !important;
    letter-spacing: -.04em;
    line-height: 1;
}
.dominium-hero3__card--side {
    right: 0;
    top: 42%;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    animation-delay: -4s;
}
.dominium-hero3__chips {
    display: flex;
    gap: 6px;
}
.dominium-hero3__chips i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 14px;
}

/* Accès rapides numérotés. */
.dominium-hero3__links {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: clamp(40px, 5vw, 72px);
}
.dominium-hero3__links a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    border-radius: 18px;
    background-color: rgba(255, 255, 255, .6);
    border: 1px solid rgba(255, 255, 255, .9);
    color: var(--color-dark);
    font-weight: 800;
    transition: transform .35s var(--ease-natural), background-color .35s var(--ease-natural), color .35s var(--ease-natural);
}
.dominium-hero3__links-num {
    font-size: .8125rem;
    color: rgba(28, 28, 28, .45);
}
.dominium-hero3__links-label {
    flex: 1;
}
.dominium-hero3__links a i {
    font-size: 13px;
    transition: transform .3s var(--ease-natural);
}
.dominium-hero3__links a:hover,
.dominium-hero3__links a:focus-visible {
    transform: translateY(-4px);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}
.dominium-hero3__links a:hover .dominium-hero3__links-num {
    color: var(--color-primary);
}
.dominium-hero3__links a:hover i {
    transform: translateX(4px);
    color: var(--color-primary);
}

/* Entrée de page. */
.dominium-hero3.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__word > span {
    transform: translateY(115%) rotate(8deg);
}
.dominium-hero3.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__word > span.is-accent {
    background-size: 0 .38em;
}
.dominium-hero3.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__tagline {
    opacity: 0;
    filter: blur(10px);
    transform: translateX(-24px);
}
.dominium-hero3.js-hero:not(.is-playing) .dominium-hero2__slide.is-active .dominium-hero2__cta {
    opacity: 0;
    transform: translateY(20px);
}
.dominium-hero3.js-hero .dominium-hero3__eyebrow,
.dominium-hero3.js-hero .dominium-hero3__text,
.dominium-hero3.js-hero .dominium-hero3__links a {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s var(--ease-natural), transform .8s var(--ease-natural), background-color .35s, color .35s;
}
.dominium-hero3.js-hero .dominium-hero3__text { transition-delay: 1.4s, 1.4s, 0s, 0s; }
.dominium-hero3.js-hero .dominium-hero3__links a { transition-delay: calc(var(--i) * .1s + 1.6s), calc(var(--i) * .1s + 1.6s), 0s, 0s; }
.dominium-hero3.js-hero .dominium-hero3__frame {
    clip-path: inset(0 0 0 100% round 32px);
    transition: clip-path 1.2s cubic-bezier(.77, 0, .18, 1) .2s;
}
.dominium-hero3.js-hero .dominium-hero3__block {
    opacity: 0;
    transform: translate(30px, 30px);
    transition: opacity .8s var(--ease-natural) .6s, transform 1s cubic-bezier(.16, 1, .3, 1) .6s;
}
.dominium-hero3.js-hero .dominium-hero3__card {
    opacity: 0;
    scale: .8;
    transition: opacity .6s var(--ease-natural), scale .7s cubic-bezier(.34, 1.4, .64, 1);
}
.dominium-hero3.js-hero .dominium-hero3__card--top { transition-delay: 1s; }
.dominium-hero3.js-hero .dominium-hero3__card--side { transition-delay: 1.2s; }
.dominium-hero3.js-hero .dominium-hero3__card--bottom { transition-delay: 1.4s; }
.dominium-hero3.js-hero.is-playing .dominium-hero3__eyebrow,
.dominium-hero3.js-hero.is-playing .dominium-hero3__text,
.dominium-hero3.js-hero.is-playing .dominium-hero3__links a,
.dominium-hero3.js-hero.is-playing .dominium-hero3__block {
    opacity: 1;
    transform: none;
}
.dominium-hero3.js-hero.is-playing .dominium-hero3__links a:hover {
    transform: translateY(-4px);
    transition-delay: 0s;
}
.dominium-hero3.js-hero.is-playing .dominium-hero3__frame {
    clip-path: inset(0 0 0 0 round 32px);
}
.dominium-hero3.js-hero.is-playing .dominium-hero3__card {
    opacity: 1;
    scale: 1;
}

@media (max-width: 1199px) {
    .dominium-hero3__links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 991px) {
    .dominium-hero3 {
        min-height: 0;
    }
    .dominium-hero3__grid {
        grid-template-columns: 1fr;
    }
    .dominium-hero3__visual {
        max-width: 560px;
    }
}
@media (max-width: 575px) {
    .dominium-hero3__visual {
        padding: 20px 10px 30px 20px;
    }
    .dominium-hero3__card--side {
        display: none;
    }
    .dominium-hero3__links {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .dominium-hero3__shape,
    .dominium-hero3__pulse,
    .dominium-hero3__card {
        animation: none;
    }
}

.dominium-hero3 .dominium-hero2__inner {
    display: block;
}
.dominium-hero3__shape {
    border-color: rgba(255, 255, 255, .45);
}
@media (max-width: 575px) {
    .dominium-hero3__links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
    .dominium-hero3__links a {
        padding: 14px;
        font-size: .875rem;
    }
    .dominium-hero3__links a i {
        display: none;
    }
}

/* Nos services sur fond crème : lien « Tous nos services » en vrai bouton
   noir bien visible (le motif de triangles, prévu pour un fond noir, est
   retiré de la section). */
.dominium-mosaic .dominium-mosaic__all {
    gap: var(--space-4);
    min-height: 56px;
    padding: 0 8px 0 26px;
    border-radius: 999px;
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
    box-shadow: 0 14px 30px rgba(28, 28, 28, .18);
    transition: background-color .3s var(--ease-natural), color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-mosaic .dominium-mosaic__all span {
    border-radius: 50%;
}
.dominium-mosaic .dominium-mosaic__all:hover,
.dominium-mosaic .dominium-mosaic__all:focus-visible {
    background-color: var(--color-primary);
    color: var(--color-dark);
    transform: translateY(-3px);
}
.dominium-mosaic .dominium-mosaic__all:hover span {
    background-color: var(--color-dark);
    color: var(--color-primary);
}

/* =======================================================================
   Article de blog (09/10/2026) : mise en page éditoriale.
   ======================================================================= */
.dominium-article {
    padding: clamp(56px, 6vw, 100px) 0 clamp(40px, 4vw, 70px);
}
.dominium-article__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 330px);
    gap: clamp(32px, 5vw, 80px);
    align-items: start;
}
.dominium-article__main {
    min-width: 0;
}
.dominium-article__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 22px;
    margin-bottom: var(--space-5);
    font-size: .9375rem;
    font-weight: 600;
    color: var(--color-text-muted);
}
.dominium-article__meta i {
    margin-right: 4px;
    color: var(--color-dark);
}
.dominium-article__cover {
    margin: 0 0 clamp(32px, 4vw, 52px);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(28, 28, 28, .12);
}
.dominium-article__cover img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 8;
    object-fit: cover;
}

/* Typographie du contenu (HTML saisi dans l'Intranet). */
.dominium-article__content {
    max-width: 760px;
    font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem);
    line-height: 1.85;
    color: #3d3d42;
}
.dominium-article__content > :first-child {
    margin-top: 0;
}
.dominium-article__content > p:first-child {
    font-size: 1.2em;
    font-weight: 500;
    line-height: 1.7;
    color: var(--color-text);
}
.dominium-article__content p {
    margin: 0 0 1.4em;
}
.dominium-article__content h2,
.dominium-article__content h3,
.dominium-article__content h4 {
    margin: 1.8em 0 .7em;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.25;
    color: var(--color-text);
}
.dominium-article__content h2 { font-size: 1.75em; }
.dominium-article__content h3 { font-size: 1.4em; }
.dominium-article__content h4 { font-size: 1.15em; }
.dominium-article__content strong {
    color: var(--color-text);
}
.dominium-article__content a {
    font-weight: 700;
    color: var(--color-text);
    background-image: linear-gradient(var(--color-primary), var(--color-primary));
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 2px;
    transition: background-size .3s var(--ease-natural);
}
.dominium-article__content a:hover {
    background-size: 100% 100%;
}
.dominium-article__content ul,
.dominium-article__content ol {
    margin: 0 0 1.4em;
    padding: 0;
    list-style: none;
}
.dominium-article__content li {
    position: relative;
    margin-bottom: .6em;
    padding-left: 34px;
}
.dominium-article__content li p {
    margin: 0;
}
.dominium-article__content ul > li::before {
    content: "";
    position: absolute;
    left: 6px;
    top: .7em;
    width: 10px;
    height: 10px;
    background-color: var(--color-primary);
    transform: rotate(45deg);
}
.dominium-article__content ol {
    counter-reset: article;
}
.dominium-article__content ol > li {
    counter-increment: article;
}
.dominium-article__content ol > li::before {
    content: counter(article);
    position: absolute;
    left: 0;
    top: .2em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: .75rem;
    font-weight: 800;
}
.dominium-article__content blockquote {
    margin: 1.8em 0;
    padding: 24px 28px;
    border-left: 5px solid var(--color-primary);
    border-radius: 0 18px 18px 0;
    background-color: #FFFAEB;
    font-size: 1.1em;
    font-weight: 600;
    color: var(--color-text);
}
.dominium-article__content img {
    max-width: 100%;
    height: auto;
    border-radius: 16px;
}
.dominium-article__end {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    max-width: 760px;
    margin-top: var(--space-7);
    padding-top: var(--space-5);
    border-top: 1px solid var(--color-border);
}
.dominium-article__back {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    color: var(--color-text);
}
.dominium-article__back i {
    transition: transform .3s var(--ease-natural);
}
.dominium-article__back:hover i {
    transform: translateX(-4px);
}

/* Partage. */
.dominium-article__share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.dominium-article__share > span {
    margin-right: 6px;
    font-weight: 800;
    color: var(--color-text);
}
.dominium-article__share a,
.dominium-article__share button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background-color: var(--color-bg);
    color: var(--color-dark);
    font-size: 15px;
    cursor: pointer;
    transition: background-color .3s var(--ease-natural), border-color .3s var(--ease-natural), transform .3s var(--ease-natural);
}
.dominium-article__share a:hover,
.dominium-article__share button:hover {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    transform: translateY(-3px);
}
.dominium-article__copied {
    display: inline-block;
    margin-top: 10px;
    font-size: .875rem;
    font-weight: 700;
    color: #1C7C4D;
}

/* Colonne latérale. */
.dominium-article__aside {
    position: sticky;
    top: 110px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.dominium-article__box {
    padding: 24px;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    background-color: var(--color-bg);
}
.dominium-article__box-title {
    margin: 0 0 var(--space-4);
    font-size: 1.0625rem;
    font-weight: 800;
    color: var(--color-text);
}
.dominium-article__box--cta {
    border: 0;
    background: linear-gradient(135deg, #FFE27A, var(--color-primary));
}
.dominium-article__box--cta p:not(.dominium-article__box-title) {
    margin: -6px 0 var(--space-5);
    line-height: 1.6;
    color: rgba(28, 28, 28, .8);
}
.dominium-article__box-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: var(--space-3);
    border-radius: 14px;
    background-color: var(--color-dark);
    color: var(--color-primary);
    font-size: 20px;
}
.dominium-article__box--cta .dominium-sol-intro__btn {
    min-height: 52px;
    font-size: .9375rem;
}
.dominium-article__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.dominium-article__cats a {
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: .875rem;
    font-weight: 700;
    color: var(--color-text);
    transition: background-color .3s var(--ease-natural), border-color .3s var(--ease-natural);
}
.dominium-article__cats a:hover {
    border-color: var(--color-dark);
    background-color: var(--color-dark);
    color: var(--color-text-on-dark);
}

/* Articles similaires. */
.dominium-article-related {
    padding: clamp(56px, 6vw, 90px) 0;
    background-color: #FFFAEB;
}
.dominium-article-related__head {
    margin-bottom: clamp(28px, 3vw, 44px);
}
.dominium-article-related__title {
    margin: 0;
    font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -.03em;
    color: var(--color-text);
}

/* Apparition. */
.dominium-article.js-reveal .dominium-article__main,
.dominium-article.js-reveal .dominium-article__aside {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .8s var(--ease-natural), transform .9s cubic-bezier(.16, 1, .3, 1);
}
.dominium-article.js-reveal .dominium-article__aside {
    transition-delay: .2s;
}
.dominium-article.is-inview .dominium-article__main,
.dominium-article.is-inview .dominium-article__aside {
    opacity: 1;
    transform: none;
}

@media (max-width: 991px) {
    .dominium-article__layout {
        grid-template-columns: 1fr;
    }
    .dominium-article__aside {
        position: static;
    }
}
@media (max-width: 575px) {
    .dominium-article__cover img {
        aspect-ratio: 4 / 3;
    }
}

/* Article : typographie alignée sur la page Blog (09/10/2026). */
.dominium-article__content {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text-muted);
}
.dominium-article__content > p:first-child {
    font-size: inherit;
    font-weight: 400;
    line-height: inherit;
    color: inherit;
}
.dominium-article__content h2 {
    position: relative;
    margin: 2em 0 .8em;
    padding-left: 18px;
    font-size: clamp(1.25rem, 1.05rem + .6vw, 1.5rem);
    font-weight: 800;
    letter-spacing: -.015em;
    line-height: 1.3;
    color: var(--color-text);
}
.dominium-article__content h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: .2em;
    bottom: .2em;
    width: 5px;
    border-radius: 3px;
    background-color: var(--color-primary);
}
.dominium-article__content > h2:first-child {
    margin-top: 0;
}
.dominium-article__content h3 {
    font-size: 1.1875rem;
}
.dominium-article__content li {
    color: var(--color-text-muted);
}
.dominium-article__content ul > li::before {
    top: .62em;
    width: 8px;
    height: 8px;
}

/* Article : une seule colonne de lecture centrée (colonne latérale retirée
   à la demande du client) ; texte à la même largeur que l'image. */
.dominium-article__layout {
    display: block;
    max-width: 860px;
    margin: 0 auto;
}
.dominium-article__content,
.dominium-article__end {
    max-width: none;
}
.dominium-article__meta {
    justify-content: center;
}

/* =======================================================================
   10/10/2026 (retours client).
   ======================================================================= */
/* Réalisations : projets classés par catégorie. */
.dominium-works-group + .dominium-works-group {
    margin-top: clamp(40px, 4vw, 64px);
}
.dominium-works-group__head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: clamp(18px, 2vw, 28px);
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.dominium-works-group__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background-color: var(--color-primary);
    color: var(--color-dark);
    font-size: 20px;
}
.dominium-works-group__title {
    flex: 1;
    margin: 0;
    font-size: clamp(1.25rem, 1.05rem + .6vw, 1.625rem);
    font-weight: 800;
    color: var(--color-text-on-dark);
}
.dominium-works-group__count {
    padding: 5px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 195, 0, .5);
    font-size: .8125rem;
    font-weight: 700;
    color: var(--color-primary);
}

/* À propos — « Nos statistiques » : bande réduite à environ un tiers. */
.dominium-stats-showcase .dominium-stats-showcase__band-inner {
    min-height: clamp(84px, 6.5vw, 116px);
}
.dominium-stats-showcase .dominium-stats-showcase__label {
    font-size: clamp(1.25rem, .9rem + .7vw, 1.75rem);
}
.dominium-stats-showcase .dominium-stats-showcase__stats {
    padding: 14px var(--space-6);
}
.dominium-stats-showcase .dominium-stats-showcase__stats li {
    flex-direction: row;
    justify-content: center;
    gap: 12px;
    text-align: left;
}
.dominium-stats-showcase .dominium-stats-showcase__number {
    font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem);
}
.dominium-stats-showcase .dominium-stats-showcase__stat-label {
    font-size: .9375rem;
}

/* À propos — secteurs : cartes nettement plus petites, grille régulière. */
#secteurs .dominium-sx-mosaic__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
#secteurs .dominium-sx-tile,
#secteurs .dominium-sx-tile:nth-child(n) {
    grid-row: auto;
    grid-column: auto;
    aspect-ratio: 16 / 7;
}
#secteurs .dominium-sx-tile__name {
    font-size: 1.125rem;
}
#secteurs .dominium-sx-tile__index {
    font-size: 1.75rem;
}
#secteurs .dominium-sx-tile__icon {
    width: 36px;
    height: 36px;
    font-size: 15px;
}
@media (max-width: 991px) {
    .dominium-stats-showcase .dominium-stats-showcase__stats li {
        flex-direction: column;
        gap: 4px;
        text-align: center;
    }
}

/* Carrousels Slick : exclus du défilement horizontal natif sur mobile. */
@media (max-width: 767px) {
    .dominium-works-slider.slick-initialized {
        display: block !important;
        margin: 0 -8px !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    .dominium-works-slider.slick-initialized > * {
        flex: none !important;
        max-width: none !important;
    }
}

/* =======================================================================
   Mobile (10/10/2026) : page mieux occupée — marges verticales réduites
   (les espacements pensés pour l'ordinateur laissaient de grands vides),
   étapes en grille 2 × 2.
   ======================================================================= */
@media (max-width: 767px) {
    :root {
        --space-9: 56px;
        --space-8: 44px;
        --space-7: 32px;
    }
    .dominium-sol-intro,
    .dominium-car-intro,
    .dominium-about-home--v2,
    .dominium-car-values,
    .dominium-sol-explorer,
    .dominium-article,
    .dominium-article-related,
    .dominium-legal,
    .atf-section-padding {
        padding-top: 52px !important;
        padding-bottom: 52px !important;
    }
    .dominium-cta {
        padding-top: 36px;
        padding-bottom: 52px;
    }
    .dominium-steps__list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 22px 14px;
    }
    .dominium-steps__icon {
        width: 64px;
        height: 64px;
        font-size: 22px;
    }
    .dominium-steps__item p {
        font-size: .875rem;
    }
}

/* Aperçu en direct dans l'Intranet (?apercu=1). */
.is-apercu .atf-preloader,
.is-apercu .dominium-chatbot,
.is-apercu .dominium-float {
    display: none !important;
}
/* =======================================================================
   ÉCHELLE GLOBALE SUR ÉCRANS "MIS À L'ÉCHELLE" PAR WINDOWS (125 / 150 %)
   Retour client du 04/10/2026 : sur son poste (1920px avec mise à
   l'échelle Windows 125 %, soit 1536px CSS à 100 % dans le navigateur),
   le site n'a le bon rendu qu'en zoomant le navigateur à 75 %. On
   applique ce même facteur directement, uniquement :
   - sur ordinateur (>= 1200px CSS) ;
   - sur une densité de 1.2 à 1.75 (Windows 125 % / 150 %). Les écrans
     à 100 % (densité 1) ont déjà ce rendu, et les écrans Retina (Mac,
     densité 2) sont exclus pour ne pas rendre le texte minuscule.
   Le site n'utilise aucune unité vh/vw dépendante de ce facteur ; la
   propriété `zoom` est standardisée (Chrome/Edge 128+, Firefox 126+,
   Safari) et les positions lues par GSAP/Lenis/Slick restent cohérentes.
   ======================================================================= */
@media (min-width: 1200px) and (min-resolution: 1.2dppx) and (max-resolution: 1.75dppx) {
    html {
        zoom: .75;
        --page-zoom: .75;
    }
    /* Mise en page de 2048px : marges latérales suffisantes pour le motif. */
    .dominium-geo {
        display: block;
        width: 170px;
    }

    /* Avec `zoom`, les media queries voient toujours la largeur réelle
       (ex. 1536px) alors que la mise en page dispose de 1536 / 0.75 =
       2048px : on reprend ici les réglages "grand écran" (>= 1600px)
       pour retrouver exactement le rendu du navigateur zoomé à 75 %. */
    .container,
    .container-lg,
    .container-md,
    .container-sm,
    .container-xl,
    .container-xxl {
        max-width: 1560px;
    }
    .dominium-team-showcase {
        --team-card-gap: 60px;
    }
    .dominium-team-showcase__text {
        font-size: 1.25rem;
        line-height: 2;
    }
    .dominium-square-btn {
        min-height: 64px;
        padding-left: 36px;
        font-size: 1.0625rem;
    }
    .dominium-square-btn__icon {
        width: 40px;
        height: 40px;
        font-size: 17px;
    }
}

/* CTA "Demander un devis" de l'en-tête : ne jamais passer sur deux
   lignes (constaté à 1366px après la passe de densité). */
.atf-header-bottom-right .atf-themes-btn {
    white-space: nowrap;
}
