:root {
    --dll-vn:    #2d3b35;
    --dll-vnd:   #1a2620;
    --dll-do:    #b8952a;
    --dll-dol:   #d4b060;
    --dll-bv:    #7ab3a8;
    --dll-iv:    #f5f0e8;
    --dll-ivd:   #ece6d8;
    --dll-wh:    #ffffff;
    --dll-gr:    #4a4a4a;
    --dll-gl:    #686868;
    --dll-ok:    #27ae60;
    --dll-warn:  #e67e22;
    --dll-serif: 'Playfair Display', Georgia, serif;
    --dll-sans:  'Source Sans 3', system-ui, sans-serif;

    /* Alias utilitaires */
    --hh:          64px;
    --sh:          0 4px 18px rgba(0,0,0,.08);
    --sh2:         0 10px 30px rgba(0,0,0,.14);
    --do-lt:       #d4b060;

    /* Alias longs */
    --dll-vn-deep: #1a2620;
    --dll-do-light: #d4b060;
    --dll-iv-deep: #ece6d8;
}

/* ============================================================
   DLL THEME  dll-main.css
   Design System DLL v2.2  CSS principal
   Variables dfinies dans style.css
   ============================================================ */

/*  RESET & BASE  */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--dll-sans);
    background: var(--dll-iv);
    color: var(--dll-gr);
    line-height: 1.65;
    font-size: 16px;
}
a { color: var(--dll-do); text-decoration: none; }
a:hover { color: var(--dll-dol); }
img { max-width: 100%; height: auto; display: block; }

/*  HEADER  */
.dll-site-header {
    background: var(--dll-vnd);
    position: sticky; top: 0; z-index: 200;
    border-bottom: 1px solid rgba(184,149,42,.15);
}
.dll-hdr {
    max-width: 1240px; margin: 0 auto; padding: 0 24px;
    height: 58px; display: flex; align-items: center; gap: 20px;
}
.dll-hdr-logo { flex-shrink: 0; display: flex; align-items: center; }
.dll-logo-img { height: 32px; width: auto; }
.dll-hdr-nav { flex: 1; overflow-x: auto; }
.dll-nav-list {
    list-style: none; display: flex; gap: 0; margin: 0; padding: 0;
}
.dll-nav-list li a {
    font-size: .68rem; font-weight: 600; letter-spacing: .08em;
    text-transform: uppercase; color: rgba(245,240,232,.45);
    padding: 0 14px; height: 58px; display: flex; align-items: center;
    border-bottom: 2px solid transparent; white-space: nowrap; transition: .15s;
}
.dll-nav-list li a:hover { color: rgba(245,240,232,.8); }
.dll-nav-list li.current-menu-item a,
.dll-nav-list li.current-page-ancestor a { color: var(--dll-do); border-bottom-color: var(--dll-do); }
.dll-hdr-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.dll-cart-btn {
    background: none; border: none; color: rgba(245,240,232,.5);
    cursor: pointer; display: flex; align-items: center; gap: 6px;
    font-family: var(--dll-sans); font-size: .7rem; font-weight: 600;
    letter-spacing: .06em; text-transform: uppercase;
    padding: 6px 10px; position: relative; transition: .15s;
}
.dll-cart-btn:hover { color: var(--dll-do); }
.dll-cart-badge {
    background: var(--dll-do); color: var(--dll-vnd);
    width: 16px; height: 16px; border-radius: 50%;
    font-size: .55rem; font-weight: 700;
    display: none; align-items: center; justify-content: center;
    position: absolute; top: -2px; right: -4px;
}
.dll-cart-badge.on { display: flex; }
.dll-account-btn { color: rgba(245,240,232,.45); transition: .15s; }
.dll-account-btn:hover { color: var(--dll-do); }
.dll-menu-toggle {
    display: none; background: none; border: none;
    color: rgba(245,240,232,.55); cursor: pointer; padding: 4px;
}

/*  MOBILE MENU  */
.dll-mobile-menu {
    background: var(--dll-vnd); border-top: 1px solid rgba(184,149,42,.1);
    padding: 12px 0;
}
.dll-mobile-menu .dll-mobile-nav-list {
    list-style: none; margin: 0; padding: 0;
}
.dll-mobile-menu .dll-mobile-nav-list li a {
    display: block; padding: 10px 24px; font-size: .82rem;
    color: rgba(245,240,232,.65); border-bottom: 1px solid rgba(245,240,232,.05);
}

/*  BREADCRUMB  */
.dll-breadcrumb { background: var(--dll-vn); padding: 9px 0; }
.dll-bc-inner {
    max-width: 1240px; margin: 0 auto; padding: 0 24px;
    display: flex; align-items: center; gap: 7px;
    font-size: .67rem; color: rgba(245,240,232,.38); flex-wrap: wrap;
}
.dll-bc-inner a { color: rgba(245,240,232,.38); }
.dll-bc-inner a:hover { color: var(--dll-do); }
.dll-bc-sep { font-size: .6rem; }
.dll-bc-cur { color: var(--dll-do); }

/*  CONTENU PRINCIPAL  */
.dll-main-content {
    max-width: 1240px; margin: 0 auto;
    padding: 32px 24px 64px;
}
.dll-article-title {
    font-family: var(--dll-serif); font-size: 1.75rem; font-weight: 700;
    color: var(--dll-vn); margin-bottom: 20px;
}
.dll-article-content { font-size: .92rem; line-height: 1.8; }

/*  LECTEUR AUDIO GLOBAL  */
.dll-audio-bar {
    position: fixed; bottom: 0; left: 0; right: 0;
    background: var(--dll-vnd); border-top: 2px solid var(--dll-do);
    padding: 10px 24px; display: flex; align-items: center; gap: 16px;
    z-index: 300; transform: translateY(100%); transition: .28s;
}
.dll-audio-bar.on { transform: translateY(0); }
.dll-ab-info { flex: 1; min-width: 0; }
.dll-ab-title {
    font-size: .76rem; font-weight: 600; color: var(--dll-iv);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dll-ab-file { font-size: .6rem; color: rgba(245,240,232,.3); font-family: monospace; }
.dll-ab-btns { display: flex; gap: 7px; flex-shrink: 0; }
.dll-ab-btn {
    background: none; border: 1px solid rgba(184,149,42,.3); color: var(--dll-do);
    font-family: var(--dll-sans); font-size: .6rem; font-weight: 600;
    letter-spacing: .08em; text-transform: uppercase; padding: 5px 10px; cursor: pointer;
}
.dll-ab-close {
    background: none; border: none; color: rgba(245,240,232,.3);
    cursor: pointer; font-size: .95rem; padding: 3px;
}

/*  FOOTER  */
.dll-site-footer {
    background: var(--dll-vnd); padding: 28px 24px;
    border-top: 1px solid rgba(184,149,42,.12);
}
.dll-ft {
    max-width: 1240px; margin: 0 auto;
    display: flex; justify-content: space-between;
    align-items: center; gap: 16px; flex-wrap: wrap;
}
.dll-footer-logo { height: 26px; opacity: .65; }
.dll-ft-info { font-size: .65rem; color: rgba(245,240,232,.32); line-height: 1.7; }
.dll-ft-info a { color: rgba(245,240,232,.38); }
.dll-ft-info a:hover { color: var(--dll-do); }
.dll-ft-nav-list { list-style: none; display: flex; gap: 14px; flex-wrap: wrap; }
.dll-ft-nav-list li a { font-size: .63rem; color: rgba(245,240,232,.32); }
.dll-ft-nav-list li a:hover { color: var(--dll-do); }
.dll-ft-bottom {
    max-width: 1240px; margin: 14px auto 0;
    font-size: .6rem; color: rgba(245,240,232,.2); text-align: center;
}

/*  BOUTONS COMMUNS  */
.dll-btn-primary {
    display: inline-block; background: var(--dll-do); color: var(--dll-vnd);
    border: none; font-family: var(--dll-sans); font-size: .72rem; font-weight: 700;
    letter-spacing: .09em; text-transform: uppercase; padding: 12px 24px;
    cursor: pointer; border-radius: 1px; transition: .15s; text-decoration: none;
}
.dll-btn-primary:hover { background: var(--dll-dol); color: var(--dll-vnd); }
.dll-btn-secondary {
    display: inline-block; background: none; color: var(--dll-vn);
    border: 1.5px solid var(--dll-ivd); font-family: var(--dll-sans);
    font-size: .72rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
    padding: 10px 20px; cursor: pointer; border-radius: 1px; transition: .15s;
}
.dll-btn-secondary:hover { border-color: var(--dll-do); color: var(--dll-do); }

/*  RESPONSIVE  */
@media (max-width: 900px) {
    .dll-hdr-nav { display: none; }
    .dll-menu-toggle { display: block; }
}
@media (max-width: 640px) {
    .dll-hdr { padding: 0 14px; }
    .dll-main-content { padding: 20px 14px 48px; }
}


/* ============================================================
   PAGE ACCUEIL — dll_accueil shortcode
   ============================================================ */

/* HERO HOME */
.dll-hero-home {
    background: var(--dll-vnd);
    border-bottom: 2px solid var(--dll-do);
    padding: 60px 0 48px;
}
.dll-hero-home-inner {
    max-width: 1240px; margin: 0 auto; padding: 0 24px;
    display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap;
}
.dll-hero-eyebrow {
    font-size: .63rem; letter-spacing: .2em; text-transform: uppercase;
    color: var(--dll-do); margin-bottom: 14px;
}
.dll-hero-home-title {
    font-family: var(--dll-serif); font-size: 3rem; font-weight: 700;
    color: var(--dll-iv); line-height: 1.1; margin-bottom: 16px;
}
.dll-hero-home-title em { font-style: italic; color: var(--dll-do); }
.dll-hero-home-sub {
    font-size: .88rem; color: rgba(245,240,232,.55); line-height: 1.75;
    max-width: 480px; margin-bottom: 28px;
}
.dll-hero-home-cta { display: flex; gap: 12px; flex-wrap: wrap; }
.dll-btn-hero-primary {
    display: inline-block; background: var(--dll-do); color: var(--dll-vnd);
    font-family: var(--dll-sans); font-size: .72rem; font-weight: 700;
    letter-spacing: .09em; text-transform: uppercase; padding: 14px 28px;
    border-radius: 1px; text-decoration: none; transition: .15s;
}
.dll-btn-hero-primary:hover { background: var(--dll-dol); color: var(--dll-vnd); }
.dll-btn-hero-secondary {
    display: inline-block; background: none; color: rgba(245,240,232,.6);
    border: 1.5px solid rgba(245,240,232,.2); font-family: var(--dll-sans);
    font-size: .72rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
    padding: 12px 20px; border-radius: 1px; text-decoration: none; transition: .15s;
}
.dll-btn-hero-secondary:hover { border-color: var(--dll-do); color: var(--dll-do); }
.dll-hero-home-meta { display: flex; gap: 28px; flex-shrink: 0; }
.dll-hero-stat { text-align: right; }
.dll-hs-n {
    font-family: var(--dll-serif); font-size: 1.8rem; font-weight: 700;
    color: var(--dll-do); display: block;
}
.dll-hs-l {
    font-size: .58rem; letter-spacing: .14em; text-transform: uppercase;
    color: rgba(245,240,232,.3); display: block; margin-top: 2px;
}

/* SPOTLIGHT SOUEF */
.dll-spotlight {
    background: var(--dll-vn); padding: 56px 0;
    border-bottom: 1px solid rgba(184,149,42,.12);
}
.dll-spotlight-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.dll-spotlight-label {
    font-size: .62rem; letter-spacing: .2em; text-transform: uppercase;
    color: var(--dll-do); margin-bottom: 20px;
}
.dll-spotlight-content {
    display: grid; grid-template-columns: 1fr 260px; gap: 48px; align-items: center;
}
.dll-spotlight-col {
    font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: var(--dll-bv); margin-bottom: 8px;
}
.dll-spotlight-name {
    font-family: var(--dll-serif); font-size: 1.8rem; font-weight: 700;
    color: var(--dll-iv); margin-bottom: 14px; line-height: 1.2;
}
.dll-spotlight-bio {
    font-size: .84rem; color: rgba(245,240,232,.55); line-height: 1.8;
    max-width: 560px; margin-bottom: 20px;
}
.dll-spotlight-livres { margin-bottom: 20px; }
.dll-sl-livre {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 8px 0; border-bottom: 1px solid rgba(245,240,232,.08);
}
.dll-sl-titre { font-size: .8rem; color: rgba(245,240,232,.7); }
.dll-sl-prix { font-size: .78rem; font-weight: 700; color: var(--dll-do); flex-shrink: 0; margin-left: 12px; }
.dll-btn-spotlight {
    display: inline-block; background: var(--dll-do); color: var(--dll-vnd);
    font-family: var(--dll-sans); font-size: .68rem; font-weight: 700;
    letter-spacing: .09em; text-transform: uppercase; padding: 11px 22px;
    border-radius: 1px; text-decoration: none; transition: .15s;
}
.dll-btn-spotlight:hover { background: var(--dll-dol); color: var(--dll-vnd); }
.dll-spotlight-visual { text-align: center; position: relative; }
.dll-spotlight-badge {
    display: inline-block; background: var(--dll-do); color: var(--dll-vnd);
    font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    padding: 4px 12px; margin-bottom: 16px;
}
.dll-spotlight-avatar img {
    width: 180px; height: 180px; border-radius: 50%;
    object-fit: cover; border: 3px solid rgba(184,149,42,.3); margin: 0 auto;
}

/* VEDETTE SECTION */
.dll-vedette-section { background: var(--dll-iv); padding: 56px 0; }
.dll-vs-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.dll-vs-header {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-bottom: 28px;
}
.dll-vs-title {
    font-family: var(--dll-serif); font-size: 1.4rem; font-weight: 700; color: var(--dll-vn);
}
.dll-vs-voir-tout { font-size: .72rem; color: var(--dll-do); font-weight: 600; }
.dll-vs-voir-tout:hover { color: var(--dll-dol); }
.dll-vedette-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px; margin-bottom: 32px;
}
.dll-vcard {
    background: var(--dll-wh); border: 1px solid var(--dll-ivd);
    text-decoration: none; display: flex; flex-direction: column;
    transition: .18s;
}
.dll-vcard:hover { box-shadow: 0 4px 16px rgba(45,59,53,.1); transform: translateY(-2px); }
.dll-vcard-cover { position: relative; aspect-ratio: 2/3; overflow: hidden; background: var(--dll-ivd); }
.dll-vcard-img { width: 100%; height: 100%; object-fit: cover; }
.dll-vcard-audio {
    position: absolute; top: 6px; left: 6px; background: rgba(26,38,32,.85);
    font-size: .75rem; padding: 3px 6px; border-radius: 2px;
}
.dll-vcard-info {
    padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; flex: 1;
}
.dll-vcard-col {
    font-size: .55rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--dll-do);
}
.dll-vcard-title { font-family: var(--dll-serif); font-size: .8rem; font-weight: 600; color: var(--dll-vn); line-height: 1.3; }
.dll-vcard-auteur { font-size: .7rem; color: var(--dll-gl); }
.dll-vcard-prix { font-size: .8rem; font-weight: 700; color: var(--dll-vn); margin-top: auto; padding-top: 6px; }
.dll-vs-footer { text-align: center; }

/* COLLECTIONS */
.dll-collections-section {
    background: var(--dll-wh); padding: 56px 0;
    border-top: 1px solid var(--dll-ivd);
}
.dll-cs-inner { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.dll-cs-title {
    font-family: var(--dll-serif); font-size: 1.4rem; font-weight: 700;
    color: var(--dll-vn); margin-bottom: 24px; text-align: center;
}
.dll-collections-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px;
}
.dll-col-card {
    padding: 24px; border-left: 3px solid var(--dll-do); background: var(--dll-iv);
}
.dll-col-roman { border-color: var(--dll-vn); }
.dll-col-polix { border-color: var(--dll-do); }
.dll-col-essai { border-color: var(--dll-bv); }
.dll-col-patrimoine { border-color: var(--dll-gl); }
.dll-col-name {
    font-family: var(--dll-serif); font-size: 1rem; font-weight: 700;
    color: var(--dll-vn); margin-bottom: 6px;
}
.dll-col-desc { font-size: .78rem; color: var(--dll-gl); line-height: 1.6; }

/* CTA FINAL */
.dll-home-cta-section {
    background: var(--dll-vnd); padding: 64px 0;
    border-top: 2px solid var(--dll-do);
}
.dll-hcs-inner { max-width: 800px; margin: 0 auto; padding: 0 24px; text-align: center; }
.dll-hcs-title {
    font-family: var(--dll-serif); font-size: 1.6rem; font-weight: 700;
    color: var(--dll-iv); margin-bottom: 14px;
}
.dll-hcs-sub { font-size: .85rem; color: rgba(245,240,232,.5); line-height: 1.75; margin-bottom: 28px; }
.dll-hcs-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* RESPONSIVE HOME */
@media (max-width: 900px) {
    .dll-hero-home-title { font-size: 2.2rem; }
    .dll-spotlight-content { grid-template-columns: 1fr; }
    .dll-spotlight-visual { display: none; }
    .dll-hero-home-meta { display: none; }
}
@media (max-width: 640px) {
    .dll-hero-home { padding: 40px 0 32px; }
    .dll-hero-home-title { font-size: 1.7rem; }
    .dll-vedette-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   ACCUEIL v3 — sections supplémentaires
   ============================================================ */

/* Pillules nav hero */
.dll-hero-nav-pills { display:flex; gap:8px; flex-wrap:wrap; margin-top:20px; }
.dll-pill {
    display:inline-block; background:rgba(245,240,232,.08); color:rgba(245,240,232,.5);
    border:1px solid rgba(245,240,232,.1); font-size:.62rem; padding:5px 12px;
    border-radius:2px; text-decoration:none; transition:.13s;
}
.dll-pill:hover { background:rgba(184,149,42,.15); color:var(--dll-do); border-color:rgba(184,149,42,.3); }

/* Sections communes */
.dll-sec { padding:56px 0; }
.dll-sec-iv { background:var(--dll-iv); }
.dll-sec-wh { background:var(--dll-wh); }
.dll-sec-dk { background:var(--dll-vnd); }
.dll-sec-inner { max-width:1240px; margin:0 auto; padding:0 24px; }
.dll-sec-center { text-align:center; }
.dll-sec-header {
    display:flex; align-items:baseline; gap:16px; margin-bottom:32px; flex-wrap:wrap;
}
.dll-sec-header-light { border-bottom:1px solid rgba(245,240,232,.08); padding-bottom:16px; }
.dll-sec-eyebrow {
    font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--dll-do);
}
.dll-eyebrow-light { color:var(--dll-bv); }
.dll-sec-title {
    font-family:var(--dll-serif); font-size:1.4rem; font-weight:700; color:var(--dll-vn); flex:1;
}
.dll-title-light { color:var(--dll-iv); }
.dll-sec-voir-tout { font-size:.72rem; color:var(--dll-do); font-weight:600; text-decoration:none; white-space:nowrap; }
.dll-voir-light { color:var(--dll-bv); }
.dll-sec-sub-light { font-size:.85rem; color:rgba(245,240,232,.5); line-height:1.8; max-width:600px; margin:0 auto 28px; }

/* Identité */
.dll-identite-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.dll-id-card { padding:24px; background:var(--dll-wh); border:1px solid var(--dll-ivd); border-top:3px solid var(--dll-do); }
.dll-id-icon { font-size:1.4rem; margin-bottom:10px; color:var(--dll-do); }
.dll-id-label { font-family:var(--dll-serif); font-size:.95rem; font-weight:700; color:var(--dll-vn); margin-bottom:8px; }
.dll-id-desc { font-size:.8rem; color:var(--dll-gl); line-height:1.7; }

/* Spotlight v3 */
.dll-spotlight-content { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.dll-spotlight-sub-label { font-size:.6rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--dll-do); margin-bottom:10px; }
.dll-spotlight-name { font-family:var(--dll-serif); font-size:1.5rem; font-weight:700; color:var(--dll-vn); margin-bottom:12px; }
.dll-spotlight-bio { font-size:.82rem; color:var(--dll-gl); line-height:1.8; margin-bottom:14px; }
.dll-btn-spotlight-outline {
    display:inline-block; background:none; color:var(--dll-vn); border:1.5px solid var(--dll-ivd);
    font-family:var(--dll-sans); font-size:.68rem; font-weight:600; letter-spacing:.07em;
    text-transform:uppercase; padding:8px 16px; border-radius:1px; text-decoration:none; transition:.13s;
}
.dll-btn-spotlight-outline:hover { border-color:var(--dll-do); color:var(--dll-do); }
.dll-sl-card { background:var(--dll-iv); border:1px solid var(--dll-ivd); padding:20px; border-left:3px solid var(--dll-do); }
.dll-sl-col { font-size:.58rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dll-do); margin-bottom:6px; }
.dll-sl-titre { font-family:var(--dll-serif); font-size:.95rem; font-weight:700; color:var(--dll-vn); margin-bottom:4px; }
.dll-sl-auteur { font-size:.75rem; color:var(--dll-gl); margin-bottom:10px; }
.dll-sl-desc { font-size:.78rem; color:var(--dll-gr); line-height:1.7; margin-bottom:14px; }

/* Auteurs */
.dll-auteurs-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:20px; }
.dll-auteur-card {
    background:rgba(245,240,232,.06); border:1px solid rgba(245,240,232,.1);
    padding:24px; display:flex; flex-direction:column; gap:8px;
}
.dll-ac-badge {
    display:inline-block; background:var(--dll-do); color:var(--dll-vnd);
    font-size:.55rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    padding:3px 10px; align-self:flex-start;
}
.dll-ac-badge-2 { background:var(--dll-bv); color:var(--dll-vnd); }
.dll-ac-avatar img { width:72px; height:72px; border-radius:50%; object-fit:cover; border:2px solid rgba(184,149,42,.3); }
.dll-ac-name { font-family:var(--dll-serif); font-size:1rem; font-weight:700; color:var(--dll-iv); }
.dll-ac-role { font-size:.65rem; color:var(--dll-do); font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.dll-ac-bio { font-size:.76rem; color:rgba(245,240,232,.45); line-height:1.7; flex:1; }
.dll-ac-lien { font-size:.68rem; color:var(--dll-bv); font-weight:600; text-decoration:none; }
.dll-ac-lien:hover { color:var(--dll-do); }

/* Sonothèque */
.dll-sono-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.dll-sono-card {
    background:var(--dll-wh); border:1px solid var(--dll-ivd); padding:18px;
    display:flex; flex-direction:column; gap:4px;
}
.dll-sono-col { font-size:.58rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--dll-do); }
.dll-sono-titre { font-family:var(--dll-serif); font-size:.88rem; font-weight:600; color:var(--dll-vn); line-height:1.3; }
.dll-sono-auteur { font-size:.72rem; color:var(--dll-gl); margin-bottom:8px; }
.dll-sono-play {
    align-self:flex-start; background:none; border:1.5px solid var(--dll-bv); color:var(--dll-bv);
    font-family:var(--dll-sans); font-size:.62rem; font-weight:600; letter-spacing:.08em;
    text-transform:uppercase; padding:6px 12px; cursor:pointer; display:flex; align-items:center; gap:5px;
    border-radius:1px; transition:.13s;
}
.dll-sono-play:hover { background:var(--dll-bv); color:var(--dll-vnd); }

/* Responsive accueil v3 */
@media (max-width:900px) {
    .dll-spotlight-content { grid-template-columns:1fr; }
    .dll-auteurs-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
    .dll-sec { padding:36px 0; }
    .dll-identite-grid { grid-template-columns:1fr; }
    .dll-sono-grid { grid-template-columns:1fr; }
}


/* ============================================================
   PAGE ACCUEIL v3 — CSS adapté depuis maquette validée
   ============================================================ */



/* ═══════════════════════════════════════════
   TOKENS — Les Éditions De La Lune · v2.2
   ═══════════════════════════════════════════ */


/* ═══════════════════════════════════════════
   RESET
   ═══════════════════════════════════════════ */
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
button { font-family: var(--dll-sans); cursor: pointer; border: none; background: none; }
svg { display: block; }

/* ═══════════════════════════════════════════
   HEADER — fond sombre validé v2.2
   ═══════════════════════════════════════════ */
.hd {
  background: var(--dll-vnd);
  height: var(--hh);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  border-bottom: 1px solid rgba(184,149,42,.18);
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 2px 16px rgba(0,0,0,.22);
}

/* Logo */
.logo {
  display: flex;
  align-items: center;
  gap: 11px;
  flex-shrink: 0;
}
.logo__svg {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
.logo__text {
  font-family: var(--dll-serif);
  line-height: 1.2;
}
.logo__text span {
  display: block;
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .06em;
  color: rgba(245,240,232,.45);
  text-transform: uppercase;
}
.logo__text strong {
  display: block;
  font-size: .92rem;
  font-weight: 600;
  color: var(--dll-iv);
  letter-spacing: .02em;
}

/* Nav */
.nav {
  display: flex;
  align-items: stretch;
  height: var(--hh);
  list-style: none;
  gap: 0;
}
.nav > li {
  display: flex;
  align-items: center;
  position: relative;
}
.nav > li > a {
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: rgba(245,240,232,.58);
  padding: 0 11px;
  height: 100%;
  display: flex;
  align-items: center;
  transition: color .18s;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.nav > li > a:hover { color: var(--dll-iv); }
.nav > li > a.active { color: var(--dll-do); border-bottom-color: var(--dll-do); }
.nav > li > a.portail {
  color: var(--dll-do);
  border: 1px solid rgba(184,149,42,.32);
  padding: 6px 14px;
  height: auto;
  font-size: .65rem;
  margin-left: 4px;
  border-radius: 1px;
}
.nav > li > a.portail:hover { background: rgba(184,149,42,.08); }
.nav > li > a.has-sub::after { content: " ▾"; font-size: .5rem; opacity: .5; }

/* Dropdown */
.nav-sub {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #1e2e28;
  border: 1px solid rgba(184,149,42,.15);
  border-top: 2px solid var(--dll-do);
  min-width: 210px;
  box-shadow: 0 8px 28px rgba(0,0,0,.32);
  z-index: 300;
  padding: 6px 0;
}
.nav > li:hover .nav-sub { display: block; }
.nav-sub a {
  display: block;
  padding: 9px 18px;
  font-size: .71rem;
  font-weight: 500;
  letter-spacing: .04em;
  color: rgba(245,240,232,.62);
  transition: .15s;
  border-left: 2px solid transparent;
}
.nav-sub a:hover { color: var(--dll-iv); background: rgba(184,149,42,.07); border-left-color: var(--dll-do); }
.nav-sub__label {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(184,149,42,.38);
  padding: 8px 18px 3px;
}
.nav-sub__sep { height: 1px; background: rgba(184,149,42,.1); margin: 5px 0; }

/* Panier */
.cart {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(184,149,42,.32);
  display: flex; align-items: center; justify-content: center;
  color: rgba(245,240,232,.45);
  cursor: pointer;
  transition: .18s;
  position: relative;
  flex-shrink: 0;
  margin-left: 8px;
}
.cart:hover { border-color: var(--dll-do); color: var(--dll-do); }
.cart__count {
  position: absolute;
  top: -4px; right: -4px;
  width: 16px; height: 16px;
  background: var(--dll-do);
  border-radius: 50%;
  font-size: .5rem;
  font-weight: 700;
  color: var(--dll-vnd);
  display: flex; align-items: center; justify-content: center;
}

/* Burger mobile */
.burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 6px;
}
.burger span {
  display: block;
  width: 22px; height: 1.5px;
  background: rgba(245,240,232,.6);
  transition: .2s;
}

/* ═══════════════════════════════════════════
   BOUTONS
   ═══════════════════════════════════════════ */
.dll-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--dll-sans);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 13px 26px;
  border-radius: 1px;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: .18s;
}
.dll-btn-gold { background: var(--dll-do); color: var(--dll-vnd); }
.dll-btn-gold:hover { background: var(--do-lt); }
.dll-btn-ghost-iv { background: transparent; color: var(--dll-iv); border-color: rgba(245,240,232,.3); }
.dll-btn-ghost-iv:hover { border-color: var(--dll-iv); }
.dll-btn-ghost-dk { background: transparent; color: var(--dll-vn); border-color: rgba(45,59,53,.5); }
.dll-btn-ghost-dk:hover { background: var(--dll-vn); color: var(--dll-iv); }
.dll-btn-sm { padding: 9px 20px; font-size: .65rem; }
.dll-lien {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dll-do);
  cursor: pointer;
  transition: color .18s;
  background: none;
  border: none;
  font-family: var(--dll-sans);
}
.lien::after { content: " →"; }
.lien:hover { color: var(--do-lt); }
.dll-lien-iv { color: var(--dll-iv); }
.dll-lien-iv:hover { color: rgba(245,240,232,.7); }

/* ═══════════════════════════════════════════
   SECTIONS — LAYOUT
   ═══════════════════════════════════════════ */
.sec { padding: 64px 60px; }
.dll-sec-iv  { background: var(--dll-iv); }
.dll-sec-wh  { background: var(--dll-wh); border-top: 1px solid var(--dll-ivd); border-bottom: 1px solid var(--dll-ivd); }
.dll-sec-dk  { background: var(--dll-vn); }
.sec--vnd { background: var(--dll-vnd); }

.dll-sec__hd {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 38px;
}
.dll-eyebrow {
  font-size: .63rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--dll-do);
  margin-bottom: 7px;
}
.dll-eyebrow-bv { color: var(--dll-bv); }
.eyebrow--iv { color: rgba(245,240,232,.5); }
.dll-sec-title {
  font-family: var(--dll-serif);
  font-size: 1.85rem;
  font-weight: 600;
  color: var(--dll-vn);
  line-height: 1.2;
}
.dll-sec-title-iv { color: var(--dll-iv); }

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.dll-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.dll-grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.dll-grid-5 { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; }

/* ═══════════════════════════════════════════
   HERO — fond sombre · ambiance littéraire
   ═══════════════════════════════════════════ */
.dll-hero-v3 {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  background: var(--dll-vnd);
  overflow: hidden;
}

/* Texture de fond subtile via dégradés empilés */
.dll-hero-v3::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 90% at 50% 110%, rgba(184,149,42,.07) 0%, transparent 60%),
    radial-gradient(ellipse 50% 70% at 10% 50%, rgba(122,179,168,.05) 0%, transparent 55%),
    radial-gradient(ellipse 40% 60% at 90% 20%, rgba(45,59,53,.4) 0%, transparent 60%);
  z-index: 0;
}

/* Fondu bas vers la section suivante */
.dll-hero-v3__fade {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 90px;
  background: linear-gradient(to bottom, transparent, var(--dll-iv));
  z-index: 2;
}

.dll-hero-v3__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding: 90px 60px 120px;
  display: grid;
  grid-template-columns: 1fr 520px;
  gap: 40px;
  align-items: center;
}

/* Partie texte */
.dll-hero-v3__content { max-width: 520px; }

.dll-hero-v3__eyebrow {
  font-size: .63rem;
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--dll-bv);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.dll-hero-v3__eyebrow::before {
  content: '';
  display: block;
  width: 30px; height: 1px;
  background: var(--dll-bv);
  flex-shrink: 0;
}

.dll-hero-v3__h1 {
  font-family: var(--dll-serif);
  font-size: 3.1rem;
  font-weight: 700;
  color: var(--dll-iv);
  line-height: 1.08;
  margin-bottom: 22px;
  letter-spacing: -.01em;
}
.dll-hero-v3__h1 em {
  font-style: italic;
  color: var(--dll-do);
}

.dll-hero-v3__sub {
  font-size: .92rem;
  color: rgba(245,240,232,.58);
  line-height: 1.76;
  margin-bottom: 36px;
  max-width: 410px;
}

.dll-hero-v3__btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 48px;
}

/* Indicateurs éditoriaux (sans chiffres) */
.dll-hero-v3__indicators {
  display: flex;
  gap: 36px;
  padding-top: 28px;
  border-top: 1px solid rgba(245,240,232,.1);
}
.dll-hero-v3__indic {
  display: flex;
  align-items: center;
  gap: 11px;
}
.dll-hero-v3__indic-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--dll-do);
  flex-shrink: 0;
}
.dll-hero-v3__indic-body {}
.dll-hero-v3__indic-label {
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dll-do);
  display: block;
  line-height: 1;
  margin-bottom: 3px;
}
.dll-hero-v3__indic-desc {
  font-size: .72rem;
  color: rgba(245,240,232,.38);
  line-height: 1.3;
}

/* Stack livres hero — présence maximale */
.dll-hero-v3__books {
  display: flex;
  align-items: flex-end;
  gap: 22px;
  flex-shrink: 0;
  padding-bottom: 80px;
  position: relative;
}
/* Halo doré diffus derrière les livres */
.dll-hero-v3__books::before {
  content: '';
  position: absolute;
  bottom: 70px;
  left: 50%;
  transform: translateX(-50%);
  width: 420px;
  height: 320px;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(184,149,42,.13) 0%, transparent 65%),
    radial-gradient(ellipse 50% 40% at 50% 60%, rgba(122,179,168,.06) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.dll-hero-v3__book {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  position: relative;
  cursor: pointer;
  transition: transform .28s ease;
  z-index: 1;
}
.dll-hero-v3__book:hover { transform: translateY(-10px); }
.dll-hero-v3__book--mid {
  transform: translateY(-28px) scale(1.09);
  z-index: 2;
}
.dll-hero-v3__book--mid:hover { transform: translateY(-36px) scale(1.09); }

.dll-hero-v3__book-cover {
  border-radius: 3px;
  overflow: hidden;
  background: var(--dll-vn);
}
.dll-hero-v3__book--side .dll-hero-v3__book-cover {
  width: 148px;
  box-shadow:
    6px 10px 32px rgba(0,0,0,.62),
    -2px 0 8px rgba(0,0,0,.22),
    inset -1px 0 0 rgba(0,0,0,.15);
}
.dll-hero-v3__book--side .dll-hero-v3__book-cover img {
  width: 148px;
  height: 222px;
  object-fit: cover;
  display: block;
}
.dll-hero-v3__book--mid .dll-hero-v3__book-cover {
  width: 172px;
  box-shadow:
    10px 16px 48px rgba(0,0,0,.78),
    0 0 0 1px rgba(184,149,42,.25),
    -3px 0 12px rgba(0,0,0,.3);
}
.dll-hero-v3__book--mid .dll-hero-v3__book-cover img {
  width: 172px;
  height: 258px;
  object-fit: cover;
  display: block;
}

.dll-hero-v3__book-badge {
  position: absolute;
  top: 10px;
  left: -5px;
  font-size: .5rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 1px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
}
.dll-hero-v3__book-badge--gold { background: var(--dll-do); color: var(--dll-vnd); }
.dll-hero-v3__book-badge--iv {
  background: rgba(245,240,232,.15);
  color: rgba(245,240,232,.7);
  border: 1px solid rgba(245,240,232,.2);
}

.dll-hero-v3__book-meta {
  text-align: center;
  opacity: 0;
  transform: translateY(4px);
  transition: .2s;
}
.dll-hero-v3__book:hover .dll-hero-v3__book-meta {
  opacity: 1;
  transform: translateY(0);
}
.dll-hero-v3__book-meta-col {
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dll-do);
  margin-bottom: 3px;
}
.dll-hero-v3__book-meta-titre {
  font-family: var(--dll-serif);
  font-size: .75rem;
  color: rgba(245,240,232,.75);
  line-height: 1.3;
}

/* ═══════════════════════════════════════════
   SECTION IDENTITÉ
   ═══════════════════════════════════════════ */
.dll-identity-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 1px;
  background: var(--dll-ivd);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: var(--sh);
}
.dll-identity-item {
  background: var(--dll-wh);
  padding: 28px 22px;
  text-align: center;
}
.dll-identity-icon {
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 1.5px solid rgba(184,149,42,.35);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 14px;
  color: var(--dll-do);
}
.dll-identity-titre {
  font-family: var(--dll-serif);
  font-size: .88rem;
  font-weight: 600;
  color: var(--dll-vn);
  margin-bottom: 6px;
}
/* ── Lisibilité renforcée ── */
.dll-identity-desc   { font-size: .78rem; color: #525252; line-height: 1.65; }
.dll-author-card__bio { font-size: .74rem; color: rgba(245,240,232,.58); line-height: 1.55; margin-bottom: 14px; }
.dll-spotlight-v3__author-desc { font-size: .82rem; color: rgba(245,240,232,.62); line-height: 1.7; margin-bottom: 20px; }
.dll-spotlight-v3__book-desc   { font-size: .82rem; color: #4a4a4a; line-height: 1.68; margin-bottom: 18px; }
.dll-news-card__excerpt     { font-size: .78rem; color: #585858; line-height: 1.62; margin-bottom: 14px; }
.dll-book-card__author      { font-size: .78rem; color: #5a5a5a; font-style: italic; margin-bottom: 14px; }
.dll-maison-item__desc      { font-size: .75rem; color: rgba(245,240,232,.48); line-height: 1.55; }
/* Footer textes */
.footer__desc    { font-size: .8rem; color: rgba(245,240,232,.52); line-height: 1.72; margin-bottom: 18px; }
.footer__founded { font-size: .7rem; color: rgba(245,240,232,.38); letter-spacing: .06em; margin-bottom: 18px; }
.footer__links a { font-size: .8rem; color: rgba(245,240,232,.55); transition: color .18s; cursor: pointer; }
.footer__copy    { font-size: .72rem; color: rgba(245,240,232,.35); }

/* ═══════════════════════════════════════════
   SPOTLIGHT AUTEUR — mise en avant éditoriale
   ═══════════════════════════════════════════ */
.dll-spotlight-v3 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: var(--sh);
}
.dll-spotlight-v3__author {
  background: var(--dll-vn);
  padding: 44px 40px;
  display: flex;
  gap: 22px;
  align-items: flex-start;
}
.dll-spotlight-v3__photo {
  width: 88px; height: 88px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2.5px solid var(--dll-do);
  overflow: hidden;
  background: var(--dll-vnd);
}
.dll-spotlight-v3__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
}
.dll-spotlight-v3__book {
  background: var(--dll-wh);
  padding: 44px 40px;
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.dll-spotlight-v3__book-cover {
  width: 76px; height: 108px;
  border-radius: 2px;
  flex-shrink: 0;
  box-shadow: 4px 4px 14px rgba(0,0,0,.12);
  overflow: hidden;
  background: var(--dll-vn);
}
.dll-spotlight-v3__book-cover img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.dll-spotlight-v3__author-name {
  font-family: var(--dll-serif);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--dll-iv);
  margin: 10px 0 8px;
  line-height: 1.2;
}
.dll-spotlight-v3__author-desc {
  font-size: .8rem;
  color: rgba(245,240,232,.52);
  line-height: 1.68;
  margin-bottom: 20px;
}
.dll-spotlight-v3__book-title {
  font-family: var(--dll-serif);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--dll-vn);
  margin: 10px 0 5px;
  line-height: 1.25;
}
.dll-spotlight-v3__book-author {
  font-size: .78rem;
  color: var(--dll-gl);
  font-style: italic;
  margin-bottom: 12px;
}
.dll-spotlight-v3__book-desc {
  font-size: .8rem;
  color: var(--dll-gr);
  line-height: 1.65;
  margin-bottom: 18px;
}

/* ═══════════════════════════════════════════
   CARTE LIVRE — catalogue éditorial
   ═══════════════════════════════════════════ */
.dll-book-card {
  background: var(--dll-wh);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: var(--sh);
  transition: box-shadow .22s, transform .22s;
  cursor: pointer;
}
.book-card:hover {
  box-shadow: var(--sh2);
  transform: translateY(-4px);
}
.dll-book-card__cover {
  width: 100%;
  aspect-ratio: 3/4;
  max-height: 220px;
  position: relative;
  overflow: hidden;
  background: var(--dll-vn);
}
.dll-book-card__cover img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .3s;
}
.book-card:hover .dll-book-card__cover img { transform: scale(1.04); }
.dll-book-card__badge {
  position: absolute;
  top: 10px; left: 10px;
  background: rgba(26,38,32,.84);
  color: rgba(245,240,232,.85);
  font-size: .55rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 1px;
}
.dll-book-card__body { padding: 14px 16px 18px; }
.dll-book-card__coll {
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dll-bv);
  margin-bottom: 5px;
}
.dll-book-card__title {
  font-family: var(--dll-serif);
  font-size: .9rem;
  font-weight: 600;
  color: var(--dll-vn);
  line-height: 1.3;
  margin-bottom: 4px;
}
/* book-card author — géré dans lisibilité renforcée */
.dll-book-card__foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
/* Pas de prix sur le catalogue éditorial — bouton seul */
.dll-book-card__cta {
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dll-vn);
  border: 1px solid rgba(45,59,53,.4);
  padding: 5px 12px;
  border-radius: 1px;
  cursor: pointer;
  transition: .18s;
  background: none;
  font-family: var(--dll-sans);
}
.dll-book-card__cta:hover { background: var(--dll-vn); color: var(--dll-iv); }

/* ═══════════════════════════════════════════
   CARTE AUTEUR — fond sombre, card claire
   ═══════════════════════════════════════════ */
.dll-author-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(245,240,232,.08);
  border-radius: 3px;
  padding: 22px 16px;
  text-align: center;
  transition: background .22s, transform .22s;
  cursor: pointer;
}
.author-card:hover {
  background: rgba(255,255,255,.1);
  transform: translateY(-3px);
}
.dll-author-card--prio {
  background: rgba(184,149,42,.07);
  border-color: rgba(184,149,42,.2);
}
.dll-author-card__photo {
  width: 80px; height: 80px;
  border-radius: 50%;
  margin: 0 auto 12px;
  border: 2px solid rgba(184,149,42,.3);
  overflow: hidden;
  background: var(--dll-vnd);
}
.dll-author-card--prio .dll-author-card__photo { border-color: var(--dll-do); }
.dll-author-card__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
}
.dll-author-card__badge-prio {
  font-size: .52rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dll-do);
  background: rgba(184,149,42,.12);
  padding: 2px 8px;
  border-radius: 20px;
  display: inline-block;
  margin-bottom: 8px;
}
.dll-author-card__name {
  font-family: var(--dll-serif);
  font-size: .92rem;
  font-weight: 600;
  color: var(--dll-iv);
  margin-bottom: 3px;
  line-height: 1.2;
}
.dll-author-card__role {
  font-size: .62rem;
  color: var(--dll-do);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.dll-author-card__bio {
  font-size: .74rem;
  color: rgba(245,240,232,.42);
  line-height: 1.55;
  margin-bottom: 14px;
}
.dll-author-card__link {
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(245,240,232,.6);
  border-bottom: 1px solid rgba(184,149,42,.4);
  padding-bottom: 1px;
  cursor: pointer;
  transition: color .18s;
}
.dll-author-card__link:hover { color: var(--dll-iv); }

/* ═══════════════════════════════════════════
   CARTE AUDIO
   ═══════════════════════════════════════════ */
.dll-audio-card {
  background: var(--dll-wh);
  border-radius: 3px;
  padding: 16px 18px;
  box-shadow: var(--sh);
  display: flex;
  gap: 14px;
  align-items: flex-start;
  transition: box-shadow .22s;
}
.audio-card:hover { box-shadow: var(--sh2); }
.dll-audio-card__cover {
  width: 56px; height: 76px;
  border-radius: 2px;
  flex-shrink: 0;
  box-shadow: 2px 2px 8px rgba(0,0,0,.14);
  overflow: hidden;
  background: var(--dll-vn);
}
.dll-audio-card__cover img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.dll-audio-card__body { flex: 1; }
.dll-audio-card__coll {
  font-size: .57rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dll-bv);
  margin-bottom: 4px;
}
.dll-audio-card__title {
  font-family: var(--dll-serif);
  font-size: .86rem;
  font-weight: 600;
  color: var(--dll-vn);
  line-height: 1.3;
  margin-bottom: 3px;
}
.dll-audio-card__author {
  font-size: .74rem;
  color: var(--dll-gl);
  font-style: italic;
  margin-bottom: 10px;
}
.dll-audio-player {
  display: flex;
  align-items: center;
  gap: 8px;
}
.dll-play-btn {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--dll-vn);
  color: var(--dll-iv);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .18s;
}
.dll-play-btn:hover { background: var(--dll-do); }
.dll-play-bar {
  flex: 1;
  height: 2px;
  background: var(--dll-ivd);
  border-radius: 2px;
  overflow: hidden;
  cursor: pointer;
}
.dll-play-fill {
  height: 100%;
  background: var(--dll-do);
  border-radius: 2px;
  transition: width .1s;
}
.dll-play-dur { font-size: .62rem; color: var(--dll-gl); white-space: nowrap; }

/* ═══════════════════════════════════════════
   CARTE ACTUALITÉ
   ═══════════════════════════════════════════ */
.dll-news-card {
  background: var(--dll-wh);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: var(--sh);
  transition: box-shadow .22s, transform .22s;
  cursor: pointer;
}
.news-card:hover { box-shadow: var(--sh2); transform: translateY(-3px); }
.dll-news-card__img {
  height: 152px;
  position: relative;
  overflow: hidden;
}
.dll-news-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(26,38,32,.75) 0%, transparent 65%);
}
.dll-news-card__cat {
  position: absolute;
  bottom: 12px; left: 14px;
  font-size: .56rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dll-do);
  background: rgba(26,38,32,.88);
  padding: 3px 8px;
  border-radius: 1px;
}
.dll-news-card__body { padding: 16px 18px 20px; }
.dll-news-card__date { font-size: .67rem; color: var(--dll-gl); margin-bottom: 6px; }
.dll-news-card__title {
  font-family: var(--dll-serif);
  font-size: .94rem;
  font-weight: 600;
  color: var(--dll-vn);
  line-height: 1.3;
  margin-bottom: 8px;
}
/* news-card excerpt — géré dans lisibilité renforcée */
.dll-news-card__link {
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dll-do);
  cursor: pointer;
}
.dll-news-card__link::after { content: " →"; }

/* ═══════════════════════════════════════════
   BLOC MAISON
   ═══════════════════════════════════════════ */
.dll-maison-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.dll-maison__h2 {
  font-family: var(--dll-serif);
  font-size: 2rem;
  color: var(--dll-iv);
  font-weight: 600;
  line-height: 1.15;
  margin: 10px 0 14px;
}
.dll-maison__h2 em { color: var(--dll-do); }
.dll-maison__sub {
  font-size: .86rem;
  color: rgba(245,240,232,.48);
  line-height: 1.76;
  max-width: 380px;
  margin-bottom: 26px;
}
.dll-maison__btns { display: flex; gap: 12px; flex-wrap: wrap; }
.dll-maison-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid rgba(245,240,232,.08);
}
.dll-maison-item:last-child { border-bottom: 1px solid rgba(245,240,232,.08); }
.dll-maison-icon {
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 1px solid rgba(184,149,42,.28);
  display: flex; align-items: center; justify-content: center;
  color: var(--dll-do);
  flex-shrink: 0;
  margin-top: 2px;
}
.dll-maison-item__title {
  font-family: var(--dll-serif);
  font-size: .88rem;
  color: var(--dll-iv);
  margin-bottom: 3px;
}
.dll-maison-item__desc {
  font-size: .73rem;
  color: rgba(245,240,232,.36);
  line-height: 1.5;
}

/* ═══════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════ */
.footer {
  background: var(--dll-vnd);
  padding: 52px 60px 28px;
  border-top: 2px solid rgba(184,149,42,.25);
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 44px;
  margin-bottom: 40px;
}
.footer__brand {}
.footer__logo-name {
  font-family: var(--dll-serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--dll-iv);
  margin-bottom: 10px;
}
.footer__logo-name em { color: var(--dll-do); font-style: italic; }
.footer__desc {
  font-size: .78rem;
  color: rgba(245,240,232,.4);
  line-height: 1.72;
  margin-bottom: 18px;
}
.footer__founded {
  font-size: .68rem;
  color: rgba(245,240,232,.25);
  letter-spacing: .06em;
  margin-bottom: 18px;
}
.footer__col-title {
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dll-do);
  margin-bottom: 14px;
}
.footer__links { list-style: none; }
.footer__links li { margin-bottom: 8px; }
.footer__links a {
  font-size: .78rem;
  color: rgba(245,240,232,.48);
  transition: color .18s;
  cursor: pointer;
}
.footer__links a:hover { color: var(--dll-iv); }
.footer__links a.portail { color: var(--dll-do); }
.footer__bottom {
  border-top: 1px solid rgba(245,240,232,.08);
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.footer__copy { font-size: .7rem; color: rgba(245,240,232,.28); }
.footer__legal { display: flex; gap: 20px; }
.footer__legal a { font-size: .7rem; color: rgba(245,240,232,.28); cursor: pointer; }
.footer__legal a:hover { color: rgba(245,240,232,.55); }

/* ═══════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════ */
@media (max-width: 1200px) {
  .dll-hero-v3__books { display: none; }
  .dll-hero-v3__inner { grid-template-columns: 1fr; justify-items: center; }
  .dll-hero-v3__content { max-width: 600px; }
  .dll-grid-4 { grid-template-columns: repeat(2,1fr); }
  .dll-grid-5 { grid-template-columns: repeat(3,1fr); }
  .dll-identity-grid { grid-template-columns: repeat(2,1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 840px) {
  .hd { padding: 0 20px; }
  .nav { display: none; }
  .burger { display: flex; }
  .sec { padding: 40px 20px; }
  .dll-hero-v3__inner { padding: 56px 20px 80px; }
  .dll-hero-v3__h1 { font-size: 2.2rem; }
  .dll-hero-v3__sub { font-size: .88rem; max-width: 100%; }
  .dll-hero-v3__indicators { flex-direction: column; gap: 12px; }
  .dll-hero-v3__btns { gap: 10px; }
  .dll-grid-3 { grid-template-columns: 1fr 1fr; gap: 14px; }
  .dll-grid-4 { grid-template-columns: 1fr 1fr; gap: 14px; }
  .grid-2 { grid-template-columns: 1fr; }
  .dll-spotlight-v3 { grid-template-columns: 1fr; }
  .dll-spotlight-v3__author, .dll-spotlight-v3__book { padding: 28px 24px; }
  .dll-maison-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer { padding: 40px 20px 24px; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .dll-sec__hd { flex-direction: column; gap: 12px; align-items: flex-start; }
}
@media (max-width: 540px) {
  .dll-hero-v3__h1 { font-size: 1.9rem; }
  .dll-hero-v3__btns { flex-direction: column; }
  .dll-hero-v3__btns .dll-btn { width: 100%; justify-content: center; }
  .dll-grid-3, .dll-grid-4, .dll-grid-5 { grid-template-columns: 1fr; gap: 14px; }
  .dll-identity-grid { grid-template-columns: 1fr; }
  .dll-audio-card { flex-direction: column; }
  .dll-audio-card__cover { width: 100%; height: 100px; }
  .dll-audio-card__cover img { height: 100px; object-fit: cover; }
  .footer__grid { grid-template-columns: 1fr; gap: 24px; }
  .footer__bottom { flex-direction: column; gap: 6px; text-align: center; }
  .dll-spotlight-v3__author { flex-direction: column; }
  .dll-spotlight-v3__book { flex-direction: column; }
}

/* ── Mobile nav améliorée ── */
.mobile-nav {
  display: none;
  position: fixed;
  inset: 0;
  background: var(--dll-vnd);
  z-index: 500;
  padding: 0;
  flex-direction: column;
  overflow-y: auto;
}
.mobile-nav.open { display: flex; }
.mobile-nav__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px;
  border-bottom: 1px solid rgba(184,149,42,.15);
  flex-shrink: 0;
}
.mobile-nav__logo-txt {
  font-family: var(--dll-serif);
  font-size: .88rem;
  font-weight: 600;
  color: var(--dll-iv);
}
.mobile-nav__close {
  background: none; border: none;
  color: rgba(245,240,232,.5);
  font-size: 1.3rem;
  cursor: pointer;
  padding: 8px;
  line-height: 1;
}
.mobile-nav__links {
  padding: 16px 0 40px;
  flex: 1;
}
.mobile-nav__links a {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(245,240,232,.65);
  padding: 16px 28px;
  border-bottom: 1px solid rgba(245,240,232,.06);
  transition: color .18s, background .18s;
}
.mobile-nav__links a:hover,
.mobile-nav__links a:active { color: var(--dll-iv); background: rgba(255,255,255,.04); }
.mobile-nav__links a.portail {
  color: var(--dll-do);
  margin-top: 8px;
  border-top: 1px solid rgba(184,149,42,.15);
}
.mobile-nav__footer {
  padding: 16px 28px 28px;
  border-top: 1px solid rgba(245,240,232,.06);
  font-size: .72rem;
  color: rgba(245,240,232,.28);
}



/* ============================================================
   BLOC DLL-HOME — Accueil dynamique WooCommerce
   Ajouté étapes 5-14 — Restauré v15
   ============================================================ */

/* ---- HERO ---- */
.dll-home-hero {
    background: var(--dll-vnd);
    position: relative;
    overflow: hidden;
    min-height: 100vh;
}
.dll-home-hero__inner {
    width: 100%; max-width: 1300px; margin: 0 auto;
    padding: 90px 60px 120px;
    display: grid;
    grid-template-columns: 1fr 480px;
    gap: 40px;
    align-items: center;
}
.dll-home-hero__content { position: relative; z-index: 2; }
.dll-home-hero__eyebrow {
    font-size: .63rem; font-weight: 600;
    letter-spacing: .24em; text-transform: uppercase;
    color: var(--dll-bv); margin-bottom: 20px;
    display: flex; align-items: center; gap: 12px;
}
.dll-home-hero__eyebrow::before {
    content: ''; display: block;
    width: 30px; height: 1px; background: var(--dll-bv);
}
.dll-home-hero__dash {
    display: inline-block; width: 28px; height: 2px;
    background: var(--dll-bv); vertical-align: middle; margin-right: 8px;
}

/* Correctif contraste — classes réelles du template */
.dll-home-hero__title {
    font-family: var(--dll-serif);
    font-size: 3.1rem; font-weight: 700;
    color: var(--dll-iv);
    line-height: 1.08; margin-bottom: 22px;
}
.dll-home-hero__title em {
    color: var(--dll-do);
    font-style: italic;
}
.dll-home-hero__h1 {
    font-family: var(--dll-serif);
    font-size: 3.1rem; font-weight: 700;
    color: var(--dll-iv);
    line-height: 1.08; margin-bottom: 22px;
}
.dll-home-hero__h1 em { color: var(--dll-do); font-style: italic; }

.dll-home-hero__desc {
    font-size: 1rem;
    color: rgba(245,240,232,.85);
    line-height: 1.7; margin-bottom: 32px; max-width: 480px;
}
.dll-home-hero__sub {
    font-size: 1rem;
    color: rgba(245,240,232,.65);
    line-height: 1.7; margin-bottom: 32px; max-width: 480px;
}
.dll-home-hero__cta,
.dll-home-hero__btns {
    display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 40px;
}
.dll-home-hero__indicators { display: flex; gap: 28px; flex-wrap: wrap; }
.dll-home-hero__indic { display: flex; gap: 10px; align-items: flex-start; }
.dll-home-hero__indic-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--dll-do); flex-shrink: 0; margin-top: 5px;
}
.dll-home-hero__indic-label {
    font-size: .6rem; font-weight: 700; letter-spacing: .15em;
    color: var(--dll-bv); text-transform: uppercase;
}
.dll-home-hero__indic-desc {
    font-size: .75rem; color: rgba(245,240,232,.5);
}

/* Hero — livres */
.dll-home-hero__books {
    position: relative; height: 480px;
    display: flex; align-items: flex-end; justify-content: center;
}
.dll-home-hero__book { position: absolute; transition: transform .3s ease; }
.dll-home-hero__book--back  { left: 0;   bottom: 0; transform: rotate(-6deg) translateY(10px); z-index: 1; }
.dll-home-hero__book--mid   { left: 80px; bottom: 20px; transform: rotate(-2deg); z-index: 2; }
.dll-home-hero__book--front { left: 160px; bottom: 40px; transform: rotate(3deg); z-index: 3; }
.dll-home-hero__book-cover {
    width: 160px; height: 240px; object-fit: cover;
    border-radius: 3px;
    box-shadow: 0 20px 60px rgba(0,0,0,.5);
}
.dll-home-hero__book-badge {
    display: inline-block; margin-top: 8px;
    font-size: .58rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--dll-do);
    background: rgba(184,149,42,.12); border: 1px solid rgba(184,149,42,.3);
    padding: 3px 8px; border-radius: 2px;
}
.dll-home-hero__book-meta { text-align: center; }
.dll-home-hero__fade {
    position: absolute; bottom: 0; left: 0; right: 0; height: 120px;
    background: linear-gradient(to bottom, transparent, var(--dll-vnd));
    pointer-events: none;
}

/* ---- BOUTONS ---- */
.dll-home-btn {
    display: inline-flex; align-items: center;
    padding: 12px 24px; border-radius: 3px;
    font-size: .8rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase;
    text-decoration: none; transition: all .2s ease; cursor: pointer;
}
.dll-home-btn--gold {
    background: var(--dll-do); color: var(--dll-vnd);
    border: 2px solid var(--dll-do);
}
.dll-home-btn--gold:hover { background: var(--dll-dol); border-color: var(--dll-dol); color: var(--dll-vnd); }
.dll-home-btn--gold-sm {
    background: var(--dll-do); color: var(--dll-vnd);
    border: 2px solid var(--dll-do);
    padding: 8px 18px; font-size: .72rem;
}
.dll-home-btn--outline-light {
    background: transparent; color: var(--dll-iv);
    border: 2px solid rgba(245,240,232,.35);
}
.dll-home-btn--outline-light:hover { border-color: var(--dll-iv); color: var(--dll-iv); }
.dll-home-btn--outline-dk {
    background: transparent; color: var(--dll-vnd);
    border: 2px solid var(--dll-vnd);
}
.dll-home-btn--outline-dk:hover { background: var(--dll-vnd); color: var(--dll-iv); }

/* ---- SECTIONS GÉNÉRIQUES ---- */
.dll-home-sec { padding: 80px 0; }
.dll-home-sec--iv  { background: var(--dll-iv); }
.dll-home-sec--dk  { background: var(--dll-vnd); }
.dll-home-sec--wh  { background: #fff; }
.dll-home-sec--vn  { background: var(--dll-vn); }
.dll-home-sec__inner { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
.dll-home-sec__hd {
    display: flex; align-items: baseline;
    gap: 20px; margin-bottom: 40px; flex-wrap: wrap;
}
.dll-home-sec__eyebrow {
    font-size: .62rem; font-weight: 700; letter-spacing: .2em;
    text-transform: uppercase; color: var(--dll-do);
}
.dll-home-sec__eyebrow--light { color: var(--dll-dol); }
.dll-home-sec__title {
    font-family: var(--dll-serif);
    font-size: 1.9rem; font-weight: 700; color: var(--dll-vnd);
}
.dll-home-sec__title--light { color: var(--dll-iv); }
.dll-home-sec__more {
    margin-left: auto; font-size: .78rem; font-weight: 600;
    color: var(--dll-do); letter-spacing: .04em;
}
.dll-home-sec__more:hover { color: var(--dll-dol); }
.dll-home-sec__more--light { color: var(--dll-dol); }
.dll-home-sec__hd--light .dll-home-sec__title { color: var(--dll-iv); }

/* ---- IDENTITÉ ---- */
.dll-home-identity-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.dll-home-identity-item {
    background: #fff; border-radius: 6px; padding: 28px 24px;
    border: 1px solid var(--dll-ivd);
}
.dll-home-identity-icon { font-size: 1.8rem; margin-bottom: 14px; }
.dll-home-identity-item h3 {
    font-family: var(--dll-serif); font-size: 1rem;
    font-weight: 700; color: var(--dll-vnd); margin-bottom: 10px;
}
.dll-home-identity-item p { font-size: .85rem; color: var(--dll-gr); line-height: 1.6; }

/* ---- SPOTLIGHT ---- */
.dll-home-spotlight-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
}
.dll-home-spotlight {
    background: var(--dll-iv); border-radius: 8px;
    padding: 36px; border: 1px solid var(--dll-ivd);
}
.dll-home-spotlight__badge {
    font-size: .6rem; font-weight: 700; letter-spacing: .15em;
    text-transform: uppercase; color: var(--dll-do);
    background: rgba(184,149,42,.1); border: 1px solid rgba(184,149,42,.25);
    padding: 4px 10px; border-radius: 2px;
    display: inline-block; margin-bottom: 20px;
}
.dll-home-spotlight--author { background: var(--dll-vn); }
.dll-home-spotlight--author .dll-home-spotlight__badge { color: var(--dll-dol); }
.dll-home-spotlight__avatar {
    border-radius: 50%; margin-bottom: 16px;
    border: 3px solid rgba(184,149,42,.3);
}
.dll-home-spotlight__name {
    font-family: var(--dll-serif); font-size: 1.3rem;
    font-weight: 700; color: var(--dll-iv); margin-bottom: 12px;
}
.dll-home-spotlight__bio {
    font-size: .85rem; color: rgba(245,240,232,.7);
    line-height: 1.65; margin-bottom: 24px;
}
.dll-home-spotlight__cover {
    width: 100%; max-height: 280px; object-fit: cover;
    border-radius: 4px; margin-bottom: 16px;
    box-shadow: 0 8px 30px rgba(0,0,0,.15);
}
.dll-home-spotlight__book-title {
    font-family: var(--dll-serif); font-size: 1.1rem;
    font-weight: 700; color: var(--dll-vnd); margin-bottom: 16px;
}

/* ---- CATALOGUE ACCUEIL ---- */
.dll-home-books-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.dll-book-card {
    background: #fff; border-radius: 6px; overflow: hidden;
    border: 1px solid var(--dll-ivd);
    display: flex; flex-direction: column;
    transition: box-shadow .2s ease;
    cursor: pointer;
}
.dll-book-card:hover { box-shadow: 0 8px 30px rgba(0,0,0,.1); }
.dll-book-card__cover {
    position: relative; background: var(--dll-ivd);
    aspect-ratio: 2/3; overflow: hidden;
}
.dll-book-card__cover img {
    width: 100%; height: 100%; object-fit: cover;
}
.dll-badge-coll {
    position: absolute; bottom: 8px; left: 8px;
    font-size: .55rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--dll-do);
    background: rgba(26,38,32,.85);
    padding: 3px 7px; border-radius: 2px;
}
.dll-book-card__body { padding: 16px; flex: 1; }
.dll-book-collection {
    font-size: .6rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--dll-do);
    display: block; margin-bottom: 6px;
}
.dll-book-title {
    font-family: var(--dll-serif); font-size: .95rem;
    font-weight: 700; color: var(--dll-vnd);
    line-height: 1.3; margin-bottom: 6px;
}
.dll-book-author { font-size: .8rem; color: var(--dll-gl); }
.dll-book-card__foot {
    padding: 12px 16px;
    border-top: 1px solid var(--dll-ivd);
    display: flex; gap: 8px; flex-wrap: wrap;
}
.dll-page-btn {
    display: inline-flex; align-items: center;
    padding: 7px 14px; border-radius: 3px;
    font-size: .72rem; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; background: var(--dll-vnd);
    color: var(--dll-iv); text-decoration: none;
    transition: background .18s ease;
}
.dll-page-btn:hover { background: var(--dll-vn); color: var(--dll-iv); }
.dll-page-btn--outline {
    background: transparent; color: var(--dll-vnd);
    border: 1px solid var(--dll-vnd);
}
.dll-page-btn--outline:hover { background: var(--dll-vnd); color: var(--dll-iv); }

/* ---- AUTEURS ---- */
.dll-home-authors-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.dll-home-author-card {
    background: rgba(255,255,255,.05); border-radius: 8px;
    padding: 24px; border: 1px solid rgba(245,240,232,.08);
    display: flex; flex-direction: column; gap: 8px;
}
.dll-home-author-card--prio {
    border-color: rgba(184,149,42,.25);
    background: rgba(184,149,42,.05);
}
.dll-home-author-card__badge {
    font-size: .56rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--dll-do);
    background: rgba(184,149,42,.12);
    padding: 3px 8px; border-radius: 2px;
    display: inline-block; width: fit-content;
}
.dll-home-author-card__photo {
    width: 60px; height: 60px; border-radius: 50%;
    object-fit: cover; border: 2px solid rgba(184,149,42,.25);
}
.dll-home-author-card__name {
    font-family: var(--dll-serif); font-size: .95rem;
    font-weight: 700; color: var(--dll-iv);
}
.dll-home-author-card__role {
    font-size: .75rem; color: rgba(245,240,232,.5);
}
.dll-home-author-card__bio {
    font-size: .78rem; color: rgba(245,240,232,.65);
    line-height: 1.5; flex: 1;
}
.dll-home-author-card__link {
    font-size: .72rem; font-weight: 700; color: var(--dll-do);
    letter-spacing: .04em; margin-top: 4px;
}
.dll-home-author-card__link:hover { color: var(--dll-dol); }

/* ---- SONOTHÈQUE ---- */
.dll-home-audio-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.dll-home-audio-card {
    background: #fff; border-radius: 6px; overflow: hidden;
    border: 1px solid var(--dll-ivd);
    display: flex; flex-direction: column;
}
.dll-home-audio-card__cover {
    width: 100%; aspect-ratio: 1; object-fit: cover;
}
.dll-home-audio-card__body {
    padding: 14px; display: flex; flex-direction: column; gap: 6px; flex: 1;
}
.dll-home-audio-card__coll {
    font-size: .58rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--dll-do);
}
.dll-home-audio-card__title {
    font-family: var(--dll-serif); font-size: .88rem;
    font-weight: 700; color: var(--dll-vnd); line-height: 1.3;
}
.dll-home-audio-card__author { font-size: .75rem; color: var(--dll-gl); }
.dll-home-audio-btn {
    margin-top: auto; padding: 7px 0;
    background: none; border: none; cursor: pointer;
    font-size: .75rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: var(--dll-do);
    display: flex; align-items: center; gap: 6px;
    transition: color .18s;
}
.dll-home-audio-btn:hover { color: var(--dll-dol); }

/* ---- ACTUALITÉS ---- */
.dll-home-news-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.dll-home-news-card {
    background: var(--dll-iv); border-radius: 6px; overflow: hidden;
    border: 1px solid var(--dll-ivd);
    display: flex; flex-direction: column;
}
.dll-home-news-card__img {
    height: 180px; background: var(--dll-vn);
}
.dll-home-news-card__img--1 { background: linear-gradient(135deg, var(--dll-vn) 0%, var(--dll-vnd) 100%); }
.dll-home-news-card__img--2 { background: linear-gradient(135deg, #2a3d48 0%, var(--dll-vnd) 100%); }
.dll-home-news-card__img--3 { background: linear-gradient(135deg, var(--dll-vn) 0%, #3a2d20 100%); }
.dll-home-news-card__body { padding: 20px; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.dll-home-news-card__tag {
    font-size: .58rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--dll-do);
}
.dll-home-news-card__date { font-size: .75rem; color: var(--dll-gl); }
.dll-home-news-card__title {
    font-family: var(--dll-serif); font-size: 1rem;
    font-weight: 700; color: var(--dll-vnd); line-height: 1.35;
}
.dll-home-news-card__desc { font-size: .82rem; color: var(--dll-gr); line-height: 1.6; flex: 1; }
.dll-home-news-card__link {
    font-size: .75rem; font-weight: 700; color: var(--dll-do);
    margin-top: 8px; letter-spacing: .04em;
}
.dll-home-news-card__link:hover { color: var(--dll-dol); }

/* ---- CTA MANUSCRIT ---- */
.dll-home-cta-join {
    display: grid; grid-template-columns: 1fr 340px; gap: 60px;
    align-items: center;
}
.dll-home-cta-join__title {
    font-family: var(--dll-serif); font-size: 2rem;
    font-weight: 700; color: var(--dll-iv);
    line-height: 1.2; margin: 12px 0 20px;
}
.dll-home-cta-join__title em { color: var(--dll-do); font-style: italic; }
.dll-home-cta-join__desc {
    font-size: .9rem; color: rgba(245,240,232,.65);
    line-height: 1.7; margin-bottom: 28px;
}
.dll-home-cta-join__btns { display: flex; gap: 14px; flex-wrap: wrap; }
.dll-home-cta-join__checklist { display: flex; flex-direction: column; gap: 16px; }
.dll-home-cta-join__check {
    font-size: .85rem; color: rgba(245,240,232,.75);
    padding: 12px 16px;
    border: 1px solid rgba(184,149,42,.2);
    border-radius: 4px; background: rgba(184,149,42,.04);
}

/* ---- RESPONSIVE ---- */
@media (max-width: 1024px) {
    .dll-home-hero__inner { grid-template-columns: 1fr; padding: 60px 40px 80px; }
    .dll-home-hero__books { display: none; }
    .dll-home-identity-grid { grid-template-columns: repeat(2, 1fr); }
    .dll-home-books-grid { grid-template-columns: repeat(2, 1fr); }
    .dll-home-authors-grid { grid-template-columns: repeat(2, 1fr); }
    .dll-home-audio-grid { grid-template-columns: repeat(2, 1fr); }
    .dll-home-news-grid { grid-template-columns: repeat(2, 1fr); }
    .dll-home-spotlight-grid { grid-template-columns: 1fr; }
    .dll-home-cta-join { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 768px) {
    .dll-home-hero__inner { padding: 48px 24px 64px; }
    .dll-home-hero__title { font-size: 2.1rem; }
    .dll-home-hero__h1    { font-size: 2.1rem; }
    .dll-home-hero__desc  { font-size: .95rem; color: rgba(245,240,232,.9); }
    .dll-home-hero__cta   { flex-direction: column; gap: 10px; }
    .dll-home-sec { padding: 56px 0; }
    .dll-home-sec__inner { padding: 0 20px; }
    .dll-home-identity-grid { grid-template-columns: 1fr; }
    .dll-home-books-grid { grid-template-columns: 1fr; }
    .dll-home-authors-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .dll-home-audio-grid { grid-template-columns: repeat(2, 1fr); }
    .dll-home-news-grid { grid-template-columns: 1fr; }
    .dll-home-cta-join__title { font-size: 1.6rem; }
}
@media (max-width: 480px) {
    .dll-home-authors-grid { grid-template-columns: 1fr; }
    .dll-home-audio-grid   { grid-template-columns: 1fr; }
    .dll-home-books-grid   { grid-template-columns: 1fr; }
}

/* ============================================================
   CORRECTIF v16 — Couverture "Livre à l'honneur"
   Format livre vertical propre
   ============================================================ */
.dll-home-spotlight__cover {
    width: auto;
    max-width: 110px;
    height: 160px;
    object-fit: cover;
    object-position: center top;
    border-radius: 3px;
    box-shadow: 0 6px 20px rgba(0,0,0,.15);
    display: block;
    margin-bottom: 14px;
}

/* ============================================================
   CORRECTIFS v17
   1. Hero : réduire vide, remonter les livres
   2. Description livre à l'honneur
   ============================================================ */

/* --- Hero : moins de vide --- */
.dll-home-hero {
    min-height: 80vh;
}
.dll-home-hero__inner {
    padding: 60px 60px 80px;
    align-items: flex-start;
}
.dll-home-hero__books {
    padding-top: 20px;
    align-items: flex-start;
}
.dll-home-hero__book--back  { bottom: auto; top: 0;   transform: rotate(-6deg); }
.dll-home-hero__book--mid   { bottom: auto; top: 20px; transform: rotate(-2deg); }
.dll-home-hero__book--front { bottom: auto; top: 40px; transform: rotate(3deg); }

@media (max-width: 1024px) {
    .dll-home-hero { min-height: 70vh; }
    .dll-home-hero__inner { padding: 48px 40px 64px; }
}
@media (max-width: 768px) {
    .dll-home-hero { min-height: auto; }
    .dll-home-hero__inner { padding: 40px 20px 56px; }
}

/* --- Description livre à l'honneur --- */
.dll-home-spotlight__book-desc {
    font-size: .82rem;
    color: var(--dll-gr);
    line-height: 1.6;
    margin-bottom: 16px;
    font-style: italic;
}

/* ============================================================
   CORRECTIFS v18 — Catalogue : shortcuts + badge audio
   ============================================================ */

/* --- Liens rapides hero Catalogue --- */
.dll-cat-hero__shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}
.dll-cat-hero__shortcut {
    display: inline-block;
    padding: 5px 14px;
    border: 1px solid rgba(184,149,42,.35);
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .06em;
    color: var(--dll-do);
    text-decoration: none;
    transition: background .18s, color .18s;
    white-space: nowrap;
}
.dll-cat-hero__shortcut:hover {
    background: var(--dll-do);
    color: var(--dll-vnd);
    border-color: var(--dll-do);
}

/* --- Badge audio --- */
.dll-badge-audio {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--dll-bv);
    background: rgba(122,179,168,.1);
    border: 1px solid rgba(122,179,168,.3);
    padding: 2px 8px;
    border-radius: 10px;
    margin-top: 4px;
    position: absolute;
    bottom: 8px;
    right: 8px;
}
/* Positionnement relatif sur le parent cover */
.dll-book-card__cover {
    position: relative;
}

/* ============================================================
   LIBRAIRIE — Styles inlinés v19 (contournement CDN dll-wc.css)
   ============================================================ */

/* Grille */
body ul.products.columns-4 {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Carte */
article.livre-card {
    background: #fff;
    border: 1px solid #ece6d8;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s ease;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
}
article.livre-card:hover { box-shadow: 0 8px 30px rgba(0,0,0,.1); }

/* Couverture */
.card-cover { position: relative; overflow: hidden; height: 240px; background: #ece6d8; flex-shrink: 0; }
.card-cover img { width: 100% !important; height: 240px !important; object-fit: cover !important; object-position: center top !important; display: block !important; }
.cover-ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.ph-init { font-family: 'Playfair Display', Georgia, serif; font-size: 1.8rem; font-weight: 700; }

/* Corps */
.card-body { padding: 14px 14px 0; display: flex; flex-direction: column; gap: 5px; flex: 1; }
.card-col { font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #b8952a; display: block; }
h2.card-title { font-family: 'Playfair Display', Georgia, serif; font-size: .92rem; font-weight: 700; color: #1a2620; line-height: 1.3; margin: 0; }
h2.card-title a { color: inherit; text-decoration: none; }
p.card-auteur { font-size: .8rem; color: #686868; font-style: italic; margin: 0; }
.card-formats { display: flex; gap: 5px; flex-wrap: wrap; }
.fmt-tag { font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: 2px 7px; border-radius: 2px; border: 1px solid #ddd8cc; color: #686868; }
.fmt-p { border-color: rgba(45,59,53,.4); color: #2d3b35; }
.fmt-n { border-color: rgba(122,179,168,.5); color: #5a9a8e; }

/* Prix */
.prix-block { margin: 4px 0 0; }
.prix-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 3px; }
.prix-lbl { font-size: .65rem; color: #686868; font-weight: 600; min-width: 52px; }
.prix-val { font-family: 'Playfair Display', Georgia, serif; font-size: .95rem; font-weight: 700; color: #b8952a; }
.prix-val .woocommerce-Price-amount { color: #b8952a; }

/* Statut */
.card-statut { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.statut-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.statut-txt { font-size: .68rem; font-weight: 600; color: #686868; }

/* CTA */
.card-cta { padding: 12px 14px 10px; display: flex; flex-direction: column; gap: 8px; border-top: 1px solid #f0ebe0; }

/* Bouton panier */
a.btn-panier {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: 100% !important;
    padding: 10px 14px !important;
    background: #2d3b35 !important;
    color: #f5f0e8 !important;
    border: none !important;
    border-radius: 3px !important;
    font-size: .72rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .18s !important;
    box-sizing: border-box !important;
}
a.btn-panier:hover { background: #1a2620 !important; color: #f5f0e8 !important; }

/* Lien fiche */
a.card-fiche-lnk {
    display: block !important;
    text-align: center !important;
    font-size: .72rem !important;
    font-weight: 600 !important;
    color: #b8952a !important;
    text-decoration: none !important;
    padding-bottom: 2px !important;
}
a.card-fiche-lnk:hover { color: #d4b060 !important; }

/* En-tête librairie */
.dll-lib-header { background: #2d3b35; padding: 56px 40px 48px; }
.dll-lib-header__inner { max-width: 1200px; margin: 0 auto; }
.dll-lib-header__eyebrow { font-size: .62rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #7ab3a8; margin-bottom: 12px; display: block; }
.dll-lib-header__title { font-family: 'Playfair Display', Georgia, serif; font-size: 2rem; font-weight: 700; color: #f5f0e8; margin-bottom: 10px; }
.dll-lib-header__desc { font-size: .88rem; color: rgba(245,240,232,.65); line-height: 1.6; margin-bottom: 24px; max-width: 600px; }
.dll-lib-header__stats { display: flex; gap: 32px; flex-wrap: wrap; }
.dll-lib-stat__num { font-family: 'Playfair Display', Georgia, serif; font-size: 1.8rem; font-weight: 700; color: #b8952a; display: block; }
.dll-lib-stat__label { font-size: .6rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: rgba(245,240,232,.5); }
.dll-lib-wrap { max-width: 1200px; margin: 0 auto; padding: 36px 40px 80px; }

/* Fiche produit WC */
.woocommerce div.product .product_title { font-family: 'Playfair Display', Georgia, serif; font-size: 1.8rem; font-weight: 700; color: #1a2620; }
.woocommerce div.product .price { color: #b8952a; font-size: 1.4rem; font-weight: 700; }
.woocommerce div.product .single_add_to_cart_button { background: #2d3b35 !important; color: #f5f0e8 !important; border: none !important; border-radius: 3px !important; padding: 12px 28px !important; font-size: .8rem !important; font-weight: 700 !important; }

/* Responsive librairie */
@media (max-width: 1024px) {
    body ul.products.columns-4 { grid-template-columns: repeat(2, 1fr) !important; }
    .dll-lib-wrap { padding: 28px 24px 60px; }
    .dll-lib-header { padding: 44px 24px 38px; }
}
@media (max-width: 600px) {
    body ul.products.columns-4 { grid-template-columns: 1fr !important; }
}


/* ============================================================
   LIBRAIRIE v20 — Hero, filtres, centrage, audio
   ============================================================ */

/* ---- Hero Librairie : habiller l'en-tête WC natif ---- */
.woocommerce-page .woocommerce-products-header,
body.woocommerce .woocommerce-products-header {
    background: #2d3b35;
    padding: 56px 40px 48px;
    margin: 0;
}
.woocommerce-page .woocommerce-products-header::before {
    content: 'LIBRAIRIE · ÉDITIONS DE LA LUNE';
    display: block;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #7ab3a8;
    margin-bottom: 12px;
}
.woocommerce-page .woocommerce-products-header .page-title,
body.woocommerce .woocommerce-products-header .page-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    font-weight: 700;
    color: #f5f0e8;
    margin: 0 0 10px;
}

/* Si le header est généré par dll-lib-header */
.dll-lib-header {
    background: #2d3b35;
    padding: 56px 40px 48px;
    margin: 0;
}
.dll-lib-header + * { margin-top: 0; }

/* ---- Fil d'Ariane ---- */
.woocommerce-breadcrumb {
    background: #f5f0e8;
    padding: 10px 40px;
    font-size: .78rem;
    color: #686868;
    margin: 0 !important;
    max-width: 100%;
}
.woocommerce-breadcrumb a { color: #b8952a; text-decoration: none; }

/* ---- Zone filtres et tri ---- */
.woocommerce-products-header + .woocommerce,
.woocommerce-page .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 40px 80px;
}
.toolbar-container,
.woocommerce-toolbar,
.lib-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 16px 0 20px;
    border-bottom: 1px solid #ece6d8;
    margin-bottom: 28px;
}
.lib-filter-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.lib-filter-pill {
    padding: 5px 14px;
    border: 1px solid #ece6d8;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    color: #686868;
    cursor: pointer;
    transition: all .18s;
    background: #fff;
    text-decoration: none;
}
.lib-filter-pill:hover,
.lib-filter-pill.active {
    background: #2d3b35;
    color: #f5f0e8;
    border-color: #2d3b35;
}
.lib-filter-pill--audio {
    border-color: rgba(122,179,168,.4);
    color: #7ab3a8;
}
.lib-filter-pill--audio:hover,
.lib-filter-pill--audio.active {
    background: #7ab3a8;
    color: #1a2620;
    border-color: #7ab3a8;
}

/* Select tri */
.woocommerce-ordering {
    margin: 0;
    margin-left: auto;
}
.woocommerce-ordering select {
    padding: 6px 12px;
    border: 1px solid #ece6d8;
    border-radius: 3px;
    font-size: .8rem;
    color: #2d3b35;
    background: #fff;
    outline: none;
}

/* Compteur résultats */
.woocommerce-result-count {
    font-size: .8rem;
    color: #686868;
    margin: 0;
    white-space: nowrap;
}

/* ---- Centrage du wrapper principal ---- */
.dll-lib-wrap {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 32px 40px 80px !important;
}

/* ---- Lecteur audio : toujours en bas, jamais au milieu ---- */
/* neutralized audio-bar transform:none */

/* ---- Responsive Librairie ---- */
@media (max-width: 1024px) {
    .woocommerce-page .woocommerce-products-header,
    .dll-lib-header { padding: 44px 24px 38px; }
    .woocommerce-breadcrumb { padding: 10px 24px; }
    .woocommerce-page .woocommerce,
    .dll-lib-wrap { padding: 24px 24px 60px !important; }
}
@media (max-width: 600px) {
    .woocommerce-page .woocommerce-products-header,
    .dll-lib-header { padding: 36px 20px 28px; }
    .woocommerce-breadcrumb { padding: 8px 20px; }
    .woocommerce-page .woocommerce,
    .dll-lib-wrap { padding: 20px 20px 60px !important; }
    .toolbar-container { flex-direction: column; align-items: flex-start; }
    .woocommerce-ordering { margin-left: 0; }
}


/* ============================================================
   LIBRAIRIE v21 — Ciblage classes réelles du template
   Classes : .dll-librairie-hero, .dll-lib-filters-bar,
             .dll-librairie-grid-wrap, .dll-hero-*, .dll-filter-*
   ============================================================ */

/* ---- Hero Librairie ---- */
.dll-librairie-hero {
    background: #2d3b35;
    padding: 56px 40px 48px;
    margin: 0;
}
.dll-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}
.dll-hero-eye {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #7ab3a8;
    margin-bottom: 14px;
}
h1.dll-hero-h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    font-weight: 700;
    color: #f5f0e8;
    margin: 0 0 12px;
}
.dll-hero-sub {
    font-size: .88rem;
    color: rgba(245,240,232,.65);
    line-height: 1.65;
    margin: 0;
    max-width: 520px;
}
.dll-hero-sub em { color: #d4b060; font-style: italic; }

/* Stats hero */
.dll-hero-stats {
    display: flex;
    gap: 28px;
    flex-shrink: 0;
    align-items: flex-start;
    flex-wrap: wrap;
}
.dll-hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.dll-hero-stat-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    font-weight: 700;
    color: #b8952a;
    line-height: 1;
}
.dll-hero-stat-label {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(245,240,232,.45);
    text-align: center;
}
.dll-hero-stat--audio .dll-hero-stat-icon {
    color: #7ab3a8;
    display: block;
    margin-bottom: 2px;
}
.dll-hero-stat--audio .dll-hero-stat-num { color: #7ab3a8; }

/* Fil d'Ariane */
.dll-breadcrumb {
    background: #ece6d8;
    padding: 0;
}
.dll-bc-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 10px 40px;
    font-size: .78rem;
    color: #686868;
    display: flex;
    align-items: center;
    gap: 8px;
}
.dll-bc-inner a { color: #b8952a; text-decoration: none; }
.dll-bc-sep { opacity: .4; }

/* ---- Barre de filtres ---- */
.dll-lib-filters-bar {
    background: #f5f0e8;
    border-bottom: 1px solid #ece6d8;
    position: sticky;
    top: 0;
    z-index: 100;
}
.dll-lib-filters-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 14px 40px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.dll-filter-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #686868;
    flex-shrink: 0;
}
.dll-filter-btns {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    flex: 1;
}
.dll-filter-btn {
    padding: 5px 14px;
    border: 1px solid #ddd8cc;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    color: #686868;
    background: #fff;
    cursor: pointer;
    transition: all .18s;
    font-family: 'Source Sans 3', system-ui, sans-serif;
}
.dll-filter-btn:hover,
.dll-filter-btn.active {
    background: #2d3b35;
    color: #f5f0e8;
    border-color: #2d3b35;
}
.dll-filter-sort {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
    flex-shrink: 0;
}
.dll-filter-sort select {
    padding: 5px 10px;
    border: 1px solid #ece6d8;
    border-radius: 3px;
    font-size: .8rem;
    color: #2d3b35;
    background: #fff;
}
.dll-filter-count {
    font-size: .78rem;
    color: #686868;
    white-space: nowrap;
}

/* ---- Wrapper grille produits ---- */
.dll-librairie-grid-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 36px 40px 100px;
}
.dll-librairie-grid-wrap ul.products.columns-4 {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
    .dll-librairie-hero { padding: 44px 24px 38px; }
    .dll-bc-inner { padding: 10px 24px; }
    .dll-lib-filters-inner { padding: 12px 24px; }
    .dll-librairie-grid-wrap { padding: 28px 24px 80px; }
    .dll-librairie-grid-wrap ul.products.columns-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .dll-hero-inner { flex-direction: column; }
    .dll-hero-stats { flex-direction: row; }
}
@media (max-width: 600px) {
    .dll-librairie-hero { padding: 36px 20px 28px; }
    .dll-bc-inner { padding: 8px 20px; }
    .dll-lib-filters-inner { padding: 10px 20px; }
    .dll-librairie-grid-wrap { padding: 20px 20px 80px; }
    .dll-librairie-grid-wrap ul.products.columns-4 {
        grid-template-columns: 1fr !important;
    }
    .dll-filter-sort { margin-left: 0; }
}


/* ============================================================
   LIBRAIRIE v22 — Inspiré de dll-boutique.html
   Adaptation des classes maquette aux classes WP réelles
   ============================================================ */

/* ══ HERO : .dll-librairie-hero → inspiré .dll-shop-hero ══ */
.dll-librairie-hero {
    background: var(--dll-vn);
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 340px;
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 0;
}
.dll-librairie-hero::before {
    content: '';
    position: absolute;
    right: -60px; top: -60px;
    width: 320px; height: 320px;
    border-radius: 50%;
    border: 1px solid rgba(184,149,42,.06);
    pointer-events: none;
}
.dll-hero-inner {
    grid-column: 1;
    padding: 52px 44px 48px 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 2;
    max-width: none;
    margin: 0;
}
.dll-hero-eye {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--dll-do);
    margin-bottom: 8px;
    display: block;
}
.dll-gold-line {
    width: 48px; height: 2px;
    background: var(--dll-do);
    margin: 0 0 18px;
    border-radius: 1px;
    display: block;
}
h1.dll-hero-h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.8rem;
    font-weight: 700;
    color: var(--dll-iv);
    line-height: 1.08;
    margin: 0 0 14px;
}
h1.dll-hero-h1 em {
    color: var(--dll-do);
    font-style: italic;
    font-weight: 400;
}
.dll-hero-sub {
    font-size: .88rem;
    color: rgba(245,240,232,.55);
    line-height: 1.7;
    margin: 0 0 26px;
    max-width: 380px;
}
.dll-hero-sub em { color: var(--dll-do-light); font-style: italic; }

/* Boutons hero */
.dll-hero-btns {
    display: flex;
    gap: 11px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}
.dll-hero-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Source Sans 3', system-ui, sans-serif;
    font-size: .73rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 13px 26px;
    border-radius: 2px;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: .2s;
    text-decoration: none;
}
.dll-hero-btn--gold {
    background: var(--dll-do);
    color: var(--dll-vn-deep);
}
.dll-hero-btn--gold:hover { background: var(--dll-do-light); }
.dll-hero-btn--outline {
    background: transparent;
    color: var(--dll-iv);
    border-color: rgba(245,240,232,.35);
}
.dll-hero-btn--outline:hover { border-color: var(--dll-iv); }

/* Info livraison */
.dll-hero-info {
    display: flex;
    gap: 28px;
    padding-top: 20px;
    border-top: 1px solid rgba(184,149,42,.14);
    flex-wrap: wrap;
}
.dll-shop-info-item {
    display: flex;
    align-items: center;
    gap: 9px;
}
.dll-shop-info-icon {
    width: 30px; height: 30px;
    border-radius: 50%;
    border: 1px solid rgba(184,149,42,.3);
    display: flex; align-items: center; justify-content: center;
    color: var(--dll-do);
    font-size: .9rem;
    flex-shrink: 0;
}
.dll-shop-info-text { font-size: .72rem; color: rgba(245,240,232,.5); line-height: 1.4; }
.dll-shop-info-text strong { display: block; color: rgba(245,240,232,.75); font-weight: 600; }

/* Stats hero */
.dll-hero-stats {
    grid-column: 2;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 40px 52px 0;
    position: relative;
    z-index: 2;
    gap: 28px;
}
.dll-hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(184,149,42,.15);
    border-radius: 4px;
    padding: 20px 24px;
}
.dll-hero-stat-num {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--dll-do);
    line-height: 1;
}
.dll-hero-stat-label {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(245,240,232,.45);
    text-align: center;
    margin-top: 4px;
}
.dll-hero-stat--audio .dll-hero-stat-num { color: var(--dll-bv); }

/* Fil d'Ariane */
.dll-breadcrumb {
    background: var(--dll-iv-deep);
    border-bottom: 1px solid rgba(0,0,0,.06);
}
.dll-bc-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 10px 60px;
    font-size: .72rem;
    color: var(--dll-gl);
    display: flex;
    align-items: center;
    gap: 8px;
}
.dll-bc-inner a { color: var(--dll-do); text-decoration: none; }
.dll-bc-sep { opacity: .4; }
.dll-bc-cur { color: var(--dll-vn); font-weight: 600; }

/* ══ FILTRES : inspiré .dll-filter-bar de la maquette ══ */
.dll-lib-filters-bar {
    background: #fff;
    border-bottom: 1px solid var(--dll-iv-deep);
    padding: 13px 60px;
    display: flex;
    align-items: center;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
    flex-wrap: wrap;
    margin: 0;
}
.dll-lib-filters-inner {
    max-width: none;
    margin: 0;
    padding: 0;
    display: contents;
}
.dll-filter-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dll-gl);
    flex-shrink: 0;
}

/* Pills inspirés maquette */
.dll-filter-btns {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    flex: 1;
}
.dll-filter-btn {
    font-family: 'Source Sans 3', system-ui, sans-serif;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .05em;
    padding: 5px 13px;
    border-radius: 20px;
    border: 1.5px solid var(--dll-iv-deep);
    background: #fff;
    color: var(--dll-gr);
    cursor: pointer;
    transition: .2s;
    white-space: nowrap;
}
.dll-filter-btn:hover { border-color: var(--dll-vn); color: var(--dll-vn); }
.dll-filter-btn.active {
    background: var(--dll-vn);
    color: var(--dll-iv);
    border-color: var(--dll-vn);
}

/* Sort select */
.dll-filter-sort {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
    flex-shrink: 0;
}
.dll-filter-sort .woocommerce-ordering { margin: 0; }
.dll-filter-sort select,
.dll-filter-sort .woocommerce-ordering select {
    font-family: 'Source Sans 3', system-ui, sans-serif;
    font-size: .76rem;
    color: var(--dll-gr);
    border: 1.5px solid var(--dll-iv-deep);
    border-radius: 4px;
    padding: 8px 28px 8px 12px;
    background: var(--dll-iv);
    outline: none;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
}

/* Compteur */
.dll-filter-count {
    font-size: .74rem;
    color: var(--dll-gl);
    white-space: nowrap;
    flex-shrink: 0;
}

/* ══ GRILLE : wrapper ══ */
.dll-librairie-grid-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 44px 60px 100px;
}
.dll-librairie-grid-wrap ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* ══ CARTES : inspiré .dll-product-card ══ */
article.livre-card {
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(0,0,0,.08);
    transition: transform .25s, box-shadow .25s;
    cursor: pointer;
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto !important;
    border: none;
}
article.livre-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,.15);
    transform: translateY(-4px);
}

/* Couverture */
.card-cover {
    width: 100%;
    aspect-ratio: 2/3;
    overflow: hidden;
    background: var(--dll-vn);
    position: relative;
    flex-shrink: 0;
    height: auto;
}
.card-cover img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
    transition: transform .4s ease !important;
}
article.livre-card:hover .card-cover img { transform: scale(1.03); }

/* Placeholders */
.cover-ph {
    position: absolute;
    inset: 0;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.cover-ph[style*="display:flex"],
.cover-ph[style*="display: flex"] { display: flex !important; }
.ph-init {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    font-weight: 700;
    opacity: .9;
}
.ph-col {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .55;
}

/* Badges overlay */
.card-overlay-badges {
    position: absolute;
    top: 10px; right: 10px;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.badge-audio {
    font-size: .55rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 2px;
    background: var(--dll-bv);
    color: var(--dll-vn-deep);
}

/* Corps carte */
.card-body {
    padding: 14px 14px 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}
.card-col {
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--dll-do);
    display: block;
}
h2.card-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .9rem;
    font-weight: 600;
    color: var(--dll-vn-deep);
    line-height: 1.3;
    margin: 0;
}
h2.card-title a { color: inherit; text-decoration: none; }
p.card-auteur {
    font-size: .78rem;
    color: var(--dll-gl);
    font-style: italic;
    margin: 0;
}
.card-formats { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 2px; }
.fmt-tag {
    font-size: .56rem; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
    padding: 2px 7px; border-radius: 2px;
    border: 1px solid var(--dll-iv-deep);
    color: var(--dll-gl);
}
.fmt-p { border-color: rgba(45,59,53,.35); color: var(--dll-vn); }
.fmt-n { border-color: rgba(122,179,168,.4); color: #5a9a8e; }

/* Prix */
.prix-block { margin: 6px 0 0; }
.prix-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 2px; }
.prix-lbl { font-size: .62rem; color: var(--dll-gl); font-weight: 600; min-width: 50px; }
.prix-val {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .94rem;
    font-weight: 600;
    color: var(--dll-do);
}
.prix-val .woocommerce-Price-amount { color: var(--dll-do); }

/* Statut dispo */
.card-statut { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.statut-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.statut-txt { font-size: .68rem; font-weight: 600; color: var(--dll-gl); }

/* CTA — inspiré maquette : prix + bouton sur même ligne */
.card-cta {
    padding: 12px 14px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-top: 1px solid var(--dll-iv-deep);
    margin-top: auto;
}
a.btn-panier {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .62rem !important;
    font-weight: 600 !important;
    letter-spacing: .07em !important;
    text-transform: uppercase !important;
    color: var(--dll-vn) !important;
    border: 1px solid var(--dll-vn) !important;
    padding: 6px 12px !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    transition: .2s !important;
    background: none !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}
a.btn-panier:hover {
    background: var(--dll-vn) !important;
    color: var(--dll-iv) !important;
}
a.card-fiche-lnk {
    display: inline-flex !important;
    align-items: center !important;
    font-size: .62rem !important;
    font-weight: 600 !important;
    letter-spacing: .07em !important;
    text-transform: uppercase !important;
    color: var(--dll-vn) !important;
    border: 1px solid var(--dll-vn) !important;
    padding: 6px 12px !important;
    border-radius: 2px !important;
    text-decoration: none !important;
    transition: .2s !important;
    white-space: nowrap !important;
}
a.card-fiche-lnk:hover {
    background: var(--dll-vn) !important;
    color: var(--dll-iv) !important;
}
.added_to_cart {
    font-size: .68rem;
    color: #27ae60;
    font-weight: 600;
    text-decoration: none;
}

/* ══ PAGINATION ══ */
.woocommerce-pagination,
nav.woocommerce-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 48px;
    padding-top: 28px;
    border-top: 1px solid var(--dll-iv-deep);
}
.woocommerce-pagination ul {
    display: flex !important;
    gap: 6px;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px; height: 36px;
    border: 1.5px solid var(--dll-iv-deep);
    border-radius: 3px;
    font-size: .82rem;
    color: var(--dll-vn);
    text-decoration: none;
    transition: all .18s;
}
.woocommerce-pagination ul li span.current,
.woocommerce-pagination ul li a:hover {
    background: var(--dll-vn);
    color: var(--dll-iv);
    border-color: var(--dll-vn);
}

/* ══ FICHE PRODUIT WC ══ */
.woocommerce div.product .product_title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.8rem; font-weight: 700; color: var(--dll-vn-deep);
}
.woocommerce div.product .price { color: var(--dll-do); font-size: 1.4rem; font-weight: 700; }
.woocommerce div.product .single_add_to_cart_button {
    background: var(--dll-vn) !important; color: var(--dll-iv) !important;
    border: none !important; border-radius: 3px !important;
    padding: 12px 28px !important; font-size: .8rem !important;
    font-weight: 700 !important; letter-spacing: .1em !important;
    text-transform: uppercase !important; transition: background .18s !important;
}
.woocommerce div.product .single_add_to_cart_button:hover { background: var(--dll-vn-deep) !important; }

/* ══ RESPONSIVE ══ */
@media (max-width: 1200px) {
    .dll-librairie-hero { grid-template-columns: 1fr; }
    .dll-hero-inner { padding: 48px 44px; }
    .dll-hero-stats { grid-column: 1; flex-direction: row; padding: 0 44px 40px; justify-content: flex-start; }
    .dll-librairie-grid-wrap { padding: 36px 40px 80px; }
    .dll-lib-filters-bar { padding: 13px 40px; }
    .dll-bc-inner { padding: 10px 40px; }
}
@media (max-width: 1024px) {
    .dll-librairie-grid-wrap ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .dll-hero-inner { padding: 44px 24px; }
    .dll-hero-stats { padding: 0 24px 36px; }
    .dll-librairie-grid-wrap { padding: 28px 24px 80px; }
    .dll-lib-filters-bar { padding: 12px 24px; }
    .dll-bc-inner { padding: 10px 24px; }
}
@media (max-width: 600px) {
    .dll-librairie-grid-wrap ul.products {
        grid-template-columns: 1fr !important;
    }
    h1.dll-hero-h1 { font-size: 2rem; }
    .dll-hero-inner { padding: 36px 20px; }
    .dll-hero-stats { padding: 0 20px 28px; gap: 12px; }
    .dll-librairie-grid-wrap { padding: 20px 20px 80px; }
    .dll-lib-filters-bar { padding: 10px 20px; flex-wrap: wrap; }
    .dll-filter-sort { margin-left: 0; width: 100%; }
    .card-cta { flex-direction: column; align-items: stretch; }
    a.btn-panier, a.card-fiche-lnk { width: 100% !important; justify-content: center !important; }
}


/* ============================================================
   v22 PATCH — Hero compact, overlay panier, livres hero,
   bloc panier bas de page
   ============================================================ */

/* ── Hero compact ~300px ── */
.dll-librairie-hero {
    min-height: 300px !important;
    height: auto !important;
}
.dll-hero-inner {
    padding: 40px 52px 36px 60px !important;
    justify-content: space-between !important;
}
h1.dll-hero-h1 { font-size: 2.2rem !important; margin-bottom: 10px !important; }
.dll-hero-sub { margin-bottom: 16px !important; }
.dll-hero-info { padding-top: 14px !important; }
.dll-hero-stats {
    padding: 20px 52px 24px !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 20px !important;
}
.dll-hero-stat {
    padding: 14px 20px !important;
}
.dll-hero-stat-num { font-size: 1.8rem !important; }

/* ── 3 livres dans le hero ── */
.dll-hero-books {
    grid-column: 2;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 32px 52px 0;
    gap: 14px;
    position: relative;
    z-index: 2;
}
.dll-hero-book {
    display: block;
    flex-shrink: 0;
    transition: transform .3s ease;
    text-decoration: none;
}
.dll-hero-book:hover { transform: translateY(-8px) !important; }
.dll-hero-book img {
    border-radius: 2px 4px 4px 2px;
    box-shadow: 6px 10px 24px rgba(0,0,0,.5), -2px 0 0 rgba(0,0,0,.4);
    display: block;
    height: auto;
    max-height: 200px;
    width: auto;
    object-fit: cover;
}
.dll-hero-book-ph {
    height: 190px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(184,149,42,.2);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: rgba(245,240,232,.4);
}

/* ── Overlay "Ajouter au panier" au hover desktop ── */
.card-cover {
    position: relative !important;
    height: auto !important;
    aspect-ratio: 2/3 !important;
}
.card-cover-overlay {
    position: absolute;
    inset: 0;
    background: rgba(26,38,32,.72);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .25s ease;
    z-index: 4;
}
article.livre-card:hover .card-cover-overlay { opacity: 1; }

/* Bouton panier dans l'overlay */
.card-cover-overlay .btn-panier-overlay {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    padding: 10px 18px !important;
    background: var(--dll-do) !important;
    color: var(--dll-vn-deep) !important;
    border: none !important;
    border-radius: 2px !important;
    font-size: .68rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    transition: background .18s !important;
}
.card-cover-overlay .btn-panier-overlay:hover {
    background: var(--dll-do-light) !important;
    color: var(--dll-vn-deep) !important;
}

/* Masquer le bouton panier direct dans .card-cta sur desktop */
@media (min-width: 601px) {
    .card-cta a.btn-panier { display: none !important; }
}
/* Montrer sur mobile */
@media (max-width: 600px) {
    .card-cover-overlay { display: none !important; }
    .card-cta a.btn-panier {
        display: inline-flex !important;
        width: 100% !important;
        justify-content: center !important;
    }
}

/* ── Bloc panier WC bas de page ── */
.dll-cart-bar-wrap {
    background: var(--dll-vn-deep);
    padding: 24px 60px;
}
.dll-cart-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    gap: 24px;
    flex-wrap: wrap;
}
.dll-cart-bar__left {
    display: flex;
    align-items: center;
    gap: 16px;
}
.dll-cart-bar__icon {
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 1.5px solid rgba(184,149,42,.3);
    display: flex; align-items: center; justify-content: center;
    color: var(--dll-do);
    flex-shrink: 0;
}
.dll-cart-bar__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .95rem;
    color: var(--dll-iv);
    font-weight: 600;
    margin-bottom: 2px;
}
.dll-cart-bar__sub {
    font-size: .72rem;
    color: rgba(245,240,232,.4);
}
.dll-cart-bar__total {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--dll-do);
    margin-left: auto;
}
.dll-cart-bar__total .woocommerce-Price-amount { color: var(--dll-do); }

/* Responsive */
@media (max-width: 1024px) {
    .dll-hero-inner { padding: 36px 32px 30px !important; }
    .dll-hero-stats { padding: 16px 32px 20px !important; }
    .dll-librairie-hero { grid-template-columns: 1fr !important; }
    .dll-hero-books { grid-column: 1; padding: 0 32px 32px; justify-content: flex-start; }
    .dll-hero-book img { max-height: 160px; }
    .dll-cart-bar-wrap { padding: 20px 24px; }
}
@media (max-width: 600px) {
    .dll-hero-inner { padding: 28px 20px 24px !important; }
    .dll-hero-stats { padding: 12px 20px 16px !important; flex-direction: row; }
    .dll-hero-books { padding: 0 20px 24px; gap: 10px; }
    .dll-hero-book img { max-height: 130px; }
    .dll-cart-bar-wrap { padding: 16px 20px; }
    .dll-cart-bar { flex-direction: column; align-items: flex-start; }
    .dll-cart-bar__total { margin-left: 0; }
}


/* ============================================================
   v23 — Hero compact livres droite, overlay panier,
   bloc panier stylé, audio fix
   ============================================================ */

/* ══ HERO v23 : compact 300-340px, livres à droite ══ */
.dll-librairie-hero {
    background: var(--dll-vn) !important;
    display: grid !important;
    grid-template-columns: 1fr 420px !important;
    min-height: 300px !important;
    max-height: 340px !important;
    height: 320px !important;
    position: relative !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
}

/* Contenu gauche */
.dll-hero-inner {
    grid-column: 1 !important;
    grid-row: 1 !important;
    padding: 36px 40px 36px 60px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 2 !important;
    max-width: none !important;
    margin: 0 !important;
    gap: 0 !important;
}
.dll-hero-eye {
    font-size: .6rem !important;
    letter-spacing: .2em !important;
    color: var(--dll-do) !important;
    margin-bottom: 6px !important;
    display: block !important;
}
.dll-gold-line {
    width: 36px !important; height: 2px !important;
    background: var(--dll-do) !important;
    margin: 0 0 14px !important;
    display: block !important;
}
h1.dll-hero-h1 {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 2rem !important;
    font-weight: 700 !important;
    color: var(--dll-iv) !important;
    line-height: 1.1 !important;
    margin: 0 0 10px !important;
}
h1.dll-hero-h1 em { color: var(--dll-do) !important; font-style: italic !important; font-weight: 400 !important; }
.dll-hero-sub {
    font-size: .82rem !important;
    color: rgba(245,240,232,.55) !important;
    line-height: 1.6 !important;
    margin: 0 0 16px !important;
    max-width: 340px !important;
}
.dll-hero-info {
    display: flex !important;
    gap: 20px !important;
    padding-top: 14px !important;
    border-top: 1px solid rgba(184,149,42,.14) !important;
    flex-wrap: wrap !important;
    margin-bottom: 0 !important;
}
.dll-shop-info-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.dll-shop-info-icon {
    font-size: 1rem !important;
    flex-shrink: 0 !important;
    width: auto !important; height: auto !important;
    border: none !important;
    background: none !important;
}
.dll-shop-info-text { font-size: .7rem !important; color: rgba(245,240,232,.5) !important; line-height: 1.3 !important; }
.dll-shop-info-text strong { display: block !important; color: rgba(245,240,232,.75) !important; font-size: .72rem !important; }

/* Stats : intégrées dans hero-inner, pas séparées */
.dll-hero-stats {
    grid-column: 1 !important;
    grid-row: 1 !important;
    display: none !important;  /* cachées — remplacées par dll-hero-info */
}

/* ══ LIVRES à droite : composition horizontale ══ */
.dll-hero-books {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    padding: 28px 40px 0 20px !important;
    gap: 10px !important;
    position: relative !important;
    z-index: 2 !important;
    overflow: hidden !important;
}
.dll-hero-book {
    display: block !important;
    flex-shrink: 0 !important;
    transition: transform .3s ease !important;
    text-decoration: none !important;
    position: relative !important;
}
/* Composition : livre du milieu plus haut */
.dll-hero-book:nth-child(1) { transform: rotate(-5deg) translateY(10px) !important; z-index: 1; }
.dll-hero-book:nth-child(2) { transform: rotate(0deg) translateY(-8px) !important; z-index: 3; }
.dll-hero-book:nth-child(3) { transform: rotate(4deg) translateY(6px) !important; z-index: 2; }
.dll-hero-book:hover { transform: translateY(-12px) rotate(0deg) !important; z-index: 10; }
.dll-hero-book img {
    border-radius: 2px 4px 4px 2px !important;
    box-shadow: 4px 8px 20px rgba(0,0,0,.5), -2px 0 0 rgba(0,0,0,.35) !important;
    display: block !important;
    width: 100px !important;
    height: 150px !important;
    object-fit: cover !important;
    object-position: center top !important;
}
.dll-hero-book:nth-child(2) img { width: 115px !important; height: 170px !important; }
.dll-hero-book-ph {
    width: 100px !important;
    height: 150px !important;
    background: rgba(255,255,255,.07) !important;
    border: 1px solid rgba(184,149,42,.2) !important;
    border-radius: 3px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    color: rgba(245,240,232,.35) !important;
    box-shadow: 4px 8px 20px rgba(0,0,0,.4) !important;
}

/* ══ OVERLAY PANIER au hover ══ */
.card-cover {
    position: relative !important;
    overflow: hidden !important;
    height: 240px !important;
    background: var(--dll-vn) !important;
    flex-shrink: 0 !important;
}
.card-cover img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
    transition: transform .35s ease !important;
}
article.livre-card:hover .card-cover img { transform: scale(1.04) !important; }
.card-cover-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(26,38,32,.75) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0 !important;
    transition: opacity .25s ease !important;
    z-index: 5 !important;
}
article.livre-card:hover .card-cover-overlay { opacity: 1 !important; }

/* Bouton WC dans l'overlay */
.card-cover-overlay .button,
.card-cover-overlay a.button,
.card-cover-overlay .add_to_cart_button {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 10px 18px !important;
    background: var(--dll-do) !important;
    color: var(--dll-vn-deep) !important;
    border: none !important;
    border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .18s !important;
    white-space: nowrap !important;
}
.card-cover-overlay .button:hover,
.card-cover-overlay .add_to_cart_button:hover {
    background: var(--dll-do-light) !important;
    color: var(--dll-vn-deep) !important;
}
/* Cacher le bouton panier dans .card-cta sur desktop */
@media (min-width: 601px) {
    .card-cta a.btn-panier { display: none !important; }
    .card-cta { justify-content: flex-end !important; }
}
/* Mobile : afficher le bouton, cacher l'overlay */
@media (max-width: 600px) {
    .card-cover-overlay { display: none !important; }
    .card-cta a.btn-panier {
        display: inline-flex !important;
        flex: 1 !important;
        justify-content: center !important;
    }
    .card-cta { justify-content: space-between !important; }
}

/* ══ BLOC PANIER BAS DE PAGE ══ */
.dll-cart-bar-wrap {
    background: var(--dll-vn-deep) !important;
    padding: 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(184,149,42,.12) !important;
}
.dll-cart-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 22px 60px !important;
    gap: 24px !important;
    flex-wrap: wrap !important;
}
.dll-cart-bar__left {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
}
.dll-cart-bar__icon {
    width: 46px !important; height: 46px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(184,149,42,.3) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    color: var(--dll-do) !important;
    flex-shrink: 0 !important;
    background: rgba(184,149,42,.06) !important;
}
.dll-cart-bar__icon svg { width: 20px !important; height: 20px !important; }
.dll-cart-bar__title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .92rem !important;
    color: var(--dll-iv) !important;
    font-weight: 600 !important;
    margin-bottom: 2px !important;
}
.dll-cart-bar__sub {
    font-size: .7rem !important;
    color: rgba(245,240,232,.38) !important;
    line-height: 1.3 !important;
}
.dll-cart-bar__total {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--dll-do) !important;
    margin-left: auto !important;
}
.dll-cart-bar__total .woocommerce-Price-amount,
.dll-cart-bar__total .amount { color: var(--dll-do) !important; }
/* Bouton "Voir le panier" */
.dll-cart-bar .dll-hero-btn--gold {
    flex-shrink: 0 !important;
    padding: 11px 24px !important;
    font-size: .72rem !important;
    white-space: nowrap !important;
}

/* ══ LECTEUR AUDIO : toujours en bas ══ */
/* audio-bar rule consolidated below */
/* Espace bas de page pour que l'audio bar ne coupe pas le contenu */
.dll-cart-bar-wrap { margin-bottom: 0 !important; }
body { padding-bottom: 60px; }

/* ══ RESPONSIVE v23 ══ */
@media (max-width: 1024px) {
    .dll-librairie-hero {
        grid-template-columns: 1fr !important;
        height: auto !important;
        max-height: none !important;
    }
    .dll-hero-books {
        grid-column: 1 !important;
        grid-row: 2 !important;
        padding: 0 40px 32px !important;
        justify-content: flex-start !important;
    }
    .dll-cart-bar { padding: 18px 40px !important; }
    .dll-librairie-grid-wrap ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 600px) {
    .dll-hero-inner { padding: 28px 20px 24px !important; }
    .dll-hero-books { padding: 0 20px 24px !important; gap: 8px !important; }
    .dll-hero-book img { width: 80px !important; height: 120px !important; }
    .dll-hero-book:nth-child(2) img { width: 92px !important; height: 138px !important; }
    .dll-cart-bar { padding: 16px 20px !important; flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; }
    .dll-cart-bar__total { margin-left: 0 !important; }
    .dll-librairie-grid-wrap ul.products { grid-template-columns: 1fr !important; }
}


/* ============================================================
   v23b — Hero compact, livres côte à côte, overlay panier,
   bloc panier stylé, mobile propre
   ============================================================ */

/* ══ HERO DESKTOP : compact, livres à droite côte à côte ══ */
.dll-librairie-hero {
    background: var(--dll-vn) !important;
    display: grid !important;
    grid-template-columns: 1fr 380px !important;
    grid-template-rows: 1fr !important;
    height: 300px !important;
    min-height: 0 !important;
    max-height: 300px !important;
    overflow: hidden !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Colonne gauche : texte */
.dll-hero-inner {
    grid-column: 1 !important;
    grid-row: 1 !important;
    padding: 32px 36px 32px 56px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    overflow: hidden !important;
}
.dll-hero-eye  { font-size: .58rem !important; margin-bottom: 4px !important; color: var(--dll-do) !important; letter-spacing: .18em !important; text-transform: uppercase !important; font-weight: 700 !important; display: block !important; }
.dll-gold-line { width: 32px !important; height: 2px !important; background: var(--dll-do) !important; margin: 0 0 10px !important; display: block !important; }
h1.dll-hero-h1 { font-family: 'Playfair Display', Georgia, serif !important; font-size: 1.7rem !important; font-weight: 700 !important; color: var(--dll-iv) !important; line-height: 1.1 !important; margin: 0 0 8px !important; }
h1.dll-hero-h1 em { color: var(--dll-do) !important; font-style: italic !important; font-weight: 400 !important; }
.dll-hero-sub  { font-size: .78rem !important; color: rgba(245,240,232,.5) !important; line-height: 1.55 !important; margin: 0 0 12px !important; max-width: 300px !important; }
.dll-hero-info { display: flex !important; gap: 16px !important; padding-top: 12px !important; border-top: 1px solid rgba(184,149,42,.12) !important; flex-wrap: wrap !important; }
.dll-shop-info-item { display: flex !important; align-items: center !important; gap: 7px !important; }
.dll-shop-info-icon  { font-size: .85rem !important; line-height: 1 !important; width: auto !important; height: auto !important; border: none !important; background: none !important; }
.dll-shop-info-text  { font-size: .66rem !important; color: rgba(245,240,232,.45) !important; line-height: 1.3 !important; }
.dll-shop-info-text strong { display: block !important; color: rgba(245,240,232,.7) !important; font-size: .68rem !important; }
/* Stats : masquées sur desktop — intégrées dans hero-info */
.dll-hero-stats { display: none !important; }

/* Colonne droite : 3 livres côte à côte, en bas */
.dll-hero-books {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    justify-content: center !important;
    padding: 24px 28px 0 12px !important;
    gap: 8px !important;
    overflow: hidden !important;
    position: relative !important;
    z-index: 2 !important;
}
/* Composition : livres côte à côte avec angles discrets */
.dll-hero-book { display: block !important; flex-shrink: 0 !important; text-decoration: none !important; transition: transform .28s ease !important; }
.dll-hero-book:nth-child(1) { transform: rotate(-4deg) translateY(6px) !important; }
.dll-hero-book:nth-child(2) { transform: rotate(0deg) translateY(-10px) !important; z-index: 3 !important; }
.dll-hero-book:nth-child(3) { transform: rotate(3deg) translateY(4px) !important; }
.dll-hero-book:hover { transform: translateY(-14px) rotate(0deg) !important; z-index: 10 !important; }
.dll-hero-book img {
    width: 88px !important;
    height: 132px !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
    border-radius: 2px 3px 3px 2px !important;
    box-shadow: 3px 6px 16px rgba(0,0,0,.55), -1px 0 0 rgba(0,0,0,.3) !important;
}
.dll-hero-book:nth-child(2) img { width: 100px !important; height: 150px !important; }
.dll-hero-book-ph {
    width: 88px !important; height: 132px !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(184,149,42,.18) !important;
    border-radius: 3px !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.1rem !important; font-weight: 700 !important;
    color: rgba(245,240,232,.3) !important;
    box-shadow: 3px 6px 16px rgba(0,0,0,.4) !important;
}

/* ══ HERO MOBILE : compact, livres masqués ══ */
@media (max-width: 768px) {
    .dll-librairie-hero {
        display: block !important;
        height: auto !important;
        max-height: none !important;
        padding: 28px 20px 24px !important;
    }
    .dll-hero-inner {
        padding: 0 !important;
        gap: 0 !important;
    }
    h1.dll-hero-h1 { font-size: 1.5rem !important; margin-bottom: 6px !important; }
    .dll-hero-sub  { max-width: 100% !important; margin-bottom: 10px !important; font-size: .75rem !important; }
    .dll-hero-info { padding-top: 10px !important; gap: 12px !important; }
    /* Masquer les livres sur mobile — trop encombrants */
    .dll-hero-books { display: none !important; }
}
@media (min-width: 769px) and (max-width: 1100px) {
    .dll-librairie-hero { grid-template-columns: 1fr 300px !important; }
    .dll-hero-book img { width: 72px !important; height: 108px !important; }
    .dll-hero-book:nth-child(2) img { width: 84px !important; height: 126px !important; }
    .dll-hero-books { padding: 20px 20px 0 8px !important; gap: 6px !important; }
    .dll-hero-inner { padding: 28px 28px 28px 40px !important; }
}

/* ══ OVERLAY PANIER : hover desktop, visible mobile ══ */
.card-cover {
    position: relative !important;
    overflow: hidden !important;
    height: 240px !important;
    flex-shrink: 0 !important;
    background: var(--dll-vn) !important;
}
.card-cover img {
    width: 100% !important; height: 100% !important;
    object-fit: cover !important; object-position: center top !important;
    display: block !important; transition: transform .32s ease !important;
}
article.livre-card:hover .card-cover img { transform: scale(1.04) !important; }

.card-cover-overlay {
    position: absolute !important; inset: 0 !important;
    background: rgba(26,38,32,.78) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    opacity: 0 !important; transition: opacity .22s ease !important; z-index: 5 !important;
}
@media (min-width: 601px) {
    article.livre-card:hover .card-cover-overlay { opacity: 1 !important; }
    .card-cta a.btn-panier { display: none !important; }
    .card-cta { justify-content: flex-end !important; }
}
@media (max-width: 600px) {
    .card-cover-overlay { display: none !important; }
    .card-cta a.btn-panier { display: inline-flex !important; flex: 1 !important; justify-content: center !important; }
    .card-cta { justify-content: space-between !important; }
}

/* Bouton WC dans l'overlay */
.card-cover-overlay .button,
.card-cover-overlay a.button,
.card-cover-overlay .add_to_cart_button {
    display: inline-flex !important; align-items: center !important; gap: 6px !important;
    padding: 10px 18px !important; background: var(--dll-do) !important;
    color: var(--dll-vn-deep) !important; border: none !important; border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important; font-weight: 700 !important;
    letter-spacing: .08em !important; text-transform: uppercase !important;
    text-decoration: none !important; cursor: pointer !important;
    transition: background .18s !important; white-space: nowrap !important;
}
.card-cover-overlay .button:hover,
.card-cover-overlay .add_to_cart_button:hover {
    background: var(--dll-do-light) !important; color: var(--dll-vn-deep) !important;
}

/* ══ BLOC PANIER BAS DE PAGE ══ */
.dll-cart-bar-wrap {
    background: var(--dll-vn-deep) !important;
    border-top: 1px solid rgba(184,149,42,.14) !important;
    margin: 0 !important; padding: 0 !important;
}
.dll-cart-bar {
    display: flex !important; align-items: center !important;
    justify-content: space-between !important;
    max-width: 1200px !important; margin: 0 auto !important;
    padding: 20px 60px !important; gap: 20px !important; flex-wrap: wrap !important;
}
.dll-cart-bar__left { display: flex !important; align-items: center !important; gap: 16px !important; }
.dll-cart-bar__icon {
    width: 44px !important; height: 44px !important; border-radius: 50% !important;
    border: 1.5px solid rgba(184,149,42,.3) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    color: var(--dll-do) !important; flex-shrink: 0 !important;
    background: rgba(184,149,42,.06) !important;
}
.dll-cart-bar__icon svg { width: 18px !important; height: 18px !important; }
.dll-cart-bar__title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .88rem !important; color: var(--dll-iv) !important; font-weight: 600 !important; margin-bottom: 2px !important;
}
.dll-cart-bar__sub { font-size: .68rem !important; color: rgba(245,240,232,.35) !important; }
.dll-cart-bar__total {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.4rem !important; font-weight: 700 !important;
    color: var(--dll-do) !important; margin-left: auto !important;
}
.dll-cart-bar__total .woocommerce-Price-amount,
.dll-cart-bar__total .amount { color: var(--dll-do) !important; }
.dll-cart-bar .dll-hero-btn--gold {
    flex-shrink: 0 !important; padding: 10px 22px !important;
    font-size: .7rem !important; white-space: nowrap !important;
    background: var(--dll-do) !important; color: var(--dll-vn-deep) !important;
    border: none !important; border-radius: 2px !important;
    font-weight: 700 !important; letter-spacing: .08em !important;
    text-transform: uppercase !important; text-decoration: none !important;
    display: inline-flex !important; align-items: center !important;
    transition: background .18s !important; cursor: pointer !important;
}
.dll-cart-bar .dll-hero-btn--gold:hover { background: var(--dll-do-light) !important; }

/* Responsive bloc panier */
@media (max-width: 1024px) { .dll-cart-bar { padding: 18px 40px !important; } }
@media (max-width: 600px) {
    .dll-cart-bar { padding: 16px 20px !important; flex-wrap: wrap !important; }
    .dll-cart-bar__total { margin-left: 0 !important; }
    .dll-cart-bar .dll-hero-btn--gold { width: 100% !important; justify-content: center !important; }
}

/* ══ LECTEUR AUDIO TOUJOURS EN BAS ══ */
/* audio-bar rule consolidated below */
body { padding-bottom: 56px !important; }


/* ============================================================
   v24 PATCH — Fix overlay opacity, hero composition finale
   ============================================================ */

/* ── Overlay : correction opacity !important ── */
.card-cover-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(26,38,32,.78) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0 !important;
    transition: opacity .22s ease !important;
    z-index: 5 !important;
    pointer-events: none !important;
}
@media (min-width: 601px) {
    article.livre-card:hover .card-cover-overlay {
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    .card-cta a.btn-panier { display: none !important; }
}
@media (max-width: 600px) {
    .card-cover-overlay { display: none !important; }
    .card-cta a.btn-panier {
        display: inline-flex !important;
        flex: 1 !important;
        justify-content: center !important;
    }
}

/* Bouton dans l'overlay — style WC natif */
.card-cover-overlay .button,
.card-cover-overlay a.button,
.card-cover-overlay .add_to_cart_button,
.card-cover-overlay .btn-panier-overlay {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 10px 18px !important;
    background: var(--dll-do) !important;
    color: var(--dll-vn-deep) !important;
    border: 1.5px solid var(--dll-do) !important;
    border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .18s !important;
    white-space: nowrap !important;
    pointer-events: auto !important;
}
.card-cover-overlay .button:hover,
.card-cover-overlay .add_to_cart_button:hover,
.card-cover-overlay .btn-panier-overlay:hover {
    background: var(--dll-do-light) !important;
    color: var(--dll-vn-deep) !important;
}

/* ── Hero composition affinée ── */
.dll-hero-book:nth-child(1) {
    transform: rotate(-5deg) translateY(8px) !important;
    z-index: 1 !important;
    margin-right: -12px !important;
}
.dll-hero-book:nth-child(2) {
    transform: rotate(0deg) translateY(-14px) !important;
    z-index: 3 !important;
}
.dll-hero-book:nth-child(3) {
    transform: rotate(4deg) translateY(6px) !important;
    z-index: 2 !important;
    margin-left: -12px !important;
}
.dll-hero-book:hover {
    transform: translateY(-18px) rotate(0deg) !important;
    z-index: 10 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}
/* Ombre spéciale pour effet livre */
.dll-hero-book img {
    box-shadow:
        4px 0 6px rgba(0,0,0,.3),
        6px 10px 24px rgba(0,0,0,.55) !important;
}
.dll-hero-book:nth-child(2) img {
    box-shadow:
        0 0 0 1px rgba(184,149,42,.2),
        4px 0 6px rgba(0,0,0,.3),
        8px 14px 28px rgba(0,0,0,.6) !important;
}


/* ============================================================
   v25 — Fix overlay btn-panier, filtres style+JS,
   hero livres remontés, card-cta premium, bloc panier
   ============================================================ */

/* ══ 1. OVERLAY : cibler .btn-panier aussi ══ */
.card-cover-overlay .button,
.card-cover-overlay a.button,
.card-cover-overlay .add_to_cart_button,
.card-cover-overlay .btn-panier-overlay,
.card-cover-overlay .btn-panier,
.card-cover-overlay a.btn-panier {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 10px 20px !important;
    background: var(--dll-do) !important;
    color: var(--dll-vn-deep) !important;
    border: none !important;
    border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .18s !important;
    white-space: nowrap !important;
    pointer-events: auto !important;
    width: auto !important;
}
.card-cover-overlay .button:hover,
.card-cover-overlay .btn-panier:hover,
.card-cover-overlay a.btn-panier:hover {
    background: var(--dll-do-light) !important;
}
/* S'assurer que l'overlay répond bien au hover */
article.livre-card:hover .card-cover-overlay {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* ══ 2. HERO : livres remontés, moins empilés ══ */
.dll-hero-books {
    align-items: center !important;
    padding: 16px 28px 0 12px !important;
    gap: 14px !important;
}
.dll-hero-book:nth-child(1) {
    transform: rotate(-6deg) translateY(0px) !important;
    margin-right: 0 !important;
    z-index: 1 !important;
}
.dll-hero-book:nth-child(2) {
    transform: rotate(0deg) translateY(-16px) !important;
    z-index: 3 !important;
    margin: 0 !important;
}
.dll-hero-book:nth-child(3) {
    transform: rotate(5deg) translateY(0px) !important;
    margin-left: 0 !important;
    z-index: 2 !important;
}
.dll-hero-book:hover {
    transform: translateY(-20px) rotate(0deg) !important;
    z-index: 10 !important;
}

/* ══ 3. FILTRES : style actif/hover premium ══ */
.dll-filter-btn {
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important;
    font-weight: 600 !important;
    letter-spacing: .04em !important;
    padding: 5px 14px !important;
    border-radius: 20px !important;
    border: 1.5px solid #ddd8cc !important;
    background: #fff !important;
    color: #4a4a4a !important;
    cursor: pointer !important;
    transition: all .18s !important;
    white-space: nowrap !important;
    outline: none !important;
}
.dll-filter-btn:hover {
    border-color: var(--dll-vn) !important;
    color: var(--dll-vn) !important;
    background: #fff !important;
}
.dll-filter-btn.active,
.dll-filter-btn:focus {
    background: var(--dll-vn) !important;
    color: var(--dll-iv) !important;
    border-color: var(--dll-vn) !important;
    outline: none !important;
    box-shadow: none !important;
}
/* Libellés mis à jour via CSS content si on veut les cacher */
/* Les vrais libellés sont dans le PHP — on les laisse tels quels */

/* ══ 4. CARD-CTA : zone basse plus premium ══ */
.card-cta {
    padding: 10px 14px 12px !important;
    border-top: 1px solid var(--dll-iv-deep) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    background: #fff !important;
}
/* Lien "Voir la fiche" visible et sobre */
a.card-fiche-lnk {
    font-size: .65rem !important;
    font-weight: 600 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: var(--dll-gl) !important;
    text-decoration: none !important;
    border-bottom: 1px solid transparent !important;
    transition: color .15s, border-color .15s !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
    display: inline !important;
}
a.card-fiche-lnk:hover {
    color: var(--dll-vn) !important;
    border-bottom-color: var(--dll-vn) !important;
    background: none !important;
}
/* Bouton panier direct (mobile + desktop sans hover) */
a.btn-panier {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    font-size: .62rem !important;
    font-weight: 700 !important;
    letter-spacing: .07em !important;
    text-transform: uppercase !important;
    padding: 6px 12px !important;
    border-radius: 2px !important;
    background: transparent !important;
    color: var(--dll-vn) !important;
    border: 1px solid var(--dll-vn) !important;
    text-decoration: none !important;
    transition: all .18s !important;
    white-space: nowrap !important;
}
a.btn-panier:hover {
    background: var(--dll-vn) !important;
    color: var(--dll-iv) !important;
}
/* Masquer btn-panier desktop sauf si overlay absent */
@media (min-width: 601px) {
    .card-cta a.btn-panier { display: none !important; }
    .card-cta { justify-content: flex-end !important; }
}
@media (max-width: 600px) {
    .card-cta a.btn-panier {
        display: inline-flex !important;
        flex: 1 !important;
        justify-content: center !important;
    }
    .card-cta { justify-content: space-between !important; }
    .card-cover-overlay { display: none !important; }
}

/* ══ 5. BLOC PANIER BAS DE PAGE : plus premium ══ */
.dll-cart-bar-wrap {
    background: #1a2620 !important;
    border-top: 1px solid rgba(184,149,42,.18) !important;
}
.dll-cart-bar {
    display: flex !important;
    align-items: center !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 22px 60px !important;
    gap: 24px !important;
}
.dll-cart-bar__icon {
    width: 48px !important; height: 48px !important;
    border-radius: 50% !important;
    background: rgba(184,149,42,.08) !important;
    border: 1.5px solid rgba(184,149,42,.3) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    color: var(--dll-do) !important; flex-shrink: 0 !important;
}
.dll-cart-bar__title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .9rem !important; font-weight: 600 !important;
    color: #f5f0e8 !important; margin-bottom: 2px !important;
}
.dll-cart-bar__sub { font-size: .68rem !important; color: rgba(245,240,232,.32) !important; }
.dll-cart-bar__total {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.5rem !important; font-weight: 700 !important;
    color: var(--dll-do) !important; margin-left: auto !important;
}
.dll-cart-bar__total .amount,
.dll-cart-bar__total .woocommerce-Price-amount { color: var(--dll-do) !important; }
/* Bouton Voir le panier */
.dll-cart-bar a.dll-hero-btn--gold {
    background: var(--dll-do) !important;
    color: #1a2620 !important;
    border: none !important;
    border-radius: 2px !important;
    padding: 12px 26px !important;
    font-size: .72rem !important; font-weight: 700 !important;
    letter-spacing: .1em !important; text-transform: uppercase !important;
    text-decoration: none !important;
    display: inline-flex !important; align-items: center !important;
    white-space: nowrap !important; flex-shrink: 0 !important;
    transition: background .18s !important;
}
.dll-cart-bar a.dll-hero-btn--gold:hover { background: var(--dll-do-light) !important; }

@media (max-width: 600px) {
    .dll-cart-bar { padding: 16px 20px !important; flex-wrap: wrap !important; }
    .dll-cart-bar__total { margin-left: 0 !important; }
    .dll-cart-bar a.dll-hero-btn--gold { width: 100% !important; justify-content: center !important; }
}


/* ============================================================
   v26 — Hero boutons, hero composition, overlay hover,
   filtres adoucis, tri libellé, bloc panier
   ============================================================ */

/* ══ HERO : boutons sous le texte ══ */
.dll-hero-btns {
    display: flex !important;
    gap: 11px !important;
    flex-wrap: wrap !important;
    margin-top: 18px !important;
}
.dll-hero-btn {
    display: inline-flex !important;
    align-items: center !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important;
    font-weight: 700 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    padding: 11px 22px !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    transition: all .2s !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}
.dll-hero-btn--gold {
    background: var(--dll-do) !important;
    color: var(--dll-vn-deep) !important;
    border: 1.5px solid var(--dll-do) !important;
}
.dll-hero-btn--gold:hover {
    background: var(--dll-do-light) !important;
    border-color: var(--dll-do-light) !important;
    color: var(--dll-vn-deep) !important;
}
.dll-hero-btn--outline {
    background: transparent !important;
    color: rgba(245,240,232,.8) !important;
    border: 1.5px solid rgba(245,240,232,.3) !important;
}
.dll-hero-btn--outline:hover {
    border-color: rgba(245,240,232,.7) !important;
    color: var(--dll-iv) !important;
}

/* Hero : réduire espace si boutons présents */
.dll-hero-sub { margin-bottom: 0 !important; }
.dll-hero-info { margin-top: 14px !important; }

/* ══ HERO livres : moins empilés, remontés ══ */
.dll-hero-books {
    align-items: flex-end !important;
    padding: 20px 28px 0 8px !important;
    gap: 16px !important;
}
.dll-hero-book:nth-child(1) {
    transform: rotate(-7deg) translateY(4px) !important;
    z-index: 1 !important; margin: 0 !important;
}
.dll-hero-book:nth-child(2) {
    transform: rotate(0deg) translateY(-20px) !important;
    z-index: 3 !important; margin: 0 !important;
}
.dll-hero-book:nth-child(3) {
    transform: rotate(6deg) translateY(4px) !important;
    z-index: 2 !important; margin: 0 !important;
}
.dll-hero-book:hover {
    transform: translateY(-24px) rotate(0deg) !important;
    z-index: 10 !important;
}
.dll-hero-book img {
    width: 86px !important; height: 128px !important;
    border-radius: 2px 3px 3px 2px !important;
    box-shadow: 3px 6px 18px rgba(0,0,0,.5), -2px 0 4px rgba(0,0,0,.25) !important;
}
.dll-hero-book:nth-child(2) img {
    width: 100px !important; height: 150px !important;
    box-shadow: 0 0 0 1.5px rgba(184,149,42,.3), 4px 8px 22px rgba(0,0,0,.55), -2px 0 4px rgba(0,0,0,.25) !important;
}

/* ══ OVERLAY : hover fiable ══ */
.card-cover { position: relative !important; overflow: hidden !important; }
.card-cover-overlay {
    position: absolute !important; inset: 0 !important;
    background: rgba(20,30,24,.8) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    opacity: 0 !important; transition: opacity .2s ease !important;
    z-index: 5 !important; pointer-events: none !important;
}
@media (hover: hover) and (min-width: 601px) {
    article.livre-card:hover .card-cover-overlay {
        opacity: 1 !important; pointer-events: auto !important;
    }
}
/* Bouton dans l'overlay */
.card-cover-overlay > *,
.card-cover-overlay .button,
.card-cover-overlay a,
.card-cover-overlay .add_to_cart_button,
.card-cover-overlay .btn-panier {
    display: inline-flex !important; align-items: center !important; gap: 7px !important;
    padding: 10px 18px !important;
    background: var(--dll-do) !important; color: #1a2620 !important;
    border: none !important; border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important; font-weight: 700 !important;
    letter-spacing: .08em !important; text-transform: uppercase !important;
    text-decoration: none !important; cursor: pointer !important;
    pointer-events: auto !important; white-space: nowrap !important;
    transition: background .15s !important;
}
.card-cover-overlay > *::before,
.card-cover-overlay .btn-panier::before { content: '🛒'; font-size: .8rem; }
.card-cover-overlay > *:hover { background: var(--dll-do-light) !important; }

/* Desktop : cacher btn-panier dans card-cta */
@media (hover: hover) and (min-width: 601px) {
    .card-cta a.btn-panier { display: none !important; }
    .card-cta { justify-content: flex-end !important; }
}
/* Touch/mobile : cacher overlay, montrer btn-panier */
@media (hover: none), (max-width: 600px) {
    .card-cover-overlay { display: none !important; }
    .card-cta a.btn-panier {
        display: inline-flex !important; flex: 1 !important; justify-content: center !important;
    }
    .card-cta { justify-content: space-between !important; }
}

/* ══ FILTRES : état actif adouci ══ */
.dll-filter-btn {
    font-size: .7rem !important; font-weight: 600 !important;
    padding: 5px 14px !important; border-radius: 20px !important;
    border: 1.5px solid #ddd8cc !important;
    background: #fff !important; color: #4a4a4a !important;
    transition: all .18s !important; cursor: pointer !important;
    outline: none !important; font-family: 'Source Sans 3', system-ui, sans-serif !important;
}
.dll-filter-btn:hover {
    border-color: var(--dll-vn) !important;
    color: var(--dll-vn) !important;
    background: rgba(45,59,53,.06) !important;
}
.dll-filter-btn.active {
    background: var(--dll-vn) !important;
    color: #f5f0e8 !important;
    border-color: var(--dll-vn) !important;
    box-shadow: 0 2px 8px rgba(45,59,53,.25) !important;
}
.dll-filter-btn:focus { outline: none !important; box-shadow: none !important; }

/* ══ SELECT TRI : libellé placeholder ══ */
.dll-filter-sort select option[value="menu_order"] { }
/* Le JS renomme les options au chargement */

/* Responsive boutons hero */
@media (max-width: 768px) {
    .dll-hero-btns { gap: 8px !important; margin-top: 14px !important; }
    .dll-hero-btn { padding: 9px 16px !important; font-size: .68rem !important; }
}


/* ============================================================
   v27 — Badge audio discret, overlay panier, emoji WP fix
   ============================================================ */

/* ── Badge audio : petit et discret, SANS emoji WP ── */
.badge-audio {
    position: absolute !important;
    bottom: 8px !important;
    left: 8px !important;
    top: auto !important;
    right: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: .56rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    color: #1a2620 !important;
    background: rgba(122,179,168,.9) !important;
    border: none !important;
    padding: 3px 8px !important;
    border-radius: 2px !important;
    z-index: 4 !important;
    line-height: 1.4 !important;
}
/* Masquer les images emoji WP dans le badge */
.badge-audio img.emoji,
.badge-audio img[src*="emoji"] {
    display: none !important;
}
/* Ajouter une icône CSS discrète à la place */
.badge-audio::before {
    content: '▶' !important;
    font-size: .5rem !important;
    opacity: .8 !important;
}

/* ── Overlay panier : robuste, toutes classes WC ── */
.card-cover { position: relative !important; overflow: hidden !important; }
.card-cover-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(20,30,24,.78) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0 !important;
    transition: opacity .22s ease !important;
    z-index: 6 !important;
    pointer-events: none !important;
}

/* Hover uniquement sur vrais pointeurs */
@media (hover: hover) and (pointer: fine) {
    article.livre-card:hover .card-cover-overlay {
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    .card-cta a.btn-panier,
    .card-cta .btn-panier { display: none !important; }
    .card-cta { justify-content: flex-end !important; }
}

/* Touch / mobile : overlay caché, bouton visible */
@media (hover: none), (pointer: coarse) {
    .card-cover-overlay { display: none !important; }
    .card-cta a.btn-panier,
    .card-cta .btn-panier {
        display: inline-flex !important;
        flex: 1 !important;
        justify-content: center !important;
    }
    .card-cta { justify-content: space-between !important; }
}

/* Bouton dans overlay — style doré, SANS ::before emoji */
.card-cover-overlay > a,
.card-cover-overlay > button,
.card-cover-overlay .button,
.card-cover-overlay .add_to_cart_button,
.card-cover-overlay .btn-panier {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 11px 20px !important;
    background: var(--dll-do) !important;
    color: #1a2620 !important;
    border: none !important;
    border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    white-space: nowrap !important;
    transition: background .15s !important;
}
.card-cover-overlay > a::before,
.card-cover-overlay > button::before,
.card-cover-overlay .btn-panier::before {
    content: '' !important;  /* Pas d'emoji, icône SVG dans le PHP */
}
.card-cover-overlay > a:hover,
.card-cover-overlay .btn-panier:hover {
    background: var(--dll-do-light) !important;
}

/* ── Bouton Écouter l'extrait ── */
.btn-audio {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .72rem !important;
    font-weight: 600 !important;
    color: var(--dll-gl) !important;
    letter-spacing: .04em !important;
    padding: 4px 0 !important;
    transition: color .15s !important;
    width: 100% !important;
    justify-content: center !important;
}
.btn-audio:hover { color: var(--dll-vn) !important; }
.btn-audio svg { flex-shrink: 0 !important; opacity: .6 !important; }

/* ── Card cover height fixe pour éviter l'écrasement ── */
.card-cover {
    height: 220px !important;
    aspect-ratio: unset !important;
}
.card-cover img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
}


/* ============================================================
   v28 — Option 2 : carte dlc-card, actions fixes, premium
   ============================================================ */

/* ── Grille ── */
.dll-librairie-grid-wrap ul.products,
body ul.products.columns-4 {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    list-style: none !important;
    margin: 0 !important; padding: 0 !important;
}
.dll-librairie-grid-wrap ul.products > li.product {
    margin: 0 !important; padding: 0 !important;
    float: none !important; width: auto !important;
}

/* ── Carte ── */
.dlc-card {
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s ease;
    height: 100%;
}
.dlc-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.12); }

/* ── Couverture ── */
.dlc-card__cover-link {
    display: block;
    position: relative;
    height: 220px;
    overflow: hidden;
    background: #2d3b35;
    flex-shrink: 0;
    text-decoration: none;
}
.dlc-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    transition: transform .3s ease;
}
.dlc-card:hover .dlc-card__img { transform: scale(1.03); }

/* Placeholder initiales */
.dlc-card__ph {
    width: 100%; height: 100%;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 8px;
}
.dlc-card__ph-init {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem; font-weight: 700; opacity: .7;
}
.dlc-card__ph-col {
    font-size: .6rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase; opacity: .5;
}

/* Badge audio discret — texte seul, positonné en bas */
.dlc-card__audio-badge {
    position: absolute;
    bottom: 8px; left: 8px;
    font-size: .56rem; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
    color: #1a2620;
    background: rgba(122,179,168,.92);
    padding: 3px 8px; border-radius: 2px;
    z-index: 2; line-height: 1.4;
}
.dlc-card__audio-badge::before {
    content: '▶ ';
    font-size: .5rem;
}

/* ── Corps ── */
.dlc-card__body {
    padding: 14px 16px 8px;
    display: flex; flex-direction: column; gap: 4px;
    flex: 1;
}
.dlc-card__col {
    font-size: .58rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase;
    color: var(--dll-do); display: block;
}
.dlc-card__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .9rem; font-weight: 700;
    color: #1a2620; line-height: 1.3; margin: 0;
}
.dlc-card__title a { color: inherit; text-decoration: none; }
.dlc-card__title a:hover { color: #2d3b35; }
.dlc-card__author {
    font-size: .78rem; color: #686868;
    font-style: italic; margin: 0;
}
.dlc-card__price-row {
    display: flex; align-items: center;
    justify-content: space-between; gap: 8px;
    margin-top: 6px;
}
.dlc-card__price {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .95rem; font-weight: 700; color: var(--dll-do);
}
.dlc-card__price .woocommerce-Price-amount { color: var(--dll-do); }
.dlc-card__avail {
    font-size: .65rem; font-weight: 600;
    letter-spacing: .04em;
    display: flex; align-items: center; gap: 4px;
}
.dlc-card__avail::before {
    content: '●'; font-size: .5rem;
}
.dlc-card__avail--yes { color: #27ae60; }
.dlc-card__avail--no  { color: #e67e22; }

/* ── Actions fixes ── */
.dlc-card__actions {
    padding: 10px 16px 14px;
    border-top: 1px solid #f0ebe0;
    display: flex; flex-direction: column; gap: 7px;
}

/* Bouton panier WC — vert DLL */
.dlc-btn-cart {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: 100% !important;
    padding: 10px 16px !important;
    background: #2d3b35 !important;
    color: #f5f0e8 !important;
    border: none !important;
    border-radius: 3px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .72rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .18s !important;
    box-sizing: border-box !important;
}
.dlc-btn-cart:hover {
    background: #1a2620 !important;
    color: #f5f0e8 !important;
}
.dlc-btn-cart svg { flex-shrink: 0; opacity: .8; }
/* Feedback WC après ajout */
.dlc-btn-cart.added { background: #27ae60 !important; }
.dlc-btn-cart.loading { opacity: .7 !important; }

/* Bouton écouter — sobre */
.dlc-btn-listen {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 7px 0;
    background: transparent;
    border: 1px solid #ddd8cc;
    border-radius: 3px;
    font-family: 'Source Sans 3', system-ui, sans-serif;
    font-size: .7rem;
    font-weight: 600;
    color: #4a4a4a;
    letter-spacing: .05em;
    cursor: pointer;
    transition: all .18s;
}
.dlc-btn-listen:hover {
    border-color: var(--dll-bv);
    color: var(--dll-bv);
    background: rgba(122,179,168,.05);
}
.dlc-btn-listen svg { flex-shrink: 0; opacity: .6; }
.dlc-btn-listen.playing { border-color: var(--dll-bv); color: var(--dll-bv); }

/* Lien fiche — très discret */
.dlc-card__fiche-link {
    display: block;
    text-align: center;
    font-size: .68rem;
    font-weight: 600;
    color: #aaa;
    text-decoration: none;
    letter-spacing: .04em;
    padding: 2px 0;
    transition: color .15s;
}
.dlc-card__fiche-link:hover { color: var(--dll-vn); }

/* ── Responsive ── */
@media (max-width: 1100px) {
    .dll-librairie-grid-wrap ul.products,
    body ul.products.columns-4 {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}
@media (max-width: 768px) {
    .dll-librairie-grid-wrap ul.products,
    body ul.products.columns-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 480px) {
    .dll-librairie-grid-wrap ul.products,
    body ul.products.columns-4 {
        grid-template-columns: 1fr !important;
    }
}


/* ============================================================
   v28b — Barre audio : masquée par défaut, visible après clic
   Croix fonctionnelle, persistance propre
   ============================================================ */

/* Barre audio : masquée par défaut */
/* neutralized v29b */
/* Visible uniquement avec la classe .on */
#dll-audio-bar.on {
    transform: translateY(0) !important;
    pointer-events: auto !important;
}
/* Ne pas ajouter padding-bottom par défaut */
body { padding-bottom: 0 !important; }
/* Padding quand barre visible */
body.dll-audio-open { padding-bottom: 64px !important; }

/* Bouton listen — style sobre */
.dlc-btn-listen {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: 100% !important;
    padding: 7px 0 !important;
    background: transparent !important;
    border: 1px solid #ddd8cc !important;
    border-radius: 3px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important;
    font-weight: 600 !important;
    color: #4a4a4a !important;
    letter-spacing: .05em !important;
    cursor: pointer !important;
    transition: all .18s !important;
}
.dlc-btn-listen:hover {
    border-color: #7ab3a8 !important;
    color: #5a9a8e !important;
    background: rgba(122,179,168,.05) !important;
}
.dlc-btn-listen.playing {
    border-color: #7ab3a8 !important;
    color: #7ab3a8 !important;
}


/* ============================================================
   AUDIO BAR — Règle consolidée FINALE v29b
   Surcharge toutes les règles précédentes
   ============================================================ */
#dll-audio-bar,
.dll-audio-bar {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    z-index: 9999 !important;
    transform: translateY(calc(100% + 4px)) !important;
    transition: transform .3s cubic-bezier(.4,0,.2,1) !important;
    display: flex !important;
    pointer-events: none !important;
    visibility: hidden !important;
}
#dll-audio-bar.on,
.dll-audio-bar.on {
    transform: translateY(0) !important;
    pointer-events: auto !important;
    visibility: visible !important;
}
body.dll-audio-open {
    padding-bottom: 68px !important;
}


/* ============================================================
   v31 — Barre audio : auteur, animation lecture, bouton Accueil
   ============================================================ */

/* ── Barre audio : layout enrichi ── */
#dll-audio-bar {
    display: flex !important;
    align-items: center !important;
    gap: 20px !important;
    padding: 0 28px !important;
    height: 64px !important;
    background: #1a2620 !important;
    border-top: 1px solid rgba(184,149,42,.18) !important;
}
.dll-ab-left {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    min-width: 0;
    gap: 1px;
}
.dll-ab-eyebrow {
    font-size: .56rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #7ab3a8;
    display: flex;
    align-items: center;
    gap: 8px;
}
/* Animation barres de lecture */
.dll-ab-eyebrow::before {
    content: '';
    display: inline-flex;
    align-items: flex-end;
    gap: 2px;
    height: 10px;
    width: 16px;
    flex-shrink: 0;
}
#dll-audio-bar.on .dll-ab-eyebrow::before {
    background: transparent;
    box-shadow: none;
    /* On utilisera les barres CSS ci-dessous */
}
/* Barres animées via pseudo-éléments multiples */
.dll-ab-wave {
    display: inline-flex;
    align-items: flex-end;
    gap: 2px;
    height: 12px;
    margin-right: 4px;
    flex-shrink: 0;
}
.dll-ab-wave span {
    display: block;
    width: 3px;
    border-radius: 1.5px;
    background: #7ab3a8;
    animation: dllWave 1.2s ease-in-out infinite;
    transform-origin: bottom;
}
.dll-ab-wave span:nth-child(1) { height: 5px;  animation-delay: 0s;     animation-duration: 1.0s; }
.dll-ab-wave span:nth-child(2) { height: 10px; animation-delay: 0.15s;  animation-duration: 1.3s; }
.dll-ab-wave span:nth-child(3) { height: 7px;  animation-delay: 0.3s;   animation-duration: 0.9s; }
.dll-ab-wave span:nth-child(4) { height: 12px; animation-delay: 0.1s;   animation-duration: 1.1s; }
.dll-ab-wave span:nth-child(5) { height: 6px;  animation-delay: 0.25s;  animation-duration: 1.4s; }
@keyframes dllWave {
    0%, 100% { transform: scaleY(1);   }
    50%       { transform: scaleY(0.3); }
}
/* Pause l'animation si audio en pause */
#dll-audio-bar:not(.playing) .dll-ab-wave span { animation-play-state: paused; }

.dll-ab-title {
    font-family: 'Source Sans 3', system-ui, sans-serif;
    font-size: .78rem;
    color: rgba(245,240,232,.8);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dll-ab-title strong {
    color: var(--dll-iv);
    font-weight: 600;
}

/* ── Contrôles ── */
.dll-ab-controls {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.dll-ab-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: rgba(245,240,232,.6);
    transition: color .15s, transform .15s;
    padding: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
}
.dll-ab-btn:hover { color: var(--dll-iv); transform: scale(1.1); }
.dll-ab-btn--play {
    width: 36px; height: 36px;
    background: var(--dll-do) !important;
    color: #1a2620 !important;
    border-radius: 50% !important;
    padding: 0 !important;
}
.dll-ab-btn--play:hover { background: var(--dll-do-light) !important; transform: scale(1.05) !important; }
.dll-ab-btn--icon { opacity: .65; }
.dll-ab-btn--icon:hover { opacity: 1; }

/* ── Barre progression ── */
.dll-ab-progress-wrap {
    flex: 1;
    height: 3px;
    background: rgba(255,255,255,.1);
    border-radius: 2px;
    overflow: hidden;
    max-width: 200px;
    cursor: pointer;
}
.dll-ab-progress {
    height: 100%;
    background: var(--dll-do);
    border-radius: 2px;
    width: 0%;
    transition: width .5s linear;
}

/* ── Bouton fermer ── */
.dll-ab-close {
    background: none;
    border: none;
    cursor: pointer;
    color: rgba(245,240,232,.4);
    font-size: .9rem;
    padding: 6px 4px;
    transition: color .15s;
    flex-shrink: 0;
}
.dll-ab-close:hover { color: var(--dll-iv); }

/* ── Bouton audio Accueil harmonisé ── */
.dll-home-audio-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: transparent !important;
    border: 1px solid rgba(122,179,168,.4) !important;
    border-radius: 2px !important;
    color: var(--dll-bv) !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important;
    font-weight: 600 !important;
    letter-spacing: .06em !important;
    padding: 5px 12px !important;
    cursor: pointer !important;
    transition: all .18s !important;
    margin-top: 8px !important;
}
.dll-home-audio-btn:hover {
    background: rgba(122,179,168,.12) !important;
    border-color: var(--dll-bv) !important;
    color: var(--dll-bv) !important;
}
.dll-home-audio-btn.playing {
    border-color: var(--dll-bv) !important;
    color: var(--dll-bv) !important;
}

/* Mobile */
@media (max-width: 600px) {
    #dll-audio-bar { padding: 0 16px !important; gap: 12px !important; }
    .dll-ab-progress-wrap { display: none; }
    .dll-ab-title { font-size: .72rem; }
}


/* ============================================================
   SONOTHÈQUE v31 — Hero, filtres, cartes horizontales
   ============================================================ */

/* ── Hero ── */
.dll-sono-hero {
    background: var(--dll-vn-deep);
    padding: 60px 60px 52px;
    position: relative;
    overflow: hidden;
}
.dll-sono-hero::after {
    content: '';
    position: absolute;
    right: -80px; top: -80px;
    width: 400px; height: 400px;
    border-radius: 50%;
    border: 1px solid rgba(184,149,42,.05);
    pointer-events: none;
}
.dll-sono-hero__inner { max-width: 700px; position: relative; z-index: 2; }
.dll-sono-hero__eye {
    font-size: .6rem; font-weight: 700; letter-spacing: .2em;
    text-transform: uppercase; color: var(--dll-do); display: block; margin-bottom: 6px;
}
.dll-sono-hero__h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.4rem; font-weight: 700;
    color: var(--dll-iv); line-height: 1.1; margin: 0 0 14px;
}
.dll-sono-hero__h1 em { color: var(--dll-do); font-style: italic; font-weight: 400; }
.dll-sono-hero__sub {
    font-size: .88rem; color: rgba(245,240,232,.5);
    line-height: 1.7; margin: 0 0 20px; max-width: 520px;
}
.dll-sono-hero__stats {
    display: inline-flex; align-items: baseline; gap: 8px;
    padding: 12px 20px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(184,149,42,.15);
    border-radius: 3px;
}
.dll-sono-hero__count {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.8rem; font-weight: 700; color: var(--dll-do);
}
.dll-sono-hero__count-lbl {
    font-size: .68rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: rgba(245,240,232,.4);
}

/* ── Filtres ── */
.dll-sono-filters {
    background: #fff;
    border-bottom: 1px solid var(--dll-iv-deep);
    position: sticky; top: 0; z-index: 100;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.dll-sono-filters__inner {
    max-width: 1200px; margin: 0 auto;
    padding: 13px 60px;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.dll-sono-pill {
    font-family: 'Source Sans 3', system-ui, sans-serif;
    font-size: .7rem; font-weight: 600; letter-spacing: .04em;
    padding: 5px 14px; border-radius: 20px;
    border: 1.5px solid #ddd8cc; background: #fff; color: #4a4a4a;
    cursor: pointer; transition: all .18s; white-space: nowrap;
    outline: none;
}
.dll-sono-pill:hover { border-color: var(--dll-vn); color: var(--dll-vn); }
.dll-sono-pill.active {
    background: var(--dll-vn); color: var(--dll-iv);
    border-color: var(--dll-vn);
    box-shadow: 0 2px 8px rgba(45,59,53,.2);
}

/* ── Grille ── */
.dll-sono-grid {
    max-width: 1200px; margin: 0 auto;
    padding: 40px 60px 100px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

/* ── Carte horizontale ── */
.dll-sono-card {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    display: grid;
    grid-template-columns: 90px 1fr;
    overflow: hidden;
    transition: box-shadow .2s;
}
.dll-sono-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.12); }

/* Couverture */
.dll-sono-card__cover {
    display: block;
    width: 90px; height: 130px;
    overflow: hidden; flex-shrink: 0;
    background: var(--dll-vn);
    text-decoration: none;
}
.dll-sono-card__cover img {
    width: 100%; height: 100%;
    object-fit: cover; object-position: center top;
    display: block;
    transition: transform .3s;
}
.dll-sono-card:hover .dll-sono-card__cover img { transform: scale(1.05); }
.dll-sono-card__ph {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.2rem; font-weight: 700; color: rgba(245,240,232,.5);
}

/* Corps */
.dll-sono-card__body {
    padding: 16px 20px;
    display: flex; flex-direction: column; gap: 3px;
    justify-content: center;
}
.dll-sono-card__col {
    font-size: .58rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--dll-do);
}
.dll-sono-card__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1rem; font-weight: 700; color: var(--dll-vn-deep);
    margin: 0; line-height: 1.3;
}
.dll-sono-card__title a { color: inherit; text-decoration: none; }
.dll-sono-card__title a:hover { color: var(--dll-vn); }
.dll-sono-card__author {
    font-size: .8rem; color: #686868; font-style: italic; margin: 0;
}

/* Actions */
.dll-sono-card__actions {
    display: flex; align-items: center; gap: 14px; margin-top: 10px;
}
.dll-sono-btn-listen {
    display: inline-flex !important; align-items: center !important; gap: 7px !important;
    padding: 8px 16px !important;
    background: var(--dll-vn) !important; color: var(--dll-iv) !important;
    border: none !important; border-radius: 3px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important; font-weight: 700 !important;
    letter-spacing: .07em !important; text-transform: uppercase !important;
    cursor: pointer !important; transition: background .18s !important;
    white-space: nowrap !important;
}
.dll-sono-btn-listen:hover { background: var(--dll-vn-deep) !important; }
.dll-sono-btn-listen.playing {
    background: var(--dll-do) !important; color: var(--dll-vn-deep) !important;
}
.dll-sono-card__fiche {
    font-size: .7rem; font-weight: 600; color: #aaa;
    text-decoration: none; letter-spacing: .04em;
    transition: color .15s; white-space: nowrap;
}
.dll-sono-card__fiche:hover { color: var(--dll-vn); }

/* ── Responsive ── */
@media (max-width: 1024px) {
    .dll-sono-hero { padding: 48px 40px 40px; }
    .dll-sono-filters__inner { padding: 12px 40px; }
    .dll-sono-grid { padding: 32px 40px 80px; }
}
@media (max-width: 768px) {
    .dll-sono-hero { padding: 36px 24px 32px; }
    .dll-sono-hero__h1 { font-size: 1.8rem; }
    .dll-sono-filters__inner { padding: 10px 24px; }
    .dll-sono-grid { padding: 24px 24px 80px; }
    .dll-sono-card { grid-template-columns: 70px 1fr; }
    .dll-sono-card__cover { width: 70px; height: 100px; }
}
@media (max-width: 480px) {
    .dll-sono-hero { padding: 28px 20px 24px; }
    .dll-sono-filters__inner { padding: 10px 20px; }
    .dll-sono-grid { padding: 20px 20px 80px; }
    .dll-sono-card__actions { flex-direction: column; align-items: flex-start; gap: 8px; }
    .dll-sono-btn-listen { width: 100% !important; justify-content: center !important; }
}


/* ============================================================
   v33 — Sonothèque hero 2-col, vedette, 2-col grid, footer riche
   ============================================================ */

/* ── Masquer titre H1 natif WP sur /sonotheque/ ── */
.page-id-20 .entry-title,
.page-id-20 .dll-article-title,
.page-id-20 h1.page-title {
    display: none !important;
}

/* ── Hero Sonothèque 2 colonnes ── */
.dll-sono-hero {
    background: var(--dll-vn-deep) !important;
    display: grid !important;
    grid-template-columns: 1fr 340px !important;
    min-height: 340px !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
}
.dll-sono-hero::before {
    content: '' !important;
    position: absolute !important;
    right: -100px !important; top: -100px !important;
    width: 500px !important; height: 500px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(184,149,42,.04) !important;
    pointer-events: none !important;
}
.dll-sono-hero__left {
    padding: 52px 44px 48px 60px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 2 !important;
}
.dll-sono-hero__eye {
    font-size: .6rem !important; font-weight: 700 !important;
    letter-spacing: .2em !important; text-transform: uppercase !important;
    color: var(--dll-do) !important; display: block !important; margin-bottom: 6px !important;
}
.dll-sono-hero__h1 {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 2.2rem !important; font-weight: 700 !important;
    color: var(--dll-iv) !important; line-height: 1.1 !important;
    margin: 0 0 12px !important;
}
.dll-sono-hero__h1 em { color: var(--dll-do) !important; font-style: italic !important; font-weight: 400 !important; }
.dll-sono-hero__sub {
    font-size: .84rem !important; color: rgba(245,240,232,.5) !important;
    line-height: 1.7 !important; margin: 0 0 20px !important; max-width: 400px !important;
}
.dll-sono-hero__btns {
    display: flex !important; gap: 10px !important; flex-wrap: wrap !important; margin-bottom: 20px !important;
}
.dll-sono-hero__btn {
    display: inline-flex !important; align-items: center !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important; font-weight: 700 !important;
    letter-spacing: .09em !important; text-transform: uppercase !important;
    padding: 10px 20px !important; border-radius: 2px !important;
    text-decoration: none !important; transition: all .18s !important; cursor: pointer !important;
}
.dll-sono-hero__btn--gold { background: var(--dll-do) !important; color: #1a2620 !important; border: 1.5px solid var(--dll-do) !important; }
.dll-sono-hero__btn--gold:hover { background: var(--dll-do-light) !important; }
.dll-sono-hero__btn--outline { background: transparent !important; color: rgba(245,240,232,.75) !important; border: 1.5px solid rgba(245,240,232,.25) !important; }
.dll-sono-hero__btn--outline:hover { border-color: rgba(245,240,232,.6) !important; color: var(--dll-iv) !important; }
.dll-sono-hero__stats {
    display: inline-flex !important; align-items: baseline !important; gap: 8px !important;
    padding: 10px 16px !important;
    background: rgba(255,255,255,.04) !important;
    border: 1px solid rgba(184,149,42,.15) !important; border-radius: 3px !important;
}
.dll-sono-hero__count {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.6rem !important; font-weight: 700 !important; color: var(--dll-do) !important;
}
.dll-sono-hero__count-lbl {
    font-size: .62rem !important; font-weight: 700 !important; letter-spacing: .1em !important;
    text-transform: uppercase !important; color: rgba(245,240,232,.38) !important;
}

/* ── Lecteur vedette (colonne droite du hero) ── */
.dll-sono-hero__right {
    display: flex !important; align-items: center !important;
    justify-content: center !important; padding: 36px 40px 36px 20px !important;
    position: relative !important; z-index: 2 !important;
}
.dll-sono-featured {
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(184,149,42,.15) !important;
    border-radius: 6px !important;
    padding: 20px !important;
    display: flex !important; flex-direction: column !important; gap: 12px !important;
    width: 100% !important; max-width: 260px !important;
}
.dll-sono-featured__label {
    font-size: .58rem !important; font-weight: 700 !important;
    letter-spacing: .12em !important; text-transform: uppercase !important;
    color: var(--dll-bv) !important;
}
.dll-sono-featured__cover {
    width: 100% !important; height: 120px !important; overflow: hidden !important;
    border-radius: 3px !important; background: #1a2620 !important;
}
.dll-sono-featured__cover img {
    width: 100% !important; height: 100% !important;
    object-fit: cover !important; object-position: center top !important; display: block !important;
}
.dll-sono-featured__meta { display: flex !important; flex-direction: column !important; gap: 3px !important; }
.dll-sono-featured__col {
    font-size: .56rem !important; font-weight: 700 !important;
    letter-spacing: .1em !important; text-transform: uppercase !important; color: var(--dll-do) !important;
}
.dll-sono-featured__title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .85rem !important; font-weight: 700 !important;
    color: var(--dll-iv) !important; line-height: 1.3 !important;
}
.dll-sono-featured__author {
    font-size: .75rem !important; color: rgba(245,240,232,.55) !important; font-style: italic !important;
}
.dll-sono-featured__play {
    width: 100% !important; justify-content: center !important;
    background: var(--dll-do) !important; color: #1a2620 !important;
    border: none !important; padding: 9px 16px !important;
}
.dll-sono-featured__play:hover { background: var(--dll-do-light) !important; }

/* ── Grille Sonothèque : 2 colonnes desktop ── */
.dll-sono-grid {
    max-width: 1200px !important; margin: 0 auto !important;
    padding: 40px 60px 80px !important;
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px !important;
}
.dll-sono-card {
    display: grid !important;
    grid-template-columns: 90px 1fr !important;
}
.dll-sono-card__excerpt {
    font-size: .76rem !important; color: #686868 !important;
    line-height: 1.55 !important; margin: 4px 0 0 !important;
    font-style: italic !important;
}

/* ── Section archives vidéo ── */
.dll-sono-archives {
    background: var(--dll-iv-deep) !important;
    border-top: 1px solid var(--dll-iv-deep) !important;
    padding: 48px 0 !important;
}
.dll-sono-archives__inner {
    max-width: 1200px !important; margin: 0 auto !important;
    padding: 0 60px !important;
}
.dll-sono-archives__header { margin-bottom: 20px !important; }
.dll-sono-archives__title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.4rem !important; font-weight: 700 !important;
    color: var(--dll-vn-deep) !important; margin: 0 0 6px !important;
}
.dll-sono-archives__sub {
    font-size: .82rem !important; color: #686868 !important; margin: 0 !important;
}
.dll-sono-archives__coming {
    font-size: .84rem !important; color: #aaa !important;
    font-style: italic !important; margin: 0 !important;
}

/* ══ FOOTER RICHE GLOBAL v33 ══ */
.dll-footer {
    background: var(--dll-vn-deep) !important;
    color: rgba(245,240,232,.6) !important;
    padding: 0 !important;
    margin: 0 !important;
}
.dll-footer__inner {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 60px 60px 48px !important;
    display: grid !important;
    grid-template-columns: 280px 1fr 1fr 1fr !important;
    gap: 48px !important;
}
.dll-footer__col-title {
    font-size: .6rem !important; font-weight: 700 !important;
    letter-spacing: .18em !important; text-transform: uppercase !important;
    color: var(--dll-do) !important; margin: 0 0 16px !important;
}
.dll-footer__links {
    list-style: none !important; margin: 0 !important; padding: 0 !important;
    display: flex !important; flex-direction: column !important; gap: 10px !important;
}
.dll-footer__links a {
    font-size: .8rem !important; color: rgba(245,240,232,.55) !important;
    text-decoration: none !important; transition: color .15s !important;
}
.dll-footer__links a:hover { color: var(--dll-iv) !important; }

/* Logo colonne brand */
.dll-footer__logo { margin-bottom: 16px !important; }
.dll-footer__logo a {
    display: flex !important; align-items: center !important;
    gap: 12px !important; text-decoration: none !important;
}
.dll-footer__logo img { width: 36px !important; height: 36px !important; filter: brightness(0) invert(1); opacity: .85 !important; }
.dll-footer__logo-text {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: .9rem !important; font-weight: 700 !important;
    color: var(--dll-iv) !important; line-height: 1.2 !important;
}
.dll-footer__logo-text em { color: var(--dll-do) !important; font-style: italic !important; font-weight: 400 !important; }
.dll-footer__brand-desc {
    font-size: .78rem !important; color: rgba(245,240,232,.45) !important;
    line-height: 1.65 !important; margin: 0 0 20px !important;
}
.dll-footer__manus-btn {
    display: inline-flex !important; align-items: center !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important; font-weight: 700 !important;
    letter-spacing: .08em !important; text-transform: uppercase !important;
    padding: 9px 18px !important; border-radius: 2px !important;
    background: transparent !important; border: 1.5px solid rgba(184,149,42,.35) !important;
    color: var(--dll-do) !important; text-decoration: none !important;
    transition: all .18s !important;
}
.dll-footer__manus-btn:hover {
    background: rgba(184,149,42,.08) !important;
    border-color: var(--dll-do) !important;
}

/* Bande du bas */
.dll-footer__bottom {
    border-top: 1px solid rgba(245,240,232,.06) !important;
    background: rgba(0,0,0,.15) !important;
}
.dll-footer__bottom-inner {
    max-width: 1200px !important; margin: 0 auto !important;
    padding: 16px 60px !important;
    display: flex !important; align-items: center !important;
    justify-content: space-between !important; flex-wrap: wrap !important; gap: 12px !important;
}
.dll-footer__copy {
    font-size: .7rem !important; color: rgba(245,240,232,.3) !important;
}
.dll-footer__legal {
    display: flex !important; align-items: center !important; gap: 8px !important;
}
.dll-footer__legal a {
    font-size: .7rem !important; color: rgba(245,240,232,.35) !important;
    text-decoration: none !important; transition: color .15s !important;
}
.dll-footer__legal a:hover { color: rgba(245,240,232,.7) !important; }
.dll-footer__legal span { color: rgba(245,240,232,.2) !important; font-size: .6rem !important; }

/* Répondre au body padding-bottom audio */
body.dll-audio-open .dll-footer { padding-bottom: 68px !important; }

/* ── Responsive Sonothèque + footer ── */
@media (max-width: 1100px) {
    .dll-sono-hero { grid-template-columns: 1fr 280px !important; }
    .dll-sono-hero__left { padding: 44px 32px 40px 40px !important; }
    .dll-sono-grid { padding: 32px 40px 60px !important; }
    .dll-sono-archives__inner { padding: 0 40px !important; }
    .dll-footer__inner { padding: 48px 40px 36px !important; grid-template-columns: 220px 1fr 1fr 1fr !important; gap: 32px !important; }
    .dll-footer__bottom-inner { padding: 14px 40px !important; }
}
@media (max-width: 900px) {
    .dll-sono-hero { grid-template-columns: 1fr !important; }
    .dll-sono-hero__right { padding: 0 40px 36px !important; justify-content: flex-start !important; }
    .dll-sono-hero__left { padding: 44px 40px 24px !important; }
    .dll-sono-grid { grid-template-columns: 1fr !important; }
    .dll-footer__inner { grid-template-columns: 1fr 1fr !important; padding: 40px 40px 32px !important; }
}
@media (max-width: 600px) {
    .dll-sono-hero { grid-template-columns: 1fr !important; }
    .dll-sono-hero__left { padding: 32px 20px 20px !important; }
    .dll-sono-hero__right { display: none !important; }
    .dll-sono-hero__h1 { font-size: 1.7rem !important; }
    .dll-sono-grid { padding: 20px 20px 60px !important; }
    .dll-sono-archives__inner { padding: 0 20px !important; }
    .dll-footer__inner { grid-template-columns: 1fr !important; padding: 36px 20px 28px !important; gap: 28px !important; }
    .dll-footer__bottom-inner { padding: 14px 20px !important; flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }
}


/* ============================================================
   v34 — Fiche livre (single-product.php)
   Hero sombre, couverture, audio intégré, revue de presse
   ============================================================ */

/* Masquer titre H1 natif WP sur fiche produit */
.single-product .entry-title,
.single-product .dll-article-title,
.woocommerce-page .dll-article-title { display: none !important; }

/* ── Fil d'Ariane ── */
.dll-book-bc {
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
    font-size: .68rem; color: rgba(45,59,53,.4);
    padding: 14px 60px 0;
    background: var(--dll-vn-deep);
}
.dll-book-bc a { color: rgba(184,149,42,.7); text-decoration: none; transition: color .15s; }
.dll-book-bc a:hover { color: var(--dll-do); }
.dll-bc-sep { opacity: .4; }
.dll-bc-cur { color: rgba(245,240,232,.5); }

/* ── Hero fiche livre ── */
.dll-book-hero {
    background: var(--dll-vn-deep);
    display: grid;
    grid-template-columns: 1fr 260px;
    min-height: 360px;
    position: relative;
    overflow: hidden;
    padding: 0 60px;
}
.dll-book-hero::before {
    content: '';
    position: absolute; right: -80px; top: -80px;
    width: 340px; height: 340px; border-radius: 50%;
    border: 1px solid rgba(184,149,42,.05);
    pointer-events: none;
}

/* Colonne gauche */
.dll-book-hero__left {
    padding: 36px 40px 36px 0;
    display: flex; flex-direction: column; justify-content: center;
    position: relative; z-index: 2;
}
.dll-book-hero__coll {
    font-size: .6rem; font-weight: 700; letter-spacing: .16em;
    text-transform: uppercase; color: var(--dll-do); margin-bottom: 7px;
}
.dll-book-hero__gl {
    width: 32px; height: 2px; background: var(--dll-do);
    border-radius: 1px; margin: 0 0 14px;
}
.dll-book-hero__title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.9rem; font-weight: 700;
    color: var(--dll-iv); line-height: 1.2; margin: 0 0 8px;
}
.dll-book-hero__author {
    font-size: .88rem; color: rgba(245,240,232,.5); margin-bottom: 12px;
}
.dll-book-hero__author a { color: var(--dll-do); text-decoration: none; font-weight: 500; }
.dll-book-hero__meta {
    display: flex; gap: 10px; flex-wrap: wrap;
    font-size: .68rem; color: rgba(245,240,232,.32);
    margin-bottom: 18px;
}
.dll-book-hero__meta span + span::before { content: '·'; margin-right: 10px; opacity: .4; }
.dll-book-hero__sep {
    height: 1px; background: rgba(184,149,42,.1); margin: 14px 0;
}
.dll-book-hero__price .price {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.6rem !important; font-weight: 700 !important;
    color: var(--dll-do) !important;
}
.dll-book-hero__price { margin-bottom: 6px; }
.dll-book-hero__dispo {
    font-size: .72rem; font-weight: 600;
    display: flex; align-items: center; gap: 5px;
    margin-bottom: 16px;
}
.dll-book-hero__dispo-dot {
    width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
}

/* Bouton panier WC dans hero */
.dll-book-hero__cart .single_add_to_cart_button,
.dll-book-hero__cart .button {
    background: var(--dll-do) !important;
    color: #1a2620 !important;
    border: none !important;
    border-radius: 3px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .72rem !important; font-weight: 700 !important;
    letter-spacing: .08em !important; text-transform: uppercase !important;
    padding: 11px 24px !important;
    width: 100% !important; max-width: 260px !important;
    cursor: pointer !important; transition: background .18s !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
}
.dll-book-hero__cart .single_add_to_cart_button:hover { background: var(--dll-do-light) !important; }
.dll-book-hero__cart { margin-bottom: 8px; }

/* Bouton audio dans hero */
.dll-book-hero__audio-btn {
    display: inline-flex !important; align-items: center !important; gap: 7px !important;
    padding: 9px 24px !important; max-width: 260px !important; width: 100% !important;
    background: transparent !important; color: var(--dll-bv) !important;
    border: 1px solid rgba(122,179,168,.38) !important; border-radius: 3px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .7rem !important; font-weight: 600 !important;
    cursor: pointer !important; transition: all .18s !important;
    justify-content: center !important;
}
.dll-book-hero__audio-btn:hover {
    background: rgba(122,179,168,.08) !important;
    border-color: var(--dll-bv) !important;
}

/* ── Couverture (colonne droite hero) ── */
.dll-book-hero__right {
    display: flex; align-items: flex-end; justify-content: center;
    padding: 28px 0 0; position: relative; z-index: 2;
}
.dll-book-cover {
    position: relative; display: inline-block;
}
.dll-book-cover__img {
    width: 160px; height: 236px;
    object-fit: cover; object-position: center top;
    display: block; border-radius: 2px 4px 4px 2px;
    box-shadow: 6px 10px 28px rgba(0,0,0,.55), -2px 0 0 rgba(0,0,0,.3);
}
.dll-book-cover__ph {
    width: 160px; height: 236px;
    border-radius: 2px 4px 4px 2px;
    box-shadow: 6px 10px 28px rgba(0,0,0,.55), -2px 0 0 rgba(0,0,0,.3);
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 8px; padding: 16px;
}
.dll-book-cover__ph-init {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.4rem; font-weight: 700;
    color: rgba(245,240,232,.3);
}
.dll-book-cover__ph-col {
    font-size: .55rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: rgba(245,240,232,.2);
    text-align: center;
}
.dll-book-cover__badge {
    position: absolute; bottom: 8px; left: 8px;
    background: rgba(122,179,168,.9); color: #1a2620;
    font-size: .58rem; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; padding: 3px 7px; border-radius: 2px;
    display: flex; align-items: center; gap: 3px;
}

/* ── Contenu principal (fond ivoire) ── */
.dll-book-main {
    background: var(--dll-iv);
    padding: 36px 60px 80px;
    max-width: 100%;
}
.dll-book-section {
    padding: 24px 0;
    border-top: 1px solid var(--dll-iv-deep);
}
.dll-book-section:first-child { border-top: none; padding-top: 0; }
.dll-book-eyebrow {
    font-size: .6rem; font-weight: 700; letter-spacing: .18em;
    text-transform: uppercase; color: var(--dll-do); margin-bottom: 5px;
}
.dll-book-gl {
    width: 28px; height: 2px; background: var(--dll-do);
    border-radius: 1px; margin-bottom: 14px;
}
.dll-book-editorial {
    font-size: .9rem; color: #4a4a4a; line-height: 1.85; max-width: 680px;
}
.dll-book-editorial em { font-family: 'Playfair Display', Georgia, serif; font-style: italic; color: var(--dll-vn); }
.dll-book-content { margin-top: 12px; }
.dll-book-content p { margin-bottom: .8em; }

/* ── Lecteur audio intégré ── */
.dll-book-section--audio { background: transparent; }
.dll-book-audio-bloc {
    background: #fff; border: 1px solid rgba(122,179,168,.22);
    border-left: 3px solid var(--dll-bv); border-radius: 0 4px 4px 0;
    padding: 14px 18px; max-width: 520px;
    display: flex; align-items: center; gap: 14px;
}
.dll-book-audio-play {
    width: 38px; height: 38px; border-radius: 50%;
    background: var(--dll-vn) !important; color: var(--dll-iv) !important;
    border: none !important; padding: 0 !important;
    display: flex !important; align-items: center !important;
    justify-content: center !important; flex-shrink: 0 !important;
    cursor: pointer !important; transition: background .18s !important;
    max-width: 38px !important; width: 38px !important;
}
.dll-book-audio-play:hover { background: var(--dll-do) !important; }
.dll-book-audio-info { flex: 1; min-width: 0; }
.dll-book-audio-label {
    font-size: .58rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--dll-bv); margin-bottom: 3px;
}
.dll-book-audio-title {
    font-size: .8rem; font-weight: 600; color: var(--dll-vn-deep);
    margin-bottom: 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dll-book-audio-bar {
    height: 3px; background: var(--dll-iv-deep); border-radius: 2px; overflow: hidden;
}
.dll-book-audio-fill {
    height: 100%; width: 0; background: var(--dll-do); border-radius: 2px;
}
.dll-book-audio-note {
    font-size: .68rem; color: #999; font-style: italic; margin-top: 5px;
}

/* ── Revue de presse ── */
.dll-book-presse-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 780px;
}
.dll-book-presse-card {
    background: #fff; border: 0.5px solid var(--dll-iv-deep);
    border-left: 3px solid var(--dll-do); border-radius: 0 4px 4px 0;
    padding: 14px 16px;
}
.dll-book-presse-quote {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .84rem; font-style: italic; color: var(--dll-vn);
    line-height: 1.65; margin-bottom: 10px;
}
.dll-book-presse-quote::before { content: '« '; color: var(--dll-do); font-weight: 700; }
.dll-book-presse-quote::after  { content: ' »'; color: var(--dll-do); font-weight: 700; }
.dll-book-presse-source {
    font-size: .62rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: #686868;
    display: flex; align-items: center; gap: 8px;
}
.dll-book-presse-source::before {
    content: ''; display: block; width: 14px; height: 1px;
    background: var(--dll-do); flex-shrink: 0;
}

/* ── Deux colonnes : infos + auteur ── */
.dll-book-two-col {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 32px; padding: 24px 0; border-top: 1px solid var(--dll-iv-deep);
    align-items: start;
}

/* Méta liste */
.dll-book-meta-list {
    background: #fff; border: 0.5px solid var(--dll-iv-deep);
    border-radius: 4px; padding: 0 14px; margin: 0;
    max-width: 360px;
}
.dll-book-meta-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 8px 0; border-bottom: 0.5px solid var(--dll-iv-deep);
    font-size: .78rem;
}
.dll-book-meta-row:last-child { border-bottom: none; }
.dll-book-meta-row dt {
    font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
    color: #686868; font-size: .65rem;
}
.dll-book-meta-row dd { color: #4a4a4a; }

/* Auteur bloc */
.dll-book-author-bloc {
    background: #fff; border: 0.5px solid var(--dll-iv-deep);
    border-radius: 4px; padding: 16px;
    display: flex; gap: 14px; align-items: flex-start;
}
.dll-book-author-av {
    width: 48px; height: 48px; border-radius: 50%;
    background: var(--dll-vn); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1rem; color: rgba(245,240,232,.4);
    overflow: hidden;
}
.dll-book-author-av img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.dll-book-author-name {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .9rem; font-weight: 700; color: var(--dll-vn-deep); margin-bottom: 2px;
}
.dll-book-author-role {
    font-size: .6rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--dll-do); margin-bottom: 7px;
}
.dll-book-author-bio {
    font-size: .76rem; color: #686868; line-height: 1.65; margin: 0;
}
.dll-book-author-link {
    font-size: .65rem; font-weight: 700; letter-spacing: .07em;
    text-transform: uppercase; color: var(--dll-do);
    text-decoration: none; display: inline-flex; align-items: center; margin-top: 8px;
    transition: color .15s;
}
.dll-book-author-link:hover { color: var(--dll-do-light); }

/* ── Grille collection liée ── */
.dll-book-related-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.dll-book-rcard {
    background: #fff; border-radius: 3px;
    box-shadow: 0 2px 10px rgba(0,0,0,.07);
    display: flex; text-decoration: none;
    transition: box-shadow .2s, transform .2s;
    overflow: hidden;
}
.dll-book-rcard:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,.12); transform: translateY(-2px);
}
.dll-book-rcard__cover {
    width: 64px; height: 90px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
}
.dll-book-rcard__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dll-book-rcard__cover span {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: .8rem; color: rgba(245,240,232,.35);
}
.dll-book-rcard__body {
    padding: 9px 11px; display: flex; flex-direction: column; gap: 2px;
}
.dll-book-rcard__coll {
    font-size: .58rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--dll-do);
}
.dll-book-rcard__audio {
    font-size: .58rem; color: var(--dll-bv);
    display: flex; align-items: center; gap: 3px;
}
.dll-book-rcard__title {
    font-size: .75rem; font-weight: 600; color: var(--dll-vn-deep); line-height: 1.3;
}
.dll-book-rcard__author {
    font-size: .68rem; color: #686868; font-style: italic;
}
.dll-book-rcard__cta {
    font-size: .62rem; font-weight: 700; letter-spacing: .07em;
    text-transform: uppercase; color: var(--dll-do); margin-top: auto;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .dll-book-bc { padding: 12px 40px 0; }
    .dll-book-hero { grid-template-columns: 1fr; padding: 0 40px; }
    .dll-book-hero__right { display: none; }
    .dll-book-main { padding: 28px 40px 60px; }
    .dll-book-two-col { grid-template-columns: 1fr; gap: 20px; }
    .dll-book-presse-grid { grid-template-columns: 1fr; }
    .dll-book-related-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .dll-book-bc { padding: 10px 20px 0; }
    .dll-book-hero { padding: 0 20px; }
    .dll-book-hero__title { font-size: 1.5rem; }
    .dll-book-main { padding: 20px 20px 60px; }
    .dll-book-related-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   v34a — Corrections fiche livre
   Barre blanche, bouton panier, overflow, couverture
   ============================================================ */

/* Fix débordement horizontal du hero */
.dll-book-hero {
    overflow: hidden !important;
    max-width: 100% !important;
    grid-template-columns: 1fr 220px !important;
}
.dll-book-bc {
    overflow: hidden !important;
    max-width: 100% !important;
}

/* Fix formulaire WC — supprime la barre blanche */
.dll-book-hero__cart form.cart {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 8px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 260px !important;
}
.dll-book-hero__cart .quantity {
    display: none !important;
}
.dll-book-hero__cart .single_add_to_cart_button,
.dll-book-hero__cart button[type="submit"],
.dll-book-hero__cart input[type="submit"] {
    background: var(--dll-do) !important;
    color: #1a2620 !important;
    border: none !important;
    border-radius: 3px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .72rem !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    padding: 12px 24px !important;
    width: 100% !important;
    max-width: 260px !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background .18s !important;
    box-sizing: border-box !important;
}
.dll-book-hero__cart .single_add_to_cart_button:hover { background: var(--dll-do-light) !important; }

/* Fix couverture — centrage vertical */
.dll-book-hero__right {
    align-items: center !important;
    padding: 28px 24px 28px 0 !important;
}
.dll-book-cover__img {
    width: 160px !important;
    height: auto !important;
    max-height: 240px !important;
    object-fit: cover !important;
    object-position: center top !important;
}

/* Fix barre audio — ne pas déborder */
#dll-audio-bar {
    max-width: 100vw !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* Fix body overflow */
body {
    overflow-x: hidden !important;
}

/* Fix erreur critique — cacher le message WP si l'erreur disparaît */
.dll-book-main {
    overflow: hidden !important;
}


/* ============================================================
   v34b — Fix précis : input quantité WC + bouton panier
   ============================================================ */

/* Masquer le champ de quantité et son input */
.dll-book-hero__cart .quantity,
.dll-book-hero__cart input[type="number"],
.dll-book-hero__cart input.qty,
.dll-book-hero__cart .qty,
.dll-book-hero__cart label.screen-reader-text + input {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Bouton panier — taille complète */
.dll-book-hero__cart button[type="submit"].single_add_to_cart_button,
.dll-book-hero__cart button.single_add_to_cart_button,
.dll-book-hero__cart .single_add_to_cart_button {
    width: auto !important;
    min-width: 200px !important;
    max-width: 260px !important;
    height: auto !important;
    padding: 12px 24px !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    font-size: .72rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--dll-do) !important;
    color: #1a2620 !important;
    border: none !important;
    border-radius: 3px !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

/* Form cart : stack vertical propre */
.dll-book-hero__cart form.cart {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 8px !important;
    max-width: 260px !important;
    overflow: visible !important;
}

/* Fix erreur critique — section contenu */
.dll-book-main > #error-page,
.dll-book-main > body#error-page {
    display: none !important;
}


/* ============================================================
   v34c — Fiche livre premium : sidebar, badges, formats, audio éditorial
   ============================================================ */

/* ── Badges collection + domaine ── */
.dll-book-hero__badges {
    display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px;
}
.dll-book-hero__badge-coll {
    font-size: .6rem; font-weight: 700; letter-spacing: .16em;
    text-transform: uppercase; color: var(--dll-do);
    padding: 3px 10px; border: 1px solid rgba(184,149,42,.3);
    border-radius: 2px; display: inline-block;
}
.dll-book-hero__badge-dom {
    font-size: .6rem; font-weight: 600; letter-spacing: .1em;
    text-transform: uppercase; color: rgba(245,240,232,.45);
    padding: 3px 10px; border: 1px solid rgba(245,240,232,.15);
    border-radius: 2px; display: inline-block;
}

/* Supprime l'ancienne .dll-book-hero__coll */
.dll-book-hero__coll { display: none !important; }

/* ── Auteur dans hero ── */
.dll-book-hero__author {
    font-size: .85rem; color: rgba(245,240,232,.6); margin-bottom: 10px;
    display: flex; align-items: center; gap: 6px;
}
.dll-book-hero__author-by {
    font-size: .72rem; font-style: italic; color: rgba(245,240,232,.35);
}
.dll-book-hero__author a,
.dll-book-hero__author strong {
    color: var(--dll-do) !important; text-decoration: none;
    font-weight: 500; font-style: normal;
}

/* ── Formats papier/numérique ── */
.dll-book-hero__formats {
    display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px;
}
.dll-book-hero__fmt {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: .65rem; font-weight: 700; letter-spacing: .07em;
    text-transform: uppercase; padding: 5px 12px;
    border-radius: 2px; border: 1px solid;
}
.dll-book-hero__fmt--papier {
    color: var(--dll-iv); border-color: rgba(245,240,232,.2);
    background: rgba(245,240,232,.06);
}
.dll-book-hero__fmt--num {
    color: var(--dll-bv); border-color: rgba(122,179,168,.3);
    background: rgba(122,179,168,.08);
}

/* ── Couverture v34c : plus grande ── */
.dll-book-cover__img {
    width: 200px !important;
    height: auto !important;
    max-height: 290px !important;
    box-shadow: 8px 14px 36px rgba(0,0,0,.6), -3px 0 0 rgba(0,0,0,.35), 0 0 0 1px rgba(0,0,0,.2) !important;
}
.dll-book-cover__ph {
    width: 200px !important;
    height: 290px !important;
    box-shadow: 8px 14px 36px rgba(0,0,0,.6), -3px 0 0 rgba(0,0,0,.35) !important;
}
.dll-book-hero__right {
    padding: 20px 20px 0 0 !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
}

/* ══ STRUCTURE WRAP : contenu + sidebar ══ */
.dll-book-wrap {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 60px 20px;
    background: var(--dll-iv);
    align-items: start;
}

/* ── Contenu principal ── */
.dll-book-main { min-width: 0; }

/* ── Citation accroche ── */
.dll-book-citation {
    border-left: 3px solid var(--dll-do);
    padding: 16px 20px;
    margin-bottom: 24px;
    background: rgba(184,149,42,.05);
    border-radius: 0 4px 4px 0;
}
.dll-book-citation__quote {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.05rem; font-style: italic;
    color: var(--dll-vn); line-height: 1.7; margin: 0;
}
.dll-book-citation__quote::before { content: 'C '; color: var(--dll-do); }
.dll-book-citation__quote::after  { content: ' D'; color: var(--dll-do); }

/* ── Description courte + longue ── */
.dll-book-desc--short {
    font-size: .92rem; color: #3a3a3a; line-height: 1.8;
    font-weight: 500; margin-bottom: 12px;
}
.dll-book-desc--long {
    font-size: .88rem; color: #555; line-height: 1.85;
}
.dll-book-desc--long p { margin-bottom: .8em; }

/* ── Bloc audio éditorial ── */
.dll-book-audio-editorial { display: flex; flex-direction: column; gap: 12px; }
.dll-book-audio-all {
    font-size: .68rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: var(--dll-bv);
    text-decoration: none; transition: color .15s;
}
.dll-book-audio-all:hover { color: var(--dll-do); }

/* ══ SIDEBAR ══ */
.dll-book-sidebar {
    display: flex; flex-direction: column; gap: 20px;
    position: sticky; top: 80px;
}
.dll-book-sidebar__bloc {
    background: #fff;
    border: 0.5px solid var(--dll-iv-deep);
    border-radius: 5px;
    padding: 18px 16px;
}
.dll-book-sidebar__title {
    font-size: .6rem; font-weight: 700; letter-spacing: .16em;
    text-transform: uppercase; color: var(--dll-do);
    margin-bottom: 14px; padding-bottom: 10px;
    border-bottom: 1px solid var(--dll-iv-deep);
}

/* Bloc commander */
.dll-book-order-price .price {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.5rem !important; font-weight: 700 !important;
    color: var(--dll-do) !important;
}
.dll-book-order-dispo {
    font-size: .75rem; font-weight: 600;
    display: flex; align-items: center; margin: 8px 0 14px;
}
.dll-book-order-cart form.cart { max-width: 100% !important; width: 100% !important; }
.dll-book-order-cart .single_add_to_cart_button {
    width: 100% !important; max-width: 100% !important;
    font-size: .68rem !important;
    padding: 10px 16px !important;
}
/* Masquer le second bouton panier du hero dans la sidebar */
.dll-book-hero__cart { margin-bottom: 8px; }

/* ── Livres liés ── */
.dll-book-related-wrap {
    background: var(--dll-iv-deep);
    padding: 40px 60px 60px;
}
.dll-book-related {
    max-width: 1200px;
    margin: 0 auto 40px;
}
.dll-book-related:last-child { margin-bottom: 0; }
.dll-book-related__header { margin-bottom: 20px; }

/* ── Responsive sidebar ── */
@media (max-width: 1024px) {
    .dll-book-wrap {
        grid-template-columns: 1fr 260px;
        padding: 32px 40px 16px;
        gap: 28px;
    }
    .dll-book-related-wrap { padding: 32px 40px 48px; }
}
@media (max-width: 860px) {
    .dll-book-wrap {
        grid-template-columns: 1fr;
        padding: 24px 24px 16px;
    }
    .dll-book-sidebar { position: static; }
    .dll-book-sidebar__bloc--order { display: none; } /* masquer le 2ème bouton panier */
    .dll-book-related-wrap { padding: 24px 24px 40px; }
}
@media (max-width: 600px) {
    .dll-book-wrap { padding: 20px 20px 12px; }
    .dll-book-related-wrap { padding: 20px 20px 32px; }
    .dll-book-hero__formats { gap: 6px; }
    .dll-book-cover__img { width: 160px !important; }
    .dll-book-cover__ph { width: 160px !important; height: 230px !important; }
}


/* ============================================================
   v34c-fix — Corrections sidebar : quantité, panier, padding
   ============================================================ */

/* Masquer quantité dans la sidebar aussi */
.dll-book-order-cart .quantity,
.dll-book-order-cart input[type="number"],
.dll-book-order-cart input.qty {
    display: none !important;
}

/* Bouton panier sidebar — full width propre */
.dll-book-order-cart button[type="submit"],
.dll-book-order-cart .single_add_to_cart_button {
    width: 100% !important;
    max-width: 100% !important;
    min-width: auto !important;
    padding: 10px 16px !important;
    font-size: .68rem !important;
    background: var(--dll-do) !important;
    color: #1a2620 !important;
    border: none !important;
    border-radius: 3px !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    margin-top: 8px !important;
}

/* Wrap : padding réduit pour que le contenu soit visible */
.dll-book-wrap {
    padding: 36px 60px 20px !important;
}

/* Contenu principal : s'assurer qu'il n'y a pas de sections vides */
.dll-book-section:empty { display: none !important; }

/* Prix dans sidebar : Playfair */
.dll-book-order-price .price,
.dll-book-order-price .woocommerce-Price-amount {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: var(--dll-do) !important;
}


/* ============================================================
   v34e — Fiche livre premium : hero fort, formats commerciaux,
   sidebar sb-card, audio éditorial, related unifié
   ============================================================ */

/* ── Hero : layout ── */
.dll-book-hero {
    display: grid !important;
    grid-template-columns: 1fr 260px !important;
    min-height: 420px !important;
    background: var(--dll-vn-deep) !important;
    overflow: hidden !important;
    position: relative !important;
}
.dll-book-hero::after {
    content: '';
    position: absolute;
    right: -40px; bottom: -40px;
    width: 200px; height: 200px;
    border-radius: 50%;
    border: 1px solid rgba(184,149,42,.06);
    pointer-events: none;
}
.dll-book-hero__left {
    padding: 40px 40px 36px 60px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 2 !important;
}
.dll-book-hero__right {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 32px 32px 32px 0 !important;
    position: relative !important;
    z-index: 2 !important;
}

/* ── Badges hero ── */
.dll-book-hero__top-badges {
    display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px;
}
.dll-book-badge {
    font-size: .58rem; font-weight: 700; letter-spacing: .18em;
    text-transform: uppercase; padding: 4px 12px;
    border-radius: 2px; display: inline-block;
}
.dll-book-badge--coll {
    color: var(--dll-do);
    border: 1px solid rgba(184,149,42,.35);
    background: rgba(184,149,42,.06);
}
.dll-book-badge--dom {
    color: rgba(245,240,232,.4);
    border: 1px solid rgba(245,240,232,.12);
}
.dll-book-hero__gl {
    width: 32px; height: 2px;
    background: var(--dll-do);
    margin-bottom: 16px;
    border-radius: 1px;
}

/* ── Titre hero ── */
.dll-book-hero__title {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    color: var(--dll-iv) !important;
    line-height: 1.1 !important;
    letter-spacing: -.01em !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
}

/* ── Auteur ligne hero ── */
.dll-book-hero__author-line {
    display: flex; align-items: center; gap: 7px;
    margin-bottom: 10px;
}
.dll-book-hero__author-by {
    font-size: .72rem; font-style: italic;
    color: rgba(245,240,232,.32);
}
.dll-book-hero__author-name {
    font-size: .82rem; font-weight: 500;
    color: var(--dll-do);
}

/* ── Métas techniques ── */
.dll-book-hero__meta {
    display: flex; flex-wrap: wrap; gap: 0;
    margin-bottom: 16px;
}
.dll-book-hero__meta span {
    font-size: .68rem; color: rgba(245,240,232,.38);
    font-weight: 400;
}
.dll-book-hero__meta span + span::before {
    content: ' · '; color: rgba(245,240,232,.18); padding: 0 4px;
}

/* ── Formats commerciaux ── */
.dll-book-hero__formats-wrap { margin-bottom: 16px; }
.dll-book-hero__formats-title {
    font-size: .58rem; font-weight: 600; letter-spacing: .14em;
    text-transform: uppercase; color: rgba(245,240,232,.28);
    margin-bottom: 8px;
}
.dll-book-hero__formats { display: flex; flex-wrap: wrap; gap: 8px; }
.dll-book-fmt {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 14px; border-radius: 3px; border: 1px solid;
    min-width: 160px; transition: border-color .18s;
}
.dll-book-fmt--papier {
    border-color: rgba(245,240,232,.15);
    background: rgba(245,240,232,.04);
}
.dll-book-fmt--papier:hover { border-color: rgba(245,240,232,.28); }
.dll-book-fmt--num {
    border-color: rgba(122,179,168,.25);
    background: rgba(122,179,168,.06);
}
.dll-book-fmt__icon { color: rgba(245,240,232,.5); flex-shrink: 0; }
.dll-book-fmt--num .dll-book-fmt__icon { color: var(--dll-bv); }
.dll-book-fmt__info { display: flex; flex-direction: column; flex: 1; }
.dll-book-fmt__label {
    font-size: .65rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: var(--dll-iv); line-height: 1.2;
}
.dll-book-fmt__price { font-size: .75rem; color: var(--dll-do); font-weight: 600; line-height: 1.3; }
.dll-book-fmt__avail { font-size: .58rem; font-weight: 700; letter-spacing: .06em; flex-shrink: 0; }

/* ── Séparateur ── */
.dll-book-hero__sep {
    width: 100%; height: 1px;
    background: rgba(184,149,42,.1);
    margin: 14px 0;
}

/* ── Actions hero : boutons ── */
.dll-book-hero__actions {
    display: flex; flex-direction: column; gap: 8px; max-width: 260px;
}
.dll-book-hero__cart form.cart {
    background: transparent !important;
    border: none !important; padding: 0 !important; margin: 0 !important;
    max-width: 260px !important; width: 100% !important;
}
.dll-book-hero__cart .quantity,
.dll-book-hero__cart input[type="number"],
.dll-book-hero__cart input.qty { display: none !important; }
.dll-book-hero__cart .single_add_to_cart_button,
.dll-book-hero__cart button[type="submit"] {
    background: var(--dll-do) !important;
    color: #1a2620 !important; border: none !important;
    border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important; font-weight: 800 !important;
    letter-spacing: .12em !important; text-transform: uppercase !important;
    padding: 13px 28px !important; width: 100% !important;
    max-width: 260px !important; cursor: pointer !important;
    white-space: nowrap !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    transition: background .18s !important;
}
.dll-book-hero__cart .single_add_to_cart_button:hover { background: var(--dll-do-light) !important; }
.dll-book-hero__audio-btn {
    background: transparent !important;
    color: var(--dll-iv) !important;
    border: 1px solid rgba(245,240,232,.22) !important;
    border-radius: 2px !important;
    font-family: 'Source Sans 3', system-ui, sans-serif !important;
    font-size: .68rem !important; font-weight: 700 !important;
    letter-spacing: .1em !important; text-transform: uppercase !important;
    padding: 11px 28px !important; width: 100% !important; max-width: 260px !important;
    cursor: pointer !important; display: flex !important;
    align-items: center !important; justify-content: center !important; gap: 8px !important;
    transition: border-color .18s, color .18s !important;
}
.dll-book-hero__audio-btn:hover {
    border-color: var(--dll-do) !important; color: var(--dll-do) !important;
}

/* ── Couverture wrap + ombre ── */
.dll-book-cover-wrap {
    position: relative; display: flex; flex-direction: column; align-items: center;
}
.dll-book-cover { position: relative; z-index: 2; }
.dll-book-cover__img {
    width: 190px !important; height: auto !important;
    max-height: 280px !important; object-fit: cover !important;
    border-radius: 1px !important;
    box-shadow: 10px 16px 40px rgba(0,0,0,.65), -4px 0 0 rgba(0,0,0,.4), 0 0 0 1px rgba(0,0,0,.15) !important;
    display: block !important;
}
.dll-book-cover__ph {
    width: 190px !important; height: 280px !important;
    border-radius: 1px !important;
    box-shadow: 10px 16px 40px rgba(0,0,0,.65), -4px 0 0 rgba(0,0,0,.4) !important;
    display: flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: center !important;
}
.dll-book-cover-shadow {
    width: 150px; height: 16px;
    background: radial-gradient(ellipse at center, rgba(0,0,0,.45) 0%, transparent 70%);
    margin-top: 6px; z-index: 1;
}
.dll-book-cover__badge {
    position: absolute; bottom: 12px; left: 0;
    background: var(--dll-bv); color: #1a2620;
    font-size: .58rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; padding: 4px 10px;
    display: flex; align-items: center; gap: 5px; border-radius: 0 2px 2px 0;
}

/* ══════ WRAP PRINCIPAL ══════ */
.dll-book-wrap {
    display: grid !important;
    grid-template-columns: 1fr 280px !important;
    gap: 36px !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 40px 60px 24px !important;
    background: var(--dll-iv) !important;
    align-items: start !important;
    box-sizing: border-box !important;
}

/* ── Sections contenu ── */
.dll-book-section { margin-bottom: 36px; }
.dll-book-section:last-child { margin-bottom: 0; }
.dll-book-eyebrow {
    font-size: .58rem; font-weight: 700; letter-spacing: .2em;
    text-transform: uppercase; color: var(--dll-do);
    margin-bottom: 8px;
}
.dll-book-gl {
    width: 28px; height: 2px;
    background: var(--dll-do); border-radius: 1px;
    margin-bottom: 16px;
}

/* ── Citation ── */
.dll-book-citation {
    border-left: 3px solid var(--dll-do);
    padding: 14px 20px; margin-bottom: 28px;
    background: rgba(184,149,42,.04);
    border-radius: 0 3px 3px 0;
}
.dll-book-citation blockquote {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1rem; font-style: italic;
    color: var(--dll-vn); line-height: 1.72; margin: 0;
}
.dll-book-citation blockquote::before { content: '\201C '; color: var(--dll-do); }
.dll-book-citation blockquote::after  { content: ' \201D'; color: var(--dll-do); }

/* ── Description ── */
.dll-book-desc--short {
    font-size: .92rem; color: #2d2d2d; line-height: 1.8;
    font-weight: 500; margin-bottom: 14px;
}
.dll-book-desc--long {
    font-size: .87rem; color: #555; line-height: 1.88;
}
.dll-book-desc--long p { margin-bottom: .75em; }

/* ── Audio card éditorial ── */
.dll-book-audio-card {
    display: flex; gap: 16px; align-items: flex-start;
    background: #fff; border-radius: 3px; padding: 18px 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06), 0 0 0 1px var(--dll-iv-deep);
}
.dll-book-audio-cover {
    width: 64px; height: 88px; border-radius: 2px;
    flex-shrink: 0; overflow: hidden;
    background: var(--dll-vn);
    box-shadow: 2px 3px 10px rgba(0,0,0,.18);
}
.dll-book-audio-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dll-book-audio-cover__ph { width: 100%; height: 100%; }
.dll-book-audio-body { flex: 1; min-width: 0; }
.dll-book-audio-coll {
    font-size: .58rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--dll-do); margin-bottom: 4px;
}
.dll-book-audio-title {
    font-size: .85rem; font-weight: 600; color: var(--dll-vn);
    line-height: 1.35; margin-bottom: 2px;
}
.dll-book-audio-author {
    font-size: .75rem; color: rgba(45,59,53,.55);
    margin-bottom: 12px;
}
.dll-book-audio-player {
    display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
}
.dll-book-play-btn {
    width: 34px; height: 34px; border-radius: 50%;
    background: var(--dll-vn); color: var(--dll-iv);
    border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; transition: background .18s;
}
.dll-book-play-btn:hover { background: var(--dll-do); }
.dll-book-play-track { flex: 1; }
.dll-book-play-bar {
    height: 3px; background: var(--dll-iv-deep); border-radius: 2px; overflow: hidden;
}
.dll-book-play-fill {
    height: 100%; background: var(--dll-do);
    border-radius: 2px; width: 0; transition: width .1s;
}
.dll-book-audio-all {
    font-size: .65rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: var(--dll-bv); text-decoration: none;
    transition: color .15s;
}
.dll-book-audio-all:hover { color: var(--dll-do); }

/* ── Presse ── */
.dll-book-presse-grid { display: flex; flex-direction: column; gap: 14px; }
.dll-book-presse-card {
    background: #fff; border-radius: 3px; padding: 14px 18px;
    border-left: 3px solid var(--dll-do);
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.dll-book-presse-quote {
    font-size: .85rem; font-style: italic; color: #333; line-height: 1.65;
    margin-bottom: 6px;
}
.dll-book-presse-source {
    font-size: .65rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: rgba(45,59,53,.45);
}

/* ══════ SIDEBAR sb-card (inspirée maquette) ══════ */
.dll-book-sidebar {
    display: flex; flex-direction: column; gap: 16px;
    position: sticky; top: 80px;
}
.dll-sb-card {
    background: #fff; border-radius: 3px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,.07), 0 0 0 1px rgba(45,59,53,.06);
}
.dll-sb-head {
    background: var(--dll-vn); padding: 11px 18px;
}
.dll-sb-title {
    font-size: .58rem; font-weight: 700; letter-spacing: .16em;
    text-transform: uppercase; color: var(--dll-do);
}
.dll-sb-body { padding: 14px 18px; }
.dll-sb-body--auteur { padding: 16px 18px; }

/* Meta list sidebar */
.dll-book-meta-list { display: flex; flex-direction: column; gap: 0; }
.dll-book-meta-row {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 7px 0; border-bottom: 1px solid var(--dll-iv-deep); gap: 12px;
}
.dll-book-meta-row:last-child { border-bottom: none; }
.dll-book-meta-row dt {
    font-size: .68rem; font-weight: 600; letter-spacing: .06em;
    text-transform: uppercase; color: rgba(45,59,53,.45); flex-shrink: 0;
}
.dll-book-meta-row dd {
    font-size: .72rem; color: var(--dll-vn); text-align: right;
    font-family: 'Source Sans 3', system-ui, sans-serif;
}

/* Auteur sidebar */
.dll-sb-auteur {
    display: flex; flex-direction: column; align-items: stretch; gap: 0; margin-bottom: 12px; overflow: hidden;
}
.dll-sb-auteur__av {
    width: 46px; height: 46px; border-radius: 50%;
    overflow: hidden; flex-shrink: 0;
    background: var(--dll-vn);
    display: flex; align-items: center; justify-content: center;
    font-size: .85rem; font-weight: 700; color: var(--dll-do);
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
}
.dll-sb-auteur__av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dll-sb-auteur__name {
    font-size: .82rem; font-weight: 700; color: var(--dll-vn); line-height: 1.3;
}
.dll-sb-auteur__role {
    font-size: .62rem; font-weight: 600; letter-spacing: .08em;
    text-transform: uppercase; color: var(--dll-do); margin-top: 3px;
}
.dll-sb-auteur__bio {
    font-size: .78rem; color: rgba(45,59,53,.6); line-height: 1.65;
    margin: 0 0 10px; font-style: italic;
}
.dll-sb-auteur__link {
    font-size: .64rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: var(--dll-bv); text-decoration: none;
    transition: color .15s;
}
.dll-sb-auteur__link:hover { color: var(--dll-do); }

/* Commander sidebar */
.dll-sb-card--order .dll-sb-body { padding: 16px 18px; }
.dll-sb-price .price,
.dll-sb-price .woocommerce-Price-amount {
    font-family: 'Playfair Display', Georgia, serif !important;
    font-size: 1.5rem !important; font-weight: 700 !important;
    color: var(--dll-do) !important; display: block;
    margin-bottom: 6px;
}
.dll-sb-dispo {
    font-size: .7rem; font-weight: 600;
    display: flex; align-items: center; gap: 6px; margin-bottom: 14px;
}
.dll-sb-dispo-dot {
    width: 7px; height: 7px; border-radius: 50%; display: inline-block; flex-shrink: 0;
}
.dll-sb-cart form.cart {
    background: transparent !important; border: none !important;
    padding: 0 !important; margin: 0 !important; width: 100% !important;
}
.dll-sb-cart .quantity,
.dll-sb-cart input[type="number"],
.dll-sb-cart input.qty { display: none !important; }
.dll-sb-cart .single_add_to_cart_button,
.dll-sb-cart button[type="submit"] {
    background: var(--dll-do) !important; color: #1a2620 !important;
    border: none !important; border-radius: 2px !important;
    font-size: .65rem !important; font-weight: 800 !important;
    letter-spacing: .12em !important; text-transform: uppercase !important;
    padding: 11px 16px !important; width: 100% !important;
    cursor: pointer !important; white-space: nowrap !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    transition: background .18s !important;
}
.dll-sb-cart .single_add_to_cart_button:hover { background: var(--dll-do-light) !important; }

/* ══════ RELATED SECTION UNIFIÉE ══════ */
.dll-book-related-section {
    background: var(--dll-iv-deep);
    padding: 48px 0;
}
.dll-book-related-inner {
    max-width: 1200px; margin: 0 auto; padding: 0 60px;
}
.dll-book-related-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
    margin-top: 20px;
}
.dll-book-rcard {
    background: #fff; border-radius: 3px; overflow: hidden;
    display: flex; text-decoration: none;
    box-shadow: 0 1px 4px rgba(0,0,0,.07), 0 0 0 1px rgba(45,59,53,.05);
    transition: box-shadow .22s, transform .22s; cursor: pointer;
}
.dll-book-rcard:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.12); transform: translateY(-2px);
}
.dll-book-rcard__cover {
    width: 72px; height: 100px; flex-shrink: 0; overflow: hidden;
}
.dll-book-rcard__cover img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.dll-book-rcard__cover span {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    font-size: .85rem; font-weight: 700; color: rgba(245,240,232,.5);
}
.dll-book-rcard__body {
    padding: 12px 14px; display: flex; flex-direction: column; flex: 1; min-width: 0;
}
.dll-book-rcard__coll {
    font-size: .56rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--dll-do); margin-bottom: 3px;
}
.dll-book-rcard__audio {
    font-size: .6rem; color: var(--dll-bv);
    display: flex; align-items: center; gap: 4px; margin-bottom: 4px;
}
.dll-book-rcard__title {
    font-size: .78rem; font-weight: 700; color: var(--dll-vn);
    line-height: 1.3; margin-bottom: 3px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dll-book-rcard__author {
    font-size: .7rem; color: rgba(45,59,53,.5); margin-bottom: 8px; flex: 1;
}
.dll-book-rcard__cta {
    font-size: .6rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase; color: var(--dll-bv); margin-top: auto;
}

/* ══════ RESPONSIVE ══════ */
@media (max-width: 1100px) {
    .dll-book-wrap { grid-template-columns: 1fr 260px; padding: 32px 40px 20px; }
    .dll-book-related-inner { padding: 0 40px; }
    .dll-book-hero__left { padding: 36px 32px 32px 40px !important; }
}
@media (max-width: 900px) {
    .dll-book-hero { grid-template-columns: 1fr 200px !important; }
    .dll-book-cover__img { width: 160px !important; }
    .dll-book-cover__ph { width: 160px !important; height: 230px !important; }
    .dll-book-wrap { grid-template-columns: 1fr; padding: 24px 24px 16px; }
    .dll-book-sidebar { position: static; }
    .dll-sb-card--order { display: none; }
    .dll-book-related-grid { grid-template-columns: 1fr 1fr; }
    .dll-book-related-inner { padding: 0 24px; }
}
@media (max-width: 600px) {
    .dll-book-hero { grid-template-columns: 1fr !important; }
    .dll-book-hero__right { display: none !important; }
    .dll-book-hero__left { padding: 28px 24px !important; }
    .dll-book-hero__title { font-size: 1.6rem !important; }
    .dll-book-fmt { min-width: auto; flex: 1; }
    .dll-book-related-grid { grid-template-columns: 1fr; }
    .dll-book-wrap { padding: 20px 20px 12px; }
    .dll-book-related-inner { padding: 0 20px; }
    .dll-book-related-section { padding: 32px 0; }
}

/* ========================================================
   DLL Fiche Livre v35a - Corrections DA
   ======================================================== */

/* Hero actions : boutons sur UNE SEULE LIGNE */
.dll-fiche-hero__actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-top: 2rem;
}

/* WC add_to_cart shortcode dans le hero */
.dll-fiche-hero__actions form.cart {
    display: contents;
}
.dll-fiche-hero__actions .quantity { display: none; }
.dll-fiche-hero__actions .wc-forward { display: none; }
.dll-fiche-hero__actions button.single_add_to_cart_button,
.dll-fiche-hero__actions .add_to_cart_button {
    display: inline-flex !important;
    align-items: center;
    background: var(--dll-do) !important;
    color: #fff !important;
    border: none !important;
    padding: 0.85rem 2rem !important;
    font-family: 'Source Sans 3', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    white-space: nowrap !important;
    text-decoration: none !important;
}
.dll-fiche-hero__actions button.single_add_to_cart_button:hover,
.dll-fiche-hero__actions .add_to_cart_button:hover {
    background: var(--dll-do-light) !important;
}

/* Bouton audio outline dans le hero */
.dll-fiche-hero__actions .dll-btn--audio {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    color: var(--dll-iv);
    border: 1.5px solid var(--dll-do);
    padding: 0.82rem 1.6rem;
    font-family: 'Source Sans 3', sans-serif;
    font-weight: 600;
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s, color 0.2s;
}
.dll-fiche-hero__actions .dll-btn--audio:hover {
    background: var(--dll-do);
    color: #fff;
}

/* Badges format dans le hero */
.dll-fiche-hero__formats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.dll-fiche-badge-format {
    display: inline-block;
    border: 1px solid var(--dll-do);
    color: var(--dll-do);
    padding: 0.2rem 0.7rem;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    font-weight: 700;
    font-family: 'Source Sans 3', sans-serif;
}

/* Description editoriale */
.dll-fiche-desc-editorial {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 1.05rem;
    line-height: 1.75;
    color: #3a3a3a;
    max-width: 65ch;
}
.dll-fiche-desc-editorial p { margin-bottom: 1.2em; }

/* Audio card recompose */
.dll-fiche-audio-card {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    background: var(--dll-iv);
    border: 1px solid #ddd;
    border-left: 4px solid var(--dll-do);
    padding: 1.5rem;
}
.dll-fiche-audio-card__thumb { flex: 0 0 72px; }
.dll-fiche-audio-card__thumb img {
    width: 72px;
    height: 100px;
    object-fit: cover;
    display: block;
    box-shadow: 2px 4px 12px rgba(0,0,0,0.15);
}
.dll-fiche-audio-card__content { flex: 1; min-width: 0; }
.dll-fiche-audio-card__titre {
    font-family: 'Playfair Display', serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--dll-vn);
    margin: 0 0 0.2rem 0;
}
.dll-fiche-audio-card__auteur {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.85rem;
    color: #666;
    margin: 0 0 1rem 0;
}
.dll-fiche-audio-card__player { margin-bottom: 0.75rem; }

.dll-audio-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--dll-vn);
    color: var(--dll-iv);
    border: none;
    padding: 0.6rem 1.4rem;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s;
}
.dll-audio-btn:hover { background: var(--dll-vn-deep); }
.dll-audio-btn__icon { font-size: 0.75rem; color: var(--dll-do); }

.dll-fiche-audio-card__link {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.82rem;
    color: var(--dll-do);
    text-decoration: none;
    letter-spacing: 0.04em;
}
.dll-fiche-audio-card__link:hover { text-decoration: underline; }

/* Sidebar audio badge */
.sb-info-row__val--audio { color: var(--dll-do); font-weight: 600; }

/* Mobile */
@media (max-width: 767px) {
    .dll-fiche-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }
    .dll-fiche-hero__actions .dll-btn--audio,
    .dll-fiche-hero__actions button.single_add_to_cart_button,
    .dll-fiche-hero__actions .add_to_cart_button {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* ========================================================
   DLL Fiche Livre v35b - Structure hero et corps
   ======================================================== */
.dll-vn-bg { background-color: var(--dll-vn) !important; }

.dll-fiche-hero {
    background-color: var(--dll-vn);
    color: var(--dll-iv);
    padding: 3rem 0;
}
.dll-fiche-hero__inner {
    display: flex !important;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}
.dll-fiche-hero__left {
    flex: 1 1 0;
    min-width: 0;
}
.dll-fiche-hero__cover {
    flex: 0 0 220px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.dll-fiche-badge-collection {
    display: inline-block;
    border: 1.5px solid var(--dll-do);
    padding: 0.3rem 0.9rem;
    margin-bottom: 1.2rem;
}
.dll-fiche-badge-collection__label {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: var(--dll-do);
    text-transform: uppercase;
}
.dll-fiche-hero__title {
    font-family: 'Playfair Display', serif;
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--dll-iv);
    line-height: 1.2;
    margin: 0 0 0.8rem 0;
}
.dll-fiche-hero__auteur {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 1rem;
    color: rgba(245,240,232,0.7);
    margin: 0 0 0.3rem 0;
}
.dll-fiche-hero__auteur-name {
    color: var(--dll-do);
    font-weight: 600;
}
.dll-fiche-hero__annee {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.9rem;
    color: rgba(245,240,232,0.5);
    margin: 0 0 1.2rem 0;
}
.dll-fiche-cover-wrap {
    position: relative;
    display: inline-block;
}
.dll-fiche-cover {
    width: 190px;
    display: block;
    box-shadow: 0 4px 16px rgba(0,0,0,0.3), 0 12px 40px rgba(0,0,0,0.25);
}
.dll-fiche-cover__audio-badge {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--dll-do);
    color: #fff;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-align: center;
    padding: 0.35rem 0;
}
.dll-fiche-corps {
    background: var(--dll-iv);
    padding: 3rem 0;
}
.dll-fiche-corps__inner {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}
.dll-fiche-main { flex: 1 1 0; min-width: 0; }
.dll-fiche-sidebar {
    flex: 0 0 300px;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.dll-fiche-section { margin-bottom: 2.5rem; }
.dll-fiche-section__title {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--dll-do);
    margin: 0 0 0.75rem 0;
}
.dll-fiche-section__sep {
    width: 2.5rem;
    height: 2px;
    background: var(--dll-do);
    margin-bottom: 1.5rem;
}
.dll-fiche-related {
    background: #fff;
    padding: 3rem 0;
    border-top: 1px solid #e8e2d6;
}
.dll-fiche-related__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}
.dll-fiche-related__title {
    font-family: 'Source Sans 3', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--dll-do);
    margin: 0 0 0.75rem 0;
}
.dll-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 1.5rem;
}
.dll-book-rcard {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    background: var(--dll-iv);
    padding: 1rem;
}
.dll-book-rcard__cover { flex: 0 0 60px; }
.dll-book-rcard__cover img { width: 60px; display: block; }
.dll-book-rcard__info { flex: 1; min-width: 0; }
.dll-book-rcard__coll {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dll-bv);
    margin: 0 0 0.2rem 0;
}
.dll-book-rcard__audio { font-size: 0.7rem; color: var(--dll-do); margin: 0 0 0.3rem 0; }
.dll-book-rcard__title {
    font-family: 'Playfair Display', serif;
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0 0 0.2rem 0;
    line-height: 1.3;
}
.dll-book-rcard__title a { color: var(--dll-vn); text-decoration: none; }
.dll-book-rcard__title a:hover { color: var(--dll-do); }
.dll-book-rcard__auteur { font-size: 0.8rem; color: #666; margin: 0 0 0.5rem 0; }
.dll-book-rcard__link { font-size: 0.75rem; color: var(--dll-do); text-decoration: none; }
.dll-book-rcard__link:hover { text-decoration: underline; }
@media (max-width: 900px) {
    .dll-fiche-hero__inner, .dll-fiche-corps__inner { flex-direction: column; }
    .dll-fiche-hero__cover { order: -1; }
    .dll-fiche-sidebar { flex: none; width: 100%; }
    .dll-related-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .dll-related-grid { grid-template-columns: 1fr; }
    .dll-fiche-hero__title { font-size: 1.8rem; }
}

/* === LIBRAIRIE — fix final hero lune + breadcrumb + grille 2026-06-24 === */

/* Masquer les pseudo-elements decoratifs du hero Librairie */
body.post-type-archive-product .dll-librairie-hero::before,
body.post-type-archive-product .dll-librairie-hero::after,
.woocommerce.archive.post-type-archive-product .dll-librairie-hero::before,
.woocommerce.archive.post-type-archive-product .dll-librairie-hero::after {
    content: none !important;
    display: none !important;
}

/* Masquer le breadcrumb / barre beige sous le menu sur la Librairie */
body.post-type-archive-product .dll-breadcrumb,
.woocommerce.archive.post-type-archive-product .dll-breadcrumb,
body.post-type-archive-product .woocommerce-breadcrumb,
.woocommerce.archive.post-type-archive-product .woocommerce-breadcrumb {
    display: none !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}

/* Securiser le header/logo sur la Librairie */
body.post-type-archive-product .dll-logo-img,
.woocommerce.archive.post-type-archive-product .dll-logo-img {
    width: auto !important;
    height: 40px !important;
    max-height: 40px !important;
}

/* ==============================================
   FICHE PRODUIT INDIVIDUELLE — fixes v54
   ============================================== */

/* Logo : contraindre sur single-product */
body.single-product .dll-logo-img,
body.single.single-product .dll-logo-img {
    width: auto !important;
    height: 32px !important;
    max-height: 32px !important;
    max-width: 160px !important;
}

body.single-product .dll-hdr-logo {
    overflow: hidden;
    max-height: 60px;
}

/* Barre audio : ne pas afficher sur fiche produit si vide */
body.single-product .dll-audio-bar:not(.dll-audio-bar--active) {
    display: none !important;
}


/* Correction premiere ligne grille produits */
body.post-type-archive-product .dll-librairie-grid-wrap ul.products::before,
body.post-type-archive-product .dll-librairie-grid-wrap ul.products::after,
body.post-type-archive-product ul.products.columns-4::before,
body.post-type-archive-product ul.products.columns-4::after {
    content: none !important;
    display: none !important;
}


/* ============================================================
   RECHERCHE LIBRAIRIE — barre de filtre
   ============================================================ */
.dll-lib-search {
    margin-left: auto;
    position: relative;
    flex-shrink: 0;
}
.dll-lib-search input {
    width: 220px;
    padding: 7px 12px 7px 32px;
    border: 1px solid var(--dll-iv-deep, #ece6d8);
    border-radius: 2px;
    font-family: var(--ff-body, 'Source Sans 3', sans-serif);
    font-size: 0.8rem;
    color: var(--dll-vn, #2d3b35);
    background: var(--dll-iv, #f5f0e8);
    outline: none;
    transition: border-color 0.14s, background 0.14s, width 0.2s;
}
.dll-lib-search input:focus {
    border-color: var(--dll-do, #b8952a);
    background: #ffffff;
    width: 280px;
}
.dll-lib-search::before {
    content: '\2315';
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.9rem;
    color: #a09880;
    pointer-events: none;
    z-index: 1;
}
@media (max-width: 640px) {
    .dll-lib-search { width: 100%; margin-left: 0; margin-top: 8px; }
    .dll-lib-search input { width: 100%; }
    .dll-lib-search input:focus { width: 100%; }
}


/* ==== HB-3 - Sous-menu Notre maison (.sub-menu natif) - v106 ==== */
/* Ne pas reactiver .nav-sub legacy. Desktop >=901px + mobile <=900px. */
@media (min-width:901px){
  .dll-hdr-nav .dll-nav-list li.menu-item-has-children > a::after{
    content:"\25BE"; font-size:0.7em; line-height:1; margin-left:5px;
    color:var(--dll-do,#b8952a); opacity:0.75; vertical-align:baseline;
  }
  .dll-hdr-nav .dll-nav-list li.menu-item-has-children{ position:relative; }
  .dll-hdr-nav:hover, .dll-hdr-nav:focus-within{ overflow:visible; }
  .dll-hdr-nav .dll-nav-list .sub-menu{
    display:none; position:absolute; top:100%; left:0; min-width:210px;
    margin:0; padding:6px 0; list-style:none;
    background:#1e2e28; border:1px solid rgba(184,149,42,0.18);
    border-radius:0 0 4px 4px; box-shadow:0 10px 28px rgba(0,0,0,0.28); z-index:200;
  }
  .dll-hdr-nav .dll-nav-list li.menu-item-has-children:hover > .sub-menu,
  .dll-hdr-nav .dll-nav-list li.menu-item-has-children:focus-within > .sub-menu{ display:block; }
  .dll-hdr-nav .dll-nav-list .sub-menu li{ margin:0; }
  .dll-hdr-nav .dll-nav-list .sub-menu a{
    display:block; padding:9px 18px; font-size:0.72rem; font-weight:500;
    letter-spacing:0.03em; text-transform:none; color:rgba(245,240,232,0.66);
    white-space:nowrap; border-left:2px solid transparent; border-bottom:0;
    text-decoration:none; transition:color .15s,background .15s,border-color .15s;
  }
  .dll-hdr-nav .dll-nav-list .sub-menu a:hover,
  .dll-hdr-nav .dll-nav-list .sub-menu a:focus{
    color:var(--dll-iv,#f5f0e8); background:rgba(184,149,42,0.08);
    border-left-color:var(--dll-do,#b8952a);
  }
}
@media (max-width:900px){
  .dll-mobile-menu .dll-mobile-nav-list li.menu-item-has-children > a::after{ content:none; }
  .dll-mobile-menu .dll-mobile-nav-list .sub-menu{
    display:block; list-style:none; margin:0 0 4px; padding:2px 0; background:rgba(0,0,0,0.12);
  }
  .dll-mobile-menu .dll-mobile-nav-list .sub-menu li a{
    padding:8px 24px 8px 40px; font-size:0.76rem; color:rgba(245,240,232,0.6);
    border-bottom:1px solid rgba(184,149,42,0.06);
  }
  .dll-mobile-menu .dll-mobile-nav-list .sub-menu li a:hover,
  .dll-mobile-menu .dll-mobile-nav-list .sub-menu li a:focus{ color:var(--dll-iv,#f5f0e8); }
}
/* ==== Fin HB-3 - v106 ==== */
