/*
Theme Name:  Hello Elementor Enfant — L'essence d'Alevia
Description: Refonte visuelle Claude Design. Tokens et composants sur mesure.
Template:    hello-elementor
Version:     1.0.0
*/

/* ==================== Tokens (DESIGN-TOKENS.md, verbatim) ==================== */
:root {
  --alv-ink:            #182B3E;
  --alv-ink-soft:       #3A4E62;
  --alv-body:           #5A6878;
  --alv-body-alt:       #4E5E6E;
  --alv-muted:          #64707C; /* audit 03/09 : 3,36:1 -> 4,7:1 */
  --alv-muted-2:        #8C97A4;
  --alv-faint:          #5F6C7B; /* audit 03/09 : 2,39:1 -> 5,0:1 (mentions TVA, disclaimers) */
  --alv-faint-2:        #64707C; /* audit 03/09 : 1,98:1 -> 4,7:1 */
  --alv-quiet:          #6B7886;

  --alv-terra:          #B0754E;
  --alv-terra-dark:     #96603E;
  --alv-terra-light:    #DEB79D;
  --alv-terra-on-navy:  #E2B48C;
  --alv-terra-hint:     #A88C7A;

  --alv-ivory:          #FCF6F0;
  --alv-rose:           #FBEDE6;
  --alv-rose-menu:      #FBF1EA;
  --alv-rose-card:      #FBF3EC;
  --alv-rose-swatch:    #F5E4DA;
  --alv-rose-badge:     #F0DDD2;
  --alv-white:          #FFFFFF;

  --alv-success:        #72956B;
  --alv-success-bg:     #EDF2EA;
  --alv-success-fg:     #4A6B44;

  --alv-line-faint:     rgba(24, 43, 62, .09);
  --alv-line:           rgba(24, 43, 62, .12);
  --alv-line-strong:    rgba(24, 43, 62, .18);
  --alv-line-btn:       rgba(24, 43, 62, .28);
  --alv-line-icon:      rgba(24, 43, 62, .15);
  --alv-line-navy:      rgba(252, 246, 240, .16);

  --alv-font-display: 'Gilda Display', Georgia, 'Times New Roman', serif;
  --alv-font-body:    'Outfit', system-ui, -apple-system, sans-serif;

  --alv-r-img:    2px;
  --alv-r-field:  3px;
  --alv-r-card:   4px;
  --alv-r-pill:   999px;

  --alv-sh-card:     0 1px 0 rgba(24, 43, 62, .08);
  --alv-sh-card-h:   0 20px 40px -20px rgba(24, 43, 62, .34);
  --alv-sh-label:    0 22px 40px -16px rgba(24, 43, 62, .5), 0 2px 6px rgba(24, 43, 62, .16);
  --alv-sh-label-lg: 0 30px 54px -18px rgba(0, 0, 0, .5), 0 3px 10px rgba(0, 0, 0, .2);
  --alv-sh-drawer:   -24px 0 60px -20px rgba(24, 43, 62, .4);
  --alv-sh-bar:      0 -8px 24px -12px rgba(24, 43, 62, .28);

  --alv-sec-y:   clamp(46px, 5vw, 80px);
  --alv-sec-x:   clamp(24px, 4vw, 64px);
  --alv-gap-col: clamp(26px, 4vw, 58px);
  --c: var(--alv-terra);
}

/* ==================== Base ==================== */
body { background: var(--alv-ivory); color: var(--alv-body); font-family: var(--alv-font-body); font-weight: 300; }
h1, h2, h3, h4, .alv-display { font-family: var(--alv-font-display); font-weight: 400 !important; color: var(--alv-ink); text-wrap: balance; }
p { text-wrap: pretty; }
a { color: var(--alv-terra); }
a:hover { color: var(--alv-terra-dark); }
a:focus-visible, button:focus-visible, [role="listitem"]:focus-visible { outline: 2px solid var(--alv-terra); outline-offset: 3px; border-radius: 3px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.alv-surtitre, .alv-surtitre * { font-family: var(--alv-font-body) !important; font-weight: 400 !important; font-size: 10.5px !important; letter-spacing: .24em; text-transform: uppercase; color: var(--alv-terra); }
.alv-filet-avant .elementor-heading-title { display: flex; align-items: center; gap: 12px; }
.alv-filet-avant .elementor-heading-title::before { content: ""; width: 34px; height: 1px; background: var(--alv-terra); }

/* Pastille générique */
.alv-pastille { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--c); flex: none; }
.alv-pastille--12 { width: 12px; height: 12px; }

/* ==================== Boutons ==================== */
.elementor-widget-button .elementor-button,
.alv-btn, .alv-format__carte, ul.products li.product .button, button.single_add_to_cart_button {
  font-family: var(--alv-font-body); font-weight: 400; font-size: 12px; letter-spacing: .15em; text-transform: uppercase;
  border-radius: var(--alv-r-pill); transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
a.alv-btn { display: inline-flex; align-items: center; justify-content: center; text-align: center; }
.elementor-widget-button .elementor-button, .alv-btn--plein, button.single_add_to_cart_button {
  background-color: var(--alv-ink) !important; color: var(--alv-ivory) !important; border: none; padding: 16px 30px; box-shadow: none;
}
.elementor-widget-button .elementor-button:hover, .alv-btn--plein:hover, button.single_add_to_cart_button:hover {
  background-color: var(--alv-ink-soft) !important; transform: none;
}
.alv-ghost .elementor-button, .alv-btn--contour, ul.products li.product .button {
  background: transparent !important; color: var(--alv-ink) !important; border: 1px solid var(--alv-line-btn) !important; padding: 15px 28px;
}
.alv-ghost .elementor-button:hover, .alv-btn--contour:hover, ul.products li.product .button:hover { border-color: var(--alv-ink) !important; background: transparent !important; }
.alv-accent .elementor-button { background-color: var(--alv-terra) !important; }
.alv-accent .elementor-button:hover { background-color: var(--alv-terra-dark) !important; }

/* ==================== Champs ==================== */
.alv-champ input, .alv-champ textarea, .alv-champ select,
.elementor-field-group input, .elementor-field-group textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.wc-block-components-text-input input, .wc-block-components-textarea textarea {
  padding: 14px 16px !important; border: 1px solid var(--alv-line-strong) !important; border-radius: var(--alv-r-field) !important;
  background: var(--alv-white) !important; font-size: 14px !important; font-family: var(--alv-font-body); color: var(--alv-ink-soft);
}
.alv-label, .elementor-field-group label, .woocommerce form .form-row label {
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--alv-muted); margin-bottom: 7px; font-weight: 400;
}
/* Cases à cocher et radios aux couleurs du site */
input[type="checkbox"], input[type="radio"] { accent-color: var(--alv-ink); }
/* Consentement : phrase en casse normale, sans le libellé de champ au-dessus */
.elementor-field-type-acceptance > label { display: none; }
.elementor-field-type-acceptance .elementor-field-subgroup label {
  text-transform: none; letter-spacing: 0; font-size: 13px; color: var(--alv-body); line-height: 1.6; display: flex; gap: 10px; align-items: flex-start; }
/* Bouton d'envoi des formulaires Elementor : pilule encre, largeur au contenu */
.elementor-form .elementor-field-type-submit { align-items: flex-start; }
.elementor-form .elementor-field-type-submit .elementor-button {
  flex: 0 0 auto !important; width: auto !important; align-self: flex-start;
  background: var(--alv-ink) !important; color: var(--alv-ivory) !important; border: none;
  border-radius: var(--alv-r-pill); padding: 16px 34px; font-size: 12px; letter-spacing: .15em; text-transform: uppercase; }
.elementor-form .elementor-field-type-submit .elementor-button:hover { background: var(--alv-ink-soft) !important; }

/* ==================== Header ==================== */
.alv-annonce { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.alv-annonce .sep { opacity: .4; margin: 0 14px; }
.alv-annonce .fort { color: var(--alv-terra-on-navy); }
.alv-header { background: transparent !important; border-bottom: 1px solid var(--alv-line); }
.alv-header::before { content: ""; position: absolute; inset: 0; background: rgba(252, 246, 240, .94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); z-index: -1; }
.alv-header .elementor-nav-menu a { font-family: var(--alv-font-body); font-size: 14px; font-weight: 400; color: var(--alv-ink-soft); }
.alv-header .elementor-nav-menu a:hover, .alv-header .elementor-nav-menu .current-menu-item > a { color: var(--alv-terra); }
.alv-lockup { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.alv-lockup img { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--alv-line-icon); }
.alv-lockup strong { font-family: var(--alv-font-display); font-weight: 400; font-size: 21px; color: var(--alv-ink); line-height: 1; display: block; }
.alv-lockup em { font-style: normal; font-size: 8.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--alv-terra); display: block; margin-top: 4px; }
.alv-ico { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid var(--alv-line-icon); border-radius: 50%; color: var(--alv-ink); background: transparent; }
.alv-ico:hover { border-color: var(--alv-ink); color: var(--alv-ink); }
.alv-ico svg { width: 16px; height: 16px; }
/* Pastille panier (widget Menu Cart) */
.alv-panier .elementor-menu-cart__toggle .elementor-button {
  background: var(--alv-ink) !important; color: var(--alv-ivory) !important; border: none !important;
  border-radius: var(--alv-r-pill) !important; padding: 10px 18px !important; font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
}
.alv-panier .elementor-menu-cart__toggle .elementor-button-icon { color: var(--alv-ivory); font-size: 15px; }
.alv-panier .elementor-button-icon-qty[data-counter]::before { background: var(--alv-terra); border: none; }
/* Méga-menu */
.alv-megamenu { position: absolute; left: 0; right: 0; top: 100%; background: var(--alv-rose-menu); border-bottom: 1px solid var(--alv-line);
  box-shadow: 0 30px 50px -30px rgba(24, 43, 62, .35); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .22s ease, transform .22s ease, visibility .22s; z-index: 60; }
.alv-megamenu.est-ouvert { opacity: 1; visibility: visible; transform: none; }
.alv-megamenu__grille { max-width: 1240px; margin: 0 auto; padding: 34px var(--alv-sec-x); display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 26px; }
.alv-megamenu__col { text-decoration: none; }
.alv-megamenu__col i { display: block; width: 38px; height: 3px; background: var(--c); margin-bottom: 12px; }
.alv-megamenu__col strong { font-family: var(--alv-font-display); font-weight: 400; font-size: 19px; color: var(--alv-ink); display: block; margin-bottom: 6px; }
.alv-megamenu__col span { font-size: 12.5px; line-height: 1.55; color: var(--alv-muted); }
.alv-megamenu__actions { display: flex; flex-direction: column; gap: 10px; justify-content: center; }
/* Panneau mobile */
.alv-panneau { position: fixed; inset: 0; background: var(--alv-ivory); z-index: 90; padding: 24px; overflow: auto; display: none; }
.alv-panneau.est-ouvert { display: block; }
.alv-panneau__groupe { margin-bottom: 26px; }
.alv-panneau__etiquette { font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--alv-terra); margin-bottom: 8px; }
.alv-panneau__ligne { display: flex; align-items: center; gap: 12px; min-height: 48px; border-bottom: 1px solid var(--alv-line-faint);
  color: var(--alv-ink); text-decoration: none; font-size: 15px; }
.alv-panneau__ligne .compte { margin-left: auto; color: var(--alv-faint-2); font-size: 12px; }
/* !important requis : le kit stylise tous les <button> (fond encre, pilule, padding 16/30) */
.alv-burger { display: inline-flex !important; flex-direction: column; gap: 4px; width: 36px; height: 36px; justify-content: center; align-items: center;
  border: 1px solid var(--alv-line-icon) !important; border-radius: 50% !important; background: transparent !important;
  padding: 0 !important; box-shadow: none !important; flex: 0 0 auto; }
.alv-burger i { width: 15px; height: 1.5px; background: var(--alv-ink); }
button.alv-ico { background: transparent !important; color: var(--alv-ink) !important; padding: 0 !important;
  border-radius: 50% !important; border: 1px solid var(--alv-line-icon) !important; font-size: 15px; box-shadow: none !important; }

/* Header mobile : une seule ligne compacte (burger | lockup réduit | panier rond) */
@media (max-width: 767px) {
  /* Elementor repasse tous les e-con en flex-wrap:wrap sous 767 px via --flex-wrap-mobile.
     Le contenu d'un conteneur boxed vit dans .e-con-inner, et les colonnes gardent le
     padding par défaut (10 px) : on neutralise les deux. */
  .alv-header, .alv-header .e-con { --flex-wrap-mobile: nowrap; }
  .alv-header > .e-con-inner { flex-wrap: nowrap !important; row-gap: 0; padding: 10px 16px !important; }
  .alv-header { padding: 0 !important; }
  .alv-header > .e-con-inner > .e-con { width: auto !important; padding: 0; flex-wrap: nowrap !important; }
  .alv-header > .e-con-inner > .e-con:first-child { flex: 1 1 auto; min-width: 0; }
  .alv-header > .e-con-inner > .e-con:last-of-type { flex: 0 0 auto; }
  .alv-header .alv-mega-hote { display: none; }
  .alv-lockup { gap: 8px; }
  .alv-lockup img { width: 34px; height: 34px; }
  .alv-lockup strong { font-size: 17px; white-space: nowrap; }
  .alv-lockup em { display: none; }
  /* Panier : cercle encre 38 px, icône + badge seuls (le montant est masqué) */
  .alv-panier .elementor-menu-cart__toggle .elementor-button {
    width: 38px; height: 38px; padding: 0 !important; border-radius: 50% !important;
    display: inline-grid; place-items: center; min-width: 0;
  }
  .alv-panier .elementor-menu-cart__toggle .elementor-button-text { display: none; }
}

/* ==================== Cartes produit ==================== */
.alv-carte { display: flex; flex-direction: column; background: var(--alv-white); border-radius: var(--alv-r-card);
  box-shadow: var(--alv-sh-card); overflow: hidden; text-decoration: none; transition: box-shadow .2s ease; }
.alv-carte:hover { box-shadow: var(--alv-sh-card-h); }
.alv-carte__visuel { position: relative; aspect-ratio: 4 / 5; max-height: 360px; display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(95% 72% at 50% 14%, rgba(255,255,255,.30), transparent 72%),
              linear-gradient(168deg, var(--c) 0%, color-mix(in srgb, var(--c) 85%, transparent) 100%); }
.alv-carte__visuel img, .alv-carte__etiquette { width: 84% !important; height: auto !important; border-radius: var(--alv-r-img); box-shadow: var(--alv-sh-label); aspect-ratio: auto !important; object-fit: contain; }
.alv-carte__badge { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--alv-ink); color: var(--alv-ivory);
  font-size: 10px; letter-spacing: .14em; text-transform: uppercase; padding: 6px 12px; border-radius: var(--alv-r-pill); }
.alv-carte__badge--rupture { background: var(--alv-terra-dark); }
.alv-rupture { padding: 14px 18px; background: var(--alv-rose-card, #FBEDE6); border-left: 3px solid var(--alv-terra-dark); font-size: 14px; color: var(--alv-ink); margin: 16px 0 4px; }
.alv-produit-rupture .alv-fiche-achat, .alv-produit-rupture .alv-barre-achat { display: none !important; }
.alv-carte__corps { display: flex; flex-direction: column; gap: 7px; padding: 18px; }
.alv-carte__univers { display: inline-flex; align-items: center; gap: 7px; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--alv-terra-hint); }
.alv-carte__nom { font-family: var(--alv-font-display); font-weight: 400; font-size: 19px; color: var(--alv-ink); line-height: 1.2; }
.alv-carte__soustitre { font-style: normal; font-size: 12.5px; color: var(--alv-muted-2); line-height: 1.5; }
.alv-carte__pied { display: flex; align-items: baseline; justify-content: space-between; margin-top: 6px; }
.alv-carte__prix { font-family: var(--alv-font-display); font-size: 17px; color: var(--alv-ink); }
.alv-carte__cta { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--alv-terra); }
/* La boucle WooCommerce standard (produits liés) prend la même livrée */
ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; margin: 0 !important; }
ul.products::before, ul.products::after { display: none; }
ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; display: flex; flex-direction: column;
  background: var(--alv-white); border-radius: var(--alv-r-card); box-shadow: var(--alv-sh-card); overflow: hidden; transition: box-shadow .2s ease; text-align: left; position: relative; padding: 0 0 16px; }
ul.products li.product:hover { box-shadow: var(--alv-sh-card-h); transform: none; }
ul.products li.product a img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 0; box-shadow: none; margin: 0; width: 100%; }
ul.products li.product .alv-carte__badge { top: 12px; left: 12px; }
ul.products li.product .alv-carte__univers { padding: 14px 16px 0; }
ul.products li.product .woocommerce-loop-product__title { font-family: var(--alv-font-display); font-weight: 400; font-size: 19px; color: var(--alv-ink); padding: 4px 16px 0; }
ul.products li.product .woocommerce-loop-product__title::after { display: none; }
ul.products li.product .alv-carte__soustitre { padding: 0 16px; margin: 2px 0 4px; }
ul.products li.product .price { font-family: var(--alv-font-display) !important; font-size: 17px !important; color: var(--alv-ink) !important; padding: 0 16px; margin: 0 0 10px; }
ul.products li.product .button { margin: 0 16px; text-align: center; }

/* ==================== Index d'apothicaire ==================== */
.alv-index { display: flex; flex-direction: column; }
.alv-index__entete { display: flex; gap: 12px; padding: 10px; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--alv-faint-2); border-bottom: 1px solid var(--alv-line); }
.alv-index__entete span:nth-child(1) { width: 26px; }
.alv-index__entete span:nth-child(2) { width: 12px; }
.alv-index__entete span:nth-child(3) { flex: 1 1 210px; }
.alv-index__entete span:nth-child(4) { flex: 0 1 150px; }
.alv-index__entete span:nth-child(5) { flex: 0 1 110px; }
.alv-index__entete span:nth-child(6) { width: 84px; }
.alv-index__entete span:nth-child(7) { width: 20px; }
.alv-index__ligne { display: flex; align-items: center; gap: 12px; padding: 16px 10px; border-bottom: 1px solid var(--alv-line-faint);
  text-decoration: none; transition: background-color .18s ease; }
.alv-index__ligne:hover { background: color-mix(in srgb, var(--c) 8%, transparent); }
.alv-index__num { width: 26px; font-family: var(--alv-font-display); font-size: 15px; color: var(--alv-faint-2); }
.alv-index__id { flex: 1 1 210px; display: flex; flex-direction: column; gap: 2px; }
.alv-index__id strong { font-family: var(--alv-font-display); font-weight: 400; font-size: clamp(17px, 1.7vw, 21px); color: var(--alv-ink); }
.alv-index__id em { font-style: normal; font-size: 12px; color: var(--alv-muted-2); }
.alv-index__plante { flex: 0 1 150px; font-size: 13px; color: var(--alv-body); }
.alv-index__moment { flex: 0 1 110px; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--alv-muted); }
.alv-index__prix { width: 84px; font-family: var(--alv-font-display); font-size: 16px; color: var(--alv-ink); white-space: nowrap; }
.alv-index__fleche { width: 20px; color: var(--alv-terra); }
@media (max-width: 767px) {
  .alv-index__entete, .alv-index__plante, .alv-index__moment { display: none; }
  .alv-index__ligne { gap: 10px; padding: 14px 4px; }
}
/* Bascule liste/grille */
.alv-catalogue__outils { display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 14px; }
.alv-bascule { border: 1px solid var(--alv-line-btn); background: transparent; color: var(--alv-ink); border-radius: var(--alv-r-pill);
  padding: 8px 18px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.alv-bascule[aria-pressed="true"] { background: var(--alv-ink); color: var(--alv-ivory); border-color: var(--alv-ink); }
.alv-catalogue .alv-grille { display: none; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px; }
.alv-catalogue[data-vue="grille"] .alv-grille { display: grid; }
.alv-catalogue[data-vue="grille"] .alv-index { display: none; }

/* ==================== Nuancier ==================== */
.alv-nuancier { display: flex; height: clamp(215px, 24vw, 300px); border-radius: var(--alv-r-card); overflow: hidden; }
.alv-nuancier__col { flex: 1 1 0; background: var(--c); display: flex; flex-direction: column; justify-content: space-between;
  padding: 14px 10px; text-decoration: none; transition: flex-grow .3s ease; min-width: 0; }
.alv-nuancier__col:hover, .alv-nuancier__col:focus-visible { flex-grow: 2.1; }
.alv-nuancier__num { font-family: var(--alv-font-display); font-size: 12px; color: rgba(255, 255, 255, .75); }
.alv-nuancier__nom { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--alv-font-display); font-size: 15px;
  color: var(--alv-white); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-height: 100%; }
/* Mobile : 2 rangées de 5 colonnes, plus d'air pour les noms */
@media (max-width: 767px) {
  .alv-nuancier { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; height: auto; }
  .alv-nuancier__col { height: 240px; }
  .alv-nuancier__nom { font-size: 16px; }
  .alv-nuancier__num { font-size: 13px; }
}
/* Rail vertical de pastilles */
.alv-rail { display: flex; flex-direction: column; gap: 10px; }
.alv-rail__pastille { position: relative; width: 13px; height: 13px; }
.alv-rail__pastille::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--c);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .55); transition: transform .2s ease; }
.alv-rail__pastille:focus-visible::before { transform: scale(1.35); }
/* Infobulle du rail : nom de la tisane, au-dessus de la pastille (rails horizontaux) */
.alv-rail__pastille::after { content: attr(data-nom); position: absolute; left: 50%; bottom: calc(100% + 11px);
  transform: translateX(-50%) translateY(4px); background: var(--alv-ink); color: var(--alv-ivory);
  font-family: var(--alv-font-body); font-weight: 300; font-size: 11.5px; letter-spacing: .06em; line-height: 1;
  padding: 8px 13px; border-radius: var(--alv-r-pill); white-space: nowrap; box-shadow: 0 6px 18px rgba(24, 43, 62, .22);
  opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .18s ease, transform .18s ease, visibility .18s; z-index: 6; }
.alv-rail__pastille:focus-visible::after { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
/* Sur le héro (rail vertical), l'infobulle sort à gauche de la pastille */
.alv-hero-photo .alv-rail__pastille::after { left: auto; bottom: auto; right: calc(100% + 12px); top: 50%;
  transform: translateY(-50%) translateX(4px); }
.alv-hero-photo .alv-rail__pastille:focus-visible::after { transform: translateY(-50%) translateX(0); }
/* Survol réservé aux appareils qui en ont un : au doigt, un hover simulé retarderait la
   navigation (iOS exige alors un second tap), donc aucune révélation au :hover en tactile */
@media (hover: hover) {
  .alv-rail__pastille:hover::before { transform: scale(1.35); }
  .alv-rail__pastille:hover::after { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
  .alv-hero-photo .alv-rail__pastille:hover::after { transform: translateY(-50%) translateX(0); }
}
/* Au doigt : cible de 26 px (point visuel 14 px, halo conservé) */
@media (pointer: coarse) {
  .alv-rail__pastille { width: 26px; height: 26px; }
  .alv-rail__pastille::before { inset: 6px; }
  .alv-hero-photo .alv-rail { gap: 6px; right: 12px; }
}

/* ==================== Fiche produit ==================== */
/* Galerie : grand visuel carré sur fond teinté, trois états (étiquette, photo, vidéo) */
.alv-fiche-visuel { position: relative; aspect-ratio: 1 / 1; display: grid; place-items: center; border-radius: var(--alv-r-card); overflow: hidden;
  background: radial-gradient(95% 72% at 50% 14%, color-mix(in srgb, var(--alv-white) 30%, transparent), transparent 72%),
              linear-gradient(168deg, var(--c) 0%, color-mix(in srgb, var(--c) 85%, transparent) 100%); }
.alv-fiche-visuel img { width: 76%; height: auto; border-radius: var(--alv-r-img); box-shadow: var(--alv-sh-label-lg); }
.alv-fiche-visuel.est-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none; }
.alv-fiche-visuel.est-video img { display: none; }
.alv-fiche-visuel video { display: none; position: absolute; inset: 0; margin: auto; height: 100%; width: auto; max-width: 100%; }
.alv-fiche-visuel.est-video video { display: block; }
/* Vignettes : boutons. Spécificité 0,2,0 devant le kit (.elementor-kit-8 button, 0,1,1) et le reset du parent (button, 0,0,1) ;
   :hover/:focus en 0,3,0 devant .elementor-kit-8 button:hover (0,2,1). Pas de !important. */
.alv-vignettes { display: grid; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 10px; margin-top: 12px; }
.alv-vignettes .alv-vignette { position: relative; display: block; width: 100%; padding: 0; margin: 0; overflow: hidden; line-height: 0;
  appearance: none; -webkit-appearance: none; background: transparent; border: 1px solid var(--alv-line); border-radius: var(--alv-r-field);
  box-shadow: none; cursor: pointer; transition: border-color .2s; -webkit-tap-highlight-color: transparent; }
.alv-vignettes .alv-vignette:hover, .alv-vignettes .alv-vignette:focus { background: transparent; border-color: var(--alv-line-strong); }
.alv-vignettes .alv-vignette.est-active, .alv-vignettes .alv-vignette.est-active:hover { border: 1.5px solid var(--alv-ink); }
.alv-vignette img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
/* Vignette vidéo : voile encre à 35 %, pictogramme lecture blanc (cercle filet + triangle) */
.alv-vignette--video::before { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--alv-ink) 35%, transparent); }
.alv-vignette__lecture { position: absolute; inset: 0; margin: auto; width: 36%; height: 36%; pointer-events: none; }
.alv-vignette__lecture circle { fill: none; stroke: var(--alv-white); stroke-width: 2; }
.alv-vignette__lecture path { fill: var(--alv-white); }
@media (max-width: 767px) {
  .alv-vignettes { grid-template-columns: repeat(auto-fit, minmax(48px, 1fr)); gap: 8px; }
  /* Vidéo active : cadre 9:16 pour supprimer les bandes teintées de chaque côté */
  .alv-fiche-visuel.est-video { aspect-ratio: 478 / 850; }
  .alv-fiche-visuel.est-video video { width: 100%; height: 100%; object-fit: cover; }
}
.alv-fiche-univers { display: inline-flex; align-items: center; gap: 8px; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--alv-terra-dark); } /* audit 03/09 : 2,92:1 -> 4,85:1 */
.alv-fiche-univers .alv-pastille { width: 9px; height: 9px; }
.alv-fiche-prix .price, .alv-fiche-prix { font-family: var(--alv-font-display) !important; font-size: clamp(26px, 3vw, 34px) !important; color: var(--alv-ink) !important; }
.alv-mention-tva { font-size: 11.5px; color: var(--alv-faint); margin: 6px 0 0; }
/* Sélecteur de format */
.alv-format { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 16px 0 4px; }
.alv-format__carte { position: relative; text-align: left; background: var(--alv-white); border: 1px solid var(--alv-line-strong);
  border-radius: var(--alv-r-card); padding: 16px; cursor: pointer; display: flex; flex-direction: column; gap: 4px; letter-spacing: 0; text-transform: none; }
.alv-format__carte.est-choisie { border: 1.5px solid var(--alv-ink); box-shadow: 0 8px 20px -14px rgba(24,43,62,.4); }
.alv-format__carte strong { font-family: var(--alv-font-body); font-weight: 500; font-size: 14px; color: var(--alv-ink); }
.alv-format__carte em { font-style: normal; font-size: 12px; color: var(--alv-muted); }
.alv-format__prix { font-family: var(--alv-font-display); font-size: 18px; color: var(--alv-ink); margin-top: 4px; }
.alv-format__badge { position: absolute; top: -9px; right: 12px; background: var(--alv-rose-badge); color: var(--alv-terra-dark);
  font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; padding: 4px 10px; border-radius: var(--alv-r-pill); }
/* Formulaire d'achat natif : le select est piloté, la table masquée */
.alv-fiche-achat .variations, .alv-fiche-achat .woocommerce-variation-description { display: none !important; }
.alv-fiche-achat form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.alv-fiche-achat .woocommerce-variation-price { display: none; }
.alv-fiche-achat .quantity .qty { width: 76px; padding: 14px 8px; border: 1px solid var(--alv-line-strong); border-radius: var(--alv-r-pill);
  text-align: center; font-family: var(--alv-font-body); font-size: 14px; background: var(--alv-white); }
.alv-fiche-achat button.single_add_to_cart_button { flex: 1 1 auto; padding: 17px 30px !important; width: auto; margin: 0; }
.alv-reassurances { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 18px; margin-top: 18px;
  font-size: 12px; color: var(--alv-quiet); }
.alv-reassurances span { display: flex; gap: 8px; align-items: baseline; }
.alv-reassurances span::before { content: "·"; color: var(--alv-terra); }
/* Composition en barres */
.alv-compo { display: flex; flex-direction: column; gap: 18px; }
.alv-compo__tete { display: flex; justify-content: space-between; align-items: baseline; }
.alv-compo__tete strong { font-family: var(--alv-font-body); font-weight: 500; font-size: 14px; color: var(--alv-ink); }
.alv-compo__pct { font-family: var(--alv-font-display); font-size: 17px; color: var(--c); }
.alv-compo__barre { height: 4px; border-radius: 2px; background: rgba(24, 43, 62, .08); margin: 8px 0 6px; overflow: hidden; }
.alv-compo__barre i { display: block; height: 100%; background: var(--c); border-radius: 2px; }
.alv-compo__ligne p { font-size: 12.5px; color: var(--alv-muted); margin: 0; }
/* Encarts */
.alv-encart { background: var(--alv-rose-card); border-radius: var(--alv-r-card); padding: 22px 24px; font-size: 13.5px; line-height: 1.65; color: var(--alv-quiet); }
.alv-encart--precautions { border-left: 2px solid var(--c); }
.alv-encart h3, .alv-encart h4 { font-size: 15px; margin: 0 0 8px; }
.alv-disclaimer { font-style: italic; font-size: 12.5px; color: var(--alv-faint); }
/* Caractéristiques */
.alv-carac { display: flex; flex-direction: column; margin: 0; }
.alv-carac > div { display: flex; justify-content: space-between; gap: 18px; padding: 12px 2px; border-bottom: 1px solid var(--alv-line-faint); }
.alv-carac dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--alv-muted); }
.alv-carac dd { margin: 0; font-size: 13.5px; color: var(--alv-ink-soft); text-align: right; }
/* Barre d'achat mobile */
.alv-barre-achat { display: none; }
@media (max-width: 767px) {
  /* z-index sous le header (70) : le mini-panier vit dans le contexte d'empilement du header
     et doit recouvrir cette barre quand il est ouvert */
  body.single-product .alv-barre-achat { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; align-items: center; gap: 12px;
    background: rgba(252, 246, 240, .97); backdrop-filter: blur(10px); border-top: 1px solid var(--alv-line); box-shadow: var(--alv-sh-bar); padding: 12px 16px; }
  body.single-product { padding-bottom: 86px; }
  .alv-barre-achat strong { font-family: var(--alv-font-display); font-weight: 400; font-size: 15px; color: var(--alv-ink); flex: 1; }
  .alv-barre-achat .total { font-family: var(--alv-font-display); font-size: 17px; color: var(--alv-ink); }
}

/* ==================== Mini-panier (side cart Elementor) ==================== */
.elementor-menu-cart__container { background: rgba(24, 43, 62, .42) !important; backdrop-filter: blur(2px); }
.elementor-menu-cart__main { width: min(100%, 396px) !important; max-width: none !important; background: var(--alv-ivory) !important;
  box-shadow: var(--alv-sh-drawer); padding: 0 !important; display: flex; flex-direction: column; }
.elementor-menu-cart__header { padding: 20px 24px; border-bottom: 1px solid var(--alv-line); }
.elementor-menu-cart__header .elementor-menu-cart__toggle_button { color: var(--alv-ink); }
.alv-jauge { background: var(--alv-rose); padding: 14px 24px; }
.alv-jauge p { font-size: 12px; color: var(--alv-ink-soft); margin: 0 0 8px; }
.alv-jauge.est-atteinte p { color: var(--alv-success-fg); }
.alv-jauge__barre { height: 4px; border-radius: 2px; background: rgba(24, 43, 62, .1); overflow: hidden; }
.alv-jauge__barre i { display: block; height: 100%; background: var(--alv-success); }
.elementor-menu-cart__products { padding: 8px 24px; }
.elementor-menu-cart__product { border-bottom: 1px solid var(--alv-line-faint); }
.elementor-menu-cart__product-name a { font-family: var(--alv-font-display); font-size: 16px; color: var(--alv-ink); }
.elementor-menu-cart__product-image img { border-radius: var(--alv-r-field); }
.elementor-menu-cart__footer-buttons .elementor-button--checkout { background: var(--alv-ink) !important; color: var(--alv-ivory) !important; border-radius: var(--alv-r-pill) !important; }
.elementor-menu-cart__footer-buttons .elementor-button--view-cart { background: transparent !important; color: var(--alv-ink) !important; border: 1px solid var(--alv-line-btn) !important; border-radius: var(--alv-r-pill) !important; }

/* ==================== Panier & caisse (blocs) ==================== */
/* Le gabarit par défaut du thème limite le contenu à 800 px : trop étroit pour la caisse et le compte.
   !important requis : le réglage « largeur de contenu » de Hello imprime un style en ligne. */
body.woocommerce-cart .site-main, body.woocommerce-checkout .site-main, body.woocommerce-account .site-main,
body.woocommerce-cart .page-content, body.woocommerce-checkout .page-content, body.woocommerce-account .page-content {
  max-width: 1240px !important; margin-left: auto; margin-right: auto;
}
.alv-etapes { display: flex; justify-content: center; gap: 10px; align-items: center; font-size: 11px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--alv-faint); margin: 26px 0 8px; }
.alv-etapes strong { color: var(--alv-ink); font-weight: 400; }
.alv-etapes .fait { color: var(--alv-terra-dark); }
.alv-etapes i { width: 26px; height: 1px; background: var(--alv-line-strong); }
.woocommerce-order-received .alv-etapes { display: none; }
/* Bandeaux de notice WooCommerce aux couleurs du site (le bleu par défaut jure) */
.wc-block-components-notice-banner { border-radius: var(--alv-r-card) !important; font-family: var(--alv-font-body); }
.wc-block-components-notice-banner.is-info { background: var(--alv-rose-card) !important; border-color: var(--alv-line) !important; color: var(--alv-ink) !important; }
.wc-block-components-notice-banner.is-info > svg { fill: var(--alv-terra) !important; }
.wc-block-components-notice-banner a.button, .wc-block-components-notice-banner button:not(.wc-block-components-button) {
  background: transparent !important; border: 1px solid var(--alv-line-btn) !important; color: var(--alv-ink) !important;
  border-radius: var(--alv-r-pill) !important; padding: 10px 18px !important; font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
}
.wc-block-components-notice-banner a.button:hover, .wc-block-components-notice-banner button:not(.wc-block-components-button):hover {
  border-color: var(--alv-ink) !important; background: transparent !important; }
/* Le thème parent élargit .alignwide de 80 px de chaque côté : le bloc Panier/Caisse débordait en mobile */
.wp-block-woocommerce-cart.alignwide, .wp-block-woocommerce-checkout.alignwide { margin-inline: 0; }
/* Caisse : noms de produits du « Résumé de la commande » rendus cliquables par alevia.js */
.wc-block-components-order-summary-item__description .wc-block-components-product-name[data-alv-lien] { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
.wc-block-components-order-summary-item__description .wc-block-components-product-name[data-alv-lien]:hover { color: var(--alv-terra); }
.wc-block-cart, .wc-block-checkout { font-family: var(--alv-font-body); }
.wp-block-woocommerce-cart .wc-block-components-sidebar .wc-block-cart__totals-title,
.wc-block-checkout__sidebar .wc-block-components-panel__button { font-family: var(--alv-font-display) !important; font-weight: 400 !important; }
.wc-block-cart-item__product .wc-block-components-product-name { font-family: var(--alv-font-display); font-size: 16px; color: var(--alv-ink) !important; }
.wc-block-cart-item__image img { border-radius: var(--alv-r-field); }
.wc-block-components-sidebar { background: var(--alv-white); border-radius: var(--alv-r-card); box-shadow: var(--alv-sh-card); padding: 8px 6px !important; }
.wc-block-components-button { background: var(--alv-ink) !important; color: var(--alv-ivory) !important; border-radius: var(--alv-r-pill) !important;
  font-family: var(--alv-font-body) !important; font-size: 12px !important; letter-spacing: .15em; text-transform: uppercase; border: none !important; box-shadow: none !important; }
.wc-block-components-button:hover { background: var(--alv-ink-soft) !important; }
.wc-block-components-checkout-step__heading .wc-block-components-title,
.wc-block-components-checkout-step__title { font-family: var(--alv-font-display) !important; font-weight: 400 !important; font-size: 22px !important; color: var(--alv-ink) !important; }
.wc-block-components-checkout-step { border-bottom: 1px solid var(--alv-line); padding-bottom: 22px; }
.wc-block-components-radio-control__option { border: 1px solid var(--alv-line-strong); border-radius: var(--alv-r-card); padding: 14px 16px !important; margin-bottom: 10px; background: var(--alv-white); }
.wc-block-components-radio-control__option-checked { border: 1.5px solid var(--alv-ink); }
.alv-mention-bloc { text-align: center; font-size: 11.5px; color: var(--alv-faint); margin: 10px 0 40px; }

/* ==================== Espace client ==================== */
.woocommerce-MyAccount-navigation { width: 230px; float: none; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 13px 18px; border-radius: var(--alv-r-field); color: var(--alv-ink-soft);
  text-decoration: none; font-size: 13.5px; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--alv-ink); color: var(--alv-ivory); }
.woocommerce-MyAccount-navigation li:last-child a { color: var(--alv-muted-2); }
.woocommerce-account .woocommerce { max-width: 1200px; margin: 0 auto; padding: 30px var(--alv-sec-x) 70px; }
/* La mise en page nav + contenu ne vaut que connecté : déconnecté, la notice et le
   formulaire de connexion doivent rester en pleine largeur, pas en colonnes flex */
.woocommerce-account.logged-in .woocommerce { display: flex; gap: 40px; align-items: flex-start; }
.woocommerce-MyAccount-content { flex: 1; }
.alv-etat { display: inline-block; white-space: nowrap; padding: 6px 13px; border-radius: var(--alv-r-pill); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.alv-etat--processing { background: var(--alv-rose); color: var(--alv-terra-dark); }
.alv-etat--completed { background: var(--alv-success-bg); color: var(--alv-success-fg); }
.alv-etat--cancelled { background: rgba(24, 43, 62, .07); color: var(--alv-muted); }
.alv-compte-carte { background: var(--alv-white); border-radius: var(--alv-r-card); box-shadow: var(--alv-sh-card); padding: 24px; margin-bottom: 22px; }
.alv-compte-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px; margin-bottom: 22px; }
.alv-compte-chiffres > div { background: var(--alv-rose-card); border-radius: var(--alv-r-card); padding: 18px; text-align: center; }
.alv-compte-chiffres strong { font-family: var(--alv-font-display); font-weight: 400; font-size: 26px; color: var(--alv-ink); display: block; }
.alv-compte-chiffres span { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--alv-muted); }
.alv-progression { height: 4px; border-radius: 2px; background: rgba(24, 43, 62, .08); overflow: hidden; margin: 10px 0; }
.alv-progression i { display: block; height: 100%; background: var(--c); }
@media (max-width: 900px) { .woocommerce-account.logged-in .woocommerce { flex-direction: column; } .woocommerce-MyAccount-navigation { width: 100%; } }

/* ==================== Accordéon, témoignages, sections ==================== */
/* Accordéon en liste à filets, comme la maquette (pas de cartes) */
.elementor-accordion { border-top: 1px solid var(--alv-line); }
.elementor-accordion .elementor-accordion-item { background: transparent; border: none !important; border-bottom: 1px solid var(--alv-line) !important; border-radius: 0; margin-bottom: 0; }
.elementor-accordion .elementor-tab-title { display: flex; align-items: center; justify-content: space-between; gap: 18px;
  font-family: var(--alv-font-display) !important; font-weight: 400 !important; font-size: 18px; color: var(--alv-ink) !important; padding: 20px 4px !important; }
.elementor-accordion .elementor-tab-title a, .elementor-accordion .elementor-tab-title.elementor-active a { color: var(--alv-ink) !important; }
.elementor-accordion .elementor-accordion-icon { order: 2; flex: 0 0 auto; width: 26px !important; height: 26px; border-radius: 50%;
  border: 1px solid rgba(176, 117, 78, .4); color: var(--alv-terra) !important; display: grid; place-items: center; font-size: 12px; }
.elementor-accordion .elementor-accordion-icon i { color: var(--alv-terra); }
.elementor-accordion .elementor-accordion-icon svg { width: 11px; height: 11px; fill: var(--alv-terra); }
.elementor-accordion .elementor-tab-content { font-size: 14px; color: var(--alv-body); border-top: none !important; padding: 0 44px 22px 4px !important; max-width: 70ch; }
/* Pastilles d'engagement (carte « Olivia vous conseille ») */
.alv-pills { display: flex; gap: 8px; flex-wrap: wrap; margin: 18px 0 0; padding: 0; list-style: none; }
.alv-pills span { padding: 7px 13px; border-radius: var(--alv-r-pill); background: var(--alv-rose); font-size: 11px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--alv-terra-dark); }
.alv-temoignage { background: var(--alv-white); border-radius: var(--alv-r-card); box-shadow: var(--alv-sh-card); padding: 26px; }
.alv-temoignage .etoiles { color: var(--alv-terra-dark); letter-spacing: 3px; } /* audit 03/09 : 1,72:1 -> 4,85:1 */
.alv-note-legere { font-size: 12px; color: var(--alv-faint); }
/* Bande Instagram sans gouttière */
.alv-insta { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0 !important; }
.alv-insta .e-con, .alv-insta > div { padding: 0 !important; }
.alv-insta img { display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 0 !important; }
@media (max-width: 767px) { .alv-insta { grid-template-columns: repeat(3, 1fr); } }
/* Chiffres (bande atelier) */
.alv-chiffres { display: flex; gap: clamp(20px, 4vw, 44px); }
.alv-chiffres strong { font-family: var(--alv-font-display); font-weight: 400; font-size: clamp(24px, 3vw, 34px); color: var(--alv-white); display: block; }
.alv-chiffres span { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(252, 246, 240, .72); }
/* Engagements numérotés */
.alv-engagement { text-align: center; max-width: 26ch; margin: 0 auto; }
.alv-engagement i { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto 12px; border-radius: 50%;
  background: var(--alv-rose-swatch); font-family: var(--alv-font-display); font-style: normal; font-size: 14px; color: var(--alv-terra-dark); }
.alv-engagement strong { display: block; font-family: var(--alv-font-body); font-weight: 500; font-size: 13.5px; color: var(--alv-ink); margin-bottom: 4px; }
.alv-engagement span { font-size: 12.5px; color: var(--alv-muted); line-height: 1.6; }

/* ==================== Pages (bandeaux, chapitres) ==================== */
.alv-bandeau-titre h1 { font-size: clamp(34px, 7.4vw, 56px); }
.alv-chapitre-num { font-family: var(--alv-font-display); font-size: 14px; color: var(--alv-terra); display: flex; align-items: center; gap: 10px; }
.alv-chapitre-num::after { content: ""; width: 28px; height: 1px; background: var(--alv-terra); }
.alv-citation, .alv-citation p { font-family: var(--alv-font-display); font-style: italic; font-size: clamp(22px, 4.4vw, 30px); line-height: 1.5; color: var(--alv-ivory); }
.alv-deonto { background: var(--alv-rose-card); border-left: 2px solid var(--alv-terra); border-radius: 0 var(--alv-r-card) var(--alv-r-card) 0; padding: 18px 22px; font-size: 13px; color: var(--alv-quiet); }
.alv-deonto p { margin: 0; }
/* Pages légales (contenu simple) */
body.page-template-default:not(.elementor-page) main, body.page-template-default:not(.elementor-page) .page-content { max-width: 800px; margin-inline: auto; padding: 42px 24px 90px; }
body.page-template-default:not(.elementor-page) h1 { font-size: 40px; margin-bottom: 10px; }
body.page-template-default:not(.elementor-page) h2 { font-size: 24px; margin: 32px 0 10px; }
body.page-template-default:not(.elementor-page) p, body.page-template-default:not(.elementor-page) li { font-size: 15px; line-height: 1.75; color: var(--alv-body); }

/* ==================== Footer ==================== */
.alv-footer { background: var(--alv-ink) !important; }
.alv-footer .alv-col-titre, .alv-footer h5 { font-family: var(--alv-font-display) !important; font-weight: 400 !important; font-size: 16px; color: var(--alv-terra-on-navy) !important; }
.alv-footer a, .alv-footer .elementor-icon-list-text { color: rgba(252, 246, 240, .78) !important; font-size: 13.5px; }
.alv-footer a:hover .elementor-icon-list-text, .alv-footer a:hover { color: var(--alv-ivory) !important; }
.alv-footer .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-icon { display: none; }
.alv-footer .alv-baseline-footer { font-family: var(--alv-font-display); font-style: italic; font-size: 19px; color: var(--alv-ivory); }
.alv-footer .alv-mention { font-size: 11.5px; color: rgba(252, 246, 240, .55); }
/* Marques ombrelles : liens discrets, hérités de la couleur du texte */
.alv-ombrelle a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); }
.alv-ombrelle a:hover, .alv-ombrelle a:focus-visible { color: var(--alv-terra); text-decoration-color: currentColor; }
.alv-footer .alv-ombrelle a:hover, .alv-footer .alv-ombrelle a:focus-visible { color: var(--alv-terra-on-navy); }
.alv-footer .alv-ico { border-color: var(--alv-line-navy); color: var(--alv-ivory); }
.alv-footer-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 34px 26px; max-width: 1240px; margin: 0 auto; }
/* Mobile : 2 colonnes de liens par ligne, la colonne de marque en pleine largeur */
@media (max-width: 767px) {
  .alv-footer-grille { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
  .alv-footer-grille .col.marque { grid-column: 1 / -1; }
}
.alv-footer-grille .col > * { display: block; }
.alv-footer-grille .titre { font-family: var(--alv-font-display); font-size: 16px; color: var(--alv-terra-on-navy); margin-bottom: 14px; }
.alv-footer-grille a { color: rgba(252, 246, 240, .78); text-decoration: none; font-size: 13.5px; line-height: 2.1; }
.alv-footer-grille a:hover { color: var(--alv-ivory); }
.alv-footer-grille .marque img { width: 58px; height: 58px; border-radius: 50%; border: 1px solid var(--alv-line-navy); }
.alv-footer-grille .socials { display: flex; gap: 10px; margin-top: 14px; }
.alv-footer-bas { max-width: 1240px; margin: 34px auto 0; padding-top: 18px; border-top: 1px solid var(--alv-line-navy);
  font-size: 12px; color: rgba(252, 246, 240, .55); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
/* Nav custom du header */
.alv-nav { display: flex; align-items: center; gap: clamp(16px, 2.4vw, 30px); justify-content: center; }
.alv-nav a, .alv-nav button { font-family: var(--alv-font-body); font-weight: 400; font-size: 14px; color: var(--alv-ink-soft);
  text-decoration: none; background: none; border: none; cursor: pointer; padding: 0; }
.alv-nav a:hover, .alv-nav button:hover, .alv-nav .est-actif { color: var(--alv-terra); }
.alv-nav button::after { content: " ·"; color: var(--alv-terra); }
.alv-actions { display: flex; align-items: center; gap: 10px; justify-content: flex-end; }
/* Ancrages header */
.alv-header { position: relative; }
.alv-sans-marge { margin: 0 !important; }
.alv-sans-marge p:last-child { margin-bottom: 0; }
.alv-mega-hote { position: static !important; width: 0 !important; height: 0 !important; overflow: visible; }
.alv-nav button { text-transform: none; letter-spacing: 0; font-size: 14px; background: transparent !important; color: var(--alv-ink-soft) !important; border-radius: 0; padding: 0; }
.alv-nav button:hover { color: var(--alv-terra) !important; background: transparent !important; }
.alv-header { z-index: 70; }
/* Correctifs fiche */
.alv-format .alv-format__carte { background: var(--alv-white) !important; color: var(--alv-ink) !important;
  border-radius: var(--alv-r-card) !important; padding: 16px !important; letter-spacing: 0 !important;
  text-transform: none !important; font-size: 14px !important; text-align: left; }
.alv-format .alv-format__carte:hover { background: var(--alv-white) !important; border-color: var(--alv-ink); }
.alv-format .alv-format__carte em { color: var(--alv-muted); }
.alv-format .alv-format__carte .alv-format__prix { color: var(--alv-ink); }
.related.products > h2 { display: none; }
ul.products li.product a img { padding: 9%;
  background: radial-gradient(95% 72% at 50% 14%, rgba(255,255,255,.30), transparent 72%),
              linear-gradient(168deg, var(--c) 0%, color-mix(in srgb, var(--c) 85%, transparent) 100%); }
/* ==================== Archives boutique / catégories ==================== */
.alv-filtres-barre { position: sticky; top: 68px; z-index: 40; display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
  justify-content: space-between; background: rgba(252, 246, 240, .95); backdrop-filter: blur(8px);
  padding: 12px 4px; border-bottom: 1px solid var(--alv-line-faint); margin-bottom: 22px; }
.alv-filtres { display: flex; flex-wrap: wrap; gap: 8px; }
.alv-filtres a { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--alv-line-btn); border-radius: var(--alv-r-pill);
  padding: 9px 18px; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--alv-ink); text-decoration: none; background: transparent; }
.alv-filtres a:hover { border-color: var(--alv-ink); color: var(--alv-ink); }
.alv-filtres a.est-actif { background: var(--alv-ink); border-color: var(--alv-ink); color: var(--alv-ivory); }
.alv-bandeau-boutique { background: var(--alv-rose); }
.alv-bandeau-categorie { position: relative; overflow: hidden; }
.alv-bandeau-categorie::before { content: ""; position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .3; }
.alv-bandeau-categorie::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(96deg, color-mix(in srgb, var(--c) 95%, transparent), color-mix(in srgb, var(--c) 70%, transparent)); }
.alv-bandeau-categorie > * { position: relative; z-index: 2; }
.alv-bandeau-categorie h1, .alv-bandeau-categorie .elementor-heading-title { color: var(--alv-white) !important; }
.alv-bandeau-categorie p, .alv-bandeau-categorie .woocommerce-breadcrumb, .alv-bandeau-categorie .woocommerce-breadcrumb a { color: rgba(255, 255, 255, .85) !important; }
body.term-minceur-detox .alv-bandeau-categorie::before { background-image: url('/wp-content/uploads/2026/08/tisane-artisanale-alevia-hero.jpg'); }
body.term-detente-sommeil .alv-bandeau-categorie::before { background-image: url('/wp-content/uploads/2026/08/rituel-tisane-tasse.jpg'); }
body.term-confort-du-corps .alv-bandeau-categorie::before { background-image: url('/wp-content/uploads/2026/08/herboristerie-alevia-bocaux.jpg'); }
body.term-equilibre-feminin .alv-bandeau-categorie::before { background-image: url('/wp-content/uploads/2026/08/atelier-alevia-plantes.jpg'); }
.woocommerce-breadcrumb { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--alv-muted); }
.woocommerce-breadcrumb a { color: var(--alv-terra); text-decoration: none; }
.alv-chapo-2col { columns: 2; column-gap: 40px; font-size: 14.5px; color: var(--alv-body); }
@media (max-width: 767px) { .alv-chapo-2col { columns: 1; } .alv-filtres-barre { position: static; } }
.alv-bascule { background: transparent !important; color: var(--alv-ink) !important; }
.alv-bascule[aria-pressed="true"] { background: var(--alv-ink) !important; color: var(--alv-ivory) !important; }
/* ==================== Confirmation ==================== */
.alv-merci { max-width: 1000px; margin: 0 auto; padding: 30px var(--alv-sec-x) 80px; }
.alv-merci__bandeau { background: var(--alv-rose); border-radius: var(--alv-r-card); text-align: center; padding: 46px 30px; margin-bottom: 30px; }
.alv-merci__coche { display: grid; place-items: center; width: 60px; height: 60px; margin: 0 auto 14px; border-radius: 50%;
  background: var(--alv-ink); color: var(--alv-ivory); font-size: 24px; }
.alv-merci__intro { max-width: 56ch; margin: 10px auto 0; }
.alv-merci__etapes { margin-bottom: 30px; }
.alv-merci__etapes ol { list-style: none; margin: 18px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; }
.alv-merci__etapes li { border: 1px solid var(--alv-line); border-radius: var(--alv-r-card); padding: 18px; font-size: 13px; color: var(--alv-quiet); }
.alv-merci__etapes li.est-active { background: var(--alv-ink); border-color: var(--alv-ink); color: rgba(252, 246, 240, .8); }
.alv-merci__etapes li strong { display: block; font-family: var(--alv-font-body); font-weight: 500; color: var(--alv-ink); margin-bottom: 6px; }
.alv-merci__etapes li.est-active strong { color: var(--alv-ivory); }
.alv-merci__boutons { display: flex; gap: 12px; flex-wrap: wrap; }
.alv-merci__boutons a { text-decoration: none; padding: 15px 26px; border-radius: var(--alv-r-pill); font-size: 12px; letter-spacing: .15em; text-transform: uppercase; }
.alv-merci__recap { background: var(--alv-white); border-radius: var(--alv-r-card); box-shadow: var(--alv-sh-card); padding: 26px; }
.alv-merci__recap-tete { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.alv-merci__recap ul { list-style: none; margin: 0 0 12px; padding: 0; }
.alv-merci__recap li { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--alv-line-faint); font-size: 14px; }
.alv-merci__total { display: flex; justify-content: space-between; font-family: var(--alv-font-display); font-size: 19px; color: var(--alv-ink); }
.alv-merci__adresse { font-size: 13px; color: var(--alv-quiet); }
.alv-merci__adresse span { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--alv-muted); margin-bottom: 4px; }

/* ==================== Connexion ==================== */
.alv-connexion { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 22px; max-width: 1160px; margin: 30px auto 80px; padding: 0 var(--alv-sec-x); }
/* Notices (erreur de connexion, informations) : pleine largeur au-dessus des cartes */
:root { --alv-erreur: #B3413A; } /* rouge fonctionnel, absent des tokens de la maquette */
.woocommerce-notices-wrapper { display: block; width: 100%; }
.woocommerce-notices-wrapper > * { margin: 0 auto 22px; max-width: 1160px; }
ul.woocommerce-error { list-style: none; padding: 14px 18px; background: var(--alv-white); border: 1px solid var(--alv-line);
  border-left: 3px solid var(--alv-erreur); border-radius: var(--alv-r-card); color: var(--alv-ink); font-size: 14px; }
ul.woocommerce-error li { margin: 0; padding: 0; }
/* WooCommerce pose son icône en ::before sur le ul ET parfois sur le li : on retire les deux */
ul.woocommerce-error::before, ul.woocommerce-error li::before,
.woocommerce-info::before, .woocommerce-message::before { display: none !important; content: none !important; }
/* Notices classiques info/succès : même carte que l'erreur, accent terracotta.
   En flex colonne : WooCommerce place son bouton en float:right AU MILIEU du texte,
   ce qui déchire la phrase en mobile ; ici le texte vient d'abord, le bouton dessous. */
.woocommerce-info, .woocommerce-message { display: flex; flex-direction: column; align-items: flex-start; gap: 12px;
  padding: 14px 18px; background: var(--alv-white); border: 1px solid var(--alv-line);
  border-top: none; border-left: 3px solid var(--alv-terra); border-radius: var(--alv-r-card); color: var(--alv-ink); font-size: 14px; }
.woocommerce-info > .button, .woocommerce-message > .button { float: none; order: 1;
  background: transparent !important; border: 1px solid var(--alv-line-btn) !important; color: var(--alv-ink) !important;
  border-radius: var(--alv-r-pill) !important; padding: 10px 18px; font-size: 12px; letter-spacing: .12em;
  text-transform: uppercase; text-decoration: none; }
.woocommerce-info > .button:hover, .woocommerce-message > .button:hover { border-color: var(--alv-ink) !important; }
.wc-block-components-notice-banner.is-error { background: var(--alv-white) !important; border-color: var(--alv-line) !important;
  border-left: 3px solid var(--alv-erreur) !important; color: var(--alv-ink) !important; border-radius: var(--alv-r-card) !important; }
.wc-block-components-notice-banner.is-error > svg { fill: var(--alv-erreur) !important; }
/* L'icône du bandeau doit rester dans sa colonne, jamais sur le texte */
.wc-block-components-notice-banner { display: flex !important; gap: 12px; align-items: flex-start; }
.wc-block-components-notice-banner > svg { flex: 0 0 auto; position: static !important; margin-top: 1px; }
.alv-connexion__col { background: var(--alv-white); border-radius: var(--alv-r-card); box-shadow: var(--alv-sh-card); padding: 34px 30px; }
.alv-connexion__col.est-inscription { background: var(--alv-rose); box-shadow: none; }
.alv-connexion__col h2 { margin-bottom: 18px; }
.alv-connexion__benefices { list-style: none; margin: 0 0 20px; padding: 0; }
.alv-connexion__benefices li { position: relative; padding-left: 20px; margin-bottom: 10px; font-size: 13.5px; }
.alv-connexion__benefices li::before { content: ""; position: absolute; left: 0; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--alv-terra); }
.alv-connexion__actions { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }
.alv-connexion button { border-radius: var(--alv-r-pill); font-size: 12px; letter-spacing: .15em; text-transform: uppercase; padding: 14px 26px; }
.est-inscription button { background: transparent !important; color: var(--alv-ink) !important; border: 1px solid var(--alv-line-btn) !important; }

/* ==================== Commandes (compte) ==================== */
.alv-compte-bonjour { font-family: var(--alv-font-display); font-size: 21px; color: var(--alv-ink); margin-bottom: 20px; }
.alv-commandes__ligne { display: flex; align-items: center; gap: 16px; padding: 15px 4px; border-bottom: 1px solid var(--alv-line-faint); font-size: 13.5px; }
.alv-commandes__ligne .ref { flex: 1 1 160px; display: flex; flex-direction: column; }
.alv-commandes__ligne .ref em { font-style: normal; font-size: 12px; color: var(--alv-muted-2); }
.alv-commandes__ligne .date { flex: 0 1 130px; color: var(--alv-muted); }
.alv-commandes__ligne .total { font-family: var(--alv-font-display); color: var(--alv-ink); }
.alv-commandes__ligne a { margin-left: auto; }
/* Mobile : la ligne passe sur deux rangées (référence + date, puis état + total + lien) */
@media (max-width: 767px) {
  .alv-commandes__ligne { flex-wrap: wrap; gap: 8px 14px; }
  .alv-commandes__ligne .ref { flex: 1 1 auto; }
  .alv-commandes__ligne .date { flex: 0 0 auto; white-space: nowrap; }
}
.alv-cure { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.alv-cure__vignette { width: 74px; height: 88px; object-fit: contain; background: linear-gradient(168deg, var(--c), color-mix(in srgb, var(--c) 85%, transparent)); border-radius: var(--alv-r-field); padding: 8px; }
.alv-cure__infos { flex: 1 1 240px; display: flex; flex-direction: column; gap: 4px; }
.alv-cure a { text-decoration: none; padding: 12px 22px; }
/* ==================== Accueil : sections spéciales ==================== */
.alv-hero-photo { position: relative; }
.alv-hero-photo img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; border-radius: var(--alv-r-card);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%); mask-image: linear-gradient(90deg, transparent 0%, #000 18%); }
.alv-hero-photo .alv-rail { position: absolute; top: 50%; right: 18px; transform: translateY(-50%); z-index: 3; }
/* Le wrapper de widget Elementor est position:relative : il capturait le rail absolu */
.alv-hero-photo .elementor-widget-shortcode { position: static; }
/* Mobile : le rail du héro devient une légende nommée en 2 colonnes sous la photo
   (placé APRÈS la règle absolue ci-dessus pour gagner la cascade) */
@media (max-width: 767px) {
  .alv-hero-photo .alv-rail { position: static; top: auto; right: auto; transform: none;
    flex-direction: row; flex-wrap: wrap; gap: 2px 14px; margin-top: 12px; }
  .alv-hero-photo .alv-rail__pastille { width: auto; height: auto; flex: 0 0 calc(50% - 7px);
    display: inline-flex; align-items: center; gap: 9px; padding: 7px 0; }
  .alv-hero-photo .alv-rail__pastille::before { position: static; width: 12px; height: 12px; flex: 0 0 auto;
    inset: auto; box-shadow: none; }
  .alv-hero-photo .alv-rail__pastille::after { content: attr(data-nom); position: static; opacity: 1; visibility: visible;
    transform: none; background: transparent; color: var(--alv-ink); padding: 0; box-shadow: none;
    font-size: 14px; letter-spacing: 0; line-height: 1.3; white-space: normal; }
}
.alv-preuves { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--alv-muted); }
.alv-bande-atelier { position: relative; overflow: hidden; }
.alv-bande-atelier::before { content: ""; position: absolute; inset: 0; background: url('/wp-content/uploads/2026/08/atelier-alevia-plantes.jpg') center/cover; }
.alv-bande-atelier::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(24, 43, 62, .93) 0%, rgba(24, 43, 62, .72) 55%, rgba(24, 43, 62, .35) 100%); }
.alv-bande-atelier > * { position: relative; z-index: 2; }
.alv-bande-atelier h2, .alv-bande-atelier .elementor-heading-title { color: var(--alv-white) !important; }
.alv-bande-atelier p { color: rgba(252, 246, 240, .85); }
.alv-bande-rituel { position: relative; overflow: hidden; }
.alv-bande-rituel::before { content: ""; position: absolute; inset: 0; background: url('/wp-content/uploads/2026/08/rituel-tisane-tasse.jpg') center/cover; }
.alv-bande-rituel::after { content: ""; position: absolute; inset: 0; background: rgba(251, 237, 230, .9); }
.alv-bande-rituel > * { position: relative; z-index: 2; }
.alv-carte-translucide { background: rgba(255, 255, 255, .82); backdrop-filter: blur(4px); border-radius: var(--alv-r-card); padding: 24px; }
.alv-univers-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.alv-univers-carte { display: flex; flex-direction: column; background: var(--alv-white); border-radius: var(--alv-r-card);
  overflow: hidden; box-shadow: var(--alv-sh-card); text-decoration: none; transition: box-shadow .2s ease; }
.alv-univers-carte:hover { box-shadow: var(--alv-sh-card-h); }
.alv-univers-carte__photo { display: block; height: 150px; background-size: cover; background-position: center; position: relative; }
.alv-univers-carte__photo::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, color-mix(in srgb, var(--c) 90%, transparent), color-mix(in srgb, var(--c) 30%, transparent) 55%, color-mix(in srgb, var(--c) 10%, transparent)); }
.alv-univers-carte__corps { display: flex; flex-direction: column; gap: 7px; padding: 18px; }
.alv-univers-carte__corps strong { font-family: var(--alv-font-display); font-weight: 400; font-size: 20px; color: var(--alv-ink); }
.alv-univers-carte__corps em { font-style: normal; font-size: 13px; color: var(--alv-muted); line-height: 1.6; }
.alv-univers-carte__pied { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.alv-univers-carte__pied .pastilles { display: flex; gap: 5px; }
.alv-univers-carte__pied .compteur { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--alv-terra-hint); }
/* Page « site en construction » (modèle Elementor 184, mode Coming soon activé sur la prod seulement) */
.alv-construction { background: var(--alv-ivory); text-align: center; }
.alv-construction .elementor-widget-form { width: 100%; max-width: 480px; }
.alv-construction .elementor-widget-text-editor { max-width: 520px; }
/* Gamme Signature : section retirée du site le 01/09 à la demande des clients, styles conservés pour réactivation */
.alv-signature-bande { background: var(--alv-ink); }
.alv-signature-bande h2, .alv-signature-bande .elementor-heading-title { color: var(--alv-ivory) !important; }
.alv-signature-bande p { color: rgba(252, 246, 240, .8); }
.alv-signature-prix { display: flex; gap: 26px; }
.alv-signature-prix strong { display: block; font-family: var(--alv-font-display); font-weight: 400; font-size: 24px; color: var(--alv-terra-on-navy); }
.alv-signature-prix span { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(252, 246, 240, .65); }
.alv-newsletter { background: var(--alv-ink); }
.alv-newsletter h2, .alv-newsletter .elementor-heading-title { color: var(--alv-ivory) !important; }
.alv-newsletter p { color: rgba(252, 246, 240, .78); }
.alv-newsletter .elementor-field-group input { background: rgba(252, 246, 240, .08) !important; border-color: var(--alv-line-navy) !important; color: var(--alv-ivory) !important; }
.alv-newsletter .elementor-field-type-acceptance, .alv-newsletter .elementor-field-subgroup label { color: rgba(252, 246, 240, .6) !important; font-size: 12px; }
/* Spécificité 0,4,0 : doit battre la règle générique des boutons d'envoi (0,3,0, fond encre), invisible sur la bande marine */
.alv-newsletter button[type="submit"],
.alv-newsletter .elementor-form .elementor-field-type-submit .elementor-button { background: var(--alv-terra) !important; color: var(--alv-ivory) !important; }
.alv-newsletter button[type="submit"]:hover,
.alv-newsletter .elementor-form .elementor-field-type-submit .elementor-button:hover { background: var(--alv-terra-dark) !important; }
.alv-citation-olivia { font-family: var(--alv-font-display); font-style: italic; font-size: clamp(18px, 2vw, 24px); line-height: 1.55; color: var(--alv-terra); }
.alv-signature-visuel img { border-radius: var(--alv-r-img); box-shadow: var(--alv-sh-label-lg); }
.alv-hero-photo img { height: clamp(380px, 40vw, 560px); }
.alv-univers-grille { grid-template-columns: repeat(auto-fit, minmax(min(100%, 255px), 1fr)); }
/* Notre histoire */
.alv-bandeau-histoire { position: relative; overflow: hidden; }
.alv-bandeau-histoire::before { content: ""; position: absolute; inset: 0; background: url('/wp-content/uploads/2026/08/herboristerie-alevia-bocaux.jpg') center/cover; }
.alv-bandeau-histoire::after { content: ""; position: absolute; inset: 0; background: rgba(251, 237, 230, .93); }
.alv-bandeau-histoire > * { position: relative; z-index: 2; }
.alv-citation-bande { background: var(--alv-ink); }
.alv-rail--horizontal { flex-direction: row; justify-content: center; gap: 12px; }
.alv-rail { flex-direction: row; flex-wrap: wrap; }
.alv-hero-photo .alv-rail { flex-direction: column; flex-wrap: nowrap; }
/* Exception mobile : la légende nommée du héro est une rangée qui replie en 2 colonnes */
@media (max-width: 767px) {
  .alv-hero-photo .alv-rail { flex-direction: row; flex-wrap: wrap; }
}
.alv-jauge { margin: 0 0 10px; }
/* Mini-panier : pleine hauteur + habillage du contenu réel (le template Elementor Pro
   émet des div .elementor-menu-cart__*, pas les classes WooCommerce core) */
.elementor-menu-cart__main { min-height: 100dvh; height: 100dvh; overflow: auto; display: flex; flex-direction: column; }
.elementor-menu-cart__main .widget_shopping_cart_content { flex: 1; display: flex; flex-direction: column; padding: 14px 22px 22px; }
.elementor-menu-cart__main .elementor-menu-cart__close-button { align-self: flex-end; margin: 14px 16px 0; color: var(--alv-ink); }
.elementor-menu-cart__products { flex: 1; }
.elementor-menu-cart__product { padding: 12px 0; margin: 0; }
.elementor-menu-cart__product-image img { width: 62px; height: 74px; object-fit: contain; border-radius: var(--alv-r-field);
  background: linear-gradient(168deg, var(--c), color-mix(in srgb, var(--c) 85%, transparent)); padding: 6px; }
.elementor-menu-cart__product-name a { text-decoration: none; }
.elementor-menu-cart__product-price { font-size: 13px; color: var(--alv-body); }
.elementor-menu-cart__product-remove a { color: var(--alv-muted-2) !important; text-decoration: none; }
/* Sous-total : libellé fin, montant en Gilda 26 (jamais en gras) */
.elementor-menu-cart__subtotal { display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  padding: 14px 0 4px; border-top: 1px solid var(--alv-line); font-size: 14px; font-weight: 400; color: var(--alv-ink); text-align: left; }
.elementor-menu-cart__subtotal strong { font-family: var(--alv-font-body); font-weight: 400; }
.elementor-menu-cart__subtotal .woocommerce-Price-amount { font-family: var(--alv-font-display); font-weight: 400; font-size: 26px; }
.woocommerce-mini-cart__empty-message { flex: 1; display: grid; place-items: center; color: var(--alv-muted); font-size: 14px; }
.elementor-menu-cart__container { position: fixed !important; inset: 0 !important; z-index: 200; }
.elementor-menu-cart__main { position: absolute; top: 0; right: 0; }
/* Achat : jamais de débordement en très petit écran */
.alv-fiche-achat form.cart, .alv-fiche-achat .single_variation_wrap, .alv-fiche-achat .woocommerce-variation-add-to-cart { max-width: 100%; }
.alv-fiche-achat .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap !important; gap: 12px; align-items: center; }
.alv-fiche-achat button.single_add_to_cart_button { min-width: 0; }
@media (max-width: 480px) {
  .alv-fiche-achat button.single_add_to_cart_button { flex: 1 1 100%; width: 100%; white-space: normal; }
}

/* ==================== Blog Conseils ==================== */
.alv-conseils-page { max-width: 1240px; margin: 0 auto; padding: clamp(30px, 4vw, 54px) var(--alv-sec-x) var(--alv-sec-y); }
.alv-article-page { padding: clamp(30px, 4vw, 54px) var(--alv-sec-x) var(--alv-sec-y); }
.alv-conseils-tete { max-width: 760px; margin: 0 0 34px; }
.alv-conseils-tete h1 { font-size: clamp(34px, 6vw, 50px); margin: 6px 0 12px; }
.alv-conseils-tete__intro { font-size: 15px; color: var(--alv-muted); max-width: 52ch; }
.alv-conseils-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 22px; }
.alv-conseil-carte { display: flex; flex-direction: column; background: var(--alv-white); border-radius: var(--alv-r-card);
  box-shadow: var(--alv-sh-card); overflow: hidden; text-decoration: none; transition: box-shadow .2s ease; }
.alv-conseil-carte:hover { box-shadow: var(--alv-sh-card-h); }
.alv-conseil-carte__visuel { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--alv-rose-card); }
.alv-conseil-carte__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.alv-conseil-carte:hover .alv-conseil-carte__visuel img { transform: scale(1.03); }
@media (prefers-reduced-motion: reduce) { .alv-conseil-carte:hover .alv-conseil-carte__visuel img { transform: none; } }
.alv-conseil-carte__corps { display: flex; flex-direction: column; gap: 8px; padding: 18px 18px 20px; }
.alv-conseil-carte__titre { font-family: var(--alv-font-display); font-weight: 400; font-size: 20px; line-height: 1.25; color: var(--alv-ink); }
.alv-conseil-carte__extrait { font-style: normal; font-size: 13px; color: var(--alv-muted); line-height: 1.6; }
.alv-conseil-carte__pied { display: flex; justify-content: space-between; align-items: baseline; margin-top: 6px; }
.alv-conseil-carte__pied time { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--alv-faint-2); }
.alv-conseils-pages { margin-top: 36px; }
.alv-conseils-pages ul.page-numbers { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0; padding: 0; }
.alv-conseils-pages .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px;
  padding: 0 12px; border: 1px solid var(--alv-line-btn); border-radius: var(--alv-r-pill); font-size: 13px; color: var(--alv-ink); text-decoration: none; }
.alv-conseils-pages .page-numbers.current { background: var(--alv-ink); border-color: var(--alv-ink); color: var(--alv-ivory); }
.alv-conseils-pages a.page-numbers:hover { border-color: var(--alv-ink); }
.alv-conseils-vide { font-size: 15px; color: var(--alv-muted); }
/* Article */
.alv-article { max-width: 760px; margin: 0 auto; }
.alv-article__fil { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--alv-muted); margin-bottom: 26px; }
.alv-article__fil a { color: var(--alv-terra); text-decoration: none; }
.alv-article__fil a:hover { color: var(--alv-terra-dark); }
.alv-article__fil span[aria-current] { color: var(--alv-faint-2); letter-spacing: .06em; text-transform: none; }
.alv-article__tete h1 { font-size: clamp(30px, 5.4vw, 44px); margin: 8px 0 10px; }
.alv-article__meta { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--alv-faint-2); }
.alv-article__visuel { margin: 26px 0 0; }
.alv-article__visuel img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--alv-r-card); }
.alv-article__contenu { margin-top: 28px; font-size: 15.5px; line-height: 1.8; color: var(--alv-body); }
.alv-article__contenu h2 { font-size: clamp(22px, 3vw, 28px); margin: 38px 0 12px; }
.alv-article__contenu h3 { font-size: 19px; margin: 28px 0 10px; }
.alv-article__contenu p { margin: 0 0 16px; }
.alv-article__contenu ul, .alv-article__contenu ol { margin: 0 0 16px; padding-left: 22px; }
.alv-article__contenu li { margin-bottom: 8px; }
.alv-article__contenu li::marker { color: var(--alv-terra); }
.alv-article__contenu a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
.alv-article__contenu blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 2px solid var(--alv-terra);
  font-family: var(--alv-font-display); font-style: italic; font-size: 18px; color: var(--alv-ink-soft); }
.alv-article__note { margin-top: 34px; }
.alv-article__cta { margin-top: 26px; background: var(--alv-rose); border-radius: var(--alv-r-card); padding: 26px;
  display: flex; gap: 18px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.alv-article__cta p { margin: 0; font-size: 14.5px; color: var(--alv-ink-soft); max-width: 46ch; }

/* ==================== Popup guide offert (accueil) ==================== */
/* Seule popup du site : l'habillage du cadre Elementor peut rester générique */
.elementor-popup-modal { background-color: rgba(24, 43, 62, .42) !important; backdrop-filter: blur(2px); }
.elementor-popup-modal .dialog-widget-content { background: var(--alv-ivory); border-radius: var(--alv-r-card);
  overflow: hidden; box-shadow: 0 40px 80px -30px rgba(24, 43, 62, .45); }
.elementor-popup-modal .dialog-close-button { color: var(--alv-muted) !important; }
.elementor-popup-modal .dialog-close-button:hover { color: var(--alv-ink) !important; }
.alv-popup-guide { align-items: stretch; }
.alv-popup-guide__visuel { background: linear-gradient(168deg, var(--alv-rose) 0%, var(--alv-rose-swatch) 100%);
  display: flex; align-items: center; justify-content: center; padding: 26px 18px; }
.alv-popup-guide__visuel img { width: 100%; max-width: 170px; height: auto; border-radius: var(--alv-r-img); box-shadow: var(--alv-sh-label); }
.alv-popup-guide__corps { padding: 28px 28px 24px; gap: 12px; }
.alv-popup-guide__corps h3 { font-size: 24px; margin: 0; }
.alv-popup-guide__corps p { font-size: 13.5px; line-height: 1.6; color: var(--alv-body); margin: 0; }
.alv-popup-guide .elementor-field-type-acceptance .elementor-field-subgroup label { font-size: 12px; }
.alv-popup-guide .alv-note-legere { font-size: 11.5px; }
@media (max-width: 767px) {
  .alv-popup-guide__corps { padding: 22px 20px 18px; gap: 10px; }
  .alv-popup-guide__corps h3 { font-size: 21px; }
}

/* ==================== Héro mobile : équilibre de la composition ==================== */
@media (max-width: 767px) {
  /* Surtitres sur une seule ligne : corps et interlettrage resserrés, filet raccourci */
  .alv-surtitre, .alv-surtitre * { font-size: 9.5px !important; letter-spacing: .13em; }
  .alv-surtitre .elementor-heading-title { text-wrap: balance; }
  .alv-filet-avant .elementor-heading-title::before { display: none; }
  /* Colonne texte du héro (repérée par son h1) : chapô au plancher maquette,
     boutons pleine largeur pour une pile régulière */
  body.home .e-con.e-child:has(h1) .elementor-widget-text-editor p:not(.alv-preuves) { font-size: 15px; line-height: 1.65; }
  body.home .e-con.e-child:has(h1) .elementor-widget-button,
  body.home .e-con.e-child:has(h1) .elementor-widget-button .elementor-button { width: 100%; }
  /* Badges de réassurance : grille 2 × 2 régulière au lieu d'un wrap épars */
  .alv-preuves { display: grid; grid-template-columns: repeat(2, auto); justify-content: start;
    gap: 10px 20px; font-size: 10px; }
}
