/* =====================================================================
   Orient'Options — compléments à Elementor Free
   Direction artistique « Le cap » : couleurs et polices viennent des
   réglages globaux Elementor (Paramètres du site), valeurs de secours ici.
   ===================================================================== */
:root {
	--oo-ink: var(--e-global-color-secondary, #0f2a3a);
	--oo-teal: var(--e-global-color-accent, #1f6f6b);
	--oo-amber: var(--e-global-color-primary, #f0a202);
	--oo-text: var(--e-global-color-text, #44525c);
	--oo-sand: var(--e-global-color-oo_sand, #f4ede3);
	--oo-linen: var(--e-global-color-oo_linen, #fbf8f3);
	--oo-mist: var(--e-global-color-oo_mist, #e4efec);
	--oo-line: var(--e-global-color-oo_line, #e6ded2);
	--oo-serif: var(--e-global-typography-primary-font-family, "Fraunces"), Georgia, serif;
	--oo-sans: var(--e-global-typography-text-font-family, "DM Sans"), system-ui, sans-serif;
	--oo-radius: 20px;
	--oo-ease: cubic-bezier(.2, .7, .2, 1);
	--hs-header-h: 84px;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--hs-header-h) + 16px); overflow-x: clip; }
body { background: var(--oo-linen); }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.elementor-invisible { visibility: visible !important; }
	.animated { animation: none !important; }
	*, *::before, *::after { transition-duration: .01ms !important; }
}
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--oo-teal);
	outline-offset: 3px;
	border-radius: 4px;
}
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---------- Lien d'évitement ---------- */
.hs-skip-link { position: absolute; left: 12px; top: -100px; z-index: 1000; padding: 12px 18px; background: var(--oo-ink); color: #fff; border-radius: 999px; font-weight: 600; }
.hs-skip-link:focus { top: 12px; color: #fff; }

/* ---------- Header (modèle Elementor « Header ») ---------- */
.hs-site-header { position: sticky; top: 0; z-index: 100; }
.admin-bar .hs-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hs-site-header { top: 0; } }
.oo-header {
	background: rgba(251, 248, 243, .92);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
	border-bottom: 1px solid transparent;
	transition: border-color .3s ease, box-shadow .3s ease;
}
.hs-is-scrolled .oo-header { border-bottom-color: var(--oo-line); box-shadow: 0 6px 24px rgba(15, 42, 58, .06); }
.oo-logo img { display: block; width: auto; max-height: 58px; transition: max-height .3s var(--oo-ease); }
.hs-is-scrolled .oo-logo img { max-height: 48px; }

/* ---------- Menu principal [hs_nav] ---------- */
.hs-nav { position: static; }
.hs-nav__list { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.hs-nav__list > li { position: relative; }
.hs-nav__list a,
.hs-nav__parent {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 14px; border: 0; border-radius: 999px; background: none;
	font-family: var(--oo-sans); font-size: 15px; font-weight: 500; line-height: 1.3;
	color: var(--oo-ink); text-decoration: none; cursor: pointer; white-space: nowrap;
	transition: background-color .2s ease, color .2s ease;
}
.hs-nav__list a:hover, .hs-nav__parent:hover,
.hs-nav__list > li.is-open > .hs-nav__parent { background: var(--oo-mist); color: var(--oo-ink); }
.hs-nav__list > .current-menu-item > a,
.hs-nav__list > .current-menu-ancestor > a,
.hs-nav__list > .current-menu-ancestor > .hs-nav__parent { color: var(--oo-teal); font-weight: 600; }
.hs-nav__chevron { width: 10px; height: 10px; flex: none; transition: transform .25s ease; }
.is-open > .hs-nav__parent .hs-nav__chevron, .is-open > a .hs-nav__chevron { transform: rotate(180deg); }

/* Sous-menus */
.hs-nav__list .sub-menu { margin: 0; padding: 0; list-style: none; }
@media (min-width: 992px) {
	.hs-nav__list .sub-menu {
		position: absolute; left: 50%; top: calc(100% + 10px); z-index: 20;
		min-width: 280px; padding: 10px;
		background: #fff; border: 1px solid var(--oo-line); border-radius: 18px;
		box-shadow: 0 18px 40px rgba(15, 42, 58, .12);
		opacity: 0; visibility: hidden; transform: translate(-50%, 6px);
		transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
	}
	.hs-nav__list .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; } /* pont de survol */
	.hs-nav__list > li:hover > .sub-menu,
	.hs-nav__list > li:focus-within > .sub-menu,
	.hs-nav__list > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
	/* Fermé à la demande (Échap ou autre rubrique ouverte), même si le focus est encore dedans */
	.hs-nav__list > li.is-dismissed > .sub-menu,
	.hs-nav__list:has(> li.is-open) > li:not(.is-open) > .sub-menu { opacity: 0; visibility: hidden; transform: translate(-50%, 6px); }
	.hs-nav__list .sub-menu a { display: flex; width: 100%; padding: 12px 16px; border-radius: 12px; white-space: normal; }
	.hs-nav__list .sub-menu a:hover, .hs-nav__list .sub-menu .current-menu-item > a { background: var(--oo-sand); color: var(--oo-ink); }
	.hs-nav__list .sub-menu .current-menu-item > a { font-weight: 600; }
	.hs-nav__list .hs-sub-toggle { display: none; }
}

/* Bouton d'action du menu (classe CSS « oo-nav-cta » sur l'élément de menu) */
.hs-nav__list > .oo-nav-cta { margin-left: 10px; }
.hs-nav__list > .oo-nav-cta > a {
	padding: 13px 22px; background: var(--oo-amber); color: var(--oo-ink); font-weight: 600;
	box-shadow: 0 6px 16px rgba(240, 162, 2, .28);
	transition: transform .2s var(--oo-ease), box-shadow .2s ease, background-color .2s ease;
}
.hs-nav__list > .oo-nav-cta > a:hover { background: #f5b52e; color: var(--oo-ink); transform: translateY(-1px); box-shadow: 0 10px 22px rgba(240, 162, 2, .34); }
.hs-nav__list > .oo-nav-cta.current-menu-item > a { color: var(--oo-ink); }
.hs-nav__toggle { display: none; }

@media (min-width: 992px) and (max-width: 1199px) {
	.hs-nav__list a, .hs-nav__parent { padding: 10px 10px; font-size: 14px; }
	.hs-nav__list > .oo-nav-cta { margin-left: 4px; }
}

/* Mobile / tablette : panneau déroulant plein écran sous le header */
@media (max-width: 991px) {
	.oo-header { position: relative; }
	/* le panneau se positionne par rapport au header, pas au widget qui contient le menu */
	.oo-header .elementor-element:has(> .hs-nav), .oo-header .elementor-element:has(.hs-nav), .oo-header .elementor-widget-container:has(.hs-nav) { position: static; }
	.hs-nav__toggle {
		display: inline-flex; align-items: center; justify-content: center; gap: 10px;
		height: 46px; padding: 0 18px; border: 1px solid var(--oo-line); border-radius: 999px;
		background: #fff; color: var(--oo-ink); font: 600 15px/1 var(--oo-sans); cursor: pointer;
	}
	.hs-nav__toggle:hover, .hs-nav__toggle:focus { background: var(--oo-mist); color: var(--oo-ink); }
	.hs-nav__toggle-label { display: inline; }
	.hs-nav__bars { display: grid; gap: 4px; width: 18px; }
	.hs-nav__bars span { display: block; height: 2px; background: currentColor; border-radius: 2px; transition: transform .3s ease, opacity .3s ease; }
	.hs-nav__toggle[aria-expanded="true"] .hs-nav__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
	.hs-nav__toggle[aria-expanded="true"] .hs-nav__bars span:nth-child(2) { opacity: 0; }
	.hs-nav__toggle[aria-expanded="true"] .hs-nav__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

	.hs-nav__list {
		position: absolute; left: 0; right: 0; top: 100%; z-index: 20;
		display: none; flex-direction: column; align-items: stretch; gap: 0;
		max-height: calc(100dvh - var(--hs-header-h)); overflow-y: auto; overscroll-behavior: contain;
		padding: 12px 20px 28px; background: var(--oo-linen);
		border-top: 1px solid var(--oo-line); box-shadow: 0 24px 40px rgba(15, 42, 58, .14);
	}
	.hs-nav.is-open .hs-nav__list { display: flex; }
	.hs-nav__list > li { border-bottom: 1px solid var(--oo-line); display: flex; flex-wrap: wrap; align-items: center; }
	.hs-nav__list > li > a, .hs-nav__list > li > .hs-nav__parent { flex: 1; padding: 18px 4px; border-radius: 0; font-family: var(--oo-serif); font-size: 22px; font-weight: 500; white-space: normal; text-align: left; }
	.hs-nav__list > li > a:hover, .hs-nav__parent:hover, .hs-nav__list > li.is-open > .hs-nav__parent { background: none; color: var(--oo-teal); }
	.hs-nav__parent .hs-nav__chevron { width: 14px; height: 14px; margin-left: auto; }
	.hs-sub-toggle {
		display: inline-flex; align-items: center; justify-content: center;
		width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--oo-sand); color: var(--oo-ink); cursor: pointer;
	}
	.hs-sub-toggle svg { width: 14px; height: 14px; transition: transform .25s ease; }
	.is-open > .hs-sub-toggle svg { transform: rotate(180deg); }
	.hs-nav__list .sub-menu { display: none; flex-basis: 100%; padding: 0 0 14px 4px; }
	.hs-nav__list > li.is-open > .sub-menu { display: block; }
	.hs-nav__list .sub-menu a { display: block; padding: 11px 0 11px 16px; border-left: 2px solid var(--oo-line); border-radius: 0; font-size: 17px; }
	.hs-nav__list .sub-menu .current-menu-item > a { border-left-color: var(--oo-teal); color: var(--oo-teal); font-weight: 600; }
	.hs-nav__list > .oo-nav-cta { margin: 22px 0 0; border-bottom: 0; }
	.hs-nav__list > .oo-nav-cta > a { flex: 1; justify-content: center; padding: 18px 22px; border-radius: 999px; font-family: var(--oo-sans); font-size: 17px; font-weight: 600; }
}
@media (max-width: 420px) { .hs-nav__toggle-label { display: none; } .hs-nav__toggle { width: 46px; padding: 0; } }

/* ---------- Éléments éditoriaux ---------- */
/* Sur-titre : court trait + texte en capitales */
.oo-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; }
.oo-eyebrow .elementor-heading-title::before { content: ""; flex: none; width: 24px; height: 2px; border-radius: 2px; background: currentColor; }
/* Mot mis en valeur dans un titre : <em> en italique pétrole */
.elementor-heading-title em { font-style: italic; font-weight: 400; color: var(--oo-teal); }
.oo-on-dark .elementor-heading-title em { color: #f7c65c; }

/* Photo en arche */
.elementor .oo-arch img { border-radius: 999px 999px var(--oo-radius) var(--oo-radius); object-fit: cover; }
.elementor .oo-round img { border-radius: var(--oo-radius); object-fit: cover; }

/* Carte flottante sur une photo (hero) */
.oo-float { box-shadow: 0 18px 40px rgba(15, 42, 58, .16); }
@media (min-width: 992px) { .oo-float { animation: oo-float 6s ease-in-out infinite; } }
@keyframes oo-float { 50% { transform: translateY(-8px); } }

/* Pastilles de réassurance (widget Liste d'icônes en ligne) */
.oo-chips .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; }
.oo-chips .elementor-icon-list-item { margin: 0 !important; padding: 8px 14px !important; border: 1px solid var(--oo-line); border-radius: 999px; background: rgba(255, 255, 255, .7); }
.oo-chips .elementor-icon-list-item::after { display: none !important; }

/* Cartes cliquables : lien étendu à toute la carte + élévation au survol */
.oo-card { position: relative; transition: transform .3s var(--oo-ease), box-shadow .3s ease, background-color .3s ease, border-color .3s ease; }
.oo-card:hover, .oo-card:focus-within { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(15, 42, 58, .10); }
.oo-card .oo-stretch a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.oo-card .oo-stretch a:focus-visible { outline: none; }
.oo-card:has(.oo-stretch a:focus-visible) { outline: 3px solid var(--oo-teal); outline-offset: 4px; }

/* Sélecteur de profil « Vous êtes… » */
.oo-profile { overflow: hidden; }
.oo-profile .oo-profile__arrow .elementor-icon { transition: transform .3s var(--oo-ease), background-color .3s ease, color .3s ease; }
.oo-profile:hover .oo-profile__arrow .elementor-icon { transform: translateX(4px); background-color: var(--oo-amber) !important; }
.oo-profile:hover { border-color: var(--oo-teal) !important; }

/* Numéros d'étapes reliés par une ligne */
.oo-steps { counter-reset: none; }
.oo-step { position: relative; }
@media (min-width: 992px) {
	.oo-steps--line .oo-step:not(:last-child)::after {
		content: ""; position: absolute; top: 28px; left: 72px; right: -24px; height: 1px;
		background: repeating-linear-gradient(90deg, var(--oo-teal) 0 6px, transparent 6px 12px); opacity: .45;
	}
}
.oo-num .elementor-heading-title {
	display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 50%; border: 1px solid currentColor; font-variant-numeric: lining-nums;
}

/* Frise verticale (phases du bilan) */
.oo-timeline > .e-con-inner, .oo-timeline { position: relative; }
.oo-phase { position: relative; padding-left: 76px !important; }
.oo-phase::before {
	content: ""; position: absolute; left: 27px; top: 60px; bottom: -28px; width: 1px; background: var(--oo-line);
}
.oo-phase:last-child::before { display: none; }
.oo-phase .oo-num { position: absolute !important; left: 0; top: 0; }

/* Liste « check » sur deux colonnes */
@media (min-width: 600px) {
	.oo-list-2col .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; column-gap: 28px; }
}

/* Témoignages : grille sur desktop, défilement horizontal sur mobile */
@media (max-width: 767px) {
	.elementor .e-con.oo-quotes { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px !important; padding-bottom: 12px !important; margin-right: -20px; padding-right: 20px !important; scrollbar-width: thin; }
	.elementor .oo-quotes > .e-con { flex: 0 0 86% !important; scroll-snap-align: start; }
}
.oo-quote .elementor-testimonial-content { font-family: var(--oo-serif); }
.oo-quote .elementor-testimonial-image img { width: 48px !important; height: 48px !important; }

/* FAQ (widget Accordéon) */
.oo-faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--oo-line) !important; }
.oo-faq .elementor-tab-title .elementor-accordion-icon { margin-top: 4px; }

/* Sections sombres : liens, pastilles et menus lisibles */
.oo-on-dark .elementor-widget-text-editor a { color: #f7c65c; }
.oo-on-dark .hs-menu a, .oo-on-dark .hs-contact-list a { color: #d9e3e6; }
.oo-on-dark .hs-menu a:hover, .oo-on-dark .hs-contact-list a:hover { color: #fff; }
.oo-on-dark .hs-menu .current-menu-item > a { color: #f7c65c; }
.oo-on-dark .oo-chips .elementor-icon-list-item { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .22); }
.oo-on-dark .oo-chips .elementor-icon-list-text { color: #fff !important; }
.oo-on-dark .oo-chips .elementor-icon-list-icon svg { fill: #f7c65c !important; }
.oo-footer-logo img { padding: 10px 14px; border-radius: 16px; background: #fff; }

/* Dernier paragraphe d'un bloc de texte : pas de marge basse parasite */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Photo qui remplit sa cellule (bloc « Bilan » mis en avant) */
.elementor .oo-cover, .elementor .oo-cover .elementor-widget-container { height: 100%; }
.elementor .oo-cover img { width: 100%; height: 100% !important; min-height: 240px; object-fit: cover; border-radius: 0; }

/* ---------- Liste de coordonnées [hs_contact_list] ---------- */
.hs-contact-list { margin: 0; padding: 0; list-style: none; }
.hs-contact-list li { display: flex; align-items: flex-start; gap: 14px; padding: 8px 0; font-size: 16px; line-height: 1.55; }
.hs-contact-list__icon { flex: none; display: inline-flex; color: var(--oo-teal); padding-top: 2px; }
.hs-contact-list__text { min-width: 0; overflow-wrap: anywhere; }
.hs-contact-list__text strong { display: block; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--oo-text); }
.hs-contact-list a { color: inherit; text-decoration: none; }
.hs-contact-list a:hover { color: var(--oo-teal); text-decoration: underline; }
.hs-contact-list--labels li { gap: 16px; padding: 12px 0; }
.hs-contact-list--labels .hs-contact-list__icon { width: 46px; height: 46px; border-radius: 50%; background: var(--oo-mist); align-items: center; justify-content: center; padding: 0; }
.hs-contact-list--labels .hs-contact-list__text > span { font-size: 17px; color: var(--oo-ink); }
.hs-contact-list--light, .hs-contact-list--light a, .hs-contact-list--footer, .hs-contact-list--footer a { color: #d9e3e6; }
.hs-contact-list--light .hs-contact-list__icon, .hs-contact-list--footer .hs-contact-list__icon { color: #f7c65c; }
.hs-contact-list--light a:hover, .hs-contact-list--footer a:hover { color: #fff; }
.hs-contact-list--inline { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.hs-contact-list--inline li { padding: 0; }

/* ---------- Menus simples [hs_menu] (footer, liens légaux) ---------- */
.hs-menu { margin: 0; padding: 0; list-style: none; }
.hs-menu a { display: inline-block; padding: 5px 0; color: inherit; text-decoration: none; transition: color .2s ease; }
.hs-menu a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.hs-menu .sub-menu { display: none; }
.hs-menu.hs-menu--inline { display: flex; flex-wrap: wrap; gap: 0 22px; }
.oo-footer-legal .hs-menu a:hover { color: var(--oo-ink); }

/* ---------- Formulaire [hs_contact_form] ---------- */
.hs-form { display: grid; gap: 20px; }
.hs-form__required { margin: 0; font-size: 14px; color: var(--oo-text); }
.hs-form__star { color: #b4540a; }
.hs-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hs-form__grid { display: grid; gap: 20px; }
@media (min-width: 600px) { .hs-form__grid { grid-template-columns: 1fr 1fr; } }
.hs-form label { display: block; margin-bottom: 8px; font-size: 15px; font-weight: 600; color: var(--oo-ink); }
.hs-form input[type="text"], .hs-form input[type="email"], .hs-form input[type="tel"], .hs-form select, .hs-form textarea {
	display: block; width: 100%; min-height: 54px; padding: 0 18px;
	border: 1px solid var(--oo-line); border-radius: 14px; background: #fff;
	font-family: var(--oo-sans); font-size: 16px; color: var(--oo-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.hs-form select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2a3a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 16px center / 16px no-repeat; padding-right: 44px; }
.hs-form textarea { min-height: 150px; padding: 14px 18px; resize: vertical; }
.hs-form input:focus, .hs-form select:focus, .hs-form textarea:focus { border-color: var(--oo-teal); box-shadow: 0 0 0 4px rgba(31, 111, 107, .15); outline: none; }
.hs-form [aria-invalid="true"] { border-color: #b3261e; }
.hs-form__error { margin: 6px 0 0; font-size: 14px; color: #b3261e; }
.hs-form__consent { display: grid; grid-template-columns: 24px 1fr; gap: 0 12px; align-items: start; }
.hs-form__consent input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--oo-teal); }
.hs-form__consent label { margin: 0; font-weight: 400; font-size: 15px; line-height: 1.55; color: var(--oo-text); }
.hs-form__consent .hs-form__error { grid-column: 2; }
.hs-form__consent a { color: var(--oo-teal); }
.hs-form__submit {
	justify-self: start; display: inline-flex; align-items: center; gap: 10px;
	padding: 18px 30px; border: 0; border-radius: 999px; cursor: pointer;
	background: var(--oo-amber); color: var(--oo-ink); font: 600 16px/1 var(--oo-sans);
	box-shadow: 0 8px 20px rgba(240, 162, 2, .28); transition: transform .2s var(--oo-ease), background-color .2s ease;
}
.hs-form__submit:hover, .hs-form__submit:focus { background: #f5b52e; color: var(--oo-ink); transform: translateY(-1px); }
.hs-form__submit[disabled] { cursor: wait; opacity: .7; }
@media (max-width: 599px) { .hs-form__submit { justify-self: stretch; justify-content: center; } }
.hs-form__status { margin: 0; padding: 14px 18px; border-radius: 14px; font-weight: 600; }
.hs-form__status[hidden] { display: none; }
.hs-form__status[data-state="success"] { background: #e3f1e8; color: #1d5b33; }
.hs-form__status[data-state="error"] { background: #fbe9e7; color: #8c1d18; }

/* ---------- Bouton retour en haut ---------- */
.hs-to-top {
	position: fixed; right: 20px; bottom: 20px; z-index: 90;
	display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; padding: 0; border: 1px solid var(--oo-line); border-radius: 50%;
	background: #fff; color: var(--oo-ink); cursor: pointer; box-shadow: 0 8px 20px rgba(15, 42, 58, .12);
	opacity: 0; pointer-events: none; transform: translateY(12px);
	transition: opacity .4s ease, transform .4s ease, background-color .2s ease;
}
.hs-to-top.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.hs-to-top:hover, .hs-to-top:focus { background: var(--oo-ink); color: #fff; }

/* ---------- Pages légales ---------- */
.hs-legal h2 { margin: 40px 0 12px; font-size: 24px; }

/* ---------- Footer ---------- */
.hs-no-footer-cta .oo-footer-cta { display: none; }
.oo-footer-title .elementor-heading-title { letter-spacing: .08em; }

/* ---------- Boutons du plugin : neutralise les styles de bouton globaux du kit Elementor ----------
   (le kit cible tous les <button> ; ces sélecteurs sont volontairement plus précis) */
.hs-site-header .hs-nav button.hs-nav__parent,
.hs-site-header .hs-nav button.hs-nav__parent:hover,
.hs-site-header .hs-nav button.hs-nav__parent:focus {
	padding: 10px 14px; border: 0; border-radius: 999px; box-shadow: none;
	font-family: var(--oo-sans); font-size: 15px; font-weight: 500; line-height: 1.3; text-transform: none; letter-spacing: 0;
	color: var(--oo-ink); background: transparent;
}
.hs-site-header .hs-nav button.hs-nav__parent:hover,
.hs-site-header .hs-nav li.is-open > button.hs-nav__parent { background: var(--oo-mist); }
.hs-site-header .hs-nav .current-menu-ancestor > button.hs-nav__parent { color: var(--oo-teal); font-weight: 600; }
.hs-site-header .hs-nav button.hs-sub-toggle,
.hs-site-header .hs-nav button.hs-sub-toggle:hover,
.hs-site-header .hs-nav button.hs-sub-toggle:focus { padding: 0; border: 0; border-radius: 50%; box-shadow: none; background: var(--oo-sand); color: var(--oo-ink); }
.hs-site-header .hs-nav button.hs-nav__toggle,
.hs-site-header .hs-nav button.hs-nav__toggle:hover,
.hs-site-header .hs-nav button.hs-nav__toggle:focus { border: 1px solid var(--oo-line); border-radius: 999px; box-shadow: none; font: 600 15px/1 var(--oo-sans); text-transform: none; color: var(--oo-ink); }
.hs-site-header .hs-nav button.hs-nav__toggle { background: #fff; }
.hs-site-header .hs-nav button.hs-nav__toggle:hover, .hs-site-header .hs-nav button.hs-nav__toggle[aria-expanded="true"] { background: var(--oo-mist); }
@media (max-width: 991px) {
	.hs-site-header .hs-nav .hs-nav__list > li > button.hs-nav__parent { flex: 1; padding: 18px 4px; border-radius: 0; font-family: var(--oo-serif); font-size: 22px; background: none; text-align: left; justify-content: space-between; }
	.hs-site-header .hs-nav .hs-nav__list > li.is-open > button.hs-nav__parent { color: var(--oo-teal); background: none; }
	.hs-site-header .hs-nav button.hs-nav__toggle { display: inline-flex; padding: 0 18px; height: 46px; }
}
@media (min-width: 992px) { .hs-site-header .hs-nav button.hs-nav__toggle { display: none; } }
@media (max-width: 420px) { .hs-site-header .hs-nav button.hs-nav__toggle { width: 46px; padding: 0; } }
.elementor .hs-form button.hs-form__submit,
.elementor .hs-form button.hs-form__submit:hover,
.elementor .hs-form button.hs-form__submit:focus { border: 0; border-radius: 999px; padding: 18px 30px; color: var(--oo-ink); font: 600 16px/1 var(--oo-sans); text-transform: none; letter-spacing: 0; }
.elementor .hs-form button.hs-form__submit { background: var(--oo-amber); }
.elementor .hs-form button.hs-form__submit:hover, .elementor .hs-form button.hs-form__submit:focus { background: #f5b52e; }
body > button.hs-to-top.hs-to-top { padding: 0; border: 1px solid var(--oo-line); border-radius: 50%; background: #fff; color: var(--oo-ink); }
body > button.hs-to-top.hs-to-top:hover, body > button.hs-to-top.hs-to-top:focus { background: var(--oo-ink); color: #fff; }

/* Liens du menu : couleur encre (prioritaire sur la couleur de lien globale du kit) */
.hs-site-header .hs-nav__list a { color: var(--oo-ink); }
.hs-site-header .hs-nav__list > .current-menu-item > a,
.hs-site-header .hs-nav__list > .current-menu-ancestor > a,
.hs-site-header .hs-nav__list .sub-menu .current-menu-item > a { color: var(--oo-teal); }
.hs-site-header .hs-nav__list > .oo-nav-cta > a { color: var(--oo-ink); }
@media (max-width: 991px) { .hs-nav__list > li > a .hs-nav__chevron { display: none; } }

/* =====================================================================
   Passe de finition « premium »
   ===================================================================== */

/* Largeur de lecture des chapeaux */
.oo-lead { max-width: 38em; }
.elementor-widget-text-editor.oo-lead[style*="center"], .oo-lead .elementor-widget-container[style*="center"] { margin-inline: auto; }

/* Cadre en arche décalé derrière un portrait (rappel du « cap ») — balisage allégé d'Elementor 4 : pseudo-éléments sur le widget */
.elementor .elementor-widget.oo-frame { isolation: isolate; }
.elementor .oo-frame img { position: relative; z-index: 1; }
.elementor .elementor-widget.oo-frame::before {
	content: ""; position: absolute; z-index: 0; inset: 22px 22px -22px -22px;
	border: 1.5px solid var(--oo-amber); border-radius: 999px 999px 28px 28px; opacity: .6;
	transition: transform .8s var(--oo-ease); pointer-events: none;
}
.elementor .elementor-widget.oo-frame::after {
	content: ""; position: absolute; z-index: 0; left: -48px; top: 72px; width: 110px; height: 110px; border-radius: 50%;
	background: var(--oo-mist); pointer-events: none;
}
.elementor .elementor-widget.oo-frame:hover::before { transform: translate(6px, -6px); }
@media (max-width: 767px) {
	.elementor .elementor-widget.oo-frame::before { inset: 14px 10px -14px -10px; }
	.elementor .elementor-widget.oo-frame::after { width: 72px; height: 72px; left: -22px; }
}

/* Carte flottante du hero : lisible d'un coup d'œil */
.oo-float .elementor-widget-text-editor { white-space: nowrap; }
.oo-float { border: 1px solid var(--oo-line) !important; }

/* Ligne de réassurance (sans pastilles) */
.oo-trust .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.oo-trust .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.oo-trust .elementor-icon-list-item::after { display: none !important; }
.oo-trust .elementor-icon-list-icon { display: inline-flex; align-items: center; }

/* Citation éditoriale */
.oo-pullquote .elementor-heading-title { position: relative; padding-left: 26px; }
.oo-pullquote .elementor-heading-title::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 3px; border-radius: 3px; background: var(--oo-amber); }

/* Photo en tête de carte : recadrage net, zoom très doux au survol */
.elementor .oo-card-media, .elementor .oo-card-media .elementor-widget-container { overflow: hidden; }
.elementor .oo-card-media img { width: 100%; object-fit: cover; border-radius: 0; transition: transform 1.1s var(--oo-ease); }
.oo-card:hover .oo-card-media img, .oo-card:focus-within .oo-card-media img { transform: scale(1.045); }
.elementor .oo-round, .elementor .oo-round .elementor-widget-container { overflow: hidden; border-radius: var(--oo-radius); }
.elementor .oo-round img { transition: transform 1.1s var(--oo-ease); }
.elementor .oo-round:hover img { transform: scale(1.03); }

/* Lien fléché (fin de carte) */
.oo-arrow-link .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
.oo-arrow-link .elementor-heading-title::after {
	content: ""; width: 34px; height: 34px; border-radius: 50%; flex: none;
	background: var(--oo-sand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2a3a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 15px no-repeat;
	transition: transform .35s var(--oo-ease), background-color .3s ease;
}
.oo-card:hover .oo-arrow-link .elementor-heading-title::after { transform: translateX(4px); background-color: var(--oo-amber); }
.oo-profile { border-color: var(--oo-line); }

/* Boutons : la flèche avance au survol, l'élévation reste discrète */
.elementor-button .elementor-button-icon { transition: transform .3s var(--oo-ease); }
.elementor-button:hover .elementor-button-icon, .elementor-button:focus-visible .elementor-button-icon { transform: translateX(3px); }
.elementor-widget-button .elementor-button { transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s var(--oo-ease), box-shadow .25s ease; }
.elementor-widget-button .elementor-button:hover { transform: translateY(-1px); }

/* Liens de texte : soulignement fin qui se dessine */
.elementor-widget-text-editor a:not(.elementor-button) { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; transition: background-size .35s var(--oo-ease), color .2s ease; }
.elementor-widget-text-editor a:not(.elementor-button):hover { background-size: 0 1px; background-position: 100% 100%; }

/* Témoignage phare */
.oo-quote.oo-on-dark .elementor-testimonial-content { font-size: 28px; }
@media (max-width: 767px) { .oo-quote.oo-on-dark .elementor-testimonial-content { font-size: 21px; } }

/* Header : un peu plus d'air, logo mieux proportionné */
.oo-logo img { max-height: 64px; }
.hs-is-scrolled .oo-logo img { max-height: 50px; }
@media (max-width: 991px) { .oo-logo img { max-height: 52px; } }

/* Sélection de texte aux couleurs de la marque */
::selection { background: rgba(240, 162, 2, .28); color: var(--oo-ink); }

/* Écrans tactiles en mise en page desktop (tablette en paysage) : pas de survol,
   donc un chevron séparé ouvre le sous-menu, le libellé reste un lien vers la page. */
@media (min-width: 992px) and (hover: none) {
	.hs-site-header .hs-nav .hs-nav__list > li > button.hs-sub-toggle,
	.hs-site-header .hs-nav .hs-nav__list > li > button.hs-sub-toggle:hover,
	.hs-site-header .hs-nav .hs-nav__list > li > button.hs-sub-toggle:focus {
		display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; margin-left: -8px; vertical-align: middle;
	}
	.hs-site-header .hs-nav .hs-sub-toggle svg { width: 11px; height: 11px; transition: transform .25s ease; }
	.hs-site-header .hs-nav li.is-open > .hs-sub-toggle svg { transform: rotate(180deg); }
	.hs-nav__list > li > a .hs-nav__chevron { display: none; }
	.hs-nav__list > li:hover:not(.is-open) > .sub-menu { opacity: 0; visibility: hidden; }
}

/* ---------- Vidéo YouTube [hs_video] ---------- */
.hs-video {
	position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden;
	border-radius: var(--oo-radius); background: var(--oo-ink);
	box-shadow: 0 24px 48px rgba(15, 42, 58, .14);
}
.hs-video iframe, .hs-video__facade, .hs-video__poster { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; }
.elementor .hs-video img.hs-video__poster { object-fit: cover; border-radius: 0; max-width: none; transition: transform 1.1s var(--oo-ease); }
.hs-video__facade { display: block; cursor: pointer; }
.hs-video__facade::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 42, 58, .05) 30%, rgba(15, 42, 58, .45)); transition: background-color .3s ease; }
.hs-video__play {
	position: absolute; z-index: 1; left: 50%; top: 50%; width: 84px; height: 84px; margin: -42px 0 0 -42px; border-radius: 50%;
	background: var(--oo-amber) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230f2a3a' d='M8 5.5v13a1 1 0 0 0 1.5.86l10.4-6.5a1 1 0 0 0 0-1.72L9.5 4.64A1 1 0 0 0 8 5.5z'/%3E%3C/svg%3E") 55% 50% / 30px no-repeat;
	box-shadow: 0 10px 30px rgba(240, 162, 2, .45), 0 0 0 10px rgba(255, 255, 255, .18);
	transition: transform .35s var(--oo-ease), box-shadow .35s ease;
}
.hs-video__facade:hover .hs-video__play, .hs-video__facade:focus-visible .hs-video__play { transform: scale(1.07); box-shadow: 0 12px 34px rgba(240, 162, 2, .5), 0 0 0 14px rgba(255, 255, 255, .22); }
.hs-video__facade:hover .hs-video__poster { transform: scale(1.03); }
.hs-video__facade:focus-visible { outline: 3px solid var(--oo-amber); outline-offset: -6px; border-radius: var(--oo-radius); }
.hs-video__note { margin: 12px 0 0; font-size: 13px; line-height: 1.5; color: var(--oo-text); opacity: .85; }
.oo-on-dark .hs-video__note { color: #c9d6db; }
@media (max-width: 767px) { .hs-video__play { width: 64px; height: 64px; margin: -32px 0 0 -32px; background-size: 24px; } }

/* Emplacement vide (URL non renseignée) */
.hs-video--empty::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(15, 42, 58, .72); }
.hs-video--empty .hs-video__poster { filter: grayscale(.35); }
.hs-video__empty {
	position: absolute; z-index: 2; inset: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
	padding: 20px; border: 1.5px dashed rgba(247, 198, 92, .55); border-radius: calc(var(--oo-radius) - 8px); text-align: center;
}
.hs-video__icon { width: 58px; height: 58px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .5);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f7c65c' d='M8 5.5v13a1 1 0 0 0 1.5.86l10.4-6.5a1 1 0 0 0 0-1.72L9.5 4.64A1 1 0 0 0 8 5.5z'/%3E%3C/svg%3E") 56% 50% / 22px no-repeat; }
.hs-video__empty-title { margin: 0; font-family: var(--oo-serif); font-size: 22px; line-height: 1.3; color: #fff; }
.elementor-widget-shortcode .hs-video__admin, .hs-video__admin { max-width: 32em; font-size: 13px; line-height: 1.5; color: #f7c65c; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { .hs-video__empty { inset: 8px; gap: 8px; } .hs-video__icon { width: 44px; height: 44px; background-size: 18px; } .hs-video__empty-title { font-size: 18px; } .hs-video__admin { font-size: 12px; } }
.oo-video { width: 100%; }

/* Carte des chiffres du hero : au premier plan, sur fond blanc opaque (elle chevauche la photo) */
.elementor .e-con.oo-float { position: relative; z-index: 3; background-color: #fff; }
@media (max-width: 767px) { .oo-float .elementor-widget-text-editor { white-space: normal; } }
.oo-float .elementor-widget-text-editor { flex: 1 1 0 !important; min-width: 0; }

/* ---------- Slider de section (accueil, sous le hero) : containers Elementor + comportement dans horizon.js ----------
   Structure : .oo-slider (section) > .oo-slider__track (piste) > .oo-slide (diapositives). */
.oo-slider { position: relative; }
.elementor .e-con.oo-slider__track { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
.oo-slider__track > .oo-slide { flex: 0 0 100% !important; width: 100% !important; max-width: 100%; scroll-snap-align: start; scroll-snap-stop: always; }
.elementor .oo-slider.is-enhanced .e-con.oo-slider__track { scrollbar-width: none; }
.oo-slider.is-enhanced .oo-slider__track::-webkit-scrollbar { display: none; }
.oo-slider.is-enhanced .oo-slide > .e-con-inner { transition: opacity .5s ease, transform .6s var(--oo-ease); }
.oo-slider.is-enhanced .oo-slide:not(.is-active) > .e-con-inner { opacity: .35; transform: translateY(8px); }
@media (prefers-reduced-motion: reduce) { .oo-slider.is-enhanced .oo-slide > .e-con-inner { transition: none; transform: none !important; opacity: 1 !important; } }

/* Navigation : alignée sur la grille du site, en bas de la section */
.oo-slider-nav {
	position: absolute; z-index: 3; left: 50%; bottom: 40px; transform: translateX(-50%);
	display: flex; align-items: center; gap: 12px; width: 100%; max-width: 1240px; padding: 0 20px; box-sizing: border-box; pointer-events: none;
}
.oo-slider-nav > * { pointer-events: auto; }
.oo-slider-dots { display: flex; gap: 8px; margin-right: auto; }
.oo-slider .oo-slider-nav button { font: inherit; text-transform: none; letter-spacing: 0; box-shadow: none; }
.oo-slider .oo-slider-nav button.oo-slider-dot {
	width: 28px; height: 8px; min-height: 0; padding: 0; border: 0; border-radius: 999px; background: var(--oo-line); cursor: pointer;
	transition: width .35s var(--oo-ease), background-color .3s ease;
}
.oo-slider .oo-slider-nav button.oo-slider-dot:hover { background: #d4c8b6; }
.oo-slider .oo-slider-nav button.oo-slider-dot[aria-current="true"] { width: 52px; background: var(--oo-amber); }
.oo-slider .oo-slider-nav button.oo-slider-btn,
.oo-slider .oo-slider-nav button.oo-slider-btn:hover,
.oo-slider .oo-slider-nav button.oo-slider-btn:focus {
	display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0;
	border: 1px solid var(--oo-line); border-radius: 50%; color: var(--oo-ink); cursor: pointer;
}
.oo-slider .oo-slider-nav button.oo-slider-btn { background: #fff; transition: background-color .25s ease, color .25s ease, transform .25s var(--oo-ease); }
.oo-slider .oo-slider-nav button.oo-slider-btn:hover { background: var(--oo-ink); color: #fff; transform: translateY(-1px); }
.oo-slider-btn svg { width: 18px; height: 18px; }
.oo-slider-count { min-width: 3.2em; font-size: 14px; font-variant-numeric: tabular-nums; color: var(--oo-text); text-align: center; }
@media (max-width: 767px) {
	.oo-slider-nav { bottom: 28px; gap: 8px; }
	.oo-slider .oo-slider-nav button.oo-slider-btn, .oo-slider .oo-slider-nav button.oo-slider-btn:hover, .oo-slider .oo-slider-nav button.oo-slider-btn:focus { width: 44px; height: 44px; }
	.oo-slider-count { display: none; }
}

/* Petites photos rondes des personnes accompagnées */
.oo-avatars .elementor-widget-image { margin-left: -10px; }
.oo-avatars .elementor-widget-image:first-child { margin-left: 0; }
.elementor .oo-avatar img { width: 56px !important; height: 56px !important; border-radius: 50%; object-fit: cover; border: 3px solid var(--oo-sand); }
.oo-avatars .elementor-widget-image { margin-left: -14px; }

/* Dans l'éditeur Elementor : diapositives l'une sous l'autre pour les modifier facilement */
.elementor-editor-active .elementor .e-con.oo-slider__track { flex-direction: column !important; overflow: visible; }
.elementor-editor-active .oo-slider__track > .oo-slide { flex-basis: auto !important; }
.elementor-editor-active .oo-slider__track > .oo-slide + .oo-slide { border-top: 2px dashed var(--oo-amber); }

/* ---------- Modèle de diapositive : photo + mention verticale | texte ---------- */
/* Mention verticale (ex. « 10+ ans d'expérience ») lue de bas en haut, à gauche de la photo */
.oo-vlabel .elementor-heading-title {
	writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;
	font-family: var(--oo-serif); font-weight: 500; font-size: 34px; line-height: 1; letter-spacing: -.3px; color: var(--oo-ink);
}
.oo-vlabel .elementor-heading-title em { font-style: italic; color: var(--oo-teal); }
@media (max-width: 767px) {
	.oo-vlabel .elementor-heading-title { writing-mode: horizontal-tb; transform: none; font-size: 22px; }
}
/* Photo de diapositive : recadrage net, arrondi du système */
.elementor .oo-slide-photo img { border-radius: var(--oo-radius); object-fit: cover; box-shadow: 0 24px 48px rgba(15, 42, 58, .14); }

/* Lien d'action secondaire avec pastille ronde (lecture vidéo ou flèche) */
.oo-play-link .elementor-heading-title a { display: inline-flex; align-items: center; gap: 14px; color: var(--oo-ink); text-decoration: none; }
.oo-play-link .elementor-heading-title a::before {
	content: ""; flex: none; width: 54px; height: 54px; border-radius: 50%; border: 1.5px solid var(--oo-amber);
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f0a202' d='M8 5.5v13a1 1 0 0 0 1.5.86l10.4-6.5a1 1 0 0 0 0-1.72L9.5 4.64A1 1 0 0 0 8 5.5z'/%3E%3C/svg%3E") 56% 50% / 18px no-repeat;
	transition: background-color .3s ease, transform .3s var(--oo-ease), box-shadow .3s ease;
}
.oo-play-link.oo-play-link--arrow .elementor-heading-title a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f0a202' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); background-position: 50% 50%;
}
.oo-play-link .elementor-heading-title a:hover::before, .oo-play-link .elementor-heading-title a:focus-visible::before {
	background-color: rgba(240, 162, 2, .14); transform: scale(1.06); box-shadow: 0 0 0 6px rgba(240, 162, 2, .12);
}
.oo-play-link .elementor-heading-title a:hover { color: var(--oo-teal); }
/* La photo occupe l'espace restant à côté de la mention verticale, sans déborder sur la gouttière */
.oo-slide .elementor-widget-image.oo-slide-photo { flex: 1 1 0 !important; min-width: 0; }
@media (max-width: 767px) { .oo-slide .elementor-widget-image.oo-slide-photo { flex-basis: auto !important; width: 100%; } }
/* Textes des diapositives : peuvent rétrécir et revenir à la ligne à côté d'un visuel (ex. preuve sociale sur mobile) */
.oo-slide .elementor-widget-text-editor { flex-shrink: 1 !important; min-width: 0; }
@media (max-width: 991px) { .oo-slide .e-con.e-grid { row-gap: 40px !important; } }
@media (max-width: 767px) { .oo-slide .e-con.e-grid { row-gap: 32px !important; } }

/* Logo du header : la largeur est réglée dans le widget Image (Elementor), la hauteur suit ses proportions.
   Au défilement, léger rétrécissement proportionnel (mise à l'échelle), jamais de déformation ni de recadrage. */
.elementor .oo-logo img { height: auto; max-height: none; object-fit: contain; transform-origin: left center; transition: transform .3s var(--oo-ease); }
.hs-is-scrolled .elementor .oo-logo img { max-height: none; transform: scale(.9); }

/* Logo du footer : largeur réglée dans le widget Image, hauteur proportionnelle (pas de recadrage).
   Fond blanc conservé pour la lisibilité du logo (texte bleu nuit) sur le footer sombre, en cartouche plus discret. */
.elementor .oo-footer-logo img { box-sizing: border-box; height: auto; max-height: none; object-fit: contain; padding: 8px 12px; border-radius: 12px; background: #fff; }

/* Carrousel de l accueil sur mobile : les actions juste après le texte d'introduction, avant la liste et la preuve sociale */
@media (max-width: 767px) {
	.oo-slider--home .oo-slide-actions { order: 1; margin-top: 0 !important; }
	.oo-slider--home .oo-slide-points { order: 2; }
	.oo-slider--home .oo-slide-proof { order: 3; }
}
/* Très petits écrans (iPhone SE…) : titre et introduction du carrousel un peu resserrés pour garder l'action principale à l'écran */
@media (max-width: 380px) {
	.oo-slider--home .oo-slide .elementor-heading-title { font-size: 28px !important; }
	.oo-slider--home .oo-slide .oo-lead, .oo-slider--home .oo-slide .oo-lead p { font-size: 16px !important; }
}

/* Preuve sociale des diapositives : grille simple « photos | texte » (fiable sur Safari iOS, contrairement
   aux conteneurs flex imbriqués) ; le texte reste toujours dans sa colonne et revient à la ligne normalement. */
.elementor .e-con.oo-proof { display: grid !important; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 18px; }
.elementor .e-con.oo-proof > .e-con, .elementor .e-con.oo-proof > .elementor-widget { width: auto !important; max-width: 100%; min-width: 0; flex: none !important; margin: 0; }
.elementor .e-con.oo-avatars { display: flex !important; flex-wrap: nowrap; width: auto !important; }
/* Lien à pastille ronde : ne dépasse jamais sa colonne ; sur écran étroit, le libellé passe à la ligne à côté de la pastille */
.oo-play-link, .oo-play-link .elementor-heading-title { max-width: 100%; min-width: 0; }
.oo-play-link .elementor-heading-title a { max-width: 100%; }

/* ---------- Prise de rendez-vous Calendly [hs_calendly] ---------- */
.hs-calendly { overflow: hidden; border: 1px solid var(--oo-line); border-radius: var(--oo-radius); background: var(--oo-linen); box-shadow: 0 24px 48px rgba(15, 42, 58, .08); }
.hs-calendly__frame { display: block; width: 100%; height: 720px; border: 0; }
@media (max-width: 767px) { .hs-calendly__frame { height: 900px; } }
.hs-calendly__fallback { margin: 14px 0 0; font-size: 14px; color: var(--oo-text); text-align: center; }
.hs-calendly__fallback a { color: var(--oo-teal); }
.hs-calendly__admin a { color: var(--oo-teal); text-decoration: underline; }

/* ---------- Bannière d'accueil (photo + voile bleu nuit, contenu centré) ---------- */
.oo-banner .oo-banner-lead { max-width: 44em; margin-inline: auto; }
.oo-banner .elementor-heading-title { text-wrap: balance; }
.oo-banner .oo-eyebrow .elementor-heading-title { justify-content: center; }

/* ---------- Bannière de l'accueil (photo en fond + voile encre) ---------- */
.oo-banner .oo-eyebrow .elementor-heading-title::after { content: ""; flex: none; width: 24px; height: 2px; border-radius: 2px; background: currentColor; }
.oo-banner .elementor-heading-title em { color: #f7c65c; }
.oo-banner .oo-banner-lead { max-width: 46em; margin-inline: auto; }
.oo-banner .oo-banner-lead, .oo-banner .oo-banner-lead p { color: #e3ebee; }
@media (max-width: 767px) { .oo-banner .oo-banner-lead, .oo-banner .oo-banner-lead p { font-size: 17px; } }

/* ---------- Bannière d'accueil en slider (.oo-slider--banner) : navigation sur fond sombre ---------- */
.oo-slider--banner .oo-slider-nav { top: 0; bottom: 0; transform: translateX(-50%); align-items: flex-end; justify-content: center; padding-bottom: 22px; }
.oo-slider--banner .oo-slider-dots { margin-right: 0; }
.oo-slider--banner .oo-slider-count { display: none; }
.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-dot { background: rgba(255, 255, 255, .35); }
.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-dot:hover { background: rgba(255, 255, 255, .6); }
.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-dot[aria-current="true"] { background: var(--oo-amber); }
.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-btn,
.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-btn:focus { border-color: rgba(255, 255, 255, .35); background: rgba(15, 42, 58, .35); color: #fff; }
.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-btn:hover { border-color: #fff; background: #fff; color: var(--oo-ink); }
/* Pause discrète à côté des points ; flèches sur les côtés, à mi-hauteur (desktop et tablette) */
.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-pause { width: 36px; height: 36px; margin-left: 10px; }
@media (min-width: 768px) {
	.oo-slider.oo-slider--banner .oo-slider-nav .oo-slider-prev, .oo-slider.oo-slider--banner .oo-slider-nav .oo-slider-next { position: absolute; top: 50%; margin-top: -23px; }
	.oo-slider.oo-slider--banner .oo-slider-nav .oo-slider-prev { left: 20px; }
	.oo-slider.oo-slider--banner .oo-slider-nav .oo-slider-next { right: 20px; }
}
/* Mobile : tout regroupé en bas, cibles tactiles confortables */
@media (max-width: 767px) {
	.oo-slider--banner .oo-slider-nav { padding-bottom: 18px; gap: 10px; }
	.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-btn, .oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-btn:focus,
	.oo-slider.oo-slider--banner .oo-slider-nav button.oo-slider-btn:hover { width: 44px; height: 44px; }
	.oo-slider--banner .oo-slider-prev { order: 1; } .oo-slider--banner .oo-slider-dots { order: 2; } .oo-slider--banner .oo-slider-pause { order: 3; margin-left: 0 !important; } .oo-slider--banner .oo-slider-next { order: 4; }
}
/* La colonne de texte de la bannière ne dépasse jamais la largeur disponible (écrans de 992 à 1080 px) */
.oo-slider--banner .oo-slide > .e-con-inner > .e-con { max-width: 100%; }
/* Petits écrans d'ordinateur (992–1100 px) : titre légèrement réduit pour garder la bannière sous 500 px */
@media (min-width: 992px) and (max-width: 1100px) { .oo-slider--banner .oo-slide h1.elementor-heading-title, .oo-slider--banner .oo-slide h2.elementor-heading-title { font-size: 48px !important; } }

/* Numéro rond à côté d'un titre (ex. thématiques de formation) : le rond garde toujours sa taille,
   le titre voisin peut rétrécir et passer à la ligne (évite le chevauchement sur mobile). */
.elementor .elementor-widget.oo-num { flex-shrink: 0 !important; }
.elementor .elementor-widget.oo-num + .elementor-widget-heading { flex-shrink: 1 !important; min-width: 0; }
