/*
Theme Name: Daniecoud Astra Child
Theme URI: https://daniecoud.ca
Description: Habillage complet Astra + WooCommerce + Elementor pour Daniecoud (systeme visuel Organic).
Author: Prevaction Services conseils
Template: astra
Version: 7.1
Text Domain: daniecoud-astra-child
*/

/* =============================================================================
   DANIECOUD — Habillage complet Astra + WooCommerce + Elementor
   Système visuel « Organic » : crème/sable, terracotta, sauge, formes arrondies.

   OÙ COLLER CE FICHIER
   Option A (recommandée) : Apparence > Thème enfant Astra > style.css
   Option B : Apparence > Personnaliser > CSS additionnel
   Option C : Elementor > Réglages du site > CSS personnalisé (Pro seulement)

   Le fichier est organisé en sections. Tout est basé sur des variables :
   pour changer la palette, modifie uniquement le bloc :root.
   ============================================================================= */

/* -----------------------------------------------------------------------------
   0. Polices
   -------------------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Caprasimo&family=Figtree:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* -----------------------------------------------------------------------------
   1. Jetons de design (tokens)
   -------------------------------------------------------------------------- */
:root {
  /* Fonds et texte */
  --dc-bg: #f5ead8;          /* crème — fond principal */
  --dc-surface: #ebddc5;     /* sable — blocs et encadrés */
  --dc-card: #f9f4ed;        /* carte produit */
  --dc-text: #201e1d;
  --dc-text-soft: #645c50;
  --dc-divider: rgba(32, 30, 29, 0.16);

  /* Accent terracotta */
  --dc-accent: #c67139;
  --dc-accent-100: #fff2eb;
  --dc-accent-200: #ffe1d0;
  --dc-accent-400: #f6a06b;
  --dc-accent-600: #b2622d;
  --dc-accent-700: #8c491a;
  --dc-accent-900: #402310;

  /* Accent sauge (deuxième voix) */
  --dc-sage: #7a8a5e;
  --dc-sage-200: #e1eecc;
  --dc-sage-700: #56633f;
  --dc-sage-800: #3d472b;
  --dc-sage-100: #f0fae1;

  /* Neutres */
  --dc-n-100: #f9f4ed;
  --dc-n-200: #eee7db;
  --dc-n-300: #dcd3c4;
  --dc-n-600: #82796a;
  --dc-n-900: #2e2b25;

  /* Type */
  --dc-font-title: 'Caprasimo', Georgia, serif;
  --dc-font-body: 'Figtree', system-ui, -apple-system, sans-serif;
  --dc-font-mono: 'IBM Plex Mono', ui-monospace, monospace;

  /* Rayons et ombres */
  --dc-r-sm: 8px;
  --dc-r-md: 16px;
  --dc-r-lg: 28px;
  --dc-r-pill: 999px;
  --dc-sh-sm: 0 1px 2px rgba(46, 43, 37, 0.14);
  --dc-sh-md: 0 3px 10px rgba(46, 43, 37, 0.16);
  --dc-sh-lg: 0 12px 32px rgba(46, 43, 37, 0.22);
}

/* -----------------------------------------------------------------------------
   2. Base — typographie et fond du site
   -------------------------------------------------------------------------- */
body,
.ast-container,
.woocommerce,
.woocommerce-page {
  font-family: var(--dc-font-body);
  color: var(--dc-text);
}

body {
  background: var(--dc-bg);
  font-size: 16px;
  line-height: 1.6;
  text-wrap: pretty;
}

h1, h2, h3, h4, h5,
.entry-title,
.woocommerce-loop-product__title,
.product_title,
.elementor-heading-title {
  font-family: var(--dc-font-title);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.015em;
  color: var(--dc-text);
}

h1, .entry-title { font-size: clamp(30px, 4.4vw, 48px); }
h2 { font-size: clamp(26px, 3.2vw, 36px); }
h3 { font-size: 20px; }

a { color: var(--dc-accent-700); text-decoration: none; text-underline-offset: 3px; }
a:hover, a:focus { color: var(--dc-accent); }

:focus-visible {
  outline: 2px solid var(--dc-accent);
  outline-offset: 2px;
}
::selection { background: rgba(198, 113, 57, 0.3); }

/* Petites étiquettes techniques (prix, méta, compteurs) */
.woocommerce .price,
.woocommerce-Price-amount,
.woocommerce-result-count,
.sku_wrapper,
.posted_in,
.woocommerce-review__published-date {
  font-family: var(--dc-font-mono);
}

/* -----------------------------------------------------------------------------
   3. En-tête Astra
   -------------------------------------------------------------------------- */
.site-header,
.ast-main-header-wrap,
.ast-primary-header-bar {
  background: var(--dc-bg) !important;
  border-bottom: 1px solid var(--dc-divider) !important;
  box-shadow: none !important;
}

.ast-primary-header-bar { padding-block: 6px; }

.site-title,
.site-title a {
  font-family: var(--dc-font-title);
  font-size: 26px;
  letter-spacing: -0.02em;
  color: var(--dc-text) !important;
}
.site-title a:hover { color: var(--dc-accent) !important; }
.site-description { font-size: 12px; color: var(--dc-text-soft); }

/* Menu principal */
.main-header-menu > .menu-item > .menu-link,
.ast-header-break-point .main-header-menu .menu-link {
  font-family: var(--dc-font-body);
  font-weight: 500;
  font-size: 15px;
  color: var(--dc-text);
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link {
  color: var(--dc-accent-700);
}

/* Sous-menus arrondis */
.main-header-menu .sub-menu {
  border: 0;
  border-radius: var(--dc-r-md);
  background: var(--dc-n-100);
  box-shadow: var(--dc-sh-md);
  overflow: hidden;
  padding: 6px;
}
.main-header-menu .sub-menu .menu-link { border-radius: var(--dc-r-sm); }
.main-header-menu .sub-menu .menu-link:hover { background: var(--dc-accent-100); }

/* Icône panier de l'en-tête */
.ast-site-header-cart .ast-cart-menu-wrap,
.ast-header-woo-cart .ast-addon-cart-wrap {
  border-radius: var(--dc-r-pill);
  background: var(--dc-accent);
  color: var(--dc-bg);
  padding: 9px 16px;
}
.ast-site-header-cart .ast-cart-menu-wrap .count,
.ast-header-woo-cart .ast-addon-cart-wrap .count {
  border: 0;
  background: transparent;
  color: var(--dc-bg);
  font-family: var(--dc-font-mono);
  font-weight: 500;
}
.ast-site-header-cart a { color: var(--dc-bg) !important; }

/* Menu mobile hors-écran */
.ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--dc-bg); }
.ast-mobile-popup-drawer .menu-link { font-size: 17px; padding-block: 14px; }
.menu-toggle.ast-mobile-menu-trigger-fill {
  border-radius: var(--dc-r-pill) !important;
  background: var(--dc-accent) !important;
  color: var(--dc-bg) !important;
}

/* Bandeau d'annonce (Astra : Header Builder > widget HTML) */
.dc-announce {
  background: var(--dc-sage-800);
  color: var(--dc-sage-100);
  text-align: center;
  padding: 10px 20px;
  font-size: 13px;
  letter-spacing: 0.02em;
}

/* -----------------------------------------------------------------------------
   4. Boutons — Astra, WooCommerce, Elementor, formulaires
   -------------------------------------------------------------------------- */
.ast-button,
.button,
button:not(.dc-plain),
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .woocommerce-message .button,
.elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: var(--dc-r-pill);
  background: var(--dc-accent);
  color: var(--dc-bg) !important;
  font-family: var(--dc-font-title);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.2;
  padding: 14px 26px;
  text-transform: none;
  letter-spacing: 0;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.elementor-button:hover { background: var(--dc-accent-600); }

.button:active,
.woocommerce a.button:active,
.woocommerce button.button:active { background: var(--dc-accent-700); }

/* Bouton principal (Ajouter au panier, Commander) */
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .checkout-button.button.alt {
  background: var(--dc-accent);
  color: var(--dc-bg) !important;
  padding: 16px 30px;
  font-size: 16px;
}
.woocommerce .checkout-button.button.alt { width: 100%; }

/* Bouton secondaire (contour) */
.woocommerce a.button.wc-backward,
.woocommerce .cart .button[name="update_cart"],
.dc-btn-outline,
.woocommerce-message a.button.wc-forward {
  background: transparent;
  color: var(--dc-text) !important;
  border-color: var(--dc-divider);
}
.woocommerce a.button.wc-backward:hover,
.woocommerce .cart .button[name="update_cart"]:hover,
.dc-btn-outline:hover { background: rgba(32, 30, 29, 0.07); }

.button:disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
  opacity: 0.45;
  background: var(--dc-accent);
  color: var(--dc-bg) !important;
}

/* -----------------------------------------------------------------------------
   5. Champs de formulaire
   -------------------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
select,
.select2-container .select2-selection--single,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select {
  width: 100%;
  border: 1px solid var(--dc-divider);
  border-radius: var(--dc-r-pill);
  background: var(--dc-n-100);
  color: var(--dc-text);
  font-family: var(--dc-font-body);
  font-size: 15px;
  padding: 13px 20px;
  box-shadow: none;
  transition: border-color 0.18s ease;
}
textarea,
.woocommerce form .form-row textarea {
  width: 100%;
  border: 1px solid var(--dc-divider);
  border-radius: var(--dc-r-lg);
  background: var(--dc-n-100);
  font-family: var(--dc-font-body);
  font-size: 15px;
  padding: 16px 20px;
}
input:focus, textarea:focus, select:focus { border-color: var(--dc-accent); }

.woocommerce form .form-row label,
.woocommerce-form label,
label {
  font-size: 13px;
  font-weight: 600;
  color: var(--dc-text-soft);
  margin-bottom: 6px;
}

/* Select2 (pays, province) aligné sur les autres champs */
.select2-container--default .select2-selection--single { height: auto; padding: 6px 8px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 12px; right: 12px; }
.select2-dropdown {
  border: 1px solid var(--dc-divider);
  border-radius: var(--dc-r-md);
  overflow: hidden;
}

/* -----------------------------------------------------------------------------
   6. Boutique — grille de produits
   -------------------------------------------------------------------------- */
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 22px;
  margin: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; display: none; }

.woocommerce ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  background: var(--dc-card);
  border-radius: var(--dc-r-lg);
  box-shadow: var(--dc-sh-sm);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-align: left;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.woocommerce ul.products li.product:hover {
  box-shadow: var(--dc-sh-md);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product a img {
  margin: 0;
  border-radius: 0;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  filter: saturate(0.94) contrast(0.97);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 17px;
  line-height: 1.25;
  padding: 16px 20px 0;
  margin: 0;
}
.woocommerce ul.products li.product .price {
  display: block;
  padding: 8px 20px 0;
  font-size: 15px;
  color: var(--dc-text);
}
.woocommerce ul.products li.product .price del { color: var(--dc-n-600); opacity: 1; }
.woocommerce ul.products li.product .price ins { color: var(--dc-accent-700); text-decoration: none; }

.woocommerce ul.products li.product .star-rating {
  margin: 10px 20px 0;
  font-size: 13px;
  color: var(--dc-accent);
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
  margin: 14px 20px 20px;
  padding: 11px 18px;
  font-size: 14px;
}

/* Badge « en vente » / pièce unique */
.woocommerce span.onsale {
  top: 14px;
  left: 14px;
  right: auto;
  min-height: 0;
  min-width: 0;
  margin: 0;
  padding: 6px 13px;
  border-radius: var(--dc-r-pill);
  background: var(--dc-sage-700);
  color: var(--dc-sage-100);
  font-family: var(--dc-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.4;
}

/* Barre haute de la boutique */
.woocommerce .woocommerce-result-count { font-size: 13px; color: var(--dc-text-soft); }
.woocommerce .woocommerce-ordering select {
  width: auto;
  border-radius: var(--dc-r-pill);
  background: transparent;
  border-color: var(--dc-divider);
  font-size: 13px;
  font-weight: 600;
  padding: 10px 18px;
}

/* Bannière de catégorie (via gabarit Elementor) */
.dc-page-banner {
  background: var(--dc-surface);
  border-radius: var(--dc-r-lg);
  padding: 44px 32px;
  margin-bottom: 34px;
}

/* Fil d'Ariane */
.woocommerce .woocommerce-breadcrumb {
  font-size: 12px;
  color: var(--dc-text-soft);
  margin-bottom: 18px;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 8px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--dc-r-pill);
  background: var(--dc-surface);
  color: var(--dc-text);
  font-size: 14px;
  padding: 0 14px;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--dc-accent);
  color: var(--dc-bg);
}

/* Filtres par collection (widgets de la barre latérale) */
.woocommerce .widget_product_categories ul,
.woocommerce .widget_layered_nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce .widget_product_categories li,
.woocommerce .widget_layered_nav li { margin: 0; }
.woocommerce .widget_product_categories li a,
.woocommerce .widget_layered_nav li a {
  display: inline-block;
  border-radius: var(--dc-r-pill);
  background: var(--dc-surface);
  color: var(--dc-text);
  font-size: 13px;
  font-weight: 600;
  padding: 9px 17px;
}
.woocommerce .widget_product_categories li.current-cat a,
.woocommerce .widget_product_categories li a:hover,
.woocommerce .widget_layered_nav li.chosen a {
  background: var(--dc-n-900);
  color: var(--dc-n-100);
}
.widget-title, .wp-block-heading {
  font-family: var(--dc-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dc-text-soft);
}

/* -----------------------------------------------------------------------------
   7. Fiche produit
   -------------------------------------------------------------------------- */
.woocommerce div.product .woocommerce-product-gallery__image:first-child img,
.woocommerce div.product div.images img {
  border-radius: var(--dc-r-lg);
}
.woocommerce div.product .flex-control-thumbs li img { border-radius: var(--dc-r-md); }

.woocommerce div.product .product_title { margin-bottom: 10px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--dc-font-mono);
  font-size: 26px;
  color: var(--dc-text);
}
.woocommerce div.product p.price del { font-size: 16px; color: var(--dc-n-600); }
.woocommerce div.product p.price ins { color: var(--dc-accent-700); text-decoration: none; }

.woocommerce div.product .woocommerce-product-details__short-description {
  font-size: 16px;
  color: var(--dc-text-soft);
  max-width: 52ch;
}

/* Variations : pastilles au lieu de listes déroulantes moches */
.woocommerce div.product form.cart .variations { border: 0; margin-bottom: 18px; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { padding: 6px 0; display: block; }
.woocommerce div.product form.cart .variations label {
  font-family: var(--dc-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--dc-text-soft);
}
.woocommerce div.product form.cart .reset_variations { font-size: 12px; }

/* Quantité */
.woocommerce .quantity .qty {
  width: 92px;
  text-align: center;
  border-radius: var(--dc-r-pill);
  padding: 13px 12px;
}
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.woocommerce div.product form.cart .button { flex: 1 1 220px; min-height: 52px; }

/* Méta produit */
.woocommerce div.product .product_meta {
  font-size: 13px;
  color: var(--dc-text-soft);
  border-top: 1px solid var(--dc-divider);
  padding-top: 16px;
  margin-top: 22px;
}

/* Onglets Description / Avis */
.woocommerce div.product .woocommerce-tabs {
  background: var(--dc-surface);
  border-radius: var(--dc-r-lg);
  padding: 30px 32px;
  margin-top: 40px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0;
  margin: 0 0 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: 0 !important;
  background: transparent !important;
  border-radius: var(--dc-r-pill);
  margin: 0;
  padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 10px 20px;
  border-radius: var(--dc-r-pill);
  font-weight: 600;
  font-size: 14px;
  color: var(--dc-text-soft);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  background: var(--dc-bg);
  color: var(--dc-text);
  font-weight: 700;
}
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 0; }

/* Attributs (tableau Informations complémentaires) */
.woocommerce table.shop_attributes { border: 0; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
  border: 0;
  border-bottom: 1px solid var(--dc-divider);
  padding: 10px 0;
  font-size: 14px;
  background: transparent !important;
  font-style: normal;
}
.woocommerce table.shop_attributes th { color: var(--dc-text-soft); font-weight: 600; }

/* Avis clients */
.woocommerce #reviews .commentlist { padding: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment_container {
  background: var(--dc-n-100);
  border: 0;
  border-radius: var(--dc-r-lg);
  padding: 22px 24px;
  box-shadow: var(--dc-sh-sm);
}
.woocommerce #reviews #comments ol.commentlist li img.avatar {
  border: 0;
  border-radius: var(--dc-r-pill);
  padding: 0;
  width: 46px;
}
.woocommerce #reviews #comments ol.commentlist li .comment-text { border: 0; margin-left: 66px; padding: 0; }
.woocommerce .star-rating span,
.woocommerce p.stars a { color: var(--dc-accent); }
.woocommerce #review_form #respond {
  background: var(--dc-n-100);
  border-radius: var(--dc-r-lg);
  padding: 24px;
  margin-top: 18px;
}

/* Produits liés / ventes croisées */
.woocommerce .related > h2,
.woocommerce .up-sells > h2,
.woocommerce .cross-sells > h2 { margin-bottom: 22px; }

/* -----------------------------------------------------------------------------
   8. Panier
   -------------------------------------------------------------------------- */
.woocommerce table.shop_table {
  border: 0;
  border-radius: var(--dc-r-lg);
  background: var(--dc-n-100);
  overflow: hidden;
  box-shadow: var(--dc-sh-sm);
}
.woocommerce table.shop_table th {
  font-family: var(--dc-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dc-text-soft);
  border-bottom: 1px solid var(--dc-divider);
  padding: 16px 20px;
}
.woocommerce table.shop_table td {
  border-top: 1px solid var(--dc-divider);
  padding: 18px 20px;
  vertical-align: middle;
}
.woocommerce table.cart img { width: 84px; border-radius: var(--dc-r-md); }
.woocommerce a.remove {
  color: var(--dc-text-soft) !important;
  border-radius: var(--dc-r-pill);
  font-weight: 500;
}
.woocommerce a.remove:hover { background: var(--dc-accent-200); color: var(--dc-accent-700) !important; }

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
  background: var(--dc-surface);
  border-radius: var(--dc-r-lg);
  padding: 26px 28px;
}
.woocommerce .cart_totals h2 { font-size: 21px; margin-bottom: 16px; }
.woocommerce .cart_totals table.shop_table {
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td { padding: 10px 0; font-size: 14px; }
.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td { font-size: 17px; }

.woocommerce form.woocommerce-cart-form { margin-bottom: 26px; }
.woocommerce .coupon { display: flex; flex-wrap: wrap; gap: 10px; }
.woocommerce .coupon .input-text { flex: 1 1 180px; }

/* Panier vide */
.woocommerce .cart-empty {
  font-family: var(--dc-font-title);
  font-size: 24px;
}

/* -----------------------------------------------------------------------------
   9. Paiement (checkout)
   -------------------------------------------------------------------------- */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; }

.woocommerce-checkout h3 { font-size: 21px; margin-bottom: 16px; }

.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
  background: var(--dc-surface);
  border-radius: var(--dc-r-lg);
  padding: 26px 28px;
}
.woocommerce-checkout #order_review table.shop_table {
  background: transparent;
  box-shadow: none;
}
.woocommerce-checkout #payment {
  background: transparent;
  border-radius: 0;
}
.woocommerce-checkout #payment ul.payment_methods {
  border: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.woocommerce-checkout #payment ul.payment_methods li {
  border: 1px solid var(--dc-divider);
  border-radius: var(--dc-r-md);
  padding: 14px 18px;
  list-style: none;
  background: var(--dc-bg);
}
.woocommerce-checkout #payment div.payment_box {
  background: var(--dc-n-100);
  border-radius: var(--dc-r-md);
  font-size: 13px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* Modes de livraison — cueillette locale mise en avant */
.woocommerce ul#shipping_method { display: flex; flex-direction: column; gap: 10px; }
.woocommerce ul#shipping_method li {
  border: 1px solid var(--dc-divider);
  border-radius: var(--dc-r-md);
  padding: 12px 16px;
  margin: 0;
  font-size: 14px;
}

/* Bandeaux de message WooCommerce */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
  border: 0;
  border-radius: var(--dc-r-md);
  background: var(--dc-sage-200);
  color: var(--dc-sage-800);
  padding: 16px 22px;
  font-size: 14px;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--dc-sage-700); }
.woocommerce-error { background: var(--dc-accent-200); color: var(--dc-accent-900); }
.woocommerce-error::before { color: var(--dc-accent-700); }

/* Commande reçue */
.woocommerce ul.order_details {
  background: var(--dc-surface);
  border-radius: var(--dc-r-lg);
  padding: 24px 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.woocommerce ul.order_details li { border: 0; margin: 0; padding: 0; float: none; font-size: 13px; }
.woocommerce ul.order_details li strong { font-family: var(--dc-font-mono); font-size: 16px; }

/* -----------------------------------------------------------------------------
   10. Mon compte
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce-MyAccount-navigation {
  width: 26%;
  padding-right: 28px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block;
  border-radius: var(--dc-r-pill);
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 600;
  color: var(--dc-text-soft);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--dc-n-900);
  color: var(--dc-n-100);
}
.woocommerce-account .woocommerce-MyAccount-content { width: 74%; }

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
  border: 0;
  border-radius: var(--dc-r-lg);
  background: var(--dc-n-100);
  padding: 30px 32px;
  box-shadow: var(--dc-sh-sm);
}
.woocommerce-account .addresses .title h3 { font-size: 18px; }
.woocommerce-account .woocommerce-Address address {
  background: var(--dc-surface);
  border-radius: var(--dc-r-lg);
  padding: 20px 22px;
  font-style: normal;
  font-size: 14px;
}

/* -----------------------------------------------------------------------------
   11. Blogue et pages
   -------------------------------------------------------------------------- */
.blog .ast-article-post,
.archive .ast-article-post,
article.post {
  background: var(--dc-n-100);
  border-radius: var(--dc-r-lg);
  overflow: hidden;
  box-shadow: var(--dc-sh-sm);
  border: 0;
}
.ast-blog-featured-section img,
.post-thumb img { border-radius: 0; }
.entry-title a { color: var(--dc-text); }
.entry-title a:hover { color: var(--dc-accent-700); }
.ast-blog-meta-container,
.entry-meta {
  font-family: var(--dc-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--dc-text-soft);
}
.ast-blog-featured-section .read-more a,
.entry-content .more-link {
  font-weight: 600;
  font-size: 13px;
}
blockquote {
  border: 0;
  border-radius: var(--dc-r-lg);
  background: var(--dc-surface);
  padding: 24px 28px;
  font-family: var(--dc-font-title);
  font-size: 20px;
  line-height: 1.35;
  color: var(--dc-accent-700);
  margin: 28px 0;
}

/* Encadrés réutilisables (classes à ajouter dans Elementor) */
.dc-card {
  background: var(--dc-n-100);
  border-radius: var(--dc-r-lg);
  padding: 26px 28px;
  box-shadow: var(--dc-sh-sm);
}
.dc-card-sand { background: var(--dc-surface); box-shadow: none; }
.dc-card-sage { background: var(--dc-sage-200); color: var(--dc-sage-900, #272e1b); box-shadow: none; }
.dc-card-accent { background: var(--dc-accent-200); color: var(--dc-accent-900); box-shadow: none; }
.dc-round { border-radius: var(--dc-r-pill) !important; overflow: hidden; }
.dc-blob { border-radius: 200px 200px 28px 28px !important; overflow: hidden; }
.dc-kicker {
  display: inline-block;
  border-radius: var(--dc-r-pill);
  background: var(--dc-sage-200);
  color: var(--dc-sage-800);
  padding: 7px 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.dc-washed img { filter: saturate(0.6) contrast(0.85) brightness(1.1); }

/* -----------------------------------------------------------------------------
   12. Pied de page Astra
   -------------------------------------------------------------------------- */
.site-footer,
.ast-footer-overlay,
.site-primary-footer-wrap,
.site-below-footer-wrap {
  background: var(--dc-n-900) !important;
  color: var(--dc-n-200);
  border: 0 !important;
}
.site-footer a,
.site-primary-footer-wrap a,
.site-below-footer-wrap a { color: var(--dc-n-200) !important; }
.site-footer a:hover { color: var(--dc-accent-400) !important; }
.site-footer .widget-title {
  color: var(--dc-n-600);
  font-family: var(--dc-font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.site-below-footer-wrap {
  border-top: 1px solid rgba(249, 244, 237, 0.14) !important;
  font-size: 11px;
  color: var(--dc-n-600);
}

/* Infolettre dans le pied (formulaire simple) */
.dc-newsletter { display: flex; flex-wrap: wrap; gap: 10px; }
.dc-newsletter input[type="email"] {
  flex: 1 1 180px;
  background: transparent;
  border-color: rgba(249, 244, 237, 0.3);
  color: var(--dc-n-100);
}
.dc-newsletter input::placeholder { color: rgba(249, 244, 237, 0.5); }

/* -----------------------------------------------------------------------------
   13. Adaptation tablette et mobile
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .woocommerce ul.products { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 18px; }
  .woocommerce div.product .woocommerce-tabs { padding: 26px 24px; }
  .dc-page-banner { padding: 36px 26px; }
}

@media (max-width: 768px) {
  body { font-size: 16px; }
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px; padding: 14px 16px 0; }
  .woocommerce ul.products li.product .price { padding: 6px 16px 0; font-size: 14px; }
  .woocommerce ul.products li.product .button { margin: 12px 16px 16px; padding: 12px 16px; }

  /* Boutons pleine largeur et zones tactiles de 44 px minimum */
  .woocommerce div.product form.cart .button,
  .woocommerce .checkout-button.button.alt,
  .woocommerce-account .woocommerce-form-login .button { width: 100%; min-height: 50px; }
  .woocommerce .quantity .qty { min-height: 48px; }

  /* Panier en cartes empilées */
  .woocommerce table.shop_table_responsive tr td,
  .woocommerce-page table.shop_table_responsive tr td {
    border-top: 1px solid var(--dc-divider);
    padding: 12px 16px;
    font-size: 14px;
  }
  .woocommerce table.cart img { width: 64px; }

  /* Mon compte : navigation horizontale défilante */
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content { width: 100%; padding-right: 0; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    flex-direction: row;
    overflow-x: auto;
    padding-bottom: 8px;
    margin-bottom: 22px;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li a { white-space: nowrap; }

  .woocommerce div.product .woocommerce-tabs ul.tabs { overflow-x: auto; flex-wrap: nowrap; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li a { white-space: nowrap; }
}

@media (max-width: 480px) {
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .dc-page-banner { padding: 28px 20px; border-radius: var(--dc-r-md); }
  .woocommerce div.product .woocommerce-tabs { padding: 22px 18px; }
  h1, .entry-title { font-size: 30px; }
}

/* Réduction des animations si l'utilisateur le demande */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
