:root {
    /* --- PALETTE DE COULEURS --- */
    /* Couleurs Principales */
    --color-white: #ffffff96;
    --color-beige: #dbd1cb;       /* Bordures et lignes */    
   --margin-block: 40px 0 60px;
    /* Textes */
    --color-text-heading: #0a0908;
    --color-text-hover: #333;

    /* Variations et Transparences (calculées sur les hex originaux) */
    --shadow-soft: rgba(219, 209, 203, 0.4);      /* Ombre beige douce */
    --shadow-taupe-faint: rgba(151, 139, 132, 0.15); /* Pour le watermark */
    --shadow-taupe-light: rgba(151, 139, 132, 0.2);
    --shadow-taupe-hover: rgba(151, 139, 132, 0.3);
    --color-primary-faint: rgba(151, 139, 132, 0.05);
    --color-primary-shadow: rgba(151, 139, 132, 0.3);
    --color-primary-neon: rgba(151, 139, 132, 0.5);
    --color-primary-dark:rgba(151, 139, 132, 0.5);
    /* Arrière-plans subtils */
    --bg-gray-light: #fbfaf9;
    --bg-gray-medium: #f9f8f7;
    --bg-gray-hover: #f4f1ef;
    --bg-table-alt: #fcfbfb;
    --bg-table-hover: #f9f7f6;


    /* --- ANIMATIONS & TRANSITIONS --- */
    --trans-default: 0.3s ease;
    --trans-fast: 0.2s ease;
    --trans-smooth: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    --trans-bouncy: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    --trans-slow-reveal: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
}

br {  display: none !important; }
.table-of-contents ol ol{padding-top:10px;}
p:empty {  display: none !important; }
.the-post header{text-align: justify;}
.single figcaption, .single caption {
text-align: center;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    margin-top: 0.5em;
        color: inherit;
}
/* =========================================
   BLOC STANDARD (Signature)
   ========================================= */
.block-spc {
    position: relative;
    background-color: var(--color-white);    
    border: 1px solid var(--color-beige)!important;
    margin: var(--margin-block);
    padding: 30px 30px 30px 40px;
    line-height: 1.8;
    overflow: visible;    
    transition: transform 0.3s ease;
}

/* --- ÉLÉMENT 1 : Le Cadre Squelette (Arrière-plan) --- */
.block-spc::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
   
    border: 2px solid var(--color-primary);
    background-color: transparent;
   
    box-shadow: -8px 8px 0px var(--shadow-soft);
   
    z-index: -1;
    transition: var(--trans-smooth);
}

/* --- Le Lien (Style Signature) --- */
.block-spc a {
    position: relative;
    color: var(--color-primary);
    text-decoration: none;
    padding-bottom: 2px;
    transition: color 0.3s ease;
}

.block-spc a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-beige);
    transition: height 0.2s ease, background-color 0.2s ease;
}

/* =========================================
   ACTIONABLE LIST (Steps / Process)
   ========================================= */
.actionable-list {
    padding: 20px 0 0;
    margin: var(--margin-block);
    position: relative;
    border-left: 1px solid var(--color-primary);
}

.actionable-list h3 {
    color: var(--color-text-heading);
    letter-spacing: 2px;
    margin-bottom: 60px;
    position: relative;
    padding-left: 20px;
}

.actionable-list h3:before {
    content: '';
    position: absolute;
    top: -15px;
    left: -10px;
    width: 20px;
    height: 20px;
    background-color: var(--color-primary);
    box-shadow: 4px 4px 0px var(--color-beige);
    z-index: 2;
    transition: var(--trans-default);
}

.actionable-list ol, .actionable-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: art-counter;
    position: relative;
    border-left: 2px dashed var(--color-beige);
    margin-left: 20px;
}

.actionable-list li {
    position: relative;
    background-color: var(--color-white);
    margin-bottom: 40px;
    margin-left: 30px;
    padding: 30px 30px 30px 40px;
    border: 1px solid var(--color-beige);
    transition: var(--trans-bouncy);
    z-index: 1;
}

/* --- INNOVATION : Le Numéro Géant (Watermark) --- */
.actionable-list li::before {
    counter-increment: art-counter;
    content: counter(art-counter, decimal-leading-zero);
    position: absolute;
    right: 0px;
    bottom: 15px;
    font-size: 4rem;
    color: transparent;
    -webkit-text-stroke: 2px var(--shadow-taupe-faint);
    z-index: 0;
    transition: all 0.4s ease;
    pointer-events: none;
}

/* --- Le Connecteur --- */
.actionable-list li::after {
    content: '';
    position: absolute;
    left: -41px;
    top: 35px;
    width: 20px;
    height: 20px;
    background-color: var(--color-white);
    border: 3px solid var(--color-primary);
    border-radius: 50%;
    z-index: 5;
    transition: background-color 0.3s ease;
}

.actionable-list li span,
.actionable-list li strong,
.actionable-list li p {
    position: relative;
    z-index: 1;
}

.actionable-list li strong:first-child {
    color: var(--color-text-hover);
    font-weight: 600;
    padding: 0 5px;
}





/* =========================================
   KEY TAKEAWAYS (Boîte Principale)
   ========================================= */
.key-takeaways {
    position: relative;
    background-color: var(--color-white);
    border: 2px solid var(--color-primary);
    box-shadow: 10px 10px 0px var(--shadow-soft);
    margin: var(--margin-block);
    padding: 50px 30px 30px 30px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.key-takeaways > p {
    position: absolute;
    top: 15px;
    left: -20px;
    right: -20px;
    width: calc(100% + 40px);
   
    background-color: var(--color-primary);
    color: #fff;
   
    margin: 0;
    padding: 12px 0;
    text-align: center;
   
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 1.1rem;
   
    box-shadow: 0 5px 10px rgba(0,0,0,0.1);
    z-index: 10;
}

.key-takeaways > p::before,
.key-takeaways > p::after {
    content: '';
    position: absolute;
    bottom: -10px;
    border-style: solid;
    border-color: var(--color-primary-dark) transparent transparent transparent;
}

.key-takeaways > p::before {
    left: 0;
    border-width: 10px 0 0 20px;
}

.key-takeaways > p::after {
    right: 0;
    border-width: 10px 20px 0 0;
}

.key-takeaways ul {
    list-style: none;
    padding: 0;
    margin: 50px 0 0;
}

.key-takeaways li {
    position: relative;
    padding-left: 35px;
    margin-bottom: 18px;
    line-height: 1.6;
    border-left: 2px solid transparent;
    transition: var(--trans-default);
}

.key-takeaways li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: -2px;
    color: var(--color-primary);
    font-weight: 900;
    font-size: 20px;
    transition: var(--trans-bouncy);
}



/* =========================================
   BLOCKQUOTE (Citation)
   ========================================= */
blockquote {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 50px 40px 30px 40px;
    overflow: visible;
    transition: transform 0.3s ease, border-color 0.3s ease;
}

blockquote::before {
    content: '';
    position: absolute;
    top: 20px;
    left: -20px;
    width: 100%;
    height: 100%;
   
    border: 2px solid var(--color-primary);
    background-color: transparent;
   
    box-shadow: -10px 10px 0px var(--shadow-soft);
   
    z-index: -1;
    transition: var(--trans-smooth);
}

blockquote::after {
    content: '“';
    position: absolute;
    top: -20px;
    left: 40px;
    background-color: var(--color-primary);
    color:#fff;
    width: 50px;
    height: 50px;
    line-height: 80px;
    text-align: center;
    font-size: 4rem;
    box-shadow: 5px 5px 0px var(--color-beige);    
    z-index: 2;
    transition: var(--trans-default);
}

blockquote .citation-content , blockquote .temoignage-content {
    font-size: 1.15rem;
    line-height: 1.7;
    font-style: italic;
    margin-bottom: 25px!important;
    position: relative;
    z-index: 1;
}

blockquote p:last-child {
    margin: 0;
}

blockquote cite {
    display: inline-block;
    padding-top: 15px;
    border-top: 2px solid var(--color-beige);  
    font-size: 0.85rem;
    color: var(--color-primary);
    letter-spacing: 1px;
}

blockquote cite a {
    text-decoration: none;
    border-bottom: 1px dotted var(--color-primary);
    transition: color 0.3s ease;
}

/* =========================================
   AUTHOR BLOCK (Carte de visite)
   ========================================= */
.author-block {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-primary);
    box-shadow: 12px 12px 0px var(--shadow-soft);
   margin: var(--margin-block);
    padding: 35px 35px 35px 80px;
    display: flex;
    align-items: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.author-block .avatar {
    width: 90px;
    height: 90px;
    position: absolute;
    left: -45px;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border: 5px solid var(--color-white);
    box-shadow: 0 0 0 1px var(--color-primary), 5px 5px 15px var(--shadow-taupe-hover);
    z-index: 2;
    transition: var(--trans-bouncy);
}

.author-block::before {
    content: '';
    position: absolute;
    left: -55px;
    top: 50%;
    transform: translateY(-50%);
    width: 110px;
    height: 110px;
    border: 1px dashed var(--color-beige);
    border-radius: 50%;
    z-index: 1;
    opacity: 0;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.author-block .author-text {
text-align: justify;
}

.author-block .author-text a {
    display: inline-block;
    transition: var(--trans-default);
}

/* --- Interactivité Author --- */
.author-block:hover {
    transform: translateX(5px);
    box-shadow: 15px 15px 0px var(--shadow-taupe-hover);
}

.author-block:hover .avatar {
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 0 0 4px var(--color-beige);
    border-color: var(--color-white);
}

.author-block:hover::before {
    opacity: 1;
    transform: translateY(-50%) scale(1.1);
}

.author-block:hover .author-text a {
    border-bottom-color: var(--color-primary);
}

/* =========================================
   CASE STUDY BLOCK
   ========================================= */
.case-study-block {
    position: relative;
   margin: var(--margin-block);
    padding: 0;
}

.case-study-block::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    background-color: transparent;
    box-shadow: -10px 10px 0px var(--shadow-soft);
    z-index: 0;
    transition: var(--trans-smooth);
}

.case-study-block-title {
    position: relative;
    display: inline-block;    
    background-color: var(--color-primary);
    color: #fff;    
    margin: 0;
    padding: 10px 25px;  
    font-size: 1.2rem;
    letter-spacing: 2px;    
    transform: translateY(50%);
    margin-left: 20px;    
    z-index: 2;
    box-shadow: 5px 5px 0px var(--color-beige);
}

.case-study-block p:not(.case-study-block-title) {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    padding: 40px 30px 30px 30px;
    margin: 0;
    line-height: 1.7;
    z-index: 1;
    transition: transform 0.3s ease;
}

.case-study-block::after {
    content: '';
    position: absolute;
    bottom: -10px;
    right: -10px;
    width: 40px;
    height: 40px;
    background-image: repeating-linear-gradient(
        45deg,
        var(--color-primary),
        var(--color-primary) 1px,
        transparent 1px,
        transparent 5px
    );
    z-index: 0;
    opacity: 0.3;
}



/* =========================================
   TLDR BLOCKS (Base Commune)
   ========================================= */
.tldr-hybrid,
.tldr-paragraph,
.tldr-list {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 35px;
    overflow: visible;
    transition: transform 0.3s ease, border-color 0.3s ease;
    text-align: justify;
}
.tldr-hybrid, .tldr-list{    padding: 35px 35px 20px;}
.tldr-hybrid::before,
.tldr-paragraph::before,
.tldr-list::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
   
    border: 2px solid var(--color-primary);
    background-color: transparent;
   
    box-shadow: -8px 8px 0px var(--shadow-soft);
   
    z-index: -1;
    transition: var(--trans-smooth);
}

.tldr-hybrid::after,
.tldr-paragraph::after,
.tldr-list::after {
    content: '';
    position: absolute;
    top: -15px;
    left: -10px;
    width: 20px;
    height: 20px;
    background-color: var(--color-primary);
    box-shadow: 4px 4px 0px var(--color-beige);
    z-index: 2;
    transition: var(--trans-default);
}

.tldr-hybrid p strong,
.tldr-paragraph p strong {
    display: block;
    margin-bottom: 15px;
    font-weight: 700;
}

.tldr-hybrid ul,
.tldr-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.tldr-hybrid li,
.tldr-list li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 12px;
}

.tldr-hybrid li::before,
.tldr-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 6px;
    height: 6px;
    background-color: var(--color-primary);
    transition: transform 0.3s ease;
}

.tldr-hybrid p:last-child {
    margin-top: 25px;
    padding: 20px;
    background-color: var(--bg-gray-medium);
    border-left: 3px solid var(--color-beige);
}

.tldr-hybrid p:last-child em strong {
    color: var(--color-primary);
    font-style: normal;
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 5px;
}

/* =========================================
   TABLE DATA
   ========================================= */
.table-data {
    position: relative;
    background-color: var(--color-white);
    border-collapse: collapse;
       margin: 30px 0 50px !important;
    overflow: visible;
    transition: transform 0.3s ease;
    width: 98%!important;
}

.table-data::before {
    content: '';
    position: absolute;
    top: 15px;
    right: -10px;
    width: 100%;
    height: 100%;
   
    border: 2px solid var(--color-primary);
    background-color: transparent;
   
    box-shadow: -10px 10px 0px var(--shadow-soft);
   
    z-index: -1;
    transition: var(--trans-smooth);
    pointer-events: none;
}

.table-data thead th {
    background-color: var(--color-primary);
    color: #fff;
    text-align: left;
    padding: 20px;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 2px;
    border: none;
}

.table-data thead th:first-child {
    position: relative;
}

.table-data thead th:first-child::after {
    content: '';
    position: absolute;
    bottom: -6px;
    left: 20px;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid var(--color-primary);
}

.table-data tbody td {
    padding: 20px;
    font-size: 0.95rem;
    border-bottom: 2px dashed var(--color-beige);
    transition: all 0.2s ease;
}

.table-data tbody tr:last-child td {
    border-bottom: 2px solid var(--color-primary);
}

.table-data tbody td:nth-child(2) {
    background-color: var(--bg-table-alt);
}





/* --- Interactivité Table --- */
.table-data tbody tr:hover td {
    background-color: var(--bg-table-hover);
    color: var(--color-text-hover);
}

.table-data tbody tr:hover td:nth-child(2) {
    background-color: var(--color-beige);
    color: #fff;
}

/* =========================================
   INSTANT ANSWER
   ========================================= */
.instant-answer {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 0;
    overflow: visible;
    transition: transform 0.3s ease;
}

.instant-answer::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
   
    border: 2px solid var(--color-primary);
    background-color: transparent;
   
    box-shadow: -8px 8px 0px var(--shadow-soft);
   
    z-index: -1;
    transition: var(--trans-smooth);
}

.instant-answer .question {
    position: relative;
    background-color: var(--color-primary);
    color: #fff;
    margin: 0;
    padding: 25px 30px 25px 50px;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.5;
    border-bottom: 2px dashed rgba(255, 255, 255, 0.3); /* Transparence spécifique laissée telle quelle */
    z-index: 1;
}

.instant-answer .question::before {
    content: '?';
    position: absolute;
    left: 20px;
    top: 20px;
    font-size: 1.5rem;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.4);
}

.instant-answer .answer {
    position: relative;
    margin: 0;
    padding: 30px 30px 30px 50px;
}

.instant-answer .answer::before {
    content: '→';
    position: absolute;
    left: 20px;
    top: 32px;
    font-weight: 900;
    color: var(--color-beige);
    font-size: 1.2rem;
    transition: transform 0.3s ease, color 0.3s ease;
}

.instant-answer::after {
    content: '';
    position: absolute;
    bottom: -6px;
    right: -6px;
    width: 12px;
    height: 12px;
    background-color: var(--color-primary);
    box-shadow: 3px 3px 0px var(--color-beige);
    transition: transform 0.3s ease;
}





@media screen and (max-width:960px){
.actionable-list ol, .actionable-list ul {margin-left: 0px;}
.case-study-block-title{ transform: none;}
.table-data{ margin: 10px 10px 10px 0px!important;  }
.table-data:before, .table-data:after{display:none;}
}


/*******************************news*****************************/
/* =========================================
   1. SOMMAIRE (Table of Contents) - Mis à jour (Puces)
   ========================================= */
.table-of-contents {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    padding: 50px 40px 20px;
    margin: 70px 0 60px;
    z-index: 1;
}

.table-of-contents::after {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    z-index: -1;
    transition: var(--trans-smooth);
}

.single .the-post .table-of-contents h2 {
    position: absolute;
    top: -25px;
    left: 30px;
    background-color: var(--color-primary);
    color: #fff!important;
    margin: 0;
    padding: 10px 25px;
    box-shadow: 6px 6px 0px var(--shadow-soft);
    z-index: 2;
}

.table-of-contents ol, .table-of-contents ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.table-of-contents li {
    position: relative;
    padding-left: 30px; /* Espace pour la coche */
    margin-bottom: 12px;
    color: var(--color-text-heading);
}

/* --- La Coche (Checkmark) demandée --- */
.table-of-contents li::before {
    content: "✔";
    position: absolute;
    left: 0;
    top: 1px;
    color: var(--color-primary);
    font-weight: 900;
    font-size: 1.1rem;
}

/* Sous-listes */
.table-of-contents ol ol, .table-of-contents ul ul {
    padding-left: 30px;
    margin-top: 10px;
    border-left: 1px dashed var(--color-beige);
    margin-bottom: 15px;
}

.table-of-contents ol ol li, .table-of-contents ul ul li {
    font-weight: 400; /* Plus fin pour différencier du niveau parent */
    margin-bottom: 8px;
}

.table-of-contents a {
    color: inherit;
    text-decoration: none;
    transition: var(--trans-fast);
}

.table-of-contents a:hover {
    color: var(--color-primary);
    padding-left: 5px; /* Petit effet au survol */
}
/* =========================================
   2. CHIFFRE CLÉ (Key Stat) - Mis à jour
   ========================================= */
.key-stat {
    position: relative;
    display: flex;
    align-items: center;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    margin-left: 20px; 
    padding: 20px 30px 20px 0; 
    min-height: 120px;
    z-index: 1;
}

.key-stat::before {
    content: '';
    position: absolute;
    top: -10px;
    right: -10px;
    bottom: -10px;
    left: 20px;
    background-image: radial-gradient(var(--shadow-soft) 1.5px, transparent 1.5px);
    background-size: 10px 10px;
    z-index: -1;
}

.key-stat .value {
    position: relative;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 25px; /* Modifié selon ton choix */
    font-weight: 600; /* Modifié selon ton choix */
    margin: 0;
    padding: 25px 30px;
    transform: translateX(-30px);
    box-shadow: 6px 6px 0px var(--color-beige);
    z-index: 2;
    flex-shrink: 0;
}

.key-stat .value::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 0;
    border-top: 10px solid var(--color-primary-dark);
    border-left: 10px solid transparent;
}

.key-stat .label {
    margin: 0;
    color: inherit; /* Modifié selon ton choix */
    transform: translateX(-10px);
}

@media screen and (max-width: 768px) {
    .key-stat { flex-direction: column; margin-left: 0; margin-top: 60px; padding: 0 20px 30px; text-align: center; }
    .key-stat .value { transform: translateY(-30px); box-shadow: 0px 6px 0px var(--color-beige); }
    .key-stat .value::after { display: none; }
    .key-stat .label { transform: none; }
}

/* =========================================
   3. PROS & CONS (Avantages / Inconvénients) - CORRIGÉ
   ========================================= */
.pros-cons {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    z-index: 1;
}

.pros-cons::after {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    z-index: -1;
    transition: var(--trans-smooth);
}

/* C'est ICI la correction : on cible l'enfant direct qui contient les colonnes */
.pros-cons [itemprop="review"] {
    display: flex;
    flex-wrap: wrap; /* Permet le passage à la ligne sur mobile */
}

.pros-column, .cons-column {
    flex: 1;
    padding: 40px;
    min-width: 250px; /* Sécurité pour éviter des colonnes trop fines */
}

.pros-column {
    border-right: 1px dashed var(--color-beige);
}

.pros-cons h3 {
    margin-top: 0;
    margin-bottom: 25px;
}

.pros-column ul, .cons-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pros-column li, .cons-column li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 15px;
    color: inherit;
}

.pros-column li::before {
    content: '+';
    position: absolute;
    left: 0;
    top: -2px;
    color: var(--color-primary);
    font-weight: 900;
    font-size: 1.2rem;
}

.cons-column li::before {
    content: '-';
    position: absolute;
    left: 0;
    top: -4px;
    color: var(--color-text-heading);
    font-weight: 900;
    font-size: 1.5rem;
}

@media screen and (max-width: 768px) {
    .pros-cons [itemprop="review"] {
        flex-direction: column;
    }
    .pros-column {
        border-right: none;
        border-bottom: 1px dashed var(--color-beige);
    }
}
/* =========================================
   4. TIMELINE (Chronologie)
   Effet "Fil rouge et losanges"
   ========================================= */
.timeline {
    position: relative;
    list-style: none;
    padding: 0;
    margin: var(--margin-block);
    margin-left: 20px; /* Laisse de l'espace pour la ligne */
}

/* La ligne verticale */
.timeline::before {
    content: '';
    position: absolute;
    top: 5px;
    bottom: 5px;
    left: 0;
    width: 2px;
    background-color: var(--color-primary);
}

.timeline li {
    position: relative;
    padding-left: 40px;
    margin-bottom: 40px;
}

.timeline li:last-child {
    margin-bottom: 0;
}

/* Les nœuds (Losanges) */
.timeline li::before {
    content: '';
    position: absolute;
    left: -5px; /* Aligné avec la ligne (qui fait 2px, -5px centre un carré de 12px) */
    top: 5px;
    width: 12px;
    height: 12px;
    background-color: var(--color-white);
    border: 2px solid var(--color-primary);
    box-shadow: 3px 3px 0px var(--color-beige);
    transform: rotate(45deg); /* Crée le losange */
    transition: transform 0.3s ease;
}

.timeline li:hover::before {
    background-color: var(--color-primary);
    transform: rotate(0deg); /* Animation amusante au survol */
}

/* L'étiquette de temps (ticket) */
.timeline time {
    display: inline-block;
    background-color: var(--bg-gray-medium);
    border: 1px solid var(--color-beige);
    padding: 3px 12px;
    font-size: 0.85rem;
    font-weight: bold;
    color: var(--color-primary);
    margin-bottom: 8px;
    box-shadow: 2px 2px 0px var(--shadow-soft);
}

.timeline span[itemprop="name"] {
    display: block;
    color: inherit;
}

/* =========================================
   BLOC YMYL DISCLAIMER
   ========================================= */
.ymyl-disclaimer {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 30px 40px;
    box-shadow: 8px 8px 0px var(--shadow-soft);
    z-index: 1;
}

/* La grosse bordure marqueur à gauche */
.ymyl-disclaimer::before {
    content: '';
    position: absolute;
    left: -1px;
    top: -1px;
    bottom: -1px;
    width: 8px;
    background-color: var(--color-primary); /* Rétabli en primary comme tu préférais */
}

/* Le petit motif hachuré destructuré dans le coin */
.ymyl-disclaimer::after {
    content: '';
    position: absolute;
    top: -12px;
    right: -12px;
    width: 30px;
    height: 30px;
    background-image: repeating-linear-gradient(
        45deg,
        var(--color-primary),
        var(--color-primary) 2px,
        transparent 2px,
        transparent 6px
    );
    z-index: -1;
}

/* --- LE TITRE (Premier strong uniquement) --- */
.ymyl-disclaimer p:first-of-type strong:first-child {
    display: block;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 20px;
    margin-bottom: 8px;
}

/* --- LE TEXTE NORMAL ET LES AUTRES STRONG --- */
.ymyl-disclaimer p {
    margin: 0;
}
.ymyl-disclaimer p + p {
    margin-top: 10px;
}

/* Sécurité : on s'assure que tout autre strong reste normal */
.ymyl-disclaimer p strong:not(:first-child),
.ymyl-disclaimer p:not(:first-of-type) strong {
    display: inline;
    color: inherit;
    letter-spacing: normal;
    text-transform: none;
    font-size: inherit;
    margin-bottom: 0;
}

/* =========================================
   BLOC FINAL THOUGHT (Pour aller plus loin)
   Design : "Prochaine étape" (Titre intégré)
   ========================================= */
.final-thought {
    position: relative;
    background-color: var(--color-white);
    border: 2px solid var(--color-primary);
    margin: var(--margin-block);
    padding: 35px 35px 20px;
    z-index: 1;
}

/* Fond décalé "ombre pleine" pour le style brutaliste */
.final-thought::after {
    content: '';
    position: absolute;
    bottom: -12px;
    right: -12px;
    width: 100%;
    height: 100%;
    background-color: var(--bg-gray-light);
    border: 1px solid var(--color-beige);
    z-index: -1;
    transition: transform 0.3s ease;
}

/* --- Le Titre (intégré dans le cadre) --- */
.final-thought p:first-of-type {
    margin-top: 0;
    margin-bottom: 15px;
}

.final-thought p:first-of-type strong:first-child {
    display: inline-flex;
    align-items: center;
    color: var(--color-primary);
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

/* La flèche "Action" devant le titre */
.final-thought p:first-of-type strong:first-child::before {
    content: '→';
    margin-right: 12px;
    font-size: 1.6rem;
    line-height: 1;
    font-weight: 300;
}

/* --- Le texte --- */
.final-thought p:not(:first-of-type) {
    margin: 0;
    padding-left: 38px; /* S'aligne avec le début du mot, après la flèche */
}

/* Petite animation au survol pour inciter au clic/lecture */
.final-thought:hover::after {
    transform: translate(4px, 4px);
}

/* =========================================
   BLOC INFO BOX (Bon à savoir)
   Design : "Note éditoriale"
   ========================================= */
.info-box {
    position: relative;
    background-color: var(--bg-gray-light);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 35px 40px;
    z-index: 1;
}

/* L'ombre en pointillés décalée */
.info-box::after {
    content: '';
    position: absolute;
    top: 12px;
    left: -12px;
    width: 100%;
    height: 100%;
    background-color: transparent;
    border: 2px dashed var(--color-primary);
    z-index: -1;
    transition: transform 0.3s ease;
}

/* La pastille "i" (Info) flottante */
.info-box::before {
    content: 'i';
    position: absolute;
    top: -15px;
    left: 25px;
    width: 30px;
    height: 30px;
    background-color: var(--color-primary);
    color: #fff;
    font-family: serif; /* Style plus classique/édito pour le 'i' */
    font-size: 1.2rem;
    font-style: italic;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    box-shadow: 2px 2px 0px var(--color-beige);
}

/* --- LE TITRE (Premier strong uniquement) --- */
.info-box p:first-of-type strong:first-child {
    display: block;
    color: var(--color-primary);
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--color-beige);
}

/* --- LE TEXTE ET LES LISTES --- */
.info-box p {
    margin-top: 0;
    margin-bottom: 15px;
    line-height: 1.6;
}

.info-box p:last-child {
    margin-bottom: 0;
}

.info-box ul {
    margin: 0 0 15px 0;
    padding-left: 20px;
}

.info-box li {
    margin-bottom: 8px;
}

/* Sécurité : on laisse les autres strong normaux */
.info-box p strong:not(:first-child),
.info-box p:not(:first-of-type) strong {
    display: inline;
    letter-spacing: normal;
    text-transform: none;
    font-size: inherit;
    border: none;
}
/* =========================================
   BLOC MYTH BUSTING AUTHOR (Rapport d'Expert)
   ========================================= */
.myth-busting-author {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 60px 40px 40px; /* Plus de padding en haut pour l'onglet auteur */
    z-index: 1;
}

/* Le cadre décalé (Squelette) */
.myth-busting-author::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    z-index: -1;
}



/* --- LE TITRE ET LE MYTHE --- */
.myth-busting-author > p:nth-of-type(1) {
    margin-top: 10px;
    font-size: 1.2rem;
    color: var(--color-text-heading);
}

.myth-busting-author > p:nth-of-type(2) {
    background-color: var(--bg-gray-light);
    border-left: 4px solid var(--color-beige);
    padding: 15px 20px;
    margin: 20px 0;
    font-style: italic;
}


.myth-busting-author [itemprop="alternateName"] {
    font-size: 1.4rem;
    letter-spacing: 2px;
}

/* --- LE CORPS DE LA RÉALITÉ --- */
.myth-busting-author [itemprop="reviewBody"] {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px dashed var(--color-beige);
}

.myth-busting-author [itemprop="reviewBody"] ul {
    margin: 15px 0;
    padding-left: 20px;
}

.myth-busting-author [itemprop="reviewBody"] li {
    margin-bottom: 8px;
    list-style-type: square;
    color: var(--color-primary);
}

.myth-busting-author [itemprop="reviewBody"] li span {
    color: var(--color-text-hover); /* Remet le texte en normal */
}

/* --- RECOMMANDATION ET DISCLAIMER --- */
.myth-busting-author p:last-of-type {
    margin-top: 25px;
    font-size: 0.9rem;
    color: #888;
    font-style: italic;
    line-height: 1.4;
}

/* Style spécifique pour la Recommandation finale */
.myth-busting-author [itemprop="reviewBody"] p:last-child {
    background-color: var(--color-primary-faint);
    padding: 10px 15px;
    border-left: 3px solid var(--color-primary);
}

@media screen and (max-width: 768px) {
    .myth-busting-author [itemprop="reviewRating"] {
        display: none;
    }
}
/* =========================================
   7A. LISTE À PUCES (Dite "Check")
   ========================================= */
.list-check {
    margin: var(--margin-block);
}

.list-check h3 {
    margin-bottom: 20px;
}

.list-check ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.list-check li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 12px;
    line-height: 1.6;
    color: inherit;
}

/* La puce en Losange */
.list-check li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    width: 8px;
    height: 8px;
    background-color: var(--color-white);
    border: 2px solid var(--color-primary);
    transform: rotate(45deg);
}
/* =========================================
   7B. LISTE NUMÉROTÉE (Étapes / HowTo)
   ========================================= */
.list-steps {
    margin: var(--margin-block);
}

.list-steps h3 {
    margin-bottom: 30px;
}

.list-steps ol {
    list-style: none;
    padding: 0;
    counter-reset: step-counter;
}

.list-steps li {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    padding: 25px 30px;
    margin-bottom: 25px;
    margin-left: 35px; /* Espace pour le gros chiffre */
    box-shadow: 4px 4px 0px var(--shadow-soft);
}

/* Le chiffre (01, 02...) dans son cadre à gauche */
.list-steps li::before {
    counter-increment: step-counter;
    content: counter(step-counter, decimal-leading-zero);
    position: absolute;
    left: -35px;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--bg-gray-light);
    border: 1px solid var(--color-beige);
    color: var(--color-primary);
    font-size: 1.5rem;
    font-weight: 600;
    padding: 5px 10px;
    box-shadow: 3px 3px 0px var(--shadow-soft);
    z-index: 2;
}

/* Le titre gras de l'étape */
.list-steps strong {
    display: block;
    margin-bottom: 5px;
    font-size: 1.05rem;
}

/* =========================================
   7C. LISTE SIMPLE (Checklist)
   ========================================= */
.checklist {
    margin: var(--margin-block);
    background-color: var(--bg-gray-light);
    border: 1px solid var(--color-beige);
    padding: 35px 40px;
}

.checklist h3 {
    margin-bottom: 25px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-primary);
    display: inline-block;
}

.checklist ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.checklist li {
    position: relative;
    padding-left: 35px;
    margin-bottom: 15px;
    line-height: 1.6;
    color: inherit;
}

/* La case carrée */
.checklist li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 18px;
    height: 18px;
    background-color: var(--color-white);
    border: 2px solid var(--color-primary);
    box-shadow: 2px 2px 0px var(--color-beige);
}

/* La coche "✔" à l'intérieur */
.checklist li::after {
    content: '✔';
    position: absolute;
    left: 4px;
    top: 1px;
    color: var(--color-primary);
    font-weight: 900;
    font-size: 0.9rem;
}

/* =========================================
   BLOCS ALERTE (Succès & Warning)
   Harmonisés avec le style TLDR
   ========================================= */

.success-box, .warning {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 35px 35px 20px;
    z-index: 1;
}

/* --- Le Cadre Squelette décalé (Comme le TLDR) --- */
.success-box::before, .warning::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    background-color: transparent;
    z-index: -1;
    transition: var(--trans-smooth);
}

.success-box::before { border: 2px solid #81b29a; } /* Vert */
.warning::before { border: 2px solid #e07a5f; }     /* Orange */

/* --- Le Petit Carré Marqueur (Comme le TLDR) --- */
.success-box::after, .warning::after {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    width: 20px;
    height: 20px;
    box-shadow: 4px 4px 0px var(--color-beige);
    z-index: 2;
}

.success-box::after { background-color: #81b29a; } /* Vert */
.warning::after { background-color: #e07a5f; }     /* Orange */

/* --- Typographie Interne --- */

/* Titres (Strong) */
.success-box p strong:first-child { color: #588157; text-transform: uppercase; letter-spacing: 1px; }
.warning p strong:first-child { color: #bc4749; text-transform: uppercase; letter-spacing: 1px; }

/* Listes à l'intérieur des blocs */
.success-box ul, .warning ul {
    list-style: none;
    padding: 0;
    margin: 15px 0 0;
}

.success-box li, .warning li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 10px;
}

/* Puces personnalisées */
.success-box li::before, .warning li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 6px;
    height: 6px;
}

.success-box li::before { background-color: #81b29a; }
.warning li::before { background-color: #e07a5f; }

/* Texte des paragraphes */
.success-box p, .warning p {
    margin: 0;
}
.success-box p + p, .warning p + p {
    margin-top: 15px;
}

/* =========================================
   BLOC LEXIQUE - CORRIGÉ
   ========================================= */
.lexique {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 40px; /* Padding généreux */
    z-index: 1;
}

/* Le Terme (dt) : Devient un bloc stylé au-dessus */
.lexique dt {
    display: inline-block; /* Pour qu'il s'adapte à la largeur du texte */
    background-color: var(--color-text-heading);
    color: #fff;
    padding: 8px 18px;
    font-weight: 900;
    font-size: 0.85rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 20px; /* Crée l'espace pour la description en dessous */
    box-shadow: 4px 4px 0px var(--color-primary);
    
    /* Petit effet de débordement sur la gauche pour le style */
    position: relative;
    left: -20px; 
}

/* La Description (dd) : S'affiche naturellement en dessous */
.lexique dd {
    display: block;
    margin: 0;
    padding-top: 15px;
    border-top: 1px dashed var(--color-beige); /* Ligne de séparation */
}



/* --- LE SQUELETTE DÉCALÉ (Cohérence TLDR) --- */
.lexique::after {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 1.5px solid var(--color-primary);
    z-index: -1;
}

@media screen and (max-width: 768px) {
    .lexique dt { left: 0; } /* On remet à zéro sur mobile */
}
/* =========================================
   BLOC DECISION TREE
   Design : "Logigramme de choix"
   ========================================= */
.decision-tree {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 40px 40px 20px;
    z-index: 1;
}

/* Le Squelette décalé (Cohérence avec TLDR) */
.decision-tree::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    z-index: -1;
}

.decision-tree p:first-child {
    margin-top: 0;
    margin-bottom: 30px;
}

.decision-tree p strong span {
    background-color: var(--color-primary);
    color: #fff;
    padding: 8px 20px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    box-shadow: 4px 4px 0px var(--color-beige);
}

.decision-tree ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.decision-tree li {
    position: relative;
    padding: 20px;
    margin-bottom: 20px;
    background-color: var(--bg-gray-light);
    border: 1px solid var(--color-beige);
    transition: transform 0.3s ease;
}

.decision-tree li:hover {
    transform: translateX(5px);
    border-color: var(--color-primary);
}

/* La condition (Si...) */
.decision-tree li strong {
    display: block;
    color: var(--color-primary);
    font-size: 0.95rem;
    margin-bottom: 8px;
}



/* Petit losange de décision sur le côté */
.decision-tree li::before {
    content: '';
    position: absolute;
    left: -10px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 10px;
    height: 10px;
    background-color: var(--color-primary);
    border: 2px solid var(--color-white);
}

@media screen and (max-width: 768px) {
    .decision-tree { padding: 30px 20px; }
}

/* =========================================
   BLOC FAQ (Questions Fréquentes)
   Design : "Cartes empilées Brutalistes"
   ========================================= */
.faq-block {
    margin: var(--margin-block);
}

.faq-block h2, .faq-block h3 {
    margin-bottom: 35px;
}

.faq-item {
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin-bottom: 20px;
    transition: all 0.3s ease;
    /* Ombre dure décalée typique de ton style */
    box-shadow: 6px 6px 0px var(--shadow-soft); 
}

.faq-item summary {
    padding: 25px 60px 25px 30px;
    list-style: none;
    position: relative;
    transition: color 0.3s ease;
}

/* Suppression de la flèche par défaut */
.faq-item summary::-webkit-details-marker { display: none; }

/* Le symbole + / - stylisé */
.faq-item summary::after {
    content: '+';
    position: absolute;
    right: 25px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.8rem;
    font-weight: 300;
    color: var(--color-primary);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* État AUVERT */
.faq-item[open] {
    border-color: var(--color-primary);
    box-shadow: 10px 10px 0px var(--shadow-soft);
}

.faq-item[open] summary {
    color: var(--color-primary);
}

.faq-item[open] summary::after {
    transform: translateY(-50%) rotate(45deg); /* Le + devient un x (ou tu peux mettre content: '-') */
    color: var(--color-text-heading);
}

/* Contenu de la réponse */
.faq-item [itemprop="acceptedAnswer"] {
    padding: 0 30px 30px 30px;
    line-height: 1.7;
    animation: slideDown 0.4s ease-out;
}

.faq-item [itemprop="acceptedAnswer"] p {
    margin: 0;
    padding-top: 15px;
    border-top: 1px dashed var(--color-beige);
}

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* =========================================
   CORRECTION : SECTION RISQUES (YMYL LIMITES)
   ========================================= */

/* 1. Ajustement du conteneur parent pour l'alignement global */
.ymyl-bloc-limites {
    margin: var(--margin-block);
    padding: 30px 30px 30px 50px; /* On augmente le padding gauche pour laisser respirer la ligne */
    position: relative;
    border-left: 2px dashed var(--color-beige);
    background-color: var(--color-white);
}

/* 2. Le Titre Principal (Limites et étapes) */
.ymyl-bloc-limites > strong:first-of-type {
    display: block;
    position: relative;
    color: var(--color-text-heading);
    margin-bottom: 30px;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}

/* Le carré de départ sur la ligne */
.ymyl-bloc-limites > strong:first-of-type::before {
    content: '';
    position: absolute;
    left: -61px; /* Centré sur la ligne (50px padding + 11px) */
    top: 4px;
    width: 20px;
    height: 20px;
    background-color: var(--color-primary);
    box-shadow: 4px 4px 0px var(--color-beige);
}

/* 3. Ajustement des connecteurs de la liste (les ronds) */
.ymyl-bloc-limites li::after {
    left: -57px; /* Alignement précis sur la ligne */
}

/* 4. LA SECTION RISQUES (La partie à corriger) */
.ymyl-bloc-limites strong:nth-of-type(2) {
    display: block;
    margin-top: 40px;
    color: #e07a5f; /* Terracotta */
    text-transform: uppercase;
    font-size: 1rem;
    letter-spacing: 1px;
    position: relative;
    padding-bottom: 10px;
    border-bottom: 1px solid #ededed; /* Ligne fine de séparation */
    margin-bottom: 15px;
}

/* L'icône "!" sur la ligne */
.ymyl-bloc-limites strong:nth-of-type(2)::before {
    content: '!';
    position: absolute;
    left: -61px; /* Alignement précis sur la ligne */
    top: -2px;
    width: 22px;
    height: 22px;
    background-color: #e07a5f;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 14px;
    /* On ajoute un contour blanc pour "couper" la ligne pointillée proprement */
    box-shadow: 0 0 0 5px var(--color-white); 
}

/* 5. Le texte de conseil (italique em) */
.ymyl-bloc-limites em {
    display: block;
    margin-top: 25px;
    padding: 15px 20px;
    background-color: #fffaf5; /* Fond très léger orangé */
    border-left: 3px solid #e07a5f;
    font-style: italic;
    font-size: 0.9rem;
    line-height: 1.6;
}

/* =========================================
   BLOC MYTH BUSTING (Fact Check)
   Design : "Verdict Officiel"
   ========================================= */
.myth-busting {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 40px 40px 10px;
    z-index: 1;
}

/* Squelette décalé (Cohérence TLDR) */
.myth-busting::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    z-index: -1;
}

/* L'affirmation (Le Mythe) */
.myth-busting p:first-of-type {
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--color-beige);
}

.myth-busting [itemprop="claimReviewed"] {
    color: #888;
}



/* La Réponse (Review Body) */
.myth-busting [itemprop="reviewBody"] strong {
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* =========================================
   BLOC ANALOGIE
   Design : "Le Pont Créatif"
   ========================================= */
.analogy {
    position: relative;
    background-color: var(--color-white);
    border-top: 2px solid var(--color-primary);
    border-bottom: 2px solid var(--color-primary);
    margin: var(--margin-block);
    padding: 30px 40px;
    text-align: center;
    font-style: italic;
}

/* Symbole d'équivalence (les deux barres) */
.analogy::before, .analogy::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 2px;
    background-color: var(--color-primary);
}

.analogy::before { top: -10px; }
.analogy::after { bottom: -10px; }

.analogy p strong {
    display: block;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--color-primary);
    margin-bottom: 10px;
    font-size: 0.85rem;
}



/* =========================================
   BLOC AVANT / APRÈS
   Design : "La Métamorphose"
   ========================================= */
.before-after {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 0;
    z-index: 1;
}

/* Squelette décalé */
.before-after::after {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    z-index: -1;
}

.before-after [itemprop="reviewBody"] {
    display: flex;
    flex-direction: column;
}

.before-after p {
    margin: 0;
    padding: 25px 40px;
    position: relative;
}

/* Section AVANT */
.before-after p:first-child {
    background-color: var(--bg-gray-light);
    border-bottom: 1px dashed var(--color-beige);
}

.before-after p:first-child strong {
    color: var(--color-text-heading);
    text-transform: uppercase;
    font-size: 0.8rem;
    margin-right: 10px;
}

/* Section APRÈS */
.before-after p:last-child {
    background-color: var(--color-white);
}

.before-after p:last-child strong {
    color: var(--color-primary);
    text-transform: uppercase;
    font-size: 0.8rem;
    margin-right: 10px;
}

/* La flèche de transition */
.before-after p:last-child::before {
    content: '↓';
    position: absolute;
    top: -15px;
    left: 40px;
    background-color: var(--color-primary);
    color: #fff;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: bold;
    box-shadow: 2px 2px 0px var(--color-beige);
}

/* =========================================
   BLOC CONSEIL PRO
   Design : "La Note de Terrain"
   ========================================= */
.pro-tip {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    border-top: 4px solid var(--color-primary);
    margin: var(--margin-block);
    padding: 40px 35px 30px;
    z-index: 1;
}

/* Le squelette décalé (Typique de ton style) */
.pro-tip::after {
    content: '';
    position: absolute;
    top: 12px;
    right: -12px;
    width: 100%;
    height: 100%;
    border: 1px solid var(--color-primary);
    z-index: -1;
}

/* Le titre (Premier strong) */
.pro-tip p:first-of-type strong:first-child {
    position: absolute;
    top: -15px;
    left: 20px;
    background-color: var(--color-primary);
    color: #fff;
    padding: 5px 15px;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    box-shadow: 4px 4px 0px var(--color-beige);
}

.pro-tip p {
    margin: 0;
}





/* =========================================
   DATES (Published & Modified)
   Design : "Étiquettes Minimalistes"
   ========================================= */
.dt-published, .dt-modified {
    display: inline-block;
    font-size: 0.75rem;
    color: #888;
    padding: 5px 12px;
    background-color: var(--bg-gray-light);
    border: 1px solid var(--color-beige);
    /* Une petite bordure colorée à gauche pour le rappel visuel */
    border-left: 3px solid var(--color-primary); 
    margin-bottom: 20px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* Espacement si les deux dates sont affichées côte à côte */
.dt-published + .dt-modified {
    margin-left: 10px;
}

/* Effet au survol (cohérence avec tes autres blocs) */
.dt-published:hover, .dt-modified:hover {
    border-color: var(--color-primary);
    color: var(--color-text-heading);
}

/* =========================================
   BLOC PRO TIP AUTHOR 
   Design : Harmonisé sur le style TLDR
   ========================================= */
.pro-tip-author {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 35px 35px 20px;
    z-index: 1;
}

/* --- Le Cadre Squelette (Arrière-plan décalé) --- */
.pro-tip-author::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    background-color: transparent;
    /* Ombre beige douce pour la profondeur */
    box-shadow: -8px 8px 0px var(--shadow-soft); 
    z-index: -1;
    transition: var(--trans-smooth);
}

/* --- Le Petit Carré Marqueur (Top-Left) --- */
.pro-tip-author::after {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    width: 20px;
    height: 20px;
    background-color: var(--color-primary);
    box-shadow: 4px 4px 0px var(--color-beige);
    z-index: 2;
}

/* --- Contenu de l'auteur --- */
.pro-tip-author .author-content p {
    margin: 0;
    font-style: italic; /* Garde le côté "témoignage/conseil" */
}

/* Mise en valeur du gras à l'intérieur */
.pro-tip-author .author-content p strong {
    color: var(--color-text-heading);
    border-bottom: 1px solid var(--color-beige);
}



@media screen and (max-width: 768px) {
    .pro-tip-author {
        margin-left: 15px; /* Pour laisser la place au cadre décalé */
    }
}

/* =========================================
   BLOC DIRECT ANSWER
   Design : Harmonisé sur le style TLDR
   ========================================= */
.direct-answer {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid var(--color-beige);
    margin: var(--margin-block);
    padding: 35px 35px 20px;
    z-index: 1;
}

/* --- Le Cadre Squelette (Arrière-plan décalé) --- */
.direct-answer::before {
    content: '';
    position: absolute;
    top: 15px;
    left: -15px;
    width: 100%;
    height: 100%;
    border: 2px solid var(--color-primary);
    background-color: transparent;
    box-shadow: -8px 8px 0px var(--shadow-soft); 
    z-index: -1;
    transition: var(--trans-smooth);
}

/* --- Le Petit Carré Marqueur (Top-Left) --- */
.direct-answer::after {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    width: 20px;
    height: 20px;
    background-color: var(--color-primary);
    box-shadow: 4px 4px 0px var(--color-beige);
    z-index: 2;
}

/* --- Le Label (La Question / Le Titre de la réponse) --- */
.direct-answer .direct-answer-label {
    display: block;
    color: var(--color-text-heading);
    font-weight: 800;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px dashed var(--color-beige); /* Petite séparation élégante */
}

/* --- Le Texte de la Réponse --- */
.direct-answer [itemprop="text"] p {
    margin: 0;
}


@media screen and (max-width: 768px) {
    .direct-answer {
        margin-left: 15px; /* Pour le décalage du cadre sur mobile */
    }
    .direct-answer [itemprop="text"] p {
        font-size: 1.05rem;
    }
}

@media screen and (max-width: 960px) {
    /* 1. On retire les cadres décalés */
    .pros-cons::after,
    .block-spc::before,
    blockquote::before,
    .case-study-block::before,
    .tldr-hybrid::before,
    .tldr-paragraph::before,
    .tldr-list::before,
    .table-of-contents::after,
    .lexique::after,
    .decision-tree::before,
    .myth-musting::before,
    .before-after::after,
    .success-box::before,
    .warning::before,
    .pro-tip::after,
    .pro-tip-author::before,
    .direct-answer::before,
    .ymyl-bloc-limites::after,
    .ymyl-bloc-limites::before, .myth-busting-author::before,.instant-answer::before, .myth-busting::before, .info-box::after {
        display: none !important;
    }

    /* 2. On réajuste les marges pour que rien ne sorte de l'écran */
    .pros-cons, 
    .block-spc, 
    .tldr-hybrid, 
    .tldr-paragraph, 
    .tldr-list, 
    .direct-answer, 
    .pro-tip-author, 
    .lexique, 
    .decision-tree,
    .success-box,
    .warning,
    .ymyl-bloc-limites,
    blockquote,
    .case-study-block p:not(.case-study-block-title) {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        box-shadow: 4px 4px 0px var(--shadow-soft) !important;
    }




    /* On déplace les connecteurs (cercles/numéros) pour qu'ils soient sur la ligne réduite */
    .actionable-list li::after, .ymyl-bloc-limites li::after {
        left: -33px !important; 
    }
    
    .ymyl-bloc-limites > strong:first-of-type::before {
        left: -36px !important;
    }

    .ymyl-bloc-limites strong:nth-of-type(2)::before {
        left: -36px !important;
    }

    /* 4. On réduit la taille des titres qui débordent */
    .case-study-block-title {
        margin-left: 0;
        font-size: 1rem;
    }
    
    .lexique dt {
        left: 0 !important;
        margin-bottom: 10px;
    }
.actionable-list li {  margin-left: 20px;}
.table-of-contents { padding: 40px 20px 20px;}
.ymyl-bloc-limites {  padding: 30px;}
   .author-block {
        flex-direction: column; /* On passe de ligne à colonne */
        text-align: center;      /* On centre le texte */
        padding: 60px 25px 25px 25px !important; /* On ajuste le padding (plus d'espace en haut pour l'avatar) */
        margin-top: 60px;        /* Espace pour que l'avatar ne touche pas le bloc précédent */
        box-shadow: 8px 8px 0px var(--shadow-soft) !important;
        transform: none !important; /* On retire les mouvements au survol sur mobile */
    }

    .author-block .avatar {
        left: 50% !important;   /* On centre horizontalement */
        top: 0 !important;      /* On le place en haut */
        transform: translate(-50%, -50%) !important; /* Centrage parfait à cheval sur la bordure */
        width: 80px;
        height: 80px;
    }

    /* On cache le cercle en pointillés décoratif sur mobile pour alléger */
    .author-block::before {
        display: none !important;
    }

    .author-block .author-text {
        padding-left: 0; /* On retire le décalage du texte */
    }

    .author-block .author-text a {
        margin-bottom: 10px;
        border-bottom: 2px solid var(--color-primary);
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }
}