/* ==========================================================================
   Ploovers — Refonte site public (maquettes « Test Claude », juin 2026)
   Tokens STRICTS issus de 5. design-tokens.txt — ne pas inventer de valeurs.
   Chargé APRÈS pixel.min.css : tout est scopé .plr / .plr-nav / .plr-footer
   pour ne toucher ni l'espace connecté ni les pages publiques non migrées.
   ========================================================================== */

:root {
    /* Couleurs (5. design-tokens.txt) */
    --plr-navy: #242E4C;          /* Primary Dark : CTA, liens, footer, mise en avant */
    --plr-beige: #F2F1EF;         /* Primary Light : CTA secondaires, fonds de sections */
    --plr-white: #FFFFFF;
    --plr-grey-light: #EEEEEE;    /* séparateurs */
    --plr-grey-neutral: #F1F1F1;  /* fonds de card */
    --plr-accent: #EFF7FF;        /* Accent Blue : data/perf UNIQUEMENT */
    --plr-text: #111111;          /* titres */
    --plr-text-2: #3D434E;        /* paragraphes — assombri (décision 2026-07-02, maquette : #5F6672) */
    --plr-text-3: #8B94A5;        /* labels, eyebrow, métadonnées */
    --plr-border: #EEEEEE;        /* cartes, conteneurs, séparateurs discrets (8. design-tokens V4) */
    /* Couleurs relevées dans les maquettes Test Claude 4 (la maquette prévaut) */
    --plr-blue: #AFC8E9;          /* bleu data : eyebrows de section, barre de frais Ploovers, dataviz */
    --plr-bar-grey: #BEBFC2;      /* barre de frais « conseil traditionnel » */
    /* Border-radius (tokens) */
    --plr-r-card-lg: 50px;        /* grande card pleine largeur */
    --plr-r-card: 30px;           /* cards petites et moyennes */
    --plr-r-btn: 100px;           /* boutons */
    --plr-r-img: 20px;            /* images éditoriales : coins légèrement arrondis (demande 2026-07) */
    /* Typo */
    --plr-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --plr-font-serif: 'Alike', Georgia, serif;
}

/* --------------------------------------------------------------------------
   Base scopée
   -------------------------------------------------------------------------- */
.plr,
.plr-nav,
.plr-footer {
    font-family: var(--plr-font);
    color: var(--plr-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.plr {
    background: var(--plr-white);
}

.plr p {
    color: var(--plr-text-2);
    font-size: 18px;              /* corps de texte 18-20 (décision 2026-07-02) */
    line-height: 1.7;
}

.plr a {
    color: var(--plr-navy);
}

.plr img {
    max-width: 100%;
    height: auto;
}

/* Conteneur : contenu maquette = 1260px utiles sur trame 1440 */
.plr-container {
    max-width: 1260px;
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* --------------------------------------------------------------------------
   Typographie
   -------------------------------------------------------------------------- */
/* Hero home : Alike regular 50 (design-rules) */
.plr-h1-serif {
    font-family: var(--plr-font-serif);
    font-weight: 400;
    font-size: 50px;
    line-height: 1.18;
    color: var(--plr-text);
    margin: 0;
}

/* Autres heros : Inter semi-bold 40 (design-rules) */
.plr-h1 {
    font-family: var(--plr-font);
    font-weight: 600;
    font-size: 40px;
    line-height: 1.25;
    color: var(--plr-text);
    margin: 0;
}

/* Titres de section : Inter semi-bold 36 (design-rules) */
.plr-h2 {
    font-family: var(--plr-font);
    font-weight: 600;
    font-size: 36px;
    line-height: 1.3;
    color: var(--plr-text);
    margin: 0;
}

.plr-eyebrow {
    display: block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--plr-text-3);
}

/* --------------------------------------------------------------------------
   Boutons (radius 100 — token obligatoire) — pas d'ombres, pas de gradients
   -------------------------------------------------------------------------- */
.plr-btn {
    display: inline-block;
    border: 0;
    border-radius: var(--plr-r-btn);
    padding: 15px 30px;
    font-family: var(--plr-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1;
    cursor: pointer;
    transition: opacity .15s ease;
}

.plr-btn:hover { opacity: .88; text-decoration: none; }

/* Sélecteurs doublés `.plr a.…` : sans eux, `.plr a { color: navy }` (0,1,1)
   écrase la couleur des CTA (0,1,0) → texte navy sur fond navy (invisible). */
.plr-btn-primary,
.plr a.plr-btn-primary {
    background: var(--plr-navy);
    color: var(--plr-white);
}
.plr-btn-primary:hover,
.plr-btn-primary:focus,
.plr a.plr-btn-primary:hover,
.plr a.plr-btn-primary:focus { color: var(--plr-white); }

.plr-btn-secondary,
.plr a.plr-btn-secondary {
    background: var(--plr-beige);
    color: var(--plr-text);
}
.plr-btn-secondary:hover,
.plr-btn-secondary:focus,
.plr a.plr-btn-secondary:hover,
.plr a.plr-btn-secondary:focus { color: var(--plr-text); }

/* Bouton/lien tertiaire : libellé uppercase souligné avec flèche */
.plr-btn-link,
.plr a.plr-btn-link {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--plr-text);
    text-decoration: none;
    border-bottom: 1px solid var(--plr-text);
    padding-bottom: 6px;
}
.plr-btn-link:hover,
.plr a.plr-btn-link:hover { color: var(--plr-navy); border-bottom-color: var(--plr-navy); }

/* --------------------------------------------------------------------------
   Navigation (interprétation validée — la nav n'est pas maquettée)
   -------------------------------------------------------------------------- */
.plr-nav {
    background: var(--plr-white);
    border-bottom: 1px solid var(--plr-grey-light);
}

.plr-nav .plr-container {
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: 76px;
}

.plr-nav-brand { display: inline-flex; align-items: center; }
.plr-nav-brand img { height: 30px; width: auto; }

.plr-nav-links {
    display: flex;
    align-items: center;
    gap: 18px;
    list-style: none;
    margin: 0 0 0 10px;
    padding: 0;
}

.plr-nav-link {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--plr-text);
    text-decoration: none;
    padding: 8px 0;
}
.plr-nav-link:hover { color: var(--plr-navy); text-decoration: none; }

.plr-nav-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    flex-shrink: 0;
}

.plr-nav-actions .plr-btn { padding: 13px 18px; white-space: nowrap; }

.plr-nav-signin {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--plr-text);
    text-decoration: none;
}
.plr-nav-signin:hover { color: var(--plr-navy); }

/* Dropdown Ressources (panneau = card moyenne → radius 30) */
.plr-nav .dropdown-menu {
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    box-shadow: none;
    padding: 18px 22px;
    min-width: 300px;
    margin-top: 10px;
}

.plr-nav .dropdown-menu .plr-menu-group {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--plr-text-3);
    margin: 14px 0 6px;
}
.plr-nav .dropdown-menu .plr-menu-group:first-child { margin-top: 0; }

.plr-nav .dropdown-menu a.dropdown-item {
    font-size: 14px;
    color: var(--plr-text);
    padding: 6px 8px;
    border-radius: 10px;
}
.plr-nav .dropdown-menu a.dropdown-item:hover {
    background: var(--plr-grey-neutral);
    color: var(--plr-navy);
}

/* Méga-menu Ressources : 3 colonnes (enveloppes + fiches assureurs) */
.plr-nav .plr-megamenu { min-width: 760px; padding: 24px 28px; }
.plr-megamenu-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 28px;
    align-items: start;
}
@media (max-width: 991.98px) {
    .plr-nav .plr-megamenu { min-width: 0; }
    .plr-megamenu-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Burger mobile */
.plr-nav-toggle {
    display: none;
    margin-left: auto;
    background: none;
    border: 0;
    font-size: 22px;
    color: var(--plr-text);
    cursor: pointer;
    padding: 6px 10px;
}

/* Desktop : le wrapper collapsible est toujours déplié (collapse Bootstrap natif
   utilisé uniquement < 992px — pas de JS custom, data-bs-toggle suffit) */
@media (min-width: 992px) {
    .plr-nav-collapse {
        display: flex !important;
        align-items: center;
        flex: 1;
        min-width: 0;
    }
}

/* --------------------------------------------------------------------------
   Sections / heros
   -------------------------------------------------------------------------- */
.plr-section { padding: 88px 0; }
.plr-section-tight { padding: 64px 0; }

/* Hero 2 colonnes (Home : texte gauche / image droite — About : inversé) */
.plr-hero { padding: 96px 0 72px; }

.plr-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: center;
    gap: 56px;
}

.plr-hero .plr-eyebrow { margin-bottom: 22px; }
.plr-hero .plr-btn { margin-top: 34px; }
.plr-hero-text p { margin: 18px 0 0; }

.plr-hero-img { text-align: center; }
.plr-hero-img img { width: 100%; height: auto; }

/* Image hero About : card image arrondie (moyenne → 30) */
.plr-hero-img-rounded img {
    border-radius: var(--plr-r-card);
    width: auto;
    max-height: 560px;
}

/* Bloc philosophie (Home, sous le hero) */
.plr-philosophy {
    padding: 40px 0 84px;
}
.plr-philosophy-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 56px;
    align-items: center;
}
.plr-philosophy-grid > p {
    margin: 0;
    /* Maquette : paragraphe philosophie en noir (vérifié au pixel), pas en gris */
    color: var(--plr-text);
}
.plr-philosophy-aside {
    text-align: right;
}
.plr-philosophy-aside .plr-label {
    display: block;
    font-size: 13px;
    color: var(--plr-text-2);
    margin-bottom: 6px;
}
.plr-philosophy-aside .plr-strongline {
    font-size: 16px;
    font-weight: 700;
    color: var(--plr-text);
    line-height: 1.55;
}

/* Section méthode (titre + paragraphe + CTA centrés) */
.plr-method-head { text-align: center; max-width: 920px; margin: 0 auto; }
.plr-method-head p { margin: 26px auto 0; }
.plr-method-head .plr-btn { margin-top: 34px; }

/* --------------------------------------------------------------------------
   Grande carte « impact » (radius 50 — token grande card)
   -------------------------------------------------------------------------- */
.plr-impact-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card-lg);
    padding: 56px 60px;
    margin-top: 64px;
    display: grid;
    grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr);
    gap: 56px;
    align-items: center;
}

.plr-impact-left { border-right: 1px solid var(--plr-grey-light); padding-right: 48px; }

.plr-impact-left .plr-eyebrow { margin-bottom: 30px; }

.plr-impact-item {
    padding-top: 18px;
    margin-top: 18px;
    border-top: 1px solid var(--plr-grey-light);
    font-size: 17px;
    color: var(--plr-text);
}

.plr-impact-left .plr-btn-link { margin-top: 44px; }

.plr-impact-right { text-align: center; }
.plr-impact-right img { width: 100%; max-width: 640px; height: auto; }

/* --------------------------------------------------------------------------
   Cards génériques (design system) — radius 30, fond #F1F1F1
   -------------------------------------------------------------------------- */
.plr-card {
    background: var(--plr-grey-neutral);
    border-radius: var(--plr-r-card);
    padding: 32px 34px;
}
.plr-card-outline {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
}
.plr-card-accent { background: var(--plr-accent); }   /* perf/data uniquement */
.plr-card h3, .plr-card-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 0 0 14px;
}
.plr-card p { font-size: 14px; margin: 0; }
.plr-card .plr-btn { margin-top: 22px; }

/* Grilles 1/2/3/4 (« Ploovers prend tout son sens… ») */
.plr-grid-2, .plr-grid-3, .plr-grid-4 {
    display: grid;
    gap: 28px;
}
.plr-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plr-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plr-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Listes design system */
.plr-list { list-style: none; margin: 0; padding: 0; }
.plr-list li {
    position: relative;
    padding: 7px 0 7px 26px;
    font-size: 16px;
    color: var(--plr-text);
}
.plr-list-check li::before { content: "\2713"; position: absolute; left: 0; color: var(--plr-navy); font-weight: 600; }
.plr-list-cross li::before { content: "\2715"; position: absolute; left: 0; color: var(--plr-text-3); font-weight: 600; }
.plr-list-num { counter-reset: plrnum; }
.plr-list-num li { counter-increment: plrnum; }
.plr-list-num li::before { content: counter(plrnum) "."; position: absolute; left: 0; color: var(--plr-navy); font-weight: 600; }

/* --------------------------------------------------------------------------
   Composants fiches contrats / pages contenu riche (DS-conformes)
   Palette STRICTE : navy/beige/blanc/neutre + accent #EFF7FF (data/perf only).
   Remplacent : alerts Bootstrap colorées, badges verts, gradients, icon-shapes.
   -------------------------------------------------------------------------- */
/* Feature centrée (icône navy + titre + texte) */
.plr-feature { text-align: center; }
.plr-feature .plr-feature-icon {
    display: block;
    font-size: 26px;
    color: var(--plr-navy);
    margin-bottom: 18px;
}
.plr-feature h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 0 0 10px;
}
.plr-feature p { font-size: 14px; margin: 0; }

/* Item à coche riche (titre bold + description) */
.plr-checkitem {
    position: relative;
    padding: 0 0 0 30px;
    margin: 0 0 18px;
}
.plr-checkitem::before {
    content: "\2713";
    position: absolute;
    left: 0;
    top: 1px;
    color: var(--plr-navy);
    font-weight: 700;
}
.plr-checkitem .plr-checkitem-title {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--plr-text);
}
.plr-checkitem p { font-size: 14px; margin: 2px 0 0; }

/* Badge pill (remplace badge-economy & co) — accent = réservé chiffres/perf */
.plr-badge {
    display: inline-block;
    background: var(--plr-beige);
    color: var(--plr-text);
    border-radius: var(--plr-r-btn);
    padding: 7px 16px;
    font-size: 12px;
    font-weight: 600;
}
.plr-badge-accent { background: var(--plr-accent); color: var(--plr-navy); }

/* Encart note (remplace alert-info/success/warning) */
.plr-note {
    background: var(--plr-beige);
    border-radius: var(--plr-r-card);
    padding: 22px 26px;
    font-size: 14px;
    color: var(--plr-text);
}
.plr-note p { font-size: 14px; margin: 0; color: var(--plr-text); }
.plr-note .plr-note-title {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--plr-text);
}
.plr-note-accent { background: var(--plr-accent); }      /* data/perf uniquement */

/* Tableaux (frais, comparatifs) dans une carte blanche bordée */
.plr-table-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    padding: 26px 28px;
    overflow-x: auto;
}
.plr-table { width: 100%; border-collapse: collapse; }
.plr-table th {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--plr-text-3);
    text-align: left;
    padding: 10px 14px;
    border-bottom: 1px solid var(--plr-border);
}
.plr-table td {
    font-size: 14px;
    color: var(--plr-text);
    padding: 12px 14px;
    border-bottom: 1px solid var(--plr-grey-light);
    vertical-align: top;
}
.plr-table tr:last-child td { border-bottom: 0; }
.plr-td-strong { font-weight: 700; color: var(--plr-navy); }
.plr-table .plr-td-muted { color: var(--plr-text-2); }

/* Bandeau CTA navy plein (remplace les sections gradient) */
.plr-cta-band {
    background: var(--plr-navy);
    border-radius: var(--plr-r-card-lg);
    color: var(--plr-white);
    padding: 56px 48px;
    text-align: center;
}
.plr-cta-band h2, .plr-cta-band h3 {
    font-family: var(--plr-font);
    font-weight: 600;
    font-size: 30px;
    color: var(--plr-white);
    margin: 0 0 16px;
}
.plr-cta-band p { color: rgba(255, 255, 255, 0.82); font-size: 18px; }
.plr-cta-band .plr-btn {
    background: var(--plr-white);
    color: var(--plr-text);
    margin: 8px 6px 0;
}
.plr-cta-band .plr-cta-feature { text-align: center; }
.plr-cta-band .plr-cta-feature .fas,
.plr-cta-band .plr-cta-feature .fab {
    font-size: 22px;
    color: var(--plr-white);
    display: block;
    margin-bottom: 12px;
}
.plr-cta-band .plr-cta-feature h4 {
    font-size: 15px;
    font-weight: 700;
    color: var(--plr-white);
    margin: 0 0 6px;
}
.plr-cta-band .plr-cta-feature p { font-size: 13px; margin: 0; }

/* Étapes (remplace les timelines à points colorés) */
.plr-steps { border-left: 1px solid var(--plr-border); padding-left: 26px; }
.plr-step { position: relative; margin-bottom: 24px; }
.plr-step:last-child { margin-bottom: 0; }
.plr-step::before {
    content: "";
    position: absolute;
    left: -31px;
    top: 6px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--plr-navy);
}
.plr-step .plr-step-title {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--plr-text);
    margin-bottom: 2px;
}
.plr-step p { font-size: 14px; margin: 0; }

/* Accordéon (FAQ) re-skinné dans l'esprit DS — markup Bootstrap conservé */
.plr .accordion-item {
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card) !important;
    margin-bottom: 14px;
    overflow: hidden;
    background: var(--plr-white);
}
.plr .accordion-button {
    font-family: var(--plr-font);
    font-size: 15px;
    font-weight: 600;
    color: var(--plr-text);
    background: var(--plr-white);
    box-shadow: none;
    padding: 20px 26px;
}
.plr .accordion-button:not(.collapsed) {
    color: var(--plr-navy);
    background: var(--plr-grey-neutral);
    box-shadow: none;
}
.plr .accordion-button:focus { box-shadow: none; border-color: var(--plr-border); }
.plr .accordion-body { padding: 22px 26px; font-size: 14px; color: var(--plr-text); }
.plr .accordion-body p { font-size: 16px; }

/* Sous-titres internes des fiches (remplace .text-primary bleu) */
.plr-subhead {
    font-size: 15px;
    font-weight: 700;
    color: var(--plr-navy);
    margin: 0 0 12px;
}

/* --------------------------------------------------------------------------
   Cards vidéo (Podcasts — Investisseur 4.0)
   -------------------------------------------------------------------------- */
.plr-video-card,
.plr a.plr-video-card {
    display: block;
    background: var(--plr-grey-neutral);
    border-radius: var(--plr-r-card);
    overflow: hidden;
    text-decoration: none;
    color: var(--plr-text);
}
.plr-video-card:hover { background: var(--plr-grey-light); text-decoration: none; }

.plr-video-thumb { position: relative; display: block; }
.plr-video-thumb img { display: block; width: 100%; height: auto; }
.plr-video-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    color: var(--plr-white);
    background: rgba(36, 46, 76, 0.18);   /* navy translucide */
}

.plr-video-title {
    display: block;
    padding: 20px 24px 6px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.45;
    color: var(--plr-text);
}

.plr-video-cta {
    display: block;
    padding: 0 24px 22px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--plr-navy);
}

/* --------------------------------------------------------------------------
   About — citation + manifeste
   -------------------------------------------------------------------------- */
.plr-quote-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 56px;
    align-items: center;
    margin-top: 48px;
}

.plr-quote-text {
    font-size: 24px;
    line-height: 1.5;
    color: var(--plr-text);
    margin: 0;
}

.plr-quote-authors {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 30px;
}

/* Placeholders avatars (maquette : rectangles beiges, photos à venir) */
.plr-avatar-ph {
    width: 92px;
    height: 62px;
    border-radius: 10px;
    background: #DAD6CF;
    flex: 0 0 auto;
}

.plr-quote-attribution {
    font-size: 15px;
    font-weight: 700;
    color: var(--plr-text);
}

.plr-quote-sketch { text-align: center; }
.plr-quote-sketch img { width: 100%; max-width: 460px; height: auto; }

.plr-manifesto { max-width: 1060px; }
.plr-manifesto-lead {
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--plr-text);
    margin: 56px 0 26px;
}
.plr-manifesto p {
    font-size: 18px;
    line-height: 1.7;
    color: var(--plr-text);
    margin: 0 0 18px;
}
.plr-manifesto p strong { font-weight: 700; }

/* --------------------------------------------------------------------------
   Footer (navy plein, full-bleed, pas de radius — cf. maquette)
   -------------------------------------------------------------------------- */
.plr-footer {
    background: var(--plr-navy);
    color: var(--plr-white);
    padding: 72px 0 40px;
    }

.plr-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: start;
}

.plr-footer-brand img { height: 54px; width: auto; }
.plr-footer-baseline {
    margin-top: 26px;
    font-size: 14px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
    max-width: 300px;
    letter-spacing: 0.14em;
}

.plr-footer-col-title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 16px;
}

.plr-footer-links { list-style: none; margin: 0; padding: 0; }
.plr-footer-links li { margin: 0 0 11px; }
.plr-footer-links a {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--plr-white);
    text-decoration: none;
}
.plr-footer-links a:hover { text-decoration: underline; color: var(--plr-white); }

/* CTA footer : regroupé sous la marque (logo/baseline/LinkedIn) plutôt qu'en
   pill blanc isolé à droite — évite le vide navy et l'effet « bouton qui flotte ». */
.plr-footer-cta-btn,
.plr a.plr-footer-cta-btn {
    display: inline-block;
    margin-top: 28px;
    background: var(--plr-white);
    color: var(--plr-text);
}
.plr-footer-cta-btn:hover,
.plr a.plr-footer-cta-btn:hover { color: var(--plr-text); }

.plr-footer-legal {
    margin-top: 56px;
    font-size: 10px;
    line-height: 1.8;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: center;
    color: rgba(255, 255, 255, 0.65);
}

/* --------------------------------------------------------------------------
   Responsive (maquettes desktop-only → extrapolation avec les tokens)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .plr-h1-serif { font-size: 38px; }
    .plr-h1 { font-size: 32px; }
    .plr-h2 { font-size: 28px; }

    .plr-hero { padding: 56px 0 40px; }
    .plr-hero-grid,
    .plr-philosophy-grid,
    .plr-quote-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .plr-philosophy-aside { text-align: left; }
    .plr-hero-about .plr-hero-img { order: 2; }

    .plr-impact-card {
        grid-template-columns: minmax(0, 1fr);
        padding: 36px 28px;
        gap: 36px;
    }
    .plr-impact-left { border-right: 0; padding-right: 0; }

    .plr-grid-3, .plr-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .plr-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .plr-footer-cta { text-align: left; }

    /* Nav mobile : panneau déroulé par le collapse Bootstrap (.collapse/.show) */
    .plr-nav-toggle { display: block; }
    .plr-nav-collapse {
        position: absolute;
        left: 0;
        right: 0;
        top: 76px;
        background: var(--plr-white);
        border-bottom: 1px solid var(--plr-grey-light);
        padding: 18px 24px 26px;
        z-index: 1030;
    }
    .plr-nav { position: relative; }
    .plr-nav-links {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
        margin: 0 0 16px;
    }
    .plr-nav-link { padding: 10px 0; }
    .plr-nav-actions {
        margin-left: 0;
        flex-wrap: wrap;
        gap: 12px;
    }
    .plr-nav .dropdown-menu { position: static !important; transform: none !important; }
}

@media (max-width: 575.98px) {
    .plr-grid-2, .plr-grid-3, .plr-grid-4 { grid-template-columns: minmax(0, 1fr); }
    .plr-footer-grid { grid-template-columns: minmax(0, 1fr); }
    .plr-section { padding: 56px 0; }
    .plr-impact-card { border-radius: var(--plr-r-card); }
}

/* ==========================================================================
   V8 (lot 2 — maquettes « Test Claude 2 », juin 2026)
   Home refaite + Méthodologie + Offre + Analyse + Conseillers + /design-system.
   Modèle de page Home : fond #FAFAFA, panneaux blancs pleine largeur radius 50
   (token grande card) séparés par des respirations grises (awards, pills).
   ========================================================================== */

/* Scaffolding Home V8 */
.plr-home { background: #FAFAFA; }
.plr-panel {
    background: var(--plr-white);
    border-radius: var(--plr-r-card-lg);
    margin: 0 14px;
    overflow: hidden;
}
.plr-gap { padding: 44px 0; }   /* respiration grise entre panneaux */
.plr-gap-awards { padding: 24px 0; }   /* bande awards : grisé resserré */

/* --------------------------------------------------------------------------
   Hero V8 (Home) + bandeau caption 3 cellules
   -------------------------------------------------------------------------- */
.plr-hero8 { padding: 84px 0 36px; }   /* +blanc sous le sous-hero (au-dessus de la bande awards) */
.plr-hero8 .plr-hero-grid { align-items: center; }
.plr-hero8 .plr-eyebrow { margin-bottom: 26px; }   /* équilibre eyebrow→titre = titre→CTA (revue 2026-07-02) */
.plr-hero8 .plr-btn { margin-top: 26px; }
.plr-hero8-caption {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 0.55fr);
    gap: 0;
    border-top: 1px solid var(--plr-grey-light);
    margin-top: 64px;
}
.plr-hero8-caption > div { padding: 26px 30px; }
.plr-hero8-caption > div + div { border-left: 1px solid var(--plr-grey-light); }
.plr-hero8-caption .plr-cap-label {
    display: block;
    font-size: 12px;
    color: var(--plr-text-3);
    margin-bottom: 6px;
}
.plr-hero8-caption .plr-cap-strong {
    font-size: 15px;
    font-weight: 700;
    color: var(--plr-text);
    line-height: 1.5;
}
.plr-hero8-caption .plr-cap-figure {
    font-size: 24px;
    font-weight: 700;
    color: var(--plr-text);
}
.plr-hero8-caption p { font-size: 15px; color: var(--plr-text); margin: 0; }

/* --------------------------------------------------------------------------
   Bandeau awards (SVG strip fourni) + rangées de pills enveloppes/actifs
   -------------------------------------------------------------------------- */
.plr-awards { text-align: center; padding: 16px 0 10px; }
.plr-awards img { width: 100%; max-width: 1150px; height: auto; }

.plr-pills {
    padding: 24px 0 48px;
    position: relative;
}
.plr-pills::before {           /* filigrane « dessin marchés » derrière les chips */
    content: "";
    position: absolute;
    inset: -60px 0 0;
    opacity: 0.22;
    pointer-events: none;
}
.plr-pills > * { position: relative; }
/* Rangées mouvantes (note maquettiste : « Mouvant ») — réutilise la mécanique marquee */
.plr-pills .plr-marquee { margin-top: 14px; }
.plr-pills .plr-marquee-track { gap: 14px; animation-duration: 46s; }
.plr-pills .plr-marquee-track.plr-reverse { animation-direction: reverse; }
.plr-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-btn);
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 600;
    color: var(--plr-text);
    white-space: nowrap;
}
.plr-pill img { width: 16px; height: 16px; }

/* --------------------------------------------------------------------------
   Module performance (carte blanche radius 50 — graphe = data ⇒ légende image)
   -------------------------------------------------------------------------- */
.plr-perf {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card-lg);
    padding: 52px 56px;
    display: grid;
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
    gap: 48px;
    align-items: center;
}
.plr-perf h2 {
    font-size: 28px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 0 0 22px;
    line-height: 1.25;
}
.plr-perf-line { font-size: 17px; color: var(--plr-text); padding: 4px 0; }
.plr-perf .plr-btn { margin-top: 26px; }
.plr-perf-chart img { width: 100%; height: auto; }

/* --------------------------------------------------------------------------
   Étapes numérotées riches (« Comment nous créons de la valeur »)
   -------------------------------------------------------------------------- */
.plr-vsteps-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 48px;
    align-items: center;
    margin-bottom: 26px;
}
.plr-vsteps-intro img { width: 100%; max-width: 460px; height: auto; justify-self: end; }
.plr-vsteps { margin: 0; }
.plr-vstep {
    display: grid;
    grid-template-columns: 44px minmax(0, 0.34fr) minmax(0, 0.66fr);
    gap: 18px 26px;
    padding: 30px 0;
    border-top: 1px solid var(--plr-grey-light);
}
.plr-vstep-num {
    width: 28px;
    height: 28px;
    flex-shrink: 0;             /* mobile : pastille ronde, ne pas comprimer quand le texte voisin wrap */
    border-radius: 9999px;
    background: var(--plr-navy);
    color: var(--plr-white);
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: -2px;
}
.plr-vstep-title { font-size: 17px; font-weight: 700; color: var(--plr-text); }
.plr-vstep-body { font-size: 14px; color: var(--plr-text-2); }
.plr-vstep-body p { font-size: 16px; margin: 0 0 10px; }
.plr-vstep-body p:last-child { margin-bottom: 0; }
.plr-vstep-body .plr-arrow {
    display: block;
    color: var(--plr-navy);
    font-weight: 600;
}

/* Résultat (titre gris centré + frontière efficiente + 2 CTA) */
.plr-result { text-align: center; }
.plr-result h2 {
    font-size: 26px;
    font-weight: 600;
    color: var(--plr-text-2);
    margin: 0 0 36px;
    line-height: 1.35;
}
.plr-result-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.58fr) minmax(0, 0.42fr);
    gap: 44px;
    align-items: center;
    text-align: left;
}
.plr-result-grid img { width: 100%; max-width: 620px; height: auto; }
.plr-result-grid p { font-size: 17px; color: var(--plr-text); margin: 0; line-height: 1.55; }
.plr-result-ctas { margin-top: 40px; display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.plr-btn-outline,
.plr a.plr-btn-outline {
    background: var(--plr-white);
    color: var(--plr-text);
    border: 1px solid var(--plr-border);
}
.plr a.plr-btn-outline:hover { color: var(--plr-navy); }

/* --------------------------------------------------------------------------
   Partenaires — barre défilante (note maquettiste : inspiration Eres Group,
   fondu progressif aux extrémités). JS = aucun ; animation CSS pure.
   -------------------------------------------------------------------------- */
.plr-partners { text-align: center; }
.plr-partners h2 { font-size: 26px; font-weight: 700; color: var(--plr-text); margin: 0 0 14px; }
.plr-partners-sub { max-width: 880px; margin: 0 auto 38px; color: var(--plr-text-2); }
.plr-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.plr-marquee-track {
    display: flex;
    align-items: center;
    gap: 84px;
    width: max-content;
    animation: plr-scroll 38s linear infinite;
}
.plr-marquee-track img { height: 40px; width: auto; }
.plr-marquee-track img.plr-logo-tall { height: 56px; }
@keyframes plr-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .plr-marquee-track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; }
    .plr-marquee { mask-image: none; -webkit-mask-image: none; }
}

/* --------------------------------------------------------------------------
   Carte tension (« Votre capital travaille-t-il vraiment pour vous ? »)
   -------------------------------------------------------------------------- */
.plr-tension {
    background: var(--plr-grey-neutral);
    border-radius: var(--plr-r-card-lg);
    padding: 64px 48px;
    text-align: center;
}
.plr-tension h2 { font-size: 32px; font-weight: 700; color: var(--plr-text); margin: 0 0 18px; }
.plr-tension-sub { max-width: 620px; margin: 0 auto; color: var(--plr-text-2); font-size: 17px; }
.plr-tension img { width: 100%; max-width: 600px; height: auto; margin: 36px auto 8px; }
.plr-tension .plr-btn { margin-top: 22px; }
.plr-tension-micro { font-size: 13px; color: var(--plr-text-3); margin: 18px 0 0; }

/* Cards simulateurs */
.plr-sim-card,
.plr a.plr-sim-card {
    display: block;
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    padding: 30px 32px;
    color: var(--plr-text);
    text-decoration: none;
}
.plr a.plr-sim-card:hover { border-color: var(--plr-navy); color: var(--plr-text); }
.plr-sim-card img { width: 40px; height: 40px; margin-bottom: 16px; }
.plr-sim-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 17px;
    font-weight: 700;
}
.plr-sim-card p { font-size: 13px; color: var(--plr-text-3); margin: 6px 0 0; }

/* --------------------------------------------------------------------------
   Use cases (sélecteur de personas) — bande beige token, titres surlignés blanc
   -------------------------------------------------------------------------- */
.plr-uc {
    background: var(--plr-beige);
    border-radius: var(--plr-r-card-lg);
    padding: 56px 48px;
}
.plr-uc-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.plr-uc-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    padding: 24px 26px;
    cursor: pointer;
    text-align: left;
    transition: border-color .2s ease;
}
.plr-uc-card:hover { border-color: var(--plr-navy); }
.plr-uc-avatar {
    display: inline-flex;           /* span : indispensable pour que w/h s'appliquent */
    width: 64px;
    height: 64px;
    border-radius: 16px;            /* portraits carrés arrondis (décision 2026-07-02) */
    padding: 5px;
    background: transparent;
    transition: background-color .25s ease;
}
.plr-uc-card.active .plr-uc-avatar { background: var(--plr-accent); }
.plr-uc-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 12px;
    object-fit: cover;              /* portrait carré arrondi (autorisé : pas un graphique) */
    filter: grayscale(1);
}
.plr-uc-name { font-size: 16px; font-weight: 700; color: var(--plr-text); margin: 14px 0 0; }
.plr-uc-job { font-size: 12px; color: var(--plr-text-2); margin: 0 0 10px; }
.plr-uc-need { font-size: 13px; color: var(--plr-text-3); min-height: 54px; }
.plr-uc-tag {
    border-top: 1px solid var(--plr-grey-light);
    margin-top: 14px;
    padding-top: 12px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--plr-text-3);
}
/* Modale récit persona (Bootstrap habillé DS — radius 30, bordure fine) */
.plr-uc-modal .modal-content {
    border-radius: var(--plr-r-card);
    border: 1px solid var(--plr-border);
    padding: 10px 8px;
}
.plr-uc-modal .modal-header { border: 0; align-items: flex-start; }
.plr-uc-modal .plr-uc-modal-meta { display: flex; align-items: center; gap: 16px; }
.plr-uc-modal .modal-title {
    font-size: 26px;
    font-weight: 700;
    color: var(--plr-text);
    line-height: 1.3;
    margin: 0 0 16px;
}
.plr-uc-modal .modal-body { padding-top: 4px; }
.plr-uc-modal .modal-body p {
    font-size: 17px;
    line-height: 1.8;
    color: var(--plr-text);
    margin: 0;
}
.plr-uc-modal .modal-footer { border: 0; justify-content: flex-start; }

/* --------------------------------------------------------------------------
   Conseil humain (portrait + 3 features à coche navy)
   -------------------------------------------------------------------------- */
.plr-advice-head h2 { font-size: 28px; font-weight: 700; margin: 0 0 6px; }
.plr-advice-head p { color: var(--plr-text-2); margin: 0 0 36px; }
.plr-advice {
    display: grid;
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
    gap: 48px;
    align-items: center;
}
.plr-advice-photo img { width: 100%; max-width: 470px; height: auto; border-radius: var(--plr-r-card); }
.plr-advice-item { margin-bottom: 30px; }
.plr-advice-item:last-child { margin-bottom: 0; }
/* Maquette : titre gras simple (pas de fond gris ni de pastille check). */
.plr-advice-item-head {
    font-size: 17px;
    font-weight: 700;
    color: var(--plr-text);
    margin-bottom: 12px;
}
.plr-advice-check {
    width: 22px;
    height: 22px;
    border-radius: 9999px;
    background: var(--plr-navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 22px;
}
.plr-advice-check img { width: 11px; height: 11px; }
.plr-advice-item > p { font-size: 14px; color: var(--plr-text-2); margin: 10px 4px 0; }

/* --------------------------------------------------------------------------
   Comparatif frais (card accent = données/perf) vs colonne traditionnelle
   -------------------------------------------------------------------------- */
.plr-compare {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 38px;
    align-items: start;
}
.plr-compare-card {
    background: var(--plr-accent);
    border-radius: var(--plr-r-card);
    padding: 36px 38px;
}
.plr-compare-brand { font-size: 15px; font-weight: 800; letter-spacing: 0.04em; color: var(--plr-text); margin-bottom: 20px; }
.plr-compare-label { font-size: 13px; font-weight: 600; color: var(--plr-text-2); margin: 4px 0 22px; }
.plr-compare-fig {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding: 10px 0;
}
.plr-compare-fig .plr-fig { font-size: 32px; font-weight: 800; color: var(--plr-text); white-space: nowrap; }
.plr-compare-fig .plr-fig-label { font-size: 12px; color: var(--plr-text-3); text-align: right; }
.plr-compare-fig .plr-fig-label small { display: block; font-size: 11px; }
.plr-compare hr { border: 0; border-top: 1px solid var(--plr-grey-light); margin: 16px 0; }
.plr-compare .plr-list li { font-size: 13.5px; padding: 6px 0 6px 26px; }
.plr-compare-card .plr-btn { margin-top: 24px; }
.plr-compare-col { padding: 36px 6px; }
.plr-compare-foot { font-size: 12px; color: var(--plr-text-3); margin-top: 26px; }

/* Carte gain net (grande card blanche radius 50) */
.plr-gain {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card-lg);
    padding: 56px 60px;
    display: grid;
    grid-template-columns: minmax(0, 0.5fr) minmax(0, 0.5fr);
    gap: 48px;
    align-items: center;
}
.plr-gain h2 { font-size: 30px; font-weight: 700; margin: 0 0 28px; line-height: 1.3; }
.plr-gain img { width: 100%; max-width: 560px; height: auto; justify-self: center; }

/* --------------------------------------------------------------------------
   3 expertises (fond filigrane « dessin marchés » fourni)
   -------------------------------------------------------------------------- */
.plr-expertises { position: relative; overflow: hidden; }
.plr-expertises::before {
    /* Maquette : le dessin « marchés » couvre toute la largeur de la bande,
       nettement visible derrière le titre et entre les cards. Ratio natif. */
    content: "";
    position: absolute;
    inset: 0;
    background: url('/static/assets/img/public-refonte/graph-marches-dessin-plat.png') center / 100% auto no-repeat;
    opacity: 0.45;
    pointer-events: none;
}
.plr-expertises > * { position: relative; }
.plr-expertises h2 { text-align: center; font-size: 30px; font-weight: 700; margin: 0 0 40px; }
.plr-exp-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    padding: 30px 32px;
}
.plr-exp-head { display: flex; align-items: center; gap: 12px; font-size: 16px; font-weight: 700; margin-bottom: 16px; }
.plr-exp-head img { width: 40px; height: 40px; }
.plr-exp-card p { font-size: 14px; color: var(--plr-text-2); margin: 0; }

/* Points de vue (cards non cliquables — articles à venir) */
.plr-pdv h2 { font-size: 28px; font-weight: 700; margin: 0 0 32px; }
.plr-pdv-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    overflow: hidden;
}
.plr-pdv-card img { width: 100%; height: auto; display: block; }
.plr-pdv-card p { font-size: 14px; font-weight: 600; color: var(--plr-text); margin: 0; padding: 18px 22px 22px; }
.plr-pdv .plr-btn { margin-top: 32px; }

/* Bandeau CTA final (carte blanche + chouette) */
.plr-cta-card {
    background: var(--plr-white);
    border-radius: var(--plr-r-card-lg);
    padding: 56px 64px;
    display: grid;
    grid-template-columns: minmax(0, 0.62fr) minmax(0, 0.38fr);
    gap: 40px;
    align-items: center;
}
.plr-cta-card h2 { font-size: 30px; font-weight: 700; line-height: 1.3; margin: 0 0 26px; }
.plr-cta-card img { width: 100%; max-width: 300px; height: auto; justify-self: center; }

/* Footer : lien LinkedIn */
.plr-footer-linkedin,
.plr a.plr-footer-linkedin {
    display: flex;            /* bloc : LinkedIn sur sa propre ligne, sous le CTA */
    width: fit-content;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    margin-top: 18px;
    text-decoration: none;
}
.plr a.plr-footer-linkedin:hover { color: var(--plr-white); }

/* --------------------------------------------------------------------------
   About V8
   -------------------------------------------------------------------------- */
.plr-mission { text-align: center; }
.plr-mission .plr-mission-label { font-size: 14px; color: var(--plr-text-3); display: block; margin-bottom: 44px; }
.plr-mission-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
    gap: 56px;
    text-align: left;
    align-items: center;
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card-lg);
    padding: 56px 60px;
}
.plr-mission-grid p { font-size: 28px; font-weight: 700; line-height: 1.45; margin: 0; color: var(--plr-text); }
.plr-mission-grid p em { font-style: normal; color: var(--plr-text-2); }

.plr-expertise-band { position: relative; }
.plr-expertise-band::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url('/static/assets/img/public-refonte/bg-expertise-charts.png') center top / 1000px auto no-repeat;
    opacity: 0.18;
    pointer-events: none;
}
.plr-expertise-band > * { position: relative; }

.plr-founder-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    padding: 34px 36px;
}
.plr-founder-card .plr-founder-photo {
    width: 64px;
    height: 64px;
    border-radius: 16px;            /* portraits carrés arrondis (décision 2026-07-02) */
    object-fit: cover;
    object-position: top center;    /* portraits hauts : cadrer le visage */
    filter: grayscale(1);
    margin-bottom: 26px;
}
.plr-founder-name { font-size: 17px; font-weight: 700; margin: 0; }
.plr-founder-role { font-size: 12px; color: var(--plr-text-3); margin: 2px 0 14px; }
.plr-founder-card .plr-founder-diploma { font-size: 12px; color: var(--plr-text-3); margin: 0 0 14px; }
.plr-founder-card p { font-size: 14px; color: var(--plr-text-2); margin: 0; }

/* Quote « Pourquoi nous existons » : avatars carrés arrondis + Co-CEOs */
.plr-quote-authors img.plr-quote-avatar {
    width: 44px;
    height: 44px;
    flex-shrink: 0;             /* mobile : avatar, ne pas comprimer (cohérent avec .plr-avatar-ph) */
    border-radius: 12px;
    object-fit: cover;
    filter: grayscale(1);
    margin-right: 8px;
}
/* Portrait 2-up des fondateurs (pencil) — maquette About VF */
.plr-quote-authors img.plr-quote-founders {
    height: 64px;
    width: auto;
    flex-shrink: 0;
    border-radius: 10px;
    filter: grayscale(1);
    margin-right: 12px;
}

.plr-change-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card-lg);
    padding: 56px 60px;
    display: grid;
    grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
    gap: 48px;
    align-items: center;
}
.plr-change-card h2 { font-size: 30px; font-weight: 700; margin: 0 0 30px; line-height: 1.3; }
.plr-change-right { border-left: 1px solid var(--plr-grey-light); padding-left: 48px; }
.plr-change-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    font-size: 17px;
    font-weight: 600;
    color: var(--plr-text);
    padding: 12px 0;
}
.plr-change-check {
    width: 26px;
    height: 26px;
    border-radius: 9999px;
    background: var(--plr-grey-neutral);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 26px;
    margin-top: -2px;
}
.plr-change-check img { width: 12px; height: 12px; opacity: 0.55; }

/* --------------------------------------------------------------------------
   Page éditoriale (Méthodologie)
   -------------------------------------------------------------------------- */
.plr-article { max-width: 860px; margin: 0 auto; }
.plr-article h1 { font-size: 40px; font-weight: 600; margin: 0 0 14px; }
.plr-article .plr-lead { font-size: 19px; color: var(--plr-text-2); margin: 0 0 48px; }
.plr-article h2 { font-size: 23px; font-weight: 700; margin: 48px 0 18px; }
.plr-article h3 { font-size: 17px; font-weight: 700; margin: 26px 0 10px; }
.plr-article p { font-size: 15.5px; line-height: 1.75; margin: 0 0 16px; color: var(--plr-text); }
.plr-article ul { margin: 0 0 16px; padding-left: 4px; list-style: none; }
.plr-article ul li {
    position: relative;
    padding: 4px 0 4px 22px;
    font-size: 15.5px;
    line-height: 1.65;
}
.plr-article ul li::before { content: "–"; position: absolute; left: 0; color: var(--plr-text-2); }
.plr-article .plr-arrow {
    display: block;
    color: var(--plr-navy);
    font-weight: 600;
    margin: 0 0 16px;
}
.plr-article .plr-callout {
    background: var(--plr-grey-neutral);
    border-radius: var(--plr-r-card);
    padding: 26px 30px;
    margin: 0 0 16px;
}
.plr-article .plr-callout p { margin: 0; }

/* --------------------------------------------------------------------------
   Offre V8
   -------------------------------------------------------------------------- */
.plr-offer-card {
    background: var(--plr-grey-neutral);
    border-radius: var(--plr-r-card);
    padding: 44px 46px;
    display: flex;
    flex-direction: column;
}
.plr-offer-card .plr-offer-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 26px;
}
.plr-offer-card h2 { font-size: 30px; font-weight: 700; margin: 0; }
.plr-offer-price { font-size: 26px; font-weight: 600; color: var(--plr-text-3); }
.plr-offer-card p { font-size: 14.5px; color: var(--plr-text); }
.plr-offer-card .plr-btn { margin-top: auto; align-self: flex-start; }
.plr-navy-check { display: flex; gap: 14px; align-items: flex-start; padding: 10px 0; font-size: 17px; }

/* Barres de frais (bandeau « conservez davantage de valeur ») */
.plr-feeband { background: #FAFAFA; border-radius: var(--plr-r-card); padding: 44px 40px; text-align: center; }
.plr-feeband h3 { font-size: 15px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 10px; }
.plr-feeband-sub { font-size: 13.5px; color: var(--plr-text-3); margin: 0 0 30px; }
.plr-feebar { display: flex; align-items: center; gap: 16px; margin: 14px auto; max-width: 880px; }
.plr-feebar-track { display: flex; gap: 5px; }
.plr-feebar-seg { width: 52px; height: 13px; border-radius: 3px; }
.plr-feebar-bank .plr-feebar-seg { background: #E98E84; }
.plr-feebar-plv .plr-feebar-seg { background: var(--plr-navy); }
.plr-feebar-label { font-size: 13.5px; white-space: nowrap; }
.plr-feebar-bank .plr-feebar-label { color: #E98E84; font-weight: 600; }
.plr-feebar-plv .plr-feebar-label { color: var(--plr-text); }
.plr-feebar-label strong { font-weight: 700; }

/* « Ce que vous obtenez » : liste numérotée à pastilles navy */
.plr-getcard {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card-lg);
    padding: 52px 58px;
    display: grid;
    grid-template-columns: minmax(0, 0.4fr) minmax(0, 0.6fr);
    gap: 48px;
    align-items: start;
}
.plr-getcard h2 { font-size: 30px; font-weight: 700; margin: 0; }
.plr-getitem { display: flex; gap: 16px; align-items: flex-start; padding: 11px 0; font-size: 17px; }
.plr-getitem p { margin: 2px 0 0; font-size: 17px; }
.plr-getitem strong { font-weight: 700; }

/* Liste « > » (quand faire appel à nous) */
.plr-list-gt li::before { content: ">"; position: absolute; left: 2px; color: var(--plr-text-2); font-weight: 600; }
.plr-list-gt li { font-size: 17px; }

/* Missions spécifiques (carte beige) */
.plr-missions-card {
    background: var(--plr-beige);
    border-radius: var(--plr-r-card-lg);
    padding: 52px 58px;
    display: grid;
    grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
    gap: 48px;
    align-items: center;
}
.plr-missions-card h2 { font-size: 32px; font-weight: 700; margin: 0 0 8px; }
.plr-missions-price { font-size: 22px; font-weight: 600; color: var(--plr-text); margin: 0 0 30px; line-height: 1.4; }
.plr-missions-card ul li { font-size: 17px; padding: 9px 0 9px 26px; border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
.plr-missions-card ul li:last-child { border-bottom: 0; }

/* --------------------------------------------------------------------------
   Page Analyse patrimoniale (transmission de relevé)
   -------------------------------------------------------------------------- */
.plr-how-card {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    padding: 32px 34px;
}
.plr-how-card .plr-vstep-num { margin-bottom: 22px; }
.plr-how-card p { font-size: 14px; color: var(--plr-text); margin: 0; }
.plr-how-card .plr-how-duration { display: block; margin-top: 8px; font-size: 12.5px; color: var(--plr-text-2); font-style: italic; }
.plr-confidential {
    background: var(--plr-navy);
    border-radius: var(--plr-r-card-lg);
    color: var(--plr-white);
    text-align: center;
    padding: 52px 48px;
}
.plr-confidential h2 { font-size: 24px; font-weight: 700; color: var(--plr-white); max-width: 760px; margin: 0 auto 18px; line-height: 1.45; }
.plr-confidential p { font-size: 12.5px; color: rgba(255, 255, 255, 0.72); max-width: 860px; margin: 0 auto; }

/* --------------------------------------------------------------------------
   Conseillers (B2B) — interprétation DS validée (slide 19, pas d'export Figma)
   -------------------------------------------------------------------------- */
.plr-b2b-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-btn);
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 600;
    margin: 0 8px 10px 0;
}
.plr-b2b-shot { width: 100%; height: auto; border-radius: var(--plr-r-card); border: 1px solid var(--plr-border); }
.plr-logos-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 56px;
}
.plr-logos-row img { height: 34px; width: auto; opacity: 0.85; }

/* --------------------------------------------------------------------------
   /design-system — page de référence
   -------------------------------------------------------------------------- */
.plr-ds-section { padding: 56px 0; border-top: 1px solid var(--plr-grey-light); }
.plr-ds-section:first-of-type { border-top: 0; }
.plr-ds-section > h2 { font-size: 26px; font-weight: 700; margin: 0 0 8px; }
.plr-ds-section > .plr-ds-desc { color: var(--plr-text-2); font-size: 14.5px; margin: 0 0 30px; max-width: 760px; }
.plr-ds-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.plr-ds-swatch { border: 1px solid var(--plr-grey-light); border-radius: 14px; overflow: hidden; }
.plr-ds-swatch .plr-ds-color { height: 84px; }
.plr-ds-swatch .plr-ds-meta { padding: 12px 14px; font-size: 12px; }
.plr-ds-swatch .plr-ds-meta code { display: block; font-size: 12px; color: var(--plr-text); }
.plr-ds-swatch .plr-ds-meta span { color: var(--plr-text-3); }
.plr-ds-spec {
    font-size: 12px;
    color: var(--plr-text-3);
    background: var(--plr-grey-neutral);
    border-radius: 8px;
    padding: 3px 10px;
    display: inline-block;
    margin: 0 0 14px;
}
.plr-ds-block { margin-bottom: 34px; }
.plr-ds-toc { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 8px; }
.plr-ds-radius-demo { display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-end; }
.plr-ds-radius-demo .plr-ds-r {
    background: var(--plr-grey-neutral);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: var(--plr-text-2);
}

/* --------------------------------------------------------------------------
   Responsive V8
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .plr-panel { margin: 0 8px; border-radius: var(--plr-r-card); }
    .plr-hero8 { padding: 56px 0 0; }
    .plr-hero8-caption { grid-template-columns: minmax(0, 1fr); }
    .plr-hero8-caption > div + div { border-left: 0; border-top: 1px solid var(--plr-grey-light); }
    .plr-perf, .plr-gain, .plr-cta-card, .plr-change-card, .plr-mission-grid,
    .plr-getcard, .plr-missions-card { grid-template-columns: minmax(0, 1fr); padding: 36px 28px; gap: 28px; }
    .plr-vsteps-intro { grid-template-columns: minmax(0, 1fr); }
    .plr-vsteps-intro img { justify-self: start; }
    .plr-vstep { grid-template-columns: 44px 1fr; }
    .plr-vstep-body { grid-column: 2; }
    .plr-result-grid { grid-template-columns: minmax(0, 1fr); }
    .plr-advice { grid-template-columns: minmax(0, 1fr); }
    .plr-compare { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .plr-uc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .plr-uc-title { font-size: 28px; }
    .plr-tension { padding: 44px 24px; }
    .plr-tension h2 { font-size: 25px; }
    .plr-ds-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .plr-feebar { flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media (max-width: 575.98px) {
    .plr-uc-grid { grid-template-columns: minmax(0, 1fr); }
    .plr-uc { padding: 40px 22px; }
    .plr-article h1 { font-size: 31px; }
}

/* --------------------------------------------------------------------------
   Auth (connexion / création de compte) — restyle design system, SCOPÉ.
   Hook `.plr-auth` posé sur les cartes (modales) ; le DOM et le câblage
   (reCAPTCHA Enterprise, CSRF, ids/noms, scripts) restent strictement intacts —
   on n'agit qu'en CSS. Chargé uniquement sur les pages publiques (public.html).
   -------------------------------------------------------------------------- */
.plr-auth.card,
.plr-auth {
    font-family: var(--plr-font);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    background: var(--plr-white);
    box-shadow: none;
}
.plr-auth .card-header { padding-bottom: 0; }
.plr-auth h2 {
    font-family: var(--plr-font);
    font-weight: 700;
    color: var(--plr-text);
    font-size: 22px;
}
.plr-auth .card-header span,
.plr-auth .card-header p { color: var(--plr-text-2); font-size: 14px; }

/* Labels */
.plr-auth label {
    font-size: 13px;
    font-weight: 600;
    color: var(--plr-text-2);
    margin-bottom: 6px;
}

/* Champs : icône input-group neutralisée → champ épuré (style institutionnel) */
.plr-auth .input-group-text { display: none; }
.plr-auth .form-control {
    border: 1px solid var(--plr-border);
    border-radius: 12px;
    padding: 13px 16px;
    font-size: 15px;
    color: var(--plr-text);
    background: var(--plr-white);
    box-shadow: none;
}
.plr-auth .form-control:focus {
    border-color: var(--plr-navy);   /* focus = bordure navy, pas d'ombre (design-rules) */
    box-shadow: none;
    outline: none;
}
.plr-auth .form-text,
.plr-auth small { color: var(--plr-text-3); }

/* Boutons : primaire navy pill, tertiaire beige pill (radius token 100) */
.plr-auth .btn {
    border-radius: var(--plr-r-btn);
    padding: 14px 28px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 0;
}
.plr-auth .btn-primary,
.plr-auth .btn-primary:hover,
.plr-auth .btn-primary:focus {
    background: var(--plr-navy);
    color: var(--plr-white);
}
.plr-auth .btn-tertiary,
.plr-auth .btn-tertiary:hover,
.plr-auth .btn-tertiary:focus {
    background: var(--plr-beige);
    color: var(--plr-text);
}
.plr-auth .btn:hover { opacity: .88; }

/* Liens */
.plr-auth a { color: var(--plr-navy); }

/* Séparateurs */
.plr-auth hr { border-color: var(--plr-grey-light); opacity: 1; }

/* Checkbox conditions */
.plr-auth .form-check-input:checked {
    background-color: var(--plr-navy);
    border-color: var(--plr-navy);
}

/* --------------------------------------------------------------------------
   Pipeline horizontal « La chaîne de décision Ploovers » (anti-parallèle Titan :
   remplace la liste verticale 1-2-3-4 par une chaîne enveloppe→actifs→
   sélection→optimisation). Vertical sur mobile.
   -------------------------------------------------------------------------- */
.plr-pipeline {
    display: flex;
    align-items: stretch;
    margin-top: 44px;
}
.plr-pipeline-step {
    flex: 1 1 0;
    background: var(--plr-grey-neutral);
    border-radius: var(--plr-r-card);
    padding: 28px 26px;
}
.plr-pipeline-num {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    border-radius: 9999px;
    background: var(--plr-navy);
    color: var(--plr-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 16px;
}
.plr-pipeline-step h3 { font-size: 16px; font-weight: 700; color: var(--plr-text); margin: 0 0 10px; }
.plr-pipeline-step p { font-size: 13px; color: var(--plr-text-2); margin: 0; line-height: 1.55; }
.plr-pipeline-arrow {
    flex: 0 0 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--plr-navy);
    font-size: 22px;
}
@media (max-width: 900px) {
    .plr-pipeline { flex-direction: column; }
    .plr-pipeline-arrow { flex-basis: 30px; transform: rotate(90deg); }
}

/* --------------------------------------------------------------------------
   Histoires clients — sélecteur 2 colonnes inline (maquette VF) : liste de
   personas à gauche, carte active à droite mise à jour au clic (sans modale).
   -------------------------------------------------------------------------- */
.plr-uc-heading { font-size: 28px; font-weight: 700; color: var(--plr-text); margin-bottom: 34px; }
.plr-uc-select {
    display: grid;
    grid-template-columns: minmax(0, 0.4fr) minmax(0, 0.6fr);
    gap: 28px;
    align-items: start;
}
.plr-uc-list { display: flex; flex-direction: column; gap: 10px; }
.plr-uc-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    border-radius: var(--plr-r-card);
    border: 1px solid transparent;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}
.plr-uc-item:hover { background: var(--plr-grey-neutral); }
.plr-uc-item.active { background: var(--plr-white); border-color: var(--plr-border); }
.plr-uc-item .plr-uc-avatar { width: 48px; height: 48px; }
.plr-uc-item .plr-uc-name { font-weight: 700; color: var(--plr-text); margin: 0; }
.plr-uc-item .plr-uc-job { font-size: 13px; color: var(--plr-text-2); margin: 0; }
.plr-uc-active {
    background: var(--plr-white);
    border: 1px solid var(--plr-border);
    border-radius: var(--plr-r-card);
    padding: 40px 44px;
}
.plr-uc-active .plr-eyebrow { margin-bottom: 16px; }
.plr-uc-active h3 { font-size: 22px; font-weight: 700; color: var(--plr-text); margin: 0 0 18px; }
.plr-uc-active p { color: var(--plr-text-2); margin: 0 0 26px; line-height: 1.6; }
@media (max-width: 900px) {
    .plr-uc-select { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   V9 (lot 3 — maquettes « Test Claude 4 », juillet 2026)
   Nouveaux composants relevés dans la dernière version des maquettes :
   citation-conviction, awards, barres de frais pleines, comparatif VS,
   tabs personas, use-case détaillé, situations, expertise 3 colonnes,
   « Lire plus », logos statiques, images à coins arrondis.
   ========================================================================== */

/* Images éditoriales — coins légèrement arrondis (photos, illustrations, héros).
   Les graphiques restent affichés en natif : jamais recadrés ni étirés. */
.plr-img-rounded { border-radius: var(--plr-r-img); }

/* Eyebrow bleu data (sections conviction/expertise de la home) */
.plr-eyebrow-blue { color: var(--plr-blue); }

/* --------------------------------------------------------------------------
   Citation-conviction (divider vertical navy, texte Inter SemiBold 32)
   Tokens : divider #242E4C aligné en haut, ~85 % de la hauteur du bloc,
   texte à ~80 px du divider, bloc ~530-700 px.
   -------------------------------------------------------------------------- */
.plr-conviction {
    position: relative;
    padding-left: 80px;
    max-width: 700px;
}
.plr-conviction::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 1.5px;
    height: min(120px, 40%);    /* 120px fixe, plafonné à 1/3 de la hauteur du bloc (revue 2026-07-02) */
    background: var(--plr-navy);
}
.plr-conviction .plr-eyebrow { display: block; margin-bottom: 26px; }
/* Préfixe .plr obligatoire : « .plr p » (0,1,1) écraserait la classe seule (0,1,0) */
.plr .plr-conviction-quote {
    font-size: 32px;
    font-weight: 900;           /* Inter Bold (900 embarquée dans fonts.css) */
    line-height: 1.08;          /* interligne resserré (revue 2026-07-02, 2e passe) */
    color: var(--plr-text);
    margin: 0;
    max-width: 430px;           /* token : bloc texte de citation ~430 px */
}
.plr-conviction-tint { color: #5F6672; }   /* gris de la maquette PNG — PAS le token corps de texte assombri */
.plr-conviction-author { margin-top: 30px; }
.plr-conviction-author .plr-author-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 0;
}
.plr-conviction-author .plr-author-role {
    font-size: 15px;
    color: var(--plr-text-2);
    margin: 0 0 14px;
}
.plr-conviction-author .plr-author-bio {
    font-size: 18px;
    line-height: 1.6;
    color: var(--plr-text-2);
    margin: 0;
    max-width: 480px;
}
@media (max-width: 700px) {
    .plr-conviction { padding-left: 80px; }
    .plr .plr-conviction-quote { font-size: 24px; }
}

/* --------------------------------------------------------------------------
   Awards — défilement horizontal lent et continu (mêmes règles que les
   enveloppes : discret, sans accélération ni rebond)
   -------------------------------------------------------------------------- */
.plr-awards .plr-marquee-track { gap: 110px; animation-duration: 60s; }
.plr-awards img { height: 74px; width: auto; }

/* --------------------------------------------------------------------------
   Barres de frais pleines (« Conservez davantage de valeur pour vous »)
   Barre grise = conseil traditionnel, barre bleue = Ploovers.
   -------------------------------------------------------------------------- */
.plr-feelines { max-width: 1060px; margin: 48px auto 0; }
.plr-feeline {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 22px 0;
}
.plr-feeline-bar {
    height: 8px;
    border-radius: var(--plr-r-btn);
    background: var(--plr-bar-grey);
    flex: 0 0 auto;
}
.plr-feeline-trad .plr-feeline-bar { width: min(62%, 730px); }
.plr-feeline-plv .plr-feeline-bar { width: min(33%, 385px); background: var(--plr-blue); }
.plr-feeline-label { font-size: 16px; color: var(--plr-text); white-space: nowrap; }
.plr .plr-feelines-notes {
    font-size: 13px;
    line-height: 1.6;
    color: var(--plr-text-3);
    margin-top: 26px;
}
@media (max-width: 700px) {
    .plr-feeline { flex-wrap: wrap; gap: 10px; }
    .plr-feeline-label { white-space: normal; }
}

/* --------------------------------------------------------------------------
   Comparatif « PLOOVERS / CONSEIL TRADITIONNEL » (carte blanche radius 50,
   deux colonnes, divider vertical discret entre les deux)
   -------------------------------------------------------------------------- */
.plr-vs {
    background: var(--plr-white);
    border: 1px solid var(--plr-grey-light);
    border-radius: var(--plr-r-card-lg);
    padding: 56px 64px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 72px;
    position: relative;
}
.plr-vs::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 22%;
    height: 56%;
    width: 1px;
    background: var(--plr-navy);
    opacity: 0.35;
}
.plr-vs-title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--plr-text);
    margin: 0 0 18px;
}
.plr .plr-vs-intro {
    font-size: 14px;
    line-height: 1.5;
    color: var(--plr-text);
    margin: 0 0 22px;
}
.plr-vs .plr-list li { font-size: 14px; padding: 7px 0 7px 26px; }
@media (max-width: 900px) {
    .plr-vs { grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 40px 28px; }
    .plr-vs::before { display: none; }
}

/* --------------------------------------------------------------------------
   Tabs personas (« Comment nous répondons aux enjeux de nos clients »)
   -------------------------------------------------------------------------- */
.plr-tabs {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin: 34px 0 40px;
}
.plr-tab {
    border: 1px solid var(--plr-grey-light);
    border-radius: var(--plr-r-btn);
    background: var(--plr-white);
    padding: 12px 26px;
    font-family: var(--plr-font);
    font-size: 15px;
    color: var(--plr-text-2);
    cursor: pointer;
    transition: background 0.15s ease;
}
.plr-tab:hover { background: var(--plr-beige); color: var(--plr-text); }
.plr-tab.active {
    background: var(--plr-grey-neutral);
    border-color: transparent;
    color: var(--plr-text);
    font-weight: 600;
}

/* Use-case détaillé : portrait à gauche (coins arrondis), card bordée à droite */
.plr-uc2 {
    display: grid;
    grid-template-columns: minmax(0, 0.3fr) minmax(0, 0.7fr);
    gap: 44px;
    align-items: stretch;       /* la card texte suit la hauteur de la rangée */
}
/* Pile de profils : toutes les cards occupent la même cellule de grille →
   le conteneur garde la hauteur de la plus grande, le bouton en dessous ne
   bouge jamais ; bascule en fondu. */
.plr-uc2-stack { display: grid; }
.plr-uc2-stack > .plr-uc2 {
    grid-area: 1 / 1;
    visibility: hidden;
    opacity: 0;
}
.plr-uc2-stack > .plr-uc2.active {
    visibility: visible;
    opacity: 1;
}
@media (prefers-reduced-motion: no-preference) {
    .plr-uc2-stack > .plr-uc2 { transition: opacity 0.3s ease; }
}
.plr-uc2-photo img {
    width: 100%;
    height: auto;
    aspect-ratio: 773 / 795;    /* hauteur alignée sur le portrait médecin libéral (référence) */
    object-fit: cover;
    object-position: center top;
    border-radius: var(--plr-r-img);
}
.plr-uc2-body {
    border: 1px solid var(--plr-grey-light);
    border-radius: var(--plr-r-card);
    padding: 40px 48px;
}
.plr-uc2-body h3 {
    font-size: 24px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 12px 0 26px;
}
.plr-uc2-body p {
    font-size: 18px;
    line-height: 1.65;
    color: var(--plr-text);
    margin: 0 0 18px;
}
.plr-uc2-body p strong { font-weight: 700; }
@media (max-width: 900px) {
    .plr-uc2 { grid-template-columns: minmax(0, 1fr); }
    .plr-uc2-photo img { max-width: 320px; }
    .plr-uc2-body { padding: 28px 22px; }
}

/* --------------------------------------------------------------------------
   Colonnes séparées par un filet vertical fin : situations (« Certaines
   situations nécessitent un regard patrimonial expert ») et expertises
   (« Des conseillers réellement experts... »)
   -------------------------------------------------------------------------- */
.plr-colsep {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 54px;              /* +10px titre → cartes (demande 2026-07-03) */
}
.plr-colsep-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plr-colsep > * { padding: 0 36px; border-left: 1px solid var(--plr-grey-light); }
.plr-colsep > *:first-child { padding-left: 0; border-left: none; }
.plr-colsep-head {
    font-size: 19px;
    font-weight: 700;
    color: var(--plr-text);
    margin-bottom: 5px;
}
/* Icône au-dessus du titre, léger décalage gauche ; titre aligné sur le texte (revue 2026-07-02) */
.plr-colsep-head img {
    display: block;
    width: 40px;               /* icônes de section : 40px (demande 2026-07-03) */
    height: 40px;
    margin: 0 0 0 10px;        /* 0 espace icône→titre = ~20px visuels (revue 2026-07-02) */
}
.plr-colsep-head .plr-arrow-ico { font-weight: 700; }
.plr-colsep p {
    font-size: 18px;
    line-height: 1.65;
    color: var(--plr-text);
    margin: 0 0 14px;
}
.plr-colsep .plr-colsep-stat { font-weight: 600; }
.plr-colsep .plr-btn-link { font-weight: 700; }
@media (max-width: 900px) {
    .plr-colsep { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .plr-colsep > * { padding: 0; border-left: none; }
}

/* --------------------------------------------------------------------------
   Discipline — cards empilées pleine largeur (fond blanc, radius 50,
   icône + titre + paragraphe) sur bande gris clair
   -------------------------------------------------------------------------- */
.plr-disc-card {
    background: var(--plr-white);
    border-radius: var(--plr-r-card-lg);
    padding: 38px 48px;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 6px 18px;
    margin-bottom: 22px;
}
.plr-disc-card img { width: 40px; height: 40px; margin-top: 0; }
.plr-disc-card h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 0 0 10px;
}
.plr-disc-card p {
    grid-column: 2;
    font-size: 18px;
    line-height: 1.65;
    color: var(--plr-text);
    margin: 0;
    max-width: 1040px;
}
@media (max-width: 700px) {
    .plr-disc-card { padding: 26px 22px; border-radius: var(--plr-r-card); }
}

/* --------------------------------------------------------------------------
   « Lire plus » — l'extrait est visible, la suite se déplie en place
   (Bootstrap collapse, aucun JS custom). Le libellé bascule via aria-expanded.
   -------------------------------------------------------------------------- */
.plr-readmore-toggle { cursor: pointer; font-weight: 700; }
.plr-readmore-toggle .plr-when-open { display: none; }
.plr-readmore-toggle[aria-expanded="true"] .plr-when-open { display: inline; }
.plr-readmore-toggle[aria-expanded="true"] .plr-when-closed { display: none; }
.plr-readmore-more { padding-top: 4px; }

/* --------------------------------------------------------------------------
   Logos partenaires statiques (« Des institutions financières de premier
   plan ») — fixes, aucun défilement
   -------------------------------------------------------------------------- */
.plr-logos-static {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 56px;
    flex-wrap: wrap;
    margin-top: 52px;
}
/* Versions noir & blanc (logo2-*.svg, exports maquette) — largeurs mesurées
   dans la maquette home pour une taille optique cohérente. */
.plr-logos-static img { width: auto; height: auto; }
.plr-logos-static .plr-logo-suravenir { width: 146px; }
.plr-logos-static .plr-logo-eres { width: 124px; }
.plr-logos-static .plr-logo-swisslife { width: 60px; }   /* logo empilé : plus petit (revue 2026-07-02) */
.plr-logos-static .plr-logo-cardif { width: 156px; }
.plr-logos-static .plr-logo-generali { width: 40px; }
.plr-logos-static .plr-logo-wealins { width: 85px; }
.plr-logos-static .plr-logo-ib { width: 130px; }         /* 2 lignes : hauteur ~44px */
.plr-logos-static .plr-logo-swissquote { width: 67px; }  /* empilé comme SwissLife */

/* --------------------------------------------------------------------------
   Principes fondamentaux (bloc d'appui du hero home, aligné à droite)
   -------------------------------------------------------------------------- */
.plr-principles { text-align: right; }
.plr-principles .plr-principles-label {
    font-size: 15px;
    color: var(--plr-text-2);
    margin: 0 0 4px;
}
.plr-principles .plr-principles-lines {
    font-size: 16px;
    font-weight: 700;
    color: var(--plr-text);
    line-height: 1.5;
    margin: 0;
}
@media (max-width: 900px) {
    .plr-principles { text-align: left; }
}

/* --------------------------------------------------------------------------
   Bande à motif « graphiques de marché » (fond discret des sections
   discipline / architecture / expertises — maquette Test Claude 4).
   Le visuel source (graph-marches-dessin-plat.png) est affiché tel quel,
   en calque à faible opacité : jamais recréé ni réinterprété.
   -------------------------------------------------------------------------- */
.plr-band-charts {
    position: relative;
    background: #FAFAFA;
}
.plr-band-charts::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/static/assets/img/public-refonte/graph-marches-dessin-plat.png') center / cover no-repeat;
    opacity: 0.5;
    pointer-events: none;
}
.plr-band-charts > * { position: relative; }

/* ==========================================================================
   Page « Échanger avec un conseiller » (2026-07-02) — adaptée au design
   system : hero Inter (.plr-h1), sous-titres Inter, carte beige token,
   bouton navy. Scopé .plr-contact.
   ========================================================================== */
.plr-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.52fr) minmax(0, 0.48fr);
    gap: 72px;
    align-items: start;
}
/* Carte formulaire (beige token) */
.plr-contact-card {
    background: var(--plr-beige);
    border-radius: var(--plr-r-card);
    padding: 48px 52px;
}
.plr-contact-card h2 {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 12px;
    color: var(--plr-text);
}
.plr-contact label {
    display: block;
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--plr-text-3);
    font-weight: 600;
    margin: 22px 0 8px;
}
.plr-contact input[type="text"],
.plr-contact input[type="email"],
.plr-contact input[type="tel"],
.plr-contact select,
.plr-contact textarea {
    width: 100%;
    background: var(--plr-white);
    border: 1px solid var(--plr-grey-light);
    border-radius: 10px;
    padding: 13px 14px;
    font-family: var(--plr-font);
    font-size: 15px;
    color: var(--plr-text);
}
.plr-contact textarea { min-height: 130px; resize: vertical; }
/* Selects habillés : chevron fin custom, apparence native retirée */
.plr-contact select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%235F6672' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 44px;
    cursor: pointer;
}
.plr-contact select:invalid { color: var(--plr-text-3); }   /* placeholder « Sélectionner » en tertiaire */
.plr-contact select option { color: var(--plr-text); }
.plr-contact input:focus,
.plr-contact select:focus,
.plr-contact textarea:focus {
    outline: none;
    border-color: var(--plr-navy);
}
.plr-contact-2col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 22px;
}
.plr-contact-consent {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-top: 24px;
    font-size: 14px;
    color: var(--plr-text-2);
}
.plr-contact-consent input { margin-top: 4px; }
.plr-contact .plr-contact-submit { display: block; width: 100%; margin-top: 28px; border: none; }
/* Colonne « Échanger autrement » */
.plr-contact-aside h2 {
    font-size: 26px;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--plr-text);
}
.plr-contact-item {
    padding: 22px 0;
    border-bottom: 1px solid var(--plr-grey-light);
}
.plr-contact-item .plr-contact-label,
.plr-contact-expect .plr-contact-label {
    display: block;
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--plr-text-3);
    font-weight: 600;
    margin-bottom: 10px;
}
.plr-contact-item a { color: var(--plr-text); text-decoration: underline; font-weight: 600; }
.plr-contact-expect {
    background: var(--plr-beige);
    border-radius: var(--plr-r-card);
    padding: 30px 34px;
    margin-top: 40px;
}
.plr-contact-expect .plr-contact-label { margin-bottom: 16px; }
.plr-contact-expect ul { list-style: none; margin: 0; padding: 0; }
.plr-contact-expect li {
    position: relative;
    padding: 6px 0 6px 26px;
    font-size: 15px;
    color: var(--plr-text);
}
.plr-contact-expect li::before { content: "\2192"; position: absolute; left: 0; color: var(--plr-text-2); }
@media (max-width: 900px) {
    .plr-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
    .plr-contact-card { padding: 30px 24px; }
    .plr-contact-2col { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   « Quand faire appel à nous » — auto-diagnostic (page Offres, 2026-07-02).
   5 situations cochables + carte de synthèse qui compte en direct.
   -------------------------------------------------------------------------- */
.plr-diag {
    display: grid;
    grid-template-columns: minmax(0, 0.56fr) minmax(0, 0.44fr);
    gap: 72px;
    align-items: start;
}
.plr-diag-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid var(--plr-grey-light);
    font-size: 17px;
    color: var(--plr-text);
    cursor: pointer;
    user-select: none;
}
.plr-diag-item:first-of-type { border-top: 1px solid var(--plr-grey-light); }
.plr-diag-check {
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    border: 1.5px solid var(--plr-bar-grey);
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: -1px;
}
.plr-diag-check img { width: 12px; height: 12px; opacity: 0; }
.plr-diag-item:hover .plr-diag-check { border-color: var(--plr-navy); }
.plr-diag-item.checked .plr-diag-check {
    background: var(--plr-navy);
    border-color: var(--plr-navy);
}
.plr-diag-item.checked .plr-diag-check img { opacity: 1; }
.plr-diag-card {
    position: sticky;
    top: 120px;
    background: var(--plr-white);
    border: 1px solid var(--plr-grey-light);
    border-radius: var(--plr-r-card);
    padding: 40px 44px;
}
.plr .plr-diag-fig {          /* préfixe .plr : sinon « .plr p » écrase la taille */
    font-size: 54px;
    font-weight: 600;
    color: var(--plr-navy);
    line-height: 1;
    margin: 18px 0 14px;
}
.plr-diag-msg { min-height: 3.4em; }
@media (max-width: 900px) {
    .plr-diag { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .plr-diag-card { position: static; }
}

/* --------------------------------------------------------------------------
   Méthodologie — layout « papier de recherche » (revue 2026-07-02) :
   sommaire latéral sticky avec scrollspy, chapitres à numéros fantômes,
   bande de chiffres clés.
   -------------------------------------------------------------------------- */
.plr-chapters {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 88px;
    /* pas d'align-items: start — la colonne nav doit s'étirer sur toute la
       hauteur pour que le sommaire sticky ait de la course */
}
/* main { overflow: hidden } (kit) casse position: sticky ; overflow: clip
   n'ouvre pas de contexte de scroll et préserve le sticky. Scopé aux pages
   qui embarquent un sommaire ou une carte sticky. */
main:has(.plr-chapter-nav),
main:has(.plr-diag-card) { overflow: clip; }
.plr-chapter-nav {
    position: sticky;
    top: 120px;
    list-style: none;
    margin: 0;
    padding: 0;
    border-left: 1px solid var(--plr-grey-light);
}
.plr-chapter-nav a {
    display: block;
    padding: 9px 0 9px 20px;
    margin-left: -1px;
    border-left: 1.5px solid transparent;
    font-size: 13px;
    letter-spacing: 0.04em;
    color: var(--plr-text-3);
    text-decoration: none;
    line-height: 1.4;
}
.plr-chapter-nav a:hover { color: var(--plr-text); }
.plr-chapter-nav a.active {
    color: var(--plr-navy);
    font-weight: 600;
    border-left-color: var(--plr-navy);
}
.plr-chapter { max-width: 760px; padding-top: 8px; }
.plr-chapter + .plr-chapter { margin-top: 72px; }
.plr-chapter .plr-chapter-num {
    display: block;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.18em;
    color: var(--plr-blue);
    margin-bottom: 10px;
}
.plr-chapter h2 {
    font-size: 26px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 0 0 20px;
}
/* Bande de chiffres clés (extraits du texte) */
.plr-stats-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px;
    border-top: 1px solid var(--plr-grey-light);
    border-bottom: 1px solid var(--plr-grey-light);
    padding: 36px 0;
    margin: 56px 0;
}
.plr .plr-stats-row .plr-stat-fig {     /* préfixe .plr : « .plr p » écraserait la taille */
    font-size: 34px;
    font-weight: 600;
    color: var(--plr-navy);
    line-height: 1.1;
    margin: 0 0 8px;
}
.plr .plr-stats-row .plr-stat-label {
    font-size: 14px;
    color: var(--plr-text-2);
    margin: 0;
    line-height: 1.45;
}
@media (max-width: 991.98px) {
    .plr-chapters { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .plr-chapter-nav { display: none; }
    .plr-stats-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------------------------------
   Rangées défilantes « Netflix » (Ressources : podcasts, articles).
   Défilement horizontal avec snap, flèches rondes, scrollbar masquée.
   -------------------------------------------------------------------------- */
.plr-rail-wrap { position: relative; }
.plr-rail {
    display: flex;
    gap: 22px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 4px 2px 14px;
    scrollbar-width: none;          /* Firefox */
}
.plr-rail::-webkit-scrollbar { display: none; }
.plr-rail > * {
    flex: 0 0 auto;
    width: 340px;
    scroll-snap-align: start;
}
.plr-rail-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 9999px;
    background: var(--plr-white);
    border: 1px solid var(--plr-grey-light);
    color: var(--plr-navy);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}
.plr-rail-btn:hover { border-color: var(--plr-navy); }
.plr-rail-btn[disabled] { opacity: 0.35; cursor: default; }
.plr-rail-btn.plr-rail-prev { left: -22px; }
.plr-rail-btn.plr-rail-next { right: -22px; }
/* Card article du rail */
.plr-rail-card {
    display: block;
    text-decoration: none;
    color: var(--plr-text);
    background: var(--plr-white);
    border: 1px solid var(--plr-grey-light);
    border-radius: var(--plr-r-card);
    overflow: hidden;
}
.plr-rail-card img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}
.plr-rail-card .plr-rail-card-body { padding: 20px 22px 24px; }
.plr .plr-rail-card h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--plr-text);
    margin: 0 0 8px;
    line-height: 1.35;
}
.plr .plr-rail-card p {
    font-size: 14px;
    color: var(--plr-text-2);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* Badge « La plus vue » sur la vignette mise en avant */
.plr-rail .plr-video-thumb { position: relative; }
.plr-rail-featured-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--plr-navy);
    color: var(--plr-white);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: var(--plr-r-btn);
    padding: 6px 14px;
    z-index: 1;
}
@media (max-width: 700px) {
    .plr-rail > * { width: 280px; }
    .plr-rail-btn { display: none; }   /* mobile : balayage tactile */
}

/* --------------------------------------------------------------------------
   Nav — « Conseillers » (audience B2B secondaire) : filet vertical + teinte
   tertiaire, hover navy comme les autres liens. En mobile, le filet devient
   un séparateur horizontal au-dessus du groupe.
   -------------------------------------------------------------------------- */
.plr-nav-sep {
    width: 1px;
    height: 18px;
    background: var(--plr-grey-light);
    align-self: center;
}
.plr-nav-link.plr-nav-link-pro { color: var(--plr-text-3); }
.plr-nav-link.plr-nav-link-pro:hover { color: var(--plr-navy); }
@media (max-width: 991.98px) {
    .plr-nav-sep {
        width: auto;
        height: 1px;
        align-self: stretch;
        margin: 10px 0;
    }
}

/* --------------------------------------------------------------------------
   « Concrètement » — carte 5 bénéfices (Home, maquette Section_Takeaway).
   Grande card blanche (radius 50) sur bande grise, 5 colonnes icône+titre+texte.
   -------------------------------------------------------------------------- */
.plr-takeaway-card {
    background: var(--plr-white);
    border-radius: var(--plr-r-card-lg);
    padding: 74px 60px 70px;
    text-align: center;
}
.plr-takeaway-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 40px 28px;
    margin-top: 62px;
}
.plr-takeaway-item img { width: 40px; height: 40px; }
.plr .plr-takeaway-item h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--plr-text);
    line-height: 1.4;
    margin: 20px 0 14px;
}
.plr .plr-takeaway-item p {     /* préfixe .plr : « .plr p » écraserait la taille */
    font-size: 15px;
    line-height: 1.55;
    margin: 0 auto;
    max-width: 220px;
}
.plr .plr-takeaway-sub {        /* « Jusqu'à 2 fois moins cher… » au-dessus des barres */
    font-size: 24px;
    font-weight: 600;
    color: var(--plr-text);
    text-align: center;
    line-height: 1.4;
    margin: 96px 0 0;
}
@media (max-width: 991.98px) {
    .plr-takeaway-card { padding: 52px 30px; }
    .plr-takeaway-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .plr .plr-takeaway-sub { margin-top: 64px; }
}
@media (max-width: 575.98px) {
    .plr-takeaway-grid { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   Démo rapport d'analyse — tablette mockup avec défilement du rapport (Home,
   « Votre argent travaille-t-il vraiment pour vous ? »). L'écran du PNG
   tablette a des micro-zones semi-transparentes dans le bezel : le contenu
   est donc rendu AU-DESSUS du cadre (z-index 2), strictement clippé sur la
   zone écran mesurée par lancer de rayons depuis le centre (PIL : left 19.86 /
   top 18.65 / 62.37 × 66.02 %, insetté pour les coins arrondis du bezel).
   translateY final = 1 − hauteur visible / hauteur image (−83.36%) — constant
   quelle que soit la taille affichée.
   -------------------------------------------------------------------------- */
.plr-analyse-demo {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 72px;
    align-items: center;
}
.plr-device { position: relative; }
.plr-device-frame {
    position: relative;
    display: block;
    width: 100%;
    z-index: 1;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
}
.plr-device-screen {
    position: absolute;
    left: 20.0%;
    top: 18.85%;
    width: 62.1%;
    height: 65.6%;
    overflow: hidden;
    border-radius: 10px;
    background: var(--plr-white);
    z-index: 2;
}
.plr-device-scroll {
    display: block;
    width: 100%;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    animation: plr-report-scroll 55s ease-in-out 1.5s infinite alternate;
}
@keyframes plr-report-scroll {
    0%, 4%    { transform: translateY(0); }
    96%, 100% { transform: translateY(-83.36%); }
}
@media (prefers-reduced-motion: reduce) {
    .plr-device-scroll { animation: none; }
}
@media (max-width: 991.98px) {
    .plr-analyse-demo { grid-template-columns: minmax(0, 1fr); gap: 44px; }
    .plr-device { max-width: 560px; margin: 0 auto; }
}

/* --------------------------------------------------------------------------
   Enjeu client — cards situations sur bande beige (Home, proposition
   2026-07-03 : casse la monotonie des deux colsep enchaînés).
   -------------------------------------------------------------------------- */
.plr-sitcards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 54px;
}
.plr-sitcard {
    background: var(--plr-white);
    border-radius: var(--plr-r-card);
    padding: 38px 34px 32px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.plr-sitcard > img { width: 40px; height: 40px; margin-bottom: 20px; }
.plr .plr-sitcard h3 {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--plr-text);
    margin: 0 0 12px;
}
.plr .plr-sitcard p {            /* préfixe .plr : « .plr p » écraserait la taille */
    font-size: 17px;
    line-height: 1.6;
    color: var(--plr-text);
    margin: 0 0 14px;
}
.plr-sitcard .plr-colsep-stat { font-weight: 600; }
.plr-sitcard .plr-readmore-toggle { margin-top: auto; font-weight: 700; }

/* --------------------------------------------------------------------------
   Expertise inédite — split éditorial : intro à gauche, 3 expertises
   empilées à droite séparées par des filets (Home, proposition 2026-07-03).
   -------------------------------------------------------------------------- */
.plr-expsplit {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 80px;
    align-items: start;
}
.plr-expsplit-item {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 22px;
    padding: 34px 0;
    border-top: 1px solid var(--plr-grey-light);
}
.plr-expsplit-item:first-child { border-top: none; padding-top: 6px; }
.plr-expsplit-item img { width: 40px; height: 40px; }
.plr .plr-expsplit-item h3 {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--plr-text);
    margin: 0 0 10px;
}
.plr .plr-expsplit-item p {      /* préfixe .plr : « .plr p » écraserait la taille */
    font-size: 17px;
    line-height: 1.65;
    color: var(--plr-text);
    margin: 0 0 14px;
}
.plr-expsplit-item .plr-btn-link { font-weight: 700; }
@media (max-width: 991.98px) {
    .plr-sitcards { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .plr-expsplit { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}

/* --------------------------------------------------------------------------
   CTA final — filet vertical navy + titre fort + tags + colombe
   (Home, maquette Section_CTA, 2026-07-03).
   -------------------------------------------------------------------------- */
.plr-ctafinal {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 60px;
    align-items: center;
}
.plr .plr-ctafinal-title {
    font-size: 46px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--plr-text);
    max-width: 560px;
    margin: 0;
    padding-left: 44px;
    border-left: 2px solid var(--plr-navy);
}
.plr .plr-ctafinal-tags {          /* préfixe .plr : « .plr p » écraserait la taille */
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: #5F6672;                /* teinte maquette (comme le tint des citations) */
    margin: 34px 0 0;
    padding-left: 44px;
}
.plr-ctafinal > div > .plr-btn { margin-left: 44px; }
.plr-ctafinal-img { text-align: center; }
@media (max-width: 991.98px) {
    .plr-ctafinal { grid-template-columns: minmax(0, 1fr); gap: 44px; }
    .plr .plr-ctafinal-title { font-size: 34px; padding-left: 24px; }
    .plr .plr-ctafinal-tags { padding-left: 24px; }
    .plr-ctafinal > div > .plr-btn { margin-left: 24px; }
    .plr-ctafinal-img img { max-width: 220px; }
}
