/**
Theme Name: Astra Child
Author: Christine Vincent-Giuliano
Author URI: https://nelcielo.fr
Description: Thème enfant Astra pour Deliss Traiteur Marseille — site développé par NelCielo

Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/
/* 2026-08-26 burger c3 (EN TETE de fichier : le parseur perdait les declarations en fin de fichier) */
@media (max-width:1024px){
.elementor-element-h4navm nav.elementor-nav-menu--dropdown{position:fixed !important;left:0 !important;right:0 !important;width:100vw !important;max-width:none !important;max-height:70vh !important;overflow-y:auto !important;background:#F7F3EC !important;box-shadow:0 12px 30px rgba(18,32,67,.18);z-index:9999;}
.elementor-element-h4navm nav.elementor-nav-menu--dropdown a{width:100% !important;box-sizing:border-box !important;padding:14px 24px !important;font-size:16px !important;color:#1D3668 !important;}
}

/* === Bouton retour en haut — charte Deliss (18/07/2026, centrage independant du display JS Astra, prouve 3 viewports) === */
#ast-scroll-top{background-color:#F2A541;border-radius:8px;box-shadow:0 4px 14px rgba(18,32,67,.45);width:48px;height:48px}
#ast-scroll-top:hover{background-color:#1D3668}
#ast-scroll-top .ast-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:0;margin:0}
#ast-scroll-top .ast-icon.icon-arrow svg{transform:rotate(180deg) !important;width:22px !important;height:auto !important;vertical-align:top}
@media(min-width:1025px){#ast-scroll-top{width:65px;height:65px}#ast-scroll-top .ast-icon.icon-arrow svg{width:26px !important}}

/* === Notices WooCommerce — charte Deliss (21/08/2026) ===
   COPIE SYNCHRONISÉE du bloc "Notices WC" de astra-child/inc/wc-skin.css : ce fichier-ci
   (astra-child-theme-css) est chargé SANS CONDITION sur TOUTES les pages (functions.php),
   alors que wc-skin.css n'est enqueue QUE sur is_cart()/is_account_page() -> sans ce doublon,
   le bandeau "ajouté au panier" restait au style WooCommerce par défaut sur les fiches produit
   (retour Christine 21/08 : bandeau gris, bouton bleu WooCommerce). Les 2 blocs doivent rester
   identiques (valeurs en dur ici, les variables --dw-* de wc-skin.css:root ne sont pas
   disponibles sur les pages où wc-skin.css n'est pas chargé). */
.woocommerce-message,.woocommerce-info,.woocommerce-error,
.e-notices-wrapper .woocommerce-message,.e-notices-wrapper .woocommerce-info,.e-notices-wrapper .woocommerce-error{
  position:relative;display:flex !important;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;
  max-width:1320px;margin:1rem auto !important;padding:1rem 1.4rem 1rem 2.6rem;box-sizing:border-box;
  background:#FFF5E6 !important;border-top:0 !important;border-right:0 !important;border-bottom:0 !important;
  border-left:4px solid #F2A541 !important;border-radius:8px;
  color:#1D3668 !important;font-size:.95rem;font-family:'Inter',sans-serif;list-style:none
}
.woocommerce-error,.woocommerce-error li{border-left-color:#B0491F !important;background:#FDEDE7 !important;list-style:none}
.woocommerce-info,.woocommerce-error{padding-left:1.6rem !important}
/* position:absolute (PAS flex item) : en flex item, la coche entrait en collision avec le texte
   (nœud texte anonyme) sur mobile 390 - constat capture 21/08, "«B✓ffet Italia»". */
.woocommerce-message::before{position:absolute !important;left:1rem;top:50%;transform:translateY(-50%);display:block !important;content:"\2713" !important;font-family:inherit !important;color:#F2A541 !important;font-weight:700;font-size:1.15em;line-height:1;margin:0 !important}
.woocommerce-info::before,.woocommerce-error::before,.woocommerce-error li::before{display:none !important}
.woocommerce-message a.button,.woocommerce-info a.button,.woocommerce-error a.button{
  order:1;margin:0 0 0 auto !important;flex:none;display:inline-flex;align-items:center;justify-content:center;
  padding:.75rem 1.5rem !important;font-family:'Oswald',sans-serif !important;font-weight:500;font-size:.8rem;
  letter-spacing:1.2px;text-transform:uppercase;background:#F2A541 !important;color:#1D3668 !important;
  border:2px solid #F2A541 !important;border-radius:8px;text-decoration:none !important;transition:all .25s
}
.woocommerce-message a.button:hover,.woocommerce-info a.button:hover,.woocommerce-error a.button:hover{
  background:#E0932C !important;border-color:#E0932C !important;color:#FFFFFF !important
}
@media (max-width:767px){
  .woocommerce-message,.woocommerce-info,.woocommerce-error{margin:.8rem 16px !important;padding:.9rem 1.1rem}
}

/* === Fiche produit — sélecteurs date/créneau du plugin deliss-order-rules, mobile (22/08/2026) ===
   Cause racine mesurée (getComputedStyle, 390px, avant correctif) : Elementor Pro pose
   `form.cart{display:flex;flex-direction:row;flex-wrap:nowrap;gap:16px}` sur le widget
   "Ajouter au panier" (form action=".../buffet-italia/"). Les 3 enfants (.deliss-delivery-fields
   du plugin, .quantity, le bouton) se partagent alors ~310px sur UNE seule ligne sans retour à la
   ligne : .deliss-delivery-fields (aucune largeur/flex-basis fixée) se réduit à 58px, ne laissant
   que "Sa" / "1" lisibles dans les <select>. Le panier (table WooCommerce classique, pas de flex
   row) n'a pas ce problème -> pas de correctif nécessaire là. Fix : passer le form en flex-wrap et
   donner au bloc du plugin sa propre ligne pleine largeur. !important : la CSS du widget Elementor
   Pro (per-post, imprimée après ce fichier) applique déjà flex-shrink/flex-basis sur ces enfants. */
@media (max-width:767px){
  .elementor-widget-woocommerce-product-add-to-cart form.cart{
    flex-wrap:wrap !important;
  }
  form.cart .deliss-delivery-fields{
    flex:1 1 100% !important;
    width:100% !important;
  }
  .deliss-delivery-fields .deliss-field{
    width:100% !important;
  }
  .deliss-delivery-fields select#deliss_date,
  .deliss-delivery-fields select#deliss_slot{
    width:100% !important;
    min-height:44px !important;
    font-size:16px !important;
    box-sizing:border-box !important;
  }
}

/* ===== Ex-widgets HTML "décoratifs" — CSS migrée hors des widgets (22/08/2026) =====
   Elementor (mise à jour en cours par Christine, 4.1.x -> 4.2.x) sanitise désormais le
   contenu des widgets HTML au rendu/à la resauvegarde : les balises <style> imbriquées
   sont retirées mais leur CONTENU TEXTE reste, et s'affichait en clair sur la page (ex.
   badge "Minimum 10 personnes"). On ne dépend plus de ce comportement : le CSS est extrait
   une fois pour toutes ici, dédoublonné entre templates identiques, et retiré des widgets. */
/* ex-widget HTML html14 — commun à : Single Product — Buffet (#332), Single Product — Coffret Goûter (#403), Single Product — Cocktail (#385), Single Product — Pause Café (#387), Single Product — Petit Déjeuner (#371) */
.dv-min-qty .product-min-quantity{display:flex;align-items:center;gap:14px;padding:14px 18px;margin:0 0 22px;background:#FFF5E6;border:2px solid #F2A541;border-radius:8px;color:#1D3668}.dv-min-qty .product-min-quantity svg{width:32px;height:32px;color:#F2A541;flex-shrink:0}.dv-min-qty .product-min-quantity-text{display:flex;flex-direction:column;gap:2px;line-height:1.4}.dv-min-qty .product-min-quantity-text strong{font-family:'Oswald',sans-serif;font-size:15px;letter-spacing:1.3px;text-transform:uppercase;color:#1D3668;font-weight:600}.dv-min-qty .product-min-quantity-text span{font-size:13px;color:#555555;font-style:italic}
/* ex-widget HTML html34 — commun à : Single Product — Buffet (#332), Single Product — Coffret Goûter (#403), Single Product — Cocktail (#385), Single Product — Pause Café (#387), Single Product — Petit Déjeuner (#371), Single Product — Plateau Vegan (#397), Single Product — Générique Déliss (#833) */
.dv-diet-tags{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0}.dv-diet-tags .diet-tag{font-size:11px;padding:3px 9px;border-radius:100px;font-family:'Inter',sans-serif;font-weight:500}.dv-diet-tags .diet-veg{background:#E0F0E5;color:#5BA776}.dv-diet-tags .diet-halal{background:#FDE8CC;color:#F2A541}.dv-diet-tags .diet-porc{background:#FDE8CC;color:#F2A541}.dv-diet-tags .diet-glu{background:#FFF1D4;color:#9A6B00}.dv-diet-tags .diet-vegan{background:#E0F0E5;color:#2E7D32}
/* ex-widget HTML html14 — Accueil (#106) */
.dcard,.dblcard,.drvc,.dlz{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.dcard:hover,.dblcard:hover,.drvc:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(18,32,67,.12);border-color:#FDE8CC}.dlz:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(0,0,0,.25)}.dcard-img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.dblimg img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}.dcard-img img,.dblimg img{transition:transform .5s ease}.dcard:hover .dcard-img img,.dblcard:hover .dblimg img{transform:scale(1.05)}.dgal-main img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:14px;box-shadow:0 16px 40px rgba(18,32,67,.12);transition:opacity .2s ease}.dgal-thumbs img{width:100%;aspect-ratio:1;object-fit:cover;display:block;border-radius:6px;cursor:pointer;box-shadow:0 2px 12px rgba(18,32,67,.06);outline:2px solid transparent;outline-offset:2px;transition:transform .2s,box-shadow .2s,outline-color .2s}.dgal-thumbs img:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(18,32,67,.22);outline-color:#F2A541}.dcd-bul,.drse-list{list-style:none;margin:1.3rem 0;padding:0;display:flex;flex-direction:column;gap:.7rem}.dcd-bul li,.drse-list li{position:relative;padding-left:1.7rem;list-style:none;line-height:1.5}.dcd-bul li::before,.drse-list li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:#F2A541}.drse-list li::before{background:#5BA776}.dcd-bul li strong,.drse-list li strong{color:#1D3668;font-weight:600}.drse-list li strong{color:#2F7A4B}
/* ex-widget HTML html14 — Accueil (#106) */
.gal-428 .swiper-slide img{height:200px;width:100%;object-fit:cover;display:block}@media(max-width:767px){.gal-428 .swiper-slide img{height:140px}}
/* ex-widget HTML html101 — commun à : Accueil (#106), Buffets (#428), Cocktails (#513), Plateaux repas (#618), Petit déjeuner (#744), Pause café (#765), Boissons (#812) */
.hcirc{transition:background .3s,color .3s,box-shadow .3s,transform .3s}.hcirc:hover{background:#fff!important;color:#F2A541!important;box-shadow:0 0 0 8px rgba(255,255,255,.4)!important;transform:scale(1.08)}
/* ex-widget HTML html1 — Elementor Article unique #178 (#178) */
.dsp-hero img{width:100%;aspect-ratio:16/10;max-height:540px;object-fit:cover;display:block;border-radius:10px;box-shadow:0 16px 40px rgba(18,32,67,.12)}.dart-body{min-width:0}.dart-body .elementor-widget-theme-post-content h2{font-family:Oswald,sans-serif;font-weight:600;color:#1D3668;font-size:clamp(1.4rem,2.4vw,1.8rem);line-height:1.3;margin:40px 0 -10px!important;scroll-margin-top:6.5rem}.dart-body .elementor-widget-theme-post-content h2:first-child{margin-top:0!important}.dart-body .elementor-widget-theme-post-content h3{font-family:Oswald,sans-serif;font-weight:600;color:#1D3668;font-size:1.2rem;line-height:1.35;margin:10px 0 -10px!important;scroll-margin-top:6.5rem}.dart-body .elementor-widget-theme-post-content p{font-family:"Noto Sans",sans-serif;font-size:16px;color:#2B2B2B;line-height:1.75;margin:0 0 18px!important}.dart-body .elementor-widget-theme-post-content ul,.dart-body .elementor-widget-theme-post-content ol{padding-left:1.4rem;margin:0 0 18px!important;display:flex;flex-direction:column;gap:.6rem;font-family:"Noto Sans",sans-serif;font-size:16px;color:#2B2B2B;line-height:1.65}.dart-body .elementor-widget-theme-post-content a{color:#E0932C;text-decoration:underline;text-underline-offset:3px}.dart-body .elementor-widget-theme-post-content strong{color:#1D3668;font-weight:600}.dart-body .elementor-widget-theme-post-content blockquote{background:#FFF5E6;border-left:4px solid #F2A541;padding:1.4rem 1.6rem;margin:1.6rem 0;border-radius:0 10px 10px 0;font-style:normal}.dart-body .elementor-widget-theme-post-content blockquote p{margin:0}.dsp-sum ul{list-style:disc;padding-left:1.3rem;margin:0;display:flex;flex-direction:column;gap:.55rem;font-family:Inter,sans-serif;font-size:.98rem;color:#2B2B2B;line-height:1.55}.dsp-sum ul li::marker{color:#F2A541}.dsp-sum strong{color:#1D3668;font-weight:600}.dsp-sum p{font-family:Inter,sans-serif;font-size:.98rem;color:#2B2B2B;line-height:1.55;margin:0 0 .6rem}.dsp-take p{color:#fff!important}.dsp-take a{color:#F2A541!important}.dsp-bc,.dsp-bc a{font-family:Inter,sans-serif;font-size:.875rem;color:#6B6B6B;text-decoration:none}.dsp-bc a:hover{color:#E0932C}.dblcard{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.dblcard:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(18,32,67,.12);border-color:#FDE8CC}.dblimg img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .5s ease}.dblcard:hover .dblimg img{transform:scale(1.05)}
/* ex-widget HTML html1 — Header Deliss (#231) */
[data-elementor-type='header']{position:sticky;top:-66px;z-index:99;}@media(max-width:767px){[data-elementor-type='header']{top:-52px;}}.dtb-links a{color:#1D3668;text-decoration:none;font-weight:500;}.dtb-links a:hover{color:#fff;}.dtb-faq a{color:#1D3668;text-decoration:none;font-weight:600;letter-spacing:.5px;border-bottom:1px solid transparent;}.dtb-faq a:hover{border-color:#1D3668;}@media(max-width:1024px){.dtb-links a:nth-of-type(2){display:none;}}@media(max-width:767px){.dtb-bar>.e-con-inner{flex-wrap:nowrap!important;}.dmn-bar>.e-con-inner{flex-wrap:nowrap!important;flex-direction:row-reverse!important;justify-content:space-between!important;align-items:center!important;}}@media(min-width:768px) and (max-width:1024px){.dmn-bar>.e-con-inner{flex-wrap:wrap!important;justify-content:center!important;row-gap:10px;}}
/* ex-widget HTML html1 — Erreur 404 Deliss (#249) */
.d404-actions>.e-con-inner{justify-content:center;}@media(max-width:720px){.d404-actions>.e-con-inner{flex-direction:column;align-items:stretch;}}.d404-card{transition:transform .25s ease,box-shadow .25s ease;}.d404-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(18,32,67,.12);}
/* ex-widget HTML html1 — Blog (#256) */
.dbi-grid .e-loop-item{position:relative;background:transparent!important;}.dbi-img{width:62%!important;}.dbi-img img{aspect-ratio:16/10;object-fit:cover;width:100%;border-radius:10px;box-shadow:0 6px 22px rgba(0,0,0,.08);}.dbi-body{position:absolute;top:50%;right:0;transform:translateY(-50%);width:48%!important;z-index:2;box-shadow:0 8px 30px rgba(0,0,0,.08);border-radius:10px;}.dbi-grid .e-loop-item:nth-of-type(even) .dbi-img{margin-left:auto;}.dbi-grid .e-loop-item:nth-of-type(even) .dbi-body{right:auto;left:0;}@media(max-width:1024px){.dbi-img,.dbi-grid .e-loop-item:nth-of-type(even) .dbi-img{width:100%!important;margin-left:0;}.dbi-img img{aspect-ratio:16/9;}.dbi-body,.dbi-grid .e-loop-item:nth-of-type(even) .dbi-body{position:relative;top:auto;right:auto;left:auto;transform:none;width:92%!important;margin:-48px auto 0;}}.dbi-card{transition:transform .35s ease;}.dbi-card:hover{transform:translateY(-4px);}.dbi-card .elementor-heading-title{transition:color .25s;}.dbi-fimg img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:10px;}.dbi-feat{transition:transform .25s ease,box-shadow .25s ease;}.dbi-feat:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(18,32,67,.13);}.dbi-pill .elementor-button{white-space:nowrap;}.elementor-pagination{margin-top:48px;font-family:Oswald,sans-serif;letter-spacing:1px;}.elementor-pagination .page-numbers{color:#1D3668;background:#fff;padding:9px 15px;border:1.5px solid #E8E2D6;border-radius:10px;margin:0 3px;text-decoration:none;font-weight:600;}.elementor-pagination .page-numbers.prev,.elementor-pagination .page-numbers.next{padding:9px 19px;}.elementor-pagination .page-numbers.current,.elementor-pagination a.page-numbers:hover{background:#F2A541;border-color:#F2A541;color:#fff;}
/* ex-widget HTML html1 — commun à : Buffets (#428), Cocktails (#513), Plateaux repas (#618), Petit déjeuner (#744), Pause café (#765), Boissons (#812) */
.gal-428 .swiper-slide img{height:200px;width:100%;object-fit:cover;display:block}
@media(max-width:767px){.gal-428 .swiper-slide img{height:140px}}
.pictos-im-428{max-width:720px;margin:0 auto}
.pictos-im-428 img{max-height:140px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.2))}
.dbuf-photo img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;border-radius:14px;
  box-shadow:0 16px 40px rgba(18,32,67,.12);display:block}
.dbuf-photo{width:100%}
/* ex-widget HTML html1 — Buffets (#428) */
@media(max-width:767px){.elementor-element-sec130 .elementor-widget-html{text-align:center;margin-left:auto !important;margin-right:auto !important}}
/* ex-widget HTML html1 — Buffets (#428) */
@media(hover:none){.elementor-element-sec164 .elementor-button:hover{background-color:#F2A541!important;color:#FFFFFF!important}}
/* ex-widget HTML ck0001e — Cocktails (#513) */
@media(max-width:767px){.elementor-element-ck00023 .elementor-widget-html{text-align:center;margin-left:auto !important;margin-right:auto !important}}
/* ex-widget HTML ck0001e — Cocktails (#513) */
@media(hover:none){.elementor-element-ck0004f .elementor-button:hover{background-color:#F2A541!important;color:#FFFFFF!important}}
/* ex-widget HTML ck0001e — Cocktails (#513) */
.elementor-element-ck0004f .elementor-button{min-height:48px;align-items:center;justify-content:center}
/* ex-widget HTML pl00003 — Plateaux repas (#618) */
@media(max-width:767px){.elementor-element-pl00008 .elementor-widget-html{text-align:center;margin-left:auto !important;margin-right:auto !important}}
/* ex-widget HTML pl00003 — Plateaux repas (#618) */
@media(hover:none){.elementor-element-pl00034 .elementor-button:hover{background-color:#F2A541!important;color:#FFFFFF!important}}
/* ex-widget HTML pl00003 — Plateaux repas (#618) */
.elementor-element-pl00034 .elementor-button{min-height:48px;align-items:center;justify-content:center}
/* ex-widget HTML pd00008 — Petit déjeuner (#744) */
@media(max-width:767px){.elementor-element-pd0000d .elementor-widget-html{text-align:center;margin-left:auto !important;margin-right:auto !important}}
/* ex-widget HTML pd00008 — Petit déjeuner (#744) */
@media(hover:none){.elementor-element-pd00039 .elementor-button:hover{background-color:#F2A541!important;color:#FFFFFF!important}}
/* ex-widget HTML pd00008 — Petit déjeuner (#744) */
.elementor-element-pd00039 .elementor-button{min-height:48px;align-items:center;justify-content:center}
/* ex-widget HTML pc00009 — Pause café (#765) */
@media(max-width:767px){.elementor-element-pc0000e .elementor-widget-html{text-align:center;margin-left:auto !important;margin-right:auto !important}}
/* ex-widget HTML pc00009 — Pause café (#765) */
@media(hover:none){.elementor-element-pc0003a .elementor-button:hover{background-color:#F2A541!important;color:#FFFFFF!important}}
/* ex-widget HTML pc00009 — Pause café (#765) */
.elementor-element-pc0003a .elementor-button{min-height:48px;align-items:center;justify-content:center}
/* ex-widget HTML bo00003 — Boissons (#812) */
@media(max-width:767px){.elementor-element-bo00008 .elementor-widget-html{text-align:center;margin-left:auto !important;margin-right:auto !important}}
/* ex-widget HTML bo00003 — Boissons (#812) */
@media(hover:none){.elementor-element-bo00030 .elementor-button:hover{background-color:#F2A541!important;color:#FFFFFF!important}}
/* ex-widget HTML bo00003 — Boissons (#812) */
.elementor-element-bo00030 .elementor-button{min-height:48px;align-items:center;justify-content:center}


/* ===== Icônes SVG inline -> masque CSS (22/08/2026) =====
   Même cause qu'au-dessus : Elementor 4.2.1/4.2.3 ("Improved code security
   enforcement in template handling", readme.txt) retire les <svg> des widgets
   HTML au chargement des templates Theme Builder, quel que soit l'auteur. Les 13
   icônes uniques (56 occurrences dédoublonnées) sont donc posées en masque CSS :
   un <span class="ic ic-<hash>"> remplace le <svg>, la forme vient d'un data-URI,
   la couleur suit `currentColor` (héritée du parent, comme avant). */
.ic{display:inline-block}
.ic-94254a82ae{width:32px;height:32px;color:#F2A541;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'> <path d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/> <circle cx='9' cy='7' r='4'/> <path d='M23 21v-2a4 4 0 0 0-3-3.87'/> <path d='M16 3.13a4 4 0 0 1 0 7.75'/> </svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'> <path d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/> <circle cx='9' cy='7' r='4'/> <path d='M23 21v-2a4 4 0 0 0-3-3.87'/> <path d='M16 3.13a4 4 0 0 1 0 7.75'/> </svg>") center/contain no-repeat}
.ic-4a5fbd6f85{width:32px;height:32px;color:#F2A541;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'> <path d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/> <polyline points='3.27 6.96 12 12.01 20.73 6.96'/> <line x1='12' y1='22.08' x2='12' y2='12'/> </svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'> <path d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/> <polyline points='3.27 6.96 12 12.01 20.73 6.96'/> <line x1='12' y1='22.08' x2='12' y2='12'/> </svg>") center/contain no-repeat}
.ic-2ae5aca5d7{width:60px;height:60px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72' fill='none' stroke='currentColor' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' style='width:60px;height:60px;display:block'><rect x='10' y='14' width='52' height='48' rx='4'/><line x1='10' y1='26' x2='62' y2='26'/><line x1='22' y1='8' x2='22' y2='20'/><line x1='50' y1='8' x2='50' y2='20'/><text x='36' y='52' text-anchor='middle' font-family='Inter,sans-serif' font-size='18' font-weight='700' stroke='none' fill='currentColor'>J-2</text></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72' fill='none' stroke='currentColor' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' style='width:60px;height:60px;display:block'><rect x='10' y='14' width='52' height='48' rx='4'/><line x1='10' y1='26' x2='62' y2='26'/><line x1='22' y1='8' x2='22' y2='20'/><line x1='50' y1='8' x2='50' y2='20'/><text x='36' y='52' text-anchor='middle' font-family='Inter,sans-serif' font-size='18' font-weight='700' stroke='none' fill='currentColor'>J-2</text></svg>") center/contain no-repeat}
.ic-eadfe764ab{width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='16' y1='13' x2='8' y2='13'/><line x1='16' y1='17' x2='8' y2='17'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='16' y1='13' x2='8' y2='13'/><line x1='16' y1='17' x2='8' y2='17'/></svg>") center/contain no-repeat}
.ic-c5210cd716{width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='16' x2='12' y2='12'/><line x1='12' y1='8' x2='12.01' y2='8'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='16' x2='12' y2='12'/><line x1='12' y1='8' x2='12.01' y2='8'/></svg>") center/contain no-repeat}
.ic-d438d793f2{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 12h20'/><path d='M5 12v5a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-5'/><path d='M7 12V8a5 5 0 0 1 10 0v4'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 12h20'/><path d='M5 12v5a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-5'/><path d='M7 12V8a5 5 0 0 1 10 0v4'/></svg>") center/contain no-repeat}
.ic-85ff1041db{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='17' rx='2'/><line x1='9' y1='4' x2='9' y2='21'/><line x1='13' y1='8' x2='17' y2='8'/><line x1='13' y1='12' x2='17' y2='12'/><line x1='13' y1='16' x2='17' y2='16'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='17' rx='2'/><line x1='9' y1='4' x2='9' y2='21'/><line x1='13' y1='8' x2='17' y2='8'/><line x1='13' y1='12' x2='17' y2='12'/><line x1='13' y1='16' x2='17' y2='16'/></svg>") center/contain no-repeat}
.ic-c8b14a15c2{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>") center/contain no-repeat}
.ic-3a14ac165d{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>") center/contain no-repeat}
.ic-69b0a14931{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' aria-hidden='true'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' aria-hidden='true'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>") center/contain no-repeat}
.ic-bd054369b1{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><path d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/><circle cx='9' cy='7' r='4'/><path d='M23 21v-2a4 4 0 0 0-3-3.87'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><path d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/><circle cx='9' cy='7' r='4'/><path d='M23 21v-2a4 4 0 0 0-3-3.87'/></svg>") center/contain no-repeat}
.ic-c325556841{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>") center/contain no-repeat}
.ic-6bc8b5503e{width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><rect x='2' y='5' width='20' height='14' rx='2'/><line x1='2' y1='10' x2='22' y2='10'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'><rect x='2' y='5' width='20' height='14' rx='2'/><line x1='2' y1='10' x2='22' y2='10'/></svg>") center/contain no-repeat}

/* header v2 compte+panier */
.hdr-compte,.hdr-panier{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:44px}
.hdr-panier-wrap{position:relative;display:inline-flex}
.hdr-panier-badge{position:absolute;top:-6px;right:-8px;min-width:18px;height:18px;padding:0 3px;
border-radius:50%;background:#F2A541;color:#1D3668;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.hdr-compte a,.hdr-panier a{color:#1D3668;text-decoration:none}
@media(max-width:767px){
.hdr-compte,.hdr-panier{padding-left:8px !important;border-color:transparent !important}
.hdr-compte .hdr-label,.hdr-panier .hdr-label{display:none}
}

/* header v3 (22/08/2026) : traits verticaux devis/compte/panier */
.dmn-bar .hdr-compte,.dmn-bar .hdr-panier{border-left:1px solid #E3E6F0;padding-left:16px;height:50px}
@media(max-width:767px){
.dmn-bar .hdr-compte .elementor-widget-text-editor,.dmn-bar .hdr-panier .elementor-widget-text-editor{display:none}
.dmn-bar .hdr-compte,.dmn-bar .hdr-panier{gap:0;min-width:auto}
}
@media(max-width:767px){
.dmn-bar{gap:8px !important}
.dmn-bar [data-id="c15"],.dmn-bar [data-id="nav13"]{min-width:44px}
}

/* Accessibilite RGAA 3.2 (contrastes) + 10.4 (taille de texte) -- lot Bug Fixer 22/08/2026.
 * Corrige par selecteur d'attribut les couleurs/tailles posees en style inline dans le contenu
 * Elementor des pages (prix HT, badges, mentions), sans toucher aux pages/templates eux-memes. */
[style*="color:#888" i]{color:#6B6B6B!important}
[style*="color:#8A8A8A" i]{color:#717171!important}
[style*="color:#C87410" i]{color:#9C5A0C!important}
[style*="font-size:.7rem"]{font-size:.875rem!important}
[style*="font-size:.8rem"]{font-size:.875rem!important}
[style*="font-size:13px"]{font-size:14px!important}
.ast-blog-meta-container{font-size:14px}

/* Accessibilite WCAG 2.5.8 (cibles tactiles >= 44px) -- header v3 uniquement,
 * classes hdr-compte/hdr-panier propres au template 1123, absentes du header 231 live. */
.hdr-compte,.hdr-panier{min-width:44px!important;min-height:44px!important}
@media(min-width:1025px) and (max-width:1440px){
.elementor-element-nav13{--e-nav-menu-horizontal-menu-item-margin:calc(24px/2) !important}
}

/* 2026-08-22 — alignement barre orange (liens gauche) sur le contenu. Demande Christine. Desktop only, .dtb-links masque en mobile. */
@media (min-width:1025px){.dtb-bar .dtb-links{margin-left:clamp(80px,13vw,260px) !important;}}

/* 2026-08-22 (lot 2) — menu principal decale de 80px vers la droite (desktop) + panier/compte cliquables (curseur). Demande Christine. */
@media (min-width:1025px){.dmn-bar .elementor-widget-nav-menu{margin-left:80px !important;}}
.hdr-panier,.hdr-compte{cursor:pointer;}
.hdr-panier:hover,.hdr-compte:hover{opacity:.75;transition:opacity .2s;}

/* 2026-08-22 (fix header v4, lot 3) — burger h4navm/h4navl : retire le fond gris Elementor par defaut,
   garde une cible tactile >=44px via padding transparent. Scope strict template 1140 (n'affecte pas 1123). */
.elementor-element-h4navm .elementor-menu-toggle,
.elementor-element-h4navl .elementor-menu-toggle{
  background-color:transparent !important;
  border:none !important;
  border-radius:0 !important;
  padding:11px !important;
}

/* 2026-08-22 (fix header v4, lot 1 correctif, ANNULE le 22/08 22h56) — l'ancienne regle masquait
   les labels texte "Mon compte"/"Panier" entre 1025 et 1650px (icone seule) pour eviter une
   collision avec le menu Contact. Depute obsolete : la barre orange a largement la place a 1440px
   pour icone+label (maquette v5 : labels visibles a toutes les largeurs desktop). Regle retiree. */

/* 2026-08-22 (fix header v4, lot alignement grille) -- barre orange + menu gauche/logo/menu droit
   cales sur la grille de contenu boxed 1320px (meme grille que le H1, mesure x=290@1900 / x=60@1440).
   Formules calc(50vw - Kpx) autolimitees par max() -> pas de media query necessaire : en dessous
   du seuil elles valent 0 et ne changent rien. h4dctr/h4dr sont deja hide_tablet/hide_mobile donc
   tablette/mobile non affectes. Scope strict template 1140. Demande Christine 22/08 (lot grille). */
.elementor-element-h4b1l{
  margin-left:max(0px, calc(50vw - 720px)) !important;
}
@media (min-width:1025px){
.elementor-element-h4dctr{
  display:grid !important;
  grid-template-columns:1fr auto 1fr !important;
  align-items:center !important;
  column-gap:22px !important;
  padding-left:max(0px, calc(50vw - 720px)) !important;
  padding-right:max(0px, calc(50vw - 720px)) !important;
  box-sizing:border-box !important;
}
.elementor-element-h4navl{justify-self:end !important;}
.elementor-element-h4sider{justify-self:start !important;}
}

/* 2026-08-22 (fix espace CTA devis) — le bouton devis etait a 2px de "CONTACT".
   Marge de respiration ; a <=1500px on la reduit et on resserre le menu droit pour eviter tout debordement. */
@media (min-width:1025px){
  .elementor-element-h4devis{margin-left:10px !important;}
}
@media (min-width:1025px) and (max-width:1500px){
  .elementor-element-h4devis{margin-left: 6px !important;}
  .elementor-element-h4navr{--e-nav-menu-horizontal-menu-item-margin:calc(14px/2) !important;}
}

/* 2026-08-22 (fix espace CTA devis, cause racine) — le widget nav droit etait COMPRIME (flex-shrink),
   son ul debordait de 55px sous le bouton. On interdit la compression ; l'ecart redevient reel. */
@media (min-width:1025px){
  .elementor-element-h4navr{flex-shrink:0 !important;width:auto !important;}
}

/* 2026-08-22 (alignement final, consigne aux traits rouges) — menu JUSTIFIE sur la largeur du contenu :
   ACCUEIL ferre au bord gauche du contenu, bouton devis au bord droit, items repartis, logo au centre. */
@media (min-width:1025px){
  .elementor-element-h4navl{justify-self:stretch !important;width:100% !important;}
  .elementor-element-h4navl .elementor-widget-nav-menu, .elementor-element-h4navl .elementor-nav-menu__container{width:100% !important;}
  .elementor-element-h4navl ul.elementor-nav-menu{display:flex !important;justify-content:space-between !important;width:100% !important;}
  .elementor-element-h4navl ul.elementor-nav-menu li{margin:0 !important;}
  .elementor-element-h4sider{justify-self:stretch !important;width:100% !important;display:flex !important;align-items:center !important;}
  .elementor-element-h4navr{flex:1 1 auto !important;width:auto !important;}
  .elementor-element-h4navr .elementor-widget-nav-menu, .elementor-element-h4navr .elementor-nav-menu__container{width:100% !important;}
  .elementor-element-h4navr ul.elementor-nav-menu{display:flex !important;justify-content:space-between !important;width:100% !important;}
  .elementor-element-h4navr ul.elementor-nav-menu li{margin:0 !important;}
  .elementor-element-h4devis{flex:0 0 auto !important;}
}

/* 2026-08-22 (justify, complement) — etirer les sous-conteneurs nav (widget-container/nav) et
   gagner la place manquante a droite (col-gap 8, padding devis 16). */
@media (min-width:1025px){
  .elementor-element-h4dctr{column-gap:8px !important;}
  .elementor-element-h4navl .elementor-widget-container,.elementor-element-h4navl nav,
  .elementor-element-h4navr .elementor-widget-container,.elementor-element-h4navr nav{width:100% !important;}
  .elementor-element-h4devis .elementor-button{padding-left:16px !important;padding-right:16px !important;}
  .elementor-element-h4devis{margin-left:14px !important;}
}

/* 2026-08-22 justify c3 - enfants directs navl a 100% */
@media (min-width:1025px){.elementor-element-h4navl > *,.elementor-element-h4navl .elementor-nav-menu--main{width:100% !important;max-width:100% !important;flex-grow:1 !important;}}

/* 2026-08-22 justify c4 - ul en flex-basis 100% */
@media (min-width:1025px){.elementor-element-h4navl ul.elementor-nav-menu,.elementor-element-h4navr ul.elementor-nav-menu{flex:1 1 100% !important;min-width:0 !important;}}

/* 2026-08-22 (espacement UNIQUE partout, consigne finale) — meme gap entre tous les items des deux cotes
   du logo ; le rang peut deborder du cadre contenu, des deux cotes. Annule le space-between precedent. */
@media (min-width:1025px){
  .elementor-element-h4navl ul.elementor-nav-menu{flex:0 0 auto !important;width:auto !important;justify-content:flex-end !important;gap:28px !important;}
  .elementor-element-h4navr ul.elementor-nav-menu{flex:0 0 auto !important;width:auto !important;justify-content:flex-start !important;gap:28px !important;}
  .elementor-element-h4navl{justify-self:end !important;width:auto !important;}
  .elementor-element-h4sider{justify-self:start !important;width:auto !important;gap:28px !important;}
  .elementor-element-h4navr{flex:0 0 auto !important;}
  .elementor-element-h4devis{margin-left:0 !important;}
  .elementor-element-h4dctr{column-gap:34px !important;}
}
@media (min-width:1025px) and (max-width:1500px){
  .elementor-element-h4navl ul.elementor-nav-menu,.elementor-element-h4navr ul.elementor-nav-menu,.elementor-element-h4sider{gap:15px !important;}
  .elementor-element-h4dctr{column-gap:22px !important;}
  .elementor-element-h4navl a,.elementor-element-h4navr a{font-size:13px !important;}
}

/* 2026-08-22 uniform c2 - le li fantome porte deja le gap avant devis */
@media (min-width:1025px){.elementor-element-h4sider{gap:0 !important;}}

/* 2026-08-22 (depassement symetrique) — la moitie droite (menu + bouton devis) est plus large que la gauche :
   on elargit les gaps du menu GAUCHE pour egaliser les 2 moities -> debordement identique des 2 cotes, logo centre. */
@media (min-width:1025px){
  .elementor-element-h4navl ul.elementor-nav-menu{gap:47px !important;}
}
@media (min-width:1025px) and (max-width:1500px){
  .elementor-element-h4navl ul.elementor-nav-menu{gap:26px !important;}
}

/* 2026-08-22 sym c2 - ancrer le menu gauche a droite pour deborder vers la gauche */
@media (min-width:1025px){.elementor-element-h4navl{display:flex !important;justify-content:flex-end !important;}.elementor-element-h4navl nav{display:flex !important;justify-content:flex-end !important;width:auto !important;}}

/* 2026-08-26 (reglage final menu) — barre moins haute (-10 haut / -15 bas), gaps gauche = reference droite (28),
   et ecarts logo EGAUX des deux cotes (Pauses cafe rapprochee de 10px, Petits dej cale pareil). */
@media (min-width:1025px){
  .elementor-element-h4bar2{padding-top:8px !important;padding-bottom:3px !important;}
  .elementor-element-h4navl ul.elementor-nav-menu{gap:28px !important;}
  .elementor-element-h4sider{margin-left:-10px !important;}
  .elementor-element-h4navl{margin-right:-60px !important;}
}

/* 2026-08-26 reglage final <=1500 : gauche calee sur la reference droite (15) + ecart logo egal */
@media (min-width:1025px) and (max-width:1500px){.elementor-element-h4navl ul.elementor-nav-menu{gap:15px !important;}.elementor-element-h4navl{margin-right:-126px !important;}}

/* 2026-08-26 (P0 pre-visio) — le panneau du burger heritait des 44px de l'icone (6 liens sur 9 coupes).
   On l'ancre en pleine largeur sous le header, mobile/tablette uniquement. Header = mon chantier, pas le plugin. */
@media (max-width:1024px){
  .elementor-element-h4navm nav.elementor-nav-menu--dropdown{
    position:fixed !important;left:0 !important;right:0 !important;width:100vw !important;
    max-height:70vh;overflow-y:auto;background:#F7F3EC;box-shadow:0 12px 30px rgba(18,32,67,.18);z-index:9999;
  }
  .elementor-element-h4navm nav.elementor-nav-menu--dropdown a{
    width:100% !important;box-sizing:border-box;padding:14px 24px !important;font-size:16px !important;color:#1D3668 !important;
  }
}

/* 2026-08-26 burger c2 - lever le max-width:100% qui clampait le panneau aux 44px du parent */
@media (max-width:1024px){.elementor-element-h4navm nav.elementor-nav-menu--dropdown{max-width:none !important;min-width:0 !important;}}

/* 2026-08-26 burger FINAL — panneau plein ecran sous le header (specificite x4 : une regle Elementor
   !important plus precise ecrasait position/width ; prouve par injection). */
@media (max-width:1024px){
html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown{
  position:fixed !important;left:0 !important;right:0 !important;width:100vw !important;max-width:none !important;
  max-height:72vh !important;overflow-y:auto !important;background:#F7F3EC !important;
  box-shadow:0 12px 30px rgba(18,32,67,.18) !important;z-index:9999 !important;
}
html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown a{
  width:100% !important;box-sizing:border-box !important;padding:14px 24px !important;font-size:16px !important;color:#1D3668 !important;justify-content:flex-start !important;
}
}

/* 2026-08-26 burger c5 - top fixe sous le header (le JS posait un top en coordonnees de page = hors ecran) */
@media (max-width:1024px){html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown{top:148px !important;bottom:auto !important;transform:none !important;}}

/* 2026-08-26 burger c6 — ancrage SOUS la barre mobile (le top fixe a 148px passait SOUS la barre d'admin WP
   et recouvrait le logo chez Christine). Ancre = h4bar2 (pleine largeur) ; intermediaires en static. 
   + fonds gris actif/survol remplaces par la charte. */
@media (max-width:1024px){
  .elementor-element-h4bar2{position:relative !important;}
  .elementor-element-h4bar2in,.elementor-element-h4mstack,.elementor-element-h4mrow,.elementor-element-h4mri,.elementor-element-h4navm{position:static !important;}
  html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown{
    position:absolute !important;top:100% !important;left:0 !important;right:0 !important;width:100% !important;
  }
  html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown a,
  html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown a.elementor-item-active,
  html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown a:hover,
  html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown a:focus{
    background-color:transparent !important;color:#1D3668 !important;
  }
  html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown a.elementor-item-active{
    background-color:#FDEBDD !important;
  }
}

/* 2026-08-26 burger c7 - etat FERME retabli (mes important ecrasaient la fermeture Elementor) : cache tant que aria-hidden=true */
@media (max-width:1024px){html body .elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm.elementor-element-h4navm nav.elementor-nav-menu--dropdown[aria-hidden="true"]{display:none !important;}}

/* 2026-08-28 — trait de liaison des 4 etapes « Comment commander » (6 pages gammes).
   Du bord droit de la pastille 1 au bord gauche de la pastille 4, derriere les pastilles 2-3.
   Geometrie mesuree : rangee 1180px, pastilles 76px en haut de rangee -> mi-hauteur 38px ; 539/1361 -> 15.17%/84.83%. */
@media (min-width:1025px){
  .elementor-element-pl00046,.elementor-element-ck00060,.elementor-element-pd00047,
  .elementor-element-pc00048,.elementor-element-bo00040,.elementor-element-c000007{
    position:relative;z-index:0;
  }
  .elementor-element-pl00046::before,.elementor-element-ck00060::before,.elementor-element-pd00047::before,
  .elementor-element-pc00048::before,.elementor-element-bo00040::before,.elementor-element-c000007::before{
    content:"";position:absolute;z-index:-1;top:36px;height:4px;border-radius:2px;
    left:15.17%;right:15.17%;background:#1D3668;
  }
}

/* 2026-08-28 trait etapes c2 — REPRODUCTION EXACTE de la maquette 01-editorial-home-v15.html :
   .howto-grid::before = top:38px; left:10%; right:10%; height:2px; rgba(18,32,67,.3).
   Les extremites finissent SOUS les pastilles 1 et 4 (colonnes z-index:1) -> jamais de depassement. */
@media (min-width:1025px){
  .elementor-element-pl00046::before,.elementor-element-ck00060::before,.elementor-element-pd00047::before,
  .elementor-element-pc00048::before,.elementor-element-bo00040::before,.elementor-element-c000007::before{
    top:38px !important;left:10% !important;right:10% !important;height:2px !important;
    border-radius:0 !important;background:rgba(18,32,67,.3) !important;z-index:0 !important;
  }
  .elementor-element-pl00046 > .e-con,.elementor-element-ck00060 > .e-con,.elementor-element-pd00047 > .e-con,
  .elementor-element-pc00048 > .e-con,.elementor-element-bo00040 > .e-con,.elementor-element-c000007 > .e-con{
    position:relative;z-index:1;
  }
}

/* 2026-08-28 trait etapes c3 — FIDELE MAQUETTE (01-editorial-home-v15.html) et robuste a toute largeur :
   1) on retire les anciennes lignes en % de rangee (elles debordaient chez Christine) ;
   2) segments portes par CHAQUE colonne (centre -> centre suivant, gap flex 28px) : impossible de depasser la pastille 4 ;
   3) halo maquette retabli sur les pastilles : box-shadow 0 0 0 8px rgba(18,32,67,.18). */
@media (min-width:1025px){
  .elementor-element-pl00046::before,.elementor-element-ck00060::before,.elementor-element-pd00047::before,
  .elementor-element-pc00048::before,.elementor-element-bo00040::before,.elementor-element-c000007::before{
    display:none !important;content:none !important;
  }
  .elementor-element-pl00046 > .e-con:not(:last-child)::after,
  .elementor-element-ck00060 > .e-con:not(:last-child)::after,
  .elementor-element-pd00047 > .e-con:not(:last-child)::after,
  .elementor-element-pc00048 > .e-con:not(:last-child)::after,
  .elementor-element-bo00040 > .e-con:not(:last-child)::after,
  .elementor-element-c000007 > .e-con:not(:last-child)::after{
    content:"";position:absolute;top:38px;left:50%;width:calc(100% + 28px);height:2px;
    background:rgba(18,32,67,.3);z-index:-1;
  }
}
.hcirc{box-shadow:0 0 0 8px rgba(18,32,67,.18);}

/* 2026-08-28 trait etapes HOME (rangee c102), meme technique colonne-a-colonne */
@media (min-width:1025px){.elementor-element-c102 > .e-con:not(:last-child)::after{content:"";position:absolute;top:38px;left:50%;width:calc(100% + 28px);height:2px;background:rgba(18,32,67,.3);z-index:-1;}.elementor-element-c102 > .e-con{position:relative;z-index:1;}}

/* ===== Compositions produits en puces (27/08, demande Mathilde) — bloc final ===== */
/* Les modèles produit stylent déjà li::before (maquette, ex. .elementor-332 …nacc43 li::before, top:.5em 8px).
   Ce bloc reprend EXACTEMENT ces métriques en secours + gère les colonnes. Ne pas ajouter de padding vertical au li. */
.compo-puces{list-style:none;margin:0;padding:0;columns:1}
@media (min-width:768px){.compo-puces:has(li:nth-child(5)){columns:2;column-gap:44px}}
.compo-puces li{position:relative;padding-left:1.05rem;margin-bottom:.55rem;break-inside:avoid;-webkit-column-break-inside:avoid}
.compo-puces li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:#F2A541}

/* ===== MENU MOBILE 28/08 — reproduire la maquette « bon-menu-mobile » (S21 = 360 px CSS) ===== */
@media (max-width: 767px) {
  /* — Barre orange : UNE ligne compacte — */
  html body .elementor-element.elementor-element-h4bar1 { padding-top: 6px; padding-bottom: 6px; }
  html body .elementor-element.elementor-element-h4b1 { flex-wrap: nowrap; padding: 0 10px; gap: 0; }
  html body .elementor-element.elementor-element-h4b1lwrap,
  html body .elementor-element.elementor-element-h4b1l { flex-wrap: nowrap; gap: 6px; min-width: 0; }
  html body .elementor-element.elementor-element-h4b1r { flex-wrap: nowrap; gap: 6px; flex-shrink: 0; }
  /* feuille + téléphone : icône nue, sans cercle (comme la maquette) */
  html body .elementor-element.elementor-element-h4ic1 .elementor-icon,
  html body .elementor-element.elementor-element-h4ic2 .elementor-icon {
    background: none !important; border: none !important; box-shadow: none !important;
    width: auto; height: auto; padding: 0; font-size: 15px;
  }
  html body .elementor-element.elementor-element-h4ic1, html body .elementor-element.elementor-element-h4ic2 { width: auto; }
  html body .elementor-element.elementor-element-h4tx1 p, html body .elementor-element.elementor-element-h4tx1,
  html body .elementor-element.elementor-element-h4tx2 p, html body .elementor-element.elementor-element-h4tx2 { font-size: 12.5px; white-space: nowrap; }
  /* réseaux : cercles conservés mais réduits */
  html body .elementor-element.elementor-element-h4ic3 .elementor-icon,
  html body .elementor-element.elementor-element-h4ic4 .elementor-icon {
    width: 27px; height: 27px; font-size: 12px; display: flex; align-items: center; justify-content: center; padding: 0;
  }
  /* — Bandeau crème : logo à gauche, icônes à droite, même ligne — */
  html body .elementor-element.elementor-element-h4bar2 { padding-top: 10px; padding-bottom: 12px; }
  html body .elementor-element.elementor-element-h4bar2in, html body .elementor-element.elementor-element-h4mstack { padding: 0; gap: 10px; }
  html body .elementor-element.elementor-element-h4mrow { flex-wrap: nowrap; justify-content: space-between; align-items: center; padding: 0 6px; min-height: 0; }
  html body .elementor-element.elementor-element-h4logom { width: 150px; max-width: 45%; }
  html body .elementor-element.elementor-element-h4mri { flex-wrap: nowrap; gap: 6px; padding: 0; width: auto; }
  html body .elementor-element.elementor-element-h4accm, html body .elementor-element.elementor-element-h4panm { padding: 0; width: auto; }
  html body .elementor-element.elementor-element-h4accmic .elementor-icon, html body .elementor-element.elementor-element-h4panmic .elementor-icon { font-size: 24px; }
  /* — Bouton devis : centré, largeur contenue — */
  html body .elementor-element.elementor-element-h4devisw { width: auto; align-self: center; padding: 0; }
  html body .elementor-element.elementor-element-h4devisf { width: auto; }
  html body .elementor-element.elementor-element-h4devisf .elementor-button { padding: 13px 30px; font-size: 13px; }
}
@media (max-width: 374px) {
  html body .elementor-element.elementor-element-h4tx1 p, html body .elementor-element.elementor-element-h4tx1,
  html body .elementor-element.elementor-element-h4tx2 p, html body .elementor-element.elementor-element-h4tx2 { font-size: 11.5px; }
  html body .elementor-element.elementor-element-h4b1 { padding: 0 6px; }
  html body .elementor-element.elementor-element-h4b1l { gap: 4px; }
}

/* Menu mobile 28/08 — v2 finale (reduction 20 % demandee par Christine, sans BOM) */
@media (max-width:767px){
html body .elementor-element.elementor-element-h4bar1{padding-top:5px;padding-bottom:5px}
html body .elementor-element.elementor-element-h4tx1 p,html body .elementor-element.elementor-element-h4tx1,
html body .elementor-element.elementor-element-h4tx2 p,html body .elementor-element.elementor-element-h4tx2{font-size:11px}
html body .elementor-element.elementor-element-h4tx1{margin-right:6px}
html body .elementor-element.elementor-element-h4ic1 .elementor-icon,html body .elementor-element.elementor-element-h4ic2 .elementor-icon{font-size:13px}
html body .elementor-element.elementor-element-h4ic3 .elementor-icon,html body .elementor-element.elementor-element-h4ic4 .elementor-icon{width:23px;height:23px;font-size:11px}
html body .elementor-element.elementor-element-h4ic3 .elementor-icon svg,html body .elementor-element.elementor-element-h4ic4 .elementor-icon svg{width:12px;height:12px}
html body .elementor-element.elementor-element-h4bar2{padding-top:8px;padding-bottom:10px}
html body .elementor-element.elementor-element-h4mstack{gap:8px}
html body .elementor-element.elementor-element-h4logom{width:120px}
html body .elementor-element.elementor-element-h4accmic .elementor-icon,html body .elementor-element.elementor-element-h4panmic .elementor-icon{font-size:19px}
html body .elementor-element.elementor-element-h4panmbd{transform:scale(.85)}
html body .elementor-element.elementor-element-h4navm .elementor-menu-toggle{font-size:20px;padding:4px}
html body .elementor-element.elementor-element-h4devisf .elementor-button{padding:10px 24px;font-size:11.5px}
}

/* Menu mobile 28/08 — v3 finale : reduction de 50 % (demande Christine), specificite > template 1140 */
@media (max-width:767px){
html body .elementor-1140 .elementor-element.elementor-element-h4devisf .elementor-button{padding:8px 18px;font-size:10px}
html body .elementor-1140 .elementor-element.elementor-element-h4accmic .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4panmic .elementor-icon svg{width:14px;height:14px}
html body .elementor-1140 .elementor-element.elementor-element-h4navm .elementor-menu-toggle{font-size:14px;padding:4px}
html body .elementor-1140 .elementor-element.elementor-element-h4navm .elementor-menu-toggle svg{width:14px;height:14px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic1 .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4ic2 .elementor-icon svg{width:11px;height:11px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon{width:18px;height:18px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon svg{width:9px;height:9px}
html body .elementor-1140 .elementor-element.elementor-element-h4tx1,
html body .elementor-1140 .elementor-element.elementor-element-h4tx1 p,
html body .elementor-1140 .elementor-element.elementor-element-h4tx2,
html body .elementor-1140 .elementor-element.elementor-element-h4tx2 p{font-size:10px}
html body .elementor-1140 .elementor-element.elementor-element-h4logom{width:75px}
html body .elementor-1140 .elementor-element.elementor-element-h4bar1{padding-top:4px;padding-bottom:4px}
html body .elementor-1140 .elementor-element.elementor-element-h4bar2{padding-top:6px;padding-bottom:8px}
html body .elementor-1140 .elementor-element.elementor-element-h4mstack{gap:6px}
html body .elementor-1140 .elementor-element.elementor-element-h4accm,
html body .elementor-1140 .elementor-element.elementor-element-h4panm{min-height:0}
html body .elementor-1140 .elementor-element.elementor-element-h4mrow{min-height:0}
}

/* Menu mobile 28/08 — v4 : glyphes des pastilles reseaux visibles apres reduction */
@media (max-width:767px){
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon{display:flex;align-items:center;justify-content:center;padding:0;font-size:9px;line-height:1}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon i,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon i{font-size:9px;line-height:1}
}

/* Menu mobile 28/08 — v5 : pictos, burger et CTA a la bonne taille (logo reste reduit) */
@media (max-width:767px){
html body .elementor-1140 .elementor-element.elementor-element-h4accmic .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4panmic .elementor-icon svg{width:24px;height:24px}
html body .elementor-1140 .elementor-element.elementor-element-h4panmbd{transform:none}
html body .elementor-1140 .elementor-element.elementor-element-h4navm .elementor-menu-toggle{font-size:24px;padding:6px}
html body .elementor-1140 .elementor-element.elementor-element-h4navm .elementor-menu-toggle svg{width:24px;height:24px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon{width:24px;height:24px;font-size:12px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon i,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon i{font-size:12px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon svg{width:12px;height:12px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic1 .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4ic2 .elementor-icon svg{width:13px;height:13px}
html body .elementor-1140 .elementor-element.elementor-element-h4devisf .elementor-button{padding:12px 28px;font-size:12px}
}


/* ==== TABLEAU ALLERGENES (prototype salade-cesar, 31/08) ==== */
.allerg-tab{border-collapse:collapse;margin:12px 0 8px;width:100%;max-width:620px;font-size:15px;line-height:1.4}
.allerg-tab th{text-align:left;padding:8px 12px;border-bottom:2px solid #1D3668;color:#1D3668;font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.allerg-tab td{padding:7px 12px;border-bottom:1px solid #EBE4D8;vertical-align:top}
.allerg-tab td:first-child{font-weight:600;width:185px}
.allerg-tab tr.a-non td{color:#A9A49A;font-weight:400}
.a-check::before{content:"\2713";color:#2F7D4F;font-weight:700;margin-right:9px;font-size:16px}
.a-croix::before{content:"\2715";color:#C7C2B6;font-size:13px}
.allerg-src{color:#6E6E6E}
@media(max-width:520px){.allerg-tab td:first-child{width:auto}.allerg-tab td,.allerg-tab th{padding:6px 8px;font-size:14px}}

/* espacements pastilles regimes — prototype postid-644 (salade-cesar) */
body.postid-644 .elementor-element-5bede56 p{margin-bottom:6px!important}
body.postid-644 .elementor-element-e561333 .dv-diet-tags{margin:0!important}
body.postid-644 .elementor-element-044c6fb{margin-top:16px!important}


/* ==== ALLERGENES deploiement 02/09 : padding haut homogene des accordeons + espacement pastilles generalise ==== */
details.e-n-accordion-item > [role="region"]{padding-top:15px}
.elementor-widget-text-editor:has(+ .elementor-widget-html .dv-diet-tags) p{margin-bottom:6px}
.elementor-widget-html:has(.dv-diet-tags) + .elementor-widget-text-editor{margin-top:16px}
.allerg-traces{margin-bottom:10px}


/* les badges regimes sont desormais rendus par un widget SHORTCODE (02/09) : memes espacements que la version html */
.elementor-widget-text-editor:has(+ .elementor-widget-shortcode .dv-diet-tags) p{margin-bottom:6px}
.elementor-widget-shortcode:has(.dv-diet-tags) + .elementor-widget-text-editor{margin-top:16px}


/* cartes blog de la home : vignette recadrée, plus d'image portrait geante (03/09) */
.dblimg img{aspect-ratio:16/10;object-fit:cover;width:100%;display:block}


/* heros des pages categories : le bloc d'intro (largeur fixe 640px) se CENTRE dans son conteneur — le texte etait centre mais le bloc cale a gauche (03/09) */
.elementor-element.elementor-element-bo00007,
.elementor-element.elementor-element-txt106,
.elementor-element.elementor-element-ck00022,
.elementor-element.elementor-element-pc0000d,
.elementor-element.elementor-element-pd0000c{margin-left:auto !important;margin-right:auto !important}


/* =========================================================================
   CAPSULE QUANTITE SUR LES CARTES PRODUITS  (ajout du 12/09/2026)
   A coller a la fin de wp-content/themes/astra-child/style.css

   Contexte : la carte produit porte un lien etendu (.dv-card-cta a::after,
   position:absolute, z-index:2) qui la rend cliquable sur toute sa surface.
   La capsule doit donc passer AU-DESSUS de cette couche, sinon elle est
   totalement incliquable. C'est le role de position:relative + z-index:3.
   ========================================================================= */

/* Le widget Code court porte la classe deliss-qty-slot. C'est LUI le flex-item
   de la ligne du bas : la marge automatique se pose donc ici, pas sur .deliss-qty.
   Elle pousse la capsule a droite et laisse « Voir le produit » a gauche. */
.elementor-widget.deliss-qty-slot{margin-left:auto;align-self:center}

.deliss-qty{
	position:relative;
	z-index:3;
	display:flex;
	align-items:center;
	flex:0 0 auto;
	font-family:"Oswald",sans-serif;
}

/* display:flex bat la regle par defaut de [hidden] : il faut la reposer ici,
   sinon le bouton + et la capsule s'affichent en meme temps. */
.deliss-qty [hidden]{display:none !important}

/* ATTENTION A LA SPECIFICITE (releve du 12/09/2026) : le kit Elementor pose
   « .elementor-kit-9 button { background-color: ...; border-radius:6px; padding:16px 30px } »,
   soit 0-2-0. Un simple « .deliss-qty__add » (0-1-0) perd, et le bouton ressort blanc.
   D'ou « .deliss-qty button.<classe> » (0-2-1), qui gagne sans aucun !important. */
.deliss-qty button.deliss-qty__add{
	width:44px;height:44px;min-width:0;
	border:0;border-radius:10px;
	background:#F2A541;background-color:#F2A541;color:#fff;
	font-size:26px;line-height:1;font-weight:400;
	padding:0;cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	transition:background-color .2s ease,transform .15s ease;
}
.deliss-qty button.deliss-qty__add:hover{background-color:#E0932C}
.deliss-qty button.deliss-qty__add:active{transform:scale(.94)}

.deliss-qty .deliss-qty__capsule{
	display:flex;align-items:center;
	background:#F2A541;border-radius:10px;padding:3px;
}
.deliss-qty .deliss-qty__capsule button{
	width:38px;height:38px;min-width:0;
	border:0;border-radius:8px;
	background:transparent;background-color:transparent;color:#fff;
	font-size:22px;line-height:1;padding:0;cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	transition:background-color .15s ease;
}
.deliss-qty .deliss-qty__capsule button:hover{background-color:rgba(255,255,255,.22)}
.deliss-qty .deliss-qty__capsule button:active{transform:scale(.9)}

.deliss-qty .deliss-qty__nb{
	min-width:42px;height:38px;
	background:#fff;color:#122043;border-radius:8px;
	font-size:17px;font-weight:600;
	display:flex;align-items:center;justify-content:center;
}

/* RGAA 10.7 : le focus clavier doit rester visible sur fond orange. */
.deliss-qty button:focus-visible{outline:3px solid #1D3668;outline-offset:2px}

/* Pendant l'appel au serveur, la capsule est grisee et ne repond plus. */
.deliss-qty[data-etat="chargement"]{opacity:.45;pointer-events:none}

/* Message du serveur (minimum, retrait, refus) : bulle transitoire. */
.deliss-qty__msg{
	position:absolute;bottom:calc(100% + 8px);right:0;
	background:#122043;color:#fff;
	font-family:"Inter",sans-serif;font-size:12px;line-height:1.35;
	padding:6px 10px;border-radius:8px;white-space:nowrap;z-index:5;
	box-shadow:0 6px 18px rgba(18,32,67,.22);
}

/* -------------------------------------------------------------------------
   CARTES MONTEES A LA MAIN (6 buffets, 3 formules cocktail, petit dej, pause cafe)
   Leur ligne du bas contient deja un bloc prix + un bouton. Ajouter la capsule
   faisait passer le total au-dessus de la largeur disponible (575 px pour 538 px
   utiles, mesure du 12/09) : la capsule tombait seule sur une deuxieme ligne.
   On force donc la ligne unique et on laisse le bloc prix se retrecir.
   ------------------------------------------------------------------------- */
.e-con:has(> .deliss-qty-manuelle){flex-wrap:nowrap}
/* Seul le bloc prix se retrecit : le bouton garde son libelle sur une ligne. */
.e-con:has(> .deliss-qty-manuelle) > *:first-child{min-width:0;flex-shrink:1}
.e-con:has(> .deliss-qty-manuelle) > .elementor-widget-button{flex-shrink:0}
.elementor-widget.deliss-qty-manuelle{margin-left:0;flex-shrink:0}

/* Sous 768 px, la ligne repasse en colonne : la capsule se cale a gauche,
   sous le bouton, et ne s'etire pas sur toute la largeur. */
@media (max-width:767px){
	.e-con:has(> .deliss-qty-manuelle){flex-wrap:wrap}
	.elementor-widget.deliss-qty-manuelle{align-self:flex-start}
}

/* Ecran tactile : pas d'etat survol colle apres un tap, cibles portees a 44 px. */
@media (hover:none){
	.deliss-qty button.deliss-qty__add:hover{background-color:#F2A541}
	.deliss-qty .deliss-qty__capsule button:hover{background-color:transparent}
	.deliss-qty .deliss-qty__capsule button{width:44px;height:44px}
	.deliss-qty .deliss-qty__nb{height:44px}
}

/* Sous 420 px, la ligne du bas se resserre pour que rien ne deborde. */
@media (max-width:420px){
	.deliss-qty__msg{white-space:normal;max-width:180px}
}


/* =========================================================================
   CHAMP « ALLERGIES OU INTOLERANCES » (ajout du 12/09/2026)
   Ecran de validation de commande + rappel dans l'espace client.
   ========================================================================= */

.woocommerce-checkout .deliss-allergies label{
	font-family:"Oswald",sans-serif;
	text-transform:uppercase;
	letter-spacing:.6px;
	color:#1D3668;
}
/* L'identifiant plutot qu'une classe : le squelette WooCommerce du theme enfant
   impose deja une taille de police aux champs du tunnel (14,72 px mesures le 12/09),
   avec une specificite qu'une simple classe ne bat pas. */
#deliss_allergies{
	min-height:88px;
	border:1px solid #E8E2D6;
	border-radius:10px;
	padding:10px 12px;
	font-family:"Inter",sans-serif;
	/* 16 px minimum : en dessous, iPhone zoome tout seul a la saisie. */
	font-size:16px;
	line-height:1.5;
	width:100%;
}
#deliss_allergies:focus{
	border-color:#F2A541;
	outline:2px solid rgba(242,165,65,.35);
	outline-offset:1px;
}
.woocommerce-checkout .deliss-allergies .description{
	font-size:13px;
	color:#6B6B6B;
	margin-top:6px;
	display:block;
}

/* Rappel dans l'espace client, sous le detail de la commande. */
.deliss-allergies-rappel{
	background:#FDECEA;
	border-left:4px solid #C0392B;
	border-radius:10px;
	padding:12px 14px;
	margin:16px 0;
	font-size:14px;
	line-height:1.5;
}


/* =========================================================================
   ECRAN DE VALIDATION + ECRAN DE CONFIRMATION (ajout du 12/09/2026)
   Les deux vivent sur la meme page WordPress : WooCommerce bascule sur le
   remerciement quand l'adresse porte le point de terminaison order-received.
   Le PHP pose alors la classe .deliss-commande-confirmee sur le <body>.
   ========================================================================= */

/* Sur la confirmation, les trois etapes sont franchies : plus aucune
   n'est « en cours », et le soulignement orange disparait. */
body.deliss-commande-confirmee .deliss-etape .elementor-heading-title{
	color:#1D3668;
}
body.deliss-commande-confirmee .deliss-etape-3{
	border-bottom:0 !important;
}
/* Une coche discrete devant chaque etape franchie. */
body.deliss-commande-confirmee .deliss-etape .elementor-heading-title::before{
	content:"\2713\00a0";
	color:#2D8A47;
	font-weight:700;
}

/* Le formulaire de commande herite du squelette WooCommerce du theme enfant :
   on ne redefinit ici que ce que l'habillage Elementor ne couvre pas. */
.deliss-checkout-form .woocommerce{
	max-width:1180px;
	margin:0 auto;
}

/* Confirmation : le bloc de remerciement respire, et la liste des details
   de commande garde la meme carte que le reste du tunnel. */
body.deliss-commande-confirmee .woocommerce-order{
	max-width:1180px;
	margin:0 auto;
}
body.deliss-commande-confirmee .woocommerce-thankyou-order-received{
	background:#EDF6EF;
	border-left:4px solid #2D8A47;
	border-radius:10px;
	padding:14px 18px;
	font-family:"Oswald",sans-serif;
	font-size:18px;
	letter-spacing:.5px;
	color:#1D3668;
}



/* ===== Articles de blog — retours Christine du 14/09 au soir ===== */
/* Ecart sous les titres du corps d'article : 10 px maxi (retour Christine 14/09).
   Corrige directement dans les regles .dart-body !important ci-dessus :
   marge basse -10px + gap conteneur 20px = 10px reels sous H2 et H3. */

/* Tableaux : jamais de scroll horizontal. Bureau : tableau plein cadre. */
.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor table {
	max-width: 100%;
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}
.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor td,
.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor th {
	overflow-wrap: break-word;
}
/* Mobile : chaque ligne devient une carte empilee, l'intitule de colonne
   est reinjecte devant la valeur via data-label (pose au montage). */
@media (max-width: 767px) {
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor table,
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor tbody,
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor tr,
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor td {
		display: block;
		width: 100%;
	}
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor thead {
		display: none;
	}
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor tr {
		border: 1px solid #e6e2da;
		border-radius: 8px;
		margin-bottom: 10px;
		padding: 8px 12px;
	}
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor td {
		border: 0;
		padding: 3px 0;
	}
	.single-post .elementor-widget-theme-post-content .elementor-widget-text-editor td[data-label]::before {
		content: attr(data-label) " : ";
		font-weight: 600;
	}
}

/* Visuels du corps d'article : angles arrondis comme le reste du site (retour 15/09). */
.dart-body .elementor-widget-theme-post-content .elementor-widget-image img {
	border-radius: 10px;
}

/* Regle transversale articles (gravee 15/09) : chaque image du corps respire pareil,
   12 px + le gap de 20 px du conteneur = 32 px reels au-dessus et en dessous. */
.dart-body .elementor-widget-theme-post-content .elementor-widget-image {
	margin-top: 12px !important;
	margin-bottom: 12px !important;
}

/* Footer : listes de liens sans puces, retrait remis a zero, aere en mobile (retour 15/09). */
.elementor-233 .elementor-widget-text-editor ul {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
.elementor-233 .elementor-widget-text-editor li {
	list-style: none;
	margin: 0 0 12px;
	padding-left: 0;
}

/* Barre orange : plus de chevauchement des textes (recette 15/09, P1-1).
   Les libelles gardent leur largeur naturelle et restent sur une ligne. */
.hdr4-b1-left { gap: 10px !important; }
.hdr4-b1-left .elementor-widget-text-editor { width: auto !important; flex-shrink: 0; }
.hdr4-b1-left .elementor-widget-text-editor p { white-space: nowrap; }
/* les ronds des pictos debordaient de boites a largeur nulle : la boite epouse le rond
   (max-content suit la taille du picto a CHAQUE largeur ; 44px fixe ecrasait les 23px
   mobiles et creait un defilement horizontal de 41/70 px, constate le 15/09) */
.hdr4-b1-left .elementor-widget-icon,
.hdr4-b1-right .elementor-widget-icon { min-width: max-content !important; width: auto !important; flex-shrink: 0; }
.hdr4-b1-right { gap: 10px !important; }
/* les deux groupes avaient des largeurs figees : le gauche debordait sous le droit */
.hdr4-b1-left, .hdr4-b1-right { width: auto !important; max-width: none !important; flex: 0 0 auto !important; }

/* ===== TOP BAR 15/09 — compaction tablette + affinage mobile =====
   L'ajout du lien « Conseils et Recettes » (picto + texte) a elargi la barre :
   defilement horizontal mesure de 39 px a 820 et 9 px a 390. La tranche 768-1024
   n'avait AUCUNE regle de compaction (la barre desktop s'y rendait telle quelle). */
@media (min-width:768px) and (max-width:1024px){
html body .elementor-1140 .elementor-element.elementor-element-h4b1{padding:0 12px}
html body .elementor-1140 .elementor-element.elementor-element-h4b1lwrap,
html body .elementor-1140 .elementor-element.elementor-element-h4b1l,
html body .elementor-1140 .elementor-element.elementor-element-h4b1r{gap:7px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic1 .elementor-icon,
html body .elementor-1140 .elementor-element.elementor-element-h4ic2 .elementor-icon,
html body .elementor-1140 .elementor-element.elementor-element-h4icblog .elementor-icon{width:30px;height:30px;font-size:12px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic1 .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4ic2 .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4icblog .elementor-icon svg{width:13px;height:13px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon{width:26px;height:26px;font-size:11px}
html body .elementor-1140 .elementor-element.elementor-element-h4ic3 .elementor-icon svg,
html body .elementor-1140 .elementor-element.elementor-element-h4ic4 .elementor-icon svg{width:12px;height:12px}
html body .elementor-1140 .elementor-element.elementor-element-h4tx1,
html body .elementor-1140 .elementor-element.elementor-element-h4tx1 p,
html body .elementor-1140 .elementor-element.elementor-element-h4tx2,
html body .elementor-1140 .elementor-element.elementor-element-h4tx2 p,
html body .elementor-1140 .elementor-element.elementor-element-h4txblog,
html body .elementor-1140 .elementor-element.elementor-element-h4txblog p{font-size:12px;white-space:nowrap}
}
@media (max-width:767px){
html body .elementor-1140 .elementor-element.elementor-element-h4b1{padding:0 3px}
html body .elementor-1140 .elementor-element.elementor-element-h4b1lwrap,
html body .elementor-1140 .elementor-element.elementor-element-h4b1l,
html body .elementor-1140 .elementor-element.elementor-element-h4b1r{gap:4px}
}

/* ===== RETOURS CHRISTINE 15/09 SOIR ===== */
/* Listes d'astuces des articles : puce en coche orange (demande : « la bullet, ca pourrait etre un check ») */
.dart-body ul.astuces-check{list-style:none;margin:0 0 16px;padding:0}
.dart-body ul.astuces-check li{position:relative;padding-left:1.9em;margin-bottom:.7em}
.dart-body ul.astuces-check li::before{content:"\2713";position:absolute;left:0;top:0;color:#F2A541;font-weight:700;font-size:1.1em;line-height:1.4}
/* Bloc auteure du gabarit article (178) : la photo portrait 800x1000 rendait un OVALE.
   On force un rond parfait : boite carree + recadrage haut (le visage reste). */
.elementor-element-img45 img{width:80px !important;height:80px !important;object-fit:cover;object-position:center top;border-radius:50% !important}

/* Cartes « Decouvrir d'autres articles » (loop-item 184) : hauteurs harmonisees.
   La grille etire deja les cellules ; c'est la carte blanche interieure (dblcard)
   qui s'arretait a son contenu (431 px vs 604 mesures le 15/09). */
.e-loop-item > .dblcard{height:100%}
.e-loop-item .dblcard .elementor-element-btnlire1{margin-top:auto}

/* Boutique (archive produits, noindex) 16/09 : l ajout rapide « + » du modele de carte 718
   est concu pour les pages gammes ; sur /boutique/ il etait tantot masque tantot inerte.
   On le retire de cette archive : la carte garde « Voir le produit », l achat se fait
   sur la fiche. */
body.post-type-archive-product .e-loop-item .deliss-qty,
body.post-type-archive-product .e-loop-item .deliss-loop-add,
body.post-type-archive-product .e-loop-item .deliss-qty__plus{display:none !important}

/* Verdict 16/09 : le conteneur h4rtop (Mon compte / Panier) recouvrait les icones
   sociales du header sur TOUTES les pages en desktop : clics LinkedIn/Instagram morts.
   Le conteneur laisse passer les clics ; ses propres liens restent cliquables. */
html body .elementor-element.elementor-element-h4rtop{pointer-events:none}
html body .elementor-element.elementor-element-h4rtop a,
html body .elementor-element.elementor-element-h4rtop button,
html body .elementor-element.elementor-element-h4rtop .elementor-widget{pointer-events:auto}

/* FAQ : questions des accordeons sans soulignement, gras conserve (T10 repasse 16/09) */
.elementor-accordion .elementor-accordion-title,
.e-n-accordion-item-title {
	text-decoration: none;
}

/* T12 repasse 16/09 : styles inline des <p> remplaces par des classes (rendu identique) */
body p.deliss-p0{margin:0}
body p.deliss-p4{margin:4px 0 0}
body p.deliss-p10{margin:10px 0 0}
body p.deliss-nowrap{white-space:nowrap}
body p.deliss-mention{margin:10px 0 0;font-size:13px;color:#8A8A8A;font-style:italic}
body p.deliss-citation{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #E8E2D6;font-style:italic;color:#555555}

/* T10v2 : surclasse .ast-single-post .entry-content a (Astra) qui soulignait les questions FAQ */
.ast-single-post .entry-content a.elementor-accordion-title,
.entry-content .elementor-accordion .elementor-accordion-title {
	text-decoration: none;
}

/* T16 mon-compte : bloc Se connecter / Creation de compte recadre (largeur des encadres du site) */
.woocommerce-account #customer_login {
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

/* T17b : la colonne sommaire des pages legales garde ses 350px (plus de retrecissement flex) */
.page-id-3 .elementor-element-c26,
.page-id-80 .elementor-element-c26,
.page-id-81 .elementor-element-c26 {
	flex-shrink: 0;
}

/* T18 panier : bloc livraison/retrait sur fond creme, totaux aeres, liens a la charte */
.woocommerce-cart .deliss-cart-delivery {
	background: #FAF6F0;
	border: 1px solid #EDE0CC;
	border-radius: 12px;
}
.woocommerce-cart .cart_totals {
	padding: 15px 15px 0;
}
.woocommerce-cart .shop_table td.product-name a {
	color: var(--e-global-color-accent, #F2A541);
	font-weight: 600;
}
.woocommerce-cart .shipping-calculator-button {
	color: var(--e-global-color-accent, #F2A541);
	font-size: 17px;
	font-weight: 600;
}

/* T18b panier : liens du widget panier en orange charte (variables Elementor), totaux aeres */
.elementor-widget-woocommerce-cart {
	--links-normal-color: #F2A541;
	--links-hover-color: #D9871F;
	--product-link-normal-color: #F2A541;
	--product-link-hover-color: #D9871F;
}
.elementor-widget-woocommerce-cart .cart-collaterals .cart_totals {
	padding: 15px 15px 0;
}

/* T20 fiche produit : air sous le bouton Ajouter au panier, avant les bandeaux infos */
.product-achat .elementor-widget-woocommerce-product-add-to-cart {
	margin-bottom: 30px;
}

/* T20c : libelle Quantite centre sur la box (90px de large, alignee 16px apres le bord) */
.product-achat .elementor-widget-text-editor:has(+ .elementor-widget-woocommerce-product-add-to-cart) p {
	width: 90px;
	margin-left: 16px;
	text-align: center;
}

/* T20d : remplace le centrage T20c (90px fixe cassait les libelles longs des buffets).
   Libelle centre sur la box (min-width = 16px de decalage + 90px de box + 16px de symetrie),
   largeur naturelle conservee pour les libelles longs. */
.product-achat .elementor-widget-text-editor:has(+ .elementor-widget-woocommerce-product-add-to-cart) p {
	width: auto;
	display: inline-block;
	min-width: 122px;
	margin-left: 0;
	text-align: center;
	white-space: nowrap;
}

/* T24 cartes d articles (carte 184) : le bouton Lire l article se cale en bas,
   quelle que soit la longueur du resume - vaut accueil, "a lire aussi", et toute grille */
.e-loop-item .elementor-element-c82 {
	flex-grow: 1;
}
.e-loop-item .elementor-element-btnlire1 {
	margin-top: auto;
}

/* T24b : specificite alignee sur les regles per-widget du modele 184 */
.e-loop-item > .elementor-element.elementor-element-c83 {
	height: 100%;
}
.e-loop-item .elementor-element.elementor-element-c82 {
	flex-grow: 1;
}
.e-loop-item .elementor-element.elementor-element-btnlire1 {
	margin-top: auto;
}

/* T24c : bat la regle inline per-widget du modele 184 (0-5-0 > 0-3-0, ordre indiferent) */
.dblcard .elementor-element.elementor-element.elementor-element.elementor-element-btnlire1 {
	margin-top: auto;
}

/* T26 panier : selects du bloc livraison en blanc pur (contraste), totaux 20px haut/G/D */
.woocommerce-cart .deliss-cart-delivery select {
	background-color: #FFFFFF;
}
.elementor-widget-woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart_totals {
	padding: 20px 20px 0;
}


/* T31 (17/09/2026) — bandeaux de Mon compte cadrés, plus de full width */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error,
.woocommerce-account .wc-block-components-notice-banner {
    max-width: 820px;
}

/* T34 (17/09/2026) — champ Pays coupe (Mon compte / commande) : le select a pays unique
   heritait d'une hauteur/interligne qui rognait le texte. Valeurs sures, portee limitee. */
.woocommerce-account select.country_to_state,
.woocommerce-checkout select.country_to_state,
.woocommerce-account .select2-container .select2-selection--single,
.woocommerce-checkout .select2-container .select2-selection--single {
    height: auto !important;
    min-height: 44px;
    line-height: 1.5 !important;
    padding-top: 8px;
    padding-bottom: 8px;
}
.woocommerce-account .select2-selection--single .select2-selection__rendered,
.woocommerce-checkout .select2-selection--single .select2-selection__rendered {
    line-height: 1.7 !important;
}

/* T36b (17/09/2026) — le header ENTIER (barre orange + barre menu) reste colle en haut au
   defilement, ordi/tablette/mobile. Remplace le sticky Elementor pose sur la seule barre
   orange (le menu passait a moitie dessous). */
header.elementor-location-header {
    position: sticky;
    top: 0;
    z-index: 400;
}

/* T43 (17/09/2026) — mobile : 15px d'air au-dessus du logo dans le header colle */
@media (max-width: 767px) {
    .elementor-1140 .elementor-element.elementor-element-h4bar2 {
        --padding-top: 15px;
        padding-top: 15px;
    }
}

/* T44 (17/09/2026) — mobile : 30px au-dessus du logo (le 15px de T43 ne suffisait pas)
   + texte de la barre orange lisible (14px au lieu de la taille minuscule) */
@media (max-width: 767px) {
    .elementor-1140 .elementor-element.elementor-element-h4bar2 {
        --padding-top: 30px;
        padding-top: 30px;
    }
    .elementor-1140 .elementor-element.elementor-element-h4bar1 a,
    .elementor-1140 .elementor-element.elementor-element-h4bar1 span,
    .elementor-1140 .elementor-element.elementor-element-h4bar1 p,
    .elementor-1140 .elementor-element.elementor-element-h4bar1 .elementor-icon-list-text {
        font-size: 14px !important;
        line-height: 1.4 !important;
    }
}

/* T47 (17/09/2026) — panier : alerte visible quand on tente de commander sans date/creneau */
.deliss-cart-delivery.deliss-delivery-missing {
    outline: 2px solid #C0392B;
    outline-offset: 6px;
    border-radius: 4px;
}
.deliss-delivery-blocker {
    color: #C0392B;
    font-weight: 600;
    margin: 10px 0 0;
}

/* T50 (17/09/2026) — page de confirmation de commande : les blocs Adresse de facturation
   et Adresse de livraison cote a cote et centres (ils flottaient n'importe comment). */
.woocommerce-order .woocommerce-columns--addresses,
.woocommerce-view-order .woocommerce-columns--addresses {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: center;
}
.woocommerce-order .woocommerce-columns--addresses .woocommerce-column,
.woocommerce-view-order .woocommerce-columns--addresses .woocommerce-column {
    float: none;
    width: auto;
    flex: 0 1 340px;
    margin: 0;
}

/* T45 (20/09/2026, PROD) — mobile : la barre orange debordait a droite (telephone coupe).
   Cause : le 14px pose en T44 rendait la ligne plus large que l'ecran, sur des conteneurs
   en nowrap. On garde un texte lisible (12px), on autorise le retour a la ligne et on
   centre, pour que tout reste visible sans depassement. */
@media (max-width: 767px) {
    .elementor-1140 .elementor-element.elementor-element-h4bar1 a,
    .elementor-1140 .elementor-element.elementor-element-h4bar1 span,
    .elementor-1140 .elementor-element.elementor-element-h4bar1 p,
    .elementor-1140 .elementor-element.elementor-element-h4tx1 p,
    .elementor-1140 .elementor-element.elementor-element-h4tx1 a {
        font-size: 12px !important;
        line-height: 1.35 !important;
    }
    .elementor-1140 .elementor-element.elementor-element-h4b1,
    .elementor-1140 .elementor-element.elementor-element-h4b1lwrap,
    .elementor-1140 .elementor-element.elementor-element-h4b1l {
        --flex-wrap: wrap !important;
        flex-wrap: wrap !important;
        --justify-content: center !important;
        justify-content: center !important;
        row-gap: 4px !important;
    }
    .elementor-1140 .elementor-element.elementor-element-h4bar1 {
        overflow-x: hidden;
    }
}

/* T56 (20/09/2026, v2) - Message « ajouté au panier » sur mobile : de l'air sous le bouton.
   v1 était sans effet : le bloc « notices » plus haut dans ce fichier pose
   margin:.8rem 16px !important (et margin:0 0 0 auto !important sur le bouton),
   ce qui écrasait des marges sans !important. On reprend donc la même convention,
   en gardant les 16 px latéraux et le bouton aligné à droite.
   Réversible : supprimer ce bloc, ou restaurer style.css.avant-t56. */
@media (max-width: 767px) {
  body .woocommerce-message,
  body .woocommerce-error,
  body .woocommerce-info {
    margin: .8rem 16px 30px !important;
  }
  body .woocommerce-message a.button,
  body .woocommerce-error a.button,
  body .woocommerce-info a.button {
    margin: 14px 0 6px auto !important;
  }
}

/* T57 (20/09/2026, v2) - Cartes produits des pages de catégorie, sur mobile.
   Le pied de carte (conteneur 81d2c36 du gabarit de boucle 718) est en flex row
   avec flex-wrap en mobile et row-gap:0 : le lien « Voir le produit » occupe la
   première ligne, la capsule de quantité tombe juste dessous, collée, et la flèche
   du lien passe sous la capsule. On écarte les deux lignes par un row-gap.
   v1 posait un margin-top sur la capsule, sans effet visible.
   Réversible : supprimer ce bloc, ou restaurer style.css.avant-t57. */
@media (max-width: 767px) {
  body .elementor-element.elementor-element-81d2c36 {
    row-gap: 16px !important;
    padding-bottom: 6px !important;
  }
}

/* T59 (20/09/2026) - Bouton « Gérer le consentement », toujours visible.
   Complianz le pose à bottom:-35px pour une hauteur de 50px : seuls 15 px
   dépassent, et il ne remonte qu'au survol (animations mc_slideOut / mc_slideIn).
   On le cale au ras du bas, sans animation : le visiteur le voit en permanence
   et peut revenir sur son choix, ce que la CNIL demande.
   Le fichier banner-1-optin.css étant regénéré par le plugin, la surcharge vit ici.
   Réversible : supprimer ce bloc, ou restaurer style.css.avant-t59. */
body #cmplz-manage-consent .cmplz-manage-consent {
  bottom: 0 !important;
  animation: none !important;
}

/* T60 (20/09/2026) - Bouton « retour en haut » remonté au-dessus du bandeau de consentement.
   Depuis T59, le bouton « Gérer le consentement » occupe les 50 px du bas à droite
   (bottom:0, height:50px, right:40px) : la flèche de retour d'Astra le chevauchait.
   On la remonte sur ordinateur et tablette seulement, le rappel de consentement
   n'apparaissant pas en mobile.
   Réversible : supprimer ce bloc, ou restaurer style.css.avant-t60. */
@media (min-width: 769px) {
  body #ast-scroll-top {
    bottom: 70px !important;
  }
}
