/* =============================================
   Webfonts — League Spartan · Lexend · Quicksand
   ============================================= */
@font-face {
    font-family: 'League Spartan';
    src: url('/assets/fonts/League_Spartan/LeagueSpartan-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Lexend';
    src: url('/assets/fonts/Lexend/Lexend-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Quicksand';
    src: url('/assets/fonts/Quicksand/Quicksand-VariableFont_wght.ttf') format('truetype');
    font-weight: 300 700;
    font-style: normal;
    font-display: swap;
}

/* =============================================
   Variables & Reset
   ============================================= */
:root {
    --color-primary: #597AAF;
    --color-primary-dark: #3C6098;
    --color-secondary: #289951;
    --color-secondary-dark: #44AC6B;
    --color-accent: #E1C6AB;
    --color-accent-dark: #BF9B79;
    --color-soft-blue: #D0D8E4;
    --color-soft-green: #A3CBBC;
    --color-dark: #000000;
    --color-gray: #4b5563;
    --color-light-gray: #f3f4f6;
    --color-white: #FFFFFF;
    --color-border: #D0D8E4;

    /* Couleurs pôles (dérivées de la charte) */
    --pole-0: #597AAF;  /* Bleu       — Conseil, Audit & Conformité  */
    --pole-0-bg: #EDF1F8;
    --pole-1: #289951;  /* Vert       — Solutions & Développement     */
    --pole-1-bg: #E8F5EE;
    --pole-2: #BF9B79;  /* Beige foncé — Performance Digitale         */
    --pole-2-bg: #F8F1E9;
    --pole-3: #A4B2C8;  /* Bleu clair  — Support & Maintenance        */
    --pole-3-bg: #EDF0F6;
    --pole-4: #72AA95;  /* Vert clair  — Intelligence Artificielle    */
    --pole-4-bg: #EBF5F1;

    /* Fontes */
    --font-title:    'League Spartan', 'Arial Black', sans-serif;
    --font-subtitle: 'Lexend', 'Arial', sans-serif;
    --font-body:     'Quicksand', 'Segoe UI', sans-serif;
    /* alias rétro-compat */
    --font-sans:     'Quicksand', 'Segoe UI', sans-serif;

    --radius-sm: 6px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --shadow-sm: 0 1px 3px rgba(0,0,0,.1);
    --shadow-md: 0 4px 16px rgba(0,0,0,.1);
    --shadow-lg: 0 10px 40px rgba(0,0,0,.12);
    --transition: .2s ease;
    --container-width: 1200px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    color: var(--color-dark);
    background: var(--color-white);
    line-height: 1.6;
    font-size: 16px;
    font-weight: 500;
}

/* ── Hiérarchie typographique ── */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-title);
    line-height: 1.2;
    letter-spacing: 0;
    font-weight: 700;
}

/* Labels, tags, noms de boutons, mise en valeur */
.btn,
label,
.sp-section-tag,
.sp-hero__eyebrow,
.sp-plan__name,
.sp-plan__duration,
.mgm-tab-text strong,
.mgm-tab-text span,
.topbar-btn,
.header-nav a,
.mgm-panel-header a,
.mgm-sub-title,
.footer-col h4,
.sp-trust-item,
.sp-step__num,
.sp-breadcrumb,
nav,
.sp-related-card strong,
.sp-related-card h3 {
    font-family: var(--font-subtitle);
}

/* Corps de texte explicitement Quicksand */
p, li, blockquote, td, th, input, textarea, select {
    font-family: var(--font-body);
}

img { max-width: 100%; display: block; }
a  { color: inherit; text-decoration: none; transition: color var(--transition); }
ul { list-style: none; }

/* =============================================
   Layout
   ============================================= */
#main-content {
    min-width: 0;
}
.container {
    width: 100%;
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 24px;
}

/* =============================================
   Boutons
   ============================================= */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: var(--radius-sm);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all var(--transition);
    text-decoration: none;
}
.btn:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}
/* .btn impose display — sans ceci, [hidden] ne masque pas les boutons (Continuer + Envoyer visibles ensemble) */
.btn[hidden] {
    display: none !important;
}

.btn-lg { padding: 14px 28px; font-size: 16px; }

.btn-primary {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}
.btn-primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: var(--color-white);
}

.btn-outline {
    background: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.btn-outline:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* =============================================
   Header & Logo
   ============================================= */
.site-header {
    position: sticky;
    top: 0;
    z-index: 300;
    background: var(--color-white);
}

.topbar {
    border-bottom: 1px solid var(--color-border);
    background: #f8fbff;
}
.topbar-inner {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
.topbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.topbar-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-gray);
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all var(--transition);
    white-space: nowrap;
}
.topbar-btn:hover {
    background: var(--color-soft-blue);
    color: var(--color-primary-dark);
}
.topbar-btn--primary {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}
.topbar-btn--primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: var(--color-white);
}

.header-main {
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
}
.header-main-inner {
    min-height: 68px;
    display: flex;
    align-items: center;
    gap: 32px;
}
.logo {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}
.logo svg {
    width: 160px;
    height: auto;
    display: block;
    max-height: 48px;
}

/* Nav principale dans le header */
.header-nav {
    display: flex;
    align-items: center;
    gap: clamp(18px, 2.5vw, 32px);
}
.header-nav a {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-dark);
    padding: 10px 2px 12px;
    border-radius: 0;
    background: transparent;
    border-bottom: 3px solid transparent;
    transition: color var(--transition), border-color var(--transition);
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.header-nav a:hover {
    background: transparent;
    color: var(--color-secondary-dark);
}
.header-nav a.active {
    background: transparent;
    color: var(--color-secondary);
    font-weight: 700;
    border-bottom-color: var(--color-secondary);
}

/* ── Header actions : search + CTA ───────────────────── */
.header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

/* Search */
.header-search__form {
    display: flex;
    align-items: center;
    background: #f4f6fb;
    border: 1.5px solid var(--color-border);
    border-radius: 999px;
    overflow: hidden;
    transition: border-color .2s, box-shadow .2s, width .3s;
    height: 40px;
    width: 40px;
}
.header-search__form.is-open {
    width: 260px;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(58,90,160,.1);
    background: #fff;
}
.header-search__toggle {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--color-gray);
    transition: color .15s;
}
.header-search__toggle:hover { color: var(--color-primary); }
.header-search__input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--color-text);
    outline: none;
    padding: 0;
    width: 0;
    opacity: 0;
    transition: opacity .2s, width .3s, padding .2s;
    white-space: nowrap;
}
.header-search__form.is-open .header-search__input {
    width: 100%;
    opacity: 1;
    padding: 0 4px 0 0;
}
.header-search__submit {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background: var(--color-primary);
    border: none;
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    margin-right: 2px;
    transition: background .15s;
}
.header-search__submit:hover { background: var(--color-primary-dark); }
.header-search__form.is-open .header-search__submit { display: flex; }

/* CTA header — RDV (vert identité) */
.header-ctas {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.header-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
    padding: 10px 16px;
    border-radius: 999px;
    white-space: nowrap;
    transition: background .2s, transform .15s, box-shadow .2s, border-color .2s, color .2s;
    border: none;
    cursor: pointer;
    text-decoration: none;
}

.header-cta--devis {
    background: var(--color-secondary);
    color: #fff;
    box-shadow: 0 3px 12px rgba(40, 153, 81, 0.28);
}

.header-cta--devis:hover {
    background: var(--color-secondary-dark);
    box-shadow: 0 5px 18px rgba(40, 153, 81, 0.38);
    transform: translateY(-1px);
}

.header-cta--rdv {
    background: var(--color-secondary);
    color: #fff;
    border: none;
    box-shadow: 0 3px 12px rgba(40, 153, 81, 0.28);
}

.header-cta--rdv:hover {
    background: var(--color-secondary-dark);
    color: #fff;
    box-shadow: 0 5px 18px rgba(40, 153, 81, 0.38);
    transform: translateY(-1px);
}

.header-cta svg { flex-shrink: 0; }

@media (max-width: 1024px) {
    .header-cta span { display: none; }
    .header-cta { padding: 10px 12px; }
    .header-search__form.is-open { width: 200px; }
}
@media (max-width: 768px) {
    .header-actions { gap: 6px; }
    .header-search__form.is-open { width: 170px; }
}

/* =============================================
   Méga Menu — barre des pôles
   ============================================= */
.megamenu-bar {
    background: var(--color-white);
    border-bottom: 2px solid var(--color-border);
    position: relative;
}

.megamenu-desktop-close {
    display: none;
}

.megamenu-desktop-open {
    display: none;
}

@media (min-width: 769px) {
    .megamenu-desktop-close {
        position: absolute;
        top: 12px;
        right: 18px;
        width: 34px;
        height: 34px;
        border-radius: 999px;
        border: 1px solid var(--color-border);
        background: #fff;
        color: var(--color-gray);
        font-size: 24px;
        line-height: 1;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        z-index: 5;
        transition: all .2s ease;
    }
    .megamenu-desktop-close:hover {
        color: var(--color-primary);
        border-color: var(--color-primary);
        transform: scale(1.02);
    }

    .megamenu-desktop-open {
        margin-left: 8px;
        border: 1px solid var(--color-border);
        background: #f8fbff;
        color: var(--color-primary);
        border-radius: 999px;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: .02em;
        padding: 8px 12px;
        cursor: pointer;
        white-space: nowrap;
        transition: all .2s ease;
    }
    .megamenu-desktop-open:hover {
        background: #fff;
        border-color: var(--color-primary);
    }

    body.megamenu-desktop-hidden .megamenu-bar {
        display: none;
    }
    body.megamenu-desktop-hidden .megamenu-desktop-open {
        display: inline-flex;
        align-items: center;
    }
}

.megamenu-tabs {
    display: flex;
    align-items: stretch;
    list-style: none;
    padding: 0;
    margin: 0;
}

.mgm-tab {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 22px;
    cursor: pointer;
    position: relative;
    flex: 1;
    transition: background var(--transition);
    border-right: 1px solid var(--color-border);
    user-select: none;
}
.mgm-tab:last-child { border-right: none; }

.mgm-tab-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--transition), color var(--transition);
    color: var(--color-primary);
    transition: background var(--transition), color var(--transition);
}
.mgm-tab-text {
    flex: 1;
    min-width: 0;
}
.mgm-tab-text strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.25;
    margin-bottom: 3px;
}
.mgm-tab-text span {
    display: block;
    font-size: 11.5px;
    color: var(--color-gray);
    line-height: 1.3;
}
.mgm-tab-chevron {
    font-size: 12px;
    color: var(--color-gray);
    flex-shrink: 0;
    align-self: flex-start;
    margin-top: 2px;
    transition: transform var(--transition);
}

/* ── Couleurs pôles sur les tabs ── */
[data-tab="0"] { --pole-color: var(--pole-0); --pole-bg: var(--pole-0-bg); }
[data-tab="1"] { --pole-color: var(--pole-1); --pole-bg: var(--pole-1-bg); }
[data-tab="2"] { --pole-color: var(--pole-2); --pole-bg: var(--pole-2-bg); }
[data-tab="3"] { --pole-color: var(--pole-3); --pole-bg: var(--pole-3-bg); }
[data-tab="4"] { --pole-color: var(--pole-4); --pole-bg: var(--pole-4-bg); }

/* ── Couleurs pôles sur les panels ── */
[data-panel="0"] { --pole-color: var(--pole-0); --pole-bg: var(--pole-0-bg); }
[data-panel="1"] { --pole-color: var(--pole-1); --pole-bg: var(--pole-1-bg); }
[data-panel="2"] { --pole-color: var(--pole-2); --pole-bg: var(--pole-2-bg); }
[data-panel="3"] { --pole-color: var(--pole-3); --pole-bg: var(--pole-3-bg); }
[data-panel="4"] { --pole-color: var(--pole-4); --pole-bg: var(--pole-4-bg); }

/* Icon du tab en couleur de pôle au repos */
.mgm-tab-icon {
    background: var(--pole-bg, var(--color-soft-blue));
    color: var(--pole-color, var(--color-primary));
}

.mgm-tab:hover {
    background: var(--pole-bg, #f8fbff);
}
.mgm-tab:hover .mgm-tab-icon {
    background: var(--pole-color, var(--color-primary));
    color: var(--color-white);
}

.mgm-tab.active {
    background: var(--pole-bg, #f8fbff);
}
.mgm-tab.active .mgm-tab-icon {
    background: var(--pole-color, var(--color-primary));
    color: var(--color-white);
}
.mgm-tab.active .mgm-tab-text strong { color: var(--pole-color, var(--color-primary)); }
.mgm-tab.active .mgm-tab-chevron {
    transform: rotate(180deg);
    color: var(--pole-color, var(--color-primary));
}
.mgm-tab.active::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--pole-color, var(--color-primary));
    z-index: 1;
}

/* ── Panneau dropdown ────────────────────── */
.megamenu-panels {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 16px 48px rgba(0,0,0,.12);
    z-index: 400;
}
.megamenu-panels.open { display: block; }

.mgm-panel {
    display: none;
    padding: 28px 0 32px;
}
.mgm-panel.active { display: block; }

.mgm-panel-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 36px;
    align-items: start;
}

/* Colonne gauche */
.mgm-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}
.mgm-panel-header span {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--color-gray);
}
.mgm-panel-header a {
    font-size: 13px;
    font-weight: 600;
    color: var(--pole-color, var(--color-primary));
}
.mgm-panel-header a:hover { text-decoration: underline; }

.mgm-cards-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.mgm-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    transition: background var(--transition), border-color var(--transition);
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}
.mgm-card:hover,
.mgm-card.active {
    background: var(--pole-bg, #f8fbff);
    border-color: var(--pole-color, var(--color-border));
}
.mgm-card-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--color-soft-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-primary);
    transition: background var(--transition), color var(--transition);
}
.mgm-card.active .mgm-card-icon {
    background: var(--pole-color, var(--color-primary));
    color: var(--color-white);
}
.mgm-card-text { flex: 1; min-width: 0; }
.mgm-card-text strong {
    display: block;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
    margin-bottom: 2px;
}
.mgm-card-text span {
    display: block;
    font-size: 12px;
    color: var(--color-gray);
}
.mgm-card-arrow {
    font-size: 16px;
    color: var(--color-gray);
    flex-shrink: 0;
    transition: color var(--transition);
}
.mgm-card:hover .mgm-card-arrow,
.mgm-card.active .mgm-card-arrow { color: var(--pole-color, var(--color-primary)); }

/* Colonne droite — packs (neutre) vs pages niveau 3 (teinte pôle) */
.mgm-panel-right {
    position: relative;
    border-left: 1px solid var(--color-border);
    padding-left: 28px;
    min-height: 180px;
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
}

/* Pont de survol : le gap entre colonnes ne doit pas « perdre » le thème actif */
.mgm-panel-right--detail::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 100%;
    width: 40px;
}

/* Colonne en mode « détail thème » : lien visuel avec le pôle actif */
.mgm-panel-right--detail {
    border-left-color: var(--pole-color, var(--color-primary));
    box-shadow: inset 12px 0 32px -20px var(--pole-bg, var(--color-soft-blue));
}

.mgm-sub { display: none; }
.mgm-sub.active {
    display: block;
    padding: 14px 16px 16px;
    margin: -4px 0 0;
    border-radius: var(--radius-md);
    background: linear-gradient(
        165deg,
        var(--pole-bg, #f8fbff) 0%,
        rgba(255, 255, 255, 0.97) 52%,
        #fff 100%
    );
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--pole-color, var(--color-primary));
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.6) inset,
        0 8px 28px rgba(0, 0, 0, 0.06);
    animation: mgmDetailIn 0.24s ease;
}

.mgm-sub.active::before {
    content: "Fiches & pages du thème";
    display: block;
    font-family: var(--font-subtitle);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pole-color, var(--color-primary));
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-border);
}

/* ── Packs par défaut dans le panneau droit (visuel distinct des pages niv. 3) ─────────── */
.mgm-packs-default {
    display: block;
    animation: mgmFadeIn .18s ease;
    padding: 14px 14px 16px;
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #f4f6f9 0%, #fafbfc 45%, #fff 100%);
    border: 1px dashed var(--color-border);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
.mgm-packs-default.hidden { display: none; }

.mgm-packs-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--color-gray);
    margin-bottom: 10px;
}

.mgm-packs-header > svg {
    flex-shrink: 0;
}

.mgm-packs-header::after {
    content: "Offres forfaitaires. Les pages détaillées du thème survolé remplacent ce bloc (encadré couleur du pôle).";
    flex: 1 0 100%;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--color-gray);
    line-height: 1.35;
    max-width: 22rem;
    opacity: 0.92;
}

.mgm-packs-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.mgm-pack-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 8px;
    text-decoration: none;
    transition: background .15s;
    border: 1px solid transparent;
}
.mgm-pack-item:hover {
    background: var(--color-soft-blue);
    border-color: var(--color-border);
}
.mgm-pack-item--signature {
    background: #fffbf0;
    border-color: #f0e0a0;
}
.mgm-pack-item--signature:hover {
    background: #fff5cc;
    border-color: #e0c060;
}
.mgm-pack-item__body {
    flex: 1;
    min-width: 0;
}
.mgm-pack-item__body strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mgm-pack-item__body span {
    display: block;
    font-size: 11.5px;
    color: var(--color-gray);
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mgm-pack-item__price {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    color: var(--color-primary);
    background: var(--color-soft-blue);
    border: 1px solid rgba(58,90,160,.15);
    border-radius: 999px;
    padding: 3px 8px;
    white-space: nowrap;
}
.mgm-pack-item--signature .mgm-pack-item__price {
    background: #fff0b3;
    color: #8a6000;
    border-color: #e0c060;
}
.mgm-packs-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: none;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1.5px solid var(--color-primary);
    transition: background .15s, color .15s;
}
.mgm-packs-cta:hover {
    background: var(--color-primary);
    color: #fff;
}

@keyframes mgmFadeIn {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: none; }
}

@keyframes mgmDetailIn {
    from {
        opacity: 0;
        transform: translateX(8px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mgm-sub.active { animation: none; }
}

.mgm-sub-title {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-dark);
    margin-bottom: 12px;
}

.mgm-sub.active .mgm-sub-title {
    color: var(--pole-color, var(--color-primary));
}
.mgm-sub ul {
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.mgm-sub li a {
    display: block;
    font-size: 13.5px;
    color: var(--color-dark);
    padding: 7px 10px;
    border-radius: 8px;
    transition: background var(--transition), color var(--transition);
}
.mgm-sub li a:hover {
    background: var(--pole-bg, var(--color-soft-blue));
    color: var(--pole-color, var(--color-primary-dark));
}
.mgm-sub-nested {
    margin: 3px 0 6px 10px;
    border-left: 2px solid var(--color-border);
    padding-left: 10px;
}
.mgm-sub-nested li a {
    font-size: 12.5px;
    color: var(--color-gray);
}

/* ── Méga menu — mobile : hamburger, plein écran, niveau 3 en premier ── */
.header-burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    margin: 0 0 0 10px;
    padding: 0;
    border: none;
    border-radius: 10px;
    background: var(--color-soft-blue);
    color: var(--color-primary-dark);
    cursor: pointer;
    flex-shrink: 0;
    transition: background var(--transition), color var(--transition);
}
.header-burger:hover {
    background: var(--color-primary);
    color: var(--color-white);
}
.header-burger__line {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 1px;
    background: currentColor;
}
body.megamenu-mobile-open .header-burger {
    background: var(--color-primary);
    color: var(--color-white);
}

.megamenu-mobile-toolbar {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--color-border);
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 2;
}
.mgm-mobile-back,
.megamenu-mobile-close {
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-dark);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.mgm-mobile-back:hover,
.megamenu-mobile-close:hover {
    background: var(--color-soft-blue);
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
}
.mgm-mobile-back {
    display: none;
    align-items: center;
}
/* Affiché via JS : classe body.megamenu-mobile-drilled quand un panneau pôle est ouvert */
body.megamenu-mobile-drilled .mgm-mobile-back {
    display: inline-flex;
}

body.megamenu-mobile-open:not(.megamenu-mobile-drilled) .megamenu-mobile-toolbar {
    justify-content: flex-end;
}

/* Liens Accueil / Hub / Wiki — visibles dans le tiroir mobile uniquement */
.megamenu-mobile-navlinks {
    display: none;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 14px;
    padding: 10px 16px 12px;
    border-bottom: 1px solid var(--color-border);
    background: #f8fafc;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
}
.megamenu-mobile-navlinks a {
    color: var(--color-primary-dark);
    text-decoration: none;
    padding: 6px 4px;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
}
.megamenu-mobile-navlinks a:hover {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
}
.megamenu-mobile-navlinks a.active {
    color: var(--color-secondary);
    border-bottom-color: var(--color-secondary);
}

@media (max-width: 768px) {
    body.megamenu-mobile-open .megamenu-mobile-navlinks {
        display: flex;
    }

    .header-burger {
        display: flex;
    }

    body.megamenu-mobile-open {
        overflow: hidden;
    }

    /* Barre pôles masquée hors menu ; plein écran à l’ouverture */
    body:not(.megamenu-mobile-open) .megamenu-bar {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
        clip-path: inset(50%);
    }

    body.megamenu-mobile-open .megamenu-bar {
        position: fixed;
        left: 0;
        right: 0;
        top: var(--site-sticky-top, 140px);
        bottom: 0;
        z-index: 380;
        width: auto;
        height: auto;
        margin: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        clip: auto;
        clip-path: none;
        white-space: normal;
        background: #fff;
        border-bottom: none;
        box-shadow: 0 -4px 32px rgba(15, 23, 42, 0.12);
    }

    body.megamenu-mobile-open .megamenu-mobile-toolbar {
        display: flex;
    }

    body.megamenu-mobile-open .megamenu-tabs {
        flex-direction: column;
        overflow-x: visible;
        border-bottom: 1px solid var(--color-border);
    }

    body.megamenu-mobile-open .mgm-tab {
        flex: none;
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }

    body.megamenu-mobile-open .mgm-tab:last-child {
        border-bottom: none;
    }

    body.megamenu-mobile-open .megamenu-panels {
        position: static;
        display: none;
        box-shadow: none;
        border: none;
    }

    body.megamenu-mobile-open .megamenu-panels.open {
        display: block;
    }

    /* Le panneau actif est dans le li : masquer le bloc vide sous la liste d’onglets */
    body.megamenu-mobile-open.megamenu-mobile-drilled .megamenu-panels:not(:has(.mgm-panel.active)) {
        display: none !important;
    }

    /* Panneau : fiches service (niv. 3) d’abord, puis lien pôle, puis packs */
    body.megamenu-mobile-open .mgm-panel.active .mgm-panel-layout {
        display: flex;
        flex-direction: column;
        gap: 16px;
        min-width: 0;
        max-width: 100%;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-panel-left .mgm-search-wrap,
    body.megamenu-mobile-open .mgm-panel.active .mgm-panel-left .mgm-search-results,
    body.megamenu-mobile-open .mgm-panel.active .mgm-panel-left .mgm-cards-grid {
        display: none !important;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-panel-left {
        order: 2;
    }

    body.megamenu-mobile-open .mgm-panel.active .container {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding-left: max(12px, env(safe-area-inset-left, 0px));
        padding-right: max(12px, env(safe-area-inset-right, 0px));
        box-sizing: border-box;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-panel-right {
        order: 1;
        border-left: none;
        padding-left: 0;
        min-height: 0;
        min-width: 0;
        max-width: 100%;
        overflow-x: hidden;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-panel-right--detail {
        border-left: none;
        box-shadow: none;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub {
        display: block !important;
        animation: none;
        margin: 0;
        padding: 10px 12px 12px;
        border-radius: var(--radius-md);
        border: 1px solid var(--color-border);
        border-left: 4px solid var(--pole-color, var(--color-primary));
        background: linear-gradient(
            165deg,
            var(--pole-bg, #f8fbff) 0%,
            rgba(255, 255, 255, 0.97) 52%,
            #fff 100%
        );
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub::before {
        display: none;
    }

    /* Accordéon : liens masqués tant que la sous-section n’est pas ouverte */
    body.megamenu-mobile-open .mgm-panel.active .mgm-sub:not(.mgm-sub--expanded) > ul {
        display: none !important;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub .mgm-sub-title {
        margin-top: 0;
        margin-bottom: 0;
        color: var(--pole-color, var(--color-primary-dark));
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        width: 100%;
        box-sizing: border-box;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        text-align: left;
        user-select: none;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub .mgm-sub-title::after {
        content: "▾";
        flex-shrink: 0;
        font-size: 12px;
        opacity: 0.75;
        transition: transform 0.2s ease;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub.mgm-sub--expanded .mgm-sub-title::after {
        transform: rotate(180deg);
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub.mgm-sub--expanded .mgm-sub-title {
        margin-bottom: 8px;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub ul {
        min-width: 0;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-sub li a {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    body.megamenu-mobile-open .mgm-panel.active .mgm-packs-default {
        order: 20;
        margin-top: 4px;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.megamenu-mobile-open .mgm-tab-text span {
        display: block;
    }

    /* Panneau déplacé dans le li du pôle : liste déroulante directement sous l’onglet actif */
    body.megamenu-mobile-open.megamenu-mobile-drilled .mgm-tab:has(> .mgm-panel.active) {
        flex-direction: column;
        align-items: stretch;
        padding: 0;
        border-bottom: 1px solid var(--color-border);
    }

    body.megamenu-mobile-open.megamenu-mobile-drilled .mgm-tab:has(> .mgm-panel.active) .mgm-tab-link {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 16px 22px;
        text-decoration: none;
        color: inherit;
        width: 100%;
        box-sizing: border-box;
    }

    body.megamenu-mobile-open.megamenu-mobile-drilled .mgm-tab:has(> .mgm-panel.active) > .mgm-panel.active {
        width: 100%;
        margin: 0;
        border-top: 1px solid var(--color-border);
        padding-top: 12px;
        padding-bottom: 22px;
    }

    body.megamenu-mobile-open.megamenu-mobile-drilled .mgm-tab:has(> .mgm-panel.active)::after {
        display: none;
    }
}

/* =============================================
   Hero Search
   ============================================= */
.hero-search {
    position: relative;
    overflow: hidden;
    background: linear-gradient(150deg, #f0f5ff 0%, #e8f5f0 60%, #f5f0ea 100%);
    padding: 32px 0 24px;
    min-height: 78vh;
    display: flex;
    align-items: center;
}

/* blobs décoratifs */
.hero-search__bg { position: absolute; inset: 0; pointer-events: none; }

.hero-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    opacity: .45;
}
.hero-blob--1 {
    width: 520px; height: 520px;
    background: var(--color-soft-blue);
    top: -120px; right: -100px;
}
.hero-blob--2 {
    width: 380px; height: 380px;
    background: var(--color-soft-green);
    bottom: -80px; left: -60px;
}
.hero-blob--3 {
    width: 260px; height: 260px;
    background: var(--color-accent);
    top: 30%; left: 40%;
    opacity: .22;
}

.hero-search__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 48px;
    text-align: center;
}

/* Texte — H1 en pastille glassmorphic */
.hero-search__h1-glass {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    max-width: min(46rem, 100%);
    margin: 0 auto 20px;
    padding: 14px 28px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.38);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.78);
    box-shadow:
        0 10px 40px rgba(89, 122, 175, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        inset 0 -1px 0 rgba(89, 122, 175, 0.05);
}
@media (max-width: 540px) {
    .hero-search__h1-glass {
        border-radius: 22px;
        padding: 14px 18px;
    }
}
.hero-search__h1 {
    margin: 0;
    font-size: clamp(0.88rem, 1.85vw, 1.08rem);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.025em;
    color: #1f6f42;
    text-align: center;
    text-wrap: balance;
}

.hero-search__title {
    font-size: clamp(2rem, 4.5vw, 3.4rem);
    font-weight: 800;
    line-height: 1.15;
    color: var(--color-dark);
    margin: 0 0 16px;
}

.hero-search__subtitle {
    font-size: 17px;
    color: var(--color-gray);
    line-height: 1.7;
    max-width: 600px;
    margin: 0 auto;
}

/* Boîte de recherche */
.hero-search__box {
    width: 100%;
    max-width: 780px;
}

.search-form {
    margin-bottom: 18px;
}

.search-field {
    display: flex;
    align-items: center;
    background: var(--color-white);
    border: 2px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(89,122,175,.14);
    padding: 6px 6px 6px 18px;
    gap: 12px;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.search-field:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 8px 40px rgba(89,122,175,.25);
}

.search-icon {
    color: var(--color-gray);
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.search-input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 15px;
    color: var(--color-dark);
    background: transparent;
    font-family: var(--font-sans);
    min-width: 0;
    padding: 10px 0;
}

.search-input::placeholder {
    color: #aab4c4;
}

.search-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 14px;
    font-weight: 700;
    border: none;
    border-radius: 12px;
    padding: 12px 22px;
    cursor: pointer;
    white-space: nowrap;
    font-family: var(--font-sans);
    transition: background var(--transition);
    flex-shrink: 0;
}

.search-btn:hover {
    background: var(--color-primary-dark);
}

/* Pills suggestions */
.search-suggestions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.suggestions-label {
    font-size: 13px;
    color: var(--color-gray);
    font-weight: 600;
    flex-shrink: 0;
}

.pill {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary-dark);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 5px 14px;
    transition: all var(--transition);
}

.pill:hover {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}

/* Barre de stats */
.hero-search__stats {
    display: flex;
    align-items: center;
    gap: 0;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
    padding: 20px 32px;
    flex-wrap: wrap;
    justify-content: center;
}

.stat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 0 32px;
}

.stat-number {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1;
}

.stat-label {
    font-size: 12px;
    color: var(--color-gray);
    font-weight: 500;
    text-align: center;
}

.stat-divider {
    width: 1px;
    height: 40px;
    background: var(--color-border);
    flex-shrink: 0;
}

/* Responsive hero */
@media (max-width: 700px) {
    .hero-search {
        padding: 28px 0 22px;
        min-height: auto;
    }
    .hero-search__stats {
        padding: 16px;
        gap: 0;
    }
    .stat-card { padding: 8px 16px; }
    .stat-divider { height: 1px; width: 60%; }
    .search-btn span { display: none; }
}

/* =============================================
   Brief SEO — page-brief.twig
   ============================================= */
.brief-page {
    background: #f5f7fb;
    min-height: 80vh;
    padding: 48px 0 80px;
}

.brief-container { max-width: 1100px; }

/* En-tête */
.brief-header {
    margin-bottom: 40px;
}
.brief-header__top {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.brief-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: var(--color-primary);
    color: var(--color-white);
    padding: 4px 12px;
    border-radius: 999px;
}
.brief-pole {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-gray);
    background: var(--color-soft-blue);
    padding: 4px 12px;
    border-radius: 999px;
}
.brief-title {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
    margin-bottom: 10px;
}
.brief-slug {
    font-family: 'Courier New', monospace;
    font-size: 13px;
    color: var(--color-gray);
    background: #e8edf5;
    padding: 4px 12px;
    border-radius: 6px;
    border: 1px solid var(--color-border);
    display: inline-block;
}

/* Grille 2 colonnes */
.brief-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 24px;
    align-items: start;
}

/* Cards */
.brief-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 24px 26px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-sm);
}
.brief-card:last-child { margin-bottom: 0; }

.brief-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .9px;
    text-transform: uppercase;
    color: var(--color-gray);
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--color-border);
}
.brief-card__icon { font-size: 15px; }
.brief-count {
    margin-left: auto;
    background: var(--color-soft-blue);
    color: var(--color-primary-dark);
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
}

/* Mot clé principal */
.kw-main__word {
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 14px;
}
.kw-metrics {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.kw-metric {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1.5px solid transparent;
}
.kw-metric__label {
    font-size: 11px;
    font-weight: 600;
    opacity: .75;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.kw-metric--vol   { background: #eaf4ff; color: #2563eb; border-color: #bfdbfe; }
.kw-metric--kd    { background: #fef9ee; color: #b45309; border-color: #fde68a; }
.kw-metric--ratio { background: #f0fdf4; color: #15803d; border-color: #bbf7d0; }

/* Mots-clés secondaires */
.kw-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.kw-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 4px;
    border-bottom: 1px solid #f3f4f6;
    font-size: 13.5px;
    color: var(--color-dark);
}
.kw-row:last-child { border-bottom: none; }
.kw-row__word { flex: 1; }
.kw-row__metrics {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}
.kw-tag {
    font-size: 11.5px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 999px;
}
.kw-tag--vol   { background: #eaf4ff; color: #2563eb; }
.kw-tag--kd    { background: #fef9ee; color: #b45309; }
.kw-tag--ratio { background: #f0fdf4; color: #15803d; }

/* Maillage */
.link-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.link-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 9px 6px;
    border-bottom: 1px solid #f3f4f6;
    font-size: 13px;
    line-height: 1.4;
    flex-wrap: wrap;
}
.link-row:last-child { border-bottom: none; }
.link-row__from {
    color: var(--color-gray);
    flex-shrink: 0;
    max-width: 45%;
}
.link-row__from--accent { color: var(--color-secondary-dark); font-weight: 600; }
.link-row__from--blog   { color: var(--color-primary); font-weight: 600; }
.link-row__arrow {
    color: var(--color-border);
    font-size: 14px;
    flex-shrink: 0;
}
.link-row__to {
    color: var(--color-dark);
    font-weight: 600;
    flex: 1;
}
.link-row__to--linked {
    color: var(--color-primary-dark);
    text-decoration: underline;
    text-decoration-color: var(--color-border);
    text-underline-offset: 3px;
    transition: color var(--transition), text-decoration-color var(--transition);
}
.link-row__to--linked:hover {
    color: var(--color-primary);
    text-decoration-color: var(--color-primary);
}
.link-row__from--linked {
    text-decoration: underline;
    text-decoration-color: var(--color-border);
    text-underline-offset: 3px;
    transition: text-decoration-color var(--transition);
}
.link-row__from--linked:hover {
    text-decoration-color: currentColor;
}

/* Accent inter-cocons / blog / cocon */
.brief-card--intercocon { border-left: 3px solid var(--color-secondary); }
.brief-card--blog       { border-left: 3px solid var(--color-primary); }
.brief-card--cocon      { border-left: 3px solid #7c3aed; }

/* Cocon thématique */
.cocon-group {
    margin-bottom: 18px;
}
.cocon-group:last-child { margin-bottom: 0; }

.cocon-group__label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-gray);
    margin-bottom: 10px;
}

.cocon-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.cocon-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13.5px;
    color: var(--color-dark);
    padding: 6px 8px;
    border-radius: 8px;
    transition: background var(--transition);
}
.cocon-list li:hover { background: #f5f7fb; }

.cocon-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.cocon-dot--pilier  { background: #7c3aed; }
.cocon-dot--soutien { background: var(--color-primary); }
.cocon-dot--blog    { background: var(--color-secondary); }

/* Responsive */
@media (max-width: 860px) {
    .brief-grid { grid-template-columns: 1fr; }
}

/* =============================================
   Fonctionnalités
   ============================================= */
.features {
    padding: 100px 0;
}

.section-title {
    font-size: 2rem;
    font-weight: 800;
    text-align: center;
    margin-bottom: 12px;
}

.section-subtitle {
    text-align: center;
    color: var(--color-gray);
    font-size: 17px;
    margin-bottom: 60px;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 28px;
}

.feature-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 32px 28px;
    transition: box-shadow var(--transition), transform var(--transition);
}

.feature-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}

.feature-icon { font-size: 2.4rem; margin-bottom: 16px; }
.feature-card h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 10px; }
.feature-card p  { color: var(--color-gray); font-size: 14px; line-height: 1.7; }

/* =============================================
   CTA Section
   ============================================= */
.cta-section {
    background: var(--color-primary);
    color: var(--color-white);
    text-align: center;
    padding: 80px 0;
}

.cta-section h2 { font-size: 2rem; font-weight: 800; margin-bottom: 12px; }
.cta-section p  { font-size: 17px; opacity: .85; margin-bottom: 32px; }
.cta-section .btn-primary {
    background: var(--color-white);
    color: var(--color-primary);
    border-color: var(--color-white);
}
.cta-section .btn-primary:hover {
    background: var(--color-light-gray);
    border-color: var(--color-light-gray);
}

/* =============================================
   Footer — maquette multi-bandes (charte Complianz)
   ============================================= */
.site-footer {
    margin-top: auto;
    background: linear-gradient(165deg, #0f172a 0%, #0c1928 42%, #0a1624 100%);
    color: rgba(255, 255, 255, 0.72);
    padding: 0 0 20px;
}

.footer-band {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding: 40px 0 36px;
    background: rgba(0, 0, 0, 0.2);
}

.footer-band__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) auto minmax(0, 1fr);
    gap: 32px 28px;
    align-items: start;
}

.footer-band__block--offices {
    min-width: 0;
}

.footer-band__offices {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-band__office {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13px;
    line-height: 1.45;
}

.footer-band__office-loc {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
}

.footer-band__office-addr {
    color: rgba(255, 255, 255, 0.68);
}

.footer-band__contact-stack {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer-band__contact-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.footer-band__block {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.footer-band__block--center {
    flex-direction: column;
    align-items: center;
    text-align: center;
    justify-self: center;
}

.footer-band__block--end {
    justify-self: end;
    max-width: 100%;
}

.footer-band__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(89, 122, 175, 0.25);
    color: var(--color-soft-blue);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-band__label {
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 6px;
}

.footer-band__text {
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.88);
}

.footer-band__text a {
    color: #e2e8f0;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    transition: color var(--transition), border-color var(--transition);
}

.footer-band__text a:hover {
    color: var(--color-white);
    border-bottom-color: var(--color-secondary);
}

.footer-social {
    display: flex;
    gap: 10px;
    list-style: none;
    margin-top: 4px;
}

.footer-social__link {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: background var(--transition), color var(--transition), transform var(--transition);
}

.footer-social__link:hover {
    background: rgba(89, 122, 175, 0.45);
    color: var(--color-white);
    transform: translateY(-2px);
}

.footer-band__contact {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 24px;
    align-items: flex-start;
    justify-content: flex-end;
}

.footer-band__ctas {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 160px;
}

.footer-cta {
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    padding: 10px 18px;
    border-radius: var(--radius-sm);
    border: none;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    transition: background var(--transition), color var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.footer-cta--primary {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-white);
    box-shadow: 0 4px 14px rgba(60, 96, 152, 0.35);
}

.footer-cta--primary:hover {
    filter: brightness(1.06);
}

.footer-cta--outline {
    background: transparent;
    color: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.28);
}

.footer-cta--outline:hover {
    border-color: var(--color-secondary);
    color: var(--color-white);
    background: rgba(40, 153, 81, 0.12);
}

.footer-main {
    padding: 48px 0 40px;
}

.footer-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px 32px;
    align-items: start;
}

.footer-col__title {
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 18px;
}

.footer-col__list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.footer-col__list a {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
    transition: color var(--transition), padding-left var(--transition);
}

.footer-col__list a:hover {
    color: var(--color-white);
    padding-left: 4px;
}

.footer-legal {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 18px 0 14px;
}

.footer-legal__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px 24px;
}

.footer-legal__links {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
}

.footer-legal__links a {
    font-family: var(--font-subtitle);
    font-size: 13px;
    color: rgba(255, 255, 255, 0.65);
    text-decoration: none;
    transition: color var(--transition);
}

.footer-legal__links a:hover {
    color: var(--color-soft-blue);
}

.footer-legal__pay {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.45);
    max-width: 320px;
    text-align: right;
}

.footer-copy {
    text-align: center;
    padding-top: 8px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.38);
}

.footer-copy p {
    margin: 0;
}

/* =============================================
   Responsive
   ============================================= */
@media (max-width: 1100px) {
    .mgm-tab { padding: 14px 14px; gap: 10px; }
    .mgm-tab-text strong { font-size: 12px; }
    .mgm-tab-text span   { display: none; }
}

/* =============================================
   SERVICE PAGE — Styles partagés
   ============================================= */

/* ── Sections communes ── */
.sp-section-header { text-align: center; margin-bottom: 56px; }
.sp-section-header--left { text-align: left; margin-bottom: 40px; }
.sp-section-tag {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-secondary);
    background: rgba(40,153,81,.1);
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 16px;
}
.sp-section-header h2 {
    font-size: clamp(26px, 4vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    margin-bottom: 16px;
    overflow-wrap: break-word;
}
.sp-section-sub { font-size: 17px; color: var(--color-gray); max-width: 620px; margin: 0 auto; line-height: 1.7; }
.sp-section-header--left .sp-section-sub { margin: 0; }

/* ── Bouton outline ── */
.btn-outline {
    background: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.btn-outline:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* ══════════════════════════════════════════════
   HERO service page
   ══════════════════════════════════════════════ */
.sp-hero {
    position: relative;
    padding: 80px 0 64px;
    overflow: hidden;
    background: linear-gradient(135deg, #f0f4fa 0%, #fafdf8 100%);
}
.sp-hero__bg { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.sp-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .18;
}
.sp-blob--1 {
    width: 500px; height: 500px;
    background: var(--color-primary);
    top: -100px; right: -100px;
}
.sp-blob--2 {
    width: 350px; height: 350px;
    background: var(--color-secondary);
    bottom: -80px; left: -60px;
}
.sp-hero__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}
.sp-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
    color: var(--color-gray);
    margin-bottom: 20px;
    row-gap: 4px;
}
.sp-breadcrumb a { color: var(--color-primary); }
.sp-breadcrumb a:hover { text-decoration: underline; }
.sp-hero__eyebrow {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 12px;
}
.sp-hero__title {
    font-size: clamp(28px, 4.5vw, 48px);
    font-weight: 900;
    line-height: 1.15;
    color: var(--color-dark);
    margin-bottom: 20px;
    overflow-wrap: break-word;
}
.sp-hero__lead {
    font-size: 17px;
    color: var(--color-gray);
    line-height: 1.7;
    margin-bottom: 32px;
}
.sp-hero__lead + .sp-hero__lead {
    margin-top: -16px;
}
.sp-hero__lead + .sp-hero__def {
    margin-top: -18px;
}
.sp-hero__def {
    font-size: 15.5px;
    color: var(--color-gray);
    line-height: 1.65;
    margin: 0 0 28px;
}
.sp-hero__lead a,
.sp-hero__def a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-hero__lead a:hover,
.sp-hero__def a:hover {
    color: var(--color-primary-dark);
}
.sp-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.sp-hero__trust {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}
.sp-trust-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-secondary);
}
.sp-hero__visual { position: relative; }
.sp-hero__illo { border-radius: var(--radius-lg); overflow: hidden; }
.sp-hero__illo img { width: 100%; border-radius: var(--radius-lg); object-fit: contain; }
.sp-hero__stat-cards {
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    background: var(--color-white);
    border-radius: var(--radius-md);
    padding: 16px 24px;
    box-shadow: var(--shadow-lg);
}
.sp-stat { text-align: center; padding: 0 16px; }
.sp-stat:not(:last-child) { border-right: 1px solid var(--color-border); }
.sp-stat strong { display: block; font-size: 22px; font-weight: 800; color: var(--color-primary); }
.sp-stat span { font-size: 12px; color: var(--color-gray); }

/* ══════════════════════════════════════════════
   RAISONS (6 cards)
   ══════════════════════════════════════════════ */
.sp-reasons { padding: 100px 0 80px; background: var(--color-white); }
.sp-reasons__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
/* Exactement 4 cartes sans modificateur : 2×2 en desktop */
@media (min-width: 1025px) {
    .sp-reasons__grid:not(.sp-reasons__grid--4col):not(.sp-reasons__grid--4across):has(> .sp-reason-card:nth-child(4):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }
}
.sp-reason-card {
    padding: 28px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    height: 100%;
    transition: box-shadow var(--transition), transform var(--transition);
}
.sp-reason-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}
.sp-reason-card__icon {
    width: 56px; height: 56px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}
.sp-icon--blue { background: var(--pole-0-bg); color: var(--pole-0); }
.sp-icon--green { background: var(--pole-1-bg); color: var(--pole-1); }
.sp-icon--accent { background: var(--pole-2-bg); color: var(--pole-2); }
.sp-reason-card h3 { font-size: 16px; font-weight: 700; margin-bottom: 10px; color: var(--color-dark); }
.sp-reason-card p { font-size: 14px; color: var(--color-gray); line-height: 1.6; }
.sp-reason-card p + p { margin-top: 10px; }
.sp-reason-card a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-reason-card a:hover { color: var(--color-primary-dark); }
#perimetre .sp-reason-card h3,
#scope .sp-reason-card h3 {
    font-size: 18px;
    line-height: 1.35;
}
#perimetre .sp-reason-card ul,
#scope .sp-reason-card ul {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: grid;
    gap: 8px;
}
#perimetre .sp-reason-card li,
#scope .sp-reason-card li {
    position: relative;
    padding-left: 16px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}
#perimetre .sp-reason-card li::before,
#scope .sp-reason-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-0);
}

/* Contenu type d'une PSSI / ISSP — 10 chapitres */
#pssi-contenu .sp-reasons__grid,
#issp-contents .sp-reasons__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}
#pssi-contenu .sp-reason-card,
#issp-contents .sp-reason-card {
    padding: 20px 16px;
    min-width: 0;
}
#pssi-contenu .sp-reason-card h3,
#issp-contents .sp-reason-card h3 {
    font-size: 16px;
    line-height: 1.35;
}
#pssi-contenu .sp-reason-card ul,
#issp-contents .sp-reason-card ul {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    gap: 8px;
}
#pssi-contenu .sp-reason-card li,
#issp-contents .sp-reason-card li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--color-gray);
}
#pssi-contenu .sp-reason-card li svg,
#issp-contents .sp-reason-card li svg {
    flex-shrink: 0;
    margin-top: 2px;
}
@media (max-width: 1280px) {
    #pssi-contenu .sp-reasons__grid,
    #issp-contents .sp-reasons__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 900px) {
    #pssi-contenu .sp-reasons__grid,
    #issp-contents .sp-reasons__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    #pssi-contenu .sp-reasons__grid,
    #issp-contents .sp-reasons__grid {
        grid-template-columns: 1fr;
    }
}

/* PSSI → politiques filles / ISSP → supporting policies */
.pssi-cascade {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 920px;
    margin: 8px auto 0;
}
.pssi-cascade__root {
    margin: 0;
    padding: 16px 40px;
    min-width: 160px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #fff;
    background: var(--pole-0);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(89, 122, 175, 0.22);
}
.pssi-cascade__arrow {
    display: block;
    margin: 10px 0 16px;
    color: var(--pole-0);
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
}
.pssi-cascade__children {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
#mise-a-jour-pssi .pssi-cascade__children,
#issp-update .pssi-cascade__children {
    max-width: 920px;
    margin: 8px auto 0;
}
.pssi-cascade__children li {
    margin: 0;
    padding: 14px 16px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-dark);
    background: #fff;
    border: 1.5px solid rgba(89, 122, 175, 0.28);
    border-radius: 12px;
}
@media (max-width: 800px) {
    .pssi-cascade__children {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .pssi-cascade__root {
        min-width: 0;
        width: 100%;
        padding: 14px 16px;
        font-size: 16px;
    }
    .pssi-cascade__children {
        grid-template-columns: 1fr;
    }
}

.sp-reasons__footer {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
}
.sp-reasons__footer .sp-section-sub {
    max-width: 720px;
}
.sp-reasons__program {
    margin-top: 40px;
}
.sp-reasons__program ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.sp-reasons__program li {
    position: relative;
    padding: 8px 0 8px 18px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.sp-reasons__program li:first-child {
    border-top: 0;
    padding-top: 0;
}
.sp-reasons__program li:last-child {
    padding-bottom: 0;
}
.sp-reasons__program li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.95em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-primary);
}
.sp-reasons__program li:first-child::before {
    top: 0.55em;
}

/* ══════════════════════════════════════════════
   PROCESSUS
   ══════════════════════════════════════════════ */
.sp-process { padding: 80px 0; background: var(--color-light-gray); }
.sp-process__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}
.sp-steps { display: flex; flex-direction: column; gap: 32px; margin-top: 32px; position: relative; }
.sp-step { display: flex; gap: 20px; align-items: flex-start; }
.sp-steps > .sp-step {
    position: relative;
    padding: 0;
    gap: 20px;
}
.sp-steps > .sp-step:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 19px;
    top: 40px;
    bottom: -32px;
    width: 2px;
    background: rgba(40, 153, 81, 0.22);
    pointer-events: none;
}
.sp-step__num {
    flex-shrink: 0;
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-white);
    font-weight: 800;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
}
.sp-step__body {
    flex: 1;
    min-width: 0;
}
.sp-step__body h3 { font-size: 16px; font-weight: 700; margin-bottom: 8px; color: var(--color-dark); }
.sp-step__body p { font-size: 14px; color: var(--color-gray); line-height: 1.65; margin: 0; }
.sp-step__body a { color: var(--color-primary); text-decoration: underline; }
.sp-step__meta {
    display: inline-block;
    margin-top: 10px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-primary);
    background: rgba(40, 153, 81, 0.1);
    padding: 5px 12px;
    border-radius: 20px;
    line-height: 1.4;
}
.sp-process__note {
    margin: 28px 0 0;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
}
.sp-process__visual { position: relative; }
.sp-process__visual img { width: 100%; border-radius: var(--radius-lg); object-fit: contain; }
.sp-process__badge {
    position: absolute;
    bottom: 20px;
    left: 20px;
    background: var(--color-white);
    border-radius: var(--radius-md);
    padding: 14px 18px;
    box-shadow: var(--shadow-md);
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--color-primary);
    font-size: 13px;
}
.sp-process__badge svg { color: var(--color-secondary); }
.sp-process__badge strong { color: var(--color-dark); }
.sp-process__footer {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
}
.sp-process__footer .sp-section-sub {
    max-width: 720px;
}

#audit-rgpd,
#mise-en-conformite-rgpd,
#registre-traitements,
#dpo-externalise {
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
#audit-rgpd .sp-audit-group--deliverables,
#mise-en-conformite-rgpd .sp-audit-group--deliverables,
#registre-traitements .sp-audit-group--deliverables,
#dpo-externalise .sp-audit-group--deliverables {
    margin-top: 56px;
}
#audit-rgpd .sp-audit-group__title,
#mise-en-conformite-rgpd .sp-audit-group__title,
#registre-traitements .sp-audit-group__title,
#dpo-externalise .sp-audit-group__title {
    font-family: var(--font-subtitle);
    font-size: clamp(20px, 3vw, 24px);
    font-weight: 700;
    color: var(--color-dark);
    text-align: center;
    margin: 0 0 24px;
    line-height: 1.3;
}
#audit-rgpd .sp-audit-item--deliverable .sp-audit-item__body p,
#mise-en-conformite-rgpd .sp-audit-item--deliverable .sp-audit-item__body p,
#registre-traitements .sp-audit-item--deliverable .sp-audit-item__body p,
#dpo-externalise .sp-audit-item--deliverable .sp-audit-item__body p {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.45;
}
#audit-rgpd .sp-process__note {
    margin-top: 40px;
}
#audit-rgpd .sp-process__note h3,
#mise-en-conformite-rgpd .sp-process__note h3,
#registre-traitements .sp-process__note h3,
#dpo-externalise .sp-process__note h3 {
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 8px;
}
#audit-rgpd .sp-process__note p,
#mise-en-conformite-rgpd .sp-process__note p,
#registre-traitements .sp-process__note p,
#dpo-externalise .sp-process__note p {
    margin: 0;
}
#mise-en-conformite-rgpd .sp-process__note,
#dpo-externalise .sp-process__note {
    margin-top: 40px;
    background: var(--color-light-gray);
}
#mise-en-conformite-rgpd .sp-reason-card,
#dpo-externalise .sp-reason-card,
#organisations-concernees .sp-reason-card {
    background: var(--color-light-gray);
    border-color: transparent;
}
#organisations-concernees {
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
#organisations-concernees .sp-audit-group--deliverables {
    margin-top: 56px;
}
#organisations-concernees .sp-audit-group__title {
    font-family: var(--font-subtitle);
    font-size: clamp(20px, 3vw, 24px);
    font-weight: 700;
    color: var(--color-dark);
    text-align: center;
    margin: 0 0 24px;
    line-height: 1.3;
}
#organisations-concernees .sp-audit-item--deliverable .sp-audit-item__body p {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.45;
}
#organisations-concernees .sp-process__note {
    margin-top: 40px;
    background: var(--color-light-gray);
}
#organisations-concernees .sp-process__note h3 {
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 8px;
}
#organisations-concernees .sp-process__note p {
    margin: 0;
}
#registre-traitements .sp-process__notes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 40px;
}
#registre-traitements .sp-process__notes .sp-process__note {
    margin: 0;
    height: 100%;
}
@media (max-width: 768px) {
    #registre-traitements .sp-process__notes {
        grid-template-columns: 1fr;
    }
}
#dpo-externalise .dpo-compare-block {
    margin-top: 56px;
}
#dpo-externalise .dpo-compare-block .sp-reason-card {
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
}
#dpo-externalise .dpo-compare-block .sp-reason-card--featured {
    border-color: var(--pole-0);
    box-shadow: 0 0 0 1px rgba(40, 153, 81, 0.12);
}
#dpo-externalise .dpo-compare-block .sp-reason-card h3 {
    margin-bottom: 14px;
}
#dpo-externalise .dpo-compare-block__note {
    margin: 24px auto 0;
    text-align: center;
    max-width: 720px;
}

/* ══════════════════════════════════════════════
   SERVICES LIÉS (soutiens)
   ══════════════════════════════════════════════ */
.sp-services { padding: 80px 0; background: var(--color-white); }
.sp-services__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.sp-service-card {
    display: flex;
    flex-direction: column;
    padding: 32px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    transition: box-shadow var(--transition), border-color var(--transition), transform var(--transition);
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}
.sp-service-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}
.sp-service-card__icon {
    width: 52px; height: 52px;
    background: rgba(89,122,175,.1);
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    color: var(--color-primary);
}
.sp-service-card h3 { font-size: 17px; font-weight: 700; margin-bottom: 10px; }
.sp-service-card p { font-size: 14px; color: var(--color-gray); line-height: 1.65; margin-bottom: 16px; flex: 1; }
.sp-service-card__features {
    list-style: none;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sp-service-card__features li {
    font-size: 13px;
    color: var(--color-gray);
    padding-left: 18px;
    position: relative;
}
.sp-service-card__features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--color-secondary);
    font-weight: 700;
}
.sp-service-card__cta {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    margin-top: auto;
}

/* ══════════════════════════════════════════════
   TARIFS
   ══════════════════════════════════════════════ */
.sp-pricing { padding: 80px 0; background: var(--color-light-gray); }
.sp-pricing .sp-section-sub { max-width: 760px; }
.sp-pricing__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: stretch;
}
.sp-pricing__grid--3col {
    grid-template-columns: repeat(3, 1fr);
}
.sp-plan {
    background: var(--color-white);
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    padding: 32px;
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.sp-plan--featured {
    border-color: var(--color-primary);
    box-shadow: 0 8px 32px rgba(89,122,175,.2);
    transform: scale(1.03);
}
.sp-plan--green { border-color: var(--pole-1) !important; box-shadow: 0 8px 32px rgba(40,153,81,.2) !important; }
.sp-plan--soft   { border-color: var(--pole-3) !important; box-shadow: 0 8px 32px rgba(164,178,200,.3) !important; }
.sp-plan--accent { border-color: var(--pole-2) !important; box-shadow: 0 8px 32px rgba(191,155,121,.25) !important; }
.sp-plan__badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 11px;
    font-weight: 700;
    padding: 4px 16px;
    border-radius: 20px;
    white-space: nowrap;
}
.sp-badge--green { background: var(--pole-1) !important; }
.sp-badge--soft   { background: var(--pole-3) !important; }
.sp-badge--accent { background: var(--pole-2) !important; }
.sp-plan__header { margin-bottom: 24px; }
.sp-plan__name { font-size: 15px; font-weight: 700; color: var(--color-gray); margin-bottom: 8px; }
.sp-plan__price { margin-bottom: 4px; }
.sp-plan__price span { font-size: 36px; font-weight: 900; color: var(--color-dark); }
.sp-plan__price em { font-size: 14px; color: var(--color-gray); font-style: normal; }
.sp-plan__from {
    display: block;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--color-gray) !important;
    margin-bottom: 2px;
    letter-spacing: 0.01em;
}
.sp-plan__duration { font-size: 13px; color: var(--color-gray); }
.sp-plan__block {
    margin-bottom: 16px;
}
.sp-plan__block:last-of-type {
    margin-bottom: 24px;
    flex: 1;
}
.sp-plan__label {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--color-dark);
}
.sp-plan__label strong {
    font-weight: 700;
}
.sp-plan__block > p:not(.sp-plan__label) {
    margin: 0;
    font-size: 14px;
    color: var(--color-gray);
    line-height: 1.6;
}
#choisir .sp-plan__header,
#tarifs .sp-plan__header,
#pricing .sp-plan__header {
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
}
#tarifs .sp-plan,
#pricing .sp-plan {
    min-width: 0;
}
#choisir .sp-plan__name,
#tarifs .sp-plan__name,
#pricing .sp-plan__name {
    color: var(--color-dark);
    font-size: 16px;
    line-height: 1.4;
    margin-bottom: 0;
    overflow-wrap: break-word;
}
#tarifs .sp-plan__duration,
#pricing .sp-plan__duration {
    margin-top: 8px;
}
.sp-plan__features {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
}
.sp-plan__features li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    color: var(--color-gray);
}
.sp-plan__features li svg { color: var(--color-secondary); flex-shrink: 0; margin-top: 2px; }
.sp-plan__btn { width: 100%; justify-content: center; margin-top: auto; }

#tarifs-rgpd,
#organisations-concernees,
#contact-rgpd {
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
#tarifs-rgpd .sp-plan__name {
    font-family: var(--font-subtitle);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 12px;
    line-height: 1.35;
}
#tarifs-rgpd .sp-plan__duration {
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
    margin: 0 0 12px;
}
#tarifs-rgpd .sp-plan__anchor {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: none;
}
#tarifs-rgpd .sp-plan__anchor:hover {
    text-decoration: underline;
}
#tarifs-rgpd .sp-plan__block {
    flex: 1;
    margin-bottom: 24px;
}
#tarifs-rgpd .tarifs-rgpd__reassure {
    margin: 40px auto 0;
    max-width: 860px;
    background: var(--color-white);
}
#tarifs-rgpd .tarifs-rgpd__reassure h3 {
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 8px;
}
#tarifs-rgpd .tarifs-rgpd__reassure p {
    margin: 0;
}
#tarifs-rgpd .sp-pricing__footer {
    margin-top: 32px;
    padding: 28px 24px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
}
@media (max-width: 1024px) {
    #tarifs-rgpd .sp-plan--featured {
        transform: none;
    }
}
.sp-pricing__footer {
    margin-top: 36px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
}
.sp-pricing__cta-text {
    margin: 0;
    max-width: 720px;
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-gray);
}
.sp-pricing__note {
    display: block;
    font-size: 13px;
    color: var(--color-gray);
    margin-top: 28px;
    margin-left: auto;
    margin-right: auto;
    max-width: 760px;
    line-height: 1.55;
    text-align: left;
}
.sp-pricing__redirect {
    max-width: 760px;
    margin: 0 auto 28px;
    text-align: center;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
.sp-pricing__redirect a {
    color: var(--pole-1, #289951);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-pricing__redirect a:hover {
    color: var(--color-dark);
}
.sp-pricing__grid + .sp-pricing__note {
    margin-top: 32px;
    margin-left: auto;
    margin-right: auto;
}
.sp-pricing__note + .sp-pricing__note {
    margin-top: 10px;
    margin-left: auto;
    margin-right: auto;
}
.sp-pricing-entry {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    max-width: 920px;
    margin: 36px auto 0;
    padding: 24px 28px;
    border-radius: 16px;
    background: var(--color-bg, #f6f7f9);
    border: 1px solid rgba(0, 0, 0, 0.08);
}
.sp-pricing-entry__tag {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.sp-pricing-entry__body h3 {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}
.sp-pricing-entry__body p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--color-gray);
}
.sp-pricing-entry__aside {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    text-align: right;
}
.sp-pricing-entry__price {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    white-space: nowrap;
}
.sp-pricing-entry__price em {
    font-style: normal;
    font-weight: 700;
    color: var(--color-gray);
}
.sp-pricing-entry + .sp-pricing__note {
    margin-top: 28px;
    margin-left: auto;
    margin-right: auto;
}
#audit-preparation-rse,
#csr-preparation-audit {
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
@media (max-width: 720px) {
    .sp-pricing-entry {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
        padding: 22px 20px;
    }
    .sp-pricing-entry__aside {
        align-items: center;
        text-align: center;
    }
    .sp-pricing-entry__price {
        white-space: normal;
    }
    .sp-pricing-entry .btn {
        width: 100%;
        justify-content: center;
    }
}
.tdb-pricing-guide {
    max-width: 920px;
    margin: 0 auto 28px;
    padding: 18px 20px;
    border-radius: 16px;
    background: rgba(191, 155, 121, 0.1);
    border: 1px solid rgba(191, 155, 121, 0.28);
}
.tdb-pricing-guide__title {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
}
.tdb-pricing-guide__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 16px;
}
.tdb-pricing-guide__list li {
    font-size: 13.5px;
    line-height: 1.5;
    color: #475569;
}
.tdb-pricing-guide__list strong {
    color: #1e293b;
    font-weight: 750;
}
.tdb-pricing-reassure {
    max-width: 780px;
    margin: 22px auto 0;
    text-align: center;
    font-size: 14.5px;
    line-height: 1.6;
    color: #334155;
}
.tdb-pricing-reassure + .sp-pricing__note {
    margin-top: 14px;
}
@media (max-width: 900px) {
    .tdb-pricing-guide__list {
        grid-template-columns: 1fr;
    }
}
.sp-pricing__note svg {
    color: var(--color-primary);
    display: inline-block;
    vertical-align: -3px;
    margin-right: 8px;
    flex-shrink: 0;
}
.sp-pricing__note--long {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
    line-height: 1.55;
}

/* ══════════════════════════════════════════════
   RELATED (inter-cocons)
   ══════════════════════════════════════════════ */
.sp-related { padding: 64px 0; background: var(--color-white); }
.sp-related .sp-section-header {
    margin-bottom: 28px;
}
.sp-related .sp-section-sub {
    max-width: 760px;
}
.sp-related__title {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 16px;
    text-align: center;
    color: var(--color-dark);
}
.sp-related .sp-section-header .sp-related__title {
    margin-bottom: 12px;
}
.aga-mesh .sp-section-header {
    margin-bottom: 28px;
    text-align: center;
}
.aga-mesh__label {
    margin: 8px 0 14px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aga-mesh .sp-related__grid + .aga-mesh__label {
    margin-top: 36px;
}
.aga-mesh__split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-top: 36px;
    align-items: start;
}
.aga-mesh__split .aga-mesh__label {
    margin: 0 0 14px;
}
.aga-mesh__split .sp-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 900px) {
    .aga-mesh__split {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}
@media (max-width: 600px) {
    .aga-mesh__split .sp-related__grid {
        grid-template-columns: 1fr;
    }
}
.sp-related .sp-section-sub a,
.sp-reasons .sp-section-sub a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-related .sp-section-sub a:hover,
.sp-reasons .sp-section-sub a:hover {
    color: var(--color-primary-dark);
}
.sp-related__highlight {
    max-width: 820px;
    margin: 0 auto 32px;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    border: 1.5px solid rgba(89, 122, 175, 0.28);
    background: rgba(89, 122, 175, 0.08);
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--color-dark);
    text-align: center;
}
.sp-related__highlight a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-related__highlight a:hover {
    color: var(--color-primary-dark);
}
.sp-related__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    align-items: stretch;
}
.sp-related__grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (min-width: 1025px) {
    .sp-related__grid--3:has(> :nth-child(5):last-child) {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
    .sp-related__grid--3:has(> :nth-child(5):last-child) > * {
        grid-column: span 2;
    }
    .sp-related__grid--3:has(> :nth-child(5):last-child) > :nth-child(4) {
        grid-column: 2 / span 2;
    }
    .sp-related__grid--3:has(> :nth-child(5):last-child) > :nth-child(5) {
        grid-column: 4 / span 2;
    }
}
.sp-related__grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
.sp-related .gov-scheme--chain {
    margin: 4px auto 28px;
}
.sp-related-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 22px 20px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
    text-decoration: none;
    color: inherit;
    height: 100%;
}
.sp-related-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}
.sp-related-card.is-current {
    border-color: var(--pole-0, #289951);
    background: var(--pole-0-bg, #f0faf4);
    box-shadow: 0 0 0 1px rgba(40, 153, 81, 0.18);
    cursor: default;
}
.sp-related-card.is-current:hover {
    border-color: var(--pole-0, #289951);
    transform: none;
}
.sp-related-card__here {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pole-0, #289951);
}
.sp-related-card__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    background: rgba(89,122,175,.1);
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
}
.sp-related-card__body {
    flex: 1;
    min-width: 0;
    width: 100%;
}
.sp-related-card > div:not(.sp-related-card__icon) {
    flex: 1;
    min-width: 0;
    width: 100%;
}
.sp-related-card strong,
.sp-related-card h3 {
    display: block;
    font-size: 15px;
    font-weight: 700;
    margin: 0 0 8px;
    color: var(--color-dark);
    line-height: 1.35;
}
.sp-related-card p {
    font-size: 13.5px;
    color: var(--color-gray);
    line-height: 1.55;
    margin: 0;
}
.sp-related-card > span,
.sp-related-card__cta {
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 700;
    margin-top: auto;
    line-height: 1.35;
    max-width: none;
    text-align: left;
    transition: color var(--transition);
}
.sp-related-card:hover > span,
.sp-related-card:hover .sp-related-card__cta {
    color: var(--color-dark);
}
.sp-related__footer {
    margin-top: 28px;
    display: flex;
    justify-content: center;
}

/* ══════════════════════════════════════════════
   FAQ
   ══════════════════════════════════════════════ */
.sp-faq { padding: 80px 0; background: var(--color-light-gray); }
.sp-faq__inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 64px;
    align-items: start;
}
.sp-faq--stacked .sp-faq__inner {
    grid-template-columns: 1fr;
    gap: 36px;
}
.sp-faq--stacked .sp-faq__sidebar {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.sp-faq--stacked .sp-faq__sidebar p {
    margin-bottom: 20px;
}
.sp-faq--stacked .sp-faq__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 40px;
    align-items: start;
    min-width: 0;
}
@media (max-width: 1024px) {
    .sp-faq--stacked .sp-faq__list {
        grid-template-columns: 1fr;
    }
}
.sp-faq__sidebar h2 { font-size: 26px; font-weight: 800; margin: 12px 0 16px; }
.sp-faq__sidebar p { font-size: 15px; color: var(--color-gray); margin-bottom: 24px; }
.sp-faq-item {
    border-bottom: 1px solid var(--color-border);
    overflow: hidden;
}
.sp-faq-item summary,
.sp-faq-item__btn {
    padding: 20px 0;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    list-style: none;
    color: var(--color-dark);
    user-select: none;
    width: 100%;
    min-width: 0;
    text-align: left;
    background: none;
    border: none;
    font-family: inherit;
    line-height: 1.4;
    overflow-wrap: break-word;
}
.sp-faq-item summary h3 {
    margin: 0;
    flex: 1;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    font-family: inherit;
}
.sp-faq-item summary::-webkit-details-marker { display: none; }
.sp-faq-item summary::after,
.sp-faq-item__btn::after {
    content: '+';
    font-size: 20px;
    color: var(--color-primary);
    transition: transform var(--transition);
    flex-shrink: 0;
    line-height: 1.2;
    margin-top: 1px;
}
.sp-faq-item[open] summary::after,
.sp-faq-item.is-open .sp-faq-item__btn::after { content: '−'; }
.sp-faq-item__btn:focus-visible,
.sp-faq-item summary:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
    border-radius: 4px;
}
.sp-faq-item__answer { padding: 0 0 20px; }
.sp-faq-item__answer p { font-size: 15px; color: var(--color-gray); line-height: 1.7; overflow-wrap: break-word; }
.sp-faq-item__answer a { color: var(--color-primary); text-decoration: underline; }
@media (max-width: 640px) {
    .sp-faq { padding: 56px 0; }
    .sp-faq__inner { gap: 32px; }
    .sp-faq-item summary,
    .sp-faq-item__btn {
        font-size: 15px;
        padding: 16px 0;
        gap: 12px;
    }
    .sp-faq--stacked .sp-faq__sidebar .btn {
        width: 100%;
        max-width: 320px;
        justify-content: center;
    }
}

/* ══════════════════════════════════════════════
   CTA FINAL
   ══════════════════════════════════════════════ */
.sp-cta-final {
    padding: 80px 0;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
}
.sp-cta-final__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
    flex-wrap: wrap;
}
.sp-cta-final__text h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--color-white);
    margin-bottom: 12px;
}
.sp-cta-final__text .sp-cta-final__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.9);
    margin: 0 0 12px;
    max-width: none;
    line-height: 1.4;
}
.sp-cta-final__text p { font-size: 16px; color: rgba(255,255,255,.85); line-height: 1.6; max-width: 520px; }
.sp-cta-final .btn-primary {
    background: var(--color-white);
    color: var(--color-primary);
    border-color: var(--color-white);
    font-size: 16px;
    padding: 16px 32px;
}
.sp-cta-final .btn-primary:hover { background: var(--color-light-gray); }
.sp-cta-final .btn-outline.sp-cta-final__outline {
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.55);
    background: transparent;
}
.sp-cta-final .btn-outline.sp-cta-final__outline:hover {
    background: rgba(255, 255, 255, 0.12);
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.85);
}
.sp-cta-final__reassurance {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    flex-wrap: wrap;
}
.sp-cta-final__reassurance span {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: rgba(255,255,255,.9);
    font-weight: 600;
}
.sp-cta-final__reassurance svg { color: rgba(255,255,255,.9); }

/* ══════════════════════════════════════════════
   RESPONSIVE service pages
   ══════════════════════════════════════════════ */
@media (max-width: 1024px) {
    .sp-hero__inner { grid-template-columns: 1fr; }
    .sp-hero__visual { display: none; }
    .sp-hero--green .sp-hero__visual,
    .sp-hero--beige .sp-hero__visual,
    .sp-hero--soft .sp-hero__visual,
    .sp-hero--ia .sp-hero__visual {
        display: block;
        max-width: 480px;
        margin: 8px auto 0;
    }
    .sp-reasons__grid { grid-template-columns: repeat(2, 1fr); }
    .sp-reasons__grid.sp-reasons__grid--4across { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .sp-process__inner { grid-template-columns: 1fr; }
    .sp-process__visual { order: -1; max-height: 320px; overflow: hidden; }
    .sp-services__grid { grid-template-columns: repeat(2, 1fr); }
    .sp-pricing__grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
    .sp-pricing__grid--4col {
        max-width: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sp-plan--featured { transform: none; }
    .sp-related__grid,
    .sp-related__grid--3,
    .sp-related__grid--2 { grid-template-columns: repeat(2, 1fr); }
    .sp-faq__inner { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .sp-pricing__grid--4col {
        max-width: 480px;
        grid-template-columns: 1fr;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 640px) {
    .sp-reasons__grid { grid-template-columns: 1fr; }
    .sp-services__grid { grid-template-columns: 1fr; }
    .sp-related__grid,
    .sp-related__grid--3,
    .sp-related__grid--2 { grid-template-columns: 1fr; }
    .sp-hero__actions { flex-direction: column; }
    .sp-hero__actions .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
        height: auto;
        min-height: 44px;
        line-height: 1.35;
        text-align: center;
    }
}

/* ══════════════════════════════════════════════
   CARD "CE QUE VOUS OBTENEZ" (hero droit)
   ══════════════════════════════════════════════ */
.sp-deliverables-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 28px;
    border: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.sp-deliverables-card__header {
    display: flex;
    align-items: center;
    gap: 14px;
}

.sp-deliverables-card__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    background: var(--color-secondary);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
}

.sp-deliverables-card__title {
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 2px;
}

.sp-deliverables-card__subtitle {
    font-size: 12px;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
}

.sp-deliverables-card__text {
    font-size: 14px;
    color: var(--color-gray);
    line-height: 1.65;
    border-top: 1px solid var(--color-border);
    padding-top: 16px;
}

.sp-deliverables-card__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.sp-dc-stat {
    padding: 14px 10px;
    text-align: center;
}

.sp-dc-stat:not(:last-child) {
    border-right: 1px solid var(--color-border);
}

.sp-dc-stat strong {
    display: block;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 900;
    color: var(--color-dark);
    margin-bottom: 2px;
    line-height: 1.15;
    overflow-wrap: anywhere;
    hyphens: auto;
}

.sp-dc-stat span {
    font-size: 11px;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
    line-height: 1.35;
    display: block;
    hyphens: auto;
    overflow-wrap: anywhere;
}
.sp-deliverables-card__stats--words .sp-dc-stat strong {
    font-size: 14px;
    font-weight: 800;
    overflow-wrap: normal;
    hyphens: none;
}
.sp-deliverables-card__stats--words .sp-dc-stat span {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-secondary);
    overflow-wrap: normal;
    hyphens: none;
}

/* SMQ — phrase forte (fond clair charte, jamais noir) */
p.smq-statement {
    margin: 40px auto 0;
    max-width: 820px;
    padding: 22px 28px;
    background-color: #f4faf6;
    background-image: linear-gradient(135deg, #f4faf6 0%, #ffffff 55%);
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: var(--radius-md);
    text-align: center;
    font-family: var(--font-title);
    font-size: clamp(18px, 2.2vw, 24px);
    font-weight: 700;
    line-height: 1.45;
    color: #1a1a1a;
}
p.smq-statement span {
    color: var(--color-secondary);
}
p.smq-statement a {
    color: inherit;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}
p.smq-statement a:hover {
    color: var(--color-secondary);
}

.iso9001-proofs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    max-width: 880px;
}
.iso9001-proofs li {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 999px;
    background: var(--pole-0-bg, #f0f4fa);
    color: var(--color-dark);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    border: 1px solid rgba(89, 122, 175, 0.28);
    font-family: var(--font-subtitle);
}
.iso9001-proofs a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.iso9001-proofs a:hover {
    color: var(--color-primary);
}

/* SMQ — cartographie des processus */
.smq-proc__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.smq-proc__tags li {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--pole-0-bg, #f0f4fa);
    color: var(--color-dark);
    font-size: 13px;
    font-weight: 700;
    border: 1px solid rgba(89, 122, 175, 0.28);
    font-family: var(--font-subtitle);
}
.smq-proc__tags--center {
    justify-content: center;
    max-width: 860px;
    margin: 8px auto 0;
    gap: 8px;
}
.smq-proc__tags--center li {
    font-size: 14px;
    padding: 8px 14px;
}
.smq-map {
    display: grid;
    justify-items: center;
    gap: 4px;
    margin: 40px auto 0;
    max-width: 860px;
    padding: 28px 24px 24px;
    background: #fff;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
}
.smq-map__side {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.smq-map__side strong,
.smq-map__flow strong {
    display: block;
    padding: 12px 18px;
    background: #fff;
    border: 1.5px solid rgba(89, 122, 175, 0.28);
    border-radius: 12px;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
    text-align: center;
}
.smq-map__side strong {
    background: var(--pole-0-bg, #f0f4fa);
}
.smq-map__arrow {
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
    color: var(--color-secondary);
}
.smq-map__flow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    width: 100%;
    margin: 8px 0;
    padding: 0;
    list-style: none;
}
.smq-map__flow li {
    display: flex;
    align-items: center;
}
.smq-map__flow li:not(:last-child)::after {
    content: "→";
    padding: 0 10px;
    font-size: 16px;
    font-weight: 800;
    color: var(--color-secondary);
}
.smq-map__flow li:nth-child(2) strong {
    background: var(--pole-0-bg, #f0f4fa);
    border-color: var(--pole-0, #597aaf);
}
#cartographie-processus .smq-proc__note {
    max-width: 720px;
    margin: 28px auto 0;
    text-align: center;
}
@media (max-width: 900px) {
    .iso27001-risk-flow {
        flex-direction: column;
    }
    .iso27001-risk-flow li {
        flex-direction: column;
    }
    .iso27001-risk-flow li:not(:last-child)::after {
        content: "↓";
        padding: 8px 0;
    }
}
@media (max-width: 700px) {
    .smq-map__flow {
        flex-direction: column;
    }
    .smq-map__flow li {
        flex-direction: column;
    }
    .smq-map__flow li:not(:last-child)::after {
        content: "↓";
        padding: 8px 0;
    }
}

/* SMQ — fiche processus */
.smq-fiche {
    max-width: 820px;
    margin: 0 auto;
    background: #fff;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}
.smq-fiche__head {
    padding: 20px 24px 18px;
    background: var(--pole-0-bg, #f0f4fa);
    border-bottom: 1.5px solid rgba(89, 122, 175, 0.18);
}
.smq-fiche__label {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0, #597aaf);
    font-family: var(--font-subtitle);
}
.smq-fiche__head h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.smq-fiche__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin: 0;
}
.smq-fiche__row {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 14px 20px;
    border-top: 1px solid var(--color-border);
}
.smq-fiche__row:nth-child(1),
.smq-fiche__row:nth-child(2) {
    border-top: 0;
}
.smq-fiche__row dt {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-secondary);
    font-family: var(--font-subtitle);
}
.smq-fiche__row dd {
    margin: 0;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--color-dark);
    line-height: 1.45;
}
.smq-fiche__row--wide {
    grid-column: 1 / -1;
}
.smq-fiche--finding .smq-fiche__row:nth-child(1),
.smq-fiche--finding .smq-fiche__row:nth-child(2) {
    border-top: 1px solid var(--color-border);
}
.smq-fiche--finding .smq-fiche__row:first-child {
    border-top: 0;
}
.smq-fiche__tag {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    background: var(--pole-2-bg);
    color: var(--pole-2);
    border: 1.5px solid rgba(191, 155, 121, 0.4);
}

/* Exemple de registre RGPD rempli */
#exemple-registre-rgpd-rempli .sp-compare-table-wrap,
#example-filled-gdpr-register .sp-compare-table-wrap {
    margin-top: 8px;
}
#exemple-registre-rgpd-rempli .sp-compare-table,
#example-filled-gdpr-register .sp-compare-table {
    min-width: 880px;
}
#exemple-registre-rgpd-rempli .sp-compare-table th,
#exemple-registre-rgpd-rempli .sp-compare-table td,
#example-filled-gdpr-register .sp-compare-table th,
#example-filled-gdpr-register .sp-compare-table td {
    width: auto;
    padding: 12px 14px;
    font-size: 13.5px;
    line-height: 1.4;
}
#exemple-registre-rgpd-rempli .sp-compare-table thead th:not(:last-child),
#exemple-registre-rgpd-rempli .sp-compare-table tbody td:not(:last-child),
#exemple-registre-rgpd-rempli .sp-compare-table tbody th,
#example-filled-gdpr-register .sp-compare-table thead th:not(:last-child),
#example-filled-gdpr-register .sp-compare-table tbody td:not(:last-child),
#example-filled-gdpr-register .sp-compare-table tbody th {
    border-right: 1px solid var(--color-border);
}
#exemple-registre-rgpd-rempli .sp-compare-table tbody th,
#example-filled-gdpr-register .sp-compare-table tbody th {
    color: var(--color-dark);
    font-weight: 700;
    text-align: left;
    background: rgba(255, 255, 255, 0.7);
    border-top: 1px solid var(--color-border);
}
#exemple-registre-rgpd-rempli .sp-compare-table tbody tr.is-open th,
#exemple-registre-rgpd-rempli .sp-compare-table tbody tr.is-open td,
#example-filled-gdpr-register .sp-compare-table tbody tr.is-open th,
#example-filled-gdpr-register .sp-compare-table tbody tr.is-open td {
    background: #f4f7fb;
}
#exemple-registre-rgpd-rempli .reg-ex-pending,
#example-filled-gdpr-register .reg-ex-pending {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    background: #f4f4f5;
    color: #64748b;
}
#exemple-registre-rgpd-rempli .smq-fiche,
#example-filled-gdpr-register .smq-fiche {
    margin-top: 36px;
    max-width: 920px;
}
#maintenance-annuelle,
#annual-maintenance,
#pack-accompagnement,
#register-support-pack {
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
#tarifs .smq-proc__tags--center,
#pricing .smq-proc__tags--center {
    margin: 0 auto 40px;
}

/* Grille de scoring audit RGPD */
#grille-audit-rgpd .sp-compare-table-wrap,
#gdpr-audit-scoring-grid .sp-compare-table-wrap {
    margin-top: 28px;
}
#grille-audit-rgpd .sp-compare-table,
#gdpr-audit-scoring-grid .sp-compare-table {
    min-width: 640px;
}
#grille-audit-rgpd .sp-compare-table caption,
#gdpr-audit-scoring-grid .sp-compare-table caption {
    caption-side: bottom;
    padding: 14px 18px 16px;
    text-align: left;
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-gray);
}
#grille-audit-rgpd .sp-compare-table th,
#grille-audit-rgpd .sp-compare-table td,
#gdpr-audit-scoring-grid .sp-compare-table th,
#gdpr-audit-scoring-grid .sp-compare-table td {
    width: auto;
    padding: 14px 16px;
    font-size: 14px;
    vertical-align: middle;
}
#grille-audit-rgpd .sp-compare-table thead th:not(:last-child),
#grille-audit-rgpd .sp-compare-table tbody td:not(:last-child),
#grille-audit-rgpd .sp-compare-table tbody th,
#gdpr-audit-scoring-grid .sp-compare-table thead th:not(:last-child),
#gdpr-audit-scoring-grid .sp-compare-table tbody td:not(:last-child),
#gdpr-audit-scoring-grid .sp-compare-table tbody th {
    border-right: 1px solid var(--color-border);
}
#grille-audit-rgpd .sp-compare-table tbody th,
#gdpr-audit-scoring-grid .sp-compare-table tbody th {
    color: var(--color-dark);
    font-weight: 700;
    text-align: left;
    background: rgba(255, 255, 255, 0.7);
    border-top: 1px solid var(--color-border);
}
.rgpd-score-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1.2;
    white-space: nowrap;
}
.rgpd-score-badge--ok {
    background: rgba(40, 153, 81, 0.12);
    color: #1f7a42;
    border: 1px solid rgba(40, 153, 81, 0.28);
}
.rgpd-score-badge--mid {
    background: #fef9ee;
    color: #92400e;
    border: 1px solid #f59e0b;
}
.rgpd-score-badge--high {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid rgba(185, 28, 28, 0.28);
}
.rgpd-score-badge--low {
    background: #f4f7fb;
    color: #475569;
    border: 1px solid #d0d8e4;
}
.rgpd-score-badge--prio {
    min-width: 28px;
    justify-content: center;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    border: 1px solid rgba(89, 122, 175, 0.28);
    font-family: var(--font-title);
}
.rgpd-score-badge--empty {
    background: transparent;
    color: #94a3b8;
    border: 0;
    font-weight: 700;
}
#grille-audit-rgpd .sp-icon--critical,
#gdpr-audit-scoring-grid .sp-icon--critical {
    background: #fef2f2;
    color: #b91c1c;
}
@media (max-width: 640px) {
    #grille-audit-rgpd .sp-compare-table,
    #gdpr-audit-scoring-grid .sp-compare-table {
        min-width: 0;
    }
    #grille-audit-rgpd .sp-compare-table th,
    #grille-audit-rgpd .sp-compare-table td,
    #gdpr-audit-scoring-grid .sp-compare-table th,
    #gdpr-audit-scoring-grid .sp-compare-table td {
        padding: 10px 8px;
        font-size: 12.5px;
    }
    #grille-audit-rgpd .rgpd-score-badge,
    #gdpr-audit-scoring-grid .rgpd-score-badge {
        padding: 3px 7px;
        font-size: 11px;
        white-space: normal;
    }
}

.rse-policy-ex {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: 1100px;
    margin: 0 auto;
}
.rse-policy-ex .smq-fiche {
    max-width: none;
    margin: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.rse-policy-ex .smq-fiche__grid {
    grid-template-columns: 1fr;
    flex: 1;
}
.rse-policy-ex .smq-fiche__row:nth-child(2) {
    border-top: 1px solid var(--color-border);
}
.rse-policy-ex .smq-proc__tags {
    margin-top: 4px;
}
@media (max-width: 1100px) {
    .rse-policy-ex {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .rse-policy-ex .smq-fiche:last-child {
        grid-column: 1 / -1;
        max-width: calc(50% - 8px);
        justify-self: center;
        width: 100%;
    }
}
@media (max-width: 700px) {
    .rse-policy-ex {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin-left: auto;
        margin-right: auto;
    }
    .rse-policy-ex .smq-fiche:last-child {
        grid-column: auto;
        max-width: none;
    }
}
.rse-action-plan {
    -webkit-overflow-scrolling: touch;
}
.rse-action-plan .sp-compare-table {
    min-width: 760px;
}
.rse-action-plan .sp-compare-table th,
.rse-action-plan .sp-compare-table td {
    width: 20%;
    padding: 14px 16px;
    font-size: 14px;
    vertical-align: middle;
}
.rse-action-plan .sp-compare-table thead th:not(:last-child),
.rse-action-plan .sp-compare-table tbody td:not(:last-child) {
    border-right: 1px solid var(--color-border);
}
.rse-action-plan .sp-compare-table tbody td {
    color: var(--color-gray);
    font-weight: 400;
}
.rse-action-plan .sp-compare-table tbody td:first-child {
    color: var(--color-dark);
    font-weight: 650;
}
.rse-status {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.rse-status--progress {
    background: var(--pole-0-bg);
    color: var(--pole-0);
    border: 1.5px solid rgba(89, 122, 175, 0.35);
}
.rse-status--todo {
    background: var(--pole-2-bg);
    color: #8a6a48;
    border: 1.5px solid rgba(191, 155, 121, 0.4);
}
.rse-status--planned {
    background: var(--pole-1-bg);
    color: var(--pole-1);
    border: 1.5px solid rgba(40, 153, 81, 0.28);
}

/* ── Maillage visuel 3 pages RSE ── */
.rse-mesh {
    padding: 88px 0 80px;
    background: var(--color-bg);
}
.rse-mesh__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    align-items: stretch;
}
.rse-mesh__item {
    position: relative;
    margin: 0;
    display: flex;
    min-width: 0;
}
.rse-mesh__item:not(:last-child)::after {
    content: "→";
    position: absolute;
    top: 36px;
    right: -24px;
    z-index: 1;
    font-size: 18px;
    font-weight: 800;
    color: var(--color-primary);
    pointer-events: none;
}
.rse-mesh__card {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 28px 24px 26px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    text-decoration: none;
    color: inherit;
    transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition);
}
a.rse-mesh__card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}
.rse-mesh__item--here .rse-mesh__card {
    border-color: var(--color-primary);
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.08) 0%, #fff 42%);
    box-shadow: 0 0 0 1px rgba(89, 122, 175, 0.18);
}
.rse-mesh__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 10px;
    margin-bottom: 16px;
}
.rse-mesh__num {
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--color-primary);
}
.rse-mesh__here {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--color-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-family: var(--font-subtitle);
}
.rse-mesh__card h3 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: clamp(18px, 1.8vw, 22px);
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    overflow-wrap: anywhere;
}
.rse-mesh__page {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.rse-mesh__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}
.rse-mesh__hub {
    margin: 28px 0 0;
    text-align: center;
}
.rse-mesh__hub a {
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: none;
}
.rse-mesh__hub a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rse-mesh__cross-label {
    margin: 36px 0 14px;
    text-align: center;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.rse-mesh__cross {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    max-width: 760px;
    margin: 0 auto;
}
.rse-mesh__cross-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 12px 0 0;
}
.rse-mesh__cross-links a {
    color: var(--color-primary);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}
.rse-mesh__cross-links a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 1100px) {
    .rse-mesh__grid {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin: 0 auto;
        gap: 36px;
    }
    .rse-mesh__item:not(:last-child)::after {
        content: "↓";
        top: auto;
        bottom: -28px;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }
    #enjeux-rse .sp-reason-card,
    #kpi-rse .sp-reason-card,
    #gouvernance-rse .sp-reason-card,
    #strategie-rse-maturite .sp-reason-card,
    #csr-issues .sp-reason-card,
    #csr-kpis .sp-reason-card,
    #csr-governance .sp-reason-card,
    #csr-strategy-by-maturity .sp-reason-card,
    #pour-qui .sp-reason-card,
    #who-needs-an-audit .sp-reason-card,
    #who-needs-csr-strategy .sp-reason-card {
        min-width: 0;
    }
}
@media (max-width: 900px) {
    .rse-mesh__cross {
        grid-template-columns: 1fr;
        max-width: 440px;
    }
}
@media (max-width: 700px) {
    .rse-action-plan .sp-compare-table th,
    .rse-action-plan .sp-compare-table td {
        padding: 10px 12px;
        font-size: 13px;
    }
    .org-price__item h3 {
        overflow-wrap: anywhere;
    }
}
@media (max-width: 600px) {
    #enjeux-rse .sp-reasons__grid.sp-reasons__grid--4across,
    #kpi-rse .sp-reasons__grid.sp-reasons__grid--4across,
    #gouvernance-rse .sp-reasons__grid.sp-reasons__grid--4across,
    #strategie-rse-maturite .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-issues .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-kpis .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-governance .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-strategy-by-maturity .sp-reasons__grid.sp-reasons__grid--4across {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .smq-fiche__grid {
        grid-template-columns: 1fr;
    }
    .smq-fiche__row:nth-child(2) {
        border-top: 1px solid var(--color-border);
    }
    .smq-fiche__row {
        padding: 12px 14px;
    }
    #processus-procedure .sp-compare-table,
    #process-procedure .sp-compare-table {
        min-width: 0;
    }
    #processus-procedure .sp-compare-table th,
    #processus-procedure .sp-compare-table td,
    #process-procedure .sp-compare-table th,
    #process-procedure .sp-compare-table td {
        padding: 12px 10px;
        font-size: 13px;
    }
}

/* SMQ — léger vs usine à gaz */
.smq-vs {
    grid-template-columns: 1fr 1fr;
    max-width: 920px;
    margin: 0 auto;
    gap: 20px;
}
.smq-vs__card h3 {
    margin-bottom: 16px;
}
.smq-vs__card > p {
    margin: -8px 0 16px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-gray);
}
.smq-vs__card ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.smq-vs__card li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--color-gray);
}
.smq-vs__card li svg {
    flex-shrink: 0;
    margin-top: 2px;
}
.smq-vs__card--heavy {
    border-color: #e8c9c9;
    background: #fdf8f8;
}
.smq-vs__card--heavy h3 {
    color: #9b2c2c;
}
.smq-vs__card--heavy svg {
    color: #c53030;
}
.smq-vs__card--useful {
    border-color: rgba(40, 153, 81, 0.35);
    background: #f7fbf8;
}
.smq-vs__card--useful h3 {
    color: var(--color-secondary);
}
.smq-vs__card--useful svg {
    color: var(--color-secondary);
}
.smq-vs__card--alt {
    border-color: rgba(89, 122, 175, 0.35);
    background: #f4f7fb;
}
.smq-vs__card--alt h3 {
    color: var(--pole-0, #597aaf);
}
.smq-vs__card--alt svg {
    color: var(--pole-0, #597aaf);
}
.smq-vs__card h3 a {
    color: inherit;
    text-decoration: none;
}
.smq-vs__card h3 a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.sp-reasons__footer p:has(.btn) {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}
@media (max-width: 640px) {
    .sp-reasons__footer p:has(.btn) {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }
    .sp-reasons__footer p:has(.btn) .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
        height: auto;
        min-height: 44px;
        line-height: 1.35;
        text-align: center;
    }
}
@media (max-width: 700px) {
    .smq-vs {
        grid-template-columns: 1fr;
    }
}

/* SMQ — cycle d'amélioration continue (horizontal) */
.smq-cycle-wrap {
    margin: 0 auto 8px;
    max-width: 1100px;
}
.smq-cycle {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    max-width: none;
}
.smq-cycle li {
    position: relative;
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    margin: 0 26px 0 0;
    padding: 16px 10px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 13.5px;
    font-weight: 800;
    color: var(--color-dark);
    background: #fff;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: var(--radius-md);
    line-height: 1.3;
}
.smq-cycle li:last-child {
    margin-right: 0;
    background: var(--pole-1-bg);
    border-color: var(--color-secondary);
}
.smq-cycle li:not(:last-child)::after {
    content: "→";
    position: absolute;
    left: auto;
    right: -20px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    color: var(--color-secondary);
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}
.smq-cycle__loop {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 18px 4px 0;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    color: var(--color-secondary);
}
.smq-cycle__loop::before,
.smq-cycle__loop::after {
    content: "";
    flex: 1 1 0;
    height: 12px;
    border: 1.5px solid var(--color-secondary);
    border-top: none;
    opacity: 0.45;
}
.smq-cycle__loop::before {
    border-right: none;
    border-radius: 0 0 0 10px;
}
.smq-cycle__loop::after {
    border-left: none;
    border-radius: 0 0 10px 0;
}
.smq-cycle__loop span {
    display: inline;
    margin-top: 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-secondary);
    font-family: var(--font-subtitle);
    white-space: nowrap;
}
@media (max-width: 1100px) {
    .smq-cycle {
        flex-wrap: wrap;
        max-width: 520px;
        margin: 0 auto;
        row-gap: 28px;
    }
    .smq-cycle li {
        flex: 0 0 calc(33.333% - 18px);
        margin: 0 26px 0 0;
    }
    .smq-cycle li:nth-child(3n) {
        margin-right: 0;
    }
    .smq-cycle li:nth-child(3n)::after {
        display: none;
    }
    .smq-cycle li:last-child {
        margin-right: 0;
    }
}
@media (max-width: 600px) {
    .smq-cycle {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: center;
        max-width: 280px;
        row-gap: 0;
    }
    .smq-cycle li {
        flex: none;
        width: 100%;
        margin: 0 0 28px;
        padding: 14px 16px;
        font-size: 15px;
    }
    .smq-cycle li:last-child {
        margin: 0;
    }
    .smq-cycle li:not(:last-child)::after,
    .smq-cycle li:nth-child(3n)::after {
        display: block;
        content: "↓";
        left: 50%;
        right: auto;
        top: auto;
        bottom: -24px;
        transform: translateX(-50%);
        font-size: 16px;
    }
    .smq-cycle__loop::before,
    .smq-cycle__loop::after {
        display: none;
    }
    .smq-cycle__loop {
        margin-top: 14px;
        flex-direction: column;
        gap: 6px;
    }
    .smq-cycle__loop span {
        display: block;
    }
}

.iso9001-timeline {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    max-width: none;
}
.iso9001-timeline li {
    position: relative;
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    margin: 0 28px 0 0;
    padding: 14px 10px;
    text-align: center;
    background: #fff;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: 12px;
    line-height: 1.3;
}
.iso9001-timeline li:last-child {
    margin-right: 0;
}
.iso9001-timeline li:not(:last-child)::after {
    content: "→";
    position: absolute;
    left: auto;
    right: -22px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    color: var(--color-secondary);
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}
.iso9001-timeline__when {
    display: block;
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-secondary);
    font-family: var(--font-subtitle);
}
.iso9001-timeline strong {
    display: block;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
}
.iso9001-timeline a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.iso9001-timeline a:hover {
    color: var(--color-primary);
}
.iso9001-timeline__cert {
    margin-bottom: 0;
    background: var(--pole-0-bg, #f0f4fa);
    border-color: var(--pole-0, #597aaf);
}
.iso9001-timeline__cert .iso9001-timeline__when {
    color: var(--pole-0, #597aaf);
}
.iso9001-timeline__note {
    max-width: 640px;
    margin: 28px auto 0;
    text-align: center;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
@media (max-width: 1100px) {
    .iso9001-timeline {
        overflow-x: auto;
        justify-content: flex-start;
        padding-bottom: 6px;
        -webkit-overflow-scrolling: touch;
    }
    .iso9001-timeline li {
        flex: 0 0 150px;
        width: 150px;
        min-width: 150px;
    }
}
@media (max-width: 700px) {
    .iso9001-timeline {
        flex-direction: column;
        align-items: center;
        overflow: visible;
        max-width: 420px;
    }
    .iso9001-timeline li {
        width: 100%;
        min-width: 0;
        flex: none;
        margin: 0 0 32px;
        padding: 16px 20px;
    }
    .iso9001-timeline li:last-child {
        margin-bottom: 0;
    }
    .iso9001-timeline li:not(:last-child)::after {
        content: "↓";
        left: 50%;
        right: auto;
        top: auto;
        bottom: -26px;
        transform: translateX(-50%);
    }
    .iso9001-timeline strong {
        font-size: 16px;
    }
    .iso9001-timeline__when {
        font-size: 12px;
    }
}

.iso9001-first-check {
    list-style: none;
    margin: 0 auto;
    padding: 8px 0 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 28px;
    max-width: 720px;
}
.iso9001-first-check li {
    position: relative;
    margin: 0;
    padding: 10px 14px 10px 42px;
    background: #fff;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: 10px;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-dark);
}
.iso9001-first-check li::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    width: 16px;
    height: 8px;
    border-left: 2.5px solid var(--color-secondary);
    border-bottom: 2.5px solid var(--color-secondary);
    transform: translateY(-65%) rotate(-45deg);
}
.iso9001-first-check a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.iso9001-first-check a:hover {
    color: var(--color-primary);
}
#premier-audit-iso .iso9001-first-check__note {
    max-width: 720px;
    margin: 28px auto 0;
    padding: 16px 20px;
    text-align: center;
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-dark);
    background: var(--pole-0-bg, #f0f4fa);
    border: 1px solid rgba(89, 122, 175, 0.28);
    border-radius: 12px;
}
@media (max-width: 640px) {
    .iso9001-first-check {
        grid-template-columns: 1fr;
    }
}

#deja-certifie-iso-9001 .iso9001-version {
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
}
#deja-certifie-iso-9001 .iso9001-version p:last-child {
    margin: 8px 0 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
#deja-certifie-iso-9001 .iso9001-version a {
    font-weight: 700;
    color: var(--color-primary);
    text-underline-offset: 2px;
}
#deja-certifie-iso-9001 .sp-audit-includes__actions,
#transition-iso-9001 .sp-audit-includes__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.iso9001-cost-split {
    max-width: 720px;
    margin: 28px auto 0;
    text-align: center;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}

.seo-dash--iso9001 .seo-dash__layout,
.seo-dash--iso9001 .seo-dash__config,
.seo-dash--iso9001 .seo-dash__preview {
    min-width: 0;
}
.seo-dash--iso9001 .seo-dash__opt {
    overflow-wrap: break-word;
}
.seo-dash--iso9001 .seo-dash__kpi-value {
    overflow-wrap: anywhere;
}
@media (max-width: 1100px) {
    .seo-dash--iso9001 .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    .seo-dash--iso9001 .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
    .seo-dash--iso9001 .seo-dash__options--stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-direction: unset;
        gap: 8px;
    }
    .seo-dash--iso9001 .seo-dash__opt {
        min-height: 44px;
        font-size: 13px;
        padding: 8px 12px;
    }
}
@media (max-width: 560px) {
    .seo-dash--iso9001 {
        padding: 48px 0;
    }
    .seo-dash--iso9001 .seo-dash__options--stack {
        grid-template-columns: 1fr;
    }
    .seo-dash--iso9001 .seo-dash__cta {
        align-items: stretch;
    }
}

#timeline-iso-9001 .iso9001-timeline {
    max-width: 100%;
}
#roles-iso-9001 .sp-reason-card,
#gap-analysis-iso-9001 .sp-reason-card {
    min-width: 0;
}
#roles-iso-9001 .sp-reason-card h3,
#gap-analysis-iso-9001 .sp-reason-card h3 {
    overflow-wrap: break-word;
}
@media (max-width: 1200px) {
    .sp-dc-stat {
        padding: 12px 6px;
    }
    .sp-dc-stat strong {
        font-size: clamp(13px, 1.6vw, 18px);
    }
    .sp-dc-stat span {
        font-size: 10px;
    }
}
@media (max-width: 640px) {
    .sp-hero__trust {
        gap: 12px 16px;
    }
    .sp-trust-item {
        flex: 1 1 calc(50% - 16px);
        min-width: 0;
        align-items: flex-start;
        line-height: 1.35;
    }
}

.sp-deliverables-card__highlight {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fef9ee;
    border: 1px solid #f59e0b;
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    color: #92400e;
    font-size: 13px;
    line-height: 1.5;
}

.sp-deliverables-card__highlight svg {
    color: #f59e0b;
    flex-shrink: 0;
    margin-top: 1px;
}

/* ══════════════════════════════════════════════
   SOCIAL PROOF BAR
   ══════════════════════════════════════════════ */
.sp-social-proof {
    background: var(--color-white);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 20px 0;
}

.sp-social-proof .container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
}

.sp-social-proof__reassurance {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    justify-content: center;
}

.sp-social-proof__reassurance span {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-family: var(--font-subtitle);
    font-weight: 600;
    color: var(--color-gray);
}

.sp-social-proof__reassurance svg {
    color: var(--color-secondary);
    flex-shrink: 0;
}

.sp-social-proof__stats {
    display: flex;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap;
    justify-content: center;
}

.sp-sp-stat {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-gray);
}

.sp-sp-stat svg { flex-shrink: 0; }

.sp-sp-stat p {
    font-size: 13px;
    font-family: var(--font-subtitle);
}

.sp-sp-stat strong {
    color: var(--color-dark);
    font-weight: 800;
}

/* ══════════════════════════════════════════════
   GRILLE 8 AXES D'AUDIT
   ══════════════════════════════════════════════ */
.sp-audit-includes {
    padding: 80px 0;
    background: var(--color-white);
}

.sp-audit-includes__footer {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
}

.sp-audit-includes__footer .sp-section-sub {
    max-width: 720px;
}

.sp-audit-includes__actions {
    margin-bottom: 0;
    justify-content: center;
}

#accompagnement-rse .dpo-missions__highlight {
    margin-top: 40px;
}

.sp-audit-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.sp-audit-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 4 blocs par ligne — dernière rangée centrée (ex. méthode agents IA, 14 items) */
.sp-audit-grid--per4 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    grid-template-columns: none;
}
.sp-audit-grid--per4 > .sp-audit-item {
    flex: 0 1 calc(25% - 12px);
    max-width: calc(25% - 12px);
    width: 100%;
    box-sizing: border-box;
    flex-direction: column;
    align-items: flex-start;
    height: auto;
    min-height: 100%;
}
@media (max-width: 1100px) {
    .sp-audit-grid--per4 > .sp-audit-item {
        flex: 0 1 calc(50% - 8px);
        max-width: calc(50% - 8px);
    }
}
@media (max-width: 600px) {
    .sp-audit-grid--per4 > .sp-audit-item {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

/* 7 blocs : 4 + 3 centrés, icône à gauche */
.sp-audit-grid--7center {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    grid-template-columns: none;
}
.sp-audit-grid--7center > .sp-audit-item {
    flex: 0 1 calc(25% - 12px);
    max-width: calc(25% - 12px);
    width: 100%;
    box-sizing: border-box;
    height: auto;
    min-height: 100%;
}
@media (max-width: 1100px) {
    .sp-audit-grid--7center > .sp-audit-item {
        flex: 0 1 calc(50% - 8px);
        max-width: calc(50% - 8px);
    }
}
@media (max-width: 600px) {
    .sp-audit-grid--7center > .sp-audit-item {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

/* Périmètre infogérance — 5 + 5 + 3 centrés */
.sp-audit-grid--infra-13 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    grid-template-columns: none;
}
.sp-audit-grid--infra-13 > .sp-audit-item {
    flex: 0 1 calc(20% - 13px);
    max-width: calc(20% - 13px);
    width: 100%;
    box-sizing: border-box;
    flex-direction: column;
    align-items: flex-start;
    height: auto;
    min-height: 100%;
}
@media (max-width: 1100px) {
    .sp-audit-grid--infra-13 > .sp-audit-item {
        flex: 0 1 calc(33.333% - 11px);
        max-width: calc(33.333% - 11px);
    }
}
@media (max-width: 700px) {
    .sp-audit-grid--infra-13 > .sp-audit-item {
        flex: 0 1 calc(50% - 8px);
        max-width: calc(50% - 8px);
    }
}
@media (max-width: 480px) {
    .sp-audit-grid--infra-13 > .sp-audit-item {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

.sp-def-prose {
    max-width: 720px;
    margin: 8px auto 0;
    text-align: left;
}

.sp-def-prose p {
    font-size: 17px;
    color: var(--color-gray);
    line-height: 1.7;
    margin: 0 0 14px;
}

.sp-def-prose p:last-child {
    margin-bottom: 0;
}

.sp-def-prose strong {
    color: var(--color-dark);
}

.sp-def-prose dfn {
    font-style: inherit;
    font-weight: inherit;
}

.sp-def-prose a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-def-prose a:hover {
    color: var(--color-primary-dark);
}

.gov-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(220px, 0.5fr);
    gap: 32px 40px;
    align-items: center;
    margin-top: 8px;
}
.gov-scheme {
    list-style: none;
    margin: 0 auto;
    padding: 22px 18px 18px;
    max-width: 280px;
    width: 100%;
    background: #f7fbf8;
    border: 1.5px solid rgba(40, 153, 81, 0.22);
    border-radius: 18px;
}
.gov-scheme__node {
    margin: 0;
    text-align: center;
}
.gov-scheme__node strong {
    display: block;
    padding: 12px 16px;
    background: #fff;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: 12px;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.gov-scheme__arrow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 0 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-secondary);
    font-family: var(--font-subtitle);
}
.gov-scheme__arrow::before {
    content: "↓";
    font-size: 16px;
    line-height: 1;
    font-weight: 800;
}
.gov-scheme__arrow--up::before {
    content: "↑";
}
@media (max-width: 900px) {
    .gov-layout {
        grid-template-columns: 1fr;
    }
    .gov-scheme {
        margin-top: 8px;
    }
}

.gov-deleg .sp-compare-table-wrap {
    margin-top: 8px;
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}
.gov-deleg__table {
    min-width: 640px;
}
.gov-deleg__table th,
.gov-deleg__table td {
    width: auto;
    vertical-align: middle;
}
.gov-deleg__table thead th:first-child,
.gov-deleg__table tbody th {
    width: 34%;
    text-align: left;
    font-weight: 700;
    color: var(--color-dark);
    border-right: 1px solid var(--color-border);
    background: rgba(255, 255, 255, 0.7);
}
.gov-deleg__table tbody th {
    font-size: 14px;
    padding: 14px 18px;
    border-top: 1px solid var(--color-border);
}
.gov-deleg__table thead th:not(:first-child),
.gov-deleg__table tbody td {
    width: 22%;
    text-align: center;
    border-right: 1px solid var(--color-border);
}
.gov-deleg__table thead th:last-child,
.gov-deleg__table tbody td:last-child {
    border-right: 0;
}
.gov-deleg__cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 86px;
    padding: 6px 10px;
    border-radius: 8px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
}
.gov-deleg__cell--decide {
    background: rgba(40, 153, 81, 0.14);
    color: #1f4d3a;
}
.gov-deleg__cell--propose {
    background: var(--pole-1-bg);
    color: var(--pole-1);
}
.gov-deleg__cell--consult {
    background: var(--pole-2-bg);
    color: #8a6a48;
}
.gov-deleg__cell--inform {
    background: var(--color-light-gray);
    color: #64748b;
}
.gov-deleg__cell--none {
    min-width: 0;
    padding: 0;
    color: #94a3b8;
    font-weight: 650;
    background: transparent;
}

.gov-tool .sp-def-prose a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.gov-tool .sp-def-prose a:hover {
    color: var(--color-primary-dark);
}
.gov-scheme--chain {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    max-width: 1080px;
    width: 100%;
    margin: 8px auto 0;
    padding: 18px 14px;
    gap: 0;
}
.gov-scheme--chain .gov-scheme__node {
    flex: 1 1 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 0;
}
.gov-scheme--chain .gov-scheme__node strong {
    flex: 1 1 auto;
    padding: 12px 8px;
    font-size: 13px;
}
#apres-audit-rgpd .gov-scheme--chain .gov-scheme__node strong,
#after-gdpr-audit .gov-scheme--chain .gov-scheme__node strong,
#apres-audit-pentest .gov-scheme--chain .gov-scheme__node strong,
#after-audit-pentest .gov-scheme--chain .gov-scheme__node strong,
#cocon-cyber .gov-scheme--chain .gov-scheme__node strong,
#cyber-cluster .gov-scheme--chain .gov-scheme__node strong {
    overflow-wrap: break-word;
}
@media (min-width: 1101px) {
    #apres-audit-rgpd .gov-scheme--chain .gov-scheme__node strong,
    #after-gdpr-audit .gov-scheme--chain .gov-scheme__node strong,
    #apres-audit-pentest .gov-scheme--chain .gov-scheme__node strong,
    #after-audit-pentest .gov-scheme--chain .gov-scheme__node strong,
    #cocon-cyber .gov-scheme--chain .gov-scheme__node strong,
    #cyber-cluster .gov-scheme--chain .gov-scheme__node strong {
        font-size: 12px;
    }
}
@media (max-width: 1100px) {
    #apres-audit-rgpd .gov-scheme--chain,
    #after-gdpr-audit .gov-scheme--chain,
    #apres-audit-pentest .gov-scheme--chain,
    #after-audit-pentest .gov-scheme--chain,
    #cocon-cyber .gov-scheme--chain,
    #cyber-cluster .gov-scheme--chain {
        flex-direction: column;
        max-width: 300px;
        padding: 20px 16px 16px;
    }
    #apres-audit-rgpd .gov-scheme--chain .gov-scheme__node,
    #after-gdpr-audit .gov-scheme--chain .gov-scheme__node,
    #apres-audit-pentest .gov-scheme--chain .gov-scheme__node,
    #after-audit-pentest .gov-scheme--chain .gov-scheme__node,
    #cocon-cyber .gov-scheme--chain .gov-scheme__node,
    #cyber-cluster .gov-scheme--chain .gov-scheme__node {
        flex-direction: column;
    }
    #apres-audit-rgpd .gov-scheme--chain .gov-scheme__node strong,
    #after-gdpr-audit .gov-scheme--chain .gov-scheme__node strong,
    #apres-audit-pentest .gov-scheme--chain .gov-scheme__node strong,
    #after-audit-pentest .gov-scheme--chain .gov-scheme__node strong,
    #cocon-cyber .gov-scheme--chain .gov-scheme__node strong,
    #cyber-cluster .gov-scheme--chain .gov-scheme__node strong {
        width: 100%;
        font-size: 15px;
        padding: 12px 16px;
    }
    #apres-audit-rgpd .gov-scheme--chain .gov-scheme__arrow,
    #after-gdpr-audit .gov-scheme--chain .gov-scheme__arrow,
    #apres-audit-pentest .gov-scheme--chain .gov-scheme__arrow,
    #after-audit-pentest .gov-scheme--chain .gov-scheme__arrow,
    #cocon-cyber .gov-scheme--chain .gov-scheme__arrow,
    #cyber-cluster .gov-scheme--chain .gov-scheme__arrow {
        padding: 8px 0 10px;
    }
    #apres-audit-rgpd .gov-scheme--chain .gov-scheme__arrow::before,
    #after-gdpr-audit .gov-scheme--chain .gov-scheme__arrow::before,
    #apres-audit-pentest .gov-scheme--chain .gov-scheme__arrow::before,
    #after-audit-pentest .gov-scheme--chain .gov-scheme__arrow::before,
    #cocon-cyber .gov-scheme--chain .gov-scheme__arrow::before,
    #cyber-cluster .gov-scheme--chain .gov-scheme__arrow::before {
        content: "↓";
        font-size: 16px;
    }
}
.gov-scheme--chain .gov-scheme__arrow {
    flex: 0 0 auto;
    padding: 0 5px;
}
.gov-scheme--chain .gov-scheme__arrow::before {
    content: "→";
    font-size: 15px;
}
.gov-scheme--chain .gov-scheme__node:nth-last-child(-n+2) strong {
    border-color: rgba(191, 155, 121, 0.5);
    background: linear-gradient(165deg, #ffffff 0%, var(--pole-0-bg, #f8f4ef) 100%);
}
.gov-scheme--journey.gov-scheme--chain .gov-scheme__node:nth-last-child(-n+2) strong {
    border-color: rgba(40, 153, 81, 0.28);
    background: #fff;
}
#definition-politique-rse .gov-scheme--chain .gov-scheme__node:nth-last-child(-n+2) strong,
#csr-policy-definition .gov-scheme--chain .gov-scheme__node:nth-last-child(-n+2) strong {
    border-color: rgba(40, 153, 81, 0.28);
    background: #fff;
}
#definition-politique-rse .gov-scheme--chain .gov-scheme__node strong,
#csr-policy-definition .gov-scheme--chain .gov-scheme__node strong {
    overflow-wrap: anywhere;
}
.gov-scheme--journey {
    margin-bottom: 36px;
}
.gov-scheme--journey a {
    flex: 1 1 auto;
    min-width: 0;
    text-decoration: none;
    color: inherit;
}
.gov-scheme--journey a strong {
    transition: border-color var(--transition), box-shadow var(--transition);
}
.gov-scheme--journey a:hover strong {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}
.gov-scheme--journey .is-current strong {
    border-color: var(--pole-0, #289951);
    background: var(--pole-0-bg, #f0faf4);
    box-shadow: 0 0 0 1px rgba(40, 153, 81, 0.18);
}
.gov-scheme__verb {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-secondary);
    font-family: var(--font-subtitle);
}
.gov-scheme--desc .gov-scheme__verb {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
    line-height: 1.35;
    overflow-wrap: break-word;
}
.gov-scheme--desc.gov-scheme--chain .gov-scheme__node strong {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 100%;
    text-align: center;
}
@media (max-width: 1280px) {
    .gov-scheme--desc.gov-scheme--chain,
    #cocon-cyber .gov-scheme--desc.gov-scheme--chain,
    #cyber-cluster .gov-scheme--desc.gov-scheme--chain {
        flex-direction: column;
        max-width: 400px;
        padding: 20px 16px 16px;
    }
    .gov-scheme--desc.gov-scheme--chain .gov-scheme__node,
    #cocon-cyber .gov-scheme--desc.gov-scheme--chain .gov-scheme__node,
    #cyber-cluster .gov-scheme--desc.gov-scheme--chain .gov-scheme__node {
        flex-direction: column;
    }
    .gov-scheme--desc.gov-scheme--chain .gov-scheme__node strong,
    #cocon-cyber .gov-scheme--desc.gov-scheme--chain .gov-scheme__node strong,
    #cyber-cluster .gov-scheme--desc.gov-scheme--chain .gov-scheme__node strong {
        width: 100%;
        font-size: 15px;
        padding: 12px 16px;
    }
    .gov-scheme--desc.gov-scheme--chain .gov-scheme__arrow,
    #cocon-cyber .gov-scheme--desc.gov-scheme--chain .gov-scheme__arrow,
    #cyber-cluster .gov-scheme--desc.gov-scheme--chain .gov-scheme__arrow {
        padding: 8px 0 10px;
    }
    .gov-scheme--desc.gov-scheme--chain .gov-scheme__arrow::before,
    #cocon-cyber .gov-scheme--desc.gov-scheme--chain .gov-scheme__arrow::before,
    #cyber-cluster .gov-scheme--desc.gov-scheme--chain .gov-scheme__arrow::before {
        content: "↓";
        font-size: 16px;
    }
}
.gov-tool .sp-related__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 960px;
    margin: 36px auto 0;
}
@media (max-width: 900px) {
    .gov-scheme--chain {
        flex-direction: column;
        max-width: 300px;
        padding: 20px 16px 16px;
    }
    .gov-scheme--chain .gov-scheme__node {
        flex-direction: column;
    }
    .gov-scheme--chain .gov-scheme__node strong {
        width: 100%;
        font-size: 15px;
        padding: 12px 16px;
    }
    .gov-scheme--chain .gov-scheme__arrow {
        padding: 8px 0 10px;
    }
    .gov-scheme--chain .gov-scheme__arrow::before {
        content: "↓";
        font-size: 16px;
    }
    .gov-tool .sp-related__grid {
        grid-template-columns: 1fr;
    }
}

.gov-change {
    margin-top: 48px;
    padding-top: 48px;
    border-top: 1.5px solid var(--color-border);
}
.gov-change .sp-section-header {
    margin-bottom: 28px;
}

/* ── Missions DPO (catégories opérationnelles) ── */
.dpo-missions__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 24px;
}
.dpo-missions__grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dpo-missions__grid--4 .dpo-missions__cat h3 {
    font-size: 16px;
    padding-top: 4px;
}

.dpo-missions__cat {
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 24px 22px;
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.dpo-missions__cat:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.dpo-missions__cat-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
}

.dpo-missions__cat-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(40, 153, 81, 0.1);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.dpo-missions__cat h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    padding-top: 8px;
}

.dpo-missions__cat ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.dpo-missions__cat li {
    position: relative;
    padding: 8px 0 8px 18px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.dpo-missions__cat li:first-child {
    border-top: 0;
    padding-top: 0;
}

.dpo-missions__cat li:last-child {
    padding-bottom: 0;
}

.dpo-missions__cat li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.95em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-primary);
}

.dpo-missions__cat li:first-child::before {
    top: 0.55em;
}

.dpo-missions__highlight {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 22px 24px;
    border-radius: var(--radius-md);
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    background: linear-gradient(135deg, rgba(40, 153, 81, 0.08) 0%, #fff 55%);
}

.dpo-missions__highlight-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dpo-missions__highlight-badge {
    display: inline-block;
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.dpo-missions__highlight h3 {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 800;
    color: var(--color-dark);
}

.dpo-missions__highlight p:last-child {
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}

.dpo-missions__outro {
    max-width: 720px;
    margin: 28px auto 24px;
    text-align: left;
}

.dpo-missions .sp-audit-includes__footer {
    margin-top: 28px;
}

@media (max-width: 1100px) {
    .dpo-missions__grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .dpo-missions__grid {
        grid-template-columns: 1fr;
    }
    .dpo-missions__grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .dpo-missions__grid--4 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .dpo-missions__highlight {
        flex-direction: column;
        gap: 14px;
    }
}

.iso9001-version {
    margin-top: 40px;
    text-align: left;
}
.iso9001-version h2 {
    margin: 0 0 12px;
    font-size: clamp(20px, 2.6vw, 26px);
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.iso9001-version__text p {
    margin: 0 0 12px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
.iso9001-version__text p:last-child {
    margin-bottom: 0;
}

/* ── Onboarding DPO — 30 premiers jours ── */
.dpo-onboarding {
    padding: 80px 0;
    background: var(--color-light-gray, #f6f7f9);
}

.dpo-onboarding__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.dpo-onboarding__grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dpo-onboarding__grid--5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.dpo-onboarding__week {
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 22px 20px;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.dpo-onboarding__week:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.dpo-onboarding__week-num {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.dpo-onboarding__week h3 {
    margin: 0 0 14px;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}

.dpo-onboarding__grid--5 .dpo-onboarding__week h3 {
    font-size: 16px;
    margin-bottom: 10px;
}

.dpo-onboarding__week > p:not(.dpo-onboarding__week-num) {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}

.dpo-onboarding__week ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.dpo-onboarding__week li {
    position: relative;
    padding: 7px 0 7px 16px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.dpo-onboarding__week li:first-child {
    border-top: 0;
    padding-top: 0;
}

.dpo-onboarding__week li:last-child {
    padding-bottom: 0;
}

.dpo-onboarding__week li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.9em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--color-primary);
}

.dpo-onboarding__week li:first-child::before {
    top: 0.5em;
}

.dpo-onboarding__close {
    max-width: 760px;
    margin: 28px auto 0;
    text-align: center;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.dpo-onboarding__note {
    display: block;
    overflow: hidden;
    margin: 24px 0 0;
    padding: 14px 18px;
    border-radius: var(--radius-md);
    background: rgba(40, 153, 81, 0.06);
    border: 1px solid rgba(40, 153, 81, 0.15);
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}

.dpo-onboarding__note svg {
    float: left;
    margin: 2px 10px 0 0;
    color: var(--color-primary);
}

@media (max-width: 1100px) {
    .dpo-onboarding__grid,
    .dpo-onboarding__grid--5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .dpo-onboarding__grid--3 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .dpo-onboarding__grid,
    .dpo-onboarding__grid--3,
    .dpo-onboarding__grid--5 {
        grid-template-columns: 1fr;
    }
}

/* ── Confiance — DPO désigné ── */
.dpo-trust {
    padding: 80px 0;
    background: var(--color-white);
}

.dpo-trust__layout {
    display: grid;
    grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.4fr);
    gap: 24px;
    align-items: start;
}

.dpo-trust__card {
    background: linear-gradient(165deg, rgba(40, 153, 81, 0.08) 0%, #fff 50%);
    border: 1.5px solid rgba(40, 153, 81, 0.22);
    border-radius: var(--radius-md);
    padding: 28px 24px;
    text-align: center;
}

.dpo-trust__avatar {
    width: 72px;
    height: 72px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: rgba(40, 153, 81, 0.12);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.dpo-trust__role {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.dpo-trust__card h3 {
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
}

.dpo-trust__lead {
    margin: 0 0 20px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
    text-align: left;
}

.dpo-trust__checks {
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 24px 22px;
    background: var(--color-white);
}

.dpo-trust__checks-title {
    margin: 0 0 16px;
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}

.dpo-trust__checks ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
    gap: 0;
    row-gap: 0;
}

.dpo-trust__checks li {
    display: grid;
    gap: 2px;
    padding: 12px 0 12px 18px;
    position: relative;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.dpo-trust__checks li:nth-child(-n+2) {
    border-top: 0;
    padding-top: 0;
}

.dpo-trust__checks li:last-child {
    padding-bottom: 0;
}

.dpo-trust__checks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.15em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-primary);
}

.dpo-trust__checks li:nth-child(-n+2)::before {
    top: 0.45em;
}

.dpo-trust__checks strong {
    font-size: 15px;
    color: var(--color-dark);
}

.dpo-trust__checks span {
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}

@media (max-width: 900px) {
    .dpo-trust__layout {
        grid-template-columns: 1fr;
    }
    .dpo-trust__checks ul {
        grid-template-columns: 1fr;
    }
    .dpo-trust__checks li:nth-child(-n+2) {
        border-top: 1px solid rgba(0, 0, 0, 0.06);
        padding-top: 12px;
    }
    .dpo-trust__checks li:nth-child(-n+2)::before {
        top: 1.15em;
    }
    .dpo-trust__checks li:first-child {
        border-top: 0;
        padding-top: 0;
    }
    .dpo-trust__checks li:first-child::before {
        top: 0.45em;
    }
}

/* ── Matrice comparative formules DPO ── */
.dpo-matrix {
    margin-top: 48px;
}

.dpo-matrix__title {
    margin: 0 0 16px;
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    text-align: center;
}

.dpo-matrix__wrap {
    margin-top: 0;
}

.dpo-matrix__table {
    min-width: 720px;
}

.dpo-matrix__table th,
.dpo-matrix__table td {
    width: auto;
}

.dpo-matrix__table thead th:first-child,
.dpo-matrix__table tbody th {
    width: 28%;
    border-right: 1px solid var(--color-border);
    color: var(--color-dark);
    font-weight: 700;
    text-align: left;
    background: rgba(255, 255, 255, 0.7);
}

.dpo-matrix__table thead th:not(:first-child),
.dpo-matrix__table tbody td {
    width: 24%;
    text-align: center;
    font-weight: 500;
}

.dpo-matrix__table tbody th {
    font-size: 14px;
    padding: 14px 18px;
    border-top: 1px solid var(--color-border);
    vertical-align: middle;
}

.dpo-matrix__footnote {
    margin: 12px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-gray);
    text-align: center;
}

.org-raci .sp-compare-table-wrap {
    margin-top: 8px;
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}
.org-raci__caption {
    margin: 0 auto 10px;
    max-width: 860px;
    font-size: 13px;
    font-weight: 650;
    color: var(--color-gray);
    text-align: center;
}
.org-raci__table {
    min-width: 640px;
}
.org-raci__table th,
.org-raci__table td {
    width: auto;
    vertical-align: middle;
}
.org-raci__table thead th:first-child,
.org-raci__table tbody th {
    width: 28%;
    text-align: left;
    font-weight: 700;
    color: var(--color-dark);
    border-right: 1px solid var(--color-border);
    background: rgba(255, 255, 255, 0.7);
}
.org-raci__table thead th:not(:first-child),
.org-raci__table tbody td {
    width: 18%;
    text-align: center;
    border-right: 1px solid var(--color-border);
}
.org-raci__table thead th:last-child,
.org-raci__table tbody td:last-child {
    border-right: 0;
}
.org-raci__table tbody th {
    font-size: 14px;
    padding: 14px 18px;
    border-top: 1px solid var(--color-border);
}
.org-raci__cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .02em;
}
.org-raci__cell--r { background: var(--pole-1-bg); color: var(--pole-1); }
.org-raci__cell--a { background: var(--pole-0-bg); color: var(--pole-0); }
.org-raci__cell--c { background: var(--pole-2-bg); color: #8a6a48; }
.org-raci__cell--i { background: var(--color-light-gray); color: #64748b; }
.org-raci__legend {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    max-width: 860px;
    margin: 24px auto 0;
}
.org-raci__legend-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
}
.org-raci__legend-item p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--color-gray);
}
.org-raci__legend-item strong {
    display: block;
    color: var(--color-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 2px;
}
.org-raci .sp-def-prose {
    margin-top: 28px;
    text-align: center;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 700px) {
    .org-raci__legend {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 480px) {
    .org-raci__legend {
        grid-template-columns: 1fr;
    }
}

/* ── Audit organisationnel — cartographie des processus ── */
.org-proc {
    background: var(--pole-0-bg);
}
.org-proc__flow {
    list-style: none;
    margin: 8px auto 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px 18px;
    align-items: stretch;
}
.org-proc__step {
    position: relative;
    margin: 0;
    padding: 16px 12px 14px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    min-width: 0;
}
.org-proc__step h3 {
    margin: 0 0 12px;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    text-align: center;
}
.org-proc__lenses {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.org-proc__lenses li {
    margin: 0;
    padding: 5px 8px;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.3;
    color: var(--color-primary-dark);
    background: var(--pole-0-bg);
    border-radius: 8px;
    text-align: center;
}
.org-proc__step:not(:last-child)::after {
    content: "→";
    position: absolute;
    top: 18px;
    right: -16px;
    z-index: 1;
    color: var(--pole-0);
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
}
@media (max-width: 1100px) {
    .org-proc__flow {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px 18px;
    }
    .org-proc__step:nth-child(3n)::after,
    .org-proc__step:last-child::after {
        content: none;
    }
}
@media (max-width: 700px) {
    .org-proc__flow {
        grid-template-columns: 1fr;
        max-width: 320px;
        gap: 0;
    }
    .org-proc__step {
        margin-bottom: 28px;
        padding: 16px 18px 14px;
    }
    .org-proc__step:last-child {
        margin-bottom: 0;
    }
    .org-proc__step:not(:last-child)::after {
        content: "↓";
        top: auto;
        right: auto;
        left: 50%;
        bottom: -22px;
        transform: translateX(-50%);
        font-size: 16px;
    }
    .org-proc__step h3 {
        font-size: 15px;
    }
}
.org-proc .sp-def-prose {
    margin-top: 32px;
    text-align: center;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* ── Audit organisationnel — symptômes vs causes ── */
.org-sc__list {
    list-style: none;
    margin: 8px auto 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 880px;
}
.org-sc__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1.35fr);
    align-items: center;
    gap: 8px 12px;
    margin: 0;
    padding: 18px 22px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
}
.org-sc__label {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.3;
}
.org-sc__col--symptom .org-sc__label {
    color: #64748b;
}
.org-sc__col--cause .org-sc__label {
    color: var(--pole-0);
}
.org-sc__col--symptom h3 {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    color: var(--color-dark);
}
.org-sc__col--cause p {
    margin: 0;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.45;
    color: var(--color-primary-dark);
}
.org-sc__arrow {
    color: var(--pole-0);
    font-size: 16px;
    font-weight: 800;
    text-align: center;
    line-height: 1;
}
.org-sc .sp-def-prose {
    margin-top: 32px;
    text-align: center;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 700px) {
    .org-sc__row {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        padding: 18px 18px 16px;
        gap: 6px;
    }
    .org-sc__arrow {
        transform: rotate(90deg);
        margin: 4px 0;
    }
}

/* ── Audit organisationnel — livrables ── */
.org-livrables {
    background: var(--pole-0-bg);
}
.org-livrables .sp-audit-item--deliverable {
    background: var(--color-white);
    border-color: var(--color-border);
}
.org-livrables .sp-audit-item--deliverable:hover {
    border-color: var(--pole-0);
}
.org-livrables .sp-audit-item--deliverable .sp-audit-item__icon {
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.org-livrables .sp-audit-item--deliverable .sp-audit-item__body p {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.4;
    margin: 0;
}
.org-livrables__plus {
    margin-top: 44px;
}
.org-livrables__plus-title {
    margin: 0 0 20px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.35;
    color: var(--color-dark);
}
.org-livrables__plus .sp-audit-item--deliverable {
    border-color: rgba(89, 122, 175, 0.4);
    background: linear-gradient(180deg, #f4f7fb 0%, #ffffff 100%);
}
.org-livrables > .container > .sp-audit-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
}
.org-livrables > .container > .sp-audit-grid > .sp-audit-item {
    flex: 0 1 calc((100% - 32px) / 3);
    max-width: calc((100% - 32px) / 3);
    width: 100%;
    box-sizing: border-box;
    height: auto;
}
@media (max-width: 900px) {
    .org-livrables > .container > .sp-audit-grid > .sp-audit-item {
        flex: 0 1 calc((100% - 16px) / 2);
        max-width: calc((100% - 16px) / 2);
    }
}
@media (max-width: 640px) {
    .org-livrables > .container > .sp-audit-grid > .sp-audit-item {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

/* ── Audit organisationnel — matrice impact / effort ── */
.org-ie__matrix {
    max-width: 720px;
    margin: 8px auto 0;
}
.org-ie__table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 10px;
}
.org-ie__table thead th {
    padding: 0 8px 2px;
    border: 0;
    background: none;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-gray);
    line-height: 1.3;
}
.org-ie__table thead th:first-child {
    width: 118px;
    padding: 0;
}
.org-ie__table tbody th {
    width: 118px;
    padding: 0 10px 0 0;
    border: 0;
    background: none;
    text-align: right;
    vertical-align: middle;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-gray);
    line-height: 1.3;
}
.org-ie__cell {
    padding: 28px 14px;
    border-radius: var(--radius-md);
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    line-height: 1.35;
    vertical-align: middle;
}
.org-ie__cell--qw {
    background: var(--pole-1-bg);
    color: var(--pole-1);
    border: 1.5px solid rgba(40, 153, 81, 0.35);
}
.org-ie__cell--prio {
    background: var(--pole-0-bg);
    color: var(--pole-0);
    border: 1.5px solid rgba(89, 122, 175, 0.45);
}
.org-ie__cell--imp {
    background: var(--pole-3-bg);
    color: #5a6d8a;
    border: 1.5px solid var(--color-border);
}
.org-ie__cell--later {
    background: var(--color-light-gray);
    color: #64748b;
    border: 1.5px solid var(--color-border);
}
.org-ie__examples {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    max-width: 720px;
    margin: 32px auto 0;
}
.org-ie__ex {
    margin: 0;
    padding: 22px 24px 20px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
}
.org-ie__ex--qw { border-top: 3px solid var(--pole-1); }
.org-ie__ex--prio { border-top: 3px solid var(--pole-0); }
.org-ie__ex h3 {
    margin: 0 0 12px;
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}
.org-ie__ex ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.org-ie__ex li {
    position: relative;
    padding: 5px 0 5px 16px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}
.org-ie__ex li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-border);
}
.org-ie__ex--qw li::before { background: var(--pole-1); }
.org-ie__ex--prio li::before { background: var(--pole-0); }
.org-ie__ex a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.org-ie__ex a:hover { color: var(--color-primary-dark); }
@media (max-width: 640px) {
    .org-ie__table {
        border-spacing: 8px;
    }
    .org-ie__table thead th:first-child,
    .org-ie__table tbody th {
        width: 72px;
        font-size: 11px;
        padding-right: 6px;
        text-align: left;
    }
    .org-ie__cell {
        padding: 18px 8px;
        font-size: 11px;
        letter-spacing: .04em;
    }
    .org-ie__examples {
        grid-template-columns: 1fr;
        margin-top: 24px;
    }
}

/* ── Audit organisationnel — du diagnostic à la transformation ── */
.org-tx {
    background: var(--pole-0-bg);
}
.org-tx__grid {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}
.org-tx__card {
    position: relative;
    margin: 0;
    padding: 28px 24px 24px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
}
.org-tx__card:not(:last-child)::after {
    content: "→";
    position: absolute;
    top: 36px;
    right: -16px;
    z-index: 1;
    color: var(--pole-0);
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
}
.org-tx__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 16px;
    border-radius: 10px;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
}
.org-tx__card h3 {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.org-tx__card p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-gray);
    flex: 1;
}
.org-tx__incl {
    margin: 16px 0 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--pole-0);
}
.org-tx__card--featured {
    border-color: var(--pole-0);
    box-shadow: 0 8px 32px rgba(89, 122, 175, .2);
    padding-top: 36px;
}
.org-tx__card--featured .org-tx__num {
    background: var(--pole-0);
    color: var(--color-white);
}
.org-tx__badge {
    position: absolute;
    top: -11px;
    left: 50%;
    transform: translateX(-50%);
    padding: 4px 14px;
    border-radius: 20px;
    background: var(--pole-0);
    color: var(--color-white);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.org-tx__link {
    display: inline-block;
    margin-top: 16px;
    font-size: 14px;
    font-weight: 700;
    color: var(--pole-0);
    text-decoration: none;
}
.org-tx__link:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}
@media (max-width: 900px) {
    .org-tx__grid {
        grid-template-columns: 1fr;
        max-width: 420px;
        margin-left: auto;
        margin-right: auto;
        gap: 0;
    }
    .org-tx__card {
        margin-bottom: 28px;
    }
    .org-tx__card:last-child {
        margin-bottom: 0;
    }
    .org-tx__card:not(:last-child)::after {
        content: "↓";
        top: auto;
        right: auto;
        left: 50%;
        bottom: -22px;
        transform: translateX(-50%);
    }
}

.org-bridge {
    padding: 72px 0;
    background: var(--color-bg);
}
.org-bridge__box {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    padding: 40px 36px 36px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
}
.org-bridge__box p {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-gray);
}
.org-bridge__box a:not(.btn) {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.org-bridge h2 {
    margin: 0 0 14px;
    font-family: var(--font-subtitle);
    font-size: 26px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.org-bridge p {
    margin: 0 0 24px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-gray);
}
.org-bridge .btn {
    display: inline-flex;
}

/* ── Audit organisationnel vs audit de processus ── */
.org-vs {
    background: var(--pole-0-bg);
}
.org-vs .sp-compare-table-wrap {
    max-width: 680px;
    margin: 0 auto;
}
.org-vs__table {
    min-width: 0;
    width: 100%;
}
.org-vs__table thead th,
.org-vs__table tbody td {
    width: 50%;
    text-align: center;
    vertical-align: middle;
    border-right: 1px solid var(--color-border);
}
.org-vs__table thead th:last-child,
.org-vs__table tbody td:last-child {
    border-right: 0;
}
.org-vs__table thead th:first-child {
    width: 50%;
    background: var(--pole-0);
    color: var(--color-white);
    font-weight: 800;
    text-align: center;
}
.org-vs__table thead th:last-child {
    background: #e4eaf3;
    color: #4b5563;
    font-weight: 800;
}
.org-vs__table tbody td {
    font-size: 15px;
    font-weight: 650;
    line-height: 1.4;
    padding: 14px 16px;
    color: var(--color-gray);
}
.org-vs__table tbody td:first-child {
    color: var(--color-primary-dark);
    font-weight: 700;
    background: rgba(255, 255, 255, 0.72);
}
.org-vs .sp-def-prose {
    margin-top: 28px;
    text-align: center;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}
#tarifs .sp-plan--featured,
#pricing .sp-plan--featured {
    transform-origin: center center;
}

/* ── Audit organisationnel — facteurs de prix ── */
.org-price {
    background: var(--pole-0-bg);
}
.org-price__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    max-width: 880px;
    margin: 8px auto 0;
}
.org-price__item {
    margin: 0;
    padding: 18px 20px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
}
.org-price__item h3 {
    margin: 0 0 6px;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.org-price__item p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}
.org-price__item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}
.org-price__grid--5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    max-width: none;
    gap: 12px;
}
.org-price__grid--5 .org-price__item {
    position: relative;
    min-width: 0;
    padding: 16px 14px;
}
.org-price__grid--5 .org-price__item:last-child:nth-child(odd) {
    grid-column: auto;
}
.org-price__grid--5 .org-price__item h3 {
    font-size: 14px;
    overflow-wrap: anywhere;
}
#facteurs-prix-audit-rgpd .org-price__grid,
#gdpr-audit-price-factors .org-price__grid,
#quand-refaire-audit-rgpd .org-price__grid,
#when-to-repeat-gdpr-audit .org-price__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 960px;
}
#facteurs-prix-audit-rgpd .org-price__item h3,
#gdpr-audit-price-factors .org-price__item h3,
#quand-refaire-audit-rgpd .org-price__item h3,
#when-to-repeat-gdpr-audit .org-price__item h3 {
    margin: 0;
}
#quand-refaire-audit-rgpd .org-price__item:last-child,
#when-to-repeat-gdpr-audit .org-price__item:last-child {
    grid-column: auto;
}
@media (max-width: 900px) {
    #facteurs-prix-audit-rgpd .org-price__grid,
    #gdpr-audit-price-factors .org-price__grid,
    #quand-refaire-audit-rgpd .org-price__grid,
    #when-to-repeat-gdpr-audit .org-price__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    #facteurs-prix-audit-rgpd .org-price__grid,
    #gdpr-audit-price-factors .org-price__grid,
    #quand-refaire-audit-rgpd .org-price__grid,
    #when-to-repeat-gdpr-audit .org-price__grid {
        grid-template-columns: 1fr;
    }
}
@media (hover: hover) and (pointer: fine) and (min-width: 1101px) {
    .org-price__grid--5 .org-price__item {
        cursor: default;
    }
    .org-price__grid--5 .org-price__item p {
        position: absolute;
        left: 8px;
        right: 8px;
        top: calc(100% - 6px);
        z-index: 3;
        margin: 0;
        padding: 10px 12px;
        background: var(--color-white);
        border: 1.5px solid var(--color-border);
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-md);
        font-size: 13px;
        line-height: 1.45;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(4px);
        transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
    }
    .org-price__grid--5 .org-price__item:hover,
    .org-price__grid--5 .org-price__item:focus-within {
        z-index: 4;
        border-color: var(--color-primary);
    }
    .org-price__grid--5 .org-price__item:hover p,
    .org-price__grid--5 .org-price__item:focus-within p {
        opacity: 1;
        visibility: visible;
        transform: none;
    }
}
@media (max-width: 1100px) {
    .org-price__grid--5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 880px;
    }
    .org-price__grid--5 .org-price__item {
        padding: 18px 20px;
    }
    .org-price__grid--5 .org-price__item h3 {
        font-size: 15px;
    }
}
.org-related .sp-related__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
#definition-audit .sp-def-prose a,
.org-vs .sp-def-prose a,
.org-tx .sp-section-sub a,
.org-tx__card p a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
#definition-audit .sp-def-prose a:hover,
.org-vs .sp-def-prose a:hover,
.org-tx .sp-section-sub a:hover,
.org-tx__card p a:hover {
    color: var(--color-primary-dark);
}
.org-related .sp-related__highlight {
    margin: 28px auto 0;
}
@media (max-width: 900px) {
    .org-related .sp-related__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .org-price__grid,
    .org-related .sp-related__grid {
        grid-template-columns: 1fr;
    }
}

/* ── Périmètre exclu ── */
.dpo-exclusions {
    padding: 80px 0;
    background: var(--color-light-gray, #f6f7f9);
}

.dpo-exclusions .sp-audit-grid {
    margin-bottom: 20px;
}

.dpo-exclusions__list {
    max-width: 820px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 12px;
}

.dpo-exclusions__list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
}

.dpo-exclusions__mark {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(185, 28, 28, 0.08);
    color: #b91c1c;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.dpo-exclusions__list p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-gray);
}

.sp-audit-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 22px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    height: 100%;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.sp-audit-item:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.sp-audit-item__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(40,153,81,.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-secondary);
}

#quand-structurer .sp-audit-item__icon,
#when-to-structure .sp-audit-item__icon,
#methode-audit .sp-audit-item__icon,
#audit-method .sp-audit-item__icon {
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .02em;
}

.sp-audit-item__body {
    flex: 1;
    min-width: 0;
}

.sp-audit-item h3 {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 6px;
    line-height: 1.3;
}
#financement .sp-audit-item h3,
#funding .sp-audit-item h3,
#avant-statut .sp-audit-item h3,
#before-status .sp-audit-item h3 {
    font-size: 16px;
}

.sp-audit-item p {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.55;
    margin: 0;
}
.sp-audit-item p + p {
    margin-top: 8px;
}
#points-audit-rgpd .sp-audit-item h3,
#gdpr-audit-checkpoints .sp-audit-item h3 {
    font-size: 16px;
}
.sp-audit-item a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-audit-item a:hover {
    color: var(--color-primary-dark);
}

.sp-audit-group {
    margin-top: 8px;
}

.sp-audit-group + .sp-audit-group {
    margin-top: 36px;
}

.sp-audit-group__label {
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-gray);
    margin: 0 0 14px;
}

.sp-audit-item--deliverable {
    background: linear-gradient(180deg, #f7faf8 0%, #ffffff 100%);
    border-color: rgba(40, 153, 81, 0.35);
}

.sp-audit-item--deliverable .sp-audit-item__icon {
    background: rgba(40, 153, 81, 0.16);
    color: var(--color-primary);
}

@media (max-width: 640px) {
    .sp-audit-grid { grid-template-columns: 1fr; }
    .sp-audit-grid--3 { grid-template-columns: 1fr; }
    .sp-social-proof .container { align-items: center; }
    .sp-deliverables-card { display: none; }
    .sp-hero--green .sp-deliverables-card,
    .sp-hero--beige .sp-deliverables-card,
    .sp-hero--soft .sp-deliverables-card,
    .sp-hero--ia .sp-deliverables-card { display: flex; }
}

@media (max-width: 900px) {
    #delivrables .sp-audit-grid--3,
    #livrables .sp-audit-grid--3,
    #deliverables .sp-audit-grid--3,
    #surface-attaque .sp-audit-grid--3,
    #attack-surface .sp-audit-grid--3,
    #proteger-entreprise .sp-audit-grid--3,
    #protect-business .sp-audit-grid--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .org-vs__table thead th,
    .org-vs__table tbody td {
        padding: 12px 12px;
        font-size: 14px;
    }
}
@media (max-width: 640px) {
    #delivrables .sp-audit-grid--3,
    #livrables .sp-audit-grid--3,
    #deliverables .sp-audit-grid--3,
    #surface-attaque .sp-audit-grid--3,
    #attack-surface .sp-audit-grid--3,
    #proteger-entreprise .sp-audit-grid--3,
    #protect-business .sp-audit-grid--3 {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 480px) {
    #delivrables .sp-audit-grid--3,
    #livrables .sp-audit-grid--3,
    #deliverables .sp-audit-grid--3,
    #surface-attaque .sp-audit-grid--3,
    #attack-surface .sp-audit-grid--3,
    #proteger-entreprise .sp-audit-grid--3,
    #protect-business .sp-audit-grid--3 {
        grid-template-columns: 1fr;
    }
    .org-vs__table thead th,
    .org-vs__table tbody td {
        padding: 10px 8px;
        font-size: 13px;
        line-height: 1.35;
    }
}

#couverture-audit .sp-reason-card,
#audit-coverage .sp-reason-card,
#feuille-de-route .sp-reason-card,
#roadmap .sp-reason-card,
#classification-vulnerabilites .sp-reason-card,
#vulnerability-classification .sp-reason-card {
    min-width: 0;
}
#pour-qui .sp-reason-card h3,
#who-needs-an-audit .sp-reason-card h3,
.sp-related-card strong,
.sp-related-card p {
    overflow-wrap: anywhere;
}

/* ── Simulateur dashboard commercial (tableau-de-bord) ── */
.tdb-demo {
    padding: 56px 0 48px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 55%);
}
.tdb-demo > .container {
    max-width: min(1520px, calc(100vw - 20px));
    padding-left: max(10px, env(safe-area-inset-left, 0px));
    padding-right: max(10px, env(safe-area-inset-right, 0px));
}
.tdb-demo__intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 24px;
}
.tdb-demo__disclaimer {
    margin: 10px 0 0;
    font-size: 13px;
    color: #64748b;
    font-style: italic;
}
.tdb-demo__shell {
    background: #fbfdff;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 24px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
    padding: clamp(12px, 1.6vw, 18px);
    overflow: hidden;
}
.tdb-demo__layout {
    display: grid;
    grid-template-columns: minmax(250px, 0.32fr) minmax(0, 0.68fr);
    gap: 14px;
    align-items: start;
}
.tdb-demo__config {
    position: sticky;
    top: 80px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: 16px 14px 14px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
    max-height: calc(100vh - 96px);
    overflow: auto;
}
.tdb-demo__config-title {
    margin: 0 0 12px;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-dark);
}
.tdb-demo__block {
    border: 0;
    margin: 0 0 12px;
    padding: 0;
    min-width: 0;
}
.tdb-demo__legend {
    padding: 0;
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #475569;
    font-family: var(--font-subtitle);
}
.tdb-demo__options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.tdb-demo__options--stack {
    flex-direction: column;
}
.tdb-demo__opt {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: auto;
    min-height: 36px;
    padding: 7px 11px;
    border-radius: 10px;
    border: 1.5px solid #d0d8e4;
    background: #fff;
    color: #1e293b;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
}
.tdb-demo__options--stack .tdb-demo__opt {
    width: 100%;
}
.tdb-demo__opt:hover {
    border-color: #597AAF;
    background: #f5f8fc;
}
.tdb-demo__opt:focus-visible {
    outline: 2px solid #597AAF;
    outline-offset: 2px;
}
.tdb-demo__opt.is-selected {
    background: rgba(40, 153, 81, 0.1);
    border-color: #289951;
    color: #14532d;
    box-shadow: inset 0 0 0 1px rgba(40, 153, 81, 0.15);
}
.tdb-demo__opt.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.tdb-demo__check {
    display: none;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #289951;
    color: #fff;
    align-items: center;
    justify-content: center;
}
.tdb-demo__opt.is-selected .tdb-demo__check {
    display: inline-flex;
}
.tdb-demo__kpi-limit {
    margin: 8px 0 0;
    font-size: 12px;
    color: #64748b;
}
.tdb-demo__reset {
    width: 100%;
    margin-top: 2px;
}
.tdb-demo__preview {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: 14px 14px 12px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
    min-width: 0;
}
.tdb-demo__preview-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.tdb-demo__preview-label {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #289951;
    font-family: var(--font-subtitle);
}
.tdb-demo__preview-title {
    margin: 0 0 4px;
    font-family: var(--font-title);
    font-size: clamp(1.05rem, 1.6vw, 1.25rem);
    font-weight: 800;
    color: var(--color-dark);
}
.tdb-demo__preview-context {
    margin: 0;
    font-size: 12.5px;
    color: #64748b;
}
.tdb-demo__obj-badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(89, 122, 175, 0.12);
    color: #3C6098;
    font-size: 11.5px;
    font-weight: 750;
    white-space: nowrap;
}
.tdb-demo__panels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.tdb-demo__panels--motion .tdb-demo__panel {
    animation: tdb-demo-fade .28s ease;
}
@keyframes tdb-demo-fade {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .tdb-demo__panels--motion .tdb-demo__panel,
    .tdb-demo__goal-fill,
    .tdb-demo__funnel-bar {
        animation: none !important;
        transition: none !important;
    }
}
.tdb-demo__panel {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fbfcfe;
    padding: 12px;
    min-width: 0;
}
.tdb-demo__panel--full {
    grid-column: 1 / -1;
}
.tdb-demo__panel-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}
.tdb-demo__panel-title {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 800;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}
.tdb-demo__panel-head .tdb-demo__panel-title { margin-bottom: 0; }
.tdb-demo__panel-meta {
    font-size: 11.5px;
    color: #64748b;
    font-weight: 650;
}
.tdb-demo__empty {
    margin: 0;
    padding: 14px;
    text-align: center;
    color: #64748b;
    font-size: 13px;
    grid-column: 1 / -1;
}
.tdb-demo__kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}
.tdb-demo__kpi-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 10px 10px 9px;
    min-width: 0;
}
.tdb-demo__kpi-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 6px;
}
.tdb-demo__kpi-ico {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(40, 153, 81, 0.12);
    color: #289951;
}
.tdb-demo__kpi-ico svg {
    width: 15px;
    height: 15px;
}
.tdb-demo__kpi-delta {
    font-size: 10.5px;
    font-weight: 750;
    color: #166534;
    background: rgba(40, 153, 81, 0.1);
    border-radius: 999px;
    padding: 2px 7px;
}
.tdb-demo__kpi-delta--down {
    color: #9a3412;
    background: rgba(234, 88, 12, 0.1);
}
.tdb-demo__kpi-label {
    margin: 0 0 2px;
    font-size: 11px;
    color: #64748b;
}
.tdb-demo__kpi-value {
    margin: 0 0 2px;
    font-size: 1.02rem;
    font-weight: 800;
    color: var(--color-dark);
    font-family: var(--font-title);
    letter-spacing: -0.02em;
}
.tdb-demo__kpi-hint {
    margin: 0;
    font-size: 10.5px;
    color: #94a3b8;
}
.tdb-demo__curve-wrap {
    position: relative;
}
.tdb-demo__curve {
    width: 100%;
    height: auto;
    max-height: 150px;
    display: block;
}
.tdb-demo__curve-axis {
    font-size: 10px;
    fill: #94a3b8;
}
.tdb-demo__curve-dot {
    fill: #fff;
    stroke: #289951;
    stroke-width: 2;
    cursor: pointer;
}
.tdb-demo__curve-dot:focus {
    outline: none;
}
.tdb-demo__tooltip {
    position: absolute;
    z-index: 2;
    pointer-events: none;
    background: #0f172a;
    color: #fff;
    font-size: 12px;
    font-weight: 650;
    padding: 6px 9px;
    border-radius: 8px;
    white-space: nowrap;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.2);
}
.tdb-demo__channels {
    display: grid;
    grid-template-columns: 112px 1fr;
    gap: 12px;
    align-items: center;
}
.tdb-demo__donut {
    width: 112px;
    height: 112px;
}
.tdb-demo__donut-center {
    font-size: 18px;
    font-weight: 800;
    fill: #0f172a;
}
.tdb-demo__donut-sub {
    font-size: 9px;
    fill: #64748b;
}
.tdb-demo__channel-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tdb-demo__channel-item {
    display: grid;
    grid-template-columns: 10px 1fr auto;
    gap: 8px;
    align-items: center;
    font-size: 12px;
}
.tdb-demo__channel-dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
}
.tdb-demo__channel-name { color: #334155; }
.tdb-demo__channel-pct { font-weight: 750; color: #0f172a; }
.tdb-demo__funnel {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tdb-demo__funnel-meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
    font-size: 12px;
}
.tdb-demo__funnel-label { font-weight: 700; color: #1e293b; }
.tdb-demo__funnel-value { font-weight: 800; color: #0f172a; }
.tdb-demo__funnel-bar-track {
    height: 8px;
    border-radius: 999px;
    background: #e8edf5;
    overflow: hidden;
}
.tdb-demo__funnel-bar {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #597AAF, #289951);
    transition: width .35s ease;
}
.tdb-demo__funnel-rate {
    margin: 4px 0 0;
    font-size: 11px;
    color: #64748b;
}
.tdb-demo__goal-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 12.5px;
    margin-bottom: 6px;
    color: #334155;
}
.tdb-demo__goal-track {
    height: 10px;
    border-radius: 999px;
    background: #e8edf5;
    overflow: hidden;
}
.tdb-demo__goal-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #72AA95, #289951);
    transition: width .35s ease;
}
.tdb-demo__goal-meta {
    margin: 6px 0 0;
    font-size: 12px;
    color: #64748b;
}
.tdb-demo__tips {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tdb-demo__tip {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 8px 10px;
    border-radius: 10px;
    background: rgba(191, 155, 121, 0.12);
    border: 1px solid rgba(191, 155, 121, 0.35);
    font-size: 12px;
    color: #44403c;
    line-height: 1.4;
}
.tdb-demo__tip-ico {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #BF9B79;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}
.tdb-demo__summary {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
}
.tdb-demo__summary-title {
    margin: 0 0 8px;
    font-size: 12.5px;
    font-weight: 800;
    color: var(--color-dark);
}
.tdb-demo__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.tdb-demo__tag {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 650;
    background: #f1f5f9;
    color: #334155;
    border: 1px solid #e2e8f0;
}
.tdb-demo__tag--priority { background: rgba(89, 122, 175, 0.12); color: #3C6098; border-color: rgba(89, 122, 175, 0.25); }
.tdb-demo__tag--source { background: rgba(40, 153, 81, 0.1); color: #166534; border-color: rgba(40, 153, 81, 0.22); }
.tdb-demo__tag--kpi { background: rgba(114, 170, 149, 0.14); color: #14532d; border-color: rgba(114, 170, 149, 0.28); }
.tdb-demo__tag--period { background: rgba(191, 155, 121, 0.14); color: #7c4a1e; border-color: rgba(191, 155, 121, 0.3); }
.tdb-demo__cta {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: linear-gradient(135deg, #f0f4fa 0%, #eef7f2 100%);
    border: 1px solid rgba(148, 163, 184, 0.35);
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}
.tdb-demo__cta-title {
    margin: 0 0 2px;
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
}
.tdb-demo__cta-text {
    margin: 0;
    font-size: 12.5px;
    color: #64748b;
    max-width: 48ch;
    line-height: 1.45;
}
.tdb-demo__cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
@media (max-width: 1200px) {
    .tdb-demo__kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 1100px) {
    .tdb-demo__layout {
        grid-template-columns: minmax(240px, 0.34fr) minmax(0, 0.66fr);
        gap: 12px;
    }
}
@media (max-width: 900px) {
    .tdb-demo > .container {
        max-width: 100%;
    }
    .tdb-demo__layout {
        grid-template-columns: 1fr;
    }
    .tdb-demo__config {
        position: static;
        max-height: none;
    }
    .tdb-demo__panels {
        grid-template-columns: 1fr;
    }
    .tdb-demo__channels {
        grid-template-columns: 1fr;
        justify-items: center;
    }
    .tdb-demo__channel-list {
        width: 100%;
    }
}
@media (max-width: 600px) {
    .tdb-demo {
        padding: 44px 0 36px;
    }
    .tdb-demo__shell {
        border-radius: 16px;
        padding: 10px;
    }
    .tdb-demo__preview,
    .tdb-demo__config {
        border-radius: 14px;
        padding: 14px 12px;
    }
    .tdb-demo__preview-head {
        flex-direction: column;
    }
    .tdb-demo__kpi-grid {
        grid-template-columns: 1fr;
    }
    .tdb-demo__options:not(.tdb-demo__options--stack) {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .tdb-demo__options:not(.tdb-demo__options--stack) .tdb-demo__opt {
        width: 100%;
    }
    .tdb-demo__cta {
        flex-direction: column;
        align-items: stretch;
    }
    .tdb-demo__cta-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ── Guide KPI commerciaux (tableau-de-bord) ── */
.tdb-kpi-guide {
    padding: 72px 0 64px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.tdb-kpi-guide .sp-section-header {
    margin-bottom: 36px;
}
.tdb-kpi-guide .sp-section-sub {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}
.tdb-kpi-guide__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.tdb-kpi-guide__card {
    background: #fff;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 18px;
    padding: 20px 18px 18px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
    min-width: 0;
}
.tdb-kpi-guide__card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.tdb-kpi-guide__ico {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #289951;
    color: #fff;
}
.tdb-kpi-guide__card h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.tdb-kpi-guide__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tdb-kpi-guide__list li {
    position: relative;
    padding-left: 16px;
    font-size: 13.5px;
    line-height: 1.45;
    color: #475569;
}
.tdb-kpi-guide__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: #72AA95;
}
.tdb-kpi-guide__reassure {
    margin-top: 22px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 20px;
    border-radius: 16px;
    background: rgba(89, 122, 175, 0.08);
    border: 1px solid rgba(89, 122, 175, 0.22);
}
.tdb-kpi-guide__reassure-ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #597AAF;
    color: #fff;
}
.tdb-kpi-guide__reassure p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
}
@media (max-width: 1100px) {
    .tdb-kpi-guide__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .tdb-kpi-guide {
        padding: 52px 0 44px;
    }
    .tdb-kpi-guide__grid {
        grid-template-columns: 1fr;
    }
    .tdb-kpi-guide__reassure {
        flex-direction: column;
        gap: 10px;
    }
}

/* ── Sources de données connectables (tableau-de-bord) ── */
.tdb-sources {
    padding: 72px 0 64px;
    background: #fff;
}
.tdb-sources .sp-section-header {
    margin-bottom: 36px;
}
.tdb-sources .sp-section-sub {
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
}
.tdb-sources__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.tdb-sources__card {
    background: #fbfdff;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 16px;
    padding: 18px 16px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.035);
    min-width: 0;
}
.tdb-sources__card-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.tdb-sources__ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #289951;
    color: #fff;
}
.tdb-sources__card h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-dark);
}
.tdb-sources__card p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.5;
    color: #475569;
}
.tdb-sources__note {
    margin-top: 20px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: rgba(40, 153, 81, 0.08);
    border: 1px solid rgba(40, 153, 81, 0.22);
}
.tdb-sources__note-ico {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #289951;
    color: #fff;
}
.tdb-sources__note p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: #334155;
}
@media (max-width: 900px) {
    .tdb-sources__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .tdb-sources {
        padding: 52px 0 44px;
    }
    .tdb-sources__grid {
        grid-template-columns: 1fr;
    }
    .tdb-sources__note {
        flex-direction: column;
        gap: 10px;
    }
}

/* ── Méthode de création du dashboard (tableau-de-bord) ── */
.tdb-method {
    padding: 72px 0 64px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}
.tdb-method .sp-section-header {
    margin-bottom: 8px;
}
.tdb-method__steps {
    margin-top: 12px;
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}
.tdb-method__note {
    margin: 8px auto 0;
    max-width: 860px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: rgba(89, 122, 175, 0.08);
    border: 1px solid rgba(89, 122, 175, 0.22);
}
.tdb-method__note-ico {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #597AAF;
    color: #fff;
}
.tdb-method__note p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: #334155;
}
@media (max-width: 600px) {
    .tdb-method {
        padding: 52px 0 44px;
    }
    .tdb-method__note {
        flex-direction: column;
        gap: 10px;
    }
}

/* ── Agent vocal IA — section 2 (définition + schéma + cas) ── */
.avi-def {
    padding: 64px 0 72px;
    background: #EDF0F6;
}
.avi-panel {
    background: #fff;
    border-radius: 24px;
    border: 1px solid rgba(208, 216, 228, 0.85);
    box-shadow: 0 16px 48px rgba(89, 122, 175, 0.08);
    padding: 40px 40px 36px;
}
.avi-panel__main {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: 40px 48px;
    align-items: start;
}
.avi-badge {
    display: inline-block;
    margin: 0 0 16px;
    padding: 7px 14px;
    border-radius: 999px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #166534;
    background: rgba(40, 153, 81, 0.12);
}
.avi-panel__content h2 {
    margin: 0 0 20px;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 34px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    max-width: 18ch;
}
.avi-panel__text {
    margin: 0 0 16px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.75;
    color: var(--color-gray);
    max-width: 54ch;
}
#comprendre-agents-ia .avi-panel__content h2,
#comprendre-agents-ia .avi-panel__text,
#comprendre-integration-ia .avi-panel__content h2,
#comprendre-integration-ia .avi-panel__text {
    max-width: none;
}
.avi-em {
    font-family: var(--font-subtitle);
    font-weight: 600;
    color: var(--color-primary-dark);
}

.avi-reassure {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-top: 8px;
    padding: 16px 18px;
    border-radius: 14px;
    background: var(--pole-2-bg);
    border: 1px solid rgba(191, 155, 121, 0.35);
}
.avi-reassure__ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-accent-dark);
    color: #fff;
}
.avi-reassure p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.65;
    color: #4a3f35;
}
.avi-reassure strong {
    font-family: var(--font-subtitle);
    font-weight: 700;
    color: #2c241c;
}

.avi-flow {
    background: linear-gradient(180deg, #EDF1F8 0%, #f8fafc 100%);
    border: 1px solid rgba(89, 122, 175, 0.18);
    border-radius: 18px;
    padding: 24px 22px 20px;
}
.avi-flow__label {
    margin: 0 0 18px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.avi-flow__steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
}
.avi-flow__steps::before {
    content: '';
    position: absolute;
    left: 15px;
    top: 18px;
    bottom: 18px;
    width: 2px;
    background: linear-gradient(180deg, var(--color-secondary) 0%, var(--color-primary) 100%);
    opacity: .35;
}
.avi-flow__step {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 10px 0;
    position: relative;
    z-index: 1;
}
.avi-flow__num {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    background: var(--color-secondary);
    box-shadow: 0 0 0 4px #EDF1F8;
}
.avi-flow__step:nth-child(even) .avi-flow__num {
    background: var(--color-primary);
}
.avi-flow__txt {
    padding-top: 5px;
    font-family: var(--font-body);
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-dark);
}

.avi-stack {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px dashed rgba(89, 122, 175, 0.28);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.avi-stack__item {
    display: inline-flex;
    align-items: center;
    padding: 6px 11px;
    border-radius: 8px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-primary-dark);
    background: rgba(89, 122, 175, 0.1);
}
.avi-stack__item--accent {
    color: #166534;
    background: rgba(40, 153, 81, 0.14);
}
.avi-stack__arrow {
    color: #94a3b8;
    font-size: 14px;
    font-weight: 700;
}
.avi-stack__targets {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.avi-stack__targets span {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    color: #4a3f35;
    background: var(--pole-2-bg);
    border: 1px solid rgba(191, 155, 121, 0.28);
}

.avi-cases {
    margin-top: 36px;
    padding-top: 32px;
    border-top: 1px solid rgba(208, 216, 228, 0.9);
}
.avi-cases__label {
    margin: 0 0 18px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-secondary);
}
.avi-cases__title {
    margin: 0 0 22px;
    font-family: var(--font-title);
    font-size: clamp(20px, 2.4vw, 26px);
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.avi-cases__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.avi-case {
    background: #f8fafc;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 16px;
    padding: 18px 16px;
    transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.avi-case:hover {
    border-color: rgba(40, 153, 81, 0.4);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}
.avi-case__ico {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    background: var(--color-secondary);
    color: #fff;
}
.avi-case h3,
.avi-case h4 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.avi-case p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--color-gray);
}

@media (max-width: 980px) {
    .avi-panel {
        padding: 28px 22px 24px;
    }
    .avi-panel__main {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .avi-panel__content h2 {
        max-width: none;
    }
    .avi-cases__grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 600px) {
    .avi-def {
        padding: 48px 0 40px;
    }
    .avi-panel {
        border-radius: 18px;
        padding: 22px 16px 18px;
    }
    .avi-cases__grid {
        grid-template-columns: 1fr;
    }
    .avi-reassure {
        flex-direction: column;
        gap: 10px;
    }
}

/* ── Agent vocal IA — démo interactive ── */
.avi-demo {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #ffffff 0%, #EDF1F8 100%);
}
.avi-demo .sp-section-header {
    margin-bottom: 36px;
}
.avi-demo__disclaimer {
    margin: 14px auto 0;
    max-width: 620px;
    font-family: var(--font-body);
    font-size: 13px;
    color: #64748b;
}
.avi-demo__shell {
    background: #fff;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 22px;
    box-shadow: 0 18px 50px rgba(89, 122, 175, 0.1);
    overflow: hidden;
}
.avi-demo__layout {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    min-height: 560px;
}
.avi-demo__config {
    padding: 28px 22px;
    background: #f8fafc;
    border-right: 1px solid rgba(208, 216, 228, 0.9);
}
.avi-demo__config-title {
    margin: 0 0 20px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    color: var(--color-dark);
}
.avi-demo__block {
    margin: 0 0 20px;
    padding: 0;
    border: 0;
}
.avi-demo__legend {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.avi-demo__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.avi-demo__options--stack {
    flex-direction: column;
}
.avi-demo__opt {
    appearance: none;
    border: 1.5px solid #d8dee8;
    background: #fff;
    color: #334155;
    border-radius: 10px;
    padding: 10px 12px;
    font-family: var(--font-body);
    font-size: 13.5px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.avi-demo__options:not(.avi-demo__options--stack) .avi-demo__opt {
    flex: 1 1 auto;
    text-align: center;
}
.avi-demo__opt:hover {
    border-color: rgba(40, 153, 81, 0.45);
}
.avi-demo__opt.is-selected {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.1);
    color: #166534;
}
.avi-demo__toggles {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.avi-demo__toggle {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: #334155;
}
.avi-demo__toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.avi-demo__toggle-ui {
    width: 42px;
    height: 24px;
    border-radius: 999px;
    background: #cbd5e1;
    position: relative;
    flex-shrink: 0;
    transition: background .2s ease;
}
.avi-demo__toggle-ui::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
    transition: transform .2s ease;
}
.avi-demo__toggle input:checked + .avi-demo__toggle-ui {
    background: var(--color-secondary);
}
.avi-demo__toggle input:checked + .avi-demo__toggle-ui::after {
    transform: translateX(18px);
}
.avi-demo__run {
    width: 100%;
    margin-top: 8px;
}

.avi-demo__preview {
    padding: 24px 24px 28px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}
.avi-call {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 0;
}
.avi-call__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.avi-call__status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark);
}
.avi-call__pulse {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ef4444;
    box-shadow: 0 0 0 0 rgba(239, 68, 68, .5);
    animation: avi-pulse 1.4s ease infinite;
}
@keyframes avi-pulse {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .45); }
    70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}
.avi-call__sep {
    color: #94a3b8;
}
.avi-call__timer {
    font-variant-numeric: tabular-nums;
    color: var(--color-primary-dark);
}
.avi-call__state {
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
}
.avi-call__state.is-live {
    background: rgba(239, 68, 68, .12);
    color: #b91c1c;
}
.avi-call__state.is-done {
    background: rgba(40, 153, 81, .12);
    color: #166534;
}
.avi-call__meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.avi-call__meta-item {
    background: #EDF1F8;
    border-radius: 12px;
    padding: 12px 14px;
}
.avi-call__meta-label {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.avi-call__meta-item strong {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
}
.avi-call__transcript {
    flex: 1;
    min-height: 220px;
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid rgba(208, 216, 228, 0.95);
    border-radius: 14px;
    background: #fbfdff;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.avi-call__empty {
    margin: auto;
    text-align: center;
    max-width: 34ch;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: #64748b;
}
.avi-bubble {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-width: 92%;
    animation: avi-bubble-in .25s ease;
}
@keyframes avi-bubble-in {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}
.avi-bubble--client {
    align-self: flex-start;
}
.avi-bubble--agent {
    align-self: flex-end;
    align-items: flex-end;
}
.avi-bubble__who {
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #64748b;
}
.avi-bubble__text {
    margin: 0;
    padding: 10px 14px;
    border-radius: 14px;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.55;
    color: #1e293b;
}
.avi-bubble--client .avi-bubble__text {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-bottom-left-radius: 4px;
}
.avi-bubble--agent .avi-bubble__text {
    background: rgba(40, 153, 81, 0.12);
    border: 1px solid rgba(40, 153, 81, 0.22);
    border-bottom-right-radius: 4px;
}
.avi-call__bottom {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.avi-call__panel {
    background: #f8fafc;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 14px;
    padding: 14px 14px 12px;
}
.avi-call__panel h4 {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-secondary);
}
.avi-call__panel ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.avi-call__panel li {
    position: relative;
    padding-left: 16px;
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.45;
    color: #334155;
}
.avi-call__panel li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 7px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-secondary);
}
.avi-call__panel li.is-muted {
    color: #94a3b8;
}
.avi-call__panel li.is-muted::before {
    background: #cbd5e1;
}
.avi-call__panel li.is-appear {
    animation: avi-bubble-in .25s ease;
}
.avi-demo__cta {
    text-align: center;
}

@media (max-width: 980px) {
    .avi-demo__layout {
        grid-template-columns: 1fr;
    }
    .avi-demo__config {
        border-right: 0;
        border-bottom: 1px solid rgba(208, 216, 228, 0.9);
    }
    .avi-call__bottom,
    .avi-call__meta {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .avi-demo {
        padding: 52px 0 56px;
    }
    .avi-demo__preview {
        padding: 18px 14px 22px;
    }
    .avi-call__transcript {
        max-height: 260px;
    }
}

/* ── Agent IA 24/7 PME — carte hero ── */
.aih-hero-card .sp-deliverables-card__highlight {
    background: #edf7f3;
    border-color: rgba(45, 122, 94, 0.35);
    color: #1f4d3a;
}
.aih-hero-card .sp-deliverables-card__highlight svg {
    color: var(--pole-4, #2d7a5e);
}
.aih-hero-card .sp-deliverables-card__highlight p {
    margin: 0;
}
.aih-hero-map {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: 2px 0 0;
}
.aih-hero-map__agents {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
}
.aih-hero-map__node {
    display: block;
    text-align: center;
    padding: 9px 4px;
    border-radius: 10px;
    border: 1px solid rgba(45, 122, 94, 0.22);
    background: #f7fbf9;
    font-size: 10px;
    font-weight: 700;
    font-family: var(--font-subtitle);
    color: #1f4d3a;
    line-height: 1.25;
}
.aih-hero-map__wires {
    display: block;
    width: 100%;
    height: 28px;
    margin: 0;
    overflow: visible;
}
.aih-hero-map__wires path {
    fill: none;
    stroke: rgba(45, 122, 94, 0.55);
    stroke-width: 1.5;
    stroke-linejoin: round;
}
.aih-hero-map__hub {
    width: 100%;
    text-align: center;
    padding: 11px 12px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--pole-4, #2d7a5e) 0%, #246650 100%);
    color: #fff;
    box-shadow: 0 10px 24px rgba(45, 122, 94, 0.22);
}
.aih-hero-map__hub strong {
    display: block;
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.01em;
}
@media (max-width: 1100px) {
    .aih-hero-map__agents {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .aih-hero-map__node {
        font-size: 11px;
        padding: 9px 8px;
    }
    .aih-hero-map__wires {
        display: none;
    }
    .aih-hero-map__hub {
        margin-top: 8px;
    }
}

/* ── Agent IA 24/7 PME — démo visuelle hub ── */
.aih-hub {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #ffffff 0%, #edf7f3 100%);
}
.aih-hub__intro {
    max-width: 760px;
    margin: 0 auto 40px;
    text-align: center;
}
.aih-hub__intro .avi-badge {
    margin-bottom: 18px;
}
.aih-hub__intro h2 {
    margin: 0 0 16px;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-hub__lead {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: var(--color-gray);
}
.aih-hub__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 28px;
}
.aih-hub__card {
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.5);
    border-radius: 18px;
    padding: 22px 20px 20px;
    box-shadow: 0 10px 28px rgba(45, 122, 94, 0.05);
    transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.aih-hub__card:hover {
    border-color: rgba(45, 122, 94, 0.45);
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(45, 122, 94, 0.1);
}
.aih-hub__card-ico {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    background: var(--pole-4, #72AA95);
    color: #fff;
}
.aih-hub__card h3 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    letter-spacing: -0.01em;
}
.aih-hub__card p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: #475569;
}
.aih-hub__punch {
    margin: 0 0 40px;
    padding: 20px 24px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(45, 122, 94, 0.1) 0%, rgba(114, 170, 149, 0.12) 100%);
    border: 1px solid rgba(45, 122, 94, 0.28);
    text-align: center;
}
.aih-hub__punch p {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(16px, 2vw, 19px);
    font-weight: 800;
    line-height: 1.45;
    color: #1f4d3a;
    letter-spacing: -0.01em;
}
.aih-hub__shell {
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.55);
    border-radius: 22px;
    box-shadow: 0 18px 50px rgba(45, 122, 94, 0.08);
    overflow: hidden;
}
.aih-hub__chrome {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    background: #f4faf7;
    border-bottom: 1px solid rgba(167, 201, 186, 0.45);
}
.aih-hub__dots {
    display: flex;
    gap: 6px;
}
.aih-hub__dots span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #c5d5cd;
}
.aih-hub__dots span:nth-child(1) { background: #f2b6b0; }
.aih-hub__dots span:nth-child(2) { background: #f0d59a; }
.aih-hub__dots span:nth-child(3) { background: #a8d4bc; }
.aih-hub__chrome-title {
    margin: 0;
    flex: 1;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
}
.aih-hub__live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    color: var(--pole-4, #2d7a5e);
}
.aih-hub__live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pole-4, #2d7a5e);
    box-shadow: 0 0 0 0 rgba(45, 122, 94, 0.45);
    animation: aih-pulse 1.8s ease infinite;
}
@keyframes aih-pulse {
    0% { box-shadow: 0 0 0 0 rgba(45, 122, 94, 0.45); }
    70% { box-shadow: 0 0 0 8px rgba(45, 122, 94, 0); }
    100% { box-shadow: 0 0 0 0 rgba(45, 122, 94, 0); }
}
.aih-hub__layout {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    min-height: 420px;
}
.aih-hub__agents {
    padding: 22px 18px;
    background: #f8fbf9;
    border-right: 1px solid rgba(167, 201, 186, 0.4);
}
.aih-hub__aside-label {
    margin: 0 0 12px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aih-hub__agent-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.aih-hub__agent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 12px;
    border-radius: 12px;
    border: 1px solid transparent;
    background: #fff;
}
.aih-hub__agent.is-active {
    border-color: rgba(45, 122, 94, 0.28);
    box-shadow: 0 6px 18px rgba(45, 122, 94, 0.08);
}
.aih-hub__agent-status {
    width: 8px;
    height: 8px;
    margin-top: 6px;
    border-radius: 50%;
    background: #3cb371;
    flex-shrink: 0;
}
.aih-hub__agent-status--custom {
    background: #2b6cb0;
}
.aih-hub__agent strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}
.aih-hub__agent span {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    color: #64748b;
}
.aih-hub__dash {
    padding: 22px 22px 18px;
}
.aih-hub__kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}
.aih-hub__kpi {
    padding: 14px 12px;
    border-radius: 14px;
    background: linear-gradient(160deg, #f4faf7 0%, #eef6f2 100%);
    border: 1px solid rgba(167, 201, 186, 0.35);
}
.aih-hub__kpi-label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
}
.aih-hub__kpi strong {
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.15;
}
.aih-hub__feed ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.aih-hub__feed li {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 12px;
    align-items: baseline;
    padding: 10px 12px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #e8eef0;
    font-size: 13px;
    color: #334155;
}
.aih-hub__feed time {
    font-size: 12px;
    font-weight: 700;
    color: var(--pole-4, #2d7a5e);
}
.aih-hub__caption {
    margin: 16px 0 0;
    font-size: 12px;
    color: #64748b;
}
@media (max-width: 900px) {
    .aih-hub__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .aih-hub__layout {
        grid-template-columns: 1fr;
    }
    .aih-hub__agents {
        border-right: 0;
        border-bottom: 1px solid rgba(167, 201, 186, 0.4);
    }
    .aih-hub__kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .aih-hub {
        padding: 52px 0 56px;
    }
    .aih-hub__cards {
        grid-template-columns: 1fr;
    }
    .aih-hub__punch {
        padding: 16px 18px;
        text-align: left;
    }
    .aih-hub__kpis {
        grid-template-columns: 1fr 1fr;
    }
    .aih-hub__kpi strong {
        font-size: 16px;
    }
    .aih-hub__cta {
        width: 100%;
    }
    .aih-hub__cta .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
        white-space: normal;
        height: auto;
        min-height: 44px;
        padding-top: 12px;
        padding-bottom: 12px;
        line-height: 1.35;
    }
}

/* Hub — grille 5 cartes (page Agents IA) */
@media (min-width: 901px) {
    .aih-hub__cards--five {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
    .aih-hub__cards--five .aih-hub__card {
        grid-column: span 2;
    }
    .aih-hub__cards--five .aih-hub__card:nth-child(4) {
        grid-column: 2 / span 2;
    }
    .aih-hub__cards--five .aih-hub__card:nth-child(5) {
        grid-column: 4 / span 2;
    }
}
.aih-hub__cta {
    display: flex;
    justify-content: center;
    margin-top: 8px;
}
.aih-hub__cta .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* ROI KPI lists (page Agents IA) */
.aga-roi__list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.aga-roi__list li {
    position: relative;
    padding-left: 14px;
    font-size: 14px;
    line-height: 1.45;
    color: #475569;
}
.aga-roi__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--pole-4, #72AA95);
}

/* ── Agent IA 24/7 PME — dashboard interactif ── */
.aih-dash {
    padding: 72px 0 80px;
    background: #fff;
}
.aih-dash__intro {
    max-width: 760px;
    margin: 0 auto 28px;
    text-align: center;
}
.aih-dash__intro .avi-badge {
    margin-bottom: 18px;
}
.aih-dash__intro h2 {
    margin: 0 0 14px;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-dash__lead {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: var(--color-gray);
}
.aih-dash__metrics {
    list-style: none;
    margin: 0 auto 36px;
    padding: 0;
    max-width: 980px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}
.aih-dash__metrics li {
    padding: 7px 12px;
    border-radius: 999px;
    background: #edf7f3;
    border: 1px solid rgba(45, 122, 94, 0.18);
    font-size: 12.5px;
    font-weight: 600;
    color: #1f4d3a;
    font-family: var(--font-subtitle);
}
.aih-dash__shell {
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.55);
    border-radius: 22px;
    box-shadow: 0 18px 50px rgba(45, 122, 94, 0.08);
    overflow: hidden;
}
.aih-dash__layout {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    min-height: 520px;
}
.aih-dash__nav {
    padding: 24px 18px;
    background: #f8fbf9;
    border-right: 1px solid rgba(167, 201, 186, 0.4);
}
.aih-dash__nav-title {
    margin: 0 0 14px;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}
.aih-dash__opts {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.aih-dash__opt {
    appearance: none;
    width: 100%;
    text-align: left;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1.5px solid #d5e4dc;
    background: #fff;
    color: #334155;
    font-family: var(--font-subtitle);
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.aih-dash__opt:hover {
    border-color: rgba(45, 122, 94, 0.45);
}
.aih-dash__opt.is-selected {
    border-color: rgba(45, 122, 94, 0.55);
    background: linear-gradient(135deg, #edf7f3 0%, #e4f3ec 100%);
    color: #1f4d3a;
    box-shadow: 0 8px 20px rgba(45, 122, 94, 0.1);
}
.aih-dash__panel {
    padding: 22px 22px 20px;
}
.aih-dash__panel.is-swap {
    animation: aih-dash-fade .28s ease;
}
@keyframes aih-dash-fade {
    from { opacity: .45; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}
.aih-dash__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.aih-dash__eyebrow {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
    font-family: var(--font-subtitle);
}
.aih-dash__panel-head h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-dark);
}
.aih-dash__live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    color: var(--pole-4, #2d7a5e);
    flex-shrink: 0;
}
.aih-dash__live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pole-4, #2d7a5e);
    box-shadow: 0 0 0 0 rgba(45, 122, 94, 0.45);
    animation: aih-pulse 1.8s ease infinite;
}
.aih-dash__kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}
.aih-dash__kpi {
    padding: 12px 10px;
    border-radius: 14px;
    background: linear-gradient(160deg, #f4faf7 0%, #eef6f2 100%);
    border: 1px solid rgba(167, 201, 186, 0.4);
    text-align: center;
}
.aih-dash__kpi-label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    line-height: 1.3;
}
.aih-dash__kpi strong {
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.15;
}
.aih-dash__cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.aih-dash__block {
    background: #f8fafc;
    border: 1px solid #e8eef0;
    border-radius: 14px;
    padding: 14px 14px 12px;
}
.aih-dash__block h4 {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aih-dash__block ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.aih-dash__block li {
    position: relative;
    padding-left: 14px;
    font-size: 13.5px;
    line-height: 1.45;
    color: #334155;
}
.aih-dash__block li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--pole-4, #72AA95);
}
.aih-dash__cta {
    margin-top: 28px;
    text-align: center;
}
.aih-dash__disclaimer {
    margin: 12px 0 0;
    font-size: 13px;
    color: #64748b;
}
@media (max-width: 980px) {
    .aih-dash__layout {
        grid-template-columns: 1fr;
    }
    .aih-dash__nav {
        border-right: 0;
        border-bottom: 1px solid rgba(167, 201, 186, 0.4);
    }
    .aih-dash__opts {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .aih-dash__kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .aih-dash {
        padding: 52px 0 56px;
    }
    .aih-dash__opts {
        grid-template-columns: 1fr;
    }
    .aih-dash__kpi-grid,
    .aih-dash__cols {
        grid-template-columns: 1fr;
    }
    .aih-dash__panel-head {
        flex-direction: column;
    }
}

/* ── Agent IA 24/7 PME — types d’agents ── */
.aih-types {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #edf7f3 0%, #ffffff 100%);
}
.aih-types__intro {
    max-width: 760px;
    margin: 0 auto 40px;
    text-align: center;
}
.aih-types__intro .avi-badge {
    margin-bottom: 18px;
}
.aih-types__intro h2 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-types__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}
.aih-types__card {
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.5);
    border-radius: 18px;
    padding: 22px 18px 20px;
    box-shadow: 0 10px 28px rgba(45, 122, 94, 0.05);
    transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
    height: 100%;
    min-width: 0;
}
.aih-types__card:hover {
    border-color: rgba(45, 122, 94, 0.45);
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(45, 122, 94, 0.1);
}
.aih-types__card--featured {
    background: linear-gradient(160deg, #f7fbf9 0%, #ffffff 55%);
    border-color: rgba(45, 122, 94, 0.45);
    border-width: 1.5px;
}
#cas-concrets .aih-types__card--featured > p {
    font-size: 14px;
}
.aih-types__ico {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    background: var(--pole-4, #72AA95);
    color: #fff;
}
.aih-types__card h3 {
    margin: 0 0 10px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    color: var(--color-dark);
    letter-spacing: -0.01em;
}
.aih-types__card > p {
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: #475569;
}
.aih-types__label {
    margin: 16px 0 10px !important;
    font-family: var(--font-subtitle);
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e) !important;
}
.aih-types__tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.aih-types__tags li {
    padding: 6px 11px;
    border-radius: 999px;
    background: #edf7f3;
    border: 1px solid rgba(45, 122, 94, 0.18);
    font-size: 12.5px;
    font-weight: 600;
    color: #1f4d3a;
    font-family: var(--font-subtitle);
    line-height: 1.3;
}
@media (max-width: 1100px) {
    .aih-types__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .aih-types__grid {
        grid-template-columns: 1fr;
    }
    .aih-types {
        padding: 52px 0 56px;
    }
}

/* ── Agent IA 24/7 PME — sur-mesure mis en avant ── */
.aih-custom {
    padding: 72px 0 80px;
    background: #fff;
}
.aih-custom__panel {
    background: linear-gradient(145deg, #1a3d32 0%, #245848 48%, #2d7a5e 100%);
    border-radius: 28px;
    padding: 48px 48px 40px;
    color: #fff;
    box-shadow: 0 24px 60px rgba(26, 61, 50, 0.28);
    position: relative;
    overflow: hidden;
}
.aih-custom__panel::before {
    content: '';
    position: absolute;
    top: -80px;
    right: -60px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    pointer-events: none;
}
.aih-custom__panel::after {
    content: '';
    position: absolute;
    bottom: -100px;
    left: 10%;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    pointer-events: none;
}
.aih-custom__intro {
    position: relative;
    z-index: 1;
    max-width: 820px;
    margin-bottom: 36px;
}
.aih-custom__intro .avi-badge {
    background: rgba(255, 255, 255, 0.14);
    color: #e8f7f0;
    margin-bottom: 18px;
}
.aih-custom__intro h2 {
    margin: 0 0 18px;
    font-family: var(--font-title);
    font-size: clamp(28px, 3.6vw, 40px);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #fff;
}
.aih-custom__text {
    margin: 0 0 14px;
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.88);
    max-width: 760px;
}
.aih-custom__text:last-of-type {
    margin-bottom: 0;
}
.aih-custom__tags {
    position: relative;
    z-index: 1;
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.aih-custom__tags li {
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    font-family: var(--font-subtitle);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.35;
    color: #e8f7f0;
}
.aih-custom__method-label {
    position: relative;
    z-index: 1;
    margin: 0 0 18px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(232, 247, 240, 0.8);
}
.aih-custom__steps {
    position: relative;
    z-index: 1;
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
.aih-custom__step {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 16px;
    padding: 18px 16px 16px;
    backdrop-filter: blur(6px);
}
.aih-custom__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 28px;
    padding: 0 10px;
    margin-bottom: 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    color: #fff;
}
.aih-custom__step h3 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    color: #fff;
}
.aih-custom__step p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.78);
}
.aih-custom__punch {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 20px 24px;
    border-radius: 16px;
    background: #fff;
    text-align: center;
}
.aih-custom__punch p {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(16px, 2.1vw, 20px);
    font-weight: 800;
    line-height: 1.4;
    color: #1a3d32;
    letter-spacing: -0.01em;
}
@media (max-width: 1100px) {
    .aih-custom__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 800px) {
    .aih-custom__panel {
        padding: 36px 22px 28px;
        border-radius: 22px;
    }
    .aih-custom__steps {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .aih-custom {
        padding: 52px 0 56px;
    }
    .aih-custom__punch {
        text-align: left;
        padding: 16px 18px;
    }
}

/* ── Agent IA 24/7 PME — orchestration multi-agents ── */
.aih-orch {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #ffffff 0%, #edf0f6 100%);
}
.aih-orch__intro {
    max-width: 760px;
    margin: 0 auto 40px;
    text-align: center;
}
.aih-orch__intro .avi-badge {
    margin-bottom: 18px;
}
.aih-orch__intro h2 {
    margin: 0 0 16px;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-orch__lead {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: var(--color-gray);
}
.aih-orch__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 28px;
}
.aih-orch__grid--single {
    grid-template-columns: 1fr;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}
.aih-orch__card {
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.5);
    border-radius: 22px;
    padding: 28px 26px 24px;
    box-shadow: 0 14px 36px rgba(45, 122, 94, 0.06);
}
.aih-orch__card-label {
    margin: 0 0 20px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aih-orch__flow {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.aih-orch__flow li {
    position: relative;
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 14px;
    padding: 0 0 18px;
}
.aih-orch__flow li:last-child {
    padding-bottom: 0;
}
.aih-orch__flow li:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 16px;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, rgba(45, 122, 94, 0.45), rgba(45, 122, 94, 0.12));
}
.aih-orch__dot {
    position: relative;
    z-index: 1;
    width: 14px;
    height: 14px;
    margin-top: 4px;
    border-radius: 50%;
    background: var(--pole-4, #72AA95);
    box-shadow: 0 0 0 4px rgba(114, 170, 149, 0.18);
    flex-shrink: 0;
}
.aih-orch__dot--human {
    background: #2b6cb0;
    box-shadow: 0 0 0 4px rgba(43, 108, 176, 0.16);
}
.aih-orch__dot--end {
    background: #1f4d3a;
    box-shadow: 0 0 0 4px rgba(31, 77, 58, 0.14);
}
.aih-orch__flow p {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: #334155;
}
.aih-orch__flow strong {
    color: var(--color-dark);
    font-weight: 700;
}
.aih-orch__note {
    max-width: 820px;
    margin: 0 auto;
    padding: 18px 22px;
    border-radius: 16px;
    background: rgba(45, 122, 94, 0.08);
    border: 1px solid rgba(45, 122, 94, 0.22);
    text-align: center;
}
.aih-orch__note p {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(15px, 1.8vw, 17px);
    font-weight: 800;
    line-height: 1.45;
    color: #1f4d3a;
}
.aih-orch__cta {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}
.aih-orch__cta .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
@media (max-width: 800px) {
    .aih-orch__grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .aih-orch {
        padding: 52px 0 56px;
    }
    .aih-orch__cta {
        flex-direction: column;
        align-items: stretch;
    }
    .aih-orch__cta .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
        height: auto;
        min-height: 44px;
        text-align: center;
        line-height: 1.35;
    }
    .aih-orch__note {
        text-align: left;
    }
}

/* ── Agent IA 24/7 PME — contrôle & gouvernance ── */
.aih-gov {
    padding: 72px 0 80px;
    background: #fff;
}
.aih-gov__intro {
    max-width: 780px;
    margin: 0 auto 40px;
    text-align: center;
}
.aih-gov__badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 18px;
}
.aih-gov__badges .avi-badge {
    margin: 0;
}
.aih-gov__badge-link {
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}
.aih-gov__badge-link:hover {
    background: rgba(40, 153, 81, 0.2);
    color: #14532d;
}
.aih-gov__intro h2 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-gov__intro .avi-badge {
    margin-bottom: 18px;
}
.aih-gov__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 28px;
}
.aih-gov__grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.aih-gov__grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.aih-gov__intro .aih-orch__lead {
    margin-top: 16px;
}
.aih-gov__level {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 28px;
    margin-bottom: 14px;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--pole-4, #72AA95);
    color: #fff;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
}
.aih-gov__card {
    background: #f8fbf9;
    border: 1px solid rgba(167, 201, 186, 0.5);
    border-radius: 18px;
    padding: 22px 18px 20px;
    transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.aih-gov__card:hover {
    border-color: rgba(45, 122, 94, 0.45);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(45, 122, 94, 0.08);
    background: #fff;
}
.aih-gov__ico {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    background: var(--pole-4, #72AA95);
    color: #fff;
}
.aih-gov__card h3 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}
.aih-gov__card p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}
.aih-gov__note {
    max-width: 820px;
    margin: 0 auto;
    padding: 18px 22px;
    border-radius: 16px;
    background: rgba(45, 122, 94, 0.08);
    border: 1px solid rgba(45, 122, 94, 0.22);
    text-align: center;
}
.aih-gov__note p {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(15px, 1.8vw, 17px);
    font-weight: 800;
    line-height: 1.45;
    color: #1f4d3a;
}
@media (max-width: 1100px) {
    .aih-gov__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .aih-gov__grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .aih-gov__grid--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 700px) {
    .aih-gov__grid,
    .aih-gov__grid--4,
    .aih-gov__grid--3 {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .aih-gov {
        padding: 52px 0 56px;
    }
    .aih-gov__note {
        text-align: left;
    }
}

/* ── Agents IA — agent augmenté (rassurance) ── */
.aga-augment {
    padding: 0 0 72px;
    background: #fff;
}
.aga-augment__panel {
    max-width: 860px;
    margin: 0 auto;
    padding: 32px 36px 30px;
    border-radius: 22px;
    background: linear-gradient(160deg, #f7fbf9 0%, #ffffff 65%);
    border: 1px solid rgba(45, 122, 94, 0.22);
    box-shadow: 0 14px 36px rgba(45, 122, 94, 0.06);
}
.aga-augment__panel .avi-badge {
    margin-bottom: 14px;
}
.aga-augment__panel h2 {
    margin: 0 0 14px;
    font-family: var(--font-title);
    font-size: clamp(22px, 2.8vw, 30px);
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aga-augment__text {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-gray);
    max-width: 62ch;
}
.aga-augment__label {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aga-augment__tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.aga-augment__tags li {
    padding: 8px 12px;
    border-radius: 999px;
    background: #edf7f3;
    border: 1px solid rgba(45, 122, 94, 0.18);
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 600;
    color: #1f4d3a;
    line-height: 1.3;
}
@media (max-width: 600px) {
    .aga-augment {
        padding: 0 0 52px;
    }
    .aga-augment__panel {
        padding: 24px 20px 22px;
        border-radius: 18px;
    }
}

/* ── Agent IA 24/7 PME — comparateur de solutions ── */
.aih-cmp {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #edf7f3 0%, #ffffff 100%);
}
.aih-cmp__intro {
    max-width: 760px;
    margin: 0 auto 40px;
    text-align: center;
}
.aih-cmp__intro .avi-badge {
    margin-bottom: 18px;
}
.aih-cmp__intro h2 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-cmp__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}
.aih-cmp__card {
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.5);
    border-radius: 20px;
    padding: 28px 24px 24px;
    box-shadow: 0 12px 32px rgba(45, 122, 94, 0.05);
    display: flex;
    flex-direction: column;
}
.aih-cmp__card--mid {
    border-color: rgba(45, 122, 94, 0.35);
}
.aih-cmp__card--featured {
    background: linear-gradient(160deg, #1a3d32 0%, #2d7a5e 100%);
    border-color: transparent;
    box-shadow: 0 18px 44px rgba(26, 61, 50, 0.22);
    color: #fff;
}
.aih-cmp__card h3 {
    margin: 0 0 18px;
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--color-dark);
}
.aih-cmp__card--featured h3 {
    color: #fff;
}
.aih-cmp__card ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    flex: 1;
}
.aih-cmp__card li {
    padding: 12px 0;
    border-top: 1px solid rgba(167, 201, 186, 0.35);
    font-size: 15px;
    line-height: 1.5;
    color: #475569;
}
.aih-cmp__card li:first-child {
    border-top: 0;
    padding-top: 0;
}
.aih-cmp__card--featured li {
    border-top-color: rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.88);
}
.aih-cmp__ideal {
    margin-top: auto;
    padding-top: 16px !important;
    border-top: 1px solid rgba(45, 122, 94, 0.28) !important;
    color: #1f4d3a !important;
}
.aih-cmp__card--featured .aih-cmp__ideal {
    border-top-color: rgba(255, 255, 255, 0.28) !important;
    color: #fff !important;
}
.aih-cmp__ideal strong {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
}
@media (max-width: 900px) {
    .aih-cmp__grid {
        grid-template-columns: 1fr;
        max-width: 480px;
        margin: 0 auto;
    }
}
@media (max-width: 600px) {
    .aih-cmp {
        padding: 52px 0 56px;
    }
}

/* ── Agent IA 24/7 PME — détail coûts mensuels ── */
.aih-pricing-monthly {
    max-width: 920px;
    margin: 32px auto 0;
    padding: 20px 22px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.55);
}
.aih-pricing-monthly__title {
    margin: 0 0 14px;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
}
.aih-pricing-monthly__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.aih-pricing-monthly__list li {
    padding: 7px 12px;
    border-radius: 999px;
    background: #edf7f3;
    border: 1px solid rgba(45, 122, 94, 0.18);
    font-size: 13px;
    font-weight: 600;
    color: #1f4d3a;
    font-family: var(--font-subtitle);
}

/* ── Agent IA 24/7 PME — configurateur interactif ── */
.aih-cfg {
    padding: 72px 0 80px;
    background: #fff;
}
.aih-cfg__intro {
    max-width: 760px;
    margin: 0 auto 36px;
    text-align: center;
}
.aih-cfg__intro .avi-badge {
    margin-bottom: 18px;
}
.aih-cfg__intro h2 {
    margin: 0 0 14px;
    font-family: var(--font-title);
    font-size: clamp(26px, 3.2vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-cfg__lead {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
    color: var(--color-gray);
}
.aih-cfg__shell {
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.55);
    border-radius: 22px;
    box-shadow: 0 18px 50px rgba(45, 122, 94, 0.08);
    overflow: hidden;
}
.aih-cfg__layout {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    min-height: 560px;
}
.aih-cfg__config {
    padding: 24px 20px;
    background: #f8fbf9;
    border-right: 1px solid rgba(167, 201, 186, 0.4);
}
.aih-cfg__block {
    margin: 0 0 20px;
    padding: 0;
    border: 0;
}
.aih-cfg__legend {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aih-cfg__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.aih-cfg__options--stack {
    flex-direction: column;
}
.aih-cfg__opt {
    appearance: none;
    border: 1.5px solid #d5e4dc;
    background: #fff;
    color: #334155;
    border-radius: 10px;
    padding: 9px 12px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    text-align: left;
    transition: border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.aih-cfg__options--stack .aih-cfg__opt {
    width: 100%;
}
.aih-cfg__opt:hover {
    border-color: rgba(45, 122, 94, 0.45);
}
.aih-cfg__opt.is-selected {
    border-color: rgba(45, 122, 94, 0.55);
    background: linear-gradient(135deg, #edf7f3 0%, #e4f3ec 100%);
    color: #1f4d3a;
    box-shadow: 0 6px 16px rgba(45, 122, 94, 0.08);
}
.aih-cfg__hint {
    margin: 8px 0 0;
    font-size: 12px;
    color: #64748b;
}
.aih-cfg__result {
    padding: 26px 24px 24px;
}
.aih-cfg__result.is-swap {
    animation: aih-dash-fade .28s ease;
}
.aih-cfg__result-label {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
    font-family: var(--font-subtitle);
}
.aih-cfg__result-type {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: clamp(22px, 2.6vw, 28px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.aih-cfg__result-note {
    margin: 0 0 20px;
    font-size: 14.5px;
    color: #64748b;
}
.aih-cfg__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}
.aih-cfg__meta-item {
    padding: 12px;
    border-radius: 14px;
    background: linear-gradient(160deg, #f4faf7 0%, #eef6f2 100%);
    border: 1px solid rgba(167, 201, 186, 0.4);
}
.aih-cfg__meta-label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
}
.aih-cfg__meta-item strong {
    font-family: var(--font-title);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.aih-cfg__meta-item strong.is-yes {
    color: #1f4d3a;
}
.aih-cfg__cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}
.aih-cfg__block-out {
    background: #f8fafc;
    border: 1px solid #e8eef0;
    border-radius: 14px;
    padding: 14px 14px 12px;
}
.aih-cfg__block-out--full {
    grid-column: 1 / -1;
}
.aih-cfg__block-out h4 {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aih-cfg__block-out ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.aih-cfg__block-out li {
    position: relative;
    padding-left: 14px;
    font-size: 13.5px;
    line-height: 1.45;
    color: #334155;
}
.aih-cfg__block-out li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--pole-4, #72AA95);
}
.aih-cfg__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.aih-cfg__disclaimer {
    margin: 16px 0 0;
    text-align: center;
    font-size: 13px;
    color: #64748b;
}
@media (max-width: 980px) {
    .aih-cfg__layout {
        grid-template-columns: 1fr;
    }
    .aih-cfg__config {
        border-right: 0;
        border-bottom: 1px solid rgba(167, 201, 186, 0.4);
    }
    .aih-cfg__meta {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .aih-cfg {
        padding: 52px 0 56px;
    }
    .aih-cfg__cols {
        grid-template-columns: 1fr;
    }
    .aih-cfg__meta {
        grid-template-columns: 1fr;
    }
    .aih-cfg__cta {
        flex-direction: column;
    }
    .aih-cfg__cta .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
        height: auto;
        min-height: 44px;
        text-align: center;
        line-height: 1.35;
    }
    .aih-cfg__shell {
        border-radius: 16px;
    }
    .aih-cfg__result {
        padding: 20px 16px 18px;
    }
}

/* ── Architecte d’agent (page Agents IA) ── */
.aga-arch {
    background: linear-gradient(180deg, #edf7f3 0%, #ffffff 40%);
}
.aga-arch__schema {
    margin: 0 0 20px;
    padding: 18px 16px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e8eef0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.aga-arch__node {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 8px 14px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(167, 201, 186, 0.55);
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    color: #1f4d3a;
    text-align: center;
    line-height: 1.3;
}
.aga-arch__node--agent {
    background: linear-gradient(135deg, #edf7f3 0%, #e4f3ec 100%);
    border-color: rgba(45, 122, 94, 0.45);
    color: #14532d;
    font-size: 14px;
}
.aga-arch__node--edge {
    background: #fff;
    color: #334155;
}
.aga-arch__arrow {
    color: var(--pole-4, #2d7a5e);
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
}
.aga-arch__branches {
    list-style: none;
    margin: 2px 0 4px;
    padding: 10px 14px;
    border-left: 2px solid rgba(45, 122, 94, 0.35);
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 180px;
}
.aga-arch__branches li {
    position: relative;
    padding-left: 14px;
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    font-family: var(--font-subtitle);
}
.aga-arch__branches li::before {
    content: '├──';
    position: absolute;
    left: -2px;
    top: 0;
    color: rgba(45, 122, 94, 0.55);
    font-size: 11px;
    font-weight: 700;
}
.aga-arch__branches li:last-child::before {
    content: '└──';
}
.aga-arch__block {
    margin: 0 0 18px;
}
.aga-arch__block h4 {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--pole-4, #2d7a5e);
}
.aga-arch__tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.aga-arch__tags li {
    padding: 7px 12px;
    border-radius: 999px;
    background: #edf7f3;
    border: 1px solid rgba(45, 122, 94, 0.18);
    font-size: 12.5px;
    font-weight: 600;
    color: #1f4d3a;
    font-family: var(--font-subtitle);
    line-height: 1.3;
}
.aga-arch__frame {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 14px;
}
.aga-arch__frame li {
    position: relative;
    padding-left: 14px;
    font-size: 13.5px;
    line-height: 1.45;
    color: #334155;
}
.aga-arch__frame li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--pole-4, #72AA95);
}
@media (max-width: 600px) {
    .aga-arch__frame {
        grid-template-columns: 1fr;
    }
}

.avi-method {
    padding: 80px 0 72px;
    background: #fff;
}
.avi-method .sp-section-header {
    margin-bottom: 12px;
}
.avi-method__steps {
    margin-top: 12px;
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}
.avi-method__note {
    margin: 8px auto 0;
    max-width: 860px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: rgba(40, 153, 81, 0.08);
    border: 1px solid rgba(40, 153, 81, 0.22);
}
.avi-method__note-ico {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #289951;
    color: #fff;
}
.avi-method__note p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.65;
    color: #334155;
}
@media (max-width: 600px) {
    .avi-method {
        padding: 56px 0 48px;
    }
    .avi-method__note {
        flex-direction: column;
        gap: 10px;
    }
}

/* ── Agent vocal IA — catégories d’intégrations ── */
.avi-connect {
    padding: 72px 0 80px;
    background: #EDF0F6;
}
.avi-connect .sp-section-header {
    margin-bottom: 36px;
}
.avi-connect .sp-section-sub {
    max-width: 680px;
}
.avi-connect__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.avi-connect__card {
    background: #fff;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 16px;
    padding: 20px 18px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
    min-width: 0;
}
.avi-connect__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.avi-connect__ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #289951;
    color: #fff;
}
.avi-connect__card h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-dark);
}
.avi-connect__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: #475569;
}
.avi-connect__tags {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.avi-connect__tags li {
    display: inline-flex;
    align-items: center;
    padding: 6px 11px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: #334155;
    background: #f1f5f9;
    border: 1px solid rgba(208, 216, 228, 0.85);
}
.avi-connect__note {
    margin: 24px auto 0;
    max-width: 920px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(89, 122, 175, 0.22);
}
.avi-connect__note-ico {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: #fff;
}
.avi-connect__note p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.65;
    color: #334155;
}
.avi-connect__grid--5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.avi-connect__grid--6 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1100px) {
    .avi-connect__grid--5 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 980px) {
    .avi-connect__grid {
        grid-template-columns: 1fr 1fr;
    }
    .avi-connect__grid--5,
    .avi-connect__grid--6 {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 600px) {
    .avi-connect {
        padding: 52px 0 56px;
    }
    .avi-connect__grid,
    .avi-connect__grid--5,
    .avi-connect__grid--6 {
        grid-template-columns: 1fr;
    }
    .avi-connect__note {
        flex-direction: column;
        gap: 10px;
    }
}

/* ── Agent vocal IA — avant / après ── */
.avi-ba {
    padding: 72px 0 80px;
    background: #fff;
}
.avi-ba .sp-section-header {
    margin-bottom: 36px;
}
.avi-ba .sp-section-sub {
    max-width: 680px;
}
.avi-ba__table {
    max-width: 920px;
    margin: 0 auto;
    border: 1px solid rgba(208, 216, 228, 0.95);
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 12px 36px rgba(15, 23, 42, 0.05);
}
.avi-ba__head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid rgba(208, 216, 228, 0.95);
}
.avi-ba__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid rgba(208, 216, 228, 0.75);
}
.avi-ba__row:last-child {
    border-bottom: 0;
}
.avi-ba__col {
    padding: 16px 20px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.avi-ba__col--before {
    background: #f8fafc;
    border-right: 1px solid rgba(208, 216, 228, 0.75);
}
.avi-ba__col--after {
    background: rgba(40, 153, 81, 0.06);
}
.avi-ba__head .avi-ba__col {
    justify-content: center;
    padding: 14px 20px;
}
.avi-ba__badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: 999px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.avi-ba__badge--before {
    color: #64748b;
    background: #e2e8f0;
}
.avi-ba__badge--after {
    color: #166534;
    background: rgba(40, 153, 81, 0.16);
}
.avi-ba__badge--mobile {
    display: none;
}
.avi-ba__col p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.55;
    color: #334155;
}
.avi-ba__col--after p {
    font-family: var(--font-subtitle);
    font-weight: 600;
    color: #14532d;
}

@media (max-width: 700px) {
    .avi-ba__head {
        display: none;
    }
    .avi-ba__row {
        grid-template-columns: 1fr;
    }
    .avi-ba__col--before {
        border-right: 0;
        border-bottom: 1px dashed rgba(208, 216, 228, 0.9);
    }
    .avi-ba__badge--mobile {
        display: inline-flex;
        flex-shrink: 0;
        margin-top: 2px;
    }
    .avi-ba__col {
        flex-direction: column;
        gap: 8px;
    }
}
@media (max-width: 600px) {
    .avi-ba {
        padding: 52px 0 56px;
    }
}

/* ── Agent vocal IA — calculateur de potentiel ── */
.avi-calc {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #EDF1F8 0%, #f8fafc 100%);
}
.avi-calc .sp-section-header {
    margin-bottom: 36px;
}
.avi-calc .sp-section-sub {
    max-width: 680px;
}
.avi-calc__shell {
    display: grid;
    grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.05fr);
    gap: 0;
    background: #fff;
    border: 1px solid rgba(208, 216, 228, 0.95);
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 16px 48px rgba(89, 122, 175, 0.1);
}
.avi-calc__form {
    padding: 28px 24px;
    background: #f8fafc;
    border-right: 1px solid rgba(208, 216, 228, 0.9);
}
.avi-calc__fields {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.avi-calc__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.avi-calc__label {
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    color: #334155;
}
.avi-calc__label em {
    font-style: normal;
    font-weight: 500;
    color: #64748b;
}
.avi-calc__field input[type="number"] {
    width: 100%;
    border: 1.5px solid #d8dee8;
    border-radius: 10px;
    padding: 11px 14px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--color-dark);
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.avi-calc__field input[type="number"]:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(40, 153, 81, 0.15);
}
.avi-calc__field input[type="range"] {
    width: 100%;
    accent-color: var(--color-secondary);
    cursor: pointer;
}
.avi-calc__range-val {
    font-family: var(--font-subtitle);
    font-size: 13px;
    color: var(--color-primary-dark);
}
.avi-calc__range-val strong {
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}

.avi-calc__results {
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.avi-calc__results-label {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-secondary);
}
.avi-calc__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.avi-calc__card {
    background: #EDF1F8;
    border-radius: 14px;
    padding: 16px 16px 14px;
    border: 1px solid rgba(89, 122, 175, 0.12);
}
.avi-calc__card:nth-child(odd) {
    background: rgba(40, 153, 81, 0.08);
    border-color: rgba(40, 153, 81, 0.16);
}
.avi-calc__card-label {
    display: block;
    margin-bottom: 8px;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.35;
    color: #64748b;
}
.avi-calc__card strong {
    display: block;
    font-family: var(--font-title);
    font-size: clamp(22px, 3vw, 28px);
    font-weight: 800;
    line-height: 1.15;
    color: var(--color-dark);
}
.avi-calc__card-sub {
    display: block;
    margin-top: 6px;
    font-family: var(--font-subtitle);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-primary-dark);
}
.avi-calc__disclaimer {
    margin: 0;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 1.6;
    color: #64748b;
}
.avi-calc__cta {
    margin-top: 4px;
}

@media (max-width: 900px) {
    .avi-calc__shell {
        grid-template-columns: 1fr;
    }
    .avi-calc__form {
        border-right: 0;
        border-bottom: 1px solid rgba(208, 216, 228, 0.9);
    }
}
@media (max-width: 600px) {
    .avi-calc {
        padding: 52px 0 56px;
    }
    .avi-calc__cards {
        grid-template-columns: 1fr;
    }
    .avi-calc__form,
    .avi-calc__results {
        padding: 22px 16px;
    }
}

/* ── Agent vocal IA — sécurité & contrôle ── */
.avi-gov {
    padding: 72px 0 80px;
    background: #fff;
}
.avi-gov .sp-section-header {
    margin-bottom: 36px;
}
.avi-gov .sp-section-sub {
    max-width: 720px;
}
.avi-gov__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.avi-gov__card {
    background: #f8fafc;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 16px;
    padding: 22px 18px 20px;
    transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.avi-gov__card:hover {
    border-color: rgba(89, 122, 175, 0.45);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}
.avi-gov__ico {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    background: var(--color-primary);
    color: #fff;
}
.avi-gov__card h3 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-dark);
}
.avi-gov__card p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--color-gray);
}
.avi-gov__note {
    margin: 24px auto 0;
    max-width: 920px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: #EDF1F8;
    border: 1px solid rgba(89, 122, 175, 0.22);
}
.avi-gov__note-ico {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: #fff;
}
.avi-gov__note p {
    margin: 0;
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.65;
    color: #334155;
}

@media (max-width: 980px) {
    .avi-gov__grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 600px) {
    .avi-gov {
        padding: 52px 0 56px;
    }
    .avi-gov__grid {
        grid-template-columns: 1fr;
    }
    .avi-gov__note {
        flex-direction: column;
        gap: 10px;
    }
}

/* ── Agent vocal IA — périmètre de prestation ── */
.avi-scope {
    padding: 72px 0 80px;
    background: #EDF0F6;
}
.avi-scope .sp-section-header {
    margin-bottom: 36px;
}
.avi-scope .sp-section-sub {
    max-width: 700px;
}
.avi-scope__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.avi-scope__item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 16px;
    background: #fff;
    border: 1px solid rgba(208, 216, 228, 0.9);
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.03);
    transition: border-color var(--transition), transform var(--transition);
}
.avi-scope__item:hover {
    border-color: rgba(40, 153, 81, 0.4);
    transform: translateY(-1px);
}
.avi-scope__check {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-secondary);
    color: #fff;
}
.avi-scope__item p {
    margin: 0;
    padding-top: 3px;
    font-family: var(--font-body);
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.45;
    color: #1e293b;
}

@media (max-width: 900px) {
    .avi-scope__grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 600px) {
    .avi-scope {
        padding: 52px 0 56px;
    }
    .avi-scope__grid {
        grid-template-columns: 1fr;
    }
}

/* ── Agent vocal IA — tarifs sans prix figés ── */
.avi-pricing .avi-pricing__sur-devis {
    font-size: 28px;
    font-weight: 800;
    font-family: var(--font-title);
    color: var(--color-dark);
}
.avi-pricing .sp-plan__duration {
    margin-top: 6px;
    line-height: 1.45;
}

/* ── Agent vocal IA — points essentiels ── */
.avi-essentials {
    padding: 72px 0 80px;
    background: #fff;
}
.avi-essentials .sp-section-header {
    margin-bottom: 40px;
}
.avi-essentials .sp-section-sub {
    max-width: 700px;
}
.avi-essentials__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.avi-essentials__card {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 28px 24px 24px;
    border-radius: 18px;
    border: 1.5px solid rgba(208, 216, 228, 0.95);
    background: #f8fafc;
    text-decoration: none;
    color: inherit;
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.avi-essentials__card:hover {
    border-color: rgba(40, 153, 81, 0.45);
    background: #fff;
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}
.avi-essentials__ico {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    background: var(--color-secondary);
    color: #fff;
    transition: transform .2s ease;
}
.avi-essentials__card:hover .avi-essentials__ico {
    transform: scale(1.06);
}
.avi-essentials__card h3 {
    margin: 0 0 10px;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.avi-essentials__card p {
    margin: 0 0 16px;
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--color-gray);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}
.avi-essentials__link {
    margin-top: auto;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    color: var(--color-secondary);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.avi-essentials__card:hover .avi-essentials__link {
    gap: 10px;
}

/* ── Agent vocal IA — maillage renforcé ── */
.avi-mesh {
    padding: 72px 0 80px;
    background: #EDF0F6;
}
.avi-mesh .sp-section-header {
    margin-bottom: 36px;
}
.avi-mesh .sp-section-sub {
    max-width: 680px;
}
.avi-mesh__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.avi-mesh__card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 26px 24px 24px;
    border-radius: 18px;
    background: var(--pole-4-bg);
    border: 1.5px solid rgba(114, 170, 149, 0.28);
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.avi-mesh__card:nth-child(2) {
    background: #EDF1F8;
    border-color: rgba(89, 122, 175, 0.28);
}
.avi-mesh__card:nth-child(3) {
    background: var(--pole-2-bg);
    border-color: rgba(191, 155, 121, 0.35);
}
.avi-mesh__card:nth-child(4) {
    background: #E8F5EE;
    border-color: rgba(40, 153, 81, 0.28);
}
.avi-mesh__card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.1);
    border-color: rgba(40, 153, 81, 0.5);
}
.avi-mesh__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}
.avi-mesh__ico {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--color-secondary);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}
.avi-mesh__arrow {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-secondary);
    transition: transform .2s ease;
}
.avi-mesh__card:hover .avi-mesh__arrow {
    transform: translateX(5px);
}
.avi-mesh__card h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--color-dark);
}
.avi-mesh__benefit {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55;
    color: #334155;
}
.avi-mesh__example {
    margin: 6px 0 0;
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.55;
    color: #64748b;
}
.avi-mesh__example span {
    font-family: var(--font-subtitle);
    font-weight: 700;
    color: var(--color-primary-dark);
}

@media (max-width: 900px) {
    .avi-essentials__grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 700px) {
    .avi-mesh__grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .avi-essentials,
    .avi-mesh {
        padding: 52px 0 56px;
    }
    .avi-essentials__grid {
        grid-template-columns: 1fr;
    }
}

/* ── Fin styles service pages ── */

/* =============================================
   MÉGA MENU — Barre de recherche par pôle
   ============================================= */
.mgm-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 14px;
}

.mgm-search-icon {
    position: absolute;
    left: 12px;
    color: var(--pole-color, var(--color-primary));
    pointer-events: none;
    flex-shrink: 0;
    transition: color var(--transition);
}

.mgm-search {
    width: 100%;
    padding: 9px 14px 9px 36px;
    border: 1.5px solid var(--color-border);
    border-radius: 8px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    color: var(--color-dark);
    background: var(--color-white);
    outline: none;
    transition: border-color var(--transition), box-shadow var(--transition);
    /* Supprime les contrôles natifs du type search */
    -webkit-appearance: none;
}

.mgm-search::placeholder { color: var(--color-gray); opacity: .75; }

.mgm-search:focus {
    border-color: var(--pole-color, var(--color-primary));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--pole-color, var(--color-primary)) 15%, transparent);
}

/* Supprime la croix native sur Chrome/Safari */
.mgm-search::-webkit-search-cancel-button { display: none; }

/* Résultats de recherche (remplace la grille quand actif) */
.mgm-search-results {
    margin-bottom: 6px;
}

.mgm-search-results[hidden] { display: none; }

/* Liste plate de résultats */
.mgm-sr-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mgm-sr-item a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 13.5px;
    color: var(--color-dark);
    text-decoration: none;
    transition: background var(--transition), color var(--transition);
}

.mgm-sr-item a:hover {
    background: var(--pole-bg, var(--color-light-gray));
    color: var(--pole-color, var(--color-primary));
}

/* Pastille de catégorie */
.mgm-sr-cat {
    font-size: 10.5px;
    font-weight: 700;
    font-family: var(--font-subtitle);
    padding: 2px 8px;
    border-radius: 20px;
    background: var(--pole-bg, var(--color-light-gray));
    color: var(--pole-color, var(--color-primary));
    white-space: nowrap;
    flex-shrink: 0;
}

/* Texte du lien avec emphase sur le match */
.mgm-sr-label { flex: 1; }
.mgm-sr-label mark {
    background: color-mix(in srgb, var(--pole-color, var(--color-primary)) 20%, transparent);
    color: var(--pole-color, var(--color-primary));
    border-radius: 3px;
    padding: 0 2px;
    font-style: normal;
    font-weight: 700;
}

/* Message "aucun résultat" */
.mgm-sr-empty {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    font-size: 13px;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
}

.mgm-sr-empty svg { color: var(--color-gray); flex-shrink: 0; }

/* ══════════════════════════════════════════════
   SOUS-SERVICES — bande de navigation rapide
   ══════════════════════════════════════════════ */
.sp-subservices {
    padding: 40px 0 48px;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
}
.sp-subservices__label {
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-gray);
    text-align: center;
    margin-bottom: 20px;
}
.sp-subservices__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.sp-subservices__grid > .sp-subsvc-card {
    height: 100%;
}
.sp-subsvc-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px 18px;
    border-radius: 12px;
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    text-decoration: none;
    color: var(--color-dark);
    transition: box-shadow .2s, border-color .2s, transform .2s;
    position: relative;
    cursor: pointer;
}
.sp-subsvc-card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,.09);
    transform: translateY(-2px);
}
.sp-subsvc-card:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}
.sp-subsvc-card--blue  { border-color: var(--pole-0); }
.sp-subsvc-card--blue:hover  { background: var(--pole-0-bg); }
.sp-subsvc-card--green { border-color: var(--pole-1); }
.sp-subsvc-card--green:hover { background: var(--pole-1-bg); }
.sp-subsvc-card--accent { border-color: var(--color-accent-dark); }
.sp-subsvc-card--accent:hover { background: var(--pole-2-bg); }
.sp-subsvc-card--soft  { border-color: var(--color-soft-blue); }
.sp-subsvc-card--soft:hover  { background: var(--pole-3-bg); }

.sp-subsvc-card__icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--color-light-gray);
    display: flex;
    align-items: center;
    justify-content: center;
}
.sp-subsvc-card--blue  .sp-subsvc-card__icon { background: var(--pole-0-bg); color: var(--pole-0); }
.sp-subsvc-card--green .sp-subsvc-card__icon { background: var(--pole-1-bg); color: var(--pole-1); }
.sp-subsvc-card--accent .sp-subsvc-card__icon { background: var(--pole-2-bg); color: var(--color-accent-dark); }
.sp-subsvc-card--soft  .sp-subsvc-card__icon { background: var(--pole-3-bg); color: var(--pole-3); }

.sp-subsvc-card__body { flex: 1; min-width: 0; }
.sp-subsvc-card__body h2,
.sp-subsvc-card__body h3 {
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    margin: 0 0 6px;
    color: var(--color-dark);
    line-height: 1.3;
}
.sp-subsvc-card__body p {
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--color-gray);
    margin: 0;
}
.sp-subsvc-card__cta {
    display: inline-block;
    margin-top: 10px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.3;
}
.sp-subsvc-card__points {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.sp-subsvc-card__points li {
    position: relative;
    padding-left: 14px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--color-dark);
    font-weight: 500;
}
.sp-subsvc-card__points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: .55;
}
.sp-subsvc-card__arrow {
    font-size: 16px;
    color: var(--color-primary);
    font-weight: 700;
    align-self: center;
    flex-shrink: 0;
    transition: transform .2s;
}
.sp-subsvc-card:hover .sp-subsvc-card__arrow { transform: translateX(4px); }

/* Variante 3 colonnes (RSE) */
.sp-subservices__grid--3 { grid-template-columns: repeat(3, 1fr); }
.sp-subservices__grid--3 .sp-subsvc-card { height: 100%; }
#services-ia-complementaires .sp-subsvc-card {
    align-items: center;
    overflow: hidden;
}
#services-ia-complementaires .sp-subsvc-card__body {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
}
#services-ia-complementaires .sp-subsvc-card__body p {
    max-width: none;
    width: 100%;
}
.sp-subservices__header {
    margin-bottom: 32px;
}
.sp-subservices__header .sp-section-sub {
    max-width: 720px;
}
.sp-subsvc-card--static {
    cursor: default;
}
.sp-subservices__outro {
    max-width: 720px;
    margin-top: 28px;
}
.sp-subservices__grid--5 { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 1100px) { .sp-subservices__grid--5 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .sp-subservices__grid--5 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .sp-subservices__grid--5 { grid-template-columns: 1fr; } }
.sp-subservices__grid--6 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .sp-subservices__grid--6 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .sp-subservices__grid--6 { grid-template-columns: 1fr; } }
.sp-subservices__note {
    max-width: 760px;
    margin: 28px auto 0;
    text-align: center;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}

/* ── Stratégie digitale — schéma business-first ── */
.strat-business .sp-section-header {
    margin-bottom: 36px;
}
.strat-flow {
    list-style: none;
    margin: 0 auto 36px;
    padding: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0 8px;
    max-width: 100%;
}
.strat-flow__step {
    position: relative;
    margin: 0 18px 0 0;
    padding: 12px 16px;
    min-width: 0;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark);
    background: var(--pole-2-bg);
    border: 1.5px solid rgba(191, 155, 121, 0.35);
    border-radius: 12px;
    line-height: 1.3;
}
.strat-flow__step:last-child {
    margin-right: 0;
}
.strat-flow__step:not(:last-child)::after {
    content: "→";
    position: absolute;
    left: auto;
    right: -14px;
    bottom: 50%;
    transform: translateY(50%);
    color: var(--pole-2);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

/* Schéma vertical — chaîne d’alerte infogérance */
.strat-flow--vertical {
    flex-direction: column;
    align-items: center;
    max-width: 320px;
    gap: 0;
    margin-bottom: 28px;
}
.strat-flow--vertical .strat-flow__step {
    margin: 0 0 28px;
    padding: 12px 22px;
    min-width: 240px;
    width: 100%;
    font-size: 15px;
}
.strat-flow--vertical .strat-flow__step:last-child {
    margin-bottom: 0;
    margin-right: 0;
}
.strat-flow--vertical .strat-flow__step:not(:last-child)::after {
    content: "↓";
    left: 50%;
    right: auto;
    bottom: -24px;
    transform: translateX(-50%);
    font-size: 16px;
}

/* Chaîne NC → action — horizontale (audit qualité interne) */
.strat-flow.strat-flow--h {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    max-width: 100%;
    gap: 0;
    margin-bottom: 28px;
}
.strat-flow--h .strat-flow__step {
    flex: 0 1 calc(25% - 16px);
    max-width: calc(25% - 16px);
    width: 100%;
    box-sizing: border-box;
    margin: 0 16px 32px 0;
    padding: 14px 12px;
    min-width: 0;
    font-size: 13.5px;
}
.strat-flow--h .strat-flow__step:nth-child(4),
.strat-flow--h .strat-flow__step:last-child {
    margin-right: 0;
}
.strat-flow--h .strat-flow__step:nth-child(4)::after {
    content: none;
}
@media (max-width: 900px) {
    .strat-flow.strat-flow--h {
        flex-direction: row;
        flex-wrap: wrap;
        max-width: none;
        align-items: stretch;
        gap: 0;
    }
    .strat-flow--h .strat-flow__step {
        flex: 0 1 calc(50% - 10px);
        max-width: calc(50% - 10px);
        min-width: 0;
        margin: 0 10px 28px 0;
        padding: 12px 14px;
        font-size: 14px;
    }
    .strat-flow--h .strat-flow__step:nth-child(4) {
        margin-right: 10px;
    }
    .strat-flow--h .strat-flow__step:nth-child(2n) {
        margin-right: 0;
    }
    .strat-flow--h .strat-flow__step:not(:last-child)::after {
        content: "→";
        left: auto;
        right: -11px;
        bottom: 50%;
        transform: translateY(50%);
        font-size: 15px;
    }
    .strat-flow--h .strat-flow__step:nth-child(2n)::after {
        content: none;
    }
}
@media (max-width: 560px) {
    .strat-flow--h .strat-flow__step {
        flex: 0 1 calc(50% - 8px);
        max-width: calc(50% - 8px);
        margin: 0 8px 24px 0;
        font-size: 13px;
        padding: 10px 10px;
    }
    .strat-flow--h .strat-flow__step:nth-child(4) {
        margin-right: 8px;
    }
}
.strat-flow--infra .strat-flow__step {
    background: var(--pole-3-bg);
    border-color: rgba(164, 178, 200, 0.55);
    color: #3d4d66;
}
.strat-flow--infra .strat-flow__step:not(:last-child)::after {
    color: #6b7c92;
}
.strat-flow--infra-h {
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    max-width: 100%;
    gap: 0 4px;
    margin-bottom: 32px;
    overflow-x: auto;
    padding: 4px 0 8px;
    -webkit-overflow-scrolling: touch;
}
.strat-flow--infra-h .strat-flow__step {
    flex: 1 1 0;
    min-width: 110px;
    max-width: 160px;
    margin: 0 16px 0 0;
    padding: 12px 10px;
    font-size: 13px;
}
.strat-flow--infra-h .strat-flow__step:last-child {
    margin-right: 0;
    margin-bottom: 0;
}
.strat-flow--infra-h .strat-flow__step:not(:last-child)::after {
    content: "→";
    left: auto;
    right: -12px;
    bottom: 50%;
    transform: translateY(50%);
    font-size: 14px;
}
@media (max-width: 900px) {
    .strat-flow--infra-h {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        max-width: none;
        overflow: visible;
        gap: 0;
    }
    .strat-flow--infra-h .strat-flow__step {
        flex: 0 1 calc(33.333% - 14px);
        max-width: none;
        min-width: 140px;
        margin: 0 14px 28px 0;
        font-size: 14px;
    }
    .strat-flow--infra-h .strat-flow__step:nth-child(3n),
    .strat-flow--infra-h .strat-flow__step:last-child {
        margin-right: 0;
    }
    .strat-flow--infra-h .strat-flow__step:not(:last-child)::after {
        content: "→";
        left: auto;
        right: -11px;
        bottom: 50%;
        transform: translateY(50%);
    }
}
@media (max-width: 560px) {
    .strat-flow--infra-h .strat-flow__step {
        flex: 0 1 calc(50% - 10px);
        min-width: 0;
        margin: 0 8px 28px 0;
    }
    .strat-flow--infra-h .strat-flow__step:nth-child(3n) {
        margin-right: 8px;
    }
    .strat-flow--infra-h .strat-flow__step:nth-child(2n) {
        margin-right: 0;
    }
}
.infra-alert__note {
    max-width: 720px;
    margin: 0 auto;
    padding: 16px 18px;
    text-align: center;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
    background: #fff;
    border: 1.5px solid rgba(164, 178, 200, 0.45);
    border-radius: var(--radius-md);
}
.infra-signals {
    list-style: none;
    margin: 0 auto 28px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    max-width: 860px;
}
.infra-signals li {
    margin: 0;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.35;
    color: #3d4d66;
    background: #fff;
    border: 1.5px solid rgba(164, 178, 200, 0.5);
    border-radius: 12px;
}
.infra-alert__bridge {
    max-width: 720px;
    margin: 18px auto 0;
    text-align: center;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
.infra-alert__bridge a {
    color: #5a6b83;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.infra-control__list {
    list-style: none;
    margin: 0 auto 28px;
    padding: 0;
    max-width: 640px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.infra-control__list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    padding: 12px 16px;
    background: #fff;
    border: 1.5px solid rgba(164, 178, 200, 0.4);
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.5;
    color: #3d4d66;
}
.infra-control__icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pole-3-bg);
    color: #6b7c92;
}
.infra-control__closing {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 900px) {
    .strat-flow {
        flex-direction: column;
        align-items: center;
        max-width: 280px;
        gap: 0;
    }
    .strat-flow__step {
        margin: 0 0 28px;
        padding: 12px 22px;
        min-width: 220px;
        font-size: 15px;
    }
    .strat-flow__step:last-child {
        margin-bottom: 0;
    }
    .strat-flow__step:not(:last-child)::after {
        content: "↓";
        left: 50%;
        right: auto;
        bottom: -24px;
        transform: translateX(-50%);
        font-size: 16px;
    }
}
.strat-business__prose {
    margin-top: 0;
    text-align: left;
}
.strat-business__prose p:last-child {
    margin-bottom: 0;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    border: 1.5px solid rgba(191, 155, 121, 0.35);
    background: #fff;
    color: var(--color-dark);
}

/* ── Stratégie digitale — matrice objectif → levier ── */
.strat-matrix__wrap {
    margin-top: 8px;
}
.strat-matrix {
    min-width: 520px;
}
.strat-matrix th,
.strat-matrix td {
    width: auto;
}
.strat-matrix thead th:first-child {
    width: 42%;
}
.strat-matrix tbody th {
    padding: 18px 24px;
    text-align: left;
    vertical-align: middle;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    border-top: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    background: transparent;
}
.strat-matrix tbody tr:nth-child(even) th,
.strat-matrix tbody tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.55);
}
.strat-matrix tbody td {
    vertical-align: middle;
}
.strat-matrix__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.strat-matrix__tags span {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--pole-2-bg);
    color: #5c4030;
    font-size: 12.5px;
    font-weight: 700;
    border: 1px solid rgba(191, 155, 121, 0.35);
    font-family: var(--font-subtitle);
}
.strat-matrix__note {
    max-width: 720px;
    margin: 20px auto 0;
    text-align: center;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
    font-style: italic;
}
@media (max-width: 640px) {
    .strat-matrix tbody th,
    .strat-matrix tbody td {
        padding: 14px 16px;
        font-size: 14px;
    }
}

/* ── Stratégie digitale — ce qu’on ne recommande pas ── */
.strat-avoid .sp-section-header {
    margin-bottom: 32px;
}
.strat-avoid__list {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.strat-avoid__list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0;
    padding: 16px 20px;
    font-size: 16px;
    line-height: 1.55;
    color: var(--color-dark);
    font-weight: 550;
    border-top: 1px solid var(--color-border);
}
.strat-avoid__list li:first-child {
    border-top: 0;
}
.strat-avoid__icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    margin-top: 1px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fef2f2;
    color: #b91c1c;
}
.strat-avoid__closing {
    max-width: 720px;
    margin: 28px auto 0;
    padding: 16px 18px;
    text-align: left;
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-dark);
    background: #fff;
    border: 1.5px solid rgba(191, 155, 121, 0.35);
    border-radius: var(--radius-md);
}
.strat-avoid__closing strong {
    font-weight: 700;
}

/* ── Stratégie digitale — exemple de roadmap ── */
.strat-roadmap-ex .sp-section-header {
    margin-bottom: 36px;
}
.strat-roadmap-ex__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.strat-roadmap-ex__phase {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 22px 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 100%;
    box-shadow: 0 8px 24px rgba(89, 60, 30, 0.04);
}
.strat-roadmap-ex__period {
    margin: 0;
    display: inline-flex;
    align-self: flex-start;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--pole-2-bg);
    border: 1px solid rgba(191, 155, 121, 0.35);
    color: #5c4030;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.strat-roadmap-ex__phase h3 {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 18px;
    font-weight: 800;
    color: var(--color-dark);
}
.strat-roadmap-ex__phase ul {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.strat-roadmap-ex__phase li {
    position: relative;
    margin: 0;
    padding: 8px 0 8px 16px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--color-gray);
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.strat-roadmap-ex__phase li:first-child {
    border-top: 0;
    padding-top: 0;
}
.strat-roadmap-ex__phase li:last-child {
    padding-bottom: 0;
}
.strat-roadmap-ex__phase li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.95em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-2);
}
.strat-roadmap-ex__phase li:first-child::before {
    top: 0.45em;
}
.strat-roadmap-ex__note {
    max-width: 720px;
    margin: 24px auto 0;
    text-align: center;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
    font-style: italic;
}
@media (max-width: 1000px) {
    .strat-roadmap-ex__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .strat-roadmap-ex__grid {
        grid-template-columns: 1fr;
    }
}

/* ── Stratégie digitale — section KPI ── */
.strat-kpi .sp-section-header {
    margin-bottom: 28px;
}
.strat-kpi__avoid {
    list-style: none;
    margin: 0 auto 28px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    max-width: 720px;
}
.strat-kpi__avoid li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 650;
    color: #64748b;
    font-family: var(--font-subtitle);
}
.strat-kpi__avoid .strat-avoid__icon {
    width: 22px;
    height: 22px;
    margin-top: 0;
    border-radius: 6px;
}
.strat-kpi__bridge {
    margin: 0 0 20px;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}
.strat-kpi__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.strat-kpi__card {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 22px 18px 18px;
    box-shadow: 0 8px 24px rgba(89, 60, 30, 0.04);
}
.strat-kpi__card h3 {
    margin: 0 0 12px;
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}
.strat-kpi__card ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.strat-kpi__card li {
    position: relative;
    margin: 0;
    padding: 8px 0 8px 16px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--color-gray);
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.strat-kpi__card li:first-child {
    border-top: 0;
    padding-top: 0;
}
.strat-kpi__card li:last-child {
    padding-bottom: 0;
}
.strat-kpi__card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.95em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-2);
}
.strat-kpi__card li:first-child::before {
    top: 0.45em;
}
.strat-kpi__closing {
    max-width: 720px;
    margin: 28px auto 0;
    padding: 16px 18px;
    text-align: left;
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-dark);
    background: #fff;
    border: 1.5px solid rgba(191, 155, 121, 0.35);
    border-radius: var(--radius-md);
}
@media (max-width: 1000px) {
    .strat-kpi__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .strat-kpi__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px)  { .sp-subservices__grid--3 { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════
   CAS D'USAGE (sp-usecases)
   ══════════════════════════════════════════════ */
.sp-usecases { padding: 80px 0; background: var(--color-white); }
.sp-usecases__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
}
.sp-usecases__grid--2x2 {
    grid-template-columns: repeat(2, 1fr);
}
.sp-usecase-card {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 28px 24px;
    transition: box-shadow .2s, transform .2s;
}
.sp-usecase-card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,.07);
    transform: translateY(-2px);
}
.sp-usecase-card__icon {
    margin-bottom: 16px;
}
.sp-usecase-card h3 {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--color-dark);
}
.sp-usecase-card p {
    font-size: 14px;
    color: var(--color-gray);
    line-height: 1.6;
    margin: 0;
}
.sp-usecase-card__list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sp-usecase-card__list li {
    position: relative;
    padding-left: 16px;
    font-size: 14px;
    color: var(--color-gray);
    line-height: 1.55;
}
.sp-usecase-card__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-1, var(--color-secondary));
}
.sp-usecase-card--highlight {
    border-color: rgba(40, 153, 81, 0.35);
    background: linear-gradient(160deg, #f4faf6 0%, #ffffff 70%);
}
.sp-arch-note {
    margin: 36px auto 0;
    max-width: 640px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

/* ── Bloc MVP — page développement logiciel (aussi en inline page) ─ */
.dl-mvp {
    padding: 28px 0 72px;
    background: #fff;
}
.dl-mvp__card {
    width: 100%;
    max-width: 920px;
    margin: 0 auto;
    padding: 40px 44px;
    border-radius: 22px;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    background: linear-gradient(160deg, #f4faf6 0%, #ffffff 55%, #eef7f1 100%);
    box-shadow: 0 18px 50px rgba(40, 153, 81, 0.08);
    box-sizing: border-box;
}
.dl-mvp__card .sp-section-header {
    margin-bottom: 32px;
    text-align: center;
}
.dl-mvp__flow {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    box-sizing: border-box;
}
.dl-mvp__step {
    display: block;
    width: 100%;
    padding: 18px 20px;
    border-radius: 14px;
    background: #fff;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    box-shadow: 0 6px 18px rgba(40, 153, 81, 0.06);
    box-sizing: border-box;
}
.dl-mvp__step--soft {
    text-align: center;
    background: linear-gradient(135deg, #edf8f1 0%, #e3f4e9 100%);
    border-color: rgba(40, 153, 81, 0.45);
}
.dl-mvp__step-label {
    margin: 0;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}
.dl-mvp__step--soft .dl-mvp__step-label {
    color: #1a5c32;
}
.dl-mvp__list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.dl-mvp__list li {
    position: relative;
    padding-left: 14px;
    font-size: 14px;
    line-height: 1.5;
    color: #475569;
}
.dl-mvp__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-1, #289951);
}
.dl-mvp__arrow {
    display: block;
    text-align: center;
    color: var(--pole-1, #289951);
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}
.dl-mvp__actions {
    margin-top: 28px;
    display: flex;
    justify-content: center;
    width: 100%;
}
@media (max-width: 600px) {
    .dl-mvp {
        padding: 12px 0 56px;
    }
    .dl-mvp__card {
        padding: 28px 20px;
    }
    .dl-mvp__actions .btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 900px) { .sp-usecases__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) {
    .sp-usecases__grid,
    .sp-usecases__grid--2x2 { grid-template-columns: 1fr; }
}

/* Grille 7 cartes (ex. plateformes e-commerce) : dernière carte centrée */
@media (min-width: 901px) {
    .sp-usecases__grid--7 .sp-usecase-card:last-child {
        grid-column: 2;
    }
}
@media (min-width: 601px) and (max-width: 900px) {
    .sp-usecases__grid--7 .sp-usecase-card:last-child {
        grid-column: 1 / -1;
        max-width: calc(50% - 12px);
        justify-self: center;
    }
}

/* Section propriété / liberté (e-commerce) */
.sp-ownership {
    background: var(--color-bg);
}
.sp-ownership-quote {
    margin: 48px auto 0;
    max-width: 720px;
    text-align: center;
    padding: 28px 32px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--pole-1, var(--color-primary));
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}
.sp-ownership-quote p {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(18px, 2.4vw, 24px);
    font-weight: 700;
    line-height: 1.45;
    color: var(--color-dark);
}
.sp-ownership-quote strong {
    color: var(--pole-1, var(--color-primary));
    font-weight: 800;
}

.sp-delai-note {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
    align-items: flex-start;
    opacity: 0.85;
    font-size: 12.5px;
    line-height: 1.55;
}

/* Comparatif CMS vs sur mesure */
.sp-compare-table-wrap {
    margin-top: 40px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-bg);
}
.sp-compare-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 560px;
}
.sp-compare-table th,
.sp-compare-table td {
    width: 50%;
    padding: 18px 24px;
    text-align: left;
    vertical-align: top;
    font-size: 15px;
    line-height: 1.55;
}
.sp-compare-table thead th {
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
}
.sp-compare-table thead th:first-child {
    border-right: 1px solid var(--color-border);
}
.sp-compare-table tbody td {
    color: var(--color-gray);
    border-top: 1px solid var(--color-border);
}
.sp-compare-table tbody td:first-child {
    border-right: 1px solid var(--color-border);
    color: var(--color-dark);
    font-weight: 500;
}
.sp-compare-table tbody tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.55);
}
.sp-compare-table--3col th,
.sp-compare-table--3col td {
    width: 33.333%;
}
.sp-compare-table--3col thead th:not(:last-child),
.sp-compare-table--3col tbody td:not(:last-child) {
    border-right: 1px solid var(--color-border);
}
.sp-compare-table--3col tbody td {
    color: var(--color-gray);
    font-weight: 400;
}
.sp-compare-table--3col tbody td:first-child {
    color: var(--color-gray);
    font-weight: 400;
}
.sp-compare-table--3col {
    min-width: 720px;
}
.sp-compare-table--4col th,
.sp-compare-table--4col td {
    width: 25%;
}
.sp-compare-table--4col thead th:not(:last-child),
.sp-compare-table--4col tbody td:not(:last-child) {
    border-right: 1px solid var(--color-border);
}
.sp-compare-table--4col tbody td {
    color: var(--color-gray);
    font-weight: 400;
}
.sp-compare-table--4col tbody td:first-child {
    color: var(--color-dark);
    font-weight: 600;
}
.sp-compare-table--4col {
    min-width: 720px;
}
@media (max-width: 640px) {
    .sp-compare-table th,
    .sp-compare-table td {
        padding: 14px 16px;
        font-size: 14px;
    }
}

/* Comparateur e-commerce interactif */
.ecom-cmp {
    padding: 80px 0;
    background: linear-gradient(180deg, #f6faf7 0%, #ffffff 55%);
}
.ecom-cmp__intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 32px;
}
.ecom-cmp__shell {
    background: #fbfdff;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 24px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
    padding: clamp(12px, 1.6vw, 18px);
    overflow: hidden;
}
.ecom-cmp__layout {
    display: grid;
    grid-template-columns: minmax(260px, 0.38fr) minmax(0, 0.62fr);
    gap: 14px;
    align-items: start;
}
.ecom-cmp__config {
    position: sticky;
    top: 80px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: 16px 14px 14px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
    max-height: calc(100vh - 96px);
    overflow: auto;
}
.ecom-cmp__config-title {
    margin: 0 0 12px;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-dark);
}
.ecom-cmp__block {
    border: 0;
    margin: 0 0 12px;
    padding: 0;
    min-width: 0;
}
.ecom-cmp__legend {
    padding: 0;
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #475569;
    font-family: var(--font-subtitle);
}
.ecom-cmp__options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.ecom-cmp__options--stack {
    flex-direction: column;
}
.ecom-cmp__opt {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: auto;
    min-height: 36px;
    padding: 7px 11px;
    border-radius: 10px;
    border: 1.5px solid #d0d8e4;
    background: #fff;
    color: #1e293b;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
}
.ecom-cmp__options--stack .ecom-cmp__opt {
    width: 100%;
}
.ecom-cmp__opt:hover {
    border-color: #94a3b8;
}
.ecom-cmp__opt:focus-visible {
    outline: 2px solid var(--pole-1, #289951);
    outline-offset: 2px;
}
.ecom-cmp__opt.is-selected {
    background: rgba(40, 153, 81, 0.1);
    border-color: #289951;
    color: #14532d;
    box-shadow: inset 0 0 0 1px rgba(40, 153, 81, 0.15);
}
.ecom-cmp__check {
    display: none;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #289951;
    color: #fff;
    align-items: center;
    justify-content: center;
}
.ecom-cmp__opt.is-selected .ecom-cmp__check {
    display: inline-flex;
}
.ecom-cmp__reset {
    width: 100%;
    margin-top: 4px;
}
.ecom-cmp__result {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: 24px 22px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
    position: sticky;
    top: 80px;
}
.ecom-cmp__result-head {
    margin-bottom: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--color-border);
}
.ecom-cmp__result-label {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    font-family: var(--font-subtitle);
}
.ecom-cmp__result-title {
    margin: 0 0 6px;
    font-family: var(--font-title);
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 900;
    color: var(--color-dark);
    line-height: 1.2;
}
.ecom-cmp__result-price {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--pole-1, #289951);
}
.ecom-cmp__meta {
    display: grid;
    gap: 14px;
    margin: 0 0 20px;
}
.ecom-cmp__meta-item {
    margin: 0;
}
.ecom-cmp__meta-item dt {
    margin: 0 0 4px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    font-family: var(--font-subtitle);
}
.ecom-cmp__meta-item dd {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.45;
}
.ecom-cmp__badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}
.ecom-cmp__badge--low {
    background: rgba(40, 153, 81, 0.12);
    color: #166534;
}
.ecom-cmp__badge--mid {
    background: rgba(245, 158, 11, 0.15);
    color: #92400e;
}
.ecom-cmp__badge--high {
    background: rgba(220, 38, 38, 0.1);
    color: #991b1b;
}
.ecom-cmp__points {
    margin-bottom: 16px;
    padding: 16px;
    background: var(--color-bg, #f8fafc);
    border-radius: 14px;
    border: 1px solid var(--color-border);
}
.ecom-cmp__points-title {
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    font-family: var(--font-title);
}
.ecom-cmp__points-list {
    margin: 0;
    padding: 0 0 0 18px;
    display: grid;
    gap: 6px;
}
.ecom-cmp__points-list li {
    font-size: 13.5px;
    color: var(--color-gray);
    line-height: 1.45;
}
.ecom-cmp__disclaimer {
    margin: 0 0 18px;
    font-size: 13px;
    font-style: italic;
    color: #64748b;
}
.ecom-cmp__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
@media (max-width: 900px) {
    .ecom-cmp__layout {
        grid-template-columns: 1fr;
    }
    .ecom-cmp__config,
    .ecom-cmp__result {
        position: static;
        max-height: none;
    }
}

/* Grille tarifs 4 colonnes (Conseil stratégique) */
.sp-pricing__grid--4col {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
@media (max-width: 1200px) {
    .sp-pricing__grid--4col {
        grid-template-columns: repeat(2, 1fr);
        max-width: none;
        margin: 0;
    }
}
@media (max-width: 700px) {
    .sp-pricing__grid--4col {
        grid-template-columns: 1fr;
        max-width: 480px;
        margin: 0 auto;
    }
}

/* ══════════════════════════════════════════════
   PROFILS / VARIABLES
   ══════════════════════════════════════════════ */
.sp-profiles {
    padding: 80px 0;
    background: var(--color-white);
}
.sp-profiles__inner {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 60px;
    align-items: center;
}
.sp-profiles__visual img {
    width: 100%;
    border-radius: 16px;
    object-fit: cover;
}
.sp-section-header--left { text-align: left; }
.sp-section-header--left .sp-section-tag,
.sp-section-header--left h2,
.sp-section-header--left .sp-section-sub { text-align: left; }

.sp-variables-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-top: 28px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    overflow: hidden;
}
.sp-variable-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 20px;
    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}
.sp-variable-item:nth-child(2n) { border-right: none; }
.sp-variables-grid:has(> .sp-variable-item:nth-child(even):last-child) .sp-variable-item:nth-last-child(-n+2) {
    border-bottom: none;
}
.sp-variable-item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    border-right: none;
    border-bottom: none;
}
.sp-variable-label {
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-primary);
}
.sp-variable-value {
    font-size: 13.5px;
    color: var(--color-gray);
    line-height: 1.4;
}

.gov-ctx {
    margin-top: 48px;
}
.gov-ctx__intro {
    margin: 0 0 20px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
    text-align: center;
}
.gov-ctx__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.gov-ctx__card {
    padding: 22px 20px 18px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.gov-ctx__card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}
.gov-ctx__card h3 {
    margin: 0 0 14px;
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-dark);
}
.gov-ctx__prio {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.gov-ctx__card ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.gov-ctx__card li {
    position: relative;
    padding: 7px 0 7px 14px;
    font-size: 14px;
    line-height: 1.4;
    color: #475569;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.gov-ctx__card li:first-child {
    border-top: 0;
    padding-top: 0;
}
.gov-ctx__card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.85em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-secondary);
}
.gov-ctx__card li:first-child::before {
    top: 0.45em;
}

/* ══════════════════════════════════════════════
   SMQ — ÉTAPES DE PROJET (sp-process__steps)
   ══════════════════════════════════════════════ */
.sp-process__steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 48px;
    position: relative;
}
.sp-process__steps::before {
    content: '';
    position: absolute;
    left: 28px;
    top: 48px;
    bottom: 48px;
    width: 2px;
    background: var(--color-border);
    z-index: 0;
}
.sp-step {
    display: flex;
    gap: 28px;
    align-items: flex-start;
    padding: 28px 0;
    position: relative;
    z-index: 1;
}
.sp-step__number {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 700;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--color-primary);
}
.sp-step:nth-child(2) .sp-step__number { background: var(--color-secondary); box-shadow: 0 0 0 2px var(--color-secondary); }
.sp-step:nth-child(3) .sp-step__number { background: var(--color-accent-dark); box-shadow: 0 0 0 2px var(--color-accent-dark); }
.sp-step:nth-child(4) .sp-step__number { background: var(--pole-4); box-shadow: 0 0 0 2px var(--pole-4); }
.sp-step:nth-child(5) .sp-step__number { background: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary); }
.sp-step:nth-child(6) .sp-step__number { background: var(--color-secondary); box-shadow: 0 0 0 2px var(--color-secondary); }
.sp-step:nth-child(7) .sp-step__number { background: var(--color-accent-dark); box-shadow: 0 0 0 2px var(--color-accent-dark); }
.sp-step:nth-child(8) .sp-step__number { background: var(--pole-4); box-shadow: 0 0 0 2px var(--pole-4); }
.sp-step:nth-child(9) .sp-step__number { background: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary); }
.sp-step:nth-child(10) .sp-step__number { background: var(--color-secondary); box-shadow: 0 0 0 2px var(--color-secondary); }

.sp-step__content {
    flex: 1;
    padding-top: 10px;
}
.sp-step__content h3 {
    font-family: var(--font-subtitle);
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--color-dark);
}
.sp-step__content p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-gray);
    margin: 0 0 14px;
}
.sp-step__content a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-step__content a:hover {
    color: var(--color-primary-dark);
}
.sp-step__duration {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-primary);
    background: var(--pole-0-bg);
    padding: 5px 12px;
    border-radius: 20px;
    font-family: var(--font-subtitle);
}
.sp-step__duration svg { flex-shrink: 0; }
.sp-step__list {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    max-width: 560px;
}
.sp-step__list li {
    font-size: 13px;
    font-weight: 650;
    line-height: 1.3;
    color: var(--color-dark);
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 5px 12px;
}

/* ══════════════════════════════════════════════
   TIMELINE HORIZONTALE (audit qualité interne)
   ══════════════════════════════════════════════ */
.sp-process__hint {
    margin: 4px 0 0;
    text-align: center;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-gray);
}
.sp-process__steps--h {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px 0;
    margin-top: 36px;
    position: relative;
    list-style: none;
    padding: 0;
}
.sp-process__steps--h::before {
    display: none;
}
.sp-process__steps--h .sp-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 0 14px 4px;
    position: relative;
    z-index: 1;
    cursor: default;
}
.sp-process__steps--h .sp-step:focus {
    outline: none;
}
.sp-process__steps--h .sp-step:focus-visible .sp-step__number {
    outline: 2px solid var(--color-dark);
    outline-offset: 3px;
}
.sp-process__steps--h:not(.sp-process__steps--h3):not(.sp-process__steps--h5):not(.sp-process__steps--h9) .sp-step:not(:nth-child(4)):not(:nth-child(8))::after {
    content: '';
    position: absolute;
    top: 23px;
    left: calc(50% + 24px);
    right: calc(-50% + 24px);
    height: 2px;
    background: var(--color-border);
    z-index: 0;
    pointer-events: none;
}
.sp-process__steps--h3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sp-process__steps--h3 .sp-step:not(:nth-child(3n))::after {
    content: '';
    position: absolute;
    top: 23px;
    left: calc(50% + 24px);
    right: calc(-50% + 24px);
    height: 2px;
    background: var(--color-border);
    z-index: 0;
    pointer-events: none;
}
.sp-process__steps--h5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.sp-process__steps--h5 .sp-step:not(:nth-child(5)):not(:nth-child(10))::after {
    content: '';
    position: absolute;
    top: 23px;
    left: calc(50% + 24px);
    right: calc(-50% + 24px);
    height: 2px;
    background: var(--color-border);
    z-index: 0;
    pointer-events: none;
}
.sp-process__steps--h5 .sp-step {
    padding: 0 10px 4px;
}
.sp-process__steps--h5 .sp-step__content h3 {
    font-size: 13.5px;
}
.sp-process__steps--h9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
    gap: 24px 0;
}
.sp-process__steps--h9 .sp-step {
    padding: 0 6px 4px;
}
.sp-process__steps--h9 .sp-step__content h3 {
    font-size: 12.5px;
}
.sp-process__steps--h9 .sp-step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 23px;
    left: calc(50% + 24px);
    right: calc(-50% + 24px);
    height: 2px;
    background: var(--color-border);
    z-index: 0;
    pointer-events: none;
}
@media (max-width: 1200px) {
    .sp-process__steps--h9 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 28px 0;
    }
    .sp-process__steps--h9 .sp-step:nth-child(5)::after {
        content: none;
        display: none;
    }
}
.sp-process__steps--h .sp-step__number {
    position: relative;
    z-index: 1;
    width: 48px;
    height: 48px;
    font-size: 15px;
    transition: transform 0.18s ease;
}
.sp-process__steps--h .sp-step:hover .sp-step__number,
.sp-process__steps--h .sp-step:focus-within .sp-step__number,
.sp-process__steps--h .sp-step.is-open .sp-step__number {
    transform: scale(1.06);
}
.sp-process__steps--h .sp-step__content {
    padding-top: 0;
    width: 100%;
}
.sp-process__steps--h .sp-step__content h3 {
    font-size: 14.5px;
    margin: 0;
    line-height: 1.35;
}
.sp-process__steps--h .sp-step__content p {
    margin: 6px 0 0;
    font-size: 13.5px;
    line-height: 1.5;
}
.sp-process__steps--h .sp-step__detail p {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
}
.sp-process__steps--h .sp-step__list {
    margin: 10px 0 0;
    max-width: none;
}

.sp-process__panel {
    display: none;
    margin: 8px auto 0;
    max-width: 640px;
    min-height: 92px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 16px 20px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
}
.sp-process__panel-kicker {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}
.sp-process__panel-kicker span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    color: var(--color-primary);
    font-size: 12px;
    font-weight: 700;
}
.sp-process__panel-body p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--color-gray);
}
.sp-process__panel-body .sp-step__list {
    margin: 10px 0 0;
    max-width: none;
}

@media (hover: hover) and (pointer: fine) {
    .sp-process__steps--h.is-enhanced .sp-step {
        cursor: pointer;
    }
    .sp-process__steps--h.is-enhanced .sp-step__detail {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .sp-process__steps--h.is-enhanced + .sp-process__panel {
        display: block;
    }
}

@media (hover: none), (pointer: coarse) {
    .sp-process__hint {
        display: none;
    }
    .sp-process__panel {
        display: none !important;
    }
    .sp-process__steps--h .sp-step__detail {
        margin-top: 4px;
    }
    .sp-process__steps--h .sp-step__list {
        justify-content: center;
    }
}

@media (max-width: 900px) {
    .sp-process__steps--h {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px 8px;
    }
    .sp-process__steps--h .sp-step:not(:nth-child(4)):not(:nth-child(8))::after,
    .sp-process__steps--h3 .sp-step:not(:nth-child(3n))::after,
    .sp-process__steps--h5 .sp-step:not(:nth-child(5)):not(:nth-child(10))::after,
    .sp-process__steps--h9 .sp-step:not(:last-child)::after {
        display: none;
    }
    .sp-process__steps--h .sp-step:nth-child(odd)::after {
        content: '';
        display: block;
        position: absolute;
        top: 23px;
        left: calc(50% + 24px);
        right: calc(-50% + 24px);
        height: 2px;
        background: var(--color-border);
        z-index: 0;
        pointer-events: none;
    }
    .sp-process__steps--h .sp-step:last-child::after {
        display: none;
    }
}

@media (max-width: 600px) {
    .sp-process__hint {
        display: none;
    }
    .sp-process__panel {
        display: none !important;
    }
    .sp-process__steps--h {
        grid-template-columns: 1fr;
        gap: 0;
        margin-top: 24px;
    }
    .sp-process__steps--h::before {
        display: block;
        left: 23px;
        top: 24px;
        bottom: 24px;
    }
    .sp-process__steps--h .sp-step {
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
        gap: 16px;
        padding: 16px 0;
    }
    .sp-process__steps--h .sp-step::after,
    .sp-process__steps--h .sp-step:nth-child(odd)::after {
        display: none;
    }
    .sp-process__steps--h.is-enhanced .sp-step__detail {
        position: static;
        width: auto;
        height: auto;
        padding: 0;
        margin: 4px 0 0;
        overflow: visible;
        clip: auto;
        white-space: normal;
    }
    .sp-process__steps--h .sp-step__content h3 {
        font-size: 16px;
        margin-bottom: 6px;
    }
    .sp-process__steps--h .sp-step__list {
        justify-content: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sp-process__steps--h .sp-step__number,
    .sp-process__steps--h .sp-step__detail {
        transition: none;
    }
    .sp-process__steps--h .sp-step:hover .sp-step__number,
    .sp-process__steps--h .sp-step:focus-within .sp-step__number,
    .sp-process__steps--h .sp-step.is-open .sp-step__number {
        transform: none;
    }
}

/* ══════════════════════════════════════════════
   GRILLE BÉNÉFICES « 4 cartes » : 2×2 desktop (ex-4 col)
   ══════════════════════════════════════════════ */
.sp-reasons__grid--4col {
    grid-template-columns: repeat(2, 1fr);
}
.sp-reasons__grid--3col {
    grid-template-columns: repeat(3, 1fr);
}
.sp-reasons__grid--4across {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.sp-reasons__grid.sp-reasons__grid--4across {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 1100px) {
    #roles-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #iso-27001-roles .sp-reasons__grid.sp-reasons__grid--4across,
    #gap-analysis-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #iso-27001-gap-analysis .sp-reasons__grid.sp-reasons__grid--4across,
    #audit-interne-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #internal-audit-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #cout-reel-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #iso-27001-real-cost .sp-reasons__grid.sp-reasons__grid--4across,
    #enjeux-rse .sp-reasons__grid.sp-reasons__grid--4across,
    #kpi-rse .sp-reasons__grid.sp-reasons__grid--4across,
    #gouvernance-rse .sp-reasons__grid.sp-reasons__grid--4across,
    #strategie-rse-maturite .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-issues .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-kpis .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-governance .sp-reasons__grid.sp-reasons__grid--4across,
    #csr-strategy-by-maturity .sp-reasons__grid.sp-reasons__grid--4across,
    #couverture-audit .sp-reasons__grid.sp-reasons__grid--4across,
    #audit-coverage .sp-reasons__grid.sp-reasons__grid--4across,
    #classification-vulnerabilites .sp-reasons__grid.sp-reasons__grid--4across,
    #vulnerability-classification .sp-reasons__grid.sp-reasons__grid--4across,
    #protections-deployees .sp-reasons__grid.sp-reasons__grid--4across,
    #protections-deployed .sp-reasons__grid.sp-reasons__grid--4across,
    #outils-tiers .sp-reasons__grid.sp-reasons__grid--4across,
    #third-party-tools .sp-reasons__grid.sp-reasons__grid--4across {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    #feuille-de-route .sp-reasons__grid.sp-reasons__grid--3col,
    #roadmap .sp-reasons__grid.sp-reasons__grid--3col {
        grid-template-columns: 1fr;
    }
}
@media (min-width: 1101px) {
    #roles-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #iso-27001-roles .sp-reasons__grid.sp-reasons__grid--4across,
    #gap-analysis-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #iso-27001-gap-analysis .sp-reasons__grid.sp-reasons__grid--4across,
    #audit-interne-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #internal-audit-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #cout-reel-iso-27001 .sp-reasons__grid.sp-reasons__grid--4across,
    #iso-27001-real-cost .sp-reasons__grid.sp-reasons__grid--4across {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px;
    }
    #roles-iso-27001 .sp-reason-card,
    #iso-27001-roles .sp-reason-card,
    #gap-analysis-iso-27001 .sp-reason-card,
    #iso-27001-gap-analysis .sp-reason-card,
    #audit-interne-iso-27001 .sp-reason-card,
    #internal-audit-iso-27001 .sp-reason-card,
    #cout-reel-iso-27001 .sp-reason-card,
    #iso-27001-real-cost .sp-reason-card {
        padding: 22px 18px;
        min-width: 0;
    }
}
@media (max-width: 900px) {
    .sp-reasons__grid--4across,
    .sp-reasons__grid.sp-reasons__grid--4across {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 900px) {
    .sp-reasons__grid--3col {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 640px) {
    .sp-reasons__grid--3col {
        grid-template-columns: 1fr;
    }
}
/* 4 blocs par ligne (ex. bénéfices développement logiciel) */
.sp-reasons__grid.sp-reasons__grid--per4 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    grid-template-columns: none;
}
.sp-reasons__grid.sp-reasons__grid--per4 > .sp-reason-card {
    flex: 0 1 calc(25% - 18px);
    max-width: calc(25% - 18px);
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 1100px) {
    .sp-reasons__grid.sp-reasons__grid--per4 > .sp-reason-card {
        flex: 0 1 calc(50% - 12px);
        max-width: calc(50% - 12px);
    }
}
@media (max-width: 600px) {
    .sp-reasons__grid.sp-reasons__grid--per4 > .sp-reason-card {
        flex: 0 1 100%;
        max-width: 100%;
    }
}
.sp-reasons__grid--5 {
    grid-template-columns: repeat(6, 1fr);
}
.sp-reasons__grid--5 > .sp-reason-card {
    grid-column: span 2;
}
@media (min-width: 901px) {
    .sp-reasons__grid--5 > .sp-reason-card:nth-child(4) {
        grid-column: 2 / span 2;
    }
    .sp-reasons__grid--5 > .sp-reason-card:nth-child(5) {
        grid-column: 4 / span 2;
    }
}
@media (max-width: 900px) {
    .sp-reasons__grid--5 {
        grid-template-columns: repeat(2, 1fr);
    }
    .sp-reasons__grid--5 > .sp-reason-card,
    .sp-reasons__grid--5 > .sp-reason-card:nth-child(4),
    .sp-reasons__grid--5 > .sp-reason-card:nth-child(5) {
        grid-column: auto;
    }
}
@media (max-width: 600px) {
    .sp-reasons__grid--4col { grid-template-columns: 1fr; }
    .sp-reasons__grid--4across,
    .sp-reasons__grid.sp-reasons__grid--4across { grid-template-columns: 1fr; }
    #protections-deployees .sp-reasons__grid.sp-reasons__grid--4across,
    #protections-deployed .sp-reasons__grid.sp-reasons__grid--4across,
    #outils-tiers .sp-reasons__grid.sp-reasons__grid--4across,
    #third-party-tools .sp-reasons__grid.sp-reasons__grid--4across { grid-template-columns: 1fr; }
    .sp-reasons__grid--5 { grid-template-columns: 1fr; }
    .sp-process__steps::before { display: none; }
    .sp-step { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* ══════════════════════════════════════════════
   RESPONSIVE — nouveaux composants
   ══════════════════════════════════════════════ */
@media (max-width: 1100px) {
    .sp-subservices__grid { grid-template-columns: repeat(2, 1fr); }
    .sp-profiles__inner { grid-template-columns: 1fr; }
    .sp-profiles__visual { display: none; }
    .gov-ctx__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .sp-subservices__grid { grid-template-columns: 1fr; }
    .sp-variables-grid { grid-template-columns: 1fr; }
    .sp-variable-item { border-right: none; }
    .sp-variable-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--color-border); }
    .sp-variable-item:last-child { border-bottom: none; }
    .gov-ctx__grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .footer-band__inner {
        grid-template-columns: 1fr;
    }
    .footer-band__block--center {
        justify-self: start;
        align-items: flex-start;
        text-align: left;
    }
    .footer-band__block--end {
        justify-self: stretch;
    }
    .footer-band__contact {
        flex-direction: column;
    }
    .footer-legal__pay {
        text-align: left;
    }
    .mgm-cards-grid { grid-template-columns: 1fr; }
    .mgm-panel-layout { grid-template-columns: 1fr; }
    .mgm-panel-right {
        border-left: none;
        border-top: 1px solid var(--color-border);
        padding-left: 0;
        padding-top: 20px;
    }
    .megamenu-tabs { overflow-x: auto; }
    .mgm-tab { flex: 0 0 auto; min-width: 140px; }
}

/* Footer — mobile : tout centré (surcharge du bloc 900px ci-dessus) */
@media (max-width: 767px) {
    .site-footer .footer-band__inner {
        justify-items: center;
    }

    .site-footer .footer-band__block {
        flex-direction: column;
        align-items: center;
        text-align: center;
        width: 100%;
        max-width: 28rem;
        margin-left: auto;
        margin-right: auto;
    }

    .site-footer .footer-band__block--center {
        justify-self: center;
        align-items: center;
        text-align: center;
    }

    .site-footer .footer-band__block--end {
        justify-self: center;
    }

    .site-footer .footer-band__contact-item {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .site-footer .footer-band__contact-stack {
        align-items: center;
        width: 100%;
    }

    .site-footer .footer-band__contact {
        align-items: center;
        text-align: center;
        justify-content: center;
        width: 100%;
    }

    .site-footer .footer-band__ctas {
        align-items: center;
        width: 100%;
    }

    .site-footer .footer-cta {
        width: 100%;
        max-width: 300px;
    }

    .site-footer .footer-social {
        justify-content: center;
    }

    .site-footer .footer-main .footer-col,
    .site-footer .footer-col__title,
    .site-footer .footer-col__list {
        text-align: center;
    }

    .site-footer .footer-col__list a:hover {
        padding-left: 0;
    }

    .site-footer .footer-legal__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .site-footer .footer-legal__links {
        justify-content: center;
    }

    .site-footer .footer-legal__pay {
        text-align: center;
        max-width: none;
    }
}

@media (max-width: 768px) {
    .header-nav { display: none; }
    .topbar-actions { gap: 6px; }
    .topbar-btn { font-size: 12px; padding: 5px 10px; }
}

@media (max-width: 600px) {
    .header-main-inner { min-height: 56px; }
    .logo svg { width: 130px; }
    .footer-columns { grid-template-columns: 1fr; }
    .mgm-tab-icon { width: 32px; height: 32px; }
    .mgm-tab { padding: 12px 10px; min-width: 110px; }
    .topbar-btn--primary span { display: none; }
}

/* ══════════════════════════════════════════════
   PAGE CONTACT — pré-devis, formulaire, coordonnées
   ══════════════════════════════════════════════ */
.contact-page {
    padding-bottom: 72px;
}
.contact-alert {
    max-width: var(--container-width);
    margin: 16px auto 0;
    padding: 14px 20px;
    border-radius: var(--radius-md);
    font-size: 15px;
    font-family: var(--font-body);
}
.contact-alert--success {
    background: var(--pole-1-bg);
    border: 1.5px solid var(--color-secondary);
    color: var(--color-dark);
}
.contact-alert--error {
    background: #FEF2F2;
    border: 1.5px solid #F87171;
    color: #7F1D1D;
}
.contact-page__intro {
    text-align: center;
    padding: 32px 16px 28px;
    max-width: 720px;
}
.contact-page__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    background: var(--pole-0-bg);
    padding: 8px 16px;
    border-radius: 999px;
    margin-bottom: 16px;
}
.contact-page__title {
    font-size: clamp(1.75rem, 4vw, 2.35rem);
    color: var(--color-primary-dark);
    margin-bottom: 12px;
}
.contact-page__subtitle {
    font-size: 1.05rem;
    color: var(--color-gray);
    line-height: 1.65;
}
.contact-quote-wrap {
    margin-top: 8px;
    margin-bottom: 48px;
}
.contact-quote {
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--color-primary) 0%, #3d5a9e 45%, #2e4a84 100%);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}
.contact-quote__inner {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 0;
    align-items: stretch;
}
@media (max-width: 1024px) {
    .contact-quote__inner { grid-template-columns: 1fr; }
}
.contact-quote__left {
    padding: 36px 32px 40px;
    color: #fff;
}
.contact-quote__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 6px 12px;
    border-radius: 999px;
    margin-bottom: 14px;
}
.contact-quote__badge--dark {
    background: rgba(0,0,0,.22);
    color: #fff;
}
.contact-quote__heading {
    font-size: clamp(1.45rem, 3vw, 1.85rem);
    color: #fff;
    margin-bottom: 12px;
    line-height: 1.25;
}
.contact-quote__text {
    font-size: 15px;
    line-height: 1.65;
    opacity: .95;
    margin-bottom: 20px;
}
.contact-quote__bullets {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    font-size: 14.5px;
    font-weight: 600;
}
.contact-quote__bullets li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.contact-quote__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255,255,255,.2);
    font-size: 12px;
}
.contact-quote__social {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 13px;
    font-weight: 600;
    opacity: .95;
}
.contact-quote__avatars {
    display: flex;
}
.contact-quote__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(145deg, #fff 0%, #c8d6ee 100%);
    color: var(--color-primary-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 13px;
    margin-left: -10px;
    border: 2px solid rgba(255,255,255,.4);
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.contact-quote__avatar:first-child { margin-left: 0; }
.contact-quote__right {
    background: rgba(255,255,255,.08);
    padding: 28px 28px 32px;
    display: flex;
    align-items: stretch;
}
@media (max-width: 1024px) {
    .contact-quote__right { padding: 20px; }
}
.contact-quote__card {
    flex: 1;
    background: #fff;
    border-radius: var(--radius-md);
    padding: 22px 22px 16px;
    box-shadow: var(--shadow-md);
}
.contact-quote__card-head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--color-border);
}
.contact-quote__card-title {
    font-size: 1.1rem;
    color: var(--color-dark);
    margin: 0 0 4px;
}
.contact-quote__card-sub {
    font-size: 13px;
    color: var(--color-gray);
    margin: 0;
}
.contact-quote__legal {
    font-size: 11.5px;
    color: var(--color-gray);
    margin: 14px 0 0;
    line-height: 1.45;
}
.contact-quote__legal a {
    color: var(--color-primary);
    font-weight: 600;
}

/* Wizard */
.quote-wizard__progress {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}
.quote-wizard__step-label {
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 6px;
    background: var(--color-light-gray);
    color: var(--color-gray);
}
.quote-wizard__step-label.is-active {
    background: var(--pole-0-bg);
    color: var(--color-primary-dark);
}
.quote-wizard__pane-title {
    font-size: 1rem;
    margin: 0 0 6px;
    color: var(--color-dark);
}
.quote-wizard__pane-intro {
    font-size: 13px;
    color: var(--color-gray);
    margin: 0 0 16px;
}
.quote-wizard__hint {
    font-size: 12.5px;
    color: var(--color-gray);
    margin-top: 12px;
    font-style: italic;
}
.quote-wizard__empty-poles {
    font-size: 13px;
    color: var(--color-accent-dark);
    background: var(--pole-2-bg);
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    margin-bottom: 12px;
}

/* Sous-modules conditionnels (questionnaire besoins — routage par type / levier) */
.quote-submodule {
    margin: 14px 0 18px;
    padding: 14px 14px 4px;
    border-radius: var(--radius-sm);
    border-left: 4px solid var(--color-primary);
    background: rgba(89, 122, 175, 0.06);
}
.quote-pole-section[data-pole-section="p1"] .quote-submodule {
    border-left-color: var(--pole-1);
}
.quote-pole-section[data-pole-section="p2"] .quote-submodule {
    border-left-color: var(--pole-2);
}
.quote-submodule__title {
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--color-dark);
}
.quote-p1-submodules-intro,
.quote-p2-lever-panels-intro {
    font-style: normal;
}

.contact-form__grid {
    display: grid;
    gap: 14px;
}
.contact-form__grid--2 {
    grid-template-columns: 1fr 1fr;
}
@media (max-width: 560px) {
    .contact-form__grid--2 { grid-template-columns: 1fr; }
}
.contact-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.contact-field--full {
    grid-column: 1 / -1;
}
.contact-field__label {
    font-family: var(--font-subtitle);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-dark);
}
.contact-field input,
.contact-field textarea,
.contact-field select {
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    font-size: 14px;
    transition: border-color .2s, box-shadow .2s;
}
.contact-field input:focus,
.contact-field textarea:focus,
.contact-field select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(89, 122, 175, .15);
}
.contact-field input:focus-visible,
.contact-field textarea:focus-visible,
.contact-field select:focus-visible,
.quote-wizard__nav .btn:focus-visible,
.quote-pole-card:focus-within,
.quote-rdv-slot-btn:focus-visible,
.quote-rdv-cal__day:focus-visible,
.quote-modal__close:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
.contact-field__error {
    display: block;
    margin-top: 4px;
    font-size: 12.5px;
    font-weight: 600;
    color: #b42318;
    line-height: 1.4;
}
.contact-field__hint {
    display: block;
    margin-top: 8px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--color-gray);
}
.contact-field__optional {
    font-weight: 500;
    color: var(--color-gray);
    text-transform: none;
    letter-spacing: 0;
}
.contact-field input[aria-invalid="true"],
.contact-field textarea[aria-invalid="true"],
.contact-field select[aria-invalid="true"] {
    border-color: #b42318;
}
.contact-fieldset {
    border: none;
    padding: 0;
    margin: 14px 0;
}
.quote-pole-fieldset {
    margin-top: 0;
}
.quote-pole-fieldset > .contact-field__label {
    margin-bottom: 10px;
}
.contact-checkgrid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 8px;
}
.contact-check {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    cursor: pointer;
}
.contact-check input { width: auto; accent-color: var(--color-primary); }
.contact-check--legal {
    align-items: flex-start;
    margin-top: 16px;
    line-height: 1.5;
    font-size: 13px;
}
.contact-check--legal input { margin-top: 3px; flex-shrink: 0; }
.contact-check--legal span { display: block; }
.contact-check--legal a { font-weight: 600; color: var(--color-primary); }

.quote-pole-cards {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.quote-pole-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: border-color .2s, background .2s;
}
.quote-pole-card.is-selected {
    border-color: var(--color-primary);
    background: var(--pole-0-bg);
}
.quote-pole-card input {
    margin-top: 4px;
    accent-color: var(--color-primary);
}
.quote-pole-card span {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.quote-pole-card strong { font-size: 14px; }
.quote-pole-card small { font-size: 12px; color: var(--color-gray); font-weight: 500; }

.quote-pole-section {
    margin-bottom: 20px;
    padding: 16px;
    border-radius: var(--radius-sm);
    background: var(--color-light-gray);
    border: 1px solid var(--color-border);
}
.quote-pole-section__title {
    font-size: 0.95rem;
    margin: 0 0 14px;
    padding-left: 10px;
    border-left: 4px solid var(--pole-accent, var(--color-primary));
    color: var(--color-dark);
}

.quote-wizard__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}

.quote-wizard__nav-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: flex-end;
    flex: 1;
    min-width: 0;
}

.quote-wizard__nav-actions .quote-wizard__skip-rdv {
    margin-right: auto;
}

.quote-wizard__nav-cta {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.quote-wizard__skip-rdv {
    font-size: 13px;
    font-weight: 600;
    border-color: var(--color-secondary);
    color: var(--color-secondary);
}

.quote-wizard__skip-rdv:hover {
    background: var(--pole-1-bg);
    border-color: var(--color-secondary-dark);
    color: var(--color-secondary-dark);
}

/* Calendrier créneau — étape 5 du configurateur devis */
.quote-rdv-section {
    margin-top: 22px;
    padding: 16px 16px 18px;
    border-radius: var(--radius-md);
    background: linear-gradient(165deg, var(--pole-1-bg) 0%, #f6faf8 50%, #fff 100%);
    border: 1px solid rgba(40, 153, 81, 0.22);
}

.quote-rdv-section__title {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 6px;
}

.quote-rdv-section__intro {
    font-size: 13px;
    color: var(--color-gray);
    margin: 0 0 14px;
    line-height: 1.45;
}

.quote-rdv-section__warn {
    font-size: 13px;
    color: #b91c1c;
    margin: 0 0 12px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.quote-rdv-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
}

@media (min-width: 520px) {
    .quote-rdv-layout {
        grid-template-columns: minmax(220px, 1fr) minmax(0, 1fr);
        align-items: start;
    }
}

.quote-rdv-cal__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.quote-rdv-cal__title {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0;
    text-align: center;
    flex: 1;
    color: var(--color-dark);
}

.quote-rdv-cal__nav {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: #fff;
    color: var(--color-secondary);
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.quote-rdv-cal__nav:hover {
    background: var(--color-soft-green);
    border-color: var(--color-secondary);
}

.quote-rdv-cal__weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 4px;
    font-size: 9.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-gray);
    text-align: center;
}

.quote-rdv-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}

.quote-rdv-cal__day {
    aspect-ratio: 1;
    min-height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    font-family: var(--font-subtitle);
    background: #fff;
    color: var(--color-dark);
    cursor: pointer;
    transition: background .15s, color .15s;
}

.quote-rdv-cal__day:hover:not(:disabled) {
    background: var(--color-soft-green);
}

.quote-rdv-cal__day.is-selected {
    background: var(--color-secondary);
    color: #fff;
}

.quote-rdv-cal__day--muted {
    color: #d1d5db;
    background: transparent;
    cursor: default;
}

.quote-rdv-cal__day--disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.quote-rdv-slots__hint {
    font-size: 12px;
    color: var(--color-gray);
    margin: 0 0 8px;
    line-height: 1.35;
}

.quote-rdv-slots__label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-secondary);
    margin: 0 0 6px;
}

.quote-rdv-slots__row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.quote-rdv-slot-btn {
    flex: 1;
    min-width: 100px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1.5px solid var(--color-border);
    background: #fff;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-dark);
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}

.quote-rdv-slot-btn:hover {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.06);
}

.quote-rdv-slot-btn.is-selected {
    border-color: var(--color-secondary);
    background: var(--color-secondary);
    color: #fff;
}

/* Bas de page : 2 colonnes */
.contact-bottom {
    padding: 0 16px 48px;
}
.contact-bottom__grid {
    display: grid;
    grid-template-columns: 1.2fr 0.9fr;
    gap: 24px;
    align-items: start;
}
@media (max-width: 900px) {
    .contact-bottom__grid { grid-template-columns: 1fr; }
}
.contact-card {
    background: #fff;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 24px 24px 28px;
    box-shadow: var(--shadow-sm);
}
.contact-card__head {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 20px;
}
.contact-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.contact-card__icon--green {
    background: var(--pole-1-bg);
    color: var(--color-secondary);
}
.contact-card__title {
    font-size: 1.15rem;
    margin: 0 0 4px;
}
.contact-card__title--plain {
    margin-bottom: 18px;
}
.contact-card__sub {
    font-size: 13px;
    color: var(--color-gray);
    margin: 0;
}
.contact-simple-form__submit {
    margin-top: 8px;
    width: 100%;
}

/* Section contact RGPD (page conformité) */
.sp-contact-rgpd {
    padding: 80px 0;
    background: var(--color-light-gray);
}
.sp-contact-rgpd__alert {
    max-width: 860px;
    margin: 0 auto 28px;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    border: 1.5px solid rgba(40, 153, 81, 0.35);
    background: #f3faf5;
    color: var(--color-dark);
    font-size: 15px;
    line-height: 1.6;
    text-align: center;
}
.sp-contact-rgpd__alert--error {
    border-color: rgba(180, 35, 24, 0.35);
    background: #fff5f4;
}
.sp-contact-rgpd__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
    gap: 28px;
    align-items: start;
}
.sp-contact-rgpd__prepare {
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 28px 26px;
}
.sp-contact-rgpd__prepare h3 {
    font-family: var(--font-subtitle);
    font-size: 20px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 12px;
}
.sp-contact-rgpd__prepare > p {
    margin: 0 0 20px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
.sp-contact-rgpd__trust {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.sp-contact-rgpd__trust li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.45;
}
.sp-contact-rgpd__trust svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--color-secondary);
}
.sp-contact-rgpd__links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--color-border);
}
.sp-contact-rgpd__links a {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
}
.sp-contact-rgpd__links a:hover {
    text-decoration: underline;
}
.sp-contact-rgpd__form-card .contact-card__title {
    font-size: 1.15rem;
}
.sp-contact-rgpd__legal {
    margin: 14px 0 0;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--color-gray);
    text-align: center;
}
.sp-contact-rgpd__legal a {
    color: var(--color-primary);
    font-weight: 600;
}
@media (max-width: 900px) {
    .sp-contact-rgpd__grid {
        grid-template-columns: 1fr;
    }
}
.contact-coords {
    list-style: none;
    margin: 0;
    padding: 0;
}
.contact-coords__item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 18px;
    font-size: 14px;
    line-height: 1.55;
}
.contact-coords__item:last-child { margin-bottom: 0; }
.contact-coords__meta {
    font-size: 12.5px;
    color: var(--color-gray);
}
.contact-coords__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    flex-shrink: 0;
}
.contact-coords__icon--blue { background: var(--pole-0-bg); }
.contact-coords__icon--green { background: var(--pole-1-bg); }
.contact-coords__icon--amber { background: #FEF3C7; }
.contact-coords__icon--rose { background: #FCE7F3; }
.contact-coords__icon--purple { background: #EDE9FE; }
.contact-coords a {
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: none;
}
.contact-coords a:hover { text-decoration: underline; }

/* Page contact — deux colonnes (devis + RDV) */
.contact-hero-dual {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: stretch;
    margin-bottom: 40px;
    padding: 0 16px;
}

@media (max-width: 900px) {
    .contact-hero-dual {
        grid-template-columns: 1fr;
    }
}

.contact-devis-cta {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 28px 32px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--color-primary) 0%, #3d5a9e 50%, #2e4a84 100%);
    color: #fff;
    box-shadow: var(--shadow-lg);
    min-height: 100%;
}
.contact-devis-cta__content {
    width: 100%;
}
@media (max-width: 900px) {
    .contact-devis-cta {
        text-align: center;
        align-items: center;
    }
    .contact-devis-cta__action {
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}
.contact-devis-cta__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    background: rgba(0,0,0,.2);
    padding: 6px 12px;
    border-radius: 999px;
    margin: 0 0 10px;
}
.contact-devis-cta__title {
    font-size: clamp(1.25rem, 2.5vw, 1.6rem);
    color: #fff;
    margin: 0 0 10px;
    line-height: 1.25;
}
.contact-devis-cta__lead {
    font-size: 14.5px;
    line-height: 1.6;
    opacity: .95;
    margin: 0 0 16px;
    max-width: none;
}
@media (max-width: 900px) {
    .contact-devis-cta__lead { margin-left: auto; margin-right: auto; }
}
.contact-devis-cta__bullets {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    font-size: 14px;
    font-weight: 600;
}
.contact-devis-cta__bullets li {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}
@media (max-width: 900px) {
    .contact-devis-cta__bullets li { justify-content: center; }
}
.contact-devis-cta__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255,255,255,.2);
    font-size: 11px;
    flex-shrink: 0;
}
.contact-devis-cta__action {
    margin-top: auto;
    text-align: left;
    width: 100%;
}
.contact-devis-cta__btn {
    width: 100%;
    max-width: 320px;
    box-shadow: 0 4px 20px rgba(0,0,0,.2);
}
.contact-devis-cta__btn:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
}
.contact-devis-cta__hint {
    font-size: 12px;
    opacity: .9;
    margin: 12px 0 0;
    line-height: 1.45;
    max-width: 36rem;
}
@media (max-width: 900px) {
    .contact-devis-cta__hint { margin-left: auto; margin-right: auto; }
}

.contact-rdv-cta {
    border-radius: var(--radius-lg);
    background: linear-gradient(145deg, var(--color-secondary) 0%, #1f7a45 48%, #155c33 100%);
    color: #fff;
    box-shadow: var(--shadow-lg);
    min-height: 100%;
    display: flex;
}

.contact-rdv-cta__inner {
    display: flex;
    flex-direction: column;
    padding: 28px 32px;
    width: 100%;
}

.contact-rdv-cta__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(0, 0, 0, 0.18);
    padding: 6px 12px;
    border-radius: 999px;
    margin: 0 0 10px;
    width: fit-content;
}

.contact-rdv-cta__title {
    font-size: clamp(1.25rem, 2.5vw, 1.6rem);
    color: #fff;
    margin: 0 0 10px;
    line-height: 1.25;
}

.contact-rdv-cta__lead {
    font-size: 14.5px;
    line-height: 1.6;
    opacity: 0.95;
    margin: 0 0 16px;
    max-width: 52ch;
}

.contact-rdv-cta__bullets {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    font-size: 14px;
    font-weight: 600;
}

.contact-rdv-cta__bullets li {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.contact-rdv-cta__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.22);
    font-size: 11px;
    flex-shrink: 0;
}

.contact-rdv-cta__action {
    margin-top: auto;
    text-align: left;
}

.contact-rdv-cta .contact-rdv-cta__btn.btn-primary {
    width: 100%;
    max-width: 320px;
    background: #fff;
    color: var(--color-secondary);
    border-color: #fff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
}

.contact-rdv-cta .contact-rdv-cta__btn.btn-primary:hover {
    background: var(--color-soft-green);
    color: #0f2918;
    border-color: var(--color-soft-green);
    filter: none;
    transform: translateY(-1px);
}

.contact-rdv-cta__hint {
    font-size: 12px;
    opacity: 0.92;
    margin: 12px 0 0;
    line-height: 1.45;
    max-width: 36rem;
}

@media (max-width: 900px) {
    .contact-rdv-cta__inner {
        text-align: center;
        align-items: center;
    }
    .contact-rdv-cta__badge {
        margin-left: auto;
        margin-right: auto;
    }
    .contact-rdv-cta__lead {
        margin-left: auto;
        margin-right: auto;
    }
    .contact-rdv-cta__bullets li {
        justify-content: center;
    }
    .contact-rdv-cta__action {
        text-align: center;
        width: 100%;
    }
    .contact-rdv-cta__hint {
        margin-left: auto;
        margin-right: auto;
    }
}

/* Page mentions légales */
.legal-page {
    padding: 36px 0 56px;
    background: var(--color-bg-subtle, #f6f8fc);
}
.legal-page__inner {
    max-width: 760px;
}
.legal-page__intro {
    margin-bottom: 36px;
    text-align: center;
}
.legal-page__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-primary);
    margin: 0 0 12px;
}
.legal-page__title {
    font-size: clamp(1.5rem, 3.5vw, 2rem);
    margin: 0 0 14px;
    line-height: 1.2;
    color: var(--color-text);
}
.legal-page__lead {
    margin: 0 auto;
    max-width: 54ch;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-text-muted, #4b5563);
}
.legal-page__body {
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md, 0 4px 24px rgba(15, 23, 42, 0.08));
    padding: 28px 24px 32px;
    border: 1px solid rgba(15, 23, 42, 0.06);
}
@media (min-width: 640px) {
    .legal-page__body {
        padding: 32px 40px 40px;
    }
}
.legal-block {
    margin-bottom: 28px;
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.legal-block:last-of-type {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.legal-block__title {
    font-size: 1.15rem;
    margin: 0 0 12px;
    color: var(--color-text);
}
.legal-block__text {
    margin: 0 0 16px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--color-text, #1f2937);
}
.legal-block__note {
    margin: 16px 0 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--color-text-muted, #4b5563);
}
.legal-dl {
    margin: 0;
}
.legal-dl__row {
    display: grid;
    grid-template-columns: minmax(120px, 160px) 1fr;
    gap: 10px 20px;
    padding: 10px 0;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
    font-size: 14px;
    line-height: 1.5;
}
.legal-dl__row:first-child {
    border-top: none;
    padding-top: 0;
}
.legal-dl__row dt {
    margin: 0;
    font-weight: 600;
    color: var(--color-text-muted, #4b5563);
}
.legal-dl__row dd {
    margin: 0;
    color: var(--color-text, #1f2937);
}
.legal-dl__row a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
}
.legal-dl__row a:hover {
    text-decoration: underline;
}
@media (max-width: 520px) {
    .legal-dl__row {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}
.legal-page__footer-note {
    margin: 24px 0 0;
    padding-top: 20px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-text-muted, #4b5563);
}
.legal-page__footer-note a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
}
.legal-page__footer-note a:hover {
    text-decoration: underline;
}

/* Données & confidentialité — onglets politique / cookies */
.privacy-hub {
    padding: 36px 0 56px;
    background: var(--color-bg-subtle, #f6f8fc);
}
.privacy-hub__wrap {
    max-width: 840px;
}
.privacy-hub__header {
    text-align: center;
    margin-bottom: 28px;
}
.privacy-hub__eyebrow {
    display: inline-block;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-primary);
    margin: 0 0 12px;
}
.privacy-hub__title {
    font-size: clamp(1.45rem, 3.5vw, 2rem);
    margin: 0 0 12px;
    line-height: 1.2;
    color: var(--color-text);
}
.privacy-hub__intro {
    margin: 0 auto;
    max-width: 56ch;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-text-muted, #4b5563);
}
.privacy-hub__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin: 0 0 24px;
}
.privacy-hub__tab {
    appearance: none;
    border: 2px solid rgba(15, 23, 42, 0.12);
    background: #fff;
    color: var(--color-text);
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 600;
    padding: 12px 20px;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.privacy-hub__tab:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.privacy-hub__tab:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
.privacy-hub__tab[aria-selected="true"],
.privacy-hub__tab--active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.privacy-hub__tab[aria-selected="true"]:hover,
.privacy-hub__tab--active:hover {
    color: #fff;
    filter: brightness(1.05);
}
.privacy-hub__panels {
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md, 0 4px 24px rgba(15, 23, 42, 0.08));
    border: 1px solid rgba(15, 23, 42, 0.06);
    padding: 28px 22px 32px;
}
@media (min-width: 640px) {
    .privacy-hub__panels {
        padding: 32px 40px 40px;
    }
}
.privacy-hub__prose {
    font-size: 15px;
    line-height: 1.7;
    color: var(--color-text, #1f2937);
}
.privacy-hub__prose p {
    margin: 0 0 1em;
}
.privacy-hub__prose p:last-child {
    margin-bottom: 0;
}
.privacy-hub__placeholder--muted {
    font-size: 14px;
    color: var(--color-text-muted, #4b5563);
}

/* Corps politique de confidentialité (document publié) */
.privacy-hub__prose--policy {
    max-width: none;
}
.privacy-policy-doc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--color-text, #1f2937);
}
.privacy-policy-doc__head {
    margin-bottom: 1.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.1);
}
.privacy-policy-doc__issuer {
    margin: 0 0 6px;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.privacy-policy-doc__doc-title {
    margin: 0 0 8px;
    font-size: 1.35rem;
    line-height: 1.25;
    color: var(--color-text);
}
.privacy-policy-doc__version,
.privacy-policy-doc__updated {
    margin: 0;
    font-size: 14px;
    color: var(--color-text-muted, #4b5563);
}
.privacy-policy-doc__h2 {
    margin: 2rem 0 0.75rem;
    font-size: 1.2rem;
    line-height: 1.3;
    color: var(--color-text);
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
.privacy-policy-doc__h3 {
    margin: 1.35rem 0 0.5rem;
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--color-text);
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
.privacy-policy-doc p {
    margin: 0 0 1em;
}
.privacy-policy-doc p:last-child {
    margin-bottom: 0;
}
.privacy-policy-doc ul {
    margin: 0 0 1em;
    padding-left: 1.35em;
}
.privacy-policy-doc li {
    margin-bottom: 0.35em;
}
.privacy-policy-doc__toc {
    list-style: disc;
    margin: 0 0 1.25em;
    padding-left: 1.5em;
}
.privacy-policy-doc__toc a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
}
.privacy-policy-doc__toc a:hover {
    text-decoration: underline;
}
.privacy-policy-doc__table-wrap {
    margin: 1.25em 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.privacy-policy-doc__table-wrap--wide .privacy-policy-doc__table {
    min-width: 720px;
}
.privacy-policy-doc__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
    line-height: 1.45;
}
.privacy-policy-doc__table thead th {
    background: var(--color-primary);
    color: #fff;
    font-weight: 700;
    text-align: left;
    padding: 10px 12px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    vertical-align: top;
}
.privacy-policy-doc__table tbody th[scope="row"] {
    font-weight: 600;
    text-align: left;
    background: rgba(15, 23, 42, 0.04);
}
.privacy-policy-doc__table th,
.privacy-policy-doc__table td {
    border: 1px solid rgba(15, 23, 42, 0.2);
    padding: 10px 12px;
    vertical-align: top;
}
.privacy-policy-doc__table tbody tr:nth-child(even) td,
.privacy-policy-doc__table tbody tr:nth-child(even) th[scope="row"] {
    background: rgba(15, 23, 42, 0.02);
}
.privacy-policy-doc a {
    color: var(--color-primary);
    font-weight: 600;
    word-break: break-word;
}
.privacy-policy-doc a:hover {
    text-decoration: underline;
}

/* Modale pré-devis */
body.quote-modal-open {
    overflow: hidden;
}
.quote-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 16px 32px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.quote-modal[hidden] {
    display: none !important;
}
.quote-modal__backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(4px);
}
.quote-modal__panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 640px;
    max-height: min(92vh, 900px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--radius-md);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    margin: auto 0;
}
.quote-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px 12px;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}
.quote-modal__head-text { min-width: 0; }
.quote-modal__title {
    font-size: 1.2rem;
    margin: 0 0 4px;
    color: var(--color-dark);
    padding-right: 8px;
}
.quote-modal__sub {
    font-size: 13px;
    color: var(--color-gray);
    margin: 0;
    line-height: 1.4;
}
.quote-modal__trust {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}
.quote-modal__trust li {
    position: relative;
    padding-left: 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-secondary);
    line-height: 1.35;
}
.quote-modal__trust li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .45em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

/* Section pré-devis (page audit-conseil) */
.sp-quote-section {
    padding: 80px 0;
    background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}
.sp-quote-section__alert {
    max-width: 760px;
    margin: 0 auto 28px;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    background: rgba(40, 153, 81, 0.1);
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    color: var(--color-dark);
    font-size: 15px;
    line-height: 1.6;
    text-align: center;
}
.sp-quote-section__alert--error {
    background: rgba(180, 35, 24, 0.08);
    border-color: rgba(180, 35, 24, 0.28);
}
.sp-quote-section__trust {
    list-style: none;
    margin: 0 auto 28px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 22px;
    max-width: 900px;
}
.sp-quote-section__trust li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-secondary);
}
.sp-quote-section__trust svg {
    flex-shrink: 0;
    color: var(--color-secondary);
}
.sp-quote-section__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
}
.sp-quote-section__hint {
    margin: 0;
    max-width: 680px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
}
@media (max-width: 640px) {
    .quote-wizard__progress {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }
    .quote-pole-cards {
        grid-template-columns: 1fr;
    }
    .quote-wizard__prev {
        font-size: 13px;
        padding-left: 12px;
        padding-right: 12px;
    }
}
.quote-modal__close {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: var(--color-light-gray);
    color: var(--color-dark);
    border-radius: 10px;
    cursor: pointer;
    transition: background .2s, color .2s;
}
.quote-modal__close:hover {
    background: var(--color-border);
    color: var(--color-primary-dark);
}
.quote-modal__body {
    padding: 12px 20px 20px;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}
.quote-modal__legal {
    font-size: 11px;
    color: var(--color-gray);
    margin: 12px 0 0;
    line-height: 1.45;
}
.quote-modal__legal a {
    color: var(--color-primary);
    font-weight: 600;
}
.quote-modal .quote-wizard__nav {
    margin-top: 16px;
    padding-top: 12px;
}

/* Modale prise de rendez-vous + calendrier */
body.rdv-modal-open {
    overflow: hidden;
}

.rdv-modal {
    position: fixed;
    inset: 0;
    z-index: 10060;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 16px 32px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.rdv-modal[hidden] {
    display: none !important;
}

.rdv-modal__backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(4px);
}

.rdv-modal__panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 880px;
    max-height: min(92vh, 920px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--radius-md);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    margin: auto 0;
    min-width: 0;
    overflow-x: hidden;
}

.rdv-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px 12px;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}

.rdv-modal__head-text {
    min-width: 0;
}

.rdv-modal__title {
    font-size: 1.2rem;
    margin: 0 0 4px;
    color: var(--color-dark);
    padding-right: 8px;
}

.rdv-modal__sub {
    font-size: 13px;
    color: var(--color-gray);
    margin: 0;
    line-height: 1.45;
}

.rdv-modal__close {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: var(--color-light-gray);
    color: var(--color-dark);
    border-radius: 10px;
    cursor: pointer;
    transition: background .2s, color .2s;
}

.rdv-modal__close:hover {
    background: var(--color-border);
    color: var(--color-secondary);
}

.rdv-modal__body {
    padding: 16px 20px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1;
    min-height: 0;
    min-width: 0;
}

.rdv-modal-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 20px 28px;
    align-items: start;
    min-width: 0;
}

/* S’assure que le formulaire + calendrier disparaissent bien au succès (certains resets CSS affaiblissent [hidden]). */
#rdv-modal-main[hidden],
.rdv-modal-main[hidden] {
    display: none !important;
}

.rdv-form {
    min-width: 0;
}

.rdv-modal-main__col--planning {
    background: linear-gradient(165deg, var(--pole-1-bg, #e8f5ee) 0%, #f4faf7 55%, #fff 100%);
    border: 1px solid rgba(40, 153, 81, 0.18);
    border-radius: var(--radius-md);
    padding: 14px 14px 16px;
    min-width: 0;
}

.rdv-cal__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

.rdv-cal__title {
    font-family: var(--font-subtitle);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
    text-align: center;
    flex: 1;
}

.rdv-cal__nav {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: #fff;
    color: var(--color-secondary);
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.rdv-cal__nav:hover {
    background: var(--color-soft-green);
    border-color: var(--color-secondary);
}

.rdv-cal__weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 6px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-gray);
    text-align: center;
}

.rdv-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

.rdv-cal__day {
    aspect-ratio: 1;
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    font-family: var(--font-subtitle);
    background: #fff;
    color: var(--color-dark);
    cursor: pointer;
    transition: background .15s, color .15s, box-shadow .15s;
}

.rdv-cal__day:hover:not(:disabled) {
    background: var(--color-soft-green);
}

.rdv-cal__day.is-selected {
    background: var(--color-secondary);
    color: #fff;
    box-shadow: 0 2px 10px rgba(40, 153, 81, 0.35);
}

.rdv-cal__day--muted {
    color: #c4c9d1;
    background: transparent;
    cursor: default;
}

.rdv-cal__day--disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

/* Jours sans aucun créneau libre (agenda plein) — spécificité > .rdv-cal__day et :hover */
.rdv-cal__grid button.rdv-cal__day.rdv-cal__day--fully-booked:not(.rdv-cal__day--disabled):not(.is-selected) {
    color: #b01010 !important;
    background: #fde8e8 !important;
    box-shadow: inset 0 0 0 1px rgba(176, 16, 16, 0.28);
}

.rdv-cal__grid button.rdv-cal__day.rdv-cal__day--fully-booked:not(.rdv-cal__day--disabled):not(.is-selected):hover {
    color: #8a0c0c !important;
    background: #fad4d4 !important;
}

.rdv-cal__day--fully-booked.is-selected {
    background: #b01010 !important;
    color: #fff !important;
    box-shadow: 0 2px 10px rgba(176, 16, 16, 0.35);
}

.rdv-cal__legend {
    font-size: 11px;
    color: var(--color-gray);
    margin: 10px 0 0;
    line-height: 1.35;
}

.rdv-cal__legend--busy {
    color: #c81e1e;
    font-weight: 700;
}

.rdv-slots {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(40, 153, 81, 0.15);
}

.rdv-slots__hint {
    font-size: 12.5px;
    color: var(--color-gray);
    margin: 0 0 10px;
    line-height: 1.4;
}

.rdv-slots__label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-secondary);
    margin: 0 0 8px;
}

.rdv-slots__row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rdv-slot-btn {
    flex: 1;
    min-width: 120px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1.5px solid var(--color-border);
    background: #fff;
    font-family: var(--font-subtitle);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-dark);
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}

.rdv-slot-btn:hover {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.06);
}

.rdv-slot-btn.is-selected {
    border-color: var(--color-secondary);
    background: var(--color-secondary);
    color: #fff;
}

.rdv-slot-btn--busy,
.rdv-slot-btn:disabled.rdv-slot-btn--busy {
    background: #fde8e8;
    border-color: #e57373;
    color: #b71c1c;
    cursor: not-allowed;
    opacity: 1;
}

.rdv-slot-btn--busy:hover {
    background: #fad4d4;
    border-color: #e53935;
    color: #b71c1c;
}

.rdv-form__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px 14px;
    margin-bottom: 14px;
    min-width: 0;
}

.rdv-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.rdv-field--full {
    grid-column: 1 / -1;
}

.rdv-field__label {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-gray);
}

.rdv-field input {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    font-size: 14px;
    font-family: var(--font-body);
    transition: border-color .15s, box-shadow .15s;
}

.rdv-field input:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(40, 153, 81, 0.15);
}

.rdv-field textarea {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    font-size: 14px;
    font-family: var(--font-body);
    line-height: 1.45;
    resize: vertical;
    min-height: 72px;
    transition: border-color .15s, box-shadow .15s;
}

.rdv-field textarea:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(40, 153, 81, 0.15);
}

.rdv-field__optional {
    font-weight: 500;
    color: var(--color-gray);
}

.rdv-topics {
    border: 1px solid rgba(40, 153, 81, 0.2);
    border-radius: 12px;
    padding: 12px 14px 14px;
    margin: 0 0 14px;
    min-width: 0;
    background: rgba(40, 153, 81, 0.04);
}

.rdv-topics__legend {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-gray);
    padding: 0 4px;
    margin-bottom: 8px;
}

.rdv-topics__hint {
    font-weight: 500;
    color: var(--color-gray);
}

.rdv-topics__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rdv-topics__item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    cursor: pointer;
    font-size: 13px;
    line-height: 1.35;
    color: var(--color-dark);
    padding: 8px 10px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--color-border);
    transition: border-color .15s, background .15s;
}

.rdv-topics__item:hover {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.06);
}

.rdv-topics__item input {
    margin-top: 3px;
    flex-shrink: 0;
    accent-color: var(--color-secondary);
}

.rdv-topics__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.rdv-topics__title {
    font-weight: 700;
    font-family: var(--font-subtitle);
}

.rdv-topics__sub {
    font-size: 11.5px;
    color: var(--color-gray);
    line-height: 1.3;
}

.rdv-meet {
    border: 1px solid rgba(40, 153, 81, 0.2);
    border-radius: 12px;
    padding: 12px 14px 14px;
    margin: 0 0 14px;
    min-width: 0;
    background: rgba(40, 153, 81, 0.04);
}

.rdv-meet__legend {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-gray);
    padding: 0 4px;
    margin-bottom: 8px;
}

.rdv-meet__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rdv-meet__item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    cursor: pointer;
    font-size: 13px;
    line-height: 1.35;
    color: var(--color-dark);
    padding: 8px 10px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--color-border);
    transition: border-color .15s, background .15s;
}

.rdv-meet__item:hover {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.06);
}

.rdv-meet__item input {
    margin-top: 3px;
    flex-shrink: 0;
    accent-color: var(--color-secondary);
}

.rdv-meet__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.rdv-meet__title {
    font-weight: 700;
    font-family: var(--font-subtitle);
}

.rdv-meet__sub {
    font-size: 11.5px;
    color: var(--color-gray);
    line-height: 1.3;
}

.rdv-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--color-gray);
    margin-bottom: 12px;
    cursor: pointer;
}

.rdv-check input {
    margin-top: 3px;
    flex-shrink: 0;
    accent-color: var(--color-secondary);
}

.rdv-check a {
    color: var(--color-secondary);
    font-weight: 600;
}

.rdv-form__error {
    font-size: 13px;
    color: #b91c1c;
    margin: 0 0 10px;
}

.rdv-form__submit {
    width: 100%;
    padding: 12px 18px;
    border: none;
    border-radius: 999px;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    background: var(--color-secondary);
    color: #fff;
    cursor: pointer;
    transition: background .2s, opacity .2s;
}

.rdv-form__submit:hover:not(:disabled) {
    background: var(--color-secondary-dark);
}

.rdv-form__submit:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.rdv-success {
    text-align: center;
    padding: 28px 16px 8px;
}

.rdv-success__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--pole-1-bg);
    color: var(--color-secondary);
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
}

.rdv-success__title {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 8px;
}

.rdv-success__text {
    font-size: 14px;
    color: var(--color-gray);
    margin: 0 0 20px;
    line-height: 1.5;
}

.rdv-success__text--lead {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-dark);
}

.rdv-success__recap {
    text-align: left;
    max-width: 440px;
    margin: 0 auto 20px;
    padding: 14px 16px 16px;
    background: #f4faf7;
    border: 1px solid rgba(40, 153, 81, 0.22);
    border-radius: 10px;
    font-size: 14px;
    color: var(--color-dark);
}

.rdv-success__recap-title {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-secondary);
}

.rdv-success__recap-dl {
    margin: 0;
}

.rdv-success__recap-dl dt {
    margin: 10px 0 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-gray);
}

.rdv-success__recap-dl dt:first-of-type {
    margin-top: 0;
}

.rdv-success__recap-dl dd {
    margin: 4px 0 0;
    font-weight: 500;
    line-height: 1.45;
    word-break: break-word;
}

.rdv-success__meet {
    font-size: 14px;
    color: var(--color-gray);
    margin: 0 0 20px;
    line-height: 1.5;
    word-break: break-word;
}

.rdv-success__meet a {
    color: var(--color-secondary);
    font-weight: 600;
}

.rdv-success__btn {
    padding: 10px 28px;
    border-radius: 999px;
    border: none;
    background: var(--color-secondary);
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
}

.rdv-success__btn:hover {
    background: var(--color-secondary-dark);
}

.rdv-modal__legal {
    font-size: 11px;
    color: var(--color-gray);
    margin: 16px 0 0;
    line-height: 1.45;
}

@media (max-width: 720px) {
    .rdv-modal-main {
        grid-template-columns: minmax(0, 1fr);
    }

    .rdv-form__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .rdv-modal {
        padding: 16px 12px 28px;
    }

    .rdv-modal__head,
    .rdv-modal__body {
        padding-left: 14px;
        padding-right: 14px;
    }
}

@media (max-width: 380px) {
    .rdv-modal {
        padding: 12px 8px 24px;
    }

    .rdv-modal__head,
    .rdv-modal__body {
        padding-left: 12px;
        padding-right: 12px;
    }
}

/* ══════════════════════════════════════════════
   PAGES PACK (/nos-packs)
   ══════════════════════════════════════════════ */
.sp-section {
    padding: 64px 0;
    background: var(--color-white);
}
.pack-detail__hero-inner {
    grid-template-columns: 1fr;
    max-width: 920px;
}
.pack-detail__hero .sp-breadcrumb { flex-wrap: wrap; }
.sp-hero__eyebrow--sig {
    color: var(--color-secondary);
}
.sp-hero__price-tag {
    font-size: 20px;
    font-weight: 800;
    color: var(--color-primary);
    margin: 0 0 20px;
}
.sp-hero--blue {
    background: linear-gradient(135deg, var(--pole-0-bg) 0%, #fafdf8 100%);
}
.sp-hero--blue .sp-blob--1 { background: var(--pole-0); opacity: .22; }
.sp-hero--green {
    background: linear-gradient(135deg, var(--pole-1-bg) 0%, #fafdf8 100%);
}
.sp-hero--green .sp-blob--1 { background: var(--pole-1); opacity: .22; }
.sp-hero--beige {
    background: linear-gradient(135deg, var(--pole-2-bg) 0%, #fafdf8 100%);
}
.sp-hero--beige .sp-blob--1 { background: var(--pole-2); opacity: .22; }
.sp-hero--soft {
    background: linear-gradient(135deg, var(--pole-3-bg) 0%, #fafdf8 100%);
}
.sp-hero--soft .sp-blob--1 { background: var(--pole-3); opacity: .22; }
.sp-hero--ia {
    background: linear-gradient(135deg, var(--pole-4-bg) 0%, #fafdf8 100%);
}
.sp-hero--ia .sp-blob--1 { background: var(--pole-4); opacity: .22; }

.pack-detail__intro {
    font-size: 18px;
    line-height: 1.75;
    color: var(--color-gray);
    max-width: 880px;
    margin-bottom: 40px;
}
.pack-detail__two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-bottom: 48px;
}
@media (max-width: 768px) {
    .pack-detail__two-col { grid-template-columns: 1fr; }
}
.pack-detail__h2 {
    font-size: 22px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 40px 0 16px;
}
.pack-detail__h2:first-of-type,
.pack-detail__intro + .pack-detail__two-col .pack-detail__h2 { margin-top: 0; }
.pack-detail__list-check {
    list-style: none;
    padding: 0;
    margin: 0;
}
.pack-detail__list-check li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-dark);
}
.pack-detail__list-check li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    width: 16px;
    height: 16px;
    border-radius: 4px;
    background: var(--color-secondary);
    opacity: .35;
}
.pack-detail__duration {
    background: var(--color-light-gray);
    padding: 20px 22px;
    border-radius: var(--radius-md);
    font-weight: 600;
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}
.pack-detail__deliverables {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.pack-detail__deliverables li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-dark);
}
.pack-detail__deliverables svg {
    flex-shrink: 0;
    color: var(--color-secondary);
    margin-top: 2px;
}
.pack-detail__steps { margin-top: 12px; margin-bottom: 24px; }
.pack-detail__faq-wrap { padding-top: 48px; }

.sp-cta-final--blue {
    background: linear-gradient(135deg, var(--pole-0) 0%, var(--color-primary-dark) 100%);
}
.sp-cta-final--green {
    background: linear-gradient(135deg, var(--pole-1) 0%, #1d6b3a 100%);
}
.sp-cta-final--beige {
    background: linear-gradient(135deg, #a67c52 0%, var(--pole-2) 100%);
}
.sp-cta-final--soft {
    background: linear-gradient(135deg, var(--pole-3) 0%, #6b7c92 100%);
}
.sp-cta-final--soft .btn-primary {
    background: #fff;
    color: var(--pole-3);
    border-color: #fff;
}
.sp-cta-final--soft .btn-primary:hover {
    background: #fff;
    color: #3d4d66;
}
.sp-cta-final--ia {
    background: linear-gradient(135deg, var(--pole-4) 0%, #4a8f78 100%);
}
.pack-detail__cta .btn-outline.sp-cta-final__outline,
.sp-cta-final.pack-detail__cta .btn-outline {
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.55);
    background: transparent;
}
.pack-detail__cta .btn-outline.sp-cta-final__outline:hover,
.sp-cta-final.pack-detail__cta .btn-outline:hover {
    background: rgba(255, 255, 255, 0.12);
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.85);
}

.pack-index__hero { padding: 72px 0 56px; }
.pack-index__hero-inner { position: relative; z-index: 1; max-width: 880px; }
.pack-index__pole { margin-bottom: 56px; }
.pack-index__pole:last-child { margin-bottom: 0; }
.pack-index__pole-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 20px;
}
.pack-index__pole-title a {
    color: var(--color-primary);
    text-decoration: none;
}
.pack-index__pole-title a:hover { text-decoration: underline; }
.pack-index__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}
.pack-index__card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    padding: 20px 18px;
    border-radius: 12px;
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    text-decoration: none;
    color: var(--color-dark);
    transition: box-shadow .2s, border-color .2s, transform .2s;
}
.pack-index__card:hover {
    box-shadow: var(--shadow-md);
    border-color: var(--color-primary);
    transform: translateY(-2px);
}
.pack-index__card--sig {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 1px rgba(40, 153, 81, 0.15);
}
.pack-index__card-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}
.pack-index__card-tag {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.45;
    flex: 1;
}
.pack-index__card-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    margin-top: 4px;
}

/* ══════════════════════════════════════════════
   Page À propos (Complianz System)
   ══════════════════════════════════════════════ */
.about-hero {
    position: relative;
    padding: 72px 0 80px;
    overflow: hidden;
    background: linear-gradient(145deg, #1a2f4a 0%, var(--color-primary-dark) 42%, #243d5c 100%);
    color: var(--color-white);
}
.about-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.about-hero__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(72px);
    opacity: .28;
}
.about-hero__blob--1 {
    width: 420px;
    height: 420px;
    background: var(--color-primary);
    top: -120px;
    right: -80px;
}
.about-hero__blob--2 {
    width: 320px;
    height: 320px;
    background: var(--color-secondary);
    bottom: -100px;
    left: -60px;
    opacity: .22;
}
.about-hero__inner { position: relative; z-index: 1; max-width: 800px; }
.about-hero__brand {
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .75);
    margin-bottom: 16px;
}
.about-hero__title {
    font-family: var(--font-title);
    font-size: clamp(28px, 5vw, 44px);
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 20px;
    color: var(--color-white);
}
.about-hero__lead {
    font-size: 18px;
    line-height: 1.65;
    color: rgba(255, 255, 255, .88);
    margin-bottom: 32px;
}
.about-hero__lead strong { color: var(--color-white); font-weight: 700; }
.about-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.about-hero__btn-primary {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: var(--color-white);
}
.about-hero__btn-primary:hover {
    background: var(--color-secondary-dark);
    border-color: var(--color-secondary-dark);
    color: var(--color-white);
}
.about-hero__btn-outline {
    background: transparent;
    border: 2px solid rgba(255, 255, 255, .85);
    color: var(--color-white);
}
.about-hero__btn-outline:hover {
    background: rgba(255, 255, 255, .12);
    border-color: var(--color-white);
    color: var(--color-white);
}

.about-band { padding: 56px 0; }
.about-band--light { background: var(--pole-0-bg); }
.about-band__inner { max-width: 900px; margin: 0 auto; text-align: center; }
.about-band__promise {
    font-family: var(--font-title);
    font-size: clamp(20px, 3vw, 26px);
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-dark);
    margin-bottom: 16px;
}
.about-band__sub {
    font-size: 17px;
    color: var(--color-gray);
    line-height: 1.75;
}

.about-h2 {
    font-family: var(--font-title);
    font-size: clamp(24px, 3.5vw, 32px);
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 24px;
}
.about-h2--on-dark { color: var(--color-white); text-align: center; margin-bottom: 36px; }

.about-split { padding: 72px 0; background: var(--color-white); }
.about-split__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
.about-checklist { display: flex; flex-direction: column; gap: 16px; }
.about-checklist li {
    position: relative;
    padding-left: 28px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-gray);
}
.about-checklist li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-secondary);
}
.about-quote {
    background: var(--pole-0-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 32px;
    box-shadow: var(--shadow-sm);
}
.about-quote__body { margin: 0; }
.about-quote__body p {
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.45;
    color: var(--color-dark);
}
.about-quote__accent {
    display: block;
    margin-top: 12px;
    font-size: 20px;
    color: var(--color-primary);
}
.about-quote__footer {
    margin-top: 20px;
    font-size: 14px;
    color: var(--color-gray);
    border-top: 1px solid var(--color-border);
    padding-top: 16px;
}

.about-story { padding: 72px 0; background: var(--color-light-gray); }
.about-story__grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 48px;
    align-items: start;
}
.about-story__text p {
    font-size: 16px;
    color: var(--color-gray);
    line-height: 1.75;
    margin-bottom: 16px;
}
.about-story__principle {
    margin-top: 8px;
    padding: 16px 20px;
    background: var(--color-white);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-primary);
    color: var(--color-dark) !important;
}
.about-founders {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    padding: 28px;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}
.about-founders__title {
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 20px;
    color: var(--color-dark);
}
.about-founders__list { display: flex; flex-direction: column; gap: 20px; }
.about-founder { display: flex; gap: 16px; align-items: flex-start; }
.about-founder__avatar {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--avatar-bg, var(--color-primary));
    color: var(--color-white);
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.about-founder__avatar--photo {
    padding: 0;
    overflow: hidden;
    background: var(--color-border);
}
.about-founder__avatar--photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 50%;
}
.about-founder__name { display: block; font-size: 16px; margin-bottom: 6px; color: var(--color-dark); }
.about-founder__role { font-size: 14px; color: var(--color-gray); line-height: 1.55; margin: 0; }

.about-poles { padding: 80px 0; background: var(--color-white); }
.about-section-head { text-align: center; max-width: 720px; margin: 0 auto 48px; }
.about-section-head__sub {
    font-size: 17px;
    color: var(--color-gray);
    line-height: 1.7;
}
.about-poles__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}
@media (min-width: 640px) and (max-width: 899px) {
    .about-poles__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 900px) {
    /* 3 cartes en haut + 2 cartes centrées en bas (même largeur chacune) */
    .about-poles__grid {
        grid-template-columns: repeat(6, 1fr);
    }
    .about-pole-card:nth-child(-n+3) {
        grid-column: span 2;
    }
    .about-pole-card:nth-child(4),
    .about-pole-card:nth-child(5) {
        grid-column: span 3;
    }
}
.about-pole-card {
    display: flex;
    flex-direction: column;
    padding: 24px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: box-shadow var(--transition), border-color var(--transition), transform var(--transition);
    background: var(--color-white);
}
.about-pole-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-3px);
}
.about-pole-card--0 { border-top: 3px solid var(--pole-0); }
.about-pole-card--0:hover { border-color: var(--pole-0); }
.about-pole-card--0 .about-pole-card__icon { background: var(--pole-0-bg); color: var(--pole-0); }
.about-pole-card--1 { border-top: 3px solid var(--pole-1); }
.about-pole-card--1:hover { border-color: var(--pole-1); }
.about-pole-card--1 .about-pole-card__icon { background: var(--pole-1-bg); color: var(--pole-1); }
.about-pole-card--2 { border-top: 3px solid var(--pole-2); }
.about-pole-card--2:hover { border-color: var(--pole-2); }
.about-pole-card--2 .about-pole-card__icon { background: var(--pole-2-bg); color: var(--pole-2); }
.about-pole-card--3 { border-top: 3px solid var(--pole-3); }
.about-pole-card--3:hover { border-color: var(--pole-3); }
.about-pole-card--3 .about-pole-card__icon { background: var(--pole-3-bg); color: var(--pole-3); }
.about-pole-card--4 { border-top: 3px solid var(--pole-4); }
.about-pole-card--4:hover { border-color: var(--pole-4); }
.about-pole-card--4 .about-pole-card__icon { background: var(--pole-4-bg); color: var(--pole-4); }
.about-pole-card__icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.about-pole-card__title { font-size: 17px; font-weight: 800; margin-bottom: 10px; color: var(--color-dark); }
.about-pole-card__text {
    font-size: 14px;
    color: var(--color-gray);
    line-height: 1.6;
    flex: 1;
    margin-bottom: 16px;
}
.about-pole-card__link {
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
}
.about-pole-card:hover .about-pole-card__link { text-decoration: underline; }

.about-benefits {
    padding: 64px 0;
    background: linear-gradient(160deg, #1e3550 0%, var(--color-primary-dark) 100%);
}
.about-benefits__grid {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 0;
    padding: 0;
}
@media (min-width: 480px) {
    .about-benefits__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 900px) {
    .about-benefits__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
.about-benefits__grid li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--radius-md);
    color: rgba(255, 255, 255, .95);
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 600;
}
.about-benefits__icon {
    color: var(--color-soft-green);
    font-weight: 800;
}

.about-mvv { padding: 72px 0; background: var(--color-white); }
.about-mvv__triple {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 56px;
}
.about-mvv-card {
    padding: 28px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
.about-mvv-card__title {
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 12px;
    color: var(--color-dark);
}
.about-mvv-card--mission { background: var(--pole-1-bg); border-color: rgba(40, 153, 81, .25); }
.about-mvv-card--vision { background: var(--pole-0-bg); border-color: rgba(89, 122, 175, .25); }
.about-mvv__angles-title { text-align: center; margin-bottom: 28px; }
.about-angles {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.about-angle {
    padding: 20px 22px;
    border-radius: var(--radius-md);
    background: var(--color-light-gray);
    border: 1px solid var(--color-border);
}
.about-angle__tag {
    display: inline-block;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-primary);
    margin-bottom: 8px;
}
.about-angle p { margin: 0; font-size: 15px; color: var(--color-gray); line-height: 1.55; }

.about-golden { padding: 56px 0; background: var(--color-light-gray); }
.about-golden__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    max-width: 1100px;
    margin: 0 auto;
}
.about-golden-block {
    background: var(--color-white);
    padding: 28px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
}
.about-golden-block__label {
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-secondary);
    margin-bottom: 12px;
}
.about-golden-block p { margin: 0; font-size: 15px; color: var(--color-gray); line-height: 1.7; }

.about-values { padding: 56px 0; background: var(--color-white); text-align: center; }
.about-values__list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0;
    padding: 0;
}
.about-values__list li {
    padding: 10px 18px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    border: 1px solid var(--color-border);
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-dark);
}

.about-ethics { padding: 72px 0; background: var(--color-light-gray); }
.about-ethics__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
.about-ethics-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.about-ethics-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    background: var(--color-white);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    font-size: 15px;
    color: var(--color-dark);
}
.about-ethics-list--stack li {
    display: block;
    font-size: 15px;
    color: var(--color-gray);
    line-height: 1.55;
}
.about-ethics-list__icon {
    flex-shrink: 0;
    color: var(--color-secondary);
    margin-top: 2px;
}

.about-beliefs { padding: 72px 0; background: var(--color-white); }
.about-beliefs__intro {
    font-size: 18px;
    line-height: 1.65;
    color: var(--color-gray);
    max-width: 720px;
    margin-bottom: 28px;
}
.about-beliefs__list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-width: 720px;
}
.about-beliefs__list li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 14px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-gray);
}
.about-beliefs__list li::before {
    content: '—';
    position: absolute;
    left: 0;
    color: var(--color-primary);
    font-weight: 700;
}

.about-partners { padding: 56px 0 80px; background: var(--color-light-gray); text-align: center; }
.about-partners__sub { font-size: 16px; color: var(--color-gray); margin-bottom: 24px; }
.about-partners__pills {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0;
    padding: 0;
}
.about-partners__pills li {
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    font-size: 14px;
    color: var(--color-gray);
}

@media (max-width: 900px) {
    .about-split__grid,
    .about-story__grid,
    .about-mvv__triple,
    .about-ethics__grid,
    .about-golden__grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .about-angles { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════
   Landing pack (nos-packs/{slug})
   ══════════════════════════════════════════════ */
.pack-lp-hero {
    position: relative;
    padding: 56px 0 64px;
    overflow: hidden;
    background: linear-gradient(165deg, #0f1f35 0%, var(--color-primary-dark) 55%, #1a3352 100%);
    color: var(--color-white);
}
.pack-lp-hero__bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 80% 60% at 90% 10%, rgba(89, 122, 175, 0.35) 0%, transparent 55%),
                radial-gradient(ellipse 60% 50% at 0% 100%, rgba(40, 153, 81, 0.18) 0%, transparent 50%);
    pointer-events: none;
}
.pack-lp-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 40px;
    align-items: start;
}
.pack-lp-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.65);
    margin-bottom: 16px;
    font-family: var(--font-subtitle);
}
.pack-lp-breadcrumb a { color: rgba(255, 255, 255, 0.9); text-decoration: none; }
.pack-lp-breadcrumb a:hover { text-decoration: underline; }
.pack-lp-hero__sig {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-soft-green);
    margin-bottom: 8px;
    font-family: var(--font-subtitle);
}
.pack-lp-hero__cat {
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 12px;
    font-family: var(--font-subtitle);
}
.pack-lp-hero__title {
    font-family: var(--font-title);
    font-size: clamp(28px, 4.5vw, 42px);
    font-weight: 800;
    line-height: 1.12;
    margin-bottom: 14px;
    color: var(--color-white);
}
.pack-lp-hero__objective {
    font-size: 17px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.95);
    margin-bottom: 14px;
}
.pack-lp-hero__intro {
    font-size: 16px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.82);
    margin-bottom: 20px;
    max-width: 560px;
}
.pack-lp-hero__intro:has(+ .pack-lp-hero__punchline) {
    margin-bottom: 12px;
}
.pack-lp-hero__punchline {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.95);
    margin: 0 0 20px;
    max-width: 560px;
}
.pack-lp-hero__price {
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-white);
    margin-bottom: 24px;
}
.pack-lp-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.pack-lp-btn-primary {
    background: var(--color-secondary) !important;
    border-color: var(--color-secondary) !important;
    color: var(--color-white) !important;
}
.pack-lp-btn-primary:hover {
    background: var(--color-secondary-dark) !important;
    border-color: var(--color-secondary-dark) !important;
}
.pack-lp-btn-ghost {
    background: transparent;
    border: 2px solid rgba(255, 255, 255, 0.85);
    color: var(--color-white);
}
.pack-lp-btn-ghost:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--color-white);
    color: var(--color-white);
}
.pack-lp-checklist {
    background: rgba(15, 31, 53, 0.65);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--radius-lg);
    padding: 24px 22px;
    box-shadow: var(--shadow-lg);
}
.pack-lp-checklist__title {
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 16px;
    color: rgba(255, 255, 255, 0.95);
}
.pack-lp-checklist__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.pack-lp-checklist__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.88);
}
.pack-lp-checklist__icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(40, 153, 81, 0.25);
    color: var(--color-soft-green);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.pack-lp-section { padding: 64px 0; background: var(--color-white); }
.pack-lp-section--muted { background: var(--color-light-gray); }
.pack-lp-section-title {
    font-family: var(--font-title);
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 28px;
    line-height: 1.2;
}
.pack-lp-section-title--center {
    text-align: center;
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
}
.pack-lp-section-title--light {
    color: var(--color-white);
    text-align: center;
}
.pack-lp-value__inner { max-width: 920px; margin: 0 auto; }
.pack-lp-value .pack-lp-section-title {
    font-size: clamp(20px, 2.8vw, 26px);
    font-weight: 700;
    color: var(--color-gray);
    line-height: 1.55;
}
.pack-lp-value__lead {
    font-size: 17px;
    color: var(--color-gray);
    line-height: 1.6;
    margin: 14px 0 0;
    text-align: center;
}

.pack-lp-compare__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}
.pack-lp-compare-card {
    display: flex;
    flex-direction: column;
    padding: 28px 26px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-compare-card--featured {
    border-width: 2px;
    box-shadow: var(--shadow-md);
}
.pack-lp-compare-card--pole-0 { border-color: var(--pole-0); }
.pack-lp-compare-card--pole-1 { border-color: var(--pole-1); }
.pack-lp-compare-card--pole-2 { border-color: var(--pole-2); }
.pack-lp-compare-card--pole-3 { border-color: var(--pole-3); }
.pack-lp-compare-card--pole-4 { border-color: var(--pole-4); }
.pack-lp-compare-card__badge {
    display: inline-flex;
    align-self: flex-start;
    margin: 0 0 12px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    background: var(--color-light-gray);
    color: var(--color-gray);
}
.pack-lp-compare-card--featured .pack-lp-compare-card__badge {
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-lp-compare-card__title {
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 12px;
    line-height: 1.25;
}
.pack-lp-compare-card__question {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.45;
    color: var(--color-dark);
    margin: 0 0 10px;
}
.pack-lp-compare-card__lead {
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
    margin: 0 0 16px;
}
.pack-lp-compare-card__items {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
    padding: 0;
}
.pack-lp-compare-card__items li {
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--color-light-gray);
    color: var(--color-dark);
    font-size: 13px;
    font-weight: 600;
}
.pack-lp-compare-card--featured .pack-lp-compare-card__items li {
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-lp-compare-card .pack-lp-block__cta {
    margin-top: auto;
}
.pack-lp-compare__note {
    margin-top: 24px;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    box-shadow: var(--shadow-sm);
}
.pack-lp-compare__note p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-lp-shift__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    max-width: 980px;
    margin: 0 auto;
}
.pack-lp-shift-card {
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    padding: 28px 26px 24px;
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-shift-card--before {
    background: #f8fafc;
}
.pack-lp-shift-card--after {
    border-width: 2px;
    box-shadow: var(--shadow-md);
}
.pack-lp-shift-card--pole-0 { border-color: var(--pole-0); }
.pack-lp-shift-card--pole-1 { border-color: var(--pole-1); }
.pack-lp-shift-card--pole-2 { border-color: var(--pole-2); }
.pack-lp-shift-card--pole-3 { border-color: var(--pole-3); }
.pack-lp-shift-card--pole-4 { border-color: var(--pole-4); }
.pack-lp-shift-card__badge {
    display: inline-flex;
    margin: 0 0 12px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: #e2e8f0;
    color: #64748b;
}
.pack-lp-shift-card--after .pack-lp-shift-card__badge {
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-lp-shift-card__title {
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 16px;
    line-height: 1.3;
}
.pack-lp-shift-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pack-lp-shift-card__list li {
    position: relative;
    padding: 10px 0 10px 22px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.pack-lp-shift-card__list li:first-child {
    border-top: 0;
    padding-top: 0;
}
.pack-lp-shift-card__list li:last-child { padding-bottom: 0; }
.pack-lp-shift-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.05em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #cbd5e1;
}
.pack-lp-shift-card__list li:first-child::before { top: 0.45em; }
.pack-lp-shift-card--after .pack-lp-shift-card__list li {
    color: var(--color-dark);
    font-weight: 550;
}
.pack-lp-shift-card--after .pack-lp-shift-card__list li::before {
    background: var(--pole-0);
}
.pack-lp-shift__tag {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-shift__closing {
    max-width: 980px;
    margin: 24px auto 0;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    box-shadow: var(--shadow-sm);
}
.pack-lp-shift__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-lp-leader .pack-lp-section-title--center {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
.pack-lp-leader__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    max-width: 920px;
    margin: 0 auto;
    align-items: stretch;
}
.pack-lp-leader-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 28px 24px 26px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-leader-col--before {
    background: #f8fafc;
}
.pack-lp-leader-col--after {
    border-width: 2px;
    border-color: var(--pole-0);
    box-shadow: var(--shadow-md);
}
.pack-lp-leader-col__badge {
    display: inline-flex;
    margin: 0 0 22px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: #e2e8f0;
    color: #64748b;
}
.pack-lp-leader-col--after .pack-lp-leader-col__badge {
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-lp-leader__chain {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.pack-lp-leader__chain li {
    width: 100%;
    text-align: center;
    padding: 10px 14px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--color-border);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}
.pack-lp-leader__chain li.is-hub {
    background: var(--pole-0);
    border-color: var(--pole-0);
    color: #fff;
    box-shadow: 0 8px 18px rgba(61, 90, 134, 0.22);
}
.pack-lp-leader__chain li:not(:last-child) {
    margin-bottom: 22px;
    position: relative;
}
.pack-lp-leader__chain li:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -16px;
    width: 2px;
    height: 12px;
    transform: translateX(-50%);
    background: #cbd5e1;
}
.pack-lp-leader__chain li:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -20px;
    width: 7px;
    height: 7px;
    border-right: 2px solid #94a3b8;
    border-bottom: 2px solid #94a3b8;
    transform: translateX(-50%) rotate(45deg);
}
.pack-lp-leader__chain li.is-hub:not(:last-child)::after {
    background: var(--pole-0);
}
.pack-lp-leader__target {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.pack-lp-leader__node {
    margin: 0;
    width: 100%;
    max-width: 260px;
    text-align: center;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    font-family: var(--font-title);
}
.pack-lp-leader__node--top {
    background: var(--pole-0);
    color: #fff;
    box-shadow: 0 8px 18px rgba(61, 90, 134, 0.22);
}
.pack-lp-leader__node--owners {
    margin-top: 22px;
    position: relative;
    background: #fff;
    border: 1.5px solid var(--pole-0);
    color: var(--pole-0);
}
.pack-lp-leader__node--owners::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -16px;
    width: 2px;
    height: 12px;
    transform: translateX(-50%);
    background: var(--pole-0);
}
.pack-lp-leader__links {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    position: relative;
}
.pack-lp-leader__links::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -16px;
    width: 2px;
    height: 12px;
    transform: translateX(-50%);
    background: rgba(89, 122, 175, 0.45);
}
.pack-lp-leader__links li {
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    font-size: 13px;
    font-weight: 700;
}
.pack-lp-leader__closing {
    max-width: 920px;
    margin: 24px auto 0;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    box-shadow: var(--shadow-sm);
}
.pack-lp-leader__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
.pack-dpo__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-dark);
}
.pack-dpo__card--next {
    border-style: dashed;
}
.pack-dpo__cta {
    margin-top: 18px;
}

.pack-lp-friction__tag {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pole-0);
    margin: 0 0 10px;
}
.pack-lp-friction__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-friction-card {
    padding: 22px 22px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-friction-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}
.pack-lp-friction-card__if {
    margin: 0 0 12px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-dark);
}
.pack-lp-friction-card__but {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}
.pack-lp-friction-card__but span {
    display: inline-block;
    margin-right: 6px;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: #fdecea;
    color: #b42318;
    vertical-align: 1px;
}
.pack-lp-friction__closing {
    margin-top: 24px;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--pole-0-bg);
    border-left: 4px solid var(--pole-0);
}
.pack-lp-friction__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-org-si__examples {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0 0 36px;
}
.pack-org-si__example {
    padding: 22px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-org-si__example p {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-dark);
    font-weight: 600;
}
.pack-org-si__lead {
    margin: 0 0 18px;
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
}
.pack-org-si__chain {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px 6px;
}
.pack-org-si__chain li {
    margin: 0;
    padding: 12px 18px;
    border-radius: 999px;
    background: var(--pole-0);
    color: #fff;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(61, 90, 134, 0.18);
}
.pack-org-si__chain .pack-org-si__arrow {
    padding: 0 4px;
    background: none;
    color: var(--pole-0);
    box-shadow: none;
    font-size: 20px;
    font-weight: 800;
}

.pack-decision__caption {
    margin: -12px 0 16px;
    font-size: 13px;
    font-weight: 650;
    color: var(--color-gray);
}
.pack-decision__wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-decision__table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
}
.pack-decision__table th,
.pack-decision__table td {
    padding: 14px 16px;
    text-align: center;
    vertical-align: middle;
}
.pack-decision__table thead th {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-gray);
    background: var(--color-light-gray);
    border-bottom: 1px solid var(--color-border);
}
.pack-decision__table thead th:first-child,
.pack-decision__table tbody th {
    text-align: left;
    position: sticky;
    left: 0;
    z-index: 1;
}
.pack-decision__table thead th:first-child {
    z-index: 2;
    background: var(--color-light-gray);
}
.pack-decision__table thead th:nth-child(3),
.pack-decision__table tbody td:nth-child(3) {
    background: var(--pole-0-bg);
}
.pack-decision__table tbody th {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    background: var(--color-white);
    border-right: 1px solid var(--color-border);
    width: 22%;
    min-width: 140px;
    box-shadow: 6px 0 10px -8px rgba(15, 31, 53, 0.18);
}
.pack-decision__table tbody tr + tr th,
.pack-decision__table tbody tr + tr td {
    border-top: 1px solid var(--color-border);
}
.pack-decision__cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 7px 11px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
}
.pack-decision__cell--prepare {
    background: var(--pole-1-bg);
    color: var(--pole-1);
}
.pack-decision__cell--decide {
    background: var(--pole-0);
    color: #fff;
}
.pack-decision__cell--consult {
    background: var(--pole-2-bg);
    color: #8a6a48;
}
.pack-decision__cell--execute {
    background: var(--color-light-gray);
    color: #475569;
}

.pack-gov__caption {
    margin: -12px 0 16px;
    font-size: 13px;
    font-weight: 650;
    color: var(--color-gray);
}
.pack-gov__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    counter-reset: pack-gov;
}
.pack-gov__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 22px 20px 20px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    counter-increment: pack-gov;
}
.pack-gov__card:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 28px;
    right: -12px;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--pole-0);
    border-right: 2px solid var(--pole-0);
    transform: rotate(45deg);
    z-index: 1;
}
.pack-gov__card::before {
    content: counter(pack-gov, decimal-leading-zero);
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-title);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: var(--pole-0);
}
.pack-gov__period {
    margin: 0;
    display: inline-flex;
    align-self: flex-start;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.pack-gov__name {
    margin: 4px 0 0;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
    overflow-wrap: break-word;
}
.pack-gov__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
    font-weight: 600;
}
.pack-gov__must {
    list-style: none;
    margin: 20px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 8px 6px;
}
.pack-gov__must li {
    margin: 0;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--pole-0);
    color: #fff;
    font-family: var(--font-title);
    font-size: 14px;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(61, 90, 134, 0.18);
}
.pack-gov__must .pack-gov__must-sep {
    padding: 0 2px;
    background: none;
    color: var(--pole-0);
    box-shadow: none;
    font-size: 18px;
    font-weight: 800;
}

.pack-change__lead {
    margin: -12px 0 28px;
    max-width: 720px;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
}
.pack-change__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    counter-reset: pack-change;
}
.pack-change__item {
    margin: 0;
    min-width: 0;
    padding: 18px 16px 16px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    overflow-wrap: break-word;
    counter-increment: pack-change;
}
.pack-change__item::before {
    content: counter(pack-change, decimal-leading-zero);
    display: block;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: var(--pole-0);
}

.pack-lp-benefits__lead {
    font-size: 16px;
    color: var(--color-gray);
    max-width: 720px;
    margin: -12px 0 32px;
    line-height: 1.6;
}
.pack-lp-benefits__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
/* Exactement 4 bénéfices : 2×2 en desktop (évite 3+1) */
@media (min-width: 1025px) {
    .pack-lp-benefits__grid:has(> .pack-lp-benefit-card:nth-child(4):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }
    .pack-lp-benefits__grid:has(> .pack-lp-benefit-card:nth-child(8):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }
    .pack-lp-benefits__grid:has(> .pack-lp-benefit-card:nth-child(10):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }
    .pack-lp-benefits__grid:has(> .pack-lp-benefit-card:nth-child(7):last-child) > .pack-lp-benefit-card:last-child {
        grid-column: 2;
    }
}
.pack-lp-benefit-card {
    padding: 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.2s, transform 0.2s;
}
.pack-lp-benefit-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.pack-lp-benefit-card__icon {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
}
.pack-lp-benefit-card--pole-0 .pack-lp-benefit-card__icon { background: var(--pole-0-bg); color: var(--pole-0); }
.pack-lp-benefit-card--pole-1 .pack-lp-benefit-card__icon { background: var(--pole-1-bg); color: var(--pole-1); }
.pack-lp-benefit-card--pole-2 .pack-lp-benefit-card__icon { background: var(--pole-2-bg); color: var(--pole-2); }
.pack-lp-benefit-card--pole-3 .pack-lp-benefit-card__icon { background: var(--pole-3-bg); color: var(--pole-3); }
.pack-lp-benefit-card--pole-4 .pack-lp-benefit-card__icon { background: var(--pole-4-bg); color: var(--pole-4); }
.pack-lp-benefit-card__title {
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 8px;
    line-height: 1.35;
}
.pack-lp-benefit-card__text {
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
    margin: 0;
}

.pack-lp-roadmap__caption {
    margin: -12px 0 28px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-roadmap__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    counter-reset: pack-roadmap;
}
.pack-lp-roadmap__card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow-wrap: break-word;
    gap: 10px;
    padding: 22px 20px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    counter-increment: pack-roadmap;
}
.pack-lp-roadmap__card:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 28px;
    right: -12px;
    width: 8px;
    height: 8px;
    border-top: 2px solid var(--pole-0);
    border-right: 2px solid var(--pole-0);
    transform: rotate(45deg);
    z-index: 1;
}
.pack-lp-roadmap__label {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-roadmap__name {
    margin: 0;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.pack-lp-roadmap__horizon {
    margin: -4px 0 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-gray);
}
.pack-lp-roadmap__items {
    list-style: none;
    margin: auto 0 0;
    padding: 12px 0 0;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pack-lp-roadmap__items li {
    position: relative;
    padding-left: 14px;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 600;
    color: var(--color-dark);
}
.pack-lp-roadmap__items li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-0);
}
.pack-lp-roadmap__meta {
    list-style: none;
    margin: auto 0 0;
    padding: 12px 0 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-top: 1px solid var(--color-border);
}
.pack-lp-roadmap__meta li {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
}
.pack-lp-roadmap__meta span {
    color: var(--color-gray);
    font-weight: 600;
    margin-right: 4px;
}
.pack-lp-roadmap__card--defer {
    background: #f7f8fa;
    border-style: dashed;
    counter-increment: none;
}
.pack-lp-roadmap__card--defer .pack-lp-roadmap__label {
    color: var(--color-gray);
}
.pack-lp-roadmap__note {
    margin: auto 0 0;
    padding-top: 12px;
    border-top: 1px dashed var(--color-border);
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}
.pack-lp-roadmap__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}
@media (min-width: 1025px) and (max-width: 1199px) {
    .pack-lp-roadmap__grid:has(> .pack-lp-roadmap__card:nth-child(5):last-child) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pack-lp-roadmap__grid:has(> .pack-lp-roadmap__card:nth-child(5):last-child) .pack-lp-roadmap__card:not(:last-child)::after {
        display: none;
    }
}
@media (min-width: 1200px) {
    .pack-lp-roadmap__grid:has(> .pack-lp-roadmap__card:nth-child(5):last-child) {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 12px;
    }
    .pack-lp-roadmap__grid:has(> .pack-lp-roadmap__card:nth-child(5):last-child) .pack-lp-roadmap__card:not(:last-child)::after {
        right: -10px;
    }
}
.pack-lp-roadmap__closing {
    margin: 24px 0 0;
    max-width: 720px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-lp-workstreams__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
}
.pack-lp-workstream {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 18px 20px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    min-width: 0;
}
.pack-lp-workstream__domain {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-workstream__link {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    max-width: 100%;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    text-decoration: none;
}
.pack-lp-workstream__link > span:not(.pack-lp-workstream__arrow) {
    min-width: 0;
}
.pack-lp-workstream__link:hover {
    color: var(--pole-0);
}
.pack-lp-workstream__arrow {
    flex-shrink: 0;
    color: var(--pole-0);
    font-weight: 700;
}

.pack-lp-deps__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.pack-lp-deps-chain {
    padding: 24px 22px;
    border-radius: var(--radius-lg);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-deps-chain__label {
    margin: 0 0 16px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-deps-chain__steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}
.pack-lp-deps-chain__steps li {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.pack-lp-deps-chain__step {
    width: 100%;
    text-align: center;
    padding: 12px 14px;
    border-radius: var(--radius-sm);
    background: var(--pole-0-bg);
    color: var(--color-dark);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}
.pack-lp-deps-chain__arrow {
    display: block;
    margin: 4px 0;
    color: var(--pole-0);
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}
.pack-lp-deps__closing {
    margin: 24px 0 0;
    max-width: 820px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-lp-matrix__wrap {
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-matrix__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1.2fr);
    gap: 8px;
    padding: 14px 22px;
    background: var(--pole-0);
    color: #fff;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.pack-lp-matrix__head span:last-child { grid-column: 3; }
.pack-lp-matrix__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pack-lp-matrix__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1.2fr);
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 16px 22px;
    border-top: 1px solid var(--color-border);
}
.pack-lp-matrix__row:nth-child(even) {
    background: var(--pole-0-bg);
}
.pack-lp-matrix__k {
    display: none;
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-gray);
}
.pack-lp-matrix__v {
    margin: 0;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    color: var(--color-dark);
}
.pack-lp-matrix__arrow {
    color: var(--pole-0);
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}
.pack-lp-matrix__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.pack-lp-matrix__tags span {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    border: 1px solid rgba(89, 122, 175, 0.28);
    font-family: var(--font-subtitle);
    font-size: 12.5px;
    font-weight: 700;
}
.pack-lp-matrix__row:nth-child(even) .pack-lp-matrix__tags span {
    background: #fff;
}
.pack-lp-matrix__closing {
    margin: 24px auto 0;
    max-width: 760px;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.6;
    color: var(--color-dark);
}
@media (max-width: 700px) {
    .pack-lp-matrix__head { display: none; }
    .pack-lp-matrix__row {
        grid-template-columns: 1fr;
        justify-items: start;
        padding: 16px 18px;
        gap: 8px;
    }
    .pack-lp-matrix__k { display: block; }
    .pack-lp-matrix__arrow {
        transform: rotate(90deg);
        margin: 2px 0;
    }
}

.pack-lp-why__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}
.pack-lp-why-card {
    padding: 24px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.2s, transform 0.2s;
}
.pack-lp-why-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.pack-lp-why-card__icon {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
}
.pack-lp-why-card--pole-0 .pack-lp-why-card__icon { background: var(--pole-0-bg); color: var(--pole-0); }
.pack-lp-why-card--pole-1 .pack-lp-why-card__icon { background: var(--pole-1-bg); color: var(--pole-1); }
.pack-lp-why-card--pole-2 .pack-lp-why-card__icon { background: var(--pole-2-bg); color: var(--pole-2); }
.pack-lp-why-card--pole-3 .pack-lp-why-card__icon { background: var(--pole-3-bg); color: var(--pole-3); }
.pack-lp-why-card--pole-4 .pack-lp-why-card__icon { background: var(--pole-4-bg); color: var(--pole-4); }
.pack-lp-why-card__title {
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 8px;
    line-height: 1.35;
}
.pack-lp-why-card__text {
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
    margin: 0;
}

.pack-arch__tag {
    margin: 0 0 10px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-arch .pack-lp-section-title--center {
    margin-bottom: 36px;
    max-width: 720px;
}
.pack-arch__stage {
    position: relative;
    width: min(640px, 100%);
    aspect-ratio: 1;
    margin: 0 auto 28px;
}
.pack-arch__svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}
.pack-arch__ring {
    fill: none;
    stroke: rgba(89, 122, 175, 0.22);
    stroke-width: 0.35;
}
.pack-arch__ring--outer {
    stroke: rgba(89, 122, 175, 0.12);
    stroke-dasharray: 1.2 1.1;
}
.pack-arch__ring--inner {
    stroke: rgba(89, 122, 175, 0.28);
}
.pack-arch__svg line {
    stroke: rgba(89, 122, 175, 0.38);
    stroke-width: 0.35;
}
.pack-arch__hub {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 2;
    width: 172px;
    height: 172px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 18px;
    background: radial-gradient(circle at 32% 28%, #7ea0c9 0%, var(--pole-0) 62%, #3d5a86 100%);
    color: #fff;
    box-shadow: 0 12px 32px rgba(61, 90, 134, 0.28), 0 0 0 10px rgba(89, 122, 175, 0.08);
}
.pack-arch__hub-kicker {
    display: none;
}
.pack-arch__hub-title {
    margin: 0;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.25;
    color: #fff;
}
.pack-arch__node {
    --a: calc(var(--i) * 60deg);
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 3;
    width: 148px;
    transform: translate(-50%, -50%) rotate(var(--a)) translateY(-214px) rotate(calc(-1 * var(--a)));
    padding: 12px 12px 11px;
    border-radius: 14px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
    text-align: center;
}
@media (max-width: 860px) and (min-width: 721px) {
    .pack-arch__hub { width: 150px; height: 150px; }
    .pack-arch__hub-title { font-size: 14px; }
    .pack-arch__node {
        width: 132px;
        transform: translate(-50%, -50%) rotate(var(--a)) translateY(-178px) rotate(calc(-1 * var(--a)));
    }
}
.pack-arch__node-ico {
    width: 32px;
    height: 32px;
    margin: 0 auto 8px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-arch__node-title {
    margin: 0 0 2px;
    font-family: var(--font-title);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.25;
}
.pack-arch__node-text {
    margin: 0;
    font-size: 12px;
    line-height: 1.35;
    color: var(--color-gray);
}
.pack-arch__closing {
    margin: 8px auto 0;
    max-width: 640px;
    text-align: center;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-gray);
}

.pack-case__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}
.pack-case__grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.pack-case__tag {
    margin: 0 0 10px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-case.pack-lp-section--muted .pack-lp-section-title {
    text-align: center;
}
.pack-case__caption {
    margin: -12px 0 28px;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-gray);
}
.pack-case-card {
    display: flex;
    flex-direction: column;
    padding: 24px 22px 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: #f8fafc;
    box-shadow: var(--shadow-sm);
    min-width: 0;
}
.pack-case-card--featured {
    background: var(--color-white);
    border-width: 2px;
    box-shadow: var(--shadow-md);
}
.pack-case-card--pole-0 { border-color: var(--pole-0); }
.pack-case-card--pole-1 { border-color: var(--pole-1); }
.pack-case-card--pole-2 { border-color: var(--pole-2); }
.pack-case-card--pole-3 { border-color: var(--pole-3); }
.pack-case-card--pole-4 { border-color: var(--pole-4); }
.pack-case-card--result {
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
}
.pack-case-card__badge {
    display: inline-flex;
    align-self: flex-start;
    margin: 0 0 14px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: #e2e8f0;
    color: #64748b;
}
.pack-case-card--featured .pack-case-card__badge {
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-case-card--result .pack-case-card__badge {
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-case-card__lead {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.4;
}
.pack-case-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pack-case-card__list li {
    position: relative;
    padding: 8px 0 8px 18px;
    font-size: 14.5px;
    line-height: 1.45;
    color: var(--color-gray);
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.pack-case-card__list li:first-child {
    border-top: 0;
    padding-top: 0;
}
.pack-case-card__list li:last-child { padding-bottom: 0; }
.pack-case-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.95em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #cbd5e1;
}
.pack-case-card__list li:first-child::before { top: 0.45em; }
.pack-case-card--featured .pack-case-card__list li {
    color: var(--color-dark);
}
.pack-case-card--featured .pack-case-card__list li::before {
    background: var(--pole-0);
}
.pack-case-card__note {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px dashed rgba(15, 23, 42, 0.12);
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
    font-style: italic;
}
.pack-case-card__text {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
@media (max-width: 1024px) {
    .pack-case__grid { grid-template-columns: 1fr; }
    .pack-case__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .pack-case__grid--4 { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .pack-arch__stage {
        aspect-ratio: auto;
        height: auto;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }
    .pack-arch__svg { display: none; }
    .pack-arch__hub {
        position: relative;
        left: auto;
        top: auto;
        transform: none;
        width: auto;
        height: auto;
        min-height: 0;
        grid-column: 1 / -1;
        border-radius: 16px;
        padding: 22px 18px;
        box-shadow: var(--shadow-md);
    }
    .pack-arch__hub-title { font-size: 18px; }
    .pack-arch__node {
        position: relative;
        left: auto;
        top: auto;
        width: auto;
        transform: none;
    }
}
@media (max-width: 480px) {
    .pack-arch__stage { grid-template-columns: 1fr; }
}

.pack-lp-avoids {
    padding: 64px 0 72px;
    background: linear-gradient(180deg, #0f1f35 0%, var(--color-primary-dark) 100%);
}
.pack-lp-avoids .pack-lp-section-title { margin-bottom: 32px; }
.pack-lp-avoids__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.pack-lp-avoids__item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px 18px;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.pack-lp-avoids__icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #f3c4c4;
    background: rgba(243, 196, 196, 0.12);
}
.pack-lp-avoids__text {
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-white);
    padding-top: 6px;
}
.pack-lp-avoids__closing {
    margin: 32px 0 0;
    padding: 22px 24px;
    max-width: 820px;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-white);
    background: rgba(255, 255, 255, 0.08);
    border-left: 4px solid var(--color-accent);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.pack-lp-audience__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
@media (min-width: 1025px) {
    .pack-lp-audience__grid:has(> .pack-lp-audience-card:nth-child(8):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }
}
.pack-lp-audience-card {
    padding: 24px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    text-align: center;
    background: var(--color-white);
}
.pack-lp-audience-card--titled {
    text-align: left;
}
.pack-lp-audience__closing {
    margin: 32px 0 0;
    padding: 20px 24px;
    max-width: 820px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    box-shadow: var(--shadow-sm);
}
.pack-lp-audience__closing p {
    margin: 0;
}
.pack-lp-audience-card__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: var(--color-white);
    font-weight: 800;
    font-size: 15px;
    margin-bottom: 14px;
    font-family: var(--font-title);
}
.pack-lp-audience-card__text {
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
    margin: 0;
}
.pack-lp-audience-card__title {
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 10px;
    line-height: 1.35;
}
.pack-lp-not-for-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--color-white);
}
.pack-lp-not-for-card__num {
    background: transparent;
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
}
.pack-lp-not-for-card__links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: auto;
    padding-top: 16px;
}
.pack-lp-not-for__closing {
    margin: 32px 0 0;
    padding: 20px 24px;
    max-width: 820px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.pack-lp-ladder__wrap {
    overflow-x: auto;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-ladder__table {
    width: 100%;
    border-collapse: collapse;
    min-width: 520px;
}
.pack-lp-ladder__table th,
.pack-lp-ladder__table td {
    padding: 16px 20px;
    text-align: left;
    vertical-align: middle;
}
.pack-lp-ladder__table thead th {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-gray);
    background: var(--color-light-gray);
    border-bottom: 1px solid var(--color-border);
}
.pack-lp-ladder__table tbody th {
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    width: 46%;
}
.pack-lp-ladder__table tbody td {
    font-size: 15px;
    line-height: 1.45;
    color: var(--color-gray);
}
.pack-lp-ladder__table tbody tr + tr th,
.pack-lp-ladder__table tbody tr + tr td {
    border-top: 1px solid var(--color-border);
}
.pack-lp-ladder__table tbody a {
    color: var(--color-dark);
    text-decoration: none;
}
.pack-lp-ladder__table tbody a:hover {
    color: var(--pole-0);
    text-decoration: underline;
}
.pack-lp-ladder__table tbody tr.is-current {
    background: var(--pole-0-bg);
}
.pack-lp-ladder__table tbody tr.is-current th,
.pack-lp-ladder__table tbody tr.is-current td {
    color: var(--color-dark);
}
.pack-lp-ladder__badge {
    display: inline-block;
    margin-left: 8px;
    padding: 3px 9px;
    border-radius: 999px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.03em;
    vertical-align: middle;
    background: var(--pole-0);
    color: var(--color-white);
}
@media (min-width: 1025px) {
    .pack-lp-not-for .pack-lp-audience__grid:has(> :nth-child(4):last-child),
    .pack-lp-not-for .pack-lp-audience__grid:has(> :nth-child(5):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }
}

.pack-orient__shell {
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}
.pack-orient__layout {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
}
.pack-orient__config {
    padding: 22px 20px;
    background: var(--pole-0-bg);
    border-right: 1px solid rgba(89, 122, 175, 0.18);
}
.pack-orient__q {
    margin: 0 0 16px;
    padding: 0;
    border: 0;
}
.pack-orient__q:last-child { margin-bottom: 0; }
.pack-orient__legend {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--pole-0);
}
.pack-orient__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.pack-orient__opt {
    appearance: none;
    border: 1.5px solid rgba(89, 122, 175, 0.28);
    background: #fff;
    color: var(--color-dark);
    border-radius: 10px;
    padding: 7px 11px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.pack-orient__opt:hover {
    border-color: var(--pole-0);
}
.pack-orient__opt:focus-visible {
    outline: 2px solid var(--pole-0);
    outline-offset: 2px;
}
.pack-orient__opt.is-selected {
    border-color: var(--pole-0);
    background: var(--pole-0);
    color: #fff;
}
.pack-orient__result {
    padding: 28px 28px 26px;
    display: flex;
    align-items: center;
}
.pack-orient__panel { width: 100%; }
.pack-orient__eyebrow {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-orient__name {
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 12px;
    line-height: 1.25;
}
.pack-orient__text {
    margin: 0 0 18px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-gray);
    max-width: 46ch;
}
.pack-orient__axes-label {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 800;
    color: var(--color-dark);
}
.pack-orient__axes {
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
}
.pack-orient__axes li {
    position: relative;
    padding: 4px 0 4px 16px;
    font-size: 15px;
    color: var(--color-gray);
}
.pack-orient__axes li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 11px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pole-0);
}
.pack-orient__cta { margin-top: 4px; }
.pack-orient__links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}
.pack-orient__links a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    color: var(--pole-0);
    text-decoration: none;
}
.pack-orient__links a::after {
    content: "→";
}
.pack-orient__links a:hover { text-decoration: underline; }
@media (max-width: 900px) {
    .pack-orient__layout { grid-template-columns: 1fr; }
    .pack-orient__config { border-right: 0; border-bottom: 1px solid rgba(89, 122, 175, 0.18); }
    .pack-orient__result { padding: 24px 20px; }
}

.pack-scope__shell {
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}
.pack-scope__layout {
    display: grid;
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
}
.pack-scope__config {
    padding: 22px 20px;
    background: var(--pole-0-bg);
    border-right: 1px solid rgba(89, 122, 175, 0.18);
}
.pack-scope__q {
    margin: 0 0 16px;
    padding: 0;
    border: 0;
}
.pack-scope__q:last-child { margin-bottom: 0; }
.pack-scope__legend {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--pole-0);
}
.pack-scope__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.pack-scope__opt {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1.5px solid rgba(89, 122, 175, 0.28);
    background: #fff;
    color: var(--color-dark);
    border-radius: 10px;
    padding: 7px 11px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    white-space: normal;
    max-width: 100%;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.pack-scope__opt:hover { border-color: var(--pole-0); }
.pack-scope__opt:focus-visible {
    outline: 2px solid var(--pole-0);
    outline-offset: 2px;
}
.pack-scope__opt.is-selected {
    border-color: var(--pole-0);
    background: var(--pole-0);
    color: #fff;
}
.pack-scope__dash {
    min-width: 0;
    padding: 26px 26px 22px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.pack-scope__dash--pulse {
    animation: pack-scope-fade .28s ease;
}
@keyframes pack-scope-fade {
    from { opacity: 0.72; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .pack-scope__dash--pulse,
    .pack-scope__bar > span { animation: none !important; transition: none !important; }
}
.pack-scope__eyebrow {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-scope__kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.pack-scope__kpi {
    background: #f8fafc;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 12px 10px;
    text-align: center;
}
.pack-scope__kpi-label {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 650;
    color: #6b7280;
    line-height: 1.3;
}
.pack-scope__kpi-value {
    display: block;
    font-family: var(--font-title);
    font-size: clamp(20px, 2.2vw, 26px);
    font-weight: 900;
    color: var(--color-dark);
    line-height: 1.1;
}
.pack-scope__kpi-value--urg[data-urg="high"] { color: #c2410c; }
.pack-scope__kpi-value--urg[data-urg="medium"] { color: #b45309; }
.pack-scope__kpi-value--urg[data-urg="moderate"] { color: #1d4ed8; }
.pack-scope__kpi-value--urg[data-urg="low"] { color: #3f6b4e; }
.pack-scope__bars {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pack-scope__bar-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
    font-size: 12.5px;
}
.pack-scope__bar-meta span {
    color: #475569;
    font-weight: 650;
}
.pack-scope__bar-meta strong {
    color: var(--color-dark);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.pack-scope__bar {
    height: 8px;
    border-radius: 999px;
    background: #e8eef6;
    overflow: hidden;
}
.pack-scope__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #7ea0c9 0%, var(--pole-0) 100%);
    transition: width .35s ease;
}
.pack-scope__rec-label,
.pack-scope__prio-label {
    margin: 4px 0 0;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 800;
    color: var(--color-dark);
}
.pack-scope__rec-name {
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0;
    line-height: 1.3;
}
.pack-scope__prios {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pack-scope__prios li {
    position: relative;
    padding: 6px 0 6px 16px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--color-gray);
}
.pack-scope__prios li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pole-0);
}
.pack-scope__prio-text {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}
.pack-scope__cta { align-self: flex-start; margin-top: 4px; }
.pack-scope__disclaimer {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: #6b7280;
}
@media (max-width: 900px) {
    .pack-scope__layout { grid-template-columns: 1fr; }
    .pack-scope__config { border-right: 0; border-bottom: 1px solid rgba(89, 122, 175, 0.18); }
    .pack-scope__dash { padding: 22px 18px; }
}
@media (max-width: 640px) {
    .pack-scope__kpis { grid-template-columns: 1fr; }
    .pack-scope__opt {
        flex: 1 1 calc(50% - 6px);
        min-height: 40px;
        text-align: center;
        justify-content: center;
    }
    .pack-scope__cta {
        width: 100%;
        justify-content: center;
    }
}
.pack-scope--exec .pack-scope__q { margin-bottom: 13px; }
.pack-scope--exec .pack-scope__dash { gap: 14px; }
.pack-scope--exec .pack-scope__bars { gap: 8px; }
.pack-scope--exec .pack-scope__rec-name--diag {
    font-size: 18px;
    font-weight: 800;
    max-width: 38ch;
}

.pack-lp-process {
    padding: 64px 0 72px;
    background: linear-gradient(180deg, #0f1f35 0%, var(--color-primary-dark) 100%);
}
.pack-lp-process__lead {
    max-width: 720px;
    margin: -8px auto 32px;
    text-align: center;
    font-size: 16px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.78);
}
.pack-lp-process__note {
    max-width: 800px;
    margin: 4px auto 0;
    padding: 16px 20px;
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    background: rgba(255, 255, 255, 0.06);
    border-left: 4px solid rgba(255, 255, 255, 0.45);
}
.pack-lp-process__note p {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.9);
}
.pack-lp-process__sub {
    max-width: 800px;
    margin: 0 auto 18px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}
.pack-lp-rhythm {
    max-width: 1040px;
    margin: 48px auto 0;
}
.pack-lp-rhythm__title {
    margin: 0 0 22px;
    text-align: center;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-white);
}
.pack-lp-rhythm__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-rhythm-card {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--radius-md);
    padding: 22px 18px 20px;
}
.pack-lp-rhythm-card__icon {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--color-white);
}
.pack-lp-rhythm-card__period {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}
.pack-lp-rhythm-card__name {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-white);
}
.pack-lp-rhythm-card__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.78);
}
@media (max-width: 1024px) {
    .pack-lp-rhythm__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .pack-lp-rhythm__grid { grid-template-columns: 1fr; }
}

.pack-lp-cockpit {
    background: #eef2f7;
}
.pack-lp-cockpit .pack-lp-section-title {
    text-align: center;
    margin-bottom: 8px;
}
.pack-lp-cockpit__caption {
    margin: 0 0 28px;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-gray);
}
.pack-lp-cockpit__shell {
    max-width: 1040px;
    margin: 0 auto;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}
.pack-lp-cockpit__chrome {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    background: #1e293b;
    color: rgba(255, 255, 255, 0.72);
}
.pack-lp-cockpit__dots {
    display: flex;
    gap: 6px;
}
.pack-lp-cockpit__dots i {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #64748b;
}
.pack-lp-cockpit__dots i:nth-child(1) { background: #f87171; }
.pack-lp-cockpit__dots i:nth-child(2) { background: #fbbf24; }
.pack-lp-cockpit__dots i:nth-child(3) { background: #34d399; }
.pack-lp-cockpit__chrome-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.pack-lp-cockpit__kpis {
    list-style: none;
    margin: 0;
    padding: 20px 20px 8px;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}
.pack-lp-cockpit__kpi {
    background: #f8fafc;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 14px 12px 12px;
    min-height: 92px;
}
.pack-lp-cockpit__kpi-label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;
    color: #64748b;
}
.pack-lp-cockpit__kpi-value {
    display: block;
    font-family: var(--font-title);
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 900;
    line-height: 1.1;
    color: var(--color-dark);
    font-variant-numeric: tabular-nums;
}
.pack-lp-cockpit__kpi--ok .pack-lp-cockpit__kpi-value { color: #15803d; }
.pack-lp-cockpit__kpi--watch .pack-lp-cockpit__kpi-value { color: #b45309; }
.pack-lp-cockpit__kpi--risk .pack-lp-cockpit__kpi-value { color: #c2410c; }
.pack-lp-cockpit__bar {
    display: block;
    margin-top: 10px;
    height: 6px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}
.pack-lp-cockpit__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f59e0b 0%, #d97706 100%);
}
.pack-lp-cockpit__table-wrap {
    overflow-x: auto;
    padding: 8px 12px 12px;
}
.pack-lp-cockpit__table {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
}
.pack-lp-cockpit__table th,
.pack-lp-cockpit__table td {
    padding: 14px 16px;
    text-align: left;
    vertical-align: middle;
}
.pack-lp-cockpit__table thead th {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
    background: #f8fafc;
    border-bottom: 1px solid var(--color-border);
}
.pack-lp-cockpit__table tbody th {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    white-space: nowrap;
}
.pack-lp-cockpit__table tbody td {
    font-size: 14px;
    line-height: 1.4;
    color: var(--color-gray);
    border-top: 1px solid #eef2f7;
}
.pack-lp-cockpit__badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.pack-lp-cockpit__badge--risk {
    background: #fff1f2;
    color: #be123c;
}
.pack-lp-cockpit__badge--progress {
    background: #eff6ff;
    color: #1d4ed8;
}
.pack-lp-cockpit__badge--watch {
    background: #eff6ff;
    color: #1d4ed8;
}
.pack-lp-cockpit__badge--ok {
    background: #ecfdf5;
    color: #047857;
}
.pack-lp-cockpit__badge--wait {
    background: #f1f5f9;
    color: #475569;
}
.pack-lp-cockpit__note {
    max-width: 640px;
    margin: 22px auto 0;
    text-align: center;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}
@media (max-width: 1024px) {
    .pack-lp-cockpit__kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .pack-lp-cockpit__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-cockpit__kpi { min-height: 0; }
}

.pack-lp-gov .pack-lp-section-title {
    text-align: center;
    max-width: 28ch;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 10px;
}
.pack-lp-gov__lead {
    margin: 0 auto 32px;
    max-width: 42ch;
    text-align: center;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.45;
    color: var(--color-dark);
}
.pack-lp-gov__grid {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 1040px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-gov-card {
    display: flex;
    flex-direction: column;
    padding: 22px 20px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-gov-card__icon {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    border-radius: 10px;
    background: var(--color-light-gray);
    color: var(--color-gray);
}
.pack-lp-gov-card__title {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.pack-lp-gov-card__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
}
.pack-lp-gov-card--advise {
    border-color: rgba(89, 122, 175, 0.35);
    background: #f7f9fc;
}
.pack-lp-gov-card--advise .pack-lp-gov-card__icon {
    background: rgba(89, 122, 175, 0.14);
    color: var(--color-primary-dark);
}
.pack-lp-gov-card--decide {
    border-color: rgba(40, 153, 81, 0.35);
    background: #f4fbf7;
}
.pack-lp-gov-card--decide .pack-lp-gov-card__icon {
    background: rgba(40, 153, 81, 0.16);
    color: var(--color-secondary);
}
.pack-lp-gov__closing {
    max-width: 760px;
    margin: 28px auto 0;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-light-gray);
    border-left: 4px solid var(--pole-0);
}
.pack-lp-gov__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
@media (max-width: 1024px) {
    .pack-lp-gov__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-gov .pack-lp-section-title { max-width: none; }
}
@media (max-width: 640px) {
    .pack-lp-gov__grid { grid-template-columns: 1fr; }
}

.pack-lp-challenge {
    padding: 64px 0 72px;
    background: linear-gradient(180deg, #0f1f35 0%, var(--color-primary-dark) 100%);
}
.pack-lp-challenge__tag {
    margin: 0 0 12px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-accent);
}
.pack-lp-challenge .pack-lp-section-title {
    text-align: center;
    max-width: 22em;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 16px;
}
.pack-lp-challenge__lead {
    max-width: 640px;
    margin: 0 auto 36px;
    text-align: center;
    font-size: 17px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.82);
}
.pack-lp-challenge__grid {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 1040px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-challenge__item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 22px 20px;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.pack-lp-challenge__mark {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(225, 198, 171, 0.16);
    color: var(--color-accent);
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
}
.pack-lp-challenge__item p {
    margin: 0;
    padding-top: 6px;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-white);
}
@media (max-width: 1024px) {
    .pack-lp-challenge__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .pack-lp-challenge__grid { grid-template-columns: 1fr; }
}

.pack-lp-arbit .pack-lp-section-title {
    text-align: center;
    max-width: 22em;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 8px;
}
.pack-lp-arbit__tag {
    margin: 0 0 10px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-arbit__caption {
    margin: 0 0 24px;
    text-align: center;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-gray);
}
.pack-lp-arbit__wrap {
    max-width: 1040px;
    margin: 0 auto;
    overflow-x: auto;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-arbit__table {
    width: 100%;
    border-collapse: collapse;
    min-width: 680px;
}
.pack-lp-arbit__table th,
.pack-lp-arbit__table td {
    padding: 16px 18px;
    text-align: left;
    vertical-align: middle;
}
.pack-lp-arbit__table thead th {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
    background: #f8fafc;
    border-bottom: 1px solid var(--color-border);
}
.pack-lp-arbit__table tbody th {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    white-space: nowrap;
}
.pack-lp-arbit__table tbody td {
    border-top: 1px solid #eef2f7;
}
.pack-lp-arbit__pill,
.pack-lp-arbit__decision {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.pack-lp-arbit__pill--impact-high {
    background: #ecfdf5;
    color: #047857;
}
.pack-lp-arbit__pill--impact-mid {
    background: #f1f5f9;
    color: #334155;
}
.pack-lp-arbit__pill--cost-mid {
    background: #fff7ed;
    color: #c2410c;
}
.pack-lp-arbit__pill--impact-low {
    background: #f1f5f9;
    color: #475569;
}
.pack-lp-arbit__pill--cost-low {
    background: #ecfdf5;
    color: #047857;
}
.pack-lp-arbit__pill--cost-high {
    background: #fff7ed;
    color: #c2410c;
}
.pack-lp-arbit__pill--cost-very-high {
    background: #fff1f2;
    color: #be123c;
}
.pack-lp-arbit__decision--go {
    background: #15803d;
    color: var(--color-white);
}
.pack-lp-arbit__decision--scope {
    background: #eff6ff;
    color: #1d4ed8;
}
.pack-lp-arbit__decision--test {
    background: #fffbeb;
    color: #b45309;
}
.pack-lp-arbit__decision--defer {
    background: #f1f5f9;
    color: #334155;
}
.pack-lp-arbit__closing {
    max-width: 640px;
    margin: 28px auto 0;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    box-shadow: var(--shadow-sm);
}
.pack-lp-arbit__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
@media (max-width: 1024px) {
    .pack-lp-arbit .pack-lp-section-title { max-width: none; }
}

.pack-lp-coord .pack-lp-section-title {
    text-align: center;
    max-width: 22em;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 32px;
}
.pack-lp-coord__tag {
    margin: 0 0 10px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-coord__flow {
    display: grid;
    grid-template-columns: minmax(200px, 260px) 36px minmax(200px, 280px) 44px minmax(180px, 260px);
    align-items: center;
    justify-content: center;
    gap: 8px 12px;
    max-width: 1040px;
    margin: 0 auto;
}
.pack-lp-coord__sources {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pack-lp-coord__source {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-coord__source-icon {
    display: inline-flex;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--color-light-gray);
    color: var(--color-gray);
}
.pack-lp-coord__source-name {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-dark);
}
.pack-lp-coord__join {
    display: block;
    width: 18px;
    height: calc(100% - 24px);
    justify-self: start;
    border: 2px solid var(--color-border);
    border-left: 0;
    border-radius: 0 10px 10px 0;
    position: relative;
}
.pack-lp-coord__join::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -14px;
    width: 14px;
    height: 2px;
    background: var(--color-border);
}
.pack-lp-coord__hub,
.pack-lp-coord__target {
    margin: 0;
    padding: 22px 20px;
    text-align: center;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}
.pack-lp-coord__hub {
    background: var(--color-primary);
    color: var(--color-white);
    border: 1px solid var(--color-primary-dark);
}
.pack-lp-coord__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
}
.pack-lp-coord__target {
    background: #f4fbf7;
    color: var(--color-dark);
    border: 1px solid rgba(40, 153, 81, 0.35);
}
.pack-lp-coord__closing {
    max-width: 680px;
    margin: 32px auto 0;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-light-gray);
    border-left: 4px solid var(--pole-0);
}
.pack-lp-coord__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
@media (max-width: 900px) {
    .pack-lp-coord .pack-lp-section-title { max-width: none; }
    .pack-lp-coord__flow {
        grid-template-columns: 1fr;
        max-width: 420px;
    }
    .pack-lp-coord__join {
        width: calc(100% - 24px);
        height: 18px;
        justify-self: center;
        border: 2px solid var(--color-border);
        border-top: 0;
        border-radius: 0 0 10px 10px;
    }
    .pack-lp-coord__join::after {
        top: auto;
        bottom: -14px;
        right: 50%;
        width: 2px;
        height: 14px;
        transform: translateX(50%);
    }
    .pack-lp-coord__arrow {
        transform: rotate(90deg);
    }
}

.pack-lp-os {
    padding: 64px 0 72px;
    background: linear-gradient(180deg, #0f1f35 0%, var(--color-primary-dark) 100%);
}
.pack-lp-os__tag {
    margin: 0 0 12px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-accent);
}
.pack-lp-os .pack-lp-section-title {
    text-align: center;
    margin-bottom: 36px;
}
.pack-lp-os__list {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 760px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.pack-lp-os__item {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 18px;
    align-items: start;
    padding: 22px 4px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.pack-lp-os__num {
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--color-accent);
    padding-top: 4px;
}
.pack-lp-os__rule {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.pack-lp-os__none {
    font-family: var(--font-title);
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-white);
}
.pack-lp-os__without {
    font-family: var(--font-title);
    font-size: clamp(18px, 2.4vw, 22px);
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-accent);
}
@media (max-width: 640px) {
    .pack-lp-os__item {
        grid-template-columns: 44px 1fr;
        gap: 12px;
        padding: 18px 0;
    }
    .pack-lp-os__num { font-size: 18px; }
}

.pack-lp-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.pack-lp-timeline__item {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 20px;
    position: relative;
    padding-bottom: 28px;
}
.pack-lp-timeline__item:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 23px;
    top: 48px;
    bottom: 0;
    width: 2px;
    background: rgba(255, 255, 255, 0.2);
}
.pack-lp-timeline__num {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--accent, var(--color-primary));
    color: var(--color-white);
    font-family: var(--font-title);
    font-weight: 800;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.08);
}
.pack-lp-timeline__card {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--radius-md);
    padding: 20px 22px;
}
.pack-lp-timeline__title {
    font-size: 17px;
    font-weight: 800;
    color: var(--color-white);
    margin-bottom: 8px;
    font-family: var(--font-title);
}
.pack-lp-timeline__text {
    font-size: 14px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
}
.pack-lp-timeline__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
}
.pack-lp-timeline__items li {
    margin: 0;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: rgba(255, 255, 255, 0.9);
}

.pack-lp-independence__lead {
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-gray);
    max-width: 760px;
    margin: -8px 0 32px;
}
.pack-lp-independence__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.pack-lp-independence-card {
    padding: 24px 22px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-independence-card__title {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--pole-0);
    line-height: 1.2;
}
.pack-lp-independence-card__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
}

.pack-lp-office__lead {
    margin: -8px 0 8px;
    max-width: 640px;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
}
.pack-lp-office__intro {
    margin: 0 0 28px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--pole-0);
}
.pack-lp-office__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-office-card {
    min-width: 0;
    overflow-wrap: break-word;
    padding: 22px 22px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-office-card__num {
    display: block;
    margin-bottom: 12px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    color: var(--pole-0);
}
.pack-lp-office-card__title {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.pack-lp-office-card__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
}

.pack-lp-tkpi__lead {
    margin: -8px 0 28px;
    max-width: 640px;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
}
.pack-lp-tkpi__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-tkpi-card {
    min-width: 0;
    overflow-wrap: break-word;
    padding: 22px 22px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-tkpi-card__title {
    margin: 0 0 12px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.pack-lp-tkpi-card__tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.pack-lp-tkpi-card__tags li {
    margin: 0;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.pack-lp-tkpi__closing {
    margin-top: 24px;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--pole-0-bg);
    border-left: 4px solid var(--pole-0);
}
.pack-lp-tkpi__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-lp-vtrack__lead {
    margin: -8px 0 6px;
    max-width: 640px;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
}
.pack-lp-vtrack__caption {
    margin: 0 0 28px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--pole-0);
}
.pack-lp-vtrack__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-vtrack-card {
    min-width: 0;
    overflow-wrap: break-word;
    padding: 22px 20px 18px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-vtrack-card--featured {
    border-color: var(--pole-0);
    box-shadow: 0 10px 28px rgba(61, 90, 134, 0.12);
}
.pack-lp-vtrack-card__title {
    margin: 0 0 16px;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.pack-lp-vtrack-card__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}
.pack-lp-vtrack-card__metrics > div {
    padding: 10px 10px 9px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid var(--color-border);
}
.pack-lp-vtrack-card__metrics dt {
    margin: 0 0 3px;
    font-size: 11px;
    font-weight: 650;
    color: #6b7280;
    line-height: 1.3;
}
.pack-lp-vtrack-card__metrics dd {
    margin: 0;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}
.pack-lp-vtrack-card__metrics dd[data-level="high"] { color: #c2410c; }
.pack-lp-vtrack-card__metrics dd[data-level="medium"] { color: #b45309; }
.pack-lp-vtrack-card__metrics dd[data-level="low"] { color: #3f6b4e; }
.pack-lp-vtrack-card__prio {
    color: var(--pole-0) !important;
}
.pack-lp-vtrack__disclaimer {
    margin: 20px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: #6b7280;
}

.pack-lp-includes__lead {
    font-size: 16px;
    color: var(--color-gray);
    max-width: 720px;
    margin: -12px 0 32px;
    line-height: 1.6;
}
.pack-lp-blocks {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.pack-lp-blocks--grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
.pack-lp-block {
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 24px 26px;
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-block__title {
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 14px;
}
.pack-lp-block__list {
    margin: 0 0 18px;
    padding-left: 20px;
    color: var(--color-gray);
    font-size: 15px;
    line-height: 1.55;
}
.pack-lp-block__list li { margin-bottom: 8px; }
.pack-lp-block__text {
    margin: 0 0 18px;
    color: var(--color-gray);
    font-size: 15px;
    line-height: 1.6;
}
.pack-lp-block__text:last-child,
.pack-lp-block__list:last-child {
    margin-bottom: 0;
}
.pack-lp-block__note {
    margin: -8px 0 18px;
    color: var(--color-gray);
    font-size: 14px;
    line-height: 1.55;
    font-style: italic;
}
.pack-lp-includes__notice {
    margin-top: 28px;
    padding: 20px 22px;
    border-radius: var(--radius-md);
    border: 2px solid var(--color-primary);
    background: var(--color-soft-blue);
    box-shadow: var(--shadow-sm);
}
.pack-lp-includes__notice p {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--color-dark);
}
.pack-lp-block__cta {
    display: inline-flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 100%;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: none;
}
.pack-lp-block__cta:hover { text-decoration: underline; }
.pack-lp-block__cta svg { transition: transform 0.2s; }
.pack-lp-block__cta:hover svg { transform: translateX(3px); }

.pack-lp-meta__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.pack-lp-meta__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.pack-lp-meta__list li {
    padding: 12px 16px;
    background: var(--color-light-gray);
    border-radius: var(--radius-sm);
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-dark);
    border-left: 3px solid var(--color-primary);
}
.pack-lp-summary {
    background: var(--pole-0-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 24px;
}
.pack-lp-summary__title {
    font-family: var(--font-title);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-primary);
    margin-bottom: 12px;
}
.pack-lp-summary__text {
    font-size: 17px;
    line-height: 1.55;
    color: var(--color-dark);
    font-weight: 600;
    margin: 0;
}

.pack-lp-price__lead {
    margin: -8px 0 28px;
    max-width: 720px;
    font-size: 17px;
    line-height: 1.55;
    color: var(--color-gray);
}
.pack-lp-price-levels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 0 0 8px;
}
.pack-lp-price-level {
    display: flex;
    flex-direction: column;
    padding: 24px 22px 22px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-price-level--featured {
    border-width: 2px;
    box-shadow: var(--shadow-md);
}
.pack-lp-price-level--pole-0 { border-color: var(--pole-0); }
.pack-lp-price-level--pole-1 { border-color: var(--pole-1); }
.pack-lp-price-level--pole-2 { border-color: var(--pole-2); }
.pack-lp-price-level--pole-3 { border-color: var(--pole-3); }
.pack-lp-price-level--pole-4 { border-color: var(--pole-4); }
.pack-lp-price-level__title {
    margin: 0 0 10px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.pack-lp-price-level__price {
    margin: 0 0 12px;
    font-family: var(--font-title);
    font-size: clamp(16px, 1.8vw, 20px);
    font-weight: 800;
    line-height: 1.3;
    color: var(--pole-0);
}
.pack-lp-price-level__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
}
@media (max-width: 900px) {
    .pack-lp-price-levels { grid-template-columns: 1fr; }
}

.pack-lp-price-factors__title {
    margin: 32px 0 16px;
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.pack-lp-price-levels + .pack-lp-price__grid {
    margin-top: 32px;
}
.pack-lp-price__exclude {
    max-width: 760px;
    margin: 16px 0 0;
    padding: 16px 20px;
    border-radius: var(--radius-md);
    background: #fff7ed;
    border-left: 4px solid #c2410c;
}
.pack-lp-price__exclude p {
    margin: 0;
    font-size: 16px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
}

.pack-lp-term .pack-lp-section-title {
    text-align: center;
}
.pack-lp-term__lead {
    margin: -8px auto 32px;
    max-width: 640px;
    text-align: center;
    font-size: 17px;
    line-height: 1.55;
    color: var(--color-gray);
}
.pack-lp-term__months {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 960px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    counter-reset: none;
}
.pack-lp-term-card {
    position: relative;
    margin: 0;
    padding: 28px 24px 24px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    text-align: center;
}
.pack-lp-term-card__label {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-term-card__title {
    margin: 0;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.pack-lp-term__then {
    max-width: 640px;
    margin: 24px auto 0;
    padding: 16px 20px;
    text-align: center;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.45;
    color: var(--color-dark);
    background: var(--color-light-gray);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--pole-0);
}
@media (max-width: 800px) {
    .pack-lp-term__months { grid-template-columns: 1fr; }
}

.pack-lp-proof .pack-lp-section-title {
    text-align: center;
}
.pack-lp-proof__lead {
    margin: -8px auto 32px;
    max-width: 560px;
    text-align: center;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.45;
    color: var(--color-dark);
}
.pack-lp-proof__grid {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 1040px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-proof-card {
    padding: 22px 20px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-proof-card__domain {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-proof-card__kpi {
    margin: 0;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.pack-lp-proof__closing {
    max-width: 680px;
    margin: 28px auto 0;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    box-shadow: var(--shadow-sm);
}
.pack-lp-proof__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
@media (max-width: 900px) {
    .pack-lp-proof__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .pack-lp-proof__grid { grid-template-columns: 1fr; }
}

.pack-lp-price__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
@media (min-width: 1025px) {
    .pack-lp-price__grid:has(> :nth-child(10):last-child) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pack-lp-price__grid:has(> :nth-child(11):last-child) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .pack-lp-price__grid:has(> :nth-child(12):last-child) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (min-width: 1200px) {
    .pack-lp-price__grid:has(> :nth-child(10):last-child) {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
.pack-lp-price__grid li {
    margin: 0;
    min-width: 0;
    overflow-wrap: break-word;
    padding: 16px 18px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-dark);
    box-shadow: var(--shadow-sm);
}
.pack-lp-price__note {
    margin: 24px 0 0;
    padding: 16px 20px;
    max-width: 720px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-dark);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.pack-lp-price-phases {
    margin-top: 36px;
}
.pack-lp-price-phases__title {
    margin: 0 0 16px;
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.pack-lp-price-phases__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    counter-reset: none;
}
.pack-lp-price-phases-card {
    margin: 0;
    padding: 22px 22px 20px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-price-phases-card:first-child {
    border-color: var(--pole-0);
}
.pack-lp-price-phases-card__phase {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-price-phases-card__title {
    margin: 0 0 10px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.pack-lp-price-phases-card__model {
    margin: 0;
    font-size: 16px;
    font-weight: 650;
    line-height: 1.45;
    color: var(--color-gray);
}
.pack-lp-price-phases__extra {
    margin: 16px 0 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}
.pack-lp-price-phases .pack-lp-price__note {
    max-width: none;
}

.pack-lp-out__lead {
    font-size: 16px;
    color: var(--color-gray);
    max-width: 720px;
    margin: -12px 0 28px;
    line-height: 1.6;
}
.pack-lp-out__grid li {
    border-style: dashed;
    font-weight: 650;
    background: #f8fafc;
    box-shadow: none;
}
@media (min-width: 1025px) {
    .pack-lp-out__grid:has(> :nth-child(9):last-child) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.pack-lp-case__caption {
    margin: -12px 0 28px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-case__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
}
.pack-lp-case-card {
    margin: 0;
    padding: 24px 26px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-case-card__label {
    margin: 0 0 12px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-case-card__text {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-dark);
}
.pack-lp-case-card__text--strong {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.45;
}
.pack-lp-case-card__lead {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    color: var(--color-dark);
}
.pack-lp-case-card__highlight {
    margin: 0 0 16px;
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--pole-0);
}
.pack-lp-case-card__list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.pack-lp-case-card__list li {
    position: relative;
    margin: 0 0 8px;
    padding-left: 18px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
}
.pack-lp-case-card__list li:last-child { margin-bottom: 0; }
.pack-lp-case-card__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pole-0);
}
.pack-lp-case-card--reco {
    grid-column: 1 / -1;
    background: var(--pole-0-bg);
    border-color: rgba(89, 122, 175, 0.35);
}
.pack-lp-case-card--result {
    grid-column: 1 / -1;
    background: var(--pole-0);
    border-color: var(--pole-0);
    color: var(--color-white);
}
.pack-lp-case-card--result .pack-lp-case-card__label {
    color: rgba(255, 255, 255, 0.8);
}
.pack-lp-case-card--result .pack-lp-case-card__text {
    color: var(--color-white);
}
.pack-lp-case-card__note {
    margin: 14px 0 0;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
}
.pack-lp-case-card__list + .pack-lp-case-card__note {
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
}
.pack-lp-case-card__waves {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.pack-lp-case-card__waves li {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 16px 16px 14px;
    border-radius: 12px;
    background: var(--color-white);
    border: 1px solid rgba(89, 122, 175, 0.22);
}
.pack-lp-case-card__waves strong {
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-case-card__waves span {
    font-size: 15px;
    line-height: 1.45;
    color: var(--color-dark);
    font-weight: 650;
}
@media (max-width: 768px) {
    .pack-lp-case-card__waves { grid-template-columns: 1fr; }
}

.pack-lp-split__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.pack-lp-split-card {
    display: flex;
    flex-direction: column;
    padding: 22px 20px 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-split-card--featured {
    border-color: var(--pole-0);
    background: var(--pole-0-bg);
}
.pack-lp-split-card__title {
    margin: 0 0 14px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.pack-lp-split-card__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.pack-lp-split-card__items li {
    margin: 0;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.pack-lp-split-card--featured .pack-lp-split-card__items li {
    background: #fff;
}
.pack-lp-split-card__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-gray);
    font-weight: 650;
}
.pack-lp-split__closing {
    margin-top: 24px;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-white);
    border-left: 4px solid var(--pole-0);
    box-shadow: var(--shadow-sm);
}
.pack-lp-split__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-lp-gate__lead {
    margin: -8px 0 28px;
    max-width: 640px;
    font-size: 18px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
}
.pack-lp-gate__kicker {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--pole-0);
}
.pack-lp-gate__kicker--then {
    margin-top: 28px;
}
.pack-lp-gate__checks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    counter-reset: gate;
}
.pack-lp-gate__checks li {
    position: relative;
    margin: 0;
    padding: 18px 16px 16px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-dark);
}
.pack-lp-gate__checks li::before {
    counter-increment: gate;
    content: counter(gate, decimal-leading-zero);
    display: block;
    margin-bottom: 8px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    color: var(--pole-0);
}
.pack-lp-gate__actions {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.pack-lp-gate-action {
    margin: 0;
    padding: 18px 16px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    text-align: center;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
    color: var(--color-dark);
}
.pack-lp-gate-action--go {
    border-color: rgba(40, 153, 81, 0.4);
    background: #f4fbf7;
    color: #1f7a45;
}
.pack-lp-gate-action--adjust {
    border-color: rgba(89, 122, 175, 0.4);
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.pack-lp-gate-action--defer {
    border-color: rgba(180, 83, 9, 0.35);
    background: #fff7ed;
    color: #b45309;
}
.pack-lp-gate-action--stop {
    border-color: rgba(148, 163, 184, 0.55);
    background: #f8fafc;
    color: #64748b;
}
.pack-lp-gate-action--autonomy {
    border-color: #1e293b;
    background: #0f1f35;
    color: var(--color-white);
}
.pack-lp-review .pack-lp-section-title {
    text-align: center;
    max-width: 22em;
    margin-left: auto;
    margin-right: auto;
}
.pack-lp-review__tag {
    margin: 0 0 10px;
    text-align: center;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-0);
}
.pack-lp-review__kicker {
    text-align: center;
    margin-bottom: 16px;
}
.pack-lp-review__closing {
    max-width: 640px;
    margin: 28px auto 0;
    padding: 18px 22px;
    border-radius: var(--radius-md);
    background: var(--color-light-gray);
    border-left: 4px solid var(--pole-0);
}
.pack-lp-review__closing p {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
@media (max-width: 800px) {
    .pack-lp-review .pack-lp-section-title { max-width: none; }
    .pack-lp-review .pack-lp-gate__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.pack-lp-after__lead {
    font-size: 18px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--color-dark);
    max-width: 640px;
    margin: -8px 0 28px;
}
.pack-lp-after__kicker {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--pole-0);
}
.pack-lp-after__kicker--then {
    margin-top: 28px;
}
.pack-lp-after__handover {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.pack-lp-after__handover li {
    margin: 0;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--pole-0);
}
.pack-lp-after__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
@media (min-width: 1025px) {
    .pack-lp-after__grid:has(> .pack-lp-after-card:nth-child(4):last-child) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
@media (min-width: 1280px) {
    .pack-lp-after__grid:has(> .pack-lp-after-card:nth-child(5):last-child) {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 12px;
    }
    .pack-lp-after__grid:has(> .pack-lp-after-card:nth-child(5):last-child) .pack-lp-after-card__title {
        font-size: 16px;
    }
}
.pack-lp-after-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow-wrap: break-word;
    padding: 24px 22px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.pack-lp-after-card__num {
    display: block;
    margin: 0 0 12px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: var(--pole-0);
}
.pack-lp-after-card__title {
    margin: 0 0 10px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.pack-lp-after-card__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}
.pack-lp-after-card__cta {
    margin-top: auto;
    padding-top: 16px;
    line-height: 1.35;
}
.pack-lp-after__note {
    margin-top: 28px;
    padding: 20px 22px;
    border-radius: var(--radius-md);
    border: 2px solid var(--pole-0);
    background: var(--pole-0-bg);
    box-shadow: var(--shadow-sm);
}
.pack-lp-after__note p {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.55;
    color: var(--color-dark);
}

.pack-lp-deliverables__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
    max-width: 880px;
}
.pack-lp-deliverables__list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: 15px;
    color: var(--color-gray);
    line-height: 1.55;
}
.pack-lp-deliverables__list svg {
    flex-shrink: 0;
    color: var(--color-secondary);
    margin-top: 3px;
}

.pack-lp-faq { padding-top: 48px; }
.pack-lp-faq .sp-faq__sidebar .btn { margin-top: 8px; }

.pack-lp-other__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.pack-lp-other-card {
    display: flex;
    flex-direction: column;
    padding: 20px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
    position: relative;
}
.pack-lp-other-card:hover {
    box-shadow: var(--shadow-md);
    border-color: var(--color-primary);
    transform: translateY(-2px);
}
.pack-lp-other-card--sig {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 1px rgba(40, 153, 81, 0.15);
}
.pack-lp-other-card__badge {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-secondary);
    font-family: var(--font-subtitle);
}
.pack-lp-other-card__pole {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-gray);
    margin-bottom: 8px;
    font-family: var(--font-subtitle);
}
.pack-lp-other-card__title {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    margin-bottom: 8px;
}
.pack-lp-other-card__tag {
    font-size: 13px;
    color: var(--color-gray);
    line-height: 1.4;
    flex: 1;
    margin-bottom: 12px;
}
.pack-lp-other-card__price {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    margin-top: auto;
}

.pack-lp-final .pack-lp-final__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}
.pack-lp-final__text { flex: 1; min-width: 260px; }
.pack-lp-final__heading {
    font-family: var(--font-title);
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 800;
    color: var(--color-white);
    margin-bottom: 12px;
}
.pack-lp-final__price {
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 900;
    color: var(--color-white);
    margin-bottom: 8px;
}
.pack-lp-final__sub {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.82);
    margin: 0;
    max-width: 480px;
    overflow-wrap: break-word;
}
.pack-lp-final__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.pack-lp-final__btn-solid {
    background: var(--color-white) !important;
    color: var(--color-primary) !important;
    border-color: var(--color-white) !important;
}
.pack-lp-final__btn-solid:hover {
    background: var(--color-light-gray) !important;
    color: var(--color-primary-dark) !important;
}
.pack-lp-final__btn-outline {
    border: 2px solid rgba(255, 255, 255, 0.85) !important;
    color: var(--color-white) !important;
    background: transparent !important;
}
.pack-lp-final__btn-outline:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: var(--color-white) !important;
}

@media (max-width: 1024px) {
    .pack-lp-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-benefits__grid:has(> :nth-child(7):last-child) > :last-child { grid-column: 1 / -1; }
    .pack-lp-roadmap__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-roadmap__card:not(:last-child)::after { display: none; }
    .pack-lp-independence__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-office__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-tkpi__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-vtrack__grid { grid-template-columns: 1fr; }
    .pack-lp-split__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-gate__checks,
    .pack-lp-gate__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-after__grid { grid-template-columns: 1fr; }
    .pack-lp-after__grid:has(> .pack-lp-after-card:nth-child(4):last-child),
    .pack-lp-after__grid:has(> .pack-lp-after-card:nth-child(5)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-workstreams__grid { grid-template-columns: 1fr; }
    .pack-lp-price__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-price-phases__grid { grid-template-columns: 1fr; }
    .pack-lp-case__grid { grid-template-columns: 1fr; }
    .pack-lp-avoids__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-audience__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-org-si__examples { grid-template-columns: 1fr; }
    .pack-gov__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-gov__card:not(:last-child)::after { display: none; }
    .pack-change__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-change__grid:has(> :nth-child(7):last-child) > :last-child { grid-column: 1 / -1; }
    .pack-lp-out__grid:has(> :nth-child(7):last-child) > :last-child,
    .pack-lp-out__grid:has(> :nth-child(9):last-child) > :last-child { grid-column: 1 / -1; }
    .pack-lp-not-for .pack-lp-audience__grid:has(> :nth-child(5):last-child) > :last-child { grid-column: 1 / -1; }
    .pack-lp-other__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .pack-lp-hero__grid { grid-template-columns: 1fr; gap: 28px; }
    .pack-lp-shift__grid { grid-template-columns: 1fr; }
    .pack-org-si__examples { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .pack-lp-hero { padding: 36px 0 44px; }
    .pack-lp-section,
    .pack-lp-avoids,
    .pack-lp-process { padding: 48px 0; }
    .pack-lp-faq.sp-faq { padding: 48px 0; }
    .pack-lp-hero__grid { grid-template-columns: 1fr; }
    .pack-lp-benefits__grid { grid-template-columns: 1fr; }
    .pack-lp-compare__grid { grid-template-columns: 1fr; }
    .pack-lp-shift__grid { grid-template-columns: 1fr; }
    .pack-lp-leader__grid { grid-template-columns: 1fr; }
    .pack-lp-friction__grid { grid-template-columns: 1fr; }
    .pack-lp-friction-card:last-child:nth-child(odd) { grid-column: auto; }
    .pack-lp-blocks--grid { grid-template-columns: 1fr; }
    .pack-lp-why__grid { grid-template-columns: 1fr; }
    .pack-lp-roadmap__grid { grid-template-columns: 1fr; }
    .pack-gov__grid { grid-template-columns: 1fr; }
    .pack-change__grid { grid-template-columns: 1fr; }
    .pack-lp-workstreams__grid { grid-template-columns: 1fr; }
    .pack-lp-deps__grid { grid-template-columns: 1fr; }
    .pack-lp-independence__grid { grid-template-columns: 1fr; }
    .pack-lp-office__grid { grid-template-columns: 1fr; }
    .pack-lp-tkpi__grid { grid-template-columns: 1fr; }
    .pack-lp-vtrack__grid { grid-template-columns: 1fr; }
    .pack-lp-split__grid { grid-template-columns: 1fr; }
    .pack-lp-gate__checks,
    .pack-lp-gate__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pack-lp-after__grid { grid-template-columns: 1fr; }
    .pack-lp-price__grid { grid-template-columns: 1fr; }
    .pack-lp-price-phases__grid { grid-template-columns: 1fr; }
    .pack-lp-case__grid { grid-template-columns: 1fr; }
    .pack-lp-avoids__grid { grid-template-columns: 1fr; }
    .pack-lp-audience__grid { grid-template-columns: 1fr; }
    .pack-lp-meta__grid { grid-template-columns: 1fr; }
    .pack-lp-other__grid { grid-template-columns: 1fr; }
    .pack-lp-final .pack-lp-final__inner { flex-direction: column; text-align: center; }
    .pack-lp-final__text { min-width: 0; }
    .pack-lp-final__sub { margin: 0 auto; }
    .pack-lp-final__actions { justify-content: center; }
    .pack-lp-timeline__item { grid-template-columns: 40px 1fr; gap: 14px; }
    .pack-lp-timeline__item:not(:last-child)::before { left: 19px; }
    .pack-lp-timeline__num { width: 40px; height: 40px; font-size: 16px; }
    .pack-lp-section-title { overflow-wrap: break-word; }
    .pack-org-si__chain,
    .pack-gov__must {
        justify-content: flex-start;
    }
    .pack-org-si__chain li,
    .pack-gov__must li {
        font-size: 13px;
        padding: 8px 12px;
    }
    .pack-org-si__chain .pack-org-si__arrow,
    .pack-gov__must .pack-gov__must-sep {
        display: none;
    }
    .pack-decision__table {
        min-width: 640px;
    }
    .pack-decision__table th,
    .pack-decision__table td {
        padding: 12px 10px;
    }
}
@media (max-width: 640px) {
    .pack-lp-hero__actions,
    .pack-lp-final__actions {
        flex-direction: column;
        align-items: stretch;
    }
    .pack-lp-hero__actions .btn,
    .pack-lp-final__actions .btn,
    .pack-lp-final__actions a.btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
        text-align: center;
    }
    .pack-lp-gate__checks,
    .pack-lp-gate__actions { grid-template-columns: 1fr; }
    .pack-lp-final__sub { max-width: none; }
    .pack-scope--exec .pack-scope__opt {
        flex: 1 1 100%;
    }
}
@media (max-width: 480px) {
    .pack-lp-case-card,
    .pack-lp-after-card,
    .pack-lp-block,
    .pack-lp-audience-card,
    .pack-lp-independence-card,
    .pack-lp-workstream {
        padding: 18px 16px;
    }
}

/* ══════════════════════════════════════════════
   CTA : actions + outline sur fonds pôle
   ══════════════════════════════════════════════ */
.sp-cta-final__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

/* CTA final — pages service / catégorie : bouton + réassurance centrés (mobile) */
@media (max-width: 767px) {
    .sp-cta-final__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 28px;
    }

    .sp-cta-final__text {
        width: 100%;
        text-align: center;
    }

    .sp-cta-final__text h2 {
        text-align: center;
    }

    .sp-cta-final__text p {
        margin-left: auto;
        margin-right: auto;
    }

    .sp-cta-final__actions {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: center;
        width: 100%;
        max-width: 100%;
    }

    .sp-cta-final__actions > .btn,
    .sp-cta-final__actions > a.btn {
        align-self: center;
        justify-content: center;
    }

    .sp-cta-final__reassurance {
        justify-content: center;
        width: 100%;
        margin-top: 8px;
    }
}

.sp-cta-final--blue .btn-outline.sp-cta-final__outline,
.sp-cta-final--green .btn-outline.sp-cta-final__outline,
.sp-cta-final--beige .btn-outline.sp-cta-final__outline,
.sp-cta-final--soft .btn-outline.sp-cta-final__outline,
.sp-cta-final--ia .btn-outline.sp-cta-final__outline {
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.55);
    background: transparent;
}
.sp-cta-final--blue .btn-outline.sp-cta-final__outline:hover,
.sp-cta-final--green .btn-outline.sp-cta-final__outline:hover,
.sp-cta-final--beige .btn-outline.sp-cta-final__outline:hover,
.sp-cta-final--soft .btn-outline.sp-cta-final__outline:hover,
.sp-cta-final--ia .btn-outline.sp-cta-final__outline:hover {
    background: rgba(255, 255, 255, 0.12);
    color: var(--color-white);
    border-color: rgba(255, 255, 255, 0.85);
}

/* ══════════════════════════════════════════════
   Pole landing — CTA final conversion
   ══════════════════════════════════════════════ */
.pole-lp-final-cta.sp-cta-final {
    padding: clamp(40px, 5vw, 72px) 0 0;
    background: #597aaf;
    color: #f1f5f9;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__badge {
    color: #dcfce7;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.22);
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__badge-ico {
    color: #86efac;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__title {
    color: #f8fafc;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__title-hl {
    color: #6ee7b7;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__lead p {
    color: rgba(248, 250, 252, 0.9);
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__btn--ghost {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.85);
    color: #fff;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__btn--ghost:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: #fff;
    color: #fff;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__micro {
    color: rgba(248, 250, 252, 0.85);
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__micro svg {
    color: #86efac;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__features {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__feat-title {
    color: #f8fafc;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__feat-text {
    color: rgba(226, 232, 240, 0.92);
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__feat-ico {
    color: #fff;
}
.pole-lp-final-cta.sp-cta-final .pole-lp-final-cta__orbit {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.22);
}
.pole-lp-final-cta__shell {
    max-width: var(--container-width);
}
.pole-lp-final-cta__grid {
    display: grid;
    gap: clamp(32px, 5vw, 56px);
    align-items: center;
    grid-template-columns: 1fr;
    padding-bottom: clamp(28px, 4vw, 48px);
}
@media (min-width: 1024px) {
    .pole-lp-final-cta__grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
        gap: 48px;
    }
}
.pole-lp-final-cta__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px 8px 10px;
    margin-bottom: 16px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #14532d;
    background: rgba(40, 153, 81, 0.12);
    border: 1px solid rgba(40, 153, 81, 0.22);
    border-radius: 999px;
}
.pole-lp-final-cta__badge-ico {
    display: flex;
    color: var(--color-secondary);
}
.pole-lp-final-cta__title {
    font-family: var(--font-title);
    font-size: clamp(1.5rem, 3.2vw, 2.1rem);
    font-weight: 800;
    line-height: 1.18;
    color: #0f172a;
    letter-spacing: -0.02em;
    margin-bottom: 16px;
}
.pole-lp-final-cta__title-hl {
    color: var(--color-secondary);
}
.pole-lp-final-cta__lead {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 24px;
}
.pole-lp-final-cta__lead p {
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-gray);
    max-width: 36em;
}
.pole-lp-final-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}
.pole-lp-final-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 22px;
    border-radius: var(--radius-md);
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    border: 2px solid transparent;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}
.pole-lp-final-cta__btn--primary {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #fff;
    box-shadow: 0 4px 14px rgba(40, 153, 81, 0.35);
}
.pole-lp-final-cta__btn--primary:hover {
    background: var(--color-secondary-dark);
    border-color: var(--color-secondary-dark);
    color: #fff;
    transform: translateY(-1px);
}
.pole-lp-final-cta__btn-arrow {
    font-weight: 800;
    margin-left: 2px;
}
.pole-lp-final-cta__btn--ghost {
    background: #fff;
    border-color: var(--color-primary-dark);
    color: var(--color-primary-dark);
}
.pole-lp-final-cta__btn--ghost:hover {
    background: var(--pole-0-bg);
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
}
.pole-lp-final-cta__btn-ico {
    flex-shrink: 0;
}
.pole-lp-final-cta__micro {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #64748b;
    margin-bottom: 28px;
}
.pole-lp-final-cta__micro svg {
    flex-shrink: 0;
    color: var(--color-secondary);
}
.pole-lp-final-cta__features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 16px 14px;
    margin-bottom: 28px;
    background: var(--color-light-gray);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
}
@media (min-width: 640px) {
    .pole-lp-final-cta__features {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 14px;
        padding: 18px 16px;
    }
}
.pole-lp-final-cta__feat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.pole-lp-final-cta__feat-ico {
    display: flex;
    color: var(--color-primary);
    margin-bottom: 4px;
}
.pole-lp-final-cta__feat--1 .pole-lp-final-cta__feat-ico { color: var(--color-secondary); }
.pole-lp-final-cta__feat--2 .pole-lp-final-cta__feat-ico { color: #c2410c; }
.pole-lp-final-cta__feat--3 .pole-lp-final-cta__feat-ico { color: var(--color-primary); }
.pole-lp-final-cta__feat-title {
    font-size: 13px;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.25;
}
.pole-lp-final-cta__feat-text {
    font-size: 12px;
    line-height: 1.45;
    color: var(--color-gray);
}
.pole-lp-final-cta__viz {
    display: flex;
    justify-content: center;
    align-items: center;
}
.pole-lp-final-cta__orbit {
    position: relative;
    width: min(100%, 400px);
    aspect-ratio: 1;
    background: linear-gradient(145deg, #eef2f7 0%, #e8edf5 100%);
    border-radius: 28px;
    border: 1px solid var(--color-border);
}
.pole-lp-final-cta__orbit-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px dashed rgba(89, 122, 175, 0.28);
    pointer-events: none;
}
.pole-lp-final-cta__orbit-ring--a { inset: 10%; }
.pole-lp-final-cta__orbit-ring--b { inset: 22%; border-color: rgba(89, 122, 175, 0.2); }
.pole-lp-final-cta__orbit-ring--c { inset: 34%; border-color: rgba(40, 153, 81, 0.18); }
.pole-lp-final-cta__orbit-center {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    pointer-events: none;
}
/* Logo SVG brut — aucune pastille ni fond : proportions natives du fichier */
.pole-lp-final-cta__orbit-logo {
    display: block;
    width: auto;
    height: auto;
    max-width: min(42%, 200px);
    max-height: min(50%, 240px);
    object-fit: contain;
    object-position: center;
}
.pole-lp-final-cta__orbit-card {
    position: absolute;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    max-width: 42%;
    padding: 12px 10px 14px;
    background: #fff;
    border-radius: 14px;
    border: none;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12), 0 2px 8px rgba(15, 23, 42, 0.06);
    text-align: center;
    line-height: 1.2;
}
.pole-lp-final-cta__orbit-card-ico-wrap {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pole-lp-final-cta__orbit-card--accent-green .pole-lp-final-cta__orbit-card-ico-wrap {
    background: #289951;
}
.pole-lp-final-cta__orbit-card--accent-blue .pole-lp-final-cta__orbit-card-ico-wrap {
    background: #597aaf;
}
.pole-lp-final-cta__orbit-card-ico {
    display: flex;
    color: #fff;
}
.pole-lp-final-cta__orbit-card-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.pole-lp-final-cta__orbit-card-title {
    font-size: 13px;
    font-weight: 800;
    color: #0f172a;
}
.pole-lp-final-cta__orbit-card-sub {
    font-size: 12px;
    font-weight: 700;
}
.pole-lp-final-cta__orbit-card-sub--green {
    color: #289951;
}
.pole-lp-final-cta__orbit-card-sub--blue {
    color: #597aaf;
}
.pole-lp-final-cta__orbit-card--tl { top: 6%; left: 4%; }
.pole-lp-final-cta__orbit-card--tr { top: 6%; right: 4%; }
.pole-lp-final-cta__orbit-card--bl { bottom: 8%; left: 4%; }
.pole-lp-final-cta__orbit-card--br { bottom: 8%; right: 4%; }

/* ══════════════════════════════════════════════
   Pages hub pôle (/audit-conformite, …)
   ══════════════════════════════════════════════ */
/* Hero pôle — version visuelle */
.pole-lp-hero .pole-lp-hero__inner {
    max-width: var(--container-width);
}
.pole-lp-hero__grid {
    display: grid;
    gap: 28px;
    align-items: start;
}
@media (min-width: 1100px) {
    .pole-lp-hero__grid--split {
        grid-template-columns: minmax(0, 1.02fr) minmax(500px, 0.98fr);
        gap: 36px;
        align-items: center;
    }
}
.pole-lp-hero__copy {
    max-width: 640px;
}
.pole-lp-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 18px;
    padding: 8px 12px;
    border: 1px solid rgba(40, 153, 81, 0.28);
    background: rgba(40, 153, 81, 0.1);
    border-radius: 999px;
    color: #166534;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.pole-lp-hero__badge-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-secondary);
}
.pole-lp-hero__title {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(1.95rem, 3vw, 2.85rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
    color: #0f172a;
}
.pole-lp-hero__hl {
    color: var(--color-secondary);
}
.pole-lp-hero__kicker {
    margin: 14px 0 8px;
    font-size: 1.3rem;
    color: #4f5f7a;
    font-weight: 700;
}
.pole-lp-hero__hook {
    margin-top: 12px;
    border-left: 3px solid #1f8f46;
    padding-left: 14px;
}
.pole-lp-hero__hook-line {
    margin: 0 0 4px;
    color: #1e293b;
    font-size: 1.06rem;
    line-height: 1.45;
}
.pole-lp-hero__hook-line--em {
    font-weight: 800;
    color: #355989;
}
.pole-lp-hero__lead {
    margin: 14px 0 0;
    color: var(--color-gray);
    font-size: 1rem;
    line-height: 1.6;
}
.pole-lp-hero__actions {
    margin-top: 20px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.pole-lp-hero__cta.btn {
    min-height: 46px;
    padding-inline: 20px;
}
.pole-lp-hero__cta--ghost.btn {
    border-width: 2px;
}

.pole-lp-hero__visual {
    position: relative;
    min-height: 452px;
    max-width: 520px;
    justify-self: end;
    width: 100%;
}
.pole-lp-hero__panel {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
    margin-bottom: 12px;
}
.pole-lp-hero__panel-title {
    margin: 0 0 6px;
    font-size: 1.06rem;
    color: #0f172a;
    font-weight: 700;
}
.pole-lp-hero__panel-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 6px;
}
.pole-lp-hero__panel-list li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.98rem;
    color: #334155;
}
.pole-lp-hero__panel-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: linear-gradient(135deg, #289951, #597aaf);
}
.pole-lp-hero__score {
    position: relative;
    width: 108px;
    height: 108px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #fff;
    flex-shrink: 0;
}
.pole-lp-hero__score-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background:
        conic-gradient(#1f9f53 0 62%, #8aa2cf 62% 80%, #e7cba8 80% 100%);
    -webkit-mask: radial-gradient(circle, transparent 58%, #000 59%);
    mask: radial-gradient(circle, transparent 58%, #000 59%);
}
.pole-lp-hero__score-label {
    font-size: 0.82rem;
    line-height: 1.1;
    color: #475569;
    max-width: 78px;
}
.pole-lp-hero__score strong {
    font-size: 2.2rem;
    line-height: 1;
    color: #0f172a;
}
.pole-lp-hero__stack {
    position: relative;
    min-height: 322px;
    padding: 16px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(243, 247, 254, 0.95) 0%, rgba(240, 245, 253, 0.85) 100%);
    border: 1px solid #dae6f8;
    overflow: hidden;
}
.pole-lp-hero__illo-img {
    display: block;
    width: min(100%, 360px);
    margin: 0 auto;
    height: auto;
    filter: drop-shadow(0 20px 26px rgba(30, 41, 59, 0.14));
}
.pole-lp-hero__mini {
    position: absolute;
    width: 142px;
    padding: 9px 10px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);
}
.pole-lp-hero__mini--1 { top: 10px; left: 10px; }
.pole-lp-hero__mini--2 { top: 10px; right: 10px; }
.pole-lp-hero__mini--3 { bottom: 10px; left: 10px; }
.pole-lp-hero__mini--4 { bottom: 10px; right: 10px; }
.pole-lp-hero__mini-title {
    display: block;
    font-size: 0.94rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 3px;
}
.pole-lp-hero__mini-text {
    display: block;
    font-size: 0.86rem;
    color: #64748b;
    line-height: 1.35;
}

.pole-lp-hero__trust {
    margin-top: 14px;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.96);
    display: grid;
    gap: 0;
    overflow: hidden;
}
@media (min-width: 860px) {
    .pole-lp-hero__trust {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        align-items: center;
    }
}
.pole-lp-hero__trust-item {
    min-width: 0;
    padding: 14px 12px;
    border-bottom: 1px solid #edf2f7;
}
@media (min-width: 860px) {
    .pole-lp-hero__trust-item {
        border-bottom: 0;
        border-right: 1px solid #edf2f7;
    }
}
.pole-lp-hero__trust-item-head {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.pole-lp-hero__trust-icon {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #1f9f53;
    background: #ecf9f1;
}
.pole-lp-hero__trust-title {
    display: block;
    font-size: 0.98rem;
    font-weight: 700;
    color: #0f172a;
}
.pole-lp-hero__trust-text {
    display: block;
    font-size: 0.86rem;
    color: #64748b;
    line-height: 1.35;
    margin-top: 2px;
}
.pole-lp-hero__proof {
    padding: 14px 12px;
    background: #f1fcf5;
    display: flex;
    align-items: center;
    gap: 8px;
}
.pole-lp-hero__proof-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #e1f8ea;
    color: #1f9f53;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pole-lp-hero__proof-body {
    min-width: 0;
}
.pole-lp-hero__proof strong {
    display: block;
    color: #1f9f53;
    font-size: 1rem;
}
.pole-lp-hero__proof span {
    display: block;
    color: #64748b;
    font-size: 0.88rem;
}
@media (max-width: 1099px) {
    .pole-lp-hero__visual {
        min-height: auto;
        max-width: none;
        justify-self: stretch;
    }
}
@media (max-width: 640px) {
    .pole-lp-hero__title {
        font-size: clamp(1.82rem, 8vw, 2.65rem);
    }
    .pole-lp-hero__mini {
        width: 124px;
    }
    .pole-lp-hero__score {
        width: 96px;
        height: 96px;
    }
    .pole-lp-hero__score strong {
        font-size: 2rem;
    }
}
.pole-lp-band {
    padding: 40px 0;
    background: var(--color-light-gray);
    border-bottom: 1px solid var(--color-border);
}
.pole-lp-band--split {
    background: #fff;
    border-bottom: none;
    padding-top: 52px;
    padding-bottom: 56px;
    margin-top: 28px;
    margin-bottom: 28px;
}
.pole-lp-intro-split {
    max-width: 1160px;
    margin: 0 auto;
}
.pole-lp-intro-head {
    text-align: center;
    margin-bottom: 36px;
}
.pole-lp-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 8px 12px;
    border: 1px solid rgba(40, 153, 81, 0.25);
    background: rgba(40, 153, 81, 0.1);
    border-radius: 999px;
    color: #166534;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 11px;
    font-weight: 800;
}
.pole-lp-intro-badge__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-secondary);
}
.pole-lp-tension-title {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(1.65rem, 2.4vw, 2.45rem);
    line-height: 1.12;
    color: #0f172a;
}
.pole-lp-tension-title__hl { color: var(--color-secondary); }
.pole-lp-intro-lead {
    margin-top: 10px;
}
.pole-lp-intro-lead__line {
    margin: 0;
    color: #64748b;
    font-size: 1rem;
    line-height: 1.45;
}
.pole-lp-intro-lead__line--strong {
    color: #0f172a;
    font-weight: 800;
}
.pole-lp-split {
    display: grid;
    gap: 16px;
    align-items: stretch;
}
@media (min-width: 980px) {
    .pole-lp-split {
        grid-template-columns: minmax(0, 1fr) 74px minmax(0, 1fr);
    }
}
.pole-lp-split__col {
    background: #fff;
    border: none;
    border-radius: 14px;
    padding: 14px;
    box-shadow:
        0 4px 22px rgba(15, 23, 42, 0.07),
        0 1px 3px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.28s ease, transform 0.3s ease;
}
.pole-lp-split__card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.pole-lp-split__mark {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: #fff;
    flex-shrink: 0;
}
.pole-lp-split__mark--today { background: #d74242; }
.pole-lp-split__mark--tomorrow { background: #20a260; }
.pole-lp-split__badge {
    margin: 0;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 800;
}
.pole-lp-split__badge--today-cap {
    background: #fdebec;
    color: #9f2e2e;
}
.pole-lp-split__badge--tomorrow-cap {
    background: #e8f8ef;
    color: #1a7f47;
}
.pole-lp-split__card-title {
    margin: 0 0 8px;
    font-size: 1.7rem;
    line-height: 1.25;
    color: #0f172a;
}
.pole-lp-split__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
}
.pole-lp-split__li {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 8px 0;
}
.pole-lp-split__li + .pole-lp-split__li {
    border-top: 1px solid #edf1f6;
}
.pole-lp-split__svg {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pole-lp-split__svg--risk {
    background: #fdeff1;
    color: #c6404d;
}
.pole-lp-split__svg--ok {
    background: #ecf9f1;
    color: #1f9f53;
}
.pole-lp-split__li-text {
    color: #1e293b;
    font-size: 1rem;
    line-height: 1.45;
}
.pole-lp-split__result {
    margin-top: 10px;
    border-radius: 10px;
    padding: 10px 12px;
}
.pole-lp-split__result--today {
    background: #fff2f2;
}
.pole-lp-split__result--tomorrow {
    background: #eefaf2;
}
.pole-lp-split__result-text {
    margin: 0;
    font-weight: 700;
    font-size: 1.04rem;
    line-height: 1.4;
}
.pole-lp-split__result--today .pole-lp-split__result-text { color: #9f2e2e; }
.pole-lp-split__result--tomorrow .pole-lp-split__result-text { color: #1a7f47; }

.pole-lp-split__bridge {
    display: none;
}
@media (min-width: 980px) {
    .pole-lp-split__bridge {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
    }
    .pole-lp-split__bridge-ring {
        width: 58px;
        height: 58px;
        border-radius: 50%;
        border: 1px solid #dbe7f5;
        background: #fff;
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
    }
    .pole-lp-split__bridge-arrow {
        position: absolute;
        color: #20a260;
        font-size: 2rem;
        font-weight: 800;
    }
}

/* Hub pôle — constat : révélation au scroll (Demain + conviction en différé) + survol cartes */
@media (prefers-reduced-motion: no-preference) {
    .pole-lp-intro-split--reveal-prep .pole-lp-split--featured .pole-lp-split__col,
    .pole-lp-intro-split--reveal-prep .pole-lp-split--featured .pole-lp-split__bridge,
    .pole-lp-intro-split--reveal-prep .pole-lp-conviction {
        opacity: 0;
        transform: translateY(22px);
    }
    .pole-lp-intro-split--reveal-prep .pole-lp-split--featured .pole-lp-split__bridge {
        transform: translateY(18px) scale(0.94);
    }
    .pole-lp-intro-split--revealed .pole-lp-split--featured .pole-lp-split__col--today {
        opacity: 1;
        transform: none;
        transition:
            opacity 0.58s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
            box-shadow 0.28s ease;
        transition-delay: 0.06s;
    }
    .pole-lp-intro-split--revealed .pole-lp-split--featured .pole-lp-split__bridge {
        opacity: 1;
        transform: none;
        transition:
            opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.34s cubic-bezier(0.22, 1, 0.36, 1);
        transition-delay: 0.2s;
    }
    .pole-lp-intro-split--revealed .pole-lp-split--featured .pole-lp-split__col--tomorrow {
        opacity: 1;
        transform: none;
        transition:
            opacity 0.58s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
            box-shadow 0.28s ease;
        transition-delay: 0.38s;
    }
    .pole-lp-intro-split--revealed .pole-lp-conviction {
        opacity: 1;
        transform: none;
        transition:
            opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
            transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
            box-shadow 0.28s ease;
        transition-delay: 0.58s;
    }
}
@media (hover: hover) and (pointer: fine) {
    .pole-lp-split__col:hover {
        transform: translateY(-4px);
        box-shadow:
            0 14px 36px rgba(15, 23, 42, 0.11),
            0 2px 8px rgba(15, 23, 42, 0.05);
    }
    .pole-lp-conviction:hover {
        transform: translateY(-3px);
        box-shadow:
            0 12px 32px rgba(15, 23, 42, 0.1),
            0 2px 6px rgba(15, 23, 42, 0.045);
    }
}

.pole-lp-conviction {
    margin-top: 18px;
    border: none;
    border-radius: 12px;
    background: #fff;
    padding: 12px 14px;
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 10px;
    align-items: start;
    box-shadow:
        0 4px 22px rgba(15, 23, 42, 0.07),
        0 1px 3px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.28s ease, transform 0.3s ease;
}
.pole-lp-conviction__mark {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #e9efff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.pole-lp-conviction__label {
    margin: 0;
    font-size: 0.98rem;
    color: #355989;
    font-weight: 800;
}
.pole-lp-conviction__statement {
    margin: 2px 0 2px;
    color: #0f172a;
    font-size: 1.24rem;
    font-weight: 800;
}
.pole-lp-conviction__sub {
    margin: 0;
    color: #475569;
    font-size: 1rem;
    line-height: 1.45;
}
.pole-lp-section { padding-top: 48px; }

/* Domaines d'expertise — carrousel + thème sombre (hub avec carte CTA) */
.pole-lp-domains--dark.sp-section {
    background: #597aaf;
    color: #f1f5f9;
}
.pole-lp-domains--dark .pole-lp-domains__head {
    margin-bottom: 40px;
}
.pole-lp-domains--dark .pole-lp-domains__badge {
    border-color: rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    color: #bbf7d0;
}
.pole-lp-domains--dark .pole-lp-domains__badge-dot {
    background: #4ade80;
}
.pole-lp-domains--dark .pole-lp-domains__title {
    color: #f8fafc;
}
.pole-lp-domains--dark .pole-lp-domains__title-hl {
    color: #4ade80;
}
.pole-lp-domains--dark .pole-lp-domains__sub {
    color: rgba(248, 250, 252, 0.88);
}
.pole-lp-domains__carousel {
    display: flex;
    align-items: center;
    gap: 10px;
}
.pole-lp-domains__viewport {
    flex: 1;
    min-width: 0;
}
.pole-lp-domains__track {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 6px 2px 8px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.pole-lp-domains__track::-webkit-scrollbar {
    display: none;
    height: 0;
    width: 0;
}
.pole-lp-domains__track > * {
    flex: 0 0 auto;
    width: min(360px, calc(100vw - 84px));
    max-width: 100%;
    scroll-snap-align: start;
    scroll-snap-stop: normal;
}
@media (min-width: 640px) {
    .pole-lp-domains__track > * {
        width: clamp(320px, 58vw, 480px);
    }
}
@media (min-width: 1100px) {
    .pole-lp-domains__track > * {
        width: min(calc((100% - 16px) / 2), 520px);
    }
}
.pole-lp-domains__nav {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
    transition:
        background 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease,
        opacity 0.15s ease;
}
.pole-lp-domains__nav:hover:not(:disabled) {
    background: #f1f5f9;
    border-color: #94a3b8;
    color: #0f172a;
}
.pole-lp-domains__nav:focus-visible {
    outline: 2px solid #355989;
    outline-offset: 2px;
}
.pole-lp-domains__nav:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.pole-lp-domains--dark .pole-lp-domains__nav {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.1);
    color: #f1f5f9;
    box-shadow: none;
}
.pole-lp-domains--dark .pole-lp-domains__nav:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
}

.pole-lp-domains__head {
    text-align: center;
    max-width: 900px;
    margin: 0 auto 28px;
}
.pole-lp-domains__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(40, 153, 81, 0.25);
    background: rgba(40, 153, 81, 0.08);
    color: #166534;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 11px;
    font-weight: 800;
}
.pole-lp-domains__badge-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-secondary);
}
.pole-lp-domains__title {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(1.65rem, 2.5vw, 2.35rem);
    line-height: 1.1;
    color: #0f172a;
}
.pole-lp-domains__title-hl {
    color: var(--color-secondary);
}
.pole-lp-domains__sub {
    margin: 10px auto 0;
    max-width: 840px;
    color: #64748b;
    font-size: 1rem;
    line-height: 1.55;
}
.pole-lp-domains-card {
    border: 1px solid var(--color-border);
    border-left-width: 3px;
    border-radius: 12px;
    background: #fff;
    min-height: 0;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.pole-lp-domains-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.1);
}
.pole-lp-domains-card--blue { border-left-color: #2c5b9d; }
.pole-lp-domains-card--green { border-left-color: #1f9f53; }
.pole-lp-domains-card--indigo { border-left-color: #3f6fc5; }
.pole-lp-domains-card--purple { border-left-color: #7a55d8; }
.pole-lp-domains-card--orange { border-left-color: #d07a24; }
.pole-lp-domains-card__body {
    display: block;
    text-decoration: none;
    color: inherit;
    padding: 16px 16px 12px;
}
.pole-lp-domains-card__top {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 10px;
    align-items: start;
    margin-bottom: 10px;
}
.pole-lp-domains-card__icon-wrap {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef3fb;
    color: #355989;
}
.pole-lp-domains-card--green .pole-lp-domains-card__icon-wrap { background: #ecf9f1; color: #1f9f53; }
.pole-lp-domains-card--indigo .pole-lp-domains-card__icon-wrap { background: #eef2fc; color: #3f6fc5; }
.pole-lp-domains-card--orange .pole-lp-domains-card__icon-wrap { background: #fdf3e8; color: #d07a24; }
.pole-lp-domains-card--purple .pole-lp-domains-card__icon-wrap { background: #f3efff; color: #7a55d8; }
.pole-lp-domains-card__name {
    margin: 0;
    font-size: 1.42rem;
    line-height: 1.2;
    color: #0f172a;
}
.pole-lp-domains-card__tagline {
    margin: 3px 0 0;
    font-size: 1rem;
    color: #496689;
    font-weight: 700;
}
.pole-lp-domains-card__desc {
    margin: 0 0 6px;
    color: #475569;
    font-size: 0.98rem;
    line-height: 1.5;
}
.pole-lp-domains-card__desc--alt {
    color: #64748b;
    margin-bottom: 10px;
}
.pole-lp-domains-card__kw {
    list-style: none;
    padding: 0;
    margin: 10px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.pole-lp-domains-card__kw-tag {
    display: inline-block;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 0.82rem;
    line-height: 1;
    background: #eef3fb;
    color: #355989;
}
.pole-lp-domains-card--green .pole-lp-domains-card__kw-tag { background: #ecf9f1; color: #1f9f53; }
.pole-lp-domains-card--orange .pole-lp-domains-card__kw-tag { background: #fdf3e8; color: #b96c21; }
.pole-lp-domains-card--purple .pole-lp-domains-card__kw-tag { background: #f3efff; color: #6e47ce; }
.pole-lp-domains-card__footer {
    margin-top: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid #ebeff6;
}
.pole-lp-domains-card__foot-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 10px;
    font-size: 0.92rem;
    font-weight: 700;
    color: #355989;
    text-decoration: none;
}
.pole-lp-domains-card__foot-link--cas {
    border-right: 1px solid #ebeff6;
}
.pole-lp-domains-card__foot-link:hover {
    background: #f8fafd;
}

.pole-lp-domains-cta {
    border: none;
    border-radius: 14px;
    background: #fff;
    padding: 22px 22px 20px;
    display: flex;
    flex-direction: column;
    min-height: 0;
    box-shadow:
        0 4px 22px rgba(15, 23, 42, 0.07),
        0 1px 3px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}
@media (hover: hover) and (pointer: fine) {
    .pole-lp-domains-cta:hover {
        transform: translateY(-2px);
        box-shadow:
            0 12px 32px rgba(15, 23, 42, 0.1),
            0 2px 6px rgba(15, 23, 42, 0.04);
    }
}
.pole-lp-domains-cta__head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
}
.pole-lp-domains-cta__icon-ring {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #15803d;
    background: #e8faf0;
}
.pole-lp-domains-cta__icon-ring .pole-lp-domains-card__svg {
    width: 26px;
    height: 26px;
}
.pole-lp-domains-cta__intro {
    min-width: 0;
    flex: 1;
}
.pole-lp-domains-cta__title {
    margin: 0;
    font-size: 1.12rem;
    line-height: 1.28;
    font-weight: 800;
    color: #14532d;
    letter-spacing: -0.01em;
}
.pole-lp-domains-cta__text {
    margin: 6px 0 0;
    color: #5a7262;
    font-size: 0.9rem;
    line-height: 1.5;
}
.pole-lp-domains-cta__list {
    list-style: none;
    padding: 0;
    margin: 0 0 18px;
    display: grid;
    gap: 10px;
}
.pole-lp-domains-cta__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #1e293b;
    font-size: 0.92rem;
    line-height: 1.45;
}
.pole-lp-domains-cta__check {
    flex-shrink: 0;
    width: 1.1em;
    margin-top: 1px;
    color: #1f9f53;
    font-weight: 800;
    font-size: 0.95rem;
    line-height: 1.35;
}
.pole-lp-domains-cta__btn {
    width: 100%;
    margin-top: auto;
    min-height: 48px;
    padding: 12px 16px;
    border: none;
    border-radius: 10px;
    background: #e6faf0;
    color: #15803d;
    font-size: 0.94rem;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.pole-lp-domains-cta__btn-cal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pole-lp-domains-cta__cal-ico {
    display: block;
}
.pole-lp-domains-cta__btn-label {
    flex: 1;
    text-align: center;
    line-height: 1.25;
}
.pole-lp-domains-cta__btn-arrow {
    flex-shrink: 0;
    font-size: 1.05rem;
    font-weight: 800;
    opacity: 0.9;
}
.pole-lp-domains-cta__btn:hover {
    background: #d4f5e4;
    color: #166534;
    box-shadow: inset 0 0 0 1px rgba(21, 128, 61, 0.12);
}
.pole-lp-domains-cta__btn:focus-visible {
    outline: 2px solid #15803d;
    outline-offset: 2px;
}

@media (max-width: 640px) {
    .pole-lp-domains-card__footer {
        grid-template-columns: 1fr;
    }
    .pole-lp-domains-card__foot-link--cas {
        border-right: 0;
        border-bottom: 1px solid #ebeff6;
    }
}

.pole-lp-cat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}
.pole-lp-cat-card {
    display: flex;
    flex-direction: column;
    padding: 22px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
    min-height: 100%;
}
.pole-lp-cat-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.pole-lp-cat-card__title {
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 8px;
    line-height: 1.25;
}
.pole-lp-cat-card__text {
    font-size: 14px;
    color: var(--color-gray);
    line-height: 1.55;
    flex: 1;
    margin-bottom: 14px;
}
.pole-lp-cat-card__cta {
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
}
.pole-lp-cat-card:hover .pole-lp-cat-card__cta { text-decoration: underline; }
.pole-lp-packs {
    background: var(--color-white);
}
.pole-lp-packs-feat__head {
    text-align: center;
    max-width: 960px;
    margin: 0 auto 20px;
}
.pole-lp-packs-feat__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(40, 153, 81, 0.25);
    background: rgba(40, 153, 81, 0.1);
    color: #166534;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 800;
}
.pole-lp-packs-feat__badge-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-secondary);
}
.pole-lp-packs-feat__title {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(1.65rem, 2.4vw, 2.35rem);
    line-height: 1.1;
    color: #0f172a;
}
.pole-lp-packs-feat__title-hl {
    color: var(--color-secondary);
}
.pole-lp-packs-feat__sub {
    margin: 10px auto 0;
    max-width: 780px;
    font-size: 1rem;
    line-height: 1.5;
    color: #64748b;
}

.pole-lp-pack-method {
    margin-top: 4.5%;
    margin-bottom: 4.5%;
    padding: 3.5% clamp(12px, 2.5vw, 28px);
    border: none;
    border-radius: 16px;
    background: #597aaf;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.pole-lp-pack-method__label {
    margin: 0 0 3.5%;
    color: rgba(248, 250, 252, 0.95);
    font-size: 0.84rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
}
.pole-lp-pack-method__track {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 10px 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
    scrollbar-width: thin;
}
.pole-lp-pack-method__step {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 12px 14px;
    align-items: start;
    align-content: start;
    flex: 1 1 0;
    min-width: 0;
    min-height: clamp(7.5rem, 18vw, 9.5rem);
    padding: 1.1rem 0.85rem 1.15rem;
    background: #fff;
    border-radius: 12px;
    border: none;
    box-shadow:
        0 4px 18px rgba(15, 23, 42, 0.1),
        0 1px 3px rgba(15, 23, 42, 0.06);
}
.pole-lp-pack-method__step-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.pole-lp-pack-method__orb {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #d6e0ef;
    background: #eef3fb;
    color: #355989;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 0.95rem;
    flex-shrink: 0;
}
.pole-lp-pack-method__step-title {
    display: block;
    font-size: 0.96rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.25;
}
.pole-lp-pack-method__step-desc {
    display: block;
    font-size: 0.84rem;
    color: #64748b;
    line-height: 1.45;
}
.pole-lp-pack-method__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    align-self: center;
    padding: 0 2px;
    color: rgba(255, 255, 255, 0.82);
    font-weight: 800;
    font-size: 1rem;
    line-height: 1;
}

/* Méthode 5 étapes — mobile : colonne pleine largeur (toutes les LP pôle) */
@media (max-width: 767px) {
    .pole-lp-pack-method {
        margin-top: 28px;
        margin-bottom: 28px;
        padding: 20px max(16px, env(safe-area-inset-left, 0px)) 22px max(16px, env(safe-area-inset-right, 0px));
        border-radius: 14px;
    }

    .pole-lp-pack-method__label {
        text-align: center;
        margin-bottom: 16px;
    }

    .pole-lp-pack-method__track {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 12px;
        overflow-x: visible;
        padding-bottom: 0;
        -webkit-overflow-scrolling: auto;
    }

    .pole-lp-pack-method__arrow {
        display: none;
    }

    .pole-lp-pack-method__step {
        flex: none;
        width: 100%;
        min-width: 0;
        min-height: 0;
        padding: 14px 16px 16px;
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 12px 14px;
        align-items: start;
        border-radius: 14px;
    }

    .pole-lp-pack-method__orb {
        width: 44px;
        height: 44px;
        font-size: 1rem;
    }

    .pole-lp-pack-method__step-title {
        font-size: 1rem;
    }

    .pole-lp-pack-method__step-desc {
        font-size: 0.875rem;
        line-height: 1.5;
    }
}

.pole-lp-packs-feat__chooser {
    margin: 10px 0 14px;
    text-align: center;
    font-size: 0.82rem;
    color: #355989;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 800;
}

.pole-lp-packs-feat__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr;
    align-items: stretch;
}
/* Colonnes égales : autant de cartes visibles remplissent la largeur (3 packs → 3 colonnes larges) */
@media (min-width: 640px) {
    .pole-lp-packs-feat__grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    }
}
.pole-lp-packs-feat__grid > li {
    display: flex;
    min-width: 0;
}
.pole-lp-packs-feat__grid > li > .pole-lp-pack-card {
    flex: 1 1 auto;
}
.pole-lp-pack-card {
    border: none;
    border-radius: 12px;
    background: #fff;
    padding: 14px 12px 12px;
    width: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    box-shadow:
        0 3px 16px rgba(15, 23, 42, 0.06),
        0 1px 3px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.22s ease, transform 0.22s ease;
}
@media (hover: hover) and (pointer: fine) {
    .pole-lp-pack-card:hover {
        transform: translateY(-2px);
        box-shadow:
            0 10px 28px rgba(15, 23, 42, 0.09),
            0 2px 6px rgba(15, 23, 42, 0.05);
    }
}
.pole-lp-pack-card__lvl {
    align-self: flex-start;
    margin-bottom: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 9px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 0.05em;
}
.pole-lp-pack-card__lvl--blue {
    color: #275190;
    background: #e8f0fb;
}
.pole-lp-pack-card__lvl--green {
    color: #1a7f47;
    background: #e8f8ef;
}
.pole-lp-pack-card__lvl--indigo {
    color: #3f6fc5;
    background: #eef2fc;
}
.pole-lp-pack-card__lvl--purple {
    color: #6e47ce;
    background: #f3efff;
}
.pole-lp-pack-card__lvl--orange {
    color: #b96c21;
    background: #fdf3e8;
}
.pole-lp-pack-card__top {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 2px;
    margin-bottom: 10px;
}
.pole-lp-pack-card__ico-wrap {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pole-lp-pack-card__ico-wrap--blue {
    background: #e8f0fb;
    color: #597aaf;
}
.pole-lp-pack-card__ico-wrap--green {
    background: #e8f8ef;
    color: #1f9f53;
}
.pole-lp-pack-card__ico-wrap--indigo {
    background: #eef2fc;
    color: #3f6fc5;
}
.pole-lp-pack-card__ico-wrap--purple {
    background: #f3efff;
    color: #6e47ce;
}
.pole-lp-pack-card__ico-wrap--orange {
    background: #fdf3e8;
    color: #b45309;
}
.pole-lp-pack-card__ico-wrap svg {
    display: block;
}
.pole-lp-pack-card__titles {
    flex: 1 1 0;
    min-width: 0;
}
.pole-lp-pack-card__title {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.22;
    font-weight: 800;
    color: #1e3a5f;
    letter-spacing: -0.02em;
}
.pole-lp-pack-card__tag {
    margin: 4px 0 0;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.3;
}
.pole-lp-pack-card__tag--blue { color: #597aaf; }
.pole-lp-pack-card__tag--green { color: #1f9f53; }
.pole-lp-pack-card__tag--indigo { color: #3f6fc5; }
.pole-lp-pack-card__tag--purple { color: #6e47ce; }
.pole-lp-pack-card__tag--orange { color: #b45309; }
.pole-lp-pack-card__acc {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid #eef2f7;
}
.pole-lp-pack-card__acc-summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 2px 4px;
    margin: 0;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 800;
    color: #355989;
    user-select: none;
    transition: color 0.15s ease;
}
.pole-lp-pack-card__acc-summary::-webkit-details-marker {
    display: none;
}
.pole-lp-pack-card__acc-summary::marker {
    content: '';
}
.pole-lp-pack-card__acc-summary:hover {
    color: #1e4978;
}
.pole-lp-pack-card__acc-summary:focus {
    outline: none;
}
.pole-lp-pack-card__acc-summary:focus-visible {
    outline: 2px solid #355989;
    outline-offset: 2px;
    border-radius: 4px;
}
.pole-lp-pack-card__acc-label {
    flex: 1;
    text-align: left;
}
.pole-lp-pack-card__acc-chev {
    flex-shrink: 0;
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -3px;
    opacity: 0.85;
    transition: transform 0.22s ease;
}
@media (prefers-reduced-motion: reduce) {
    .pole-lp-pack-card__acc-chev {
        transition: none;
    }
}
.pole-lp-pack-card__acc[open] .pole-lp-pack-card__acc-chev {
    transform: rotate(-135deg);
    margin-top: 3px;
}
.pole-lp-pack-card__acc-body {
    padding: 10px 0 2px;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.pole-lp-pack-card__intro {
    margin: 0 0 10px;
    font-size: 0.86rem;
    color: #64748b;
    line-height: 1.45;
}
.pole-lp-pack-card__bullets {
    list-style: none;
    margin: 0 0 4px;
    padding: 0;
    display: grid;
    gap: 5px;
}
.pole-lp-pack-card__bullets li {
    position: relative;
    padding-left: 14px;
    font-size: 0.84rem;
    color: #475569;
    line-height: 1.35;
}
.pole-lp-pack-card__bullets li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: #1f9f53;
    font-weight: 800;
    font-size: 0.82rem;
}
.pole-lp-pack-card__price-box {
    margin-top: auto;
    border-radius: 8px;
    padding: 8px 6px;
    text-align: center;
}
.pole-lp-pack-card__price-box--blue { background: #eef3fb; }
.pole-lp-pack-card__price-box--green { background: #eaf8ef; }
.pole-lp-pack-card__price-box--indigo { background: #eef2fc; }
.pole-lp-pack-card__price-box--purple { background: #f5f0ff; }
.pole-lp-pack-card__price-box--orange { background: #fdf6ed; }
.pole-lp-pack-card__price {
    display: block;
    font-size: 0.94rem;
    font-weight: 700;
    line-height: 1.35;
    color: #0f172a;
}
.pole-lp-pack-card__dur {
    display: block;
    margin-top: 3px;
    font-size: 0.78rem;
    color: #64748b;
}
.pole-lp-pack-card__more {
    margin-top: 10px;
    text-align: center;
    font-size: 0.86rem;
    font-weight: 800;
    color: #355989;
    text-decoration: none;
}
.pole-lp-pack-card__more:hover {
    text-decoration: underline;
}

.pole-lp-packs-feat__dual {
    margin-top: 12px;
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
}
@media (min-width: 980px) {
    .pole-lp-packs-feat__dual {
        grid-template-columns: 1.25fr 1fr;
    }
}
.pole-lp-packs-feat__dual-box {
    border: 1px solid #dde5ef;
    border-radius: 12px;
    background: #fff;
    padding: 14px;
}
.pole-lp-packs-feat__dual-text {
    margin: 0 0 10px;
    color: #334155;
    font-size: 0.96rem;
    line-height: 1.45;
}
.pole-lp-packs-feat__diag-btn {
    width: 100%;
    min-height: 42px;
    border-radius: 8px;
    border: 1px solid #1d8f4e;
    background: #1f9f53;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
}
.pole-lp-packs-feat__diag-btn:hover { background: #188447; }
.pole-lp-packs-feat__dual-note {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 0.82rem;
}
.pole-lp-packs-feat__expert-link {
    color: #355989;
    font-size: 0.95rem;
    font-weight: 800;
    text-decoration: none;
}
.pole-lp-packs-feat__expert-link:hover { text-decoration: underline; }

.pole-lp-empty {
    text-align: center;
    color: var(--color-gray);
    padding: 24px;
    background: var(--color-light-gray);
    border-radius: var(--radius-md);
}

/* Section guide hub */
.pole-lp-guide {
    background: #fff;
}
.pole-lp-guide__head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 14px;
}
.pole-lp-guide__badge {
    display: inline-block;
    margin: 0 0 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eaf8ef;
    color: #1a7f47;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.pole-lp-guide__title {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(1.65rem, 2.5vw, 2.3rem);
    line-height: 1.1;
    color: #0f172a;
}
.pole-lp-guide__title span { color: var(--color-secondary); }
.pole-lp-guide__sub {
    margin: 10px 0 0;
    color: #64748b;
    font-size: 1rem;
    line-height: 1.5;
    max-width: 760px;
}
.pole-lp-guide__head-visual {
    width: 86px;
    height: 86px;
    border-radius: 20px;
    border: none;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #355989;
    flex-shrink: 0;
    box-shadow:
        0 4px 18px rgba(15, 23, 42, 0.08),
        0 1px 3px rgba(15, 23, 42, 0.05);
}
.pole-lp-guide__search {
    position: relative;
    margin-bottom: 14px;
}
.pole-lp-guide__search input {
    width: 100%;
    min-height: 44px;
    border: none;
    border-radius: 12px;
    background: #fff;
    padding: 0 14px 0 40px;
    font-size: 0.95rem;
    color: #0f172a;
    box-shadow:
        0 4px 18px rgba(15, 23, 42, 0.07),
        0 1px 3px rgba(15, 23, 42, 0.05);
}
.pole-lp-guide__search input:focus {
    outline: none;
    box-shadow:
        0 0 0 2px rgba(53, 89, 137, 0.35),
        0 4px 18px rgba(15, 23, 42, 0.08),
        0 1px 3px rgba(15, 23, 42, 0.05);
}
.pole-lp-guide__search-ico {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    display: inline-flex;
}
.pole-lp-guide__layout {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
}
@media (min-width: 1080px) {
    .pole-lp-guide__layout {
        grid-template-columns: minmax(240px, 0.28fr) minmax(0, 1fr);
        align-items: start;
    }
}
.pole-lp-guide__aside {
    border: none;
    border-radius: 12px;
    background: #fff;
    padding: 12px;
    box-shadow:
        0 4px 22px rgba(15, 23, 42, 0.08),
        0 1px 3px rgba(15, 23, 42, 0.05);
}
.pole-lp-guide__aside h3 {
    margin: 0 0 8px;
    font-size: 1.04rem;
}
.pole-lp-guide__aside ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 4px;
}
.pole-lp-guide__aside li a {
    display: block;
    padding: 8px 10px;
    border-radius: 8px;
    color: #334155;
    font-size: 0.9rem;
    text-decoration: none;
}
.pole-lp-guide__aside li.is-active a {
    background: #ecf9f1;
    color: #1a7f47;
    font-weight: 700;
}
.pole-lp-guide__nav li a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    color: #334155;
    font-size: 0.88rem;
    text-decoration: none;
    font-weight: 600;
}
.pole-lp-guide__nav li a:hover {
    background: rgba(53, 89, 137, 0.06);
    color: #1e3a5f;
}
.pole-lp-guide__nav li.is-active a {
    background: #ecf9f1;
    color: #1a7f47;
    font-weight: 700;
}
.pole-lp-guide__nav-ico {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef3fb;
    color: #355989;
}
.pole-lp-guide__nav li.is-active .pole-lp-guide__nav-ico {
    background: #d1fae5;
    color: #15803d;
}
.pole-lp-guide__nav-label {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.25;
}
.pole-lp-guide__aside-cta {
    margin-top: 12px;
    border-radius: 10px;
    border: none;
    background: #f3fbf6;
    padding: 10px;
    box-shadow:
        0 4px 18px rgba(31, 159, 83, 0.12),
        0 1px 3px rgba(15, 23, 42, 0.04);
}
.pole-lp-guide__aside-cta h4 {
    margin: 0;
    font-size: 0.98rem;
}
.pole-lp-guide__aside-cta p {
    margin: 6px 0 8px;
    font-size: 0.9rem;
    color: #475569;
}
.pole-lp-guide__aside-cta a,
.pole-lp-guide__aside-cta-btn {
    display: inline-block;
    min-height: 34px;
    border-radius: 8px;
    background: #1f9f53;
    color: #fff;
    font-size: 0.88rem;
    font-weight: 800;
    text-decoration: none;
    padding: 8px 10px;
}
.pole-lp-guide__aside-cta-btn {
    border: none;
    cursor: pointer;
    font-family: inherit;
    line-height: inherit;
    text-align: center;
}
.pole-lp-guide__aside-cta-btn:hover,
.pole-lp-guide__aside-cta-btn:focus-visible {
    background: #188544;
    color: #fff;
}
.pole-lp-guide__aside-trust {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
    font-size: 0.78rem;
    font-weight: 700;
    color: #475569;
}
.pole-lp-guide__aside-trust-avatars {
    display: inline-flex;
    align-items: center;
}
.pole-lp-guide__aside-trust-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #fff;
    margin-left: -6px;
    background: linear-gradient(135deg, #93c5fd, #3b82f6);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}
.pole-lp-guide__aside-trust-dot:first-child {
    margin-left: 0;
}
.pole-lp-guide__aside-trust-dot--b {
    background: linear-gradient(135deg, #86efac, #22c55e);
}
.pole-lp-guide__aside-trust-dot--c {
    background: linear-gradient(135deg, #c4b5fd, #7c3aed);
}
.pole-lp-guide__aside-trust-check {
    color: #1f9f53;
    font-weight: 800;
    font-size: 0.95rem;
}
.pole-lp-guide__aside-trust-txt {
    flex: 1 1 auto;
}

.pole-lp-guide__main {
    border: none;
    border-radius: 12px;
    background: #fff;
    padding: 14px;
    box-shadow:
        0 4px 22px rgba(15, 23, 42, 0.08),
        0 1px 3px rgba(15, 23, 42, 0.05);
}
.pole-lp-guide__block + .pole-lp-guide__block {
    margin-top: 14px;
}
.pole-lp-guide__block h3 {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
}
.pole-lp-guide__block > p {
    margin: 4px 0 10px;
    font-size: 0.9rem;
    color: #64748b;
}
.pole-lp-guide__cards {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr;
    align-items: stretch;
}
@media (min-width: 640px) {
    .pole-lp-guide__cards {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    }
}
.pole-lp-guide__cards > .pole-lp-guide-card {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.pole-lp-guide-card {
    border: none;
    border-radius: 10px;
    padding: 10px;
    background: #fff;
    box-shadow:
        0 4px 18px rgba(15, 23, 42, 0.07),
        0 1px 3px rgba(15, 23, 42, 0.045);
}
.pole-lp-guide-card__ico {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #eef3fb;
    color: #355989;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pole-lp-guide-card__ico--blue {
    background: #e8f0fb;
    color: #597aaf;
}
.pole-lp-guide-card__ico--green {
    background: #e8f8ef;
    color: #1f9f53;
}
.pole-lp-guide-card h4 {
    margin: 8px 0 6px;
    font-size: 1.08rem;
    line-height: 1.25;
}
.pole-lp-guide-card p {
    margin: 0 0 8px;
    font-size: 0.88rem;
    color: #475569;
    line-height: 1.45;
}
.pole-lp-guide-card a {
    margin-top: auto;
    font-size: 0.86rem;
    font-weight: 800;
    color: #1a7f47;
    text-decoration: none;
}
.pole-lp-guide__block--objectives > p {
    max-width: 52em;
}
.pole-lp-guide__objectives {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr;
    align-items: stretch;
}
@media (min-width: 640px) {
    .pole-lp-guide__objectives {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
    }
}
.pole-lp-guide__objectives > .pole-lp-guide-obj {
    height: 100%;
    min-height: 0;
}
.pole-lp-guide-obj {
    border-radius: 10px;
    padding: 10px 10px 12px;
    background: #fff;
    box-shadow:
        0 3px 14px rgba(15, 23, 42, 0.06),
        0 1px 2px rgba(15, 23, 42, 0.04);
    border: 1px solid rgba(15, 23, 42, 0.04);
}
.pole-lp-guide-obj__main {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: #0f172a;
    font-weight: 800;
    font-size: 0.9rem;
    line-height: 1.25;
}
.pole-lp-guide-obj__main:hover .pole-lp-guide-obj__title {
    color: #355989;
}
.pole-lp-guide-obj__ico {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #355989;
}
.pole-lp-guide-obj__title {
    min-width: 0;
    transition: color 0.15s ease;
}
.pole-lp-guide-obj__chev {
    color: #94a3b8;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1;
}
.pole-lp-guide-obj__resources {
    display: block;
    margin-top: 8px;
    padding-left: 44px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #355989;
    text-decoration: none;
}
.pole-lp-guide-obj__resources:hover {
    text-decoration: underline;
}
.pole-lp-guide__links-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: stretch;
}
@media (min-width: 640px) {
    .pole-lp-guide__links-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    }
}
.pole-lp-guide__topic-link {
    border: none;
    border-radius: 8px;
    padding: 10px;
    color: #334155;
    font-size: 0.88rem;
    text-decoration: none;
    background: #fff;
    box-shadow:
        0 3px 14px rgba(15, 23, 42, 0.07),
        0 1px 2px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.pole-lp-guide__topic-link:hover {
    background: #fff;
    box-shadow:
        0 8px 24px rgba(15, 23, 42, 0.1),
        0 2px 6px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
}
.pole-lp-guide__topic-row {
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 8px;
    padding: 10px 12px;
    color: #1e293b;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    background: #fff;
    box-shadow:
        0 3px 14px rgba(15, 23, 42, 0.07),
        0 1px 2px rgba(15, 23, 42, 0.04);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.pole-lp-guide__topic-row:hover {
    box-shadow:
        0 8px 24px rgba(15, 23, 42, 0.1),
        0 2px 6px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
}
.pole-lp-guide__topic-row-ico {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #355989;
}
.pole-lp-guide__topic-row-label {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
}
.pole-lp-guide__topic-row-chev {
    flex-shrink: 0;
    color: #94a3b8;
    font-size: 1.15rem;
    line-height: 1;
}
@media (prefers-reduced-motion: reduce) {
    .pole-lp-guide__topic-link {
        transition: none;
    }
    .pole-lp-guide__topic-link:hover {
        transform: none;
    }
    .pole-lp-guide__topic-row {
        transition: none;
    }
    .pole-lp-guide__topic-row:hover {
        transform: none;
    }
}
.pole-lp-guide__resources-foot {
    margin: 14px 0 0;
    text-align: center;
}
.pole-lp-guide__resources-foot-link {
    font-size: 0.9rem;
    font-weight: 800;
    color: #355989;
    text-decoration: none;
}
.pole-lp-guide__resources-foot-link:hover {
    text-decoration: underline;
}
.pole-lp-guide__news {
    margin-top: clamp(18px, 3vw, 28px);
}
.pole-lp-guide__news-inner {
    border-radius: 14px;
    padding: clamp(16px, 2.5vw, 22px);
    background: #fff;
    border: 1px solid #e2e8f0;
    box-shadow:
        0 4px 18px rgba(15, 23, 42, 0.06),
        0 1px 3px rgba(15, 23, 42, 0.04);
    display: grid;
    gap: 16px;
    align-items: start;
}
@media (min-width: 900px) {
    .pole-lp-guide__news-inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
        gap: 20px;
        align-items: center;
    }
}
.pole-lp-guide__news-intro {
    min-width: 0;
}
.pole-lp-guide__news-book {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: #fff;
    color: #355989;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}
.pole-lp-guide__news-title {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 1.25rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.2;
}
.pole-lp-guide__news-lead {
    margin: 0 0 12px;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #475569;
}
.pole-lp-guide__news-cta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.88rem;
    font-weight: 800;
    color: #1f9f53;
    text-decoration: none;
}
.pole-lp-guide__news-cta:hover {
    text-decoration: underline;
}
.pole-lp-guide__news-cards {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
    align-items: stretch;
}
@media (min-width: 640px) {
    .pole-lp-guide__news-cards {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    }
}
.pole-lp-guide-news-card {
    background: #fff;
    border-radius: 10px;
    padding: 12px;
    box-shadow:
        0 3px 14px rgba(15, 23, 42, 0.06),
        0 1px 2px rgba(15, 23, 42, 0.04);
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 100%;
}
.pole-lp-guide-news-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
}
.pole-lp-guide-news-card__date {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}
.pole-lp-guide-news-card__tag {
    font-size: 0.7rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
}
.pole-lp-guide-news-card__title {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.3;
    flex: 1 1 auto;
}
.pole-lp-guide-news-card__title a {
    color: #0f172a;
    text-decoration: none;
}
.pole-lp-guide-news-card__title a:hover {
    color: #355989;
}
.pole-lp-guide-news-card__more {
    margin-top: auto;
    font-size: 0.82rem;
    font-weight: 800;
    color: #1f9f53;
    text-decoration: none;
}
.pole-lp-guide-news-card__more:hover {
    text-decoration: underline;
}

.pole-lp-guide__quick {
    margin-top: 14px;
    border-top: none;
    padding-top: 12px;
    display: grid;
    gap: 6px;
    box-shadow: inset 0 1px 0 rgba(15, 23, 42, 0.06);
}
.pole-lp-guide__quick-link {
    color: #355989;
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
}
.pole-lp-guide__quick-link:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════
   BLOG (liste + article)
   ══════════════════════════════════════════════ */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.blog-breadcrumb--on-dark a,
.blog-breadcrumb--on-dark .sp-breadcrumb__sep,
.blog-breadcrumb--on-dark span[aria-current="page"] {
    color: rgba(255, 255, 255, 0.78);
}
.blog-breadcrumb--on-dark a:hover { color: #fff; }
.blog-breadcrumb--on-dark span[aria-current="page"] { color: #fff; }

.blog-hero {
    position: relative;
    padding: 32px 0 120px;
    color: #e8edf5;
    overflow: hidden;
}
.blog-hero__bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(165deg, #0b1220 0%, #152a4a 42%, #0b1220 100%);
    z-index: 0;
}
.blog-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(89, 122, 175, 0.35) 0%, transparent 55%),
        radial-gradient(ellipse 60% 40% at 100% 0%, rgba(40, 153, 81, 0.18) 0%, transparent 50%);
    pointer-events: none;
}
.blog-hero__inner { position: relative; z-index: 1; text-align: center; max-width: 800px; margin: 0 auto; }
.blog-hero .sp-breadcrumb { justify-content: center; margin-bottom: 28px; }
.blog-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 auto 20px;
}
.blog-hero__title {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 800;
    color: #fff;
    margin: 0 0 16px;
    line-height: 1.15;
}
.blog-hero__gradient {
    background: linear-gradient(90deg, #7eb3ff 0%, #5ed399 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.blog-hero__lead {
    font-size: 1.05rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.72);
    margin: 0 0 32px;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
.blog-hero__search {
    position: relative;
    display: flex;
    align-items: center;
    max-width: 560px;
    margin: 0 auto;
}
.blog-hero__search-ico {
    position: absolute;
    left: 16px;
    color: rgba(255, 255, 255, 0.45);
    pointer-events: none;
    display: flex;
}
.blog-hero__search input {
    width: 100%;
    padding: 14px 18px 14px 48px;
    border-radius: var(--radius-md);
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(15, 23, 42, 0.55);
    color: #fff;
    font-size: 15px;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
}
.blog-hero__search input::placeholder { color: rgba(255, 255, 255, 0.4); }
.blog-hero__search input:focus {
    border-color: rgba(89, 122, 175, 0.6);
    background: rgba(15, 23, 42, 0.75);
}

.blog-featured { margin-top: -72px; position: relative; z-index: 2; margin-bottom: 0; }
.blog-featured__card {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 0;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    border: 1px solid var(--color-border);
}
@media (max-width: 900px) {
    .blog-featured__card { grid-template-columns: 1fr; }
    .blog-hero { padding-bottom: 88px; }
    .blog-featured { margin-top: -48px; }
}
.blog-featured__media {
    position: relative;
    display: block;
    min-height: 280px;
    background: var(--color-light-gray);
}
.blog-featured__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 280px;
    display: block;
}
.blog-featured__img--ph {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
}
.blog-featured__img--ph .blog-pole-ico { color: var(--color-primary); opacity: 0.5; }
.blog-featured__img--pole-0 { background: var(--pole-0-bg); }
.blog-featured__img--pole-0 .blog-pole-ico { color: var(--pole-0); }
.blog-featured__img--pole-1 { background: var(--pole-1-bg); }
.blog-featured__img--pole-1 .blog-pole-ico { color: var(--pole-1); }
.blog-featured__img--pole-2 { background: var(--pole-2-bg); }
.blog-featured__img--pole-2 .blog-pole-ico { color: var(--pole-2); }
.blog-featured__img--pole-3 { background: var(--pole-3-bg); }
.blog-featured__img--pole-3 .blog-pole-ico { color: var(--pole-3); }
.blog-featured__img--pole-4 { background: var(--pole-4-bg); }
.blog-featured__img--pole-4 .blog-pole-ico { color: var(--pole-4); }
.blog-featured__badge {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 6px 12px;
    border-radius: 6px;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--font-subtitle);
}
.blog-featured__body { padding: 32px 36px 28px; display: flex; flex-direction: column; justify-content: center; }
.blog-featured__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 12px;
}
.blog-featured__time {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--color-gray);
}
.blog-featured__title {
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    font-weight: 800;
    margin: 0 0 14px;
    line-height: 1.25;
}
.blog-featured__title a { color: var(--color-dark); text-decoration: none; }
.blog-featured__title a:hover { color: var(--color-primary); }
.blog-featured__excerpt {
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
    margin: 0 0 24px;
}
.blog-featured__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: auto;
}
.blog-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 15px;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.blog-link-arrow:hover { text-decoration: underline; }

.blog-cat {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-subtitle);
}
.blog-cat--pole-0 { color: var(--pole-0); }
.blog-cat--pole-1 { color: var(--pole-1); }
.blog-cat--pole-2 { color: #9a6540; }
.blog-cat--pole-3 { color: #5a6b83; }
.blog-cat--pole-4 { color: #3d7a65; }
.blog-cat--mini { font-size: 12px; margin-bottom: 6px; }

.blog-author { display: flex; align-items: center; gap: 12px; }
.blog-author--inline { display: inline-flex; }
.blog-author--compact { gap: 8px; }
.blog-author__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    font-family: var(--font-title);
    flex-shrink: 0;
}
.blog-author--compact .blog-author__avatar { width: 32px; height: 32px; font-size: 11px; }
.blog-author__name { display: block; font-weight: 700; font-size: 15px; color: var(--color-dark); }
.blog-author__date { display: block; font-size: 13px; color: var(--color-gray); }
.blog-author--compact .blog-author__name { font-size: 14px; }

.blog-filters-wrap {
    padding: 28px 0 16px;
    background: var(--color-white);
}
.blog-filters-wrap .container {
    padding-left: 12px;
    padding-right: 12px;
}
.blog-filters-scroll {
    width: 100%;
    padding: 0 0 4px;
}
.blog-filters {
    display: flex;
    gap: 8px;
}
.blog-filters--main {
    flex-wrap: wrap;
    width: 100%;
    justify-content: flex-start;
}
.blog-filters--main .blog-filter-pill {
    padding: 9px 12px;
    font-size: 13px;
}
.blog-filters--sub {
    flex-wrap: wrap;
    justify-content: flex-start;
    padding-top: 16px;
    margin-top: 12px;
    border-top: 1px solid var(--color-border);
}
.blog-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font-subtitle);
    color: var(--color-dark);
    transition: background 0.2s, border-color 0.2s, color 0.2s;
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none;
}
.blog-filter-pill--sub {
    padding: 9px 14px;
    font-size: 13px;
    white-space: normal;
    max-width: 100%;
}
.blog-filter-pill--sub .blog-filter-pill__text {
    text-align: left;
    line-height: 1.25;
}
.blog-filter-pill.is-pending {
    border-style: dashed;
}
.blog-filter-pill:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.blog-filter-pill.is-active {
    background: var(--color-dark);
    border-color: var(--color-dark);
    color: #fff;
}
.blog-filter-pill.is-active:hover {
    color: #fff;
    border-color: var(--color-dark);
}
.blog-filter-pill__count {
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--color-light-gray);
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.blog-filter-pill__count--hint {
    opacity: 0.82;
    font-weight: 600;
}
.blog-filter-pill.is-active .blog-filter-pill__count {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}
.blog-filter-pill__icon {
    display: flex;
    color: var(--color-gray);
    flex-shrink: 0;
}
.blog-filter-pill--pole-0 .blog-filter-pill__icon { color: var(--pole-0); }
.blog-filter-pill--pole-1 .blog-filter-pill__icon { color: var(--pole-1); }
.blog-filter-pill--pole-2 .blog-filter-pill__icon { color: var(--pole-2); }
.blog-filter-pill--pole-3 .blog-filter-pill__icon { color: var(--pole-3); }
.blog-filter-pill--pole-4 .blog-filter-pill__icon { color: var(--pole-4); }
.blog-filter-pill.is-active .blog-filter-pill__icon { color: rgba(255, 255, 255, 0.92); }
.blog-filter-pill__icon .blog-pole-ico {
    width: 18px;
    height: 18px;
}
.blog-filter-pill__tag {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 2px 7px;
    border-radius: 999px;
    background: #fff3cd;
    color: #856404;
    flex-shrink: 0;
}
.blog-filter-pill.is-active .blog-filter-pill__tag {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.blog-desc-panel {
    margin-top: 20px;
    padding: 20px 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: #fafbfc;
}
.blog-desc-panel--pole-0 { border-left: 4px solid var(--pole-0); }
.blog-desc-panel--pole-1 { border-left: 4px solid var(--pole-1); }
.blog-desc-panel--pole-2 { border-left: 4px solid var(--pole-2); }
.blog-desc-panel--pole-3 { border-left: 4px solid var(--pole-3); }
.blog-desc-panel--pole-4 { border-left: 4px solid var(--pole-4); }
.blog-desc-panel__title {
    font-family: var(--font-title);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--color-dark);
}
.blog-desc-panel__body {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-gray);
}
.blog-desc-panel__note {
    margin: 14px 0 0;
    font-size: 13px;
    font-style: italic;
    color: var(--color-gray);
}
.blog-desc-panel__reset {
    margin: 14px 0 0;
    font-size: 14px;
}
.blog-desc-panel__reset a {
    font-weight: 700;
    color: var(--color-primary);
}

.blog-article-hero__cat-sep {
    color: var(--color-gray);
    opacity: 0.85;
    margin: 0 6px;
}
.blog-article-hero__subcat {
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.blog-article-hero__subcat:hover {
    color: color-mix(in srgb, var(--color-primary) 88%, #000 12%);
}

.blog-grid-section { padding: 40px 0 56px; background: var(--color-white); }
.blog-results-hint {
    margin: -8px 0 24px;
    font-size: 14px;
    color: var(--color-gray);
}
.blog-results-hint a { font-weight: 700; color: var(--color-primary); }
.blog-empty { text-align: center; padding: 48px 16px; color: var(--color-gray); }
.blog-empty a { font-weight: 700; color: var(--color-primary); }

.blog-grid {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    padding: 0;
    margin: 0;
}
@media (max-width: 992px) {
    .blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .blog-grid { grid-template-columns: 1fr; }
}
.blog-grid--related {
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 992px) {
    .blog-grid--related { grid-template-columns: 1fr; }
}

.blog-card {
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
    height: 100%;
}
.blog-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-3px);
    border-color: rgba(89, 122, 175, 0.35);
}
.blog-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}
.blog-card__visual {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.blog-card--pole-0 .blog-card__visual { background: var(--pole-0-bg); color: var(--pole-0); }
.blog-card--pole-1 .blog-card__visual { background: var(--pole-1-bg); color: var(--pole-1); }
.blog-card--pole-2 .blog-card__visual { background: var(--pole-2-bg); color: #9a6540; }
.blog-card--pole-3 .blog-card__visual { background: var(--pole-3-bg); color: var(--pole-3); }
.blog-card--pole-4 .blog-card__visual { background: var(--pole-4-bg); color: var(--pole-4); }
.blog-card__visual .blog-pole-ico { opacity: 0.85; }
.blog-card__body { padding: 18px 18px 16px; flex: 1; display: flex; flex-direction: column; }
.blog-card__meta {
    font-size: 12px;
    color: var(--color-gray);
    margin-bottom: 8px;
}
.blog-card__dot { opacity: 0.5; }
.blog-card__title {
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    margin: 0 0 10px;
    color: var(--color-dark);
    flex: 1;
}
.blog-card__excerpt {
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.blog-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 4px;
    border-top: 1px solid var(--color-border);
    margin-left: -18px;
    margin-right: -18px;
    padding: 12px 18px 0;
}
.blog-card__chev { color: var(--color-primary); opacity: 0.7; }
.blog-card--folded { display: none; }

.blog-more-wrap { text-align: center; margin-top: 40px; }
.blog-more-btn svg { flex-shrink: 0; }

.sp-section--flush { padding-bottom: 0; }

.blog-newsletter {
    background: linear-gradient(165deg, #0b1220 0%, #1a2f4d 100%);
    color: #e8edf5;
    margin-top: 0;
    padding: 64px 0 72px;
    position: relative;
    overflow: hidden;
}
.blog-newsletter::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 70% 60% at 20% 100%, rgba(40, 153, 81, 0.12) 0%, transparent 50%);
    pointer-events: none;
}
.blog-newsletter__inner {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.blog-newsletter__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 16px;
}
.blog-newsletter__title {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    color: #fff;
    margin: 0 0 12px;
    font-weight: 800;
}
.blog-newsletter__text {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.7);
    margin: 0 0 28px;
}
.blog-newsletter__form {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    max-width: 520px;
    margin: 0 auto 16px;
}
.blog-newsletter__form input[type="email"] {
    flex: 1 1 220px;
    min-width: 0;
    padding: 14px 16px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(15, 23, 42, 0.5);
    color: #fff;
    font-size: 15px;
    outline: none;
}
.blog-newsletter__form input::placeholder { color: rgba(255, 255, 255, 0.4); }
.blog-newsletter__form input:focus { border-color: rgba(89, 122, 175, 0.7); }
.blog-newsletter__btn { border: none; cursor: pointer; }
.blog-newsletter__legal {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.5);
    margin: 0;
    line-height: 1.5;
}
.blog-newsletter__legal a { color: rgba(255, 255, 255, 0.8); text-decoration: underline; }

/* Article */
.blog-article-hero { padding: 40px 0 48px; }
.blog-article-hero__inner { position: relative; z-index: 1; }
.blog-article-hero__cat { margin: 0 0 12px; }
.blog-article-hero__title {
    font-size: clamp(1.6rem, 3.5vw, 2.25rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 16px;
    line-height: 1.2;
}
.blog-article-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    font-size: 15px;
    color: var(--color-gray);
}
.blog-article-hero__sep { opacity: 0.5; }
.blog-article-hero .blog-author__name { font-size: 15px; }

.blog-article-cover { margin: 0 auto 0; padding: 0 24px; }
.blog-article-cover__img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    margin-top: -20px;
    position: relative;
    z-index: 2;
}
.blog-article-main { padding-bottom: 8px; }
.blog-article-layout {
    display: flex;
    flex-direction: column;
    gap: 28px;
}
@media (min-width: 1100px) {
    .blog-article-layout--has-toc {
        display: grid;
        grid-template-columns: minmax(220px, 272px) minmax(0, 1fr);
        gap: 36px;
        align-items: start;
    }
}

/* Sommaire sticky */
.blog-toc[hidden] {
    display: none !important;
}
.blog-toc {
    position: sticky;
    top: calc(var(--site-sticky-top, 72px) + 16px);
    overflow: visible;
    padding-bottom: 8px;
}
.blog-toc__head {
    margin-bottom: 14px;
}
.blog-toc__title {
    font-family: var(--font-body);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--color-accent-dark);
    margin: 0;
}
.blog-toc__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.blog-toc__item {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.blog-toc__card {
    display: block;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 500;
    color: var(--color-dark);
    padding: 12px 14px 13px;
    background: var(--color-white);
    border-radius: var(--radius-md, 12px) var(--radius-md, 12px) 0 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
    border: 1px solid var(--color-border);
    border-bottom: none;
    position: relative;
    transition: box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.blog-toc__card:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.09);
    border-color: rgba(191, 155, 121, 0.55);
}
.blog-toc__card.is-active {
    background: rgba(89, 122, 175, 0.09);
    font-weight: 700;
    color: var(--color-primary-dark);
    box-shadow: 0 4px 14px rgba(60, 96, 152, 0.1);
    border-color: rgba(89, 122, 175, 0.35);
}
.blog-toc__section-track {
    height: 4px;
    width: 100%;
    border-radius: 0 0 var(--radius-md, 12px) var(--radius-md, 12px);
    background: rgba(191, 155, 121, 0.25);
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-top: none;
}
.blog-toc__section-fill {
    height: 100%;
    width: 0;
    max-width: 100%;
    border-radius: 0 0 0 var(--radius-md, 12px);
    background: linear-gradient(90deg, var(--color-accent-dark), var(--color-accent));
    transition: width 0.1s ease-out;
}
@media (prefers-reduced-motion: reduce) {
    .blog-toc__section-fill { transition: none; }
}
.blog-toc__nav { margin: 0; }

.blog-article-body { padding: 40px 24px 64px; }
.blog-article-prose {
    font-size: 17px;
    line-height: 1.75;
    color: var(--color-dark);
}
.blog-article-prose p { margin: 0 0 1.1em; }
.blog-article-prose p:last-child { margin-bottom: 0; }
.blog-article-prose .blog-callout {
    margin: 1.75em 0 2em;
    padding: 1.15rem 1.35rem 1.2rem 1.4rem;
    background: rgba(208, 216, 228, 0.42);
    border-left: 4px solid var(--color-primary);
    border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}
.blog-article-prose .blog-callout__title {
    font-family: var(--font-title);
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary-dark);
    margin: 0 0 0.6em;
}
.blog-article-prose .blog-callout__lead {
    margin: 0;
    font-size: 1.06rem;
    line-height: 1.58;
    font-weight: 500;
    color: var(--color-dark);
}
.blog-article-prose .blog-callout p:last-child { margin-bottom: 0; }
.blog-article-prose .blog-callout + h2 {
    margin-top: 1.65em;
}
.blog-article-prose .blog-callout--express {
    margin: 1.35em 0 1.85em;
    padding: 1.35rem 1.45rem 1.4rem 1.5rem;
    background: linear-gradient(
        152deg,
        rgba(89, 122, 175, 0.2) 0%,
        rgba(255, 255, 255, 0.98) 38%,
        rgba(163, 203, 188, 0.14) 100%
    );
    border: 1px solid rgba(89, 122, 175, 0.45);
    border-left: 5px solid var(--color-primary);
    border-radius: var(--radius-md, 12px);
    box-shadow:
        0 10px 32px rgba(60, 96, 152, 0.14),
        0 0 0 1px rgba(255, 255, 255, 0.55) inset;
}
.blog-article-prose .blog-callout--express .blog-callout__title {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--color-primary-dark);
    margin: 0 0 0.55em;
}
.blog-article-prose .blog-callout--express .blog-callout__lead {
    font-size: clamp(1.05rem, 2.1vw, 1.16rem);
    line-height: 1.55;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.blog-article-prose table.blog-myth-reality {
    width: 100%;
    margin: 1.5em 0 2em;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.98rem;
    line-height: 1.55;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(15, 23, 42, 0.07);
    box-sizing: border-box;
}
.blog-article-prose table.blog-myth-reality .blog-myth-reality__caption {
    caption-side: top;
    padding: 1.05rem 1.15rem 0.75rem;
    margin: 0;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    text-align: left;
    border-bottom: 1px solid rgba(89, 122, 175, 0.22);
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.1) 0%, rgba(255, 255, 255, 0.65) 100%);
    box-sizing: border-box;
}
.blog-article-prose table.blog-myth-reality thead {
    background: rgba(89, 122, 175, 0.12);
}
.blog-article-prose table.blog-myth-reality .blog-myth-reality__th {
    padding: 0.85rem 1rem;
    font-family: var(--font-title);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: left;
    color: var(--color-primary-dark);
    border-bottom: 1px solid rgba(89, 122, 175, 0.22);
    width: 50%;
    box-sizing: border-box;
    vertical-align: top;
}
.blog-article-prose table.blog-myth-reality .blog-myth-reality__th:not(:last-child) {
    border-right: 1px solid rgba(89, 122, 175, 0.22);
}
.blog-article-prose table.blog-myth-reality tbody tr:nth-child(even) {
    background: rgba(248, 250, 252, 0.85);
}
.blog-article-prose table.blog-myth-reality .blog-myth-reality__td {
    padding: 0.85rem 1rem;
    vertical-align: top;
    color: var(--color-dark);
    border-bottom: 1px solid var(--color-border);
    box-sizing: border-box;
    word-wrap: break-word;
}
.blog-article-prose table.blog-myth-reality tbody tr:last-child .blog-myth-reality__td {
    border-bottom: none;
}
.blog-article-prose table.blog-myth-reality .blog-myth-reality__td:not(:last-child) {
    border-right: 1px solid rgba(226, 232, 240, 0.95);
    font-weight: 500;
}
.blog-article-prose table.blog-myth-reality .blog-myth-reality__td--fact {
    font-weight: 600;
    color: #1e293b;
}
@media (max-width: 640px) {
    .blog-article-prose table.blog-myth-reality thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .blog-article-prose table.blog-myth-reality tbody tr {
        display: block;
        border-bottom: 1px solid var(--color-border);
        padding: 0.65rem 0 0.85rem;
        overflow: hidden;
    }
    .blog-article-prose table.blog-myth-reality tbody tr:last-child {
        border-bottom: none;
    }
    .blog-article-prose table.blog-myth-reality .blog-myth-reality__td {
        display: block;
        width: 100%;
        border: none;
        padding: 0.35rem 1rem 0.35rem;
        box-sizing: border-box;
    }
    .blog-article-prose table.blog-myth-reality .blog-myth-reality__td:first-child {
        padding-top: 0.65rem;
        font-weight: 600;
    }
    .blog-article-prose table.blog-myth-reality .blog-myth-reality__td:first-child::before {
        display: block;
        margin-bottom: 0.35rem;
        font-size: 0.65rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--color-primary-dark);
        content: 'Idée reçue';
    }
    .blog-article-prose table.blog-myth-reality .blog-myth-reality__td--fact {
        padding-bottom: 0.15rem;
    }
    .blog-article-prose table.blog-myth-reality .blog-myth-reality__td--fact::before {
        display: block;
        margin: 0.5rem 0 0.35rem;
        font-size: 0.65rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--color-primary-dark);
        content: 'Réalité';
    }
}
.blog-article-prose .blog-compare-table-wrap {
    margin: 1.5em 0 2.25em;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--radius-md, 12px);
    border: 1px solid var(--color-border);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 6px 26px rgba(15, 23, 42, 0.08);
}
.blog-article-prose .blog-compare-table-wrap:focus {
    outline: none;
    box-shadow:
        0 6px 26px rgba(15, 23, 42, 0.08),
        0 0 0 3px rgba(89, 122, 175, 0.35);
}
.blog-article-prose .blog-compare-table-wrap:focus-visible {
    outline: none;
    box-shadow:
        0 6px 26px rgba(15, 23, 42, 0.08),
        0 0 0 3px rgba(89, 122, 175, 0.35);
}
.blog-article-prose .blog-compare-table {
    width: 100%;
    min-width: 36rem;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.95rem;
    line-height: 1.5;
}
.blog-article-prose .blog-compare-table__caption {
    caption-side: top;
    padding: 1.05rem 1.15rem 0.8rem;
    margin: 0;
    font-family: var(--font-title);
    font-size: 1.06rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    text-align: left;
    border-bottom: 1px solid rgba(89, 122, 175, 0.2);
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.11) 0%, rgba(255, 255, 255, 0.72) 100%);
}
.blog-article-prose .blog-compare-table thead {
    background: rgba(89, 122, 175, 0.11);
}
.blog-article-prose .blog-compare-table__th {
    padding: 0.68rem 0.85rem;
    font-family: var(--font-title);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: left;
    color: var(--color-primary-dark);
    border-bottom: 1px solid rgba(89, 122, 175, 0.22);
    vertical-align: bottom;
}
.blog-article-prose .blog-compare-table__th:not(:last-child) {
    border-right: 1px solid rgba(89, 122, 175, 0.15);
}
.blog-article-prose .blog-compare-table tbody tr:nth-child(even) {
    background: rgba(248, 250, 252, 0.88);
}
.blog-article-prose .blog-compare-table__tool {
    padding: 0.85rem 0.9rem;
    font-family: var(--font-title);
    font-size: 0.95rem;
    font-weight: 800;
    text-align: left;
    color: var(--color-primary-dark);
    border-bottom: 1px solid var(--color-border);
    border-right: 1px solid rgba(226, 232, 240, 0.95);
    white-space: nowrap;
    background: rgba(255, 255, 255, 0.55);
}
.blog-article-prose .blog-compare-table__td {
    padding: 0.85rem 0.9rem;
    vertical-align: top;
    color: var(--color-dark);
    border-bottom: 1px solid var(--color-border);
    border-right: 1px solid rgba(226, 232, 240, 0.75);
}
.blog-article-prose .blog-compare-table__td:last-child {
    border-right: none;
}
.blog-article-prose .blog-compare-table tbody tr:last-child th,
.blog-article-prose .blog-compare-table tbody tr:last-child td {
    border-bottom: none;
}
.blog-article-prose .blog-agentic-schema {
    margin: 1.6em 0 2.1em;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 6px 26px rgba(15, 23, 42, 0.07);
    overflow: hidden;
}
.blog-article-prose .blog-agentic-schema__caption {
    margin: 0;
    padding: 1rem 1.15rem 0.85rem;
    font-family: var(--font-title);
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    text-align: left;
    border-bottom: 1px solid rgba(89, 122, 175, 0.18);
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.1) 0%, rgba(255, 255, 255, 0.85) 100%);
}
.blog-article-prose .blog-agentic-schema__list {
    list-style: none;
    margin: 0;
    padding: 1.05rem 1.15rem 1.15rem;
}
.blog-article-prose .blog-agentic-schema__step {
    display: grid;
    grid-template-columns: minmax(7.5rem, auto) 1fr;
    gap: 0.35rem 0.85rem;
    align-items: baseline;
    margin: 0;
    padding: 0.85rem 0.75rem;
    border-radius: var(--radius-md, 10px);
    border: 1px solid rgba(89, 122, 175, 0.2);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
}
.blog-article-prose .blog-agentic-schema__step + .blog-agentic-schema__step {
    margin-top: 0.55rem;
}
.blog-article-prose .blog-agentic-schema__step:not(:last-child)::after {
    content: '';
    grid-column: 1 / -1;
    justify-self: center;
    width: 14px;
    height: 10px;
    margin: 0.4rem 0 0.1rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10' fill='none'%3E%3Cpath d='M7 9L1 2h12L7 9z' fill='%23597aaf' fill-opacity='0.55'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.blog-article-prose .blog-agentic-schema__name {
    font-family: var(--font-title);
    font-size: 0.98rem;
    font-weight: 800;
    color: var(--color-primary-dark);
    letter-spacing: -0.01em;
}
.blog-article-prose .blog-agentic-schema__flow {
    font-size: 0.96rem;
    line-height: 1.45;
    color: var(--color-dark);
}
.blog-article-prose .blog-agentic-schema__arrow {
    color: var(--color-primary);
    font-weight: 700;
    margin-right: 0.15rem;
}
.blog-article-prose .blog-agentic-schema__outcome {
    font-weight: 600;
    color: #1e293b;
}
@media (max-width: 520px) {
    .blog-article-prose .blog-agentic-schema__step {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
    .blog-article-prose .blog-agentic-schema__flow {
        padding-left: 0.05rem;
    }
}
.blog-article-prose .blog-agent-cycle {
    margin: 1.65em 0 2.15em;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    background:
        radial-gradient(ellipse 85% 55% at 50% 108%, rgba(89, 122, 175, 0.12) 0%, transparent 55%),
        rgba(255, 255, 255, 0.97);
    box-shadow: 0 8px 30px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}
.blog-article-prose .blog-agent-cycle__caption {
    margin: 0;
    padding: 1rem 1.15rem 0.75rem;
    font-family: var(--font-title);
    font-size: 1.04rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    text-align: center;
    border-bottom: 1px solid rgba(89, 122, 175, 0.18);
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.09) 0%, rgba(255, 255, 255, 0.5) 100%);
}
.blog-article-prose .blog-agent-cycle__list {
    list-style: none;
    margin: 0;
    padding: 1.25rem 1rem 1.35rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem 0.65rem;
    align-items: stretch;
    position: relative;
}
.blog-article-prose .blog-agent-cycle__item {
    position: relative;
    margin: 0;
    padding: 1rem 0.85rem 1.05rem;
    border-radius: var(--radius-md, 10px);
    border: 1px solid rgba(89, 122, 175, 0.22);
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.99) 0%, rgba(245, 248, 252, 0.96) 100%);
    box-shadow: 0 2px 12px rgba(60, 96, 152, 0.06);
    text-align: center;
}
.blog-article-prose .blog-agent-cycle__item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -0.42rem;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid rgba(89, 122, 175, 0.35);
    border-right: 2px solid rgba(89, 122, 175, 0.35);
    transform: translateY(-50%) rotate(45deg);
    z-index: 1;
    background: transparent;
    pointer-events: none;
}
.blog-article-prose .blog-agent-cycle__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    margin: 0 auto 0.55rem;
    border-radius: 50%;
    font-family: var(--font-title);
    font-size: 0.95rem;
    font-weight: 800;
    color: #fff;
    background: linear-gradient(145deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    box-shadow: 0 2px 8px rgba(89, 122, 175, 0.35);
}
.blog-article-prose .blog-agent-cycle__label {
    display: block;
    font-family: var(--font-title);
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--color-primary-dark);
    margin-bottom: 0.4rem;
}
.blog-article-prose .blog-agent-cycle__text {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.48;
    color: var(--color-dark);
}
@media (max-width: 960px) {
    .blog-article-prose .blog-agent-cycle__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.9rem 1.1rem;
    }
    .blog-article-prose .blog-agent-cycle__item:nth-child(2)::after {
        display: none;
    }
    .blog-article-prose .blog-agent-cycle__item:nth-child(1)::after,
    .blog-article-prose .blog-agent-cycle__item:nth-child(3)::after {
        right: -0.55rem;
    }
}
@media (max-width: 560px) {
    .blog-article-prose .blog-agent-cycle__list {
        grid-template-columns: 1fr;
        padding-left: 1.15rem;
        padding-right: 1.15rem;
    }
    .blog-article-prose .blog-agent-cycle__item {
        text-align: left;
        padding: 1rem 1rem 1rem 1.1rem;
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
        column-gap: 0.85rem;
        row-gap: 0.2rem;
        align-items: start;
    }
    .blog-article-prose .blog-agent-cycle__item::after {
        display: none;
    }
    .blog-article-prose .blog-agent-cycle__badge {
        grid-row: 1 / span 2;
        margin: 0;
        align-self: center;
        grid-column: 1;
    }
    .blog-article-prose .blog-agent-cycle__label {
        margin-bottom: 0.15rem;
        grid-column: 2;
        grid-row: 1;
    }
    .blog-article-prose .blog-agent-cycle__text {
        grid-column: 2;
        grid-row: 2;
    }
}
.blog-article-prose .blog-before-after {
    margin: 1.55em 0 2em;
    padding: 0;
    border-radius: var(--radius-md, 12px);
    border: 1px solid var(--color-border);
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.07);
    overflow: hidden;
}
.blog-article-prose .blog-before-after__kicker {
    margin: 0;
    padding: 0.85rem 1.15rem 0.65rem;
    font-family: var(--font-title);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
    color: var(--color-primary-dark);
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.1) 0%, rgba(255, 255, 255, 0.6) 100%);
    border-bottom: 1px solid rgba(89, 122, 175, 0.16);
}
.blog-article-prose .blog-before-after__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
}
.blog-article-prose .blog-before-after__panel {
    padding: 1.1rem 1.15rem 1.2rem;
    margin: 0;
}
.blog-article-prose .blog-before-after__panel--before {
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(241, 245, 249, 0.92) 100%);
    border-right: 1px solid rgba(226, 232, 240, 0.95);
}
.blog-article-prose .blog-before-after__panel--after {
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, rgba(232, 243, 236, 0.45) 52%, rgba(255, 255, 255, 0.95) 100%);
    border-left: 3px solid rgba(89, 122, 175, 0.35);
    margin-left: -1px;
}
.blog-article-prose .blog-before-after__label {
    margin: 0 0 0.55em;
    font-family: var(--font-title);
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--color-primary-dark);
}
.blog-article-prose .blog-before-after__panel--after .blog-before-after__label {
    color: #0f5132;
}
.blog-article-prose .blog-before-after__text {
    margin: 0;
    font-size: 0.96rem;
    line-height: 1.58;
    color: var(--color-dark);
}
@media (max-width: 640px) {
    .blog-article-prose .blog-before-after__grid {
        grid-template-columns: 1fr;
    }
    .blog-article-prose .blog-before-after__panel--before {
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }
    .blog-article-prose .blog-before-after__panel--after {
        border-left: none;
        border-top: 3px solid rgba(89, 122, 175, 0.35);
        margin-left: 0;
    }
}
.blog-article-prose .blog-use-case-cards {
    margin: 1.35em 0 2.2em;
}
.blog-article-prose .blog-use-case-cards__kicker {
    margin: 0 0 0.85rem;
    font-family: var(--font-title);
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    text-align: center;
}
.blog-article-prose .blog-use-case-cards__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
    gap: 1rem 1rem;
}
.blog-article-prose .blog-use-case-cards__cell {
    margin: 0;
    display: flex;
    min-height: 100%;
}
.blog-article-prose .blog-use-case-cards__card {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 1.05rem 1.05rem 1.1rem;
    border-radius: var(--radius-md, 12px);
    border: 1px solid rgba(89, 122, 175, 0.22);
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.96) 100%);
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
    text-decoration: none;
    color: inherit;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}
.blog-article-prose .blog-use-case-cards__card:hover {
    border-color: rgba(89, 122, 175, 0.45);
    box-shadow: 0 10px 28px rgba(60, 96, 152, 0.12);
    transform: translateY(-2px);
}
.blog-article-prose .blog-use-case-cards__card:focus {
    outline: none;
}
.blog-article-prose .blog-use-case-cards__card:focus-visible {
    outline: 3px solid rgba(89, 122, 175, 0.45);
    outline-offset: 3px;
}
.blog-article-prose .blog-use-case-cards__name {
    display: block;
    font-family: var(--font-title);
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: var(--color-primary-dark);
    margin-bottom: 0.5rem;
    line-height: 1.3;
}
.blog-article-prose .blog-use-case-cards__summary {
    display: block;
    font-size: 0.9rem;
    line-height: 1.52;
    color: var(--color-dark);
    flex: 1 1 auto;
}
.blog-article-prose .blog-mini-scenario {
    margin: 1.15em 0 1.6em;
    padding: 1.1rem 1.2rem 1.15rem;
    border-radius: var(--radius-md, 12px);
    border: 1px solid rgba(51, 65, 85, 0.18);
    background: linear-gradient(
        168deg,
        rgba(30, 41, 59, 0.07) 0%,
        rgba(89, 122, 175, 0.09) 38%,
        rgba(255, 255, 255, 0.96) 72%
    );
    box-shadow: 0 6px 24px rgba(15, 23, 42, 0.07);
}
.blog-article-prose .blog-mini-scenario__title {
    margin: 0 0 0.9rem;
    font-family: var(--font-title);
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
}
.blog-article-prose .blog-mini-scenario__steps {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: mini-scenario;
}
.blog-article-prose .blog-mini-scenario__step {
    position: relative;
    margin: 0 0 0.85rem 0;
    padding: 0 0 0 2.35rem;
    min-block-size: 2.5rem;
}
.blog-article-prose .blog-mini-scenario__step:last-child {
    margin-bottom: 0;
}
.blog-article-prose .blog-mini-scenario__step::before {
    counter-increment: mini-scenario;
    content: counter(mini-scenario);
    position: absolute;
    left: 0;
    top: 0.05rem;
    width: 1.65rem;
    height: 1.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: var(--font-title);
    font-size: 0.78rem;
    font-weight: 800;
    color: #fff;
    background: linear-gradient(150deg, #475569 0%, var(--color-primary-dark) 100%);
    box-shadow: 0 2px 8px rgba(30, 41, 59, 0.25);
}
.blog-article-prose .blog-mini-scenario__step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 0.78rem;
    top: 1.85rem;
    bottom: -0.35rem;
    width: 2px;
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.45) 0%, rgba(89, 122, 175, 0.12) 100%);
    border-radius: 1px;
}
.blog-article-prose .blog-mini-scenario__text {
    display: block;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--color-dark);
}
.blog-article-prose .blog-pme-benefits {
    margin: 1.25em 0 2em;
}
.blog-article-prose .blog-pme-benefits__kicker {
    margin: 0 0 1rem;
    font-family: var(--font-title);
    font-size: 1.01rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    text-align: center;
}
.blog-article-prose .blog-pme-benefits__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1rem;
}
.blog-article-prose .blog-pme-benefits__item {
    margin: 0;
    padding: 1rem 1.05rem 1.05rem 1.1rem;
    border-radius: var(--radius-md, 12px);
    border: 1px solid rgba(89, 122, 175, 0.16);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.97) 100%);
    box-shadow: 0 3px 14px rgba(15, 23, 42, 0.05);
    border-left: 4px solid rgba(89, 122, 175, 0.35);
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}
.blog-article-prose .blog-pme-benefits__item:hover {
    border-color: rgba(89, 122, 175, 0.28);
    box-shadow: 0 6px 20px rgba(60, 96, 152, 0.08);
}
.blog-article-prose .blog-pme-benefits__title {
    margin: 0 0 0.4rem;
    font-family: var(--font-title);
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: var(--color-primary-dark);
    line-height: 1.3;
}
.blog-article-prose .blog-pme-benefits__text {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.52;
    color: #475569;
}
@media (max-width: 560px) {
    .blog-article-prose .blog-pme-benefits__grid {
        grid-template-columns: 1fr;
    }
}
.blog-article-prose .blog-predeploy-checklist {
    margin: 1.35em 0 1.75em;
    padding: 1.15rem 1.2rem 1.2rem 1.25rem;
    border-radius: var(--radius-md, 12px);
    border: 1px solid rgba(51, 65, 85, 0.2);
    border-left: 4px solid var(--color-primary-dark);
    background: linear-gradient(175deg, rgba(248, 250, 252, 0.98) 0%, rgba(255, 255, 255, 0.99) 55%, rgba(235, 242, 252, 0.5) 100%);
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
}
.blog-article-prose .blog-predeploy-checklist__title {
    margin: 0 0 0.85rem;
    font-family: var(--font-title);
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    line-height: 1.35;
}
.blog-article-prose .blog-predeploy-checklist__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.blog-article-prose .blog-predeploy-checklist__item {
    position: relative;
    margin: 0 0 0.62rem;
    padding: 0.08rem 0 0.08rem 1.65rem;
    font-size: 0.94rem;
    line-height: 1.5;
    color: var(--color-dark);
}
.blog-article-prose .blog-predeploy-checklist__item:last-child {
    margin-bottom: 0;
}
.blog-article-prose .blog-predeploy-checklist__item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.42rem;
    width: 0.82rem;
    height: 0.82rem;
    border: 2px solid rgba(89, 122, 175, 0.65);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.blog-article-prose .blog-method-frise {
    margin: 1.35em 0 1.85em;
    padding: 1.1rem 1.2rem 1.15rem;
    border-radius: var(--radius-md, 12px);
    border: 1px solid rgba(89, 122, 175, 0.2);
    background: linear-gradient(
        168deg,
        rgba(89, 122, 175, 0.06) 0%,
        rgba(255, 255, 255, 0.98) 42%,
        rgba(163, 203, 188, 0.1) 100%
    );
    box-shadow: 0 6px 24px rgba(15, 23, 42, 0.07);
}
.blog-article-prose .blog-method-frise__title {
    margin: 0 0 0.95rem;
    font-family: var(--font-title);
    font-size: 1.03rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-primary-dark);
    text-align: center;
}
.blog-article-prose .blog-method-frise__list {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: method-step;
}
.blog-article-prose .blog-method-frise__step {
    position: relative;
    margin: 0 0 0.78rem 0;
    padding: 0 0 0 2.45rem;
    min-block-size: 2.35rem;
}
.blog-article-prose .blog-method-frise__step:last-child {
    margin-bottom: 0;
}
.blog-article-prose .blog-method-frise__step::before {
    counter-increment: method-step;
    content: counter(method-step);
    position: absolute;
    left: 0;
    top: 0;
    width: 1.75rem;
    height: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: var(--font-title);
    font-size: 0.8rem;
    font-weight: 800;
    color: #fff;
    background: linear-gradient(145deg, var(--color-primary) 0%, #3d5a80 100%);
    box-shadow: 0 2px 10px rgba(89, 122, 175, 0.35);
    border: 2px solid rgba(255, 255, 255, 0.85);
}
.blog-article-prose .blog-method-frise__step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 0.84rem;
    top: 1.9rem;
    bottom: -0.28rem;
    width: 2px;
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.4) 0%, rgba(163, 203, 188, 0.35) 100%);
    border-radius: 1px;
}
.blog-article-prose .blog-method-frise__text {
    display: block;
    font-size: 0.96rem;
    line-height: 1.55;
    color: var(--color-dark);
    font-weight: 500;
}
@media (min-width: 1100px) {
    .blog-article-prose .blog-method-frise__list {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 0.5rem 0.35rem;
        align-items: stretch;
        counter-reset: method-step;
    }
    .blog-article-prose .blog-method-frise__step {
        margin: 0;
        padding: 2.2rem 0.5rem 0.9rem;
        min-block-size: 0;
        text-align: center;
        border-radius: var(--radius-md, 10px);
        border: 1px solid rgba(89, 122, 175, 0.18);
        background: rgba(255, 255, 255, 0.9);
        box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
    }
    .blog-article-prose .blog-method-frise__step::before {
        top: 0.65rem;
        left: 50%;
        transform: translateX(-50%);
    }
    .blog-article-prose .blog-method-frise__step:not(:last-child)::after {
        left: auto;
        right: -0.38rem;
        top: 2.55rem;
        bottom: auto;
        width: 0.48rem;
        height: 0.48rem;
        transform: translateY(0) rotate(45deg);
        border: none;
        background: transparent;
        border-top: 2px solid rgba(89, 122, 175, 0.38);
        border-right: 2px solid rgba(89, 122, 175, 0.38);
    }
    .blog-article-prose .blog-method-frise__text {
        font-size: 0.86rem;
        line-height: 1.48;
    }
}
.blog-article-prose .blog-callout--vigilance {
    margin: 1.65em 0 1.9em;
    padding: 1.28rem 1.45rem 1.32rem 1.5rem;
    background: linear-gradient(145deg, rgba(191, 155, 121, 0.22) 0%, rgba(255, 251, 247, 0.98) 42%, rgba(208, 216, 228, 0.4) 100%);
    border: 1px solid rgba(191, 155, 121, 0.5);
    border-left: 5px solid var(--color-accent-dark);
    border-radius: var(--radius-md, 12px);
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.07),
        0 0 0 1px rgba(255, 255, 255, 0.45) inset;
}
.blog-article-prose .blog-callout--vigilance .blog-callout__title {
    font-size: 1.07rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-transform: none;
    color: #4a3220;
    margin: 0 0 0.72em;
    line-height: 1.3;
}
.blog-article-prose .blog-callout--vigilance .blog-callout__lead {
    font-size: 1.01rem;
    line-height: 1.64;
    font-weight: 500;
    color: var(--color-dark);
}
.blog-article-prose .blog-callout--vigilance strong {
    font-weight: 700;
    color: #1f2937;
}
.blog-article-prose .blog-key-stat {
    margin: 1.55em 0 1.8em;
    padding: 1.55rem 1.35rem 1.6rem;
    text-align: center;
    background: linear-gradient(
        168deg,
        rgba(89, 122, 175, 0.14) 0%,
        rgba(255, 255, 255, 0.97) 42%,
        rgba(163, 203, 188, 0.16) 100%
    );
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    box-shadow: 0 8px 28px rgba(60, 96, 152, 0.11);
}
.blog-article-prose .blog-key-stat__value {
    margin: 0 0 0.75em;
    font-family: var(--font-title);
    font-weight: 800;
    font-size: clamp(1.12rem, 2.4vw, 1.42rem);
    line-height: 1.38;
    letter-spacing: -0.01em;
    color: var(--color-primary-dark);
}
.blog-article-prose .blog-key-stat__line {
    display: inline;
}
.blog-article-prose .blog-key-stat__or {
    display: inline-block;
    margin: 0 0.32em;
    font-family: var(--font-title);
    font-size: 0.78em;
    font-weight: 700;
    color: var(--color-gray);
}
.blog-article-prose .blog-key-stat__note {
    margin: 0 auto;
    max-width: 36rem;
    font-size: 0.97rem;
    line-height: 1.58;
    color: var(--color-gray);
    font-weight: 500;
}
.blog-article-prose .blog-error-cards {
    list-style: none;
    margin: 1.45em 0 1.7em;
    padding: 0;
    display: grid;
    gap: 1rem;
}
@media (min-width: 720px) {
    .blog-article-prose .blog-error-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}
.blog-article-prose .blog-error-card {
    margin: 0;
    padding: 1.1rem 1.2rem 1.2rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05);
    border-top: 3px solid var(--color-primary);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.blog-article-prose .blog-error-card:nth-child(4n + 2) {
    border-top-color: var(--color-secondary);
}
.blog-article-prose .blog-error-card:nth-child(4n + 3) {
    border-top-color: var(--color-accent-dark);
}
.blog-article-prose .blog-error-card:nth-child(4n + 4) {
    border-top-color: var(--color-primary-dark);
}
.blog-article-prose .blog-error-card:hover {
    box-shadow: 0 6px 22px rgba(60, 96, 152, 0.12);
    border-color: rgba(89, 122, 175, 0.45);
}
.blog-article-prose .blog-error-card__title {
    font-family: var(--font-title);
    font-size: 1.01rem;
    font-weight: 800;
    line-height: 1.32;
    margin: 0 0 0.55em;
    color: var(--color-dark);
}
.blog-article-prose .blog-error-card__body {
    margin: 0;
}
.blog-article-prose .blog-error-card__body p {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--color-gray);
    font-weight: 500;
}
.blog-article-prose .blog-benefits {
    margin: 1.55em 0 1.9em;
    padding: 1.35rem 1.35rem 1.45rem;
    background: linear-gradient(
        165deg,
        rgba(40, 153, 81, 0.1) 0%,
        rgba(255, 255, 255, 0.97) 48%,
        rgba(89, 122, 175, 0.1) 100%
    );
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    box-shadow: 0 4px 22px rgba(40, 153, 81, 0.08);
}
.blog-article-prose .blog-benefits__intro {
    margin: 0 auto 1.15em;
    max-width: 40rem;
    text-align: center;
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
.blog-article-prose .blog-benefits__intro strong {
    font-weight: 800;
    color: var(--color-secondary-dark);
}
.blog-article-prose .blog-benefits__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}
@media (min-width: 760px) {
    .blog-article-prose .blog-benefits__list {
        grid-template-columns: repeat(3, 1fr);
    }
}
.blog-article-prose .blog-benefits__item {
    margin: 0;
    padding: 1.05rem 1.1rem 1.15rem 1.2rem;
    background: var(--color-white);
    border-radius: var(--radius-md, 12px);
    border: 1px solid rgba(40, 153, 81, 0.22);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
    position: relative;
}
.blog-article-prose .blog-benefits__item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    border-radius: var(--radius-md, 12px) 0 0 var(--radius-md, 12px);
    background: var(--color-secondary);
    opacity: 0.9;
}
.blog-article-prose .blog-benefits__item:nth-child(2)::before {
    background: var(--color-primary);
}
.blog-article-prose .blog-benefits__item:nth-child(3)::before {
    background: var(--color-accent-dark);
}
.blog-article-prose .blog-benefits__name {
    margin: 0 0 0.45em;
    font-family: var(--font-title);
    font-size: 1.03rem;
    font-weight: 800;
    line-height: 1.28;
    color: var(--color-dark);
}
.blog-article-prose .blog-benefits__text {
    margin: 0;
    font-size: 0.96rem;
    line-height: 1.58;
    color: var(--color-gray);
    font-weight: 500;
}
.blog-article-prose .blog-cta--subtle {
    margin: 2em 0 2.25em;
    padding: 1.35rem 1.4rem 1.45rem;
    background: rgba(208, 216, 228, 0.35);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.04);
}
.blog-article-prose .blog-cta__title {
    margin: 0 0 0.65em;
    font-family: var(--font-title);
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}
.blog-article-prose .blog-cta__text {
    margin: 0 0 1.1em;
    font-size: 0.98rem;
    line-height: 1.62;
    color: var(--color-gray);
    font-weight: 500;
}
.blog-article-prose .blog-cta__action {
    margin: 1.05em 0 0;
    margin-bottom: 0;
}
.blog-article-prose .blog-cta__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    padding: 0.55rem 1.15rem;
    font-family: var(--font-title);
    font-size: 0.94rem;
    font-weight: 700;
    text-decoration: none;
    color: var(--color-primary-dark);
    background: var(--color-white);
    border: 1px solid rgba(60, 96, 152, 0.4);
    border-radius: var(--radius-md, 10px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}
.blog-article-prose .blog-cta__link:hover {
    background: rgba(89, 122, 175, 0.08);
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.blog-article-prose .blog-service-hint {
    margin: 1.2em 0 1.35em;
    padding: 0.88rem 1.05rem 0.92rem 1.1rem;
    font-size: 0.95rem;
    line-height: 1.58;
    color: var(--color-gray);
    font-weight: 500;
    background: rgba(208, 216, 228, 0.32);
    border-left: 3px solid var(--color-primary);
    border-radius: 0 var(--radius-md, 10px) var(--radius-md, 10px) 0;
}
.blog-article-prose .blog-service-hint__link {
    font-weight: 700;
    color: var(--color-primary-dark);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition:
        color 0.15s ease,
        border-color 0.15s ease;
}
.blog-article-prose .blog-service-hint__link:hover {
    color: var(--color-primary);
    border-bottom-color: rgba(89, 122, 175, 0.45);
}
.blog-article-prose .blog-faq {
    margin: 2.75em 0 0;
    padding: 2rem 0 0;
    border-top: 1px solid var(--color-border);
}
.blog-article-prose .blog-faq .blog-faq__heading {
    font-family: var(--font-title);
    font-size: 1.45rem;
    font-weight: 800;
    margin: 0 0 0.45em;
    line-height: 1.28;
    color: var(--color-dark);
}
.blog-article-prose .blog-faq__intro {
    margin: 0 0 1.2em;
    font-size: 0.98rem;
    line-height: 1.58;
    color: var(--color-gray);
    font-weight: 500;
}
.blog-article-prose .blog-faq__list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.blog-article-prose .blog-faq__item {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    background: var(--color-white);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.04);
    overflow: hidden;
}
.blog-article-prose .blog-faq__summary {
    padding: 1rem 1.15rem 1rem 1.2rem;
    list-style: none;
    cursor: pointer;
    font-family: var(--font-title);
    font-size: 1.01rem;
    font-weight: 700;
    line-height: 1.38;
    color: var(--color-dark);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    user-select: none;
}
.blog-article-prose .blog-faq__summary::-webkit-details-marker {
    display: none;
}
.blog-article-prose .blog-faq__summary::after {
    content: '+';
    flex-shrink: 0;
    width: 1.5rem;
    text-align: center;
    font-size: 1.28rem;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
}
.blog-article-prose .blog-faq__item[open] .blog-faq__summary::after {
    content: '\2212';
    font-size: 1.35rem;
}
.blog-article-prose .blog-faq__summary:focus {
    outline: none;
}
.blog-article-prose .blog-faq__summary:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
    z-index: 1;
    position: relative;
}
.blog-article-prose .blog-faq__panel {
    padding: 0.75rem 1.2rem 1.15rem;
    border-top: 1px solid rgba(208, 216, 228, 0.75);
}
.blog-article-prose .blog-faq__panel p {
    margin: 0 0 0.85em;
    font-size: 0.96rem;
    line-height: 1.65;
    color: var(--color-gray);
    font-weight: 500;
}
.blog-article-prose .blog-faq__panel p:last-child {
    margin-bottom: 0;
}
.blog-article-prose .blog-faq__panel-cta {
    margin-top: 0.85em;
    padding-top: 0.55em;
    border-top: 1px dashed var(--color-border);
    font-size: 0.94rem;
}
.blog-article-prose .blog-faq__link {
    font-weight: 700;
    color: var(--color-primary-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.blog-article-prose .blog-faq__link:hover {
    color: var(--color-primary);
}
.blog-article-prose .blog-table-wrap {
    margin: 1.35em 0 1.5em;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--radius-md, 12px);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}
.blog-article-prose .blog-table {
    width: 100%;
    min-width: 520px;
    border-collapse: collapse;
    font-size: 15px;
    line-height: 1.5;
}
.blog-article-prose .blog-table thead th {
    font-family: var(--font-title);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-align: left;
    color: var(--color-primary-dark);
    background: rgba(208, 216, 228, 0.45);
    padding: 12px 14px;
    border-bottom: 2px solid var(--color-border);
    vertical-align: bottom;
}
.blog-article-prose .blog-table tbody th[scope="row"] {
    font-weight: 700;
    text-align: left;
    color: var(--color-dark);
    background: rgba(243, 244, 246, 0.85);
    padding: 12px 14px;
    border-bottom: 1px solid var(--color-border);
    width: 7.5rem;
    min-width: 6.5rem;
    white-space: normal;
}
.blog-article-prose .blog-table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-dark);
    vertical-align: top;
}
.blog-article-prose .blog-table tbody tr:last-child th,
.blog-article-prose .blog-table tbody tr:last-child td {
    border-bottom: none;
}
.blog-article-prose .blog-table tbody tr:nth-child(even) td {
    background: rgba(249, 250, 251, 0.65);
}
.blog-article-prose .blog-table tbody tr:nth-child(even) th[scope="row"] {
    background: rgba(237, 242, 246, 0.75);
}
.blog-article-prose .blog-tags__label {
    margin: 1.15em 0 0.65em;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-dark);
}
.blog-article-prose .blog-tags__hint {
    font-weight: 500;
    color: var(--color-gray);
    font-size: 0.9em;
}
.blog-article-prose .blog-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    margin: 0 0 1.25em;
    padding: 0;
    list-style: none;
}
.blog-article-prose .blog-tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 13px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-primary-dark);
    background: rgba(89, 122, 175, 0.1);
    border: 1px solid rgba(89, 122, 175, 0.28);
    border-radius: 999px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.blog-article-prose .blog-checklist {
    margin: 1.4em 0 1.65em;
    padding: 1.2rem 1.35rem 1.3rem 1.4rem;
    background: rgba(163, 203, 188, 0.2);
    border-left: 4px solid var(--color-secondary);
    border-radius: 0 var(--radius-md, 12px) var(--radius-md, 12px) 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}
.blog-article-prose .blog-checklist__title {
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0 0 1em;
    color: var(--color-secondary-dark);
    line-height: 1.3;
}
.blog-article-prose .blog-checklist__list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.blog-article-prose .blog-checklist__list li {
    position: relative;
    margin: 0 0 0.72em;
    padding-left: 1.9rem;
    line-height: 1.52;
    font-size: 16px;
    color: var(--color-dark);
}
.blog-article-prose .blog-checklist__list li:last-child {
    margin-bottom: 0;
}
.blog-article-prose .blog-checklist__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.32em;
    width: 1.1rem;
    height: 1.1rem;
    border: 2px solid var(--color-secondary);
    border-radius: 5px;
    background: var(--color-white);
    box-sizing: border-box;
    flex-shrink: 0;
}
.blog-article-prose div.blog-myth-reality {
    margin: 1.5em 0 1.85em;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.blog-article-prose .blog-myth-reality__pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-radius: var(--radius-md, 12px);
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
}
.blog-article-prose .blog-myth-reality__side {
    padding: 1rem 1.15rem 1.1rem;
    min-height: 0;
}
.blog-article-prose .blog-myth-reality__side--myth {
    background: rgba(254, 243, 230, 0.65);
    border-right: 1px solid var(--color-border);
}
.blog-article-prose .blog-myth-reality__side--fact {
    background: rgba(163, 203, 188, 0.2);
}
.blog-article-prose .blog-myth-reality__label {
    display: block;
    font-family: var(--font-title);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 0.55em;
}
.blog-article-prose .blog-myth-reality__side--myth .blog-myth-reality__label {
    color: #9a5b2e;
}
.blog-article-prose .blog-myth-reality__side--fact .blog-myth-reality__label {
    color: var(--color-secondary-dark);
}
.blog-article-prose .blog-myth-reality__text {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.52;
    font-weight: 500;
    color: var(--color-dark);
}
@media (max-width: 640px) {
    .blog-article-prose .blog-myth-reality__pair {
        grid-template-columns: 1fr;
    }
    .blog-article-prose .blog-myth-reality__side--myth {
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }
}
.blog-article-prose .blog-principles-cards {
    margin: 1.5em 0 1.85em;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    list-style: none;
    padding: 0;
}
.blog-article-prose .blog-principle-card {
    margin: 0;
    padding: 1.15rem 1.2rem 1.2rem;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
    border-top: 4px solid var(--color-primary);
}
.blog-article-prose .blog-principle-card:nth-child(2) {
    border-top-color: var(--color-secondary);
}
.blog-article-prose .blog-principle-card:nth-child(3) {
    border-top-color: var(--color-accent-dark);
}
.blog-article-prose .blog-principle-card:nth-child(4) {
    border-top-color: var(--color-primary-dark);
}
.blog-article-prose .blog-principle-card__name {
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0 0 0.55em;
    color: var(--color-dark);
    line-height: 1.25;
}
.blog-article-prose .blog-principle-card__text {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.55;
    color: var(--color-gray);
    font-weight: 500;
}
@media (min-width: 900px) {
    .blog-article-prose .blog-principles-cards {
        grid-template-columns: repeat(4, 1fr);
    }
}
@media (max-width: 560px) {
    .blog-article-prose .blog-principles-cards {
        grid-template-columns: 1fr;
    }
}
.blog-article-prose .blog-timeline {
    margin: 1.5em 0 1.9em;
    padding: 1.25rem 1.35rem 1.35rem 1.4rem;
    background: linear-gradient(160deg, rgba(208, 216, 228, 0.38) 0%, rgba(255, 255, 255, 0.96) 55%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 12px);
    border-left: 4px solid var(--color-primary);
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.04);
}
.blog-article-prose .blog-timeline__intro {
    margin: 0 0 1.15em;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.55;
    color: var(--color-dark);
}
.blog-article-prose .blog-timeline__list {
    list-style: none;
    margin: 0;
    padding: 0 0 0 4px;
    position: relative;
}
.blog-article-prose .blog-timeline__list::before {
    content: '';
    position: absolute;
    left: 12px;
    top: 6px;
    bottom: 10px;
    width: 2px;
    background: linear-gradient(180deg, var(--color-primary) 0%, rgba(40, 153, 81, 0.55) 100%);
    border-radius: 2px;
    opacity: 0.55;
}
.blog-article-prose .blog-timeline__item {
    position: relative;
    margin: 0;
    padding: 0.32rem 0 0.95rem 2.35rem;
    font-family: var(--font-title);
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.35;
    color: var(--color-primary-dark);
}
.blog-article-prose .blog-timeline__item:last-child {
    padding-bottom: 0;
}
.blog-article-prose .blog-timeline__item::before {
    content: '';
    position: absolute;
    left: 4px;
    top: 0.42rem;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: var(--color-white);
    border: 3px solid var(--color-primary);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    z-index: 1;
}
.blog-article-prose .blog-timeline__item:nth-child(even)::before {
    border-color: var(--color-secondary);
}
.blog-article-prose h2 {
    font-family: var(--font-title);
    font-size: 1.55rem;
    font-weight: 800;
    margin: 2.25em 0 0.8em;
    line-height: 1.28;
    color: var(--color-dark);
}
.blog-article-prose h2:first-child { margin-top: 0; }
.blog-article-prose h3 {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 1.65em 0 0.55em;
    line-height: 1.35;
    color: var(--color-dark);
}
.blog-article-prose h2,
.blog-article-prose h3 {
    scroll-margin-top: calc(var(--site-sticky-top, 72px) + 20px);
}
.blog-article-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--color-border);
    align-items: center;
}
.blog-related { background: var(--color-light-gray); }
.blog-related .sp-section-header { margin-bottom: 28px; }

/* ══════════════════════════════════════════════
   LABORATOIRE / HUB D’INNOVATION (/hub)
   ══════════════════════════════════════════════ */
.lab-searchable.is-lab-hidden {
    display: none !important;
}

/* Modale « Bientôt disponible » — hub lab */
body.lab-soon-modal-open {
    overflow: hidden;
}
.lab-soon-modal[hidden] {
    display: none !important;
}
.lab-soon-modal {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.lab-soon-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(4px);
}
.lab-soon-modal__panel {
    position: relative;
    z-index: 1;
    max-width: 420px;
    width: 100%;
    padding: 1.75rem 1.5rem 1.5rem;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
    border: 1px solid #e2e8f0;
    text-align: center;
}
.lab-soon-modal__close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #64748b;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}
.lab-soon-modal__close:hover {
    background: #f1f5f9;
    color: #0f172a;
}
.lab-soon-modal__eyebrow {
    margin: 0 0 0.35rem;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #597aaf;
}
.lab-soon-modal__title {
    margin: 0 0 0.75rem;
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
}
.lab-soon-modal__text {
    margin: 0 0 1.25rem;
    font-size: 14px;
    line-height: 1.5;
    color: #475569;
}
.lab-soon-modal__text a {
    color: var(--color-primary, #597aaf);
    font-weight: 600;
}
.lab-soon-modal__ok {
    min-width: 140px;
}

.lab-hero {
    position: relative;
    padding: 48px 0 56px;
    color: #e8edf5;
    overflow: hidden;
}
.lab-hero__bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(165deg, #0a1628 0%, #13294a 50%, #0a1628 100%);
    z-index: 0;
}
.lab-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 70% 50% at 30% -10%, rgba(89, 122, 175, 0.35) 0%, transparent 55%),
        radial-gradient(ellipse 50% 40% at 90% 20%, rgba(40, 153, 81, 0.15) 0%, transparent 45%);
    pointer-events: none;
}
.lab-hero__inner { position: relative; z-index: 1; max-width: 920px; margin: 0 auto; text-align: center; }
.lab-hero__eyebrow {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
    margin: 0 0 16px;
}
.lab-hero__title {
    font-size: clamp(1.85rem, 4vw, 2.65rem);
    font-weight: 800;
    color: #fff;
    margin: 0 0 18px;
    line-height: 1.15;
}
.lab-hero__gradient {
    display: inline;
    background: linear-gradient(90deg, #6ecfff 0%, #5ed399 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.lab-hero__lead {
    font-size: 1.08rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.76);
    margin: 0 auto 28px;
    max-width: 640px;
}
.lab-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-bottom: 40px;
}
.lab-hero__search-wrap {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 260px;
    max-width: 360px;
}
.lab-hero__search-ico {
    position: absolute;
    left: 14px;
    color: rgba(255, 255, 255, 0.45);
    pointer-events: none;
}
.lab-hero__search-input {
    width: 100%;
    padding: 12px 16px 12px 44px;
    border-radius: var(--radius-md);
    border: 1.5px solid rgba(255, 255, 255, 0.35);
    background: rgba(15, 23, 42, 0.35);
    color: #fff;
    font-size: 15px;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
}
.lab-hero__search-input::placeholder { color: rgba(255, 255, 255, 0.45); }
.lab-hero__search-input:focus {
    border-color: rgba(110, 207, 255, 0.65);
    background: rgba(15, 23, 42, 0.55);
}

.lab-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 0;
    padding: 28px 20px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
}
.lab-stats__item { text-align: center; margin: 0; }
.lab-stats__value {
    font-family: var(--font-title);
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 800;
    color: #fff;
    margin: 0 0 4px;
    line-height: 1;
}
.lab-stats__label {
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.62);
    margin: 0;
    font-family: var(--font-subtitle);
}
@media (max-width: 640px) {
    .lab-stats { grid-template-columns: repeat(2, 1fr); padding-top: 20px; }
}

.lab-section { padding: 64px 0; }
.lab-section--white { background: var(--color-white); }
.lab-section--muted {
    background: #f4f6fa;
}
.lab-section__head { margin-bottom: 36px; max-width: 720px; }
.lab-section__head--center {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.lab-section__title {
    font-size: clamp(1.45rem, 2.5vw, 1.85rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 12px;
}
.lab-section__lead {
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-gray);
    margin: 0;
}

/* Hub — « Projets en cours » : en-tête + légende (maquette) */
.lab-ongoing-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px 32px;
    margin-bottom: 36px;
}
.lab-ongoing-header__text {
    flex: 1 1 280px;
    min-width: 0;
    max-width: 720px;
}
.lab-ongoing-legend {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 28px;
    flex: 0 1 auto;
}
.lab-ongoing-legend__item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}
.lab-ongoing-legend__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    flex-shrink: 0;
}
.lab-ongoing-legend__icon svg {
    width: 16px;
    height: 16px;
}
.lab-ongoing-legend__icon--purple {
    background: rgba(124, 107, 171, 0.18);
    color: #5c4d86;
}
.lab-ongoing-legend__icon--orange {
    background: rgba(224, 112, 64, 0.15);
    color: #c45d28;
}
.lab-ongoing-legend__icon--blue {
    background: rgba(89, 122, 175, 0.15);
    color: var(--color-primary-dark);
}
@media (max-width: 640px) {
    .lab-ongoing-header {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        margin-bottom: 22px;
    }
    /* Évite flex-basis 280px sur l’axe vertical : sinon énorme vide sous le titre */
    .lab-ongoing-header__text {
        flex: 0 1 auto;
        min-height: 0;
    }
    .lab-ongoing-legend {
        padding-top: 10px;
        border-top: 1px solid var(--color-border);
    }
}

.lab-kicker {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 6px;
    margin: 0 0 14px;
    font-family: var(--font-subtitle);
}
.lab-kicker--beta {
    background: rgba(89, 122, 175, 0.15);
    color: var(--color-primary-dark);
}
.lab-kicker--beta-access {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.lab-kicker__ico {
    display: flex;
    align-items: center;
    color: var(--color-primary);
}
.lab-beta-section__lead {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}
.lab-kicker--ideas {
    background: rgba(40, 153, 81, 0.12);
    color: var(--color-secondary-dark);
}
.lab-kicker--ideas-incub {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.lab-kicker__ico--ideas {
    display: flex;
    align-items: center;
    color: var(--color-secondary-dark);
}
.lab-ideas-section__lead {
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
.lab-ideas-grid {
    align-items: stretch;
}
.lab-ideas-grid > li {
    display: flex;
}

.lab-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 22px;
}
.lab-grid--2 { grid-template-columns: repeat(2, 1fr); }
.lab-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) {
    .lab-grid--2, .lab-grid--3 { grid-template-columns: 1fr; }
}

.lab-card {
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    padding: 22px;
    box-shadow: var(--shadow-sm);
    height: 100%;
    display: flex;
    flex-direction: column;
}
.lab-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.lab-card__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    flex-shrink: 0;
}
.lab-card__icon--orange { background: linear-gradient(135deg, #f4a574 0%, #e07040 100%); }
.lab-card__icon--blue { background: linear-gradient(135deg, #7a9fd4 0%, var(--color-primary) 100%); }
.lab-card__icon--purple { background: linear-gradient(135deg, #b8a8e0 0%, #7c6bab 100%); }
.lab-card__icon--green { background: linear-gradient(135deg, #7ecf9e 0%, var(--color-secondary) 100%); }

.lab-badge {
    font-size: 11px;
    font-weight: 700;
    padding: 5px 10px;
    border-radius: 6px;
    font-family: var(--font-subtitle);
    white-space: nowrap;
}
.lab-badge--orange { background: rgba(224, 112, 64, 0.12); color: #c45d28; }
.lab-badge--blue { background: rgba(89, 122, 175, 0.12); color: var(--color-primary-dark); }
.lab-badge--purple { background: rgba(124, 107, 171, 0.14); color: #5c4d86; }
.lab-badge--green { background: rgba(40, 153, 81, 0.12); color: #1d7a40; }

.lab-card__title {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 10px;
    color: var(--color-dark);
    line-height: 1.25;
}
.lab-card__desc {
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
    margin: 0 0 14px;
    flex: 1;
}
.lab-card--ongoing .lab-card__main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.lab-card--ongoing .lab-card__desc {
    flex: 1 1 auto;
}
.lab-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}
.lab-tag {
    font-size: 11px;
    font-weight: 600;
    padding: 4px 8px;
    border-radius: 4px;
    background: var(--color-light-gray);
    color: var(--color-gray);
    font-family: var(--font-subtitle);
}

.lab-progress__head {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-gray);
    margin-bottom: 6px;
    font-family: var(--font-subtitle);
}
.lab-progress__pct { color: var(--color-dark); }
.lab-progress__track {
    height: 8px;
    border-radius: 999px;
    background: var(--color-light-gray);
    overflow: hidden;
}
.lab-progress__fill {
    height: 100%;
    border-radius: 999px;
    transition: width 0.4s ease;
}
.lab-progress__fill--orange { background: linear-gradient(90deg, #f4a574, #e07040); }
.lab-progress__fill--blue { background: linear-gradient(90deg, #8fabd6, var(--color-primary)); }
.lab-progress__fill--purple { background: linear-gradient(90deg, #c4b8e8, #8b7cbf); }
.lab-progress__fill--green { background: linear-gradient(90deg, #7ecf9e, var(--color-secondary)); }

.lab-card__foot {
    margin-top: auto;
    padding-top: 16px;
}
.lab-card__foot-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: stretch;
    width: 100%;
}
.lab-card__foot-row--split {
    justify-content: stretch;
}
.lab-card__btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 14px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font-subtitle);
    color: var(--color-dark);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    line-height: 1.2;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.lab-card__btn-outline:hover {
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
}
.lab-card__btn-outline--block {
    width: 100%;
    box-sizing: border-box;
}
.lab-card__foot-row--split .lab-card__btn-outline {
    flex: 1 1 min(0, 140px);
    min-width: 0;
}
.lab-card__btn-beta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font-subtitle);
    color: #fff;
    background: var(--color-primary);
    border: none;
    border-radius: var(--radius-sm);
    text-decoration: none;
    line-height: 1.2;
    flex: 1 1 min(0, 160px);
    min-width: 0;
    transition: filter 0.15s ease, transform 0.12s ease;
}
.lab-card__btn-beta:hover {
    filter: brightness(1.06);
    color: #fff;
}
.lab-card__btn-beta-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
@media (max-width: 480px) {
    .lab-card__foot-row--split {
        flex-direction: column;
    }
    .lab-card__foot-row--split .lab-card__btn-outline,
    .lab-card__foot-row--split .lab-card__btn-beta {
        flex: 1 1 auto;
        width: 100%;
    }
}
.lab-card__link {
    font-weight: 700;
    font-size: 14px;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.lab-card__link:hover { text-decoration: underline; }
.lab-card__btn-primary {
    font-size: 14px;
    padding: 10px 18px;
}

.lab-beta-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}
.lab-beta-list--grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
    max-width: none;
    margin: 0;
}
@media (max-width: 900px) {
    .lab-beta-list--grid {
        grid-template-columns: 1fr;
    }
}
.lab-beta-card {
    border-radius: var(--radius-lg);
    padding: 28px;
    background: linear-gradient(155deg, #0f1f38 0%, #152a4a 100%);
    color: #e8edf5;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
}
.lab-beta-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}
.lab-beta-card__logo {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: rgba(89, 122, 175, 0.35);
    color: #b8d4ff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lab-beta-card__metrics { display: flex; gap: 20px; }
.lab-beta-card__metric {
    text-align: right;
}
.lab-beta-card__metric-val {
    display: block;
    font-family: var(--font-title);
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
}
.lab-beta-card__metric-unit {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
    font-weight: 600;
}
.lab-beta-card__title {
    font-size: 1.35rem;
    font-weight: 800;
    color: #fff;
    margin: 0 0 10px;
}
.lab-beta-card__desc {
    font-size: 15px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.72);
    margin: 0 0 20px;
    flex: 1 1 auto;
}
.lab-beta-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: stretch;
    margin-top: auto;
}
.lab-beta-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1 1 min(0, 200px);
    min-width: 0;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font-subtitle);
    border-radius: var(--radius-sm);
    text-decoration: none;
    background: #fff;
    color: var(--color-dark);
    border: 1px solid rgba(0, 0, 0, 0.08);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.lab-beta-card__btn:hover {
    background: #f0f2f6;
    color: var(--color-dark);
    border-color: rgba(0, 0, 0, 0.12);
}
.lab-beta-card__btn-ico {
    flex-shrink: 0;
    opacity: 0.85;
}
@media (max-width: 480px) {
    .lab-beta-card__actions {
        flex-direction: column;
    }
    .lab-beta-card__btn {
        flex: 1 1 auto;
        width: 100%;
    }
}

.lab-card--idea {
    width: 100%;
}
.lab-card__idea-icon-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    margin-bottom: 14px;
    background: rgba(40, 153, 81, 0.12);
    color: var(--color-secondary-dark);
    flex-shrink: 0;
}
.lab-card__idea-svg {
    display: block;
}
.lab-card--idea .lab-card__desc {
    flex: 1 1 auto;
}
.lab-card__idea-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 16px;
}
.lab-card__idea-social {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
}
.lab-card__idea-social-ico {
    flex-shrink: 0;
    opacity: 0.62;
    color: var(--color-gray);
}
.lab-card__vote {
    flex-shrink: 0;
    font-weight: 700;
    font-size: 14px;
    color: var(--color-secondary-dark);
    font-family: var(--font-subtitle);
    text-decoration: none;
    white-space: nowrap;
}
.lab-card__vote:hover {
    text-decoration: underline;
    color: var(--color-secondary);
}
@media (max-width: 400px) {
    .lab-card__idea-foot {
        flex-direction: column;
        align-items: flex-start;
    }
    .lab-card__vote {
        white-space: normal;
        align-self: flex-end;
    }
}

.lab-participate { padding-bottom: 72px; }
.lab-participate__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
@media (max-width: 900px) {
    .lab-participate__grid { grid-template-columns: 1fr; }
}
.lab-participate__title {
    font-size: clamp(1.4rem, 2.5vw, 1.75rem);
    font-weight: 800;
    margin: 0 0 12px;
}
.lab-participate__intro-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-gray);
    margin: 0 0 28px;
}
.lab-participate__bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.lab-participate__bullet {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}
.lab-participate__bullet-ico {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(89, 122, 175, 0.12);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}
.lab-participate__bullet-text strong {
    display: block;
    font-size: 16px;
    color: var(--color-dark);
    margin-bottom: 4px;
}
.lab-participate__bullet-text span {
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}

.lab-participate-form-wrap,
.lab-participate__form-wrap {
    background: #f8fafc;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 28px;
}
.lab-participate-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
@media (max-width: 500px) {
    .lab-participate-form__row { grid-template-columns: 1fr; }
}
.lab-field { display: block; margin-bottom: 14px; }
.lab-field--full { grid-column: 1 / -1; }
.lab-field__label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}
.lab-field input,
.lab-field textarea {
    width: 100%;
    padding: 11px 14px;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--color-border);
    font-size: 15px;
    font-family: var(--font-body);
    transition: border-color 0.2s;
}
.lab-field input:focus,
.lab-field textarea:focus {
    outline: none;
    border-color: var(--color-primary);
}
.lab-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 13px;
    line-height: 1.45;
    color: var(--color-gray);
    margin: 8px 0 18px;
}
.lab-check input { margin-top: 3px; flex-shrink: 0; }
.lab-check a { color: var(--color-primary); font-weight: 600; }
.lab-participate-form__submit { width: 100%; justify-content: center; }

.lab-newsletter {
    background: linear-gradient(165deg, #0a1628 0%, #13294a 100%);
    padding: 48px 0;
    color: #fff;
}
.lab-newsletter__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.lab-newsletter__text { flex: 1 1 280px; max-width: 520px; }
.lab-newsletter__title {
    font-size: 1.35rem;
    font-weight: 800;
    margin: 0 0 8px;
    color: #fff;
}
.lab-newsletter__lead {
    margin: 0;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.68);
    line-height: 1.5;
}
.lab-newsletter__form {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    flex: 1 1 320px;
    justify-content: flex-end;
}
.lab-newsletter__form input[type="email"] {
    flex: 1 1 200px;
    min-width: 160px;
    max-width: 280px;
    padding: 12px 14px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(15, 23, 42, 0.45);
    color: #fff;
    font-size: 15px;
}
.lab-newsletter__form input::placeholder { color: rgba(255, 255, 255, 0.45); }
.lab-newsletter__form .btn { flex-shrink: 0; }

.lab-breadcrumb { padding: 20px 24px 48px; }

/* ══════════════════════════════════════════════
   PAGE D’ACCUEIL — sous le hero
   ══════════════════════════════════════════════ */
.home-problem {
    background: linear-gradient(180deg, #eef4fb 0%, #ffffff 42%);
    padding: 56px 0 72px;
}
.home-problem__head {
    text-align: center;
    max-width: 44rem;
    margin: 0 auto 36px;
}
.home-problem__badge {
    display: inline-block;
    margin: 0 0 14px;
    padding: 6px 16px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #0f2918;
    background: linear-gradient(135deg, #c8e6d4 0%, #b8d4f0 100%);
    border-radius: 999px;
    font-family: var(--font-subtitle);
}
.home-problem__title {
    font-size: clamp(1.35rem, 3vw, 1.95rem);
    font-weight: 800;
    line-height: 1.22;
    color: #1e3a5f;
    margin: 0 0 14px;
    letter-spacing: -0.02em;
}
.home-problem__subtitle {
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-gray);
}
.home-problem__cards {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
@media (max-width: 1024px) {
    .home-problem__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .home-problem__cards {
        grid-template-columns: 1fr;
    }
}
.home-problem__card {
    display: flex;
    flex-direction: column;
    padding: 20px 18px 18px;
    border-radius: 16px;
    background: var(--color-white);
    border: 1px solid rgba(208, 216, 228, 0.95);
    box-shadow: 0 10px 36px rgba(15, 23, 42, 0.07);
    transition: box-shadow 0.2s, transform 0.2s;
}
.home-problem__card:hover {
    box-shadow: 0 16px 44px rgba(89, 122, 175, 0.14);
    transform: translateY(-2px);
}
/* Couleurs d’identité : bleu, vert, beige, bleu clair (pôles) */
.home-problem__card--tools {
    border-top: 4px solid var(--color-primary);
}
.home-problem__card--process {
    border-top: 4px solid var(--color-secondary);
}
.home-problem__card--compliance {
    border-top: 4px solid var(--color-accent-dark);
}
.home-problem__card--data {
    border-top: 4px solid var(--pole-3);
}
.home-problem__card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}
.home-problem__num {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 800;
    color: var(--color-white);
    background: linear-gradient(145deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
}
.home-problem__card--tools .home-problem__num {
    background: linear-gradient(145deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
}
.home-problem__card--process .home-problem__num {
    background: linear-gradient(145deg, var(--color-secondary) 0%, #166534 100%);
}
.home-problem__card--compliance .home-problem__num {
    background: linear-gradient(145deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);
}
.home-problem__card--data .home-problem__num {
    background: linear-gradient(145deg, var(--pole-3) 0%, #7d8fa8 100%);
}
.home-problem__svg-ico {
    flex-shrink: 0;
    color: var(--color-primary-dark);
    opacity: 0.9;
}
.home-problem__card--tools .home-problem__svg-ico {
    color: var(--color-primary-dark);
}
.home-problem__card--process .home-problem__svg-ico {
    color: var(--color-secondary-dark);
}
.home-problem__card--compliance .home-problem__svg-ico {
    color: var(--color-accent-dark);
}
.home-problem__card--data .home-problem__svg-ico {
    color: #5a6d85;
}
.home-problem__card-title {
    margin: 0 0 8px;
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.25;
    font-family: var(--font-title);
}
.home-problem__card-text {
    margin: 0 0 14px;
    flex: 1;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--color-gray);
}
.home-problem__impact {
    margin: auto 0 0;
    padding-top: 4px;
}
.home-problem__impact-inner {
    display: inline-block;
    padding: 7px 11px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    font-family: var(--font-subtitle);
}
.home-problem__card--tools .home-problem__impact-inner {
    background: var(--pole-0-bg);
    color: var(--color-primary-dark);
    border: 1px solid rgba(89, 122, 175, 0.28);
}
.home-problem__card--process .home-problem__impact-inner {
    background: rgba(167, 243, 208, 0.45);
    color: #14532d;
    border: 1px solid rgba(40, 153, 81, 0.25);
}
.home-problem__card--compliance .home-problem__impact-inner {
    background: var(--pole-2-bg);
    color: #5c4329;
    border: 1px solid rgba(191, 155, 121, 0.45);
}
.home-problem__card--data .home-problem__impact-inner {
    background: var(--pole-3-bg);
    color: #334155;
    border: 1px solid rgba(164, 178, 200, 0.55);
}
.home-problem__funnel {
    margin: 12px 0 56px;
    padding: 0 12px 16px;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    overflow: visible;
}
.home-problem__funnel-svg {
    width: 100%;
    height: auto;
    min-height: 64px;
    max-height: 100px;
    display: block;
    overflow: visible;
}
.home-problem__resolution {
    display: grid;
    grid-template-columns: minmax(88px, 120px) minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 28px 32px;
    align-items: center;
    margin-top: 0;
    padding: 28px 32px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(237, 241, 248, 0.95) 0%, rgba(255, 255, 255, 0.98) 55%, rgba(232, 245, 238, 0.35) 100%);
    border: 1px solid rgba(208, 216, 228, 0.9);
    box-shadow: 0 18px 48px rgba(89, 122, 175, 0.1);
}
.home-problem__resolution-visual {
    display: flex;
    align-items: center;
    justify-content: center;
}
.home-problem__resolution-img {
    width: 100%;
    max-width: 120px;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 8px 24px rgba(89, 122, 175, 0.12));
}
.home-problem__resolution-copy {
    min-width: 0;
}
.home-problem__resolution-headline {
    margin: 0 0 12px;
    font-size: clamp(1.15rem, 2.4vw, 1.4rem);
    font-weight: 800;
    line-height: 1.35;
    color: var(--color-dark);
    font-family: var(--font-title);
}
.home-problem__resolution-line {
    display: block;
    color: var(--color-gray);
    font-weight: 700;
    font-size: 0.92em;
    margin-bottom: 4px;
}
.home-problem__resolution-accent {
    display: block;
    color: var(--color-primary);
    font-size: 1.08em;
}
.home-problem__resolution-body {
    margin: 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
.home-problem__benefits {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.home-problem__benefits li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    line-height: 1.45;
    font-weight: 600;
    color: var(--color-dark);
}
.home-problem__benefits svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--color-secondary);
}
@media (max-width: 900px) {
    .home-problem__resolution {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 24px 22px;
    }
    .home-problem__resolution-visual {
        justify-content: center;
    }
    .home-problem__benefits {
        text-align: left;
        max-width: 420px;
        margin: 0 auto;
    }
}

/* Différenciation — narration scroll chaos → système */
.home-cs {
    --cs-p: 0;
    /* Décalage sous le header (topbar + nav + méga-menu) : épingle plus tôt + pas de rognage du haut */
    --home-cs-sticky-top: clamp(92px, 10.5vw, 188px);
    background: var(--color-white);
    padding-top: 48px;
}

/* Piste de scroll : hauteur étendue (éviter 280vh = trop de « vide » perceptible) */
.home-cs__track {
    position: relative;
    height: var(--home-cs-track, 220vh);
    min-height: 150vh;
}
.home-cs__sticky {
    position: sticky;
    top: var(--home-cs-sticky-top);
    min-height: calc(100svh - var(--home-cs-sticky-top));
    height: calc(100svh - var(--home-cs-sticky-top));
    max-height: calc(100svh - var(--home-cs-sticky-top));
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 12px 0 22px;
    overflow-x: hidden;
    overflow-y: hidden;
    --cs-p: 0;
}
.home-cs__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    transition: none;
}
.home-cs__bg--chaos {
    background: radial-gradient(120% 80% at 15% 45%, rgba(254, 226, 226, 0.95) 0%, rgba(255, 250, 250, 0.5) 45%, transparent 70%);
    opacity: calc(1 - var(--cs-p));
}
.home-cs__bg--system {
    background: radial-gradient(120% 80% at 88% 40%, rgba(220, 252, 231, 0.95) 0%, rgba(240, 253, 244, 0.45) 50%, transparent 72%);
    opacity: var(--cs-p);
}
.home-cs__shell {
    position: relative;
    z-index: 2;
    width: 100%;
}
.home-cs__card {
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(208, 216, 228, 0.85);
    border-radius: 20px;
    box-shadow: 0 12px 48px rgba(15, 23, 42, 0.07);
    overflow: hidden;
}
.home-cs__card-bar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    padding: 14px 18px 10px;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.9) 0%, rgba(255, 255, 255, 0.5) 100%);
}
.home-cs__bar-title {
    margin: 0;
    font-size: clamp(0.72rem, 1.6vw, 0.82rem);
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.25;
}
.home-cs__bar-title--chaos {
    color: #991b1b;
    text-align: left;
    justify-self: start;
    opacity: clamp(0, calc(1 - var(--cs-p) * 1.15), 1);
}
.home-cs__bar-title--system {
    color: #166534;
    text-align: right;
    justify-self: end;
    opacity: clamp(0, calc(0.2 + var(--cs-p) * 0.95), 1);
}
.home-cs__bridge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    max-width: 200px;
    text-align: center;
    will-change: transform;
}
.home-cs__bridge-circle {
    display: flex;
    align-items: center;
    justify-content: center;
}
.home-cs__bridge-text {
    margin: 0;
    font-size: clamp(0.68rem, 1.5vw, 0.78rem);
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-dark);
}
.home-cs__viz {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(200px, 276px);
    gap: 12px 28px;
    padding: 12px 14px 18px;
    align-items: start;
    position: relative;
}
/* SVG flux : même ligne que la grille utile, évite des placements ambigus selon les moteurs */
.home-cs__viz > .home-cs__svg--flow {
    grid-column: 1 / -1;
    grid-row: 1;
    z-index: 1;
}
.home-cs__chaos-zone {
    position: relative;
    min-width: 0;
    justify-self: center;
    width: 100%;
    max-width: 640px;
    z-index: 2;
    grid-column: 1;
    grid-row: 1;
}
@media (max-width: 900px) {
    .home-cs__viz {
        grid-template-columns: 1fr;
    }
    .home-cs__card-bar {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .home-cs__bar-title--chaos,
    .home-cs__bar-title--system {
        text-align: center;
        justify-self: center;
    }
    .home-cs__bridge {
        order: -1;
        max-width: none;
        margin-bottom: 8px;
    }
}
.home-cs__corners {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 10px;
    line-height: 1.3;
    font-weight: 700;
}
/* Pastilles chaos : dispersion sur toute la zone (desktop) */
.home-cs__corners--chaos {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    display: block;
}
.home-cs__corners--chaos .home-cs__corner {
    position: absolute;
    pointer-events: auto;
    max-width: min(46%, 220px);
    font-size: 10.5px;
    line-height: 1.35;
    box-shadow: 0 4px 18px rgba(127, 29, 29, 0.12);
}
.home-cs__corner--chaos-1 {
    top: 2%;
    left: 1%;
    transform: rotate(-0.6deg);
}
.home-cs__corner--chaos-2 {
    top: 8%;
    right: 2%;
    left: auto;
    transform: rotate(0.7deg);
}
.home-cs__corner--chaos-3 {
    top: auto;
    bottom: 40%;
    left: 4%;
    transform: rotate(-0.4deg);
}
.home-cs__corner--chaos-4 {
    top: auto;
    right: 5%;
    bottom: 5%;
    left: auto;
    transform: rotate(0.5deg);
}
.home-cs__corners--system {
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
    z-index: 2;
    grid-column: 2;
    grid-row: 1;
    align-self: start;
}
@media (max-width: 900px) {
    .home-cs__viz > .home-cs__svg--flow,
    .home-cs__chaos-zone,
    .home-cs__corners--system {
        grid-column: 1;
        grid-row: auto;
    }
    .home-cs__chaos-zone {
        display: flex;
        flex-direction: column;
    }
    .home-cs__corners--chaos {
        position: static;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 6px;
        margin-bottom: 8px;
        order: -1;
    }
    .home-cs__corners--chaos .home-cs__corner {
        position: static;
        max-width: none;
        transform: none;
        box-shadow: 0 2px 10px rgba(127, 29, 29, 0.08);
    }
    .home-cs__corners--system {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        max-width: 400px;
        margin: 18px auto 0;
        gap: 10px;
    }
}
.home-cs__corner {
    padding: 6px 8px;
    border-radius: 8px;
    border: 1px solid transparent;
}
.home-cs__corner--bad {
    color: #991b1b;
    background: rgba(254, 226, 226, 0.65);
    border-color: rgba(220, 38, 38, 0.2);
}
.home-cs__corner--good {
    color: #166534;
    background: rgba(220, 252, 231, 0.65);
    border-color: rgba(34, 197, 94, 0.25);
}
.home-cs__corners--system .home-cs__benefit-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    color: var(--color-dark);
    background: #fff;
    border: 1px solid rgba(22, 101, 52, 0.22);
    border-radius: 12px;
    box-shadow: 0 2px 14px rgba(15, 23, 42, 0.07);
}
.home-cs__benefit-ico {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    color: #15803d;
    background: linear-gradient(145deg, #ecfdf5 0%, #d1fae5 100%);
    border: 1px solid rgba(34, 197, 94, 0.2);
}
.home-cs__benefit-svg {
    display: block;
}
.home-cs__benefit-text {
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.35;
    color: #14532d;
}
.home-cs__corners--chaos .home-cs__corner {
    opacity: clamp(0, calc(1 - var(--cs-p) * 1.2), 1);
}
.home-cs__corners--system .home-cs__corner {
    opacity: clamp(0, calc(0.15 + var(--cs-p) * 0.95), 1);
}
.home-cs__stage {
    position: relative;
    --cs-icon-half: 28px;
    min-height: min(52vh, 520px);
    width: 100%;
    z-index: 2;
    border-radius: 14px;
    background: linear-gradient(
        135deg,
        rgba(254, 242, 242, 0.42) 0%,
        rgba(248, 250, 252, 0.75) 40%,
        rgba(255, 255, 255, 0.45) 100%
    );
}
@media (min-width: 700px) {
    .home-cs__stage {
        --cs-icon-half: 34px;
    }
}
@media (min-width: 1200px) {
    .home-cs__stage {
        --cs-icon-half: 38px;
    }
}
.home-cs__svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: visible;
}
.home-cs__svg--flow {
    z-index: 1;
}
.home-cs__svg--chaos path {
    fill: none;
    stroke: rgba(185, 28, 28, 0.5);
    stroke-width: 1.65;
    stroke-dasharray: 5 6;
    stroke-linecap: round;
}
.home-cs__svg--system {
    opacity: 0;
}
.home-cs__svg--system path {
    fill: none;
    stroke: rgba(22, 101, 52, 0.72);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.home-cs__svg--system path.home-cs__flow-benefit {
    stroke: rgba(22, 101, 52, 0.45);
    stroke-width: 1.55;
    stroke-dasharray: 4 5;
}
.home-cs__toolstrip {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.home-cs__icon {
    position: absolute;
    left: 0;
    top: 0;
    width: 56px;
    height: 56px;
    margin-left: -28px;
    margin-top: -28px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(208, 216, 228, 0.95);
    box-shadow: 0 6px 22px rgba(15, 23, 42, 0.1);
    font-size: 11px;
    font-weight: 800;
    color: var(--color-dark);
    pointer-events: auto;
    will-change: transform;
}
@media (min-width: 700px) {
    .home-cs__icon {
        width: 68px;
        height: 68px;
        margin-left: -34px;
        margin-top: -34px;
        border-radius: 15px;
        font-size: 12px;
    }
}
@media (min-width: 1200px) {
    .home-cs__icon {
        width: 76px;
        height: 76px;
        margin-left: -38px;
        margin-top: -38px;
        border-radius: 16px;
    }
}
.home-cs__icon--photo {
    padding: 7px;
    background: #fff;
}
@media (min-width: 700px) {
    .home-cs__icon--photo {
        padding: 8px;
    }
}
.home-cs__icon-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    pointer-events: none;
}
.home-cs__system-stack {
    position: absolute;
    left: 50%;
    right: auto;
    bottom: 8%;
    transform: translateX(-50%);
    width: min(340px, 88%);
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 3;
}
@media (max-width: 900px) {
    .home-cs__system-stack {
        position: relative;
        left: auto;
        right: auto;
        bottom: auto;
        transform: none;
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
        margin-top: 12px;
        padding-top: 12px;
    }
}
.home-cs__stack-row {
    padding: 12px 14px;
    border-radius: 12px;
    background: #fff;
    border: 2px solid rgba(22, 101, 52, 0.38);
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: center;
    opacity: 0;
    transform: translateY(12px);
}
.home-cs__stack-ico {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #ecfdf5 0%, #f0fdf4 100%);
    border: 1px solid rgba(22, 101, 52, 0.22);
    color: #15803d;
    flex-shrink: 0;
}
.home-cs__stack-ico--light {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.4);
    color: #fff;
}
.home-cs__stack-copy {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}
.home-cs__stack-kicker {
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #15803d;
    text-transform: uppercase;
}
.home-cs__stack-line {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-dark);
}
.home-cs__stack-outcome {
    padding: 14px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #fff;
    background: linear-gradient(135deg, #15803d 0%, #16a34a 100%);
    box-shadow: 0 6px 20px rgba(22, 101, 52, 0.25);
    opacity: 0;
    transform: translateY(10px);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: center;
    text-align: left;
}
.home-cs__stack-outcome-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
.home-cs__stack-outcome-title {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.home-cs__stack-outcome-sub {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.92;
}
.home-cs__stack-ico-svg {
    display: block;
}
.home-cs__cta-wrap {
    display: flex;
    justify-content: center;
    margin-top: 18px;
}
.home-cs__cta {
    opacity: calc(0.1 + max(0, (var(--cs-p) - 0.82) * 5.5));
    transform: translateY(calc((1 - var(--cs-p)) * 14px));
    transition: opacity 0.2s ease;
}
.home-cs--reduced .home-cs__cta {
    opacity: 1;
    transform: none;
}
.home-cs--reduced .home-cs__corners--chaos .home-cs__corner {
    opacity: 0.35;
}
.home-cs--reduced .home-cs__corners--system .home-cs__corner {
    opacity: 1;
}
.home-cs--reduced .home-cs__stack-row,
.home-cs--reduced .home-cs__stack-outcome {
    opacity: 1;
    transform: none;
}
.home-cs--reduced .home-cs__svg--system {
    opacity: 1;
}
.home-cs--reduced .home-cs__bar-title--chaos {
    opacity: 0.35;
}
.home-cs--reduced .home-cs__bar-title--system {
    opacity: 1;
}
@media (max-width: 640px) {
    .home-cs__track {
        --home-cs-track: 190vh;
        min-height: 140vh;
    }
    .home-cs__stage {
        min-height: 400px;
    }
}

.home-below {
    background: var(--color-white);
    min-width: 0;
}

.home-value {
    background: linear-gradient(180deg, #f8fafc 0%, var(--color-white) 100%);
    padding-top: 72px;
    padding-bottom: 72px;
}
.home-value__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
@media (max-width: 900px) {
    .home-value__grid { grid-template-columns: 1fr; gap: 36px; }
}
.home-value__title {
    font-size: clamp(1.5rem, 2.8vw, 2rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 12px 0 10px;
    line-height: 1.2;
}
.home-value__cta {
    margin: 4px 0 18px;
    transition:
        transform 0.24s cubic-bezier(0.34, 1.45, 0.64, 1),
        box-shadow 0.24s ease;
    transform-origin: center center;
}
.home-value__cta:hover {
    transform: scale(1.07);
    box-shadow: 0 14px 32px rgba(89, 122, 175, 0.38);
}
.home-value__cta:active {
    transform: scale(1.02);
}
.home-value__cta:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
    .home-value__cta,
    .home-value__cta:hover,
    .home-value__cta:active {
        transition: none;
        transform: none;
    }
}
.home-value__lead {
    font-size: 17px;
    line-height: 1.65;
    color: var(--color-gray);
    margin: 0;
    max-width: 520px;
}
.home-value__pillars {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.home-pillar {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 18px 20px;
    background: var(--color-white);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}
.home-pillar__num {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: #fff;
    font-family: var(--font-title);
    font-weight: 800;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.home-pillar__title {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 4px;
}
.home-pillar__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}

.home-poles {
    padding: 64px 0 88px;
    background: linear-gradient(180deg, #eef2f7 0%, #f8fafc 38%, var(--color-white) 100%);
}
.home-poles__page-head {
    text-align: center;
    max-width: 46rem;
    margin: 0 auto 40px;
}
/* En-tête section pôles — libellé « Transformation » centré, vert, sans pastille */
.home-poles__eyebrow {
    display: inline-block;
    margin: 0 0 16px;
    padding: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #15803d;
    font-family: var(--font-subtitle);
    background: none;
    border: none;
}
.home-poles__h2 {
    margin: 0 0 14px;
    font-size: clamp(1.45rem, 3.2vw, 2.05rem);
    font-weight: 800;
    line-height: 1.22;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.home-poles__intro {
    margin: 0;
    font-size: 17px;
    line-height: 1.65;
    color: var(--color-gray);
}
.home-poles__pull {
    margin: 18px auto 0;
    max-width: 38rem;
    font-size: 15px;
    line-height: 1.55;
    font-style: italic;
    color: #64748b;
}

/* Panneau sombre — de la stratégie à l’exécution */
.home-poles__dark {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    padding: 36px 40px 40px;
    background: linear-gradient(145deg, #0a1628 0%, #0f2744 42%, #0c1220 100%);
    border: 1px solid rgba(100, 116, 139, 0.35);
    box-shadow:
        0 4px 6px rgba(15, 23, 42, 0.35),
        0 28px 56px rgba(15, 23, 42, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.home-poles__dark-glow {
    position: absolute;
    inset: -20% auto auto -15%;
    width: 55%;
    height: 120%;
    background:
        radial-gradient(ellipse at 30% 40%, rgba(59, 130, 246, 0.22) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 60%, rgba(40, 153, 81, 0.12) 0%, transparent 50%);
    pointer-events: none;
    filter: blur(2px);
}
.home-poles__dark-glow--br {
    inset: auto -18% -45% auto;
    width: 58%;
    height: 95%;
    background:
        radial-gradient(ellipse at 70% 85%, rgba(52, 211, 153, 0.08) 0%, transparent 45%),
        radial-gradient(ellipse at 55% 100%, rgba(59, 130, 246, 0.12) 0%, transparent 50%);
}
.home-poles__dark-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
    gap: 32px 48px;
    align-items: start;
}
@media (max-width: 960px) {
    .home-poles__dark {
        padding: 28px 22px 32px;
    }
    .home-poles__dark-inner {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}
.home-poles__process-lead {
    margin: 0;
    font-size: clamp(1.2rem, 2.6vw, 1.65rem);
    font-weight: 700;
    line-height: 1.4;
    color: rgba(248, 250, 252, 0.95);
    font-family: var(--font-title);
}
.home-poles__process-before {
    display: block;
    margin-bottom: 6px;
    color: rgba(226, 232, 240, 0.88);
    font-weight: 700;
}
.home-poles__process-accent {
    display: block;
    color: #6ee7b7;
    font-weight: 800;
    text-shadow: 0 0 40px rgba(52, 211, 153, 0.35);
}

/* Colonne gauche du panneau sombre (texte d’accroche) */
.home-poles__process-copy {
    position: relative;
    max-width: 28rem;
    align-self: center;
    padding-right: 8px;
}
@media (max-width: 960px) {
    .home-poles__process-copy {
        max-width: none;
        align-self: stretch;
        padding-right: 0;
        text-align: center;
    }
}
.home-poles__process-body {
    min-width: 0;
}

/* Colonne timeline : rail + liste */
.home-poles__process-stack {
    --poles-rail-p: 0;
    position: relative;
    min-width: 0;
}
.home-poles__rail-track {
    position: absolute;
    left: 21px;
    top: 10px;
    bottom: 14px;
    width: 2px;
    border-radius: 2px;
    background: rgba(148, 163, 184, 0.28);
    z-index: 0;
    pointer-events: none;
}
.home-poles__rail-fill {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(var(--poles-rail-p, 0) * 100%);
    max-height: 100%;
    border-radius: 2px;
    background: linear-gradient(180deg, #34d399 0%, var(--color-primary) 55%, rgba(89, 122, 175, 0.95) 100%);
    box-shadow: 0 0 14px rgba(52, 211, 153, 0.35);
    pointer-events: none;
}

.home-poles__process-list {
    list-style: none;
    margin: 0;
    padding: 4px 0 0;
    position: relative;
    z-index: 1;
}
.home-poles__process-item {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px 16px;
    padding-bottom: 20px;
}
.home-poles__process-item:last-child {
    padding-bottom: 0;
}
.home-poles__process-rail {
    position: relative;
    width: 44px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 16px;
}
.home-poles__process-node {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
    background: radial-gradient(circle at 35% 30%, #fff 0%, var(--color-secondary) 45%, #15803d 100%);
    box-shadow:
        0 0 0 3px rgba(15, 23, 42, 0.95),
        0 0 14px rgba(52, 211, 153, 0.45);
    z-index: 2;
}
.home-poles__process-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 14px;
    row-gap: 8px;
    align-items: start;
    min-width: 0;
    padding: 14px 16px 16px;
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.42);
    border: 1px solid rgba(148, 163, 184, 0.22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.home-poles__process-vsep {
    display: none;
}
.home-poles__process-copycol {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
}
.home-poles__process-ico {
    grid-row: 1 / span 2;
    grid-column: 1;
    align-self: start;
    width: 44px;
    height: 44px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(148, 163, 184, 0.28);
    color: rgba(248, 250, 252, 0.92);
}
.home-poles__process-item:nth-child(1) .home-poles__process-ico {
    border-color: rgba(147, 197, 253, 0.4);
    color: #bae6fd;
}
.home-poles__process-item:nth-child(2) .home-poles__process-ico {
    border-color: rgba(52, 211, 153, 0.45);
    color: #a7f3d0;
}
.home-poles__process-item:nth-child(3) .home-poles__process-ico {
    border-color: rgba(251, 191, 36, 0.35);
    color: #fde68a;
}
.home-poles__process-item:nth-child(4) .home-poles__process-ico {
    border-color: rgba(167, 139, 250, 0.35);
    color: #ddd6fe;
}
.home-poles__process-item:nth-child(5) .home-poles__process-ico {
    border-color: rgba(52, 211, 153, 0.35);
    color: #ecfccb;
}
.home-poles__step-svg {
    display: block;
}
.home-poles__process-title {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #ecfdf5;
    letter-spacing: -0.02em;
    font-family: var(--font-title);
}
.home-poles__process-desc {
    margin: 0 0 10px;
    font-size: 13.5px;
    line-height: 1.55;
    color: rgba(203, 213, 225, 0.88);
}
.home-poles__process-link {
    font-size: 12px;
    font-weight: 700;
    color: #93c5fd;
    text-decoration: none;
    font-family: var(--font-subtitle);
}
.home-poles__process-link:hover {
    color: #bfdbfe;
    text-decoration: underline;
}

/* Écosystème — hub + cartes */
.home-poles__eco {
    margin-top: 56px;
}
.home-poles__eco-tag {
    margin: 0 0 28px;
    text-align: center;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #15803d;
    font-family: var(--font-subtitle);
}
.home-poles__eco-stage {
    padding: 32px 28px 36px;
    border-radius: 22px;
    background: linear-gradient(180deg, #f8fafc 0%, var(--color-white) 60%);
    border: 1px solid rgba(208, 216, 228, 0.95);
    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.06);
    display: flex;
    flex-direction: column;
    /* stretch : la grille / SVG occupent toute la largeur (évite cartes « fit-content » à gauche) */
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
}
.home-poles__hub {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 10px;
    position: relative;
}
.home-poles__hub::before {
    content: "";
    position: absolute;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    border: 1px solid rgba(89, 122, 175, 0.28);
    top: 48px;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 0;
}
.home-poles__hub-ring {
    position: absolute;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    border: 2px dashed rgba(89, 122, 175, 0.35);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}
.home-poles__hub-img {
    position: relative;
    z-index: 1;
    width: 88px;
    height: auto;
    max-height: 96px;
    object-fit: contain;
    display: block;
}
.home-poles__hub-label {
    position: relative;
    z-index: 1;
    margin: 14px 0 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
}
.home-poles__hub-line {
    font-family: var(--font-title);
    font-size: clamp(1.05rem, 2vw, 1.2rem);
    font-weight: 800;
    color: var(--color-primary-dark);
    line-height: 1.25;
}
.home-poles__hub-line--small {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-gray);
}
.home-poles__eco-svg {
    display: block;
    width: 100%;
    max-width: 920px;
    height: 44px;
    margin: 4px auto 8px;
    color: #cbd5e1;
}
.home-poles__eco-grid {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    width: 100%;
    align-items: stretch;
}
.home-poles__eco-grid > li {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}
@media (max-width: 1100px) {
    .home-poles__eco-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 700px) {
    .home-poles__eco-grid {
        grid-template-columns: 1fr;
    }
    .home-poles__eco-svg {
        height: 36px;
    }
}
.home-poles__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-sizing: border-box;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    padding: 18px 16px 16px;
    border-radius: 16px;
    border: 1px solid rgba(208, 216, 228, 0.95);
    background: var(--color-white);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.05);
    border-top-width: 4px;
    border-top-style: solid;
    transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}
.home-poles__card:hover {
    box-shadow: 0 12px 32px rgba(89, 122, 175, 0.12);
    transform: translateY(-3px);
}
.home-poles__card--blue {
    border-top-color: var(--pole-0);
}
.home-poles__card--green {
    border-top-color: var(--pole-1);
}
.home-poles__card--beige {
    border-top-color: var(--pole-2);
}
.home-poles__card--soft {
    border-top-color: var(--pole-3);
}
.home-poles__card--ia {
    border-top-color: var(--pole-4);
}
.home-poles__card-icon {
    margin-bottom: 10px;
    color: var(--color-primary);
}
.home-poles__card--green .home-poles__card-icon {
    color: var(--pole-1);
}
.home-poles__card--beige .home-poles__card-icon {
    color: #9a6540;
}
.home-poles__card--soft .home-poles__card-icon {
    color: var(--pole-3);
}
.home-poles__card--ia .home-poles__card-icon {
    color: var(--pole-4);
}
.home-poles__card .blog-pole-ico {
    width: 48px;
    height: 48px;
}
.home-poles__card-name {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    margin-bottom: 12px;
}
.home-poles__card-bullets {
    list-style: none;
    padding: 0;
    margin: 0 0 14px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.home-poles__card-bullets li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    line-height: 1.45;
    font-weight: 600;
    color: var(--color-gray);
}
.home-poles__card-bullets svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--color-secondary);
}
.home-poles__card-cta {
    margin-top: auto;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-subtitle);
    color: var(--color-primary);
}
.home-poles__card--green .home-poles__card-cta {
    color: var(--pole-1);
}
.home-poles__card--beige .home-poles__card-cta {
    color: var(--pole-2);
}
.home-poles__card--soft .home-poles__card-cta {
    color: var(--pole-3);
}
.home-poles__card--ia .home-poles__card-cta {
    color: var(--pole-4);
}
.home-poles__card:hover .home-poles__card-cta {
    text-decoration: underline;
}

/* Ancienne carte pôle (rétro-compat) */
.home-pole-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 100%;
    padding: 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
    box-shadow: var(--shadow-sm);
    border-top-width: 4px;
}
.home-pole-card:hover {
    border-color: rgba(89, 122, 175, 0.35);
    box-shadow: var(--shadow-md);
    transform: translateY(-3px);
}
.home-pole-card--blue { border-top-color: var(--pole-0); }
.home-pole-card--green { border-top-color: var(--pole-1); }
.home-pole-card--beige { border-top-color: var(--pole-2); }
.home-pole-card--soft { border-top-color: var(--pole-3); }
.home-pole-card--ia { border-top-color: var(--pole-4); }

.home-pole-card__icon {
    margin-bottom: 12px;
    color: var(--color-primary);
}
.home-pole-card--green .home-pole-card__icon { color: var(--pole-1); }
.home-pole-card--beige .home-pole-card__icon { color: #9a6540; }
.home-pole-card--soft .home-pole-card__icon { color: var(--pole-3); }
.home-pole-card--ia .home-pole-card__icon { color: var(--pole-4); }
.home-pole-card .blog-pole-ico {
    width: 40px;
    height: 40px;
}
.home-pole-card__name {
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 10px;
    line-height: 1.25;
}
.home-pole-card__hint {
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-gray);
    flex: 1;
    margin-bottom: 14px;
}
.home-pole-card__cta {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.home-pole-card:hover .home-pole-card__cta { text-decoration: underline; }

/* Méthode — maquette « Comment on transforme… » */
.home-method {
    /* 0 → 1 : rempli par home-method-timeline.js au scroll */
    --method-tl: 0;

    --hm-green: #16a34a;
    --hm-green-bg: rgba(34, 197, 94, 0.12);
    --hm-teal: #0f766e;
    --hm-teal-bg: rgba(15, 118, 110, 0.1);
    --hm-blue: var(--color-primary);
    --hm-blue-bg: rgba(89, 122, 175, 0.12);
    --hm-amber: #c2410c;
    --hm-amber-bg: rgba(251, 146, 60, 0.14);
    --hm-pine: #15803d;
    --hm-pine-bg: rgba(21, 128, 61, 0.1);

    padding: 72px 0 92px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 55%);
}
.home-method__header {
    text-align: center;
    max-width: 46rem;
    margin: 0 auto 36px;
}
.home-method__eyebrow {
    display: inline-block;
    margin: 0 0 14px;
    padding: 7px 18px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #14532d;
    background: linear-gradient(135deg, #d1fae5 0%, #ecfdf5 100%);
    border-radius: 999px;
    font-family: var(--font-subtitle);
    border: 1px solid rgba(40, 153, 81, 0.2);
}
.home-method__title {
    font-size: clamp(1.45rem, 3.2vw, 2.05rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 14px;
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.home-method__title-accent {
    color: var(--color-secondary);
    font-weight: 800;
}
.home-method__lead {
    margin: 0 0 22px;
    font-size: 17px;
    line-height: 1.65;
    color: var(--color-gray);
}
.home-method__macro {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px 10px;
    padding: 16px 22px;
    border-radius: 16px;
    background: var(--color-white);
    border: 1px solid rgba(208, 216, 228, 0.95);
    box-shadow: 0 8px 30px rgba(15, 23, 42, 0.06);
    max-width: 52rem;
    margin: 0 auto;
}
.home-method__macro-item {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #334155;
    font-family: var(--font-subtitle);
}
.home-method__macro-arrow {
    color: var(--color-secondary);
    font-weight: 900;
    font-size: 13px;
    opacity: 0.95;
}

.home-method__diagram {
    max-width: 1180px;
    margin: 0 auto;
}

/* Timeline : ligne pointillée + progression verte */
.home-method__timeline {
    position: relative;
    margin: 28px 0 32px;
    padding: 0 4px;
}
.home-method__timeline-lines {
    position: absolute;
    left: 8%;
    right: 8%;
    top: 50%;
    transform: translateY(-50%);
    height: 4px;
    pointer-events: none;
}
.home-method__line-dash {
    display: block;
    position: absolute;
    inset: 0;
    border-top: 2px dashed #cbd5e1;
    opacity: 0.95;
}
.home-method__line-solid {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: calc(var(--method-tl, 0) * 100%);
    max-width: 100%;
    border-top: 3px solid var(--color-secondary);
    border-radius: 2px;
    filter: drop-shadow(0 0 6px rgba(34, 197, 94, 0.35));
    will-change: width;
}
.home-method__nodes {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    z-index: 1;
}
.home-method__node {
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
    width: 20%;
}
.home-method__node-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    font-family: var(--font-title);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    background: #fff;
    border: 3px solid var(--color-secondary);
    box-shadow:
        0 0 0 4px rgba(255, 255, 255, 1),
        0 6px 20px rgba(15, 23, 42, 0.08);
}

.home-method__cards {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
}
.home-method__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    padding: 18px 14px 16px;
    border-radius: 16px;
    background: var(--color-white);
    border: 1px solid rgba(226, 232, 240, 0.98);
    box-shadow: 0 4px 22px rgba(15, 23, 42, 0.05);
    position: relative;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.home-method__card:hover {
    box-shadow: 0 12px 36px rgba(15, 23, 42, 0.08);
    transform: translateY(-2px);
}
.home-method__card--green {
    border-top: 3px solid var(--hm-green);
}
.home-method__card--teal {
    border-top: 3px solid var(--hm-teal);
}
.home-method__card--blue {
    border-top: 3px solid var(--hm-blue);
}
.home-method__card--amber {
    border-top: 3px solid #ea580c;
}
.home-method__card--pine {
    border-top: 3px solid var(--hm-pine);
}
.home-method__card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}
.home-method__card--green .home-method__card-icon {
    background: var(--hm-green-bg);
    color: var(--hm-green);
    box-shadow: inset 0 0 0 1px rgba(34, 197, 94, 0.2);
}
.home-method__card--teal .home-method__card-icon {
    background: var(--hm-teal-bg);
    color: var(--hm-teal);
    box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.2);
}
.home-method__card--blue .home-method__card-icon {
    background: var(--hm-blue-bg);
    color: var(--hm-blue);
    box-shadow: inset 0 0 0 1px rgba(89, 122, 175, 0.25);
}
.home-method__card--amber .home-method__card-icon {
    background: var(--hm-amber-bg);
    color: var(--hm-amber);
    box-shadow: inset 0 0 0 1px rgba(251, 146, 60, 0.25);
}
.home-method__card--pine .home-method__card-icon {
    background: var(--hm-pine-bg);
    color: var(--hm-pine);
    box-shadow: inset 0 0 0 1px rgba(21, 128, 61, 0.2);
}
.home-method__ico-svg {
    display: block;
}
.home-method__phase {
    display: block;
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-dark);
    font-family: var(--font-title);
}
.home-method__card--green .home-method__phase {
    color: var(--hm-green);
}
.home-method__card--teal .home-method__phase {
    color: var(--hm-teal);
}
.home-method__card--blue .home-method__phase {
    color: var(--hm-blue);
}
.home-method__card--amber .home-method__phase {
    color: var(--hm-amber);
}
.home-method__card--pine .home-method__phase {
    color: var(--hm-pine);
}
.home-method__step-kicker {
    font-size: clamp(13px, 1.4vw, 15px);
    font-weight: 800;
    margin: 0 0 10px;
    color: var(--color-dark);
    line-height: 1.25;
    font-family: var(--font-title);
}
.home-method__step-text {
    margin: 0 0 14px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--color-gray);
    flex: 1;
}
.home-method__deliver {
    margin-top: auto;
    width: 100%;
    padding-top: 12px;
    border-top: 1px solid rgba(226, 232, 240, 0.95);
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.home-method__deliver-check {
    flex-shrink: 0;
    margin-top: 1px;
    color: var(--color-secondary);
}
.home-method__deliver-text {
    font-size: 11.5px;
    line-height: 1.45;
    font-weight: 600;
    color: #475569;
}
.home-method__deliver-label {
    font-weight: 800;
    color: var(--color-dark);
}
.home-method__mob-num {
    display: none;
}

/* Barre de valeur */
.home-method__value-bar {
    margin-top: 28px;
    padding: 20px 22px;
    border-radius: 16px;
    background: linear-gradient(180deg, #f1f5f9 0%, #f8fafc 100%);
    border: 1px solid rgba(208, 216, 228, 0.85);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px 20px;
    align-items: start;
}
.home-method__value-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.home-method__value-ico-wrap {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
    color: var(--color-secondary);
}
.home-method__bar-ico {
    display: block;
}
.home-method__value-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600;
    color: #475569;
}

@media (max-width: 1100px) {
    .home-method__cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 960px) {
    .home-method__timeline {
        overflow-x: auto;
        padding-bottom: 8px;
        margin-left: -12px;
        margin-right: -12px;
        padding-left: 12px;
        padding-right: 12px;
        -webkit-overflow-scrolling: touch;
    }
    .home-method__timeline-lines {
        left: 12%;
        right: 12%;
    }
    .home-method__node {
        min-width: 72px;
    }
    .home-method__cards {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .home-method__card {
        padding: 18px 18px 18px 78px;
    }
    .home-method__mob-num {
        display: flex;
        position: absolute;
        left: 16px;
        top: 20px;
        width: 46px;
        height: 46px;
        border-radius: 50%;
        align-items: center;
        justify-content: center;
        font-family: var(--font-title);
        font-size: 13px;
        font-weight: 800;
        color: var(--color-dark);
        background: #fff;
        border: 3px solid var(--color-secondary);
        box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
    }
    .home-method__value-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 540px) {
    .home-method__macro {
        flex-direction: column;
        gap: 6px;
        padding: 14px 16px;
    }
    .home-method__macro-arrow {
        transform: rotate(90deg);
    }
    .home-method__value-bar {
        grid-template-columns: 1fr;
    }
}

/* Offres / packs — accueil (vitrique, non catalogue) */
.home-offers {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #f8fafc 0%, var(--color-white) 55%);
}
.home-offers__intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 40px;
}
.home-offers__tag {
    display: inline-block;
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-secondary-dark);
    font-family: var(--font-subtitle);
}
.home-offers__title {
    margin: 0 0 14px;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.home-offers__lead {
    margin: 0;
    font-size: 17px;
    line-height: 1.65;
    color: var(--color-gray);
}
.home-offers__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    align-items: stretch;
}
@media (max-width: 960px) {
    .home-offers__grid {
        grid-template-columns: 1fr;
        max-width: 520px;
        margin: 0 auto;
    }
}
.home-offers__card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 100%;
    padding: 28px 26px 26px;
    border-radius: 18px;
    border: 1px solid var(--color-border);
    background: var(--color-white);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 8px 32px rgba(15, 23, 42, 0.06);
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.home-offers__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(89, 122, 175, 0.18);
    border-color: rgba(89, 122, 175, 0.35);
}
.home-offers__card--sig {
    border-width: 2px;
    border-color: rgba(40, 153, 81, 0.45);
    background: linear-gradient(165deg, #f0fdf6 0%, #ffffff 55%);
    box-shadow:
        0 8px 32px rgba(40, 153, 81, 0.12),
        0 0 0 1px rgba(40, 153, 81, 0.08);
}
.home-offers__card--sig:hover {
    border-color: var(--color-secondary);
    box-shadow: 0 20px 48px rgba(40, 153, 81, 0.2);
}
.home-offers__ribbon {
    display: inline-block;
    margin-bottom: 14px;
    padding: 5px 12px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #0f2918;
    background: linear-gradient(135deg, #c8e6d4 0%, #a3cbce 100%);
    border-radius: 999px;
    font-family: var(--font-subtitle);
}
.home-offers__name {
    margin: 0 0 12px;
    font-family: var(--font-title);
    font-size: clamp(1.2rem, 2.2vw, 1.45rem);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
}
.home-offers__pitch {
    margin: 0 0 22px;
    flex: 1;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-gray);
}
.home-offers__cta {
    font-size: 14px;
    font-weight: 800;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
    margin-top: auto;
}
.home-offers__card:hover .home-offers__cta {
    text-decoration: underline;
}
.home-offers__more {
    text-align: center;
    margin: 40px 0 0;
    font-size: 15px;
}
.home-offers__more a {
    font-weight: 700;
    color: var(--color-primary);
}
.home-offers__more a:hover {
    text-decoration: underline;
}

/* Parcours client — schéma Chaos → Maîtrise */
.home-journey {
    padding: 64px 0 76px;
    background: var(--color-white);
}
.home-journey__header {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 40px;
}
.home-journey__tag {
    display: inline-block;
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-family: var(--font-subtitle);
}
.home-journey__title {
    margin: 0 0 14px;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.home-journey__lead {
    margin: 0;
    font-size: 17px;
    line-height: 1.65;
    color: var(--color-gray);
}
.home-journey__visual {
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Ligne ondulée + pastilles numérotées (alignées sur les colonnes des cartes) */
.home-journey__timeline {
    position: relative;
    width: 100%;
    margin: 0 0 4px;
    padding: 0 clamp(4px, 1.5vw, 12px);
}
.home-journey__wave {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    max-height: 96px;
}
.home-journey__path {
    vector-effect: non-scaling-stroke;
}
.home-journey__orbs {
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    left: clamp(4px, 1.5vw, 12px);
    right: clamp(4px, 1.5vw, 12px);
    top: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: start;
    justify-items: center;
    pointer-events: none;
    padding-top: 18px;
}
.home-journey__orb-slot {
    display: flex;
    justify-content: center;
}
.home-journey__orb {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-white);
    border: 3px solid var(--color-white);
    box-shadow: 0 0 0 2px rgba(89, 122, 175, 0.25), 0 8px 20px rgba(15, 23, 42, 0.12);
}
.home-journey__orb-slot--1 .home-journey__orb {
    box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.45), 0 8px 20px rgba(249, 115, 22, 0.15);
}
.home-journey__orb-slot--5 .home-journey__orb {
    box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.45), 0 8px 24px rgba(5, 150, 105, 0.2);
}
.home-journey__orb-num {
    font-family: var(--font-title);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-primary-dark);
    line-height: 1;
}
.home-journey__orb-slot--1 .home-journey__orb-num {
    color: #c2410c;
}
.home-journey__orb-slot--5 .home-journey__orb-num {
    color: #047857;
}

.home-journey__steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px 8px;
    position: relative;
    align-items: stretch;
}
/* Barre plate remplacée par la vague SVG (évite doublon visuel) */
.home-journey__steps::before {
    display: none;
}
.home-journey__step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: 0;
    min-height: 0;
    height: 100%;
}
.home-journey__orb-inner {
    font-family: var(--font-title);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-primary-dark);
}
.home-journey__step--1 .home-journey__orb-inner {
    color: #c2410c;
}
.home-journey__step--5 .home-journey__orb-inner {
    color: #047857;
}
.home-journey__card {
    flex: 1 1 auto;
    width: 100%;
    min-height: 118px;
    height: 100%;
    padding: 16px 12px 18px;
    border-radius: 14px;
    background: #fafbfc;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
}
.home-journey__card-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #f1f5f9 0%, #e8eef6 100%);
    color: var(--color-primary-dark);
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.35);
}
.home-journey__ico-svg {
    display: block;
    width: 26px;
    height: 26px;
    max-width: 100%;
    flex-shrink: 0;
}
.home-journey__card-title {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(15px, 1.55vw, 17px);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.home-journey__card-text {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--color-gray);
    flex: 1;
}
.home-journey__card-tag {
    margin-top: auto;
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 7px 8px;
    border-radius: 10px;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.35;
}
.home-journey__card-tag--positive {
    background: rgba(40, 153, 81, 0.1);
    color: #166534;
    border: 1px solid rgba(40, 153, 81, 0.22);
}
.home-journey__card-tag--warning {
    background: rgba(234, 88, 12, 0.1);
    color: #9a3412;
    border: 1px solid rgba(234, 88, 12, 0.22);
}
.home-journey__tag-ico {
    display: inline-flex;
    flex-shrink: 0;
}
.home-journey__tag-ico svg {
    display: block;
    width: 16px;
    height: 16px;
    max-width: 100%;
}
.home-journey__tag-ico--warn svg {
    width: 18px;
    height: 18px;
}
.home-journey__tag-copy {
    text-align: center;
}

.home-journey__label {
    font-family: var(--font-title);
    font-size: clamp(15px, 1.6vw, 17px);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
}
.home-journey__hint {
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--color-gray);
}

/* Barre d’engagements — SVG sans width/height dans le partial */
.home-journey__promises {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(226, 232, 240, 0.95);
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px 10px;
    align-items: start;
}
.home-journey__promise {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    min-width: 0;
}
.home-journey__promise-ico {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #f8fafc;
    color: var(--color-primary-dark);
    border: 1px solid rgba(203, 213, 225, 0.85);
}
.home-journey__promise-ico svg {
    display: block;
    width: 22px;
    height: 22px;
    max-width: 100%;
    flex-shrink: 0;
}
.home-journey__promise-text {
    margin: 0;
    font-size: 12px;
    line-height: 1.45;
    color: #475569;
}
.home-journey__promise-text strong {
    color: var(--color-dark);
    font-weight: 800;
}

@media (max-width: 900px) {
    .home-journey__timeline {
        margin-bottom: 8px;
    }
    .home-journey__orbs {
        padding-top: 12px;
    }
    .home-journey__orb {
        width: 40px;
        height: 40px;
    }
    .home-journey__orb-num {
        font-size: 12px;
    }
    .home-journey__steps {
        grid-template-columns: 1fr;
        gap: 12px;
        padding-left: 0;
    }
    .home-journey__step {
        align-items: stretch;
        text-align: left;
    }
    .home-journey__card {
        align-items: flex-start;
        text-align: left;
        min-height: 0;
        padding: 14px 16px;
    }
    .home-journey__card-icon {
        margin: 0 0 4px;
    }
    .home-journey__card-tag {
        justify-content: flex-start;
    }
    .home-journey__tag-copy {
        text-align: left;
    }
    .home-journey__promises {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .home-journey__promise {
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
        gap: 12px;
    }
    .home-journey__promise-text {
        font-size: 13px;
    }

    /* Accueil — cartes parcours (Chaos → Maîtrise) : tout centré en colonne mobile */
    .page-home .home-journey__step {
        align-items: center;
        text-align: center;
    }

    .page-home .home-journey__card {
        align-items: center;
        text-align: center;
    }

    .page-home .home-journey__card-title,
    .page-home .home-journey__card-text {
        text-align: center;
        width: 100%;
    }

    .page-home .home-journey__card-tag {
        justify-content: center;
    }

    .page-home .home-journey__tag-copy {
        text-align: center;
    }
}

.home-split {
    background: #f8fafc;
    padding-top: 64px;
    padding-bottom: 64px;
}
.home-partners {
    padding: 56px 0 36px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    overflow: hidden;
}
.home-partners__head {
    text-align: center;
    margin: 0 auto 26px;
}
.home-partners__tag {
    display: inline-block;
    margin: 0 0 10px;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.home-partners__title {
    margin: 0;
    color: var(--color-dark);
    font-size: clamp(1.55rem, 3vw, 2rem);
    font-weight: 800;
    letter-spacing: -0.02em;
}
.home-partners__carousel {
    position: relative;
    padding: 6px 0 28px;
    mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.home-partners__track {
    display: flex;
    width: max-content;
    gap: 18px;
    animation: home-partners-scroll 34s linear infinite;
}
.home-partners__carousel:hover .home-partners__track {
    animation-play-state: paused;
}
.home-partners__item {
    width: 260px;
    height: 144px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 28px;
    border: 1px solid rgba(208, 216, 228, 0.85);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
}
.home-partners__logo {
    display: block;
    max-width: 100%;
    max-height: 96px;
    width: auto;
    height: auto;
    object-fit: contain;
}
@keyframes home-partners-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(calc(-50% - 9px)); }
}
@media (prefers-reduced-motion: reduce) {
    .home-partners__track {
        animation: none;
        flex-wrap: wrap;
        justify-content: center;
        width: auto;
    }
}
.home-split__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: stretch;
}
@media (max-width: 900px) {
    .home-split__grid { grid-template-columns: 1fr; }
}
.home-split__panel {
    border-radius: var(--radius-lg);
    padding: 32px;
    display: flex;
    flex-direction: column;
}
.home-split__panel--lab {
    background: linear-gradient(155deg, #0f1f38 0%, #1a3a62 100%);
    color: #e8edf5;
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.home-split__panel--blog {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
}
.home-split__tag {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
    margin: 0 0 10px;
}
.home-split__panel--blog .home-split__tag {
    color: var(--color-primary);
}
.home-split__title {
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0 0 14px;
    color: #fff;
    line-height: 1.2;
}
.home-split__panel--blog .home-split__title {
    color: var(--color-dark);
}
.home-split__title--sm {
    font-size: 1.35rem;
    margin-bottom: 0;
}
.home-split__text {
    font-size: 15px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 0 22px;
    flex: 1;
}
.home-split__btn {
    align-self: flex-start;
    border-color: rgba(255, 255, 255, 0.55) !important;
    color: #fff !important;
}
.home-split__btn:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
}
.home-split__blog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}
.home-split__all {
    flex-shrink: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.home-split__all:hover { text-decoration: underline; }

.home-blog-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.home-blog-list li {
    border-top: 1px solid var(--color-border);
}
.home-blog-list li:first-child { border-top: none; }
.home-blog-list__link {
    display: block;
    padding: 14px 0;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s;
    margin: 0 -8px;
    padding-left: 8px;
    padding-right: 8px;
    border-radius: var(--radius-sm);
}
.home-blog-list__link:hover {
    background: var(--color-light-gray);
}
.home-blog-list__title {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.35;
    margin-bottom: 4px;
}
.home-blog-list__meta {
    font-size: 12px;
    color: var(--color-gray);
}
.home-blog-list__empty {
    font-size: 14px;
    color: var(--color-gray);
    margin: 0;
    line-height: 1.5;
}

.home-final-cta.sp-cta-final {
    margin-bottom: 0;
}

/* ══════════════════════════════════════════════
   RETOURS CLIENT (DEV_NOTES / bouton mode retours)
   ══════════════════════════════════════════════ */
.dev-fb-toggle {
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 10070;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-subtitle);
    color: var(--color-dark);
    background: #fff;
    border: 2px solid var(--color-border);
    border-radius: 999px;
    box-shadow: var(--shadow-md);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
body.dev-fb-armed .dev-fb-toggle {
    top: 46px;
}
.dev-fb-toggle:hover {
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
}
.dev-fb-toggle--active {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.12);
    color: #1d7a40;
}
.dev-fb-toggle__ico {
    display: flex;
    color: inherit;
}
.dev-fb-armed-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10065;
    padding: 10px 120px 10px 16px;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    color: #1d5c33;
    background: rgba(40, 153, 81, 0.18);
    border-bottom: 1px solid rgba(40, 153, 81, 0.35);
    font-family: var(--font-subtitle);
}
@media (max-width: 520px) {
    .dev-fb-armed-banner {
        padding-right: 16px;
        font-size: 12px;
    }
}
body.dev-fb-armed {
    padding-top: 42px;
}
body.dev-fb-open {
    overflow: hidden;
}
.dev-fb-root {
    position: fixed;
    inset: 0;
    z-index: 10060;
}
.dev-fb-root[hidden] {
    display: none !important;
}
.dev-fb-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
}
.dev-fb-panel {
    position: absolute;
    width: min(100% - 24px, 420px);
    max-height: min(90vh, 520px);
    overflow: auto;
    background: #fff;
    border-radius: var(--radius-md);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.2);
    border: 1px solid var(--color-border);
    padding: 0;
}
.dev-fb-form {
    padding: 20px;
}
.dev-fb-form h2 {
    font-size: 1.15rem;
    margin: 0 0 8px;
    color: var(--color-dark);
}
.dev-fb-help {
    font-size: 13px;
    color: var(--color-gray);
    margin: 0 0 14px;
}
.dev-fb-label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 6px;
    font-family: var(--font-subtitle);
}
.dev-fb-input,
.dev-fb-textarea {
    width: 100%;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    font-size: 14px;
    margin-bottom: 12px;
    font-family: var(--font-body);
}
.dev-fb-input--url {
    font-size: 12px;
    color: var(--color-gray);
    background: var(--color-light-gray);
}
.dev-fb-textarea {
    min-height: 120px;
    resize: vertical;
}
.dev-fb-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 8px;
}
.dev-fb-status {
    font-size: 13px;
    margin: 12px 0 0;
    min-height: 1.2em;
    color: var(--color-secondary-dark);
    font-weight: 600;
}
.dev-fb-foot {
    margin: 14px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
    font-size: 13px;
}
.dev-fb-foot a {
    font-weight: 700;
    color: var(--color-primary);
}

.dev-feedback-page {
    padding: 40px 0 72px;
}
.dev-feedback-page__title {
    font-size: 1.65rem;
    margin: 0 0 12px;
}
.dev-feedback-page__intro,
.dev-feedback-page__hint-clear {
    font-size: 15px;
    color: var(--color-gray);
    max-width: 720px;
    line-height: 1.55;
    margin: 0 0 20px;
}
.dev-feedback-page__intro code,
.dev-feedback-page__hint-clear code {
    font-size: 0.9em;
}
.dev-feedback-page__alert {
    padding: 12px 14px;
    border-radius: var(--radius-sm);
    margin: 0 0 20px;
    font-size: 14px;
}
.dev-feedback-page__alert--ok {
    background: rgba(40, 153, 81, 0.1);
    color: #1d6b3a;
}
.dev-feedback-page__alert--err {
    background: rgba(185, 28, 28, 0.08);
    color: #991b1b;
}
.dev-feedback-page__empty {
    color: var(--color-gray);
    padding: 24px;
    background: var(--color-light-gray);
    border-radius: var(--radius-md);
}
.dev-feedback-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.dev-feedback-item {
    padding: 18px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: #fff;
}
.dev-feedback-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    align-items: baseline;
    margin-bottom: 10px;
    font-size: 12px;
    color: var(--color-gray);
}
.dev-feedback-item__meta time {
    font-weight: 600;
}
.dev-feedback-item__url {
    font-size: 12px;
    word-break: break-all;
    color: var(--color-primary);
}
.dev-feedback-item__msg {
    margin: 0;
    white-space: pre-wrap;
    font-size: 15px;
    line-height: 1.55;
}
.dev-feedback-clear {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: flex-end;
}
.dev-feedback-clear__label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
}
.dev-feedback-clear__label input {
    min-width: 260px;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
}
.dev-feedback-page__back {
    margin-top: 32px;
}
.dev-feedback-page__back a {
    font-weight: 700;
    color: var(--color-primary);
}

/* =============================================
   Laboratoire — page projet (/lab/:slug)
   ============================================= */
.container.container--narrow {
    max-width: 720px;
}
.lab-proj-hero {
    padding: 40px 0 52px;
}
.lab-proj-hero--accent-orange {
    background: linear-gradient(165deg, #fff8f4 0%, #fff 50%);
}
.lab-proj-hero--accent-blue {
    background: linear-gradient(165deg, #f4f7fc 0%, #fff 50%);
}
.lab-proj-hero--accent-purple {
    background: linear-gradient(165deg, #f8f5fc 0%, #fff 50%);
}
.lab-proj-hero--accent-green {
    background: linear-gradient(165deg, #f4fbf7 0%, #fff 50%);
}
.lab-proj-hero__inner {
    max-width: 800px;
}
.lab-proj-breadcrumb {
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 16px;
    font-family: var(--font-subtitle);
}
.lab-proj-breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
}
.lab-proj-breadcrumb a:hover {
    text-decoration: underline;
}
.lab-proj-breadcrumb__sep {
    margin: 0 8px;
    color: var(--color-gray);
}
.lab-proj-hero__eyebrow {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
}
.lab-proj-hero__title {
    font-size: clamp(1.75rem, 4vw, 2.35rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 12px;
    line-height: 1.15;
    font-family: var(--font-title);
}
.lab-proj-hero__meta {
    margin: 0 0 18px;
}
.lab-proj-hero__value {
    font-size: clamp(1.05rem, 2vw, 1.2rem);
    line-height: 1.55;
    color: var(--color-dark);
    margin: 0 0 24px;
    max-width: 640px;
}
.lab-proj-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.lab-proj-section {
    scroll-margin-top: 72px;
}
.lab-proj-section-title {
    font-size: clamp(1.35rem, 2.5vw, 1.65rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 16px;
    font-family: var(--font-title);
}
.lab-proj-section-title--center {
    text-align: center;
}
.lab-proj-section-lead {
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-gray);
    margin: 0 auto 28px;
    max-width: 640px;
    text-align: center;
}
.lab-proj-section-lead--left {
    margin-left: 0;
    text-align: left;
    max-width: 720px;
}
.lab-proj-prosol {
    display: flex;
    flex-direction: column;
    gap: 22px;
    margin-bottom: 32px;
}
.lab-proj-prosol__block {
    padding: 20px 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
}
.lab-proj-prosol__block--solution {
    border-color: rgba(40, 153, 81, 0.35);
    background: rgba(40, 153, 81, 0.06);
}
.lab-proj-prosol__label {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-primary-dark);
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
}
.lab-proj-prosol__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-dark);
}
.lab-proj-pillars {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
@media (max-width: 900px) {
    .lab-proj-pillars {
        grid-template-columns: 1fr;
    }
}
.lab-proj-pillars__item {
    padding: 18px;
    border-radius: var(--radius-md);
    background: var(--color-light-gray);
    border: 1px solid var(--color-border);
}
.lab-proj-pillars__label {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--color-secondary-dark);
    margin-bottom: 8px;
    font-family: var(--font-subtitle);
}
.lab-proj-pillars__text {
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}
.lab-proj-features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
.lab-proj-features__item {
    padding: 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
}
.lab-proj-features__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.lab-proj-features__title {
    font-size: 17px;
    font-weight: 800;
    margin: 0;
    color: var(--color-dark);
}
.lab-proj-features__badge {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 6px;
    font-family: var(--font-subtitle);
}
.lab-proj-features__badge--live {
    background: rgba(40, 153, 81, 0.14);
    color: #1d7a40;
}
.lab-proj-features__badge--wip {
    background: rgba(224, 112, 64, 0.14);
    color: #c45d28;
}
.lab-proj-features__badge--planned {
    background: rgba(89, 122, 175, 0.14);
    color: var(--color-primary-dark);
}
.lab-proj-features__desc {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}
.lab-proj-features__note {
    margin: 24px auto 0;
    max-width: 720px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
    font-style: italic;
    text-align: center;
}
.lab-proj-demo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    align-items: start;
}
.lab-proj-demo__figure {
    margin: 0;
}
.lab-proj-demo__img-wrap,
.lab-proj-demo__video-wrap {
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: var(--color-light-gray);
    box-shadow: var(--shadow-sm);
}
.lab-proj-demo__img {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: middle;
}
.lab-proj-demo__iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
}
.lab-proj-demo__caption {
    margin-top: 10px;
    font-size: 13px;
    color: var(--color-gray);
}
.lab-proj-progress-card {
    padding: 28px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.lab-proj-progress-bar {
    margin-bottom: 28px;
}
.lab-proj-roadmap-title {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 14px;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}
.lab-proj-roadmap {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.lab-proj-roadmap__item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 15px;
    line-height: 1.45;
    color: var(--color-dark);
}
.lab-proj-roadmap__item--done .lab-proj-roadmap__ico {
    color: var(--color-secondary);
}
.lab-proj-roadmap__item--current .lab-proj-roadmap__ico {
    color: #e07040;
}
.lab-proj-roadmap__item--upcoming .lab-proj-roadmap__ico {
    color: var(--color-primary);
}
.lab-proj-roadmap__item--locked .lab-proj-roadmap__ico {
    color: var(--color-gray);
}
.lab-proj-roadmap__ico {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}
.lab-proj-usecases {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
@media (max-width: 900px) {
    .lab-proj-usecases {
        grid-template-columns: 1fr;
    }
}
.lab-proj-usecases__item {
    padding: 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
}
.lab-proj-usecases__who {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--color-primary-dark);
    margin-bottom: 8px;
    font-family: var(--font-subtitle);
}
.lab-proj-usecases__ctx {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}
.lab-proj-access {
    padding: 48px 0;
    background: linear-gradient(135deg, rgba(89, 122, 175, 0.1) 0%, rgba(40, 153, 81, 0.08) 100%);
}
.lab-proj-access__inner {
    text-align: center;
}
.lab-proj-access__title {
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: 800;
    margin: 0 0 22px;
    color: var(--color-dark);
}
.lab-proj-access__row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    align-items: center;
}
.lab-proj-feedback-block .lab-proj-section-lead {
    margin-bottom: 20px;
}
.lab-proj-feedback-actions {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 16px 28px;
}
.lab-proj-feedback-link {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-secondary-dark);
    font-family: var(--font-subtitle);
    text-decoration: none;
}
.lab-proj-feedback-link:hover {
    text-decoration: underline;
    color: var(--color-secondary);
}
.lab-proj-page-crumb {
    padding-bottom: 48px;
}

/* Laboratoire — pages bêta (compléments) */
.lab-proj-alert {
    padding: 14px 20px;
    border-radius: var(--radius-md);
    margin-top: 20px;
    margin-bottom: 0;
}
.lab-proj-alert + .lab-proj-hero {
    margin-top: 8px;
}
.lab-proj-alert--ok {
    background: rgba(40, 153, 81, 0.12);
    border: 1px solid rgba(40, 153, 81, 0.35);
}
.lab-proj-alert__text {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: #1d5c33;
}
.lab-proj-beta-disclaimer {
    padding-top: 40px;
}
.lab-proj-beta-warn {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 20px 22px;
    border-radius: var(--radius-md);
    border: 1px solid rgba(224, 112, 64, 0.35);
    background: rgba(224, 112, 64, 0.08);
}
.lab-proj-beta-warn__ico {
    font-size: 1.5rem;
    line-height: 1;
    flex-shrink: 0;
}
.lab-proj-beta-warn__title {
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0 0 8px;
    color: var(--color-dark);
}
.lab-proj-beta-warn__body {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-dark);
}
.lab-proj-beta-access-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
@media (max-width: 900px) {
    .lab-proj-beta-access-list {
        grid-template-columns: 1fr;
    }
}
.lab-proj-beta-access-card {
    padding: 20px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.lab-proj-beta-access-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 800;
    color: var(--color-primary-dark);
    text-decoration: none;
    font-family: var(--font-subtitle);
}
.lab-proj-beta-access-card__link:hover {
    text-decoration: underline;
}
.lab-proj-beta-access-card__ext {
    font-size: 14px;
    opacity: 0.75;
}
.lab-proj-beta-access-card__hint {
    margin: 10px 0 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--color-gray);
}
.lab-proj-beta-feedback-form {
    margin-top: 8px;
}
.lab-proj-beta-feedback-form__row {
    margin-bottom: 0;
}
.lab-proj-beta-feedback-form__row--2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
@media (max-width: 500px) {
    .lab-proj-beta-feedback-form__row--2 {
        grid-template-columns: 1fr;
    }
}
.lab-proj-beta-feedback-form .lab-field select {
    width: 100%;
    padding: 11px 14px;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--color-border);
    font-size: 15px;
    font-family: var(--font-body);
    background: var(--color-white);
    transition: border-color 0.2s;
}
.lab-proj-beta-feedback-form .lab-field select:focus {
    outline: none;
    border-color: var(--color-primary);
}
.lab-field__optional {
    font-weight: 500;
    color: var(--color-gray);
}
.lab-proj-beta-feedback-form__submit {
    margin-top: 8px;
    width: 100%;
    justify-content: center;
}
.lab-proj-beta-feedback-more {
    margin: 28px 0 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-gray);
}
.lab-proj-feedback-actions--compact {
    gap: 10px 20px;
}
.lab-proj-changelog {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.lab-proj-changelog__release {
    padding: 20px 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
}
.lab-proj-changelog__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px 16px;
    margin-bottom: 12px;
}
.lab-proj-changelog__ver {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-primary-dark);
    font-family: var(--font-title);
}
.lab-proj-changelog__date {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-gray);
}
.lab-proj-changelog__list {
    margin: 0;
    padding-left: 1.2rem;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-dark);
}
.lab-proj-changelog__list li {
    margin-bottom: 6px;
}
.lab-proj-community-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}
.lab-proj-community-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px 16px;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
}
.lab-proj-community-item__link {
    font-weight: 700;
    color: var(--color-primary-dark);
    text-decoration: none;
    font-family: var(--font-subtitle);
}
.lab-proj-community-item__link:hover {
    text-decoration: underline;
}
.lab-proj-community-item__hint {
    font-size: 13px;
    color: var(--color-gray);
    width: 100%;
    margin-left: 0;
}
#lab-beta-access,
#lab-beta-feedback {
    scroll-margin-top: 88px;
}

/* Laboratoire — pages idée / concept */
.lab-idea-prose {
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-dark);
}
.lab-idea-concept-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 8px;
}
@media (max-width: 720px) {
    .lab-idea-concept-grid {
        grid-template-columns: 1fr;
    }
}
.lab-idea-concept-card {
    padding: 20px 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
}
.lab-idea-concept-card__label {
    display: block;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-secondary-dark);
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
}
.lab-idea-mockup .lab-proj-section-lead--left {
    margin-bottom: 20px;
}
.lab-idea-value-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
@media (max-width: 900px) {
    .lab-idea-value-grid {
        grid-template-columns: 1fr;
    }
}
.lab-idea-value-card {
    padding: 22px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.lab-idea-value-card__label {
    display: block;
    font-size: 15px;
    font-weight: 800;
    color: var(--color-primary-dark);
    margin-bottom: 10px;
    font-family: var(--font-subtitle);
}
.lab-idea-value-card__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}
.lab-idea-validation {
    border-top: 1px solid var(--color-border);
}
.lab-idea-form__fieldset {
    border: none;
    padding: 0;
    margin: 0 0 28px;
}
.lab-idea-form__legend {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-dark);
    margin-bottom: 14px;
    padding: 0;
    font-family: var(--font-title);
}
.lab-idea-form .lab-field select,
.lab-idea-form .lab-idea-form__select {
    width: 100%;
    padding: 11px 14px;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--color-border);
    font-size: 15px;
    font-family: var(--font-body);
    background: var(--color-white);
}
.lab-idea-form .lab-field select:focus {
    outline: none;
    border-color: var(--color-primary);
}
.lab-idea-form__vote-hint {
    margin: 0 0 14px;
    font-size: 14px;
    color: var(--color-gray);
}
.lab-idea-vote {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.lab-idea-vote__opt {
    flex: 1 1 140px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px 14px;
    border-radius: var(--radius-md);
    border: 2px solid var(--color-border);
    background: var(--color-white);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.lab-idea-vote__opt:has(input:checked) {
    border-color: var(--color-primary);
    background: rgba(89, 122, 175, 0.08);
}
.lab-idea-vote__opt:focus-within {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
.lab-idea-vote__face {
    font-size: 1.75rem;
    line-height: 1;
}
.lab-idea-vote__txt {
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}
.lab-idea-form__row {
    display: grid;
    gap: 14px;
}
.lab-idea-form__row--2 {
    grid-template-columns: 1fr 1fr;
}
@media (max-width: 500px) {
    .lab-idea-form__row--2 {
        grid-template-columns: 1fr;
    }
}
.lab-idea-form__row--3 {
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 700px) {
    .lab-idea-form__row--3 {
        grid-template-columns: 1fr;
    }
}
.lab-idea-form__checks {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 8px 0 16px;
}
.lab-check--inline {
    align-items: flex-start;
}
.lab-idea-form__submit {
    width: 100%;
    justify-content: center;
    margin-top: 8px;
}
#lab-idea-validation,
#lab-idea-mock-title {
    scroll-margin-top: 88px;
}

/* ——— Actions rapides : rail droit + retour en haut (z-index sous dev-fb ~10070) ——— */
.qa-rail {
    position: fixed;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 10050;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    pointer-events: none;
}
.qa-rail__btn {
    --qa-h: 56px;
    --qa-w: 56px;
    --qa-w-open: min(280px, calc(100vw - 20px));
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: flex-end;
    width: var(--qa-w);
    min-height: var(--qa-h);
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: -2px 2px 12px rgba(0, 0, 0, 0.12);
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    pointer-events: auto;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    font-family: var(--font-subtitle, system-ui, sans-serif);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-align: right;
}
.qa-rail__btn:hover,
.qa-rail__btn:focus-visible {
    width: var(--qa-w-open);
    outline: none;
}
.qa-rail__label {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 10px 0 14px;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    flex: 0 1 auto;
    max-width: 0;
    opacity: 0;
    transition: opacity 0.2s ease, max-width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.qa-rail__btn:hover .qa-rail__label,
.qa-rail__btn:focus-visible .qa-rail__label {
    max-width: 220px;
    opacity: 1;
}
.qa-rail__ico-wrap {
    flex: 0 0 var(--qa-h);
    width: var(--qa-h);
    min-width: var(--qa-h);
    display: flex;
    align-items: center;
    justify-content: center;
}
.qa-rail__ico {
    display: block;
}
/* Hub : vert forêt, picto blanc */
.qa-rail__btn--hub {
    background: #1a4d2e;
    color: #fff;
}
.qa-rail__btn--hub .qa-rail__label {
    color: #fff;
}
/* Devis : crème, picto sombre + léger « saut » */
.qa-rail__btn--quote {
    background: #f0e6c8;
    color: #1a1a1a;
}
.qa-rail__btn--quote .qa-rail__label {
    color: #1a1a1a;
}
.qa-rail__btn--quote .qa-rail__ico-wrap {
    animation: qa-rail-bounce 2.2s ease-in-out infinite;
}
@keyframes qa-rail-bounce {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-5px);
    }
}
@media (prefers-reduced-motion: reduce) {
    .qa-rail__btn {
        transition: none;
    }
    .qa-rail__label {
        transition: none;
    }
    .qa-rail__btn--quote .qa-rail__ico-wrap {
        animation: none;
    }
}
.qa-back-top {
    position: fixed;
    bottom: 22px;
    right: 68px;
    z-index: 10050;
    width: 46px;
    height: 46px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--radius-sm, 8px);
    background: var(--color-dark, #1a1a1a);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    transition: transform 0.15s ease, background 0.15s ease;
}
.qa-back-top:hover,
.qa-back-top:focus-visible {
    background: var(--color-primary, #597aaf);
    outline: 2px solid var(--color-primary, #597aaf);
    outline-offset: 2px;
    transform: translateY(-2px);
}
.qa-back-top[hidden] {
    display: none !important;
}
@media (max-width: 600px) {
    .qa-rail__btn:hover,
    .qa-rail__btn:focus-visible {
        width: min(260px, calc(100vw - 16px));
    }
    .qa-back-top {
        right: max(68px, env(safe-area-inset-right, 0px));
        bottom: max(22px, env(safe-area-inset-bottom, 0px));
    }
}

/* ══════════════════════════════════════════════
   Page d’accueil — profondeur, storytelling, relief « premium »
   (wrapper .page-home dans templates/pages/home.twig)
   ══════════════════════════════════════════════ */
.page-home {
    --home-elevate: 0 20px 50px rgba(15, 23, 42, 0.09);
    --home-elevate-hover: 0 28px 60px rgba(89, 122, 175, 0.14);
    --home-inset-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.92);
    width: 100%;
    min-width: 0;
}

/* Hero — relief & hiérarchie */
.page-home .hero-search {
    position: relative;
}
.page-home .hero-search::after {
    content: "";
    pointer-events: none;
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 80% 50% at 50% 100%, rgba(89, 122, 175, 0.07), transparent 55%);
}
.page-home .hero-search__stats {
    box-shadow: var(--home-elevate), var(--home-inset-highlight);
    border-color: rgba(208, 216, 228, 0.95);
}
.page-home .search-field {
    box-shadow: 0 12px 40px rgba(89, 122, 175, 0.18);
    border-color: rgba(208, 216, 228, 0.95);
}
.page-home .hero-search__title {
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
}

/* Problème client — avant / après + cartes différenciées */
/* Pourquoi Complianz — piliers en « système » (alternance sans répéter la même carte) */
.page-home .home-pillar:nth-child(1) {
    border-left: 4px solid var(--color-primary);
    background: linear-gradient(90deg, rgba(237, 241, 248, 0.65) 0%, #fff 38%);
}
.page-home .home-pillar:nth-child(2) {
    border-left: 4px solid var(--color-secondary);
    background: linear-gradient(90deg, rgba(232, 245, 238, 0.55) 0%, #fff 38%);
}
.page-home .home-pillar:nth-child(3) {
    border-left: 4px solid var(--color-accent-dark);
    background: linear-gradient(90deg, rgba(248, 241, 233, 0.55) 0%, #fff 38%);
}

/* Pôles — halo discret sur le bloc sombre */
.page-home .home-poles__dark {
    box-shadow:
        0 4px 6px rgba(15, 23, 42, 0.35),
        0 28px 56px rgba(15, 23, 42, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 0 0 1px rgba(148, 163, 184, 0.15);
}

/* Méthode — carte premium */
.page-home .home-method__card {
    background: var(--color-white);
    border-color: rgba(226, 232, 240, 0.98);
    box-shadow: 0 4px 22px rgba(15, 23, 42, 0.05);
}
.page-home .home-method__macro {
    background: var(--color-white);
    border-color: rgba(208, 216, 228, 0.95);
}

/* Offres — bordure dégradée au survol + relief */
.page-home .home-offers__card {
    position: relative;
    overflow: hidden;
}
.page-home .home-offers__card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, rgba(89, 122, 175, 0.35), rgba(40, 153, 81, 0.25));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
}
.page-home .home-offers__card:hover::before {
    opacity: 1;
}
.page-home .home-offers__card:hover {
    box-shadow: var(--home-elevate-hover);
}

/* Parcours client — cartes plus premium */
.page-home .home-journey__card {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 32px rgba(15, 23, 42, 0.07);
}
/* .home-journey__steps::before désactivé — ligne portée par .home-journey__wave */

.page-home .home-cs {
    background: linear-gradient(180deg, #ffffff 0%, #f6f8fc 100%);
}

/* Bandeau « pas une agence » sous chaos → système */
.home-approach-strip {
    padding: 8px 0 44px;
    background: linear-gradient(180deg, #f6f8fc 0%, #ffffff 55%);
}
.home-approach-strip__card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 22px 28px;
    padding: 20px 26px;
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    box-shadow: 0 10px 36px rgba(15, 23, 42, 0.07);
}
.home-approach-strip__icon-wrap {
    position: relative;
    flex-shrink: 0;
    width: 72px;
    height: 78px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.home-approach-strip__hex {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.home-approach-strip__cubes {
    position: relative;
    z-index: 1;
}
.home-approach-strip__hook {
    flex-shrink: 0;
    max-width: min(300px, 34vw);
}
.home-approach-strip__title {
    margin: 0;
    font-size: clamp(1rem, 1.45vw, 1.18rem);
    font-weight: 800;
    line-height: 1.28;
    font-family: var(--font-title);
    letter-spacing: -0.02em;
}
.home-approach-strip__title-dark {
    display: block;
    color: var(--color-dark);
}
.home-approach-strip__title-accent {
    display: block;
    color: #15803d;
    margin-top: 5px;
}
.home-approach-strip__rule {
    flex-shrink: 0;
    width: 1px;
    align-self: stretch;
    min-height: 56px;
    background: rgba(203, 213, 225, 0.95);
}
.home-approach-strip__body {
    margin: 0;
    flex: 1;
    min-width: 160px;
    font-size: 15px;
    line-height: 1.58;
    color: #475569;
}
.home-approach-strip__btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    font-weight: 700;
}
.home-approach-strip__chev {
    flex-shrink: 0;
    opacity: 0.95;
}
@media (max-width: 1100px) {
    .home-approach-strip__hook {
        max-width: 260px;
    }
}
@media (max-width: 900px) {
    .home-approach-strip {
        padding: 4px 0 36px;
    }
    .home-approach-strip__card {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
        gap: 18px;
        padding: 22px 20px;
    }
    .home-approach-strip__icon-wrap {
        margin: 0 auto;
    }
    .home-approach-strip__hook {
        max-width: none;
    }
    .home-approach-strip__rule {
        width: 100%;
        min-height: 0;
        height: 1px;
        align-self: center;
        max-width: 200px;
    }
    .home-approach-strip__body {
        text-align: left;
        min-width: 0;
    }
    .home-approach-strip__btn {
        justify-content: center;
        width: 100%;
    }
}

.page-home .home-journey {
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 60%);
}

.page-home .home-final-cta {
    box-shadow: none;
}

/* Accueil — mobile : cartes & bandeaux en pleine largeur (viewport) */
@media (max-width: 767px) {
    .page-home .container {
        padding-left: 0;
        padding-right: 0;
    }

    /* Hero & CTA final : garder une gouttière lisible */
    .page-home .hero-search .container.hero-search__inner,
    .page-home .home-final-cta .container.sp-cta-final__inner {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    /* Hero — chiffres clés : grille 2×2 centrée, sans traits ni colonnes « desktop » */
    .page-home .hero-search__stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 12px;
        padding: 16px 12px;
        flex-wrap: unset;
        justify-items: center;
        justify-content: stretch;
        align-items: start;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .page-home .hero-search__stats .stat-divider {
        display: none !important;
    }

    .page-home .hero-search__stats .stat-card {
        padding: 10px 8px;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        align-items: center;
        box-sizing: border-box;
    }

    .page-home .hero-search__stats .stat-number {
        font-size: clamp(1.35rem, 5vw, 1.65rem);
    }

    .page-home .hero-search__stats .stat-label {
        text-align: center;
        line-height: 1.35;
    }

    .page-home .home-problem__head,
    .page-home .home-problem__funnel {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    /* Section problème client — cartes : pleine largeur utile + tout centré */
    .page-home .home-problem__cards {
        width: 100%;
        max-width: none;
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
        box-sizing: border-box;
    }

    .page-home .home-problem__card {
        align-items: center;
        width: 100%;
        box-sizing: border-box;
    }

    .page-home .home-problem__card-head {
        justify-content: center;
        width: 100%;
    }

    .page-home .home-problem__card-title,
    .page-home .home-problem__card-text {
        text-align: center;
        max-width: 100%;
    }

    .page-home .home-problem__impact {
        width: 100%;
        text-align: center;
        align-self: stretch;
    }

    .page-home .home-problem__impact-inner {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        gap: 6px;
        width: 100%;
        box-sizing: border-box;
        text-align: center;
    }

    .page-home .home-problem__resolution {
        border-radius: 0;
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    .page-home .home-cs .container.home-cs__shell {
        padding-left: max(8px, env(safe-area-inset-left, 0px));
        padding-right: max(8px, env(safe-area-inset-right, 0px));
    }

    .page-home .home-poles__page-head {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    .page-home .home-poles__dark {
        border-radius: 0;
    }

    .page-home .home-poles__eco-stage {
        padding-left: 0;
        padding-right: 0;
        border-radius: 0;
        border-left: none;
        border-right: none;
        box-shadow: 0 12px 40px rgba(15, 23, 42, 0.06);
    }

    .page-home .home-poles__eco-tag,
    .page-home .home-poles__hub {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    /* Grille pôles : même largeur utile que le hub + cartes alignées */
    .page-home .home-poles__eco-svg {
        width: 100%;
        max-width: none;
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
        box-sizing: border-box;
    }

    .page-home .home-poles__eco-grid {
        width: 100%;
        max-width: none;
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
        box-sizing: border-box;
    }

    /* Cartes pôles (écosystème) : tout centré — icône, titre, puces, CTA */
    .page-home .home-poles__eco-grid .home-poles__card {
        align-items: center;
        text-align: center;
    }

    .page-home .home-poles__eco-grid .home-poles__card-icon {
        margin-left: auto;
        margin-right: auto;
    }

    .page-home .home-poles__eco-grid .home-poles__card-name {
        text-align: center;
        max-width: 100%;
    }

    .page-home .home-poles__eco-grid .home-poles__card-bullets {
        align-items: center;
        width: 100%;
    }

    .page-home .home-poles__eco-grid .home-poles__card-bullets li {
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .page-home .home-poles__eco-grid .home-poles__card-bullets li span {
        text-align: center;
    }

    .page-home .home-poles__eco-grid .home-poles__card-bullets svg {
        margin-top: 0;
    }

    .page-home .home-poles__eco-grid .home-poles__card-cta {
        align-self: center;
        text-align: center;
    }

    .page-home .home-value__copy {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    .page-home .home-method__header,
    .page-home .home-method__macro {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    /* Timeline 01–05 : redondante avec les numéros sur chaque carte en colonne */
    .page-home .home-method__timeline {
        display: none;
    }

    .page-home .home-method__diagram .home-method__value-bar {
        margin-left: 0;
        margin-right: 0;
        border-radius: 0;
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    .page-home .home-offers__intro,
    .page-home .home-offers__more {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    /* Annule la grille centrée max 520px (960px) */
    .page-home .home-offers__grid {
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }

    .page-home .home-journey__header {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }

    /* Vague + pastilles 01–05 : redondant avec le défilement des cartes en colonne */
    .page-home .home-journey__timeline {
        display: none;
    }

    .page-home .home-journey__promises {
        padding-left: max(16px, env(safe-area-inset-left, 0px));
        padding-right: max(16px, env(safe-area-inset-right, 0px));
    }

    .page-home .home-approach-strip__card {
        border-radius: 0;
        border-left: none;
        border-right: none;
    }

    .page-home .home-split__panel {
        border-radius: 0;
    }

    .page-home .home-split__grid {
        gap: 0;
    }
}

/* —— Estimation pré-devis (étape 6) — conversion —— */
.quote-estimate {
    margin: 1rem 0 1.25rem;
    padding: 0;
    border-radius: 16px;
    background: linear-gradient(165deg, #f8fafc 0%, #eef2ff 55%, #f1f5f9 100%);
    border: 1px solid rgba(89, 122, 175, 0.22);
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}
.quote-estimate__loading {
    margin: 0;
    padding: 1.25rem 1.25rem;
    color: #64748b;
    font-size: 14px;
}
.quote-estimate__content {
    padding: 1.25rem 1.25rem 1.35rem;
}
.quote-estimate__error {
    margin: 0;
    padding: 1rem 1.25rem;
    color: #b45309;
}
.quote-estimate__layout {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.quote-estimate__hero {
    text-align: center;
    padding: 1.1rem 1rem 1.15rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(148, 163, 184, 0.35);
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.04);
}
.quote-estimate__hero-label {
    margin: 0 0 0.25rem;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}
.quote-estimate__hero-amount {
    margin: 0;
    font-size: clamp(1.75rem, 4vw, 2.25rem);
    font-weight: 800;
    font-family: var(--font-subtitle, inherit);
    color: var(--color-primary-dark, #1e3a5f);
    line-height: 1.1;
}
.quote-estimate__hero-hint {
    margin: 0.5rem 0 0;
    font-size: 13px;
    color: #64748b;
}
.quote-estimate__trust {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
@media (max-width: 640px) {
    .quote-estimate__trust {
        grid-template-columns: 1fr;
    }
}
.quote-estimate__trust-item {
    background: #fff;
    border-radius: 10px;
    padding: 12px 14px;
    border: 1px solid rgba(226, 232, 240, 0.9);
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.quote-estimate__trust-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-primary, #597aaf);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.quote-estimate__trust-text {
    font-size: 13px;
    color: #475569;
    line-height: 1.35;
}
.quote-estimate__note {
    margin: 0;
    font-size: 13px;
    color: #475569;
    text-align: center;
    line-height: 1.45;
}
.quote-estimate__cards {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.quote-estimate-card {
    background: #fff;
    border-radius: 12px;
    padding: 16px 18px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    box-shadow: 0 2px 12px rgba(15, 23, 42, 0.035);
}
.quote-estimate-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #f1f5f9;
}
.quote-estimate-card__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    max-width: 100%;
    flex: 1 1 200px;
}
.quote-estimate-card__price {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--color-primary-dark, #1e3a5f);
    white-space: nowrap;
}
.quote-estimate-card__price span {
    font-size: 11px;
    font-weight: 600;
    color: #94a3b8;
    margin-left: 2px;
}
.quote-estimate-card__time {
    margin: 0 0 12px;
}
.quote-estimate-card__time-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    margin-bottom: 4px;
}
.quote-estimate-card__time-text {
    margin: 0;
    font-size: 13.5px;
    color: #334155;
    line-height: 1.45;
}
.quote-estimate-card__benefits-wrap {
    margin: 0 0 10px;
}
.quote-estimate-card__benefits-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    margin-bottom: 6px;
}
.quote-estimate-card__benefits {
    margin: 0;
    padding: 0 0 0 1.1rem;
    font-size: 13.5px;
    color: #475569;
    line-height: 1.45;
}
.quote-estimate-card__benefits li {
    margin-bottom: 4px;
}
.quote-estimate-card__context {
    margin: 0;
    padding: 10px 0 0;
    list-style: none;
    border-top: 1px dashed #e2e8f0;
    font-size: 12.5px;
    color: #64748b;
}
.quote-estimate-card__context li {
    margin-bottom: 4px;
}
.quote-estimate-card__ctx-k {
    font-weight: 600;
    color: #475569;
}
.quote-estimate__empty-wrap {
    text-align: center;
    padding: 0.5rem 0.25rem 0.25rem;
}
.quote-estimate__empty {
    margin: 0 0 0.5rem;
    font-size: 15px;
    font-weight: 600;
    color: #334155;
}
.quote-estimate__empty-hint {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.45;
}
.quote-estimate-disclaimer {
    font-size: 13px;
    color: #64748b;
    margin: 0 0 1rem;
    line-height: 1.45;
}

/* —— Admin demandes devis —— */
.admin-quotes__title {
    font-size: 1.75rem;
    margin-bottom: 0.5rem;
}
.admin-quotes__intro,
.admin-quotes__meta {
    color: #64748b;
    font-size: 14px;
}
.admin-quotes__table-wrap {
    overflow-x: auto;
    margin-top: 1rem;
}
.admin-quotes__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.admin-quotes__table th,
.admin-quotes__table td {
    border: 1px solid #e2e8f0;
    padding: 10px 12px;
    text-align: left;
}
.admin-quotes__table th {
    background: #f1f5f9;
}
.admin-quotes__h2 {
    margin: 2rem 0 0.75rem;
    font-size: 1.15rem;
}
.admin-quotes__dl {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 0.35rem 1rem;
    font-size: 14px;
}
.admin-quotes__dl dt {
    color: #64748b;
}
.admin-quotes__pre {
    max-height: 420px;
    overflow: auto;
    background: #0f172a;
    color: #e2e8f0;
    padding: 1rem;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.45;
}
.admin-quotes__back {
    margin-bottom: 1rem;
}

/* ══════════════════════════════════════════════
   LANGUES — sélecteur FR/EN + bandeau de suggestion
   ══════════════════════════════════════════════ */
.lang-switch {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 8px;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.lang-switch__item {
    color: var(--color-gray, #64748b);
    text-decoration: none;
    padding: 4px 6px;
    border-radius: 6px;
    line-height: 1;
}
.lang-switch__item--active {
    color: var(--color-primary-dark, #1e3a5f);
    cursor: default;
}
a.lang-switch__item:hover {
    background: var(--color-soft-blue, #eef4fb);
    color: var(--color-primary-dark, #1e3a5f);
}
.lang-switch__sep {
    color: var(--color-border, #e2e8f0);
    font-weight: 400;
}

.lang-banner {
    position: fixed;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    z-index: 900;
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: min(560px, calc(100vw - 32px));
    padding: 12px 16px;
    background: var(--color-white, #fff);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 14px;
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.18);
    font-size: 14px;
}
.lang-banner__text {
    margin: 0;
    color: var(--color-dark, #0f172a);
    line-height: 1.4;
}
.lang-banner__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.lang-banner__btn {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    background: var(--color-primary, #597aaf);
    color: var(--color-white, #fff);
    border: none;
    cursor: pointer;
}
.lang-banner__btn:hover {
    background: var(--color-primary-dark, #46618c);
    color: var(--color-white, #fff);
}
.lang-banner__dismiss {
    background: transparent;
    border: 1px solid var(--color-border, #e2e8f0);
    color: var(--color-gray, #64748b);
    padding: 7px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.lang-banner__dismiss:hover {
    background: var(--color-soft-blue, #eef4fb);
}
@media (max-width: 560px) {
    .lang-banner { flex-direction: column; align-items: stretch; text-align: center; }
    .lang-banner__actions { justify-content: center; }
}

/* ══════════════════════════════════════════════
   Analyse performance — hero dashboard + exemple
   ══════════════════════════════════════════════ */
.ap-dash {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 22px;
    border: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ap-dash__head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ap-dash__live {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.18);
    flex-shrink: 0;
    animation: ap-pulse 2s ease-in-out infinite;
}

@keyframes ap-pulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.18); }
    50% { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0.08); }
}

@media (prefers-reduced-motion: reduce) {
    .ap-dash__live { animation: none; }
}

.ap-dash__label {
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 2px;
}

.ap-dash__period {
    margin: 0;
    font-size: 12px;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
}

.ap-dash__ca {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 12px;
    align-items: end;
    padding: 14px;
    background: linear-gradient(135deg, var(--pole-2-bg) 0%, #fff 100%);
    border: 1px solid rgba(191, 155, 121, 0.28);
    border-radius: var(--radius-sm);
}

.ap-dash__ca-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ap-dash__kpi-label {
    font-size: 11px;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ap-dash__kpi-value {
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 900;
    color: var(--color-dark);
    line-height: 1.1;
}

.ap-dash__kpi-value--neg {
    color: #b45309;
}

.ap-dash__trend {
    font-size: 12px;
    font-weight: 700;
}

.ap-dash__trend--up {
    color: #15803d;
}

.ap-dash__spark {
    width: 100%;
    height: 48px;
    display: block;
}

.ap-dash__kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.ap-dash__kpi {
    padding: 12px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ap-dash__kpi:not(:last-child) {
    border-right: 1px solid var(--color-border);
}

.ap-dash__kpi .ap-dash__kpi-value {
    font-size: 18px;
}

.ap-dash__alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fff7ed;
    border: 1px solid #fdba74;
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    color: #9a3412;
    font-size: 13px;
    line-height: 1.5;
}

.ap-dash__alert svg {
    color: #ea580c;
    flex-shrink: 0;
    margin-top: 2px;
}

.ap-dash__alert-title {
    margin: 0 0 2px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #c2410c;
}

.ap-dash__alert p {
    margin: 0;
}

/* Section exemple livrable */
.ap-example {
    padding: 64px 0;
    background: linear-gradient(180deg, #faf7f3 0%, #ffffff 55%);
}

.ap-example .sp-section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 32px;
}

.ap-example__shell {
    max-width: 920px;
    margin: 0 auto;
}

.ap-example__doc {
    background: var(--color-white);
    border: 1px solid rgba(191, 155, 121, 0.35);
    border-radius: 20px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
    overflow: hidden;
}

.ap-example__doc-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 28px 18px;
    border-bottom: 1px solid var(--color-border);
    background: linear-gradient(135deg, var(--pole-2-bg) 0%, #fff 70%);
}

.ap-example__doc-label {
    margin: 0 0 4px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--pole-2);
}

.ap-example__doc-title {
    margin: 0;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-dark);
}

.ap-example__badge {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    padding: 6px 10px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--color-border);
    color: var(--color-gray);
}

.ap-example__metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-bottom: 1px solid var(--color-border);
}

.ap-example__metric {
    padding: 18px 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ap-example__metric:not(:last-child) {
    border-right: 1px solid var(--color-border);
}

.ap-example__metric span {
    font-size: 11px;
    color: var(--color-gray);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.ap-example__metric strong {
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 900;
    color: var(--color-dark);
}

.ap-example__metric em {
    font-style: normal;
    font-size: 12px;
    color: #92400e;
}

.ap-example__body {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 0;
}

.ap-example__findings,
.ap-example__actions {
    padding: 24px 28px;
}

.ap-example__findings {
    border-right: 1px solid var(--color-border);
}

.ap-example__findings h4,
.ap-example__actions h4 {
    margin: 0 0 14px;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
}

.ap-example__findings ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ap-example__findings li {
    position: relative;
    padding-left: 18px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}

.ap-example__findings li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pole-2);
}

.ap-example__actions ol {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: ap-act;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ap-example__actions li {
    counter-increment: ap-act;
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 10px;
    align-items: start;
}

.ap-example__actions li::before {
    content: counter(ap-act);
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--pole-2-bg);
    color: #8a6a4a;
    font-weight: 800;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ap-example__actions strong {
    display: block;
    font-size: 14px;
    color: var(--color-dark);
    margin-bottom: 2px;
}

.ap-example__actions span {
    font-size: 12.5px;
    color: var(--color-gray);
}

.ap-example__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 28px;
    background: #faf7f3;
    border-top: 1px solid var(--color-border);
}

.ap-example__footer p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
    max-width: 520px;
}

@media (max-width: 860px) {
    .ap-example__metrics {
        grid-template-columns: repeat(2, 1fr);
    }
    .ap-example__metric:nth-child(2) {
        border-right: none;
    }
    .ap-example__metric:nth-child(1),
    .ap-example__metric:nth-child(2) {
        border-bottom: 1px solid var(--color-border);
    }
    .ap-example__body {
        grid-template-columns: 1fr;
    }
    .ap-example__findings {
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }
    .ap-example__footer {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 640px) {
    .ap-dash__ca {
        grid-template-columns: 1fr;
    }
    .ap-dash__kpis {
        grid-template-columns: 1fr;
    }
    .ap-dash__kpi:not(:last-child) {
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }
    .ap-example__doc-head {
        flex-direction: column;
        padding: 20px;
    }
    .ap-example__findings,
    .ap-example__actions,
    .ap-example__footer {
        padding: 20px;
    }
}

/* ══════════════════════════════════════════════
   Analyse performance — types d'analyses (3 piliers)
   ══════════════════════════════════════════════ */
.ap-types .sp-section-header {
    max-width: 760px;
}

.ap-types__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.ap-types__pillar {
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.28);
    border-radius: 18px;
    padding: 28px 26px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ap-types__pillar:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}

.ap-types__pillar-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.ap-types__num {
    font-family: var(--font-title);
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
    color: rgba(191, 155, 121, 0.45);
    flex-shrink: 0;
    padding-top: 2px;
}

.ap-types__tag {
    display: inline-block;
    margin: 0 0 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #8a6a4a;
    background: var(--pole-2-bg);
    border: 1px solid rgba(191, 155, 121, 0.35);
}

.ap-types__pillar h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}

.ap-types__intro {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--color-gray);
}

.ap-types__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-top: 1px solid var(--color-border);
    padding-top: 16px;
}

.ap-types__list li {
    position: relative;
    padding: 10px 12px 10px 34px;
    font-size: 15.5px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--color-dark);
    background: #faf7f3;
    border-radius: 10px;
}

.ap-types__list li::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -4px;
    border-radius: 50%;
    background: var(--pole-2);
}

@media (max-width: 960px) {
    .ap-types__grid {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin: 0 auto;
    }
}

/* ══════════════════════════════════════════════
   Analyse performance — exemple révélations
   ══════════════════════════════════════════════ */
.ap-reveal {
    padding: 72px 0;
    background: linear-gradient(180deg, #faf7f3 0%, #ffffff 40%, #f4f8fb 100%);
}

.ap-reveal .sp-section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 28px;
}

.ap-reveal__flow {
    list-style: none;
    margin: 0 auto 36px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ap-reveal__flow-step {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.35);
    font-size: 14px;
    color: var(--color-dark);
}

.ap-reveal__flow-step strong {
    font-weight: 800;
}

.ap-reveal__flow-step--mid {
    border-color: rgba(89, 122, 175, 0.4);
    background: #eef4fb;
}

.ap-reveal__flow-step--end {
    border-color: rgba(40, 153, 81, 0.35);
    background: #eef8f1;
}

.ap-reveal__flow-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pole-2);
}

.ap-reveal__flow-step--mid .ap-reveal__flow-dot {
    background: #597aaf;
}

.ap-reveal__flow-step--end .ap-reveal__flow-dot {
    background: #289951;
}

.ap-reveal__flow-arrow {
    display: flex;
    color: #94a3b8;
}

.ap-reveal__grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 18px;
    align-items: stretch;
    max-width: 1080px;
    margin: 0 auto;
}

.ap-reveal__col {
    border-radius: 18px;
    padding: 26px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.06);
}

.ap-reveal__col--findings {
    background: linear-gradient(160deg, #fff7ed 0%, #faf7f3 55%, #fff 100%);
    border: 1px solid rgba(234, 88, 12, 0.22);
}

.ap-reveal__col--actions {
    background: linear-gradient(160deg, #eef8f1 0%, #f0f7ff 55%, #fff 100%);
    border: 1px solid rgba(40, 153, 81, 0.22);
}

.ap-reveal__col-head h3 {
    margin: 8px 0 0;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-dark);
}

.ap-reveal__badge {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ap-reveal__badge--findings {
    color: #9a3412;
    background: rgba(251, 146, 60, 0.18);
    border: 1px solid rgba(234, 88, 12, 0.28);
}

.ap-reveal__badge--actions {
    color: #166534;
    background: rgba(40, 153, 81, 0.12);
    border: 1px solid rgba(40, 153, 81, 0.28);
}

.ap-reveal__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ap-reveal__list li {
    position: relative;
    padding: 12px 14px 12px 36px;
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-dark);
    background: rgba(255, 255, 255, 0.72);
}

.ap-reveal__col--findings .ap-reveal__list li {
    border: 1px solid rgba(234, 88, 12, 0.14);
}

.ap-reveal__col--actions .ap-reveal__list li {
    border: 1px solid rgba(40, 153, 81, 0.14);
}

.ap-reveal__list li::before {
    position: absolute;
    left: 12px;
    top: 14px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.ap-reveal__col--findings .ap-reveal__list li::before {
    content: "!";
    color: #c2410c;
    background: rgba(251, 146, 60, 0.25);
}

.ap-reveal__col--actions .ap-reveal__list li::before {
    content: "✓";
    color: #166534;
    background: rgba(40, 153, 81, 0.18);
}

.ap-reveal__bridge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px 0;
    color: #597aaf;
}

.ap-reveal__bridge-line {
    width: 2px;
    flex: 1;
    min-height: 24px;
    background: linear-gradient(180deg, transparent, rgba(89, 122, 175, 0.45), transparent);
}

.ap-reveal__bridge-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(89, 122, 175, 0.35);
    box-shadow: 0 8px 20px rgba(89, 122, 175, 0.15);
}

.ap-reveal__note {
    max-width: 820px;
    margin: 28px auto 0;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 18px;
    border-radius: 12px;
    background: #fff;
    border: 1px dashed rgba(148, 163, 184, 0.7);
    color: #64748b;
    font-size: 14px;
    line-height: 1.55;
}

.ap-reveal__note svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: #597aaf;
}

.ap-reveal__note p {
    margin: 0;
}

@media (max-width: 900px) {
    .ap-reveal__grid {
        grid-template-columns: 1fr;
        max-width: 560px;
    }
    .ap-reveal__bridge {
        flex-direction: row;
        padding: 0;
    }
    .ap-reveal__bridge-line {
        width: auto;
        height: 2px;
        flex: 1;
        min-height: 0;
        background: linear-gradient(90deg, transparent, rgba(89, 122, 175, 0.45), transparent);
    }
    .ap-reveal__bridge-icon svg {
        transform: rotate(90deg);
    }
}

/* ══════════════════════════════════════════════
   Analyse performance — aperçu rapport + modale lead
   ══════════════════════════════════════════════ */
.ap-report {
    padding: 72px 0;
    background: #fff;
}

.ap-report .sp-section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 36px;
}

.ap-report__doc {
    position: relative;
    max-width: 820px;
    margin: 0 auto;
    background: linear-gradient(180deg, #fffdf9 0%, #fff 100%);
    border: 1px solid rgba(191, 155, 121, 0.35);
    border-radius: 20px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
    padding: 12px 12px 12px 28px;
    overflow: hidden;
}

.ap-report__doc-spine {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 16px;
    background: linear-gradient(180deg, #d4b896 0%, var(--pole-2) 50%, #a67c52 100%);
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    align-items: center;
    padding: 28px 0;
}

.ap-report__doc-spine span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
}

.ap-report__chapters {
    list-style: none;
    margin: 0;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ap-report__chapter {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 14px;
    align-items: start;
    padding: 18px 18px 18px 14px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.18);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ap-report__chapter:hover {
    border-color: rgba(191, 155, 121, 0.45);
    box-shadow: 0 8px 22px rgba(191, 155, 121, 0.12);
}

.ap-report__num {
    font-family: var(--font-title);
    font-size: 26px;
    font-weight: 900;
    line-height: 1;
    color: rgba(191, 155, 121, 0.55);
    padding-top: 2px;
}

.ap-report__chapter-body h3 {
    margin: 0 0 6px;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 800;
    color: var(--color-dark);
}

.ap-report__chapter-body p {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-gray);
}

.ap-report__cta {
    margin-top: 32px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.ap-report__cta .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.ap-report__cta-note {
    margin: 0;
    font-size: 13px;
    color: var(--color-gray);
}

/* Modale lead */
body.ap-report-modal-open {
    overflow: hidden;
}

.ap-report-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.ap-report-modal[hidden] {
    display: none;
}

.ap-report-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.48);
}

.ap-report-modal__panel {
    position: relative;
    width: min(520px, 100%);
    max-height: min(90vh, 720px);
    overflow: auto;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.22);
    padding: 24px 24px 28px;
}

.ap-report-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

.ap-report-modal__title {
    margin: 0 0 6px;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-dark);
}

.ap-report-modal__sub {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}

.ap-report-modal__close {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: #fff;
    color: var(--color-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ap-report-modal__close:hover {
    background: #f8fafc;
    color: var(--color-dark);
}

.ap-report-modal__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}

.ap-report-modal__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-dark);
}

.ap-report-modal__field:nth-child(1),
.ap-report-modal__field:nth-child(2) {
    grid-column: 1 / -1;
}

.ap-report-modal__field input {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    font-size: 14px;
    font-family: inherit;
    color: var(--color-dark);
    background: #fff;
}

.ap-report-modal__field input:focus {
    outline: none;
    border-color: var(--pole-2);
    box-shadow: 0 0 0 3px rgba(191, 155, 121, 0.2);
}

.ap-report-modal__privacy {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--color-gray);
    margin-bottom: 12px;
}

.ap-report-modal__privacy input {
    margin-top: 3px;
    flex-shrink: 0;
}

.ap-report-modal__privacy a {
    color: var(--pole-2);
}

.ap-report-modal__status {
    min-height: 1.2em;
    margin: 0 0 12px;
    font-size: 13px;
    color: #b45309;
}

.ap-report-modal__submit {
    width: 100%;
}

.ap-report-modal__success {
    text-align: center;
    padding: 20px 8px 8px;
}

.ap-report-modal__success-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: #eef8f1;
    color: #289951;
    font-size: 24px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ap-report-modal__success p {
    margin: 0 0 18px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-dark);
}

@media (max-width: 640px) {
    .ap-report__doc {
        padding-left: 22px;
    }
    .ap-report__chapter {
        grid-template-columns: 44px 1fr;
        padding: 14px;
    }
    .ap-report__num {
        font-size: 22px;
    }
    .ap-report-modal__fields {
        grid-template-columns: 1fr;
    }
    .ap-report-modal__field:nth-child(1),
    .ap-report-modal__field:nth-child(2) {
        grid-column: auto;
    }
}

/* ══════════════════════════════════════════════
   Analyse performance — timeline méthodologique
   ══════════════════════════════════════════════ */
.ap-method {
    padding: 72px 0;
    background: linear-gradient(180deg, #ffffff 0%, #faf7f3 100%);
}

.ap-method .sp-section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 40px;
}

.ap-method__timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0;
    position: relative;
}

.ap-method__timeline::before {
    content: "";
    position: absolute;
    left: calc(100% / 12);
    right: calc(100% / 12);
    top: 22px;
    height: 2px;
    background: linear-gradient(90deg, rgba(191, 155, 121, 0.15), var(--pole-2), rgba(191, 155, 121, 0.15));
    z-index: 0;
}

.ap-method__step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 8px;
}

.ap-method__marker {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.ap-method__num {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--pole-2);
    color: #fff;
    font-family: var(--font-title);
    font-size: 16px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--pole-2), 0 8px 18px rgba(191, 155, 121, 0.28);
}

.ap-method__card {
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.28);
    border-radius: 14px;
    padding: 16px 12px;
    height: 100%;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.ap-method__card h3 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}

.ap-method__card p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--color-gray);
}

@media (max-width: 1100px) {
    .ap-method__timeline {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: 28px;
    }
    .ap-method__timeline::before {
        display: none;
    }
}

@media (max-width: 720px) {
    .ap-method__timeline {
        grid-template-columns: 1fr;
        gap: 0;
        padding-left: 8px;
        max-width: 560px;
        margin: 0 auto;
    }

    .ap-method__timeline::before {
        display: block;
        left: 29px;
        right: auto;
        top: 22px;
        bottom: 22px;
        width: 2px;
        height: auto;
        background: linear-gradient(180deg, rgba(191, 155, 121, 0.15), var(--pole-2), rgba(191, 155, 121, 0.15));
    }

    .ap-method__step {
        flex-direction: row;
        align-items: flex-start;
        text-align: left;
        gap: 16px;
        padding: 0 0 24px;
    }

    .ap-method__step:last-child {
        padding-bottom: 0;
    }

    .ap-method__marker {
        margin-bottom: 0;
        flex-shrink: 0;
    }

    .ap-method__card {
        flex: 1;
        padding: 16px 18px;
    }

    .ap-method__card h3 {
        font-size: 16px;
    }

    .ap-method__card p {
        font-size: 14.5px;
    }
}

/* ══════════════════════════════════════════════
   Analyse performance — sources de données
   ══════════════════════════════════════════════ */
.ap-sources {
    padding: 72px 0 80px;
    background: #f7f3ed;
}

.ap-sources .sp-section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 36px;
}

.ap-sources__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.ap-sources__card {
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.28);
    border-radius: 16px;
    padding: 20px 18px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
    min-width: 0;
}

.ap-sources__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.ap-sources__ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pole-2);
    color: #fff;
}

.ap-sources__card h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.25;
}

.ap-sources__tags {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ap-sources__tags li {
    display: inline-flex;
    align-items: center;
    padding: 6px 11px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: #5c4a38;
    background: var(--pole-2-bg);
    border: 1px solid rgba(191, 155, 121, 0.3);
}

.ap-sources__note {
    margin: 24px auto 0;
    max-width: 920px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.35);
}

.ap-sources__note-ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pole-2-bg);
    color: #8a6a4a;
}

.ap-sources__note p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--color-gray);
}

@media (max-width: 960px) {
    .ap-sources__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .ap-sources__grid {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
   Analyse performance — données fiables
   ══════════════════════════════════════════════ */
.ap-trust {
    padding: 72px 0 80px;
    background: #fff;
}

.ap-trust .sp-section-header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 36px;
}

.ap-trust__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ap-trust__card {
    background: linear-gradient(160deg, #faf7f3 0%, #fff 70%);
    border: 1px solid rgba(191, 155, 121, 0.28);
    border-radius: 16px;
    padding: 24px 20px;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
    min-width: 0;
}

.ap-trust__ico {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pole-2);
    color: #fff;
    margin-bottom: 16px;
}

.ap-trust__card h3 {
    margin: 0 0 8px;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}

.ap-trust__card p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--color-gray);
}

.ap-trust__note {
    margin: 28px auto 0;
    max-width: 920px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid rgba(89, 122, 175, 0.22);
}

.ap-trust__note-ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef4fb;
    color: #597aaf;
}

.ap-trust__note p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--color-gray);
}

@media (max-width: 960px) {
    .ap-trust__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .ap-trust__grid {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
   Analyse performance — diagnostic interactif
   ══════════════════════════════════════════════ */
.ap-diag {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #faf7f3 0%, #ffffff 55%);
}

.ap-diag .sp-section-header {
    text-align: center;
    max-width: 740px;
    margin: 0 auto 32px;
}

.ap-diag__shell {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
    gap: 24px;
    align-items: start;
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.32);
    border-radius: 22px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
    padding: clamp(16px, 2vw, 24px);
    overflow: hidden;
}

.ap-diag__questions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ap-diag__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #faf7f3;
    border: 1px solid rgba(191, 155, 121, 0.2);
}

.ap-diag__q-text {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--color-dark);
    flex: 1;
    min-width: 0;
}

.ap-diag__choices {
    display: inline-flex;
    gap: 6px;
    flex-shrink: 0;
}

.ap-diag__choice {
    min-width: 58px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid rgba(191, 155, 121, 0.35);
    background: #fff;
    color: #8a6a4a;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ap-diag__choice:hover {
    border-color: var(--pole-2);
}

.ap-diag__choice.is-selected {
    background: var(--pole-2);
    border-color: var(--pole-2);
    color: #fff;
}

.ap-diag__choice[data-ap-diag-answer="yes"].is-selected {
    background: #289951;
    border-color: #289951;
}

.ap-diag__result {
    background: linear-gradient(165deg, #f8f1e9 0%, #fff 55%);
    border: 1px solid rgba(191, 155, 121, 0.28);
    border-radius: 18px;
    padding: 22px 20px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    position: sticky;
    top: 96px;
}

.ap-diag__score-block {
    text-align: center;
}

.ap-diag__score-label {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #8a6a4a;
}

.ap-diag__score-ring {
    --ap-diag-pct: 0;
    width: 132px;
    height: 132px;
    margin: 0 auto 12px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(closest-side, #fff 72%, transparent 73% 100%),
        conic-gradient(var(--pole-2) calc(var(--ap-diag-pct) * 1%), #e8dfd4 0);
    box-shadow: inset 0 0 0 1px rgba(191, 155, 121, 0.2);
    transition: background 0.35s ease;
}

.ap-diag__score-ring strong {
    font-family: var(--font-title);
    font-size: 34px;
    font-weight: 900;
    color: var(--color-dark);
    line-height: 1;
}

.ap-diag__score-max {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-gray);
}

.ap-diag__level {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: #8a6a4a;
    line-height: 1.45;
}

.ap-diag__priorities h3 {
    margin: 0 0 10px;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
}

.ap-diag__priorities ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ap-diag__priorities li {
    position: relative;
    padding: 10px 12px 10px 34px;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--color-dark);
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(191, 155, 121, 0.22);
}

.ap-diag__priorities li::before {
    content: "→";
    position: absolute;
    left: 12px;
    top: 10px;
    color: var(--pole-2);
    font-weight: 800;
}

.ap-diag__priorities li.ap-diag__priority--ok::before {
    content: "✓";
    color: #289951;
}

.ap-diag__cta {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.ap-diag__disclaimer {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--color-gray);
    text-align: center;
}

@media (max-width: 900px) {
    .ap-diag__shell {
        grid-template-columns: 1fr;
    }
    .ap-diag__result {
        position: static;
    }
}

@media (max-width: 600px) {
    .ap-diag__q {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }
    .ap-diag__choices {
        width: 100%;
    }
    .ap-diag__choice {
        flex: 1;
        text-align: center;
    }
}

/* ══════════════════════════════════════════════
   DPO — dashboard du configurateur (#diagnostic-dpo)
   ══════════════════════════════════════════════ */
#diagnostic-dpo .ap-diag__choice.is-selected {
    background: #289951;
    border-color: #289951;
    color: #fff;
}

#diagnostic-dpo .ap-diag__choices--wrap {
    flex-wrap: wrap;
}

#diagnostic-dpo .ap-diag__choices--wrap .ap-diag__choice {
    min-width: 0;
}

#diagnostic-dpo .ap-diag__q {
    align-items: flex-start;
    flex-wrap: wrap;
}

#diagnostic-dpo .ap-diag__q-text {
    flex: 1 1 180px;
}

#diagnostic-dpo .ap-diag__shell {
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.95fr);
}

#diagnostic-dpo .ap-diag__result {
    gap: 16px;
}

.dpo-dash__price {
    margin: 0;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-primary);
}

.dpo-dash__title {
    margin: 0;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8a6a4a;
}

.dpo-dash__badge {
    margin: 0;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}

.dpo-dash__kpis {
    margin: 0;
    display: grid;
    gap: 10px;
}

.dpo-dash__kpi {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(191, 155, 121, 0.22);
}

.dpo-dash__kpi dt {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-gray);
}

.dpo-dash__kpi dd {
    margin: 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    text-align: right;
}

.dpo-dash__kpi dd[data-state="yes"],
.dpo-dash__kpi dd[data-state="high"] {
    color: #c2410c;
}

.dpo-dash__kpi dd[data-state="maybe"],
.dpo-dash__kpi dd[data-state="mid"] {
    color: #b45309;
}

.dpo-dash__kpi dd[data-state="no"],
.dpo-dash__kpi dd[data-state="low"] {
    color: #289951;
}

.dpo-dash__complexity {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.dpo-dash__complexity-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-gray);
}

.dpo-dash__complexity-value {
    font-family: var(--font-title);
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
    color: var(--color-dark);
}

.dpo-dash__complexity-value span {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-gray);
}

.dpo-dash__bars {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dpo-dash__bar {
    --dpo-bar-pct: 0;
}

.dpo-dash__bar-head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--color-dark);
}

.dpo-dash__bar-head span:last-child {
    color: var(--color-gray);
    font-variant-numeric: tabular-nums;
}

.dpo-dash__bar-track {
    height: 8px;
    border-radius: 999px;
    background: #e8dfd4;
    overflow: hidden;
}

.dpo-dash__bar-fill {
    display: block;
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: var(--color-primary, #1e3a5f);
    transition: width 0.35s ease;
}

.dpo-dash__reco {
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(191, 155, 121, 0.28);
}

.dpo-dash__reco-label {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #8a6a4a;
}

.dpo-dash__reco-value {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
}

.dpo-dash__reco-value a {
    color: inherit;
    text-decoration: none;
}

.dpo-dash__reco-value a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

/* ══════════════════════════════════════════════
   Analyse performance — complexité & budget
   ══════════════════════════════════════════════ */
.ap-complexity {
    padding: 72px 0 80px;
    background: linear-gradient(180deg, #ffffff 0%, #faf7f3 100%);
}

.ap-complexity .sp-section-header {
    text-align: center;
    max-width: 740px;
    margin: 0 auto 36px;
}

.ap-complexity__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ap-complexity__card {
    position: relative;
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.3);
    border-radius: 16px;
    padding: 24px 20px 20px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.ap-complexity__num {
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: rgba(191, 155, 121, 0.7);
}

.ap-complexity__card h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 17px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
}

.ap-complexity__card p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--color-gray);
    flex: 1;
}

.ap-complexity__scale {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 8px;
    align-items: center;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid rgba(191, 155, 121, 0.18);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #8a6a4a;
}

.ap-complexity__bar {
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #e8dfd4, var(--pole-2));
}

.ap-complexity__note {
    margin: 28px auto 0;
    max-width: 860px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 20px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(191, 155, 121, 0.4);
    box-shadow: 0 8px 22px rgba(191, 155, 121, 0.08);
}

.ap-complexity__note-ico {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pole-2-bg);
    color: #8a6a4a;
}

.ap-complexity__note p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.55;
    color: var(--color-dark);
}

.ap-complexity__cta {
    margin-top: 24px;
    text-align: center;
}

@media (max-width: 960px) {
    .ap-complexity__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .ap-complexity__grid {
        grid-template-columns: 1fr;
    }
}

/* ── Mini-estimateur complexité (override / extension) ── */
.ap-complexity__shell {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.75fr);
    gap: 20px;
    align-items: start;
}

.ap-complexity__factors {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ap-complexity__grid {
    display: none;
}

.ap-complexity__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.ap-complexity__opt {
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid rgba(191, 155, 121, 0.35);
    background: #fff;
    color: #8a6a4a;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ap-complexity__opt:hover {
    border-color: var(--pole-2);
}

.ap-complexity__opt.is-selected {
    background: var(--pole-2);
    border-color: var(--pole-2);
    color: #fff;
}

.ap-complexity__scale {
    display: none;
}

.ap-complexity__result {
    background: linear-gradient(165deg, #f8f1e9 0%, #fff 60%);
    border: 1px solid rgba(191, 155, 121, 0.32);
    border-radius: 18px;
    padding: 22px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: sticky;
    top: 96px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
}

.ap-complexity__result-label {
    margin: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #8a6a4a;
}

.ap-complexity__tier {
    margin: 0;
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.25;
}

.ap-complexity__range {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--pole-2);
}

.ap-complexity__meter {
    height: 8px;
    border-radius: 999px;
    background: #e8dfd4;
    overflow: hidden;
    margin: 6px 0 2px;
}

.ap-complexity__meter-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #d4b896, var(--pole-2));
    transition: width 0.3s ease;
}

.ap-complexity__hint {
    margin: 0 0 6px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-gray);
}

.ap-complexity__result-cta {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.ap-complexity__cta {
    display: none;
}

@media (max-width: 900px) {
    .ap-complexity__shell {
        grid-template-columns: 1fr;
    }
    .ap-complexity__result {
        position: static;
    }
}

@media (max-width: 600px) {
    .ap-complexity__factors {
        grid-template-columns: 1fr;
    }
}

/* ── FAQ analyse-performance : 3 + 2 colonnes ── */
.ap-faq__content {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.ap-faq__more {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 28px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--color-border);
}

.ap-faq__col {
    min-width: 0;
}

@media (max-width: 900px) {
    .ap-faq__more {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Classification des niveaux de risque
   ══════════════════════════════════════════════ */
.ai-act-risks {
    background: linear-gradient(180deg, var(--pole-4-bg, #ebf5f1) 0%, #fff 48%);
}

.ai-act-risks__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.ai-act-risk-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
}

.ai-act-risk-card__badge {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 14px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ai-act-risk-card__badge--prohibited {
    background: rgba(185, 28, 28, 0.1);
    color: #991b1b;
}

.ai-act-risk-card__badge--high {
    background: rgba(217, 119, 6, 0.14);
    color: #9a3412;
}

.ai-act-risk-card__badge--limited {
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
}

.ai-act-risk-card__badge--minimal {
    background: rgba(40, 153, 81, 0.12);
    color: #166534;
}

.ai-act-risk-card h3 {
    margin-bottom: 12px;
}

.ai-act-risk-card > p {
    flex: 1 1 auto;
}

.ai-act-risk-card__action {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.5;
}

.ai-act-risk-card__action strong {
    color: var(--pole-4, #2d7a5e);
}

.ai-act-risks__note {
    margin-top: 40px;
}

.ai-act-risks__gpai {
    max-width: 820px;
    margin: 24px auto 0;
    text-align: left;
}

@media (max-width: 1100px) {
    .ai-act-risks__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .ai-act-risks__grid {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Audit de conformité (étapes + périmètre)
   ══════════════════════════════════════════════ */
.ai-act-audit__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.ai-act-audit__step {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 24px 22px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.ai-act-audit__step:hover {
    border-color: var(--pole-4, #72AA95);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.ai-act-audit__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 16px;
    border-radius: 50%;
    background: var(--pole-4, #72AA95);
    color: #fff;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 700;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--pole-4, #72AA95);
}

.ai-act-audit__step:nth-child(2) .ai-act-audit__num,
.ai-act-audit__step:nth-child(5) .ai-act-audit__num {
    background: var(--color-secondary);
    box-shadow: 0 0 0 2px var(--color-secondary);
}

.ai-act-audit__step:nth-child(3) .ai-act-audit__num,
.ai-act-audit__step:nth-child(6) .ai-act-audit__num {
    background: var(--color-accent-dark);
    box-shadow: 0 0 0 2px var(--color-accent-dark);
}

.ai-act-audit__step h3 {
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 10px;
    line-height: 1.35;
}

.ai-act-audit__step p {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-audit__scope {
    margin-top: 56px;
}

.ai-act-audit__scope-title {
    font-family: var(--font-subtitle);
    font-size: clamp(20px, 3vw, 24px);
    font-weight: 700;
    color: var(--color-dark);
    text-align: center;
    margin: 0 0 24px;
    line-height: 1.3;
}

.ai-act-audit__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ai-act-audit__list li {
    position: relative;
    padding: 12px 14px 12px 44px;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #f7faf8 0%, #ffffff 100%);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-dark);
}

.ai-act-audit__list li::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: rgba(40, 153, 81, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23289951' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
}

.ai-act-audit__note {
    margin-top: 40px;
}

@media (max-width: 1024px) {
    .ai-act-audit__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .ai-act-audit__steps {
        grid-template-columns: 1fr;
    }

    .ai-act-audit__list {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Accompagnement / mise en conformité
   ══════════════════════════════════════════════ */
.ai-act-support {
    background: linear-gradient(180deg, #fff 0%, var(--pole-4-bg, #ebf5f1) 55%, #fff 100%);
}

.ai-act-support__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.ai-act-support__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 22px 20px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.ai-act-support__card:hover {
    border-color: var(--pole-4, #72AA95);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.ai-act-support__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 14px;
    border-radius: 10px;
    background: rgba(114, 170, 149, 0.14);
    color: var(--pole-4, #2d7a5e);
}

.ai-act-support__card h3 {
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 10px;
    line-height: 1.35;
}

.ai-act-support__card p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-support__training {
    margin-top: 56px;
    padding: 32px 28px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
}

.ai-act-support__training h3 {
    font-family: var(--font-subtitle);
    font-size: clamp(20px, 3vw, 24px);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 14px;
    line-height: 1.3;
}

.ai-act-support__training > p {
    max-width: 860px;
    margin: 0 0 22px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-gray);
}

.ai-act-support__training-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ai-act-support__training-list li {
    position: relative;
    padding: 12px 14px 12px 44px;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #f7faf8 0%, #ffffff 100%);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-dark);
}

.ai-act-support__training-list li::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: rgba(40, 153, 81, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23289951' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
}

.ai-act-support__note {
    margin-top: 40px;
}

.ai-act-support__actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}

@media (max-width: 1100px) {
    .ai-act-support__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .ai-act-support__grid {
        grid-template-columns: 1fr;
    }

    .ai-act-support__training {
        padding: 24px 18px;
    }

    .ai-act-support__training-list {
        grid-template-columns: 1fr;
    }

    .ai-act-support__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Livrables & feuille de route
   ══════════════════════════════════════════════ */
.ai-act-deliverables__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.ai-act-deliverables__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 22px 20px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.ai-act-deliverables__card:hover {
    border-color: var(--pole-4, #72AA95);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.ai-act-deliverables__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 14px;
    border-radius: 10px;
    background: rgba(114, 170, 149, 0.14);
    color: var(--pole-4, #2d7a5e);
}

.ai-act-deliverables__card h3 {
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 10px;
    line-height: 1.35;
}

.ai-act-deliverables__card p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-deliverables__roadmap {
    margin-top: 56px;
}

.ai-act-deliverables__roadmap > h3 {
    font-family: var(--font-subtitle);
    font-size: clamp(20px, 3vw, 24px);
    font-weight: 700;
    color: var(--color-dark);
    text-align: center;
    margin: 0 0 28px;
    line-height: 1.3;
}

.ai-act-deliverables__priorities {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.ai-act-priority {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 24px 22px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
}

.ai-act-priority__label {
    display: inline-flex;
    align-self: flex-start;
    margin: 0 0 12px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.2;
}

.ai-act-priority h4 {
    font-family: var(--font-subtitle);
    font-size: 17px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 10px;
    line-height: 1.35;
}

.ai-act-priority p:last-child {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-priority--immediate {
    border-color: rgba(185, 28, 28, 0.28);
    background: linear-gradient(180deg, rgba(185, 28, 28, 0.06) 0%, #fff 55%);
}

.ai-act-priority--immediate .ai-act-priority__label {
    background: rgba(185, 28, 28, 0.1);
    color: #991b1b;
}

.ai-act-priority--priority {
    border-color: rgba(217, 119, 6, 0.3);
    background: linear-gradient(180deg, rgba(217, 119, 6, 0.08) 0%, #fff 55%);
}

.ai-act-priority--priority .ai-act-priority__label {
    background: rgba(217, 119, 6, 0.14);
    color: #9a3412;
}

.ai-act-priority--continuous {
    border-color: rgba(40, 153, 81, 0.3);
    background: linear-gradient(180deg, rgba(40, 153, 81, 0.08) 0%, #fff 55%);
}

.ai-act-priority--continuous .ai-act-priority__label {
    background: rgba(40, 153, 81, 0.12);
    color: #166534;
}

.ai-act-deliverables__note {
    margin-top: 40px;
}

.ai-act-deliverables__actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}

@media (max-width: 1100px) {
    .ai-act-deliverables__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .ai-act-deliverables__priorities {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .ai-act-deliverables__grid {
        grid-template-columns: 1fr;
    }

    .ai-act-deliverables__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Calendrier réglementaire
   ══════════════════════════════════════════════ */
.ai-act-calendar {
    background: linear-gradient(180deg, var(--pole-4-bg, #ebf5f1) 0%, #fff 42%);
}

.ai-act-calendar__timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

.ai-act-calendar__item {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 18px;
    position: relative;
    padding-bottom: 22px;
}

.ai-act-calendar__item:last-child {
    padding-bottom: 0;
}

.ai-act-calendar__item:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 12px;
    top: 28px;
    bottom: 0;
    width: 2px;
    background: rgba(114, 170, 149, 0.35);
}

.ai-act-calendar__marker {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    padding-top: 18px;
}

.ai-act-calendar__dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--pole-4, #72AA95);
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--pole-4, #72AA95);
}

.ai-act-calendar__card {
    padding: 18px 20px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.ai-act-calendar__card:hover {
    border-color: var(--pole-4, #72AA95);
    box-shadow: var(--shadow-sm);
}

.ai-act-calendar__date {
    display: inline-flex;
    margin: 0 0 8px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(114, 170, 149, 0.14);
    color: var(--pole-4, #2d7a5e);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.ai-act-calendar__card h3 {
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 8px;
    line-height: 1.35;
}

.ai-act-calendar__card p:last-child {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
}

.ai-act-calendar__note {
    margin-top: 40px;
}

.ai-act-calendar__precision {
    max-width: 820px;
    margin: 24px auto 0;
    text-align: left;
}

.ai-act-calendar__actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}

@media (min-width: 1100px) {
    .ai-act-calendar__timeline {
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 12px;
        padding-top: 12px;
        align-items: start;
    }

    .ai-act-calendar__timeline::before {
        content: '';
        position: absolute;
        left: calc(100% / 14);
        right: calc(100% / 14);
        top: 28px;
        height: 2px;
        background: linear-gradient(90deg, rgba(114, 170, 149, 0.15), var(--pole-4, #72AA95), rgba(114, 170, 149, 0.15));
        z-index: 0;
    }

    .ai-act-calendar__item {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
        padding-bottom: 0;
        height: auto;
    }

    .ai-act-calendar__item:not(:last-child)::before {
        display: none;
    }

    .ai-act-calendar__marker {
        padding-top: 0;
    }

    .ai-act-calendar__card {
        width: 100%;
        height: auto;
        text-align: left;
        padding: 14px 12px;
    }

    .ai-act-calendar__date {
        font-size: 11px;
        padding: 3px 8px;
    }

    .ai-act-calendar__card h3 {
        font-size: 13.5px;
        margin-bottom: 6px;
    }

    .ai-act-calendar__card p:last-child {
        font-size: 12.5px;
        line-height: 1.55;
    }
}

@media (max-width: 640px) {
    .ai-act-calendar__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Risques et sanctions
   ══════════════════════════════════════════════ */
.ai-act-sanctions__ceilings {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.ai-act-sanction-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 24px 22px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.ai-act-sanction-card:hover {
    border-color: var(--pole-4, #72AA95);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.ai-act-sanction-card__badge {
    display: inline-flex;
    align-self: flex-start;
    margin: 0 0 14px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(114, 170, 149, 0.14);
    color: var(--pole-4, #2d7a5e);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.2;
}

.ai-act-sanction-card h3 {
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 12px;
    line-height: 1.4;
}

.ai-act-sanction-card > p {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-sanction-card__note {
    margin-top: 16px !important;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
    font-size: 13px !important;
    font-weight: 600;
    color: var(--color-dark) !important;
    line-height: 1.5;
}

.ai-act-sanction-card__note strong {
    color: var(--pole-4, #2d7a5e);
}

.ai-act-sanctions__pme,
.ai-act-sanctions__reassure {
    margin-top: 40px;
}

.ai-act-sanctions__consequences {
    margin-top: 56px;
}

.ai-act-sanctions__consequences > h3 {
    font-family: var(--font-subtitle);
    font-size: clamp(20px, 3vw, 24px);
    font-weight: 700;
    color: var(--color-dark);
    text-align: center;
    margin: 0 0 28px;
    line-height: 1.3;
}

.ai-act-sanctions__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.ai-act-sanctions__item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    height: 100%;
    padding: 20px 18px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.ai-act-sanctions__item:hover {
    border-color: var(--pole-4, #72AA95);
    box-shadow: var(--shadow-sm);
}

.ai-act-sanctions__icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(114, 170, 149, 0.14);
    color: var(--pole-4, #2d7a5e);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ai-act-sanctions__item h4 {
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 8px;
    line-height: 1.35;
}

.ai-act-sanctions__item p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--color-gray);
}

.ai-act-sanctions__actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}

@media (max-width: 900px) {
    .ai-act-sanctions__ceilings {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .ai-act-sanctions__grid {
        grid-template-columns: 1fr;
    }

    .ai-act-sanctions__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Cas d’usage concrets
   ══════════════════════════════════════════════ */
.ai-act-usecases {
    background: linear-gradient(180deg, #fff 0%, var(--pole-4-bg, #ebf5f1) 48%, #fff 100%);
}

.ai-act-usecases__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.ai-act-usecase {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 22px 18px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.ai-act-usecase:hover {
    border-color: var(--pole-4, #72AA95);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.ai-act-usecase__badge {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 12px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.25;
    text-transform: uppercase;
}

.ai-act-usecase__badge--high {
    background: rgba(217, 119, 6, 0.14);
    color: #9a3412;
}

.ai-act-usecase__badge--prohibited {
    background: rgba(185, 28, 28, 0.1);
    color: #991b1b;
}

.ai-act-usecase__badge--transparency {
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
}

.ai-act-usecase__badge--governance {
    background: rgba(40, 153, 81, 0.12);
    color: #166534;
}

.ai-act-usecase h3 {
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 10px;
    line-height: 1.35;
}

.ai-act-usecase > p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-usecase__question {
    margin-top: 16px !important;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
    font-size: 12.5px !important;
    font-weight: 600;
    color: var(--color-dark) !important;
    line-height: 1.5;
}

.ai-act-usecase__question strong {
    color: var(--pole-4, #2d7a5e);
}

.ai-act-usecases__compare {
    margin-top: 56px;
}

.ai-act-usecases__compare > h3,
.ai-act-usecases__questions > h3 {
    font-family: var(--font-subtitle);
    font-size: clamp(20px, 3vw, 24px);
    font-weight: 700;
    color: var(--color-dark);
    text-align: center;
    margin: 0 0 24px;
    line-height: 1.3;
}

.ai-act-usecases__compare-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.ai-act-usecases__compare-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 24px 22px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
}

.ai-act-usecases__compare-card--assist {
    border-color: rgba(40, 153, 81, 0.3);
    background: linear-gradient(180deg, rgba(40, 153, 81, 0.06) 0%, #fff 55%);
}

.ai-act-usecases__compare-card--decide {
    border-color: rgba(217, 119, 6, 0.3);
    background: linear-gradient(180deg, rgba(217, 119, 6, 0.07) 0%, #fff 55%);
}

.ai-act-usecases__compare-label {
    display: inline-flex;
    align-self: flex-start;
    margin: 0 0 10px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.2;
}

.ai-act-usecases__compare-card--assist .ai-act-usecases__compare-label {
    background: rgba(40, 153, 81, 0.12);
    color: #166534;
}

.ai-act-usecases__compare-card--decide .ai-act-usecases__compare-label {
    background: rgba(217, 119, 6, 0.14);
    color: #9a3412;
}

.ai-act-usecases__compare-card h4 {
    font-family: var(--font-subtitle);
    font-size: 17px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 10px;
    line-height: 1.35;
}

.ai-act-usecases__compare-card p:last-child {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-usecases__note {
    margin-top: 40px;
}

.ai-act-usecases__questions {
    margin-top: 48px;
}

.ai-act-usecases__questions-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ai-act-usecases__questions-list li {
    position: relative;
    padding: 12px 14px 12px 44px;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #f7faf8 0%, #ffffff 100%);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--color-dark);
}

.ai-act-usecases__questions-list li::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: rgba(40, 153, 81, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23289951' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
}

.ai-act-usecases__actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}

@media (max-width: 1100px) {
    .ai-act-usecases__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .ai-act-usecases__compare-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .ai-act-usecases__grid {
        grid-template-columns: 1fr;
    }

    .ai-act-usecases__questions-list {
        grid-template-columns: 1fr;
    }

    .ai-act-usecases__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — FAQ
   ══════════════════════════════════════════════ */
.ai-act-faq .sp-faq__sidebar .btn {
    background: var(--pole-4, #72AA95);
    border-color: var(--pole-4, #72AA95);
}

.ai-act-faq__note {
    margin-top: 48px;
}

.ai-act-faq__actions {
    margin-top: 32px;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
}

@media (max-width: 640px) {
    .ai-act-faq__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ══════════════════════════════════════════════
   AI ACT — Section contact / conversion
   ══════════════════════════════════════════════ */
#contact-conformite-ai-act,
#audit-conformite-ai-act,
#accompagnement-ai-act,
#livrables-conformite-ia,
#calendrier-ai-act,
#sanctions-ai-act,
#cas-usages-ai-act,
#faq-ai-act {
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}

.sp-contact-ai-act {
    background: linear-gradient(180deg, #fff 0%, var(--pole-4-bg, #ebf5f1) 40%, var(--color-light-gray) 100%);
}

.sp-contact-ai-act .sp-contact-rgpd__prepare h3 {
    font-size: 18px;
}

.sp-contact-ai-act .sp-contact-rgpd__trust svg {
    color: var(--pole-4, #2d7a5e);
}

.sp-contact-ai-act .sp-contact-rgpd__links a {
    color: var(--pole-4, #2d7a5e);
}

.ai-act-contact__reassure {
    margin-top: 12px;
}

.ai-act-contact__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 40px;
    align-items: stretch;
}

.ai-act-contact__step {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 22px 20px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
}

.ai-act-contact__step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: var(--pole-4, #72AA95);
    color: #fff;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 700;
}

.ai-act-contact__step h3 {
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 8px;
    line-height: 1.35;
}

.ai-act-contact__step p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--color-gray);
    flex: 1 1 auto;
}

.ai-act-contact__note {
    margin-top: 40px;
}

@media (max-width: 900px) {
    .ai-act-contact__steps {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
   CRÉATION SITE WEB — Orienteur projet
   ══════════════════════════════════════════════ */
.csw-orient {
    padding: 72px 0 80px;
    background: #fff;
}
.csw-orient .sp-section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 36px;
}
.csw-orient__shell {
    background: #fff;
    border: 1px solid rgba(40, 153, 81, 0.22);
    border-radius: 22px;
    box-shadow: 0 18px 50px rgba(40, 153, 81, 0.07);
    overflow: hidden;
}
.csw-orient__layout {
    display: grid;
    grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
    min-height: 520px;
}
.csw-orient__config {
    padding: 24px 20px;
    background: #f4faf6;
    border-right: 1px solid rgba(40, 153, 81, 0.16);
}
.csw-orient__block {
    margin: 0 0 20px;
    padding: 0;
    border: 0;
}
.csw-orient__legend {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-1, #289951);
}
.csw-orient__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.csw-orient__options--stack {
    flex-direction: column;
}
.csw-orient__opt {
    appearance: none;
    border: 1.5px solid #d5e8db;
    background: #fff;
    color: #334155;
    border-radius: 10px;
    padding: 9px 12px;
    font-family: var(--font-subtitle);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    text-align: left;
    transition: border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.csw-orient__options--stack .csw-orient__opt {
    width: 100%;
}
.csw-orient__opt:hover {
    border-color: rgba(40, 153, 81, 0.45);
}
.csw-orient__opt:focus-visible {
    outline: 2px solid var(--pole-1, #289951);
    outline-offset: 2px;
}
.csw-orient__opt.is-selected {
    border-color: rgba(40, 153, 81, 0.55);
    background: linear-gradient(135deg, #edf8f1 0%, #e3f4e9 100%);
    color: #1a5c32;
    box-shadow: 0 6px 16px rgba(40, 153, 81, 0.08);
}
.csw-orient__hint {
    margin: 8px 0 0;
    font-size: 12px;
    color: #64748b;
}
.csw-orient__dash {
    padding: 26px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.csw-orient__dash.is-swap {
    animation: csw-orient-fade .28s ease;
}
@keyframes csw-orient-fade {
    from { opacity: .45; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}
.csw-orient__dash-label {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-1, #289951);
    font-family: var(--font-subtitle);
}
.csw-orient__kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.csw-orient__kpi {
    padding: 14px 12px;
    border-radius: 14px;
    background: linear-gradient(160deg, #f4faf6 0%, #eef7f1 100%);
    border: 1px solid rgba(40, 153, 81, 0.18);
}
.csw-orient__kpi-label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
}
.csw-orient__kpi strong {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.csw-orient__panel {
    background: #f8fafc;
    border: 1px solid #e8eef0;
    border-radius: 14px;
    padding: 14px 14px 12px;
}
.csw-orient__panel-title {
    margin: 0 0 10px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--pole-1, #289951);
}
.csw-orient__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 28px;
}
.csw-orient__tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: #edf8f1;
    border: 1px solid rgba(40, 153, 81, 0.22);
    color: #1a5c32;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--font-subtitle);
}
.csw-orient__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.csw-orient__list li {
    position: relative;
    padding-left: 14px;
    font-size: 13.5px;
    line-height: 1.45;
    color: #334155;
}
.csw-orient__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--pole-1, #289951);
}
.csw-orient__cta {
    align-self: flex-start;
    margin-top: 4px;
}
.csw-orient__note {
    margin: 0;
    font-size: 12.5px;
    color: #64748b;
    line-height: 1.5;
}
@media (max-width: 1100px) {
    .csw-orient__layout {
        grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    }
    .csw-orient__kpi {
        padding: 12px 10px;
    }
    .csw-orient__kpi strong {
        font-size: 14px;
    }
}
@media (max-width: 980px) {
    .csw-orient__layout {
        grid-template-columns: 1fr;
    }
    .csw-orient__dash {
        order: -1;
        border-bottom: 1px solid rgba(40, 153, 81, 0.16);
    }
    .csw-orient__config {
        border-right: 0;
        border-bottom: 0;
    }
    .csw-orient__kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .csw-orient__cta {
        align-self: stretch;
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}
@media (max-width: 600px) {
    .csw-orient {
        padding: 52px 0 56px;
    }
    .csw-orient__shell {
        border-radius: 16px;
    }
    .csw-orient__config {
        padding: 18px 14px 20px;
    }
    .csw-orient__dash {
        padding: 18px 14px 16px;
        gap: 14px;
    }
    .csw-orient__kpis {
        gap: 8px;
    }
    .csw-orient__kpi {
        padding: 10px 8px;
    }
    .csw-orient__kpi-label {
        font-size: 10px;
        margin-bottom: 4px;
        line-height: 1.25;
    }
    .csw-orient__kpi strong {
        font-size: 13px;
    }
    .csw-orient__opt {
        font-size: 12.5px;
        padding: 10px 12px;
        min-height: 44px;
    }
    .csw-orient__options:not(.csw-orient__options--stack) .csw-orient__opt {
        flex: 1 1 calc(50% - 8px);
        min-width: 0;
    }
}
@media (max-width: 420px) {
    .csw-orient__kpis {
        grid-template-columns: 1fr;
    }
    .csw-orient__options:not(.csw-orient__options--stack) .csw-orient__opt {
        flex: 1 1 100%;
    }
}
@media (prefers-reduced-motion: reduce) {
    .csw-orient__dash.is-swap {
        animation: none;
    }
}

/* ══════════════════════════════════════════════
   CRÉATION SITE WEB — Timeline construction
   ══════════════════════════════════════════════ */
.csw-timeline {
    padding: 72px 0 80px;
    background: var(--color-light-gray, #f5f7f9);
}
.csw-timeline .sp-section-header {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 40px;
}
.csw-timeline__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px;
    position: relative;
}
.csw-timeline__list::before {
    content: '';
    position: absolute;
    left: 4%;
    right: 4%;
    top: 20px;
    height: 2px;
    background: rgba(40, 153, 81, 0.2);
    pointer-events: none;
}
.csw-timeline__item {
    position: relative;
    text-align: center;
    padding-top: 4px;
}
.csw-timeline__num {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: var(--pole-1, #289951);
    color: #fff;
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 0 0 6px var(--color-light-gray, #f5f7f9);
}
.csw-timeline__title {
    margin: 0 0 8px;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}
.csw-timeline__text {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--color-gray);
}
@media (max-width: 1100px) {
    .csw-timeline__list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 28px 20px;
    }
    .csw-timeline__list::before {
        display: none;
    }
}
@media (max-width: 700px) {
    .csw-timeline {
        padding: 52px 0 56px;
    }
    .csw-timeline__list {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .csw-timeline__item {
        display: grid;
        grid-template-columns: 40px 1fr;
        grid-template-rows: auto auto;
        column-gap: 16px;
        text-align: left;
        padding: 0 0 24px;
    }
    .csw-timeline__item:not(:last-child)::before {
        content: '';
        position: absolute;
        left: 19px;
        top: 40px;
        bottom: 0;
        width: 2px;
        background: rgba(40, 153, 81, 0.2);
    }
    .csw-timeline__num {
        grid-row: 1 / span 2;
        margin-bottom: 0;
        box-shadow: none;
    }
    .csw-timeline__title {
        margin-bottom: 4px;
        align-self: end;
    }
}

/* ── ERP/CRM configurator — architecture dynamique ───────────────── */
.erp-orient .csw-orient__config {
    max-height: min(78vh, 820px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.erp-orient .csw-orient__kpi strong {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.erp-arch-panel {
    background: linear-gradient(160deg, #f4faf6 0%, #f8fafc 100%);
}
.erp-arch {
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px 0 2px;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.erp-arch__node {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 86px;
    max-width: 100%;
    padding: 8px 12px;
    border-radius: 10px;
    background: #fff;
    border: 1.5px solid #d5e8db;
    color: #1e293b;
    font-family: var(--font-subtitle);
    font-size: 12.5px;
    font-weight: 700;
    text-align: center;
    box-shadow: 0 4px 12px rgba(40, 153, 81, 0.06);
}
.erp-arch__node--core {
    border-color: rgba(40, 153, 81, 0.55);
    background: linear-gradient(135deg, #edf8f1 0%, #e3f4e9 100%);
    color: #1a5c32;
}
.erp-arch__node--accent {
    border-color: rgba(40, 153, 81, 0.35);
    background: #fff;
    color: var(--pole-1, #289951);
}
.erp-arch__node--hub {
    min-width: 110px;
    border-color: rgba(40, 153, 81, 0.6);
    background: var(--pole-1, #289951);
    color: #fff;
    box-shadow: 0 8px 20px rgba(40, 153, 81, 0.18);
}
.erp-arch__arrow {
    color: var(--pole-1, #289951);
    font-size: 16px;
    line-height: 1;
    font-weight: 700;
    text-align: center;
    margin: 2px 0;
}
.erp-arch__bidir {
    color: var(--pole-1, #289951);
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}
.erp-arch__flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    width: 100%;
}
.erp-arch__side {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed rgba(40, 153, 81, 0.28);
    width: min(100%, 220px);
}
.erp-arch__tree {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 100%;
}
.erp-arch__row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}
.erp-arch__branches {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: min(100%, 320px);
    position: relative;
}
.erp-arch__branches::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    width: 1px;
    height: 8px;
    background: rgba(40, 153, 81, 0.35);
}
.erp-arch__branches li {
    padding: 8px 10px;
    border-radius: 10px;
    background: #fff;
    border: 1.5px solid #d5e8db;
    font-family: var(--font-subtitle);
    font-size: 12.5px;
    font-weight: 700;
    color: #334155;
    text-align: center;
    position: relative;
}
.erp-arch__branches li::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    width: 1px;
    height: 8px;
    background: rgba(40, 153, 81, 0.28);
}
.erp-arch__hub {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
}
.erp-arch__sources {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    width: 100%;
}
.erp-arch__hub-links {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
}
.erp-arch__hub-line {
    display: block;
    width: 1px;
    height: 10px;
    background: rgba(40, 153, 81, 0.4);
}
@media (max-width: 980px) {
    .erp-orient .csw-orient__config {
        max-height: none;
        overflow: visible;
    }
}
@media (max-width: 600px) {
    .erp-orient .csw-orient__kpis {
        grid-template-columns: 1fr;
    }
    .erp-orient .csw-orient__cta {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
    .erp-arch {
        min-height: 0;
        padding: 4px 0;
    }
    .erp-arch__node {
        min-width: 0;
        padding: 8px 10px;
        font-size: 12px;
    }
    .erp-arch__node--hub {
        min-width: 0;
        width: min(100%, 160px);
    }
    .erp-arch__branches {
        grid-template-columns: 1fr;
        width: 100%;
    }
    .erp-arch__branches li::before,
    .erp-arch__branches::before {
        display: none;
    }
    .erp-arch__sources .erp-arch__node {
        flex: 1 1 calc(50% - 8px);
    }
}

/* ── Architecte logiciel — page développement ────────────────────── */
.dev-orient .csw-orient__config {
    max-height: min(78vh, 860px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.dev-orient .csw-orient__kpi strong {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.dl-arch {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.dl-arch__cross {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
}
.dl-arch__mid-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    width: 100%;
}
.dl-arch__mid-row .erp-arch__node {
    min-width: 0;
    max-width: 100%;
}
.dl-arch__h-arrow {
    color: var(--pole-1, #289951);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}
.dl-arch__tree {
    gap: 8px;
    width: 100%;
    min-width: 0;
}
@media (max-width: 980px) {
    .dev-orient .csw-orient__config {
        max-height: none;
        overflow: visible;
    }
}
@media (max-width: 600px) {
    .dev-orient .csw-orient__kpis {
        grid-template-columns: 1fr;
    }
    .dev-orient .csw-orient__cta {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
    .dl-arch__mid-row {
        flex-direction: column;
        gap: 6px;
    }
    .dl-arch__h-arrow {
        transform: rotate(90deg);
    }
    .dl-arch .erp-arch__node,
    .dl-arch .erp-arch__node--hub {
        min-width: 0;
        width: min(100%, 200px);
        font-size: 12px;
        padding: 8px 10px;
    }
    .dl-arch .erp-arch__branches {
        grid-template-columns: 1fr;
        width: 100%;
    }
}

/* ── ERP/CRM — bloc Odoo court (page mère) ───────────────────────── */
.erp-odoo {
    padding: 28px 0 72px;
    background: #fff;
}
.erp-odoo__card {
    max-width: 860px;
    margin: 0 auto;
    padding: 36px 40px;
    border-radius: 22px;
    border: 1px solid rgba(40, 153, 81, 0.22);
    background: linear-gradient(160deg, #f4faf6 0%, #ffffff 55%, #eef7f1 100%);
    box-shadow: 0 18px 50px rgba(40, 153, 81, 0.07);
    text-align: center;
}
.erp-odoo__card .sp-section-tag {
    margin-bottom: 12px;
}
.erp-odoo__card h2 {
    margin: 0 0 14px;
    font-family: var(--font-title);
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.25;
}
.erp-odoo__text {
    margin: 0 auto 24px;
    max-width: 680px;
    font-size: 16px;
    line-height: 1.65;
    color: #475569;
}
.erp-odoo__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}
@media (max-width: 600px) {
    .erp-odoo {
        padding: 12px 0 56px;
    }
    .erp-odoo__card {
        padding: 28px 20px;
    }
    .erp-odoo__actions .btn {
        width: 100%;
    }
}

/* ══════════════════════════════════════════════
   CRÉATION SITE WEB — Après mise en ligne (léger)
   ══════════════════════════════════════════════ */
.csw-aftercare {
    padding: 56px 0 64px;
    background: #fff;
    border-top: 1px solid var(--color-border);
}
.csw-aftercare .sp-section-header {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 28px;
}
.csw-aftercare .sp-section-header h2 {
    font-size: clamp(22px, 2.6vw, 28px);
}
.csw-aftercare__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.csw-aftercare__card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 16px;
    border-radius: 14px;
    border: 1px solid var(--color-border);
    background: var(--color-light-gray, #f5f7f9);
    text-decoration: none;
    color: inherit;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.csw-aftercare__card:hover {
    border-color: rgba(40, 153, 81, 0.45);
    background: #edf8f1;
    transform: translateY(-2px);
}
.csw-aftercare__card:focus-visible {
    outline: 2px solid var(--pole-1, #289951);
    outline-offset: 2px;
}
.csw-aftercare__card-title {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 15px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}
.csw-aftercare__card-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-gray);
    flex: 1;
}
.csw-aftercare__card-cta {
    margin-top: 8px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--pole-1, #289951);
}
@media (max-width: 900px) {
    .csw-aftercare__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .csw-aftercare {
        padding: 44px 0 52px;
    }
    .csw-aftercare__grid {
        grid-template-columns: 1fr;
    }
}

/* ── ERP/CRM — CTA sous section synchronisation ──────────────────── */
.erp-sync-cta {
    margin: 28px 0 0;
    text-align: center;
}

/* ── ERP/CRM — timeline 9 étapes ─────────────────────────────────── */
.csw-timeline__list--9 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px 24px;
}
.csw-timeline__list--9::before {
    display: none;
}
.csw-timeline__list--9 .csw-timeline__item {
    background: #fff;
    border: 1px solid rgba(40, 153, 81, 0.16);
    border-radius: 16px;
    padding: 22px 18px 20px;
    box-shadow: 0 10px 28px rgba(40, 153, 81, 0.05);
    text-align: left;
}
.csw-timeline__list--9 .csw-timeline__num {
    margin-bottom: 12px;
    box-shadow: 0 0 0 4px #fff;
}
.csw-timeline__list--9 .csw-timeline__title {
    font-size: 16px;
}
@media (max-width: 700px) {
    .csw-timeline__list--9 .csw-timeline__item {
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        padding: 0 0 24px;
    }
    .csw-timeline__list--9 .csw-timeline__num {
        box-shadow: none;
    }
}

/* ── ERP/CRM — note propriété Odoo / SaaS ────────────────────────── */
.erp-ownership-note {
    max-width: 720px;
    margin: 20px auto 0;
    text-align: center;
    font-size: 13.5px;
    line-height: 1.55;
    color: #64748b;
}

/* ── ERP/CRM — hub cocon maillage ────────────────────────────────── */
.erp-hub .sp-section-header {
    margin-bottom: 28px;
}
.erp-hub__label {
    margin: 0 0 14px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-1, #289951);
}
.erp-hub__label--secondary {
    margin-top: 36px;
    color: #64748b;
}
.erp-hub__grid {
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 980px) {
    .erp-hub__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .erp-hub__grid {
        grid-template-columns: 1fr;
    }
}

/* ── ERP/CRM — ancres sticky + compare mobile ────────────────────── */
#orienteur,
#methode,
#odoo,
#synchronisation,
#propriete,
#cocon,
#approche-solution {
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
}
@media (max-width: 600px) {
    .sp-compare-table--3col,
    .sp-compare-table--4col {
        min-width: 560px;
        font-size: 13px;
    }
    .sp-compare-table--3col th,
    .sp-compare-table--3col td,
    .sp-compare-table--4col th,
    .sp-compare-table--4col td {
        padding: 12px 14px;
    }
    .erp-odoo__actions {
        flex-direction: column;
    }
    .erp-odoo__actions .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* ── ERP/CRM — prix plans sans retour à la ligne du € ────────────── */
.sp-pricing--erp .sp-plan__price span,
.sp-pricing--compact-price .sp-plan__price span {
    font-size: clamp(20px, 2.1vw, 26px);
    white-space: nowrap;
    letter-spacing: -0.02em;
}
.sp-pricing--erp .sp-plan__price,
.sp-pricing--compact-price .sp-plan__price {
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 6px;
    white-space: nowrap;
}
@media (max-width: 600px) {
    .sp-pricing--compact-price .sp-plan {
        padding: 24px 18px;
    }
}
@media (max-width: 400px) {
    .sp-pricing--compact-price .sp-plan__price,
    .sp-pricing--compact-price .sp-plan__price span {
        white-space: normal;
        flex-wrap: wrap;
    }
    .sp-pricing--compact-price .sp-plan__price span {
        font-size: clamp(18px, 5.5vw, 22px);
        line-height: 1.15;
    }
}

/* ══════════════════════════════════════════════
   CRÉATION SITE WEB — SEO & visibilité
   ══════════════════════════════════════════════ */
.csw-seo {
    padding: 72px 0 80px;
    background: #fff;
}
.csw-seo .sp-section-header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 40px;
}
.csw-seo__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.9fr);
    gap: 28px;
    align-items: start;
}
.csw-seo__base-title {
    margin: 0 0 18px;
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 800;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.csw-seo__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.csw-seo__item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 16px 14px;
    border-radius: var(--radius-md, 12px);
    border: 1.5px solid var(--color-border);
    background: var(--color-white);
}
.csw-seo__item-icon {
    flex: 0 0 42px;
    flex-shrink: 0;
    box-sizing: border-box;
    width: 42px;
    min-width: 42px;
    max-width: 42px;
    height: 42px;
    min-height: 42px;
    border-radius: var(--radius-sm, 10px);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.csw-seo__item-icon svg {
    display: block;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}
.csw-seo__item-title {
    margin: 0 0 4px;
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}
.csw-seo__item-text {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-gray);
}
.csw-seo__note {
    margin: 16px 0 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--color-gray);
}
.csw-seo__aside {
    padding: 26px 22px 24px;
    border-radius: 18px;
    border: 1.5px solid rgba(40, 153, 81, 0.28);
    background: linear-gradient(165deg, #f4faf6 0%, #fff 55%);
    box-shadow: 0 12px 32px rgba(40, 153, 81, 0.08);
    position: sticky;
    top: 96px;
}
.csw-seo__aside-badge {
    display: inline-flex;
    align-items: center;
    margin: 0 0 12px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(40, 153, 81, 0.12);
    color: var(--pole-1, #289951);
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.csw-seo__aside-title {
    margin: 0 0 12px;
    font-family: var(--font-title);
    font-size: clamp(20px, 2.2vw, 24px);
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.csw-seo__aside-text {
    margin: 0 0 16px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--color-gray);
}
.csw-seo__aside-text a {
    color: var(--pole-1, #289951);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.csw-seo__aside-list {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.csw-seo__aside-list li {
    position: relative;
    padding-left: 16px;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--color-dark);
    font-weight: 600;
}
.csw-seo__aside-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--pole-1, #289951);
}
.csw-seo__aside-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.csw-seo__aside-actions .btn {
    width: 100%;
    justify-content: center;
    text-align: center;
}
.csw-seo__quote {
    margin-top: 40px;
}
.csw-seo__quote a {
    color: var(--pole-1, #289951);
    text-decoration: underline;
    text-underline-offset: 2px;
}
@media (max-width: 980px) {
    .csw-seo__layout {
        grid-template-columns: 1fr;
    }
    .csw-seo__aside {
        position: static;
    }
}
@media (max-width: 700px) {
    .csw-seo {
        padding: 52px 0 56px;
    }
    .csw-seo__grid {
        grid-template-columns: 1fr;
    }
}

/* ── ERP/CRM — propriété : 4 + 3 centrés ─────────────────────────── */
.sp-reasons__grid.erp-ownership-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    grid-template-columns: none;
}
.sp-reasons__grid.erp-ownership-grid > .sp-reason-card {
    flex: 0 1 calc(25% - 18px);
    max-width: calc(25% - 18px);
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 1100px) {
    .sp-reasons__grid.erp-ownership-grid > .sp-reason-card {
        flex: 0 1 calc(33.333% - 16px);
        max-width: calc(33.333% - 16px);
    }
}
@media (max-width: 700px) {
    .sp-reasons__grid.erp-ownership-grid > .sp-reason-card {
        flex: 0 1 calc(50% - 12px);
        max-width: calc(50% - 12px);
    }
}
@media (max-width: 480px) {
    .sp-reasons__grid.erp-ownership-grid > .sp-reason-card {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

/* ── ERP/CRM — bénéfices : 4 blocs par ligne ─────────────────────── */
.sp-reasons__grid.erp-benefits-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    grid-template-columns: none;
}
.sp-reasons__grid.erp-benefits-grid > .sp-reason-card {
    flex: 0 1 calc(25% - 18px);
    max-width: calc(25% - 18px);
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 1100px) {
    .sp-reasons__grid.erp-benefits-grid > .sp-reason-card {
        flex: 0 1 calc(50% - 12px);
        max-width: calc(50% - 12px);
    }
}
@media (max-width: 600px) {
    .sp-reasons__grid.erp-benefits-grid > .sp-reason-card {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

/* ══════════════════════════════════════════════
   SEO — pilotage dashboard (simulation)
   ══════════════════════════════════════════════ */
.seo-dash {
    padding: 80px 0;
    background: linear-gradient(180deg, #fdf8f3 0%, #ffffff 55%);
}
.seo-dash .sp-section-header {
    margin-bottom: 36px;
}
.seo-dash__shell {
    background: #fffcf9;
    border: 1px solid rgba(191, 155, 121, 0.35);
    border-radius: 24px;
    box-shadow: 0 18px 48px rgba(89, 60, 30, 0.06);
    padding: clamp(12px, 1.6vw, 18px);
}
.seo-dash__layout {
    display: grid;
    grid-template-columns: minmax(240px, 0.34fr) minmax(0, 0.66fr);
    gap: 14px;
    align-items: start;
}
.seo-dash__config {
    position: sticky;
    top: 80px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: 16px 14px 14px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
    max-height: calc(100vh - 96px);
    overflow: auto;
}
.seo-dash__block {
    border: 0;
    margin: 0 0 14px;
    padding: 0;
}
.seo-dash__block:last-child {
    margin-bottom: 0;
}
.seo-dash__legend {
    padding: 0;
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6b5a4a;
    font-family: var(--font-subtitle);
}
.seo-dash__options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.seo-dash__options--stack {
    flex-direction: column;
}
.seo-dash__opt {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 36px;
    padding: 7px 11px;
    border-radius: 10px;
    border: 1.5px solid #e2d6c8;
    background: #fff;
    color: #1e293b;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
}
.seo-dash__options--stack .seo-dash__opt {
    width: 100%;
}
.seo-dash__opt:hover {
    border-color: var(--pole-2);
    background: var(--pole-2-bg);
}
.seo-dash__opt:focus-visible {
    outline: 2px solid var(--pole-2);
    outline-offset: 2px;
}
.seo-dash__opt.is-selected {
    background: rgba(191, 155, 121, 0.14);
    border-color: var(--pole-2);
    color: #5c4030;
    box-shadow: inset 0 0 0 1px rgba(191, 155, 121, 0.2);
}
.seo-dash__check {
    display: none;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: var(--pole-2);
    color: #fff;
    align-items: center;
    justify-content: center;
}
.seo-dash__opt.is-selected .seo-dash__check {
    display: inline-flex;
}
.seo-dash__preview {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    padding: 16px 16px 14px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.seo-dash__preview--pulse {
    animation: seo-dash-fade .28s ease;
}
@keyframes seo-dash-fade {
    from { opacity: 0.72; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .seo-dash__preview--pulse,
    .seo-dash__bar > span {
        animation: none !important;
        transition: none !important;
    }
}
.seo-dash__preview-head {
    padding-bottom: 2px;
}
.seo-dash__preview-label {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-2);
    font-family: var(--font-subtitle);
}
.seo-dash__preview-context {
    margin: 0;
    font-size: 13px;
    color: #64748b;
}
.seo-dash__kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.seo-dash__kpi {
    background: #fbfcfe;
    border: 1px solid #e8dfd4;
    border-radius: 12px;
    padding: 12px 10px;
    text-align: center;
}
.seo-dash__kpi-label {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 650;
    color: #6b7280;
    line-height: 1.3;
}
.seo-dash__kpi-value {
    display: block;
    font-family: var(--font-title);
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 900;
    color: var(--color-dark);
    line-height: 1.1;
}
.seo-dash__block-title {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 800;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}
.seo-dash__bars {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.seo-dash__bar-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
    font-size: 12.5px;
}
.seo-dash__bar-meta span {
    color: #475569;
    font-weight: 650;
}
.seo-dash__bar-meta strong {
    color: var(--color-dark);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.seo-dash__bar {
    height: 8px;
    border-radius: 999px;
    background: #f0e8df;
    overflow: hidden;
}
.seo-dash__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #c9a884 0%, var(--pole-2) 100%);
    transition: width .35s ease;
}
.seo-dash__plan-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.seo-dash__plan-list li {
    position: relative;
    padding: 8px 0 8px 18px;
    font-size: 13.5px;
    line-height: 1.45;
    color: #475569;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.seo-dash__plan-list li:first-child {
    border-top: 0;
    padding-top: 0;
}
.seo-dash__plan-list li:last-child {
    padding-bottom: 0;
}
.seo-dash__plan-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.95em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-2);
}
.seo-dash__plan-list li:first-child::before {
    top: 0.55em;
}
.seo-dash__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.seo-dash__tags span {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--pole-2-bg);
    color: #5c4030;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid rgba(191, 155, 121, 0.35);
}
.seo-dash__cta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-top: 4px;
}
.seo-dash__disclaimer {
    margin: 0;
    font-size: 12px;
    color: #94a3b8;
    font-style: italic;
    line-height: 1.45;
}
.seo-dash__legend-hint {
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: #94a3b8;
    font-size: 10.5px;
}
.seo-dash__roadmap {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.seo-dash__roadmap-phase h4 {
    margin: 0 0 4px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pole-2);
}
.seo-dash__roadmap-phase .seo-dash__plan-list {
    margin: 0;
}
.seo-dash__bars-block .seo-dash__disclaimer {
    margin-top: 10px;
}
[data-strat-diag] .seo-dash__kpi-value {
    font-size: clamp(15px, 1.5vw, 20px);
}
.seo-dash--org {
    background: linear-gradient(180deg, var(--pole-0-bg) 0%, #ffffff 55%);
}
.seo-dash--org .seo-dash__shell {
    background: #f7f9fc;
    border-color: rgba(89, 122, 175, 0.28);
    box-shadow: 0 18px 48px rgba(58, 90, 160, 0.08);
}
.seo-dash--org .seo-dash__preview-label,
.seo-dash--org .seo-dash__legend {
    color: var(--pole-0);
}
.seo-dash--org .seo-dash__opt {
    border-color: #d0d8e4;
}
.seo-dash--org .seo-dash__opt:hover {
    border-color: var(--pole-0);
    background: var(--pole-0-bg);
}
.seo-dash--org .seo-dash__opt:focus-visible {
    outline-color: var(--pole-0);
}
.seo-dash--org .seo-dash__opt.is-selected {
    background: rgba(89, 122, 175, 0.12);
    border-color: var(--pole-0);
    color: var(--color-primary-dark);
    box-shadow: inset 0 0 0 1px rgba(89, 122, 175, 0.2);
}
.seo-dash--org .seo-dash__check {
    background: var(--pole-0);
}
.seo-dash--org .seo-dash__kpi {
    border-color: #d0d8e4;
}
.seo-dash--org .seo-dash__bar {
    background: #e8eef6;
}
.seo-dash--org .seo-dash__bar > span {
    background: linear-gradient(90deg, #7a9fd4 0%, var(--pole-0) 100%);
}
[data-pentest-cfg] .seo-dash__kpi-value--text {
    font-size: clamp(13px, 1.35vw, 17px);
    font-weight: 800;
    line-height: 1.25;
}
[data-pentest-cfg] .pentest-cfg__flag {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 4px 0 2px;
    padding: 10px 12px;
    background: #fbfcfe;
    border: 1px solid #d0d8e4;
    border-radius: 12px;
}
[data-pentest-cfg] .pentest-cfg__flag span {
    font-size: 13px;
    font-weight: 650;
    color: #6b7280;
}
[data-pentest-cfg] .pentest-cfg__flag strong {
    font-size: 18px;
    font-weight: 800;
    color: var(--pole-0);
    line-height: 1;
}
.pentest-report {
    max-width: 980px;
    margin: 0 auto;
    background: #fff;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}
.pentest-report__chrome {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #eef2f7;
    border-bottom: 1px solid var(--color-border);
}
.pentest-report__dots {
    display: flex;
    gap: 6px;
}
.pentest-report__dots span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #c5cdd8;
}
.pentest-report__chrome-title {
    margin: 0;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pole-0);
    font-family: var(--font-subtitle);
}
.pentest-report__body {
    display: grid;
    grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr);
    align-items: stretch;
}
.pentest-report__aside {
    padding: 24px 22px 28px;
    background: #f7f9fc;
    border-right: 1px solid var(--color-border);
}
.pentest-report__aside h3 {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
}
.pentest-report__aside h3:not(:first-child) {
    margin-top: 28px;
}
.pentest-report__aside ul,
.pentest-report__aside ol {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}
.pentest-report__aside li {
    position: relative;
    padding-left: 16px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--color-gray);
}
.pentest-report__aside ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pole-0);
}
.pentest-report__aside ol {
    counter-reset: pentest-roadmap;
}
.pentest-report__aside ol li {
    padding-left: 28px;
    font-weight: 650;
    color: var(--color-dark);
}
.pentest-report__aside ol li::before {
    counter-increment: pentest-roadmap;
    content: counter(pentest-roadmap);
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--pole-0);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pentest-report .smq-fiche {
    max-width: none;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    height: 100%;
}
@media (max-width: 900px) {
    .pentest-report__body {
        grid-template-columns: 1fr;
    }
    .pentest-report__aside {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }
}

.pentest-who__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
}
.pentest-who__grid > :nth-child(-n+4) {
    grid-column: span 3;
}
.pentest-who__grid > :nth-child(n+5) {
    grid-column: span 4;
}
.pentest-who__grid > .sp-reason-card {
    min-width: 0;
}
.pentest-price__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 1080px;
}
.pentest-price__grid .org-price__item {
    min-width: 0;
}
.pentest-price__grid .org-price__item:last-child:nth-child(odd) {
    grid-column: auto;
}
.pentest-price__grid .org-price__item h3 {
    margin-bottom: 0;
    overflow-wrap: anywhere;
}
.pentest-retest .gov-scheme--chain .gov-scheme__node strong {
    overflow-wrap: anywhere;
}
#classification-failles .sp-reasons__grid--4across > .sp-reason-card,
#finding-classification .sp-reasons__grid--4across > .sp-reason-card,
#duree-pentest .sp-reason-card,
#pentest-duration .sp-reason-card,
#cadre-autorise .sp-reason-card,
#authorised-framework .sp-reason-card {
    min-width: 0;
}
@media (min-width: 1101px) {
    #cadre-autorise .sp-reasons__grid.sp-reasons__grid--4across,
    #authorised-framework .sp-reasons__grid.sp-reasons__grid--4across {
        gap: 16px;
    }
    #cadre-autorise .sp-reason-card,
    #authorised-framework .sp-reason-card {
        padding: 22px 18px;
    }
}
#tarifs .sp-plan__price span,
#pricing .sp-plan__price span {
    overflow-wrap: anywhere;
}
[data-pentest-cfg] .seo-dash__kpi,
[data-pentest-cfg] .seo-dash__opt {
    min-width: 0;
    overflow-wrap: anywhere;
}

.pentest-retest {
    background: #f7fbf8;
    padding: 100px 0 80px;
}
.pentest-retest .sp-section-header {
    margin-bottom: 36px;
}
.pentest-retest .gov-scheme--chain {
    max-width: 1080px;
    margin: 0 auto;
    background: #fff;
    border-color: rgba(40, 153, 81, 0.22);
}
.pentest-retest .smq-statement {
    margin-top: 36px;
}
.pentest-retest__grid {
    margin-top: 40px;
}
.pentest-retest__card h3 {
    margin: 0 0 8px;
}
.pentest-retest__card p:last-child {
    margin: 0;
}
.pentest-retest__card--included {
    border-color: rgba(40, 153, 81, 0.35);
    background: #fff;
    box-shadow: 0 8px 28px rgba(40, 153, 81, 0.08);
}
.pentest-retest__badge {
    display: inline-block;
    margin: 0 0 14px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-family: var(--font-subtitle);
    line-height: 1.2;
}
.pentest-retest__badge--optional {
    background: #eef2f7;
    color: var(--color-gray);
}
.pentest-retest__badge--included {
    background: #e7f6ec;
    color: var(--color-secondary);
}
.pentest-retest .sp-audit-includes__footer {
    margin-top: 36px;
}
.sp-plan:has(.pentest-plan-retest) .sp-plan__btn {
    margin-top: 16px;
}
.pentest-plan-retest {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: auto 0 0;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1.5px solid var(--color-border);
    background: var(--color-light-gray);
}
.pentest-plan-retest span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
}
.pentest-plan-retest strong {
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.35;
}
.pentest-plan-retest--included {
    background: #f0faf4;
    border-color: rgba(40, 153, 81, 0.28);
}
.pentest-plan-retest--included strong {
    color: var(--color-secondary);
}
.sp-pricing__note a {
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sp-pricing__note a:hover {
    color: var(--color-primary-dark);
}
@media (max-width: 1200px) {
    #contre-test .gov-scheme--chain,
    #retest .gov-scheme--chain {
        flex-direction: column;
        max-width: 300px;
        padding: 20px 16px 16px;
    }
    #contre-test .gov-scheme--chain .gov-scheme__node,
    #retest .gov-scheme--chain .gov-scheme__node {
        flex-direction: column;
    }
    #contre-test .gov-scheme--chain .gov-scheme__node strong,
    #retest .gov-scheme--chain .gov-scheme__node strong {
        width: 100%;
        font-size: 15px;
        padding: 12px 16px;
    }
    #contre-test .gov-scheme--chain .gov-scheme__arrow,
    #retest .gov-scheme--chain .gov-scheme__arrow {
        padding: 8px 0 10px;
    }
    #contre-test .gov-scheme--chain .gov-scheme__arrow::before,
    #retest .gov-scheme--chain .gov-scheme__arrow::before {
        content: "↓";
        font-size: 16px;
    }
    .pentest-who__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pentest-who__grid > :nth-child(-n+4),
    .pentest-who__grid > :nth-child(n+5) {
        grid-column: auto;
    }
}
@media (max-width: 1100px) {
    .pentest-price__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    #classification-failles .sp-reasons__grid.sp-reasons__grid--4across,
    #finding-classification .sp-reasons__grid.sp-reasons__grid--4across,
    #cadre-autorise .sp-reasons__grid.sp-reasons__grid--4across,
    #authorised-framework .sp-reasons__grid.sp-reasons__grid--4across {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    #duree-pentest .sp-reasons__grid--3col,
    #pentest-duration .sp-reasons__grid--3col,
    .pentest-retest__grid {
        grid-template-columns: 1fr;
    }
    [data-pentest-cfg] .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .pentest-who__grid,
    .pentest-price__grid {
        grid-template-columns: 1fr;
    }
    .pentest-retest {
        padding: 64px 0 56px;
    }
    #contre-test .smq-statement,
    #retest .smq-statement,
    #duree-pentest .smq-statement,
    #pentest-duration .smq-statement,
    #scan-vs-pentest .smq-statement,
    #cadre-autorise .smq-statement,
    #authorised-framework .smq-statement,
    #classification-failles .smq-statement,
    #finding-classification .smq-statement {
        padding: 16px;
        font-size: 17px;
    }
    #tarifs .sp-plan,
    #pricing .sp-plan {
        padding: 24px 20px;
    }
    #tarifs .sp-plan__price span,
    #pricing .sp-plan__price span {
        font-size: 28px;
    }
    #tarifs .sp-plan__name,
    #pricing .sp-plan__name {
        font-size: 15px;
    }
    #tarifs .sp-pricing__note,
    #pricing .sp-pricing__note {
        overflow-wrap: break-word;
    }
    #facteurs-prix .org-price__item,
    #issp-price-factors .org-price__item {
        padding: 14px 16px;
    }
    #quest-ce-qu-une-pssi .sp-reason-card,
    #what-is-an-issp .sp-reason-card {
        min-width: 0;
    }
    .pentest-plan-retest strong {
        overflow-wrap: anywhere;
    }
    .pentest-report__chrome {
        flex-wrap: wrap;
    }
    .sp-faq-item summary {
        overflow-wrap: anywhere;
    }
}

[data-rgpd-diag] .seo-dash__layout,
[data-rgpd-diag] .seo-dash__config,
[data-rgpd-diag] .seo-dash__preview {
    min-width: 0;
}
[data-rgpd-diag] .seo-dash__kpi-value--text {
    font-size: clamp(15px, 1.7vw, 20px);
    font-weight: 800;
    line-height: 1.2;
}
[data-rgpd-diag] .seo-dash__opt {
    overflow-wrap: break-word;
}
@media (max-width: 1100px) {
    [data-rgpd-diag] .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    [data-rgpd-diag] .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
    [data-rgpd-diag] .seo-dash__options--stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-direction: unset;
        gap: 8px;
    }
    [data-rgpd-diag] .seo-dash__opt {
        min-height: 44px;
        font-size: 13px;
        padding: 8px 12px;
    }
}
@media (max-width: 560px) {
    [data-rgpd-diag] {
        padding: 48px 0;
    }
    [data-rgpd-diag] .seo-dash__options--stack {
        grid-template-columns: 1fr;
    }
    [data-rgpd-diag] .seo-dash__cta {
        align-items: stretch;
    }
    [data-rgpd-diag] .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
}

[data-registre-diag] .seo-dash__layout,
[data-registre-diag] .seo-dash__config,
[data-registre-diag] .seo-dash__preview {
    min-width: 0;
}
[data-registre-diag] .seo-dash__kpi-value--text {
    font-size: clamp(15px, 1.7vw, 20px);
    font-weight: 800;
    line-height: 1.2;
}
[data-registre-diag] .seo-dash__opt {
    overflow-wrap: break-word;
}
@media (max-width: 1100px) {
    [data-registre-diag] .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    [data-registre-diag] .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
    [data-registre-diag] .seo-dash__options--stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-direction: unset;
        gap: 8px;
    }
    [data-registre-diag] .seo-dash__opt {
        min-height: 44px;
        font-size: 13px;
        padding: 8px 12px;
    }
}
@media (max-width: 560px) {
    [data-registre-diag] {
        padding: 48px 0;
    }
    [data-registre-diag] .seo-dash__options--stack {
        grid-template-columns: 1fr;
    }
    [data-registre-diag] .seo-dash__cta {
        align-items: stretch;
    }
    [data-registre-diag] .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
}

.seo-dash--org .seo-dash__plan-list li::before {
    background: var(--pole-0);
}
.org-dash__reco {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.35;
}
.seo-dash--iso9001 {
    background: linear-gradient(180deg, rgba(40, 153, 81, 0.08) 0%, #ffffff 55%);
}
.seo-dash--iso9001 .seo-dash__shell {
    background: #f6fbf8;
    border-color: rgba(40, 153, 81, 0.28);
    box-shadow: 0 18px 48px rgba(40, 153, 81, 0.08);
}
.seo-dash--iso9001 .seo-dash__preview-label,
.seo-dash--iso9001 .seo-dash__legend {
    color: var(--color-secondary);
}
.seo-dash--iso9001 .seo-dash__opt {
    border-color: #c5ddcf;
}
.seo-dash--iso9001 .seo-dash__opt:hover {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.08);
}
.seo-dash--iso9001 .seo-dash__opt:focus-visible {
    outline-color: var(--color-secondary);
}
.seo-dash--iso9001 .seo-dash__opt.is-selected {
    background: rgba(40, 153, 81, 0.12);
    border-color: var(--color-secondary);
    color: var(--color-primary-dark);
    box-shadow: inset 0 0 0 1px rgba(40, 153, 81, 0.2);
}
.seo-dash--iso9001 .seo-dash__check {
    background: var(--color-secondary);
}
.seo-dash--iso9001 .seo-dash__kpi {
    border-color: #c5ddcf;
}
.seo-dash--iso9001 .seo-dash__bar {
    background: #e4f1ea;
}
.seo-dash--iso9001 .seo-dash__bar > span {
    background: linear-gradient(90deg, #5bb87a 0%, var(--color-secondary) 100%);
}
.seo-dash--iso9001 .seo-dash__plan-list li::before {
    background: var(--color-secondary);
}
[data-org-diag] .seo-dash__kpi-value,
[data-smq-diag] .seo-dash__kpi-value,
[data-iso27001-diag] .seo-dash__kpi-value,
[data-iso-diag] .seo-dash__kpi-value,
[data-aq-diag] .seo-dash__kpi-value,
[data-rse-diag] .seo-dash__kpi-value {
    font-size: clamp(15px, 1.6vw, 22px);
}
[data-smq-diag] .seo-dash__layout,
[data-smq-diag] .seo-dash__config,
[data-smq-diag] .seo-dash__preview {
    min-width: 0;
}
[data-smq-diag] .seo-dash__opt,
[data-smq-diag] .seo-dash__legend,
[data-smq-diag] .seo-dash__kpi-value {
    overflow-wrap: anywhere;
}
@media (max-width: 1100px) {
    [data-smq-diag] .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    [data-smq-diag] .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
    [data-smq-diag] .seo-dash__options--stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-direction: unset;
        gap: 8px;
    }
    [data-smq-diag] .seo-dash__opt {
        min-height: 44px;
        font-size: 13px;
        padding: 8px 12px;
    }
}
@media (max-width: 700px) {
    [data-smq-diag] .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 560px) {
    [data-smq-diag] {
        padding: 48px 0;
    }
    [data-smq-diag] .seo-dash__options--stack {
        grid-template-columns: 1fr;
    }
    [data-smq-diag] .seo-dash__cta {
        align-items: stretch;
    }
    [data-smq-diag] .seo-dash__cta .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
}
[data-cyber-diag] .seo-dash__layout,
[data-cyber-diag] .seo-dash__config,
[data-cyber-diag] .seo-dash__preview,
[data-protect-diag] .seo-dash__layout,
[data-protect-diag] .seo-dash__config,
[data-protect-diag] .seo-dash__preview {
    min-width: 0;
}
[data-cyber-diag] .seo-dash__opt,
[data-cyber-diag] .seo-dash__legend,
[data-cyber-diag] .seo-dash__kpi-value,
[data-protect-diag] .seo-dash__opt,
[data-protect-diag] .seo-dash__legend,
[data-protect-diag] .seo-dash__kpi-value {
    overflow-wrap: anywhere;
}
@media (max-width: 1100px) {
    [data-cyber-diag] .seo-dash__layout,
    [data-protect-diag] .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    [data-cyber-diag] .seo-dash__config,
    [data-protect-diag] .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
    [data-cyber-diag] .seo-dash__options--stack,
    [data-protect-diag] .seo-dash__options--stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-direction: unset;
        gap: 8px;
    }
    [data-cyber-diag] .seo-dash__opt,
    [data-protect-diag] .seo-dash__opt {
        min-height: 44px;
        font-size: 13px;
        padding: 8px 12px;
    }
}
@media (max-width: 700px) {
    [data-cyber-diag] .seo-dash__kpis,
    [data-protect-diag] .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 560px) {
    [data-cyber-diag] .seo-dash__options--stack,
    [data-protect-diag] .seo-dash__options--stack {
        grid-template-columns: 1fr;
    }
    [data-cyber-diag] .seo-dash__cta,
    [data-protect-diag] .seo-dash__cta {
        align-items: stretch;
    }
    [data-cyber-diag] .seo-dash__cta .btn,
    [data-protect-diag] .seo-dash__cta .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
}
[data-iso27001-diag] .seo-dash__layout,
[data-iso27001-diag] .seo-dash__config,
[data-iso27001-diag] .seo-dash__preview,
[data-aq-diag] .seo-dash__shell,
[data-aq-diag] .seo-dash__layout,
[data-aq-diag] .seo-dash__config,
[data-aq-diag] .seo-dash__preview,
[data-rse-diag] .seo-dash__layout,
[data-rse-diag] .seo-dash__config,
[data-rse-diag] .seo-dash__preview,
[data-rse-label-diag] .seo-dash__layout,
[data-rse-label-diag] .seo-dash__config,
[data-rse-label-diag] .seo-dash__preview {
    min-width: 0;
}
[data-iso27001-diag] .seo-dash__opt,
[data-iso27001-diag] .seo-dash__legend,
[data-iso27001-diag] .seo-dash__kpi-value,
[data-aq-diag] .seo-dash__opt,
[data-aq-diag] .seo-dash__legend,
[data-aq-diag] .seo-dash__kpi-value,
[data-aq-diag] .org-dash__reco,
[data-rse-diag] .seo-dash__opt,
[data-rse-diag] .seo-dash__legend,
[data-rse-diag] .seo-dash__kpi-value,
[data-rse-diag] .org-dash__reco,
[data-rse-label-diag] .seo-dash__opt,
[data-rse-label-diag] .seo-dash__legend,
[data-rse-label-diag] .seo-dash__kpi-value,
[data-rse-label-diag] .seo-dash__rank-name {
    overflow-wrap: anywhere;
}
@media (max-width: 1100px) {
    [data-iso27001-diag] .seo-dash__layout,
    [data-aq-diag] .seo-dash__layout,
    [data-rse-diag] .seo-dash__layout,
    [data-rse-label-diag] .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    [data-iso27001-diag] .seo-dash__config,
    [data-aq-diag] .seo-dash__config,
    [data-rse-diag] .seo-dash__config,
    [data-rse-label-diag] .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
    [data-iso27001-diag] .seo-dash__options--stack,
    [data-aq-diag] .seo-dash__options--stack,
    [data-rse-diag] .seo-dash__options--stack,
    [data-rse-label-diag] .seo-dash__options--stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-direction: unset;
        gap: 8px;
    }
    [data-iso27001-diag] .seo-dash__opt,
    [data-aq-diag] .seo-dash__opt,
    [data-rse-diag] .seo-dash__opt,
    [data-rse-label-diag] .seo-dash__opt {
        min-height: 44px;
        font-size: 13px;
        padding: 8px 12px;
    }
}
@media (max-width: 700px) {
    [data-iso27001-diag] .seo-dash__kpis,
    [data-aq-diag] .seo-dash__kpis,
    [data-rse-diag] .seo-dash__kpis,
    [data-rse-label-diag] .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 560px) {
    [data-iso27001-diag],
    [data-aq-diag],
    [data-rse-diag],
    [data-rse-label-diag] {
        padding: 48px 0;
    }
    [data-iso27001-diag] .seo-dash__options--stack,
    [data-aq-diag] .seo-dash__options--stack,
    [data-rse-diag] .seo-dash__options--stack,
    [data-rse-label-diag] .seo-dash__options--stack {
        grid-template-columns: 1fr;
    }
    [data-iso27001-diag] .seo-dash__cta,
    [data-aq-diag] .seo-dash__cta,
    [data-rse-diag] .seo-dash__cta,
    [data-rse-label-diag] .seo-dash__cta {
        align-items: stretch;
    }
    [data-iso27001-diag] .seo-dash__cta .btn,
    [data-aq-diag] .seo-dash__cta .btn,
    [data-rse-diag] .seo-dash__cta .btn,
    [data-rse-label-diag] .seo-dash__cta .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
}
[data-pssi-diag] .seo-dash__kpi-value {
    font-size: clamp(15px, 1.6vw, 22px);
}
[data-pssi-diag] .seo-dash__layout,
[data-pssi-diag] .seo-dash__config,
[data-pssi-diag] .seo-dash__preview {
    min-width: 0;
}
[data-pssi-diag] .seo-dash__opt,
[data-pssi-diag] .seo-dash__legend,
[data-pssi-diag] .seo-dash__kpi-value,
[data-pssi-diag] .org-dash__reco {
    overflow-wrap: anywhere;
}
@media (max-width: 1100px) {
    [data-pssi-diag] .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    [data-pssi-diag] .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
    [data-pssi-diag] .seo-dash__options--stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-direction: unset;
        gap: 8px;
    }
    [data-pssi-diag] .seo-dash__opt {
        min-height: 44px;
        font-size: 13px;
        padding: 8px 12px;
    }
}
@media (max-width: 700px) {
    [data-pssi-diag] .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 560px) {
    [data-pssi-diag] {
        padding: 48px 0;
    }
    [data-pssi-diag] .seo-dash__options--stack {
        grid-template-columns: 1fr;
    }
    [data-pssi-diag] .seo-dash__cta {
        align-items: stretch;
    }
    [data-pssi-diag] .seo-dash__cta .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
}
[data-aq-diag] .seo-dash__kpi-value {
    font-size: clamp(13px, 1.35vw, 17px);
}
[data-aq-diag] .seo-dash__kpi,
[data-aq-diag] .seo-dash__opt {
    min-width: 0;
}
[data-aq-diag] .seo-dash__cta .btn {
    max-width: 100%;
    white-space: normal;
}
@media (max-width: 900px) {
    .seo-dash__layout {
        grid-template-columns: 1fr;
    }
    .seo-dash__config {
        position: static;
        max-height: none;
        overflow: visible;
    }
}
@media (max-width: 560px) {
    .seo-dash {
        padding: 56px 0;
    }
    .seo-dash__shell {
        padding: 10px;
        border-radius: 18px;
    }
    .seo-dash__preview {
        padding: 14px 12px 12px;
    }
    .seo-dash__kpis {
        grid-template-columns: 1fr;
    }
    .seo-dash__cta .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ══════════════════════════════════════════════
   DIAGNOSTIC INFRA — thème pôle Support (pole-3)
   ══════════════════════════════════════════════ */
.seo-dash--infra {
    background: linear-gradient(180deg, var(--pole-3-bg) 0%, #ffffff 55%);
}
.seo-dash--infra .seo-dash__shell {
    background: #fbfcfe;
    border-color: rgba(164, 178, 200, 0.45);
    box-shadow: 0 18px 48px rgba(74, 93, 120, 0.07);
}
.seo-dash--infra .seo-dash__legend {
    color: #5a6b83;
}
.seo-dash--infra .seo-dash__opt {
    border-color: #d5dde8;
}
.seo-dash--infra .seo-dash__opt:hover {
    border-color: var(--pole-3);
    background: var(--pole-3-bg);
}
.seo-dash--infra .seo-dash__opt:focus-visible {
    outline-color: #6b7c92;
}
.seo-dash--infra .seo-dash__opt.is-selected {
    background: rgba(164, 178, 200, 0.22);
    border-color: #6b7c92;
    color: #3d4d66;
    box-shadow: inset 0 0 0 1px rgba(164, 178, 200, 0.35);
}
.seo-dash--infra .seo-dash__check {
    background: #6b7c92;
}
.seo-dash--infra .seo-dash__preview-label {
    color: #5a6b83;
}
.seo-dash--infra .seo-dash__bar {
    background: #e6ebf2;
}
.seo-dash--infra .seo-dash__bar > span {
    background: linear-gradient(90deg, var(--pole-3) 0%, #6b7c92 100%);
}
.seo-dash--infra .infra-dash__reco-name {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 800;
    color: #3d4d66;
    letter-spacing: -0.01em;
}
.seo-dash--infra .infra-dash__score {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
[data-infra-diag] .seo-dash__kpi-value {
    font-size: clamp(15px, 1.5vw, 20px);
}

/* ══════════════════════════════════════════════
   DIAGNOSTIC GOUVERNANCE — pôle Conseil (vert)
   ══════════════════════════════════════════════ */
.seo-dash--gov {
    background: linear-gradient(180deg, rgba(40, 153, 81, 0.08) 0%, #ffffff 55%);
}
.seo-dash--gov .seo-dash__shell {
    background: #f7fbf8;
    border-color: rgba(40, 153, 81, 0.22);
    box-shadow: 0 18px 48px rgba(40, 153, 81, 0.07);
}
.seo-dash--gov .seo-dash__legend {
    color: var(--color-secondary);
}
.seo-dash--gov .seo-dash__opt {
    border-color: #cfe5d9;
}
.seo-dash--gov .seo-dash__opt:hover {
    border-color: var(--color-secondary);
    background: rgba(40, 153, 81, 0.08);
}
.seo-dash--gov .seo-dash__opt:focus-visible {
    outline-color: var(--color-secondary);
}
.seo-dash--gov .seo-dash__opt.is-selected {
    background: rgba(40, 153, 81, 0.14);
    border-color: var(--color-secondary);
    color: #1f4d3a;
    box-shadow: inset 0 0 0 1px rgba(40, 153, 81, 0.25);
}
.seo-dash--gov .seo-dash__check {
    background: var(--color-secondary);
}
.seo-dash--gov .seo-dash__preview-label {
    color: var(--color-secondary);
}
.seo-dash--gov .seo-dash__bar {
    background: #e4f0ea;
}
.seo-dash--gov .seo-dash__bar > span {
    background: linear-gradient(90deg, #5bb87a 0%, var(--color-secondary) 100%);
}
.seo-dash--gov .infra-dash__reco-name {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 800;
    color: #1f4d3a;
    letter-spacing: -0.01em;
}
[data-gov-diag] .seo-dash__kpi-value {
    font-size: clamp(14px, 1.45vw, 20px);
}

/* ══════════════════════════════════════════════
   SEO — choix des mots-clés (exemple)
   ══════════════════════════════════════════════ */
.seo-kw-example {
    margin-top: 48px;
}
.seo-kw-example__title {
    margin: 0 0 6px;
    font-family: var(--font-subtitle);
    font-size: 17px;
    font-weight: 800;
    color: var(--color-dark);
    text-align: center;
}
.seo-kw-example__note {
    margin: 0 0 18px;
    text-align: center;
    font-size: 13px;
    color: #94a3b8;
    font-style: italic;
}
.seo-kw-example__wrap {
    margin-top: 0;
}
.seo-kw-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
}
.seo-kw-table th,
.seo-kw-table td {
    padding: 14px 16px;
    text-align: left;
    vertical-align: middle;
    font-size: 14px;
    line-height: 1.45;
}
.seo-kw-table thead th {
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--color-dark);
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    white-space: nowrap;
}
.seo-kw-table tbody td {
    color: #64748b;
    border-top: 1px solid var(--color-border);
}
.seo-kw-table tbody td:first-child {
    color: var(--color-dark);
    font-weight: 650;
}
.seo-kw-table tbody tr:nth-child(even) td {
    background: rgba(255, 255, 255, 0.55);
}
.seo-kw-prio {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.2;
}
.seo-kw-prio--high {
    background: rgba(40, 153, 81, 0.12);
    color: #166534;
}
.seo-kw-prio--mid {
    background: rgba(191, 155, 121, 0.18);
    color: #5c4030;
}

/* ══════════════════════════════════════════════
   SEO — architecture / cocons
   ══════════════════════════════════════════════ */
.seo-arch {
    display: flex;
    flex-direction: column;
    gap: 36px;
}
.seo-arch__tree-panel {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 28px 28px 24px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
    max-width: 640px;
    margin: 0 auto;
    width: 100%;
}
.seo-arch__tree-label {
    margin: 0 0 18px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pole-2);
    font-family: var(--font-subtitle);
    text-align: center;
}
.seo-arch-tree,
.seo-arch-tree ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.seo-arch-tree ul {
    margin-left: 18px;
    padding-left: 18px;
    border-left: 2px solid #e8dfd4;
}
.seo-arch-tree li {
    position: relative;
    margin: 0 0 10px;
}
.seo-arch-tree li:last-child {
    margin-bottom: 0;
}
.seo-arch-tree ul > li::before {
    content: "";
    position: absolute;
    left: -18px;
    top: 16px;
    width: 14px;
    height: 2px;
    background: #e8dfd4;
}
.seo-arch-tree__node {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 10px;
    border: 1.5px solid #e2d6c8;
    background: #fffcf9;
    color: #475569;
    font-size: 13.5px;
    font-weight: 650;
    line-height: 1.3;
}
.seo-arch-tree__node--root {
    background: rgba(191, 155, 121, 0.16);
    border-color: var(--pole-2);
    color: #5c4030;
    font-weight: 800;
    font-family: var(--font-subtitle);
}
.seo-arch-tree > li > .seo-arch-tree__node--root {
    margin-bottom: 12px;
}
.seo-arch-tree > li > ul > li > .seo-arch-tree__node:not(.seo-arch-tree__node--leaf) {
    background: #fff;
    border-color: #d7c4b0;
    color: var(--color-dark);
    font-weight: 750;
}
.seo-arch-tree__node--leaf {
    background: #fff;
    color: #64748b;
    font-weight: 600;
}
.seo-arch__points {
    margin-top: 0;
}
.seo-arch__note {
    margin-top: 0;
    max-width: 820px;
}
@media (max-width: 600px) {
    .seo-arch__tree-panel {
        padding: 20px 16px 18px;
    }
    .seo-arch-tree ul {
        margin-left: 12px;
        padding-left: 14px;
    }
    .seo-arch-tree ul > li::before {
        left: -14px;
        width: 10px;
    }
}

/* ══════════════════════════════════════════════
   SEO — avant / après
   ══════════════════════════════════════════════ */
.seo-ba {
    padding: 80px 0;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}
.seo-ba .sp-section-header {
    margin-bottom: 36px;
}
.seo-ba__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    max-width: 980px;
    margin: 0 auto;
}
.seo-ba__panel {
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    padding: 28px 26px 24px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
}
.seo-ba__panel--before {
    background: #f8fafc;
}
.seo-ba__panel--after {
    background: linear-gradient(165deg, #ffffff 0%, var(--pole-2-bg) 100%);
    border-color: rgba(191, 155, 121, 0.45);
}
.seo-ba__label {
    margin: 0 0 18px;
}
.seo-ba__badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: 999px;
    font-family: var(--font-subtitle);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.seo-ba__badge--before {
    color: #64748b;
    background: #e2e8f0;
}
.seo-ba__badge--after {
    color: #5c4030;
    background: rgba(191, 155, 121, 0.22);
}
.seo-ba__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.seo-ba__list li {
    position: relative;
    padding: 10px 0 10px 22px;
    font-size: 15px;
    line-height: 1.5;
    color: #475569;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.seo-ba__list li:first-child {
    border-top: 0;
    padding-top: 0;
}
.seo-ba__list li:last-child {
    padding-bottom: 0;
}
.seo-ba__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.05em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #cbd5e1;
}
.seo-ba__list li:first-child::before {
    top: 0.45em;
}
.seo-ba__panel--after .seo-ba__list li {
    color: #3f2f24;
    font-weight: 550;
}
.seo-ba__panel--after .seo-ba__list li::before {
    background: var(--pole-2);
}

/* Infogérance — préventif vs curatif (thème pole-3) */
.seo-ba--infra .seo-ba__panel--after {
    background: linear-gradient(165deg, #ffffff 0%, var(--pole-3-bg) 100%);
    border-color: rgba(164, 178, 200, 0.55);
}
.seo-ba--infra .seo-ba__badge--after {
    color: #3d4d66;
    background: rgba(164, 178, 200, 0.28);
}
.seo-ba--infra .seo-ba__panel--after .seo-ba__list li {
    color: #3d4d66;
}
.seo-ba--infra .seo-ba__panel--after .seo-ba__list li::before {
    background: #6b7c92;
}
.seo-ba--org .seo-ba__panel--after {
    background: linear-gradient(165deg, #ffffff 0%, var(--pole-0-bg) 100%);
    border-color: rgba(89, 122, 175, 0.4);
}
.seo-ba--org .seo-ba__badge--after {
    color: var(--color-primary-dark);
    background: rgba(89, 122, 175, 0.16);
}
.seo-ba--org .seo-ba__panel--after .seo-ba__list li {
    color: #2c3d5a;
}
.seo-ba--org .seo-ba__panel--after .seo-ba__list li::before {
    background: var(--pole-0);
}
.seo-ba__closing {
    max-width: 720px;
    margin: 32px auto 0;
    text-align: center;
    font-size: clamp(17px, 2vw, 20px);
    line-height: 1.55;
    color: var(--color-dark);
}

/* SEO — pont contextuel vers CRO / tunnel */
#acquisition .seo-acq__bridge {
    max-width: 720px;
    margin: 28px auto 0;
    text-align: center;
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-gray);
}
#acquisition .seo-acq__bridge a {
    color: var(--pole-2);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (max-width: 760px) {
    .seo-ba__grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .seo-ba {
        padding: 56px 0;
    }
    .seo-ba__panel {
        padding: 22px 18px 18px;
    }
}

/* ══════════════════════════════════════════════
   SEO — fondations techniques (bloc synthétique)
   ══════════════════════════════════════════════ */
.seo-tech {
    margin-top: 48px;
}
.seo-tech__inner {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 28px 28px 24px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
}
.seo-tech__header {
    margin-bottom: 18px;
}
.seo-tech__header .sp-section-tag {
    margin-bottom: 10px;
}
.seo-tech__header h2 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(22px, 3vw, 28px);
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.seo-tech__tags {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.seo-tech__tags li {
    display: inline-flex;
    align-items: center;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--pole-2-bg);
    border: 1px solid rgba(191, 155, 121, 0.35);
    color: #5c4030;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.3;
}
.seo-tech__note {
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
    font-size: 14px;
    line-height: 1.65;
    color: #64748b;
}
@media (max-width: 600px) {
    .seo-tech__inner {
        padding: 22px 18px 18px;
    }
}

/* ══════════════════════════════════════════════
   SEO — livrables
   ══════════════════════════════════════════════ */
#livrables .seo-livrables__item {
    background: linear-gradient(180deg, #fdf8f3 0%, #ffffff 100%);
    border-color: rgba(191, 155, 121, 0.4);
}
#livrables .seo-livrables__item .sp-audit-item__icon {
    background: rgba(191, 155, 121, 0.16);
    color: var(--pole-2);
}
#livrables .seo-livrables__item .sp-audit-item__body p {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.4;
    margin: 0;
}

/* ══════════════════════════════════════════════
   SEO — délais / temporalité
   ══════════════════════════════════════════════ */
.seo-delais__google {
    max-width: 820px;
    margin: 0 auto 36px;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background: #fff;
    font-size: 14.5px;
    line-height: 1.65;
    color: #64748b;
    text-align: center;
}
.seo-delais__steps {
    margin-top: 0;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
#delais .sp-ownership-quote {
    margin-top: 40px;
}

/* ══════════════════════════════════════════════
   SEO — pont SEO local
   ══════════════════════════════════════════════ */
.seo-local-bridge {
    padding: 28px 0 56px;
    background: #fff;
}
.seo-local-bridge__card {
    display: flex;
    align-items: flex-start;
    gap: 22px;
    max-width: 920px;
    margin: 0 auto;
    padding: 28px 30px;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(191, 155, 121, 0.4);
    background: linear-gradient(135deg, var(--pole-2-bg) 0%, #ffffff 70%);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
}
.seo-local-bridge__icon {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(191, 155, 121, 0.18);
    color: var(--pole-2);
}
.seo-local-bridge__content .sp-section-tag {
    margin-bottom: 10px;
}
.seo-local-bridge__content h2 {
    margin: 0 0 12px;
    font-family: var(--font-title);
    font-size: clamp(22px, 3vw, 28px);
    font-weight: 800;
    line-height: 1.25;
    color: var(--color-dark);
}
.seo-local-bridge__content p {
    margin: 0 0 20px;
    font-size: 15px;
    line-height: 1.65;
    color: #64748b;
    max-width: 640px;
}
@media (max-width: 640px) {
    .seo-local-bridge {
        padding: 12px 0 40px;
    }
    .seo-local-bridge__card {
        flex-direction: column;
        padding: 22px 18px;
        gap: 14px;
    }
    .seo-local-bridge__content .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ══════════════════════════════════════════════
   SEO — netlinking (bloc explicatif)
   ══════════════════════════════════════════════ */
.seo-netlinking {
    margin-top: 20px;
}
.seo-netlinking__text {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.65;
    color: #64748b;
    max-width: 760px;
}
.seo-netlinking__cta {
    margin-top: 4px;
}

/* ══════════════════════════════════════════════
   SEO — hub maillage
   ══════════════════════════════════════════════ */
.seo-hub .sp-section-header {
    margin-bottom: 28px;
}
.seo-hub .sp-related__title {
    margin-bottom: 12px;
}
.seo-hub__label {
    margin: 0 0 14px;
    font-family: var(--font-subtitle);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--pole-2);
}
.seo-hub__label--secondary {
    margin-top: 36px;
    color: #64748b;
}
.seo-hub__grid {
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 980px) {
    .seo-hub__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 600px) {
    .seo-hub__grid {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════
   SEO — bénéfices : 4 + 3 centrés
   ══════════════════════════════════════════════ */
.sp-reasons__grid.seo-benefits-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    grid-template-columns: none;
}
.sp-reasons__grid.seo-benefits-grid > .sp-reason-card {
    flex: 0 1 calc(25% - 18px);
    max-width: calc(25% - 18px);
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 1100px) {
    .sp-reasons__grid.seo-benefits-grid > .sp-reason-card {
        flex: 0 1 calc(50% - 12px);
        max-width: calc(50% - 12px);
    }
}
@media (max-width: 600px) {
    .sp-reasons__grid.seo-benefits-grid > .sp-reason-card {
        flex: 0 1 100%;
        max-width: 100%;
    }
}

/* ── Matrice de matérialité RSE (bilan carbone / reporting ESG) ── */
.esg-mat {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 10px;
    row-gap: 8px;
    width: 100%;
    max-width: 780px;
    margin: 40px auto 0;
    align-items: stretch;
    box-sizing: border-box;
}
.esg-mat__y {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    justify-self: center;
    align-self: center;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
    line-height: 1.2;
}
.esg-mat__table-wrap {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1.5px solid rgba(40, 153, 81, 0.22);
    border-radius: var(--radius-md);
    background: #fff;
}
.esg-mat table {
    width: 100%;
    min-width: 480px;
    border-collapse: collapse;
}
.esg-mat caption {
    caption-side: bottom;
    padding: 12px 16px 4px;
    font-size: 13px;
    font-style: italic;
    color: var(--color-gray);
    text-align: center;
}
.esg-mat th,
.esg-mat td {
    border: 1px solid var(--color-border);
    padding: 14px 12px;
    text-align: center;
    vertical-align: middle;
}
.esg-mat thead th {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-dark);
    background: var(--color-bg);
}
.esg-mat tbody th {
    width: 92px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-primary);
    background: var(--color-bg);
}
.esg-mat td {
    min-height: 88px;
    background: #f8fafc;
}
.esg-mat td.esg-mat__prio {
    background: rgba(40, 153, 81, 0.12);
}
.esg-mat td.esg-mat__mid {
    background: rgba(40, 153, 81, 0.06);
}
.esg-mat td.esg-mat__low {
    background: #f1f5f9;
}
.esg-mat .smq-proc__tags {
    justify-content: center;
    margin: 0;
}
.esg-mat .smq-proc__tags li {
    white-space: normal;
    max-width: 100%;
    text-align: center;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.esg-mat__x {
    grid-column: 2;
    grid-row: 2;
    margin: 4px 0 0;
    text-align: center;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.esg-mat__cta {
    display: flex;
    justify-content: center;
    margin-top: 28px;
}
@media (max-width: 640px) {
    .esg-mat__cta {
        padding: 0 4px;
    }
    .esg-mat__cta .btn {
        width: 100%;
        justify-content: center;
    }
}
@media (max-width: 800px) {
    .esg-mat {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto auto;
        row-gap: 10px;
    }
    .esg-mat__y {
        grid-column: 1;
        grid-row: 1;
        writing-mode: horizontal-tb;
        transform: none;
        text-align: center;
        justify-self: center;
        letter-spacing: 0.03em;
    }
    .esg-mat__table-wrap {
        grid-column: 1;
        grid-row: 2;
    }
    .esg-mat__x {
        grid-column: 1;
        grid-row: 3;
    }
    .esg-mat table {
        min-width: 0;
    }
    .esg-mat th,
    .esg-mat td {
        padding: 10px 8px;
    }
    .esg-mat tbody th {
        width: auto;
        font-size: 11px;
    }
}

/* ── Sommaire visuel rapport RSE ── */
.rse-toc {
    max-width: 640px;
    margin: 40px auto 0;
    background: #fff;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}
.rse-toc__head {
    padding: 22px 28px 18px;
    background: linear-gradient(135deg, rgba(40, 153, 81, 0.1) 0%, #fff 65%);
    border-bottom: 1.5px solid var(--color-border);
}
.rse-toc__kicker {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
}
.rse-toc__head h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.rse-toc ol {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rse-toc li {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 14px;
    align-items: start;
    padding: 14px 28px;
    border-top: 1px solid var(--color-border);
}
.rse-toc li:first-child {
    border-top: 0;
}
.rse-toc__num {
    font-family: var(--font-title);
    font-size: 15px;
    font-weight: 800;
    color: var(--color-primary);
    padding-top: 2px;
}
.rse-toc li h3 {
    margin: 0 0 4px;
    font-family: var(--font-subtitle);
    font-size: 16px;
    font-weight: 700;
    color: var(--color-dark);
}
.rse-toc li p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-gray);
}
@media (max-width: 560px) {
    .rse-toc__head,
    .rse-toc li {
        padding-left: 18px;
        padding-right: 18px;
    }
}

/* Sélecteur de reconnaissance RSE */
[data-rse-label-diag] .seo-dash__kpi-value--text {
    font-size: clamp(13px, 1.35vw, 16px);
    font-weight: 800;
    line-height: 1.25;
}
.seo-dash__rank {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.seo-dash__rank-item {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #e8dfd4;
    border-radius: 12px;
    background: #fff;
}
.seo-dash__rank-index {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    background: var(--pole-0-bg);
    color: var(--pole-0);
}
.seo-dash__rank-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.seo-dash__badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}
.seo-dash__badge--hot {
    background: rgba(40, 153, 81, 0.12);
    color: var(--color-primary);
    border: 1px solid rgba(40, 153, 81, 0.28);
}
.seo-dash__badge--mid {
    background: var(--pole-0-bg);
    color: var(--pole-0);
    border: 1px solid rgba(89, 122, 175, 0.28);
}
.seo-dash__badge--later {
    background: #f4efe8;
    color: #8a6a48;
    border: 1px solid rgba(191, 155, 121, 0.35);
}
@media (max-width: 560px) {
    [data-rse-label-diag] .seo-dash__rank-item {
        grid-template-columns: 28px minmax(0, 1fr);
        align-items: start;
    }
    [data-rse-label-diag] .seo-dash__badge {
        grid-column: 2;
        white-space: normal;
        justify-self: start;
        line-height: 1.3;
    }
    [data-rse-label-diag] .seo-dash__kpi-value--text {
        font-size: 14px;
    }
}

/* EcoVadis + ISO 26000 — conteneur fusionné */
.rse-myths {
    padding: 80px 0;
    background: var(--color-bg);
}
.rse-myths .sp-section-header {
    margin-bottom: 32px;
}
.rse-myths__shell {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: 1080px;
    margin: 0 auto;
    background: #fff;
    border: 1.5px solid rgba(89, 122, 175, 0.22);
    border-radius: 24px;
    box-shadow: 0 18px 48px rgba(58, 90, 160, 0.08);
    overflow: hidden;
}
.rse-myth {
    min-width: 0;
    padding: 32px 28px 28px;
    scroll-margin-top: calc(var(--site-sticky-top, 88px) + 12px);
    transition: background .22s ease;
}
.rse-myth + .rse-myth {
    border-left: 1px solid rgba(89, 122, 175, 0.16);
}
.rse-myth:hover,
.rse-myth:focus-within {
    background: linear-gradient(180deg, rgba(89, 122, 175, 0.07) 0%, #fff 48%);
}
.rse-myth__tag {
    display: inline-block;
    margin: 0 0 12px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pole-0);
    font-family: var(--font-subtitle);
}
.rse-myth h2 {
    margin: 0 0 14px;
    font-size: clamp(18px, 2.1vw, 22px);
    font-weight: 800;
    line-height: 1.3;
    color: var(--color-dark);
    text-align: left;
    overflow-wrap: break-word;
}
.rse-myth__verdict {
    display: inline-flex;
    align-items: center;
    margin: 0 0 12px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--pole-0-bg);
    color: var(--pole-0);
    border: 1px solid rgba(89, 122, 175, 0.28);
    font-size: 13px;
    font-weight: 800;
    font-family: var(--font-subtitle);
    line-height: 1.2;
}
.rse-myth__verdict--no {
    background: rgba(40, 153, 81, 0.12);
    color: var(--color-secondary);
    border-color: rgba(40, 153, 81, 0.28);
}
.rse-myth__lead {
    margin: 0 0 16px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--color-gray);
}
.rse-myth__lead strong {
    color: var(--color-dark);
}
.rse-myth__panel {
    margin: 0;
    border: 0;
}
.rse-myth__panel summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
    user-select: none;
    border-radius: 8px;
}
.rse-myth__panel summary::-webkit-details-marker {
    display: none;
}
.rse-myth__panel summary::after {
    content: '+';
    font-size: 18px;
    line-height: 1;
    font-weight: 700;
}
.rse-myth__panel[open] summary::after {
    content: '−';
}
.rse-myth__panel summary:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rse-myth__panel summary:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}
.rse-myth__panel[open] .rse-myth__toggle-closed,
.rse-myth__panel:not([open]) .rse-myth__toggle-open {
    display: none;
}
.rse-myth__body {
    padding-top: 14px;
}
.rse-myth__body p {
    margin: 0 0 12px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--color-gray);
}
.rse-myth__body .btn {
    margin-top: 6px;
}
@media (max-width: 800px) {
    .rse-myths {
        padding: 56px 0;
    }
    .rse-myths__shell {
        grid-template-columns: 1fr;
        border-radius: 20px;
    }
    .rse-myth + .rse-myth {
        border-left: 0;
        border-top: 1px solid rgba(89, 122, 175, 0.16);
    }
    .rse-myth {
        padding: 26px 22px 22px;
    }
    .rse-myth__body .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
        height: auto;
        min-height: 44px;
        line-height: 1.35;
        text-align: center;
    }
}

.seo-dash__step {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
}

.esg-vs-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 640px) {
    .esg-vs-grid {
        grid-template-columns: 1fr;
    }
}

.esg-reg-notes {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 32px;
}

.esg-cycle {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    list-style: none;
    margin: 40px auto 0;
    padding: 0;
    max-width: 980px;
    gap: 0;
}
.esg-cycle li {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 140px;
    min-width: 140px;
    justify-content: center;
    position: relative;
    padding: 8px 28px 8px 8px;
}
.esg-cycle li:last-child {
    padding-right: 8px;
}
.esg-cycle li:not(:last-child)::after {
    content: '→';
    position: absolute;
    right: 2px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-primary);
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}
.esg-cycle__num {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-title);
    font-size: 13px;
    font-weight: 700;
}
.esg-cycle li:nth-child(2) .esg-cycle__num { background: var(--color-secondary); }
.esg-cycle li:nth-child(3) .esg-cycle__num { background: var(--color-accent-dark); }
.esg-cycle li:nth-child(4) .esg-cycle__num { background: var(--pole-4); }
.esg-cycle li:nth-child(5) .esg-cycle__num { background: var(--color-primary); }
.esg-cycle strong {
    font-family: var(--font-subtitle);
    font-size: 14px;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.3;
}
.esg-lever {
    max-width: 920px;
    margin: 36px auto 0;
    background: #fff;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}
.esg-lever__kicker {
    margin: 0;
    padding: 16px 22px 12px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-family: var(--font-subtitle);
    background: linear-gradient(135deg, rgba(40, 153, 81, 0.1) 0%, #fff 65%);
    border-bottom: 1.5px solid var(--color-border);
}
.esg-lever__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0;
    padding: 0;
}
.esg-lever__grid > div {
    padding: 16px 18px 18px;
    border-right: 1px solid var(--color-border);
}
.esg-lever__grid > div:last-child {
    border-right: none;
}
.esg-lever__grid dt {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-gray);
    font-family: var(--font-subtitle);
}
.esg-lever__grid dd {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--color-dark);
    font-family: var(--font-subtitle);
    line-height: 1.3;
}
@media (max-width: 900px) {
    .esg-cycle {
        flex-direction: column;
        align-items: stretch;
        max-width: 280px;
    }
    .esg-cycle li {
        flex: none;
        min-width: 0;
        padding: 8px 8px 22px;
        justify-content: flex-start;
    }
    .esg-cycle li:not(:last-child)::after {
        content: '↓';
        right: auto;
        left: 18px;
        top: auto;
        bottom: 0;
        transform: none;
    }
    .esg-lever__grid {
        grid-template-columns: 1fr;
    }
    .esg-lever__grid > div {
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }
    .esg-lever__grid > div:last-child {
        border-bottom: none;
    }
}

.esg-dash {
    max-width: 980px;
    margin: 0 auto;
}
.esg-dash .seo-dash__kpi {
    min-width: 0;
}
.esg-dash .seo-dash__kpi-label {
    overflow-wrap: anywhere;
}
.esg-dash .seo-dash__kpi-value {
    font-size: clamp(14px, 1.6vw, 20px);
    overflow-wrap: anywhere;
}
.esg-dash__kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}
.esg-dash__delta {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    font-family: var(--font-subtitle);
}
.esg-dash__delta--down,
.esg-dash__delta--up {
    background: rgba(40, 153, 81, 0.12);
    color: var(--color-primary);
}
.esg-dash__bar {
    display: block;
    height: 6px;
    margin-top: 10px;
    border-radius: 999px;
    background: #e8eef6;
    overflow: hidden;
}
.esg-dash__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #7a9fd4 0%, var(--pole-0) 100%);
}
.esg-dash__note {
    max-width: 760px;
    margin: 28px auto 0;
    text-align: center;
}
.esg-dash__cta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
}
@media (max-width: 1100px) {
    .esg-dash__kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .esg-dash__kpis {
        grid-template-columns: 1fr 1fr;
    }
    .esg-dash__kpis .seo-dash__kpi:last-child {
        grid-column: 1 / -1;
    }
    .esg-dash__note {
        text-align: left;
    }
    .esg-dash__cta .btn {
        width: 100%;
        justify-content: center;
    }
}
