/* Écrin commun : navigation et pied de page, sans toucher aux contenus. */
body .top-banner {
  padding: 8px 20px;
  border-bottom: 1px solid rgba(255,255,255,.12);
  background: #382216;
  font-family: var(--lcdo-font-body, Lora, Georgia, serif);
  font-size: 10px;
  letter-spacing: .22em;
}

body .header {
  grid-template-columns: 150px minmax(0,1fr) 150px;
  gap: 18px;
  min-height: 74px;
  padding: 7px clamp(22px,4vw,56px);
  border-color: rgba(67,41,24,.09);
  background: rgba(255,252,247,.94);
  box-shadow: 0 10px 34px rgba(67,41,24,.055);
  backdrop-filter: blur(14px);
}

body .logo-img { height: 58px; max-width: 146px; }
body .nav { gap: clamp(14px,1.7vw,26px); font-family: var(--lcdo-font-body, Lora, Georgia, serif); font-size: 10.5px; letter-spacing: .15em; }
body .nav > a:not(.highlight), body .nav-item > a { position: relative; }
body .nav > a:not(.highlight)::after, body .nav-item > a::after { content:''; position:absolute; right:0; bottom:2px; left:0; height:1px; background:#b96f73; transform:scaleX(0); transition:transform .25s ease; }
body .nav > a:not(.highlight):hover::after, body .nav > a:not(.highlight):focus-visible::after, body .nav-item > a:hover::after, body .nav-item > a:focus-visible::after { transform:scaleX(1); }
body .nav a.highlight { padding:9px 17px; box-shadow:0 8px 22px rgba(185,111,115,.20); }
/* Les contrôles ajoutés pour le menu mobile restent invisibles sur desktop. */
body .nav-submenu-state, body .nav-submenu-toggle, body .nav-utility-label { display:none; }
body .nav-submenu-back { display:none; }
@media (min-width:768px) { body .nav-utility { display:contents; } }

body .header-icons { justify-content:flex-end; gap:7px; }
body .header-icons a, body .header-icon-button { display:grid; width:34px; height:34px; place-items:center; padding:0; border:1px solid rgba(67,41,24,.10); border-radius:50%; background:rgba(255,255,255,.76); font-size:18px; transition:border-color .25s ease,background-color .25s ease,color .25s ease; }
body .header-icons svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
body .header-icons a:hover, body .header-icons a:focus-visible, body .header-icon-button:hover, body .header-icon-button:focus-visible { border-color:#b96f73; background:#fff; color:#b96f73; }

/* CTA des cartes produit : même survol doux sur l'accueil, la boutique,
   les catégories, la recherche et les suggestions de produits. */
body ul.products li.product a.button {
  background:#3d2817 !important;
  color:#fdf8f1 !important;
  transition:background-color .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease !important;
}
body ul.products li.product a.button:hover,
body ul.products li.product a.button:focus-visible {
  background:#5b3824 !important;
  color:#fff !important;
  box-shadow:0 7px 16px rgba(67,41,24,.18) !important;
  transform:translateY(-1px);
}
body ul.products li.product a.button:focus-visible { outline:2px solid rgba(185,111,115,.72); outline-offset:3px; }

/* Même cadre carré pour toutes les images de produits, y compris recherche
   et produits associés. Le fond crème évite tout vide blanc abrupt. */
body ul.products li.product img.attachment-woocommerce_thumbnail {
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1;
  object-fit:cover !important;
  background:#f4ece3;
}

/* Carte produit unique pour accueil, boutique, catégories, recherche,
   suggestions et produits associés. */
body ul.products li.product {
  overflow:hidden;
  border:1px solid rgba(67,41,24,.08);
  border-radius:18px 18px 8px 8px;
  background:#fffdf9;
  box-shadow:0 8px 28px rgba(67,41,24,.055);
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
body ul.products li.product:hover {
  transform:translateY(-8px);
  border-color:rgba(185,111,115,.22);
  box-shadow:0 24px 55px rgba(67,41,24,.13);
}
body ul.products li.product > a.woocommerce-LoopProduct-link { margin:0 !important; }
body ul.products li.product > .button,
body ul.products li.product > .product-klarna-v2 { margin-left:18px !important; margin-right:18px !important; }
body ul.products li.product > .button { position:relative !important; display:block !important; min-height:46px; margin-bottom:18px !important; padding:14px 10px !important; border-radius:8px !important; font-size:0 !important; line-height:1 !important; text-align:center !important; }
body ul.products li.product > .button::after { content:'Personnaliser'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:inherit; font-family:var(--lcdo-font-body,Lora,Georgia,serif); font-size:10px; font-weight:600; letter-spacing:.14em; line-height:1; text-align:center; text-transform:uppercase; pointer-events:none; }
body ul.products li.product > .button .w-btn-label::after { display:none !important; content:none !important; }
body ul.products li.product .woocommerce-loop-product__title { margin:18px 18px 7px !important; padding:0 !important; color:#3a2e22 !important; font-family:var(--lcdo-font-body,Lora,Georgia,serif) !important; font-size:10px !important; font-weight:600 !important; letter-spacing:.12em !important; line-height:1.4 !important; text-transform:uppercase !important; }
body ul.products li.product .price { display:block !important; margin:0 18px 10px !important; padding:0 !important; color:#8a7a65 !important; font-family:var(--lcdo-font-body,Lora,Georgia,serif) !important; font-size:12.1px !important; font-weight:500 !important; }
body ul.products li.product .product-klarna-v2 { margin-bottom:12px !important; padding:0 !important; }
body ul.products li.product > a.woocommerce-LoopProduct-link .product-klarna-v2 { margin:2px 18px 12px !important; }

body .site-footer { position:relative; overflow:hidden; border-top:5px solid #b89171; background:radial-gradient(circle at 8% 0%,rgba(255,255,255,.07),transparent 30%),linear-gradient(135deg,#342014,#462a18 62%,#321e13); font-family:var(--lcdo-font-body,Lora,Georgia,serif); }
body .site-footer::before, body .site-footer::after { display:none !important; content:none !important; }
body .footer-main { position:relative; z-index:1; grid-template-columns:1.45fr .8fr .9fr .85fr 1.25fr; gap:clamp(30px,4vw,62px); max-width:1320px; padding:76px clamp(30px,5vw,72px) 62px; }
body .footer-brand { padding-right:clamp(10px,2vw,34px); border-right:0; }
body .footer-logo { height:70px; margin-bottom:22px; opacity:.96; }
body .footer-brand p, body .footer-newsletter p { font-size:13px; line-height:1.85; }
body .footer-col h4 { position:relative; margin-bottom:25px; padding-bottom:13px; color:#f9eee2; font-family:var(--lcdo-font-body,Lora,Georgia,serif); font-size:11px; letter-spacing:.24em; }
body .footer-col h4::after { content:''; position:absolute; bottom:0; left:0; width:32px; height:1px; background:#d1a987; }
body .footer-col li { margin-bottom:9px; }
body .footer-col a { font-size:13px; line-height:1.55; transition:color .2s ease,padding-left .2s ease; }
body .footer-col a:hover, body .footer-col a:focus-visible { padding-left:4px; color:#fff; }
body .footer-newsletter { align-self:start; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
body .footer-newsletter > p { display:none; }
body .footer-brand .footer-payments { margin-top:16px; padding-top:0; border-top:0; flex-wrap:nowrap; gap:8px; }
body .pay-ico { width:34px; height:22px; padding:0; border:0; border-radius:0; background:transparent; filter:brightness(0) invert(1); opacity:.74; }
body .v2-footer-newsletter-form { margin-top:20px; max-width:320px; }
body .v2-footer-newsletter-row { display:flex; gap:7px; padding:5px; border:1px solid rgba(220,178,141,.35); border-radius:999px; background:rgba(255,255,255,.065); box-shadow:none; }
body .v2-footer-newsletter-form input { box-sizing:border-box; width:100%; min-width:0; min-height:36px; padding:7px 10px; border:0; border-radius:999px; background:transparent; color:#fff; font:inherit; box-shadow:none; }
body .v2-footer-newsletter-form input::placeholder { color:rgba(255,255,255,.50); }
body .v2-footer-newsletter-form input:focus { outline:2px solid rgba(220,178,141,.55); outline-offset:2px; }
body .v2-footer-newsletter-form button { flex:0 0 auto; min-height:36px; padding:8px 15px; border:0; border-radius:999px; background:#e2be9e; color:#382216; cursor:pointer; font-family:var(--lcdo-font-body,Lora,Georgia,serif); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
body .footer-bottom { position:relative; z-index:1; padding:20px clamp(30px,5vw,72px); border-color:rgba(255,255,255,.10); background:rgba(18,10,6,.18); }
body .footer-bottom-inner { max-width:1176px; align-items:center; justify-content:flex-start; font-size:12px; }
body .v2-footer-credit { color:rgba(255,255,255,.68); }
body .v2-footer-credit a { color:#e2be9e; text-decoration:none; }
body .v2-footer-credit a:hover, body .v2-footer-credit a:focus-visible { color:#fff; text-decoration:underline; }

@media (max-width:1100px) {
  body .header { grid-template-columns:135px minmax(0,1fr) 135px; padding-inline:24px; }
  body .nav { gap:13px; font-size:9.5px; }
  body .footer-main { grid-template-columns:repeat(3,1fr); }
  body .footer-newsletter { grid-column:span 2; }
}

@media (max-width:767px) {
  body .top-banner { padding:7px 14px; font-size:8.5px; letter-spacing:.16em; }
  body .header { grid-template-columns:auto auto 1fr; gap:9px; min-height:64px; padding:6px 14px; }
  body .header-logo { grid-column:1; grid-row:1; }
  body .header-menu-toggle { grid-column:2; grid-row:1; justify-self:start; }
  body .header-icons { grid-column:3; grid-row:1; }
  body .logo-img { height:50px; max-width:118px; }
  body .header-menu-toggle { width:38px; height:38px; padding:9px; }
  body .header-icons { gap:4px; }
  body .header-icons a, body .header-icon-button { width:30px; height:30px; }
  body .header-icons svg { width:16px; height:16px; }
  body .nav { width:min(400px,90vw); padding:64px 28px 36px; gap:0; background:#fffdf9; box-shadow:18px 0 45px rgba(67,41,24,.12); }
  body .nav::before { display:none; content:none; }
  body .nav-close { top:14px; right:17px; width:34px; height:34px; padding:0; border:0; border-radius:0; background:transparent; color:#432918; font-size:30px; line-height:30px; }
  body .nav > a.highlight { margin:0 0 20px; padding:12px 18px; border-radius:999px; text-align:center; }
  body .nav-item { position:relative; border-top:0; }
  body .nav-item > a { padding:15px 32px 15px 0; font-size:15px; font-weight:600; letter-spacing:.10em; }
  body .nav-item > a::after { display:none; }
  body .nav-item .chevron { display:none; }
  body .nav-submenu-state { position:absolute; display:block; width:1px; height:1px; opacity:0; pointer-events:none; }
  body .nav-submenu-toggle { position:absolute; top:4px; right:-5px; z-index:2; display:grid; width:42px; height:42px; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:#765845; font:400 20px/1 Arial,sans-serif; cursor:pointer; }
  body .nav-submenu-toggle span { display:block; transform:translateY(-1px); }
  body .nav-submenu-toggle span::before { content:'+'; }
  body .nav-submenu-state:checked + .nav-submenu-toggle { color:#a35c61; }
  body .nav-submenu-state:checked + .nav-submenu-toggle span::before { content:'−'; }
  body .nav .dropdown { display:none; margin:0; padding:0; border:0; }
  body .nav .nav-submenu-state:checked ~ .dropdown { display:grid; }
  body .nav-submenu-back { display:none; margin:0 0 20px; padding:0; border:0; background:transparent; color:#9a624a; font-family:var(--lcdo-font-body,Lora,Georgia,serif); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }
  body .nav-submenu-back { display:none !important; }
  body .nav .dropdown { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 16px; margin:0 0 12px; padding:10px 15px 11px; border-radius:12px; background:#f1e5d8; }
  body .nav .dropdown a { padding:9px 0; border:0; color:#765845; font-family:var(--lcdo-font-body,Lora,Georgia,serif); font-size:15px; font-weight:400; letter-spacing:.02em; text-transform:none; }
  body .nav > a:not(.highlight) { padding:15px 0; border-top:0; font-size:15px; font-weight:600; letter-spacing:.10em; }
  body .nav-utility { display:flex; flex-wrap:wrap; gap:8px 18px; margin:20px 0 0; padding:18px 0 0; border:0; border-top:1px solid rgba(67,41,24,.16); border-radius:0; background:transparent; }
  body .nav-utility-label { display:block; flex:0 0 100%; margin:0 0 3px; color:#9a624a; font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
  body .nav-utility a { padding:4px 0; border:0; border-radius:0; background:transparent; color:#4c3020; font-size:13px; font-weight:600; letter-spacing:.08em; text-align:left; }
  body .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 24px; padding:55px 24px 42px; }
  body .footer-brand, body .footer-newsletter { grid-column:1 / -1; }
  body .footer-brand { padding-right:0; }
  body .footer-logo { height:62px; margin-bottom:18px; }
  body .footer-newsletter { padding:0; }
  body .footer-bottom { padding:22px 24px; }
  body .footer-bottom-inner { align-items:flex-start; text-align:left; }
  body .v2-footer-newsletter-form { max-width:none; }
  body .v2-footer-newsletter-row { flex-direction:column; border-radius:16px; }
  body .v2-footer-newsletter-form button { width:100%; }
}
