/* qm-header.css : header natif (bloc Elementor 627), charge apres post-627.css.
   Ne contient que ce que le JavaScript faisait (header collant + etat « scrolled », burger, overlay de recherche,
   bouton panier maison) et les regles de l'Additional CSS du Customizer dont le header depend.
   Selecteurs scopes sur .qm-hdr (classe posee sur <header>). */

/* ---- 1. Header collant sans JS -------------------------------------------------------------------------
   Origine : conteneur 479f28d en position:absolute (post-627.css) par-dessus le hero, rendu fixe au defilement
   par sticky.min.js (classes elementor-sticky, elementor-sticky--active, elementor-sticky--effects : aucun CSS du
   site ne les cible, rien a remplacer), puis classe header-scrolled (fond noir pleine largeur) ajoutee a 300px
   par un snippet. Ici : le <header> colle au viewport avec une hauteur nulle ; le conteneur absolu (top:0 ; left:0)
   le suit et continue de recouvrir le contenu comme au repos. */
.qm-hdr.elementor-location-header{position:sticky;top:0;z-index:999;height:0;overflow:visible}
/* Hauteur reelle du bandeau (mesuree) : le conteneur est absolu, il ne pousse rien. Les zones sans hero (pages, blog, archive mobile) se decalent d'autant. */
:root{--qm-hdr-h:92px} /* 30/08 : bandeau 20 px du haut + barre 72 px = 92 (136 datait d'avant le retrait de « Beliebte Suchanfragen ») */
@media (max-width:1024px){:root{--qm-hdr-h:92px}}
@media (max-width:767px){:root{--qm-hdr-h:54px}}
.qm-native main.site-main{padding-top:calc(var(--qm-hdr-h) + 32px)}
/* Tunnel de commande : aucun bandeau de site (header-native.php sort tot), donc aucun decalage. */
.qm-native.woocommerce-checkout main.site-main{padding-top:0}
/* 30/08 : meme ecart header -> titre que les pages (32 px) a TOUTES les largeurs, collections + recherche (conteneur c37b944 commun,
   paddings figes 150/100 px remplaces) et fiche produit (0985de8, 160 px) ; div. ajoute pour battre la CSS figee a ordre egal. */
.qm-native div.elementor-element.elementor-element-c37b944 > div.e-con-inner{padding-top:calc(var(--qm-hdr-h) + 32px)}
/* Fiche produit mobile : la galerie commencait 4 px sous le bandeau (padding 50 px d'origine pour un bandeau de 54). */
.qm-native div.elementor-element.elementor-element-0985de8 > div.e-con-inner{padding-top:calc(var(--qm-hdr-h) + 32px)}
.admin-bar .qm-hdr.elementor-location-header{top:32px}
@media (max-width:782px){.admin-bar .qm-hdr.elementor-location-header{top:46px}}
.qm-hdr .custom-sticky-header{background-color:transparent;isolation:isolate}
/* Etat « scrolled » (>= 300px) : voile noir sous le contenu du conteneur. L'Additional CSS du Customizer impose
   background-color:transparent !important sur le conteneur, qu'une animation ne peut pas battre : d'ou le pseudo-element.
   Sans prise en charge des animations liees au defilement, l'etat repos (bandeau noir arrondi collant) reste. */
.qm-hdr .custom-sticky-header::before{content:"";position:absolute;inset:0;z-index:-1;background-color:#000;opacity:0;pointer-events:none}
@supports (animation-timeline: scroll()) {
	.qm-hdr .custom-sticky-header::before{animation:qm-hdr-scrolled steps(1, end) both;animation-timeline:scroll(root);animation-range:0px 300px}
	@keyframes qm-hdr-scrolled{from{opacity:0}to{opacity:1}}
}
/* Additional CSS d'origine (Customizer), reporte pour que le header natif soit autonome : bandeau noir arrondi,
   droit sur mobile ; bouton panier sans bordure. */
.qm-hdr .header-background{border-radius:12px}
@media (max-width:767px){.qm-hdr .header-background{border-radius:0}}
.qm-hdr .cart-menu{border:none}

/* ---- 2. Menu : un seul <nav>, burger = case a cocher + label (sous 1024px, breakpoint tablette du widget) ----
   L'original dupliquait le menu (nav --main + nav --dropdown) et basculait des classes (elementor-active) en JS. */
.qm-hdr-nav-toggle,.qm-hdr-search-toggle{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0}
@media (min-width:1025px){.qm-hdr-nav-toggle,.qm-hdr-search-toggle{display:none}}
/* post-627.css cible div.elementor-menu-toggle : le label reprend la couleur reglee dans le widget */
.qm-hdr .elementor-element-89d9552 .elementor-menu-toggle{color:#F0EAEA}
.qm-hdr .elementor-element-89d9552 .elementor-menu-toggle svg{fill:#F0EAEA}
.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-menu-toggle .elementor-menu-toggle__icon--open{display:none}
.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-menu-toggle .elementor-menu-toggle__icon--close{display:block}
.qm-hdr .qm-hdr-nav-toggle:focus-visible ~ .elementor-menu-toggle{outline:2px solid currentColor;outline-offset:2px}
@media (max-width:1024px){
	/* le menu deplie s'etire sur toute la largeur du bandeau noir (.header-background est position:relative) */
	.qm-hdr .elementor-element-2f51c92,.qm-hdr .elementor-element-89d9552{position:static}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main{display:block;position:absolute;left:0;right:0;top:100%;z-index:9997;margin-top:10px;max-height:100vh;overflow-x:hidden;overflow-y:auto;background-color:#fff;font-size:13px}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu{display:block}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item{color:#33373d;fill:#33373d;padding:10px 20px}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item:hover,
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item:focus,
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item.elementor-item-active{background-color:#3f444b;color:#fff;fill:#fff}
}

/* ---- 3. Recherche : formulaire GET natif (?s=&post_type=product), overlay sans AJAX ----------------------
   Bureau (> 1024px) : le panneau « recherches populaires » s'affiche tant que le champ ou le panneau a le focus ;
   cliquer ailleurs (voile) retire le focus et le ferme. Le voile est sous le bandeau (z-index negatif dans le
   contexte d'empilement du conteneur) et au-dessus de la page.
   Tablette / mobile (<= 1024px) : l'icone est un label qui coche #qm-hdr-search-toggle ; l'overlay plein ecran
   reprend le mode « compact » que le JS du plugin appliquait (classe lightweight-product-search__overlay--compact)
   et contient le vrai formulaire ; la croix decoche. */
.qm-hdr .lightweight-product-search{position:relative}
.qm-hdr .lightweight-product-search__overlay{display:none;position:absolute;top:100%;right:0;bottom:auto;left:0;z-index:auto;width:auto;height:auto;overflow:visible}
.qm-hdr .lightweight-product-search__overlay .lightweight-product-search__backdrop{position:fixed;inset:0;z-index:-1}
.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay .lightweight-product-search__panel.lightweight-product-search__overlay-panel{position:absolute;top:12px;right:0;left:auto;z-index:1;width:560px;max-width:calc(100vw - 32px)}
.qm-hdr .lightweight-product-search__popular-chip{text-decoration:none}
.qm-hdr .lightweight-product-search__submit--compact-only,.qm-hdr .lightweight-product-search__close{cursor:pointer}
.qm-hdr .qm-hdr-search-toggle:focus-visible + .lightweight-product-search .lightweight-product-search__submit--compact-only{outline:2px solid currentColor;outline-offset:2px}
@media (min-width:1025px){
	.qm-hdr .lightweight-product-search:focus-within .lightweight-product-search__overlay{display:none}
}
@media (max-width:1024px){
	/* psw-product-search.css (fallback « non pret ») reduit deja le formulaire du bandeau a une icone et affiche
	   le bouton --compact-only ; on masque le vrai bouton submit du bandeau. */
	.qm-hdr .lightweight-product-search__form > .lightweight-product-search__submit:not(.lightweight-product-search__submit--compact-only){display:none}
	.qm-hdr .qm-hdr-search-toggle:checked + .lightweight-product-search .lightweight-product-search__overlay{display:block}
	.qm-hdr .lightweight-product-search__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
	.qm-hdr .lightweight-product-search__overlay .lightweight-product-search__backdrop{z-index:0}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay .lightweight-product-search__panel.lightweight-product-search__overlay-panel{position:relative;top:auto;right:auto;left:auto;z-index:1;width:100%;max-width:none;min-height:100%;max-height:none;margin:0;border-radius:0;color:#1a1a1a;background-color:#fff;
		/* !important : psw-product-search.css impose padding:20px !important sur le panneau */
		padding:0 calc(16px + env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px)) !important}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__panel .lightweight-product-search__overlay-form{
		/* !important : psw-product-search.css masque ce formulaire (display:none !important) hors mode compact JS */
		display:flex !important;position:sticky;top:0;z-index:2;flex-direction:row;align-items:center;width:100%;max-width:100%;min-width:0;min-height:48px;margin:0;padding:8px 4px 8px 8px;padding-top:calc(12px + env(safe-area-inset-top,0px));border:0;border-bottom:1px solid #e0e0e0;border-radius:0;background-color:#fff;color:#1a1a1a;gap:.5em}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__overlay-input{font-size:16px;color:#1a1a1a;outline:none;border:0;box-shadow:none}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__overlay-input::placeholder{color:#6b6b6b;opacity:1}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__overlay-submit,
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__overlay-icon,
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__overlay-icon .lightweight-product-search__icon-glyph{color:#1a1a1a}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__overlay-submit,
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__close{min-width:44px;min-height:44px}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__close{position:relative;margin-left:.15em;padding-left:.35em;color:#000}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__close::before{content:"";position:absolute;top:18%;bottom:18%;left:0;width:1px;background-color:#e0e0e0;pointer-events:none}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__close-icon,
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay-form .lightweight-product-search__close-icon svg{color:#000;fill:#000;stroke:#000}
	.qm-hdr .elementor-element-0ed30ab .lightweight-product-search__overlay .lightweight-product-search__overlay-content{
		/* !important : psw-product-search.css impose margin:0 !important ; padding:0 !important */
		margin:0 !important;padding:1.1em 0 0 !important}
	.qm-hdr .lightweight-product-search__overlay .lightweight-product-search__popular-searches{margin:0 0 1.5em}
	.qm-hdr .lightweight-product-search__overlay .lightweight-product-search__popular-searches-heading{color:#1a1a1a;font-weight:500}
	.qm-hdr .lightweight-product-search__overlay .lightweight-product-search__popular-chip{background-color:#1a1a1a;color:#fff;border-radius:4px;padding:.45em .9em}
	.qm-hdr .lightweight-product-search__overlay .lightweight-product-search__popular-chip:hover,
	.qm-hdr .lightweight-product-search__overlay .lightweight-product-search__popular-chip:focus-visible{background-color:#000;color:#fff}
}

/* ---- 4. Panier maison [qm_cart_menu] a la place du widget menu-cart (widget-woocommerce-menu-cart.min.css non charge) ----
   Icone blanche sur le bandeau noir ; le compteur rouge et le tiroir sont styles par le plugin qm-cart. */
.qm-hdr .cart-menu{color:#fff}
.qm-hdr .cart-menu .qm-cart-menu{display:inline-flex;align-items:center;color:#fff;line-height:0;padding:0}
.qm-hdr .cart-menu .qm-cart-menu svg{width:22px;height:22px;stroke:currentColor}
/* Bouton panier flottant (plugin qm-cart, pose a gauche par defaut) : a droite (30/08). */
.qm-native .qm-cart-float{left:auto;right:24px}
@media (max-width:767px){.qm-native .qm-cart-float{right:16px}}

/* Logo du kit de marque (genere par tout-auto : trait taupe sur fond transparent, gros blanc tournant).
   Sur le bandeau noir on le passe en blanc par filtre et on recadre la hauteur utile (le motif occupe ~20 % de la hauteur du fichier). */
   Le lien est rendu en bloc pleine largeur pour que le pourcentage de l'image se calcule sur le widget (sinon largeur cyclique). */
.qm-hdr .elementor-element.elementor-element-c52526f .qm-hdr-brand{display:flex;width:100%;justify-content:center}
.qm-hdr .elementor-element.elementor-element-c52526f .qm-hdr-brand img{width:70%;max-width:none;aspect-ratio:1366/230;object-fit:cover;object-position:center;filter:brightness(0) invert(1)}
/* Mobile : la colonne du logo ne fait que ~100 px, le motif serait illisible ; on laisse l'image deborder de sa colonne (centree, 170 px) sans toucher au bandeau ; 140 px = jusqu'a 5 px de la loupe. */
@media (max-width:767px){.qm-hdr .elementor-element.elementor-element-c52526f .qm-hdr-brand img{width:140px}}
/* Mobile (30/08) : loupe a gauche a cote du burger, logo vraiment centre, panier a droite.
   Le conteneur recherche+panier (a92795d) passe en display:contents pour que ses deux widgets deviennent des enfants directs de la rangee. */
@media (max-width:767px){
	.qm-hdr .elementor-element.elementor-element-7a19fa4{position:relative;display:flex;flex-wrap:nowrap;align-items:center}
	/* 30/08 : 14 px de marge laterale (burger et panier ne touchent plus les bords) ; gap 0 = loupe a 14 px du burger (les widgets ont deja leur air interne). */
	.qm-hdr.elementor-627 .elementor-element.elementor-element-7a19fa4{padding-left:14px;padding-right:14px;gap:0}
	.qm-hdr .elementor-element.elementor-element-a92795d{display:contents}
	.qm-hdr .elementor-element.elementor-element-2f51c92{order:1;width:auto;flex:0 0 auto}
	.qm-hdr .elementor-element.elementor-element-0ed30ab{order:2;width:auto;flex:0 0 auto;margin-left:0}
	.qm-hdr .elementor-element.elementor-element-16b955d{order:4;width:auto;flex:0 0 auto;margin-left:auto}
	.qm-hdr .elementor-element.elementor-element-5a8d0c5{order:3;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:auto;margin:0;pointer-events:none}
	.qm-hdr .elementor-element.elementor-element-5a8d0c5 .qm-hdr-brand{pointer-events:auto}
	.qm-hdr .elementor-element.elementor-element-c52526f .qm-hdr-brand img{width:150px}
	/* Champ de recherche de l'overlay : une vraie boite visible, assez haute pour le doigt. */
	.qm-hdr .lightweight-product-search__overlay-form{border:1px solid #dcd6ca;border-radius:0;background:#fff;padding:2px 6px}
	.qm-hdr .lightweight-product-search__overlay-input{min-height:44px;font-size:16px;color:#2B2B2E}
	.qm-hdr .lightweight-product-search__overlay-input::placeholder{color:#8a8a8a}
}
/* Hero de l'accueil centre a la demande (30/08) : surtitre, H1 et bouton au centre de la colonne, colonne centree. */
.qm-native .elementor-element-71dc978 .elementor-element-26ed912{align-items:center;text-align:center;margin-left:auto;margin-right:auto}
.qm-native .elementor-element-71dc978 .elementor-element-26ed912 .e-heading-base,
.qm-native .elementor-element-71dc978 .elementor-element-26ed912 .elementor-heading-title{text-align:center}
.qm-native .elementor-element-71dc978 .elementor-element-8fad518{text-align:center;align-self:center}
.qm-native .elementor-element-71dc978 .elementor-element-b63026c{justify-content:center;align-items:center}
/* Logos de paiement en SVG inline (footer, tiroir panier, sous le bouton d'achat) : meme boite que les anciennes images 38x24. */
.elementor-widget-image svg.payment-icon,.payment-icon-wrapper svg.payment-icon{display:block;width:38px;height:24px}
.elementor-widget-image svg.payment-icon{margin:0 auto}
/* Wordmark texte (a defaut de logo image) : meme gabarit que le logo SVG d'origine (~40 % du conteneur, centre, blanc). */
.qm-hdr-brand{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.qm-wordmark{font-family:var(--qm-f-secondary,"Roboto Slab",serif);font-weight:400;font-size:26px;line-height:1.1;letter-spacing:.02em;color:#fff;white-space:nowrap}
@media (max-width:767px){.qm-wordmark{font-size:20px}}

/* ---- 2 bis. Menu groupe (31/08) : barre compacte, survol blanc, panneau pleine largeur avec image.
   Le marqueur .qm-hdr-mega-build delimite le bloc ajoute aux feuilles compilees. ---- */

.qm-hdr-mega-build{--qm-mega:2}
@media (min-width:1025px){
	.qm-hdr .header-background{align-items:center}
	/* la colonne de droite porte z-index:999 : etiree, elle recouvrait le logo centre et
	   avalait le clic vers l'accueil. Elle reprend la largeur de son contenu, et le logo
	   passe au-dessus par securite. */
	.qm-hdr .elementor-element-5a8d0c5{
		position:absolute;left:50%;transform:translateX(-50%);width:auto;max-width:none;z-index:1000}
	.qm-hdr .elementor-element.elementor-element-c52526f{width:auto;max-width:none}
	.qm-hdr .elementor-element-5a8d0c5 .qm-hdr-brand{display:inline-flex;align-items:center;width:auto}
	.qm-hdr .elementor-element.elementor-element-c52526f .qm-hdr-brand img{
		width:210px;max-width:210px;height:auto}
	.qm-hdr .elementor-element-2f51c92{flex:0 1 auto;width:auto;max-width:none}
	.qm-hdr .elementor-element-a92795d{flex:0 0 auto;width:auto;max-width:none;margin-left:auto}

	.qm-hdr .elementor-element-2f51c92,
	.qm-hdr .elementor-element-89d9552{position:static}
	.qm-hdr .elementor-element-2f51c92,
	.qm-hdr .elementor-element-89d9552,
	.qm-hdr .elementor-nav-menu--main{overflow:visible}
	.qm-hdr .elementor-nav-menu--main > ul.elementor-nav-menu{
		position:static;flex-wrap:nowrap;gap:2px;align-items:center}
	.qm-hdr .elementor-nav-menu--main > ul.elementor-nav-menu > li{position:static;display:flex}
	.qm-hdr .elementor-nav-menu--main > ul.elementor-nav-menu > li > .elementor-item{
		display:inline-flex;align-items:center;gap:6px;flex-grow:0;background:none;
		padding:6px 12px;border-radius:0;white-space:nowrap;line-height:20px;
		text-decoration:none;text-underline-offset:7px}
	/* le kit colorait le survol et l'entree courante en vert via un selecteur de
	   specificite 0,6,0 : on reprend son propre prefixe pour rester en blanc */
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main .elementor-item,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main .elementor-item:hover,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main .elementor-item:focus,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main .elementor-item.highlighted,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main .elementor-item.elementor-item-active,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main li:hover > .elementor-item,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main li:focus-within > .elementor-item{
		color:#FFFFFF;fill:#FFFFFF;background:none;background-color:transparent}
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main li:hover > .elementor-item,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main li:focus-within > .elementor-item,
	.qm-hdr .elementor-element.elementor-element-89d9552 .elementor-nav-menu--main .elementor-item.elementor-item-active{
		text-decoration:underline;text-decoration-color:#FFFFFF}
	.qm-hdr .qm-hdr-chev{flex:0 0 auto;transition:transform .15s ease}
	.qm-hdr .elementor-nav-menu--main > ul.elementor-nav-menu > li:hover > .elementor-item .qm-hdr-chev,
	.qm-hdr .elementor-nav-menu--main > ul.elementor-nav-menu > li:focus-within > .elementor-item .qm-hdr-chev{transform:rotate(180deg)}

	/* Pont invisible : l'entree se termine 20 px au-dessus du bas du bandeau, et la souris
	   qui descendait vers le panneau traversait ce vide sans rien survoler, ce qui refermait
	   le menu. Le pseudo appartient au panneau, donc au <li> : le survol est conserve.
	   Il n'occupe que la bande situee SOUS les liens, l'aller-retour horizontal entre
	   entrees reste donc possible. */
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega::before{
		content:"";position:absolute;left:0;right:0;top:-20px;height:20px;background:none}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega{
		position:absolute;left:0;right:0;top:100%;z-index:9998;display:none;
		padding:26px 32px 30px;background-color:#1A1A1A;
		border-top:1px solid rgba(255,255,255,.14);border-radius:0 0 12px 12px;
		box-shadow:0 18px 40px rgba(0,0,0,.35)}
	.qm-hdr .elementor-nav-menu--main > ul.elementor-nav-menu > li:hover > .qm-hdr-mega,
	.qm-hdr .elementor-nav-menu--main > ul.elementor-nav-menu > li:focus-within > .qm-hdr-mega{
		display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px;align-items:start}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega:not(:has(.qm-hdr-mega__img)){grid-template-columns:minmax(0,1fr)}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega > ul.qm-hdr-mega__list{
		display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
		gap:0 28px;position:static;width:auto;max-width:none;margin:0;padding:0;border:0;
		background:none;box-shadow:none}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega > ul.qm-hdr-mega__list > li{display:block;width:auto}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item{
		display:block;padding:7px 0;font-size:14px;font-weight:400;line-height:1.35;
		color:#F0EAEA;fill:#F0EAEA;white-space:normal;background:none}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item:hover,
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item:focus,
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item.elementor-sub-item-active{
		color:#FFFFFF;fill:#FFFFFF;background:none;text-decoration:underline;text-underline-offset:3px}
	.qm-hdr .qm-hdr-mega__img{margin:0;border-radius:10px;overflow:hidden;line-height:0}
	.qm-hdr .qm-hdr-mega__img img{width:100%;height:200px;object-fit:cover;display:block}
}
/* ---- Comportement de l'entete, calque sur la reference ----
   Accueil : barre FLOTTANTE, encartee sur les cotes, coins arrondis, espace au-dessus,
   posee par-dessus le visuel. Autres pages : barre PLEINE LARGEUR, coins carres, collee
   en haut, le contenu commence dessous. Au defilement de l'accueil, la barre vient se
   coller comme sur les autres pages. On reutilise les animations pilotees par le
   defilement deja employees ici pour l'etat « scrolled » : aucun JavaScript. */
/* l'encart est porte par la marge interieure du conteneur, pas par une marge sur la
   barre : celle-ci garde une largeur imposee et debordait de 30 px a droite */
.qm-native.home .qm-hdr .custom-sticky-header > .e-con-inner{padding:20px 30px 0}
.qm-native.home .qm-hdr .header-background{margin:0;border-radius:12px}
.qm-native:not(.home) .qm-hdr .custom-sticky-header > .e-con-inner{padding:0}
.qm-native:not(.home) .qm-hdr .header-background{margin:0;border-radius:0}
.qm-native:not(.home){--qm-hdr-h:72px}
@media (max-width:767px){
	.qm-native.home .qm-hdr .custom-sticky-header > .e-con-inner{padding:12px 12px 0}
	.qm-native.home .qm-hdr .header-background{border-radius:10px}
}
@supports (animation-timeline: scroll()){
	.qm-native.home .qm-hdr .custom-sticky-header > .e-con-inner{
		animation:qm-hdr-dock-pad linear both;animation-timeline:scroll(root);animation-range:0px 140px}
	@keyframes qm-hdr-dock-pad{from{padding:20px 30px 0}to{padding:0}}
	.qm-native.home .qm-hdr .header-background{
		animation:qm-hdr-dock linear both;animation-timeline:scroll(root);animation-range:0px 140px}
	@keyframes qm-hdr-dock{from{border-radius:12px}to{border-radius:0}}
}

/* pagination des archives : les liens etaient rendus avec le style par defaut du
   navigateur (petits cadres gris, page courante en lilas) */
.qm-native .esf-pagination ul.page-numbers{
	display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;
	list-style:none;margin:30px 0 0;padding:0;border:0}
.qm-native .esf-pagination ul.page-numbers li{margin:0;padding:0;border:0;background:none}
.qm-native .esf-pagination ul.page-numbers li .page-numbers{
	display:inline-flex;align-items:center;justify-content:center;
	min-width:42px;height:42px;padding:0 13px;box-sizing:border-box;
	border:1px solid #DCDAD4;border-radius:9px;background-color:#FFFFFF;
	color:#1A1A1A;font-size:14px;font-weight:600;line-height:1;text-decoration:none;
	transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.qm-native .esf-pagination ul.page-numbers li a.page-numbers:hover,
.qm-native .esf-pagination ul.page-numbers li a.page-numbers:focus{
	background-color:#F4F2EE;border-color:#1A1A1A;color:#1A1A1A}
.qm-native .esf-pagination ul.page-numbers li .page-numbers.current{
	background-color:#1A1A1A;border-color:#1A1A1A;color:#FFFFFF}
.qm-native .esf-pagination ul.page-numbers li .page-numbers.dots{
	border-color:transparent;background:none;min-width:24px;padding:0}
@media (max-width:767px){
	.qm-native .esf-pagination ul.page-numbers li .page-numbers{min-width:38px;height:38px;padding:0 10px;font-size:13px}
}

@media (max-width:1024px){
	.qm-hdr .qm-hdr-chev{display:none}
	.qm-hdr .qm-hdr-mega__img{display:none}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega{
		display:block;position:static;padding:0 0 6px 16px;background:none;border:0;box-shadow:none}
	.qm-hdr .elementor-nav-menu--main .qm-hdr-mega > ul.qm-hdr-mega__list{
		display:block;position:static;width:auto;border:0;background:none;box-shadow:none}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item{
		display:block;padding:8px 20px;color:#33373d;fill:#33373d;font-size:14px}
}

/* ---- QM HDR FULLWIDTH : debut du bloc ajoute aux feuilles compilees (rejouable, reecrit a l'identique).
   Marqueur : .qm-hdr-fullwidth-build
   Defaut 1 : hors accueil l'entete restait plafonnee a --content-width (min(100%,1440px)) par la regle
   Elementor « .e-con > .e-con-inner{margin:0 auto;max-width:var(--content-width)} », d'ou des bandes
   blanches de 240px de part et d'autre au-dela de 1440px de large.
   Defaut 2 : lever ce plafond poussait AUSSI le contenu (menu, logo, panier) jusqu'aux bords, alors que
   l'accueil le garde rentre. Mesure sur la reference maison-damas : barre pleine largeur mais contenu
   rentre et IDENTIQUE d'une page a l'autre (240-260px en 1920, 50-70px en 1440).
   Formule : sur l'accueil le contenu commence a l'encart de .e-con-inner, soit max(0,(100%-1440px)/2)+30px,
   plus le padding horizontal de la barre (20px au-dela de 767px, 14px en dessous). Cela se reduit a
   max(50px, 50% - 670px) en desktop et a 44px fixe en mobile (le plancher de 30px y est toujours atteint).
   Meme valeur hors accueil ⇒ colonnes alignees AU PIXEL entre accueil et pages interieures, toutes largeurs.
   Le panneau du mega-menu est en position:absolute et son bloc conteneur est la PADDING BOX de
   .header-background, qui vaut ici toute la largeur : on lui redonne donc explicitement l'encart de
   l'accueil pour qu'il garde la meme largeur qu'en page d'accueil. ---- */
.qm-hdr-fullwidth-build{--qm-hdr-fullwidth:3}
.qm-native:not(.home) .qm-hdr .custom-sticky-header > .e-con-inner{
	width:100%;max-width:none;margin-inline:0;padding:0}
.qm-native:not(.home) .qm-hdr .header-background{
	width:100%;max-width:none;margin:0;border-radius:0;
	padding-inline:max(50px, calc(50% - 670px))}
@media (max-width:767px){
	.qm-native:not(.home) .qm-hdr .header-background{padding-inline:44px}
}
.qm-native:not(.home) .qm-hdr .qm-hdr-mega{
	left:max(30px, calc(50% - 690px));right:max(30px, calc(50% - 690px))}
/* ---- QM HDR FULLWIDTH : fin du bloc. ---- */

/* ---- QM HDR LOGO RATIO : debut du bloc ajoute aux feuilles compilees (rejouable, reecrit a l'identique).
   Marqueur : .qm-hdr-logoratio-build
   Le kit figeait « aspect-ratio:1366/230;object-fit:cover » sur le logo, un recadrage taille pour
   l'ANCIEN fichier qui portait environ 80% de vide vertical. Le logo produit par le kit de marque est
   deja detoure serre (871x195, ratio 4,47) : le ratio fige lui mangeait 25% de la hauteur, soit les
   pieds de la baignoire et le haut du robinet (mesure au navigateur).
   On rend donc la regle INDEPENDANTE du ratio, pour qu'elle reste juste apres toute regeneration du
   logo : plus d'aspect-ratio impose, plus de recadrage, hauteur calculee sur la largeur. ---- */
.qm-hdr-logoratio-build{--qm-hdr-logoratio:1}
.qm-hdr .elementor-element.elementor-element-c52526f .qm-hdr-brand img{
	aspect-ratio:auto;object-fit:contain;height:auto}
/* ---- QM HDR LOGO RATIO : fin du bloc. ---- */
/* ==== QM MENU MOBILE : debut ==== */
/* Marqueur : .qm-menu-mobile-build   (bloc rejouable, reecrit a l'identique)
   Mesures au navigateur, accueil, 390x844, panneau du burger ouvert par un vrai clic :
   1) widget-nav-menu.min.css impose « .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li
      {display:flex} ». Dans le panneau, le libelle du groupe et son sous-menu devenaient donc deux
      COLONNES cote a cote : <a>Farben</a> mesurait 139x402 px, son texte centre verticalement dans
      le vide, et les 11 sous-liens tenaient dans les 191 px restants. Chaque groupe recevait une
      indentation differente (sous-liens a 185, 177, 145, 132 puis 153 px du bord) : plus aucun
      alignement ni hierarchie.
   2) Panneau large de 330 px sur 390 : la page apparaissait de part et d'autre, et les liens
      sortis du fond blanc se lisaient a meme la page.
   3) Panneau haut de 844 px (max-height:100vh) pose a y=84 : il finissait 84 px SOUS le bas de
      l'ecran. Contenu 1006 px, panneau 844 : le defilement interne ne couvrait que 162 px, donc
      les 84 derniers pixels de la liste (l'entree « Kontakt ») etaient INATTEIGNABLES.
   4) Cibles tactiles : 36 px pour les 26 sous-liens, 40 px pour « Kontakt », 33x33 px pour la
      croix de fermeture. Toutes sous le minimum de 44 px.
   5) Aucun filet entre les groupes ; libelle de groupe en 13 px sous des enfants en 14 px, soit une
      hierarchie inversee ; white-space:nowrap sur tous les liens (meme widget), donc aucun retour
      a la ligne possible ; html{overflow:hidden auto}, donc la page defilait derriere le panneau
      ouvert (600 px a la roulette, mesures).
   Correctif : liste verticale a deux niveaux, entete de groupe en creme, sous-liens indentes,
   filets entre les lignes, lignes de 48 px, panneau pleine largeur qui s'arrete au bas de l'ecran
   avec defilement interne, page bloquee derriere.
   Couleurs : uniquement celles du kit de marque (--qm-c-ink #2B2B2E, --qm-c-accent #DD1B1F,
   --qm-c-cream-light #FAF5EA, --qm-c-sand #EEEAE3).
   Le bureau (>= 1025px) n'est pas touche : tout est enferme dans @media (max-width:1024px). ==== */
.qm-menu-mobile-build{--qm-menu-mobile:1}

@media (max-width:1024px){

	/* ---- 1. Le panneau ---- */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main{
		left:50%;right:auto;width:100vw;margin-left:-50vw;margin-top:0;
		height:auto;
		/* Le panneau est ancre sous la barre (top:100%) : sa hauteur utile vaut l'ecran moins la
		   hauteur de barre. On n'utilise PAS --qm-hdr-h, qui ment hors accueil (il annonce 72 px
		   quand la barre mobile en mesure 54) : le « 100% » d'un max-height se resout sur la boite
		   de rembourrage du bloc conteneur, c'est-a-dire sur la barre elle-meme, donc la valeur
		   suit toujours la hauteur reelle. L'accueil pose en plus sa barre flottante 8 a 20 px
		   sous le haut de l'ecran : le panneau deborde d'autant, et la marge interieure basse
		   absorbe ce debord pour que la derniere ligne reste entiere en fin de defilement. */
		max-height:calc(100vh - 100%);
		max-height:calc(100dvh - 100%);
		padding:0 0 calc(28px + env(safe-area-inset-bottom,0px));
		overflow-x:hidden;overflow-y:auto;
		overscroll-behavior:contain;
		-webkit-overflow-scrolling:touch;
		background-color:#FFFFFF;
		border-top:1px solid #EEEAE3;
		box-shadow:0 16px 40px rgba(43,43,46,.30);
		font-size:15px}
	/* barre d'administration WordPress : elle pousse le document de 46 px vers le bas */
	.admin-bar .qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main{
		max-height:calc(100vh - 100% - 46px);
		max-height:calc(100dvh - 100% - 46px)}

	/* ---- 2. La liste : verticale, plus de colonnes ---- */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main > ul.elementor-nav-menu{
		display:block;width:100%;margin:0;padding:0;list-style:none}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main > ul.elementor-nav-menu > li{
		display:block;width:100%;margin:0;padding:0;position:relative}
	/* separateur decoratif du widget (li:not(:last-child):after) : inutile en colonne */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main > ul.elementor-nav-menu > li::after{
		display:none}

	/* ---- 3. Niveau 1 ---- */
	/* base commune a toutes les entrees de premier niveau */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item{
		display:flex;align-items:center;box-sizing:border-box;
		width:100%;min-height:48px;padding:13px 20px;
		/* filet de 2 px : il marque le retour au premier niveau, la ou les categories filles
		   n'en portent qu'un de 1 px */
		border-top:2px solid #EEEAE3;
		background:none;
		color:#2B2B2E;fill:#2B2B2E;
		font-size:15px;font-weight:500;line-height:1.35;letter-spacing:0;
		text-transform:none;text-decoration:none;white-space:normal}
	/* une entree QUI PORTE des categories est un intertitre : creme, capitales, petit corps ;
	   l'oeil separe ainsi les deux niveaux sans avoir a lire */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > .elementor-item{
		background-color:#FAF5EA;
		font-size:12px;font-weight:700;line-height:1.3;letter-spacing:.09em;
		text-transform:uppercase}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu > li:first-child > .elementor-item{
		border-top:0}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:hover,
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:focus{
		background-color:#EEEAE3;color:#2B2B2E;fill:#2B2B2E}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item.elementor-item-active{
		color:#DD1B1F;fill:#DD1B1F;
		box-shadow:inset 4px 0 0 0 #DD1B1F}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > .elementor-item.elementor-item-active{
		background-color:#FAF5EA}

	/* ---- 4. Niveau 2 : les categories du groupe ---- */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega{
		display:block;position:static;width:100%;margin:0;padding:0;
		background:none;border:0;box-shadow:none}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega > ul.qm-hdr-mega__list{
		display:block;position:static;width:100%;max-width:none;margin:0;padding:0;
		list-style:none;border:0;background:none;box-shadow:none}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega > ul.qm-hdr-mega__list > li{
		display:block;width:100%;margin:0;padding:0}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega > ul.qm-hdr-mega__list > li::after{
		display:none}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item{
		display:flex;align-items:center;box-sizing:border-box;
		width:100%;min-height:48px;padding:13px 20px 13px 34px;
		border-top:1px solid #EEEAE3;
		background:none;
		color:#2B2B2E;fill:#2B2B2E;
		font-size:15px;font-weight:400;line-height:1.35;letter-spacing:0;
		text-transform:none;text-decoration:none;white-space:normal}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item:hover,
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item:focus{
		background-color:#FAF5EA;color:#2B2B2E;fill:#2B2B2E}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega .elementor-sub-item.elementor-sub-item-active{
		color:#DD1B1F;fill:#DD1B1F;font-weight:600;
		box-shadow:inset 4px 0 0 0 #DD1B1F}
	/* le visuel du panneau de bureau reste hors du panneau mobile */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-mega__img{display:none}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .qm-hdr-chev{display:none}

	/* ---- 5. Clavier : anneau de focus visible, jamais rogne par le defilement ----
	   La regle d'accessibilite du site pose « outline:2px solid #000 ; outline-offset:2px » sur
	   tout a:focus-visible. Les lignes du menu occupent TOUTE la largeur du panneau, qui est en
	   overflow:auto : un anneau pose 2 px A L'EXTERIEUR y est rogne a gauche et a droite. On le
	   rentre a l'interieur (offset negatif) et on le passe au rouge de la marque. */
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main a:focus-visible{
		outline:2px solid #DD1B1F;outline-offset:-2px}

	/* ---- 6. La croix de fermeture : 44x44 px ---- */
	.qm-hdr .elementor-element-89d9552 .elementor-menu-toggle{
		width:44px;height:44px;min-width:44px;min-height:44px;padding:0;
		border-radius:8px}
	.qm-hdr .qm-hdr-nav-toggle:focus-visible ~ .elementor-menu-toggle{
		outline:2px solid #FFFFFF;outline-offset:2px}

	/* ---- 7. La page ne defile plus derriere le panneau ouvert ---- */
	html:has(.qm-hdr .qm-hdr-nav-toggle:checked){overflow:hidden}
	/* le bouton panier flottant (position:fixed, hors de l'entete) se posait par-dessus les
	   deux dernieres lignes du menu (mesure au navigateur, capture a l'appui).
	   Il revient des que le panneau se referme. */
	body:has(.qm-hdr .qm-hdr-nav-toggle:checked) .qm-cart-float{display:none}
}
/* ==== QM MENU MOBILE : fin ==== */

/* Titre de page : un mot compose allemand (« Badezimmerteppich », 362 px a 40 px) ne se coupe pas
   et sortait de l'ecran sous 402 px de large. Cesure automatique (la page est en lang="de-DE")
   plus un filet qui coupe n'importe ou si le dictionnaire de cesure manque. La taille ne change
   pas : le titre passe sur deux lignes au lieu de deborder. */
h1.elementor-heading-title,
.elementor-page-title h1,
h1.entry-title {
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: auto;
}

/* ---- QM HDR MENU+SEARCH FIX : debut du bloc ajoute aux feuilles compilees (rejouable, reecrit a l'identique).
   1) Bouton loupe de l'overlay mobile : une bordure rose 1px (couleur de marque) trainait dessus.
   2) Menu principal : 7 entrees = 622px, le logo est centre en position:absolute et demarre a 578px
      sur un ecran de 1366 -> chevauchement mesure de 92px (263px a 1025px). On compacte le menu et,
      en dessous de 1366px, on bascule sur le burger deja present dans le theme : aucun recouvrement possible.
   Aucun identifiant de produit/categorie en dur : le bloc suit le nombre d'entrees du menu, quel qu'il soit. ---- */

/* 1. Recherche : pas de bordure sur le bouton de soumission de l'overlay */
.qm-hdr .lightweight-product-search__overlay-submit,
.qm-hdr .lightweight-product-search__submit {
	border: 0;
	background-color: transparent;
}

/* 2a. Grand ecran : menu compact pour laisser respirer le logo centre */
@media (min-width: 1280px) {
	.qm-hdr .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item {
		padding-right: 5px !important;
		padding-left: 5px !important;
		font-size: 12px;
		letter-spacing: 0;
	}
	.qm-hdr .elementor-nav-menu--main .elementor-nav-menu {
		gap: 0 !important;
	}
}

/* 2b. En dessous de 1366px : le menu horizontal ne tient pas a cote du logo centre -> burger.
   On rejoue exactement le mecanisme du theme (case a cocher .qm-hdr-nav-toggle + label .elementor-menu-toggle),
   qui n'etait actif que sous 1024px. */
@media (min-width: 1025px) and (max-width: 1279px) {
	/* la case a cocher est mise a display:none au-dessus de 1025px : on la remet (invisible mais fonctionnelle) */
	.qm-hdr .qm-hdr-nav-toggle {
		display: block;
	}
	/* le label burger est masque par le CSS du widget au-dessus de son breakpoint : on le reaffiche */
	.qm-hdr .elementor-menu-toggle {
		display: flex !important;
	}
	/* menu horizontal masque tant que la case n'est pas cochee */
	.qm-hdr .elementor-nav-menu--main {
		display: none;
	}
	.qm-hdr .elementor-element-2f51c92,
	.qm-hdr .elementor-element-89d9552 {
		position: static;
	}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main {
		display: block;
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		z-index: 9997;
		max-height: 100vh;
		margin-top: 10px;
		overflow-x: hidden;
		overflow-y: auto;
		background-color: #fff;
		font-size: 13px;
	}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu {
		display: block;
	}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item {
		padding: 10px 20px;
		color: #33373d;
		fill: #33373d;
	}
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item:hover,
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item:focus,
	.qm-hdr .qm-hdr-nav-toggle:checked ~ .elementor-nav-menu--main .elementor-nav-menu .elementor-item.elementor-item-active {
		background-color: #3f444b;
		color: #fff;
		fill: #fff;
	}
}
/* ---- QM HDR MENU+SEARCH FIX : fin du bloc. ---- */
/* ==== QM FIX 24/09/2026 : debut ==== */
/* 1. Visionneuse : chevrons centres dans les boutons */
.qm-lb button.esf-sp-lightbox__prev,.qm-lb button.esf-sp-lightbox__next{display:inline-flex;align-items:center;justify-content:center}
.qm-lb button.esf-sp-lightbox__prev::before{transform:translateX(3px) rotate(-135deg)}
.qm-lb button.esf-sp-lightbox__next::before{transform:translateX(-3px) rotate(45deg)}
/* 2. En-tete mobile : le logo (absolu, centre) chevauchait la loupe ; centre dans l'espace libre entre la loupe et le panier ; panier centre verticalement */
@media (max-width:767px){
.qm-hdr .elementor-element.elementor-element-5a8d0c5{position:static;order:3;flex:1 1 auto;min-width:0;display:flex;justify-content:center;align-items:center;transform:none;left:auto;top:auto;margin:0 8px;pointer-events:auto}
.qm-hdr .elementor-element.elementor-element-c52526f{width:100%;max-width:140px}
.qm-hdr .elementor-element.elementor-element-c52526f .qm-hdr-brand img{width:100%;max-width:140px}
.qm-hdr .elementor-element.elementor-element-16b955d{margin-left:0}
}
.qm-hdr .elementor-element.elementor-element-16b955d{display:flex;align-items:center;line-height:0}
/* 3. Titres de fiche passes en <p>/<span> : typographie identique aux anciens h2/h3 */
.elementor-876 .elementor-element.elementor-element-17680233 p.elementor-heading-title,.elementor-876 .elementor-element.elementor-element-5ac962e0 p.elementor-heading-title{font-size:16px;line-height:26px;font-weight:500;margin:0}
.elementor-876 .elementor-element.elementor-element-486ce4ab p.elementor-heading-title,.elementor-876 .e-n-tabs-content .elementor-widget-heading p.elementor-heading-title{font-size:32px;line-height:42px;font-weight:400;margin:0}
.elementor-876 .elementor-widget-n-accordion span.e-n-accordion-item-title-text{display:block;margin:0;font-family:inherit;font-weight:inherit;line-height:inherit;color:inherit}
p.qm-rel__t{margin-top:0}
/* 4. Prix en promo : ancien prix discret barre, nouveau prix en rouge de la charte, pastille de remise */
.qm-native .esf-single-product__price del,.qm-native .woocommerce-variation-price del,.qm-native .price del{text-decoration:line-through;color:rgba(43,43,46,.5);font-weight:400;font-size:.72em;margin-right:.4em}
.qm-native .esf-single-product__price ins,.qm-native .woocommerce-variation-price ins,.qm-native .price ins{text-decoration:none;color:#DD1B1F;font-weight:600;background:transparent}
.qm-native .qm-price__badge{display:inline-block;vertical-align:middle;position:relative;top:-.12em;margin-left:.5em;padding:.18em .62em;border-radius:999px;background:#DD1B1F;color:#FFF9EA;font-family:"Roboto",sans-serif;font-size:.55em;font-weight:600;line-height:1.5;letter-spacing:.03em;white-space:nowrap}
.qm-native .qm-pcard__price del{font-size:.88em}
.qm-native .qm-pcard__price .qm-price__badge{font-size:.78em;padding:.1em .5em}
/* 5. (25/09/2026) Zone tactile de l'icone panier de l'en-tete.
   Mesure Playwright en mobile 390 px : le burger et la loupe font 44x44, mais l'icone panier
   ne faisait que 22x22 (le lien lui-meme, sans parent plus grand pour rattraper) — seule cible
   de l'en-tete sous le seuil de 24 px. Ce n'est pas un choix de design mais un oubli.
   On etend la zone par un ::after absolu : la mise en page ne bouge pas (ni le logo ni le bord
   droit) et la taille visuelle du pictogramme est inchangee. Place disponible verifiee :
   44 px jusqu'au bord droit, 26 px jusqu'au logo -> une zone de 44 px ne chevauche rien. */
.qm-hdr .cart-menu .qm-cart-menu{position:relative}
.qm-hdr .cart-menu .qm-cart-menu::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
/* 6. (26/09/2026) Rangee de categories reduite a UNE seule vignette.
   Mesure Playwright en mobile 390 px : le widget 3b767ba reserve 354 px alors que son
   contenu n'en occupe que 60 -> 294 px de vide sous la rangee, tres visible sur
   pyjamas-couple.fr (1 seule categorie). Les sites a 17 et 63 vignettes n'ont aucun vide.
   Aucune regle CSS ne fixe cette hauteur : elle est calculee par le moteur de rendu, et
   ni line-height, ni align-items, ni grid-auto-rows ne la corrigent sans tasser les
   libelles (verifie : les libelles d'axelvaska tiennent sur deux lignes, 71 px).
   Parti pris : une rangee de categories qui n'en compte qu'une fait doublon avec le titre
   de section affiche juste en dessous ; on la retire dans ce seul cas. Le selecteur ne
   s'active que s'il n'existe pas de 2e vignette, donc la rangee revient d'elle-meme des
   qu'une categorie est ajoutee, et les autres boutiques ne sont jamais concernees
   (verifie site par site : hauteurs inchangees a 60 et 71 px). */
.elementor-element-3b767ba:not(:has(.swiper-slide:nth-child(2))){display:none !important}
/* 7. (26/09/2026) Bloc editorial de fiche produit (widget 4ceaf4c) : images rognees de 37 %.
   Signale par Nico : sur un sac, la cote « 21CM » imprimee sous la photo etait tranchee en
   deux, donc illisible. Mesure Playwright : image carree 590x590 affichee dans un cadre
   590x372 en object-fit:cover -> ~18 % coupes en haut et autant en bas. Le gabarit impose
   une hauteur fixe (372 px desktop, 400 px, 191 px mobile) heritee du template d'origine,
   concu pour des visuels en format paysage ; or les photos de fournisseur sont CARREES et
   portent cotes et mentions en peripherie, precisement dans la zone sacrifiee.
   Defaut GENERALISE : ~3000 images sur les 3 boutiques (3 par fiche produit).
   Correctif retenu : hauteur naturelle. Teste et compare en capture :
     - object-fit:contain conserve le cadre mais laisse des bandes laterales tres visibles
       (le fond des photos d'ambiance ne correspond pas a celui du cadre) ;
     - height:auto rend l'image entiere, plus grande et sans bande. Le bloc passe de 372 a
       590 px : la page s'allonge un peu, au benefice d'une information complete. */
.elementor-876 .elementor-element.elementor-element-4ceaf4c img{height:auto !important}
/* ==== QM FIX 24/09/2026 : fin ==== */
