/* L'Attrape-Rêves — comportements globaux (le reste du style vit dans Elementor). */

/* Header : posé par-dessus le hero, non collant (défile avec la page). */
.elementor-location-header {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 90;
}

/* Menu principal (widget Nav Menu) : texte clair, soulignement corail au survol. */
.elementor-location-header .elementor-nav-menu a.elementor-item {
	color: #f7f4f3;
	font: 400 14px/1.4 Lato, 'Helvetica Neue', Arial, sans-serif;
	padding: 6px 0;
	border-bottom: 1px solid transparent;
	opacity: .9;
	transition: opacity .25s ease, border-color .25s ease;
}
.elementor-location-header .elementor-nav-menu a.elementor-item:hover,
.elementor-location-header .elementor-nav-menu a.elementor-item:focus-visible {
	opacity: 1;
	border-bottom-color: #f39780;
	background: none;
}
.elementor-location-header .elementor-nav-menu--main .elementor-item::before,
.elementor-location-header .elementor-nav-menu--main .elementor-item::after { display: none; }

/* Téléphone : pas de navigation, la barre collante remplace le menu (comme la maquette). */
@media (max-width: 767px) { .elementor-location-header [data-widget_type^="nav-menu"] { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-location-header .elementor-nav-menu a.elementor-item { font-size: 13px; }
	.elementor-location-header .elementor-nav-menu--main > ul.elementor-nav-menu { gap: 20px; }
}

/* Footer : menu légal discret. */
.elementor-location-footer .elementor-nav-menu a.elementor-item {
	color: #9b9694; font: 400 12px/1.4 Lato, Arial, sans-serif; padding: 2px 0; transition: color .25s ease;
}
.elementor-location-footer .elementor-nav-menu a.elementor-item:hover { color: #f7f4f3; background: none; }
.elementor-location-footer .elementor-nav-menu--main .elementor-item::before,
.elementor-location-footer .elementor-nav-menu--main .elementor-item::after { display: none; }

/* Barre d'action collante (div#lr-sticky du footer) : glisse depuis le bas après le hero. */
#lr-sticky {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 80;
	transform: translateY(101%);
	transition: transform .4s cubic-bezier(.22, .61, .36, 1);
	padding-bottom: env(safe-area-inset-bottom, 0px);
}
#lr-sticky.is-on { transform: none; }

@media (max-width: 767px) {
	#lr-sticky p { display: none; }
	#lr-sticky a { flex: 1 1 auto; width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
	.elementor-location-header, #lr-sticky { transition: none; }
}

/* Espacement entre liens : sur la liste (le thème écrase les marges des liens). */
.elementor-location-header .elementor-nav-menu--main > ul.elementor-nav-menu { gap: 34px; }
.elementor-location-footer .elementor-nav-menu--main > ul.elementor-nav-menu { gap: 6px 18px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 1024px) { .elementor-location-footer .elementor-nav-menu--main > ul.elementor-nav-menu { justify-content: flex-start; gap: 4px 18px; } .elementor-location-footer .elementor-nav-menu a.elementor-item { margin: 0; } }

/* Accroche du hero : 2e ligne en corail. */
#top h1 span { color: var(--brand-soft, #f39780); }

/* Liens téléphone dans les textes (hors footer) : soulignés rouge / clairs sur fond sombre. */
main p a[href^="tel:"], .elementor-location-single p a[href^="tel:"], #faq p a[href^="tel:"], #reserver p a[href^="tel:"] { border-bottom: 1px solid currentColor; padding-bottom: 2px; color: var(--brand, #a4160b); }
#reserver p a[href^="tel:"] { color: var(--on-dark, #f7f4f3); border-bottom-color: var(--brand-soft, #f39780); margin-left: 6px; }

/* FAQ (accordéon Elementor) : indicateur +/− fin, rouge, à la place du chevron par défaut. */
#faq summary { list-style: none; }
#faq summary::-webkit-details-marker { display: none; }
#faq summary > [class*="icon"] { display: none; }
#faq summary::after {
	content: "";
	flex: 0 0 12px; width: 12px; height: 12px;
	background:
		linear-gradient(var(--brand, #a4160b), var(--brand, #a4160b)) center / 100% 1px no-repeat,
		linear-gradient(var(--brand, #a4160b), var(--brand, #a4160b)) center / 1px 100% no-repeat;
	transition: transform .3s ease;
}
#faq details[open] > summary { color: var(--brand, #a4160b); }
#faq details[open] > summary::after { background: linear-gradient(var(--brand, #a4160b), var(--brand, #a4160b)) center / 100% 1px no-repeat; transform: rotate(180deg); }

/* Images Elementor : le <picture> est l'élément de la grille / de la bande, pas l'<img>. */
#equipe picture { display: block; min-width: 0; min-height: 0; overflow: hidden; }
#equipe picture img { display: block; width: 100%; height: 100%; object-fit: cover; }
#equipe picture:nth-child(1) { grid-column: 1 / 5; }
#equipe picture:nth-child(2) { grid-column: 5 / 7; }
#equipe picture:nth-child(3) { grid-column: 1 / 3; }
#equipe picture:nth-child(4) { grid-column: 3 / 5; }
#equipe picture:nth-child(5) { grid-column: 5 / 7; }
#equipe picture:nth-child(2) img { object-position: center 30%; }
@media (max-width: 1024px) {
	#equipe picture:nth-child(1) { grid-column: 1 / 3; }
	#equipe picture:nth-child(n+2) { grid-column: auto; }
}

.case-strip picture { flex: 0 0 640px; display: block; scroll-snap-align: start; }
.case-strip picture img { display: block; width: 100%; height: 430px; object-fit: cover; }
@media (max-width: 1024px) { .case-strip picture { flex-basis: 70%; } .case-strip picture img { height: 340px; } }
@media (max-width: 767px) { .case-strip picture { flex-basis: 82%; } .case-strip picture img { height: 260px; } }

/* Titres : les <br> de mise en forme desktop sont ignorés sur mobile (le texte reflue). */
@media (max-width: 767px) { h1 br, h2 br { display: none; } }


/* <picture> en bloc : évite la bande blanche (ligne de base) sous les images. */
.elementor picture { display: block; }

/* Mur de logos natif : Imagify peut envelopper l'<img> dans un <picture> (les classes vont alors sur le <picture>) ; la taille se règle donc sur l'<img> quel que soit le cas. */
.brand-cell img { display: block; height: 36px; width: auto; max-width: 100%; object-fit: contain; }
@media (max-width: 1024px) { .brand-cell img { height: 30px; } }
@media (max-width: 767px) { .brand-cell img { height: 26px; } }

/* ==========================================================================
   États hover / focus : calqués sur la maquette (index.html), en neutralisant
   Hello Elementor (a:hover #336, button:hover #c36, focus noir + halo blanc)
   et le couplage hover+focus d'Elementor sur les classes globales.
   ========================================================================== */

/* focus clavier : contour fin de la couleur du texte, comme la maquette */
body a:focus-visible, body button:focus-visible, body summary:focus-visible,
body [tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 1px solid currentColor; outline-offset: 3px; box-shadow: none;
}

/* boutons pleins : le hover change la couleur, le focus clavier ne fait qu'ajouter le contour */
.elementor .pill:focus-visible:not(:hover)       { background-color: var(--brand, #a4160b); color: #fff; }
.elementor .pill-light:focus-visible:not(:hover) { background-color: var(--paper, #fff); color: var(--brand, #a4160b); }
.elementor .ulink:focus-visible:not(:hover)      { color: var(--brand, #a4160b); }
.elementor .ulink-light:focus-visible:not(:hover){ color: var(--on-dark, #f7f4f3); }
.elementor .pill-light:hover { background-color: var(--brand, #a4160b); color: #fff; }

/* petit bouton (« Essayer ici ») */
.elementor .pill.pill-sm { height: 36px; padding-inline: 20px; font-size: 13px; }

/* liens dans les textes : pas de bleu du thème au survol */
main p a:hover, .elementor-location-single p a:hover { color: inherit; }
main p a[href^="tel:"]:hover, #faq p a[href^="tel:"]:hover { color: var(--brand-hover, #c4331f); }
#reserver p a[href^="tel:"]:hover { color: var(--brand-soft, #f39780); }
/* téléphones du footer : survol corail */
.elementor-location-footer a:hover { color: var(--brand-soft, #f39780); }
.elementor-location-footer .elementor-nav-menu a.elementor-item:hover { color: var(--on-dark, #f7f4f3); }

/* ligne de base du lien dans le menu : pas de fond ni de couleur de thème au focus */
.elementor-location-header .elementor-nav-menu a.elementor-item:focus { background: none; color: #f7f4f3; }

/* ==========================================================================
   Direction artistique : serif Playfair Display (titres) + Lato (texte),
   beige #f3eceb, crème #f8e8dd, corail #f39780, zoom doux sur les images.
   ========================================================================== */
:root { --lr-serif: 'Playfair Display', Georgia, 'Times New Roman', serif; --lr-sans: Lato, 'Helvetica Neue', Arial, sans-serif; --lr-cream: #f8e8dd; }

.elementor h1, .elementor h2, .elementor h3, .elementor :is(h1, h2, h3).e-heading-base { font-family: var(--lr-serif); font-weight: 600; letter-spacing: -.005em; line-height: 1.15; }
.elementor h1.e-heading-base { font-size: clamp(34px, 3.7vw, 50px); font-weight: 500; line-height: 1.1; }
.elementor h2.e-heading-base { font-size: clamp(26px, 2.5vw, 34px); font-weight: 500; }
.elementor h3.e-heading-base { font-size: clamp(20px, 1.9vw, 24px); font-weight: 500; }
/* Mot mis en valeur dans un titre : italique, rouge de la marque (corail sur fond sombre). */
.elementor h2 em, .elementor h1.e-heading-base span { font-style: italic; font-weight: 500; color: #a4160b; }
.elementor h1.e-heading-base span, #reserver h2 em { color: #f39780; }

/* Fonds : le beige de la marque et une section crème pour casser l'alternance blanc / noir. */
#solutions { background-color: var(--lr-cream); }

/* Hero : l'œil lit le titre, la phrase d'appui, puis tombe sur le formulaire (carte en relief, filet corail). */
#top .elementor-element-7c8fbbeb > p:first-child { opacity: .8; letter-spacing: .14em; }
#top .elementor-element-7c8fbbeb > p:nth-of-type(2) { font-size: 18px; line-height: 1.65; max-width: 55ch; color: rgba(255, 255, 255, .88); }
#top .elementor-element-55ca9b58 { opacity: .78; }
#top .elementor-element-152f159e {
	background: rgba(18, 16, 16, .74);
	-webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, .16); border-top: 2px solid #f39780;
	border-radius: 4px;
	box-shadow: 0 34px 70px -24px rgba(0, 0, 0, .7);
}
#top .elementor-element-152f159e > p:first-child { font-family: var(--lr-serif); font-size: 24px; font-weight: 600; }
@media (prefers-reduced-motion: no-preference) {
	@keyframes lr-rise { from { opacity: 0; transform: translateY(14px); } }
	#top .elementor-element-7c8fbbeb > p:first-child, #top h1, #top .elementor-element-7c8fbbeb > p:nth-of-type(2), #top .elementor-element-152f159e { animation: lr-rise .7s cubic-bezier(.22,.61,.36,1) both; }
	#top h1 { animation-delay: .08s; }
	#top .elementor-element-7c8fbbeb > p:nth-of-type(2) { animation-delay: .18s; }
	#top .elementor-element-152f159e { animation-delay: .32s; }
}

/* Visuels des arguments : l'image remplit toujours son cadre. */
.elementor-element-3ea44155 img, .elementor-element-1d1e7969 img, .elementor-element-2421f095 img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Zoom doux au survol des visuels (même geste que la maquette index.html). */
.elementor-element-3ea44155 img, .elementor-element-1d1e7969 img, .elementor-element-2421f095 img, .case-strip img, #equipe picture img { transition: transform .8s cubic-bezier(.22, .61, .36, 1); }
.case-strip picture { overflow: hidden; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.elementor-element-3ea44155:hover img, .elementor-element-1d1e7969:hover img, .elementor-element-2421f095:hover img, .case-strip picture:hover img, #equipe picture:hover img { transform: scale(1.03); }
}

/* ==========================================================================
   Formulaire de réservation (Gravity Forms) : mêmes codes que le .lead de la maquette
   (puces, champs soulignés, pill rouge), sur fond sombre.
   ========================================================================== */
body .lr-lead_wrapper.gform-theme { color: #f7f4f3; font-family: var(--lr-sans); margin: 0; max-width: none; }
body .lr-lead_wrapper.gform-theme .gform_heading { display: none; }
body .lr-lead_wrapper.gform-theme .gform_fields { row-gap: 18px; }
body .lr-lead_wrapper.gform-theme .gfield_required { display: none; }
body .lr-lead_wrapper.gform-theme .gfield--type-text .gfield_required, body .lr-lead_wrapper.gform-theme .gfield--type-phone .gfield_required, body .lr-lead_wrapper.gform-theme .gfield--type-email .gfield_required { display: inline; margin-left: 4px; }
body .lr-lead_wrapper.gform-theme .gfield_required .gfield_required_text { font-size: 0; }
body .lr-lead_wrapper.gform-theme .gfield_required .gfield_required_text::after { content: "*"; font-size: 15px; color: #f39780; }

/* Progression : « Étape 1 sur 3 » + filet corail. */
body .lr-lead_wrapper.gform-theme .gf_progressbar_wrapper { margin: 0 0 22px; }
body .lr-lead_wrapper.gform-theme .gf_progressbar_title { margin: 0 0 10px; font: 400 11px/1 var(--lr-sans); letter-spacing: .12em; text-transform: uppercase; color: #9b9694; }
body .lr-lead_wrapper.gform-theme .gf_progressbar { height: 2px; padding: 0; border: 0; border-radius: 0; background: rgba(255, 255, 255, .18); box-shadow: none; }
body .lr-lead_wrapper.gform-theme .gf_progressbar_percentage { height: 2px; border-radius: 0; background: #f39780; transition: width .4s ease; }
body .lr-lead_wrapper.gform-theme .gf_progressbar_percentage span { display: none; }

/* Questions (serif) et libellés de champs (petits). */
body .lr-lead_wrapper.gform-theme .gfield_label { margin: 0 0 14px; padding: 0; font: 600 17px/1.3 var(--lr-serif); color: #f7f4f3; }
body .lr-lead_wrapper.gform-theme .gfield--type-text .gfield_label, body .lr-lead_wrapper.gform-theme .gfield--type-phone .gfield_label, body .lr-lead_wrapper.gform-theme .gfield--type-email .gfield_label { margin-bottom: 4px; font: 400 11.5px/1.3 var(--lr-sans); color: #9b9694; }

/* Choix en puces. */
body .lr-lead_wrapper.gform-theme .lr-chips .gfield_radio { display: flex; flex-wrap: wrap; gap: 10px; }
body .lr-lead_wrapper.gform-theme .lr-chips .gchoice { position: relative; margin: 0; padding: 0; }
body .lr-lead_wrapper.gform-theme .lr-chips .gchoice input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
body .lr-lead_wrapper.gform-theme .lr-chips .gchoice label { display: inline-flex; align-items: center; max-width: none; height: 38px; margin: 0; padding: 0 18px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; color: rgba(247, 244, 243, .78); font: 400 13px/1 var(--lr-sans); transition: background-color .22s ease, color .22s ease, border-color .22s ease; }
body .lr-lead_wrapper.gform-theme .lr-chips .gchoice:hover label { color: #fff; border-color: rgba(255, 255, 255, .55); }
body .lr-lead_wrapper.gform-theme .lr-chips .gchoice input:checked + label { background: #a4160b; border-color: #a4160b; color: #fff; }
body .lr-lead_wrapper.gform-theme .lr-chips .gchoice input:focus-visible + label { outline: 1px solid #f7f4f3; outline-offset: 3px; }

/* Champs texte : simple filet. */
body .lr-lead_wrapper.gform-theme input[type="text"], body .lr-lead_wrapper.gform-theme input[type="tel"], body .lr-lead_wrapper.gform-theme input[type="email"] { width: 100%; height: 42px; padding: 0; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .3); border-radius: 0; background: transparent; box-shadow: none; color: #f7f4f3; font: 400 15px/1.2 var(--lr-sans); transition: border-color .22s ease; }
body .lr-lead_wrapper.gform-theme input[type="text"]:focus, body .lr-lead_wrapper.gform-theme input[type="tel"]:focus, body .lr-lead_wrapper.gform-theme input[type="email"]:focus { outline: 0; border-bottom-color: #f39780; box-shadow: none; }
body .lr-lead_wrapper.gform-theme .gfield_error input[type="text"], body .lr-lead_wrapper.gform-theme .gfield_error input[type="tel"], body .lr-lead_wrapper.gform-theme .gfield_error input[type="email"] { border-bottom-color: #f39780; }
body .lr-lead_wrapper.gform-theme .gfield_error { background: none; border: 0; padding: 0; margin: 0; }
body .lr-lead_wrapper.gform-theme .gfield_validation_message { margin: 8px 0 0; padding: 0; border: 0; background: none; color: #f39780; font: 400 12px/1.4 var(--lr-sans); }
body .lr-lead_wrapper.gform-theme .gform_validation_errors { margin: 0 0 14px; padding: 0; border: 0; background: none; box-shadow: none; color: #f39780; }
body .lr-lead_wrapper.gform-theme .gform_validation_errors .gform-icon { display: none; }
body .lr-lead_wrapper.gform-theme .gform_validation_errors .gform_submission_error { margin: 0; font: 400 12.5px/1.4 var(--lr-sans); color: inherit; }

/* Pied : Retour (lien) à gauche, bouton pill rouge à droite ; états alignés sur .pill--dark de la maquette. */
body .lr-lead_wrapper.gform-theme .gform_page_footer, body .lr-lead_wrapper.gform-theme .gform_footer { display: flex; align-items: center; gap: 18px; margin: 24px 0 0; padding: 22px 0 0; border-top: 1px solid rgba(255, 255, 255, .18); }
body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_next_button, body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_button, body .lr-lead_wrapper.gform-theme .gform_footer .gform_button {all: unset !important; box-sizing: border-box !important; margin-left: auto !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; height: 44px !important; padding: 0 30px !important; border-radius: 999px !important; background: #a4160b !important; color: #fff !important; font: 400 12.5px/1 var(--lr-sans) !important; white-space: nowrap !important; cursor: pointer !important; transition: background-color .25s ease, color .25s ease !important; }
body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_next_button:hover, body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_button:hover, body .lr-lead_wrapper.gform-theme .gform_footer .gform_button:hover {background: #111010 !important; color: #fff !important; }
body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_next_button:focus:not(:hover):not(:focus-visible), body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_button:focus:not(:hover):not(:focus-visible) {background: #a4160b !important; color: #fff !important; }
body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_next_button:focus-visible, body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_button:focus-visible {outline: 1px solid #f7f4f3 !important; outline-offset: 3px !important; }
body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_previous_button {all: unset !important; cursor: pointer !important; font: 400 11.5px/1 var(--lr-sans) !important; color: #9b9694 !important; border-bottom: 1px solid currentColor !important; padding-bottom: 2px !important; transition: color .22s ease !important; }
body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_previous_button:hover, body .lr-lead_wrapper.gform-theme .gform_page_footer .gform_previous_button:focus-visible {color: #f7f4f3 !important; }
body .lr-lead_wrapper.gform-theme .gform_confirmation_message { font: 400 15px/1.6 var(--lr-sans); color: #f7f4f3; }
body .lr-lead_wrapper.gform-theme .gform_ajax_spinner { display: none; }
body .lr-lead_wrapper.gform-theme input::placeholder { color: rgba(247, 244, 243, .38); opacity: 1; }
/* Hero : hauteur stable d'une étape à l'autre, l'image de fond reste cadrée. */
#top { overflow: hidden; }
@media (min-width: 1025px) { #top .elementor-element-152f159e { min-height: 470px; } }

/* Contrastes : gris de la marque assombri pour le texte secondaire sur fonds clairs (AA). */
:root { --muted: #5f6368; }
.lr-card__note, .lr-says__src { color: #5f6368; }

/* Titre de l'équipe : colonne étroite, on réduit pour rester sur 2 lignes. */
#equipe h2.e-heading-base { font-size: clamp(24px, 2.1vw, 30px); }

/* Formulaire : les puces restent sur une ligne et passent à la suivante (GF force une colonne). */
body .lr-lead_wrapper.gform-theme .lr-chips .gfield_radio { flex-direction: row !important; flex-wrap: wrap; }
body .lr-lead_wrapper.gform-theme .lr-chips .gchoice { display: block; width: auto; flex: 0 0 auto; }

/* Preuve Google du hero : logo G, étoiles jaunes, note ; discrète. */
#top .elementor-element-55ca9b58 { align-items: center; }
#top .elementor-element-55ca9b58 > p:first-child {
	padding-left: 26px; min-height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23EA4335' d='M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z'/%3E%3Cpath fill='%234285F4' d='M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z'/%3E%3Cpath fill='%23FBBC05' d='M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z'/%3E%3Cpath fill='%2334A853' d='M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z'/%3E%3C/svg%3E") left center / 18px 18px no-repeat;
}
#top .elementor-element-55ca9b58 > p:first-child { color: #fbbc04; letter-spacing: .06em; }
/* Mobile : les sauts de ligne forcés des h2 sont ignorés, le texte se répartit naturellement. */
@media (max-width: 767px) {
	.elementor h2.e-heading-base br { display: none; }
	.elementor h2.e-heading-base { font-size: clamp(22px, 6.3vw, 26px); text-wrap: balance; }
}
#top .elementor-element-55ca9b58 { flex-wrap: wrap; column-gap: 10px; row-gap: 8px; }
#top .elementor-element-55ca9b58 > p:last-child { flex: 0 0 100%; margin: 0; }

/* Footer : le pseudo-élément de nettoyage du menu SmartMenus ajoutait un écart de 18 px à droite. */
.elementor-location-footer .elementor-nav-menu--main ul.elementor-nav-menu::after { display: none; }
#top .elementor-element-7c8fbbeb > p:nth-of-type(2) { text-wrap: pretty; }
.elementor .e-button-base { font-family: var(--lr-sans); }
#reserver .elementor-element-4b8a34c0 > p:first-child { font-family: var(--lr-serif); font-size: 24px; font-weight: 600; }

/* Apparition douce au défilement (ajoutée par site.js, retirée après l'animation ; absente si mouvement réduit). */
.lr-reveal { opacity: 0; transform: translateY(12px); transition: opacity 1.1s cubic-bezier(.22, .61, .36, 1) var(--lr-d, 0s), transform 1.1s cubic-bezier(.22, .61, .36, 1) var(--lr-d, 0s) !important; }
.lr-reveal.is-in { opacity: 1; transform: none; }
/* Page /merci/ : numéro cliquable, mêmes codes que le bloc réservation. */
[data-id="4182873d"] a[href^="tel:"] { color: var(--on-dark, #f7f4f3); border-bottom: 1px solid var(--brand-soft, #f39780); padding-bottom: 2px; margin-left: 4px; transition: color .25s ease; }
[data-id="4182873d"] a[href^="tel:"]:hover { color: var(--brand-soft, #f39780); }

/* Section « solutions » : en-tête compact (titre + bouton), flèches posées sur le filet, cartes tout de suite dessous. */
.elementor .elementor-element-3e48a500 { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 40px; row-gap: 26px; align-items: end; width: 100%; padding-block-end: 40px; }
.elementor .elementor-element-3e48a500 > p:first-child { grid-column: 1 / -1; padding: 0; margin: 0; }
.elementor [data-id="68727734"] { grid-column: 2; margin: 0 !important; align-self: end; justify-self: end; }
@media (max-width: 1024px) { .elementor .elementor-element-3e48a500 { grid-template-columns: 1fr; padding-block-end: 32px; } .elementor [data-id="68727734"] { grid-column: 1; justify-self: start; } }
@media (max-width: 767px) { .elementor .elementor-element-3e48a500 { padding-block-end: 26px; } }

/* Liens soulignés (« Réserver un essai », visite virtuelle, téléphones) : au survol, couleur + soulignement qui s'épaissit en douceur. */
.elementor .ulink, .elementor .ulink-light, main p a[href^="tel:"], #reserver p a[href^="tel:"], #faq p a[href^="tel:"], [data-id="4182873d"] a[href^="tel:"], .elementor-location-footer a[href^="tel:"] {
	transition: color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.elementor .ulink:hover, .elementor .ulink-light:hover, .elementor .ulink:focus-visible, .elementor .ulink-light:focus-visible,
main p a[href^="tel:"]:hover, #reserver p a[href^="tel:"]:hover, #faq p a[href^="tel:"]:hover, [data-id="4182873d"] a[href^="tel:"]:hover, .elementor-location-footer a[href^="tel:"]:hover {
	box-shadow: 0 1px 0 0 currentColor;
}
.elementor .ulink:hover { border-bottom-color: var(--brand-hover, #c4331f); }
.elementor .ulink-light:hover { border-bottom-color: var(--brand-soft, #f39780); }

/* Bandeaux horizontaux : seul l'axe X défile (un débordement vertical de quelques px bloquait la molette). */
.case-strip { overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; }

/* Filet de la section « solutions » : il s'arrête avant les flèches. */
.elementor [data-id="2f81d095"] { width: calc(100% - 124px); }

/* Magasins : la ville est le titre (symbole du logo devant), elle reste visible pendant qu'on parcourt les photos du magasin. */
#magasins { overflow: clip; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > :first-child { display: block; margin: 0; color: var(--ink, #141212); }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > :first-child::before { display: none; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > :first-child strong { display: flex; align-items: center; gap: 14px; font: 500 clamp(30px, 2.8vw, 38px)/1.1 var(--lr-serif); letter-spacing: -.01em; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > :first-child strong::before { content: ""; flex: 0 0 auto; width: 38px; height: 21px; background: url("mark-red.svg") center / contain no-repeat; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > :first-child span { display: block; margin-top: 10px; padding-left: 52px; font: 400 12px/1.4 var(--lr-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--muted, #5f6368); }
@media (min-width: 1025px) {
	#magasins .e-con:has(> .case-strip) { display: grid; grid-template-columns: 300px minmax(0, 1fr) auto; column-gap: 40px; row-gap: 32px; align-items: start; }
	#magasins .e-con:has(> .case-strip) > .e-con:first-child { display: contents; }
	#magasins .e-con:has(> .case-strip) > .e-con:first-child > :first-child { grid-column: 1; grid-row: 1 / span 2; position: sticky; top: 56px; align-self: start; }
	#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(2) { grid-column: 2; grid-row: 1; }
	#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) { grid-column: 3; grid-row: 1; }
	#magasins .e-con:has(> .case-strip) > .case-strip { grid-column: 2 / -1; grid-row: 2; min-width: 0; width: auto; max-width: none; justify-self: stretch; padding-left: 0; scroll-padding-left: 0; margin-right: calc(-1 * max(60px, (100vw - 1320px) / 2)); }
}
#magasins .e-con:has(> .case-strip) > .e-con:first-child > :first-child br { display: none; }

/* Magasins : horaires en une phrase avec icônes, boutons côte à côte (visite en contour, puis « Essayer à … »). */
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(2) > .e-con:last-child { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px 28px; margin-top: 14px; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(2) > .e-con:last-child > p {
	margin: 0; padding: 0 0 0 28px; height: auto; border: 0; border-radius: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a4160b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") left center / 18px 18px no-repeat;
	font: 400 15px/1.5 var(--lr-sans); color: var(--text, #111010);
}
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(2) > .e-con:last-child > p:nth-child(2) {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a4160b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3'/%3E%3Cpath d='M10 16V8h3a2.5 2.5 0 0 1 0 5h-3'/%3E%3C/svg%3E");
}
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) > a:first-child {
	display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 26px; border: 1px solid var(--brand, #a4160b); border-radius: 999px; background: transparent; color: var(--brand, #a4160b);
	font: 400 12.5px/1 var(--lr-sans); white-space: nowrap; transition: background-color .25s ease, color .25s ease, border-color .25s ease; box-shadow: none; text-decoration: none;
}
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) > a:first-child:hover { background: var(--brand, #a4160b); color: #fff; box-shadow: none; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) > a:first-child:focus:not(:hover):not(:focus-visible) { background: transparent; color: var(--brand, #a4160b); }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) > a:first-child:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) > a:last-child { height: 44px; padding: 0 26px; font-size: 12.5px; }

/* Magasins : l'adresse est un paragraphe (la ville est le titre h3). */
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(2) > p:first-child { margin: 0; font: 500 clamp(19px, 1.8vw, 22px)/1.35 var(--lr-serif); color: var(--ink, #141212); }

/* Mobile : cibles tactiles ≥ 44 px, champs à 16 px (pas de zoom iOS), textes lisibles, rien sous la barre collante. */
@media (max-width: 767px) {
	body .lr-lead_wrapper.gform-theme .lr-chips .gchoice label { height: 44px; }
	body .lr-lead_wrapper.gform-theme input[type="text"], body .lr-lead_wrapper.gform-theme input[type="tel"], body .lr-lead_wrapper.gform-theme input[type="email"] { font-size: 16px; height: 46px; }
	body .lr-lead_wrapper .gf_progressbar_title { font-size: 12px; }
	.elementor .ulink, .elementor .ulink-light { display: inline-flex; align-items: center; min-height: 44px; }
	.elementor-location-footer .elementor-nav-menu a.elementor-item { padding-block: 13px; }
	#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(2) > .e-con:last-child > p { white-space: normal; }
}

/* Barre collante : numéro de GSM cliquable à gauche du bouton. */
#lr-sticky [data-id="20cd1a10"] a { display: inline-flex; align-items: center; gap: 8px; color: var(--text, #111010); font-weight: 500; text-decoration: none; transition: color .25s ease; }
#lr-sticky [data-id="20cd1a10"] a::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center / contain no-repeat; }
#lr-sticky [data-id="20cd1a10"] a:hover, #lr-sticky [data-id="20cd1a10"] a:focus-visible { color: var(--brand, #a4160b); }

/* Formulaire : le récapitulatif d'erreurs reste pour les lecteurs d'écran, les messages sont affichés sous chaque champ. */
body .lr-lead_wrapper.gform-theme .gform_validation_errors { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; white-space: nowrap; }

/* Boutons « Prendre rendez-vous » des magasins : petite icône calendrier. */
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) > a:last-child { gap: 9px; }
#magasins .e-con:has(> .case-strip) > .e-con:first-child > .e-con:nth-child(3) > a:last-child::before {
	content: ""; flex: 0 0 auto; width: 15px; height: 15px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Calendly sur la page de remerciement */
.lr-cal { align-self: stretch; width: 100%; max-width: 780px; margin: 12px 0 8px; background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 18px 50px rgba(0, 0, 0, .18); }
.lr-cal[hidden] { display: none; }
.lr-cal__frame { min-width: 320px; height: 700px; }
[data-id="lrcal001"] { align-self: stretch; width: 100%; max-width: 780px; }
/* /merci/ avec Calendly : agenda à gauche, texte à droite */
@media (min-width: 960px) {
	.elementor-element-45c87a8e:has(.lr-cal:not([hidden])) { display: grid; grid-template-columns: minmax(0, 780px) minmax(0, 1fr); column-gap: 72px; align-items: start; }
	.elementor-element-45c87a8e:has(.lr-cal:not([hidden])) > * { grid-column: 2; max-width: 100%; }
	.elementor-element-45c87a8e:has(.lr-cal:not([hidden])) > [data-id="lrcal001"] { grid-column: 1; grid-row: 1 / span 6; margin: 0; max-width: none; }
	.elementor-element-45c87a8e:has(.lr-cal:not([hidden])) .lr-cal { margin: 0; max-width: none; }
}

/* Formulaire : annonce de l'étape suivante + description e-mail */
body .lr-lead_wrapper.gform-theme .gfield--type-html .lr-next { margin: 0 0 6px; font: 400 13px/1.5 var(--lr-sans); color: #d8d2d0; }
body .lr-lead_wrapper.gform-theme .gfield--type-email .gfield_description { margin: 4px 0 0; padding: 0; font: 400 11.5px/1.4 var(--lr-sans); color: #9b9694; }
/* /merci/ : carte du magasin */
.lr-shop { width: 100%; margin: 20px 0 4px; padding: 22px 26px; border: 1px solid rgba(255, 255, 255, .16); border-radius: 6px; background: rgba(255, 255, 255, .06); }
.lr-shop[hidden] { display: none; }
.lr-shop p { margin: 0; color: #e9e4e2; font: 400 15px/1.5 var(--lr-sans); }
.lr-shop .lr-shop__label { margin-bottom: 6px; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: #f39780; }
.lr-shop .lr-shop__city { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font: 400 clamp(26px, 2.6vw, 34px)/1.15 var(--lr-serif); color: #fff; }
.lr-shop .lr-shop__city::before { content: ""; flex: 0 0 auto; width: 22px; height: 22px; background: #f39780; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.lr-shop .lr-shop__hours { color: #bdb6b3; font-size: 14px; }
.lr-shop .lr-shop__map { display: inline-block; margin-top: 12px; color: #fff; font: 400 14px/1.4 var(--lr-sans); text-decoration: none; border-bottom: 1px solid #f39780; }
.lr-shop .lr-shop__map:hover, .lr-shop .lr-shop__map:focus-visible { color: #f39780; }
/* /merci/ : pas de header, contenu remonté */
body.page-id-137 .elementor-location-header { display: none; }
body.page-id-137 .elementor-element-45c87a8e { padding-top: 70px; }

/* Retours cliente (2026-10-05) : titres plus grands, puces plus grandes, textes plus marqués sur fond clair. */
.elementor h1.e-heading-base { font-size: clamp(38px, 3.9vw, 54px); }
.elementor h2.e-heading-base { font-size: clamp(30px, 2.9vw, 40px); line-height: 1.15; text-wrap: balance; }
.elementor h3.e-heading-base { font-size: clamp(22px, 2.2vw, 28px); }
#equipe h2.e-heading-base { font-size: clamp(26px, 2.2vw, 32px); }
.elementor p.point, .elementor p.point-light { font-size: 17px; line-height: 1.5; }
.elementor p.point::before, .elementor p.point-light::before { width: 8px; height: 8px; }
/* Textes courants sur fond clair : gris moyen remplacé par un anthracite, un peu plus gros. */
:root { --muted: #3f3b3b; }
.elementor p.qa-a, .lr-card__note, .lr-says__src { color: #3f3b3b; }
.elementor p.qa-a { font-size: 17px; max-width: 720px; }
.lr-card__note { font-size: 15px; line-height: 1.55; }
.elementor p[data-id="6977b7f8"], .elementor p[data-id="7117bb5f"], .elementor p[data-id="66ecd0c3"], .elementor p[data-id="75f65780"] { color: #3f3b3b; font-size: 17px; }
@media (max-width: 767px) {
	.elementor h1.e-heading-base { font-size: clamp(32px, 9vw, 40px); }
	.elementor h2.e-heading-base { font-size: clamp(26px, 7.6vw, 32px); }
	.elementor p.point, .elementor p.point-light { font-size: 16px; }
}
#lr-sticky [data-id="20cd1a10"] { display: inline-flex; align-items: center; gap: 22px; }
/* Nouvelle trame : intro des magasins et encart Wavre. */
.elementor p[data-id="lrwintro1"] { color: #3f3b3b; font-size: 17px; margin: 14px 0 0; max-width: 60ch; }
.elementor p[data-id="lrwavre01"] { color: #3f3b3b; font-size: 17px; width: min(1320px, calc(100% - 40px)); margin: 40px auto 72px; padding: 22px 0 0; border-top: 1px solid var(--lr-line, #e4dcda); box-sizing: border-box; }
@media (min-width: 1441px) { .elementor p[data-id="lrwavre01"] { width: 1320px; } }
/* Avis : section sombre, enchaînée avec le bloc 01 sur fond blanc. */
[data-id="213f36eb"] { border-top: 1px solid rgba(255, 255, 255, .1); }
[data-id="213f36eb"] .lr-dot, [data-id="213f36eb"] .lr-says__quote, [data-id="213f36eb"] .lr-says__person strong { color: #f7f4f3; }
[data-id="213f36eb"] .lr-says__score strong { color: #fff; }
[data-id="213f36eb"] .lr-says__score strong::after, [data-id="213f36eb"] .lr-says__src, [data-id="213f36eb"] .lr-says__person small { color: rgba(247, 244, 243, .72); }
[data-id="213f36eb"] .lr-says__mark { color: #f39780; }
[data-id="213f36eb"] .lr-dot { display: block; font: 500 clamp(26px, 2.4vw, 32px)/1.2 var(--lr-serif); letter-spacing: -.005em; }
[data-id="213f36eb"] .lr-dot::before { display: none; }
/* Hero : l'image couvre toute la section (cover), quelle que soit sa hauteur (mobile/tablette inclus). */
[data-id="2da6c72d"] img { width: 100%; height: 100%; object-fit: cover; }
/* Barre collante mobile : seul le bouton reste (les numéros sont masqués avec le reste du texte). */
@media (max-width: 767px) { #lr-sticky [data-id="20cd1a10"] { display: none; } }
/* Hero : la baseline en italique corail à 2,5 rem sur desktop. */
@media (min-width: 1025px) { #top h1.e-heading-base span { font-size: 2.5rem; } }
/* Marques : dégradé blanc vers le crème de la section suivante (test de transition fluide). */
[data-id="15a4eb11"] { background: linear-gradient(180deg, #fff 0%, var(--lr-cream) 100%); }
[data-id="3f8e8410"] a { white-space: nowrap; }
/* Équipe : même crème que la section Solutions. */
#equipe { background-color: var(--lr-cream); }
