/* LVV — mission 2, direction A, 2026-09-08.
 * Couche additionnelle à charger après les cinq feuilles LVV existantes.
 * Données, hooks, calculs, champs cachés et états WooCommerce restent natifs.
 * Familles locales préparées séparément, avec polices système de repli.
 */
.lvv,
.lvv .lvv-marketing {
  --forest: #173f35;
  --ink: #24332d;
  --muted: #59645b;
  --paper: #f6f3ea;
  --sage: #c3d4ae;
  --soft: #e6e9db;
  --line: #c5cbc1;
  --control-line: #798675;
  --terra: #975137;
  --white: #fff;
  --radius: 8px;
  --sans: 'LVV Botanique Sans', Arial, Helvetica, sans-serif;
  --serif: 'LVV Botanique Serif', Georgia, 'Times New Roman', serif;
  --max: 1312px;
}
.lvv.lvv-main > .wrap,
.lvv .lvv-shell,
.lvv .lvv-marketing .wrap,
.lvv.lvv-site-header .wrap,
.lvv.lvv-site-footer .wrap {
  width: min(calc(100% - 128px), var(--max));
}
.lvv :where(h1, h2, h3, p, li, address, a, button) { overflow-wrap: break-word; }
.lvv :where(h2, h3, [id]) { scroll-margin-top: 24px; }
.lvv :where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--terra);
  outline-offset: 4px;
}
.lvv .lvv-marketing .chapter :focus-visible {
  outline-color: var(--paper);
  box-shadow: 0 0 0 2px var(--forest);
}
body.lvv-site > .lvv-skip-link {
  background: #f6f3ea;
  color: #173f35;
  border-color: #173f35;
}
.lvv .lvv-header-actions :is(a, button),
.lvv .lvv-menu-toggle:not([hidden]),
.lvv .lvv-header-search summary,
.lvv .lvv-primary-nav a {
  min-height: 48px;
}
.lvv .lvv-header-actions :is(a, button),
.lvv .lvv-menu-toggle:not([hidden]) { min-width: 48px; }
.lvv .lvv-menu-toggle:not([hidden]),
.lvv .lvv-search-form input[type="search"] {
  border-color: var(--control-line);
  border-radius: 6px;
}
.lvv .lvv-search-form button { border-radius: 6px; }
.lvv .lvv-footer-nav a,
.lvv .lvv-footer-grid nav a,
.lvv .lvv-footer-brand > a:not(.lvv-brand) {
  min-height: 48px;
  box-sizing: border-box;
}

/* Accueil : palette commune, photographie entière et titre lisible sur mobile. */
.lvv .lvv-marketing .hero { gap: 64px; padding-block: 64px; }
.lvv .lvv-marketing .hero h1 { line-height: 1.08; }
.lvv .lvv-marketing .hero h1 em { color: var(--forest); }
.lvv .lvv-marketing .hero-media { background: var(--soft); }
.lvv .lvv-marketing .hero-media img { object-fit: contain; }
.lvv .lvv-marketing .hero-card { border-color: var(--line); }
.lvv .lvv-marketing .hero .intro { font-size: 18px; line-height: 1.6; }
.lvv .lvv-marketing .category-tile,
.lvv .lvv-guide-card,
.lvv .lvv-page .lvv-store-card { background: var(--soft); }
.lvv .lvv-marketing .category-tile .num { color: var(--muted); }
.lvv .lvv-marketing .category-tile:hover { background: var(--sage); }
.lvv .lvv-marketing .btn.secondary,
.lvv .lvv-page .lvv-button--secondary { border-color: var(--control-line); }
.lvv .lvv-marketing .section-head { flex-wrap: wrap; }
.lvv .lvv-marketing .section-head .text-link { white-space: normal; }
.lvv .lvv-marketing .chapter-copy p:not(.eyebrow),
.lvv .lvv-marketing .store-row span { color: var(--paper); }

/* Catalogue : conserver les corrections existantes de grille et de galerie Divi. */
.lvv .lvv-native-products ul.products { gap: 32px 24px; }
.lvv .lvv-native-products ul.products li.product .et_shop_image {
  background: var(--soft);
  border-color: var(--line);
}
.lvv .lvv-native-products ul.products li.product :is(.woocommerce-loop-product__title, h2, h3) {
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: 0;
}
.lvv .lvv-native-products ul.products li.product .price { font-size: 18px; }
.lvv .lvv-native-products .woocommerce-pagination ul li :is(a, span) {
  min-width: 48px;
  min-height: 48px;
}
.lvv .lvv-native-products .woocommerce-ordering select { max-width: 100%; }
.lvv .lvv-native-products :is(.woocommerce-result-count, .woocommerce-ordering) {
  font-size: 14px;
  line-height: 1.6;
}

/* Champs visibles seulement : préserver Select2, radios, nonces et extensions. */
.lvv .lvv-woo :is(input.input-text:not([type="hidden"]), textarea.input-text, select:not([multiple]):not(.select2-hidden-accessible):not([hidden]):not([aria-hidden="true"])) {
  border-color: var(--control-line);
  border-radius: 6px;
  min-height: 48px;
}
.lvv .lvv-woo .woocommerce-invalid :is(input.input-text, textarea.input-text, select) {
  border-color: #9f2d2d;
}
.lvv .lvv-woo :is(a.button, button.button, input.button) {
  font-size: 15px;
  min-height: 48px;
}
.lvv .lvv-woo :is(.woocommerce-message, .woocommerce-info) { background: var(--soft); }
.lvv .lvv-woo .woocommerce-error { border-top-color: #9f2d2d; }

/* Fiche : prix et quantité natifs, aucun format ni bouton d'achat dupliqué. */
.lvv .lvv-native-product .woocommerce-product-gallery img { object-fit: contain; }
.lvv .lvv-native-product form.cart .single_add_to_cart_button { min-height: 50px; }
.lvv .lvv-native-product .woocommerce-tabs ul.tabs li a { min-height: 48px; }
.lvv .lvv-native-product .variations th.label { font-size: 14px; }
.lvv .lvv-native-product .reset_variations { min-height: 44px; box-sizing: border-box; }
.lvv .lvv-native-product .product_meta { line-height: 1.8; }

/* Panier et commande : les totaux restent ceux des réponses WooCommerce. */
.lvv .lvv-native-cart :is(.cart_totals, .cart-collaterals .cart_totals),
.lvv .lvv-native-checkout .woocommerce-checkout-review-order-table {
  background: var(--soft);
  border-color: var(--line);
}
.lvv .lvv-native-cart table.shop_table td.product-remove a.remove {
  width: 48px;
  height: 48px;
}
.lvv .lvv-native-checkout .form-row label { font-size: 14px; }
.lvv .lvv-native-checkout .woocommerce-checkout-review-order-table :is(th, td) {
  border-top-color: var(--line);
}
.lvv .lvv-checkout-help {
  margin-block: 28px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--soft);
  font-size: 15px;
  line-height: 1.65;
}
.lvv .lvv-checkout-help p { margin: 0; }
.lvv .lvv-checkout-help a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  color: var(--forest);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Magasins : cartes d'informations existantes, sans photo ou horaire inventé. */
.lvv .lvv-native-page > .lvv-page { width: 100%; }
.lvv .lvv-page--store {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 32px;
}
.lvv .lvv-page--store > :is(nav, header),
.lvv .lvv-page--store > section:last-child { grid-column: 1 / -1; }
.lvv .lvv-page--store > .lvv-page__header { margin-bottom: 0; max-width: 940px; }
.lvv .lvv-page--store > section {
  margin-top: 0;
  padding: 32px;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  min-width: 0;
}
.lvv .lvv-page--store > section:last-child { background: transparent; }
.lvv .lvv-page--store > section > :last-child { margin-bottom: 0; }
.lvv .lvv-page--store nav[aria-label="Fil d’Ariane"] ol {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
}

/* Guides : largeur de lecture, tableaux conservés et sommaire natif facultatif. */
.lvv .lvv-native-post {
  width: min(100%, 70ch);
  font-size: 17px;
  line-height: 1.75;
}
.lvv .lvv-native-post .lvv-lead { color: var(--muted); font-size: 18px; line-height: 1.65; }
.lvv .lvv-native-post table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin-block: 24px;
  font-size: 15px;
}
.lvv .lvv-native-post table :is(th, td) {
  padding: 12px;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
  border: 1px solid var(--line);
}
.lvv .lvv-native-post table th { background: var(--soft); }
.lvv .lvv-native-post table caption { text-align: left; padding-bottom: 12px; font-weight: 600; }
.lvv .lvv-native-post .lvv-guide-toc {
  padding: 20px 24px;
  margin-block: 24px 32px;
  border: 1px solid var(--control-line);
  border-radius: var(--radius);
  background: var(--soft);
}
.lvv .lvv-native-post .lvv-guide-toc summary {
  min-height: 48px;
  padding-block: 12px;
  box-sizing: border-box;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}
.lvv .lvv-native-post .lvv-guide-toc ol { margin: 12px 0 0; padding-left: 22px; }
.lvv .lvv-native-post .lvv-guide-toc li { padding-block: 3px; }
.lvv .lvv-native-post .lvv-guide-toc a { display: inline-block; padding-block: 8px; line-height: 1.5; }

/* WhatsApp : même destination, sans script externe ; aide en flux à la commande. */
body.lvv-site a.lvv-whatsapp {
  background: #173f35;
  border-color: #f6f3ea;
  color: #fff;
  font-family: 'LVV Botanique Sans', Arial, Helvetica, sans-serif;
}
body.lvv-site a.lvv-whatsapp:focus-visible {
  outline: 3px solid #173f35;
  outline-offset: 4px;
  box-shadow: 0 0 0 4px #f6f3ea;
}
body.lvv-site:is(.woocommerce-checkout, .lvv-checkout-context) a.lvv-whatsapp { display: none; }
body.lvv-site:is(.woocommerce-checkout, .lvv-checkout-context) .lvv.lvv-site-footer { padding-bottom: 32px; }

@media (max-width: 1200px) {
  .lvv.lvv-main > .wrap,
  .lvv .lvv-shell,
  .lvv .lvv-marketing .wrap,
  .lvv.lvv-site-header .wrap,
  .lvv.lvv-site-footer .wrap { width: calc(100% - 64px); }
  .lvv .lvv-marketing .hero { gap: 36px; }
}
@media (max-width: 780px) {
  .lvv.lvv-main > .wrap,
  .lvv .lvv-shell,
  .lvv .lvv-marketing .wrap,
  .lvv.lvv-site-header .wrap,
  .lvv.lvv-site-footer .wrap { width: calc(100% - 40px); }
  .lvv .lvv-marketing .hero { padding-block: 40px; gap: 28px; }
  .lvv .lvv-marketing .hero h1 { font-size: clamp(36px, 10vw, 46px); line-height: 1.1; }
  .lvv .lvv-marketing .hero .intro { font-size: 16px; }
  .lvv .lvv-marketing .hero-media { height: 390px; }
  .lvv .lvv-marketing .section-head h2 { font-size: 30px; }
  .lvv .lvv-marketing .section-head .text-link { font-size: 14px; min-height: 44px; }
  .lvv .lvv-native-products ul.products { gap: 28px 14px; }
  .lvv .lvv-native-products ul.products li.product :is(.woocommerce-loop-product__title, h2, h3) { font-size: 16px; }
  .lvv .lvv-native-products ul.products li.product .price { font-size: 17px; }
  .lvv .lvv-native-products ul.products li.product > .button { font-size: 14px; padding-inline: 10px; }
  .lvv .lvv-native-product :is(.product_title, .et_pb_module_header) { font-size: clamp(32px, 8vw, 42px); }
  .lvv .lvv-page--store { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .lvv .lvv-page--store > section { padding: 24px; }
  .lvv .lvv-native-page > .lvv-page { padding-block: 32px 42px; }
  .lvv .lvv-native-post { width: 100%; font-size: 16px; line-height: 1.75; }
  .lvv .lvv-native-post .lvv-lead { font-size: 17px; }
  .lvv .lvv-native-post :is(h2, h3) { font-size: 28px; }
  .lvv .lvv-native-post .lvv-guide-toc { padding: 16px; }
  .lvv .lvv-native-post table :is(th, td) { padding: 10px; }
}
@media (max-width: 374px) {
  /* Gouttières de 20px + intervalle de 14px : 374px donnent deux cartes de 160px. */
  .lvv .lvv-native-products,
  .lvv .lvv-native-products.lvv-products-two,
  .lvv .lvv-native-products.lvv-products-four { --lvv-product-columns: 1; }
}
@media (max-width: 359px) {
  .lvv.lvv-main > .wrap,
  .lvv .lvv-shell,
  .lvv .lvv-marketing .wrap,
  .lvv.lvv-site-header .wrap,
  .lvv.lvv-site-footer .wrap { width: calc(100% - 32px); }
  .lvv .lvv-marketing .hero h1 { font-size: 36px; }
  .lvv .lvv-marketing .hero .actions .btn { width: 100%; }
  .lvv .lvv-marketing .hero-media { height: 345px; }
  .lvv .lvv-page--store > section { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .lvv *, .lvv *::before, .lvv *::after, body.lvv-site a.lvv-whatsapp {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

/* Recette du 8 septembre : priorité sur les styles enregistrés des modules Divi. */
.lvv .lvv-native-product #main-content { background: var(--paper); }
.lvv .lvv-native-product .woocommerce-product-gallery { background: var(--soft); border-radius: var(--radius); }
.lvv .lvv-native-product .woocommerce-product-gallery__image img.wp-post-image { width: auto !important; max-width: 100%; max-height: 640px; margin-inline: auto; }
.lvv .lvv-native-product #main-content .container { width: 100%; max-width: none; padding-top: 0; }
.lvv .lvv-native-product #main-content .container::before { display: none; }
.lvv .lvv-native-product #left-area { width: 100%; float: none; padding-right: 0; }
.lvv :is(.lvv-native-cart, .lvv-native-checkout) .et_pb_section { background-color: var(--paper) !important; }
.lvv :is(.lvv-native-cart, .lvv-native-checkout) .et_pb_row { width: 100%; max-width: none; }
.lvv :is(.lvv-native-cart, .lvv-native-checkout) :is(.et_pb_post_title, h1.entry-title) { text-align: left; }
.lvv .lvv-woo :is(h1, h2, h3) { font-family: var(--serif) !important; color: var(--ink) !important; font-weight: 400 !important; }
.lvv .lvv-woo h1.entry-title { font-size: clamp(38px, 4.6vw, 60px); line-height: 1.12; }
.lvv .lvv-native-product div.product p.price,
.lvv .lvv-woo .woocommerce-Price-amount { color: var(--forest) !important; }
.lvv .lvv-woo del .woocommerce-Price-amount { color: var(--muted) !important; }
.lvv .lvv-woo :is(table.shop_table, table.shop_table th, table.shop_table td, .woocommerce-info, .form-row label) { font-family: var(--sans) !important; }
.lvv .lvv-native-cart table.shop_table td.product-name a { color: var(--ink) !important; }
.lvv .lvv-woo :is(.woocommerce-info, .woocommerce-message) { background-color: var(--soft) !important; color: var(--ink) !important; }
.lvv .lvv-native-product .product_meta a,
.lvv .lvv-woo .woocommerce-breadcrumb a { color: var(--forest); }

