/* ==========================================================
   QUAND UNE VIE VACILLE
   Style.css v2.0
   Auteur : F.M.
========================================================== */

/* ==========================================================
   VARIABLES
========================================================== */

:root{

    --color-primary:#d4a017;
    --color-secondary:#ffffff;
    --color-background:#050505;
    --color-card-background:#0b0b0b;
    --color-text:#ffffff;
    --color-text-muted:#c8c8c8;
    --color-border:#9c7600;
    --color-button:#d4a017;
    --color-button-hover:#f0bb23;
    --color-title:#d4a017;
    --color-menu-footer:#040404;
    --theme-page-bg:#050505;
    --theme-section-bg:#050505;
    --theme-section-alt-bg:#000000;
    --theme-surface-bg:#090909;
    --theme-card-bg:#0b0b0b;
    --theme-card-hover-bg:#151515;
    --theme-header-bg:#040404;
    --theme-mobile-menu-bg:#050505;
    --theme-footer-bg:#030303;
    --theme-modal-bg:#080808;
    --theme-modal-surface-bg:#11100d;
    --theme-overlay-color:#000000;
    --theme-overlay-rgb:0 0 0;
    --theme-hero-overlay-start-rgb:0 0 0;
    --theme-hero-overlay-end-rgb:0 0 0;
    --theme-text-primary:#ffffff;
    --theme-text-secondary:#d4d4d4;
    --theme-text-muted:#a0a0a0;
    --theme-heading-color:#ffffff;
    --heading-on-light:#202326;
    --heading-on-dark:#f1ede5;
    --text-on-light:#41464a;
    --text-on-dark:#d4d4d4;
    --theme-link-color:#d4a017;
    --theme-link-hover-color:#f0bb23;
    --theme-accent:#d4a017;
    --theme-accent-hover:#f0bb23;
    --theme-accent-text:#050505;
    --theme-divider-color:#d4a017;
    --theme-icon-accent:#d4a017;
    --theme-rating-color:#d4a017;
    --theme-button-primary-bg:#d4a017;
    --theme-button-primary-text:#050505;
    --theme-button-primary-border:#d4a017;
    --theme-button-primary-hover-bg:#f0bb23;
    --theme-button-primary-hover-text:#050505;
    --theme-button-secondary-bg:#0b0b0b;
    --theme-button-secondary-text:#ffffff;
    --theme-button-secondary-border:#9c7600;
    --theme-button-secondary-hover-bg:#f0bb23;
    --theme-button-secondary-hover-text:#050505;
    --theme-card-text:#ffffff;
    --theme-card-border:#9c7600;
    --theme-card-active-bg:#151515;
    --theme-card-shadow-color:#000000;
    --theme-card-shadow-rgb:0 0 0;
    --theme-hero-bg:#050505;
    --theme-presentation-bg:#050505;
    --theme-reviews-bg:#050505;
    --theme-review-card-bg:#0b0b0b;
    --theme-universe-bg:#050505;
    --theme-playlists-bg:#050505;
    --theme-playlist-card-bg:#0b0b0b;
    --theme-gallery-bg:#050505;
    --theme-excerpt-bg:#050505;
    --theme-kit-bg:#050505;
    --theme-faq-bg:#050505;
    --theme-contact-bg:#050505;
    --theme-form-bg:#0b0b0b;
    --theme-form-text:#ffffff;
    --theme-form-border:#9c7600;
    --theme-form-placeholder:#a0a0a0;
    --theme-form-focus:#d4a017;
    --theme-success:#198754;
    --theme-warning:#ffc107;
    --theme-danger:#dc3545;
    --theme-footer-text:#cfcfcf;
    --theme-footer-link:#d7d7d7;
    --theme-footer-link-hover:#d4a017;

    --gold:var(--color-primary);
    --gold-light:var(--color-button-hover);

    --bg:var(--color-background);
    --bg2:var(--color-background);

    --white:var(--color-secondary);

    --text:var(--color-text);
    --text-light:var(--color-text-muted);

    --card:var(--color-card-background);

    --border:var(--color-border);

    --button-bg:var(--color-button);
    --button-bg-hover:var(--color-button-hover);
    --title-color:var(--color-title);
    --menu-footer-bg:var(--color-menu-footer);

    --shadow:
        0 20px 60px rgba(0,0,0,.45);

    --transition:.35s ease;

}

/* ==========================================================
   RESET
========================================================== */

*,
*::before,
*::after{

    box-sizing:border-box;

}

html{

    width:100%;

    max-width:100%;

    scroll-behavior:smooth;

    scroll-padding-top:90px;

    overflow-x:hidden;

}

/* ==========================================================
   CONTACT
========================================================== */

.contact-modal .modal-content{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:18px;
    box-shadow:0 28px 80px rgba(0,0,0,.58);
    color:var(--text);
}

.contact-modal .modal-header{
    border-bottom:1px solid rgba(255,255,255,.08);
    padding:24px 28px;
}

.contact-modal .modal-title{
    margin:0;
    font-size:clamp(1.35rem,3vw,2rem);
}

.contact-modal .modal-body{
    padding:28px;
}

.contact-modal-grid{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);
    gap:28px;
    align-items:start;
}

.contact-page{
    padding-top:150px;
}

.contact-breadcrumb{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    margin-bottom:32px;
    color:var(--text-light);
    font-size:.9rem;
}

.contact-breadcrumb a{
    color:var(--gold);
    font-weight:700;
}

.contact-heading{
    max-width:820px;
    margin:0 auto 42px;
    text-align:center;
}

.contact-heading .section-title{
    margin-bottom:24px;
}

.contact-layout{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);
    gap:28px;
    align-items:start;
}

.contact-panel{
    height:100%;
}

.contact-form .form-label{
    color:#fff;
    font-weight:700;
}

.contact-hp{
    position:absolute;
    left:-9999px;
    width:1px;
    height:1px;
    overflow:hidden;
}

.contact-consent{
    display:flex;
    gap:12px;
    align-items:flex-start;
    color:var(--text);
    font-size:.95rem;
}

.contact-consent input{
    flex:0 0 auto;
    width:20px;
    height:20px;
    margin-top:5px;
    accent-color:var(--gold);
}

.contact-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:26px;
}

.contact-result{
    margin-bottom:20px;
    padding:14px 16px;
    border-radius:14px;
    border:1px solid var(--border);
    background:rgba(255,255,255,.06);
    color:#fff;
    font-weight:700;
}

.contact-result.is-success{
    border-color:rgba(46,204,113,.38);
    background:rgba(46,204,113,.12);
}

.contact-result.is-error{
    border-color:rgba(255,92,92,.42);
    background:rgba(255,92,92,.12);
}

.contact-details{
    display:grid;
    gap:18px;
}

.contact-details h2{
    margin:0;
}

.contact-details p{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin:0;
}

.contact-details i{
    color:var(--gold);
    font-size:1.15rem;
    margin-top:2px;
}

.contact-details a{
    color:#fff;
}

.contact-socials{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.contact-socials a{
    display:grid;
    width:46px;
    height:46px;
    place-items:center;
    border:1px solid var(--border);
    border-radius:14px;
    background:rgba(255,255,255,.05);
}

.contact-map iframe{
    display:block;
    width:100%;
    min-height:260px;
    border:0;
    border-radius:16px;
}

@media(max-width:991px){
    .contact-modal-grid,
    .contact-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:576px){
    .contact-modal .modal-header,
    .contact-modal .modal-body{
        padding:20px;
    }

    .contact-page{
        padding-top:125px;
    }

    .contact-actions{
        justify-content:stretch;
    }

    .contact-actions .btn{
        width:100%;
    }
}

body{

    margin:0;

    position:relative;

    width:100%;

    max-width:100%;

    background:var(--bg);

    color:var(--white);

    font-family:"Montserrat",sans-serif;

    font-size:16px;

    font-weight:400;

    line-height:1.8;

    letter-spacing:.2px;

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

    -moz-osx-font-smoothing:grayscale;

    overflow-x:clip;

}

.skip-link{
    position:fixed;
    left:16px;
    top:16px;
    z-index:9999;
    transform:translateY(-140%);
    padding:10px 14px;
    border-radius:999px;
    background:var(--button-bg);
    color:var(--theme-button-primary-text);
    font-weight:800;
    text-decoration:none;
    box-shadow:0 12px 30px rgba(0,0,0,.28);
}

.skip-link:focus{
    transform:translateY(0);
    outline:3px solid rgba(255,255,255,.75);
    outline-offset:3px;
}

@supports not (overflow:clip){

    body{

        overflow-x:hidden;

    }

}

body.mobile-menu-open{

    overflow:hidden;

}

img{

    max-width:100%;
    height:auto;
    display:block;

}

iframe,
video,
canvas,
svg{

    max-width:100%;

}

button,
.btn,
.nav-link,
.navbar-toggler,
.carousel-control-prev,
.carousel-control-next,
.btn-close{

    min-width:44px;
    min-height:44px;

}

.btn,
.nav-link,
.content-box,
.review-card,
.universe-card,
.playlist-card,
.community-card{

    overflow-wrap:anywhere;

}

a{

    text-decoration:none;

    transition:var(--transition);

}

p{

    color:var(--text);

    margin-bottom:1.4rem;

}

strong{

    color:#fff;

}

hr{

    border:none;

    border-top:1px solid var(--border);

}

/* ==========================================================
   SELECTION
========================================================== */

::selection{

    background:var(--button-bg);

    color:#000;

}

/* ==========================================================
   SCROLLBAR
========================================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:var(--menu-footer-bg);

}

::-webkit-scrollbar-thumb{

    background:var(--button-bg);

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--button-bg-hover);

}

/* ==========================================================
   CONTAINER
========================================================== */

.container{

    position:relative;

    z-index:2;

    min-width:0;

}

.row > *,
.navbar,
.section,
.hero,
.footer,
.modal,
.universe-card,
.review-card,
.playlist-player,
.community-card,
.gallery-category-card,
.playlist-player{

    min-width:0;

}

.navbar,
.section,
.hero,
.footer{

    max-width:100%;
    overflow-x:clip;

}

@supports not (overflow:clip){

    .navbar,
    .section,
    .hero,
    .footer{

        overflow-x:hidden;

    }

}

/* ==========================================================
   TITRES
========================================================== */

h1,
h2,
h3,
h4,
h5{

    color:var(--gold);

    font-family:"Cormorant Garamond",Georgia,serif;

    font-weight:600;

    line-height:1.2;

}

/* ==========================================================
   COOKIE NOTICE
========================================================== */

.cookie-notice{
    position:fixed;
    left:50%;
    bottom:24px;
    z-index:1080;
    width:min(920px,calc(100% - 32px));
    transform:translateX(-50%);
    padding:14px;
    color:var(--text);
    background:rgba(3,3,3,.96);
    border:1px solid rgba(198,161,91,.38);
    border-radius:8px;
    box-shadow:0 18px 50px rgba(0,0,0,.45);
    backdrop-filter:blur(12px);
}

.cookie-notice[hidden]{
    display:none !important;
}

.cookie-notice-inner{
    display:flex;
    align-items:center;
    gap:14px;
}

.cookie-notice-icon{
    display:grid;
    flex:0 0 38px;
    width:38px;
    height:38px;
    place-items:center;
    color:var(--gold-light);
    background:rgba(198,161,91,.12);
    border:1px solid rgba(198,161,91,.28);
    border-radius:8px;
    font-size:1.1rem;
}

.cookie-notice p{
    flex:1 1 auto;
    margin:0;
    color:var(--text);
    font-size:.94rem;
    line-height:1.45;
}

.cookie-notice a{
    color:var(--gold-light);
    font-weight:700;
    text-decoration:none;
}

.cookie-notice a:hover,
.cookie-notice a:focus{
    color:#fff;
}

.cookie-notice-button{
    flex:0 0 auto;
    padding:10px 16px;
    color:#070707;
    background:linear-gradient(135deg,var(--gold-light),var(--gold));
    border:0;
    border-radius:8px;
    font-weight:800;
    line-height:1;
    box-shadow:0 10px 24px rgba(198,161,91,.2);
    transition:transform var(--transition), box-shadow var(--transition);
}

.cookie-notice-button:hover,
.cookie-notice-button:focus{
    transform:translateY(-1px);
    box-shadow:0 14px 30px rgba(198,161,91,.28);
}

@media(max-width:640px){
    .cookie-notice{
        bottom:12px;
        width:calc(100% - 24px);
        padding:12px;
    }

    .cookie-notice-inner{
        align-items:flex-start;
        flex-wrap:wrap;
        gap:12px;
    }

    .cookie-notice-icon{
        width:34px;
        height:34px;
        flex-basis:34px;
    }

    .cookie-notice p{
        flex:1 1 calc(100% - 46px);
        font-size:.9rem;
    }

    .cookie-notice-button{
        width:100%;
        padding:12px 16px;
    }
}

.section{

    position:relative;

    padding:110px 0;

}

.reveal-ready .section{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .65s ease,transform .65s ease;
}

.reveal-ready .section.is-visible{
    opacity:1;
    transform:none;
}

@media(prefers-reduced-motion:reduce){
    *,
    *::before,
    *::after{
        scroll-behavior:auto!important;
        transition-duration:.01ms!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
    }

    .reveal-ready .section{
        opacity:1;
        transform:none;
    }
}

.section-dark{

    background:linear-gradient(
        180deg,
        var(--theme-section-bg),
        var(--theme-section-alt-bg)
    );

}

.section-title{

    text-align:center;

    margin-bottom:60px;

    font-family:"Cormorant Garamond",Georgia,serif;

    font-size: clamp(1.65rem, 3vw, 2.25rem);
    color:var(--title-color);

    font-weight:600;

    color:#fff;

    text-transform:uppercase;

    letter-spacing:.8px;

}

.section-title::after{

    content:"";

    display:block;

    width:90px;

    height:4px;

    background:var(--gold);

    margin:18px auto 0;

    border-radius:20px;

}

/* ==========================================================
   NAVBAR PREMIUM
========================================================== */

.navbar{

    background:var(--menu-footer-bg)!important;

    backdrop-filter:blur(18px);

    border-bottom:1px solid var(--border);

    padding:16px 0;

    transition:all .35s ease;
    
    opacity: 0.7;

    z-index:1080;

}

.navbar.scrolled{

    background:var(--menu-footer-bg)!important;

    box-shadow:
        0 12px 35px rgba(0,0,0,.35);

}

.navbar-brand{

    color:var(--title-color)!important;

    font-size:1.45rem;

    letter-spacing:1px;

    transition:.3s;

}

.navbar-brand i{

    color:var(--gold);

}

.navbar-brand:hover{

    color:var(--gold)!important;

}

.navbar-toggler{

    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--card);
    padding:8px 10px;

}

.navbar-toggler:focus{

    box-shadow:none;

}

.navbar-toggler-icon{

    width:1.5em;
    height:1.5em;

}

.nav-link{

    position:relative;

    color:#fff!important;

    font-weight:650;

    font-size:.96rem;

    margin-left:18px;

    padding:8px 0!important;

    transition:.30s;

}

.dropdown-menu{
    min-width:220px;
    padding:12px;
    border:1px solid rgba(198,161,91,.28);
    border-radius:14px;
    background:rgba(5,5,5,.97);
    box-shadow:0 24px 70px rgba(0,0,0,.42);
}

.dropdown-item{
    border-radius:10px;
    color:#f4f0e8;
    font-weight:650;
    padding:10px 12px;
}

.dropdown-item:hover,
.dropdown-item:focus{
    color:#050505;
    background:var(--gold);
}

.dropdown-toggle::after{
    border-top-color:var(--gold);
    margin-left:.45rem;
}

.nav-link:hover{

    color:var(--gold)!important;

}

.nav-link::after{

    content:"";

    position:absolute;

    left:0;

    bottom:0;

    width:0;

    height:2px;

    background:var(--gold);

    border-radius:20px;

    transition:.30s;

}

.nav-link:hover::after{

    width:100%;

}

.nav-link.active{

    color:var(--gold)!important;

}

.nav-link.active::after{

    width:100%;

}

/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:991px){

    .navbar{

        padding:10px 0;

    }

    .navbar > .container{

        align-items:center;

    }

    .navbar-brand{

        max-width:calc(100% - 64px);
        font-size:clamp(1rem,4vw,1.25rem);
        white-space:normal;
        line-height:1.25;

    }

    .navbar-collapse{

        position:absolute;
        top:calc(100% + 10px);
        left:12px;
        right:12px;
        z-index:1090;
        margin-top:0;

        max-height:calc(100vh - 92px);
        overflow-y:auto;
        padding:16px;

        border-radius:15px;

        background:rgba(0,0,0,.92);
        border:1px solid rgba(255,255,255,.12);
        box-shadow:0 22px 60px rgba(0,0,0,.55);

    }

    .nav-link{

        margin-left:0;

        width:100%;
        padding:12px 10px!important;

    }

    .dropdown-menu{
        position:static!important;
        transform:none!important;
        width:100%;
        margin:4px 0 8px;
    }

}

/* ==========================================================
   HERO
========================================================== */

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

    overflow:hidden;

    background:var(--theme-hero-bg);

    isolation:isolate;

}

.hero__media{
    position:absolute;
    inset:0;
    z-index:0;
    display:block;
    overflow:hidden;
    pointer-events:none;
}

.hero__media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:0;
}

.hero__media::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        rgb(var(--theme-hero-overlay-start-rgb) / .20),
        rgb(var(--theme-hero-overlay-end-rgb) / .50)
    );
}

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    pointer-events:none;

    z-index:1;

    background:

        radial-gradient(
            circle at 72% 28%,
            rgba(255,220,130,.22),
            transparent 28%
        ),

        radial-gradient(
            circle at 65% 40%,
            rgba(212,160,23,.12),
            transparent 45%
        ),

        linear-gradient(
            rgba(255,255,255,.02),
            rgba(0,0,0,.05)
        );

}

.hero::after{

    content:"";

    position:absolute;

    left:0;

    right:0;

    bottom:0;

    height:220px;

    pointer-events:none;

    background:
        linear-gradient(
            rgba(0,0,0,0),
            rgba(0,0,0,.70)
        );

    z-index:1;

}

.hero-content{

    position:relative;

    z-index:2;

}

.hero-content{

    position:relative;

    z-index:2;

    width:min(1000px,90%);

    margin-top:80px;

    transform:translateY(-45px);

}

.hero-white{

    font-family:"Montserrat",sans-serif;

    font-weight:900;

    color:#fff;

    text-transform:uppercase;

    font-size:clamp(2rem,7vw,4.25rem);

    line-height:.92;

    letter-spacing:0;

    margin:0;

    text-shadow:
        0 5px 20px rgba(0,0,0,.70);

}

.hero-gold{

    font-family:"Montserrat",sans-serif;

    font-weight:900;

    color:var(--gold);

    text-transform:uppercase;

    font-size:clamp(2.45rem,8.5vw,5rem);

    line-height:.90;

    letter-spacing:0;

    margin-top:-8px;

    text-shadow:
        0 6px 25px rgba(212,160,23,.25);

}

.hero-tagline{

    margin-top:28px;

    font-size:clamp(1rem,1.8vw,1.7rem);

    letter-spacing:1px;

}

.hero-amount{

    margin:18px 0;

    font-size:clamp(1.8rem,3vw,3rem);

    font-weight:900;

}

.hero-subtitle{

    width:min(760px,100%);

    margin:25px auto;

    font-size:clamp(.98rem,2.5vw,1.15rem);

    color:#e4e4e4;

    line-height:1.8;

}

/* ==========================================================
   HERO BUTTONS
========================================================== */

.hero-buttons{

    display:flex;

    justify-content:center;
    align-items:stretch;

    gap:20px;

    flex-wrap:wrap;

    margin-top:clamp(28px,6vw,55px);

}

/* ==========================================================
   BOUTONS
========================================================== */

.btn{

    transition:all .35s ease;

    font-weight:600;

    border-radius:50px;

}

.btn:focus{

    box-shadow:none;

}

.btn-amazon{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    margin-top:15px;

    padding:16px 40px;

    background:linear-gradient(
        135deg,
        var(--button-bg),
        var(--button-bg-hover)
    );

    color:var(--bg);

    font-size:1.05rem;

    font-weight:700;

    border:none;

    box-shadow:

        0 0 20px rgba(212,160,23,.30),

        0 15px 35px rgba(0,0,0,.35);

}

.btn-amazon:hover{

    color:var(--bg);

    transform:translateY(-4px);

    box-shadow:

        0 0 35px rgba(212,160,23,.45),

        0 20px 40px rgba(0,0,0,.45);

}

.btn-outline-light{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:14px 30px;

    border:1px solid rgba(255,255,255,.15);

    background:rgba(255,255,255,.03);

    color:#fff;

}

.btn-outline-light:hover{

    background:var(--button-bg-hover);

    border-color:var(--button-bg-hover);

    color:var(--bg);

    transform:translateY(-3px);

}

/* ==========================================================
   CONTENT BOX
========================================================== */

.content-box{

    position:relative;

    height:100%;

    background:var(--card);

    border:1px solid var(--border);

    border-radius:22px;

    padding:32px;

    overflow:hidden;

    backdrop-filter:blur(10px);

    transition:all .35s ease;

}

.content-box::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:100%;

    height:4px;

    background:linear-gradient(
        90deg,
        transparent,
        var(--gold),
        transparent
    );

    opacity:.25;

}

.content-box:hover{

    transform:translateY(-8px);

    border-color:var(--border);

    box-shadow:

        0 25px 55px rgba(0,0,0,.45),

        0 0 25px rgba(212,160,23,.10);

}

.content-box h3{

    color:var(--title-color);

    font-size:1.55rem;

    margin-bottom:25px;

}

.content-box h4{

    color:var(--title-color);

    font-size:1.25rem;

    margin-bottom:18px;

}

.content-box p{

    color:var(--text);

    font-size:1.08rem;

    line-height:2;

    margin-bottom:24px;

}

.content-box strong{

    color:var(--title-color);

}

.section-title,
.content-box h2,
.content-box h3,
.content-box h4,
.managed-content h2,
.managed-content h3,
.legal-card h2,
.media-kit-resource-card h4{
    color:var(--title-color);
}

/* ==========================================================
   ICÔNES
========================================================== */

.display-4{

    color:var(--gold);

    text-shadow:

        0 0 20px rgba(212,160,23,.25);

}

/* ==========================================================
   RESEAUX SOCIAUX
========================================================== */

.bi-facebook{

    color:var(--theme-icon-accent);

}

.bi-instagram{

    color:var(--theme-icon-accent);

}

.bi-youtube{

    color:var(--theme-icon-accent);

}

.bi-tiktok{

    color:var(--theme-icon-accent);

}

/* ==========================================================
   CARTES CLIQUABLES
========================================================== */

.social-card{

    display:block;

    color:inherit;

    text-decoration:none;

    transition:.35s;

}

.social-card:hover{

    transform:translateY(-6px);

}

.social-card:hover .content-box{

    border-color:var(--gold);

    box-shadow:
        0 20px 45px rgba(0,0,0,.35),
        0 0 20px rgba(212,160,23,.20);

}

.social-card:hover h4{

    color:var(--gold);

}

.social-card:hover i{

    transform:scale(1.15);

    transition:.35s;

}

/* ==========================================================
   ALERTES
========================================================== */

.alert-dark{

    background:rgba(255,255,255,.03);

    border:1px solid rgba(212,160,23,.25);

    border-radius:18px;

    backdrop-filter:blur(8px);

    padding:30px;

}

.alert-dark h5{

    color:var(--gold);

    margin-bottom:20px;

}

.alert-dark p{

    margin-bottom:15px;

}

/* ==========================================================
   EXTRAIT DU LIVRE
========================================================== */

.book-excerpt{

    position:relative;

    padding:35px 40px;

    border-left:4px solid var(--gold);

    background:rgba(255,255,255,.02);

    border-radius:0 18px 18px 0;

    margin:30px 0;

}

.book-excerpt::before{

    content:"“";

    position:absolute;

    left:15px;

    top:-15px;

    font-size:6rem;

    color:rgba(212,160,23,.12);

    font-family:Georgia,serif;

}

.book-excerpt p{

    font-size:1.08rem;

    font-style:italic;

    color:#e5e5e5;

    margin-bottom:20px;

}

.book-excerpt p:last-child{

    margin-bottom:0;

}

.excerpt-scroll{
    max-height:650px;
    overflow-y:auto;
    padding-right:10px;
    scrollbar-width:thin;
    scrollbar-color:var(--gold) rgba(255,255,255,.08);
}

.excerpt-scroll::-webkit-scrollbar{
    width:8px;
}

.excerpt-scroll::-webkit-scrollbar-track{
    background:rgba(255,255,255,.06);
    border-radius:10px;
}

.excerpt-scroll::-webkit-scrollbar-thumb{
    background:var(--gold);
    border-radius:10px;
}

.excerpt-scroll::-webkit-scrollbar-thumb:hover{
    background:var(--gold-light);
}

/* ==========================================================
   BADGES
========================================================== */

.badge{

    font-size:.95rem;

    padding:10px 18px;

    border-radius:50px;

    letter-spacing:.5px;

}

/* ==========================================================
   LIENS
========================================================== */

a{

    transition:.30s;

}

a:hover{

    color:var(--gold);

}

/* ==========================================================
   IMAGES
========================================================== */

img{

    border-radius:18px;

}

.book-cover{

    border-radius:20px;

    overflow:hidden;

    box-shadow:

        0 25px 60px rgba(0,0,0,.45),

        0 0 25px rgba(212,160,23,.12);

    transition:.35s;

}

.book-cover:hover{

    transform:scale(1.02);

}

/* ==========================================================
   ANIMATIONS
========================================================== */

.content-box,
.playlist-card,
.playlist-player,
.book-cover{

    animation:fadeUp .9s ease both;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(35px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

@keyframes pulseGold{

    0%{

        box-shadow:0 0 0 rgba(212,160,23,0);

    }

    50%{

        box-shadow:0 0 25px rgba(212,160,23,.25);

    }

    100%{

        box-shadow:0 0 0 rgba(212,160,23,0);

    }

}

.btn-amazon{

    animation:pulseGold 4s infinite;

}

/* ==========================================================
   FOOTER
========================================================== */

.footer{

    position:relative;

    background:var(--menu-footer-bg);

    border-top:1px solid var(--border);

    padding:70px 0 35px;

    text-align:center;

}

.footer::before{

    content:"";

    position:absolute;

    left:50%;

    top:0;

    width:160px;

    height:2px;

    transform:translateX(-50%);

    background:var(--gold);

}

.footer h5{

    color:var(--title-color);

    font-size:1.7rem;

    margin-bottom:12px;

}

.footer p{

    color:var(--text-light);

    margin-bottom:8px;

}

.footer a{

    color:#d4d4d4;

}

.footer a:hover{

    color:var(--gold);

}

.hero-buttons .btn{
    min-width:220px;
    min-height:58px;
    margin:0;
    padding:0 30px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    line-height:1;
    vertical-align:middle;
}

.hero-buttons .btn i{
    display:inline-grid;
    width:1.25em;
    height:1.25em;
    place-items:center;
    flex:0 0 auto;
    line-height:1;
}

.footer-links{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px 22px;
    margin:18px auto 0;
}

.footer-links a{
    color:#f2f2f2;
    font-weight:700;
}

.footer-links-secondary{
    margin-top:12px;
    font-size:.92rem;
}

.footer-links-secondary a{
    color:#bdbdbd;
    font-weight:600;
}

.site-footer-pro{
    padding:78px 0 28px;
    text-align:left;
    background:#030303;
}

.site-footer-pro::before{
    left:0;
    width:100%;
    height:1px;
    transform:none;
    background:linear-gradient(90deg,transparent,rgba(212,160,23,.8),transparent);
}

.footer-grid{
    display:grid;
    grid-template-columns:minmax(250px,1.25fr) repeat(4,minmax(135px,.65fr));
    gap:34px;
    align-items:start;
}

.footer-brand-block{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:22px;
    align-items:start;
}

.footer-cover{
    width:118px;
    aspect-ratio:3/4;
    object-fit:cover;
    border-radius:12px;
    box-shadow:0 18px 45px rgba(0,0,0,.45);
}

.footer-brand-block h2,
.footer-column h3{
    margin:0 0 14px;
    color:#fff;
    font-size:1.05rem;
    text-transform:uppercase;
    letter-spacing:1px;
}

.footer-brand-block h2{
    font-size:1.35rem;
    text-transform:none;
    letter-spacing:0;
}

.footer-text p{
    margin-bottom:16px;
    color:#cfcfcf;
    font-size:.98rem;
    line-height:1.75;
}

.footer-cta-group{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
    margin-top:18px;
}

.footer-cta-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:48px;
    padding:12px 18px;
    border:1px solid transparent;
    border-radius:999px;
    font-size:.95rem;
    font-weight:800;
    line-height:1.15;
    text-align:center;
}

.footer-cta-btn:hover{
    transform:translateY(-2px);
}

.footer-cta-btn-primary{
    color:#050505!important;
    background:var(--gold);
    border-color:var(--gold);
    box-shadow:0 16px 38px rgba(198,161,91,.22);
}

.footer-cta-btn-primary:hover{
    color:#050505!important;
    background:#f1c85a;
    border-color:#f1c85a;
}

.footer-cta-btn-secondary{
    color:var(--gold)!important;
    background:#030303;
    border-color:rgba(212,160,23,.74);
}

.footer-cta-btn-secondary:hover{
    color:#050505!important;
    background:var(--gold);
    border-color:var(--gold);
}

.footer-column{
    display:grid;
    gap:9px;
}

.footer-column a{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    color:#d7d7d7;
    font-weight:650;
}

.footer-column a:hover{
    color:var(--gold);
    transform:translateX(3px);
}

.footer-socials{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.footer-socials a{
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    background:rgba(255,255,255,.04);
    color:#fff;
    font-size:1.15rem;
}

.footer-socials a:hover{
    border-color:rgba(212,160,23,.55);
    background:rgba(212,160,23,.12);
    transform:translateY(-3px);
}

.footer-bottom{
    display:flex;
    flex-wrap:wrap;
    gap:10px 18px;
    align-items:center;
    justify-content:space-between;
    margin-top:46px;
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.08);
    color:#aaa;
    font-size:.88rem;
}

.footer-bottom .footer-socials{
    flex-basis:100%;
    justify-content:flex-start;
    margin-bottom:8px;
}

.footer-top-link{
    display:grid;
    width:42px;
    height:42px;
    place-items:center;
    border-radius:50%;
    background:var(--gold);
    color:#050505!important;
}

.managed-content h2,
.managed-content h3{
    margin:28px 0 14px;
}

.managed-content h2:first-child,
.managed-content h3:first-child{
    margin-top:0;
}

.managed-content ul,
.managed-content ol{
    display:grid;
    gap:10px;
    color:#d9d9d9;
    padding-left:1.35rem;
}

.managed-content li::marker{
    color:var(--gold);
}

.managed-content a{
    color:var(--gold);
    font-weight:800;
}

.media-kit-layout,
.legal-layout{
    display:grid;
    grid-template-columns:minmax(210px,.35fr) minmax(0,1fr);
    gap:28px;
    align-items:start;
}

.legal-summary{
    position:sticky;
    top:96px;
    display:grid;
    gap:10px;
    padding:22px;
    border:1px solid rgba(198,161,91,.22);
    border-radius:18px;
    background:rgba(255,255,255,.035);
}

.legal-summary h2{
    margin:0 0 8px;
    font-size:1.35rem;
}

.legal-summary a{
    display:block;
    padding:9px 0;
    color:#e8e1d4;
    border-bottom:1px solid rgba(255,255,255,.07);
}

.legal-content-grid{
    display:grid;
    gap:18px;
}

.legal-card{
    position:relative;
    padding:26px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:18px;
    background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
}

.legal-card i{
    color:var(--gold);
    font-size:1.55rem;
}

.legal-card h2{
    margin:12px 0;
    font-size:clamp(1.25rem,2.2vw,1.7rem);
}

.legal-card p:last-child,
.legal-card ul:last-child{
    margin-bottom:0;
}

.media-kit-downloads{
    display:grid;
    gap:28px;
}

.media-kit-group{
    display:grid;
    gap:16px;
}

.media-kit-group h3{
    margin:0;
    color:var(--gold);
    font-size:1.45rem;
}

.media-kit-resource-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.media-kit-resource-card{
    display:grid;
    gap:12px;
    padding:24px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:18px;
    background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
}

.media-kit-resource-card i{
    color:var(--gold);
    font-size:1.55rem;
}

.media-kit-resource-card h4{
    margin:0;
    font-size:1.25rem;
}

.media-kit-resource-card p{
    margin:0;
    color:#d9d3c8;
}

.gallery-filter-row{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-bottom:28px;
}

.gallery-filter{
    min-height:44px;
    padding:9px 18px;
    color:#fff;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.14);
    border-radius:999px;
    font-weight:800;
}

.gallery-filter.is-active,
.gallery-filter:hover{
    color:#050505;
    background:var(--gold);
    border-color:var(--gold);
}

.modern-gallery-grid .gallery-item{
    display:grid;
    text-align:left;
}

.modern-gallery-grid .gallery-item span{
    position:absolute;
    inset:auto 0 0;
    display:grid;
    gap:2px;
    padding:42px 16px 16px;
    background:linear-gradient(180deg,transparent,rgba(0,0,0,.86));
}

.modern-gallery-grid .gallery-item strong{
    color:#fff;
}

.modern-gallery-grid .gallery-item small{
    color:#d9d9d9;
}

.modern-gallery-grid .gallery-item em{
    display:-webkit-box;
    overflow:hidden;
    color:#cfcfcf;
    font-size:.86rem;
    font-style:normal;
    line-height:1.45;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.gallery-nav{
    position:absolute;
    top:50%;
    z-index:6;
    display:grid;
    width:58px;
    height:58px;
    place-items:center;
    color:var(--bg);
    background:var(--button-bg);
    border:0;
    border-radius:50%;
    transform:translateY(-50%);
    font-size:1.6rem;
}

.gallery-nav-prev{
    left:22px;
}

.gallery-nav-next{
    right:22px;
}

.playlist-grid-wide{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.playlist-modal .playlist-modal-dialog{
    width:min(1180px,calc(100vw - 32px));
    max-width:min(1180px,calc(100vw - 32px));
    margin:16px auto;
}

.playlist-modal .modal-content{
    color:var(--text);
    background:var(--card);
    border:1px solid var(--border);
    border-radius:22px;
    box-shadow:0 30px 90px rgba(0,0,0,.65);
    max-height:calc(100svh - 32px);
    overflow:visible;
    display:flex;
    flex-direction:column;
}

.playlist-modal .modal-header{
    flex:0 0 auto;
    align-items:flex-start;
    border-bottom:1px solid var(--border);
    padding:24px 28px 18px;
}

.playlist-modal .modal-title{
    margin:0;
}

.playlist-modal .modal-header p{
    margin:8px 0 0;
}

.playlist-modal .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:22px;
}

.playlist-frame-large{
    width:100%;
    max-width:none;
}

.playlist-watch-grid{
    display:grid;
    grid-template-columns:minmax(0,2fr) 360px;
    gap:24px;
    align-items:start;
}

.playlist-watch-main{
    width:100%;
}

.playlist-frame-large{
    width:100%;
    position:relative;
    z-index:1;
    overflow:visible;
    pointer-events:auto;
    border:1px solid var(--border);
    border-radius:18px;
    background:var(--theme-overlay-color);
}

.playlist-frame-large::before{
    content:"";
    display:block;
    width:100%;
    padding-top:56.25%;
    pointer-events:none;
}

.playlist-frame-large.is-vertical{
    width:min(420px,100%);
    max-width:min(420px,100%);
}

.playlist-frame-large.is-vertical::before{
    padding-top:177.7778%;
}

.playlist-frame-large iframe{
    position:absolute;
    inset:0;
    z-index:2;
    display:block;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    border:0;
    border-radius:18px;
    background:var(--theme-overlay-color);
    pointer-events:auto;
}

.playlist-fallback-link{
    position:absolute;
    inset:auto 1rem 1rem 1rem;
    z-index:1;
    color:#fff;
    text-align:center;
    text-decoration:underline;
}

.playlist-video-list{
    display:flex;
    flex-direction:column;
    gap:12px;
    max-height:75vh;
    overflow-y:auto;
}

.playlist-video-item{
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
    min-width:0;
    padding:10px;
    border-radius:14px;
    overflow:hidden;
}

.playlist-video-item:hover,
.playlist-video-item.is-active{
    border-color:var(--border);
    background:var(--card);
}

.playlist-video-item img{
    width:118px;
    aspect-ratio:16/9;
    object-fit:cover;
    border-radius:10px;
}

.playlist-video-item span{
    flex:1;
    min-width:0;
    overflow:hidden;
}

.playlist-video-item strong{
    display:block;
    color:var(--title-color);
    font-size:.92rem;
    line-height:1.35;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.playlist-video-item small{
    display:block;
    margin-top:4px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.playlist-video-item small,
.playlist-video-empty{
    color:var(--text-light);
    font-size:.85rem;
}

.playlist-video-empty{
    grid-column:1 / -1;
    padding:16px;
    border:1px dashed var(--border);
    border-radius:16px;
    background:var(--card);
}

@media(max-width:1180px){
    .footer-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .playlist-grid-wide{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:991px){

    .playlist-modal .playlist-modal-dialog{
        width:100%;
        max-width:100%;
        margin:0;
    }

    .playlist-modal .modal-content{
        min-height:100svh;
        max-height:100svh;
        border-radius:0;
    }

    .playlist-modal .modal-body{
        padding:16px;
    }

    .playlist-watch-grid{
        display:flex;
        flex-direction:column;
        gap:18px;
    }

    .playlist-watch-main{
        width:100%;
    }

    .playlist-frame-large{
        width:100%;
        max-width:100%;
    }

    .playlist-frame-large.is-vertical{
        width:min(360px,100%);
        max-width:100%;
        margin:auto;
    }

    .playlist-video-list{
        width:100%;
        max-height:320px;
        overflow-y:auto;
    }

    .playlist-video-item{
        display:flex;
        align-items:center;
        gap:12px;
    }

    .playlist-video-item img{
        width:120px;
        flex-shrink:0;
    }
}

@media (max-width:576px){

    .playlist-modal .modal-header{
        padding:16px;
    }

    .playlist-modal .modal-body{
        padding:12px;
    }

    .playlist-video-item{
        display:flex;
        flex-direction:row;
        align-items:center;
        gap:10px;
        padding:10px;
    }

    .playlist-video-item img{
        width:92px;
        height:52px;
        flex-shrink:0;
    }

    .playlist-video-item span{
        flex:1;
        min-width:0;
    }

    .playlist-video-item strong{
        font-size:.9rem;
    }

    .playlist-video-item small{
        font-size:.8rem;
    }
}

@media(max-width:991px) and (orientation:landscape){
    .playlist-modal .modal-header{
        padding:12px 18px;
    }

    .playlist-modal .modal-header p{
        display:none;
    }

    .playlist-frame-large{
        max-width:min(100%,500px);
    }

    .playlist-frame-large.is-vertical{
        width:min(220px,42svh);
        max-width:min(220px,42svh);
    }
}

.youtube-modal.modal{
    z-index:1500;
}

.youtube-modal + .modal-backdrop,
.modal-backdrop.show{
    background:var(--theme-overlay-color);
    opacity:.82;
    backdrop-filter:blur(4px);
}

.youtube-modal .youtube-modal__dialog{
    width:min(1500px,calc(100vw - 32px));
    max-width:min(1500px,calc(100vw - 32px));
    margin:16px auto;
}

.youtube-modal .youtube-modal__panel{
    max-height:calc(100dvh - 32px);
    overflow:hidden;
    color:var(--theme-text-primary);
    background:linear-gradient(145deg,var(--theme-modal-bg),var(--theme-modal-surface-bg) 58%,var(--theme-modal-bg));
    border:1px solid var(--theme-card-border);
    border-radius:24px;
    box-shadow:0 34px 110px rgb(var(--theme-card-shadow-rgb) / .78),0 0 0 1px color-mix(in srgb,var(--theme-text-primary) 3%,transparent) inset;
}

.youtube-modal__header{
    display:grid;
    grid-template-columns:minmax(0,1fr) 48px;
    gap:18px;
    align-items:start;
    padding:24px 28px 20px;
    border-bottom:1px solid rgba(212,160,23,.22);
    background:rgba(0,0,0,.34);
}

.youtube-modal__heading{
    min-width:0;
}

.youtube-modal__eyebrow{
    display:block;
    margin-bottom:6px;
    color:var(--gold);
    font-size:.74rem;
    font-weight:800;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.youtube-modal__title{
    margin:0;
    color:#fffaf0;
    font-family:"Cinzel",serif;
    font-size:clamp(1.7rem,3vw,2.85rem);
    line-height:1.06;
}

.youtube-modal__description{
    max-width:76ch;
    margin:10px 0 0;
    color:#d7d2c8;
    font-size:1rem;
    line-height:1.55;
}

.youtube-modal__close{
    display:grid;
    width:48px;
    height:48px;
    min-width:48px;
    place-items:center;
    border:1px solid rgba(212,160,23,.25);
    border-radius:14px;
    color:#fff;
    background:rgba(255,255,255,.06);
    transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

.youtube-modal__close:hover{
    border-color:rgba(212,160,23,.56);
    background:rgba(212,160,23,.16);
}

.youtube-modal__close:focus-visible,
.youtube-modal__item:focus-visible{
    outline:3px solid rgba(212,160,23,.92);
    outline-offset:3px;
}

.youtube-modal__body{
    min-height:0;
    overflow:hidden;
    padding:24px;
}

.youtube-modal__content{
    display:grid;
    grid-template-columns:minmax(0,1.85fr) minmax(320px,.95fr);
    gap:26px;
    min-height:0;
}

.youtube-modal__player-column{
    display:grid;
    gap:14px;
    min-width:0;
}

.youtube-modal__player{
    position:relative;
    display:grid;
    width:100%;
    place-items:center;
    overflow:hidden;
    border:1px solid rgba(212,160,23,.34);
    border-radius:22px;
    background:radial-gradient(circle at 50% 0,rgba(212,160,23,.10),transparent 45%),#030303;
    box-shadow:0 24px 70px rgba(0,0,0,.58);
}

.youtube-modal__player::before{
    content:"";
    display:block;
    width:100%;
    pointer-events:none;
}

.youtube-modal__player--landscape::before{
    padding-top:56.25%;
}

.youtube-modal__player--short{
    width:min(440px,100%);
    max-height:min(70dvh,720px);
    justify-self:center;
}

.youtube-modal__player--short::before{
    padding-top:177.7778%;
}

.youtube-modal__player iframe{
    position:absolute;
    inset:0;
    z-index:3;
    display:block;
    width:100%;
    height:100%;
    border:0;
    border-radius:21px;
    background:var(--theme-overlay-color);
}

.youtube-modal__loader,
.youtube-modal__error,
.youtube-modal__fallback-link{
    position:absolute;
    z-index:2;
}

.youtube-modal__loader{
    color:#d8d1c2;
    font-size:.95rem;
}

.youtube-modal__error{
    inset:auto 18px 56px;
    padding:10px 12px;
    border:1px solid rgba(212,160,23,.24);
    border-radius:12px;
    color:#f6efe1;
    background:rgba(0,0,0,.68);
    text-align:center;
}

.youtube-modal__fallback-link{
    inset:auto 18px 18px;
    color:var(--gold);
    font-size:.92rem;
    text-align:center;
    text-decoration:none;
}

.youtube-modal__fallback-link:hover{
    text-decoration:underline;
}

.youtube-modal__video-info{
    display:grid;
    gap:4px;
    min-width:0;
    padding:0 4px;
}

.youtube-modal__video-info strong{
    color:#fffaf0;
    font-size:1.04rem;
    line-height:1.35;
}

.youtube-modal__video-info span{
    color:#c9c2b5;
    font-size:.9rem;
}

.youtube-modal__playlist{
    min-width:0;
    min-height:0;
}

.youtube-modal__list{
    display:grid;
    align-content:start;
    gap:12px;
    max-height:min(68dvh,680px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:2px 4px 2px 2px;
    scrollbar-width:thin;
    scrollbar-color:rgba(212,160,23,.55) rgba(255,255,255,.08);
}

.youtube-modal__list::-webkit-scrollbar{
    width:8px;
}

.youtube-modal__list::-webkit-scrollbar-track{
    background:rgba(255,255,255,.06);
    border-radius:999px;
}

.youtube-modal__list::-webkit-scrollbar-thumb{
    background:rgba(212,160,23,.5);
    border-radius:999px;
}

.youtube-modal__item{
    display:grid;
    grid-template-columns:124px minmax(0,1fr);
    gap:12px;
    width:100%;
    min-height:86px;
    padding:10px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:16px;
    color:#f8f5ed;
    background:rgba(255,255,255,.045);
    text-align:left;
    transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.youtube-modal__item:hover{
    border-color:rgba(212,160,23,.34);
    background:rgba(255,255,255,.075);
    transform:translateY(-1px);
}

.youtube-modal__item--active{
    border-color:rgba(212,160,23,.78);
    background:linear-gradient(135deg,rgba(212,160,23,.16),rgba(255,255,255,.055));
    box-shadow:0 0 0 1px rgba(212,160,23,.14) inset,0 14px 36px rgba(0,0,0,.26);
}

.youtube-modal__item--active .youtube-modal__item-meta::after{
    content:" · En lecture";
    color:var(--gold);
}

.youtube-modal__item img{
    width:124px;
    height:70px;
    object-fit:cover;
    border-radius:12px;
    background:linear-gradient(135deg,rgba(212,160,23,.18),rgba(255,255,255,.04));
}

.youtube-modal__item.has-missing-thumb img{
    object-fit:cover;
}

.youtube-modal__item .youtube-modal__item-content{
    display:grid;
    align-content:center;
    gap:5px;
    min-width:0;
}

.youtube-modal__item .youtube-modal__item-title{
    display:-webkit-box;
    overflow:hidden;
    color:#fffaf0;
    font-size:.94rem;
    line-height:1.35;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}

.youtube-modal__item .youtube-modal__item-meta{
    overflow:hidden;
    color:#beb6a8;
    font-size:.82rem;
    white-space:nowrap;
    text-overflow:ellipsis;
}

.youtube-modal__empty{
    display:grid;
    gap:6px;
    padding:18px;
    border:1px dashed rgba(212,160,23,.28);
    border-radius:18px;
    color:#cfc7b8;
    background:rgba(255,255,255,.045);
}

.youtube-modal__empty strong{
    color:#fffaf0;
}

.youtube-modal__empty-link{
    color:var(--gold);
    text-decoration:none;
}

.youtube-modal__empty-link:hover{
    text-decoration:underline;
}

@media(max-width:1099px){
    .youtube-modal .youtube-modal__dialog{
        width:min(100vw - 24px,980px);
        max-width:min(100vw - 24px,980px);
        margin:12px auto;
    }

    .youtube-modal .youtube-modal__panel{
        max-height:calc(100dvh - 24px);
    }

    .youtube-modal__content{
        grid-template-columns:1fr;
    }

    .youtube-modal__list{
        max-height:330px;
    }
}

@media(max-width:767px){
    .youtube-modal .youtube-modal__dialog{
        width:100%;
        max-width:100%;
        height:100dvh;
        margin:0;
    }

    .youtube-modal .youtube-modal__panel{
        height:100dvh;
        max-height:100dvh;
        border-radius:0;
    }

    .youtube-modal__header{
        grid-template-columns:minmax(0,1fr) 46px;
        padding:14px 14px 12px;
    }

    .youtube-modal__description{
        font-size:.92rem;
    }

    .youtube-modal__body{
        overflow-y:auto;
        padding:14px;
    }

    .youtube-modal__content{
        gap:18px;
    }

    .youtube-modal__player{
        border-radius:17px;
    }

    .youtube-modal__player iframe{
        border-radius:16px;
    }

    .youtube-modal__player--short{
        width:min(68vw,330px);
        max-height:58dvh;
    }

    .youtube-modal__list{
        max-height:none;
        overflow:visible;
        padding:0;
    }

    .youtube-modal__item{
        grid-template-columns:104px minmax(0,1fr);
        min-height:76px;
        padding:9px;
    }

    .youtube-modal__item img{
        width:104px;
        height:58px;
    }
}

@media(max-width:390px){
    .youtube-modal__item{
        grid-template-columns:92px minmax(0,1fr);
    }

    .youtube-modal__item img{
        width:92px;
        height:52px;
    }
}

@media(prefers-reduced-motion:reduce){
    .youtube-modal *,
    .playlist-card,
    .playlist-card *{
        transition:none;
        animation:none;
    }
}

@media(max-width:768px){
    .footer-grid,
    .footer-brand-block{
        grid-template-columns:1fr;
    }

    .footer-bottom{
        align-items:flex-start;
        flex-direction:column;
    }

    .footer-cover{
        width:96px;
    }

    .media-kit-layout,
    .legal-layout{
        grid-template-columns:1fr;
    }

    .media-kit-resource-grid{
        grid-template-columns:1fr;
    }

    .legal-summary{
        position:static;
    }

    .gallery-nav{
        width:48px;
        height:48px;
    }
}

.internal-hero{
    position:relative;
    isolation:isolate;
    display:flex;
    min-height:400px;
    align-items:center;
    justify-content:center;
    color:#fff;
    background-repeat:no-repeat;
    background-position:var(--internal-hero-position,center);
    background-size:cover;
    overflow:hidden;
}

.internal-hero__overlay{
    position:absolute;
    inset:0;
    z-index:0;
    background:
        radial-gradient(circle at 50% 34%,rgba(212,160,23,.16),transparent 36%),
        linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.62),rgba(0,0,0,.82));
    pointer-events:none;
}

.internal-hero__content{
    position:relative;
    z-index:1;
    padding-top:98px;
    padding-bottom:56px;
    text-align:center;
}

.internal-hero .card-kicker{
    display:block;
    margin-bottom:14px;
}

.internal-hero .section-title{
    margin-bottom:22px;
    color:#fff;
    text-shadow:0 8px 28px rgba(0,0,0,.72);
}

.internal-hero .section-title::after{
    margin-top:18px;
}

.internal-hero .section-intro{
    max-width:760px;
    margin:0 auto;
    color:rgba(255,255,255,.88);
    text-shadow:0 4px 18px rgba(0,0,0,.68);
}

.breadcrumb-nav{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    justify-content:center;
    align-items:center;
    margin-top:24px;
    margin-bottom:0;
    color:#bfbfbf;
    font-size:.92rem;
}

.breadcrumb-nav a{
    color:var(--gold);
    font-weight:800;
}

.static-content{
    display:grid;
    gap:28px;
    max-width:1040px;
}

.static-content .content-box h2{
    margin-top:34px;
    margin-bottom:14px;
    color:#fff;
    font-size:clamp(1.25rem,2.5vw,1.65rem);
}

.static-content .content-box h2:first-child{
    margin-top:0;
}

.static-list{
    display:grid;
    gap:12px;
    margin:0 0 24px;
    padding-left:1.2rem;
    color:#d9d9d9;
}

.static-list li::marker{
    color:var(--gold);
}

.site-map-grid,
.press-kit-grid,
.faq-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.site-map-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.press-kit-grid div{
    display:grid;
    gap:8px;
    padding:22px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    background:rgba(255,255,255,.035);
}

.press-kit-grid i{
    color:var(--gold);
    font-size:1.7rem;
}

.press-kit-grid span{
    color:#d9d9d9;
}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media(max-width:992px){

    .section{

        padding:80px 0;

    }

    .internal-hero{
        min-height:340px;
        background-position:center top;
    }

    .internal-hero__content{
        padding-top:92px;
        padding-bottom:46px;
    }

    .hero-content{

        margin-top:60px;

    }

    .hero{

        background-position:center top;

    }

    .hero::before{

        background:

            radial-gradient(
                circle at 60% 22%,
                rgba(255,220,130,.18),
                transparent 30%
            ),

            radial-gradient(
                circle at top,
                rgba(212,160,23,.10),
                transparent 55%
            );

    }

}

@media(max-width:768px){

    .hero{

        min-height:100svh;
        background-position:center top;
        padding:96px 0 56px;

    }

    .hero-content{

        width:min(100% - 28px,720px);
        margin-top:20px;

    }

    .hero-white{

        font-size:clamp(1.85rem,11vw,2.75rem);

    }

    .hero-gold{

        font-size:clamp(2.3rem,13vw,3.35rem);

    }

    .hero-tagline{

        font-size:1rem;

        letter-spacing:1px;

    }

    .hero-amount{

        font-size:2.4rem;

    }

    .hero-subtitle{

        font-size:1rem;
        line-height:1.65;

    }

    .content-box{

        padding:28px;

    }

    .book-excerpt{

        padding:25px;

    }

    .hero-buttons{

        flex-direction:column;
        gap:12px;
        margin-top:30px;

    }

    .btn-amazon,
    .btn-outline-light{

        width:100%;

        justify-content:center;
        margin-top:0;

    }

}

@media(max-width:576px){

    .hero-white{

        font-size:clamp(1.75rem,10vw,2.3rem);

    }

    .hero-gold{

        font-size:clamp(2.15rem,12vw,2.9rem);

    }

}

#backToTop{

    position:fixed;

    right:25px;

    bottom:25px;

    width:55px;

    height:55px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:var(--gold);

    color:#000;

    font-size:1.4rem;

    text-decoration:none;

    box-shadow:

        0 10px 30px rgba(0,0,0,.35);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:1020;

}

#backToTop.show{

    opacity:1;

    visibility:visible;

}

#backToTop:hover{

    transform:translateY(-4px);

    color:#000;

}

/* ==========================================================
   ACCUEIL RECOMPOSE
========================================================== */

.scroll-indicator{
    position:absolute;
    left:50%;
    bottom:-90px;
    width:34px;
    height:54px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:30px;
    transform:translateX(-50%);
}

.scroll-indicator span{
    position:absolute;
    left:50%;
    top:10px;
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--gold);
    transform:translateX(-50%);
    animation:scrollDot 1.8s infinite;
}

@keyframes scrollDot{
    0%{opacity:0;transform:translate(-50%,0);}
    35%{opacity:1;}
    100%{opacity:0;transform:translate(-50%,22px);}
}

.section-intro{
    width:min(780px,100%);
    margin:0 auto 40px;
    text-align:center;
    color:#d9d9d9;
}

.card-kicker{
    display:inline-block;
    color:var(--gold);
    font-size:.78rem;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    margin-bottom:10px;
}

.reviews-overview{
    display:grid;
    grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
    gap:34px;
    align-items:start;
}

.reviews-score,
.review-card{
    height:100%;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.08);
    border-radius:24px;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
}

.reviews-score{
    position:sticky;
    top:110px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:42px 34px;
    text-align:center;
}

.rating-value{
    color:var(--gold);
    font-size:clamp(3rem,7vw,5rem);
    font-weight:900;
    line-height:1;
}

.rating-stars,
.review-stars{
    color:var(--gold);
    letter-spacing:2px;
}

.reviews-score p{
    margin:16px 0 18px;
}

.reviews-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.reviews-carousel{
    min-width:0;
}

.reviews-carousel-viewport{
    overflow:hidden;
    outline:none;
    transition:height .28s ease;
    touch-action:pan-y;
}

.reviews-carousel-track.is-paginated{
    display:flex;
    gap:0;
    align-items:flex-start;
    transition:transform .32s ease;
    will-change:transform;
}

.reviews-carousel-page{
    display:grid;
    flex:0 0 100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    align-items:stretch;
    min-width:100%;
}

.reviews-carousel-controls{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-top:22px;
}

.reviews-carousel-controls[hidden]{
    display:none;
}

.reviews-carousel-button{
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    color:var(--gold);
    background:transparent;
    border:1px solid rgba(212,175,55,.55);
    border-radius:50%;
    font-size:1.2rem;
    line-height:1;
    transition:background .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease;
}

.reviews-carousel-button:hover,
.reviews-carousel-button:focus-visible{
    color:#050505;
    background:var(--gold);
    border-color:var(--gold);
}

.reviews-carousel-button:disabled{
    opacity:.28;
    pointer-events:none;
}

.reviews-carousel-dots{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:44px;
}

.reviews-carousel-dot{
    width:9px;
    height:9px;
    padding:0;
    background:rgba(212,175,55,.32);
    border:0;
    border-radius:50%;
    transition:background .2s ease,transform .2s ease;
}

.reviews-carousel-dot.is-active,
.reviews-carousel-dot[aria-current="true"]{
    background:var(--gold);
    transform:scale(1.22);
}

.reviews-carousel-dot:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:4px;
}

.review-card{
    padding:26px;
}

.review-card-empty{
    grid-column:1 / -1;
}

.review-card header{
    display:flex;
    justify-content:space-between;
    gap:16px;
    margin-bottom:12px;
}

.review-author{
    color:#fff;
    font-weight:800;
}

.review-date{
    color:#a8a8a8;
    font-size:.9rem;
    white-space:nowrap;
}

.review-alert{
    width:min(920px,100%);
    margin:0 auto 28px;
}

.review-modal .modal-content{
    color:#fff;
    background:linear-gradient(180deg,#090909,#000);
    border:1px solid rgba(255,255,255,.12);
    border-radius:24px;
    box-shadow:0 30px 90px rgba(0,0,0,.65);
}

.review-modal .modal-header{
    padding:30px 30px 18px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.review-modal .modal-body{
    padding:28px 30px 32px;
}

.review-modal .btn-close{
    width:44px;
    height:44px;
    border-radius:50%;
    background-color:rgba(212,160,23,.9);
    opacity:1;
}

.review-modal-note{
    margin-bottom:24px;
    padding:14px 18px;
    border:1px solid rgba(212,160,23,.24);
    border-radius:16px;
    background:rgba(212,160,23,.08);
    color:#f1f1f1;
}

.review-form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.review-form .full{
    grid-column:1 / -1;
}

.review-form label{
    color:#fff;
    font-weight:700;
    margin-bottom:8px;
}

.review-form .form-control,
.review-form .form-select{
    color:#fff;
    background:rgba(0,0,0,.28);
    border:1px solid rgba(255,255,255,.14);
    border-radius:14px;
}

.review-form .form-control:focus,
.review-form .form-select:focus{
    border-color:var(--gold);
    box-shadow:0 0 0 .2rem rgba(212,160,23,.18);
}

.universe-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}

.universe-grid-single{
    grid-template-columns:minmax(0,760px);
    justify-content:center;
}

.universe-card,
.playlist-card,
.community-card{
    height:100%;
    background:var(--card);
    border:1px solid var(--border);
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
    transition:.35s;
}

.universe-card:hover,
.playlist-card:hover,
.community-card:hover{
    border-color:var(--border);
    transform:translateY(-6px);
}

.universe-card img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:0;
}

.universe-card div,
.playlist-player-heading{
    padding:28px;
}

.universe-card p,
.playlist-player-heading p{
    color:#d9d9d9;
}

.playlist-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);
    gap:28px;
    align-items:start;
}

.playlist-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin:0;
    padding:0;
    list-style:none;
}

.playlist-grid__item{
    min-width:0;
    display:flex;
}

.playlist-card{
    width:100%;
    overflow:hidden;
}

.playlist-card button{
    display:grid;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    color:var(--text);
    text-align:left;
    background:transparent;
}

.playlist-card.is-active{
    border-color:var(--border);
    box-shadow:0 22px 64px rgba(212,160,23,.12);
}

.playlist-thumb{
    position:relative;
    display:block;
    background:var(--card);
}

.playlist-thumb img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
}

.playlist-play{
    position:absolute;
    right:14px;
    bottom:14px;
    display:grid;
    width:48px;
    height:48px;
    place-items:center;
    border-radius:50%;
    background:var(--button-bg);
    color:#050505;
    font-size:1.5rem;
    box-shadow:0 12px 30px rgba(0,0,0,.35);
}

.playlist-card-body{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:14px;
    padding:20px;
}

.playlist-icon{
    display:grid;
    width:46px;
    height:46px;
    place-items:center;
    border-radius:16px;
    background:var(--card);
    color:var(--gold);
    font-size:1.35rem;
}

.playlist-text{
    display:grid;
    gap:6px;
}

.playlist-text strong{
    font-size:1.05rem;
}

.playlist-text span{
    color:#d9d9d9;
    font-size:.94rem;
    line-height:1.55;
}

.playlist-card-body .btn{
    grid-column:1 / -1;
    justify-self:start;
    margin-top:6px;
}

.playlist-player{
    position:sticky;
    top:110px;
    overflow:hidden;
}

.playlist-player-heading p{
    margin:10px 0 0;
}

.playlist-frame{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    background:var(--theme-overlay-color);
}

.playlist-frame iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}

.playlist-frame.playlist-frame-large{
    aspect-ratio:auto;
}

.playlist-frame.playlist-frame-large iframe{
    display:block;
    min-width:0;
    min-height:0;
    border-radius:18px;
}


.gallery-category-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}

.gallery-category-card{
    display:grid;
    gap:16px;
}

.gallery-category-card h3{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0;
    font-size:1.25rem;
}

.gallery-category-card h3 i{
    color:var(--gold);
}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.gallery-tabs{
    gap:12px;
    margin-bottom:34px;
}

.gallery-tabs .nav-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:48px;
    margin-left:0;
    padding:12px 20px!important;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    background:rgba(255,255,255,.04);
    color:#fff!important;
    font-weight:800;
}

.gallery-tabs .nav-link::after{
    display:none;
}

.gallery-tabs .nav-link.active,
.gallery-tabs .nav-link:hover,
.gallery-tabs .nav-link:focus-visible{
    background:var(--gold);
    border-color:var(--gold);
    color:#000!important;
}

.gallery-tab-content{
    min-height:220px;
}

.gallery-item{
    position:relative;
    padding:0;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    background:transparent;
    cursor:pointer;
    overflow:hidden;
}

.gallery-item picture,
.gallery-item img{
    width:100%;
    aspect-ratio:1/1;
}

.gallery-item picture{
    display:block;
}

.gallery-item img{
    height:100%;
    object-fit:cover;
    border-radius:0;
    transition:.35s;
}

.gallery-item:hover img,
.gallery-item:focus-visible img{
    transform:scale(1.04);
}

.gallery-item:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:4px;
}

.modal{
    z-index:1300;
}

.modal-backdrop{
    z-index:1290;
}

.gallery-modal.modal{
    z-index:1320;
}

.playlist-modal.modal{
    z-index:1500;
}

.gallery-modal .modal-content{
    color:var(--theme-text-primary);
    background:var(--theme-modal-bg);
}

.gallery-modal .modal-header{
    position:relative;
    z-index:3;
    min-height:72px;
    background:color-mix(in srgb,var(--theme-modal-bg) 86%,transparent);
}

.gallery-modal .btn-close{
    width:46px;
    height:46px;
    border-radius:50%;
    background-color:rgba(212,160,23,.9);
    opacity:1;
}

.gallery-modal .gallery-close{
    flex:0 0 auto;
    box-shadow:0 0 0 1px rgba(255,255,255,.25), 0 12px 30px rgba(0,0,0,.4);
}

.gallery-modal .modal-body{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    background:var(--theme-modal-bg);
}

.gallery-modal .carousel,
.gallery-modal .carousel-inner,
.gallery-modal .carousel-item{
    width:100%;
    height:100%;
}

.gallery-modal img{
    width:100%;
    height:calc(100vh - 72px);
    object-fit:contain;
    border-radius:0;
    cursor:zoom-in;
    transition:transform .25s ease;
}

.gallery-modal img.is-zoomed{
    transform:scale(1.45);
    cursor:zoom-out;
}

.gallery-modal .carousel-control-prev,
.gallery-modal .carousel-control-next{
    width:12%;
    min-width:64px;
}

.gallery-counter{
    position:absolute;
    right:24px;
    bottom:18px;
    z-index:6;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(0,0,0,.72);
    color:#fff;
    font-weight:800;
}

.community-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:18px;
}

.project-stats-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.project-stat-card{
    display:grid;
    min-height:180px;
    align-content:center;
    gap:12px;
    padding:24px;
    text-align:center;
    background:linear-gradient(180deg,color-mix(in srgb,var(--theme-card-bg) 92%,var(--theme-accent) 8%),var(--theme-card-bg));
    border:1px solid color-mix(in srgb,var(--theme-card-border) 32%,transparent);
    border-radius:18px;
    box-shadow:0 18px 55px rgb(var(--theme-card-shadow-rgb) / .22);
}

.project-stat-card:hover{
    border-color:color-mix(in srgb,var(--theme-accent) 48%,transparent);
    transform:translateY(-4px);
}

.project-stat-icon{
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    margin:0 auto;
    color:var(--theme-icon-accent);
    border:1px solid color-mix(in srgb,var(--theme-accent) 42%,transparent);
    border-radius:50%;
    background:color-mix(in srgb,var(--theme-accent) 16%,transparent);
}

.project-stat-card strong{
    color:var(--theme-heading-color);
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:clamp(2rem,4vw,3rem);
    font-weight:700;
    line-height:1;
}

.project-stat-card span:last-child{
    color:var(--theme-text-secondary);
    font-size:.92rem;
    font-weight:650;
}

.community-card{
    display:flex;
    min-height:210px;
    padding:24px;
    color:#fff;
    flex-direction:column;
    justify-content:space-between;
}

.community-platform{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--gold);
    font-size:1.15rem;
    font-weight:800;
}

.community-platform img{
    width:34px;
    height:34px;
    border-radius:10px;
}

.community-sync{
    color:#d9d9d9;
    font-size:.95rem;
}

.community-ready{
    color:#9f9f9f;
    font-size:.78rem;
    line-height:1.6;
}

.community-metrics{
    margin:0;
}

.community-metrics div{
    display:flex;
    justify-content:space-between;
    gap:14px;
}

.community-metrics dt,
.community-metrics dd{
    margin:0;
}

.community-metrics dt{
    color:#bfbfbf;
    font-weight:500;
}

.community-metrics dd{
    color:#fff;
    font-weight:800;
}

.media-preview{
    width:100%;
    max-height:340px;
    object-fit:cover;
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    background:var(--theme-surface-bg);
}

.media-drop-zone{
    display:flex;
    min-height:120px;
    align-items:center;
    justify-content:center;
    padding:22px;
    border:2px dashed rgba(212,160,23,.55);
    border-radius:16px;
    background:rgba(255,255,255,.035);
    color:#fff;
    text-align:center;
    cursor:pointer;
    transition:.25s ease;
}

.media-drop-zone.is-dragging,
.media-drop-zone:hover{
    border-color:var(--gold);
    background:rgba(212,160,23,.10);
}

.media-drop-zone input{
    display:none;
}

.media-progress{
    height:8px;
    background:rgba(255,255,255,.08);
}

.media-progress .progress-bar{
    background:var(--gold);
    transition:width .35s ease;
}

.media-table img{
    width:80px;
    height:80px;
    object-fit:cover;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.12);
}

.media-table td,
.media-table th{
    color:#fff;
    vertical-align:middle;
}

.table-responsive{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.table-responsive .table{
    min-width:720px;
}

.form-control,
.form-select,
textarea{
    max-width:100%;
}

.footer-grid{
    grid-template-columns:minmax(320px,1.45fr) repeat(4,minmax(135px,.65fr));
    gap:38px;
}

.footer-brand-block{
    grid-template-columns:minmax(0,1fr);
    gap:18px;
}

.footer-brand-block h2,
.footer-column h3{
    color:var(--gold);
}

.footer-text p{
    max-width:620px;
    margin-bottom:22px;
    color:#d8d8d8;
    font-size:1.06rem;
    font-weight:400;
    line-height:1.85;
}

.site-footer-pro .btn-amazon{
    min-height:48px;
    padding:12px 20px;
    font-size:.95rem;
    font-weight:700;
    box-shadow:0 16px 38px rgba(198,161,91,.22);
}

.footer-column a{
    font-weight:500;
}

.managed-content a{
    font-weight:600;
}

.media-kit-content-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.media-kit-card,
.media-kit-resource-card{
    min-height:100%;
    border-radius:16px;
}

.media-kit-resource-card{
    grid-template-rows:auto auto 1fr auto;
}

.project-stats-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.project-stat-card strong{
    font-family:"Cinzel","Cormorant Garamond",Georgia,serif;
    font-size:clamp(2rem,3.4vw,3.15rem);
    font-weight:600;
    letter-spacing:.02em;
}

.project-stat-card span:last-child{
    font-weight:500;
}

@media(max-width:768px){
    .media-kit-content-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:992px){
    .reviews-overview{
        grid-template-columns:1fr;
    }

    .reviews-carousel-page{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .universe-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .playlist-layout{
        grid-template-columns:1fr;
    }

    .playlist-player{
        position:relative;
        top:auto;
    }

    .gallery-category-grid,
    .gallery-grid,
    .project-stats-grid,
    .community-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .reviews-score{
        position:relative;
        top:auto;
    }
}

@media(max-width:768px){
    .section{
        padding:64px 0;
    }

    .internal-hero{
        min-height:310px;
        background-position:center top;
    }

    .internal-hero__content{
        padding-top:86px;
        padding-bottom:38px;
    }

    .internal-hero .section-title{
        margin-bottom:18px;
    }

    .internal-hero .section-intro{
        font-size:1rem;
        line-height:1.65;
    }

    .universe-grid,
    .playlist-grid,
    .gallery-category-grid,
    .gallery-grid,
    .project-stats-grid,
    .community-grid,
    .reviews-list,
    .reviews-carousel-page,
    .review-form{
        grid-template-columns:1fr;
    }

    .reviews-score,
    .review-card,
    .review-modal .modal-header,
    .review-modal .modal-body{
        padding:24px;
    }

    .gallery-modal .modal-header{
        min-height:60px;
        padding:8px 12px;
    }

    .gallery-modal img{
        height:calc(100svh - 60px);
    }

    .gallery-modal .carousel-control-prev,
    .gallery-modal .carousel-control-next{
        width:18%;
        min-width:50px;
    }

    .gallery-counter{
        right:12px;
        bottom:12px;
        font-size:.85rem;
    }

    .site-map-grid,
    .press-kit-grid,
    .faq-list{
        grid-template-columns:1fr;
    }
}

.gallery-zoom-toggle{
    position:absolute;
    right:24px;
    top:94px;
    z-index:6;
    display:grid;
    width:48px;
    height:48px;
    place-items:center;
    color:#050505;
    background:var(--gold);
    border:0;
    border-radius:50%;
    font-size:1.25rem;
}

@media(max-width:576px){
    .section{
        padding:54px 0;
    }

    .internal-hero{
        min-height:292px;
    }

    .internal-hero__content{
        padding-top:78px;
        padding-bottom:34px;
    }

    .internal-hero .card-kicker{
        margin-bottom:10px;
    }

    .section-title{
        margin-bottom:34px;
        font-size:clamp(1.45rem,8vw,1.9rem);
    }

    .content-box,
    .universe-card div,
    .playlist-card-body,
    .playlist-player-heading,
    .review-card,
    .reviews-score{
        padding:20px;
    }

    .reviews-overview,
    .reviews-list,
    .reviews-carousel-page,
    .universe-grid,
    .playlist-grid,
    .gallery-category-grid,
    .gallery-grid,
    .project-stats-grid,
    .community-grid{
        gap:16px;
    }

    .review-card header,
    .community-metrics div{
        flex-direction:column;
        align-items:flex-start;
        gap:6px;
    }

    .review-date{
        white-space:normal;
    }

    #backToTop{
        right:16px;
        bottom:16px;
        width:48px;
        height:48px;
    }
}

.section.contact-page{
    padding-top:150px;
}

@media(max-width:576px){
    .section.contact-page{
        padding-top:125px;
    }
}

/* ==========================================================
   RESPONSIVE STABILITY PATCHES
========================================================== */

.site-footer-pro .container,
.footer-grid,
.footer-brand-block,
.footer-column,
.footer-text,
.footer-bottom,
.media-kit-layout,
.media-kit-content-grid,
.media-kit-resource-grid,
.media-kit-card,
.media-kit-resource-card{
    min-width:0;
}

.site-footer-pro{
    overflow-x:hidden;
}

.footer-grid{
    grid-template-columns:minmax(280px,1.45fr) repeat(4,minmax(0,.7fr));
    grid-template-areas:"brand book media info legal";
    gap:38px;
    width:100%;
}

.footer-brand-block{
    grid-area:brand;
    width:100%;
}

.footer-column{
    width:100%;
    max-width:100%;
}

.footer-column-1{
    grid-area:book;
}

.footer-column-2{
    grid-area:media;
}

.footer-column-3{
    grid-area:info;
}

.footer-column-4{
    grid-area:legal;
}

.footer-text,
.footer-column,
.footer-column a,
.footer-bottom span,
.media-kit-card,
.media-kit-resource-card{
    overflow-wrap:anywhere;
    word-break:normal;
}

.footer-column a{
    width:auto;
    max-width:100%;
    min-height:32px;
    white-space:normal;
}

.media-kit-layout{
    width:100%;
}

.media-kit-content-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.media-kit-card,
.media-kit-resource-card{
    max-width:100%;
}

@media(max-width:991px){
    .footer-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-template-areas:
            "brand brand"
            "book media"
            "info legal";
        gap:28px;
    }

    .footer-brand-block{
        grid-column:1 / -1;
        grid-template-columns:minmax(0,1fr);
    }

    .footer-column{
        width:100%;
    }
}

@media(max-width:767px){
    .footer-grid{
        grid-template-columns:1fr;
        grid-template-areas:
            "brand"
            "book"
            "media"
            "info"
            "legal";
        gap:24px;
    }

    .media-kit-layout,
    .media-kit-content-grid,
    .media-kit-resource-grid{
        grid-template-columns:1fr;
    }

    .footer-bottom{
        width:100%;
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }

    .footer-socials,
    .footer-bottom .footer-socials{
        justify-content:flex-start;
    }

    .footer-cta-group{
        align-items:stretch;
    }

    .footer-cta-btn{
        width:100%;
    }

    .media-kit-layout,
    .media-kit-content-grid,
    .media-kit-resource-grid,
    .media-kit-downloads{
        display:grid;
    }

    .legal-summary{
        position:static;
    }
}

/* Phase 4N - verrou global pour les pages historiques et l'installation */
:root{
    --color-accent:#c7aa72;
    --scrollbar-thumb-color:#5d5d5d;
    --scrollbar-track-color:var(--color-background,#050505);
}

html,
body,
html body :is(*,.excerpt-scroll,.youtube-modal__list){
    scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);
    scrollbar-width:thin;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar,
html body :is(*,.excerpt-scroll,.youtube-modal__list)::-webkit-scrollbar{
    width:12px;
    height:12px;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
html body :is(*,.excerpt-scroll,.youtube-modal__list)::-webkit-scrollbar-track{
    background:var(--scrollbar-track-color);
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
html body :is(*,.excerpt-scroll,.youtube-modal__list)::-webkit-scrollbar-thumb{
    background:var(--scrollbar-thumb-color);
    border:3px solid var(--scrollbar-track-color);
    border-radius:999px;
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
html body :is(*,.excerpt-scroll,.youtube-modal__list)::-webkit-scrollbar-thumb:hover{
    background:var(--color-accent);
}

/* ==========================================================
   EDITORIAL CONTENT PAGES
========================================================== */

.editorial-list-section,
.editorial-detail-section{
    background:#050505;
    color:var(--theme-text-color);
}

.editorial-list-section{
    padding:clamp(108px,12vw,148px) 0 clamp(70px,8vw,108px);
}

.editorial-detail-section{
    padding:clamp(104px,12vw,144px) 0 clamp(76px,8vw,112px);
}

.editorial-list-heading,
.editorial-detail-heading{
    width:min(940px,100%);
    margin:0 auto clamp(30px,4vw,44px);
    text-align:center;
}

.editorial-list-heading h1,
.editorial-detail-heading h1{
    margin:0 0 16px;
    color:var(--theme-heading-color);
}

.editorial-list-heading p,
.editorial-detail-heading p{
    margin:0 auto;
    color:var(--theme-text-secondary);
    font-size:1.06rem;
    line-height:1.8;
}

.editorial-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
    align-items:stretch;
}

.editorial-card{
    display:grid;
    grid-template-rows:auto 1fr auto;
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(212,160,23,.26);
    border-radius:8px;
    background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
    box-shadow:0 24px 70px rgba(0,0,0,.34);
}

.editorial-card-media,
.editorial-card__media{
    display:block;
    aspect-ratio:16 / 10;
    background:#101010;
}

.editorial-card-media img,
.editorial-card__media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.editorial-card-body,
.editorial-card__body{
    display:grid;
    gap:12px;
    align-content:start;
    padding:24px;
}

.editorial-card-body h2,
.editorial-card__body h2,
.editorial-card__body h3{
    margin:0;
    color:var(--theme-heading-color);
    font-size:1.15rem;
}

.editorial-card-body a,
.editorial-card__body a{
    color:inherit;
    text-decoration:none;
}

.editorial-card-body p,
.editorial-card__body p{
    margin:0;
    color:var(--theme-text-secondary);
    line-height:1.75;
}

.editorial-card-actions{
    padding:0 24px 24px;
}

.editorial-detail,
.editorial-detail-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,380px);
    gap:32px;
    align-items:start;
}

.editorial-detail-main,
.editorial-detail-aside,
.editorial-detail__media,
.editorial-detail__body{
    min-width:0;
}

.editorial-detail-media,
.editorial-detail__media,
.editorial-player,
.editorial-related,
.editorial-nav{
    border:1px solid rgba(212,160,23,.26);
    border-radius:8px;
    background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
}

.editorial-detail-media,
.editorial-detail__media{
    overflow:hidden;
    margin-bottom:28px;
}

.editorial-detail-media img,
.editorial-detail__media img{
    display:block;
    width:100%;
    aspect-ratio:16 / 9;
    object-fit:cover;
}

.editorial-content,
.editorial-detail__body{
    color:var(--theme-text-secondary);
    font-size:1.04rem;
    line-height:1.86;
}

.editorial-content h2,
.editorial-content h3,
.editorial-detail__body h2,
.editorial-detail__body h3{
    color:var(--theme-heading-color);
}

.editorial-player,
.editorial-related,
.editorial-nav{
    padding:22px;
}

.editorial-player{
    display:grid;
    gap:14px;
    margin-bottom:22px;
}

.editorial-embed-frame{
    position:relative;
    display:grid;
    min-height:220px;
    place-items:center;
    overflow:hidden;
    border-radius:8px;
    background:#101010;
}

.editorial-embed-frame iframe{
    display:block;
    width:100%;
    aspect-ratio:16 / 9;
    border:0;
}

.editorial-related{
    display:grid;
    gap:12px;
}

.editorial-related h2,
.editorial-nav h2{
    margin:0;
    color:var(--theme-heading-color);
    font-size:1.05rem;
}

.editorial-related a,
.editorial-nav a{
    color:var(--theme-accent);
    text-decoration:none;
}

.editorial-nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:30px;
}

.editorial-empty{
    width:min(760px,100%);
    margin:0 auto;
    padding:30px;
    border:1px solid rgba(212,160,23,.26);
    border-radius:8px;
    color:var(--theme-text-secondary);
    text-align:center;
    background:rgba(255,255,255,.035);
}

@media(max-width:991px){
    .editorial-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .editorial-detail,
    .editorial-detail-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:640px){
    .editorial-grid,
    .editorial-nav{
        grid-template-columns:1fr;
    }

    .editorial-card-body,
    .editorial-card-actions,
    .editorial-player,
    .editorial-related,
    .editorial-nav{
        padding:20px;
    }
}

@media(prefers-reduced-motion:reduce){
    .reviews-carousel-viewport,
    .reviews-carousel-track.is-paginated,
    .reviews-carousel-button,
    .reviews-carousel-dot{
        transition:none;
    }
}

/* ==========================================================
   THEME ADMINISTRABLE GLOBAL
========================================================== */

html,
body{
    background:var(--theme-page-bg);
    color:var(--theme-text-primary);
}

body,
p,
.managed-content ul,
.managed-content ol{
    color:var(--theme-text-primary);
}

strong,
.section-title,
.content-box h2,
.content-box h3,
.content-box h4,
.review-author,
.playlist-text strong,
.playlist-video-item strong,
.modern-gallery-grid .gallery-item strong,
.footer-brand-block h2,
.footer-column h3{
    color:var(--heading-on-dark);
}

a,
.managed-content a{
    color:var(--theme-link-color);
}

a:hover,
.managed-content a:hover{
    color:var(--theme-link-hover-color);
}

::selection{
    background:var(--theme-accent);
    color:var(--theme-accent-text);
}

hr,
.footer-bottom,
.contact-modal .modal-header,
.review-modal .modal-header,
.playlist-modal .modal-header,
.gallery-modal .modal-header,
.youtube-modal__header{
    border-color:var(--theme-card-border);
}

.section{
    background:var(--theme-section-bg);
    color:var(--theme-text-primary);
}

.section-dark{
    background:linear-gradient(180deg,var(--theme-section-bg),var(--theme-section-alt-bg));
}

.section-title::after,
.footer::before{
    background:var(--theme-divider-color);
}

.section-intro,
.contact-breadcrumb,
.playlist-player-heading p,
.reviews-score p,
.review-date,
.footer p,
.footer-text p,
.footer-bottom,
.youtube-modal__description,
.youtube-modal__video-info span,
.youtube-modal__item .youtube-modal__item-meta,
.modern-gallery-grid .gallery-item small,
.modern-gallery-grid .gallery-item em{
    color:var(--theme-text-muted);
}

.hero{
    background-color:var(--theme-hero-bg);
    background-image:none;
}

.hero::before{
    background:
        radial-gradient(circle at 25% 30%,rgb(var(--theme-hero-overlay-start-rgb) / .10),transparent 38%),
        radial-gradient(circle at 78% 22%,rgb(var(--theme-hero-overlay-end-rgb) / .12),transparent 34%),
        linear-gradient(rgb(var(--theme-overlay-rgb) / .02),rgb(var(--theme-overlay-rgb) / .05));
}

.hero::after{
    background:linear-gradient(rgb(var(--theme-overlay-rgb) / 0),rgb(var(--theme-overlay-rgb) / .70));
}

.hero-white,
.hero-subtitle,
.btn-outline-light,
.playlist-fallback-link,
.youtube-modal__title,
.youtube-modal__video-info strong,
.youtube-modal__item .youtube-modal__item-title,
.youtube-modal__empty strong{
    color:var(--theme-text-primary);
}

.navbar{
    background:var(--theme-header-bg)!important;
    border-bottom-color:var(--theme-card-border);
}

.navbar.scrolled{
    background:var(--theme-header-bg)!important;
    box-shadow:0 12px 35px rgb(var(--theme-card-shadow-rgb) / .35);
}

.navbar-brand,
.nav-link{
    color:var(--theme-text-primary)!important;
}

.navbar-brand,
.navbar-brand i,
.navbar-brand:hover,
.nav-link:hover,
.nav-link.active,
.nav-link.active::after,
.nav-link::after,
.dropdown-toggle::after{
    color:var(--theme-accent)!important;
    border-top-color:var(--theme-accent);
}

.nav-link::after{
    background:var(--theme-accent);
}

.navbar-toggler,
.dropdown-menu,
.navbar-collapse{
    background:var(--theme-mobile-menu-bg);
    border-color:var(--theme-card-border);
    box-shadow:0 22px 60px rgb(var(--theme-card-shadow-rgb) / .45);
}

.dropdown-item{
    color:var(--theme-text-primary);
}

.dropdown-item:hover,
.dropdown-item:focus{
    color:var(--theme-accent-text);
    background:var(--theme-accent);
}

.content-box,
.review-card,
.reviews-score,
.universe-card,
.community-card,
.legal-card,
.legal-summary,
.media-kit-card,
.media-kit-resource-card,
.gallery-category-card,
.modern-gallery-grid .gallery-item,
.gallery-tab-content,
.alert-dark{
    color:var(--theme-card-text);
    background:var(--theme-card-bg);
    border-color:var(--theme-card-border);
    box-shadow:0 25px 55px rgb(var(--theme-card-shadow-rgb) / .35);
}

.content-box:hover,
.review-card:hover,
.universe-card:hover,
.gallery-category-card:hover,
.modern-gallery-grid .gallery-item:hover{
    background:var(--theme-card-hover-bg);
    border-color:var(--theme-accent);
    box-shadow:0 25px 55px rgb(var(--theme-card-shadow-rgb) / .45);
}

.content-box::before{
    background:linear-gradient(90deg,transparent,var(--theme-divider-color),transparent);
}

.display-4,
.card-kicker,
.content-box strong,
.social-card:hover h4,
.alert-dark h5,
.book-excerpt::before,
.managed-content li::marker,
.legal-card i,
.gallery-category-card h3 i,
.youtube-modal__eyebrow,
.youtube-modal__fallback-link,
.youtube-modal__empty-link{
    color:var(--theme-icon-accent);
}

.btn-amazon,
.btn-primary,
.site-footer-pro .btn-amazon,
#backToTop,
.footer-top-link,
.gallery-nav,
.playlist-card-body .btn,
.review-form .btn,
.review-modal .btn,
.contact-modal .btn,
.btn-outline-light:hover{
    color:var(--theme-button-primary-text)!important;
    background:var(--theme-button-primary-bg);
    border-color:var(--theme-button-primary-border);
}

.btn-amazon:hover,
.btn-primary:hover,
.site-footer-pro .btn-amazon:hover,
#backToTop:hover,
.footer-top-link:hover,
.gallery-nav:hover,
.playlist-card-body .btn:hover,
.review-form .btn:hover,
.review-modal .btn:hover,
.contact-modal .btn:hover{
    color:var(--theme-button-primary-hover-text)!important;
    background:var(--theme-button-primary-hover-bg);
    border-color:var(--theme-button-primary-hover-bg);
}

.btn-outline-light,
.admin-preview-secondary-button{
    color:var(--theme-button-secondary-text);
    background:var(--theme-button-secondary-bg);
    border-color:var(--theme-button-secondary-border);
}

.btn-outline-light:hover{
    color:var(--theme-button-secondary-hover-text);
    background:var(--theme-button-secondary-hover-bg);
    border-color:var(--theme-button-secondary-hover-bg);
}

#avis,
.reviews-section{
    background:var(--theme-reviews-bg);
}

.reviews-score,
.review-card{
    background:var(--theme-review-card-bg);
}

.review-stars{
    color:var(--theme-rating-color);
}

.review-modal .modal-content,
.contact-modal .modal-content,
.playlist-modal .modal-content,
.gallery-modal .modal-content{
    color:var(--theme-text-primary);
    background:var(--theme-modal-bg);
    border-color:var(--theme-card-border);
    box-shadow:0 30px 90px rgb(var(--theme-card-shadow-rgb) / .65);
}

.review-form .form-control,
.review-form .form-select,
.contact-modal .form-control,
.contact-modal .form-select,
.form-control,
.form-select{
    color:var(--theme-form-text);
    background:var(--theme-form-bg);
    border-color:var(--theme-form-border);
}

.review-form .form-control::placeholder,
.contact-modal .form-control::placeholder,
.form-control::placeholder{
    color:var(--theme-form-placeholder);
}

.review-form .form-control:focus,
.review-form .form-select:focus,
.contact-modal .form-control:focus,
.contact-modal .form-select:focus,
.form-control:focus,
.form-select:focus{
    color:var(--theme-form-text);
    background:var(--theme-form-bg);
    border-color:var(--theme-form-focus);
    box-shadow:0 0 0 .18rem color-mix(in srgb,var(--theme-form-focus) 30%,transparent);
}

#univers{
    background:var(--theme-universe-bg);
}

#playlists,
.playlist-section{
    background:var(--theme-playlists-bg);
}

.playlist-card{
    color:var(--theme-card-text);
    background:var(--theme-playlist-card-bg);
    border-color:var(--theme-card-border);
    box-shadow:0 20px 45px rgb(var(--theme-card-shadow-rgb) / .35);
}

.playlist-card:hover,
.playlist-card.is-active,
.playlist-video-item:hover,
.playlist-video-item.is-active{
    background:var(--theme-card-active-bg);
    border-color:var(--theme-accent);
}

.playlist-thumb,
.playlist-frame,
.playlist-frame-large,
.playlist-frame-large iframe,
.youtube-modal__player,
.youtube-modal__player iframe{
    background:var(--theme-overlay-color);
}

body:not(.qvv-v2) #galerie,
body:not(.qvv-v2) .gallery-section{
    background:var(--theme-gallery-bg);
}

#extrait{
    background:var(--excerpt-bg,var(--theme-excerpt-bg));
}

#extrait .section-title,
#extrait .section-subtitle{
    color:var(--excerpt-primary,var(--theme-accent));
}

.excerpt-box{
    display:grid;
    gap:24px;
    color:var(--excerpt-text,var(--theme-text-primary));
    background:color-mix(in srgb,var(--excerpt-bg,var(--theme-card-bg)) 86%,#ffffff 4%);
    border-color:var(--excerpt-border,var(--theme-card-border));
}

.excerpt-scroll{
    max-height:none;
    overflow:visible;
    padding-right:0;
}

.excerpt-scroll.is-scrollable{
    max-height:var(--excerpt-max-height,520px);
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-color:var(--excerpt-primary,var(--theme-accent)) rgba(255,255,255,.08);
}

.book-excerpt{
    color:var(--excerpt-text,var(--theme-text-primary));
}

.book-excerpt :where(p,li,blockquote){
    color:inherit;
}

.book-excerpt :where(h1,h2,h3,h4,h5,h6,strong,a){
    color:var(--excerpt-primary,var(--theme-accent));
}

.book-excerpt a{
    text-decoration:underline;
    text-underline-offset:3px;
}

.excerpt-action{
    position:relative;
    z-index:1;
    margin-top:0;
}

#extrait .btn-amazon{
    background:var(--excerpt-button,var(--theme-button-primary-bg));
    border-color:var(--excerpt-button,var(--theme-button-primary-border));
}

@media(max-width:767px){
    .excerpt-scroll.is-scrollable{
        max-height:min(var(--excerpt-max-height,520px),58vh);
    }

    .excerpt-box{
        gap:18px;
    }
}

.media-kit-page,
.section.media-kit-page{
    background:var(--theme-kit-bg);
}

.faq-page,
.section.faq-page{
    background:var(--theme-faq-bg);
}

.section.contact-page{
    background:var(--theme-contact-bg);
}

.footer,
.site-footer-pro{
    color:var(--theme-footer-text);
    background:var(--theme-footer-bg);
    border-top-color:var(--theme-card-border);
}

.site-footer-pro{
    background:#030303;
}

.site-footer-pro::before{
    background:linear-gradient(90deg,transparent,var(--theme-divider-color),transparent);
}

.footer a,
.footer-links a,
.footer-links-secondary a,
.footer-column a{
    color:var(--theme-footer-link);
}

.footer a:hover,
.footer-links a:hover,
.footer-links-secondary a:hover,
.footer-column a:hover{
    color:var(--theme-footer-link-hover);
}

.footer-socials a{
    color:var(--theme-footer-link);
    background:var(--theme-surface-bg);
    border-color:var(--theme-card-border);
}

.footer-socials a:hover{
    color:var(--theme-accent-text);
    background:var(--theme-accent);
    border-color:var(--theme-accent);
}

.modal-backdrop,
.modal-backdrop.show,
.youtube-modal + .modal-backdrop{
    background:var(--theme-overlay-color);
}

.youtube-modal .youtube-modal__panel{
    color:var(--theme-text-primary);
    background:linear-gradient(145deg,var(--theme-modal-bg),var(--theme-modal-surface-bg) 58%,var(--theme-modal-bg));
    border-color:var(--theme-card-border);
    box-shadow:0 34px 110px rgb(var(--theme-card-shadow-rgb) / .78);
}

.youtube-modal__header{
    background:color-mix(in srgb,var(--theme-modal-bg) 82%,transparent);
    border-bottom-color:var(--theme-card-border);
}

.youtube-modal__close,
.youtube-modal__item,
.youtube-modal__empty,
.youtube-modal__error{
    color:var(--theme-text-primary);
    background:var(--theme-card-bg);
    border-color:var(--theme-card-border);
}

.youtube-modal__close:hover,
.youtube-modal__item:hover,
.youtube-modal__item--active{
    background:var(--theme-card-active-bg);
    border-color:var(--theme-accent);
}

.youtube-modal__item--active{
    box-shadow:0 0 0 1px color-mix(in srgb,var(--theme-accent) 30%,transparent) inset;
}

.youtube-modal__item img{
    background:linear-gradient(135deg,color-mix(in srgb,var(--theme-accent) 18%,transparent),var(--theme-surface-bg));
}

.youtube-modal__list,
.excerpt-scroll{
    scrollbar-color:var(--theme-accent) color-mix(in srgb,var(--theme-text-primary) 8%,transparent);
}

.youtube-modal__list::-webkit-scrollbar-track,
.excerpt-scroll::-webkit-scrollbar-track{
    background:color-mix(in srgb,var(--theme-text-primary) 6%,transparent);
}

.youtube-modal__list::-webkit-scrollbar-thumb,
.excerpt-scroll::-webkit-scrollbar-thumb{
    background:var(--theme-accent);
}

.gallery-modal .carousel-control-prev,
.gallery-modal .carousel-control-next,
.gallery-zoom-toggle{
    color:var(--theme-button-secondary-text);
    background:var(--theme-button-secondary-bg);
    border-color:var(--theme-button-secondary-border);
}

.gallery-counter{
    color:var(--theme-text-primary);
    background:var(--theme-overlay-color);
}

.alert-success{
    border-color:var(--theme-success);
}

.alert-danger,
.review-alert{
    border-color:var(--theme-danger);
}

.alert-warning{
    border-color:var(--theme-warning);
}

/* ==========================================================
   CAGNOTTE SOLIDAIRE
========================================================== */

.home-support-callout{
    background:linear-gradient(180deg,#000 0%,#050505 100%);
    padding-top:42px;
    padding-bottom:78px;
}

.home-editorial-section,
.home-book-section{
    background:#050505;
}

.home-section-heading{
    width:min(920px,100%);
    margin:0 auto 38px;
    text-align:center;
}

.home-editorial-grid,
.home-chapter-grid,
.home-latest-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}

.home-editorial-card,
.home-chapter-card,
.home-latest-card,
.home-book-panel{
    border:1px solid rgba(212,160,23,.28);
    background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
    box-shadow:0 24px 70px rgba(0,0,0,.34);
}

.home-editorial-card,
.home-latest-card{
    display:grid;
    gap:14px;
    align-content:start;
    padding:26px;
    border-radius:8px;
}

.home-editorial-card h3,
.home-latest-card h3{
    margin:0;
    color:var(--theme-heading-color);
    font-size:1.15rem;
}

.home-editorial-card p,
.home-latest-card p{
    margin:0;
    color:var(--theme-text-secondary);
    line-height:1.75;
}

.home-chapter-card{
    overflow:hidden;
    border-radius:8px;
}

.home-chapter-media{
    aspect-ratio:16/10;
    background:#101010;
}

.home-chapter-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.home-chapter-body{
    display:grid;
    gap:14px;
    padding:22px;
}

.home-chapter-number{
    color:var(--theme-accent);
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.home-chapter-card h3,
.home-book-copy h2{
    margin:0;
    color:var(--theme-heading-color);
}

.home-chapter-card p,
.home-book-copy p{
    margin:0;
    color:var(--theme-text-secondary);
    line-height:1.75;
}

.home-badge-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.home-content-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    width:max-content;
    max-width:100%;
    padding:7px 11px;
    border:1px solid rgba(198,161,91,.34);
    border-radius:999px;
    color:var(--theme-accent);
    background:rgba(198,161,91,.08);
    font-size:.82rem;
    font-weight:700;
}

.home-book-panel{
    display:grid;
    grid-template-columns:minmax(180px,320px) minmax(0,1fr);
    align-items:center;
    gap:34px;
    padding:34px;
    border-radius:8px;
}

.home-book-cover img{
    display:block;
    width:100%;
    max-width:310px;
    height:auto;
    margin:auto;
    border-radius:6px;
    box-shadow:0 30px 80px rgba(0,0,0,.48);
}

.home-book-copy{
    display:grid;
    gap:18px;
}

.home-book-tagline{
    color:var(--theme-accent) !important;
    font-weight:700;
}

.home-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:8px;
}

.home-support-grid-three{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.home-support-panel,
.home-support-card,
.support-campaign-card,
.support-share-panel,
.support-use-card,
.support-transparency,
.support-final,
.support-timeline-card{
    border:1px solid rgba(212,160,23,.28);
    background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
    box-shadow:0 24px 70px rgba(0,0,0,.34);
    backdrop-filter:blur(10px);
}

.home-support-panel{
    display:grid;
    gap:28px;
    width:min(100%,1180px);
    margin:0 auto;
    padding:36px;
    border-radius:18px;
}

.home-support-header{
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.home-support-panel h2,
.support-campaign-card h2,
.support-share-panel h2,
.support-transparency h2,
.support-final h2{
    margin:0 0 14px;
    color:var(--theme-heading-color);
}

.home-support-panel h3{
    margin:0 0 12px;
    color:var(--theme-heading-color);
    font-size:1.25rem;
}

.home-support-panel p,
.support-campaign-card p,
.support-share-panel p,
.support-use-card p,
.support-transparency p,
.support-final p,
.support-timeline-card p{
    color:var(--theme-text-secondary);
}

.home-support-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    align-items:stretch;
}

.home-support-card{
    display:grid;
    grid-template-rows:auto auto 1fr auto;
    gap:12px;
    min-width:0;
    padding:26px;
    border-radius:18px;
}

.home-support-card p{
    margin:0;
}

.home-support-card .btn{
    width:100%;
    min-height:52px;
    justify-content:center;
}

.home-support-icon{
    display:grid;
    width:52px;
    height:52px;
    place-items:center;
    color:var(--theme-accent);
    border:1px solid rgba(212,160,23,.36);
    border-radius:14px;
    background:rgba(212,160,23,.10);
    font-size:1.45rem;
}

.home-support-note{
    max-width:820px;
    margin:0 auto;
    text-align:center;
    font-size:.95rem;
}

.home-support-actions,
.support-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
}

.support-layout{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
    gap:28px;
    align-items:start;
}

.support-campaign-card,
.support-share-panel,
.support-transparency,
.support-final{
    padding:32px;
    border-radius:18px;
}

.support-goal{
    display:inline-grid;
    gap:4px;
    margin:12px 0 24px;
    padding:16px 20px;
    border:1px solid rgba(212,160,23,.38);
    border-radius:14px;
    background:rgba(0,0,0,.28);
}

.support-goal span{
    color:var(--theme-text-muted);
    font-size:.82rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.support-goal strong{
    color:var(--theme-accent);
    font-size:clamp(1.75rem,4vw,2.7rem);
    line-height:1;
}

.support-platform-note,
.support-prudence{
    margin:22px 0 0;
    font-size:.95rem;
}

.support-share-grid{
    display:grid;
    gap:10px;
}

.support-share-grid a,
.support-share-grid button{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    min-height:48px;
    padding:12px 14px;
    color:var(--theme-text-primary);
    border:1px solid rgba(255,255,255,.12);
    border-radius:12px;
    background:rgba(0,0,0,.22);
    text-align:left;
}

.support-share-grid a:hover,
.support-share-grid button:hover,
.support-share-grid a:focus-visible,
.support-share-grid button:focus-visible{
    color:var(--theme-accent-text);
    background:var(--theme-accent);
    border-color:var(--theme-accent);
}

.support-share-grid i{
    width:22px;
    color:inherit;
}

.support-copy-status{
    min-height:24px;
    margin:14px 0 0;
    color:var(--theme-accent);
    font-weight:700;
}

.support-use-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.support-use-card{
    padding:24px;
    border-radius:18px;
}

.support-use-card i{
    display:grid;
    width:48px;
    height:48px;
    place-items:center;
    margin-bottom:18px;
    color:var(--theme-accent);
    border:1px solid rgba(212,160,23,.36);
    border-radius:14px;
    background:rgba(212,160,23,.10);
    font-size:1.35rem;
}

.support-use-card h3{
    margin:0 0 12px;
    color:var(--theme-heading-color);
    font-size:1.05rem;
}

.support-prudence{
    max-width:820px;
    margin:28px auto 0;
    text-align:center;
}

.support-empty{
    max-width:820px;
    margin:0 auto;
    text-align:center;
}

.support-timeline{
    position:relative;
    display:grid;
    gap:22px;
    max-width:920px;
    margin:0 auto;
}

.support-timeline::before{
    content:"";
    position:absolute;
    top:8px;
    bottom:8px;
    left:15px;
    width:2px;
    background:linear-gradient(180deg,transparent,var(--theme-accent),transparent);
}

.support-timeline-item{
    position:relative;
    display:grid;
    grid-template-columns:32px minmax(0,1fr);
    gap:20px;
}

.support-timeline-marker{
    position:relative;
    z-index:1;
    width:32px;
    height:32px;
    border:2px solid var(--theme-accent);
    border-radius:50%;
    background:var(--theme-page-bg);
    box-shadow:0 0 0 6px rgba(212,160,23,.12);
}

.support-timeline-card{
    padding:24px;
    border-radius:18px;
}

.support-timeline-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    margin-bottom:10px;
    color:var(--theme-accent);
    font-size:.86rem;
    font-weight:700;
}

.support-timeline-meta span{
    padding:4px 9px;
    border:1px solid rgba(212,160,23,.34);
    border-radius:999px;
    color:var(--theme-text-primary);
    background:rgba(212,160,23,.08);
}

.support-timeline-card h3{
    margin:0 0 12px;
    color:var(--theme-heading-color);
}

.support-timeline-card img{
    display:block;
    width:100%;
    max-height:360px;
    object-fit:cover;
    margin:8px 0 16px;
}

.support-timeline-links{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
    margin-top:16px;
}

.support-amount,
.support-timeline-links a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:38px;
    padding:8px 12px;
    border:1px solid rgba(212,160,23,.34);
    border-radius:999px;
    background:rgba(212,160,23,.08);
    color:var(--theme-text-primary);
    font-weight:700;
}

.support-final{
    max-width:920px;
    margin:0 auto;
    text-align:center;
}

.support-final .support-actions{
    justify-content:center;
}

@media(max-width:991px){
    .home-support-panel,
    .support-layout,
    .support-use-grid{
        grid-template-columns:1fr;
    }

    .home-support-grid{
        grid-template-columns:1fr;
    }

    .home-editorial-grid,
    .home-chapter-grid,
    .home-latest-grid,
    .home-support-grid-three{
        grid-template-columns:1fr;
    }

    .home-book-panel{
        grid-template-columns:1fr;
        padding:24px;
    }

    .home-actions .btn{
        width:100%;
        justify-content:center;
    }
}

@media(max-width:576px){
    .home-support-panel,
    .home-support-card,
    .support-campaign-card,
    .support-share-panel,
    .support-transparency,
    .support-final,
    .support-timeline-card,
    .support-use-card{
        padding:22px;
    }

    .support-actions .btn,
    .home-support-actions .btn{
        width:100%;
        justify-content:center;
    }

    .support-timeline-item{
        gap:14px;
    }

    .home-support-callout{
        padding-top:30px;
        padding-bottom:58px;
    }
}

.support-page-hero{
    position:relative;
    display:grid;
    min-height:clamp(360px,52vh,560px);
    align-items:end;
    overflow:hidden;
    color:#fff;
    background:#000 center/cover no-repeat;
}

.support-page-hero__overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg,rgba(0,0,0,.58),rgba(0,0,0,.86)),
        radial-gradient(circle at 50% 0%,rgba(212,160,23,.16),transparent 46%);
}

.support-page-hero__content{
    position:relative;
    z-index:1;
    width:min(100%,1120px);
    padding-top:112px;
    padding-bottom:36px;
    text-align:center;
}

.support-page-hero .section-title{
    margin-inline:auto;
    color:#fff;
}

.support-page-hero .section-intro{
    max-width:900px;
}

.support-hero-note,
.support-page-note{
    max-width:860px;
    margin:18px auto 0;
    color:rgba(255,255,255,.72);
    font-size:.98rem;
}

.support-page-hero .breadcrumb-nav{
    justify-content:center;
    margin-top:28px;
}

.support-preview-badge{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    margin-bottom:14px;
    padding:5px 12px;
    color:#151515;
    background:var(--theme-accent);
    border-radius:999px;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.support-page-section{
    background:#000;
}

.support-page-section.section-dark{
    background:#050505;
}

.support-main-section{
    padding-top:34px;
    padding-bottom:86px;
}

.support-page-panel,
.support-choice-card,
.support-share-panel-wide{
    border:1px solid rgba(212,160,23,.30);
    background:linear-gradient(145deg,rgba(255,255,255,.062),rgba(255,255,255,.018));
    box-shadow:0 28px 80px rgba(0,0,0,.42);
}

.support-page-panel{
    width:min(100%,1240px);
    margin:0 auto;
    padding:clamp(28px,4vw,48px);
    border-radius:18px;
}

.support-page-heading{
    max-width:940px;
    margin:0 auto 34px;
    text-align:center;
}

.support-page-heading h2{
    margin:0 0 14px;
    color:var(--theme-heading-color);
}

.support-page-heading p{
    margin:0;
    color:var(--theme-text-secondary);
    font-size:1.05rem;
}

.support-card-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    align-items:stretch;
}

.support-choice-card{
    display:grid;
    grid-template-rows:auto auto 1fr auto;
    gap:14px;
    min-width:0;
    padding:clamp(24px,3vw,34px);
    border-radius:18px;
}

.support-choice-card img,
.support-use-card img{
    display:block;
    width:100%;
    aspect-ratio:16 / 9;
    object-fit:cover;
    border-radius:10px;
}

.support-choice-card h3{
    margin:0;
    color:var(--theme-heading-color);
    font-size:1.25rem;
}

.support-choice-card p{
    margin:0;
    color:var(--theme-text-secondary);
}

.support-choice-card .btn{
    width:100%;
    min-height:54px;
    justify-content:center;
    align-self:end;
}

.support-choice-icon{
    display:grid;
    width:54px;
    height:54px;
    place-items:center;
    color:var(--theme-accent);
    border:1px solid rgba(212,160,23,.40);
    border-radius:14px;
    background:rgba(212,160,23,.11);
    font-size:1.5rem;
}

.support-share-panel-wide{
    width:min(100%,940px);
    margin:0 auto;
    padding:clamp(26px,4vw,42px);
    border-radius:18px;
}

.support-share-panel-wide .support-share-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

@media(max-width:991px){
    .support-card-grid,
    .support-share-panel-wide .support-share-grid{
        grid-template-columns:1fr;
    }

    .support-main-section{
        padding-top:26px;
    }
}

@media(max-width:576px){
    .support-page-hero{
        min-height:420px;
    }

    .support-page-hero__content{
        padding-top:96px;
        padding-bottom:28px;
    }

    .support-page-panel,
    .support-choice-card,
    .support-share-panel-wide{
        padding:22px;
    }
}

