/*
Theme Name: Thibierge
Theme URI: https://www.thibierge.law/
Author: Media Squad
Author URI: https://www.media-squad.fr/
Description: Th&egrave;me du site de Me Thibierge
Version: 1.0
*/





        /* --- VARIABLES & GLOBALES --- */
        :root {
            --primary-black: #121212;
            --secondary-dark: #2c2c2c;
            --text-gray: #5a5a5a;
            --light-gray-bg: #f8f9fa;
            --border-color: #e0e0e0;
        }

        body {
            font-family: 'Lato', sans-serif;
            color: var(--text-gray);
            line-height: 1.8;
            overflow-x: hidden;
        }

        h1, h2, h3, h4, .navbar-brand, .quote-text {
            font-family: 'Playfair Display', serif;
            color: var(--primary-black);
        }
        
        p {
            text-align: justify !important;
        }
        
        /* Utilitaires de section */
        section {
            padding: 100px 0;
            position: relative;
        }

        .section-title {
            text-align: center;
            margin-bottom: 70px;
            position: relative;
        }
        
        /* Petit trait d&eacute;coratif sous les titres */
        .section-title::after {
            content: '';
            display: block;
            width: 60px;
            height: 3px;
            background: linear-gradient(to right, var(--primary-black), transparent);
            background: linear-gradient(to right, #002dae, #002dae);
            margin: 25px auto 0;
            opacity: 0.7;
        }
        #actualites .section-title::after {
            content: '';
            display: block;
            width: 60px;
            height: 3px;
            background: linear-gradient(to right, var(--primary-black), transparent);
            background: linear-gradient(to right, #002dae, #002dae);
            margin: 25px 0;
            opacity: 0.7;
        }

        /* --- NAVIGATION DYNAMIQUE --- */
        .navbar {
            padding: 1.2rem 0;
            transition: all 0.4s ease-in-out;
            background-color: transparent; /* Transparent au d&eacute;part */
        }

        /* Classe ajout&eacute;e en JS au scroll */
        .navbar-scrolled {
            background-color: rgba(255, 255, 255, 0.98) !important;
            box-shadow: 0 5px 20px rgba(0,0,0,0.05);
            padding: 0.8rem 0;
        }
        .navbar-brand {
            font-weight: 700;
            letter-spacing: 2px;
            font-size: 1.4rem;
        }
        
        .navbar-dark-mode .navbar-brand,
        .navbar-dark-mode .nav-link {
             color: white !important;
        }
        
        .navbar-scrolled .navbar-brand,
        .navbar-scrolled .nav-link {
             color: var(--primary-black) !important;
        }

        .nav-link {
            font-weight: 400;
            text-transform: uppercase;
            font-size: 0.8rem;
            letter-spacing: 2px;
            margin-left: 2rem;
            position: relative;
            color: white !important;
            opacity: 0.9;
        }

        
        /* Effet soulign&eacute; au survol des liens */
        
        /*
        .nav-link::after {
            content: '';
            position: absolute;
            width: 0;
            height: 1px;
            bottom: 5px;
            left: 0;
            background-color: white;
            transition: width 0.3s ease;
        }
        .navbar-scrolled .nav-link::after {
             background-color: black;
        }
        .navbar-dark-mode .nav-link::after {
             background-color: white;
        }
        
        .nav-link:hover::after {
            width: 100%;
        }

        .btn-link {
            --bs-text-opacity: 1;
            color: #002dae !important;
        }
        */
        
        
        /* --- HEADER SP&eacute;CIFIQUE "&agrave; PROPOS" --- */
        /* Plus sobre que la vid&eacute;o, une image fixe de biblioth&egrave;que/bureau */
        .page-template-page-16 .page-header {
            background: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.7)), url('https://images.unsplash.com/photo-1505664194779-8beaceb93744?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80') !important;
            background-size: cover;
            background-position: center;
            background-attachment: fixed; /* Parallax */
            height: 60vh;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            text-align: center;
        }
        
        .page-header h1 { color: white; font-size: 3.5rem; margin-bottom: 1rem; }
        .breadcrumb { justify-content: center; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 2px; opacity: 0.8; }
        .breadcrumb-item + .breadcrumb-item::before { color: white; }
        .breadcrumb a { color: white; text-decoration: none; }

        /* --- BIOGRAPHIE & LETTRINE --- */
        .bio-section { padding: 100px 0; }
        
        /* La Lettrine (Drop Cap) pour le style acad&eacute;mique */
        .drop-cap {
            float: left;
            font-family: 'Playfair Display', serif;
            font-size: 5rem;
            line-height: 0.7;
            padding-top: 10px;
            padding-right: 15px;
            padding-left: 5px;
            color: var(--primary-black);
            font-weight: 700;
        }

        .signature {
            font-family: 'Playfair Display', serif;
            font-style: italic;
            font-size: 2rem;
            margin-top: 30px;
            text-align: right;
        }

        /* --- TIMELINE (CHRONOLOGIE) --- */
        .timeline-section {
            background-color: var(--primary-black);
            color: #ddd;
            padding: 100px 0;
            position: relative;
        }
        
        .timeline-section h2 { color: white; text-align: center; margin-bottom: 60px; }

        .timeline {
            position: relative;
            max-width: 800px;
            margin: 0 auto;
        }

        /* La ligne verticale */
        .timeline::after {
            content: '';
            position: absolute;
            width: 2px;
            background-color: rgba(255,255,255,0.2);
            top: 0;
            bottom: 0;
            left: 50%;
            margin-left: -1px;
        }

        .timeline-item {
            padding: 10px 40px;
            position: relative;
            background-color: inherit;
            width: 50%;
        }

        /* Les points sur la timeline */
        .timeline-item::after {
            content: '';
            position: absolute;
            width: 16px;
            height: 16px;
            right: -8px;
            background-color: white;
            border: 4px solid var(--secondary-dark);
            top: 22px;
            border-radius: 50%;
            z-index: 1;
            transition: all 0.3s;
        }
        
        .timeline-item:hover::after { transform: scale(1.3); background-color: white; border-color: #002dae; }

        .left { left: 0; text-align: right; }
        .right { left: 50%; text-align: left; }
        @media screen and (max-width: 768px) {
        .right { left: 0%; text-align: left; }
        }
        .right::after { left: -8px; }

        .content {
            padding: 20px 30px;
            background-color: #1f1f1f; /* L&eacute;g&egrave;rement plus clair que le fond */
            position: relative;
            border-radius: 0;
            border-left: 3px solid #444; /* Accent subtil */
            transition: transform 0.3s;
        }
        .timeline-item:hover .content { transform: translateY(-5px); border-left-color: #002dae; }

        .date {
            font-family: 'Playfair Display', serif;
            font-size: 1.5rem;
            font-weight: bold;
            color: white;
            display: block;
            margin-bottom: 10px;
        }

        /* Responsive Timeline */
        @media screen and (max-width: 768px) {
            .timeline::after { left: 31px; }
            .timeline-item { width: 100%; padding-left: 70px; padding-right: 25px; }
            .timeline-item::after { left: 23px; }
            .left { text-align: left; }
        }

        /* --- INSTITUTIONS (Logos) --- */
        .institutions-section { background-color: #f4f4f4; padding: 80px 0; text-align: center; }
        .institutions-section p { text-align: center !important; }
        .institution-logo {
            font-size: 1rem;
            opacity: 1;
            margin: 0 20px 40px 20px;
            transition: all 0.3s;
            display: inline-block;
        }
        .institution-logo img {
            margin-bottom:15px;
        }
        .institution-logo:hover { opacity: 0.3; transform: scale(1.1); color: var(--primary-black); }

        /* --- CTA DOWNLOAD CV --- */
        .cta-section { padding: 80px 0; text-align: center; border-top: 1px solid #eee; }
        .btn-download {
            border: 2px solid white !important;
            color: white !important;
            padding: 15px 40px;
            text-transform: uppercase;
            letter-spacing: 2px;
            font-weight: 700;
            background: transparent;
            transition: all 0.4s;
        }
        .btn-download:hover { background-color: var(--primary-black); color: white; }

        /* --- SECTION PROFIL TRAVAILL&eacute;E --- */
        /* Effet de cadre d&eacute;cal&eacute; pour la photo */
        .profile-image-container {
            position: relative;
            padding: 20px;
        }
        
        .profile-image {
             width: 100%;
             height: 700px;
             background-color: #ddd; /* Placeholder gris */
             background-size: cover;
             background-position: center;
             position: relative;
             z-index: 2;
             box-shadow: 0 10px 30px rgba(0,0,0,0.1);
        }

        /* Le cadre arri&egrave;re d&eacute;cal&eacute; */
        /*
        .profile-image-container::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: 3px solid var(--primary-black);
            z-index: 1;
            transform: translate(-15px, -15px);
            transition: transform 0.5s ease;
        }
        */
        
        .profile-image-container:hover::after {
             /* transform: translate(-5px, -5px);*/ /* Rapprochement au survol */
        }

        .bio-list li {
            margin-bottom: 15px;
            display: flex;
            align-items: center;
        }
        .bio-list i {
            font-size: 0.8rem;
            opacity: 0.6;
            border: 1px solid var(--text-gray);
            padding: 5px;
            border-radius: 50%;
        }

        /* --- CARDS EXPERTISES &eacute;LABOR&eacute;ES --- */
        #expertises {
            background-color: var(--light-gray-bg);
            /* Texture de fond tr&egrave;s subtile style papier */
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='0.03'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
        }

        .expertise-card {
            background: white;
            padding: 50px 30px;
            text-align: left;
            transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
            height: 100%;
            border: none;
            /* Bordure &eacute;paisse uniquement en haut */
            border-top: 4px solid var(--primary-black);
            box-shadow: 0 5px 15px rgba(0,0,0,0.03);
            position: relative;
            overflow: hidden;
        }

        .expertise-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 40px rgba(0,0,0,0.1);
        }
        
        /* Num&eacute;ro d'arri&egrave;re-plan discret */
        .card-bg-num {
            position: absolute;
            top: -20px;
            right: -10px;
            font-size: 120px;
            font-weight: 900;
            color: #f4f4f4;
            z-index: 0;
            font-family: 'Playfair Display', serif;
            opacity: 0.5;
            transition: all 0.4s ease;
        }
        .expertise-card:hover .card-bg-num {
            opacity: 0.8;
            transform: scale(1.1);
        }

        .icon-box-fancy {
            font-size: 2.5rem;
            margin-bottom: 25px;
            color: #002dae;
            display: inline-block;
            position: relative;
            z-index: 1;
        }
        
        /* Cercle anim&eacute; derri&egrave;re l'icône au survol */
        .icon-box-fancy::after {
            content: '';
            position: absolute;
            width: 50px;
            height: 50px;
            background-color: #f0f0f0;
            border-radius: 50%;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) scale(0);
            z-index: -1;
            transition: transform 0.4s ease;
        }
        .expertise-card:hover .icon-box-fancy::after {
             transform: translate(-50%, -50%) scale(1.5);
        }

        .expertise-card h3, .expertise-card p {
            position: relative;
            z-index: 1;
        }

        /* --- CITATION AVEC ENCOCHE --- */
        .quote-section {
            background-color: var(--primary-black);
            color: white !important;
            text-align: center;
            /* Motif g&eacute;om&eacute;trique subtil en fond */
            /*background-image: linear-gradient(45deg, #1a1a1a 25%, transparent 25%), linear-gradient(-45deg, #1a1a1a 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #1a1a1a 75%), linear-gradient(-45deg, transparent 75%, #1a1a1a 75%);*/
            background-size: 20px 20px;
            background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
        }
        
        .quote-container {
            position: relative;
            display: inline-block;
            padding: 40px;
        }
        /* Grande guillemet en arri&egrave;re-plan */
        .quote-icon-bg {
            position: absolute;
            top: -40px;
            left: -40px;
            font-size: 150px;
            font-family: 'Playfair Display', serif;
            color: rgba(255,255,255,0.1);
            z-index: 0;
            color: white !important;
        }

        .quote-text {
            font-style: italic;
            font-size: 2rem;
            position: relative;
            z-index: 1;
            color: white !important;
            text-align: center !important;
        }

        /* --- PUBLICATIONS INTERACTIVES --- */
        
        #publications h5 {
            font-family: 'Playfair Display', serif;
        }
        
        .pub-item {
            border: none;
            border-bottom: 1px solid var(--border-color);
            padding: 30px 20px;
            transition: all 0.3s ease;
            position: relative;
            background-color: white;
        }
        
        /* Effet de "d&eacute;calage" au survol */
        .pub-item:hover {
            background-color: var(--light-gray-bg);
            padding-left: 35px; /* D&eacute;calage du texte */
            border-left: 3px solid #002dae !important;
        }
        
        /* Petite fl&egrave;che qui apparaît au survol */
        .pub-arrow {
            position: absolute;
            right: 20px;
            top: 50%;
            transform: translateY(-50%);
            opacity: 0;
            transition: all 0.3s ease;
        }
        .pub-item:hover .pub-arrow {
            opacity: 1;
            right: 30px;
        }
        
        /* --- CONTACT FORM STYLE --- */
        #contact {
             background-color: #f4f4f4;
        }
        
        .contact-info-box {
            background: white;
            padding: 40px;
            height: 100%;
            border-left: 3px solid var(--primary-black);
            box-shadow: 0 10px 30px rgba(0,0,0,0.05);
        }

        /* Champs de formulaire style "Material" (juste une ligne en bas) */
        .form-control-material {
            border: none;
            border-bottom: 2px solid #ddd;
            border-radius: 0;
            padding: 15px 0;
            background-color: transparent;
            transition: all 0.3s;
        }
        .form-control-material:focus {
            box-shadow: none;
            border-bottom-color: var(--primary-black);
            background-color: transparent;
        }
        .form-label {
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 1px;
            font-weight: 700;
            margin-bottom: 5px;
            color: var(--primary-black);
        }

        .btn-submit-fancy {
            background-color: var(--primary-black);
            color: white;
            border: none;
            padding: 15px 30px;
            text-transform: uppercase;
            letter-spacing: 2px;
            font-weight: 700;
            position: relative;
            overflow: hidden;
            transition: all 0.3s;
        }
        
        .btn-submit-fancy:hover {
            background-color: #333;
            padding-right: 50px; /* Espace pour la fl&egrave;che */
        }
        
        /* Fl&egrave;che qui apparaît dans le bouton au survol */
        .btn-submit-fancy::after {
            content: '?';
            position: absolute;
            right: -20px;
            transition: all 0.3s;
            opacity: 0;
        }
        .btn-submit-fancy:hover::after {
            right: 20px;
            opacity: 1;
        }

        /* --- FOOTER --- */
        footer {
            background-color: #0a0a0a;
            color: #666;
            padding: 60px 0;
        }
        footer p {
            text-align: center !important;
        }
        footer a {
            color: #666;
            text-decoration: none;
        }
        footer a.social-link {
            color: white;
            background-color: rgba(255,255,255,0.1);
            width: 40px; height: 40px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            margin: 0 5px;
            transition: all 0.3s;
            border: 1px solid transparent;
        }
        footer a.social-link:hover {
            background-color: #002dae;
            border-color: transparent;
            transform: translateY(-3px);
        }
        
        
        
        
        
        
        /* --- HERO SECTION AVEC VID&eacute;O --- */
        .hero {
            position: relative;
            min-height: 90vh;
            color: white;
            display: flex;
            align-items: center;
            overflow: hidden; /* Important pour contenir la vid&eacute;o */
        }

        /* Conteneur absolu pour la vid&eacute;o et l'overlay */
        .video-bg-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0; /* Tout au fond */
        }

        /* La balise vid&eacute;o elle-même */
        .video-bg {
            width: 100%;
            height: 100%;
            object-fit: cover; /* Simule background-size: cover */
            filter: grayscale(100%) contrast(1.2); /* Force le N&B et augmente le contraste */
        }

        /* Couche sombre par-dessus la vid&eacute;o pour la lisibilit&eacute; du texte */
        .video-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.85));
            z-index: 1; /* Au-dessus de la vid&eacute;o */
        }

        /* Le contenu (texte) doit être au-dessus de tout */
        .hero-content-relative {
            position: relative;
            z-index: 2;
        }

        .hero h1 {
            color: white;
            font-size: 4rem;
            font-weight: 700;
            line-height: 1.2;
            margin-bottom: 2rem;
        }
        .hero h1 span {
            color: #002dae;
        }
        @media screen and (max-width: 768px) {
            .hero h1 {
                color: white;
                font-size: 3rem;
                font-weight: 700;
                line-height: 1.2;
                margin-bottom: 2rem;
            }
        }
        .hero-content-wrapper {
            border-left: 3px solid #002dae;
            padding-left: 30px;
        }

        .hero .lead {
            font-weight: 300;
            font-size: 1.3rem;
            letter-spacing: 1px;
            color: rgba(255,255,255,0.8);
            margin-bottom: 3rem;
        }

        /* Bouton Premium (Inchang&eacute;) */
        .btn-premium {
            background-color: transparent;
            color: white;
            border: 2px solid white;
            border-radius: 0;
            padding: 15px 40px;
            text-transform: uppercase;
            letter-spacing: 2px;
            font-size: 0.9rem;
            position: relative;
            overflow: hidden;
            transition: all 0.4s ease;
            z-index: 1;
        }
        .btn-premium::before {
            content: '';
            position: absolute;
            top: 0; left: 0; width: 0%; height: 100%;
            background-color: white;
            transition: all 0.4s ease;
            z-index: -1;
        }
        .btn-premium:hover {
            color: var(--primary-black);
            border-color: white;
        }
        .btn-premium:hover::before {
            width: 100%;
        }


/* --- NOUVELLE SECTION CTA --- */
        .cta-section {
            position: relative;
            padding: 120px 0;
            background-color: var(--primary-black);
            background-image: url('https://www.thibierge.law/wp-content/uploads/2026/02/fronton-2.jpg');
            background-size: cover;
            background-position: center;
            background-attachment: fixed; /* Effet Parallax */
            overflow: hidden;
        }

        .cta-overlay {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            /* Dégradé noir très fort pour que l'image soit juste suggérée */
            background: linear-gradient(rgba(0,0,0,0.85), rgba(10,10,10,0.95));
            z-index: 1;
        }

        /* Réutilisation et adaptation du bouton premium existant */
        .cta-section .btn-premium {
            background-color: white;
            color: var(--primary-black);
            border-color: white;
            font-weight: 700;
        }
        
        .cta-section .btn-premium:hover {
            background-color: transparent;
            color: white;
            box-shadow: 0 0 15px rgba(255,255,255,0.3);
        }

        .cta-section .btn-outline-light:hover {
            background-color: rgba(255,255,255,0.1);
            color: white;
        }


/* --- SECTION ACTUALITÉS (NEWS) --- */
        .news-section {
            background-color: white;
            padding: 100px 0;
        }
        
        .news-card {
            border: none;
            border-left: 1px solid #eeeeee; /* Ligne fine à gauche seulement */
            padding-left: 25px;
            margin-bottom: 30px;
            transition: all 0.3s ease;
        }
        
        .news-card:hover {
            border-left-color: var(--primary-black); /* La ligne devient noire au survol */
            border-left-color: #002dae;
            border-width: 3px;
            transform: translateX(5px);
        }

        .news-date {
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 2px;
            color: #999;
            margin-bottom: 10px;
            display: block;
        }

        .news-link {
            color: var(--primary-black);
            text-decoration: none;
            font-weight: 700;
            font-size: 0.9rem;
            margin-top: 10px;
            display: inline-block;
        }
        .news-link i { transition: transform 0.3s; }
        .news-card:hover .news-link i { transform: translateX(5px); }

        /* --- SECTION VIDÉOS (YOUTUBE) --- */
        .video-section {
            background-color: #f9f9f9; /* Gris très clair pour contraster */
            padding: 100px 0;
        }
        .video-section p {
            text-align: center !important;
        }
        .video-wrapper {
            position: relative;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0,0,0,0.05);
            transition: all 0.3s ease;
        }
    
        /* L'astuce pour le Noir & Blanc sur YouTube */
        .video-wrapper iframe {
            filter: grayscale(100%);
            transition: filter 0.5s ease;
        }
        
        /* Au survol, on remet la couleur */
        .video-wrapper:hover iframe {
            filter: grayscale(0%);
        }
        
        .video-wrapper:hover {
            box-shadow: 0 15px 40px rgba(0,0,0,0.15);
            transform: translateY(-5px);
        }

        .video-caption {
            background: white;
            padding: 20px;
            border-bottom: 2px solid transparent;
            transition: border-color 0.3s;
        }
        .video-wrapper:hover .video-caption {
            border-bottom-color: #002dae;
        }





        /* --- ARTICLE HEADER (HERO) --- */
        .article-header {
            background-color: var(--primary-black);
            color: white;
            padding: 180px 0 100px 0; /* Espace pour la navbar fixe */
            position: relative;
            background-image: linear-gradient(to bottom, rgba(18,18,18,0.9), rgba(18,18,18,1));
        }
        
        .meta-tag {
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 2px;
            border: 1px solid rgba(255,255,255,0.3);
            padding: 5px 15px;
            display: inline-block;
            margin-bottom: 20px;
        }

        .article-title {
            font-size: 3rem;
            line-height: 1.2;
            margin-bottom: 30px;
        }

        .article-meta {
            font-family: 'Playfair Display', serif;
            font-style: italic;
            color: rgba(255,255,255,0.6);
            font-size: 1.1rem;
        }

        /* --- CONTENU ARTICLE --- */
        .article-container {
            padding: 80px 0;
        }

        /* Colonne de texte principal */
        .article-body {
            font-size: 1.15rem; /* Texte un peu plus grand pour la lecture */
            color: #333;
        }

        .article-body p { margin-bottom: 1.5rem; }
        
        .article-body h2 {
            margin-top: 3rem;
            margin-bottom: 1.5rem;
            font-size: 2rem;
            border-left: 4px solid var(--primary-black);
            padding-left: 20px;
        }
        
        .article-body h3 {
            margin-top: 2rem;
            font-size: 1.5rem;
            font-weight: 700;
        }

        /* Le "Chapeau" (Lead) */
        .article-lead {
            font-size: 1.4rem;
            font-family: 'Playfair Display', serif;
            color: var(--primary-black);
            line-height: 1.6;
            margin-bottom: 3rem;
            padding-bottom: 2rem;
            border-bottom: 1px solid #eee;
        }

        /* Citations juridiques (Blockquote) */
        blockquote {
            background-color: #f9f9f9;
            padding: 40px;
            margin: 40px 0;
            position: relative;
            font-family: 'Playfair Display', serif;
            font-style: italic;
            font-size: 1.3rem;
            color: #555;
            border-left: 2px solid var(--primary-black);
        }
        blockquote::before {
            content: '"';
            position: absolute;
            top: -10px; left: 20px;
            font-size: 4rem;
            color: rgba(0,0,0,0.1);
            line-height: 1;
        }

        /* Notes de bas de page */
        .footnotes {
            margin-top: 60px;
            padding-top: 30px;
            border-top: 1px solid #ddd;
            font-size: 0.9rem;
            color: #777;
        }
        .footnotes ol { padding-left: 20px; }
        .footnotes li { margin-bottom: 10px; }

        /* --- SIDEBAR --- */
        .sidebar {
            position: sticky; /* Reste visible au scroll */
            top: 120px;
        }

        .author-widget {
            background: #f9f9f9;
            padding: 30px;
            text-align: center;
            margin-bottom: 40px;
        }
        .author-img {
            width: 100px; height: 100px;
            border-radius: 50%;
            object-fit: cover;
            margin-bottom: 15px;
        }
        
        .toc-widget h5 {
            text-transform: uppercase;
            font-size: 0.85rem;
            letter-spacing: 2px;
            margin-bottom: 20px;
            font-weight: 700;
        }
        .toc-list {
            list-style: none;
            padding: 0;
            border-left: 2px solid #eee;
        }
        .toc-list li { margin-bottom: 15px; position: relative; }
        .toc-list a {
            text-decoration: none;
            color: var(--text-light);
            display: block;
            padding-left: 20px;
            transition: all 0.3s;
            font-size: 0.95rem;
        }
        .toc-list a:hover {
            color: var(--primary-black);
            font-weight: 700;
            border-left: 2px solid var(--primary-black);
            margin-left: -2px; /* Pour aligner la bordure */
        }

        /* Boutons de partage */
        .share-buttons a {
            display: inline-flex;
            width: 40px; height: 40px;
            border: 1px solid #ddd;
            align-items: center; justify-content: center;
            color: var(--primary-black);
            text-decoration: none;
            margin-right: 10px;
            transition: all 0.3s;
        }
        .share-buttons a:hover {
            background-color: var(--primary-black);
            color: white;
            border-color: var(--primary-black);
        }



        /* --- HEADER PAGE CONTACT--- */
        .page-template-page-23 .page-header {
            /* Image de stylo/bureau pour &eacute;voquer la correspondance */
            background: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.7)), url('https://images.unsplash.com/photo-1517048676732-d65bc937f952?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80') !important;
            background-size: cover;
            background-position: center;
            height: 45vh;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
        }
        .page-header h1 { color: white; font-size: 3.5rem; }
        .breadcrumb-item + .breadcrumb-item::before { color: white; }
        .breadcrumb a { color: white; text-decoration: none; }


        /* --- CONTENU CONTACT --- */
        .contact-section { padding: 100px 0; }
        
        .info-card {
            padding: 30px 0;
            border-bottom: 1px solid #eee;
        }
        .info-card:last-child { border-bottom: none; }
        
        .info-label {
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 2px;
            font-weight: 700;
            margin-bottom: 10px;
            color: #002dae;
        }
        .info-value {
            font-size: 1.1rem;
            color: var(--primary-black);
        }
        .info-value a { color: var(--primary-black); text-decoration: none; transition: 0.3s; }
        .info-value a:hover { opacity: 0.6; }

        /* Formulaire Style "Luxe/Material" */
        
        form p {
            text-align: left !important;
        }
        .wpcf7 textarea {
            height:150px !important;
        }
        .wpcf7 select {
            display: block;
            margin-top:-30px !important;
            margin-bottom:45px !important;
        }
        .form-group { margin-bottom: 30px; position: relative; }
        
        .form-control-lux {
            width: 100%;
            border: none;
            border-bottom: 2px solid #ddd;
            padding: 15px 0;
            border-radius: 0;
            outline: none;
            transition: all 0.3s;
            background: transparent;
            font-family: 'Playfair Display', serif; /* Police Serif pour l'input lui-même */
            font-size: 1.1rem;
        }
        
        .form-control-lux:focus {
            border-bottom-color: var(--primary-black);
            background: transparent;
        }
        
        .form-label-lux {
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 1px;
            color: #888;
            margin-bottom: 5px;
            display: block;
        }

        /* Checkbox custom */
        .form-check-input:checked {
            background-color: var(--primary-black);
            border-color: var(--primary-black);
        }

        /* Bouton Fancy */
        .btn-send {
            background-color: var(--primary-black);
            color: white;
            border: none;
            padding: 15px 50px;
            text-transform: uppercase;
            letter-spacing: 2px;
            font-size: 0.9rem;
            transition: all 0.3s;
            margin-top: 20px;
        }
        .btn-send:hover {
            background-color: #333;
            padding-right: 70px;
        }
        .btn-send::after {
            content: '\f178'; /* FontAwesome arrow right */
            font-family: "Font Awesome 6 Free";
            font-weight: 900;
            position: absolute;
            opacity: 0;
            margin-left: 10px;
            transition: all 0.3s;
        }
        .btn-send:hover::after {
            opacity: 1;
        }

        /* --- MAP GRAYSCALE --- */
        .map-container {
            width: 100%;
            height: 450px;
            background-color: #eee;
            filter: grayscale(100%) contrast(1.1); /* Le secret pour le look N&B */
            transition: filter 0.5s;
        }
        /* On remet un peu de couleur au survol si d&eacute;sir&eacute; (optionnel) */
        /* .map-container:hover { filter: grayscale(0%); } */




        .page-template-page-18 .page-header {
            /* Image de marbre/pierre pour la solidit&eacute; */
            background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('https://images.unsplash.com/photo-1505664194779-8beaceb93744?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80') !important;
            background-size: cover;
            background-position: center;
            height: 50vh;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            position: relative;
        }


/* --- SECTIONS ZIG-ZAG --- */
        .service-section { padding: 0; overflow: hidden; }
        
        .service-row {
            display: flex;
            flex-wrap: wrap;
            align-items: stretch; /* Hauteur &eacute;gale */
            min-height: 600px;
        }

        /* Colonne Texte */
        .service-text {
            padding: 80px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            background-color: white;
        }

        /* Colonne Image */
        .service-image {
            background-size: cover;
            background-position: center;
            min-height: 400px;
            position: relative;
            filter: grayscale(100%);
            transition: filter 0.5s;
        }
        /* Au survol, on remet un peu de couleur ou contraste */
        .service-row:hover .service-image {
            filter: grayscale(0%) contrast(0.9);
        }

        .service-list { list-style: none; padding: 0; margin-top: 30px; }
        .service-list li {
            margin-bottom: 15px;
            padding-left: 25px;
            position: relative;
            font-size: 1.05rem;
        }
        /* Puce personnalis&eacute;e (trait) */
        .service-list li::before {
            content: '';
            position: absolute;
            left: 0;
            top: 12px;
            width: 15px;
            height: 1px;
            background-color: var(--primary-black);
        }

        /* Num&eacute;ro d&eacute;coratif g&eacute;ant */
        .big-number {
            font-family: 'Playfair Display', serif;
            font-size: 150px;
            line-height: 1;
            position: absolute;
            top: 20px;
            right: 40px;
            color: #f4f4f4; /* Tr&egrave;s clair */
            z-index: 0;
            pointer-events: none;
        }
        .service-content-wrapper { position: relative; z-index: 1; }

        /* --- SECTEURS GRILLE --- */
        .sectors-section {
            padding: 100px 0;
            background-color: #f9f9f9;
        }
        .sector-card {
            background: white;
            border: 1px solid #eee;
            padding: 40px 20px;
            text-align: center;
            transition: all 0.4s ease;
            height: 100%;
        }
        .sector-card h4 { font-size: 1.2rem; margin-top: 20px; font-weight: 700; letter-spacing: 1px; }
        .sector-card i { font-size: 2rem; color: #999; transition: all 0.4s; }
        
        /* Effet "Invert" au survol : fond noir, texte blanc */
        .sector-card:hover {
            background-color: var(--primary-black);
            transform: translateY(-5px);
            border-color: var(--primary-black);
        }
        .sector-card:hover h4 { color: white; }
        .sector-card:hover i { color: white; }

        /* --- METHODOLOGIE (Process) --- */
        .method-section { padding: 100px 0; border-top: 1px solid #eee; }
        .step-item { position: relative; padding-top: 40px; }
        .step-number {
            font-size: 3rem;
            font-family: 'Playfair Display', serif;
            color: #ddd;
            position: absolute;
            top: 0; left: 0;
            line-height: 1;
        }
        .step-item:hover .step-number { color: var(--primary-black); transition: color 0.3s; }

        /* Footer identique */
        footer { background-color: #0a0a0a; color: #666; padding: 60px 0; }
        footer a.social-link { color: white; background-color: rgba(255,255,255,0.1); width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; margin: 0 5px; transition: all 0.3s; text-decoration: none; }
        footer a.social-link:hover { background-color: white; color: black; }

        /* Responsive */
        @media (max-width: 991px) {
            .service-text { padding: 50px 30px; }
            .service-row { flex-direction: column !important; }
            .service-row .col-lg-6 { width: 100%; }
            .big-number { font-size: 100px; top: 10px; right: 20px; }
        }








        /* --- HEADER PAGE --- */
        .page-header {
            /* Image de papier/imprimerie pour le th&egrave;me */
            background: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.7)), url('https://images.unsplash.com/photo-1506880018603-83d5b814b5a6?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80');
            background-size: cover;
            background-position: center;
            height: 45vh;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
        }
        .page-header h1 { color: white; font-size: 3.5rem; }
        .breadcrumb-item + .breadcrumb-item::before { color: white; }
        .breadcrumb a { color: white; text-decoration: none; }

        /* --- FEATURED BOOK (Livre en vedette) --- */
        .featured-book-section {
            padding: 100px 0;
            background-color: var(--light-bg);
            border-bottom: 1px solid #e0e0e0;
        }
        
        .blue-element {
            color:#002dae !important;
        }
        
        /* Simulation de couverture de livre 3D */
        .book-cover {
            width: 100%;
            max-width: 350px;
            height: 500px;
            background-color: #333;
            background-size: cover;
            box-shadow: 20px 20px 50px rgba(0,0,0,0.2);
            position: relative;
            transition: transform 0.5s;
            filter: grayscale(100%);
        }
        .book-cover:hover { transform: translateY(-10px); filter: grayscale(0%); }
        
        /* Effet tranche de livre sur le côt&eacute; */
        .book-cover::before {
            content: '';
            position: absolute;
            left: -15px; top: 5px;
            width: 15px; height: 98%;
            background-color: #1a1a1a;
            transform: skewY(-5deg);
        }

        .btn-order {
            border: 2px solid var(--primary-black);
            color: var(--primary-black);
            padding: 12px 30px;
            text-transform: uppercase;
            letter-spacing: 1px;
            font-size: 0.8rem;
            border-radius: 0;
            transition: all 0.3s;
        }
        .btn-order:hover { background-color: var(--primary-black); color: white; }

        /* --- TABS & LISTE PUBLICATIONS --- */
        .publications-list-section { padding: 80px 0; }

        /* Style des onglets personnalis&eacute;s */
        .nav-tabs { border-bottom: 2px solid #eee; margin-bottom: 50px; justify-content: center; }
        .publications-list-section .nav-link {
            border: none;
            color: #999;
            font-family: 'Playfair Display', serif;
            font-size: 1.2rem;
            background: transparent;
            padding-bottom: 15px;
            margin: 0 20px;
            position: relative;
            color:black !important;
        }
        .publications-list-section .nav-link:hover { color: var(--primary-black); border: white !important; }
        
        /* L'onglet actif a juste une barre noire en dessous */
        .publications-list-section .nav-link.active {
            color: var(--primary-black);
            background: transparent;
            font-weight: bold;
            border: white !important;
        }
        .publications-list-section .nav-link.active::after {
            content: '';
            position: absolute;
            bottom: -2px; left: 0; width: 100%; height: 2px;
            background-color: var(--primary-black);
        }

        /* Carte de publication individuelle */
        .pub-card {
            background: white;
            padding: 30px;
            margin-bottom: 30px;
            border-left: 4px solid transparent; /* Invisible par d&eacute;faut */
            transition: all 0.3s;
            position: relative;
        }
        #articles .pub-card {
            padding: 10px 30px 1px 30px;
            margin-bottom: 20px;
        }
        
        .pub-card:hover {
            box-shadow: 0 10px 30px rgba(0,0,0,0.05);
            border-left-color: var(--primary-black); /* Apparition de la bordure noire */
            transform: translateX(10px);
        }

        .pub-meta {
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 1px;
            color: #888;
            margin-bottom: 10px;
            display: block;
        }
        
        .pub-icon {
            position: absolute;
            right: 30px;
            top: 30px;
            font-size: 1.5rem;
            color: #eee;
            transition: color 0.3s;
        }
        .pub-card:hover .pub-icon { color: var(--primary-black); }

        .download-link {
            color: var(--primary-black);
            text-decoration: none;
            font-weight: 700;
            font-size: 0.9rem;
            border-bottom: 1px solid #002dae;
            padding-bottom: 2px;
            transition: all 0.3s;
        }
        .download-link:hover { padding-bottom: 5px; opacity: 0.7; }

        /* Search bar simple */
        .search-box {
            border: none;
            border-bottom: 1px solid #ddd;
            padding: 10px;
            width: 100%;
            outline: none;
            background: transparent;
            font-style: italic;
        }













/* =WordPress Core
-------------------------------------------------------------- */

.alignnone {
    margin: 5px 20px 20px 0;
}
.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}
.alignright {
    float:right;
    margin: 5px 0 20px 20px;
}
.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}
a img.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}
a img.alignnone {
    margin: 5px 20px 20px 0;
}
a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}
a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%; /* Image does not overflow the content area */
    padding: 5px 3px 10px;
    text-align: center;
}
.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}
.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}
.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}
.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}
.wp-caption p.wp-caption-text {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px;
}
/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}
.screen-reader-text:focus {
	background-color: #eee;
	clip: auto !important;
	clip-path: none;
	color: #444;
	display: block;
	font-size: 1em;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
	/* Above WP toolbar. */
}
