
:root{--dll-nuit:#1C2B3A;--dll-or:#C2B280;--dll-sarcelle:#4EA5A0;--dll-creme:#FAF9F6;--dll-white:#fff;--dll-muted:rgba(28,43,58,.62);--dll-border:rgba(28,43,58,.14);--dll-shadow:0 22px 55px rgba(28,43,58,.12);--dll-radius:22px;--dll-container:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dll-creme);color:var(--dll-nuit);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}body.admin-bar .dll-site-header{top:32px}a{color:var(--dll-sarcelle);text-decoration:none;transition:.2s ease}a:hover{color:var(--dll-or)}img{max-width:100%;height:auto}p{font-family:"EB Garamond",Georgia,serif;font-size:1.12rem;line-height:1.76}h1,h2,h3,h4,h5,h6{font-family:"Playfair Display",Georgia,serif;color:var(--dll-nuit);line-height:.98;letter-spacing:-.035em;margin:0 0 1rem}h1{font-size:clamp(3rem,8vw,7.4rem)}h2{font-size:clamp(2.2rem,5vw,4.6rem)}h3{font-size:clamp(1.45rem,3vw,2.4rem)}.dll-container{width:min(var(--dll-container),calc(100% - 40px));margin-inline:auto}.dll-small{font-family:Arial,Helvetica,sans-serif;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dll-sarcelle);font-weight:700}.dll-rule{width:76px;height:1px;background:var(--dll-or);margin:1.4rem 0 1.8rem}.dll-btn,.button,.wp-block-button__link,.woocommerce a.button,.woocommerce button.button,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.35rem;border-radius:999px;border:1px solid var(--dll-nuit)!important;background:var(--dll-nuit)!important;color:var(--dll-creme)!important;font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:.86rem;letter-spacing:.04em;text-transform:uppercase;transition:.22s ease;cursor:pointer}.dll-btn:hover,.button:hover,.wp-block-button__link:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,input[type=submit]:hover{background:var(--dll-or)!important;border-color:var(--dll-or)!important;color:var(--dll-nuit)!important;transform:translateY(-1px)}.dll-btn--light{background:var(--dll-creme)!important;color:var(--dll-nuit)!important;border-color:var(--dll-creme)!important}
.dll-site-header{position:sticky;top:0;z-index:50;background:rgba(250,249,246,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(28,43,58,.08)}.dll-topbar{background:var(--dll-nuit);color:var(--dll-creme);font-size:.82rem}.dll-topbar .dll-container{display:flex;align-items:center;justify-content:space-between;padding:.45rem 0}.dll-topbar a{color:var(--dll-or)}.dll-header-main{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.05rem 0}.dll-logo{display:flex;align-items:center;gap:.8rem;color:var(--dll-nuit)}.dll-logo img{width:138px;max-height:66px;object-fit:contain}.dll-nav ul{display:flex;align-items:center;gap:1.6rem;list-style:none;margin:0;padding:0}.dll-nav a{font-family:Arial,Helvetica,sans-serif;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--dll-nuit);font-weight:700}.dll-menu-toggle{display:none;background:none;border:0;color:var(--dll-nuit);font-size:1.8rem}
.dll-hero{padding:clamp(4rem,8vw,8rem) 0;background:linear-gradient(90deg,var(--dll-creme) 0%,#fff 100%)}.dll-hero__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:4rem;align-items:center}.dll-hero__title{font-size:clamp(4rem,10vw,9rem);max-width:860px}.dll-hero__title em{font-style:normal;color:var(--dll-or)}.dll-hero__lead{max-width:620px;color:var(--dll-muted);font-size:1.24rem}.dll-hero__actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}.dll-hero-card{background:#fff;padding:1.4rem;border:1px solid var(--dll-border);box-shadow:var(--dll-shadow);border-radius:var(--dll-radius)}.dll-hero-card img{display:block;width:100%;aspect-ratio:4/5;object-fit:contain;background:#fff;border-radius:14px}
.dll-section{padding:clamp(3.5rem,7vw,6.5rem) 0}.dll-section--nuit{background:var(--dll-nuit);color:var(--dll-creme)}.dll-section--nuit h2,.dll-section--nuit h3,.dll-section--nuit p{color:var(--dll-creme)}.dll-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}.dll-section-head p{max-width:580px;color:var(--dll-muted)}
.dll-book-grid,.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.6rem 2rem;list-style:none;margin:0;padding:0}.woocommerce ul.products li.product{width:auto!important;margin:0!important;text-align:center}.dll-book-card,.woocommerce ul.products li.product{text-align:center}.dll-book-card__cover,.woocommerce ul.products li.product img{width:100%;max-width:230px;aspect-ratio:2/3;object-fit:contain;background:#fff;padding:10px;border:1px solid var(--dll-border);box-shadow:0 14px 34px rgba(28,43,58,.12);margin:0 auto 1.1rem!important;transition:.25s ease}.dll-book-card:hover .dll-book-card__cover,.woocommerce ul.products li.product:hover img{transform:translateY(-5px);box-shadow:0 24px 55px rgba(28,43,58,.18)}.dll-book-card__author{font-family:Arial,Helvetica,sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--dll-muted);margin:.2rem 0 .3rem}.dll-book-card__title,.woocommerce-loop-product__title{font-family:"Playfair Display",Georgia,serif!important;font-size:1.18rem!important;line-height:1.2!important;color:var(--dll-nuit);margin:.5rem 0!important}.woocommerce ul.products li.product .price{font-size:.9rem;color:var(--dll-muted)}.home .woocommerce ul.products li.product .price{display:none}
.dll-collection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.dll-collection-card{padding:1.6rem;border:1px solid var(--dll-border);border-radius:var(--dll-radius);background:#fff;min-height:180px;display:flex;flex-direction:column;justify-content:space-between}.dll-collection-card h3{font-size:1.6rem}.dll-collection-card:hover{box-shadow:var(--dll-shadow);transform:translateY(-2px);transition:.22s ease}
.dll-author-hero{display:grid;grid-template-columns:42% 58%;align-items:stretch;min-height:520px;background:var(--dll-nuit);margin:0 0 4rem}.dll-author-hero__photo{min-height:520px;background:var(--dll-nuit);overflow:hidden}.dll-author-hero__photo img{width:100%;height:100%;min-height:520px;object-fit:cover;object-position:center;filter:saturate(.92)}.dll-author-hero__content{background:var(--dll-creme);padding:clamp(2.5rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center}.dll-author-hero__name{font-size:clamp(3.4rem,7vw,7.2rem);animation:dllReveal .75s ease both}.dll-author-hero__tagline{border-top:1px solid var(--dll-or);border-bottom:1px solid var(--dll-or);padding:1rem 0;margin-top:1rem;max-width:560px;font-family:"EB Garamond",Georgia,serif;font-size:1.24rem;line-height:1.5;color:var(--dll-nuit);animation:dllReveal .85s .12s ease both}.dll-author-search{max-width:760px;margin:2rem auto 3rem}.dll-author-search input{width:100%;border:1px solid var(--dll-border);border-radius:999px;padding:1.05rem 1.4rem;background:#fff;color:var(--dll-nuit);box-shadow:0 10px 30px rgba(28,43,58,.06)}.dll-author-pill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.dll-author-pill{display:flex;align-items:center;gap:.8rem;border:1px solid var(--dll-border);border-radius:999px;background:#fff;padding:.65rem 1rem .65rem .65rem;color:var(--dll-nuit);box-shadow:0 8px 22px rgba(28,43,58,.06)}.dll-author-pill__avatar{width:46px;height:46px;border-radius:999px;background:var(--dll-nuit);color:var(--dll-or);display:inline-flex;align-items:center;justify-content:center;font-family:"Playfair Display",Georgia,serif;font-size:1.05rem;overflow:hidden;flex:none}.dll-author-pill__avatar img{width:100%;height:100%;object-fit:cover}.dll-author-pill__role{display:block;color:var(--dll-sarcelle);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif}.dll-author-pill__name{display:block;font-family:"Playfair Display",Georgia,serif;font-size:1.08rem;line-height:1.1;color:var(--dll-nuit)}.dll-author-bio{max-width:820px;margin:0 auto 4rem;font-family:"EB Garamond",Georgia,serif;font-size:1.24rem;line-height:1.78}
.dll-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.dll-post-card{background:#fff;border:1px solid var(--dll-border);border-radius:var(--dll-radius);overflow:hidden;box-shadow:0 10px 24px rgba(28,43,58,.06)}.dll-post-card__image img{width:100%;aspect-ratio:16/10;object-fit:cover}.dll-post-card__content{padding:1.3rem}.dll-page-header{padding:4rem 0 2rem;text-align:center;background:var(--dll-creme)}.dll-breadcrumb{font-size:.8rem;color:var(--dll-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}.dll-content{padding:3rem 0;max-width:900px;margin-inline:auto}.dll-content p{font-size:1.18rem}
.single-product .product{display:grid;grid-template-columns:minmax(280px,42%) 1fr;gap:4rem;align-items:start}.single-product div.product div.images img{aspect-ratio:2/3;object-fit:contain;background:#fff;padding:14px;box-shadow:var(--dll-shadow);border:1px solid var(--dll-border)}.single-product .product_title{font-size:clamp(2.6rem,6vw,5.6rem)}.single-product .summary .price{font-size:1.2rem;color:var(--dll-sarcelle)}.product_meta{border-top:1px solid var(--dll-border);border-bottom:1px solid var(--dll-border);padding:1rem 0;margin:1.5rem 0}
.dll-site-footer{background:var(--dll-nuit);color:var(--dll-creme);padding:4rem 0 2rem;margin-top:4rem}.dll-footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem}.dll-site-footer h3{color:var(--dll-or);font-size:1.35rem}.dll-site-footer p,.dll-site-footer a{color:rgba(250,249,246,.75);font-family:Arial,Helvetica,sans-serif;font-size:.92rem}.dll-footer-bottom{border-top:1px solid rgba(250,249,246,.14);margin-top:2.5rem;padding-top:1.3rem;font-size:.82rem;color:rgba(250,249,246,.62)}
@keyframes dllReveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.dll-book-grid,.woocommerce ul.products{grid-template-columns:repeat(3,1fr)}.dll-hero__grid,.single-product .product,.dll-author-hero{grid-template-columns:1fr}.dll-author-hero__photo,.dll-author-hero__photo img{min-height:420px}.dll-collection-grid,.dll-author-pill-grid,.dll-post-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:782px){body.admin-bar .dll-site-header{top:46px}.dll-menu-toggle{display:block}.dll-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--dll-creme);border-bottom:1px solid var(--dll-border);padding:1rem 20px}.dll-nav.is-open{display:block}.dll-nav ul{display:grid;gap:.9rem}.dll-header-main{position:relative}.dll-book-grid,.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:2rem 1rem}.dll-collection-grid,.dll-author-pill-grid,.dll-post-grid,.dll-footer-grid{grid-template-columns:1fr}.dll-hero{padding:3.2rem 0}.dll-hero__title{font-size:clamp(3.3rem,16vw,5.5rem)}.dll-author-hero__name{font-size:clamp(3rem,14vw,5rem)}.dll-section-head{display:block}.single-product .product{gap:2rem}}@media(max-width:480px){.dll-container{width:min(var(--dll-container),calc(100% - 28px))}.dll-logo img{width:112px}.dll-book-card__cover,.woocommerce ul.products li.product img{max-width:150px;padding:8px}}


/* === De La Lune v1.1 : header, vrais dropdowns, formulaires === */
.dll-topbar{position:relative;z-index:70}
.dll-topbar__inner,.dll-topbar .dll-container{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:1rem;white-space:nowrap}
.dll-header-main{min-height:104px;align-items:center}
.dll-logo{flex:0 0 auto;min-width:150px}
.dll-logo img,.dll-logo .custom-logo{width:150px;max-height:76px;object-fit:contain}
.dll-nav{flex:1 1 auto;display:flex;justify-content:flex-end;min-width:0}
.dll-nav ul,.dll-menu{list-style:none;margin:0;padding:0}
.dll-nav>ul,.dll-nav .dll-menu{display:flex;align-items:center;justify-content:flex-end;gap:clamp(.9rem,1.5vw,1.65rem)}
.dll-nav .dll-menu>li,.dll-nav>ul>li{position:relative;display:flex;align-items:center;min-height:72px}
.dll-nav .dll-menu>li>a,.dll-nav>ul>li>a{display:inline-flex;align-items:center;min-height:72px;white-space:nowrap;font-size:clamp(.68rem,.75vw,.82rem);line-height:1;letter-spacing:.095em;color:var(--dll-nuit);font-weight:800;text-transform:uppercase;padding:0}
.dll-nav .dll-menu>li:hover>a,.dll-nav .dll-menu>li:focus-within>a,.dll-nav>ul>li:hover>a,.dll-nav>ul>li:focus-within>a{color:var(--dll-sarcelle)}
.dll-nav .menu-item-has-children>a::after{content:"▾";font-size:.64rem;margin-left:.45rem;color:var(--dll-or);transform:translateY(-1px)}
.dll-nav .sub-menu{display:block;visibility:hidden;opacity:0;pointer-events:none;position:absolute;top:100%;left:50%;min-width:250px;margin:0;padding:.65rem 0;background:rgba(250,249,246,.98);border:1px solid rgba(28,43,58,.12);border-top:2px solid var(--dll-or);box-shadow:0 24px 55px rgba(28,43,58,.16);border-radius:0 0 18px 18px;z-index:9999;transition:opacity .18s ease,transform .18s ease,visibility .18s ease;transform:translateX(-50%) translateY(10px)}
.dll-nav .dll-menu>li:nth-last-child(-n+2)>.sub-menu,.dll-nav>ul>li:nth-last-child(-n+2)>.sub-menu{left:auto;right:0;transform:translateY(10px)}
.dll-nav li:hover>.sub-menu,.dll-nav li:focus-within>.sub-menu{visibility:visible;opacity:1;pointer-events:auto}
.dll-nav .dll-menu>li:not(:nth-last-child(-n+2)):hover>.sub-menu,.dll-nav .dll-menu>li:not(:nth-last-child(-n+2)):focus-within>.sub-menu,.dll-nav>ul>li:not(:nth-last-child(-n+2)):hover>.sub-menu,.dll-nav>ul>li:not(:nth-last-child(-n+2)):focus-within>.sub-menu{transform:translateX(-50%) translateY(0)}
.dll-nav .dll-menu>li:nth-last-child(-n+2):hover>.sub-menu,.dll-nav .dll-menu>li:nth-last-child(-n+2):focus-within>.sub-menu,.dll-nav>ul>li:nth-last-child(-n+2):hover>.sub-menu,.dll-nav>ul>li:nth-last-child(-n+2):focus-within>.sub-menu{transform:translateY(0)}
.dll-nav .sub-menu li{display:block;min-height:0;position:relative}
.dll-nav .sub-menu a{display:block;min-height:0;padding:.78rem 1.15rem;color:var(--dll-nuit);font-size:.76rem;line-height:1.25;letter-spacing:.06em;font-weight:700;text-transform:uppercase;white-space:nowrap;border-left:3px solid transparent}
.dll-nav .sub-menu a:hover,.dll-nav .sub-menu a:focus{color:var(--dll-sarcelle);background:rgba(78,165,160,.08);border-left-color:var(--dll-sarcelle)}
.dll-nav .sub-menu,.dll-nav .sub-menu ul{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0}
.dll-page-header{padding:clamp(3rem,6vw,5.6rem) 0 clamp(1.7rem,3vw,2.6rem)}
.dll-page-header h1{font-size:clamp(3.2rem,7vw,6.8rem)}
.dll-section--nuit .dll-collection-card{background:rgba(250,249,246,.98);border-color:rgba(194,178,128,.38)}
.dll-section--nuit .dll-collection-card h3{color:var(--dll-nuit)}
.dll-section--nuit .dll-collection-card span,.dll-section--nuit .dll-collection-card .dll-small{color:var(--dll-sarcelle)}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=search],textarea,select,.wpforms-field input,.wpforms-field textarea,.wpcf7 input,.wpcf7 textarea{width:100%;border:1px solid var(--dll-border);background:#fff;color:var(--dll-nuit);border-radius:14px;padding:.9rem 1rem;font-family:Arial,Helvetica,sans-serif;box-shadow:0 8px 22px rgba(28,43,58,.04)}
textarea,.wpforms-field textarea,.wpcf7 textarea{min-height:160px}
.woocommerce ul.products li.product .button{margin-top:.7rem;padding:.72rem 1.05rem;font-size:.72rem}
@media(max-width:1180px){.dll-logo img,.dll-logo .custom-logo{width:132px}.dll-nav .dll-menu,.dll-nav>ul{gap:.8rem}.dll-nav .dll-menu>li>a,.dll-nav>ul>li>a{font-size:.68rem;letter-spacing:.075em}}
@media(max-width:980px){.dll-header-main{min-height:82px;position:relative}.dll-menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--dll-border);border-radius:999px;background:#fff;color:var(--dll-nuit)}.dll-nav{display:none;position:absolute;left:20px;right:20px;top:calc(100% - 8px);background:rgba(250,249,246,.99);border:1px solid var(--dll-border);border-top:2px solid var(--dll-or);border-radius:0 0 18px 18px;box-shadow:0 24px 55px rgba(28,43,58,.16);padding:.75rem 0;z-index:9999}.dll-nav.is-open{display:block}.dll-nav .dll-menu,.dll-nav>ul{display:block}.dll-nav .dll-menu>li,.dll-nav>ul>li{display:block;min-height:0}.dll-nav .dll-menu>li>a,.dll-nav>ul>li>a{display:block;min-height:0;padding:.9rem 1.15rem;font-size:.82rem}.dll-nav .sub-menu{position:static;visibility:visible;opacity:1;pointer-events:auto;transform:none!important;display:block;min-width:0;padding:0 0 .45rem 1rem;background:transparent;border:0;box-shadow:none;border-radius:0}.dll-nav .sub-menu a{padding:.55rem 1.15rem;font-size:.73rem;color:rgba(28,43,58,.72)}.dll-topbar__inner,.dll-topbar .dll-container{font-size:.72rem}}
@media(max-width:600px){.dll-topbar__inner,.dll-topbar .dll-container{justify-content:center;white-space:normal;text-align:center}.dll-topbar__inner span:nth-child(2),.dll-topbar .dll-container span:nth-child(2){display:none}}


/* === De La Lune v1.2 : pages auteurs, collections, catalogue propre === */

/* Cache le doublon WooCommerce "Catalogue" sous le grand titre */
.woocommerce .page-title {
  display: none !important;
}

/* Page auteurs : plus de respiration, sans effet de page vide */
.dll-page-header--authors {
  padding-bottom: 2rem;
}

.dll-page-intro {
  max-width: 720px;
  margin: 0 auto 1.8rem;
  color: var(--dll-muted);
  font-size: 1.18rem;
}

.dll-section--authors {
  padding-top: 2rem;
}

/* Cartes auteurs plus éditoriales et moins écrasées */
.dll-author-pill-grid {
  align-items: stretch;
}

.dll-author-pill {
  min-height: 112px;
  border-radius: 34px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.dll-author-pill:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 38px rgba(28,43,58,.10);
  border-color: rgba(78,165,160,.35);
}

.dll-author-pill__role {
  line-height: 1.35;
  margin-bottom: .28rem;
}

.dll-author-pill__name {
  font-size: 1.2rem;
}

/* Page collections pleine, pas page vide */
.dll-collection-grid--page {
  grid-template-columns: repeat(3, 1fr);
}

.dll-collection-grid--page .dll-collection-card {
  min-height: 230px;
}

.dll-collection-grid--page .dll-collection-card p {
  color: var(--dll-muted);
  font-size: 1.02rem;
  margin: .25rem 0 1.1rem;
}

/* Header un peu plus basique sur imprimé/PDF pour éviter les superpositions bizarres */
@media print {
  .dll-site-header {
    position: static !important;
  }
  .dll-nav .sub-menu {
    display: none !important;
  }
}

/* Évite que les dropdowns masquent trop le titre sur pages courtes */
.dll-nav .sub-menu {
  backdrop-filter: blur(10px);
}

/* Améliore le lien actif */
.dll-nav .current-menu-item > a,
.dll-nav .current-menu-ancestor > a,
.dll-nav .current-menu-parent > a {
  color: var(--dll-sarcelle) !important;
}

/* Footer : léger affinage */
.dll-site-footer {
  margin-top: 0;
}

/* Mobile auteurs / collections */
@media(max-width: 1024px) {
  .dll-collection-grid--page {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width: 680px) {
  .dll-collection-grid--page {
    grid-template-columns: 1fr;
  }

  .dll-author-pill {
    border-radius: 24px;
  }
}


/* ==========================================================
   De La Lune v1.3 — Fiche livre éditoriale
   ========================================================== */

.dll-product-page {
  background: var(--dll-creme);
}

.dll-single-book {
  overflow: clip; /* FIX v1.3.3: was hidden — broken sticky cover */
}

.dll-book-hero {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(3rem, 7vw, 6rem) 0 clamp(3rem, 6vw, 5rem);
  display: grid;
  grid-template-columns: minmax(260px, 38%) minmax(0, 62%);
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: start;
}

.dll-book-hero__cover {
  position: sticky;
  top: 150px;
  align-self: start;
  text-align: center;
}

.dll-book-hero__cover img {
  width: min(100%, 360px);
  aspect-ratio: 2 / 3;
  object-fit: contain;
  background: #fff;
  padding: 14px;
  border: 1px solid var(--dll-border);
  box-shadow: 0 28px 65px rgba(28,43,58,.16);
}

.dll-book-cover-placeholder {
  width: min(100%, 360px);
  aspect-ratio: 2 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--dll-border);
  box-shadow: var(--dll-shadow);
  font-family: "Playfair Display", Georgia, serif;
  color: var(--dll-muted);
}

.dll-book-hero__content {
  max-width: 680px;
}

.dll-book-title {
  font-size: clamp(3rem, 7vw, 7rem);
  line-height: .91;
  letter-spacing: -.055em;
  margin: .7rem 0 1.4rem;
  max-width: 760px;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: auto;
}

.dll-book-author-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .55rem;
  margin-bottom: .65rem;
  font-family: Arial, Helvetica, sans-serif;
}

.dll-book-author-line span {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--dll-sarcelle);
  font-weight: 800;
}

.dll-book-author-line a,
.dll-book-author-line strong {
  color: var(--dll-nuit);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 600;
}

.dll-book-author-bio {
  max-width: 520px;
  padding: .9rem 0;
  border-top: 1px solid var(--dll-or);
  border-bottom: 1px solid var(--dll-or);
  color: var(--dll-muted);
  font-size: 1.08rem;
  line-height: 1.55;
}

.dll-book-shortdesc {
  max-width: 640px;
  margin: 1.5rem 0;
}

.dll-book-shortdesc p {
  font-size: 1.18rem;
  color: var(--dll-nuit);
}

.dll-book-buy-box {
  max-width: 640px;
  background: #fff;
  border: 1px solid var(--dll-border);
  border-radius: 22px;
  padding: 1.3rem;
  box-shadow: 0 16px 40px rgba(28,43,58,.08);
  margin: 1.8rem 0 1.2rem;
}

.dll-book-buy-box__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.dll-book-price {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.45rem;
  color: var(--dll-nuit);
  margin-top: .25rem;
}

.dll-book-cart form.cart {
  display: grid;
  gap: 1rem;
  margin: 0;
}

.dll-book-cart table.variations {
  width: 100%;
  margin: 0 0 .7rem;
}

.dll-book-cart table.variations th,
.dll-book-cart table.variations td {
  display: block;
  width: 100%;
  padding: 0;
  text-align: left;
}

.dll-book-cart table.variations label {
  display: block;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dll-sarcelle);
  margin-bottom: .45rem;
  font-weight: 800;
}

.dll-book-cart select {
  max-width: 100%;
}

.dll-book-cart .quantity {
  display: inline-flex;
  max-width: 110px;
  margin-right: .7rem;
}

.dll-book-cart .quantity input {
  text-align: center;
}

.dll-book-cart .single_add_to_cart_button {
  vertical-align: middle;
}

.dll-book-taxonomies {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .9rem;
  color: var(--dll-muted);
  max-width: 640px;
}

.dll-book-taxonomies span {
  color: var(--dll-nuit);
  font-weight: 800;
}

.dll-book-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: clamp(2rem, 5vw, 4rem);
  padding: clamp(3rem, 6vw, 5rem) 0;
  border-top: 1px solid var(--dll-border);
}

.dll-book-main h2,
.dll-book-aside h2,
.dll-book-related h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
}

.dll-book-description p {
  font-size: 1.22rem;
  line-height: 1.8;
}

.dll-book-aside {
  display: grid;
  gap: 1.5rem;
  align-content: start;
}

.dll-book-tech,
.dll-book-author-card {
  background: #fff;
  border: 1px solid var(--dll-border);
  border-radius: 22px;
  padding: 1.35rem;
  box-shadow: 0 14px 34px rgba(28,43,58,.07);
}

.dll-book-tech dl {
  margin: 0;
}

.dll-book-tech dl > div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 1rem;
  padding: .75rem 0;
  border-bottom: 1px solid rgba(28,43,58,.08);
}

.dll-book-tech dl > div:last-child {
  border-bottom: 0;
}

.dll-book-tech dt {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dll-sarcelle);
  font-weight: 800;
}

.dll-book-tech dd {
  margin: 0;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 1.04rem;
  line-height: 1.4;
}

.dll-book-author-card {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 1rem;
}

.dll-book-author-card__photo img {
  width: 74px;
  height: 74px;
  border-radius: 999px;
  object-fit: cover;
}

.dll-book-author-card h3 {
  font-size: 1.45rem;
  margin-bottom: .3rem;
}

.dll-book-author-card p {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--dll-muted);
  margin: .2rem 0 .7rem;
}

.dll-text-link {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
}

.dll-book-related {
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  border-top: 1px solid var(--dll-border);
}

.dll-book-related--discover {
  background: transparent;
}

.dll-mini-book-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.4rem, 3vw, 2.2rem);
  align-items: start;
}

.dll-mini-book {
  text-align: center;
}

.dll-mini-book__cover {
  display: block;
  margin: 0 auto 1rem;
}

.dll-mini-book__cover img {
  width: 100%;
  max-width: 190px;
  aspect-ratio: 2 / 3;
  object-fit: contain;
  background: #fff;
  padding: 8px;
  border: 1px solid var(--dll-border);
  box-shadow: 0 12px 28px rgba(28,43,58,.10);
  transition: transform .2s ease, box-shadow .2s ease;
}

.dll-mini-book:hover .dll-mini-book__cover img {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(28,43,58,.15);
}

.dll-mini-book__title {
  font-size: 1.08rem;
  line-height: 1.18;
  margin-bottom: .35rem;
}

.dll-mini-book__title a {
  color: var(--dll-nuit);
}

.dll-mini-book__author {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .72rem;
  letter-spacing: .04em;
  color: var(--dll-sarcelle);
  margin: 0;
}

/* Désactive les anciens éléments Woo mal positionnés sur single product */
.single-product .woocommerce-tabs,
.single-product .related.products,
.single-product .upsells.products,
.single-product .woocommerce-product-gallery,
.single-product .summary {
  max-width: none;
}

/* Variations : évite les messages écrasés */
.dll-book-cart .woocommerce-variation,
.dll-book-cart .woocommerce-variation-price,
.dll-book-cart .woocommerce-variation-availability {
  margin: .7rem 0;
}

.dll-book-cart .reset_variations {
  display: inline-block;
  margin-top: .5rem;
  font-size: .82rem;
}

/* Responsive */
@media(max-width: 1024px) {
  .dll-book-hero,
  .dll-book-body {
    grid-template-columns: 1fr;
  }

  .dll-book-hero__cover {
    position: static;
  }

  .dll-book-hero__cover img {
    width: min(100%, 300px);
  }

  .dll-book-hero__content {
    max-width: 760px;
    margin-inline: auto;
    text-align: left;
  }

  .dll-book-body {
    max-width: 820px;
  }

  .dll-mini-book-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media(max-width: 720px) {
  .dll-book-hero {
    width: min(100%, calc(100% - 28px));
    gap: 2rem;
  }

  .dll-book-title {
    font-size: clamp(2.7rem, 15vw, 4.8rem);
  }

  .dll-book-body {
    padding-left: 14px;
    padding-right: 14px;
  }

  .dll-mini-book-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dll-book-tech dl > div {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
}

@media(max-width: 460px) {
  .dll-mini-book-grid {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================
   De La Lune v1.3.1 — Correctif fiche livre
   ========================================================== */

/* Empêche les titres et textes de se transformer en colonnes trop étroites */
.dll-book-hero {
  grid-template-columns: minmax(260px, 330px) minmax(520px, 1fr);
  align-items: center;
}

.dll-book-hero__content {
  min-width: 0;
  width: 100%;
}

.dll-book-title {
  font-size: clamp(3.2rem, 5.6vw, 5.8rem);
  line-height: .96;
  letter-spacing: -.045em;
  max-width: 820px;
  hyphens: none;
  word-break: normal;
  overflow-wrap: normal;
}

.dll-book-shortdesc,
.dll-book-description,
.dll-book-author-bio,
.dll-book-buy-box,
.dll-book-taxonomies {
  max-width: 720px;
}

.dll-book-shortdesc,
.dll-book-shortdesc p,
.dll-book-description,
.dll-book-description p {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

/* Stabilise la zone achat variable WooCommerce */
.dll-book-cart {
  clear: both;
}

.dll-book-cart form.cart {
  display: block;
}

.dll-book-cart .variations_form,
.dll-book-cart form.variations_form {
  width: 100%;
}

.dll-book-cart table.variations {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.dll-book-cart table.variations tbody,
.dll-book-cart table.variations tr {
  display: table-row-group;
}

.dll-book-cart table.variations th,
.dll-book-cart table.variations td {
  display: table-cell;
  vertical-align: middle;
  padding: .35rem 0;
}

.dll-book-cart table.variations th {
  width: 180px;
  padding-right: 1rem;
}

.dll-book-cart .single_variation_wrap {
  margin-top: .75rem;
}

.dll-book-cart .woocommerce-variation-add-to-cart {
  display: flex;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
}

.dll-book-cart .woocommerce-variation-add-to-cart .quantity {
  margin: 0;
}

/* Fiche technique : évite une sidebar trop haute en PDF et sur petits écrans */
.dll-book-body {
  align-items: start;
}

/* Masque les notices WooCommerce trop agressives dans cette zone si vides */
.dll-book-cart .woocommerce-info:empty,
.dll-book-cart .woocommerce-message:empty,
.dll-book-cart .woocommerce-error:empty {
  display: none;
}

/* Print/PDF : layout propre au lieu de colonnes cassées */
@media print {
  .dll-book-hero,
  .dll-book-body {
    display: block !important;
    width: 100% !important;
  }

  .dll-book-hero__cover {
    position: static !important;
    float: left;
    width: 34%;
    margin: 0 2rem 1rem 0;
  }

  .dll-book-hero__content {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
  }

  .dll-book-title {
    font-size: 42px !important;
    line-height: 1.05 !important;
    max-width: none !important;
    hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .dll-book-shortdesc,
  .dll-book-description,
  .dll-book-description p,
  .dll-book-shortdesc p {
    max-width: none !important;
    hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .dll-book-aside {
    display: block !important;
    clear: both;
    margin-top: 2rem;
  }

  .dll-book-related {
    page-break-inside: avoid;
  }
}

@media(max-width: 1080px) {
  .dll-book-hero {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .dll-book-hero__content {
    max-width: 820px;
  }
}

@media(max-width: 720px) {
  .dll-book-title {
    font-size: clamp(2.7rem, 13vw, 4.6rem);
  }

  .dll-book-cart table.variations,
  .dll-book-cart table.variations tbody,
  .dll-book-cart table.variations tr,
  .dll-book-cart table.variations th,
  .dll-book-cart table.variations td {
    display: block;
    width: 100%;
  }

  .dll-book-cart table.variations th {
    padding-right: 0;
  }
}


/* ==========================================================
   De La Lune v1.3.2 — WooCommerce single/archives separation
   ========================================================== */

.single-product .dll-woo-archive-header,
.single-product .dll-page-header:not(.dll-page-header--authors) {
  display: none !important;
}

.dll-product-page--single {
  padding-top: 0;
}

.dll-product-page--single .dll-book-hero {
  padding-top: clamp(3rem, 6vw, 5rem);
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
}

.dll-product-page--single .dll-book-hero__cover {
  display: block;
}

.dll-product-page--single .dll-book-hero__cover img {
  display: inline-block;
}

.dll-book-body {
  clear: both;
  position: relative;
}

.dll-mini-book-grid {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.dll-mini-book__title {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

@media print {
  .single-product .dll-woo-archive-header,
  .single-product .dll-page-header {
    display: none !important;
  }

  .dll-product-page--single .dll-book-hero {
    display: grid !important;
    grid-template-columns: 32% 1fr !important;
    gap: 28px !important;
    width: 100% !important;
    padding-top: 20px !important;
  }

  .dll-product-page--single .dll-book-hero__cover {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
  }

  .dll-product-page--single .dll-book-hero__cover img {
    max-width: 240px !important;
  }

  .dll-product-page--single .dll-book-title {
    font-size: 42px !important;
    line-height: 1.05 !important;
    letter-spacing: -.02em !important;
  }

  .dll-book-body {
    display: grid !important;
    grid-template-columns: 1fr 260px !important;
    gap: 24px !important;
    clear: both !important;
  }

  .dll-mini-book-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 18px !important;
  }

  .dll-mini-book__title {
    font-size: 14px !important;
    line-height: 1.15 !important;
  }

  .dll-mini-book__author {
    font-size: 10px !important;
  }
}

@media(max-width: 900px) {
  .dll-product-page--single .dll-book-hero {
    grid-template-columns: 1fr;
  }
}


/* ===================================================
   FIX v1.3.3 — Corrections layout fiche livre
   =================================================== */

/* BUG 1 FIX: Le grid WC .product plaçait dll-book-hero et dll-book-body
   côte à côte (42%/1fr) au lieu de les empiler.
   On force display:block sur le wrapper article custom. */
.single-product article.dll-single-book,
.single-product .product.dll-single-book {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  gap: 0 !important;
}

/* BUG 2 FIX: overflow:hidden cassait position:sticky sur la couverture */
.dll-single-book {
  overflow: clip; /* clip = évite les barres de défilement sans casser sticky */
}

/* ==========================================================
   De La Lune v1.4 — Corrections prioritaires
   ========================================================== */

/* --- Fix #1 #2 #3 : Boutons Format & masquage doublons WC --- */

/* Masque la fourchette de prix WooCommerce (€4.44 – €17.77) */
.dll-woo-cart-clean .woocommerce-variation-price,
.dll-woo-cart-clean .price,
.dll-book-buy-box > .dll-book-price {
  display: none !important;
}

/* Masque le sélecteur dropdown WooCommerce + label + lien Effacer */
.dll-woo-cart-clean table.variations,
.dll-woo-cart-clean .woocommerce-variation-availability,
.dll-woo-cart-clean .reset_variations {
  display: none !important;
}

/* Garde la quantité et le bouton Commander visibles */
.dll-woo-cart-clean .variations_button {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-top: 1rem;
}

/* Boutons format personnalisés */
.dll-format-btns {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin: 1rem 0 .5rem;
}

.dll-format-btn {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .75rem 1.1rem;
  border: 2px solid var(--dll-border);
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
  user-select: none;
}

.dll-format-btn:hover {
  border-color: var(--dll-nuit);
}

.dll-format-btn.is-selected {
  border-color: var(--dll-or);
  background: #fffef8;
  box-shadow: 0 4px 18px rgba(194,178,128,.22);
}

.dll-format-btn__radio {
  display: none; /* Masqué visuellement, géré en JS */
}

.dll-format-btn__name {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--dll-nuit);
}

.dll-format-btn__price {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.05rem;
  color: var(--dll-sarcelle);
}

.dll-format-btn.is-selected .dll-format-btn__price {
  color: var(--dll-nuit);
}

/* --- Fix #4 : Élargir la fiche technique (colonne droite) --- */
.dll-book-body {
  grid-template-columns: minmax(0, 1fr) 420px; /* was 360px */
}

.dll-book-tech dt {
  min-width: 90px; /* évite les cassures de mots dans la colonne label */
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.dll-book-tech dd {
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* --- Fix #6 : Section "Ses ouvrages" sur fiche auteur --- */
.dll-author-books-section {
  border-top: 1px solid var(--dll-border);
  padding-top: clamp(3rem, 6vw, 5rem);
}

.dll-author-books-grid {
  margin-top: 2rem;
}

.dll-book-card__price {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .88rem;
  color: var(--dll-muted);
  margin: .3rem 0 0;
}

/* Responsive fix #4 */
@media (max-width: 1024px) {
  .dll-book-body {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================
   De La Lune v1.5 — Passe DA/UX complète
   ========================================================== */

/* ── Formats & achat : masquage total WooCommerce brut ── */
.dll-woo-form-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  clip: rect(0,0,0,0);
}

/* Boutons format v1.5 (remplace v1.4) */
.dll-format-btns {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin: 1.1rem 0 .6rem;
}

.dll-format-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .2rem;
  padding: .8rem 1.2rem;
  border: 2px solid var(--dll-border);
  border-radius: 14px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s, background .18s, box-shadow .18s;
  text-align: left;
}

.dll-format-btn:hover {
  border-color: var(--dll-nuit);
}

.dll-format-btn.is-selected {
  border-color: var(--dll-or);
  background: #fffef8;
  box-shadow: 0 4px 18px rgba(194,178,128,.22);
}

.dll-format-btn__name {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--dll-nuit);
}

.dll-format-btn__price {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.1rem;
  color: var(--dll-sarcelle);
}

.dll-format-btn.is-selected .dll-format-btn__price { color: var(--dll-nuit); }

/* Bloc quantité + Commander */
.dll-buy-action {
  display: flex;
  align-items: flex-end;
  gap: .85rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}

.dll-buy-qty {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.dll-buy-qty input {
  width: 70px;
  padding: .7rem .9rem;
  border: 1px solid var(--dll-border);
  border-radius: 10px;
  font-size: 1rem;
  text-align: center;
  color: var(--dll-nuit);
  background: #fff;
}

/* ── Fiche technique horizontale v1.5 ── */
.dll-book-tech-h {
  margin-top: 2.8rem;
  padding: 1.8rem 2rem;
  background: var(--dll-creme);
  border: 1px solid var(--dll-border);
  border-radius: 22px;
}

.dll-book-tech-h h2 {
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  margin-bottom: 1.4rem;
}

.dll-tech-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1.2rem 1.8rem;
  margin: 0;
}

.dll-tech-item {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  border-bottom: 1px solid rgba(28,43,58,.07);
  padding-bottom: .8rem;
}

.dll-tech-item dt {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dll-sarcelle);
  font-weight: 800;
}

.dll-tech-item dd {
  font-family: "EB Garamond", Georgia, serif;
  font-size: 1.05rem;
  margin: 0;
  color: var(--dll-nuit);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

/* Plus besoin de la grande colonne droite — aside = carte auteur seule */
.dll-book-body {
  grid-template-columns: minmax(0, 1fr) 300px;
}

.dll-book-aside {
  display: block;
}

/* ── Photo auteur — Option 1 éditoriale (DA) ── */
.dll-author-hero {
  position: relative;
}

.dll-author-hero__photo img {
  filter: saturate(.78) contrast(1.04);
  transition: filter .4s ease;
}

.dll-author-hero:hover .dll-author-hero__photo img {
  filter: saturate(.9) contrast(1.02);
}

/* Ligne dorée verticale entre photo et contenu */
.dll-author-hero__content {
  border-left: 3px solid var(--dll-or);
  padding-left: clamp(2rem, 5vw, 5rem);
}

/* Nom auteur : effet reveal et poids visuel fort */
.dll-author-hero__name {
  font-size: clamp(3rem, 7vw, 6.5rem);
}

/* ── Masquer les prix dans "Ses ouvrages" (fiche auteur) ── */
.dll-author-books-section .dll-book-card__price,
.dll-author-books-section .price {
  display: none !important;
}

/* Bouton "Voir le livre" au survol dans les ouvrages auteur */
.dll-author-books-section .dll-book-card {
  position: relative;
}

.dll-book-card__hover-btn {
  display: none;
  position: absolute;
  bottom: 3.5rem;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: .73rem;
  padding: .5rem 1rem;
  background: var(--dll-nuit);
  color: var(--dll-creme);
  border-radius: 999px;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  pointer-events: none;
}

.dll-author-books-section .dll-book-card:hover .dll-book-card__hover-btn {
  display: block;
}

/* ── Catalogue v1.5 : recherche + filtres ── */
.dll-catalogue-header {
  padding: clamp(3rem, 6vw, 5rem) 0 1.5rem;
}

.dll-catalogue-title {
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: .95;
  margin: .5rem 0 .8rem;
}

.dll-catalogue-lead {
  color: var(--dll-muted);
  font-size: 1.08rem;
}

.dll-catalogue-filters {
  padding-bottom: 2.5rem;
  border-bottom: 1px solid var(--dll-border);
  margin-bottom: 3rem;
}

/* Barre de recherche */
.dll-search-bar {
  display: flex;
  align-items: center;
  max-width: 680px;
  background: #fff;
  border: 1px solid var(--dll-border);
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(28,43,58,.07);
  margin-bottom: 1.4rem;
  overflow: hidden;
  transition: box-shadow .2s, border-color .2s;
}

.dll-search-bar:focus-within {
  border-color: var(--dll-nuit);
  box-shadow: 0 12px 32px rgba(28,43,58,.13);
}

.dll-search-input {
  flex: 1;
  border: 0;
  padding: .95rem 1.4rem;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 1.08rem;
  color: var(--dll-nuit);
  background: transparent;
  outline: none;
}

.dll-search-btn {
  padding: .85rem 1.2rem;
  background: none;
  border: 0;
  color: var(--dll-muted);
  cursor: pointer;
  transition: color .2s;
}

.dll-search-btn:hover { color: var(--dll-or); }

/* Filtres */
.dll-filters-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .7rem;
}

.dll-filter-select {
  padding: .6rem 2rem .6rem 1rem;
  border: 1px solid var(--dll-border);
  border-radius: 999px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231C2B3A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;
  appearance: none;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--dll-nuit);
  cursor: pointer;
  transition: border-color .18s;
}

.dll-filter-select:hover { border-color: var(--dll-nuit); }

.dll-filter-reset {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--dll-muted);
  padding: .6rem .9rem;
  border: 1px dashed var(--dll-border);
  border-radius: 999px;
  transition: color .18s, border-color .18s;
}

.dll-filter-reset:hover { color: var(--dll-nuit); border-color: var(--dll-nuit); }

/* Grille catalogue sobre */
.dll-catalogue-grid-section ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 2.8rem 2rem !important;
  list-style: none;
  margin: 0;
  padding: 0;
}

.dll-cat-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.dll-cat-card__cover {
  display: block;
  width: 100%;
  aspect-ratio: 2/3;
  object-fit: contain;
  background: #fff;
  padding: 10px;
  border: 1px solid var(--dll-border);
  box-shadow: 0 12px 32px rgba(28,43,58,.1);
  transition: transform .22s ease, box-shadow .22s ease;
}

.dll-cat-card:hover .dll-cat-card__cover {
  transform: translateY(-5px);
  box-shadow: 0 22px 50px rgba(28,43,58,.17);
}

.dll-cat-card__info { display: flex; flex-direction: column; gap: .3rem; }

.dll-cat-card__author {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dll-muted);
  margin: 0;
}

.dll-cat-card__title {
  font-family: "Playfair Display", Georgia, serif !important;
  font-size: 1.1rem !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  color: var(--dll-nuit);
}

.dll-cat-card__title a { color: inherit; }
.dll-cat-card__title a:hover { color: var(--dll-or); }

.dll-cat-card__cat {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .7rem;
  color: var(--dll-sarcelle);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 0;
}

.dll-cat-card__btn {
  display: inline-block;
  margin-top: .4rem;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--dll-nuit);
  border-bottom: 1px solid var(--dll-or);
  padding-bottom: 1px;
  transition: color .18s;
}

.dll-cat-card__btn:hover { color: var(--dll-or); }

.dll-no-results {
  grid-column: 1/-1;
  text-align: center;
  padding: 4rem 0;
  color: var(--dll-muted);
  font-size: 1.1rem;
}

/* Responsive catalogue */
@media (max-width: 1024px) {
  .dll-catalogue-grid-section ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .dll-book-body { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .dll-catalogue-grid-section ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2rem 1rem !important;
  }
  .dll-filters-row { flex-direction: column; align-items: stretch; }
  .dll-filter-select { width: 100%; }
  .dll-author-hero__content { border-left: 0; border-top: 3px solid var(--dll-or); padding-left: 0; padding-top: 1.5rem; }
}

