/* Lora et Quicksand (polices du site d'origine), auto-hébergées : variables Elementor --police-titre et --police-texte */
@font-face {
	font-family: 'Lora';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("https://monmomentamoi.ch/speednox/fonts/lora-normal-latin-ext.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Lora';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("https://monmomentamoi.ch/speednox/fonts/lora-normal-latin.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Lora';
	font-style: italic;
	font-weight: 400 700;
	font-display: swap;
	src: url("https://monmomentamoi.ch/speednox/fonts/lora-italic-latin-ext.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Lora';
	font-style: italic;
	font-weight: 400 700;
	font-display: swap;
	src: url("https://monmomentamoi.ch/speednox/fonts/lora-italic-latin.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("https://monmomentamoi.ch/speednox/fonts/quicksand-normal-latin-ext.woff2") format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("https://monmomentamoi.ch/speednox/fonts/quicksand-normal-latin.woff2") format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Variables du site : valeurs de référence.
   Elles remplacent celles des variables globales Elementor (kit 4, même nom),
   qui restent seulement pour être sélectionnables dans l'éditeur. */
:root
{
	/* Couleurs (kit du site d'origine) */
	--rose: #DB5FB3;
	--taupe: #C1A08C;
	--taupe-fonce: #987662;
	--sable: #D2C1B4;
	--beige: #E5DED0;
	--creme: #F1EEEC;
	--texte: #4B4B4B;
	--blanc: #FFFFFF;

	/* Polices */
	--police-titre: Lora;
	--police-texte: Quicksand;

	/* Tailles des textes (base 16px : 5.2rem, 2.2rem, 1.7rem, 1.4rem, 2.4rem du site d'origine) */
	--titre-hero: 5.2rem;	/* 83.2px */
	--titre-h2: 2.2rem;	/* 35.2px */
	--titre-h3: 1.7rem;	/* 27.2px */
	--titre-h4: 1.4rem;	/* 22.4px */
	--titre-carte: 2.4rem;	/* 38.4px */
	--texte-courant: 17px;
	--texte-petit: 16px;
	--texte-menu: 12.8px;	/* 0.8rem */

	/* Mise en page */
	--largeur-conteneur: 1140px;
	--largeur-texte: 806px;
	--marge-laterale: 20px;

	/* Marges du site d'origine (Elementor V3), proportionnelles à la largeur de l'écran :
	   section de texte = padding 6 % 22 % + 10px de padding de colonne (5 % 16 % sur tablette, 5 % sur mobile).
	   En % volontairement, pour coller à l'original à toutes les largeurs.
	   Sur ordinateur, le conteneur d'origine est plafonné à 1050px (texte de 1030px max, au-delà de ~1875px d'écran). */
	--marge-texte: max(calc(22% + 10px), calc((100% - 1050px) / 2 + 10px));
	--espace-section: calc(6% + 10px);
}

@media (max-width: 1024px)
{
	:root
	{
		--marge-texte: calc(16% + 10px);
		--espace-section: calc(5% + 10px);
	}
}

@media (max-width: 767px)
{
	:root
	{
		--titre-hero: 4rem;	/* 64px ; les autres titres gardent leur taille desktop, comme sur l'original */
		--texte-courant: 15px;
		--marge-texte: calc(5% + 10px);
	}
}


/* Lissage des polices : rendu par défaut du navigateur, comme sur le site d'origine.
   (GeneratePress et noxweb imposent « antialiased », qui affine les graisses sur Mac) */
html,
* {
	-webkit-font-smoothing: auto;
	-moz-osx-font-smoothing: auto;
}

/* GeneratePress fixes */
.site-content
{
	display: block;
}

/* Elementor basics fixes */
.elementor-text-editor p:last-child
{
	margin-bottom: 0;
}
p.elementor-heading-title
{
	margin-bottom: 0;
}

a.elementor-button
{
	position: relative;
	z-index: 1;
}

.elementor-element > .elementor-background-overlay
{
	pointer-events: none;
}


/* Elementor lightbox fix */
.elementor-lightbox .elementor-lightbox-item
{
	padding: 0;
}


/* Elementor utils */
.no-margin
{
	margin: 0 !important;
}
.nox-flex-row.elementor-column .elementor-widget-wrap
{
	flex-direction: row;
	flex-wrap: nowrap;
}
.nox-flex-row.elementor-column .elementor-widget-wrap>.elementor-element
{
	display: flex;
	align-items: center;
	width: auto;
	margin-bottom: 0 !important;
}
.nox-flex-row.elementor-column .elementor-widget-wrap>.elementor-element .elementor-icon-wrapper
{
	display: flex;
	align-items: center;
}
.nox-pos-static.elementor-widget
{
	position: static;
}


/* ========================================
   Mon moment à moi
   ======================================== */

body
{
	background-color: var(--blanc);
	color: var(--texte);
	font-family: var(--police-texte), sans-serif;
}

/* Header : collé en haut sur toutes les pages */
[data-elementor-type="header"]
{
	position: sticky;
	top: 0;
	z-index: 100;
}
/* Connecté : header collé sous la barre d'admin (fixe au-dessus de 600px), comme le sticky d'Elementor Pro */
.admin-bar [data-elementor-type="header"]
{
	top: 32px;
}
@media (max-width: 782px)
{
	.admin-bar [data-elementor-type="header"]
	{
		top: 46px;
	}
}
@media (max-width: 600px)
{
	.admin-bar [data-elementor-type="header"]
	{
		top: 0;
	}
}

/* Menus du header (widgets V3 nav-menu : classes menu-header, menu-gauche, menu-droite, menu-burger) */
.elementor .elementor-widget.menu-burger
{
	width: 40px;
	flex: 0 0 40px;
}
/* Colonnes du header d'origine (conteneur de 1050px) : 38 % | 24 % logo | 37.664 % */
.elementor .elementor-widget.menu-gauche
{
	width: 38%;
	flex: 0 0 38%;
}
.elementor .elementor-widget.menu-droite
{
	width: 37.664%;
	flex: 0 0 37.664%;
	margin-right: 0.336%;	/* les trois colonnes d'origine totalisent 99.664 % */
}
/* Header de l'accueil d'origine : colonne droite de 37.332 %, liens avec 18px de padding */
.elementor .header-accueil .elementor-widget.menu-droite
{
	width: 37.332%;
	flex: 0 0 37.332%;
	margin-right: 0.668%;
}
.elementor .header-accueil .menu-droite .elementor-nav-menu .elementor-item
{
	padding-left: 18px;
	padding-right: 18px;
}
/* Liens répartis sur toute la largeur de leur colonne (alignement « justifié » d'origine) */
.elementor .menu-header .elementor-nav-menu--main > .elementor-nav-menu
{
	display: flex;
	width: 100%;
}
.elementor .menu-header .elementor-nav-menu--main > .elementor-nav-menu > li
{
	flex-grow: 1;
}
.elementor .menu-header .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item
{
	justify-content: center;
}
.elementor .menu-header .elementor-nav-menu .elementor-item
{
	font-family: var(--police-texte), sans-serif;
	font-style: normal;
	font-size: var(--texte-menu);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.7px;
	color: var(--texte);
	padding-left: 6px;
	padding-right: 6px;
	transition: color 0.3s;
}
.elementor .menu-droite .elementor-nav-menu .elementor-item
{
	padding-left: 8px;
	padding-right: 8px;
}
.elementor .menu-header .elementor-nav-menu .elementor-item:hover,
.elementor .menu-header .elementor-nav-menu .elementor-item:focus,
.elementor .menu-header .elementor-nav-menu .elementor-item.elementor-item-active
{
	color: var(--taupe);
}

/* Menu burger (tablette et mobile) */
.elementor .menu-burger .elementor-menu-toggle
{
	--nav-menu-icon-size: 28px;
	color: var(--texte);
	background-color: transparent;
}
.elementor .menu-burger .elementor-menu-toggle svg
{
	fill: var(--texte);
}
.elementor .menu-burger .elementor-nav-menu--dropdown
{
	background-color: var(--creme);
}
/* Menu déroulant hors du flux, sous le header et sur toute la largeur de l'écran
   (le burger ne doit pas agrandir le header : 70px + 1 % comme sur l'original) */
.elementor .header
{
	position: relative;
}
.elementor .elementor-widget.menu-burger,
.elementor .elementor-widget.menu-burger > .elementor-widget-container
{
	position: static;
}
.elementor .menu-burger .elementor-nav-menu__container.elementor-nav-menu--dropdown
{
	position: absolute;
	top: calc(100% - 8px) !important;	/* sous le bloc de 70px du header, comme l'original (le JS d'Elementor impose sinon un top inline) */
	left: 0 !important;
	right: 0;
	width: 100% !important;
	margin-top: 0;
	z-index: 9997;
}
.elementor .menu-burger .elementor-nav-menu--dropdown a
{
	font-family: var(--police-texte), sans-serif;
	font-style: normal;
	font-weight: 500;
	font-size: 14.4px;	/* 0.9rem */
	letter-spacing: 0.7px;
	text-transform: uppercase;
	color: var(--texte);
}
/* Croix de fermeture couleur sable au survol et quand le menu est ouvert, comme l'original */
.elementor .menu-burger .elementor-menu-toggle:hover,
.elementor .menu-burger .elementor-menu-toggle:focus,
.elementor .menu-burger .elementor-menu-toggle.elementor-active
{
	color: var(--sable);
}
.elementor .menu-burger .elementor-menu-toggle:hover svg,
.elementor .menu-burger .elementor-menu-toggle:focus svg,
.elementor .menu-burger .elementor-menu-toggle.elementor-active svg
{
	fill: var(--sable);
}
.elementor .menu-burger .elementor-nav-menu--dropdown a:hover,
.elementor .menu-burger .elementor-nav-menu--dropdown a:focus,
.elementor .menu-burger .elementor-nav-menu--dropdown a.elementor-item-active
{
	color: var(--blanc);
	background-color: var(--sable);
}

@media (min-width: 1025px)
{
	.elementor .elementor-widget.menu-burger
	{
		display: none;
	}
}
@media (max-width: 1024px)
{
	.elementor .elementor-widget.menu-header
	{
		display: none;
	}
}

/* Header de l'accueil : superposé au hero, transparent, menus blancs, sans logo.
   Dès le début du défilement (classe header-colle, speednox.js) : blanc, comme les autres pages. */
[data-elementor-type="header"]:has(.header-accueil)
{
	position: fixed;	/* top : règle générale ci-dessus (0, ou sous la barre d'admin) */
	left: 0;
	right: 0;
}
.elementor .header.header-accueil
{
	background-color: transparent;
	box-shadow: none;
	transition: background-color 0.5s ease, box-shadow 0.3s;
}
/* Header de l'accueil sur tablette et mobile (comme l'original) : 70px de haut,
   padding 2 % sur tablette, 2 % sur les côtés seulement sur mobile ;
   logo réduit à la demi-colonne (48 % de l'écran au maximum) */
@media (max-width: 1024px)
{
	.elementor .header.header-accueil
	{
		min-height: calc(70px + 4vw);	/* 70px + padding de 2 % en haut et en bas */
		padding: 2%;
	}
	.elementor .header-accueil .logo-header
	{
		width: min(200px, 48vw);
		margin-top: -13px;
	}
}
@media (max-width: 767px)
{
	.elementor .header.header-accueil
	{
		min-height: 70px;
		padding: 0 2%;
	}
	.elementor .header-accueil .menu-burger .elementor-nav-menu__container.elementor-nav-menu--dropdown
	{
		top: calc(100% + 1px) !important;	/* header de l'accueil sans padding vertical */
	}
}
.elementor .header-accueil .logo-header
{
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.3s;
}
.elementor .header-accueil .menu-header .elementor-nav-menu .elementor-item
{
	color: var(--blanc);
}
.elementor .header-accueil .menu-header .elementor-nav-menu .elementor-item:hover,
.elementor .header-accueil .menu-header .elementor-nav-menu .elementor-item.elementor-item-active
{
	color: var(--sable);
}
.elementor .header-accueil .menu-burger .elementor-menu-toggle
{
	color: var(--blanc);
}
.elementor .header-accueil .menu-burger .elementor-menu-toggle svg
{
	fill: var(--blanc);
}
.header-colle .elementor .header.header-accueil
{
	background-color: var(--blanc);
	box-shadow: 0px 1px 8px 5px rgba(75, 75, 75, 0.11);
}
.header-colle .elementor .header-accueil .logo-header
{
	visibility: visible;
	opacity: 1;
}
.header-colle .elementor .header-accueil .menu-header .elementor-nav-menu .elementor-item
{
	color: var(--texte);
}
.header-colle .elementor .header-accueil .menu-header .elementor-nav-menu .elementor-item:hover,
.header-colle .elementor .header-accueil .menu-header .elementor-nav-menu .elementor-item.elementor-item-active
{
	color: var(--taupe);
}
.header-colle .elementor .header-accueil .menu-burger .elementor-menu-toggle
{
	color: var(--texte);
}
.header-colle .elementor .header-accueil .menu-burger .elementor-menu-toggle svg
{
	fill: var(--texte);
}

/* Listes d'icônes (widgets V3 icon-list, classe liste-contact) */
.elementor .liste-contact .elementor-icon-list-items
{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
}
.elementor .liste-contact .elementor-icon-list-item > a,
.elementor .liste-contact .elementor-icon-list-text
{
	font-family: var(--police-texte), sans-serif;
	font-size: var(--texte-petit);
	color: var(--texte);
	transition: color 0.3s;
}
.elementor .liste-contact .elementor-icon-list-icon
{
	--e-icon-list-icon-size: 15px;
	padding-inline-end: 8px;
}
.elementor .liste-contact .elementor-icon-list-icon i
{
	color: var(--texte);
	transition: color 0.3s;
}
.elementor .liste-contact .elementor-icon-list-icon svg
{
	fill: var(--texte);
	transition: fill 0.3s;
}
.elementor .liste-contact .elementor-icon-list-item:hover .elementor-icon-list-text,
.elementor .liste-contact .elementor-icon-list-item:hover .elementor-icon-list-icon i
{
	color: var(--taupe-fonce);
}
.elementor .liste-contact .elementor-icon-list-item:hover .elementor-icon-list-icon svg
{
	fill: var(--taupe-fonce);
}
/* Icônes téléphone / e-mail / Instagram : glyphes Font Awesome 5 Pro de l'original (police du thème noxweb, copiée
   dans fonts/) à la place des SVG d'Elementor ; boîte de 1.25em centrée.
   Page Contact : Light en 16px, 8px avant le texte ; pied de page : Light en 14px, Instagram (Brands) en 18px, texte collé. */
@font-face {
	font-family: 'Speednox FA5 Light';
	font-weight: 300;
	font-display: block;
	src: url("https://monmomentamoi.ch/speednox/fonts/fa-light-300.woff2") format('woff2');
}
@font-face {
	font-family: 'Speednox FA5 Brands';
	font-weight: 400;
	font-display: block;
	src: url("https://monmomentamoi.ch/speednox/fonts/fa-brands-400.woff2") format('woff2');
}
.elementor .liste-contact .elementor-icon-list-icon:has(> svg.e-fab-instagram, > svg.e-fas-phone-alt, > svg.e-far-envelope) svg
{
	display: none;
}
.elementor .liste-contact .elementor-icon-list-icon:has(> svg.e-fab-instagram, > svg.e-fas-phone-alt, > svg.e-far-envelope)::before
{
	width: 1.25em;
	font-size: 16px;
	line-height: 1;
	text-align: center;
	color: var(--texte);
	font-family: 'Speednox FA5 Light';
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	transition: color 0.3s;
}
.elementor .liste-contact .elementor-icon-list-icon:has(> svg.e-fab-instagram)::before
{
	content: '\f16d';
	font-family: 'Speednox FA5 Brands';
	font-weight: 400;
}
.elementor .liste-contact .elementor-icon-list-icon:has(> svg.e-fas-phone-alt)::before
{
	content: '\f879';
}
.elementor .liste-contact .elementor-icon-list-icon:has(> svg.e-far-envelope)::before
{
	content: '\f0e0';
}
.elementor .liste-contact .elementor-icon-list-item:hover .elementor-icon-list-icon::before
{
	color: var(--taupe-fonce);
}
[data-elementor-type="footer"] .liste-contact .elementor-icon-list-icon:has(> svg.e-fab-instagram, > svg.e-fas-phone-alt, > svg.e-far-envelope)
{
	padding-inline-end: 0;
}
[data-elementor-type="footer"] .liste-contact .elementor-icon-list-icon:has(> svg.e-fas-phone-alt, > svg.e-far-envelope)::before
{
	font-size: 14px;
}
[data-elementor-type="footer"] .liste-contact .elementor-icon-list-icon:has(> svg.e-fab-instagram)::before
{
	font-size: 18px;
}
/* Horaires du pied de page : jours (« Du lundi au vendredi », « Le samedi ») en 600, comme l'original */
[data-elementor-type="footer"] [data-id="21f5e1b8"] > span
{
	font-weight: 600;
}
/* Contact : jeu de graisse « mon moment a moi » comme l'original (moment 600, moi 800) */
.elementor-55 [data-id="2b448ed0"] > span:nth-of-type(1)
{
	font-weight: 600;
}
.elementor-55 [data-id="2b448ed0"] > span:nth-of-type(2)
{
	font-weight: 800;
}

/* Formulaire newsletter du footer : widget Form V3 (Elementor Pro), seul format
   que le déployeur noxweb convertit vers app.noxweb.ch (champ caché noxweb_form_id = newsletter).
   Même rendu que l'ancien formulaire V4 : 580px max, champ 2/3, bouton 1/3, empilés sur mobile. */
.elementor .newsletter-form
{
	width: 100%;
	max-width: 580px;
	margin-inline: auto;
}
.elementor .newsletter-form .elementor-form-fields-wrapper
{
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
}
.elementor .newsletter-form .elementor-field-group
{
	margin: 0;
	padding: 0;
}
.elementor .newsletter-form .elementor-field-type-email
{
	order: 1;
	flex: 0 0 66.67%;
	max-width: 66.67%;
}
.elementor .newsletter-form .elementor-field-type-hidden
{
	display: none;
}
.elementor .newsletter-form .elementor-field-group .elementor-field
{
	height: 42px;
	min-height: 42px;
	padding: 10px 15px;
	border: 0;
	border-radius: 0;
	background-color: rgba(210, 193, 180, 0.38);
	font-family: var(--police-texte), sans-serif;
	font-weight: 500;
	font-size: var(--texte-petit);
	color: var(--taupe-fonce);
}
.elementor .newsletter-form .elementor-field::placeholder
{
	color: var(--taupe);
	opacity: 1;
}
.elementor .newsletter-form .elementor-field:focus
{
	outline: 1px solid var(--taupe);
}
/* Le groupe du bouton s'efface : le bouton et le widget Turnstile (inséré par le
   déployeur juste avant le bouton) deviennent des éléments de la ligne. Le bouton
   reste à côté du champ, le widget visible passe dessous, centré. */
.elementor .newsletter-form .elementor-field-type-submit
{
	display: contents;
}
.elementor .newsletter-form .cf-turnstile
{
	order: 3;
	flex: 0 0 100%;
	display: flex;
	justify-content: center;
	margin-top: 10px;
}
.elementor .newsletter-form .elementor-button
{
	order: 2;
	flex: 0 0 33.33%;
	max-width: 33.33%;
	width: 100%;
	height: auto;
	min-height: 42px;
	padding: 13px 0;
	border: 0;
	border-radius: 0;
	background-color: var(--taupe);
	font-family: var(--police-texte), sans-serif;
	font-weight: 500;
	font-size: var(--texte-petit);
	line-height: 1;
	color: var(--blanc);
	white-space: normal;
}
.elementor .newsletter-form .elementor-button:hover,
.elementor .newsletter-form .elementor-button:focus-visible
{
	background-color: var(--taupe-fonce);
	color: var(--blanc);
}
/* Ajoutés par le déployeur noxweb : mention du captcha sous le formulaire */
.elementor .newsletter-form .turnstile-message,
.elementor .newsletter-form .recaptcha-message
{
	margin-top: 10px;
	font-size: 12px;
	line-height: 1.4;
	text-align: center;
	color: var(--gris, #4B4B4B);
}
.elementor .newsletter-form .elementor-message
{
	margin-top: 10px;
	font-family: var(--police-texte), sans-serif;
	font-size: var(--texte-petit);
	text-align: center;
}
@media (max-width: 767px)
{
	.elementor .newsletter-form .elementor-field-type-email,
	.elementor .newsletter-form .elementor-button
	{
		flex: 0 0 100%;
		max-width: 100%;
	}
	.elementor .newsletter-form .elementor-button
	{
		min-height: 40px;
	}
}

/* Formulaires V4 (classe champ) */
.elementor .champ::placeholder
{
	color: var(--taupe);
	opacity: 1;
}
.elementor .champ:focus
{
	outline: 1px solid var(--taupe);
}

/* Voiles des fonds (repris des overlays Elementor du site d'origine).
   Classes globales : hero (dégradé chaud, accueil et espaces), hero + hero-sable (pages),
   carte-soin (cartes de l'accueil), fond-voile-blanc (bons cadeaux). */
.elementor .hero::before,
.elementor .carte-soin::before,
.elementor .fond-voile-blanc::before
{
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	transition: background-color 0.8s, opacity 0.3s;
}
.elementor .hero > *,
.elementor .carte-soin > *,
.elementor .fond-voile-blanc > *
{
	position: relative;
	z-index: 1;
}
.elementor .hero::before
{
	background-image: linear-gradient(30deg, #B88E6D 50%, #DFBA96 100%);
	opacity: 0.78;
	mix-blend-mode: multiply;
	filter: brightness(120%);
}
.elementor .hero.hero-sable::before
{
	background-image: linear-gradient(200deg, var(--sable) 34%, var(--taupe) 62%);
	opacity: 0.55;
	mix-blend-mode: normal;
	filter: none;
}
.elementor .fond-voile-blanc::before
{
	background-color: var(--blanc);
	opacity: 0.75;
}

/* Cartes de soins de l'accueil : voile taupe, plus léger au survol */
.elementor .carte-soin::before
{
	background-color: rgba(152, 118, 98, 0.5);
}
.elementor .carte-soin:hover::before
{
	background-color: rgba(152, 118, 98, 0.31);
}
/* Au survol, l'original (widget Call to Action) filtre aussi l'image : luminosité 85 %, contraste 200 %, en 0.8s.
   L'image est recopiée sous le voile (::after, z-index -1 dans la carte isolée) pour ne pas filtrer le texte.
   Le bouton ne change qu'à son propre survol (classe bouton-carte), comme l'original. */
.elementor .carte-soin
{
	text-decoration: none;
	isolation: isolate;
}
.elementor .carte-soin::after
{
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: inherit;
	transition: filter 0.8s;
	pointer-events: none;
}
.elementor .carte-soin:hover::after
{
	filter: brightness(85%) contrast(200%);
}
.elementor .bouton-carte
{
	transition: color 0.3s, background-color 0.3s;
}

/* Flèche du hero de l'accueil : pulsation continue (animation « pulse » d'origine) */
.elementor .fleche-hero
{
	animation: fleche-pulse 2s ease-in-out infinite;
}
@keyframes fleche-pulse
{
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.1); }
}

/* Boutons V4 : sans soulignement */
.elementor a.bouton,
.elementor a.bouton:hover
{
	text-decoration: none;
}

/* Textes riches (widgets V3 text-editor, classe texte-riche) */
.elementor .texte-riche
{
	font-family: var(--police-texte), sans-serif;
	font-size: var(--texte-courant);
	line-height: 1.5;
	color: var(--texte);
	text-align: center;
}
/* Marges des paragraphes de GeneratePress, comme sur l'original ; le thème noxweb annule
   la marge du dernier paragraphe (body.elementor-default .elementor-element p:last-child), on la rétablit */
.elementor .texte-riche p,
.elementor .texte-riche ul,
body.elementor-default .elementor .texte-riche p:last-child
{
	margin-top: 0;
	margin-bottom: 1.5em;
}
/* Comme sur l'original, le dernier paragraphe garde sa marge (1.5em) ;
   certains textes la compensent par une marge négative de 4 % (classe marge-negative) */
.elementor .texte-riche.marge-negative
{
	margin-bottom: -4%;
}
.elementor .texte-riche ul
{
	text-align: left;
	margin-left: 3em;
}
.elementor .texte-riche a
{
	color: var(--taupe-fonce);
}
.elementor .texte-gauche,
.elementor .texte-gauche .texte-riche
{
	text-align: left;
}

/* Citations (widgets V3 blockquote, classe citation) */
.elementor .citation .elementor-blockquote
{
	padding: 20px;
	border: 1px solid var(--texte);
	background-color: transparent;
	text-align: center;
}
.elementor .citation.elementor-widget .elementor-blockquote:before
{
	line-height: 1;
	color: var(--taupe);
	font-size: 50px;
}
.elementor .citation .elementor-blockquote__content
{
	margin-top: 0;
	font-family: var(--police-texte), sans-serif;
	font-size: 19.2px;	/* 1.2rem sur l'original */
	line-height: 1.5;
	color: var(--taupe);
}

/* Listes de prix (widgets V3 price-list, classe liste-prix).
   Sélecteurs renforcés : le CSS généré par Elementor pour chaque widget (espacement 20px par défaut) est très spécifique. */
body .elementor .elementor-element.liste-prix .elementor-price-list li
{
	padding-bottom: 15px;
	border-bottom: 1px solid var(--sable);
}
body .elementor .elementor-element.liste-prix.liste-prix-serree .elementor-price-list li
{
	padding-bottom: 5px;
}
body .elementor .elementor-element.liste-prix .elementor-price-list li:not(:last-child)
{
	margin-bottom: 15px;
}
body .elementor .elementor-element.liste-prix .elementor-price-list li:last-child
{
	border-bottom: 0;
}
body .elementor .elementor-element.liste-prix .elementor-price-list-item
{
	align-items: flex-start;
}
body .elementor .elementor-element.liste-prix .elementor-price-list-header,
body .elementor .elementor-element.liste-prix .elementor-price-list-title,
body .elementor .elementor-element.liste-prix .elementor-price-list-price
{
	font-family: var(--police-texte), sans-serif;
	font-size: 17.6px;	/* 1.1rem sur l'original */
	font-style: normal;
	font-weight: 500;
	line-height: 1.5;
	color: var(--taupe-fonce);
}
/* Séparateur conservé (il occupe sa place comme sur l'original) mais sans trait */
body .elementor .elementor-element.liste-prix .elementor-price-list .elementor-price-list-separator
{
	border-bottom: 0 solid transparent;
}
body .elementor .elementor-element.liste-prix .elementor-price-list-description
{
	font-family: var(--police-texte), sans-serif;
	font-size: 14.4px;	/* 0.9rem sur l'original */
	font-style: normal;
	line-height: 1.5;
	margin-top: 0;
	color: var(--texte);
}

/* Navigation des heros (widgets V3 icon-list en ligne, classe nav-hero) : liens blancs séparés par des points.
   Comme l'original : liens en 1.2rem, 23px entre un lien et le point suivant, point de 8px, 27px avant le lien suivant
   (icône Font Awesome de 8px + 20px de padding + espace) ; sur mobile, liste en colonne espacée de 20px, sans points. */
.elementor .nav-hero .elementor-icon-list-items.elementor-inline-items
{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 -11.5px;
}
.elementor .nav-hero .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item
{
	display: flex;
	align-items: center;
	margin: 0 11.5px;
}
.elementor .nav-hero .elementor-icon-list-item:not(:first-child)::before
{
	content: '';
	width: 8px;
	height: 8px;
	flex-shrink: 0;
	margin: -3px 27px 0 0;
	border-radius: 50%;
	background-color: var(--blanc);
}
.elementor .nav-hero .elementor-icon-list-item:after
{
	display: none;
}
.elementor .nav-hero .elementor-icon-list-icon
{
	display: none;
}
.elementor .nav-hero .elementor-icon-list-item > a,
.elementor .nav-hero .elementor-icon-list-text
{
	font-family: var(--police-texte), sans-serif;
	font-size: 1.2rem;
	line-height: 1.5;
	color: var(--blanc);
	transition: color 0.3s;
}
.elementor .nav-hero .elementor-icon-list-item:hover .elementor-icon-list-text
{
	color: var(--taupe-fonce);
}
/* L'original garde 20px sous la liste (widget suivi de la version mobile, masquée) : contenu remonté de 10px */
@media (min-width: 768px)
{
	.elementor .hero .nav-hero
	{
		margin-bottom: 20px;
	}
}
@media (max-width: 767px)
{
	.elementor .nav-hero .elementor-icon-list-items.elementor-inline-items
	{
		flex-direction: column;
		align-items: center;
		gap: 20px;
		margin: 0;
	}
	.elementor .nav-hero .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item
	{
		margin: 0;
	}
	.elementor .nav-hero .elementor-icon-list-item:not(:first-child)::before
	{
		display: none;
	}
}

/* Galerie de l'institut (widget V3 gallery, classe galerie) : voile taupe au survol */
.elementor .galerie .e-gallery-item:hover .elementor-gallery-item__overlay,
.elementor .galerie .e-gallery-item:focus .elementor-gallery-item__overlay
{
	background-color: rgba(152, 118, 98, 0.5);
	mix-blend-mode: multiply;
}

/* Titres dans les textes riches (page Épilation laser) : styles h2 / h3 du kit d'origine */
.elementor .texte-riche h2
{
	font-family: var(--police-texte), sans-serif;
	font-size: var(--titre-h2);
	font-weight: 400;
	line-height: 1.2;
	color: var(--taupe);
	margin: 0 0 20px;	/* marges des titres de GeneratePress, comme sur l'original */
}
@media (max-width: 767px)
{
	.elementor .texte-riche h2
	{
		font-size: 1.8rem;	/* h2 du kit d'origine sur mobile (28.8px) */
	}
}
.elementor .texte-riche h3
{
	font-family: var(--police-texte), sans-serif;
	font-size: var(--titre-h3);
	font-weight: 400;
	line-height: 1.2;
	color: var(--taupe);
	margin: 0 0 20px;
}
.elementor .texte-riche ol
{
	text-align: left;
	margin: 0 0 1.5em 3em;
}

/* Popup « Offre 3 zones » : titre au style h3 du site d'origine (Quicksand, taupe).
   Le h3 du kit d'origine (1.7rem) l'emporte sur la taille de popup.css, sauf dans la popup de sortie (28px). */
.nox-popup .nox-popup-title
{
	font-family: var(--police-texte), sans-serif;
	font-weight: 600;
	color: var(--taupe);
}
h3.nox-popup-title
{
	font-size: 1.7rem;
}
/* Croix de fermeture : police et graisse des boutons de GeneratePress */
.nox-popup .nox-popup-close
{
	font-family: var(--police-texte), sans-serif;
	font-weight: 500;
}

/* Titre des heros de pages : le thème noxweb annule la marge basse du dernier h1
   (body.elementor-default .elementor-element h1:last-child) ; on rétablit les 4 % de l'original */
body.elementor-default .elementor .titre-hero:last-child
{
	margin-block-end: 4%;
}
/* Espace bien-être : sur ordinateur, le titre d'origine est suivi de sa version tablette / mobile (masquée)
   et garde 20px de marge basse ; sur tablette, cette version est coupée en deux lignes (« espace<br>bien-être ») */
@media (min-width: 1025px)
{
	body.elementor-default .elementor-51 .hero .titre-hero:last-child
	{
		margin-block-end: calc(4% + 20px);
	}
}
@media (max-width: 1024px)
{
	.elementor-51 .hero .titre-hero
	{
		max-width: 7em;
	}
}
/* Épilation laser : sous-titre du hero avec sa marge basse d'origine (1.5em), annulée par noxweb (p:last-child) */
body.elementor-default .elementor-52 .hero .texte-hero:last-child
{
	margin-block-end: 1.5em;
}
/* Tailles d'origine en rem : sous-titre 2.2rem (mobile 1.8rem), titre mobile 3.4rem */
.elementor-52 .hero .texte-hero
{
	font-size: 2.2rem;
}
@media (max-width: 767px)
{
	.elementor-52 .hero .titre-hero
	{
		font-size: 3.4rem;
	}
	.elementor-52 .hero .texte-hero
	{
		font-size: 1.8rem;
	}
}
