/* Header/footer du renderer PHP : opt-in aux classes annoncées. Aucun reset body/Divi. */
.lvv.lvv-site-header { border-bottom: 1px solid var(--line); }
.lvv.lvv-site-header .wrap,
.lvv.lvv-site-footer .wrap { width: min(calc(100% - 64px), var(--max)); margin-inline: auto; box-sizing: border-box; }
.lvv.lvv-site-header .lvv-header-inner { display: flex; gap: 28px; align-items: center; min-height: 104px; }
.lvv .lvv-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--forest); text-decoration: none; }
.lvv .lvv-brand img { width: 47px; height: 56px; object-fit: contain; display: block; }
.lvv .lvv-brand-name, .lvv .lvv-brand > span { font-family: var(--serif); font-size: 25px; line-height: 1.15; letter-spacing: -.035em; }
.lvv .lvv-brand-tagline, .lvv .lvv-brand > span > small { display: block; font-family: var(--sans); font-size: 10px; line-height: 1.4; letter-spacing: .1em; text-transform: uppercase; margin-top: 4px; }
.lvv .lvv-primary-nav { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.lvv.lvv-site-header .lvv-primary-nav[hidden] { display: none; }
.lvv .lvv-primary-nav :is(ul, ul.menu) { display: flex; align-items: center; gap: 24px; list-style: none; padding: 0; margin: 0; }
.lvv .lvv-primary-nav li { padding: 0; margin: 0; }
.lvv .lvv-primary-nav a { display: block; padding: 13px 0; font-family: var(--sans); font-size: 14px; line-height: 1.5; font-weight: 600; color: var(--ink); text-decoration: none; }
.lvv .lvv-primary-nav a:is(:hover, [aria-current="page"]) { color: var(--forest); text-decoration: underline; text-underline-offset: 6px; }
.lvv .lvv-header-actions { display: flex; align-items: center; gap: 12px; }
.lvv .lvv-header-actions :is(a, button) { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px; color: var(--forest); background: transparent; border: 0; text-decoration: none; font-family: var(--sans); font-size: 13px; box-sizing: border-box; }
.lvv .lvv-cart-count { font-size: 12px; font-weight: 600; }
.lvv :is(.lvv-primary-nav, .lvv-header-actions, .lvv-footer-nav) :is(a, button, summary):focus-visible,
.lvv .lvv-brand:focus-visible { outline: 3px solid var(--terra); outline-offset: 4px; }
/* Le bouton reste caché sans JS ; la navigation reste alors visible. */
.lvv .lvv-menu-toggle:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 5px; background: var(--paper); color: var(--forest); font-family: var(--sans); font-size: 13px; cursor: pointer; }
.lvv .lvv-menu-toggle:focus-visible { outline: 3px solid var(--terra); outline-offset: 4px; }
.lvv .lvv-topbar { background: var(--forest); color: var(--paper); padding-block: 7px; font-size: 11px; line-height: 1.6; }
.lvv .lvv-topbar .wrap { display: flex; justify-content: space-between; gap: 16px; }
.lvv .lvv-topbar a { color: var(--paper); text-decoration: underline; text-underline-offset: 3px; }
.lvv .lvv-preview-banner { background: #fff5dc; color: #493e26; border-block: 1px solid #d8c69f; padding-block: 14px; font-family: var(--sans); font-size: 13px; line-height: 1.65; }
.lvv .lvv-preview-banner strong { display: block; }
.lvv .lvv-preview-banner summary { cursor: pointer; margin-top: 8px; padding-block: 8px; }
.lvv .lvv-preview-banner nav { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 12px 0 4px; }
.lvv .lvv-preview-banner a { color: #493e26; text-decoration: underline; text-underline-offset: 3px; padding-block: 7px; }
.lvv .lvv-preview-banner :is(a, summary):focus-visible { outline: 3px solid var(--terra); outline-offset: 4px; }
/* Seule exception au wrapper .lvv : lien d'évitement exact, enfant du body de ce renderer. */
body.lvv-site > .lvv-skip-link { position: absolute; top: -120px; left: 16px; z-index: 100000; padding: 12px 18px; background: #f7f4eb; color: #173f32; border: 2px solid #173f32; font: 14px Arial, sans-serif; }
body.lvv-site > .lvv-skip-link:focus { top: 12px; }
.lvv .lvv-search-form { display: flex; gap: 10px; align-items: stretch; }
.lvv .lvv-search-form input[type="search"] { min-width: 0; flex: 1; min-height: 48px; padding: 12px; border: 1px solid #98a68e; border-radius: 5px; background: var(--white); color: var(--ink); font-family: var(--sans); font-size: 16px; }
.lvv .lvv-search-form button { min-height: 48px; padding: 12px 20px; background: var(--forest); border: 1px solid var(--forest); color: var(--white); border-radius: 5px; font-size: 14px; }
.lvv.lvv-site-footer { padding-block: 48px 24px; border-top: 1px solid var(--line); }
.lvv .lvv-footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 48px; }
.lvv .lvv-footer-grid h2 { font-family: var(--sans); font-size: 14px; line-height: 1.4; font-weight: 600; margin: 0 0 15px; color: var(--ink); }
.lvv .lvv-footer-grid p { font-size: 13px; color: var(--muted); line-height: 1.75; margin: 15px 0 0; }
.lvv .lvv-footer-nav ul, .lvv .lvv-footer-grid nav ul { list-style: none; margin: 0; padding: 0; }
.lvv .lvv-footer-nav a, .lvv .lvv-footer-grid nav a, .lvv .lvv-footer-brand > a:not(.lvv-brand) { display: block; padding: 7px 0; color: var(--ink); font-size: 13px; line-height: 1.5; text-decoration: underline; text-underline-offset: 4px; }
.lvv .lvv-footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; margin-top: 32px; border-top: 1px solid var(--line); font-size: 12px; color: var(--muted); }
.lvv .lvv-footer-bottom a { display: inline-block; color: var(--ink); text-underline-offset: 4px; padding: 6px 0; margin-right: 16px; }
.lvv .lvv-footer-grid nav small { display: block; color: var(--muted); font-size: 11px; line-height: 1.6; margin-top: 3px; }
.lvv .lvv-footer-bottom p { margin: 0; padding: 6px 0; }
.lvv .lvv-footer-grid a:focus-visible, .lvv .lvv-footer-bottom a:focus-visible { outline: 3px solid var(--terra); outline-offset: 4px; }
/* Footer d'inscription : uniquement si le vrai plugin Newsletter est rendu dans ce slot. */
.lvv .lvv-newsletter-slot { padding-block: 28px; }
.lvv .lvv-newsletter-slot .tnp-subscription { max-width: 600px; width: 100%; margin: 0; }
.lvv .lvv-newsletter-slot .tnp-subscription input[type="email"] {
  width: 100%; min-height: 48px; height: auto; padding: 12px;
  border: 1px solid #98a68e !important;
  border-radius: 5px; background: var(--white); color: var(--ink); font-size: 16px; line-height: 1.4; box-sizing: border-box;
}
.lvv .lvv-newsletter-slot .tnp-subscription input.tnp-submit { width: auto; min-height: 48px; padding: 12px 22px; margin: 10px 0 0; border: 1px solid var(--forest); border-radius: var(--radius); background: var(--forest); color: var(--white); font-size: 14px; font-weight: 600; }
.lvv .lvv-newsletter-slot .tnp-subscription label { color: var(--ink); font-family: var(--sans); font-size: 13px; }
.lvv .lvv-newsletter-slot .tnp-subscription :is(input, button):focus-visible { outline: 3px solid var(--terra); outline-offset: 4px; }
/* Pas de règle sur le honeypot, hidden, checkbox ou message de statut du plugin. */
@media (max-width: 1050px) {
  .lvv.lvv-site-header .wrap, .lvv.lvv-site-footer .wrap { width: calc(100% - 40px); }
  .lvv.lvv-site-header .lvv-header-inner { gap: 18px; }
  .lvv .lvv-primary-nav :is(ul, ul.menu) { gap: 16px; }
}
@media (max-width: 1080px) {
  .lvv.lvv-site-header .lvv-header-inner { flex-wrap: wrap; }
  .lvv .lvv-primary-nav { order: 3; flex: 0 0 100%; margin-left: 0; flex-direction: column; align-items: stretch; gap: 0; padding-bottom: 18px; }
  .lvv .lvv-primary-nav a { border-top: 1px solid var(--line); min-height: 44px; padding: 11px 0; box-sizing: border-box; }
  .lvv.lvv-site-header .lvv-header-inner { min-height: 82px; }
  .lvv .lvv-header-actions { margin-left: auto; }
  .lvv .lvv-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .lvv .lvv-footer-grid > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 780px) {
  .lvv.lvv-site-header .wrap, .lvv.lvv-site-footer .wrap { width: calc(100% - 32px); }
  .lvv .lvv-brand { gap: 8px; }
  .lvv .lvv-brand img { width: 36px; height: 43px; }
  .lvv .lvv-brand-name, .lvv .lvv-brand > span { font-size: 21px; }
  .lvv .lvv-brand-tagline, .lvv .lvv-brand > span > small { font-size: 8px; }
  .lvv .lvv-header-actions { gap: 2px; }
  .lvv .lvv-header-actions :is(a, button) { padding-inline: 5px; }
  .lvv .lvv-footer-bottom { flex-direction: column; gap: 12px; }
}
@media (max-width: 370px) {
  .lvv .lvv-brand-name, .lvv .lvv-brand > span { font-size: 18px; }
  .lvv .lvv-header-actions .lvv-account-label { display: none; }
  .lvv .lvv-footer-grid { grid-template-columns: 1fr; }
}

@media(max-width:600px){.lvv .lvv-topbar .wrap{flex-wrap:wrap;gap:3px 12px}.lvv .lvv-footer-grid{grid-template-columns:1fr}.lvv.lvv-site-header .lvv-header-inner{gap:10px}.lvv .lvv-header-actions{gap:2px}.lvv .lvv-header-actions :is(a,button){font-size:12px}}
/* Recherche native WordPress/Woo dans details ; le template fournit le vrai formulaire. */
.lvv .lvv-header-search { position: relative; }
.lvv .lvv-header-search summary { display: inline-flex; min-height: 44px; align-items: center; padding: 8px; font-family: var(--sans); font-size: 13px; color: var(--forest); cursor: pointer; box-sizing: border-box; }
.lvv .lvv-header-search summary:focus-visible { outline: 3px solid var(--terra); outline-offset: 4px; }
.lvv .lvv-header-search .lvv-search-form { position: absolute; right: 0; top: calc(100% + 12px); z-index: 50; width: min(430px, calc(100vw - 32px)); padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); box-shadow: 0 8px 20px #173f3218; box-sizing: border-box; }
.lvv .lvv-header-search .lvv-search-form form { display: flex; gap: 10px; align-items: stretch; width: 100%; }
.lvv .lvv-header-search .lvv-search-form input[type="search"] { flex: 1 1 0; width: 0; min-width: 0; }
.lvv .lvv-header-search .lvv-search-form button { flex-shrink: 0; }
.lvv .lvv-header-search .lvv-search-form :is(input[type="search"],button):focus-visible { outline: 3px solid var(--terra); outline-offset: 4px; }
@media(max-width:780px){.lvv.lvv-site-header{position:relative}.lvv .lvv-header-search{position:static}.lvv .lvv-header-search .lvv-search-form{top:100%;left:16px;right:16px;width:auto}.lvv .lvv-header-search summary{font-size:12px;padding-inline:5px}}

/* Contact direct : aucun widget externe chargé avant le clic. */
body.lvv-site a.lvv-whatsapp {
  position: fixed;
  right: max(24px, env(safe-area-inset-right, 0px));
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 56px;
  min-height: 56px;
  padding: 12px 20px;
  box-sizing: border-box;
  border: 2px solid #f7f4eb;
  border-radius: 999px;
  background: #173f32;
  color: #fff;
  box-shadow: 0 4px 18px #173f3233;
  font: 600 14px/1.2 Arial, Helvetica, sans-serif;
  text-decoration: none;
}
body.lvv-site a.lvv-whatsapp:hover { background: #245e48; color: #fff; }
body.lvv-site a.lvv-whatsapp:focus-visible { outline: 3px solid #94492d; outline-offset: 4px; }
body.lvv-site .lvv-whatsapp svg { display: block; flex: 0 0 28px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
body.lvv-site .lvv.lvv-site-footer { padding-bottom: 96px; }
@media (max-width: 600px) {
  body.lvv-site a.lvv-whatsapp { right: max(16px, env(safe-area-inset-right, 0px)); bottom: calc(88px + env(safe-area-inset-bottom, 0px)); width: 56px; height: 56px; padding: 12px; }
  body.lvv-site .lvv-whatsapp span { display: none; }
  body.lvv-site .lvv.lvv-site-footer { padding-bottom: 160px; }
}
/* La barre de prévisualisation occupe le bas de l'écran ; sa hauteur est mesurée par le script. */
body.lvv-theme-preview a.lvv-whatsapp { bottom: calc(var(--lvv-preview-bar-offset, 160px) + env(safe-area-inset-bottom, 0px)); }
@media print { body.lvv-site a.lvv-whatsapp { display: none; } }
