/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.1.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* ==========================================================================
   Christine Coste : styles propres au site.
   Couleurs, typos et boutons viennent des globaux Elementor (Kit). Le socle de l'agence (assets/css/socle.css)
   n'est jamais modifié : on le règle ici par ses variables.
   ========================================================================== */

:root {
	--pb-demi-contenu: 656px;
	--cc-vert: var(--e-global-color-accent, #8CC342);
	--cc-sauge: var(--e-global-color-primary, #6FA687);
	--cc-jaune: var(--e-global-color-secondary, #FFD400);
	--cc-nuit: var(--e-global-color-text, #07222F);
	--cc-orange: var(--e-global-color-orange, #FBB03B);
	--cc-creme: var(--e-global-color-creme, #FCF8F4);
	--cc-vertpale: var(--e-global-color-vertpale, #F1F9F5);
	/* Socle : pastilles des menus, navigation des carrousels, formulaires. */
	--pb-accent: var(--cc-vert);
	--pb-accent-survol: var(--cc-sauge);
	--pb-texte: var(--cc-nuit);
	/* Hauteur du header avant défilement (le contenu commence dessous) ; --nav-height suit le header en JS. */
	--cc-header-h: 95px;
	--nav-height: 95px;
	--nav-gap: 10px;
}

@media (max-width: 1024px) {
	:root { --cc-header-h: 80px; --nav-height: 80px; }
}

@media (max-width: 767px) {
	:root { --cc-header-h: 70px; --nav-height: 70px; }
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Rognage des textes à la hauteur de capitale (comme dans Figma) : les écarts de la maquette se mesurent entre lettres. */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.pb-date .elementor-icon-list-text {
	text-box: trim-both cap alphabetic;
}

/* Un titre en balise <p> ne prend pas la marge des paragraphes. */
p.elementor-heading-title {
	margin: 0;
}

.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

/* Conteneur à la largeur de son contenu (« auto » n'est pas une valeur du réglage Largeur d'Elementor). */
.pb-auto.e-con {
	--width: auto;
	width: auto;
	flex: 0 1 auto;
}

/* --------------------------------------------------------------------------
   Header : barre blanche fixe, plus fine au scroll (.scrollHeader posée par site.js)
   -------------------------------------------------------------------------- */
.pb-header {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	transition: min-height .3s ease, box-shadow .3s ease;
}

body:not(.elementor-editor-active) {
	padding-top: var(--cc-header-h);
}

body.admin-bar .pb-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .pb-header {
		top: 46px;
	}
}

.pb-header .pb-header-droite.e-con {
	flex: 1 1 auto;
	min-width: 0;
}

.pb-header .pb-logo img {
	transition: width .3s ease;
}

.pb-header.scrollHeader.e-con {
	min-height: 72px;
	box-shadow: 0 6px 24px rgba(7, 34, 47, .08);
}

.pb-header.scrollHeader .pb-logo img {
	width: 200px;
}

@media (max-width: 1024px) {
	.pb-header.scrollHeader.e-con { min-height: 64px; }
	.pb-header.scrollHeader .pb-logo img { width: 170px; }
}

@media (max-width: 767px) {
	.pb-header.scrollHeader.e-con { min-height: 58px; }
	.pb-header.scrollHeader .pb-logo img { width: 140px; }
}

/* Lien de la page courante : vert et gras (le jaune de la maquette est illisible sur blanc). */
.pb-header .elementor-nav-menu--main .elementor-item-active,
.pb-header .elementor-nav-menu--main .elementor-nav-menu > li:has(.current-menu-item > a:not(.elementor-item-anchor)) > a.elementor-item {
	font-weight: 700;
}

.pb-header .elementor-nav-menu--main .sub-arrow svg {
	width: .7em;
}

/* Boutons du header : icône de 23 px, pas de retour à la ligne. */
.pb-btn .elementor-button-icon svg {
	width: 23px;
	height: auto;
}

.pb-header-boutons .elementor-button {
	white-space: nowrap;
}

@media (min-width: 1025px) and (max-width: 1500px) {
	.pb-header .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item {
		font-size: .9375rem;
	}
	.pb-header-boutons .pb-btn:not(.pb-icone-large) .elementor-button {
		padding-inline: 14px !important;
	}
}


/* --------------------------------------------------------------------------
   Boutons : transition douce (couleurs du survol réglées dans le Kit et les variantes du générateur)
   -------------------------------------------------------------------------- */
.elementor-widget-button .elementor-button {
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

/* --------------------------------------------------------------------------
   Titres à pastille orange (picto blanc dans un rond de 64 px)
   -------------------------------------------------------------------------- */
.pb-pastille-orange img {
	box-sizing: border-box;
	aspect-ratio: 1;
	padding: 6px;
	border-radius: 50%;
	background: var(--cc-orange);
}

/* --------------------------------------------------------------------------
   Formes décoratives : derrière le contenu, sans capter les clics
   -------------------------------------------------------------------------- */
.pb-deco {
	pointer-events: none;
}

.pb-deco img {
	width: 100%;
	height: auto;
}

/* --------------------------------------------------------------------------
   Cartes d'actualité
   -------------------------------------------------------------------------- */
.pb-extrait-2l p {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-box: normal;
}

.pb-extrait-2l {
	text-box: normal;
}

.pb-titre-actu a {
	color: inherit;
}

.pb-titre-actu a:is(:hover, :focus-visible) {
	color: var(--cc-sauge);
}

/* Cartes d'actualité : dans Figma le titre n'est pas rogné (seule la date l'est), ses 6,8 px de demi-interligne s'ajoutent à l'écart date / titre. */
.elementor-widget-heading.pb-titre-actu {
	margin-top: 6.8px;
}

.e-loop-item > .e-con.pb-carte-actu {
	height: 100%;
}

/* --------------------------------------------------------------------------
   Avis : cartes crème / vert pâle en alternance, étoiles, citation repliée
   -------------------------------------------------------------------------- */
.pb-carrousel-avis .e-loop-item:nth-of-type(even) .pb-carte-avis {
	background-color: var(--cc-vertpale) !important;
}

.e-loop-item > .e-con.pb-carte-avis {
	height: 100%;
}

.pb-etoiles {
	display: inline-flex;
	gap: 3px;
	line-height: 0;
}

.pb-etoile svg {
	fill: var(--cc-orange);
}

.pb-etoile--vide svg {
	fill: #E3E3E3;
}

.pb-avis-etoiles {
	line-height: 0;
}

.pb-note-google img {
	display: inline-block;
}


/* Flèches de part et d'autre des cartes (maquette) dès qu'il y a la place dans les marges, points dessous.
   En dessous, la navigation du socle (flèches et points sur une ligne sous les cartes). */
@media (min-width: 1440px) {
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget {
		--pb-nav-taille: 43px;
		--pb-nav-espace: 32px;
		padding-bottom: 40px;
	}
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget .elementor-swiper-button {
		top: calc(50% - 20px) !important;
		bottom: auto !important;
		transform: translateY(-50%) !important;
		color: #fff;
		background: var(--cc-vert);
	}
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget .elementor-swiper-button:is(:hover, :focus-visible) {
		color: var(--cc-vert);
		background: #fff;
		box-shadow: inset 0 0 0 1px var(--cc-vert);
	}
	/* Le chevron prend la couleur du bouton : sinon il reste blanc sur le fond blanc au survol. */
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget .elementor-swiper-button {
		transition: color .25s ease, background-color .25s ease, box-shadow .25s ease;
	}
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget .elementor-swiper-button svg {
		fill: currentColor;
	}
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget .elementor-swiper-button-prev {
		left: -62px !important;
	}
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget .elementor-swiper-button-next {
		left: auto !important;
		right: -62px !important;
	}
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget .swiper-pagination {
		left: 0 !important;
		right: 0;
		width: 100% !important;
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
   Bloc « Prenez rendez-vous » (footer) : à cheval sur le haut du pied de page vert
   -------------------------------------------------------------------------- */
@media (min-width: 1025px) {
	.pb-cta-image img {
		height: 100% !important;
	}
	.pb-cta-image.elementor-widget-image {
		align-self: stretch;
	}
}

body.pb-sans-cta .pb-cta-zone {
	display: none;
}

/* --------------------------------------------------------------------------
   Pied de page
   -------------------------------------------------------------------------- */

.pb-footer .pb-reseau img,
.pb-bloc-reseaux .pb-reseau img {
	transition: transform .25s ease, opacity .25s ease;
}

.pb-footer .pb-reseau a:is(:hover, :focus-visible) img,
.pb-bloc-reseaux .pb-reseau a:is(:hover, :focus-visible) img {
	transform: translateY(-2px);
	opacity: .85;
}

.pb-footer-menu .elementor-nav-menu--dropdown .elementor-item {
	justify-content: flex-start;
}

.pb-footer-menu .sub-arrow svg {
	width: .65em;
	fill: currentColor;
}

.pb-footer-menu .sub-menu {
	position: static !important;
	padding-left: 12px !important;
}

.pb-lien-legal .elementor-heading-title::after {
	content: "\00a0·\00a0";
	font-weight: 400;
}

.pb-lien-legal a,
.pb-footer-bas a {
	color: inherit;
}

.pb-lien-legal a:is(:hover, :focus-visible),
.pb-footer-bas a:is(:hover, :focus-visible) {
	color: var(--cc-jaune);
}

/* --------------------------------------------------------------------------
   Fenêtre de réservation et pages BookingPress
   -------------------------------------------------------------------------- */
.pb-popup-reservation {
	max-height: 90vh;
	overflow-y: auto;
}

/* Cartes de même hauteur, bouton en bas. */
.pb-carte-massage > .elementor-widget-button:last-child,
.pb-carte-massage > .e-con:last-child {
	margin-top: auto;
}

/* --------------------------------------------------------------------------
   Accueil
   -------------------------------------------------------------------------- */
/* Collage de 3 photos (section « approche globale ») : placé en desktop, en grille dessous. */
@media (max-width: 1024px) {
	.pb-collage.e-con {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 16px;
	}
	.pb-collage .pb-collage-photo {
		position: static !important;
		width: 100% !important;
		max-width: none !important;
	}
	.pb-collage .pb-collage-photo img {
		width: 100% !important;
		height: 260px !important;
	}
	.pb-collage .pb-collage-3 {
		grid-column: 1 / -1;
	}
	.pb-collage .pb-collage-3 img {
		height: 360px !important;
	}
}

@media (max-width: 767px) {
	.pb-collage .pb-collage-photo img { height: 180px !important; }
	.pb-collage .pb-collage-3 img { height: 240px !important; }
}

.pb-section-christine .pb-deco,
.pb-section-approche .pb-deco {
	z-index: 0;
}

.pb-section-christine > .e-con-inner > .e-con,
.pb-section-approche > .e-con-inner > .e-con {
	z-index: 1;
}

/* Carte d'actualité horizontale : la colonne de texte prend la place restante, sans déborder. */
.pb-carte-actu--h .pb-corps-actu.e-con {
	flex: 1 1 0;
	min-width: 0;
	--width: auto;
}

/* Icônes SVG en currentColor dans les listes d'icônes : la couleur se pose sur le conteneur. */
.pb-date .elementor-icon-list-icon {
	color: var(--cc-orange);
}

.elementor-icon-list-icon svg {
	fill: currentColor;
}

.pb-footer-contact .elementor-icon-list-icon {
	color: #fff;
}

.pb-footer-contact .elementor-icon-list-item > a:is(:hover, :focus-visible) .elementor-icon-list-icon {
	color: var(--cc-jaune);
}

/* --------------------------------------------------------------------------
   Photos rondes à anneaux (composition en %, voir photos_rondes() du générateur)
   -------------------------------------------------------------------------- */
.pb-photos-rondes.e-con {
	position: relative;
}

.pb-photos-rondes .pb-rond img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
}

.pb-photos-rondes .pb-rond-deco img {
	width: 100%;
	height: auto;
}

/* FAQ : la liste dépasse un peu du conteneur dans la maquette (1332 px pour 1312). */
@media (min-width: 1440px) {
	.pb-faq-liste.elementor-widget {
		width: calc(100% + 20px);
		margin-inline: -10px;
	}
}

/* --------------------------------------------------------------------------
   À propos
   -------------------------------------------------------------------------- */
.pb-disque-orange {
	display: block;
	width: 102px;
	height: 102px;
	border-radius: 50%;
	background: var(--cc-orange);
}

.pb-carte-fond.e-con {
	position: relative;
}

.pb-carte-fond > .e-con:not(.pb-deco),
.pb-carte-fond > .elementor-widget:not(.pb-deco) {
	position: relative;
	z-index: 1;
}

.pb-deco-carte {
	z-index: 0;
}

.pb-puces .elementor-icon-list-icon {
	padding-top: 1px;
}

/* Sections à formes décoratives : le contenu passe devant les formes. */
.e-con > .e-con-inner > .e-con:not(.pb-deco),
.e-con > .e-con-inner > .elementor-widget:not(.pb-deco) {
	position: relative;
	z-index: 1;
}

/* Colonne qui prend la place restante d'une rangée (à côté d'un bloc de largeur fixe). */
.pb-flex-reste.e-con {
	flex: 1 1 0%;
	min-width: 0;
	--width: auto;
}

.pb-photos-rondes .pb-rond img {
	box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.pb-pastille-verte img {
	box-sizing: border-box;
	aspect-ratio: 1;
	padding: 21px;
	border-radius: 50%;
	background: var(--cc-vert);
	object-fit: contain;
}

.pb-pastille-verte--petite img {
	padding: 13px;
}

@media (max-width: 767px) {
	.pb-carte-coordonnees .pb-pastille-verte img { padding: 15px; }
}

.pb-coord-valeur a {
	color: inherit;
	overflow-wrap: anywhere;
}

.pb-coord-valeur a:is(:hover, :focus-visible) {
	color: var(--cc-jaune);
}

.pb-carte-coordonnees .pb-coord-valeur .elementor-heading-title {
	text-box: normal;
}

/* Carte Google Maps en fond du bloc, carte d'identité posée dessus. */
.pb-bloc-carte.e-con {
	position: relative;
	isolation: isolate;
}

.pb-carte-fond-iframe {
	position: absolute !important;
	inset: 0;
	z-index: 0;
}

.pb-carte-fond-iframe .elementor-shortcode,
.pb-carte-google {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 767px) {
	.pb-carte-fond-iframe {
		position: relative !important;
		height: 300px;
		border-radius: 15px;
		overflow: hidden;
	}
}

.pb-lien-orange {
	font-weight: 600;
	color: var(--cc-orange);
	overflow-wrap: anywhere;
}

.pb-lien-orange:is(:hover, :focus-visible) {
	color: var(--cc-nuit);
}

/* Pages de remerciement : signature manuscrite, papillons. */
.pb-signature .elementor-heading-title {
	text-box: normal;
}

.pb-papillon img {
	width: 100%;
	height: auto;
}

/* BookingPress (réservation, carte cadeau, mes rendez-vous) : police du site. */
[class*="bpa-front"],
[class*="bpa-front"] :is(h1, h2, h3, h4, h5, h6, p, span, label, input, select, textarea, button, a, div):not([class*="material-icons"]) {
	font-family: "Montserrat", sans-serif !important;
}

.pb-extrait-5l p {
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pb-extrait-5l {
	text-box: normal;
}

/* --------------------------------------------------------------------------
   Actualités : extraits limités, filtre en pastilles, pagination
   -------------------------------------------------------------------------- */
.elementor-widget-text-editor.pb-extrait-2l {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.elementor-widget-text-editor.pb-extrait-5l {
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pb-filtre-categories .e-filter {
	gap: 10px;
}

.pb-filtre-categories .e-filter-item {
	padding: 8px 20px;
	border: 1px solid var(--cc-vertpale);
	border-radius: 999px;
	font-family: Montserrat, sans-serif;
	font-size: 1rem;
	font-weight: 600;
	color: var(--cc-nuit);
	background: var(--cc-vertpale);
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.pb-filtre-categories .e-filter-item:is(:hover, :focus-visible) {
	border-color: var(--cc-vert);
}

.pb-filtre-categories .e-filter-item[aria-pressed="true"] {
	color: #fff;
	background: var(--cc-vert);
	border-color: var(--cc-vert);
}

.pb-grille-actus .elementor-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	font-family: Montserrat, sans-serif;
	font-size: 1.125rem;
	font-weight: 800;
}

.pb-grille-actus .elementor-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	margin: 0 !important;
	border: 2px solid transparent;
	border-radius: 10px;
	color: #000;
	background: #fff;
	transition: border-color .2s ease;
}

.pb-grille-actus .elementor-pagination .page-numbers.current,
.pb-grille-actus .elementor-pagination a.page-numbers:is(:hover, :focus-visible) {
	border-color: var(--cc-orange);
}

.pb-grille-actus .elementor-pagination :is(.prev, .next) {
	width: 43px;
	min-width: 43px;
	height: 43px;
	border-radius: 50%;
	font-size: 0;
	background: var(--cc-jaune);
}

.pb-grille-actus .elementor-pagination :is(.prev, .next)::before {
	content: "";
	width: 12px;
	height: 12px;
	border: solid var(--cc-nuit);
	border-width: 0 3px 3px 0;
	transform: rotate(135deg);
	margin-left: 4px;
}

.pb-grille-actus .elementor-pagination .next::before {
	transform: rotate(-45deg);
	margin: 0 4px 0 0;
}

.pb-grille-actus .elementor-pagination span:is(.prev, .next) {
	opacity: .4;
}

/* --------------------------------------------------------------------------
   Article : sommaire numéroté, contenu (intertitres, citations, images, boutons repris de l'ancien site)
   -------------------------------------------------------------------------- */
.pb-sommaire-article .elementor-toc__list-item-text-wrapper::before {
	display: inline;
}

.pb-sommaire-article .elementor-toc__header {
	padding-bottom: 0;
}

.pb-sommaire-article .elementor-toc__list-wrapper {
	margin-top: 20px;
	gap: 12px;
}

.pb-ariane.e-con {
	overflow: hidden;
}

.pb-ariane .pb-ariane-titre {
	min-width: 0;
	flex: 1 1 auto;
}

.pb-ariane .elementor-heading-title {
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-box: normal;
}

.pb-ariane-lien a {
	color: inherit;
}

.pb-ariane-lien a:is(:hover, :focus-visible) {
	color: var(--cc-sauge);
}

/* Fil d'Ariane Rank Math (modèle d'article) : une ligne en capitales, le titre tronqué par une ellipse. */
.logia-fil-ariane.e-con {
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

.logia-fil-ariane .rank-math-breadcrumb p {
	margin: 0;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--cc-nuit);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-box: normal;
}

.logia-fil-ariane .rank-math-breadcrumb a {
	color: inherit;
}

.logia-fil-ariane .rank-math-breadcrumb a:is(:hover, :focus-visible) {
	color: var(--cc-sauge);
}

.pb-article-corps {
	font-size: 1.1875rem;
	line-height: 1.3;
}

.pb-article-corps :is(h2, h3, h4) {
	margin: 1.5em 0 .75em;
	color: var(--cc-nuit);
}

.pb-article-corps h2 {
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.22;
}

.pb-article-corps :is(h3, h4) {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 1.3;
}

.pb-article-corps p,
.pb-article-corps ul,
.pb-article-corps ol {
	margin: 0 0 20px;
}

.pb-article-corps a:not(.wp-block-button__link) {
	color: var(--cc-sauge);
	text-decoration: underline;
}

.pb-article-corps blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
}

.pb-article-corps blockquote.is-style-large {
	margin: 32px 0;
	padding: 24px 32px;
	border-radius: 15px;
	background: var(--cc-creme);
}

.pb-article-corps img {
	height: auto;
	border-radius: 15px;
}

.pb-article-corps .wp-block-image,
.pb-article-corps figure {
	margin: 32px 0;
}

.pb-article-corps .wp-block-buttons {
	margin: 24px 0;
}

.pb-article-corps .wp-block-button__link {
	display: inline-block;
	padding: 10.8px 33px;
	border: 1px solid var(--cc-jaune);
	border-radius: 10px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--cc-nuit) !important;
	background: var(--cc-jaune) !important;
	transition: background-color .25s ease;
}

.pb-article-corps .wp-block-button__link:is(:hover, :focus-visible) {
	background: #fff !important;
}

.pb-article-corps hr {
	margin: 40px 0;
	border: 0;
	border-top: 1px solid rgba(7, 34, 47, .15);
}

.pb-carte-massage .elementor-button,
.pb-carte-actu .elementor-button {
	white-space: nowrap;
}



@media (min-width: 1440px) {
	.pb-carrousel-cotes.pb-carrousel-nav.elementor-widget:has(.swiper-button-lock) {
		padding-bottom: 0;
	}
}

/* ==========================================================================
   Corrections après la 1re passe d'inspection (transverses)
   ========================================================================== */
/* Formes décoratives en repère « contenu » : positions comptées depuis le bloc de contenu de 1312 px. */
.e-con-inner:has(> .pb-deco-contenu) {
	position: relative;
}

/* Colonne de largeur fixe qui peut céder de la place (rangées photo + texte). */
.pb-flex-fixe.e-con {
	min-width: 0;
}

/* Header : « Carte cadeau » en icône seule sous 1441 px, « Réserver une séance » en icône de 1025 à 1280 px et en mobile. */
@media (max-width: 1024px) {
	.pb-header-boutons .pb-btn:not(.pb-icone-large) .elementor-button {
		padding-inline: 16px !important;
	}
}

/* Boutons du header en icône seule : les marges intérieures ci-dessus ne s'appliquent pas (bouton carré du socle). */
@media (min-width: 1025px) and (max-width: 1280px) {
	.pb-header-boutons .pb-icone-etroit .elementor-button {
		padding: 10px !important;
	}
}

@media (max-width: 767px) {
	.pb-header-boutons .pb-icone-mobile .elementor-button {
		padding: 10px !important;
	}
}

@media (max-width: 420px) {
	.pb-header .pb-logo img {
		width: 150px;
	}
}

/* Pied de page : liens légaux puis copyright, sans chevauchement quand ils passent à la ligne. */
.pb-footer-bas .elementor-heading-title {
	text-box: normal;
}

@media (max-width: 1024px) {
	.pb-copyright,
	.pb-liens-legaux {
		text-align: center;
	}
}

/* Pied de page : page courante en blanc, soulignée (le jaune sur vert manquait de contraste). */
.pb-footer-menu .elementor-item-active,
.pb-footer-menu .current-menu-item > a {
	text-decoration: underline;
	text-underline-offset: 4px;
	font-weight: 600;
}

/* Monogramme de la section Christine : dans le contenu, sous le bouton. */
.pb-monogramme img {
	width: 100%;
	height: auto;
}

/* Carte d'identité de la page Contact : survol de la pastille et de l'adresse (liens vers l'itinéraire). */
.pb-carte-identite .pb-pastille-verte a img {
	transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.pb-carte-identite .pb-pastille-verte a:is(:hover, :focus-visible) img {
	transform: scale(1.08);
	background-color: var(--cc-sauge);
	box-shadow: 0 6px 16px rgba(7, 34, 47, .18);
}

.pb-carte-identite .elementor-widget-heading .elementor-heading-title > a {
	color: inherit;
	text-decoration: underline transparent;
	text-underline-offset: 4px;
	transition: color .25s ease, text-decoration-color .25s ease;
}

.pb-carte-identite .elementor-widget-heading .elementor-heading-title > a:is(:hover, :focus-visible) {
	color: var(--cc-sauge);
	text-decoration-color: currentColor;
}

/* Adresse du bloc « Je vous reçois… » (pages de prestation) : une seule ligne comme la maquette (la variable « Adresse » force un saut de ligne), lien vers l'itinéraire. */
.pb-adresse .elementor-icon-list-text br {
	display: none;
}

.pb-adresse .elementor-icon-list-icon svg {
	width: 21.46px;
	height: 25.94px;
}

.pb-adresse .elementor-icon-list-item > a .elementor-icon-list-text {
	text-decoration: underline transparent;
	text-underline-offset: 4px;
	transition: color .25s ease, text-decoration-color .25s ease;
}

.pb-adresse .elementor-icon-list-item > a:is(:hover, :focus-visible) .elementor-icon-list-text {
	color: var(--cc-sauge);
	text-decoration-color: currentColor;
}

/* Logo Google cliquable : survol. */
.pb-note-google a img {
	transition: opacity .25s ease;
}

.pb-note-google a:is(:hover, :focus-visible) img {
	opacity: .7;
}

/* Mots composés jamais coupés au trait d'union (bien-être, Drôme-Ardèche…), span posé par le générateur. */
.pb-insecable {
	white-space: nowrap;
}

@media (max-width: 1024px) {
	.pb-liens-legaux .pb-lien-legal:last-child .elementor-heading-title::after {
		content: none;
	}
}

/* ==========================================================================
   Corrections après la 1re passe d'inspection (suite)
   ========================================================================== */
/* Listes à puces : écart puce / texte = retrait du texte seul (Elementor ajoute 5 px au SVG et 5 px au texte). */
.pb-puces .elementor-icon-list-icon svg {
	margin: 0 !important;
}

.pb-puces .elementor-icon-list-text {
	padding-inline-start: 0 !important;
}

/* Adresses sur deux lignes, à toutes les largeurs (le socle masque les <br> des titres en mobile). */
.pb-coord-valeur br,
.pb-carte-identite br,
.pb-footer-contact br {
	display: inline !important;
}

/* Bloc « Nos réseaux sociaux » : pastilles de largeur fixe, texte dans la place restante. */
.pb-reseaux-pastilles.e-con {
	flex: 0 0 auto;
}

@media (max-width: 767px) {
	.pb-reseaux-pastilles.e-con {
		width: 100%;
		--width: 100%;
	}
}

/* Cartes d'actualité : texte aligné en haut, bouton en bas (même hauteur d'une carte à l'autre). */
.pb-corps-actu > .pb-actu-bouton.e-con {
	margin-top: auto;
}

/* Grille d'actualités en tablette : 3 colonnes dès 900 px, une colonne en dessous (jamais de carte orpheline). */
@media (max-width: 899px) and (min-width: 768px) {
	.pb-grille-actus .elementor-loop-container {
		grid-template-columns: 1fr !important;
	}
}

/* Article : intertitres repris de l'ancien site (classes de taille WordPress, gras en ligne) ramenés au style du site. */
.pb-article-corps h2 {
	margin: 1.5em 0 .75em !important;
	font-size: 2rem !important;
	font-weight: 500 !important;
	line-height: 1.22 !important;
}

.pb-article-corps :is(h3, h4) {
	margin: 1.5em 0 .6em !important;
	font-size: 1.375rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

.pb-article-corps :is(h2, h3, h4) strong {
	font-weight: inherit;
}

.pb-article-corps > :first-child,
.pb-article-corps blockquote:first-child > :first-child {
	margin-top: 0 !important;
}

@media (max-width: 1024px) {
	.pb-article-corps h2 { font-size: 1.75rem !important; }
}

@media (max-width: 767px) {
	.pb-article-corps h2 { font-size: 1.5rem !important; }
	.pb-article-corps :is(h3, h4) { font-size: 1.1875rem !important; }
}

.pb-article-corps a:not(.wp-block-button__link) {
	color: var(--cc-nuit);
	text-decoration-color: var(--cc-vert);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.pb-article-corps a:not(.wp-block-button__link):is(:hover, :focus-visible) {
	color: var(--cc-sauge);
}

.pb-article-corps figure,
.pb-article-corps .wp-block-image {
	max-width: 1012px;
	margin-inline: 0 !important;
}

.pb-article-corps figcaption {
	color: var(--cc-nuit);
	font-size: .875rem;
}

.pb-article-corps :is(.alignleft, .alignright) {
	max-width: 45%;
}

.pb-article-corps .alignleft { float: left; margin: 8px 32px 24px 0 !important; }
.pb-article-corps .alignright { float: right; margin: 8px 0 24px 32px !important; }

@media (max-width: 1100px) {
	.pb-article-corps :is(.alignleft, .alignright) {
		float: none;
		max-width: 100%;
		margin: 32px 0 !important;
	}
}

.pb-article-corps .wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 32px;
	margin: 40px 0;
	padding: 24px;
	border-radius: 15px;
	background: var(--cc-creme);
	overflow: hidden;
}

.pb-article-corps .wp-block-column {
	flex: 1 1 280px;
	min-width: 0;
}

.pb-article-corps .wp-block-column > :last-child {
	margin-bottom: 0;
}

.pb-article-corps .has-background {
	padding: 24px;
	border-radius: 15px;
}

.pb-sommaire-article .elementor-toc__list-wrapper {
	margin-top: 4px;
}

.pb-ariane .pb-ariane-titre,
.pb-ariane .pb-ariane-titre .elementor-heading-title {
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Contact : case de consentement aux couleurs du site, texte à côté de la case. */
.pb-form-contact .elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.pb-form-contact .elementor-field-type-acceptance input[type="checkbox"] {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--cc-vert);
}

.pb-form-contact .elementor-field-type-acceptance label {
	font-size: 1rem !important;
}

.pb-form-contact .elementor-field-type-acceptance > .elementor-field-label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.pb-carte-coordonnees .e-con:has(> .pb-pastille-verte) {
	align-items: center;
}

@media (max-width: 1024px) and (min-width: 768px) {
	.pb-carte-identite.e-con {
		--width: 300px;
		width: 300px;
		padding: 24px !important;
	}
	.pb-carte-identite .elementor-widget-image:last-child {
		display: none;
	}
}


/* Pages Prestations : cartes « formats » empilées sous 1000 px (lisibles, boutons entiers). */
@media (max-width: 999px) {
	.e-con:has(> .pb-carte-format) {
		--flex-direction: column !important;
		flex-direction: column !important;
	}
	.e-con:has(> .pb-carte-format) > .pb-carte-format {
		--width: 100% !important;
		width: 100% !important;
	}
}

.pb-carte-format .elementor-button {
	white-space: nowrap;
	max-width: 100%;
}

/* Tablette 1024 : longues colonnes de texte limitées pour la lecture. */
@media (max-width: 1024px) and (min-width: 768px) {
	.pb-flex-fixe .elementor-widget-text-editor {
		max-width: 720px;
	}
}



/* Formes décoratives plus discrètes (pages de remerciement). */
.pb-deco-pale img {
	opacity: .45;
}

/* Prestations, tablette : photo « déroulement de séance » cadrée sur le visage ; cartes « autres approches » moins rembourrées. */
@media (max-width: 1024px) {
	.pb-tp-photo img {
		object-position: 50% 20%;
	}
}

@media (max-width: 899px) and (min-width: 768px) {
	.pb-autres-massages .pb-carte-massage h3 .elementor-heading-title {
		font-size: 1.125rem;
	}
}

/* ==========================================================================
   Corrections après la 2e passe d'inspection
   ========================================================================== */
/* Titres sans mot orphelin en tablette et mobile. */
@media (max-width: 1024px) {
	.elementor-widget-heading .elementor-heading-title,
	.elementor-widget-theme-post-title .elementor-heading-title {
		text-wrap: balance;
	}
	.elementor-widget-text-editor p {
		text-wrap: pretty;
	}
}

/* Liens légaux du pied de page en mobile : un lien par ligne, sans séparateur pendant. */
@media (max-width: 767px) {
	.pb-liens-legaux.e-con {
		--flex-direction: column;
		flex-direction: column;
		row-gap: 6px;
	}
	.pb-liens-legaux .pb-lien-legal .elementor-heading-title::after {
		content: none;
	}
}

/* Survols du pied de page et des titres de cartes (la règle d'Elementor sur les liens de titres est plus forte). */
.elementor-widget-heading.pb-lien-legal .elementor-heading-title > a:is(:hover, :focus-visible),
.pb-footer-bas .elementor-widget-heading .elementor-heading-title a:is(:hover, :focus-visible) {
	color: var(--cc-jaune);
}

.elementor-widget-heading.pb-titre-actu .elementor-heading-title > a:is(:hover, :focus-visible) {
	color: var(--cc-sauge);
}

/* Coordonnées de la carte verte (page Contact) : survol jaune, la règle du kit sur les liens est aussi forte que .pb-coord-valeur a. */
.elementor-widget-heading.pb-coord-valeur .elementor-heading-title > a:is(:hover, :focus-visible) {
	color: var(--cc-jaune);
}

.pb-logo a img,
.pb-footer .elementor-widget-image a img {
	transition: opacity .25s ease;
}

.pb-logo a:is(:hover, :focus-visible) img,
.pb-footer .elementor-widget-image > a:is(:hover, :focus-visible) img {
	opacity: .85;
}

/* Pastilles des réseaux : largeur fixe en mobile, centrées. */
@media (max-width: 767px) {
	.pb-reseaux-pastilles.e-con > .e-con {
		--width: 88px;
		width: 88px;
		flex: 0 0 88px;
	}
}

/* Accueil : les deux colonnes d'actualités alignées en bas. */
.pb-section-actus .e-con:has(> .pb-actus-une) {
	align-items: stretch;
}

.pb-actus-une,
.pb-actus-une .elementor-loop-container,
.pb-actus-une .e-loop-item,
.pb-actus-une .e-loop-item > .e-con {
	height: 100%;
}

/* Tablette : textes des en-têtes intérieurs limités pour la lecture, compositions centrées. */
@media (max-width: 1024px) and (min-width: 768px) {
	.pb-hero .pb-flex-reste > .elementor-widget,
	.pb-hero .pb-flex-reste > .e-con {
		max-width: 700px;
	}
}

/* Formes décoratives au bord de l'écran : le dernier pixel des images (parfois gris) n'apparaît pas. */
.pb-deco img {
	clip-path: inset(0 2px 0 0);
}

/* CTA : photo cadrée par le bas en tablette et mobile. */
@media (max-width: 1024px) {
	.pb-cta-image img {
		object-position: 50% 100%;
	}
}

/* Médiation : lien orange (une règle de lien d'Elementor était plus forte). */
.elementor-widget-text-editor a.pb-lien-orange {
	color: #C27A0E;
	font-weight: 600;
}

.elementor-widget-text-editor a.pb-lien-orange:is(:hover, :focus-visible) {
	color: var(--cc-nuit);
}

/* Entreprises : mentions des cartes « formats » sur deux lignes à toutes les largeurs. */
.pb-carte-format .elementor-heading-title br {
	display: inline !important;
}

/* Article : images centrées quand elles le sont dans l'article, largeur max 1012 px. */
.pb-article-corps .aligncenter,
.pb-article-corps figure.aligncenter {
	margin-inline: auto !important;
}

.pb-article-corps img {
	max-width: 100%;
}

.pb-article-corps .wp-block-button__link.has-background {
	padding: 10.8px 33px;
}

.pb-article-corps figcaption {
	font-size: 1rem;
}

.pb-article-corps .wp-block-column {
	flex-basis: 320px;
}

.pb-sommaire-article .elementor-toc__header {
	padding-top: 25px;
}

.pb-sommaire-article .elementor-toc__header-title {
	margin-bottom: 0 !important;
}

.pb-sommaire-article .elementor-toc__list-wrapper {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.pb-sommaire-article .elementor-toc__list-item-text-wrapper {
	display: grid;
	grid-template-columns: 1.6em 1fr;
	align-items: start;
}

@media (min-width: 1440px) {
	.pb-sommaire-article.elementor-widget {
		width: calc(100% + 20px);
		margin-inline: -10px;
	}
}

.pb-ariane.e-con {
	max-width: 100%;
	min-width: 0;
}

.pb-ariane .pb-ariane-titre {
	flex: 1 1 0 !important;
	min-width: 0;
}

/* Carte cadeau : le champ de recherche occupe sa colonne, le bouton est dans le champ.
   Boutons en capitales comme ceux du site, avec un interlettrage resserré. */
.pb-cadre-bookingpress .bpgc-front-module-heading {
	display: none !important;
}

.pb-cadre-bookingpress .bpgc-filter-gift-card-search .bpgc-gift-card-head-row {
	position: relative;
	width: 100%;
}

.pb-cadre-bookingpress .bpgc-filter-gift-card-search .bp-input,
.pb-cadre-bookingpress .bpgc-filter-gift-card-search .bp-input__wrapper {
	display: flex;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.pb-cadre-bookingpress .bpgc-filter-gift-card-search .bp-input__inner {
	width: 100%;
	min-width: 0;
	padding-right: 148px !important;
}

.pb-cadre-bookingpress .bpgc-search-gift-card-btn,
.pb-cadre-bookingpress .bpgc-buy-now-button {
	text-transform: uppercase !important;
	letter-spacing: .04em;
	min-height: 0;
}

@media (max-width: 768px) {
	.pb-cadre-bookingpress .bpgc-filter-gift-card-search .bp-input__inner {
		padding-right: 48px !important;
	}
}

/* Carte : prix à droite du libellé, bouton à droite de la validité.
   Le montant déjà affiché dans le libellé est masqué, il faisait passer le texte à la ligne.
   Les sélecteurs reprennent ceux de BookingPress, chargé après le thème. */
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-detail {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 16px;
	row-gap: 8px;
	align-items: center;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-detail-left,
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-detail-right {
	display: contents !important;
}

.pb-cadre-bookingpress .bpgc-gift-card-value {
	grid-column: 1;
	grid-row: 1;
	min-width: 0;
}

.pb-cadre-bookingpress .bpgc-gift-card-duration:not(.__sm) {
	grid-column: 1 / -1;
	grid-row: 2;
	min-width: 0;
}

.pb-cadre-bookingpress .bpgc-gift-card-price {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
}

.pb-cadre-bookingpress .bpgc-gift-card-button {
	grid-column: 1 / -1;
	grid-row: 3;
	justify-self: end;
	margin-top: 0 !important;
}

.pb-cadre-bookingpress .bpgc-gift-card-detail .card-val {
	display: none;
}

/* Services inclus : la puce centrée sur la première ligne, le texte qui passe à la ligne aligné
   sur le début du nom, la durée en face. */
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	column-gap: 20px;
	row-gap: 0;
	margin-bottom: 10px;
	line-height: 1.45;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service:last-of-type {
	margin-bottom: 0;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service-nm,
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service-dur {
	max-width: none;
	min-width: 0;
	flex: none;
	padding: 0;
	font-size: 15px;
	line-height: inherit;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service-nm {
	display: flex;
	align-items: flex-start;
	color: var(--cc-nuit) !important;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-service-nm .bpgc-gift-card-indicator {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	width: auto;
	min-width: 0;
	height: 1.45em;
	margin-right: 10px;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-service-nm .bpgc-gift-card-indicator::after {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--cc-sauge);
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service-dur {
	white-space: nowrap;
	justify-self: end;
}

.pb-cadre-bookingpress .bpgc-gift-card-service-dur .bpgc-gift-card-indicator {
	display: none;
}

/* Bloc, cartes, champ et boutons : rayons et rythme du site (cadres 15 px, boutons 10 px). */
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-front-gift-card-detail {
	border-radius: 15px !important;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-front-gift-card-filter {
	margin-bottom: 24px;
}

.pb-cadre-bookingpress .bpgc-gift-card-list-row {
	margin-inline: -12px !important;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col {
	padding-inline: 12px !important;
	margin-bottom: 24px;
	background: transparent;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-list-inner {
	height: 100%;
	box-sizing: border-box;
	padding: 24px !important;
	border: 1px solid var(--cc-vertpale);
	border-radius: 15px;
	background: #fff;
	box-shadow: 0 4px 18px rgba(7, 34, 47, .06);
}

.pb-cadre-bookingpress .bpgc-gift-card-list-col .bpgc-gift-card-list-inner .bpgc-gift-card-name {
	padding-bottom: 16px;
	color: var(--cc-nuit);
	line-height: 1.3;
}

/* Visuels des cartes cadeaux : proportions d'origine, rien n'est rogné (ils portent du texte). */
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-row .bpgc-gift-card-slider {
	height: auto !important;
	margin-bottom: 20px;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-row .bpgc-gift-card-slider img {
	display: block;
	width: 100%;
	height: auto !important;
	aspect-ratio: 1748 / 1240;
	object-fit: contain;
	border-radius: 10px;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-detail {
	margin-bottom: 20px;
	row-gap: 10px;
}

.pb-cadre-bookingpress .bpgc-gift-card-detail :is(.bpgc-gift-card-value, .bpgc-ma-dt__time-val) {
	align-items: center;
	line-height: 1.4;
}

.pb-cadre-bookingpress .bpgc-gift-card-detail :is(.bpgc-gift-card-value, .bpgc-ma-dt__time-val) svg {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin-right: 10px;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-price .bpgc-gift-card-amount {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}

.pb-cadre-bookingpress .bpgc-gift-card-services-list {
	padding-top: 16px;
	border-top: 1px solid var(--cc-vertpale);
}

.pb-cadre-bookingpress .bpgc-front-gift-card-detail .bpgc-gift-card-services-list .bpgc-gift-card-service-include-text {
	margin-bottom: 12px !important;
	padding-bottom: 0 !important;
	border-bottom: 0 !important;
	font-size: 15px !important;
	line-height: 1.4 !important;
	color: var(--cc-nuit) !important;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-filter-gift-card-search .bp-input__inner {
	height: 48px !important;
	border-radius: 10px !important;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-front-gift-card-filter button.bpgc-front-btn {
	top: 5px;
	right: 5px;
	height: 38px;
	padding: 0 18px !important;
	border-radius: 8px !important;
	font-size: 14px;
	font-weight: 600;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-buy-now-button {
	min-height: 44px;
	padding: 0 24px !important;
	border: 1px solid var(--cc-sauge) !important;
	border-radius: 10px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	transition: background-color .2s ease, color .2s ease;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-buy-now-button:is(:hover, :focus-visible) {
	background: #fff !important;
	color: var(--cc-sauge) !important;
}

.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-buy-now-button:focus-visible {
	outline: 2px solid var(--cc-sauge);
	outline-offset: 2px;
}

@media (max-width: 768px) {
	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-front-gift-card-filter button.bpgc-front-btn {
		width: 38px;
		padding: 0 !important;
	}
}

@media (max-width: 591px) {
	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-front-gift-card-detail {
		padding: 20px 16px;
	}

	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-list-inner {
		padding: 18px !important;
	}

	/* Même lecture qu'en grand écran : icônes visibles, expiration sous la valeur, prix en face de la valeur. */
	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-detail .bpgc-gift-card-duration.__sm {
		display: none !important;
	}

	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-detail .bpgc-gift-card-duration:not(.__sm) {
		display: block !important;
	}

	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-detail .bpgc-gift-card-value {
		padding-bottom: 0;
	}

	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-detail span.bpgc-gift-card-value {
		display: flex;
		flex-direction: row;
		align-items: center;
		text-align: left;
	}

	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-detail :is(.bpgc-gift-card-value, .bpgc-ma-dt__time-val) svg {
		display: block;
	}

	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-seprator-mobile {
		display: none;
	}
}

/* Carte étroite (tablette, mobile) : la durée passe sous le nom, alignée sur le texte, pour garder des noms lisibles. */
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-list-inner {
	container-type: inline-size;
}

/* Deux cartes côte à côte : titres sur deux lignes réservées, pour que visuels et boutons restent alignés. */
@media (min-width: 592px) and (max-width: 1024px) {
	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-name {
		min-height: calc(2 * 1.3em + 16px);
		box-sizing: border-box;
	}
}

@container (max-width: 420px) {
	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service {
		grid-template-columns: minmax(0, 1fr);
		margin-bottom: 12px;
	}

	.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-gift-card-list-col .bpgc-gift-card-service-dur {
		justify-self: start;
		padding-left: 15px;
		font-size: 14px;
	}
}



/* ==========================================================================
   Corrections après la 3e passe d'inspection
   ========================================================================== */
/* Crédit Logia : en mobile, « Agence web et communication » à la ligne, sans barre pendante. */
@media (max-width: 767px) {
	.pb-credit-sep {
		display: none;
	}
	.pb-credit-agence {
		display: block;
	}
}

/* Titres de cartes en rangée (tablette) : 2 lignes réservées, les textes démarrent à la même hauteur. */
@media (min-width: 768px) and (max-width: 1024px) {
	.pb-carte-massage h3.elementor-heading-title,
	.pb-carte-format h3.elementor-heading-title {
		min-height: 2lh;
	}
}

/* Titre du bloc « Prenez rendez-vous » et des titres de section en mobile : coupure équilibrée, retours forcés ignorés en mobile. */
.pb-cta-global h2.elementor-heading-title {
	text-wrap: balance;
}

@media (max-width: 767px) {
	.pb-bloc-avis h2.elementor-heading-title br {
		display: none;
	}
}

/* Zone d'intervention empilée : le texte d'abord, la carte centrée ensuite (toutes les prestations). */
@media (max-width: 899px) {
	.pb-section-zone .pb-rangee-900.e-con > .pb-carte-zone {
		order: 2;
		align-self: center;
	}
}

/* Contact, 1025-1439 px : la carte des coordonnées et le formulaire se partagent la largeur, rien n'est rogné. */
@media (min-width: 1025px) and (max-width: 1439px) {
	.pb-carte-coordonnees.e-con {
		--width: auto;
		flex: 1 1 0 !important;
		max-width: 648px;
		margin-left: 0 !important;
	}
	.pb-section-formulaire .pb-flex-reste:has(> .pb-form-contact) {
		flex: 1 1 0 !important;
		min-width: 420px;
	}
}

@media (min-width: 768px) {
	.elementor-widget-text-editor a.pb-lien-orange {
		white-space: nowrap;
	}
}


/* Article : images du corps centrées sur la colonne, portraits limités en hauteur, fil d'Ariane à 1rem, sommaire calé sur 1332 px. */
.pb-article-corps .wp-block-image:not(.alignleft, .alignright):not(:has(.alignleft, .alignright)):not(.wp-block-column *) {
	margin-inline: auto !important;
	text-align: center;
}

.pb-article-corps .wp-block-image:not(.alignleft, .alignright):not(:has(.alignleft, .alignright)):not(.wp-block-column *) img {
	max-height: 640px;
	width: auto;
	object-fit: contain;
	margin-inline: auto;
}

.pb-ariane .elementor-heading-title,
.pb-ariane a {
	font-size: 1rem !important;
}

@media (min-width: 1440px) {
	.elementor-widget.pb-sommaire-article {
		--container-widget-width: calc(100% + 20px) !important;
		width: calc(100% + 20px) !important;
		max-width: none !important;
		margin-inline: -10px !important;
	}
}

/* Actualités : cartes empilées en tablette avec photo en 16/9 ; texte aligné sur la photo sous 1024 px ; titres sur 3 lignes réservées en desktop. */
@media (max-width: 899px) {
	.pb-carte-actu:not(.pb-carte-actu--h) .elementor-widget-image img {
		aspect-ratio: 16 / 9;
		height: auto !important;
	}
}

@media (max-width: 1024px) {
	.pb-corps-actu.e-con,
	.pb-carte-une .pb-flex-reste.e-con {
		padding-inline: 0 !important;
	}
}

@media (min-width: 1025px) {
	.pb-carte-actu:not(.pb-carte-actu--h) .pb-titre-actu .elementor-heading-title {
		min-height: 3lh;
	}
}

/* Entreprises : rangée des formats sur toute la largeur de 1000 à 1249 px, libellé court « Découvrir le massage » de 1000 à 1349 px (le libellé entier ne tient pas dans la carte). */
@media (min-width: 1000px) and (max-width: 1249px) {
	.pb-formats .e-con:has(> .pb-rangee-900) {
		padding-inline: 0 !important;
	}
}

@media (min-width: 1000px) and (max-width: 1349px) {
	.pb-masque-etroit {
		display: none;
	}
}

/* Menu du burger : « Carte cadeau » et « Réserver une séance » en boutons, avec leur icône et leur couleur (socle). */
.pb-burger {
	--pb-menu-action-fond: var(--cc-jaune);
	--pb-menu-action-texte: var(--cc-nuit);
	--pb-menu-action-contour-texte: var(--cc-nuit);
}

.pb-burger .pb-menu-cadeau {
	--pb-menu-icone: url("/wp-content/uploads/2026/10/icone-carte-cadeau.svg");
}

.pb-burger .pb-menu-reserver {
	--pb-menu-icone: url("/wp-content/uploads/2026/10/icone-calendrier.svg");
}

.pb-burger .elementor-nav-menu--dropdown .menu-item.pb-menu-action > a.elementor-item {
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* Menu du burger : sous-menu déplié détaché de son parent et du lien suivant. */
.pb-header .elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu {
	margin-block: 8px !important;
}

/* Pied de page, mobile (max 767 px) : tout est centré (règle footer).
   Repli CSS : les champs natifs d'Elementor ne centrent ni les liens du menu vertical
   (le CSS du child les cale à gauche et leur alignement n'est pas responsive), ni les liens
   pleine largeur de la liste de coordonnées. */
@media (max-width: 767px) {
	.pb-footer-menu .elementor-nav-menu--dropdown .elementor-item {
		justify-content: center;
		text-align: center;
	}

	.pb-footer-menu .sub-menu {
		padding-left: 0 !important;
	}

	.pb-footer-contact .elementor-icon-list-item,
	.pb-footer-contact .elementor-icon-list-item > a {
		justify-content: center;
	}

	.pb-footer-contact .elementor-icon-list-text {
		text-align: center;
	}
}

/* Hero pleine hauteur (accueil) : l'écran moins le header (--cc-header-h : 95, 80 et 70 px selon le palier).
   100vh d'abord, 100svh ensuite : svh donne la plus petite hauteur, stable avec les barres d'adresse des mobiles.
   Le hero ne porte aucune hauteur dans le panneau Elementor : cette classe est la seule source. */
.pb-hero-plein.e-con {
	min-height: calc(100vh - var(--cc-header-h));
	min-height: calc(100svh - var(--cc-header-h));
}

/* Formulaire : mention reCAPTCHA à 0,65 rem (10,4 px), comme sur Pellets Biotech. */
.pb-form-contact .texte-captcha {
	font-size: .65rem;
	line-height: 1.5;
	margin-bottom: -30px;
}

/* Formulaire : espace entre la mention reCAPTCHA et le bouton, comme sur Pellets Biotech. */
.pb-form-contact .elementor-field-type-submit {
	margin-top: 29px;
}

/* --------------------------------------------------------------------------
   Carte cadeau : fenêtre « Acheter maintenant » (BookingPress Gift Card)
   La fenêtre est déplacée dans le <body> par BookingPress : elle sort de .pb-cadre-bookingpress.
   -------------------------------------------------------------------------- */
.bpgc-front-dialog {
	font-family: inherit;
	border-radius: 20px;
	color: var(--cc-nuit);
}

.bpgc-front-dialog :is(input, button, label, a, span, div) {
	font-family: inherit;
}

.bpgc-front-dialog .bp-dialog__headerbtn {
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--cc-nuit);
	box-shadow: none;
}

.bpgc-front-dialog .bp-dialog__headerbtn:is(:hover, :focus-visible) {
	background: var(--cc-vertpale);
	color: var(--cc-sauge);
}

.bpgc-front-dialog .bpgc-front-module-heading {
	font-weight: 600;
	color: var(--cc-nuit);
}

.bpgc-front-dialog .bp-form-item__label,
.bpgc-front-dialog .bpgc-front-form-label {
	color: var(--cc-nuit);
	font-weight: 500;
}

.bpgc-front-dialog .bp-input__wrapper {
	height: 46px;
	border: 1px solid var(--cc-sauge);
	border-radius: 8px;
	box-shadow: none;
	transition: box-shadow .2s ease;
}

.bpgc-front-dialog .bp-input__wrapper:focus-within {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cc-sauge) 25%, transparent);
}

.bpgc-front-dialog .bp-input__inner {
	height: 100%;
	color: var(--cc-nuit);
}

.bpgc-front-dialog .bp-input__inner::placeholder {
	font-family: inherit;
	color: color-mix(in srgb, var(--cc-nuit) 55%, transparent);
}

.bpgc-front-dialog .bpgc-front-btn--primary {
	height: 46px;
	padding: 0 28px;
	border: 1px solid var(--cc-vert);
	border-radius: 8px;
	background: var(--cc-vert);
	color: #fff;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
	transition: background-color .2s ease, color .2s ease;
}

.bpgc-front-dialog .bpgc-front-btn--primary:is(:hover, :focus-visible) {
	background: #fff;
	color: var(--cc-vert);
}

.bpgc-front-dialog .bpgc-forget-pass-btn {
	height: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--cc-nuit);
	text-decoration: underline;
}

.bpgc-front-dialog .bpgc-forget-pass-btn:is(:hover, :focus-visible),
.bpgc-front-dialog a:is(:hover, :focus-visible) {
	color: var(--cc-sauge);
}

.bpgc-front-dialog a {
	color: var(--cc-sauge);
}

/* Les réglages du bouton principal et du lien « mot de passe oublié » de BookingPress passent devant : on les reprend avec plus de poids. */
body .bp-overlay .bpgc-front-dialog button.bpgc-front-btn--primary {
	height: 46px !important;
	padding: 0 28px !important;
	border: 1px solid var(--cc-vert) !important;
	border-radius: 8px !important;
	background: var(--cc-vert) !important;
	color: #fff !important;
	font-weight: 700 !important;
	letter-spacing: .02em;
	text-transform: uppercase;
}

body .bp-overlay .bpgc-front-dialog button.bpgc-front-btn--primary:is(:hover, :focus-visible) {
	background: #fff !important;
	color: var(--cc-vert) !important;
}

body .bp-overlay .bpgc-front-dialog button.bpgc-forget-pass-btn {
	height: auto !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--cc-nuit) !important;
	text-decoration: underline;
	text-transform: none;
}

body .bp-overlay .bpgc-front-dialog button.bpgc-forget-pass-btn:is(:hover, :focus-visible) {
	color: var(--cc-sauge) !important;
}

/* Fenêtre « Acheter maintenant » sur tablette et mobile : BookingPress la laisse à 50 % de la largeur. */
@media (max-width: 1024px) {
	body .bp-overlay .bpgc-front-dialog.bpgc-front-gift-card-booking-dialog {
		width: min(640px, calc(100% - 32px)) !important;
		max-width: none !important;
		margin: 96px auto 16px !important;
		padding: 12px !important;
	}

	.bpgc-front-dialog .bpgc-gift-card-buy-now-popup-right-section {
		padding: 24px 12px;
	}

	.bpgc-front-dialog .bpgc-front-form-body-row,
	.bpgc-front-dialog .bp-form-item {
		width: 100%;
	}

	.bpgc-front-dialog .bp-form-item {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 6px;
	}

	.bpgc-front-dialog .bp-form-item__content {
		width: 100%;
		margin-left: 0;
	}

	.bpgc-front-dialog .bp-input,
	.bpgc-front-dialog .bp-input__wrapper {
		width: 100%;
	}
}

/* La fenêtre passe devant le header collant (son bouton de fermeture restait caché dessous). */
body .bp-overlay.bp-modal-dialog {
	z-index: 100000 !important;
}

/* Fenêtre « Acheter maintenant » : alignements, champs et survols repris proprement. */
body .bp-overlay .bpgc-front-dialog .bp-dialog__headerbtn {
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0 !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: var(--cc-nuit) !important;
	box-shadow: none !important;
}

body .bp-overlay .bpgc-front-dialog .bp-dialog__headerbtn:is(:hover, :focus-visible) {
	border: 0 !important;
	background: var(--cc-vertpale) !important;
	color: var(--cc-sauge) !important;
}

body .bp-overlay .bpgc-front-dialog .bp-dialog__headerbtn:focus-visible {
	outline: 2px solid var(--cc-sauge);
	outline-offset: 2px;
}

/* Étiquette au-dessus du champ, champ sur toute la largeur du formulaire. */
.bpgc-front-dialog .bpgc-front-form-body-row {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.bpgc-front-dialog .bp-form-item {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
	margin: 0;
}

.bpgc-front-dialog .bp-form-item__label {
	width: auto;
	padding: 0;
	text-align: left;
	line-height: 1.3;
}

.bpgc-front-dialog .bp-form-item__content {
	width: 100%;
	margin-left: 0 !important;
}

.bpgc-front-dialog .bp-input,
.bpgc-front-dialog .bp-input__wrapper {
	width: 100%;
}

/* Un seul filet : celui du conteneur ; le champ lui-même n'a plus de bordure. */
.bpgc-front-dialog .bp-input__inner {
	width: 100%;
	padding: 0 16px;
	border: 0 !important;
	background: transparent;
	box-shadow: none !important;
	outline: none;
}

.bpgc-front-dialog .bp-input__inner::placeholder {
	font-family: Montserrat, sans-serif !important;
	font-size: .875rem;
}

.bpgc-front-dialog .bp-input--suffix .bp-input__wrapper {
	padding-right: 12px;
}

.bpgc-front-dialog .bpgc-front-login-form-footer {
	margin-top: 4px;
}

.bpgc-front-dialog .bpgc-front-login-form-footer .bp-form-item__content {
	flex-wrap: wrap;
	gap: 12px 16px;
}

.bpgc-front-dialog .bpgc-front-cp__login-btn-group {
	justify-content: center;
	width: 100%;
	margin-top: 8px;
}

.bpgc-front-dialog .bpgc-front-cp__singup-link-group {
	margin-top: 16px;
}

/* Le texte du bouton suit la couleur du bouton, y compris au survol (il restait blanc sur fond blanc). */
body .bp-overlay .bpgc-front-dialog button.bpgc-front-btn--primary :is(span, div, .bpgc-btn__label) {
	color: inherit !important;
	font: inherit;
}

body .bp-overlay .bpgc-front-dialog button.bpgc-front-btn--primary {
	min-width: 240px;
}

/* Le groupe du bouton gardait une marge gauche de BookingPress : il dépassait du formulaire. */
body .bp-overlay .bpgc-front-dialog .bpgc-front-cp__login-btn-group {
	margin: 8px 0 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-cp__login-btn-group button.bpgc-front-btn--primary {
	width: 100% !important;
	min-width: 0;
}

.bpgc-front-dialog .bpgc-front-cp__login-wrapper {
	padding-top: 0;
}

.bpgc-front-dialog .bpgc-front-module-heading {
	margin-bottom: 20px;
}

/* BookingPress fige la zone du formulaire à 560 px : le contenu (525 px + marges) débordait de 29 px.
   Elle prend la hauteur de son contenu et ne défile que si l'écran est trop court. */
body .bp-overlay .bpgc-front-dialog .bpgc-gift-card-buy-now-popup-right-section {
	height: auto !important;
	max-height: calc(100vh - 160px) !important;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-dialog-body {
	height: auto !important;
	min-height: 0;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-cp__login-wrapper {
	padding-top: 0 !important;
}

/* Fenêtre « Acheter maintenant » : rythme vertical, pied du formulaire, police des exemples, menu des étapes. */
body .bp-overlay .bpgc-front-dialog .bpgc-front-form-body-row {
	gap: 20px;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-form-body-row > .bp-form-item {
	margin-bottom: 0 !important;
}

body .bp-overlay .bpgc-front-dialog input.bp-input__inner,
body .bp-overlay .bpgc-front-dialog input.bp-input__inner::placeholder {
	font-family: Montserrat, sans-serif !important;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-login-form-footer {
	margin-top: 0;
	margin-bottom: 0 !important;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-login-form-footer .bp-form-item__content {
	justify-content: flex-start !important;
	align-items: center;
	gap: 12px 28px;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-login-form-footer :is(.bpgc-rememberme-checkbox-section, .bpgc-rememberme-checkbox) {
	margin: 0 !important;
	padding: 0 !important;
	width: auto;
}

body .bp-overlay .bpgc-front-dialog button.bpgc-forget-pass-btn {
	width: auto !important;
	margin: 0 !important;
	font-size: .875rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

body .bp-overlay .bpgc-front-dialog .bpgc-front-cp__login-btn-group {
	margin-top: 4px !important;
}

/* Les libellés des étapes ne touchent plus le filet vertical. */
body .bp-overlay .bpgc-front-dialog .bpgc-gift-card-booking-left-menu .bpgc-tm__item {
	padding: 0 18px !important;
	box-sizing: border-box;
}

/* Le pied du formulaire contient un pseudo-élément vide qui décalait « Souviens-toi de moi » d'un écart. */
body .bp-overlay .bpgc-front-dialog .bpgc-front-login-form-footer .bp-form-item__content::before,
body .bp-overlay .bpgc-front-dialog .bpgc-front-login-form-footer .bp-form-item__content::after {
	display: none !important;
	content: none !important;
}

/* « Mot de passe oublié ? » à droite, calé sur le bord des champs. */
body .bp-overlay .bpgc-front-dialog .bpgc-front-login-form-footer .bp-form-item__content {
	justify-content: space-between !important;
}

/* Mobile et tablette : le menu des étapes coupait « l'utilisateur » en plein mot (word-break: break-all). */
@media (max-width: 1024px) {
	body .bp-overlay .bpgc-front-dialog .bpgc-gift-card-booking-top-menu {
		padding: 28px 4px 20px;
		gap: 8px;
	}

	body .bp-overlay .bpgc-front-dialog .bpgc-gift-card-booking-top-menu .bpgc-gift-card-menu-item {
		flex: 1 1 0;
		width: auto;
		min-width: 0;
	}

	body .bp-overlay .bpgc-front-dialog .bpgc-gift-card-booking-top-menu .bpgc-tm__item {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	body .bp-overlay .bpgc-front-dialog .bpgc-gift-card-booking-top-menu .bpgc-tm__item-label {
		width: 100%;
		font-size: .75rem;
		line-height: 1.3;
		margin-top: 6px;
		word-break: normal;
		overflow-wrap: normal;
		hyphens: none;
	}
}

/* Les filets entre les étapes (haut du formulaire sur tablette et mobile) vont d'une icône à l'autre sans les recouvrir. */
@media (max-width: 1024px) {
	body .bp-overlay .bpgc-front-dialog .bpgc-gift-card-booking-top-menu .bpgc-gift-card-menu-item:not(:first-child)::before {
		left: calc(-1 * (50% + 8px) + 22px);
		right: auto;
		top: 14px;
		width: calc(100% + 8px - 28px - 16px);
		transform: none;
	}
}



/* Pages légales (Mentions légales, CGV, Cookies et confidentialité) : espacement des paragraphes et des listes
   proportionnel au texte (0,9 em), comme sur les mentions légales des autres sites. La taille et l'interligne
   sont réglés sur les widgets. */
.pb-texte-long p,
.pb-texte-long ul {
	margin-block: 0 .9em;
}

.pb-texte-long li {
	margin-block: 0 .3em;
}

/* Pages légales : les liens du texte sont soulignés (la couleur seule ne suffit pas à les repérer). */
.pb-texte-long a {
	text-decoration: underline;
	text-underline-offset: .15em;
}

.pb-texte-long ul:last-child {
	margin-block-end: 0;
}

/* Carte cadeau : largeur et survol des boutons.
   - Le bloc BookingPress est plafonné à 1100 px par le plugin : il prend la largeur de la colonne du site (1312 px).
   - Le texte et l'icône des boutons gardent leur propre couleur blanche au survol, sur fond blanc : ils suivent
     maintenant la couleur du bouton. */
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards,
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-frontend-main-inner_container {
	max-width: 100% !important;
	width: 100% !important;
}

/* La règle du plugin (couleur blanche forcée sur le <span>) est plus précise : on la dépasse. */
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-buy-now-button span,
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-front-gift-card-filter button.bpgc-front-btn span,
.pb-cadre-bookingpress .bpgc-frontend-main-container-gift-cards .bpgc-front-gift-card-filter button.bpgc-front-btn svg {
	color: inherit !important;
}

.pb-cadre-bookingpress .bpgc-front-gift-card-filter button.bpgc-front-btn svg path {
	fill: currentColor !important;
}

.pb-cadre-bookingpress .bpgc-front-gift-card-filter button.bpgc-front-btn {
	border: 1px solid var(--cc-sauge) !important;
	transition: background-color .2s ease, color .2s ease;
}

.pb-cadre-bookingpress .bpgc-front-gift-card-filter button.bpgc-front-btn:is(:hover, :focus-visible) {
	background: #fff !important;
	color: var(--cc-sauge) !important;
}

.pb-cadre-bookingpress .bpgc-front-gift-card-filter button.bpgc-front-btn:focus-visible {
	outline: 2px solid var(--cc-sauge);
	outline-offset: 2px;
}

/* Fenêtre « Acheter maintenant » (inscription) : la liste des pays du champ téléphone passe devant le champ suivant,
   occupe la largeur du champ et a un fond plein. */
body .bp-overlay .bpgc-front-dialog .bp-form-item:has(.vue-tel-input) {
	position: relative;
	z-index: 5;
}

body .bp-overlay .bpgc-front-dialog .vue-tel-input {
	position: relative;
}

body .bp-overlay .bpgc-front-dialog .vue-tel-input .vti__dropdown {
	position: static;
}

body .bp-overlay .bpgc-front-dialog .vue-tel-input .vti__dropdown-list {
	z-index: 30 !important;
	top: calc(100% + 6px);
	left: 0;
	width: 100%;
	max-height: 220px;
	overflow-x: hidden;
	border: 1px solid var(--cc-sauge);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(7, 34, 47, .16);
}

body .bp-overlay .bpgc-front-dialog .vue-tel-input .vti__dropdown-item:is(:hover, .highlighted) {
	background: var(--cc-vertpale);
}

/* Carte cadeau : le cadre du bloc BookingPress est un conteneur en bloc, pas en flex.
   En flex, la hauteur du widget était calculée avec une largeur différente de la largeur finale (les cartes sont des
   conteneurs de requêtes « inline-size ») : le widget était trop court, le cadre dépassait en bas et touchait le pied
   de page sur téléphone. En bloc, la hauteur suit exactement le contenu. */
.pb-cadre-bookingpress.e-con {
	display: block;
}

/* CTA de la page Entreprises et professionnels : sa photo (« pause-au-bureau ») montre la tête en haut de l'image.
   Le cadrage par le bas du CTA (tablette et mobile) la coupait au niveau du torse : on cadre plus haut, tête visible. */
@media (max-width: 1024px) {
	/* Plus précis que le cadrage « center bottom » du widget du pied de page (Elementor, post 287). */
	.page-id-116 .pb-cta-image.elementor-element.elementor-widget img {
		object-position: 50% 25%;
	}
}
