/* =========================================================
   SEFEE — Système de design
   Charte Amphenol : bleu Amphenol #005cb9 + gris, formes angulaires.

   Palette officielle
   - Amphenol Blue  #005cb9  (bleu principal)
   - Logo Grey      #8c8e8d  (texte secondaire)
   - Light Grey     #cfd0d2  (bordures / fonds clairs)
   - Dark Grey      #58585b  (titres / texte)
   ========================================================= */

:root {
	/* Surfaces sombres = bleu Amphenol profond (nuances dérivées du #005cb9) */
	--sefee-navy:       #002a52;
	--sefee-navy-2:     #013a70;

	/* Bleu principal + nuances pour dégradés / formes angulaires */
	--sefee-blue:       #005cb9;
	--sefee-blue-deep:  #00417f;
	--sefee-blue-mid:   #1c6ec6;

	/* Accent : bleu Amphenol sur fond clair ; redéfini en blanc sur fond sombre
	   (voir le bloc « .sefee-header, .sefee-footer, ... » plus bas). */
	--sefee-cyan:       #005cb9;
	--sefee-cyan-600:   #00417f;

	/* Neutres (gris officiels) */
	--sefee-bg:         #f3f5f7;
	--sefee-bg-2:       #e7eaed;
	--sefee-ink:        #58585b;
	--sefee-muted:      #5f6368;
	--sefee-line:       #cfd0d2;
	--sefee-white:      #ffffff;

	--sefee-radius:     10px;
	--sefee-maxw:       1240px;
	--sefee-header-h:   84px;

	--sefee-font-body:    "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--sefee-font-display: "Saira Condensed", "Manrope", system-ui, sans-serif;
}

/* Sur fond sombre, l'accent (ex-cyan) devient blanc et les hover gris très clair.
   Tous les `var(--sefee-cyan)` situés dans ces zones suivent automatiquement. */
.sefee-header,
.sefee-footer,
.sefee-section--navy,
.sefee-hero--dark,
.sefee-implant,
.sefee-map {
	--sefee-cyan:     #ffffff;
	--sefee-cyan-600: #e7eaed;
}

/* ---------- Base ---------- */
* { box-sizing: border-box; }

body.sefee-site {
	margin: 0;
	font-family: var(--sefee-font-body);
	font-size: 17px;
	line-height: 1.65;
	color: var(--sefee-ink);
	background: var(--sefee-white);
	-webkit-font-smoothing: antialiased;
}

.sefee-main { min-height: 40vh; }

img { max-width: 100%; height: auto; }

a { color: var(--sefee-blue); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
	font-family: var(--sefee-font-display);
	color: var(--sefee-ink);
	line-height: 1.05;
	margin: 0 0 .5em;
	font-weight: 700;
	letter-spacing: .2px;
}
h1 { font-size: clamp(2.4rem, 5vw, 4rem); text-transform: none; }
h2 { font-size: clamp(1.8rem, 3.2vw, 2.7rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.7rem); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px,1px,1px,1px);
	white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; }

/* ---------- Boutons ---------- */
.sefee-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	font-family: var(--sefee-font-body);
	font-weight: 700;
	font-size: .82rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .85em 1.6em;
	border-radius: 6px;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .15s ease, background .2s ease, color .2s ease;
	text-decoration: none;
	line-height: 1;
}
.sefee-btn:hover { text-decoration: none; transform: translateY(-1px); }
.sefee-btn--cta   { background: var(--sefee-cyan); color: var(--sefee-navy); }
.sefee-btn--cta:hover { background: var(--sefee-cyan-600); color: var(--sefee-navy); }
.sefee-btn--primary { background: var(--sefee-cyan); color: #fff; }
/* Sur fond sombre, le bouton plein a un fond blanc → texte bleu Amphenol. */
.sefee-section--navy .sefee-btn--primary,
.sefee-hero--dark .sefee-btn--primary { color: var(--sefee-navy); }
.sefee-btn--ghost { background: transparent; color: var(--sefee-white); border-color: rgba(255,255,255,.5); }
.sefee-btn--ghost:hover { background: rgba(255,255,255,.12); color: var(--sefee-white); }
.sefee-btn--outline { background: transparent; color: var(--sefee-blue); border-color: var(--sefee-blue); }
.sefee-btn--block { width: 100%; }

/* ---------- Boutons natifs WordPress (éditeur de blocs) ---------- */
.sefee-main .wp-block-button__link {
	font-family: var(--sefee-font-body);
	font-weight: 700;
	font-size: .82rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .9em 1.7em;
	border-radius: 6px;
	border: 2px solid transparent;
	background: var(--sefee-cyan);
	color: #fff;
	transition: transform .15s ease, background .2s ease, color .2s ease;
}
.sefee-main .wp-block-button__link:hover { background: var(--sefee-cyan-600); color: #fff; transform: translateY(-1px); text-decoration: none; }
/* Sur fond sombre, fond blanc → texte bleu Amphenol. */
.sefee-section--navy .wp-block-button__link,
.sefee-hero--dark .wp-block-button__link,
.sefee-footer .wp-block-button__link { color: var(--sefee-navy); }
.sefee-section--navy .wp-block-button__link:hover,
.sefee-hero--dark .wp-block-button__link:hover,
.sefee-footer .wp-block-button__link:hover { color: var(--sefee-navy); }
/* Variante contour (style natif « Contour » d'un bouton) */
.sefee-main .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--sefee-blue); border-color: var(--sefee-blue); }
.sefee-section--navy .wp-block-button.is-style-outline .wp-block-button__link,
.sefee-hero--dark .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.6); }
/* Variante « ghost » via classe CSS additionnelle « sefee-ghost » */
.sefee-main .wp-block-button.sefee-ghost .wp-block-button__link { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.sefee-main .wp-block-button.sefee-ghost .wp-block-button__link:hover { background: rgba(255,255,255,.12); }

/* Compat blocs natifs : conteneurs pleine largeur + centrage */
.sefee-main .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; }
/* Pas de marge inter-sections : chaque section gère son propre padding.
   (supprime le mince filet blanc entre la vidéo du hero et le bandeau stats) */
.sefee-main > * { margin-top: 0; margin-bottom: 0; }
.sefee-main > .wp-block-group:not(.alignfull),
.sefee-main > .wp-block-columns,
.sefee-main > p, .sefee-main > h2, .sefee-main > ul, .sefee-main > ol {
	max-width: var(--sefee-maxw); margin-left: auto; margin-right: auto; padding-left: 28px; padding-right: 28px;
}

/* ---------- En-tête ---------- */
.sefee-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--sefee-navy);
	box-shadow: 0 1px 0 rgba(255,255,255,.05);
}
.sefee-header__inner {
	max-width: var(--sefee-maxw);
	margin: 0 auto;
	min-height: var(--sefee-header-h);
	padding: 0 28px;
	display: flex;
	align-items: center;
	gap: 24px;
}
.sefee-header__brand { flex: 0 0 auto; margin-right: auto; }

.sefee-logo { display: inline-flex; flex-direction: column; line-height: 1; }
.sefee-logo img { max-height: 48px; width: auto; }
/* Logo SEFEE (fichier bleu) affiché en blanc sur les fonds sombres header/footer. */
.sefee-logo__img { height: 46px; width: auto; display: block; filter: brightness(0) invert(1); }
.sefee-header .custom-logo, .sefee-footer .custom-logo { filter: brightness(0) invert(1); }
.sefee-footer .sefee-logo__img { height: 42px; }
.sefee-logo__word {
	font-family: var(--sefee-font-display);
	font-weight: 700;
	font-size: 2rem;
	color: var(--sefee-white);
	letter-spacing: .5px;
}
.sefee-logo__sub {
	font-size: .58rem;
	letter-spacing: .12em;
	text-transform: lowercase;
	color: rgba(255,255,255,.65);
	margin-top: 2px;
}

/* Navigation */
.sefee-nav { display: flex; align-items: center; }
.sefee-menu {
	display: flex;
	gap: 30px;
	list-style: none;
	margin: 0; padding: 0;
}
.sefee-menu li { position: relative; }
.sefee-menu a {
	color: rgba(255,255,255,.86);
	font-weight: 700;
	font-size: .82rem;
	letter-spacing: .07em;
	text-transform: uppercase;
	padding: 8px 0;
	display: inline-block;
	white-space: nowrap;
}
.sefee-menu a:hover { color: var(--sefee-white); text-decoration: none; }
.sefee-menu .current-menu-item > a,
.sefee-menu .current-menu-parent > a,
.sefee-menu .current-menu-ancestor > a {
	color: var(--sefee-white);
	box-shadow: inset 0 -3px 0 var(--sefee-cyan);
}

/* Sous-menus */
.sefee-menu ul.sub-menu {
	position: absolute;
	top: 100%; left: -16px;
	min-width: 230px;
	background: var(--sefee-navy-2);
	list-style: none;
	margin: 0; padding: 8px 0;
	border-top: 3px solid var(--sefee-cyan);
	box-shadow: 0 18px 40px rgba(0,0,0,.35);
	opacity: 0; visibility: hidden;
	transform: translateY(8px);
	transition: .18s ease;
	z-index: 50;
}
.sefee-menu li:hover > ul.sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.sefee-menu ul.sub-menu a {
	display: block;
	padding: 9px 20px;
	text-transform: none;
	letter-spacing: 0;
	font-size: .92rem;
	box-shadow: none;
}
.sefee-menu ul.sub-menu a:hover { background: rgba(255,255,255,.06); }

/* Actions (langue + CTA) */
.sefee-header__actions { display: flex; align-items: center; gap: 18px; flex: 0 0 auto; }

.sefee-lang { display: flex; list-style: none; margin: 0; padding: 0; border: 1px solid rgba(255,255,255,.25); border-radius: 6px; overflow: hidden; }
.sefee-lang__item a {
	display: block;
	padding: 6px 11px;
	font-weight: 700;
	font-size: .78rem;
	color: rgba(255,255,255,.7);
}
.sefee-lang__item a:hover { text-decoration: none; color: #fff; }
.sefee-lang__item.is-active a { background: var(--sefee-cyan); color: var(--sefee-navy); }

/* Burger (mobile) */
.sefee-burger { display: none; background: none; border: 0; cursor: pointer; width: 38px; height: 32px; padding: 6px; }
.sefee-burger span { display: block; height: 2px; background: #fff; margin: 5px 0; transition: .25s; }

/* ---------- Hero / bandeau de page ---------- */
.sefee-hero {
	position: relative;
	overflow: hidden;
	background: var(--sefee-bg);
	background-image:
		linear-gradient(0deg, rgba(0,92,185,.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0,92,185,.05) 1px, transparent 1px);
	background-size: 56px 56px;
}
.sefee-hero__inner {
	position: relative;
	z-index: 2;
	max-width: var(--sefee-maxw);
	margin: 0 auto;
	padding: 90px 28px;
}
/* Forme angulaire bleue à droite */
.sefee-hero::after {
	content: "";
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: 46%;
	background: linear-gradient(120deg, var(--sefee-blue-deep), var(--sefee-blue-mid));
	clip-path: polygon(28% 0, 100% 0, 100% 100%, 8% 100%);
	z-index: 1;
}
.sefee-hero--light-title h1 { color: var(--sefee-ink); }
.sefee-hero__title { margin: 0; max-width: 60%; position: relative; }
.sefee-hero__sub { margin-top: 18px; max-width: 46%; color: var(--sefee-muted); font-size: 1.05rem; position: relative; }

/* Variante hero sombre (Accueil / Contact) */
.sefee-hero--dark { background: var(--sefee-navy); }
.sefee-hero--dark h1, .sefee-hero--dark .sefee-hero__sub { color: #fff; }
.sefee-hero--dark .sefee-hero__sub { color: rgba(255,255,255,.8); }

/* Heros internes (sans vidéo) : bande moins haute, moins de vide. */
.sefee-hero--dark:not(.sefee-hero--video) .sefee-hero__inner { padding-top: 60px; padding-bottom: 60px; }

/* ---------- Sections génériques ---------- */
.sefee-section { padding: 76px 0; }
.sefee-section--alt { background: var(--sefee-bg); }
.sefee-section--navy { background: var(--sefee-navy); color: #fff; }
.sefee-section--navy h1, .sefee-section--navy h2, .sefee-section--navy h3 { color: #fff; }
.sefee-container { max-width: var(--sefee-maxw); margin: 0 auto; padding: 0 28px; }
.sefee-eyebrow {
	font-family: var(--sefee-font-body);
	font-weight: 700; font-size: .78rem;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--sefee-blue);
	display: block; margin-bottom: 14px;
}
.sefee-section--navy .sefee-eyebrow { color: var(--sefee-cyan); }
.sefee-lead { font-size: 1.12rem; color: var(--sefee-muted); max-width: 60ch; }
.sefee-section--navy .sefee-lead { color: rgba(255,255,255,.82); }

/* ---------- Bandeau de statistiques ---------- */
.sefee-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
	gap: 0;
	background: var(--sefee-navy-2);
	border-radius: var(--sefee-radius);
	overflow: hidden;
}
.sefee-stat { padding: 28px 30px; border-left: 1px solid rgba(255,255,255,.08); }
.sefee-stat:first-child { border-left: 0; }
.sefee-stat__num { font-family: var(--sefee-font-display); font-size: 2rem; font-weight: 700; color: #fff; }
.sefee-stat__label { font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: rgba(255,255,255,.7); margin-top: 6px; }
/* Bloc stats en section claire (ex. Qui sommes-nous) : cellules centrées,
   en accord avec les paragraphes centrés. La home (section navy) n'est pas touchée. */
.sefee-section:not(.sefee-section--navy) .sefee-stat { text-align: center; }

/* ---------- Cartes ---------- */
.sefee-grid { display: grid; gap: 28px; }
.sefee-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sefee-grid--3 { grid-template-columns: repeat(3, 1fr); }

.sefee-card {
	background: #fff;
	border: 1px solid var(--sefee-line);
	border-radius: var(--sefee-radius);
	padding: 32px;
	box-shadow: 0 14px 30px rgba(14,32,56,.05);
}
.sefee-card__media {
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	background: linear-gradient(135deg, var(--sefee-blue-mid), var(--sefee-blue-deep));
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	color: rgba(255,255,255,.7);
	font-size: .8rem; letter-spacing: .08em; text-transform: uppercase;
	text-align: center; gap: 6px; padding: 16px; margin-bottom: 22px;
}

/* Carte « visuel à produire » */
.sefee-placeholder {
	aspect-ratio: 4 / 3;
	border: 1px dashed rgba(0,92,185,.4);
	border-radius: 8px;
	background: var(--sefee-bg-2);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	color: var(--sefee-blue);
	font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; text-align: center; gap: 6px; padding: 16px;
}

/* Grille de logos clients */
.sefee-logos {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: 32px;
}
.sefee-logos__item {
	background: #fff;
	border: 1px solid var(--sefee-line);
	border-radius: var(--sefee-radius);
	box-shadow: 0 14px 30px rgba(14,32,56,.05);
	aspect-ratio: 3 / 2;
	display: flex; align-items: center; justify-content: center;
	padding: 22px;
	transition: transform .32s cubic-bezier(.16,.84,.44,1), box-shadow .32s ease, border-color .32s ease;
}
.sefee-logos__item img {
	max-width: 100%; max-height: 100%; width: auto; height: auto;
	object-fit: contain;
	filter: grayscale(1);
	opacity: .55;
	transition: filter .32s ease, opacity .32s ease;
}
.sefee-logos__item:hover {
	transform: translateY(-5px);
	box-shadow: 0 28px 54px rgba(14,32,56,.16);
	border-color: rgba(0,92,185,.45);
}
.sefee-logos__item:hover img { filter: grayscale(0); opacity: 1; }

/* ---------- Formulaire de contact (Contact Form 7) ---------- */
.sefee-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 24px;
	margin-top: 28px;
	max-width: 680px;
}
.sefee-form p { margin: 0; }
.sefee-form p:has(textarea),
.sefee-form p:has(input[type="submit"]) { grid-column: 1 / -1; }
.sefee-form label {
	display: flex; flex-direction: column; gap: 8px;
	font-family: var(--sefee-font-body); font-weight: 700;
	font-size: .78rem; letter-spacing: .07em; text-transform: uppercase;
	color: var(--sefee-navy);
}
.sefee-form .wpcf7-form-control-wrap { display: block; }
.sefee-form input[type="text"],
.sefee-form input[type="email"],
.sefee-form input[type="tel"],
.sefee-form select,
.sefee-form textarea {
	display: block; width: 100%; box-sizing: border-box;
	font-family: var(--sefee-font-body);
	font-size: 1rem; font-weight: 400; text-transform: none; letter-spacing: normal;
	padding: .85em 1em;
	border: 1px solid var(--sefee-line);
	border-radius: var(--sefee-radius);
	background: #fff;
	color: var(--sefee-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.sefee-form select { appearance: none; cursor: pointer; }
.sefee-form textarea { min-height: 150px; resize: vertical; }
.sefee-form input:focus,
.sefee-form select:focus,
.sefee-form textarea:focus {
	outline: none;
	border-color: var(--sefee-cyan);
	box-shadow: 0 0 0 3px rgba(0,92,185,.15);
}
.sefee-form input[type="submit"] {
	width: auto;
	font-weight: 700; font-size: .82rem;
	letter-spacing: .08em; text-transform: uppercase;
	padding: .9em 1.9em; border-radius: 6px; border: 2px solid transparent;
	background: var(--sefee-cyan); color: #fff; cursor: pointer;
	transition: transform .15s ease, background .2s ease;
}
.sefee-form input[type="submit"]:hover { background: var(--sefee-cyan-600); transform: translateY(-1px); }
.sefee-form .wpcf7-not-valid-tip {
	display: block; margin-top: 6px;
	font-size: .8rem; font-weight: 400; text-transform: none; letter-spacing: normal;
	color: #c0392b;
}
.wpcf7-form .wpcf7-response-output {
	max-width: 680px;
	border-radius: 8px; margin: 18px 0 0; padding: 14px 18px; font-size: .9rem;
	border: 1px solid var(--sefee-line); color: var(--sefee-ink);
}
.wpcf7-form.sent .wpcf7-response-output { border-color: #2e7d32; color: #2e7d32; background: rgba(46,125,50,.08); }
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output { border-color: #c0392b; color: #c0392b; background: rgba(192,57,43,.08); }

/* Section contact : fond teinté + formulaire en carte */
.sefee-section:has(.wpcf7) {
	position: relative;
	background: var(--sefee-bg);
}
.sefee-section:has(.wpcf7) > .sefee-container { position: relative; z-index: 1; }
.wpcf7 {
	position: relative;
	background: #fff;
	border: 1px solid var(--sefee-line);
	border-radius: 16px;
	padding: 40px 44px 36px;
	margin: 32px auto 0;
	max-width: 760px;
	box-shadow: 0 24px 60px rgba(14,32,56,.08);
	overflow: hidden;
}
.wpcf7::before {
	content: "";
	position: absolute; left: 0; top: 0; right: 0; height: 4px;
	background: linear-gradient(90deg, var(--sefee-cyan), var(--sefee-blue-mid));
}
.sefee-form { max-width: none; margin-top: 0; }
@media (max-width: 720px) {
	.wpcf7 { padding: 28px 22px 24px; border-radius: 12px; }
}

/* Liste à puces stylée */
.sefee-checklist { list-style: none; margin: 0; padding: 0; }
.sefee-checklist li { position: relative; padding-left: 26px; margin-bottom: 12px; }
.sefee-checklist li::before {
	content: ""; position: absolute; left: 0; top: .5em;
	width: 12px; height: 12px; background: var(--sefee-cyan); border-radius: 2px;
}

/* ---------- Timeline (Notre histoire) ---------- */
.sefee-timeline { position: relative; max-width: 980px; margin: 0 auto; }
.sefee-timeline::before {
	content: ""; position: absolute; left: 50%; top: 0; bottom: 0;
	width: 2px; background: var(--sefee-cyan); transform: translateX(-50%);
}
.sefee-tl-item { position: relative; width: 50%; padding: 0 40px 38px 0; }
.sefee-tl-item:nth-child(even) { margin-left: 50%; padding: 0 0 38px 40px; }
.sefee-tl-card {
	background: #fff; border: 1px solid var(--sefee-line);
	border-top: 3px solid var(--sefee-blue);
	border-radius: 8px; padding: 20px 24px;
	box-shadow: 0 14px 30px rgba(14,32,56,.06);
}
.sefee-tl-card__year { font-family: var(--sefee-font-display); font-size: 1.7rem; color: var(--sefee-blue); font-weight: 700; }
.sefee-tl-item::after {
	content: ""; position: absolute; top: 14px;
	width: 16px; height: 16px; border-radius: 50%;
	background: var(--sefee-cyan); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--sefee-cyan);
}
.sefee-tl-item::after { right: -8px; }
.sefee-tl-item:nth-child(even)::after { left: -8px; right: auto; }

/* Avion qui suit la ligne de la timeline au scroll (cf. assets/js/sefee.js) */
.sefee-tl-plane {
	position: absolute; left: 50%; top: 0;
	width: 38px; height: 38px;
	display: flex; align-items: center; justify-content: center;
	background: #fff; border: 2px solid var(--sefee-cyan); border-radius: 50%;
	box-shadow: 0 8px 20px rgba(0,42,82,.18);
	color: var(--sefee-cyan);
	z-index: 3; pointer-events: none;
	transform: translate(-50%, -50%);
	transition: top .45s cubic-bezier(.25,.46,.45,.94), opacity .2s ease;
}
.sefee-tl-plane svg { width: 20px; height: 20px; display: block; transform: rotate(-45deg); }
.sefee-tl-item.is-active .sefee-tl-card {
	border-top-color: var(--sefee-cyan);
	box-shadow: 0 14px 40px rgba(0,42,82,.13);
}
.sefee-tl-item.is-active::after {
	background: var(--sefee-blue);
	box-shadow: 0 0 0 3px var(--sefee-cyan);
}

/* ---------- Cartes numérotées (Vision) ---------- */
.sefee-numcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 18px; margin-top: 36px; }
.sefee-numcard {
	position: relative;
	border: 1px solid var(--sefee-line);
	border-radius: var(--sefee-radius);
	padding: 28px 20px 22px;
	background: #fff;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.sefee-numcard:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px rgba(14,32,56,.08);
	border-color: var(--sefee-cyan);
}
.sefee-numcard:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 42px;
	right: -18px;
	width: 18px;
	height: 2px;
	background: var(--sefee-line);
}
.sefee-numcard__n {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--sefee-cyan);
	color: #fff;
	font-family: var(--sefee-font-display);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
}
.sefee-numcard__t { font-family: var(--sefee-font-display); font-size: 1.05rem; font-weight: 700; color: var(--sefee-navy); margin-top: 18px; }

/* ---------- Carte logo Amphenol (page Groupe Amphenol) ---------- */
.sefee-amphenol-card {
	background: var(--sefee-white);
	border: 1px solid var(--sefee-line);
	border-radius: var(--sefee-radius);
	padding: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 14px 30px rgba(14,32,56,.06);
}
.sefee-amphenol-card img { width: 100%; max-width: 420px; height: auto; display: block; }

/* ---------- Formulaire de contact (CF7) ---------- */
.sefee-form { max-width: 720px; }
.sefee-form p { margin: 0 0 18px; }
.sefee-form label { font-weight: 600; font-size: .92rem; color: var(--sefee-ink); }
.sefee-form input[type="text"],
.sefee-form input[type="email"],
.sefee-form select,
.sefee-form textarea {
	width: 100%;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid var(--sefee-line);
	border-radius: 6px;
	font: inherit;
	color: var(--sefee-ink);
	background: #fff;
}
.sefee-form textarea { min-height: 150px; resize: vertical; }
.sefee-form input:focus, .sefee-form select:focus, .sefee-form textarea:focus {
	outline: none; border-color: var(--sefee-blue); box-shadow: 0 0 0 3px rgba(0,92,185,.12);
}
.sefee-form .wpcf7-submit {
	background: var(--sefee-cyan); color: var(--sefee-navy);
	border: 0; border-radius: 6px; cursor: pointer;
	font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
	font-size: .85rem; padding: .95em 2em; width: auto;
}
.sefee-form .wpcf7-submit:hover { background: var(--sefee-cyan-600); }
.wpcf7-response-output { border-radius: 6px; }

/* ---------- Articles (Actualités) ---------- */
.sefee-posts { display: grid; gap: 28px; }
.sefee-post { display: grid; grid-template-columns: 1.1fr 1.4fr; gap: 0; padding: 0; overflow: hidden; }
.sefee-post__media { min-height: 220px; }
.sefee-post__media .sefee-card__media { margin: 0; height: 100%; border-radius: 0; }
.sefee-post__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sefee-post__body { padding: 30px 32px; }
.sefee-post__title { margin-bottom: 10px; }
.sefee-post__excerpt { color: var(--sefee-muted); }

.sefee-article { max-width: 820px; }
.sefee-article__cover { margin-bottom: 28px; border-radius: var(--sefee-radius); overflow: hidden; }
.sefee-article__content { font-size: 1.06rem; }
.sefee-article__content p { margin: 0 0 1.2em; }
.sefee-article__content h2, .sefee-article__content h3 { margin-top: 1.4em; }

@media (max-width: 720px) {
	.sefee-post { grid-template-columns: 1fr; }
}

/* ---------- Pied de page ---------- */
.sefee-footer { background: #000; color: rgba(255,255,255,.78); }
.sefee-footer__inner {
	max-width: var(--sefee-maxw); margin: 0 auto; padding: 64px 28px 40px;
	display: grid; grid-template-columns: 1.4fr 1fr 1.4fr 1fr; gap: 40px;
}
.sefee-footer__title { color: #fff; font-family: var(--sefee-font-body); font-weight: 800; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 18px; }
.sefee-footer__tagline { font-size: .92rem; color: rgba(255,255,255,.6); margin-top: 16px; max-width: 30ch; }
.sefee-footer__menu, .sefee-footer__list { list-style: none; margin: 0; padding: 0; }
.sefee-footer__menu li, .sefee-footer__list li { margin-bottom: 11px; }
.sefee-footer a, .sefee-footer__menu a { color: rgba(255,255,255,.78); }
.sefee-footer a:hover { color: #fff; text-decoration: none; }
.sefee-footer__list { font-size: .92rem; }
.sefee-footer .sefee-logo__word { font-size: 1.7rem; }
.sefee-footer__bottom {
	border-top: 1px solid rgba(255,255,255,.1);
	padding: 18px 28px; text-align: center; font-size: .82rem; color: rgba(255,255,255,.5);
}

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.sefee-burger { display: block; order: 3; }
	.sefee-nav {
		position: fixed; inset: var(--sefee-header-h) 0 auto 0;
		background: var(--sefee-navy-2);
		flex-direction: column; padding: 16px 28px 28px;
		max-height: 0; overflow: hidden; transition: max-height .3s ease;
	}
	.sefee-nav.is-open { max-height: 80vh; overflow: auto; }
	.sefee-menu { flex-direction: column; gap: 0; width: 100%; }
	.sefee-menu > li { border-bottom: 1px solid rgba(255,255,255,.08); }
	.sefee-menu a { display: block; padding: 14px 0; }
	.sefee-menu ul.sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border-top: 0; padding-left: 14px; background: transparent; }
	.sefee-hero::after { width: 38%; clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%); }
	.sefee-hero__title, .sefee-hero__sub { max-width: 90%; }
	.sefee-numcards { grid-template-columns: repeat(2, 1fr); }
	.sefee-numcard::after { display: none; }
	.sefee-logos { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
	.sefee-header__actions .sefee-btn--cta { display: none; }
	.sefee-stats { grid-template-columns: repeat(2, 1fr); }
	.sefee-grid--2, .sefee-grid--3 { grid-template-columns: 1fr; }
	.sefee-form { grid-template-columns: 1fr; }
	.sefee-timeline::before { left: 8px; }
	.sefee-tl-item, .sefee-tl-item:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 28px 34px; }
	.sefee-tl-item::after, .sefee-tl-item:nth-child(even)::after { left: 0; right: auto; }
	.sefee-tl-plane { left: 8px; width: 30px; height: 30px; }
	.sefee-tl-plane svg { width: 16px; height: 16px; }
	.sefee-numcards { grid-template-columns: 1fr; }
	.sefee-footer__inner { grid-template-columns: 1fr 1fr; }
	.sefee-hero__inner { padding: 60px 24px; }
	.sefee-logos { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.sefee-footer__inner { grid-template-columns: 1fr; }
}

/* =========================================================
   SEFEE — Mouvement & découpage (v1.2)
   Vidéo de hero, reveals au scroll, découpes diagonales,
   compteurs, micro-interactions. GPU-only (transform/opacity).
   ========================================================= */

html { scroll-behavior: smooth; }

/* ---------- Barre de progression de lecture ---------- */
.sefee-progress {
	position: fixed; top: 0; left: 0; height: 3px; width: 0;
	background: linear-gradient(90deg, var(--sefee-blue-mid), var(--sefee-blue));
	z-index: 2000; pointer-events: none;
	box-shadow: 0 0 12px rgba(0,92,185,.6);
}

/* ---------- Hero vidéo (page d'accueil) ---------- */
.sefee-hero--video { background: var(--sefee-navy); background-image: none; }
/* Annule le block-gap de Gutenberg (margin-top auto entre enfants) sur les
   éléments injectés en JS : ils sont en position absolute, le gap les
   décalait visuellement vers le bas et créait une bande non couverte. */
.sefee-hero--video .sefee-hero__video,
.sefee-hero--video .sefee-hero__overlay,
.sefee-hero--video .sefee-hero__cue {
	margin: 0;
}
.sefee-hero--video .sefee-hero__video {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; z-index: 0; background: var(--sefee-navy);
	will-change: transform; pointer-events: none;
}
/* Voile lisibilité (navy translucide + lueur cyan en haut à droite) */
.sefee-hero--video .sefee-hero__overlay {
	position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(to bottom, var(--sefee-navy) 0%, transparent 8%),
		linear-gradient(to bottom, transparent 64%, var(--sefee-navy) 99%),
		linear-gradient(115deg, rgba(0,42,82,.94) 0%, rgba(0,42,82,.74) 44%, rgba(0,65,127,.42) 100%),
		radial-gradient(1100px 560px at 82% -12%, rgba(0,92,185,.24), transparent 60%);
}
/* Trame technique fine par-dessus la vidéo */
.sefee-hero--video .sefee-hero__overlay::before {
	content: ""; position: absolute; inset: 0;
	background-image:
		linear-gradient(0deg, rgba(255,255,255,.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: linear-gradient(115deg, transparent 30%, #000 100%);
	-webkit-mask-image: linear-gradient(115deg, transparent 30%, #000 100%);
}
/* Remplace la forme angulaire pleine par un balayage radar cyan animé */
.sefee-hero--video::after {
	content: ""; position: absolute; inset: 0; right: 0; width: auto; bottom: 0;
	z-index: 1; clip-path: none; pointer-events: none; mix-blend-mode: screen;
	background: linear-gradient(115deg, transparent 0 45%, rgba(255,255,255,.06) 47%, rgba(255,255,255,.20) 50%, rgba(255,255,255,.06) 53%, transparent 55% 100%);
	background-size: 260% 100%; background-position: 130% 0;
	animation: sefee-sweep 8s cubic-bezier(.5,0,.2,1) infinite;
}
@keyframes sefee-sweep {
	0%   { background-position: 135% 0; }
	60%  { background-position: -35% 0; }
	100% { background-position: -35% 0; }
}
/* Liséré cyan animé au scroll dans le hero (indice « défiler ») */
.sefee-hero__cue {
	position: absolute; left: 50%; bottom: 22px; z-index: 3;
	transform: translateX(-50%);
	width: 26px; height: 42px; border: 2px solid rgba(255,255,255,.45);
	border-radius: 14px;
}
.sefee-hero__cue::after {
	content: ""; position: absolute; left: 50%; top: 8px; width: 4px; height: 8px;
	background: var(--sefee-cyan); border-radius: 2px; transform: translateX(-50%);
	animation: sefee-cue 1.8s ease-in-out infinite;
}
@keyframes sefee-cue { 0%,100% { opacity: 0; transform: translate(-50%, 0); } 50% { opacity: 1; transform: translate(-50%, 12px); } }

/* ---------- Titre cinétique (découpe mot à mot) ---------- */
.sefee-hero__title .sefee-word { display: inline-block; }
.sefee-hero__title .sefee-word > span {
	display: inline-block; opacity: 0;
	transform: translateY(.7em) rotate(2deg);
	transition: opacity .6s ease, transform .7s cubic-bezier(.16,.84,.44,1);
	will-change: opacity, transform;
}
.sefee-hero__title.is-in .sefee-word > span { opacity: 1; transform: none; }

/* ---------- Système de reveal au scroll ---------- */
[data-reveal] {
	--ty: 30px; --tx: 0; --sc: 1;
	opacity: 0;
	transform: translate3d(var(--tx), var(--ty), 0) scale(var(--sc));
	transition: opacity .65s cubic-bezier(.16,.84,.44,1), transform .65s cubic-bezier(.16,.84,.44,1);
	will-change: opacity, transform;
}
[data-reveal].is-in { opacity: 1; transform: none; }
[data-reveal="left"]  { --tx: -38px; --ty: 0; }
[data-reveal="right"] { --tx: 38px;  --ty: 0; }
[data-reveal="zoom"]  { --ty: 0; --sc: .92; }

/* Soulignement cyan animé sous les titres de section */
.sefee-section h2[data-reveal]::after {
	content: ""; display: block; width: 0; height: 4px; margin-top: 16px;
	background: linear-gradient(90deg, var(--sefee-cyan), var(--sefee-blue));
	border-radius: 2px;
	transition: width .7s .18s cubic-bezier(.16,.84,.44,1);
}
.sefee-section--navy h2[data-reveal]::after { background: linear-gradient(90deg, var(--sefee-cyan), #fff); }
.sefee-section h2[data-reveal].is-in::after { width: 68px; }

/* ---------- Découpes diagonales entre sections ---------- */
.sefee-section:not(.sefee-section--navy) + .sefee-section--navy,
.sefee-section--navy + .sefee-section:not(.sefee-section--navy) { position: relative; }
.sefee-section:not(.sefee-section--navy) + .sefee-section--navy::before,
.sefee-section--navy + .sefee-section:not(.sefee-section--navy)::before {
	content: ""; position: absolute; left: -1px; right: -1px; top: 0;
	height: clamp(28px, 4vw, 62px); transform: translateY(-99%);
	z-index: 3; pointer-events: none;
}
/* Entrée dans une section navy : biseau navy montant vers la droite */
.sefee-section:not(.sefee-section--navy) + .sefee-section--navy::before {
	background: var(--sefee-navy);
	clip-path: polygon(0 100%, 100% 0, 100% 100%);
}
/* Entrée dans une section claire : biseau clair montant vers la gauche */
.sefee-section--navy + .sefee-section:not(.sefee-section--navy)::before {
	background: #fff;
	clip-path: polygon(0 0, 0 100%, 100% 100%);
}
.sefee-section--navy + .sefee-section--alt::before { background: var(--sefee-bg); }

/* ---------- Lignes « circuit » dans les sections navy ---------- */
.sefee-section--navy { position: relative; }
.sefee-section--navy > .sefee-container { position: relative; z-index: 2; }
.sefee-section--navy::after {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
	background-image:
		repeating-linear-gradient(115deg, transparent 0 38px, rgba(255,255,255,.05) 38px 39px),
		radial-gradient(circle at 12% 20%, rgba(255,255,255,.10), transparent 22%),
		radial-gradient(circle at 88% 82%, rgba(0,92,185,.20), transparent 26%);
	background-size: 240px 240px, 100% 100%, 100% 100%;
	animation: sefee-drift 26s linear infinite;
}
@keyframes sefee-drift { 0% { background-position: 0 0, 0 0, 0 0; } 100% { background-position: 240px 0, 0 0, 0 0; } }

/* ---------- Compteurs animés (stats) ---------- */
.sefee-stat { transition: background .3s ease; }
.sefee-stat:hover { background: rgba(255,255,255,.06); }
.sefee-stat__num { transition: transform .5s cubic-bezier(.16,.84,.44,1); }
.sefee-stat.is-in .sefee-stat__num { animation: sefee-pop .6s cubic-bezier(.16,.84,.44,1) both; }
@keyframes sefee-pop { 0% { transform: translateY(10px) scale(.96); opacity: .4; } 100% { transform: none; opacity: 1; } }

/* ---------- Micro-interactions cartes ---------- */
.sefee-card { position: relative; overflow: hidden; transition: transform .32s cubic-bezier(.16,.84,.44,1), box-shadow .32s ease, border-color .32s ease; }
.sefee-card::before {
	content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%;
	background: linear-gradient(90deg, var(--sefee-cyan), var(--sefee-blue));
	transform: scaleX(0); transform-origin: left; transition: transform .4s cubic-bezier(.16,.84,.44,1);
}
.sefee-card:hover { transform: translateY(-7px); box-shadow: 0 28px 54px rgba(14,32,56,.16); border-color: rgba(0,92,185,.45); }
.sefee-card:hover::before { transform: scaleX(1); }
.sefee-card__media, .sefee-post__img { transition: transform .5s cubic-bezier(.16,.84,.44,1); }
.sefee-card:hover .sefee-card__media, .sefee-post:hover .sefee-post__img { transform: scale(1.05); }

/* Boutons : reflet au survol */
.sefee-main .wp-block-button__link { position: relative; overflow: hidden; }
.sefee-main .wp-block-button__link::after {
	content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
	transform: skewX(-18deg); transition: left .5s ease;
}
.sefee-main .wp-block-button__link:hover::after { left: 140%; }

/* ---------- Respect des préférences de mouvement ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	[data-reveal], .sefee-hero__title .sefee-word > span { opacity: 1 !important; transform: none !important; transition: none !important; }
	.sefee-section h2[data-reveal]::after { width: 68px !important; transition: none !important; }
	.sefee-hero--video::after, .sefee-section--navy::after, .sefee-hero__cue::after,
	.sefee-stat.is-in .sefee-stat__num { animation: none !important; }
	.sefee-progress { display: none; }
	.sefee-card:hover { transform: none; }
}

/* =========================================================
   SEFEE — Compatibilité Elementor (pages éditables)
   Les pages sont reconstruites en sections/colonnes/widgets Elementor
   qui reprennent les classes du thème (sefee-hero, sefee-section,
   sefee-container, sefee-card…). On rétablit ici les gouttières et on
   neutralise les espacements par défaut d'Elementor là où c'est utile.
   ========================================================= */

/* Largeur de contenu : la section reprend .sefee-section (padding 76px 0) ;
   on redonne les gouttières latérales de 28px au conteneur Elementor. */
.sefee-main .elementor-section.sefee-section > .elementor-container {
	padding-left: 28px;
	padding-right: 28px;
}
/* Hero : le padding/centrage est porté par .sefee-hero__inner (colonne). */
.sefee-main .elementor-section.sefee-hero > .elementor-container { max-width: none; padding: 0; }
.sefee-main .elementor-column.sefee-hero__inner { width: 100%; }

/* Colonnes Elementor : neutralise le padding interne par défaut (10px) pour
   coller au design d'origine ; l'espacement vertical des widgets suffit. */
.sefee-main .elementor-widget-wrap { align-content: flex-start; }

/* Cartes décomposées : la classe .sefee-card est portée par la colonne
   Elementor → fond/bordure/ombre/padding. On annule le padding du wrap. */
.sefee-main .elementor-column.sefee-card > .elementor-element-populated,
.sefee-main .elementor-column.sefee-card > .elementor-widget-wrap { padding: 0; }

/* Égalisation hauteur : le wrap remplit toute la colonne (flex-stretch du parent)
   et se distribue en colonne → le dernier widget (bouton) pousse vers le bas. */
.sefee-main .elementor-column.sefee-card > .elementor-widget-wrap {
	height: 100%;
	display: flex !important;
	flex-direction: column;
}
.sefee-main .elementor-column.sefee-card > .elementor-widget-wrap > .elementor-widget:last-child {
	margin-top: auto;
	padding-top: 16px;
}
.sefee-main .sefee-card .elementor-widget:not(:last-child) { margin-bottom: 12px; }
.sefee-main .sefee-card .elementor-widget-heading .elementor-heading-title { margin: 0; }
.sefee-main .sefee-card__media.elementor-widget-image,
.sefee-main .sefee-card .elementor-widget-image { margin-bottom: 18px; }
.sefee-main .sefee-card .elementor-widget-image img { border-radius: 8px; display: block; }

/* Placeholder « photo à produire » remplacé par un widget Image : si aucune
   image n'est encore choisie, l'image par défaut d'Elementor sert de zone. */
.sefee-main .elementor-widget-image img { max-width: 100%; height: auto; }

/* Le widget « Texte » sert souvent de conteneur de contenu riche : pas de
   marge superflue qui casserait l'alignement des sections. */
.sefee-main .elementor-widget-text-editor { line-height: inherit; }

/* =========================================================
   SEFEE — v2.1 : Fixes visuels, couleurs & espacements Elementor
   ========================================================= */

/* ---------- Placeholder Elementor → dégradé SEFEE ---------- */
/* Quand aucune image n'est sélectionnée dans un widget Image,
   Elementor affiche son placeholder.png (icône grise cassée).
   On le remplace par un fond dégradé SEFEE intentionnel. */
.sefee-main .elementor-widget-image img[src*="placeholder.png"],
.sefee-main .elementor-widget-image img[src*="placeholder"] {
	opacity: 0;
	pointer-events: none;
	position: absolute;
}
.sefee-main .elementor-widget-image:has(img[src*="placeholder"]) > .elementor-widget-container {
	position: relative;
	background: linear-gradient(135deg, var(--sefee-blue-mid) 0%, var(--sefee-blue-deep) 55%, var(--sefee-navy) 100%);
	border-radius: 8px;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.sefee-main .elementor-widget-image:has(img[src*="placeholder"]) > .elementor-widget-container::before {
	content: "";
	position: absolute; inset: 0;
	background-image: repeating-linear-gradient(115deg, transparent 0 38px, rgba(255,255,255,.04) 38px 39px);
	background-size: 120px 120px;
}
.sefee-main .elementor-widget-image:has(img[src*="placeholder"]) > .elementor-widget-container::after {
	content: "Photo à venir";
	position: relative; z-index: 1;
	font-family: var(--sefee-font-body);
	font-size: .72rem; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: rgba(255,255,255,.45);
}
.sefee-main .sefee-card .elementor-widget-image:has(img[src*="placeholder"]) > .elementor-widget-container {
	aspect-ratio: 4 / 3;
}

/* ---------- Couleur des headings Elementor (override Kit primary = bleu) ---------- */
/* Le Kit impose var(--e-global-color-primary) = #005cb9 sur tous les heading widgets.
   Spécificité 3 classes → bat le 2 classes du Kit → on rétablit la hiérarchie du thème.

   Règle par défaut : navy sur fond blanc/clair.
   Sections sombres et hero → blanc. */
.sefee-main .elementor-widget-heading .elementor-heading-title {
	color: var(--sefee-navy);
}

/* Hero dark : titre blanc */
.sefee-main .sefee-hero--dark .elementor-widget-heading .elementor-heading-title {
	color: #fff;
}
/* Sections navy : titre blanc */
.sefee-main .sefee-section--navy .elementor-widget-heading .elementor-heading-title {
	color: #fff;
}
/* Cards : titre navy (déjà en place, on consolide) */
.sefee-main .sefee-card .elementor-widget-heading .elementor-heading-title,
.sefee-main .sefee-card h2,
.sefee-main .sefee-card h3 {
	color: var(--sefee-navy);
}
.sefee-main .sefee-card .elementor-heading-title {
	font-family: var(--sefee-font-display);
	font-size: 1.1rem; font-weight: 700; line-height: 1.15;
	margin-bottom: 10px;
}

/* ---------- Texte Elementor dans les contextes sombres ---------- */
/* .sefee-section--navy { color: #fff } existe en thème mais Elementor peut l'écraser. */
.sefee-main .sefee-section--navy .elementor-widget-text-editor,
.sefee-main .sefee-section--navy .elementor-widget-text-editor p,
.sefee-main .sefee-section--navy .elementor-widget-text-editor li {
	color: rgba(255,255,255,.85);
}
.sefee-main .sefee-hero--dark .elementor-widget-text-editor,
.sefee-main .sefee-hero--dark .elementor-widget-text-editor p {
	color: rgba(255,255,255,.82);
}

/* Liens dans les sections sombres */
.sefee-main .sefee-section--navy a:not(.elementor-button):not(.sefee-btn),
.sefee-main .sefee-hero--dark a:not(.elementor-button):not(.sefee-btn) {
	color: rgba(255,255,255,.9);
}
.sefee-main .sefee-section--navy a:not(.elementor-button):not(.sefee-btn):hover,
.sefee-main .sefee-hero--dark a:not(.elementor-button):not(.sefee-btn):hover {
	color: #fff;
}

/* Checklist sur fond sombre */
.sefee-main .sefee-section--navy .sefee-checklist li,
.sefee-main .sefee-hero--dark .sefee-checklist li {
	color: rgba(255,255,255,.85);
}

/* ---------- Espacement Elementor × thème ---------- */
/* IMPORTANT : on ne zero PAS le padding des sections.
   .sefee-section { padding: 76px 0 } du thème fournit le rythme vertical.
   On s'assure seulement qu'Elementor ne rajoute pas de padding supplémentaire
   sur les sections qui portent déjà les classes du thème,
   en fixant les valeurs explicitement (spécificité 2 classes bat le Kit). */
.sefee-main .elementor-section.sefee-section {
	padding-top: 76px;
	padding-bottom: 76px;
}
.sefee-main .elementor-section.sefee-hero {
	padding-top: 0;
	padding-bottom: 0;
}

/* Le padding vertical interne des colonnes Elementor s'ajoute au padding de la section.
   On le remet à 0 pour les colonnes thème (le padding de la section suffit).
   Elementor 4.x : colonnes directement enfants de .elementor-container (pas de .elementor-row). */
.sefee-main .elementor-section.sefee-section > .elementor-container > .elementor-column > .elementor-element-populated {
	padding-top: 0;
	padding-bottom: 0;
}

/* ---------- Inner sections Elementor 4.x — layout de base ---------- */
/* Par défaut : flex nowrap (texte gauche | image droite côte à côte). */
.sefee-main .sefee-section .elementor-inner-section > .elementor-container {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
}

/* ---------- Section --alt : fond gris dans le contexte Elementor ---------- */
.sefee-main .elementor-section.sefee-section--alt {
	background: var(--sefee-bg);
}

/* ---------- Boutons Elementor dans le thème ---------- */
.sefee-main .elementor-widget-button .elementor-button {
	font-family: var(--sefee-font-body);
	font-weight: 700; font-size: .82rem;
	letter-spacing: .08em; text-transform: uppercase;
	border-radius: 6px; padding: .85em 1.9em;
	transition: transform .15s ease, box-shadow .15s ease;
}
.sefee-main .elementor-widget-button .elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(0,92,185,.28);
	text-decoration: none;
}

/* ---------- Grilles HTML dans les widgets HTML Elementor ---------- */
.sefee-main .elementor-widget-html .sefee-grid { display: grid; gap: 28px; }
.sefee-main .elementor-widget-html .sefee-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sefee-main .elementor-widget-html .sefee-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 768px) {
	.sefee-main .elementor-widget-html .sefee-grid--2,
	.sefee-main .elementor-widget-html .sefee-grid--3 { grid-template-columns: 1fr; }
}

/* ---------- Widget spacing dans les sections ---------- */
.sefee-main .elementor-section.sefee-section .elementor-widget-wrap > .elementor-widget {
	margin-bottom: 18px;
}
.sefee-main .elementor-section.sefee-section .elementor-widget-wrap > .elementor-widget:last-child {
	margin-bottom: 0;
}
.sefee-main .elementor-section.sefee-section .elementor-widget-button { margin-top: 8px; }

/* ---------- Hero : pas de gap entre les widgets ---------- */
.sefee-main .elementor-section.sefee-hero .elementor-widget:not(:last-child) {
	margin-bottom: 0;
}

/* ---------- Eyebrow en mobile ---------- */
@media (max-width: 480px) {
	.sefee-eyebrow { font-size: .7rem; letter-spacing: .1em; }
}

/* ---------- Widget texte : paragraphes dans les cards ---------- */
.sefee-main .sefee-card .elementor-widget-text-editor p {
	margin: 0;
	font-size: .95rem;
	color: var(--sefee-ink);
	line-height: 1.6;
}

/* ---------- Liens hero : pas de soulignement ---------- */
.sefee-main .sefee-hero a,
.sefee-main .sefee-hero .elementor-button { text-decoration: none; }

/* ---------- Listes à puces dans les widgets texte Elementor (v2.1.2) ---------- */
/* Elementor et Hello theme peuvent resetter list-style → on réaffirme les bullets */
.sefee-main .elementor-widget-text-editor ul {
	list-style: disc;
	padding-left: 1.5em;
	margin-top: .4em;
	margin-bottom: .4em;
}
.sefee-main .elementor-widget-text-editor ol {
	list-style: decimal;
	padding-left: 1.5em;
	margin-top: .4em;
	margin-bottom: .4em;
}
.sefee-main .elementor-widget-text-editor li {
	margin-bottom: 5px;
}
.sefee-main .elementor-widget-text-editor li:last-child {
	margin-bottom: 0;
}

/* .sefee-checklist : bullets custom cyan (::before) dans widget HTML ou text-editor */
.sefee-main .sefee-checklist {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
.sefee-main .sefee-checklist li {
	position: relative;
	padding-left: 1.4em;
	margin-bottom: 8px;
	color: var(--sefee-ink);
}
.sefee-main .sefee-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .5em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--sefee-cyan, #00b4d8);
}

/* =========================================================
   SEFEE — v2.2 : Cohérence visuelle & polish
   ========================================================= */

/* ── 1. Carte : image flush au bord supérieur de la carte ── */
/* Le widget .sefee-card__media déborde dans le padding de la carte
   via des marges négatives. overflow:hidden + border-radius de la colonne
   produisent les coins arrondis sans border-radius supplémentaire. */
.sefee-main .elementor-column.sefee-card .elementor-widget.sefee-card__media {
	width: calc(100% + 64px);
	margin-top: -32px;
	margin-left: -32px;
	margin-bottom: 20px;
	border-radius: 0;
	overflow: hidden;
	flex-shrink: 0;
}
.sefee-main .elementor-column.sefee-card .elementor-widget.sefee-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	display: block;
}
.sefee-main .elementor-column.sefee-card .elementor-widget.sefee-card__media .elementor-widget-container {
	border-radius: 0;
	height: 100%;
	width: 100%;
}
/* Gradient placeholder dans les cards — flush */
.sefee-main .elementor-column.sefee-card .elementor-widget.sefee-card__media:has(img[src*="placeholder"]) .elementor-widget-container {
	background: linear-gradient(135deg, var(--sefee-blue-mid) 0%, var(--sefee-blue-deep) 55%, var(--sefee-navy) 100%);
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 3 / 2;
}
.sefee-main .elementor-column.sefee-card .elementor-widget.sefee-card__media:has(img[src*="placeholder"]) .elementor-widget-container::after {
	content: "Photo à venir";
	color: rgba(255,255,255,.4);
	font-family: var(--sefee-font-body);
	font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
}
.sefee-main .elementor-column.sefee-card .elementor-widget.sefee-card__media img[src*="placeholder"] {
	display: none;
}

/* ── 2. Sections centrées (.sefee-section--centered) ──────── */
/* Seuls les widgets directs de la colonne principale sont centrés,
   pas les widgets à l'intérieur des inner sections (cards). */
.sefee-main .elementor-section.sefee-section--centered
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title {
	text-align: center;
}
.sefee-main .elementor-section.sefee-section--centered
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-text-editor {
	text-align: center;
}
/* Le trait bleu sous h2 se centre aussi */
.sefee-main .elementor-section.sefee-section--centered
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading h2::after {
	left: 50%;
	transform: translateX(-50%);
}

/* ── 3. Sections navy : contenu direct centré ──────────────── */
/* CTA / bannières navy → texte centré (sauf inner sections = image+text) */
.sefee-main .elementor-section.sefee-section--navy
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title {
	text-align: center;
}
.sefee-main .elementor-section.sefee-section--navy
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-text-editor {
	text-align: center;
}
.sefee-main .elementor-section.sefee-section--navy
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading h2::after {
	left: 50%;
	transform: translateX(-50%);
}
.sefee-main .elementor-section.sefee-section--navy
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-button {
	text-align: center;
}

/* ── 4. Inner sections 2 colonnes texte + image ────────────── */
/* Texte gauche | image droite : centrage vertical + espacement horizontal.
   nowrap est déjà hérité → les 2 colonnes à 50 % tiennent sur une ligne. */
.sefee-main .sefee-section .elementor-inner-section
	> .elementor-container:not(:has(> .elementor-column.sefee-card)) {
	align-items: center;
	column-gap: 48px;
}
/* Sur mobile, on empile verticalement */
@media (max-width: 767px) {
	.sefee-main .sefee-section .elementor-inner-section
		> .elementor-container:not(:has(> .elementor-column.sefee-card)) {
		flex-wrap: wrap;
	}
}
/* Image placeholder standalone (hors card) — style élégant */
.sefee-main .sefee-section .elementor-inner-section
	.elementor-column:not(.sefee-card)
	.elementor-widget-image:has(img[src*="placeholder"]) .elementor-widget-container {
	background: linear-gradient(135deg, var(--sefee-blue-mid) 0%, var(--sefee-blue-deep) 55%, var(--sefee-navy) 100%);
	border-radius: 12px;
	aspect-ratio: 4 / 3;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 12px 40px rgba(0,42,82,.22);
}
.sefee-main .sefee-section .elementor-inner-section
	.elementor-column:not(.sefee-card)
	.elementor-widget-image:has(img[src*="placeholder"]) .elementor-widget-container::after {
	content: "Photo à venir";
	color: rgba(255,255,255,.4);
	font-family: var(--sefee-font-body);
	font-size: .66rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
}
.sefee-main .sefee-section .elementor-inner-section
	.elementor-column:not(.sefee-card)
	.elementor-widget-image img[src*="placeholder"] { opacity: 0; }

/* ── 5. Hiérarchie typographique en sections ───────────────── */
.sefee-main .elementor-section.sefee-section
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading h2.elementor-heading-title {
	font-size: clamp(1.45rem, 2.8vw, 2.05rem);
}
.sefee-main .elementor-section.sefee-section
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading h3.elementor-heading-title {
	color: var(--sefee-navy);
	font-size: clamp(1.05rem, 2vw, 1.4rem);
}

/* ── 5b. Sections texte seul (pas d'inner section) → centrage ── */
/* Heading et eyebrow centrés ; le texte courant reste aligné gauche. */
.sefee-main .elementor-section.sefee-section:not(:has(.elementor-inner-section))
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title {
	text-align: center;
}
.sefee-main .elementor-section.sefee-section:not(:has(.elementor-inner-section))
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading h2::after {
	left: 50%;
	transform: translateX(-50%);
}
/* Eyebrow centré */
.sefee-main .elementor-section.sefee-section:not(:has(.elementor-inner-section))
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-text-editor {
	text-align: center;
}

/* ── 5c. .sefee-lead et .sefee-eyebrow issus de widgets custom ── */
/* Les widgets timeline, carte, shortcode sortent du HTML brut :
   .elementor-widget-text-editor ne les couvre pas.
   On cible .sefee-lead / .sefee-eyebrow dans tous les contextes centrés. */
.sefee-main .elementor-section.sefee-section:not(:has(.elementor-inner-section))
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap .sefee-lead,
.sefee-main .elementor-section.sefee-section--centered
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap .sefee-lead,
.sefee-main .elementor-section.sefee-section--navy
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap .sefee-lead {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.sefee-main .elementor-section.sefee-section:not(:has(.elementor-inner-section))
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap .sefee-eyebrow,
.sefee-main .elementor-section.sefee-section--centered
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap .sefee-eyebrow {
	text-align: center;
}

/* ── 6. Titres de cards — compact et lisible ───────────────── */
.sefee-main .sefee-card .elementor-widget-heading h3.elementor-heading-title,
.sefee-main .sefee-card .elementor-widget-heading h2.elementor-heading-title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
}

/* ── 7. Grille de cards — wrap + gap + centrage horizontal ─── */
.sefee-main .sefee-section .elementor-inner-section
	> .elementor-container:has(> .elementor-column.sefee-card) {
	flex-wrap: wrap;
	gap: 28px;
	justify-content: center;
}
/* Toutes les cards prennent une part égale — écrase le width% inline d'Elementor.
   flex-basis:0 + flex-grow:1 = toutes sur la même ligne si elles tiennent. */
.sefee-main .sefee-section .elementor-inner-section
	> .elementor-container:has(> .elementor-column.sefee-card)
	> .elementor-column.sefee-card {
	flex: 1 1 0 !important;
	min-width: 180px;
}

/* =========================================================
   SEFEE — v2.3 : Titres premium « Trust & Authority »
   Accent azure lumineux (lisible sur navy ET blanc),
   grande présence des titres hero, soulignés de section.
   ========================================================= */

:root {
	/* Dégradé d'accent : bleu Amphenol → azur clair (vit sur navy comme sur blanc) */
	--sefee-accent-grad: linear-gradient(90deg, #2f86d6 0%, #6fb6f5 100%);
	--sefee-accent-bright: #5aa9ff;
}

/* ── A. TITRES HERO — grande présence + barre d'accent ──────── */
.sefee-main .sefee-hero .sefee-hero__inner .elementor-widget-heading {
	position: relative;
	padding-top: 30px;
}
.sefee-main .sefee-hero .sefee-hero__inner .elementor-widget-heading::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 58px;
	height: 4px;
	border-radius: 2px;
	background: var(--sefee-accent-grad);
}
.sefee-main .sefee-hero .sefee-hero__inner .elementor-widget-heading .elementor-heading-title {
	font-family: var(--sefee-font-display);
	font-size: clamp(2.6rem, 5.5vw, 4.2rem);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: .4px;
	margin: 0;
}
/* Hero sombre : titre franchement blanc (5 classes → bat le Kit) */
.sefee-main .sefee-hero--dark .sefee-hero__inner .elementor-widget-heading .elementor-heading-title {
	color: #fff;
}
/* Hero clair : titre navy */
.sefee-main .sefee-hero:not(.sefee-hero--dark) .sefee-hero__inner .elementor-widget-heading .elementor-heading-title {
	color: var(--sefee-navy);
}

/* ── B. TITRES DE SECTION — souligné dégradé statique ──────── */
.sefee-main .elementor-section.sefee-section
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title {
	position: relative;
	font-family: var(--sefee-font-display);
	font-weight: 700;
	letter-spacing: .3px;
	padding-bottom: 20px;
	margin-bottom: 4px;
}
.sefee-main .elementor-section.sefee-section
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 54px;
	height: 3px;
	border-radius: 2px;
	background: var(--sefee-accent-grad);
}
/* Variante centrée : souligné centré */
.sefee-main .elementor-section.sefee-section--centered
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title::after,
.sefee-main .elementor-section.sefee-section--navy
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title::after {
	left: 50%;
	transform: translateX(-50%);
}
/* h3 de section : pas de souligné (réservé aux h2 de tête de section) */
.sefee-main .elementor-section.sefee-section
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading h3.elementor-heading-title {
	padding-bottom: 0;
}
.sefee-main .elementor-section.sefee-section
	> .elementor-container > .elementor-column
	> .elementor-widget-wrap > .elementor-widget-heading h3.elementor-heading-title::after {
	display: none;
}

/* ── C. EYEBROW — marqueur de précision (trait + label) ────── */
.sefee-main .sefee-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--sefee-blue);
}
.sefee-main .sefee-eyebrow::before {
	content: "";
	width: 26px;
	height: 2px;
	background: var(--sefee-accent-grad);
	border-radius: 2px;
	flex-shrink: 0;
}
.sefee-main .sefee-section--navy .sefee-eyebrow,
.sefee-main .sefee-hero--dark .sefee-eyebrow {
	color: var(--sefee-accent-bright);
}

/* ── D. Titres dans inner-sections (sous-blocs 2 colonnes) ──── */
/* Ces h2/h3 n'ont pas de souligné (sinon trop chargé) mais gardent
   la police display et la couleur de contexte. */
.sefee-main .sefee-section .elementor-inner-section
	.elementor-widget-heading .elementor-heading-title {
	font-family: var(--sefee-font-display);
	font-weight: 700;
	letter-spacing: .3px;
}


/* ═══════════════════════════════════════════════════════════════
 * GALERIE CERTIFICATIONS
 * ═══════════════════════════════════════════════════════════════ */

/* ── Grille ───────────────────────────────────────────────────── */
.sefee-cert-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
@media (max-width: 1024px) {
	.sefee-cert-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.sefee-cert-gallery { grid-template-columns: 1fr; }
}

/* ── Carte ────────────────────────────────────────────────────── */
.sefee-cert-card {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0,42,82,.07);
	cursor: pointer;
	transition: transform .28s cubic-bezier(.25,.46,.45,.94), box-shadow .28s ease, border-color .28s ease;
	overflow: hidden;
	border: 2px solid transparent;
	outline: none;
	position: relative;
}
.sefee-cert-card::before {
	content: '';
	position: absolute; top: 0; left: 0; right: 0;
	height: 4px;
	background: var(--sefee-blue);
	transition: background .28s ease;
}
.sefee-cert-card:hover,
.sefee-cert-card:focus-visible {
	transform: translateY(-8px);
	box-shadow: 0 20px 48px rgba(0,42,82,.18);
	border-color: var(--sefee-cyan);
}
.sefee-cert-card:hover::before,
.sefee-cert-card:focus-visible::before {
	background: var(--sefee-cyan);
}

/* ── Zone image ───────────────────────────────────────────────── */
.sefee-cert-img {
	position: relative;
	height: 210px;
	display: flex; align-items: center; justify-content: center;
	padding: 28px 24px 20px;
	background: #fafbfc;
	overflow: hidden;
}
.sefee-cert-img img {
	max-width: 100%; max-height: 100%;
	object-fit: contain;
	display: block;
	transition: transform .35s ease;
}
.sefee-cert-card:hover .sefee-cert-img img { transform: scale(1.04); }

/* ── Icône zoom ───────────────────────────────────────────────── */
.sefee-cert-zoom {
	position: absolute; top: 12px; right: 12px;
	width: 34px; height: 34px;
	background: var(--sefee-blue);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	color: #fff;
	opacity: 0;
	transform: scale(.7);
	transition: opacity .22s ease, transform .22s ease;
	pointer-events: none;
}
.sefee-cert-card:hover .sefee-cert-zoom,
.sefee-cert-card:focus-visible .sefee-cert-zoom {
	opacity: 1;
	transform: scale(1);
}
.sefee-cert-zoom svg { width: 17px; height: 17px; }

/* ── Étiquette nom ────────────────────────────────────────────── */
.sefee-cert-name {
	padding: 14px 20px;
	background: #fff;
	font-family: var(--sefee-font-heading, 'Saira Condensed', sans-serif);
	font-weight: 700;
	font-size: .92rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--sefee-navy);
	border-top: 1px solid rgba(0,42,82,.07);
	transition: color .22s;
}
.sefee-cert-card:hover .sefee-cert-name { color: var(--sefee-blue); }

/* ── Lightbox ─────────────────────────────────────────────────── */
.sefee-cert-lb {
	position: fixed; inset: 0; z-index: 9999;
	display: flex; align-items: center; justify-content: center;
	background: rgba(0,10,28,.88);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	opacity: 0; pointer-events: none;
	transition: opacity .3s ease;
}
.sefee-cert-lb.is-open {
	opacity: 1; pointer-events: auto;
}
.sefee-cert-lb__box {
	background: #fff;
	border-radius: 16px;
	max-width: min(90vw, 900px);
	width: 100%;
	max-height: 90vh;
	display: flex; flex-direction: column;
	overflow: hidden;
	box-shadow: 0 40px 100px rgba(0,0,0,.45);
	transform: scale(.9) translateY(20px);
	transition: transform .32s cubic-bezier(.25,.46,.45,.94);
}
.sefee-cert-lb.is-open .sefee-cert-lb__box {
	transform: scale(1) translateY(0);
}
.sefee-cert-lb__header {
	display: flex; align-items: center; gap: 12px;
	padding: 18px 24px;
	background: var(--sefee-navy);
	flex-shrink: 0;
}
.sefee-cert-lb__label {
	flex: 1;
	font-family: var(--sefee-font-heading, 'Saira Condensed', sans-serif);
	font-weight: 700; font-size: 1.05rem;
	letter-spacing: .1em; text-transform: uppercase;
	color: #fff;
}
.sefee-cert-lb__counter {
	font-size: .8rem; color: rgba(255,255,255,.5);
	letter-spacing: .04em;
}
.sefee-cert-lb__close {
	width: 34px; height: 34px;
	border: none; background: rgba(255,255,255,.12);
	border-radius: 50%;
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	color: rgba(255,255,255,.8);
	transition: background .2s, color .2s;
	flex-shrink: 0;
}
.sefee-cert-lb__close:hover { background: var(--sefee-cyan); color: #fff; }
.sefee-cert-lb__close svg { width: 16px; height: 16px; display: block; }
.sefee-cert-lb__body {
	flex: 1; overflow: auto;
	display: flex; align-items: center; justify-content: center;
	padding: 40px;
	background: #f5f7f9;
	min-height: 0;
}
.sefee-cert-lb__body img {
	max-width: 100%; max-height: calc(90vh - 140px);
	object-fit: contain; display: block;
	border-radius: 4px;
	box-shadow: 0 8px 32px rgba(0,42,82,.15);
}
.sefee-cert-lb__nav {
	display: flex; align-items: center; justify-content: space-between;
	padding: 14px 20px;
	border-top: 1px solid rgba(0,42,82,.08);
	flex-shrink: 0;
}
.sefee-cert-lb__btn {
	display: flex; align-items: center; gap: 6px;
	padding: 8px 18px;
	border: 1.5px solid var(--sefee-blue);
	background: transparent;
	color: var(--sefee-blue);
	border-radius: 7px;
	cursor: pointer;
	font-size: .82rem; font-weight: 700;
	letter-spacing: .04em;
	transition: background .2s, color .2s;
}
.sefee-cert-lb__btn:hover { background: var(--sefee-blue); color: #fff; }
.sefee-cert-lb__btn svg { width: 14px; height: 14px; }
@media (max-width: 600px) {
	.sefee-cert-lb__body { padding: 20px; }
	.sefee-cert-lb__btn span { display: none; }
}

/* =========================================================
   SEFEE — v2.9 : Composants décomposés en widgets natifs Elementor
   Les blocs stats / numcards / logos / chips, jadis en widget HTML,
   sont désormais des inner-sections Elementor éditables au clic.
   Convention : classe de grille .sefee-* sur l'inner-section,
   classe d'item .sefee-* sur la colonne. Ce shim mappe le design
   d'origine sur la structure Elementor (qui insère ses propres wrappers).
   ========================================================= */

/* Principe : le CHROME (bordure/fond/padding/ombre/hover) est fourni par la
   classe .sefee-* du thème portée par la COLONNE. Ce shim ne fait que :
   1) transformer le conteneur en grille, 2) neutraliser le padding par défaut
   du wrap Elementor, 3) mapper les textes/images sur la structure Elementor.
   → une seule source de chrome, pas de double bordure. */

/* Conteneurs → grille (neutralise le flex-nowrap générique texte|image). */
.sefee-main .elementor-inner-section.sefee-stats > .elementor-container,
.sefee-main .elementor-inner-section.sefee-numcards > .elementor-container,
.sefee-main .elementor-inner-section.sefee-logos > .elementor-container,
.sefee-main .elementor-inner-section.sefee-chips > .elementor-container,
.sefee-main .elementor-inner-section.sefee-grid > .elementor-container {
	display: grid;
	flex-wrap: wrap;
	align-items: stretch;
}
/* Colonnes = items de grille : hauteur pleine, largeur pilotée par la grille
   (la largeur inline d'Elementor ne doit pas contraindre). */
.sefee-main .elementor-inner-section.sefee-stats > .elementor-container > .elementor-column,
.sefee-main .elementor-inner-section.sefee-numcards > .elementor-container > .elementor-column,
.sefee-main .elementor-inner-section.sefee-logos > .elementor-container > .elementor-column,
.sefee-main .elementor-inner-section.sefee-chips > .elementor-container > .elementor-column,
.sefee-main .elementor-inner-section.sefee-grid > .elementor-container > .elementor-column {
	align-self: stretch;
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	flex: initial;
}
/* Neutralise le padding par défaut (10px) du wrap : le padding du chrome
   thème (sur la colonne) devient l'unique padding interne. */
.sefee-main .elementor-column.sefee-stat > .elementor-element-populated,
.sefee-main .elementor-column.sefee-numcard > .elementor-element-populated,
.sefee-main .elementor-column.sefee-logos__item > .elementor-element-populated,
.sefee-main .elementor-column.sefee-chip > .elementor-element-populated {
	padding: 0;
	height: 100%;
}

/* ---------- STATS ---------- */
.sefee-main .elementor-inner-section.sefee-stats > .elementor-container {
	grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
	gap: 0;
	background: var(--sefee-navy-2);
	border-radius: var(--sefee-radius);
	overflow: hidden;
}
.sefee-main .sefee-stat__num .elementor-heading-title {
	font-family: var(--sefee-font-display);
	font-size: 2rem; font-weight: 700; color: #fff; margin: 0;
}
.sefee-main .sefee-stat__label { margin-top: 6px; }
.sefee-main .sefee-stat__label p {
	font-size: .8rem; text-transform: uppercase; letter-spacing: .07em;
	color: rgba(255,255,255,.7); margin: 0;
}
.sefee-main .sefee-section:not(.sefee-section--navy) .elementor-column.sefee-stat { text-align: center; }

/* ---------- NUMCARDS ---------- */
/* Chrome (.sefee-numcard) + connecteur ::after fournis par le thème sur la colonne. */
.sefee-main .elementor-inner-section.sefee-numcards > .elementor-container {
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 18px;
}
/* Badge numéroté : le cercle EST l'élément titre (fiable quel que soit le
   wrapper du widget heading, dont la largeur n'est pas maîtrisable). */
.sefee-main .sefee-numcard__n { background: none !important; width: auto; height: auto; margin-bottom: 4px; }
.sefee-main .sefee-numcard__n .elementor-heading-title {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border-radius: 50%;
	background: var(--sefee-cyan);
	color: #fff !important;
	font-family: var(--sefee-font-display);
	font-size: 1.15rem; font-weight: 700; line-height: 1; margin: 0;
}
.sefee-main .sefee-numcard__t .elementor-heading-title {
	font-family: var(--sefee-font-display);
	font-size: 1.05rem; font-weight: 700; color: var(--sefee-navy);
	margin: 18px 0 8px;
}
.sefee-main .elementor-column.sefee-numcard .elementor-widget-text-editor p {
	font-size: .9rem; color: var(--sefee-muted); margin: 0;
}

/* ---------- CARD (sefee-grid > sefee-card) ---------- */
/* Chrome fourni par .sefee-card (thème) + shim carte pré-existant (l.927+). */
.sefee-main .elementor-inner-section.sefee-grid--2 > .elementor-container { grid-template-columns: repeat(2, 1fr); gap: 28px; }
.sefee-main .elementor-inner-section.sefee-grid--3 > .elementor-container { grid-template-columns: repeat(3, 1fr); gap: 28px; }

/* ---------- LOGOS ---------- */
/* Chrome de tuile (.sefee-logos__item) fourni par le thème sur la colonne. */
.sefee-main .elementor-inner-section.sefee-logos > .elementor-container {
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.sefee-main .elementor-column.sefee-logos__item > .elementor-element-populated {
	display: flex; align-items: center; justify-content: center;
}
.sefee-main .elementor-column.sefee-logos__item .elementor-widget-image,
.sefee-main .elementor-column.sefee-logos__item .elementor-widget-image .elementor-widget-container { margin: 0; width: 100%; display: flex; align-items: center; justify-content: center; }
.sefee-main .elementor-column.sefee-logos__item .elementor-widget-image img {
	max-width: 100%; max-height: 100%; width: auto; height: auto;
	object-fit: contain;
	filter: grayscale(1); opacity: .55;
	transition: filter .32s ease, opacity .32s ease;
	border-radius: 0;
}
.sefee-main .elementor-column.sefee-logos__item:hover .elementor-widget-image img { filter: grayscale(0); opacity: 1; }

/* ---------- CHIPS (secteurs) ---------- */
/* Colonnes .sefee-numcard.sefee-chip : chrome du thème, mais padding « chip »
   et pas de connecteur ::after. */
.sefee-main .elementor-inner-section.sefee-chips > .elementor-container {
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 16px;
}
.sefee-main .elementor-column.sefee-chip.sefee-numcard { padding: 20px 12px; text-align: center; }
.sefee-main .elementor-column.sefee-chip.sefee-numcard::after { display: none; }
.sefee-main .sefee-chip__t .elementor-heading-title {
	font-size: .88rem; font-weight: 700; color: var(--sefee-navy); margin: 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
	.sefee-main .elementor-inner-section.sefee-stats > .elementor-container { grid-template-columns: repeat(2, 1fr); }
	.sefee-main .elementor-inner-section.sefee-numcards > .elementor-container { grid-template-columns: repeat(2, 1fr); }
	.sefee-main .elementor-inner-section.sefee-logos > .elementor-container { grid-template-columns: repeat(3, 1fr); }
	.sefee-main .elementor-inner-section.sefee-grid--2 > .elementor-container,
	.sefee-main .elementor-inner-section.sefee-grid--3 > .elementor-container { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
	.sefee-main .elementor-inner-section.sefee-numcards > .elementor-container { grid-template-columns: 1fr; }
	.sefee-main .elementor-inner-section.sefee-logos > .elementor-container { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================
   SEFEE — v2.9.1 : retours de relecture client
   ========================================================= */

/* ── Taille logo header / footer ── */
:root { --sefee-header-h: 96px; }
.sefee-header img.custom-logo,
.sefee-header .sefee-logo__img { height: 62px !important; width: auto !important; max-height: none; }
.sefee-footer img.custom-logo,
.sefee-footer .sefee-logo__img { height: 48px !important; width: auto !important; max-height: none; }

/* ── Bandeaux stats : colonnes STRICTEMENT égales ──
   grid-auto-flow:column + grid-auto-columns:1fr force N pistes identiques
   quel que soit le contenu (les intitulés longs ne gonflent plus leur case).
   Vaut pour la variante HTML (.sefee-stats du thème) et la variante
   Elementor convertie (inner-section .sefee-stats). */
.sefee-stats,
.sefee-main .elementor-inner-section.sefee-stats > .elementor-container {
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
}
.sefee-stat { min-width: 0; padding-left: clamp(12px, 2vw, 30px); padding-right: clamp(12px, 2vw, 30px); }
/* Libellés : dans les bandeaux étroits (3 cases sur une demi-colonne),
   les mots longs (« Collaborateurs ») se coupent proprement avec un tiret
   au lieu d'une césure brute, et la caption se resserre un peu. */
.sefee-stat__label,
.sefee-main .sefee-stat__label p {
	font-size: .72rem;
	letter-spacing: .05em;
	hyphens: auto;
	-webkit-hyphens: auto;
}
/* Uniformité visuelle : contenu centré verticalement dans chaque cellule.
   Évite qu'une cellule dont le __num tient sur 1 ligne paraisse "courte"
   vs une cellule dont le __num wrape sur 2 lignes. */
.sefee-main .elementor-column.sefee-stat > .elementor-element-populated {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	text-align: left;
	height: 100%;
	padding: 0;
}
.sefee-main .elementor-inner-section.sefee-stats .elementor-column.sefee-stat {
	text-align: left;
}
/* Num : police condensée – réduire légèrement pour limiter le wrap des
   intitulés longs ("France + International", "Groupe Amphenol"). */
.sefee-main .sefee-stat__num .elementor-heading-title {
	font-size: 1.65rem !important;
	line-height: 1.1;
}
@media (max-width: 768px) {
	/* En mobile on repasse en 2 colonnes par ligne. */
	.sefee-stats,
	.sefee-main .elementor-inner-section.sefee-stats > .elementor-container {
		grid-auto-flow: row;
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ── Cartes : hauteurs égales dans une même rangée ──
   Certaines sections Elementor sont enregistrées avec « Position du contenu :
   haut » (align-items:flex-start sur le conteneur) → colonnes non étirées.
   On force l'étirement dès qu'une rangée contient des cartes ; le bouton
   reste calé en bas via la règle margin-top:auto existante. */
.sefee-main .elementor-container:has(> .elementor-column.sefee-card) {
	align-items: stretch;
}
.sefee-main .elementor-container > .elementor-column.sefee-card { align-self: stretch; }

/* ── « Nos implantations » : chapeau lisible sur fond navy ── */
.sefee-implant .sefee-lead { color: rgba(255,255,255,.85); }

/* ── Inner-sections converties : la classe de grille du thème (.sefee-grid,
   .sefee-stats, .sefee-logos…) est portée par la <section> Elementor, mais la
   grille doit s'appliquer à son .elementor-container (shim v2.9). Sans ce
   reset, le display:grid « historique » du thème s'applique aussi à la
   section elle-même → le conteneur se retrouve dans une piste de grille
   et se compresse (cartes tassées sur 1/3 de la largeur). */
.sefee-main section.elementor-inner-section.sefee-grid,
.sefee-main section.elementor-inner-section.sefee-stats,
.sefee-main section.elementor-inner-section.sefee-logos,
.sefee-main section.elementor-inner-section.sefee-chips,
.sefee-main section.elementor-inner-section.sefee-numcards {
	display: block;
}

/* Colonne pleine largeur : les colonnes générées avec _column_size=0
   (classe elementor-col-0) n'ont aucune règle de largeur Elementor →
   shrink-to-content en flex. Une colonne unique de section = 100 %. */
.sefee-main .elementor-top-column.elementor-col-0:only-child { width: 100%; }

/* ── Chips (catégories) lisibles sur fond navy ──
   Utilisées dans le bandeau « offre » des pages produits. */
.sefee-section--navy .elementor-column.sefee-chip.sefee-numcard {
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.18);
}
.sefee-section--navy .sefee-chip__t .elementor-heading-title { color: #fff; }
/* Bandeau stat unique : la case ne prend pas toute la largeur en desktop. */
.sefee-section--centered .elementor-inner-section.sefee-stats > .elementor-container { max-width: 720px; margin: 0 auto 26px; }

/* ── Checklists : plus de double puce ──
   La règle générique v2.1.2 (list-style:disc sur les ul des widgets texte)
   écrasait le list-style:none de .sefee-checklist → puce disque + point
   cyan ::before. On ré-affirme la version checklist, plus spécifique. */
.sefee-main .elementor-widget-text-editor ul.sefee-checklist {
	list-style: none;
	padding-left: 0;
}

/* =========================================================
   SEFEE — v2.10 : corps des pages produits fidèle aux maquettes
   (bandeau stat + catégories à icônes, cartes à icône ronde et
   checklists cochées, CTA à traits, bandeau partenaire)
   ========================================================= */

/* ── Bibliothèque d'icônes (masques SVG, trait type Lucide) ──
   La classe modificatrice .sefee-ico--* pose la variable --sefee-ico
   sur la colonne ; les pseudo-éléments l'utilisent en mask-image. */
.sefee-ico--chip    { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Crect x='9' y='9' width='6' height='6'/%3E%3Cpath d='M15 2v2M9 2v2M15 20v2M9 20v2M2 15h2M2 9h2M20 15h2M20 9h2'/%3E%3C/svg%3E"); }
.sefee-ico--optical { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cpath d='m8.59 13.51 6.83 3.98M15.41 6.51l-6.82 3.98'/%3E%3C/svg%3E"); }
.sefee-ico--switch  { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='16' y='16' width='6' height='6' rx='1'/%3E%3Crect x='2' y='16' width='6' height='6' rx='1'/%3E%3Crect x='9' y='2' width='6' height='6' rx='1'/%3E%3Cpath d='M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3M12 12V8'/%3E%3C/svg%3E"); }
.sefee-ico--data    { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 5v14a9 3 0 0 0 18 0V5'/%3E%3Cpath d='M3 12a9 3 0 0 0 18 0'/%3E%3C/svg%3E"); }
.sefee-ico--power   { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
.sefee-ico--panel   { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='9' rx='1'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1'/%3E%3Crect x='3' y='16' width='7' height='5' rx='1'/%3E%3C/svg%3E"); }
.sefee-ico--gear    { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.sefee-ico--factory { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z'/%3E%3Cpath d='M17 18h1M12 18h1M7 18h1'/%3E%3C/svg%3E"); }
.sefee-ico--award   { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.477 12.89 17 22l-5-3-5 3 1.523-9.11'/%3E%3C/svg%3E"); }
.sefee-ico--wire    { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 15V6.5A2.5 2.5 0 0 0 16.5 4 2.5 2.5 0 0 0 14 6.5v11A2.5 2.5 0 0 1 11.5 20 2.5 2.5 0 0 1 9 17.5V9'/%3E%3Cpath d='M17 21v-2a2 2 0 0 1 4 0v2M3 5V3M7 5V3M3 5a2 2 0 0 0 4 0'/%3E%3C/svg%3E"); }
.sefee-ico--plane   { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/%3E%3C/svg%3E"); }
.sefee-ico--integr  { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }
.sefee-ico--shield  { --sefee-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }

/* ── Bandeau « offre » (Équipements) : stat + intro + 5 catégories ── */
.sefee-main section.elementor-inner-section.sefee-band { display: block; }
.sefee-main .sefee-section .elementor-inner-section.sefee-band > .elementor-container {
	display: grid;
	grid-template-columns: 1.25fr 1.7fr repeat(5, 1fr);
	align-items: center;
	gap: 0;
	column-gap: 0;
	background: linear-gradient(120deg, #0a2c56 0%, var(--sefee-navy) 55%, #0e3a6e 100%);
	border-radius: 16px;
	padding: 30px 34px;
	overflow: hidden;
	max-width: none;
}
.sefee-main .elementor-inner-section.sefee-band > .elementor-container > .elementor-column {
	width: auto !important; max-width: none !important; min-width: 0; flex: initial;
}
.sefee-main .elementor-inner-section.sefee-band .elementor-element-populated { padding: 0; }
/* Stat : cercle-icône à gauche, 400+ et libellé à droite */
.sefee-main .elementor-column.sefee-band__stat > .elementor-widget-wrap {
	position: relative; padding-left: 78px; min-height: 62px;
	display: flex; flex-direction: column; justify-content: center;
}
.sefee-main .elementor-column.sefee-band__stat > .elementor-widget-wrap::before {
	content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
	width: 60px; height: 60px; border-radius: 50%;
	border: 2px solid rgba(255,255,255,.35);
}
.sefee-main .elementor-column.sefee-band__stat > .elementor-widget-wrap::after {
	content: ''; position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
	width: 30px; height: 30px; background: #fff;
	-webkit-mask: var(--sefee-ico) center / contain no-repeat;
	mask: var(--sefee-ico) center / contain no-repeat;
}
.sefee-main .sefee-band__num .elementor-heading-title {
	font-family: var(--sefee-font-display);
	font-size: 2.3rem; font-weight: 700; color: #5fa8f5; line-height: 1; margin: 0;
}
.sefee-main .elementor-column.sefee-band__stat .elementor-widget-text-editor p {
	color: #fff; font-size: .82rem; font-weight: 600; line-height: 1.35; margin: 4px 0 0;
}
/* Intro */
.sefee-main .elementor-column.sefee-band__intro .elementor-widget-text-editor p {
	color: rgba(255,255,255,.92); font-size: .88rem; line-height: 1.6; margin: 0;
}
.sefee-main .elementor-column.sefee-band__intro > .elementor-widget-wrap { padding: 0 22px 0 26px; }
/* Catégories : icône au-dessus, séparées par un trait vertical */
.sefee-main .elementor-column.sefee-band__cat { border-left: 1px solid rgba(255,255,255,.18); }
.sefee-main .elementor-column.sefee-band__cat > .elementor-widget-wrap {
	display: flex; flex-direction: column; align-items: center; gap: 10px;
	padding: 4px 10px; text-align: center;
}
.sefee-main .elementor-column.sefee-band__cat > .elementor-widget-wrap::before {
	content: ''; width: 30px; height: 30px; background: #fff; flex: 0 0 auto;
	-webkit-mask: var(--sefee-ico) center / contain no-repeat;
	mask: var(--sefee-ico) center / contain no-repeat;
}
.sefee-main .elementor-column.sefee-band__cat .elementor-heading-title {
	color: #fff; font-size: .78rem; font-weight: 600; line-height: 1.35; margin: 0;
}
/* Caption sous le bandeau */
.sefee-main .elementor-widget.sefee-band__caption { margin-top: 22px; }
.sefee-main .elementor-widget.sefee-band__caption p { font-size: .95rem; color: var(--sefee-muted); }

/* ── Cartes à icône ronde (.sefee-icard) ── */
.sefee-main .elementor-column.sefee-icard > .elementor-widget-wrap { position: relative; }
.sefee-main .elementor-column.sefee-icard > .elementor-widget-wrap::before {
	content: ''; position: absolute; top: -2px; left: 0;
	width: 52px; height: 52px; border-radius: 50%;
	background: #e8f1fa;
}
.sefee-main .elementor-column.sefee-icard > .elementor-widget-wrap::after {
	content: ''; position: absolute; top: 11px; left: 13px;
	width: 26px; height: 26px; background: var(--sefee-blue);
	-webkit-mask: var(--sefee-ico) center / contain no-repeat;
	mask: var(--sefee-ico) center / contain no-repeat;
}
.sefee-main .elementor-column.sefee-icard > .elementor-widget-wrap > .elementor-widget-heading:first-child {
	padding-left: 66px; min-height: 52px; display: flex; align-items: center;
}
/* Checklist « cochée » dans les cartes (fidèle maquette) */
.sefee-main .sefee-card .sefee-checklist li::before {
	width: 16px; height: 16px; border-radius: 0; top: .22em;
	background: var(--sefee-blue);
	-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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sefee-main .sefee-card .sefee-checklist li { padding-left: 1.7em; }

/* ── Cartes avec panneau visuel en biais (Faisceaux) ──
   Format paysage : une carte par rangée, large et peu haute. */
.sefee-main .elementor-inner-section.sefee-grid > .elementor-container:has(> .elementor-column.sefee-card--visual) {
	grid-template-columns: 1fr;
	gap: 22px;
}
.sefee-main .elementor-column.sefee-card--visual::after {
	content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 32%;
	background: linear-gradient(160deg, var(--sefee-blue-mid) 0%, var(--sefee-blue-deep) 55%, var(--sefee-navy) 100%);
	clip-path: polygon(24% 0, 100% 0, 100% 100%, 0 100%);
	pointer-events: none;
}
.sefee-main .elementor-column.sefee-card--visual > .elementor-widget-wrap {
	position: relative; z-index: 1; max-width: 66%;
}
/* Checklist sur 2 colonnes dans le format paysage → carte moins haute */
.sefee-main .elementor-column.sefee-card--visual .sefee-checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px 28px;
}
.sefee-main .elementor-column.sefee-card--visual .sefee-checklist li { margin-bottom: 0; }
@media (max-width: 768px) {
	.sefee-main .elementor-column.sefee-card--visual::after { display: none; }
	.sefee-main .elementor-column.sefee-card--visual > .elementor-widget-wrap { max-width: none; }
	.sefee-main .elementor-column.sefee-card--visual .sefee-checklist { grid-template-columns: 1fr; }
}

/* ── CTA centré avec traits décoratifs + icône enveloppe ── */
/* NB : DOM optimisé Elementor → pas de .elementor-widget-container,
   on met le flex sur le widget lui-même. */
.sefee-main .elementor-widget.sefee-cta,
.sefee-main .elementor-widget.sefee-cta .elementor-widget-container {
	display: flex; align-items: center; justify-content: center; gap: 24px;
}
.sefee-main .elementor-widget.sefee-cta::before,
.sefee-main .elementor-widget.sefee-cta::after {
	content: ''; height: 2px; width: clamp(60px, 12vw, 150px); border-radius: 2px;
}
.sefee-main .elementor-widget.sefee-cta::before { background: linear-gradient(90deg, rgba(0,92,185,0), #7fb3e6); }
.sefee-main .elementor-widget.sefee-cta::after  { background: linear-gradient(270deg, rgba(0,92,185,0), #7fb3e6); }
.sefee-main .elementor-widget.sefee-cta p { margin: 0; }
.sefee-btn--mail::before {
	content: ''; width: 17px; height: 17px; flex: 0 0 auto; margin-right: 10px;
	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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ── Bandeau partenaire horizontal (Faisceaux) ── */
.sefee-main .elementor-section.sefee-bandcta > .elementor-container {
	display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px;
	background: linear-gradient(120deg, #0a2c56 0%, var(--sefee-navy) 55%, #0e3a6e 100%);
	border-radius: 16px; padding: 30px 36px;
}
.sefee-main .elementor-section.sefee-bandcta > .elementor-container > .elementor-column {
	width: auto !important; max-width: none !important; min-width: 0; flex: initial;
}
.sefee-main .elementor-section.sefee-bandcta .elementor-element-populated { padding: 0; }
.sefee-main .elementor-column.sefee-bandcta__head > .elementor-widget-wrap {
	position: relative; padding-left: 76px; min-height: 58px;
	display: flex; flex-direction: column; justify-content: center;
}
.sefee-main .elementor-column.sefee-bandcta__head > .elementor-widget-wrap::before {
	content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
	width: 58px; height: 58px; border-radius: 50%;
	border: 2px solid rgba(255,255,255,.35);
}
.sefee-main .elementor-column.sefee-bandcta__head > .elementor-widget-wrap::after {
	content: ''; position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
	width: 28px; height: 28px; background: #fff;
	-webkit-mask: var(--sefee-ico) center / contain no-repeat;
	mask: var(--sefee-ico) center / contain no-repeat;
}
.sefee-main .elementor-column.sefee-bandcta__head .elementor-heading-title {
	color: #fff; font-family: var(--sefee-font-display);
	font-size: 1.3rem; font-weight: 700; margin: 0; text-align: left;
}
.sefee-main .elementor-column.sefee-bandcta__head .elementor-heading-title::after {
	content: ''; display: block; width: 34px; height: 3px; margin-top: 8px;
	background: var(--sefee-cyan, #00b4d8); border-radius: 2px;
}
.sefee-main .elementor-column.sefee-bandcta__txt .elementor-widget-text-editor p {
	color: rgba(255,255,255,.92); font-size: .92rem; line-height: 1.65; margin: 0; text-align: left;
}
.sefee-main .elementor-column.sefee-bandcta__btn > .elementor-widget-wrap {
	border-left: 1px solid rgba(255,255,255,.22); padding-left: 30px;
}
.sefee-main .elementor-column.sefee-bandcta__btn p { margin: 0; }
.sefee-main .sefee-bandcta .sefee-btn--primary {
	background: #fff; color: var(--sefee-blue); border-color: #fff;
}
.sefee-main .sefee-bandcta .sefee-btn--primary:hover { background: #eaf2fb; }

/* ── Responsive bandeaux ── */
@media (max-width: 1080px) {
	.sefee-main .sefee-section .elementor-inner-section.sefee-band > .elementor-container {
		grid-template-columns: repeat(2, 1fr); gap: 20px;
	}
	.sefee-main .elementor-column.sefee-band__cat { border-left: 0; }
	.sefee-main .elementor-column.sefee-band__intro > .elementor-widget-wrap { padding: 0; }
}
@media (max-width: 900px) {
	.sefee-main .elementor-section.sefee-bandcta > .elementor-container { grid-template-columns: 1fr; }
	.sefee-main .elementor-column.sefee-bandcta__btn > .elementor-widget-wrap { border-left: 0; padding-left: 0; }
}
@media (max-width: 560px) {
	.sefee-main .sefee-section .elementor-inner-section.sefee-band > .elementor-container { grid-template-columns: 1fr; }
}

/* =========================================================
   SEFEE — v2.9.2 : retours client (round 2)
   ========================================================= */

/* ── 1. CTA Équipements : espace entre les cartes et le bouton ──
   La section contient inner-section (grille cartes) + widget sefee-cta
   directement en dessous ; sans marge le bouton colle aux cartes. */
.sefee-main .elementor-widget.sefee-cta { margin-top: 40px; }

/* ── 2. Stats : colonnes strictement égales (toutes structures) ──
   Approche :has() = robuste quel que soit le conteneur.
   Problème connu : la règle ligne ~1285 donne column-gap:48px (spécificité 6)
   aux inner-sections sans .sefee-card → on force gap:0 !important.
   Les séparateurs restent assurés par border-left sur les cellules. */
.sefee-main .elementor-container:has(> .elementor-column.sefee-stat) {
	display: grid !important;
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 0 !important;
	background: var(--sefee-navy-2);
	border-radius: var(--sefee-radius);
	overflow: hidden;
	align-items: stretch;
}
.sefee-main .elementor-container:has(> .elementor-column.sefee-stat) > .elementor-column {
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	flex: initial;
	align-self: stretch;
}
/* Séparateurs : border-left sur toutes les cellules sauf la première. */
.sefee-main .elementor-container:has(> .elementor-column.sefee-stat) > .elementor-column.sefee-stat {
	border-left: 1px solid rgba(255,255,255,.10) !important;
}
.sefee-main .elementor-container:has(> .elementor-column.sefee-stat) > .elementor-column.sefee-stat:first-child {
	border-left: none !important;
}
.sefee-main .elementor-container:has(> .elementor-column.sefee-stat) .sefee-stat > .elementor-element-populated {
	padding: 0;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
/* Aussi couvrir les top-level sections avec classe sefee-stats */
.sefee-main section.elementor-section.sefee-stats { display: block; }
.sefee-main .elementor-section.sefee-stats > .elementor-container {
	display: grid !important;
	grid-template-columns: none;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 0;
	align-items: stretch;
	background: var(--sefee-navy-2);
	border-radius: var(--sefee-radius);
	overflow: hidden;
}
.sefee-main .elementor-section.sefee-stats > .elementor-container > .elementor-column {
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	flex: initial;
	align-self: stretch;
}

/* ── 2b. Espacement Équipements / Faisceaux ──
   Deux sections sefee-section consécutives : intro (--centered) + cartes.
   Chaque section a padding:76px → intervalle total = 152px, trop grand.
   Réduit le bas de l'intro et le haut de la section cartes. */
.sefee-main .elementor-section.sefee-section--centered { padding-bottom: 36px; }
.sefee-main .elementor-section.sefee-section--centered + .elementor-section.sefee-section { padding-top: 36px; }

/* ── 3. Chips secteurs d'activité : 3 colonnes + style amélioré ──
   auto-fill minmax(160px,1fr) donne 5+1 avec 6 chips → asymétrique.
   Forcer 3 colonnes → 2 rangées × 3 = symétrique.
   Style : fond dégradé bleu très clair + hover dynamique. */
.sefee-main .elementor-inner-section.sefee-chips > .elementor-container,
.sefee-main section.elementor-section.sefee-chips > .elementor-container {
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 16px;
}
/* Extend display:grid to top-level sefee-chips sections */
.sefee-main section.elementor-section.sefee-chips { display: block; }
.sefee-main section.elementor-section.sefee-chips > .elementor-container { display: grid; }
.sefee-main section.elementor-section.sefee-chips > .elementor-container > .elementor-column {
	width: auto !important; max-width: none !important; min-width: 0; flex: initial;
}
.sefee-main .elementor-column.sefee-chip.sefee-numcard {
	background: #fff;
	border-color: rgba(0, 92, 185, 0.15);
	border-top: 3px solid var(--sefee-blue);
	padding: 24px 18px;
	box-shadow: 0 2px 8px rgba(0, 42, 82, 0.05);
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.sefee-main .elementor-column.sefee-chip.sefee-numcard:hover {
	transform: translateY(-5px);
	box-shadow: 0 14px 32px rgba(0, 42, 82, 0.13);
	border-color: rgba(0, 92, 185, 0.35);
	border-top-color: var(--sefee-cyan);
}

/* ── 4. Numcards : trait de connexion via le container ──
   L'approche ::after per-card (right:-18px) est fragile quand le gap
   ou le padding Elementor diffère du gap natif CSS.
   Solution : le container porte un trait horizontal centré sur les
   badges ; les cartes (fond blanc) l'occultent à l'intérieur de
   chaque case, il n'est visible que dans les intervalles. */
.sefee-main .elementor-inner-section.sefee-numcards > .elementor-container,
.sefee-main .elementor-section.sefee-numcards > .elementor-container {
	position: relative;
	column-gap: 16px !important;
}
/* Trait connecteur retiré : les cartes seules sont plus lisibles. */
.sefee-main .elementor-inner-section.sefee-numcards > .elementor-container::before,
.sefee-main .elementor-section.sefee-numcards > .elementor-container::before {
	display: none;
}
/* Les cartes remontent au-dessus du trait */
.sefee-main .elementor-inner-section.sefee-numcards .elementor-column.sefee-numcard,
.sefee-main .elementor-section.sefee-numcards .elementor-column.sefee-numcard {
	position: relative;
	z-index: 1;
}
/* Supprime l'ancien ::after per-card (remplacé par le ::before container) */
.sefee-main .elementor-inner-section.sefee-numcards .elementor-column.sefee-numcard::after { display: none !important; }
/* Native HTML fallback : trait retiré aussi */
.sefee-numcards { position: relative; }
.sefee-numcards::before { display: none; }
.sefee-numcard { position: relative; z-index: 1; }
.sefee-numcard:not(:last-child)::after { display: none; }

/* ── Responsive v2.9.2 ── */
@media (max-width: 768px) {
	.sefee-main .elementor-section.sefee-stats > .elementor-container {
		grid-auto-flow: row;
		grid-template-columns: repeat(2, 1fr);
	}
	.sefee-main .elementor-inner-section.sefee-chips > .elementor-container,
	.sefee-main section.elementor-section.sefee-chips > .elementor-container {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* =========================================================
   SEFEE — v2.13.0 : logos clients, carrousel, guide graphique
   ========================================================= */

/* ── Logos clients (widget sefee_logos_clients) ──
   Grille centrée : la piste est dimensionnée par --sefee-logos-cols,
   l'ensemble est centré horizontalement et chaque logo est centré
   dans sa tuile. */
.sefee-logos--center {
	display: grid;
	grid-template-columns: repeat(var(--sefee-logos-cols, 4), minmax(0, 1fr));
	gap: 20px;
	margin: 32px auto 0;
	justify-items: center;
	align-items: stretch;
	max-width: 100%;
}
.sefee-logos--center .sefee-logos__item {
	width: 100%;
	min-height: 110px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px;
	background: #fff;
	border: 1px solid var(--sefee-line);
	border-radius: var(--sefee-radius);
	box-shadow: 0 14px 30px rgba(14,32,56,.05);
	transition: transform .32s cubic-bezier(.16,.84,.44,1), box-shadow .32s ease, border-color .32s ease;
}
.sefee-logos--center .sefee-logos__item > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.sefee-logos--center .sefee-logos__item img {
	max-width: 100%;
	max-height: 68px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	margin: 0 auto;
}
.sefee-logos--gray .sefee-logos__item img {
	filter: grayscale(1);
	opacity: .55;
	transition: filter .32s ease, opacity .32s ease;
}
.sefee-logos--gray .sefee-logos__item:hover img { filter: grayscale(0); opacity: 1; }
.sefee-logos--center .sefee-logos__item:hover {
	transform: translateY(-5px);
	box-shadow: 0 28px 54px rgba(14,32,56,.16);
	border-color: rgba(0,92,185,.45);
}
/* Grille native (.sefee-logos hors widget) : centrage aussi */
.sefee-logos { justify-items: center; }
.sefee-logos__item img { margin: 0 auto; }

@media (max-width: 1024px) {
	.sefee-logos--center { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.sefee-logos--center { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── Carrousel (widget sefee_carousel) ── */
.sefee-carousel {
	position: relative;
	margin-top: 36px;
	padding: 0 52px;
}
.sefee-carousel__viewport {
	overflow: hidden;
	border-radius: var(--sefee-radius);
}
.sefee-carousel__track {
	display: flex;
	gap: 24px;
	transition: transform .55s cubic-bezier(.16,.84,.44,1);
	will-change: transform;
}
.sefee-carousel__slide {
	flex: 0 0 calc((100% - (var(--sefee-car-per, 3) - 1) * 24px) / var(--sefee-car-per, 3));
	min-width: 0;
	background: #fff;
	border: 1px solid var(--sefee-line);
	border-top: 3px solid var(--sefee-blue);
	border-radius: var(--sefee-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 10px rgba(14,32,56,.05);
	transition: box-shadow .32s ease, transform .32s cubic-bezier(.16,.84,.44,1);
}
.sefee-carousel__slide:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 46px rgba(14,32,56,.14);
}
.sefee-carousel__media {
	position: relative;
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, var(--sefee-blue-mid, #2f6fc4) 0%, var(--sefee-blue-deep) 55%, var(--sefee-navy) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.sefee-carousel__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s cubic-bezier(.16,.84,.44,1);
}
.sefee-carousel__slide:hover .sefee-carousel__media img { transform: scale(1.05); }
.sefee-carousel__ph {
	color: rgba(255,255,255,.42);
	font-family: var(--sefee-font-body);
	font-size: .66rem; font-weight: 600;
	letter-spacing: .12em; text-transform: uppercase;
}
.sefee-carousel__body { padding: 24px 22px 26px; flex: 1; }
.sefee-carousel__title {
	font-family: var(--sefee-font-display);
	font-size: 1.05rem; font-weight: 700;
	color: var(--sefee-navy);
	margin: 0 0 10px;
	line-height: 1.25;
}
.sefee-carousel__text {
	font-size: .9rem;
	color: var(--sefee-muted);
	margin: 0;
	line-height: 1.6;
}

/* Flèches */
.sefee-carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 42px; height: 42px;
	border-radius: 50%;
	border: 1px solid var(--sefee-line);
	background: #fff;
	color: var(--sefee-navy);
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 6px 18px rgba(14,32,56,.12);
	transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease;
	z-index: 2;
}
.sefee-carousel__arrow svg { width: 20px; height: 20px; }
.sefee-carousel__arrow:hover {
	background: var(--sefee-blue);
	color: #fff;
	border-color: var(--sefee-blue);
	transform: translateY(-50%) scale(1.06);
}
.sefee-carousel__arrow--prev { left: 0; }
.sefee-carousel__arrow--next { right: 0; }

/* Points */
.sefee-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 24px;
}
.sefee-carousel__dot {
	width: 9px; height: 9px;
	border-radius: 50%;
	border: 0;
	background: var(--sefee-line);
	cursor: pointer;
	padding: 0;
	transition: background .22s ease, width .22s ease;
}
.sefee-carousel__dot.is-active {
	background: var(--sefee-blue);
	width: 26px;
	border-radius: 5px;
}

/* Carrousel sur fond navy */
.sefee-section--navy .sefee-carousel__title { color: var(--sefee-navy); }
.sefee-section--navy .sefee-carousel__dot { background: rgba(255,255,255,.3); }
.sefee-section--navy .sefee-carousel__dot.is-active { background: var(--sefee-cyan); }

@media (max-width: 1024px) {
	.sefee-carousel__slide { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 640px) {
	.sefee-carousel { padding: 0 12px; }
	.sefee-carousel__slide { flex-basis: 100%; }
	.sefee-carousel__arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.sefee-carousel__track { transition: none; }
	.sefee-carousel__slide:hover { transform: none; }
	.sefee-carousel__slide:hover .sefee-carousel__media img { transform: none; }
}

/* ── Guide graphique : logo bleu / blanc (widget sefee_logo_download) ── */
.sefee-logodl {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	margin-top: 28px;
}
.sefee-logodl__switch {
	display: inline-flex;
	gap: 0;
	border: 1px solid var(--sefee-line);
	border-radius: 999px;
	padding: 4px;
	background: #fff;
}
.sefee-logodl__btn {
	border: 0;
	background: transparent;
	cursor: pointer;
	padding: 9px 22px;
	border-radius: 999px;
	font-family: var(--sefee-font-body);
	font-weight: 700;
	font-size: .78rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--sefee-muted);
	transition: background .22s ease, color .22s ease;
}
.sefee-logodl__btn:hover:not(.is-active):not(:disabled) { color: var(--sefee-navy); }
.sefee-logodl__btn.is-active { background: var(--sefee-blue); color: #fff; }
.sefee-logodl__btn:disabled { opacity: .4; cursor: not-allowed; }

.sefee-logodl__preview {
	width: 100%;
	max-width: 480px;
	min-height: 210px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px;
	border-radius: var(--sefee-radius);
	border: 1px solid var(--sefee-line);
	transition: background .3s ease, border-color .3s ease;
}
/* Logo bleu → damier clair ; logo blanc → fond navy pour le contraste. */
.sefee-logodl__preview--blue {
	background:
		linear-gradient(45deg, #f4f6f9 25%, transparent 25%, transparent 75%, #f4f6f9 75%),
		linear-gradient(45deg, #f4f6f9 25%, #fff 25%, #fff 75%, #f4f6f9 75%);
	background-size: 22px 22px;
	background-position: 0 0, 11px 11px;
}
.sefee-logodl__preview--white {
	background: var(--sefee-navy);
	border-color: var(--sefee-navy);
}
.sefee-logodl__img {
	max-width: 100%;
	max-height: 130px;
	width: auto; height: auto;
	object-fit: contain;
	display: block;
}
.sefee-logodl__dl { margin-top: 4px; }

@media (max-width: 480px) {
	.sefee-logodl__preview { padding: 26px; min-height: 160px; }
	.sefee-logodl__btn { padding: 8px 16px; font-size: .72rem; }
}

/* ── Section « Rejoignez-nous » : boutons lisibles et espacés ──
   Les 2 boutons vivent dans un seul widget text-editor, en .wp-block-buttons.
   Problème : le 2e porte .sefee-btn--outline → bleu sur navy = illisible,
   et les 2 boutons se touchent (aucun gap sur .wp-block-buttons). */
.sefee-main .wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	align-items: center;
	margin-top: 24px;
}
.sefee-main .wp-block-buttons .wp-block-button { margin: 0; }

/* Bouton contour sur fond sombre : bordure + texte blancs. */
.sefee-section--navy .sefee-btn--outline,
.sefee-hero--dark .sefee-btn--outline,
.sefee-footer .sefee-btn--outline {
	background: transparent;
	color: #fff;
	border-color: rgba(255,255,255,.7);
	transition: background .22s ease, border-color .22s ease, color .22s ease;
}
.sefee-section--navy .sefee-btn--outline:hover,
.sefee-hero--dark .sefee-btn--outline:hover,
.sefee-footer .sefee-btn--outline:hover {
	background: #fff;
	color: var(--sefee-navy);
	border-color: #fff;
}
/* Bouton plein sur fond sombre : cyan bien détaché du contour voisin. */
.sefee-section--navy .sefee-btn--primary,
.sefee-hero--dark .sefee-btn--primary {
	background: var(--sefee-cyan);
	border-color: var(--sefee-cyan);
}

/* Groupe de boutons inline (variante HTML thème) */
.sefee-btn-group {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 24px;
}
