/*
Theme Name: Kadence Child - IDI Dental
Description: Surcouche de direction artistique (cartes produits, animations au scroll, rythme vertical) pour le thème Kadence sur le site IDI Dental.
Template: kadence
Version: 2.10.8
*/
/* --------------------------------------------------------------------------
	Panneau de pilotage du catalogue — familles, filtres et tri dans une
	seule carte, pour éviter deux blocs concurrents proposant les mêmes
	commandes.
	-------------------------------------------------------------------------- */
.idi-catalog-panel {
	margin: 0 0 clamp(1.75rem, 3.5vw, 2.75rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 18px 45px -42px rgba(16, 16, 19, 0.8);
	overflow: hidden;
}

/* Rangée des familles : sélecteur principal, mis en avant en haut du
   panneau sur un fond légèrement contrasté. */
.idi-catalog-panel__families {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--idi-shop-line);
	background: #fbfbfc;
}

.idi-catalog-panel__pill {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0 1rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 4px;
	background: #ffffff;
	color: #55555c;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.idi-catalog-panel__pill:hover {
	border-color: rgba(201, 31, 99, 0.35);
	color: var(--idi-shop-ink);
	background: #ffffff;
}

.idi-catalog-panel__pill.is-active {
	border-color: var(--idi-shop-ink);
	background: var(--idi-shop-ink);
	color: #ffffff;
}

/* Ligne décompte + tri, alimentée par le JS depuis la barre Kadence. */
.idi-catalog-panel__tools {
	display: flex;
	align-items: center;
	padding: 0.6rem 1rem;
	border-top: 1px solid var(--idi-shop-line);
	background: #fbfbfc;
}

.idi-catalog-panel__tools:empty {
	display: none;
}

.idi-catalog-search {
	display: grid;
	grid-template-columns: minmax(280px, 0.9fr) minmax(520px, 1.4fr);
	gap: 1rem;
	margin: 0;
	padding: 1rem;
}

.idi-catalog-search label,
.idi-catalog-search__filters label {
	margin: 0;
}

.idi-catalog-search__main > label,
.idi-catalog-search__filters label > span:first-child {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--idi-shop-muted);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.idi-catalog-search__input {
	position: relative;
}

.idi-catalog-search__input svg {
	position: absolute;
	left: 1rem;
	top: 50%;
	width: 19px;
	height: 19px;
	color: var(--global-palette1);
	transform: translateY(-50%);
	pointer-events: none;
}

.idi-catalog-search input[type="search"],
.idi-catalog-search select {
	width: 100%;
	min-height: 48px;
	margin: 0;
	border: 1px solid #d9dadd;
	border-radius: 4px;
	background-color: #fafafa;
	color: var(--idi-shop-ink);
	font-size: 0.88rem;
}

.idi-catalog-search input[type="search"] {
	padding-left: 2.8rem;
}

.idi-catalog-search select {
	padding: 0 2.25rem 0 0.8rem;
}

.idi-catalog-search input[type="search"]:focus,
.idi-catalog-search select:focus {
	border-color: var(--global-palette1);
	outline: 3px solid rgba(201, 31, 99, 0.13);
	outline-offset: 0;
}

.idi-catalog-search__filters {
	display: grid;
	/* Catégorie + Compatibilité, puis « En stock » et le bouton à leur
	   largeur propre (la famille est passée dans les pastilles au-dessus). */
	grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) auto auto;
	align-items: end;
	gap: 0.65rem;
}

.idi-catalog-search__stock {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 48px;
	padding: 0 0.85rem;
	border: 1px solid #d9dadd;
	border-radius: 4px;
	background: #fafafa;
	color: var(--idi-shop-ink);
	font-size: 0.82rem;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
}

.idi-catalog-search__stock input {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--global-palette1);
}

.idi-catalog-search__stock > span:first-of-type {
	margin: 0;
	font-size: 0.82rem;
	letter-spacing: 0;
	text-transform: none;
}

.idi-catalog-search button {
	min-height: 48px;
	padding: 0 1.15rem;
	border: 1px solid var(--idi-shop-ink);
	border-radius: 4px;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.82rem;
	font-weight: 800;
	cursor: pointer;
}

.idi-catalog-search button:hover,
.idi-catalog-search button:focus-visible {
	border-color: var(--global-palette1);
	background: var(--global-palette1);
}

.idi-catalog-search__reset {
	grid-column: 1 / -1;
	justify-self: end;
	color: var(--idi-shop-muted);
	font-size: 0.76rem;
}

/* --------------------------------------------------------------------------
   Kadence Elements — accompagnement contextuel par famille
   -------------------------------------------------------------------------- */

.idi-context-cta {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(1.5rem, 4vw, 4rem);
	margin: 0 0 clamp(1.75rem, 3.5vw, 2.75rem);
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-top: 3px solid var(--global-palette1);
	border-radius: 6px;
	background: #1b1b1f;
	color: #ffffff;
	overflow: hidden;
}

.single-product .idi-context-cta {
	grid-column: 1 / -1;
	width: 100%;
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

/* Quand ce bloc est construit dans l'éditeur (wp:group sans attribut "layout"
   déclaré, comme dans le contenu des articles), Gutenberg enveloppe les
   vrais enfants (copie + actions) dans un unique `.wp-block-group__inner-
   container` en `is-layout-flow` — le grid posé sur `.idi-context-cta` ne
   s'applique alors qu'à cet enfant unique, et copie/actions s'empilent au
   lieu de se placer côte à côte. Même piège déjà rencontré sur le bandeau
   de certifications de l'accueil : il faut recréer la grille sur ce
   conteneur intermédiaire quand il existe. */
.idi-context-cta > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(1.5rem, 4vw, 4rem);
}

@media all and (max-width: 767px) {
	.idi-context-cta > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
	}
}

.idi-context-cta__copy {
	max-width: 720px;
}

.idi-context-cta__eyebrow {
	display: block;
	margin-bottom: 0.65rem;
	color: #f06a9e;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.idi-context-cta h2 {
	margin: 0 0 0.55rem;
	color: #ffffff;
	font-size: clamp(1.45rem, 2.5vw, 2.1rem);
	line-height: 1.12;
	letter-spacing: 0;
}

.idi-context-cta p {
	margin: 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.92rem;
	line-height: 1.65;
}

.idi-context-cta__actions {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.idi-context-cta__actions a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 1.15rem;
	border: 1px solid transparent;
	border-radius: 4px;
	font-size: 0.8rem;
	font-weight: 800;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
}

.idi-context-cta__primary {
	background: var(--global-palette1);
	color: #ffffff;
}

.idi-context-cta__secondary {
	border-color: rgba(255, 255, 255, 0.3) !important;
	color: #ffffff;
}

.idi-context-cta__actions a:hover,
.idi-context-cta__actions a:focus-visible {
	border-color: #ffffff !important;
	background: #ffffff;
	color: #17171a;
}

/* ==========================================================================
   Échelle et rythme de base — sensation "premium"
   ========================================================================== */

:root {
	--idi-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ==========================================================================
   Bloc Quote — accent de marque
   ========================================================================== */

.wp-block-quote {
	border-left: 4px solid var(--global-palette1);
	padding-left: 1.25rem !important;
}

.wp-block-quote.has-text-align-center {
	border-left: none;
	border-top: 3px solid var(--global-palette1);
	padding-top: 1.25rem;
	display: inline-block;
}

/* ==========================================================================
   Rythme vertical entre sections
   ========================================================================== */

.entry-content > * {
	margin-top: clamp(2.75rem, 5vw, 5.5rem);
}

.entry-content > *:first-child {
	margin-top: 0;
}

/* Les cartes produits restent proches de leur titre et entre elles,
   les puces de certifications collent au paragraphe qui les introduit */
.entry-content > .idi-bento-featured,
.entry-content > .idi-bento-row,
.entry-content > .idi-chips {
	margin-top: 1.5rem;
}

.entry-content > .idi-hero {
	margin-top: 0;
}

/* Seules les sections colorées de premier niveau reçoivent le padding ample
   (pas les groupes internes du hero ni le groupe-source du carrousel) */
.entry-content > .wp-block-group.has-background {
	padding-top: clamp(3rem, 6vw, 4.5rem) !important;
	padding-bottom: clamp(3rem, 6vw, 4.5rem) !important;
}

/* ==========================================================================
   AOS — Animate On Scroll (déclenché sur .aos-fade, voir js/aos-init.js)
   ========================================================================== */

.aos-fade {
	will-change: auto;
}

/* ==========================================================================
   En-tête — nav vitrée (glassmorphism)
   ========================================================================== */

/* Kadence coupe #wrapper en overflow:hidden par défaut (pour les images
   pleine largeur) ; ça empêche position:sticky de fonctionner sur le header. */
#wrapper {
	overflow: visible !important;
}

/* header.min.css de Kadence est chargé après ce fichier et repasse #masthead
   en position:relative avec la même spécificité (sélecteur #id) : on force.

   `top` reste à 0 par défaut : la barre utilitaire est une configuration
   stockée en base, et le thème peut être déployé sur une installation qui ne
   l'a pas encore (la CI ne synchronise que le code). Sans ce garde-fou, le
   haut de l'en-tête sortirait du champ au défilement sur ces installations. */
#masthead {
	--idi-topbar-h: 42px;
	position: sticky !important;
	top: 0 !important;
	z-index: 200 !important;
	background: rgba(255, 255, 255, 0.7) !important;
	backdrop-filter: blur(16px) saturate(160%);
	-webkit-backdrop-filter: blur(16px) saturate(160%);
	border-bottom: 1px solid rgba(29, 29, 31, 0.06);
	transition: background 0.3s ease, box-shadow 0.3s ease;
}

/* Barre utilitaire présente : on décale l'en-tête de sa hauteur exacte pour
   qu'elle sorte du champ au défilement et que seule la rangée principale
   reste épinglée — plutôt que d'immobiliser 42 px de barre graphite. */
#masthead:has(.site-top-header-wrap) {
	top: calc(-1 * var(--idi-topbar-h)) !important;
}

/* ==========================================================================
   Barre utilitaire — signature de marque, contact direct, réseaux sociaux
   ========================================================================== */

.site-top-header-wrap {
	background: #1d1d1f;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.78rem;
	letter-spacing: 0.01em;
}

/* La barre est le premier élément d'un header en verre dépoli : sans fond
   opaque propre, le flou du masthead la délave. */
.site-top-header-wrap .site-header-row-container-inner {
	background: transparent;
}

.site-top-header-wrap .site-header-item {
	color: inherit;
}

/* Signature « Concepteur et fabricant français depuis 1987 » */
.idi-topbar-sign {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	color: #ffffff;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* Drapeau tricolore dessiné en CSS : pas de média à héberger, donc pas de
   chemin absolu à corriger lors d'une migration de domaine. */
.idi-topbar-flag {
	flex: none;
	width: 18px;
	height: 12px;
	border-radius: 2px;
	background: linear-gradient(
		to right,
		#0055a4 0 33.333%,
		#ffffff 33.333% 66.666%,
		#ef4135 66.666% 100%
	);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
}

/* Contact direct (téléphone, e-mail) */
.site-top-header-wrap .header-contact-wrap .header-contact-item,
.site-top-header-wrap .header-mobile-contact-wrap .header-contact-item {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: rgba(255, 255, 255, 0.82) !important;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.site-top-header-wrap .header-contact-item:hover,
.site-top-header-wrap .header-contact-item:focus-visible {
	color: #ffffff !important;
}

.site-top-header-wrap .header-contact-item svg {
	width: 15px;
	height: 15px;
	opacity: 0.75;
}

.site-top-header-wrap .header-contact-item:hover svg {
	opacity: 1;
}

/* Réseaux sociaux */
.site-top-header-wrap .header-social-wrap .social-button,
.site-top-header-wrap .header-mobile-social-wrap .social-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	color: rgba(255, 255, 255, 0.72) !important;
	background: rgba(255, 255, 255, 0.08);
	transition: color 0.2s ease, background 0.2s ease;
}

.site-top-header-wrap .social-button:hover,
.site-top-header-wrap .social-button:focus-visible {
	color: #ffffff !important;
	background: var(--global-palette1, #c91f63);
}

.site-top-header-wrap .social-button svg {
	width: 15px;
	height: 15px;
}

/* Espacement entre les groupes contact et réseaux. */
.site-top-header-wrap .site-header-section-right > .site-header-item + .site-header-item {
	margin-left: 1.1rem;
}

/* Le bloc de marque (taille du logo, raison sociale) est piloté plus bas,
   section « Header — navigation institutionnelle premium » : tout est
   regroupé là pour éviter deux jeux de règles concurrents. */

/* ==========================================================================
   Accès boutique — bouton distinct de la navigation vitrine
   ========================================================================== */

.header-button-wrap .header-button {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 42px;
	padding: 0 1.15rem !important;
	border: 0;
	border-radius: 4px;
	background: var(--global-palette1, #c91f63);
	color: #ffffff !important;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	white-space: nowrap;
	transition: transform 0.2s var(--idi-ease), box-shadow 0.25s ease, background 0.2s ease;
}

.header-button-wrap .header-button:hover,
.header-button-wrap .header-button:focus-visible {
	background: #a81851;
	transform: translateY(-1px);
	box-shadow: 0 10px 24px -14px rgba(201, 31, 99, 0.9);
}

.header-button-wrap {
	margin-left: 0.75rem;
}

/* Tiroir mobile : même hiérarchie que sur desktop — l'accès boutique en
   premier plan, les réseaux sociaux en pied de tiroir. */
#mobile-drawer .mobile-header-button-wrap {
	display: block;
	width: 100%;
	margin: 1.25rem 0 0.5rem;
}

#mobile-drawer .mobile-header-button-wrap .mobile-header-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	border: 0;
	border-radius: 4px;
	background: var(--global-palette1, #c91f63);
	color: #ffffff !important;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

#mobile-drawer .header-mobile-social-wrap .social-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.09) !important;
	color: rgba(255, 255, 255, 0.75) !important;
	transition: color 0.2s ease, background 0.2s ease;
}

#mobile-drawer .header-mobile-social-wrap .social-button:hover,
#mobile-drawer .header-mobile-social-wrap .social-button:focus-visible {
	background: var(--global-palette1, #c91f63) !important;
	color: #ffffff !important;
}

.primary-menu-container {
	background: transparent;
	border: 0;
	padding: 0;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a {
	position: relative;
	margin: 0 0.15rem;
	transition: color 0.25s ease;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a::after {
	content: "";
	position: absolute;
	left: 1em;
	right: 1em;
	bottom: 0.65em;
	height: 2px;
	background: var(--global-palette1);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.3s var(--idi-ease);
}

.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li.current-menu-item > a {
	color: var(--global-palette1) !important;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a:hover::after,
.main-navigation .primary-menu-container > ul > li.current-menu-item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Tablette : l'e-mail est le premier élément sacrifié de la barre utilitaire,
   le téléphone et la signature restent. */
@media (max-width: 1200px) {
	.site-top-header-wrap .header-contact-wrap .header-contact-item:nth-child(2) {
		display: none;
	}
}

@media (max-width: 1024px) {
	#masthead {
		--idi-topbar-h: 38px;
	}
}

/* Mobile : la barre garde la signature et l'appel direct, rien d'autre.
   Le libellé texte du téléphone est remplacé par la seule icône pour ne pas
   pousser la signature hors du champ. */
@media (max-width: 767px) {
	.idi-topbar-sign {
		font-size: 0.7rem;
		letter-spacing: 0.01em;
	}

	.idi-topbar-flag {
		width: 15px;
		height: 10px;
	}

	.site-top-header-wrap .header-mobile-contact-wrap .header-contact-item {
		gap: 0.35rem;
		font-size: 0.72rem;
	}
}

@media (max-width: 479px) {
	.site-top-header-wrap .header-mobile-contact-wrap .contact-label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.site-top-header-wrap .header-mobile-contact-wrap .header-contact-item {
		width: 30px;
		height: 30px;
		justify-content: center;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.1);
	}
}

/* ==========================================================================
   Hero éditorial — composition asymétrique texte / visuel
   ========================================================================== */

/* Le hero démarre directement sous le header : on neutralise la marge haute
   de la zone de contenu et le padding haut du gabarit "boxed" sur l'accueil. */
.home .content-area {
	margin-top: 0;
}

.home .entry-content-wrap {
	padding-top: 0;
}

.idi-hero {
	position: relative;
	min-height: max(720px, calc(100svh - 84px));
	padding: clamp(3.5rem, 6vh, 5.5rem) clamp(1.5rem, 6vw, 6rem);
	background: #17171a;
	overflow: hidden;
}

/* La grille vit sur le conteneur interne que WordPress ajoute aux groupes */
.idi-hero > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-content: center;
	width: min(1320px, 100%);
	min-height: inherit;
	margin-inline: auto;
	gap: clamp(2.25rem, 4vh, 3.5rem);
}

/* WordPress met padding-inline:0 sur les enfants .alignfull d'un conteneur à
   padding global ; sa spécificité bat un simple .idi-hero, donc on force. */
.entry-content .idi-hero.alignfull {
	padding-left: clamp(1.5rem, 6vw, 6rem) !important;
	padding-right: clamp(1.5rem, 6vw, 6rem) !important;
}

.idi-hero::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(15, 13, 15, 0.9) 0%, rgba(18, 15, 17, 0.78) 38%, rgba(18, 15, 17, 0.34) 68%, rgba(18, 15, 17, 0.2) 100%),
		linear-gradient(180deg, rgba(15, 13, 15, 0.28) 0%, transparent 42%, rgba(15, 13, 15, 0.72) 100%);
	pointer-events: none;
}

.idi-hero::after {
	content: "";
	position: absolute;
	z-index: 2;
	inset: 0;
	opacity: 0.075;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.idi-hero__text {
	position: relative;
	z-index: 3;
	max-width: 820px;
	color: #ffffff;
}

.idi-hero__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--global-palette1);
	margin: 0 0 1rem !important;
}

.idi-hero__title {
	font-family: var(--global-heading-font-family);
	font-size: clamp(2.8rem, 4.4vw, 4.75rem);
	line-height: 0.98;
	letter-spacing: 0;
	margin: 0 0 1.25rem !important;
	color: #ffffff;
	word-break: normal;
	overflow-wrap: normal;
	text-shadow: 0 4px 32px rgba(0, 0, 0, 0.22);
}

.idi-hero__lead {
	font-size: clamp(1rem, 1.3vw, 1.18rem);
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.78);
	max-width: 62ch;
	margin: 0 0 1.5rem !important;
}

.idi-hero__quote {
	position: relative;
	margin: 0 0 1.5rem !important;
	padding-left: 2.1rem !important;
	border: none !important;
}

/* Guillemet décoratif en CSS (le bloc Citation reste éditable tel quel) */
.idi-hero__quote::before {
	content: "\201C";
	position: absolute;
	left: -0.35rem;
	top: -1.4rem;
	font-family: var(--global-heading-font-family);
	font-size: 4rem;
	color: var(--global-palette1);
	opacity: 0.55;
	line-height: 1;
}

.idi-hero__quote p {
	margin: 0;
	font-size: 1.15rem;
	font-style: italic;
	color: #ffffff;
}

/* Le CTA se détache du bloc de texte (aligné à gauche) en se centrant sur
   toute la largeur de la colonne : accent visuel, pas collé à gauche avec
   du vide à droite. */
.idi-hero__cta {
	justify-content: center;
	width: 100%;
}

/* CTA en pilule — s'applique aux blocs Bouton natifs du hero et de la bande CTA */
.idi-hero__cta .wp-block-button__link,
.idi-cta .wp-block-button__link,
.idi-form .kb-adv-form-submit-button {
	position: relative;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--global-palette1);
	color: #ffffff;
	padding: 0.9rem 1.85rem;
	border-radius: 999px;
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 14px 30px -12px rgba(201, 31, 99, 0.65);
	transition: transform 0.35s var(--idi-ease), box-shadow 0.35s var(--idi-ease), background 0.25s ease;
}

.idi-hero__cta .wp-block-button__link:hover,
.idi-cta .wp-block-button__link:hover,
.idi-form .kb-adv-form-submit-button:hover {
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 20px 40px -14px rgba(201, 31, 99, 0.8);
	background: var(--global-palette2);
}

/* Bouton secondaire du bandeau : contour clair, pour hiérarchiser les deux
   actions sans faire concurrence au CTA principal.
   Kadence pose `.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color)`
   (0,4,0) dans global.min.css : on remonte à 0,5,0 plutôt que de sortir un !important.
   Ce même sélecteur Kadence impose aussi un padding réduit (0.667em/1.333em) :
   sans le neutraliser ici, le bouton de contour ressort visiblement plus petit
   que le bouton plein alors que les deux doivent avoir le même poids visuel.
   Le padding vertical/horizontal est réduit de l'épaisseur de la bordure (1px)
   pour obtenir exactement la même hauteur/largeur externe que le bouton plein
   (bordure incluse dans le border-box). */
.idi-hero .idi-hero__cta .wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) {
	padding: calc(0.9rem - 1px) calc(1.85rem - 1px);
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.45);
	box-shadow: none;
	color: #ffffff;
}

.idi-hero .idi-hero__cta .wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color):hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #ffffff;
	box-shadow: none;
	color: #ffffff;
}

.idi-hero__badge {
	font-size: 0.8rem;
	color: #a9a9ae;
	letter-spacing: 0.02em;
	margin-top: 1rem;
}

.idi-hero__visual {
	position: absolute;
	inset: 0;
	margin: 0 !important;
}

/* Chiffres clés XXL — troisième rangée de la grille du hero, pleine largeur */
.idi-hero > .wp-block-group__inner-container > .idi-hero__stats {
	grid-column: 1 / -1;
}

/* L'écart vertical entre la rangée texte/visuel et les chiffres reste contenu */
.idi-hero > .wp-block-group__inner-container {
	row-gap: clamp(2rem, 3vw, 3rem);
}

.idi-hero__stats {
	position: relative;
	z-index: 3;
	justify-content: space-between;
	gap: clamp(1.5rem, 4vw, 4rem) !important;
	margin: 0 !important;
	padding-top: clamp(1.25rem, 2vw, 1.75rem);
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.idi-hero__stats > .wp-block-column {
	flex-grow: 0 !important;
	flex-basis: auto !important;
}

.idi-hero__stat-value {
	font-family: var(--global-heading-font-family);
	font-size: clamp(2rem, 1.6vw + 1.5rem, 3.25rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	white-space: nowrap;
	color: #ffffff;
	margin: 0;
}

/* Fine touche de marque : la barre magenta sous chaque valeur */
.idi-hero__stat-value::after {
	content: "";
	display: block;
	width: 2.25rem;
	height: 3px;
	margin-top: 0.6rem;
	border-radius: 2px;
	background: var(--global-palette1);
}

.idi-hero__stat-label {
	font-size: 0.85rem;
	line-height: 1.45;
	color: #a9a9ae;
	max-width: 24ch;
	margin: 0.65rem 0 0;
}

/* ==========================================================================
   Chiffres clés du hero — logo au-dessus de chaque valeur
   ========================================================================== */

.idi-hero__stat-top {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.65rem;
}

/* Le bloc Groupe n'a pas de layout flex natif (non déclaré dans ses
   attributs) : son conteneur interne "flow" (empilé) doit être mis en ligne
   explicitement (même contrainte que rencontrée sur le bandeau précédent). */
.idi-hero__stat-top > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.65rem;
}

.idi-hero__stat-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 32px;
	padding: 0 0.5rem;
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.45);
	overflow: hidden; /* clip si LiteSpeed injecte des dimensions HTML larges */
}

/* height explicite au lieu de 100% : robuste même si le lazy loading de
   LiteSpeed modifie le contexte de résolution du parent. */
.idi-hero__stat-icon img {
	display: block;
	height: 32px !important;
	width: auto !important;
	max-width: none;
	object-fit: contain;
}

@media all and (max-width: 600px) {
	.idi-hero__stat-icon {
		height: 28px;
		padding: 0 0.4rem;
		border-radius: 7px;
	}
}

@media all and (max-width: 900px) {
	.idi-hero > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.idi-hero__text {
		order: 1;
	}

	.idi-hero__visual {
		order: 2;
	}

	/* Sans order explicite, les chiffres (order 0) passeraient avant le texte */
	.idi-hero__stats {
		order: 3;
	}
}

@media all and (max-width: 600px) {
	.idi-hero {
		width: 100vw !important;
		max-width: none !important;
		min-height: 820px;
		margin-right: calc(50% - 50vw) !important;
		margin-left: calc(50% - 50vw) !important;
		padding-top: 2.25rem;
		padding-bottom: 2.5rem;
	}

	.idi-hero__title {
		font-size: 2rem;
		line-height: 1.08;
	}

	.idi-hero__lead {
		font-size: 1rem;
		line-height: 1.6;
		margin-bottom: 1.35rem;
	}

	.idi-hero__quote {
		margin-bottom: 1.5rem;
	}

	.idi-hero__stats {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: stretch !important;
		gap: 0 !important;
		padding-top: 1.25rem;
	}

	.idi-hero__stats > .wp-block-column {
		width: auto !important;
		min-width: 0;
		padding-right: 0.65rem;
	}

	.idi-hero__stats > .wp-block-column + .wp-block-column {
		padding-left: 0.65rem;
		border-left: 1px solid rgba(255, 255, 255, 0.12);
	}

	.idi-hero__stat-value {
		font-size: 1.45rem;
	}

	.idi-hero__stat-label {
		font-size: 0.62rem;
		line-height: 1.35;
	}

	.idi-hero-carousel__dots {
		display: none;
	}

	.idi-hero-carousel__pause {
		top: auto;
		right: 1rem;
		bottom: 1rem;
	}
}

/* Bande de crédibilité sous le hero (bloc Colonnes natif, 4 colonnes) */
.idi-stats {
	text-align: center;
}

.idi-stats__value {
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--global-palette3);
	margin: 0;
}

.idi-stats__label {
	font-size: 0.82rem;
	color: var(--global-palette5);
	margin: 0.2rem 0 0;
}

@media all and (min-width: 782px) {
	.idi-stats > .wp-block-column + .wp-block-column {
		border-left: 1px solid var(--global-palette7);
	}
}

/* ==========================================================================
   Bento produits — grille asymétrique
   ========================================================================== */

/* Carte vedette : le bloc Colonnes lui-même est la carte */
.idi-bento-featured,
.idi-bento-row > .wp-block-column {
	background: #ffffff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(29, 29, 31, 0.06);
	transition: transform 0.4s var(--idi-ease), box-shadow 0.4s var(--idi-ease);
}

.idi-bento-featured:hover,
.idi-bento-row > .wp-block-column:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px -16px rgba(29, 29, 31, 0.22);
}

/* Colonne visuelle de la carte vedette */
.idi-bento-featured > .idi-bento__media {
	background: radial-gradient(80% 80% at 50% 30%, rgba(201, 31, 99, 0.14) 0%, rgba(201, 31, 99, 0) 70%), #f7f2f4;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}

.idi-bento-featured > .idi-bento__media .wp-block-image {
	margin: 0;
}

.idi-bento-featured > .idi-bento__media img {
	max-width: 260px;
	height: auto;
	transition: transform 0.5s var(--idi-ease);
}

.idi-bento-featured:hover img,
.idi-bento-row > .wp-block-column:hover .wp-block-image img {
	transform: scale(1.06);
}

.idi-bento-featured > .idi-bento__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0.5rem;
	padding: 1.5rem 1.75rem 1.85rem;
}

/* Cartes de la rangée : l'image en tête, textes en dessous */
.idi-bento-row > .wp-block-column > .wp-block-image {
	background: radial-gradient(80% 80% at 50% 30%, rgba(201, 31, 99, 0.14) 0%, rgba(201, 31, 99, 0) 70%), #f7f2f4;
	margin: 0 0 1.25rem;
	padding: 1.5rem;
}

.idi-bento-row > .wp-block-column > .wp-block-image img {
	width: 100%;
	height: auto;
	max-height: 300px;
	object-fit: contain;
	transition: transform 0.5s var(--idi-ease);
}

.idi-bento-row > .wp-block-column > h3,
.idi-bento-row > .wp-block-column > p {
	padding: 0 1.75rem;
}

.idi-bento-row > .wp-block-column > p:last-child {
	padding-bottom: 1.85rem;
}

.idi-bento__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--global-palette1);
	margin: 0;
}

/* h2 ou h3 selon la place de la carte dans le plan de la page */
h2.idi-bento__title,
h3.idi-bento__title {
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 1.15rem;
	line-height: 1.3;
	color: var(--global-palette3);
	margin: 0 0 0.35rem;
}

.idi-bento-featured h2.idi-bento__title,
.idi-bento-featured h3.idi-bento__title {
	font-size: 1.45rem;
}

/* Les titres-cartes n'ont pas le soulignement animé des titres de section
   (spécificité triple : la règle du soulignement, déclarée plus bas dans ce
   fichier, gagnerait sinon à égalité) */
.entry-content h2.wp-block-heading.idi-bento__title::after {
	display: none;
}

.idi-bento__text {
	color: var(--global-palette5);
	line-height: 1.6;
	margin: 0 0 0.5rem;
}

.idi-bento__link {
	margin: 0;
}

.idi-bento__link a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--global-palette1) !important;
	font-weight: 600;
	text-decoration: none;
	background-image: linear-gradient(var(--global-palette1), var(--global-palette1));
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0% 1px;
	transition: background-size 0.25s ease;
	padding-bottom: 2px;
}

.idi-bento__link a:hover {
	background-size: 100% 1px;
}

/* ==========================================================================
   Carrousel hero
   ========================================================================== */

.idi-hero-carousel {
	position: absolute;
	z-index: 0;
	inset: 0;
	overflow: hidden;
	line-height: 0;
	background: #1d1d1f;
}

.idi-hero-carousel-source > .wp-block-group__inner-container {
	position: absolute;
	inset: 0;
}

/* Groupe-source : de simples blocs Image dans l'admin, transformés en
   carrousel par hero-carousel.js. Avant transformation, seule la première
   image est visible (les figures sont encore enfants directs du conteneur ;
   après transformation elles vivent dans la piste, le sélecteur ne matche plus). */
.idi-hero-carousel-source > .wp-block-group__inner-container > .wp-block-image:not(:first-child) {
	display: none;
}

.idi-hero-carousel-source .wp-block-image {
	margin: 0;
}

.idi-hero-carousel-source .wp-block-image img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center center;
	filter: saturate(0.82) contrast(1.05);
}

.idi-hero-carousel__track {
	position: absolute;
	inset: 0;
}

.idi-hero-carousel .idi-hero-carousel__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	margin: 0 !important;
	margin-block: 0 !important;
	transform: scale(1.035);
	transition: opacity 1.35s ease, transform 7s ease;
}

.idi-hero-carousel .idi-hero-carousel__slide.is-active {
	z-index: 1;
	opacity: 1;
	transform: scale(1);
}

.idi-hero-carousel__slide > a {
	display: block;
	height: 100%;
	pointer-events: none;
}

.idi-hero-carousel__slide > a:focus-visible {
	outline: 3px solid var(--global-palette1);
	outline-offset: -3px;
}

.idi-hero-carousel--multiple {
	padding-bottom: 0;
}

.idi-hero-carousel--multiple::after {
	display: none;
}

/* ==========================================================================
   Bandeau d'accueil — variantes vidéo
   Le visuel du hero est une couche plein cadre derrière le texte : les deux
   variantes vidéo réutilisent donc exactement le même placement absolu.
   ========================================================================== */

/* Le visuel reste sous le voile dégradé du hero, comme le carrousel d'images.
   Les boutons de lecture, eux, sont rendus en frères du visuel : ce dernier
   porte une animation d'entrée qui crée un contexte d'empilement, dans lequel
   un z-index élevé ne suffirait pas à passer au-dessus du voile. */
.idi-hero__visual--video,
.idi-hero__visual--videobg,
.idi-hero__visual--embedbg {
	overflow: hidden;
	background: #1d1d1f;
}

/* ---------- Vidéo YouTube / Vimeo en fond de bandeau ---------- */

/* Le lecteur est en 16/9 alors que le hero ne l'est pas : on l'agrandit
   jusqu'à couvrir la plus contraignante des deux dimensions, puis on le
   recentre. Équivalent d'un object-fit:cover, impossible sur une iframe.
   Le léger agrandissement supplémentaire fait sortir du cadre les résidus
   d'habillage YouTube (titre en haut, mentions en bas). */
.idi-hero-embedbg__stage {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100vw;
	height: 56.25vw;
	min-width: 177.78vh;
	min-height: 100%;
	transform: translate(-50%, -50%) scale(1.18);
	opacity: 0;
	transition: opacity 1.2s ease;
	pointer-events: none;
}

.idi-hero-embedbg__stage iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.idi-hero__visual--embedbg.is-playing .idi-hero-embedbg__stage {
	opacity: 1;
}

/* L'image mise en avant tient l'affiche jusqu'à ce que le lecteur soit prêt,
   et reste seule là où la vidéo n'est pas jouée (mobile, animations réduites,
   mode économie de données). */
.idi-hero__visual--embedbg .idi-hero-video__poster {
	transition: opacity 1.2s ease;
}

.idi-hero__visual--embedbg.is-playing .idi-hero-video__poster {
	opacity: 0;
}

.idi-hero-video__poster,
.idi-hero-videobg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	filter: saturate(0.82) contrast(1.05);
}

/* Vignette YouTube/Vimeo : bouton compact, placé dans la moitié droite du
   hero pour ne jamais recouvrir le bloc de texte. */
.idi-hero-video {
	position: absolute;
	z-index: 4;
	top: 50%;
	right: clamp(1.5rem, 7vw, 6rem);
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.6rem 1.5rem 0.6rem 0.6rem;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	background: rgba(23, 23, 26, 0.55);
	backdrop-filter: blur(10px) saturate(140%);
	-webkit-backdrop-filter: blur(10px) saturate(140%);
	color: #ffffff;
	cursor: pointer;
	transition: transform 0.3s var(--idi-ease), background 0.25s ease, border-color 0.25s ease;
}

.idi-hero-video:hover,
.idi-hero-video:focus-visible {
	transform: translateY(-50%) scale(1.04);
	border-color: rgba(255, 255, 255, 0.55);
	background: rgba(23, 23, 26, 0.72);
}

.idi-hero-video__play {
	position: relative;
	flex: none;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--global-palette1, #c91f63);
	box-shadow: 0 14px 30px -12px rgba(201, 31, 99, 0.85);
}

/* Triangle de lecture dessiné en CSS : aucune icône à charger. */
.idi-hero-video__play::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 9px 0 9px 15px;
	border-color: transparent transparent transparent #ffffff;
}

/* Onde de rappel, coupée si l'utilisateur a demandé moins d'animations. */
.idi-hero-video__play::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	border: 2px solid rgba(201, 31, 99, 0.55);
	animation: idi-video-pulse 2.6s var(--idi-ease) infinite;
}

@keyframes idi-video-pulse {
	0% { transform: scale(1); opacity: 0.7; }
	70% { transform: scale(1.35); opacity: 0; }
	100% { transform: scale(1.35); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.idi-hero-video__play::after {
		animation: none;
	}
}

.idi-hero-video__label {
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* Vidéo de fond : bouton lecture/pause obligatoire (WCAG 2.2.2). */
.idi-hero-videobg__toggle {
	position: absolute;
	z-index: 4;
	right: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	background: rgba(23, 23, 26, 0.55);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	cursor: pointer;
	transition: background 0.25s ease, border-color 0.25s ease;
}

.idi-hero-videobg__toggle:hover,
.idi-hero-videobg__toggle:focus-visible {
	border-color: rgba(255, 255, 255, 0.6);
	background: rgba(23, 23, 26, 0.78);
}

/* Deux barres = pause pendant la lecture ; un triangle = reprendre. */
.idi-hero-videobg__toggle::before,
.idi-hero-videobg__toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: opacity 0.2s ease;
}

.idi-hero-videobg__toggle::before {
	left: 15px;
	width: 4px;
	height: 15px;
	background: #ffffff;
}

.idi-hero-videobg__toggle::after {
	right: 15px;
	width: 4px;
	height: 15px;
	background: #ffffff;
}

.idi-hero-videobg__toggle:not(.is-playing)::before {
	left: 17px;
	width: 0;
	height: 0;
	background: none;
	border-style: solid;
	border-width: 7px 0 7px 12px;
	border-color: transparent transparent transparent #ffffff;
}

.idi-hero-videobg__toggle:not(.is-playing)::after {
	opacity: 0;
}

/* ---------- Fenêtre de lecture vidéo ---------- */

body.idi-video-open {
	overflow: hidden;
}

.idi-video-modal {
	position: fixed;
	z-index: 9999;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 4vw, 3rem);
	background: rgba(10, 10, 12, 0.88);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	animation: idi-video-fade 0.25s ease;
}

@keyframes idi-video-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

.idi-video-modal__dialog {
	position: relative;
	width: min(1100px, 100%);
	aspect-ratio: 16 / 9;
	border-radius: 6px;
	background: #000000;
	box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.9);
}

.idi-video-modal__frame {
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 6px;
}

.idi-video-modal__close {
	position: absolute;
	top: -3.25rem;
	right: 0;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #ffffff;
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.idi-video-modal__close:hover,
.idi-video-modal__close:focus-visible {
	border-color: rgba(255, 255, 255, 0.65);
	background: rgba(255, 255, 255, 0.18);
}

/* Sous 900px le texte occupe toute la largeur et les chiffres clés tiennent le
   bas du hero : le bouton de lecture remonte en tête de bandeau, avec une
   réserve de place créée sur le hero lui-même pour ne rien recouvrir. */
@media all and (max-width: 900px) {
	.idi-hero:has(.idi-hero__visual--video) {
		padding-top: 6.5rem;
	}

	.idi-hero-video {
		top: clamp(1.25rem, 4vw, 2rem);
		right: 50%;
		bottom: auto;
		transform: translateX(50%);
		padding: 0.5rem 1.25rem 0.5rem 0.5rem;
	}

	.idi-hero-video:hover,
	.idi-hero-video:focus-visible {
		transform: translateX(50%) scale(1.04);
	}

	.idi-hero-video__play {
		width: 44px;
		height: 44px;
	}

	.idi-video-modal__close {
		top: auto;
		bottom: -3.25rem;
		right: 50%;
		transform: translateX(50%);
	}
}

.idi-hero-carousel__arrow {
	display: none;
}

.idi-hero-carousel__arrow:hover {
	background: rgba(201, 31, 99, 0.75);
	transform: translateY(-50%) scale(1.08);
}

.idi-hero-carousel__arrow--prev {
	left: 20px;
}

.idi-hero-carousel__arrow--next {
	right: 20px;
}

.idi-hero-carousel__dots {
	position: absolute;
	z-index: 4;
	right: 76px;
	top: 22px;
	display: flex;
	gap: 2px;
}

/* Bouton 24px (cible tactile WCAG 2.5.8), pastille visuelle 9px en ::before */
.idi-hero-carousel__dot {
	position: relative;
	width: 44px;
	height: 44px;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0;
	cursor: pointer;
}

.idi-hero-carousel__dot::before {
	content: "";
	position: absolute;
	inset: 50%;
	width: 18px;
	height: 2px;
	transform: translate(-50%, -50%);
	border: 0;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.42);
	transition: background 0.25s ease, transform 0.25s ease;
}

.idi-hero-carousel__dot.is-active::before {
	background: #ffffff;
	transform: translate(-50%, -50%) scaleX(1.45);
}

/* Bouton pause/lecture du défilement automatique */
.idi-hero-carousel__pause {
	position: absolute;
	right: 28px;
	top: 22px;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.42);
	border-radius: 50%;
	background: rgba(29, 29, 31, 0.3);
	box-shadow: none !important;
	color: #ffffff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 4;
	transition: background 0.25s ease;
}

.idi-hero-carousel__pause:hover {
	background: rgba(201, 31, 99, 0.75);
}

/* Icône pause/lecture peinte en dégradé + clip-path (min-width car une règle
   du thème rogne la propriété width des enfants de ce bouton) */
.idi-hero-carousel__pause-icon {
	display: block;
	min-width: 11px;
	min-height: 12px;
}

.idi-hero-carousel__pause.is-playing .idi-hero-carousel__pause-icon {
	background: linear-gradient(90deg, currentColor 0 36%, transparent 36% 64%, currentColor 64% 100%);
}

.idi-hero-carousel__pause.is-paused .idi-hero-carousel__pause-icon {
	background: currentColor;
	clip-path: polygon(8% 0, 100% 50%, 8% 100%);
	margin-left: 2px;
}

.idi-hero-carousel--single .idi-hero-carousel__arrow,
.idi-hero-carousel--single .idi-hero-carousel__dots {
	display: none;
}

@media all and (max-width: 600px) {
	.idi-hero-carousel__dots {
		display: none;
	}

	.idi-hero-carousel__pause {
		top: auto;
		right: 1rem;
		bottom: 1rem;
	}
}

/* ==========================================================================
   Pied de page
   ========================================================================== */

.site-middle-footer-wrap {
	position: relative;
	overflow: hidden;
	background: radial-gradient(60% 140% at 12% 0%, rgba(201, 31, 99, 0.16) 0%, rgba(201, 31, 99, 0) 60%), #1d1d1f;
}

.site-middle-footer-inner-wrap {
	padding-top: 4.5rem !important;
	padding-bottom: 4rem !important;
}

.site-footer-middle-section-1,
.site-footer-middle-section-2 {
	padding-right: 2.5rem;
	border-right: 1px solid rgba(255, 255, 255, 0.1);
}

@media all and (max-width: 767px) {
	.site-footer-middle-section-1,
	.site-footer-middle-section-2 {
		padding-right: 0;
		border-right: none;
		padding-bottom: 2rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}
}

.site-bottom-footer-wrap {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	background: #17171a;
}

.footer-widget-area-inner .widget-title,
.site-footer .widget-title {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.8rem !important;
	color: var(--global-palette1) !important;
	margin-bottom: 1.1rem;
}

.idi-footer-brand {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

/* Sélecteur volontairement doublé : WooCommerce charge après nous une règle
   `.woocommerce-page img { height: auto }` (spécificité 0,1,1) qui écrasait
   `.idi-footer-brand__logo` (0,1,0) — le logo repassait à sa taille naturelle
   (4096px, bridé à 353px par max-width) sur la boutique et les fiches produit.
   Deux classes (0,2,0) l'emportent proprement, sans !important. */
.idi-footer-brand .idi-footer-brand__logo {
	flex: 0 0 auto;
	height: 41px;
	width: auto;
	filter: drop-shadow(0 4px 12px rgba(201, 31, 99, 0.35));
}

.idi-footer-brand__name {
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 1.1rem;
	color: #ffffff;
	margin: 0 0 0.6rem;
}

.idi-footer-brand__tagline {
	margin: 0;
	color: #b9b9bd;
	max-width: 34ch;
	line-height: 1.6;
}

.idi-footer-contact {
	list-style: none;
	margin: 0;
	padding: 0;
	color: #d8d8db;
}

.idi-footer-contact li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.9rem;
}

.idi-footer-contact__icon {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	color: var(--global-palette1);
}

.idi-footer-contact a {
	color: #f2f2f2 !important;
	text-decoration: none;
	background-image: linear-gradient(var(--global-palette1), var(--global-palette1));
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0% 1px;
	transition: color 0.2s ease, background-size 0.25s ease;
	padding-bottom: 2px;
}

.idi-footer-contact a:hover {
	color: var(--global-palette1) !important;
	background-size: 100% 1px;
}

/* Colonne "Liens utiles" — même traitement que les liens de contact */
.idi-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.idi-footer-links li {
	margin-bottom: 0.65rem;
}

.idi-footer-links a {
	color: #d8d8db !important;
	text-decoration: none;
	background-image: linear-gradient(var(--global-palette1), var(--global-palette1));
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0% 1px;
	transition: color 0.2s ease, background-size 0.25s ease;
	padding-bottom: 2px;
}

.idi-footer-links a:hover {
	color: var(--global-palette1) !important;
	background-size: 100% 1px;
}

/* Crédit YN-IT dans la barre du bas */
#colophon .footer-html strong {
	color: #d8d8db;
	font-weight: 600;
}

.site-bottom-footer-inner-wrap {
	text-align: center;
}

/* ==========================================================================
   Animations — chorégraphie d'entrée, Ken Burns, reveals raffinés
   ========================================================================== */

@keyframes idi-rise {
	from {
		opacity: 0;
		transform: translateY(26px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}


@keyframes idi-reveal {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Le titre arrive net depuis un léger flou : l'accent de la chorégraphie */
@keyframes idi-rise-focus {
	from {
		opacity: 0;
		transform: translateY(26px);
		filter: blur(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
		filter: blur(0);
	}
}

/* Montée du visuel : sur le conteneur interne, car le fill-forwards d'un
   transform sur .idi-hero__visual écraserait le tilt parallax inline */
@keyframes idi-visual-rise {
	from {
		transform: translateY(34px);
	}
	to {
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: no-preference) {
	/* Entrée en cascade du hero au chargement */
	.idi-hero__eyebrow,
	.idi-hero__title,
	.idi-hero__lead,
	.idi-hero__quote,
	.idi-hero__cta,
	.idi-hero__badge {
		opacity: 0;
		animation: idi-rise 0.9s var(--idi-ease) forwards;
	}

	.idi-hero__eyebrow { animation-delay: 0.1s; }
	.idi-hero__title { animation-delay: 0.22s; }
	.idi-hero__lead { animation-delay: 0.34s; }
	.idi-hero__quote { animation-delay: 0.46s; }
	.idi-hero__cta { animation-delay: 0.58s; }
	.idi-hero__badge { animation-delay: 0.66s; }

	/* Le titre se met au point (flou → net) pendant sa montée */
	.idi-hero__title {
		animation-name: idi-rise-focus;
		animation-duration: 1s;
	}

	/* Le visuel a sa propre keyframe SANS transform : le fill-forwards d'une
	   animation transform écraserait le tilt parallax posé en style inline. */
	.idi-hero__visual {
		opacity: 0;
		animation: idi-reveal 1s var(--idi-ease) 0.35s forwards;
	}

	/* Les chiffres clés concluent la cascade, un par un */
	.idi-hero__stats > .wp-block-column {
		opacity: 0;
		animation: idi-rise 0.9s var(--idi-ease) forwards;
	}

	.idi-hero__stats > .wp-block-column:nth-child(1) { animation-delay: 0.7s; }
	.idi-hero__stats > .wp-block-column:nth-child(2) { animation-delay: 0.82s; }
	.idi-hero__stats > .wp-block-column:nth-child(3) { animation-delay: 0.94s; }

}

/* Reflet balayant sur les CTA en pilule */
.idi-hero__cta .wp-block-button__link::after,
.idi-cta .wp-block-button__link::after,
.idi-form .kb-adv-form-submit-button::after {
	content: "";
	position: absolute;
	top: 0;
	left: -70%;
	width: 45%;
	height: 100%;
	background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	transform: skewX(-20deg);
	transition: left 0.6s var(--idi-ease);
	pointer-events: none;
}

.idi-hero__cta .wp-block-button__link:hover::after,
.idi-cta .wp-block-button__link:hover::after,
.idi-form .kb-adv-form-submit-button:hover::after {
	left: 130%;
}

/* Soulignement animé des titres de section quand ils entrent à l'écran */
.entry-content h2.wp-block-heading::after {
	content: "";
	display: block;
	width: 64px;
	height: 4px;
	margin: 0.8rem 0 0;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--global-palette1), var(--global-palette2));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.7s var(--idi-ease) 0.25s;
}

.entry-content h2.wp-block-heading.has-text-align-center::after {
	margin-inline: auto;
	transform-origin: center;
}

.entry-content h2.wp-block-heading.aos-animate::after,
.entry-content .aos-animate h2.wp-block-heading::after,
.entry-content h2.wp-block-heading:not(.aos-fade):not(.has-background h2)::after {
	transform: scaleX(1);
}

/* Les sections colorées gardent un soulignement lisible sur fond foncé */
.entry-content .has-background h2.wp-block-heading::after {
	background: rgba(255, 255, 255, 0.85);
}

/* ==========================================================================
   Bande CTA finale (remplace l'ancien bloc sombre redondant avec le footer)
   ========================================================================== */

.idi-cta {
	text-align: center;
	background: radial-gradient(70% 120% at 50% 0%, rgba(201, 31, 99, 0.08) 0%, rgba(201, 31, 99, 0) 70%), #fdf7fa;
	border: 1px solid rgba(201, 31, 99, 0.12);
	border-radius: 20px;
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3rem);
}

.idi-cta__title {
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.5rem, 1vw + 1.2rem, 2rem);
	color: var(--global-palette3);
	margin: 0 0 0.75rem;
}

.idi-cta__title::after {
	display: none;
}

.idi-cta__text {
	color: var(--global-palette5);
	max-width: 52ch;
	margin: 0 auto 1.75rem;
}

.idi-cta__phone {
	margin: 1.25rem 0 0;
}

.idi-cta__phone a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-family: var(--global-heading-font-family);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--global-palette3) !important;
	text-decoration: none;
}

.idi-cta__phone a:hover {
	color: var(--global-palette1) !important;
}

/* ==========================================================================
   Composants éditoriaux des pages internes (Société, …)
   ========================================================================== */

/* Surtitre générique (hors hero, qui a le sien avec sa chorégraphie) */
.idi-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--global-palette1);
	margin: 0 0 0.9rem;
}

/* Intro éditoriale : grand énoncé à gauche, chapô à droite */
.idi-page-intro {
	align-items: center;
}

h1.idi-page-intro__title {
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.9rem, 1.2vw + 1.5rem, 2.8rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--global-palette3);
	margin: 0;
	word-break: normal;
	overflow-wrap: normal;
}

.idi-page-intro__lead {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--global-palette4);
	border-left: 3px solid rgba(201, 31, 99, 0.35);
	padding-left: 1.5rem;
	margin: 0;
}

/* Photo pleine largeur adoucie */
.idi-photo img {
	width: 100%;
	height: auto;
	border-radius: 18px;
	box-shadow: 0 24px 48px -20px rgba(29, 29, 31, 0.35);
}

/* Variante des cartes sans image (coordonnées de contact, etc.) :
   le padding passe sur la colonne entière */
.idi-bento-row.idi-cards-text > .wp-block-column {
	padding: 1.6rem 1.75rem 1.75rem;
}

.idi-bento-row.idi-cards-text > .wp-block-column > h3,
.idi-bento-row.idi-cards-text > .wp-block-column > p {
	padding: 0;
}

/* Formulaire de contact : carte douce alignée sur la DA du site */
.idi-form {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
	background: radial-gradient(70% 120% at 50% 0%, rgba(201, 31, 99, 0.06) 0%, rgba(201, 31, 99, 0) 70%), #fdfafb;
	border: 1px solid rgba(201, 31, 99, 0.1);
	border-radius: 20px;
	padding: clamp(1.75rem, 4vw, 3rem);
}

.entry-content > .idi-form {
	margin-top: 1.5rem;
}

.entry-content .idi-form .kb-adv-form-field {
	margin-bottom: 1.25rem;
}

.entry-content .idi-form label,
.entry-content .idi-form .kb-adv-form-label {
	font-weight: 600;
	color: var(--global-palette3);
	margin-bottom: 0.4rem;
}

.entry-content .idi-form input[type="text"],
.entry-content .idi-form input[type="email"],
.entry-content .idi-form input[type="tel"],
.entry-content .idi-form select,
.entry-content .idi-form textarea {
	width: 100%;
	background: #ffffff;
	border: 1px solid #e2e2e6;
	border-radius: 10px;
	padding: 0.8em 1em;
	font-family: inherit;
	font-size: 1rem;
	color: var(--global-palette3);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Le CSS du plugin définit son propre :focus, chargé après : on verrouille */
.entry-content .idi-form input:focus,
.entry-content .idi-form select:focus,
.entry-content .idi-form textarea:focus {
	outline: none;
	border-color: var(--global-palette1) !important;
	box-shadow: 0 0 0 4px rgba(201, 31, 99, 0.12) !important;
}

/* Chevron custom des listes déroulantes */
.entry-content .idi-form select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C91F63' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1em center;
	padding-right: 2.6em;
	cursor: pointer;
}

.entry-content .idi-form textarea {
	min-height: 150px;
	resize: vertical;
}

.entry-content .idi-form input[type="checkbox"] {
	accent-color: var(--global-palette1);
	width: 1.1em;
	height: 1.1em;
	cursor: pointer;
}

/* Le bouton Kadence garde des styles propres chargés après les nôtres :
   on verrouille la pilule sur les propriétés décisives */
.entry-content .idi-form .kb-adv-form-submit-button {
	border: 0 !important;
	border-radius: 999px !important;
	padding: 0.9rem 1.85rem !important;
	background: var(--global-palette1) !important;
	color: #ffffff !important;
	font-weight: 600;
	font-size: 1.05rem;
	cursor: pointer;
	box-shadow: 0 14px 30px -12px rgba(201, 31, 99, 0.65) !important;
}

.entry-content .idi-form .kb-adv-form-submit-button:hover {
	background: var(--global-palette2) !important;
	box-shadow: 0 20px 40px -14px rgba(201, 31, 99, 0.8) !important;
}

/* Page Contact : hiérarchie de surfaces plus franche, sans perdre la
   luminosité attendue d'un univers médical. */
body.page:not(.home) {
	background: #eef0f2;
}

body.page:not(.home) #inner-wrap {
	background: linear-gradient(180deg, #eef0f2 0%, #f6f7f8 72%, #eef0f2 100%);
}

body.page:not(.home) .content-bg {
	background: transparent;
	box-shadow: none;
}

body.page:not(.home) .idi-page-intro {
	position: relative;
	padding: clamp(2.25rem, 4vw, 3.75rem);
	border-radius: 8px;
	background: radial-gradient(80% 140% at 100% 0%, rgba(201, 31, 99, 0.16) 0%, rgba(201, 31, 99, 0) 58%), #18171a;
	box-shadow: 0 24px 54px -38px rgba(18, 18, 21, 0.8);
}

body.page:not(.home) h1.idi-page-intro__title {
	color: #ffffff;
	margin-top: 0;
}

body.page:not(.home) .idi-page-intro .idi-eyebrow {
	margin: 0 0 2rem;
}

body.page:not(.home) .idi-page-intro__lead {
	color: #d7d7dc;
	border-left-color: rgba(230, 52, 120, 0.75);
}

.page-id-32 .idi-cards-text > .wp-block-column {
	border: 1px solid #dfe1e4;
	border-radius: 8px;
	box-shadow: 0 16px 36px -30px rgba(29, 29, 31, 0.55);
}

.page-id-32 .idi-cards-text > .wp-block-column:hover {
	transform: none;
	box-shadow: 0 16px 36px -30px rgba(29, 29, 31, 0.55);
}

.page-id-32 h2.wp-block-heading:has(+ .idi-form) {
	position: relative;
	z-index: 1;
	max-width: 980px;
	margin: 2.75rem auto 0;
	padding: 1.65rem clamp(1.5rem, 4vw, 3rem);
	border-radius: 8px 8px 0 0;
	background: #18171a;
	color: #ffffff;
	font-size: clamp(1.65rem, 3vw, 2.25rem);
	text-align: left !important;
}

.page-id-32 h2.wp-block-heading:has(+ .idi-form)::after {
	width: 48px;
	margin: 0.8rem 0 0;
	background: var(--global-palette1);
}

.page-id-32 .idi-form {
	max-width: 980px;
	margin-top: 0;
	padding: clamp(1.75rem, 4vw, 3rem);
	border: 1px solid #dfe1e4;
	border-top: 0;
	border-radius: 0 0 8px 8px;
	background: #ffffff;
	box-shadow: 0 28px 65px -42px rgba(18, 18, 21, 0.62);
}

.page-id-32 .idi-form .kb-advanced-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem 1.5rem;
}

.page-id-32 .idi-form .kb-adv-form-field {
	min-width: 0;
	margin: 0;
}

.page-id-32 .idi-form .wp-block-kadence-advanced-form-textarea,
.page-id-32 .idi-form .wp-block-kadence-advanced-form-accept,
.page-id-32 .idi-form .wp-block-kadence-advanced-form-submit,
.page-id-32 .idi-form .kb-adv-form-message {
	grid-column: 1 / -1;
}

.page-id-32 .idi-form .kb-adv-form-label {
	margin-bottom: 0.5rem;
	color: #454349;
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.06em;
	line-height: 1.35;
	text-transform: uppercase;
}

.page-id-32 .idi-form .kb-adv-form-required {
	color: var(--global-palette1);
}

.page-id-32 .idi-form input[type="text"],
.page-id-32 .idi-form input[type="email"],
.page-id-32 .idi-form input[type="tel"],
.page-id-32 .idi-form select,
.page-id-32 .idi-form textarea {
	min-height: 54px;
	border-color: #d9dadd;
	border-radius: 4px;
	background-color: #f7f7f8;
	box-shadow: inset 0 1px 0 rgba(18, 18, 21, 0.03);
	transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.page-id-32 .idi-form input:hover,
.page-id-32 .idi-form select:hover,
.page-id-32 .idi-form textarea:hover {
	border-color: #b8b8bd;
	background-color: #ffffff;
}

.page-id-32 .idi-form textarea {
	min-height: 170px;
}

.page-id-32 .idi-form .kb-radio-check-item-wrap {
	margin: 0;
	padding: 1.1rem 1.2rem;
	border: 1px solid #e1e2e5;
	border-radius: 4px;
	background: #f7f7f8;
}

.page-id-32 .idi-form .kb-radio-check-item {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.page-id-32 .idi-form .kb-radio-check-item label {
	margin: 0;
	color: #5d5b61;
	font-size: 0.86rem;
	font-weight: 500;
	line-height: 1.55;
}

.page-id-32 .idi-form input[type="checkbox"] {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin-top: 0.1rem;
}

.page-id-32 .idi-form .kb-adv-form-submit-button {
	min-height: 54px;
	border-radius: 4px !important;
	font-size: 0.92rem;
	font-weight: 750;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

@media all and (max-width: 640px) {
	.page-id-32 h2.wp-block-heading:has(+ .idi-form) {
		margin-top: 2rem;
		padding: 1.35rem 1.25rem;
	}

	.page-id-32 .idi-form {
		padding: 1.35rem 1.25rem 1.5rem;
	}

	.page-id-32 .idi-form .kb-advanced-form {
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem;
	}

	.page-id-32 .idi-form .wp-block-kadence-advanced-form-textarea,
	.page-id-32 .idi-form .wp-block-kadence-advanced-form-accept,
	.page-id-32 .idi-form .wp-block-kadence-advanced-form-submit,
	.page-id-32 .idi-form .kb-adv-form-message {
		grid-column: auto;
	}

	.page-id-32 .idi-form .kb-adv-form-submit-button {
		width: 100%;
		justify-content: center;
	}
}

@media all and (max-width: 781px) {
	body.page:not(.home) .idi-page-intro {
		padding: 2rem 1.5rem;
	}
}

/* Messages de retour (succès / erreur) */
.idi-form .kb-adv-form-message {
	border-radius: 12px;
	padding: 1rem 1.25rem;
	font-weight: 600;
}

.idi-form .kb-adv-form-success {
	background: rgba(19, 97, 46, 0.08);
	border: 1px solid rgba(19, 97, 46, 0.3);
	color: #13612e;
}

.idi-form .kb-adv-form-warning,
.idi-form .kb-adv-form-error {
	background: rgba(184, 33, 5, 0.06);
	border: 1px solid rgba(184, 33, 5, 0.3);
	color: #b82105;
}

/* Certifications en puces-pilules (simple bloc Liste dans l'admin) */
.idi-chips {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 1rem 0 0;
	padding: 0;
}

.idi-chips li {
	border: 1px solid rgba(201, 31, 99, 0.35);
	background: rgba(201, 31, 99, 0.05);
	color: var(--global-palette2);
	border-radius: 999px;
	padding: 0.35rem 0.95rem;
	font-size: 0.85rem;
	font-weight: 600;
}

/* ==========================================================================
   Pages internes — socle premium pleine largeur
   ========================================================================== */

:where(.idi-has-page-intro) #primary.content-area {
	margin-top: 0;
	margin-bottom: 0;
}

body:is(.idi-has-page-intro) .entry-content-wrap {
	padding: 0 !important;
}

/* --idi-hero-veil : les deux couches posées AU-DESSUS de la photo d'un
   bandeau (voile sombre de gauche à droite pour la lisibilité du titre, puis
   halo rose). Déclarée une fois ici et réutilisée par toutes les règles
   ci-dessous — ainsi que par le CSS en ligne généré pour les images choisies
   depuis l'administration (voir idi_child_hero_bg_inline_css).

   Portée volontairement sur `.idi-page-intro` seul, sans dépendre de la
   classe de corps : une variable absente rendrait toute la déclaration
   `background` invalide et le bandeau perdrait son fond. */
.idi-page-intro {
	--idi-hero-veil:
		linear-gradient(90deg, rgba(15, 14, 16, 0.95) 0%, rgba(20, 16, 19, 0.82) 48%, rgba(20, 15, 18, 0.42) 100%),
		radial-gradient(70% 170% at 88% 10%, rgba(214, 43, 111, 0.18), transparent 58%);
}

:where(.idi-has-page-intro) .entry-content > .idi-page-intro {
	width: 100vw !important;
	max-width: none !important;
	min-height: clamp(430px, 52vw, 620px);
	margin: 0 calc(50% - 50vw) !important;
	padding: clamp(5rem, 9vw, 8rem) max(2rem, calc((100vw - 1240px) / 2)) !important;
	border-radius: 0 !important;
	background:
		radial-gradient(70% 170% at 88% 10%, rgba(214, 43, 111, 0.2), transparent 58%),
		linear-gradient(120deg, #171518 0%, #211a1e 100%) !important;
	box-shadow: none;
}

/* Images de bandeau par défaut, livrées avec le thème. Une image choisie
   depuis l'administration prend le pas sur ces règles (CSS en ligne, imprimé
   après cette feuille). */
.page-id-34 .entry-content > .idi-page-intro {
	background: var(--idi-hero-veil), url("images/partners.jpeg") 68% 58% / cover no-repeat !important;
}

.page-id-32 .entry-content > .idi-page-intro {
	background: var(--idi-hero-veil), url("images/contact.jpg") 52% 60% / cover no-repeat !important;
}

.page-id-33 .entry-content > .idi-page-intro {
	background: var(--idi-hero-veil), url("images/recrutement.jpg") 62% 45% / cover no-repeat !important;
}

.idi-editorial-hub .entry-content > .idi-page-intro {
	background: var(--idi-hero-veil), url("images/articles.jpg") 45% 45% / cover no-repeat !important;
}

.page-id-319 .entry-content > .idi-page-intro {
	background: var(--idi-hero-veil), url("images/rubrique-cas-cliniques.jpg") 50% 50% / cover no-repeat !important;
}

:where(.idi-has-page-intro) .idi-page-intro .idi-eyebrow {
	margin-bottom: 2rem;
	color: #f0528f;
	font-size: 0.72rem;
	letter-spacing: 0.2em;
}

:where(.idi-has-page-intro) h1.idi-page-intro__title {
	max-width: 760px;
	color: #ffffff;
	font-size: clamp(2.1rem, 3vw, 2.85rem);
	line-height: 1.1;
	letter-spacing: 0;
	text-wrap: balance;
	word-break: normal;
	overflow-wrap: normal;
}

/* Chapô aligné sur le haut du titre (hauteur du sur-titre + sa marge) */
:where(.idi-has-page-intro) .entry-content > .idi-page-intro > .wp-block-column:has(> .idi-page-intro__lead) {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding-top: calc(0.72rem * 1.6 + 2rem);
}

@media all and (min-width: 782px) {
	/* Bloc centré verticalement dans le bandeau, colonnes alignées par le haut */
	:where(.idi-has-page-intro) .entry-content > .idi-page-intro {
		display: grid !important;
		grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
		align-content: center;
		align-items: start;
	}
}

@media all and (max-width: 781px) {
	:where(.idi-has-page-intro) .entry-content > .idi-page-intro > .wp-block-column:has(> .idi-page-intro__lead) {
		padding-top: 0;
	}
}

:where(.idi-has-page-intro) .idi-page-intro__lead {
	max-width: 540px;
	padding-left: 1.75rem;
	border-left-color: #d62b6f;
	color: rgba(255, 255, 255, 0.76);
	font-size: clamp(1rem, 1.25vw, 1.2rem);
	line-height: 1.75;
}

@media all and (max-width: 767px) {
	/* Sur mobile le voile passe de horizontal à vertical et s'allège : la
	   colonne est étroite et le texte centré, un dégradé latéral n'aurait
	   plus de sens. Redéfinir la variable suffit — toutes les règles qui
	   l'utilisent basculent, y compris le CSS en ligne de l'administration. */
	.idi-page-intro {
		--idi-hero-veil:
			linear-gradient(180deg, rgba(15, 14, 16, 0.88) 0%, rgba(20, 16, 19, 0.8) 58%, rgba(20, 15, 18, 0.66) 100%),
			radial-gradient(90% 110% at 88% 12%, rgba(214, 43, 111, 0.16), transparent 64%);
	}

	:where(.idi-has-page-intro) .entry-content > .idi-page-intro {
		min-height: 540px;
		padding: 5rem 1.5rem !important;
		align-items: center;
		text-align: center;
	}

	/* Cadrages resserrés pour les images du thème : sur un écran étroit, le
	   recadrage `cover` rogne beaucoup plus sur les côtés. */
	.page-id-34 .entry-content > .idi-page-intro {
		background: var(--idi-hero-veil), url("images/partners.jpeg") 61% 58% / cover no-repeat !important;
	}

	.page-id-32 .entry-content > .idi-page-intro {
		background: var(--idi-hero-veil), url("images/contact.jpg") 46% 60% / cover no-repeat !important;
	}

	.page-id-33 .entry-content > .idi-page-intro {
		background: var(--idi-hero-veil), url("images/recrutement.jpg") 58% 45% / cover no-repeat !important;
	}

	.idi-editorial-hub .entry-content > .idi-page-intro {
		background: var(--idi-hero-veil), url("images/articles.jpg") 40% 45% / cover no-repeat !important;
	}

	.page-id-319 .entry-content > .idi-page-intro {
		background: var(--idi-hero-veil), url("images/rubrique-cas-cliniques.jpg") 50% 50% / cover no-repeat !important;
	}

	:where(.idi-has-page-intro) .idi-page-intro .idi-eyebrow {
		width: 100%;
	}

	:where(.idi-has-page-intro) h1.idi-page-intro__title {
		max-width: none;
		font-size: clamp(1.9rem, 7.5vw, 2.5rem);
		line-height: 1.1;
	}

	:where(.idi-has-page-intro) .idi-page-intro__lead {
		max-width: 420px;
		margin-inline: auto;
		border-left: none;
		border-top: 3px solid #d62b6f;
		padding-left: 0;
		padding-top: 1.25rem;
	}
}

/* Contact — coordonnées, formulaire et visite comme trois séquences continues. */
.page-id-32 .entry-content > .idi-cards-text,
.page-id-32 .entry-content > h2:has(+ .idi-form),
.page-id-32 .entry-content > .idi-form,
.page-id-32 .entry-content > .idi-visit {
	width: 100vw !important;
	max-width: none !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
	border-radius: 0;
}

.page-id-32 .entry-content > .idi-cards-text {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(3rem, 8vw, 8rem);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding: clamp(4.5rem, 7vw, 6.5rem) max(1.5rem, calc((100vw - 1120px) / 2));
	background: #ffffff;
}

.page-id-32 .idi-cards-text > .wp-block-column {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-width: 0;
	padding: 1.75rem 0 0;
	border: 0;
	border-top: 1px solid rgba(29, 29, 31, 0.2);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
}

.page-id-32 .idi-cards-text > .wp-block-column::before {
	position: absolute;
	top: -1px;
	left: 0;
	width: 52px;
	height: 3px;
	background: #d62b6f;
	content: "";
}

.page-id-32 .idi-cards-text > .wp-block-column > h3 {
	margin: 2.4rem 0 0.6rem;
	color: #1d1d1f;
	font-size: clamp(1.65rem, 2.4vw, 2.5rem);
	line-height: 1.08;
	letter-spacing: 0;
}

.page-id-32 .idi-cards-text > .wp-block-column > p {
	max-width: 440px;
	margin: 0;
	color: #67676c;
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	line-height: 1.65;
}

.page-id-32 .entry-content > h2.wp-block-heading:has(+ .idi-form) {
	margin-top: 0 !important;
	padding: clamp(6rem, 10vw, 9rem) max(1.5rem, calc((100vw - 980px) / 2)) 1.5rem;
	background: #ffffff;
	color: #1d1d1f;
}

.page-id-32 .entry-content > .idi-form {
	margin-top: 0 !important;
	padding: 1.5rem max(1.5rem, calc((100vw - 980px) / 2)) clamp(6rem, 10vw, 9rem);
	border: 0;
	background: #ffffff;
	box-shadow: none;
}

.page-id-32 .idi-form .kb-advanced-form {
	max-width: 980px;
	margin-inline: auto;
}

.page-id-32 .entry-content > .idi-visit {
	margin-top: 0 !important;
	padding: clamp(6rem, 10vw, 9rem) max(1.5rem, calc((100vw - 1200px) / 2));
	border: 0;
}

/* Recrutement — preuve de solidité puis appel à candidature ample. */
.page-id-33 .entry-content > .idi-stats {
	position: relative;
	z-index: 2;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	width: min(1120px, calc(100vw - 4rem));
	margin: -4rem auto 0 !important;
	padding: 2rem 1.5rem;
	overflow: hidden;
	/* Même bande que la page Société */
	background:
		radial-gradient(130% 240% at 86% 0%, rgba(214, 43, 111, 0.4) 0%, rgba(214, 43, 111, 0.12) 42%, rgba(214, 43, 111, 0) 72%),
		linear-gradient(135deg, #2b2330 0%, #1f1c22 64%);
	border: 1px solid rgba(214, 43, 111, 0.22);
	border-radius: 6px;
	box-shadow: 0 32px 80px -42px rgba(15, 14, 16, 0.9);
}

.page-id-33 .entry-content > .idi-stats::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 2px;
	background: linear-gradient(90deg, #d62b6f 0%, #d62b6f 38%, rgba(214, 43, 111, 0.5) 68%, rgba(214, 43, 111, 0) 96%);
}

.page-id-33 .idi-stats > .wp-block-column {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 90px;
	padding: 0.5rem 2rem;
}

.page-id-33 .idi-stats > .wp-block-column + .wp-block-column {
	border-left-color: rgba(255, 255, 255, 0.15);
}

.page-id-33 .idi-stats__value {
	margin: 0 !important;
	color: #ffffff;
}

.page-id-33 .idi-stats__label {
	margin: 0.5rem 0 0 !important;
	color: rgba(255, 255, 255, 0.58);
}

.page-id-33 .entry-content > .idi-cta {
	width: 100vw;
	max-width: none;
	margin: -4rem calc(50% - 50vw) 0 !important;
	padding: clamp(11rem, 16vw, 15rem) max(1.5rem, calc((100vw - 900px) / 2)) clamp(7rem, 11vw, 10rem);
	border: 0;
	border-radius: 0;
	background: #f3f4f2;
}

/* Partenaires — registre éditorial continu, logos traités comme signatures. */
.page-id-34 .entry-content > .idi-bento-featured,
.page-id-34 .entry-content > .idi-cta {
	width: 100vw !important;
	max-width: none !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.page-id-34 .entry-content > .idi-bento-featured {
	position: relative;
	display: grid !important;
	grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.45fr);
	gap: clamp(3rem, 7vw, 7rem) !important;
	min-height: 0;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding: clamp(4.5rem, 7vw, 6.5rem) max(1.5rem, calc((100vw - 1180px) / 2));
	border-top: 1px solid #dedfdb;
	background:
		radial-gradient(55% 150% at 8% 15%, rgba(214, 43, 111, 0.055), transparent 58%),
		#f4f5f2;
	overflow: hidden;
}

.page-id-34 .entry-content > .idi-bento-featured::after {
	position: absolute;
	top: 50%;
	right: max(1.5rem, calc((100vw - 1320px) / 2));
	transform: translateY(-50%);
	color: rgba(29, 29, 31, 0.04);
	font-family: var(--global-heading-font-family);
	font-size: clamp(8rem, 15vw, 14rem);
	font-weight: 700;
	line-height: 0.8;
	letter-spacing: 0;
	pointer-events: none;
}

.page-id-34 .entry-content > .idi-bento-featured:nth-child(2)::after {
	content: "AiiO" / "";
}

.page-id-34 .entry-content > .idi-bento-featured:nth-child(3)::after {
	content: "A.R.O.M" / "";
}

.page-id-34 .entry-content > .idi-bento-featured:hover {
	transform: none;
	box-shadow: none;
}

.page-id-34 .idi-bento-featured > .idi-bento__media {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 230px;
	padding: clamp(2rem, 4vw, 3.25rem);
	border: 1px solid rgba(29, 29, 31, 0.1);
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 30px 70px -48px rgba(29, 29, 31, 0.42);
}

.page-id-34 .idi-bento-featured > .idi-bento__body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	min-width: 0;
	padding: 0 0 0 clamp(2rem, 4vw, 3.5rem);
	border-left: 1px solid rgba(214, 43, 111, 0.3);
	background: transparent;
}

.page-id-34 .idi-bento-featured > .idi-bento__media,
.page-id-34 .idi-bento-featured > .idi-bento__body {
	flex-basis: auto !important;
	width: auto !important;
}

.page-id-34 .idi-bento-featured .idi-bento__media .wp-block-image {
	margin: 0;
}

.page-id-34 .idi-bento-featured .idi-bento__media img {
	display: block;
	width: auto;
	max-width: min(275px, 100%);
	height: auto;
	filter: none;
}

.page-id-34 .idi-bento-featured .idi-bento__eyebrow {
	margin: 0 0 1.5rem;
	color: #f0528f;
	font-size: 0.7rem;
	letter-spacing: 0.16em;
}

.page-id-34 .idi-bento-featured .idi-bento__title {
	max-width: 760px;
	margin: 0 0 1.25rem;
	color: #1d1d1f;
	font-size: clamp(2rem, 3.2vw, 3.25rem);
	line-height: 1.05;
	letter-spacing: 0;
}

.page-id-34 .idi-bento-featured .idi-bento__text {
	max-width: 700px;
	margin: 0 0 1.5rem;
	color: #66666b;
	font-size: clamp(1rem, 1.15vw, 1.12rem);
	line-height: 1.75;
}

.page-id-34 .idi-bento-featured .idi-bento__link {
	margin: 0;
}

.page-id-34 .idi-bento-featured .idi-bento__link a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding-bottom: 0;
	font-size: 0.86rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #f0528f !important;
	background-image: linear-gradient(#f0528f, #f0528f);
}

.page-id-34 .entry-content > .idi-cta {
	margin-top: 0 !important;
	padding: clamp(6rem, 10vw, 9rem) max(1.5rem, calc((100vw - 900px) / 2));
	background: radial-gradient(70% 180% at 10% 0%, rgba(214, 43, 111, 0.2), transparent 60%), #1d171a;
}

.page-id-34 .idi-cta :is(.idi-cta__title, .idi-cta__text) {
	color: #ffffff;
}

.page-id-34 .idi-cta .idi-cta__text {
	color: rgba(255, 255, 255, 0.72);
}

/* Pages juridiques — luxe discret, largeur de lecture maîtrisée. */
:where(.page-id-42, .page-id-82) .entry-content > :not(.idi-page-intro) {
	width: min(860px, calc(100vw - 3rem));
	margin-right: auto;
	margin-left: auto;
}

:where(.page-id-42, .page-id-82) .entry-content > .idi-page-intro + * {
	margin-top: clamp(5rem, 9vw, 8rem);
}

:where(.page-id-42, .page-id-82) .entry-content > h2 {
	margin-top: clamp(4rem, 7vw, 6rem);
	padding-top: 2rem;
	border-top: 1px solid #dfe1dd;
	font-size: clamp(1.8rem, 3vw, 2.5rem);
}

:where(.page-id-42, .page-id-82) .entry-content > :last-child {
	margin-bottom: clamp(6rem, 10vw, 9rem);
}

@media all and (max-width: 767px) {
	.page-id-32 .entry-content > .idi-cards-text,
	.page-id-32 .entry-content > h2:has(+ .idi-form),
	.page-id-32 .entry-content > .idi-form,
	.page-id-32 .entry-content > .idi-visit,
	.page-id-34 .entry-content > .idi-bento-featured,
	.page-id-34 .entry-content > .idi-cta {
		margin-right: calc(50% - 50vw) !important;
		margin-left: calc(50% - 50vw) !important;
	}

	.page-id-32 .entry-content > .idi-cards-text {
		grid-template-columns: minmax(0, 1fr);
		gap: 3rem;
		width: 100vw !important;
		padding: 4rem 1.5rem;
	}

	.page-id-32 .idi-cards-text > .wp-block-column {
		padding-top: 1.5rem;
	}

	.page-id-32 .idi-cards-text > .wp-block-column > h3 {
		margin-top: 1.75rem;
	}

	.page-id-32 .entry-content > h2.wp-block-heading:has(+ .idi-form) {
		padding: 5rem 1.5rem 1rem;
	}

	.page-id-32 .entry-content > .idi-form {
		padding: 1rem 1.5rem 5rem;
	}

	.page-id-33 .entry-content > .idi-stats {
		grid-template-columns: 1fr;
		width: calc(100vw - 2rem);
		padding: 1rem;
	}

	.page-id-33 .idi-stats > .wp-block-column {
		min-height: 92px;
		padding: 1rem;
	}

	.page-id-33 .idi-stats > .wp-block-column + .wp-block-column {
		border-top: 1px solid rgba(255, 255, 255, 0.15);
		border-left: 0;
	}

	.page-id-33 .entry-content > .idi-cta {
		padding: 9rem 1.5rem 6rem;
	}

	.page-id-34 .entry-content > .idi-bento-featured {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.25rem !important;
		padding: 3.5rem 1.5rem 3.75rem;
	}

	.page-id-34 .idi-bento-featured > .idi-bento__media {
		min-height: 190px;
		padding: 2rem 1.5rem;
	}

	.page-id-34 .idi-bento-featured > .idi-bento__body {
		padding: 0;
		border-left: 0;
	}

	.page-id-34 .idi-bento-featured .idi-bento__media img {
		max-width: min(220px, 72vw);
	}

	.page-id-34 .idi-bento-featured .idi-bento__title {
		margin-bottom: 1rem;
		font-size: clamp(1.75rem, 7.2vw, 2.2rem);
		line-height: 1.08;
	}

	.page-id-34 .idi-bento-featured .idi-bento__eyebrow {
		margin-bottom: 1.15rem;
	}

	.page-id-34 .idi-bento-featured .idi-bento__text {
		margin-bottom: 1.25rem;
		font-size: 1rem;
		line-height: 1.65;
	}

	.page-id-34 .entry-content > .idi-bento-featured::after {
		top: auto;
		right: 1rem;
		bottom: 1rem;
		transform: none;
		font-size: 7rem;
	}
}

/* ==========================================================================
   Société — page de présentation (sections nommées, indépendantes de l'ordre
   des blocs : la page reste modifiable dans l'éditeur sans casser la mise en page)
   ========================================================================== */

.page-id-31 #primary.content-area {
	margin-top: 0;
	margin-bottom: 0;
}

.page-id-31 .entry-content-wrap {
	padding-top: 0;
	padding-bottom: 0;
}

body.page.page-id-31 #inner-wrap {
	background: #ffffff;
}

/* Bande de chiffres clés posée à cheval sur le bandeau */
.page-id-31 .entry-content > .idi-stats {
	position: relative;
	z-index: 3;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	width: min(1240px, calc(100vw - 4rem));
	max-width: none;
	margin: -4.5rem auto 0 !important;
	padding: 2rem 1.5rem;
	overflow: hidden;
	background:
		radial-gradient(130% 240% at 86% 0%, rgba(214, 43, 111, 0.4) 0%, rgba(214, 43, 111, 0.12) 42%, rgba(214, 43, 111, 0) 72%),
		linear-gradient(135deg, #2b2330 0%, #1f1c22 64%);
	border: 1px solid rgba(214, 43, 111, 0.22);
	border-radius: 6px;
	box-shadow: 0 32px 80px -42px rgba(15, 14, 16, 0.9);
}

.page-id-31 .entry-content > .idi-stats::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 2px;
	background: linear-gradient(90deg, #d62b6f 0%, #d62b6f 38%, rgba(214, 43, 111, 0.5) 68%, rgba(214, 43, 111, 0) 96%);
}

.page-id-31 .entry-content > .idi-stats > .wp-block-column {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 88px;
	padding: 0.25rem clamp(1rem, 2.5vw, 2.25rem);
}

.page-id-31 .entry-content > .idi-stats > .wp-block-column + .wp-block-column {
	border-left-color: rgba(255, 255, 255, 0.16);
}

.page-id-31 .idi-stats__value {
	color: #ffffff;
	margin: 0 !important;
}

.page-id-31 .idi-stats__label {
	color: rgba(255, 255, 255, 0.68);
	margin: 0.45rem 0 0 !important;
}

/* Sections pleine largeur, contenu centré sur 1200px */
.idi-about-section {
	position: relative;
	width: 100vw !important;
	max-width: none !important;
	margin: 0 calc(50% - 50vw) !important;
	padding: clamp(5rem, 9vw, 8.5rem) max(1.5rem, calc((100vw - 1240px) / 2)) !important;
	background: #ffffff;
	color: #4a4a50;
}

.idi-about-section > .wp-block-group__inner-container {
	max-width: 1240px;
	margin-inline: auto;
}

.idi-about-section--first {
	padding-top: clamp(6.5rem, 11vw, 9.5rem) !important;
}

.idi-about-section--light {
	background: #f4f5f2;
}

.idi-about-section--dark {
	background: radial-gradient(70% 120% at 100% 0%, rgba(214, 43, 111, 0.2) 0%, rgba(214, 43, 111, 0) 60%), #18171a;
	color: rgba(255, 255, 255, 0.74);
}

.idi-about-section .idi-about-eyebrow {
	margin: 0 0 1rem !important;
	color: #c91f63;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.idi-about-section--dark .idi-about-eyebrow {
	color: #f0528f;
}

.idi-about-section h2 {
	max-width: 24ch;
	margin: 0 0 1.5rem !important;
	color: #17171a;
	font-size: clamp(1.9rem, 3vw, 2.75rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
}

.idi-about-section--dark h2,
.idi-about-section--dark h3 {
	color: #ffffff;
}

.idi-about-section h2,
.idi-about-section p.idi-about-statement,
.idi-about-section .idi-about-quote p {
	text-wrap: balance;
}

.idi-nowrap {
	white-space: nowrap;
}

.idi-about-section p {
	text-wrap: pretty;
	max-width: 68ch;
	margin: 0 0 1.15rem;
	font-size: 1.05rem;
	line-height: 1.8;
}

.idi-about-section p.idi-about-lead {
	color: #17171a;
	font-size: clamp(1.2rem, 1.7vw, 1.45rem);
	font-weight: 500;
	line-height: 1.6;
}

.idi-about-section--dark p.idi-about-lead {
	color: #ffffff;
}

/* Deux colonnes : texte + visuel / texte + texte */
.idi-about-section .idi-about-split {
	align-items: center !important;
	gap: clamp(3rem, 6vw, 6rem) !important;
	margin: 0 !important;
}

.idi-about-section .idi-about-split--top {
	align-items: flex-start !important;
}

/* Titre + chapeau à gauche (sticky), texte à droite aligné sur le titre */
.idi-about-section .idi-about-split--top > .wp-block-column:first-child,
.idi-about-section .idi-about-split > .wp-block-column:first-child:has(> .idi-about-logo) {
	position: sticky;
	top: 7.5rem;
	align-self: flex-start;
}

.idi-about-section .idi-about-split--top > .wp-block-column:first-child > :last-child {
	margin-bottom: 0 !important;
}

.idi-about-section .idi-about-split--top > .wp-block-column:last-child {
	padding-top: 2.1rem;
}

.idi-about-section .idi-about-split--top > .wp-block-column:last-child > :last-child {
	margin-bottom: 0 !important;
}

.idi-about-section .idi-about-split--top h2 {
	font-size: clamp(1.9rem, 2.7vw, 2.45rem);
	text-wrap: balance;
}

/* Verbes empilés dans la colonne de droite */
.idi-about-section .idi-about-split--top .idi-about-verbs {
	flex-direction: column;
	gap: 0.15rem;
}

.idi-about-section .idi-about-split--top .idi-about-verbs li {
	font-size: clamp(1.7rem, 2.6vw, 2.35rem);
}

.idi-about-section .idi-about-split--top .idi-about-verbs li::after {
	content: none !important;
}

/* Philosophie de l'entreprise : citation mise en exergue */
.idi-about-section .idi-about-quote {
	max-width: 900px;
	margin: clamp(3rem, 5vw, 4.5rem) 0 0 !important;
	padding: 0 0 0 clamp(1.5rem, 3vw, 2.5rem) !important;
	border-left: 3px solid #c91f63 !important;
}

.idi-about-section .idi-about-quote p {
	max-width: none;
	margin: 0;
	color: #17171a;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	font-style: normal;
	font-weight: 600;
	line-height: 1.45;
}

/* Frise chronologique (section Histoire) */
.idi-about-section .idi-timeline {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 0;
	margin: clamp(3rem, 5vw, 4.5rem) 0 0 !important;
	padding: 0 !important;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.idi-about-section .idi-timeline li {
	position: relative;
	margin: 0;
	padding: 1.9rem 1.5rem 0 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.95rem;
	line-height: 1.55;
}

.idi-about-section .idi-timeline li::before {
	content: "";
	position: absolute;
	top: -7px;
	left: 0;
	width: 13px;
	height: 13px;
	border: 2px solid #e63478;
	border-radius: 50%;
	background: #18171a;
	box-sizing: border-box;
}

.idi-about-section .idi-timeline li:first-child::before,
.idi-about-section .idi-timeline li:last-child::before {
	background: #e63478;
	box-shadow: 0 0 0 6px rgba(230, 52, 120, 0.18);
}

.idi-about-section .idi-timeline li strong {
	display: block;
	margin-bottom: 0.45rem;
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.1;
}

.idi-about-section p.idi-about-statement {
	max-width: none;
	margin: clamp(3rem, 5vw, 4rem) 0 0;
	padding-top: 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.25rem, 2.2vw, 1.8rem);
	font-weight: 600;
	line-height: 1.4;
}

/* Logos de certification présentés en carte */
.idi-about-section .idi-about-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: clamp(2rem, 4vw, 3rem);
	border: 1px solid rgba(23, 23, 26, 0.06);
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 34px 70px -44px rgba(16, 16, 19, 0.55);
}

.idi-about-section .idi-about-logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 380px;
	object-fit: contain;
}

.idi-about-section .idi-about-logo--wide {
	padding: 0;
	overflow: hidden;
}

.idi-about-section .idi-about-logo--wide img {
	width: 100%;
	max-height: none;
}

/* Liste à puces cochées (familles certifiées) */
.idi-about-section .idi-checklist {
	display: grid;
	gap: 0.75rem;
	margin: 1.5rem 0 1.75rem !important;
	padding: 0 !important;
	list-style: none;
}

.idi-about-section .idi-checklist li {
	position: relative;
	margin: 0;
	padding: 0.85rem 1.1rem 0.85rem 3.1rem;
	border: 1px solid rgba(23, 23, 26, 0.07);
	border-radius: 8px;
	background: #ffffff;
	color: #17171a;
	font-weight: 600;
	line-height: 1.45;
}

.idi-about-section .idi-checklist li::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 1rem;
	width: 1.4rem;
	height: 1.4rem;
	margin-top: -0.7rem;
	border-radius: 50%;
	background: #c91f63 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 0.8rem no-repeat;
}

.idi-about-section p.idi-about-note {
	color: #63636b;
	font-size: 0.95rem;
	font-style: italic;
}

/* Cartes (piliers R&D, garanties qualité) */
.idi-about-section .idi-about-cards {
	gap: 1.25rem !important;
	margin: clamp(2.5rem, 4vw, 3.5rem) 0 0 !important;
}

.idi-about-section .idi-about-cards > .wp-block-column {
	padding: clamp(1.5rem, 2.5vw, 2rem);
	border: 1px solid rgba(23, 23, 26, 0.07);
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 20px 44px -34px rgba(16, 16, 19, 0.45);
	transition: transform 0.35s var(--idi-ease, ease), box-shadow 0.35s var(--idi-ease, ease);
}

.idi-about-section .idi-about-cards > .wp-block-column:hover {
	transform: translateY(-4px);
	box-shadow: 0 28px 54px -32px rgba(16, 16, 19, 0.5);
}

.idi-about-section .idi-about-card__num {
	margin: 0 0 1.25rem !important;
	color: #c91f63;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.idi-about-section .idi-about-cards h3 {
	margin: 0 0 0.6rem !important;
	color: #17171a;
	font-size: 1.2rem;
	line-height: 1.25;
}

.idi-about-section .idi-about-cards p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.65;
}

.idi-about-section .idi-about-cards--credentials > .wp-block-column {
	border-top: 3px solid #c91f63;
}

.idi-about-section .idi-about-cards--credentials .idi-about-card__value {
	margin: 0 0 0.35rem !important;
	color: #17171a;
	font-family: var(--global-heading-font-family);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.2;
}

/* « Écouter, conseiller, accompagner » */
.idi-about-section .idi-about-verbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 0 0 2rem !important;
	padding: 0 !important;
	list-style: none;
}

.idi-about-section .idi-about-verbs li {
	margin: 0;
	color: #17171a;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.7rem, 3.2vw, 2.75rem);
	font-weight: 700;
	line-height: 1.1;
}

.idi-about-section .idi-about-verbs li:not(:last-child)::after {
	content: "·";
	margin-left: 1.5rem;
	color: #c91f63;
}

.idi-about-section .idi-chips {
	margin: 0.25rem 0 1.75rem !important;
}

.idi-about-section .wp-block-buttons {
	margin-top: 2rem;
}

/* FAQ en accordéon (blocs Détails) */
.idi-about-section .idi-faq-list {
	max-width: 860px;
	margin: clamp(2rem, 4vw, 3rem) auto 0 !important;
}

.idi-about-section--faq h2,
.idi-about-section--faq .idi-about-eyebrow {
	max-width: none;
	text-align: center;
}

.idi-about-section .wp-block-details {
	margin: 0 !important;
	border-bottom: 1px solid #e0e1dc;
}

.idi-about-section .wp-block-details:first-child {
	border-top: 1px solid #e0e1dc;
}

.idi-about-section .wp-block-details summary {
	position: relative;
	padding: 1.45rem 3.5rem 1.45rem 0;
	color: #17171a;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	font-weight: 700;
	line-height: 1.4;
	list-style: none;
	cursor: pointer;
	transition: color 0.2s ease;
}

.idi-about-section .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.idi-about-section .wp-block-details summary:hover,
.idi-about-section .wp-block-details[open] summary {
	color: #c91f63;
}

.idi-about-section .wp-block-details summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0.25rem;
	width: 2.1rem;
	height: 2.1rem;
	margin-top: -1.05rem;
	border-radius: 50%;
	background: rgba(201, 31, 99, 0.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3v10M3 8h10' fill='none' stroke='%23c91f63' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / 0.85rem no-repeat;
	transition: transform 0.3s var(--idi-ease, ease), background-color 0.2s ease;
}

.idi-about-section .wp-block-details[open] summary::after {
	transform: rotate(45deg);
	background-color: rgba(201, 31, 99, 0.18);
}

.idi-about-section .wp-block-details summary:focus-visible {
	outline: 2px solid #c91f63;
	outline-offset: 4px;
}

.idi-about-section .wp-block-details > :not(summary) {
	margin: 0 0 1.5rem;
	padding-right: 3.5rem;
	color: #4a4a50;
	font-size: 1rem;
	line-height: 1.75;
}

/* Bande contact finale */
.page-id-31 .entry-content > .idi-cta {
	width: 100vw !important;
	max-width: none !important;
	margin: 0 calc(50% - 50vw) !important;
	padding: clamp(6rem, 10vw, 9rem) max(1.5rem, calc((100vw - 1200px) / 2));
	border: 0;
	border-radius: 0;
	background: radial-gradient(70% 180% at 10% 0%, rgba(214, 43, 111, 0.2), transparent 60%), #1d171a;
}

.page-id-31 .idi-cta__title,
.page-id-31 .idi-cta__text,
.page-id-31 .idi-cta__phone,
.page-id-31 .idi-cta__phone a {
	color: #ffffff !important;
}

.page-id-31 .idi-cta__text {
	color: rgba(255, 255, 255, 0.72);
}

.page-id-31 .idi-cta__phone a:hover {
	color: #f0528f !important;
}

.idi-about-section--dark .idi-about-verbs li {
	color: #ffffff;
}

.idi-about-section--dark .idi-about-verbs li:last-child {
	color: #f0528f;
}

.idi-about-section .idi-chips {
	padding-left: 0 !important;
}

.idi-about-section .wp-block-button__link {
	padding: 0.9rem 1.85rem;
	border-radius: 999px;
	background: #c91f63;
	color: #ffffff;
	font-weight: 600;
	box-shadow: 0 14px 30px -12px rgba(201, 31, 99, 0.65);
	transition: transform 0.35s var(--idi-ease, ease), box-shadow 0.35s var(--idi-ease, ease), background 0.25s ease;
}

.idi-about-section .wp-block-button__link:hover {
	transform: translateY(-3px);
	background: #a81851;
	color: #ffffff;
	box-shadow: 0 20px 40px -14px rgba(201, 31, 99, 0.8);
}

.idi-about-section--faq h2::after {
	margin-inline: auto !important;
	transform-origin: center !important;
}

.idi-about-section .idi-about-cards p:last-child {
	margin-bottom: 0 !important;
}

/* Vidéo : bande sombre pleine largeur entre deux sections claires */
.page-id-31 .entry-content > .idi-page-video-wrap {
	width: 100vw !important;
	max-width: none !important;
	margin: 0 calc(50% - 50vw) !important;
	padding: clamp(5rem, 9vw, 8rem) max(1.5rem, calc((100vw - 960px) / 2)) !important;
	background: radial-gradient(60% 120% at 0% 100%, rgba(214, 43, 111, 0.18) 0%, rgba(214, 43, 111, 0) 60%), #18171a;
}

.page-id-31 .idi-page-video-wrap__title {
	color: #ffffff;
}

.page-id-31 .idi-page-video-wrap__lead {
	color: rgba(255, 255, 255, 0.7);
}

.page-id-31 .idi-page-video {
	box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.9);
}

@media all and (max-width: 781px) {
	.page-id-31 .entry-content-wrap {
		padding-right: 0;
		padding-left: 0;
	}

	.page-id-31 .entry-content > .idi-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: calc(100vw - 2rem);
		margin-top: -3rem !important;
		padding: 1rem;
	}

	.page-id-31 .entry-content > .idi-stats > .wp-block-column {
		min-height: 112px;
		padding: 1rem 0.75rem;
	}

	.page-id-31 .entry-content > .idi-stats > .wp-block-column:nth-child(odd) {
		border-left: 0;
	}

	.page-id-31 .entry-content > .idi-stats > .wp-block-column:nth-child(n + 3) {
		border-top: 1px solid rgba(255, 255, 255, 0.16);
	}

	.idi-about-section {
		padding: 4.5rem 1.5rem !important;
	}

	.idi-about-section--first {
		padding-top: 5.5rem !important;
	}

	.idi-about-section .idi-about-split {
		gap: 2.5rem !important;
	}

	.idi-about-section .idi-about-split--top > .wp-block-column:first-child,
	.idi-about-section .idi-about-split > .wp-block-column:first-child:has(> .idi-about-logo) {
		position: static;
	}

	.idi-about-section .idi-about-split--top > .wp-block-column:last-child {
		padding-top: 0;
	}

	.idi-about-section .idi-about-split--top {
		gap: 1.25rem !important;
	}

	/* Frise verticale sur mobile */
	.idi-about-section .idi-timeline {
		grid-template-columns: 1fr;
		border-top: 0;
		border-left: 1px solid rgba(255, 255, 255, 0.16);
		margin-left: 6px !important;
	}

	.idi-about-section .idi-timeline li {
		padding: 0 0 1.75rem 1.75rem;
	}

	.idi-about-section .idi-timeline li::before {
		top: 0.35rem;
		left: -7px;
	}

	.idi-about-section .idi-about-logo img {
		max-height: 260px;
	}

	.idi-about-section .wp-block-details summary {
		padding-right: 3rem;
	}

	.idi-about-section .wp-block-details > :not(summary) {
		padding-right: 0;
	}
}

/* ==========================================================================
   Bloc vidéo institutionnel — réutilisable sur toute page (non propre à la
   page Société : pas de sélecteur .page-id-31 ni de position nth-child, pour
   pouvoir être ajouté ailleurs sans dépendre de l'ordre des blocs).
   ========================================================================== */

.idi-page-video-wrap {
	max-width: 900px;
	margin-inline: auto !important;
	padding: clamp(3.5rem, 7vw, 5.5rem) clamp(1.5rem, 4vw, 2rem);
	text-align: center;
}

.idi-page-video-wrap__title {
	margin: 0 0 0.75rem !important;
	font-size: clamp(1.7rem, 2.6vw, 2.4rem);
}

.idi-page-video-wrap__lead {
	max-width: 56ch;
	margin: 0 auto clamp(2rem, 4vw, 2.75rem) !important;
	color: #63636b;
	font-size: 1.02rem;
	line-height: 1.7;
}

.idi-page-video {
	margin: 0 !important;
	border-radius: 8px;
	overflow: hidden;
	background: #17171a;
	box-shadow: 0 30px 70px -36px rgba(16, 16, 19, 0.55);
}

.idi-page-video video {
	display: block;
	width: 100%;
	height: auto;
	/* Le fichier est déjà recadré (bandes du format cinéma supprimées) :
	   pas besoin d'object-fit, le ratio natif convient tel quel. */
}

/* ==========================================================================
   Accessibilité — contraste et navigation clavier
   ========================================================================== */

/* Signature de la citation du DG, quasi illisible sur fond magenta sinon */
.entry-content .has-background .wp-block-quote cite {
	color: rgba(255, 255, 255, 0.85) !important;
}

/* Ancres (bouton hero → #nos-produits) */
html {
	scroll-behavior: smooth;
}

/* Le header sticky (~81px) recouvrirait la cible d'ancre à l'arrivée */
.entry-content [id] {
	scroll-margin-top: 110px;
}

/* Focus clavier visible sur les éléments interactifs custom */
.idi-hero__cta .wp-block-button__link:focus-visible,
.idi-cta .wp-block-button__link:focus-visible,
.idi-form .kb-adv-form-submit-button:focus-visible,
.idi-bento__link a:focus-visible,
.idi-hero-carousel__arrow:focus-visible,
.idi-hero-carousel__dot:focus-visible,
.idi-hero-carousel__pause:focus-visible,
.idi-cta__phone a:focus-visible {
	outline: 2px solid var(--global-palette1);
	outline-offset: 3px;
}

/* ==========================================================================
   Localisation — bande sombre "Nous rendre visite" en deux colonnes + carte
   ========================================================================== */

/* Bandeau sombre (même famille que le hero et le footer) : referme la page
   sur une note "destination", et tranche avec la carte claire du formulaire
   juste au-dessus au lieu de l'empiler avec une carte identique. */
.idi-visit.idi-cta {
	text-align: left;
	max-width: none;
	background: radial-gradient(120% 140% at 15% 100%, rgba(201, 31, 99, 0.18) 0%, rgba(201, 31, 99, 0) 45%), linear-gradient(165deg, #201319 0%, #17171a 65%);
	border-color: transparent;
}

.idi-visit .idi-cta__title {
	color: #ffffff;
}

.idi-visit .idi-cta__text {
	color: #d3d3d7;
}

.idi-visit .idi-visit__grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: stretch;
}

.idi-visit .idi-cta__title,
.idi-visit .idi-cta__text {
	text-align: left;
	margin-left: 0;
}

.idi-visit .idi-cta__title::after {
	margin-inline: 0;
}

.idi-visit .wp-block-buttons {
	justify-content: flex-start !important;
}

/* Colonne de texte centrée verticalement face à la carte, pour équilibrer
   les deux colonnes plutôt que de laisser un vide en bas à gauche */
.idi-visit__grid > .wp-block-column:first-child {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

@media all and (max-width: 900px) {
	.idi-visit .idi-visit__grid {
		grid-template-columns: 1fr;
	}

	.idi-visit .idi-cta__title,
	.idi-visit .idi-cta__text,
	.idi-visit .wp-block-buttons {
		text-align: center;
		justify-content: center !important;
	}

	.idi-visit .idi-cta__title::after {
		margin-inline: auto;
	}
}

/* Carte : cadre arrondi cohérent avec le visuel du hero, en mode sombre.
   Toute la carte est un lien vers Google Maps (voir .idi-map-linkover) :
   pas de widget interactif à "activer", pas de risque de piéger le
   défilement de la page — juste un visuel cliquable, comme une photo. */
.idi-map-frame {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 30px 70px -20px rgba(0, 0, 0, 0.55);
	background: #0f0f11;
	cursor: pointer;
	transition: transform 0.4s var(--idi-ease), box-shadow 0.4s var(--idi-ease);
}

.idi-map-frame:hover,
.idi-map-frame:focus-within {
	transform: translateY(-4px);
	box-shadow: 0 40px 80px -20px rgba(0, 0, 0, 0.65);
}

.idi-map-frame .kb-google-maps-container,
.idi-map-frame iframe {
	display: block;
	width: 100%;
	height: clamp(260px, 26vw, 340px) !important;
	border: 0;
	pointer-events: none;
	/* La carte reste claire et parfaitement lisible (assombrie, elle se
	   confondait avec le fond et devenait difficile à repérer) : c'est le
	   cadre sombre autour qui porte le rythme clair/sombre de la page, pas
	   la carte elle-même — effet "photo encadrée". Grayscale simple, fiable
	   sur cette iframe cross-origin (contrairement à invert()+hue-rotate(),
	   qui ne se composite pas dans le rendu réel malgré un computed style
	   correct). Le repère par défaut de Google, qu'aucun réglage ne masque
	   sur ce mode gratuit, se fond dans le gris clair puis disparaît sous
	   notre épingle de marque (::before/::after ci-dessous, plus grande). */
	filter: grayscale(100%) contrast(0.95) brightness(1.05);
}

/* Lien plein cadre (bloc Paragraphe dans l'admin) : toute la carte mène à
   Google Maps. Texte réel pour l'accessibilité, masqué visuellement. */
.idi-map-linkover {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 5;
}

.idi-map-linkover a {
	position: absolute;
	inset: 0;
	display: block;
}

.idi-map-badge {
	position: absolute;
	right: 16px;
	bottom: 16px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	opacity: 0;
	transform: scale(0.85) translateY(4px);
	transition: opacity 0.25s ease, transform 0.25s ease, background 0.25s ease;
}

.idi-map-frame:hover .idi-map-badge,
.idi-map-frame:focus-within .idi-map-badge {
	opacity: 1;
	transform: scale(1) translateY(0);
}

.idi-map-frame:hover .idi-map-badge {
	background: var(--global-palette1);
	border-color: var(--global-palette1);
}

/* Repère de marque : halo qui respire + épingle magenta, en pur CSS */
.idi-map-frame::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 34px;
	height: 34px;
	margin: -17px 0 0 -17px;
	border-radius: 50%;
	background: var(--global-palette1);
	opacity: 0.35;
	animation: idi-pin-pulse 2.6s ease-out infinite;
	pointer-events: none;
	z-index: 2;
}

/* Repère plus large que celui de Google (masqué en dessous) : forme goutte
   pleine, pas juste le contour, pour ne rien laisser dépasser. */
.idi-map-frame::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 26px;
	height: 26px;
	margin: -34px 0 0 -13px;
	background: var(--global-palette1);
	border: 3px solid #ffffff;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	box-shadow: 0 10px 24px -4px rgba(0, 0, 0, 0.7);
	pointer-events: none;
	z-index: 3;
}

@keyframes idi-pin-pulse {
	0% {
		transform: scale(0.6);
		opacity: 0.55;
	}
	70% {
		transform: scale(2.4);
		opacity: 0;
	}
	100% {
		opacity: 0;
	}
}

/* ==========================================================================
   Accueil — système éditorial pleine largeur
   ========================================================================== */

.home {
	background: #ffffff;
}

.home .content-bg {
	background: transparent;
	border-radius: 0;
	box-shadow: none;
}

.home .entry-content-wrap {
	padding-bottom: 0;
}

.home .entry-content > .idi-stats,
.home .entry-content > .wp-block-group.has-background,
.home .entry-content > .idi-cta {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.home .entry-content > .idi-stats {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	padding: 2.25rem max(1.5rem, calc((100vw - 1200px) / 2));
	background: #f6f6f4;
	border-top: 1px solid #e8e8e5;
	border-bottom: 1px solid #e8e8e5;
}

.home .idi-stats > .wp-block-column {
	padding: 0.25rem clamp(0.75rem, 2vw, 1.75rem);
}

.home .idi-stats > .wp-block-column + .wp-block-column {
	border-left: 1px solid #deded9;
}

.home .idi-stats__value {
	font-size: 1rem;
	line-height: 1.35;
}

.home .idi-stats__label {
	line-height: 1.45;
}

.home .idi-bento-featured,
.home .idi-bento-row > .wp-block-column {
	border: 1px solid #ececea;
	border-radius: 8px;
	box-shadow: 0 10px 30px -24px rgba(29, 29, 31, 0.5);
}

.home .idi-bento-featured:hover,
.home .idi-bento-row > .wp-block-column:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px -26px rgba(29, 29, 31, 0.55);
}

/* Accueil — les produits deviennent des séquences éditoriales pleine largeur,
   sans cartes flottantes ni fonds rosés. */
.home .entry-content > #nos-produits {
	width: min(1240px, calc(100vw - 3rem));
	margin: 0 auto !important;
	padding: clamp(6rem, 10vw, 9rem) 0 clamp(3rem, 5vw, 4.5rem);
	color: #1d1d1f;
	font-size: clamp(2.5rem, 5vw, 4.75rem);
	line-height: 1;
	letter-spacing: 0;
	text-align: left !important;
}

.home .entry-content > #nos-produits::after {
	width: 52px;
	height: 3px;
	margin-top: 1.25rem;
}

.home .entry-content > .idi-bento-featured,
.home .entry-content > .idi-bento-row {
	width: 100vw !important;
	max-width: none !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
}

.home .entry-content > .idi-bento-featured {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 !important;
	min-height: 570px;
	margin-top: 0 !important;
	border: 0;
	border-radius: 0;
	background: #f1f2ef;
	box-shadow: none;
	overflow: hidden;
}

.home .entry-content > .idi-bento-featured:hover {
	transform: none;
	box-shadow: none;
}

.home .idi-bento-featured > .idi-bento__media {
	padding: clamp(4rem, 8vw, 7rem) max(2rem, calc((100vw - 1240px) / 2));
	background: #f1f2ef;
}

.home .idi-bento-featured > .idi-bento__media img {
	width: auto;
	max-width: min(520px, 100%);
	height: auto;
	filter: drop-shadow(0 28px 22px rgba(35, 32, 34, 0.14));
}

.home .idi-bento-featured > .idi-bento__body {
	padding: clamp(5rem, 9vw, 8rem) max(2rem, calc((100vw - 1240px) / 2)) clamp(5rem, 9vw, 8rem) clamp(3rem, 7vw, 7rem);
	background: radial-gradient(100% 160% at 100% 0%, rgba(214, 43, 111, 0.2), transparent 58%), #1c181b;
}

.home .idi-bento-featured .idi-bento__title {
	max-width: 520px;
	margin: 0.75rem 0 1rem;
	color: #ffffff;
	font-size: clamp(2.4rem, 4vw, 4rem);
	line-height: 1;
	letter-spacing: 0;
}

.home .idi-bento-featured .idi-bento__text {
	max-width: 520px;
	color: rgba(255, 255, 255, 0.7);
	font-size: clamp(1rem, 1.25vw, 1.16rem);
	line-height: 1.7;
}

.home .entry-content > .idi-bento-row {
	display: block !important;
	margin-top: 0 !important;
}

.home .idi-bento-row > .wp-block-column {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	grid-template-rows: auto auto 1fr;
	gap: 0 !important;
	min-height: 540px;
	border: 0;
	border-radius: 0;
	background: #ffffff;
	box-shadow: none;
	overflow: hidden;
}

.home .idi-bento-row > .wp-block-column:hover {
	transform: none;
	box-shadow: none;
}

.home .idi-bento-row > .wp-block-column > .wp-block-image {
	grid-row: 1 / -1;
	grid-column: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	margin: 0;
	/* Grande marge côté bord de page seulement : côté texte, le produit garde toute la place. */
	padding: clamp(3rem, 6vw, 5rem) max(2rem, calc((100vw - 1240px) / 2)) clamp(3rem, 6vw, 5rem) clamp(2rem, 4vw, 4rem);
	background: #f1f2ef;
}

.home .idi-bento-row > .wp-block-column:nth-child(even) > .wp-block-image {
	grid-column: 1;
	padding-right: clamp(2rem, 4vw, 4rem);
	padding-left: max(2rem, calc((100vw - 1240px) / 2));
}

.home .idi-bento-row > .wp-block-column > .wp-block-image img {
	width: auto;
	max-width: min(620px, 100%);
	height: auto;
	max-height: 460px;
	object-fit: contain;
	filter: drop-shadow(0 24px 28px rgba(35, 32, 34, 0.12));
}

.home .idi-bento-row > .wp-block-column > :not(.wp-block-image) {
	grid-column: 1;
	width: min(520px, calc(100% - 4rem));
	margin-right: auto;
	margin-left: max(2rem, calc((100vw - 1240px) / 2));
	padding: 0;
}

.home .idi-bento-row > .wp-block-column:nth-child(even) > :not(.wp-block-image) {
	grid-column: 2;
	margin-right: max(2rem, calc((100vw - 1240px) / 2));
	margin-left: clamp(3rem, 7vw, 7rem);
}

.home .idi-bento-row .idi-bento__title {
	align-self: end;
	margin-top: clamp(5rem, 9vw, 8rem) !important;
	margin-bottom: 1rem;
	font-size: clamp(2.25rem, 4vw, 3.75rem);
	line-height: 1;
	letter-spacing: 0;
}

.home .idi-bento-row .idi-bento__text {
	margin-top: 0;
	margin-bottom: 1.75rem;
	color: #67676c;
	font-size: clamp(1rem, 1.2vw, 1.14rem);
	line-height: 1.7;
}

.home .idi-bento-row .idi-bento__link {
	align-self: start;
	margin-top: 0;
	margin-bottom: clamp(5rem, 9vw, 8rem);
}

.home :is(.idi-bento-featured, .idi-bento-row) .idi-bento__link a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding-bottom: 0;
	background-size: 0 2px;
	font-size: 0.9rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.home .idi-bento-featured .idi-bento__link a {
	color: #ffffff !important;
	background-image: linear-gradient(#ffffff, #ffffff);
}

@media all and (max-width: 767px) {
	.home .entry-content > #nos-produits {
		width: calc(100vw - 3rem);
		padding: 5rem 0 2.5rem;
		font-size: clamp(2.35rem, 10vw, 3rem);
	}

	.home .entry-content > .idi-bento-featured,
	.home .idi-bento-row > .wp-block-column {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.home .idi-bento-featured > .idi-bento__media,
	.home .idi-bento-row > .wp-block-column > .wp-block-image,
	.home .idi-bento-row > .wp-block-column:nth-child(even) > .wp-block-image {
		grid-column: 1;
		grid-row: auto;
		min-height: 340px;
		padding: 3.5rem 1.5rem;
	}

	.home .idi-bento-featured > .idi-bento__body {
		padding: 4rem 1.5rem 4.5rem;
	}

	.home .idi-bento-row > .wp-block-column > :not(.wp-block-image),
	.home .idi-bento-row > .wp-block-column:nth-child(even) > :not(.wp-block-image) {
		grid-column: 1;
		width: auto;
		margin-right: 1.5rem;
		margin-left: 1.5rem;
	}

	.home .idi-bento-row .idi-bento__title {
		margin-top: 3.5rem !important;
	}

	.home .idi-bento-row .idi-bento__link {
		margin-bottom: 4rem;
	}
}

.home .entry-content h2.wp-block-heading::after {
	width: 36px;
	height: 2px;
	margin-top: 0.65rem;
	border-radius: 0;
	background: var(--global-palette1);
	transform: scaleX(1);
	transition: none;
}

.home .entry-content > .wp-block-group.has-background {
	padding: clamp(3.25rem, 6vw, 5rem) max(1.5rem, calc((100vw - 1200px) / 2)) !important;
}

.home .entry-content > .wp-block-group.has-background > .wp-block-group__inner-container {
	max-width: 1200px;
	margin-inline: auto;
}

.home .entry-content > .wp-block-group.has-background .alignwide {
	width: 100%;
	max-width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.home .entry-content > .wp-block-group.has-background:not(.has-text-color) {
	background: #f3f4f2 !important;
}

.home .entry-content > .wp-block-group.has-text-color.has-background {
	background: radial-gradient(90% 150% at 80% 10%, rgba(201, 31, 99, 0.2), transparent 55%), #21171b !important;
}

.home .entry-content > .wp-block-group.has-text-color .wp-block-quote {
	display: block;
	width: 100%;
	max-width: 800px;
	margin: 1.75rem auto 0;
	padding: 0 !important;
	border: 0;
}

.home .entry-content > .wp-block-group.has-text-color .wp-block-quote p {
	font-size: clamp(1.15rem, 1.5vw, 1.45rem);
	line-height: 1.55;
}

.home .entry-content > .idi-director.has-background {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4rem, 7vw, 6.5rem) !important;
	background: radial-gradient(70% 160% at 86% 5%, rgba(201, 31, 99, 0.24), transparent 58%), #21171b !important;
}

.home .idi-director > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.8fr);
	align-items: center;
	gap: clamp(3rem, 7vw, 6.5rem);
	max-width: 1060px !important;
}

.home .idi-director__portrait {
	position: relative;
	width: clamp(210px, 20vw, 270px);
	aspect-ratio: 1;
	margin: 0 auto;
}

.home .idi-director__portrait::before {
	content: "";
	position: absolute;
	inset: -12px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 50%;
}

.home .idi-director__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	border: 5px solid rgba(255, 255, 255, 0.95);
	border-radius: 50%;
	object-fit: cover;
	object-position: 50% 6%;
	filter: grayscale(1) contrast(1.04);
	box-shadow: 0 28px 60px -30px rgba(0, 0, 0, 0.9);
}

.home .idi-director__content h2 {
	margin: 0;
	text-align: left !important;
}

.home .idi-director__content h2::after {
	margin: 0.9rem 0 0;
}

.home .idi-director__content .wp-block-quote {
	position: relative;
	max-width: 680px;
	margin: 2rem 0 0;
	text-align: left;
}

.home .idi-director__content .wp-block-quote::before {
	content: "“";
	position: absolute;
	top: -2.2rem;
	left: -0.1rem;
	color: rgba(214, 43, 111, 0.65);
	font-family: Georgia, serif;
	font-size: 5.5rem;
	line-height: 1;
	pointer-events: none;
}

.home .idi-director__content .wp-block-quote p {
	position: relative;
	margin: 0;
	font-size: clamp(1.25rem, 1.9vw, 1.75rem);
	font-weight: 600;
	line-height: 1.48;
	text-align: left !important;
}

.home .idi-director__content .wp-block-quote cite {
	display: block;
	margin-top: 1.5rem;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.78rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.home .entry-content > .idi-cta {
	border: 0;
	border-radius: 0;
	padding: clamp(3.5rem, 7vw, 5.5rem) max(1.5rem, calc((100vw - 1200px) / 2));
	background: #faf4f6;
}

.home .idi-hero__cta .wp-block-button__link,
.home .idi-cta .wp-block-button__link {
	border-radius: 6px;
	box-shadow: 0 12px 24px -16px rgba(201, 31, 99, 0.75);
}

.site-middle-footer-inner-wrap {
	padding-top: 3.5rem !important;
	padding-bottom: 3.25rem !important;
}

@media all and (min-width: 768px) and (max-width: 1024px) {
	.site-middle-footer-inner-wrap {
		grid-template-columns: 1.25fr 1fr 0.7fr !important;
		column-gap: 2rem;
	}

	.site-footer-middle-section-1,
	.site-footer-middle-section-2 {
		padding-right: 1.5rem;
		padding-bottom: 0;
		border-right: 1px solid rgba(255, 255, 255, 0.1);
		border-bottom: 0;
	}
}

@media all and (max-width: 767px) {
	.home .entry-content-wrap {
		padding-left: 0;
		padding-right: 0;
	}

	.home .entry-content > .idi-bento-featured.alignwide,
	.home .entry-content > .idi-bento-row.alignwide {
		width: 100vw !important;
		max-width: none !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}

	.home .entry-content .idi-hero.alignfull {
		width: auto;
		margin-left: 0;
		margin-right: 0;
	}

	.home .entry-content > .idi-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding: 1.5rem;
	}

	.home .idi-stats > .wp-block-column {
		padding: 1rem 0.75rem;
	}

	.home .idi-stats > .wp-block-column + .wp-block-column {
		border-left: 0;
	}

	.home .idi-stats > .wp-block-column:nth-child(even) {
		border-left: 1px solid #deded9;
	}

	.home .idi-stats > .wp-block-column:nth-child(n + 3) {
		border-top: 1px solid #deded9;
	}

	.home .entry-content > .wp-block-group.has-text-color .wp-block-quote {
		margin-top: 1.25rem;
	}

	.home .entry-content > .wp-block-group.has-text-color .wp-block-quote p {
		font-size: 1.08rem;
	}

	.home .entry-content > .idi-director.has-background {
		padding-block: 4rem !important;
	}

	.home .idi-director > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
		gap: 2.75rem;
	}

	.home .idi-director__portrait {
		width: min(220px, 66vw);
	}

	.home .idi-director__content h2,
	.home .idi-director__content .wp-block-quote,
	.home .idi-director__content .wp-block-quote p {
		text-align: center !important;
	}

	.home .idi-director__content h2::after {
		margin-inline: auto;
	}

	.home .idi-director__content .wp-block-quote {
		margin-top: 1.75rem;
	}

	.home .idi-director__content .wp-block-quote::before {
		left: 50%;
		transform: translateX(-50%);
	}

	.home .idi-director__content .wp-block-quote p {
		font-size: 1.18rem;
	}
}

/* ==========================================================================
   Header — navigation institutionnelle premium
   ========================================================================== */

#masthead {
	background: rgba(255, 255, 255, 0.94) !important;
	border-bottom-color: rgba(29, 29, 31, 0.09);
	box-shadow: 0 12px 32px -30px rgba(29, 29, 31, 0.75);
	backdrop-filter: blur(20px) saturate(135%);
	-webkit-backdrop-filter: blur(20px) saturate(135%);
}

#masthead .site-main-header-inner-wrap {
	padding-inline: clamp(1.25rem, 3vw, 3rem);
}

/* Le logo est servi avec ses attributs width/height natifs (4096x4096) : sans
   width/height:auto, le max-width de Kadence et notre max-height s'appliquent
   indépendamment et écrasent l'image (220x52 au lieu de 52x52). */
.custom-logo {
	width: auto;
	height: auto;
	max-height: 64px;
}

@media all and (min-width: 1025px) {
	#masthead .site-main-header-wrap .site-header-row-container-inner > .site-container {
		width: 100%;
		max-width: none;
		padding-inline: 0;
	}

	#masthead .site-main-header-wrap .site-header-row-container-inner,
	#masthead .site-main-header-inner-wrap {
		height: 80px;
		min-height: 80px;
	}

	#masthead .site-main-header-inner-wrap {
		grid-template-columns: auto minmax(0, 1fr) !important;
		align-items: center;
		padding-inline: clamp(1.5rem, 4vw, 4.25rem);
	}

	#masthead .site-header-main-section-left,
	#masthead .site-header-main-section-right {
		display: flex !important;
		align-items: center;
	}

	#masthead .site-header-main-section-left {
		min-width: 76px;
	}

	#masthead .site-header-main-section-right {
		justify-content: flex-end;
	}

	#masthead .site-branding,
	#masthead .site-branding .brand {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	#masthead .site-branding .brand {
		align-items: center;
		gap: 0.7rem;
	}

	#masthead .site-branding .custom-logo {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: 76px !important;
		height: auto !important;
		max-width: 76px !important;
		max-height: none;
	}

	/* Le logo seul ne disait pas qui est IDI : la raison sociale complète
	   l'accompagne en verrouillage typographique, séparée par un filet. */
	#masthead .site-branding .site-title-wrap {
		display: block !important;
		padding-left: 0.7rem;
		border-left: 1px solid rgba(29, 29, 31, 0.14);
	}

	#masthead .site-branding .site-title {
		margin: 0;
		max-width: 25ch;
		color: var(--global-palette3, #1d1d1f);
		font-size: 0.78rem;
		font-weight: 700;
		line-height: 1.3;
		letter-spacing: 0.005em;
		text-transform: uppercase;
	}

	#masthead .primary-menu-container,
	#masthead #primary-menu {
		align-items: center;
	}

	.main-navigation .primary-menu-container > ul > li.menu-item > a {
		display: inline-flex !important;
		align-items: center;
		height: 40px;
		min-height: 40px;
		padding: 0 0.72rem !important;
		font-size: 0.9rem;
		font-weight: 600;
	}

	/* Sept rubriques, un bouton boutique et le compte : sous 1400px, la raison
	   sociale est le premier élément à céder sa place pour garder le menu sur
	   une seule ligne (elle reste lisible dans la barre utilitaire et le pied
	   de page). */
	@media all and (max-width: 1400px) {
		#masthead .site-branding .site-title-wrap {
			display: none !important;
		}
	}

	/* Bande étroite juste avant le passage au menu burger (1025px) : on resserre
	   la typographie du menu plutôt que de le laisser passer sur deux lignes. */
	@media all and (max-width: 1250px) {
		.main-navigation .primary-menu-container > ul > li.menu-item > a {
			padding: 0 0.5rem !important;
			font-size: 0.82rem;
		}

		.header-button-wrap {
			margin-left: 0.4rem;
		}

		.header-button-wrap .header-button {
			padding: 0 0.85rem !important;
			font-size: 0.76rem;
		}
	}

}

.menu-toggle-open.drawer-toggle {
	width: 44px;
	height: 44px;
	padding: 0 !important;
	border: 1px solid #e6e3e4 !important;
	border-radius: 50%;
	background: #faf8f9 !important;
	color: var(--global-palette3) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

/* ==========================================================================
   WooCommerce — catalogue professionnel IDI
   ========================================================================== */

/* Palette du vocabulaire « catalogue » (cartes blanches, filets clairs,
   pastilles de filtre). Déclarée globalement : la bibliothèque documentaire
   réutilise ces composants hors des pages WooCommerce, et les variables
   n'étaient alors pas résolues — pastilles blanches sur fond blanc. */
:root {
	--idi-shop-ink: #17171a;
	--idi-shop-muted: #63636b;
	--idi-shop-line: #dfe0e4;
	--idi-shop-surface: #ffffff;
	--idi-shop-soft: #f4f3f4;
}

body.woocommerce,
body.woocommerce-page {
	background: #ededef;
}

body.woocommerce #inner-wrap,
body.woocommerce-page #inner-wrap {
	background: linear-gradient(180deg, #e9eaec 0%, #f7f7f8 36%, #eceef0 100%);
}

.woocommerce-page .content-bg,
.woocommerce-page .site-main,
.single-product .content-bg,
.single-product .site-main {
	background: transparent;
	box-shadow: none;
}

.woocommerce-page #primary .content-container,
.single-product #primary .content-container {
	padding-top: clamp(1.5rem, 3vw, 2.5rem);
	padding-bottom: clamp(3.5rem, 7vw, 6rem);
}

/* Kadence ajoute 80px de margin-top au conteneur principal : cumulés au
   padding ci-dessus, le fil d'Ariane se retrouvait à ~120px sous le header.
   Le padding du conteneur suffit comme respiration. */
.single-product #primary.content-area {
	margin-top: 0;
}

/* Sur les archives produits, la bande d'engagements chevauche le hero :
   on retire le coussin haut (margin Kadence + padding) pour que le
   chevauchement soit réel */
body.post-type-archive-product #primary.content-area,
body.tax-product_cat #primary.content-area {
	margin-top: 0;
}

body.post-type-archive-product #primary .content-container,
body.tax-product_cat #primary .content-container {
	padding-top: 0;
}

/* --------------------------------------------------------------------------
   Hero éditorial sombre de la boutique
   -------------------------------------------------------------------------- */

.woocommerce-page .entry-hero-container-inner {
	position: relative;
	margin: clamp(1.5rem, 3vw, 3rem) auto 0;
	width: min(calc(100% - 3rem), 1320px);
	/* Le calage sur les 620px des pages institutionnelles laissait un grand vide
	   au-dessus du texte (contenu collé en bas via align-items:flex-end) : même
	   avec le kicker et la phrase d'intro ajoutés, la carte restait trop grande.
	   On accepte de rompre l'alignement numérique avec les autres pages pour
	   privilégier une carte compacte qui épouse son contenu. */
	min-height: 340px;
	display: flex;
	align-items: flex-end;
	border-radius: 6px;
	background:
		radial-gradient(circle at 88% 18%, rgba(201, 31, 99, 0.38), transparent 30%),
		radial-gradient(circle at 12% 110%, rgba(201, 31, 99, 0.14), transparent 34%),
		linear-gradient(116deg, #101013 0%, #242329 64%, #17171a 100%) !important;
	overflow: hidden;
}

.woocommerce-page .entry-hero-container-inner::before {
	/* \c9 = É : littéral proscrit dans content (rendu « SÃ‰LECTION » si la
	   feuille est servie sans charset UTF-8) — même piège que « Sélection IDI ». */
	content: "IDI  /  S\c9 LECTION PROFESSIONNELLE";
	position: absolute;
	top: clamp(1.5rem, 3vw, 2.5rem);
	right: clamp(1.5rem, 4vw, 4rem);
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.woocommerce-page .entry-hero-container-inner::after {
	content: "";
	position: absolute;
	right: -5%;
	bottom: -70%;
	width: clamp(240px, 32vw, 460px);
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 50%;
	box-shadow: 0 0 0 50px rgba(255, 255, 255, 0.025), 0 0 0 100px rgba(255, 255, 255, 0.018);
}

.woocommerce-page .entry-hero .hero-section-overlay {
	display: none;
}

.woocommerce-page .entry-hero .hero-container {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: clamp(2.25rem, 4vw, 3.25rem) clamp(3rem, 6vw, 5.5rem) clamp(2.5rem, 4.5vw, 3.5rem);
}

.woocommerce-page .entry-hero .entry-title,
.woocommerce-page .entry-hero .page-title {
	max-width: 720px;
	margin: 0;
	color: #ffffff;
	/* Même formule que le titre institutionnel (page Société). */
	font-size: clamp(2.1rem, 3vw, 2.85rem);
	line-height: 1.1;
	letter-spacing: 0;
}

/* Kicker + phrase d'intro : sans eux, le titre seul ("Boutique") flottait dans
   un grand vide sombre une fois la hauteur du hero alignée sur les pages
   institutionnelles (620px), qui remplissent cet espace avec ces 3 niveaux. */
.woocommerce-page .entry-hero .idi-shop-hero__eyebrow {
	margin: 0 0 1.1rem;
	color: #f0528f;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.woocommerce-page .entry-hero .idi-shop-hero__lead {
	max-width: 560px;
	margin: 1.25rem 0 0;
	padding-left: 1.75rem;
	border-left: 3px solid #d62b6f;
	color: rgba(255, 255, 255, 0.76);
	font-size: clamp(1rem, 1.25vw, 1.2rem);
	line-height: 1.75;
}

/* Fil d'Ariane des archives (catégories) posé sur le hero */
.woocommerce-page .entry-hero .kadence-breadcrumbs {
	margin-bottom: 1rem;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.8rem;
	font-weight: 600;
}

.woocommerce-page .entry-hero .kadence-breadcrumbs a {
	color: rgba(255, 255, 255, 0.75);
	text-decoration: none;
}

.woocommerce-page .entry-hero .kadence-breadcrumbs a:hover {
	color: #ffffff;
}

/* Description de catégorie sous le titre */
.woocommerce-page .entry-hero .archive-description,
.woocommerce-page .term-description {
	max-width: 620px;
	margin: 1rem 0 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 1rem;
	line-height: 1.65;
}

/* Pages utilitaires (panier, compte, commande) : un simple titre de page, pas
   de bandeau sombre. Le hero plein format sert à découvrir la boutique ; une
   fois réduit à la hauteur d'une ligne, son dégradé sombre n'a plus la place
   de respirer et le titre flotte dans un rectangle vide. Ces écrans sont
   transactionnels — un en-tête clair et sobre les sert mieux. */
body.woocommerce-cart .entry-hero-container-inner,
body.woocommerce-account .entry-hero-container-inner,
body.woocommerce-checkout .entry-hero-container-inner {
	min-height: 0;
	margin-top: clamp(1.75rem, 3.5vw, 3rem);
	border-radius: 0;
	background: none !important;
	overflow: visible;
}

body.woocommerce-cart .entry-hero-container-inner::after,
body.woocommerce-account .entry-hero-container-inner::after,
body.woocommerce-checkout .entry-hero-container-inner::after {
	display: none;
}

body.woocommerce-cart .entry-hero-container-inner::before,
body.woocommerce-account .entry-hero-container-inner::before,
body.woocommerce-checkout .entry-hero-container-inner::before {
	display: none;
}

body.woocommerce-cart .entry-hero .hero-container,
body.woocommerce-account .entry-hero .hero-container,
body.woocommerce-checkout .entry-hero .hero-container {
	padding: 0 0 clamp(0.85rem, 1.8vw, 1.25rem);
	border-bottom: 1px solid var(--idi-shop-line);
}

/* Kadence force min-height:200px sur .entry-header du hero (réglage
   « above content ») : c'est lui qui gonflait le bandeau à 280px sur des
   pages utilitaires où un simple repère suffit. */
/* Kadence centre le titre via un flex (align-items:center) sur .entry-header,
   pas via text-align : le titre est un flex item dimensionné à son contenu,
   d'où un text-align sans effet. C'est donc l'alignement flex qu'il faut
   reprendre. */
body.woocommerce-cart .entry-hero .entry-header,
body.woocommerce-account .entry-hero .entry-header,
body.woocommerce-checkout .entry-hero .entry-header {
	min-height: 0;
	align-items: flex-start;
	text-align: left;
}

body.woocommerce-cart .entry-hero .entry-title,
body.woocommerce-cart .entry-hero .page-title,
body.woocommerce-account .entry-hero .entry-title,
body.woocommerce-account .entry-hero .page-title,
body.woocommerce-checkout .entry-hero .entry-title,
body.woocommerce-checkout .entry-hero .page-title {
	max-width: none;
	color: var(--idi-shop-ink);
	font-size: clamp(1.85rem, 3.2vw, 2.5rem);
	line-height: 1.15;
	text-align: left;
}

/* --------------------------------------------------------------------------
   Bande d'engagements — carte vitrée qui chevauche le bas du hero
   -------------------------------------------------------------------------- */

.idi-shop-assurance {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: calc(clamp(2.25rem, 4vw, 3.25rem) * -1) 0 clamp(2rem, 4vw, 3rem);
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 30px 60px -45px rgba(16, 16, 19, 0.65);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.idi-shop-assurance__item {
	position: relative;
	padding: 1.2rem clamp(0.8rem, 2vw, 1.5rem) 1.2rem 2.6rem;
	color: #3c3c42;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.idi-shop-assurance__item + .idi-shop-assurance__item {
	border-left: 1px solid rgba(23, 23, 26, 0.08);
}

.idi-shop-assurance__item::before {
	content: "";
	position: absolute;
	left: 1.1rem;
	top: 50%;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--global-palette1);
	transform: translateY(-50%);
	box-shadow: 0 0 0 5px rgba(201, 31, 99, 0.12);
}

/* Barre d'outils Kadence : fondue dans le panneau une fois déplacée par le
   JS. width:100% + space-between pour que le décompte de résultats et le
   tri s'écartent aux deux bouts de leur ligne dédiée. */
.woocommerce .kadence-shop-top-row.is-in-rail {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	gap: 0.75rem;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

/* Fallback sans JS : la barre garde une forme propre sous le rail */
.woocommerce .kadence-shop-top-row {
	min-height: 60px;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	padding: 0.6rem 0.75rem 0.6rem 1.25rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 16px 40px -36px rgba(23, 23, 26, 0.8);
}

.woocommerce .woocommerce-result-count {
	margin: 0;
	color: var(--idi-shop-muted);
	font-size: 0.8rem;
	font-weight: 600;
	white-space: nowrap;
}

.woocommerce .woocommerce-ordering {
	margin: 0;
}

.woocommerce .woocommerce-ordering select {
	min-height: 44px;
	padding: 0 2.4rem 0 1rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 4px;
	background-color: #ffffff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2317171a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	background-size: 10px 6px !important;
	color: var(--idi-shop-ink);
	font-size: 0.82rem;
	font-weight: 600;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	transition: border-color 0.2s ease;
}

.woocommerce .woocommerce-ordering select:hover,
.woocommerce .woocommerce-ordering select:focus {
	border-color: rgba(201, 31, 99, 0.45);
	outline: none;
}

/* Un seul mode d'affichage, soigné : la bascule grille/liste sort du décor */
.woocommerce .kadence-toggle-shop-layout,
.woocommerce .kadence-woo-toggle {
	display: none !important;
}

/* --------------------------------------------------------------------------
   Grille de produits — cartes éditoriales
   -------------------------------------------------------------------------- */

.woocommerce ul.products {
	gap: clamp(1.25rem, 2.5vw, 2rem);
}

.woocommerce ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 22px 55px -45px rgba(23, 23, 26, 0.85);
	overflow: hidden;
	transition: transform 0.35s var(--idi-ease), border-color 0.25s ease, box-shadow 0.35s ease;
}

/* Liseré crimson qui se déploie en haut de carte au survol */
.woocommerce ul.products li.product::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--global-palette1), rgba(201, 31, 99, 0.35));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.45s var(--idi-ease);
	z-index: 2;
}

.woocommerce ul.products li.product:hover::after,
.woocommerce ul.products li.product:focus-within::after {
	transform: scaleX(1);
}

.woocommerce ul.products li.product:hover {
	border-color: rgba(201, 31, 99, 0.4);
	transform: translateY(-7px);
	box-shadow: 0 34px 75px -42px rgba(23, 23, 26, 0.6);
}

/* Apparition orchestrée au scroll (classes posées par micro-interactions.js) */
.woocommerce ul.products li.product.will-reveal {
	opacity: 0;
	transform: translateY(26px);
}

.woocommerce ul.products li.product.is-revealed {
	animation: idi-card-in 0.75s var(--idi-ease) var(--idi-reveal-delay, 0ms) forwards;
}

@keyframes idi-card-in {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.woocommerce ul.products li.product .woocommerce-loop-image-link {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background:
		radial-gradient(circle at 50% 42%, #ffffff 0%, rgba(255, 255, 255, 0) 70%),
		linear-gradient(150deg, #ffffff 0%, #f2f2f4 100%);
	overflow: hidden;
}

.woocommerce ul.products li.product img {
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
	background: transparent;
	transform: scale(0.95);
	transition: transform 0.55s var(--idi-ease);
}

.woocommerce ul.products li.product:hover img {
	transform: scale(1.03);
}

.woocommerce ul.products li.product .product-details {
	display: flex;
	flex: 1 1 auto;
	min-height: 200px;
	padding: 1.2rem 1.4rem 1.3rem;
	flex-direction: column;
	border-top: 1px solid #ececef;
	background: #ffffff;
}

.woocommerce ul.products li.product .woocommerce-loop-image-link {
	flex: 0 0 auto;
}

.idi-product-card-category,
.idi-product-eyebrow {
	display: block;
	margin: 0 0 0.6rem;
	color: var(--global-palette1);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0 0 0.45rem;
	font-size: clamp(1.05rem, 1.4vw, 1.26rem);
	line-height: 1.22;
	color: var(--global-palette3);
	transition: color 0.2s ease;
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
	color: var(--global-palette1);
}

.idi-card-excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	margin: 0 0 0.9rem;
	color: var(--idi-shop-muted);
	font-size: 0.84rem;
	line-height: 1.55;
	overflow: hidden;
}

.woocommerce ul.products li.product .price {
	display: flex;
	align-items: baseline;
	gap: 0.4rem;
	margin: auto 0 1rem;
	color: var(--idi-shop-ink);
	font-size: 1.12rem;
	font-weight: 800;
}

.woocommerce ul.products li.product .price .woocommerce-price-suffix,
.single-product div.product .summary .price .woocommerce-price-suffix {
	color: var(--idi-shop-muted);
	font-size: 0.68em;
	font-weight: 700;
	letter-spacing: 0.04em;
}

/* Prix remisé (groupe client) : le prix catalogue barré reste lisible mais
   discret, le prix remisé garde tout le poids visuel */
.woocommerce .price del {
	margin-right: 0.35rem;
	color: var(--idi-shop-muted);
	font-size: 0.72em;
	font-weight: 600;
	text-decoration-color: rgba(99, 99, 107, 0.6);
	opacity: 0.85;
}

.woocommerce .price ins {
	text-decoration: none;
}

.idi-group-discount-badge {
	display: inline-flex;
	align-items: center;
	margin-left: 0.35rem;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
	background: rgba(201, 31, 99, 0.1);
	color: var(--global-palette1);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
	vertical-align: middle;
}

.woocommerce ul.products li.product .price {
	flex-wrap: wrap;
}

.woocommerce span.onsale {
	position: absolute;
	top: 1rem;
	/* left:auto + right:1rem à la fois : Kadence pose left:8px sur le badge
	   de la galerie produit, ce qui l'étirait sur toute la largeur de
	   l'image (et sous la loupe de zoom). */
	left: auto;
	right: 1rem;
	z-index: 2;
	width: auto;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0.4rem 0.7rem;
	border-radius: 3px;
	background: var(--global-palette1);
	color: #ffffff;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1;
	text-transform: uppercase;
}

/* Sur la fiche produit, la loupe occupe l'angle haut droit : le badge
   promo passe à gauche pour ne jamais se retrouver dessous. */
.single-product div.product > span.onsale {
	left: 1rem;
	right: auto;
}

/* Bouton d'achat pleine largeur, flèche qui s'anime au survol */
.woocommerce ul.products.woo-archive-action-on-hover li.product .product-action-wrap {
	position: static !important;
	display: block !important;
	margin-top: 0;
	opacity: 1 !important;
	transform: none !important;
}

.woocommerce ul.products.woo-archive-action-on-hover li.product .button,
.woocommerce ul.products.woo-archive-action-on-hover li.product .added_to_cart {
	position: relative;
	display: flex !important;
	width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 0.8rem 1.1rem;
	gap: 0.5rem;
	border: 1px solid var(--idi-shop-ink) !important;
	border-radius: 4px;
	background: var(--idi-shop-ink) !important;
	color: #ffffff !important;
	font-size: 0.78rem;
	font-weight: 800;
	align-items: center;
	justify-content: center;
	letter-spacing: 0.05em;
	text-align: center;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s var(--idi-ease);
}

/* La flèche SVG fournie par Kadence glisse au survol de la carte */
.woocommerce ul.products li.product .button .kadence-svg-iconset {
	display: inline-flex;
	transition: transform 0.3s var(--idi-ease);
}

.woocommerce ul.products li.product .button .kadence-svg-iconset svg {
	width: 15px;
	height: 15px;
	margin-left: 0 !important;
}

.woocommerce ul.products li.product:hover .button .kadence-svg-iconset {
	transform: translateX(4px);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible,
.woocommerce ul.products li.product .added_to_cart:hover {
	border-color: var(--global-palette1) !important;
	background: var(--global-palette1) !important;
	color: #ffffff !important;
	box-shadow: 0 12px 24px -12px rgba(201, 31, 99, 0.55);
	transform: translateY(-1px);
}

/* État AJAX : chargement (Kadence gère le spinner et la coche) */
.woocommerce ul.products li.product .button.loading {
	opacity: 0.75;
}

.woocommerce ul.products li.product .added_to_cart {
	margin-top: 0.5rem !important;
}

/* --------------------------------------------------------------------------
   Messages WooCommerce (produit ajouté, informations…)
   -------------------------------------------------------------------------- */

.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-message,
.single-product .woocommerce-info,
.single-product .woocommerce-message {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	padding: 1rem 1.5rem;
	border: 1px solid var(--idi-shop-line);
	border-top: 3px solid var(--global-palette1);
	border-radius: 6px;
	background: #ffffff;
	color: var(--idi-shop-ink);
	box-shadow: 0 20px 40px -38px rgba(23, 23, 26, 0.65);
}

.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.woocommerce-page .woocommerce-message a.button,
.woocommerce-page .woocommerce-info a.button,
.single-product .woocommerce-message a.button {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 0 1.25rem;
	border-radius: 3px;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.woocommerce-page .woocommerce-message a.button:hover,
.woocommerce-page .woocommerce-info a.button:hover,
.single-product .woocommerce-message a.button:hover {
	background: var(--global-palette1);
	color: #ffffff;
}

/* --------------------------------------------------------------------------
   Fiche produit — scène galerie + carte résumé
   -------------------------------------------------------------------------- */

.single-product .kadence-breadcrumb-container {
	margin-bottom: clamp(1rem, 2vw, 1.75rem);
}

.single-product .kadence-breadcrumbs {
	color: var(--idi-shop-muted);
	font-size: 0.8rem;
	font-weight: 600;
}

.single-product .kadence-breadcrumbs a {
	color: var(--idi-shop-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

.single-product .kadence-breadcrumbs a:hover {
	color: var(--global-palette1);
}

/* Galerie et résumé forment UNE seule carte (bordure, ombre et radius
   partagés) plutôt que deux blocs disjoints de hauteurs différentes : la
   photo est un carré qui ne remplit jamais la hauteur du résumé (prix,
   description, quantité, réassurance, carte conseil…), les séparer visuellement
   comme avant donnait une impression déséquilibrée et « brouillon ». */
.single-product div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
	align-items: stretch;
	padding: 0;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 35px 75px -55px rgba(23, 23, 26, 0.7);
	/* clip (et non hidden) : hidden ferait de la carte un conteneur de
	   défilement, ce qui désactiverait la photo sticky de la galerie. */
	overflow: clip;
}

/* Liseré de marque commun aux deux colonnes, au lieu d'un accent séparé
   sur le seul résumé */
.single-product div.product::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--global-palette1);
	z-index: 2;
}

.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary {
	float: none !important;
	width: 100% !important;
	margin: 0;
}

/* Kadence réapplique un margin-bottom (2em) sur .entry-summary avec une
   spécificité supérieure : dans la grille étirée, cette marge empêchait la
   colonne résumé de descendre jusqu'au bord de la carte — le fond gris de
   la galerie et le blanc du résumé ne se terminaient pas à la même
   hauteur. */
.single-product div.product .summary.entry-summary {
	margin-bottom: 0;
}

.single-product div.product .woocommerce-product-gallery {
	position: relative;
	display: flex;
	/* Alignée en haut (et non centrée) : centrée dans une colonne aussi
	   haute que le résumé, la photo flottait très bas par rapport au titre
	   et au prix. */
	align-items: flex-start;
	justify-content: center;
	/* height:100% (de la zone de grille) plutôt que l'étirement auto :
	   le flexslider de WooCommerce fige la hauteur au chargement et la
	   colonne galerie s'arrêtait 17px au-dessus du résumé. */
	height: 100%;
	padding: clamp(2rem, 4vw, 3.5rem);
	border-right: 1px solid var(--idi-shop-line);
	background:
		radial-gradient(circle at 24% 18%, rgba(201, 31, 99, 0.05), transparent 42%),
		linear-gradient(150deg, #f6f6f8 0%, #e9eaee 100%);
}

/* Mise en scène : le visuel (carré fond blanc) devient une « platine »
   cérémontée — cadre blanc, coins doux, ombre portée — posée sur le fond
   grisé, au lieu de se fondre dans un aplat blanc uniforme. */
.single-product .woocommerce-product-gallery__image a {
	border: 1px solid rgba(23, 23, 26, 0.06);
	border-radius: 10px;
	background: #ffffff;
	box-shadow:
		0 45px 70px -45px rgba(23, 23, 26, 0.4),
		0 18px 30px -22px rgba(23, 23, 26, 0.25);
	overflow: hidden;
}

/* La photo reste visible pendant qu'on parcourt le résumé (prix,
   réassurance, conseil…) au lieu de laisser un grand vide gris. */
.single-product .woocommerce-product-gallery__wrapper {
	position: sticky;
	top: calc(2rem + var(--wp-admin--admin-bar--height, 0px));
}

.single-product .woocommerce-product-gallery__wrapper {
	width: 100%;
}

.single-product .woocommerce-product-gallery__image a {
	display: block;
	aspect-ratio: 1 / 1;
	max-height: 460px;
	margin: 0 auto;
	cursor: zoom-in;
}

.single-product .woocommerce-product-gallery__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Bouton loupe (lightbox) : pastille vitrée en haut à droite */
.single-product .woocommerce-product-gallery__trigger {
	top: 1rem !important;
	right: 1rem !important;
	width: 44px;
	height: 44px;
	border: 1px solid var(--idi-shop-line);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9) !important;
	box-shadow: 0 10px 25px -15px rgba(23, 23, 26, 0.5);
	transition: border-color 0.2s ease, transform 0.25s var(--idi-ease);
}

.single-product .woocommerce-product-gallery__trigger:hover {
	border-color: rgba(201, 31, 99, 0.45);
	transform: scale(1.06);
}

/* Vignettes de galerie (si plusieurs visuels) */
.single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	gap: 0.6rem;
	margin: 1rem 0 0;
	padding: 0;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
	width: 72px;
	margin: 0;
	border: 1px solid var(--idi-shop-line);
	border-radius: 4px;
	background: #ffffff;
	overflow: hidden;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li:hover,
.single-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
	border-color: var(--global-palette1);
}

.single-product div.product .summary {
	display: flex;
	flex-direction: column;
	padding: clamp(2rem, 4vw, 2.75rem);
	background: #ffffff;
}

.single-product div.product .product_title {
	margin: 0 0 1rem;
	color: var(--idi-shop-ink);
	font-size: clamp(2rem, 4vw, 3.4rem);
	line-height: 1.02;
	letter-spacing: 0;
}

.single-product div.product .summary .price {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0 0 0.15rem;
	color: var(--global-palette1);
	font-size: clamp(1.55rem, 2.7vw, 2.15rem);
	font-weight: 800;
}

.idi-price-ht {
	margin: 0 0 1.35rem;
	color: var(--idi-shop-muted);
	font-size: 0.88rem;
	font-weight: 600;
}

.idi-price-ht .woocommerce-Price-amount {
	font-weight: 700;
}

.single-product div.product .woocommerce-product-details__short-description {
	padding-bottom: 1.4rem;
	border-bottom: 1px solid #e7e7ea;
	color: #55555b;
	font-size: 1.02rem;
	line-height: 1.7;
}

/* Formulaire d'achat : stepper de quantité + bouton principal */
.single-product div.product.product-type-simple form.cart {
	display: flex;
	gap: 0.75rem;
	margin: 1.5rem 0 0;
	padding: 0;
}

.single-product div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: stretch;
	gap: 0.75rem;
}

.single-product div.product form.cart .quantity.idi-qty {
	display: inline-flex;
	align-items: stretch;
	float: none;
	margin: 0;
	border: 1px solid #d7d7db;
	/* Même arrondi que le bouton d'achat voisin. */
	border-radius: 10px;
	background: #f7f7f8;
	overflow: hidden;
}

.single-product div.product form.cart .idi-qty-btn {
	width: 44px;
	min-height: 54px;
	border: 0;
	background: transparent;
	color: var(--idi-shop-ink);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.single-product div.product form.cart .idi-qty-btn:hover {
	background: #ececee;
	color: var(--global-palette1);
}

.single-product div.product form.cart .quantity .qty {
	width: 52px;
	min-height: 54px;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-weight: 700;
	text-align: center;
	appearance: textfield;
	-moz-appearance: textfield;
}

.single-product div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product div.product form.cart .quantity .qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.single-product div.product form.cart .quantity .qty:focus-visible {
	outline: 2px solid var(--global-palette1);
	outline-offset: -2px;
}

.single-product .kt-radio-variation-container label {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.single-product .kt-radio-variation-container input:focus-visible + label {
	outline: 2px solid var(--global-palette1) !important;
	outline-offset: 2px !important;
}

.single-product div.product.product-type-simple .single_add_to_cart_button,
.single-product div.product.product-type-variable .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	/* inline-flex + line-height normal : Kadence pose line-height:40px sur
	   les boutons, ce qui poussait le libellé vers le bas du bouton
	   (26px au-dessus du texte, 12px en dessous). Le flex centre le texte
	   quelle que soit la hauteur, alignée sur les 56px du sélecteur de
	   quantité. */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	float: none;
	min-height: 56px !important;
	padding: 0 1.5rem;
	flex: 1;
	border: 0;
	/* Même identité que la barre d'achat collante : dégradé rose du logo IDI,
	   coins arrondis 10px, halo coloré et liseré clair — pour un code couleur
	   uniforme entre la fiche et la barre collante. */
	border-radius: 10px;
	background: linear-gradient(180deg, #d63b74 0%, #c91f63 100%);
	color: #ffffff;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-transform: uppercase;
	box-shadow: 0 14px 30px -14px rgba(201, 31, 99, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	cursor: pointer;
	transition: transform 0.2s var(--idi-ease), box-shadow 0.2s ease, filter 0.2s ease;
}

.single-product div.product.product-type-simple .single_add_to_cart_button:hover,
.single-product div.product.product-type-simple .single_add_to_cart_button:focus-visible,
.single-product div.product.product-type-variable .woocommerce-variation-add-to-cart .single_add_to_cart_button:hover,
.single-product div.product.product-type-variable .woocommerce-variation-add-to-cart .single_add_to_cart_button:focus-visible {
	transform: translateY(-1px);
	filter: brightness(1.05);
	box-shadow: 0 18px 36px -14px rgba(201, 31, 99, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.single-product div.product.product-type-simple .single_add_to_cart_button:active,
.single-product div.product.product-type-variable .woocommerce-variation-add-to-cart .single_add_to_cart_button:active {
	transform: translateY(0);
	box-shadow: 0 8px 18px -14px rgba(201, 31, 99, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

/* Grille de réassurance : quatre engagements avec icônes */
.idi-product-benefits {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.6rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.idi-product-benefits li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0.8rem 0.9rem;
	border: 1px solid #ececef;
	border-radius: 4px;
	background: #fafafb;
}

.idi-product-benefits svg {
	width: 22px;
	height: 22px;
	flex: 0 0 auto;
	color: var(--global-palette1);
}

.idi-product-benefits__text {
	display: flex;
	flex-direction: column;
	gap: 0.05rem;
	min-width: 0;
}

.idi-product-benefits__text strong {
	color: var(--idi-shop-ink);
	font-size: 0.8rem;
	line-height: 1.3;
}

.idi-product-benefits__text > span {
	color: var(--idi-shop-muted);
	font-size: 0.72rem;
	line-height: 1.35;
}

/* Carte conseil : bandeau sombre, même famille que le hero et le footer */
.idi-product-support {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.5rem;
	padding: 1.15rem 1.35rem;
	border-radius: 4px;
	background:
		radial-gradient(circle at 92% 0%, rgba(201, 31, 99, 0.35), transparent 42%),
		linear-gradient(116deg, #101013 0%, #232228 100%);
}

.idi-product-support__text {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.idi-product-support strong {
	color: #ffffff;
	font-size: 0.9rem;
}

.idi-product-support__text > span {
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.78rem;
	line-height: 1.5;
}

.idi-product-support__phone {
	flex: 0 0 auto;
	padding: 0.65rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 3px;
	color: #ffffff !important;
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.idi-product-support__phone:hover {
	border-color: var(--global-palette1);
	background: var(--global-palette1);
}

/* Métadonnées : référence et catégorie en puces */
.single-product div.product .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 1.35rem;
	padding-top: 1.2rem;
	border-top: 1px solid #e7e7ea;
}

.single-product div.product .product_meta > span {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.8rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 999px;
	color: var(--idi-shop-muted);
	font-size: 0.74rem;
	font-weight: 600;
	line-height: 1;
}

.single-product div.product .product_meta .sku,
.single-product div.product .product_meta a {
	color: var(--idi-shop-ink);
	font-weight: 700;
	text-decoration: none;
}

.single-product div.product .product_meta a:hover {
	color: var(--global-palette1);
}

/* --------------------------------------------------------------------------
   Description détaillée & produits liés
   -------------------------------------------------------------------------- */

.single-product div.product .woocommerce-tabs,
.single-product div.product .related.products,
.single-product div.product .upsells.products {
	grid-column: 1 / -1;
}

.single-product div.product .woocommerce-tabs {
	margin-top: clamp(1.5rem, 3.5vw, 3rem);
	padding: clamp(1.75rem, 4vw, 3.5rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 30px 70px -60px rgba(23, 23, 26, 0.7);
}

/* Avec un seul onglet (avis désactivés), la barre d'onglets est du bruit */
.single-product div.product .woocommerce-tabs ul.tabs:has(> li:only-child) {
	display: none;
}

.single-product div.product .woocommerce-tabs ul.tabs {
	margin: 0 0 2rem;
	padding: 0;
	border-bottom: 1px solid #dedfe3;
}

.single-product div.product .woocommerce-tabs ul.tabs li {
	margin: 0 2rem 0 0;
	padding: 0 0 0.85rem;
	border: 0;
	background: transparent;
}

.single-product div.product .woocommerce-tabs ul.tabs li a {
	color: #737379;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.single-product div.product .woocommerce-tabs ul.tabs li.active {
	border-bottom: 2px solid var(--global-palette1);
}

.single-product div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--idi-shop-ink);
}

.single-product .woocommerce-Tabs-panel > h2:first-child,
.single-product .related.products > h2,
.single-product .upsells.products > h2 {
	position: relative;
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
	padding-bottom: 1rem;
	color: var(--idi-shop-ink);
	font-size: clamp(1.6rem, 2.8vw, 2.3rem);
	letter-spacing: 0;
}

/* Surtitres éditoriaux : chaque grande section est annoncée par un
   « eyebrow » de marque, comme sur les pages éditoriales du site. */
.single-product .woocommerce-Tabs-panel > h2:first-child::before,
.single-product .related.products > h2::before,
.single-product .upsells.products > h2::before {
	content: "Fiche produit";
	display: block;
	margin-bottom: 0.7rem;
	color: var(--global-palette1);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.single-product .related.products > h2::before,
.single-product .upsells.products > h2::before {
	/* \e9 : écrire « é » en littéral dans content dépend de l'encodage
	   déclaré de la feuille — rendu « SÃ©LECTION » selon le contexte de
	   chargement. L'échappement Unicode est indépendant de l'encodage. */
	content: "S\e9 lection IDI";
}

.single-product .woocommerce-Tabs-panel > h2:first-child::after,
.single-product .related.products > h2::after,
.single-product .upsells.products > h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 56px;
	height: 3px;
	border-radius: 2px;
	background: var(--global-palette1);
}

/* Contenu de description : largeur de lecture confortable, listes marquées */
.single-product .woocommerce-Tabs-panel--description > p,
.single-product .woocommerce-Tabs-panel--description > ul,
.single-product .woocommerce-Tabs-panel--description > ol,
.single-product .woocommerce-Tabs-panel--description > h3 {
	max-width: 72ch;
}

/* Gabarit à deux colonnes pour les produits avec tarifs par palier : texte
   à gauche, encart tarifaire à droite — évite le grand vide à droite d'un
   texte court sur toute la largeur de l'onglet */
.single-product .idi-desc-columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
}

@media all and (min-width: 900px) {
	.single-product .idi-desc-columns {
		grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
		gap: 3rem;
		align-items: start;
	}
}

.single-product .idi-desc-col > p,
.single-product .idi-desc-col > ul {
	max-width: 60ch;
}

.single-product .idi-desc-col--pricing {
	padding: 1.5rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #fafafb;
}

/* Variante « conseil / contact » de l'encart latéral : bandeau graphite
   de la famille du hero, pour créer un moment de contraste dans l'onglet
   au lieu d'un blanc uniforme. La variante claire reste utilisée pour les
   tableaux de tarifs (lisibilité). */
.single-product .idi-desc-col--pricing:has(.idi-desc-contact) {
	border: 0;
	background:
		radial-gradient(circle at 90% 0%, rgba(201, 31, 99, 0.32), transparent 46%),
		linear-gradient(116deg, #101013 0%, #232228 100%);
}

.single-product .idi-desc-col--pricing:has(.idi-desc-contact) h3 {
	color: #ffffff;
}

.single-product .woocommerce-Tabs-panel--description .idi-desc-col--pricing:has(.idi-desc-contact) p {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.92rem;
}

.single-product .woocommerce-Tabs-panel--description .idi-desc-col--pricing:has(.idi-desc-contact) .idi-desc-contact a {
	color: #ffffff;
}

.single-product .woocommerce-Tabs-panel--description .idi-desc-col--pricing:has(.idi-desc-contact) .idi-desc-contact a:hover {
	color: var(--global-palette1);
}

.single-product .woocommerce-Tabs-panel--description .idi-desc-col--pricing:has(.idi-desc-contact) .idi-tier-note {
	color: rgba(255, 255, 255, 0.5);
}

.single-product .idi-desc-col--pricing h3 {
	margin-top: 0;
	font-size: 1.05rem;
}

.single-product .idi-desc-col--pricing .idi-tier-pricing {
	max-width: none;
	margin-bottom: 1rem;
}

.single-product .idi-tier-note {
	margin: 0;
	color: var(--idi-shop-muted);
	font-size: 0.8rem;
	font-style: italic;
	line-height: 1.5;
}

.single-product .idi-tier-sub {
	display: block;
	margin-top: 0.15rem;
	color: var(--idi-shop-muted);
	font-size: 0.72rem;
	font-weight: 600;
}

.single-product tr.idi-tier-best .idi-tier-sub {
	color: rgba(23, 23, 26, 0.55);
}

.single-product .woocommerce-Tabs-panel--description p {
	color: #494950;
	font-size: 1rem;
	line-height: 1.75;
}

/* Paragraphe d'introduction : plus grand et plus contrasté que le corps,
   pour donner une hiérarchie au texte au lieu d'un bloc uniforme. */
.single-product .woocommerce-Tabs-panel--description .idi-desc-lead {
	margin-bottom: 1.75rem;
	color: var(--idi-shop-ink);
	font-size: 1.15rem;
	font-weight: 500;
	line-height: 1.65;
}

/* Les descriptions fournisseur arrivent souvent comme une simple succession
   de paragraphes et de listes. On leur donne une composition éditoriale sans
   toucher aux fiches qui utilisent déjà les composants idi-desc-* ci-dessus. */
.single-product .woocommerce-Tabs-panel--description > p:first-of-type {
	max-width: 78ch;
	margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
	padding-left: clamp(1rem, 2.5vw, 1.75rem);
	border-left: 3px solid var(--global-palette1);
	color: var(--idi-shop-ink);
	font-size: clamp(1.08rem, 1.8vw, 1.25rem);
	font-weight: 500;
	line-height: 1.7;
}

.single-product .woocommerce-Tabs-panel--description > p:first-of-type + p:not(:has(> strong:only-child)) {
	position: relative;
	max-width: none;
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	padding: clamp(1.25rem, 3vw, 1.75rem) clamp(1.25rem, 3.5vw, 2.25rem) clamp(1.25rem, 3vw, 1.75rem) clamp(4rem, 7vw, 5.25rem);
	border-radius: 4px;
	background: linear-gradient(118deg, #17171a 0%, #27262c 100%);
	box-shadow: 0 22px 50px -42px rgba(16, 16, 19, 0.95);
	color: rgba(255, 255, 255, 0.86);
	font-size: clamp(1rem, 1.5vw, 1.1rem);
	font-weight: 600;
	line-height: 1.6;
}

.single-product .woocommerce-Tabs-panel--description > p:first-of-type + p:not(:has(> strong:only-child))::before {
	content: "";
	position: absolute;
	left: clamp(1.25rem, 3vw, 2rem);
	top: 50%;
	width: 1.5rem;
	height: 1.5rem;
	border: 5px solid rgba(255, 255, 255, 0.28);
	border-top-color: var(--global-palette1);
	border-radius: 50%;
	transform: translateY(-50%) rotate(42deg);
}

.single-product .woocommerce-Tabs-panel--description > p:has(> strong:only-child) {
	max-width: none;
	margin: 0 0 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--idi-shop-line);
	color: var(--idi-shop-ink);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.single-product .woocommerce-Tabs-panel--description > ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	max-width: none;
	margin: 0 0 clamp(1.75rem, 3.5vw, 2.75rem);
	border-top: 1px solid var(--idi-shop-line);
}

.single-product .woocommerce-Tabs-panel--description > ul li {
	display: flex;
	align-items: flex-start;
	min-height: 76px;
	margin: 0;
	padding: 1rem 1.25rem 1rem 2.5rem;
	border-bottom: 1px solid var(--idi-shop-line);
	color: var(--idi-shop-ink);
	font-weight: 650;
}

.single-product .woocommerce-Tabs-panel--description > ul li:nth-child(odd) {
	border-right: 1px solid var(--idi-shop-line);
}

.single-product .woocommerce-Tabs-panel--description > ul li::before {
	left: 0.75rem;
	top: 1.62rem;
	width: 9px;
	height: 9px;
	border: 2px solid var(--global-palette1);
	border-radius: 50%;
	background: transparent;
}

.single-product .woocommerce-Tabs-panel--description > ul + p {
	max-width: none;
	margin: 0;
	padding: 1rem 1.25rem;
	border-top: 2px solid var(--global-palette1);
	background: #f6f6f7;
	color: var(--idi-shop-ink);
	font-size: 0.9rem;
	font-weight: 800;
	line-height: 1.55;
}

.single-product .woocommerce-Tabs-panel--description .idi-desc-contact a {
	color: var(--idi-shop-ink);
	font-weight: 800;
	text-decoration: none;
}

.single-product .woocommerce-Tabs-panel--description .idi-desc-contact a:hover {
	color: var(--global-palette1);
}

.single-product .woocommerce-Tabs-panel--description ul {
	margin: 1.25rem 0;
	padding-left: 0;
	list-style: none;
}

.single-product .woocommerce-Tabs-panel--description ul li {
	position: relative;
	margin-bottom: 0.55rem;
	padding-left: 1.6rem;
	color: #3c3c42;
	font-size: 0.98rem;
	line-height: 1.6;
}

.single-product .woocommerce-Tabs-panel--description ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 14px;
	height: 2px;
	border-radius: 1px;
	background: var(--global-palette1);
}

/* Table de tarifs dégressifs (quantité) : mise en avant claire du meilleur
   palier, réutilisable sur n'importe quelle fiche produit vendue par lot */
.single-product .woocommerce-Tabs-panel--description h3 {
	margin: 0 0 1.25rem;
	color: var(--idi-shop-ink);
	font-size: 1.2rem;
}

.single-product .woocommerce-Tabs-panel--description .idi-tier-pricing {
	max-width: 640px;
	margin: 0 0 1.5rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	overflow: hidden;
}

.single-product .woocommerce-Tabs-panel--description .idi-tier-pricing table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}

.single-product .woocommerce-Tabs-panel--description .idi-tier-pricing th {
	padding: 0.85rem 1.1rem;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-align: left;
	text-transform: uppercase;
}

.single-product .woocommerce-Tabs-panel--description .idi-tier-pricing td {
	padding: 0.85rem 1.1rem;
	border-top: 1px solid #ececef;
	color: #3c3c42;
	font-size: 0.92rem;
	font-weight: 600;
}

.single-product .woocommerce-Tabs-panel--description .idi-tier-pricing tr.idi-tier-best td {
	background: rgba(201, 31, 99, 0.05);
	color: var(--idi-shop-ink);
	font-weight: 800;
}

.single-product .woocommerce-Tabs-panel--description .idi-tier-tag {
	display: inline-block;
	margin-left: 0.5rem;
	padding: 0.15rem 0.5rem;
	border-radius: 999px;
	background: var(--global-palette1);
	color: #ffffff;
	font-size: 0.6rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	vertical-align: middle;
}

.single-product .woocommerce-Tabs-panel--description .idi-tier-save {
	display: block;
	margin-top: 0.15rem;
	color: var(--global-palette1);
	font-size: 0.76rem;
	font-weight: 700;
}

.single-product .related.products,
.single-product .upsells.products {
	margin-top: clamp(2rem, 4vw, 3.5rem);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: 6px;
	background:
		radial-gradient(circle at 90% 0%, rgba(201, 31, 99, 0.3), transparent 42%),
		linear-gradient(116deg, #101013 0%, #242329 64%, #17171a 100%);
}

.single-product .related.products > h2,
.single-product .upsells.products > h2 {
	margin-bottom: 1.25rem;
	color: #ffffff;
	font-size: clamp(1.25rem, 2vw, 1.6rem);
}

/* Cartes compactes à l'horizontale : cette bande est une suggestion de
   complément, pas la boutique — les grandes cartes verticales (image
   264px + extrait + CTA) faisaient presque 900px de section pour un seul
   produit. */
.single-product .related.products li.product,
.single-product .upsells.products li.product {
	display: grid !important;
	grid-template-columns: 120px minmax(0, 1fr);
	align-items: center;
}

.single-product .related.products li.product .woocommerce-loop-image-link,
.single-product .upsells.products li.product .woocommerce-loop-image-link {
	align-self: stretch;
	display: grid;
	place-items: center;
	padding: 0.75rem;
}

.single-product .related.products li.product img,
.single-product .upsells.products li.product img {
	width: 100%;
	height: auto;
	max-height: 110px;
	object-fit: contain;
}

.single-product .related.products li.product .product-details,
.single-product .upsells.products li.product .product-details {
	padding: 1rem 1.1rem;
}

.single-product .related.products li.product .idi-card-excerpt,
.single-product .upsells.products li.product .idi-card-excerpt {
	display: none;
}

.single-product .related.products li.product .woocommerce-loop-product__title,
.single-product .upsells.products li.product .woocommerce-loop-product__title {
	font-size: 0.95rem;
}

.single-product .related.products li.product .product-action-wrap .button,
.single-product .upsells.products li.product .product-action-wrap .button {
	min-height: 44px;
	padding: 0.5rem 1rem;
}

/* Deux suggestions par ligne maximum : cartes horizontales compactes */
@media all and (min-width: 1025px) {
	.single-product .related.products ul.products,
	.single-product .upsells.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
   Panier & checkout (WooCommerce Blocks) — cohérence avec la DA
   -------------------------------------------------------------------------- */

.wp-block-woocommerce-filled-cart-block .wp-block-woocommerce-cart-items-block {
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 25px 60px -50px rgba(23, 23, 26, 0.7);
}

.wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-checkout-totals-block {
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border: 1px solid var(--idi-shop-line);
	border-top: 4px solid var(--global-palette1);
	border-radius: 0 0 6px 6px;
	background: #ffffff;
	box-shadow: 0 25px 60px -50px rgba(23, 23, 26, 0.7);
}

.wp-block-woocommerce-checkout-fields-block {
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 25px 60px -50px rgba(23, 23, 26, 0.7);
}

table.wc-block-cart-items th {
	color: var(--idi-shop-muted);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wc-block-cart-items__row .wc-block-cart-item__image img {
	border: 1px solid var(--idi-shop-line);
	border-radius: 4px;
	background: #fbfbfc;
}

.wc-block-components-product-name {
	color: var(--idi-shop-ink) !important;
	font-weight: 700;
	text-decoration: none !important;
}

.wc-block-components-product-name:hover {
	color: var(--global-palette1) !important;
}

.wc-block-cart-item__remove-link {
	color: var(--idi-shop-muted) !important;
	font-size: 0.78rem;
	cursor: pointer;
}

.wc-block-cart-item__remove-link:hover {
	color: var(--global-palette1) !important;
}

.wc-block-components-quantity-selector {
	border-radius: 3px;
}

.wc-block-components-quantity-selector:after {
	border: 1px solid #d7d7db !important;
	border-radius: 3px;
}

/* Boutons d'action des blocs (aller au paiement, commander…) */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 54px;
	border: 0;
	border-radius: 3px !important;
	background: var(--idi-shop-ink) !important;
	color: #ffffff !important;
	font-size: 0.84rem !important;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.25s ease, transform 0.25s var(--idi-ease);
}

.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus-visible,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--global-palette1) !important;
	color: #ffffff !important;
	transform: translateY(-1px);
}

/* Champs des blocs : focus crimson cohérent avec le reste du site */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .components-combobox-control__suggestions-container input,
.wp-block-woocommerce-checkout select {
	border-color: #d7d7db;
	border-radius: 3px;
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wp-block-woocommerce-checkout select:focus {
	border-color: var(--global-palette1) !important;
	box-shadow: 0 0 0 3px rgba(201, 31, 99, 0.12) !important;
	outline: none;
}

/* Cases à cocher et radios (paiement, CGV) aux couleurs de la marque */
.wp-block-woocommerce-cart input[type="checkbox"],
.wp-block-woocommerce-checkout input[type="checkbox"],
.wp-block-woocommerce-checkout input[type="radio"] {
	accent-color: var(--global-palette1);
}

.wc-block-components-radio-control__option {
	cursor: pointer;
}

/* --------------------------------------------------------------------------
   Panier — réassurance et retour boutique autour du bloc Cart
   -------------------------------------------------------------------------- */

.idi-cart-assurance {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
	margin: 0 0 clamp(1.75rem, 3.5vw, 2.5rem);
}

.idi-cart-assurance > span {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	color: var(--idi-shop-ink);
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.35;
}

.idi-cart-assurance svg {
	width: 22px;
	height: 22px;
	flex: 0 0 auto;
	color: var(--global-palette1);
}

.idi-cart-assurance small {
	color: var(--idi-shop-muted);
	font-size: 0.76rem;
	font-weight: 600;
}

.idi-cart-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: clamp(1.5rem, 3vw, 2rem);
	padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
	border-top: 1px solid var(--idi-shop-line);
}

.idi-cart-continue {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--idi-shop-ink);
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
	transition: color 0.2s ease, gap 0.2s ease;
}

.idi-cart-continue span {
	transition: transform 0.25s var(--idi-ease);
}

.idi-cart-continue:hover {
	color: var(--global-palette1);
}

.idi-cart-continue:hover span {
	transform: translateX(-3px);
}

.idi-cart-help {
	margin: 0;
	color: var(--idi-shop-muted);
	font-size: 0.82rem;
}

.idi-cart-help a {
	color: var(--idi-shop-ink);
	font-weight: 800;
	text-decoration: none;
}

.idi-cart-help a:hover {
	color: var(--global-palette1);
}

@media all and (max-width: 781px) {
	.idi-cart-assurance {
		grid-template-columns: 1fr;
	}

	.idi-cart-footer {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* Panier vide : titre éditorial + grille "nouveautés" alignée sur les cartes */
.wc-block-cart__empty-cart__title {
	color: var(--idi-shop-ink);
}

.woocommerce-cart .wc-block-grid__product,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
	padding-bottom: 1rem;
	border: 1px solid var(--idi-shop-line) !important;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 22px 55px -45px rgba(23, 23, 26, 0.85);
	overflow: hidden;
}

.woocommerce-cart .wc-block-grid__product-title,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
	color: var(--idi-shop-ink);
	font-weight: 700;
}

/* Le résumé de description sous le nom de produit (panier/commande) est
   tronqué par WooCommerce Blocks à un nombre de caractères fixe, sans égard
   aux limites de mots ("30% plus rapide q…") : on masque cette ligne plutôt
   que d'afficher un texte cassé, cette description n'apportant de toute façon
   rien d'utile une fois réduite à quelques mots. */
.wc-block-components-product-metadata__description {
	display: none;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media all and (max-width: 1024px) {
	.single-product div.product {
		grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
	}
}

@media all and (max-width: 781px) {
	.woocommerce-page .entry-hero-container-inner {
		width: calc(100% - 2rem);
		/* Compacté sur demande, même au prix de l'écart avec les pages
		   institutionnelles : la carte doit épouser son contenu, pas le laisser
		   flotter dans un grand vide sombre. */
		min-height: 240px;
	}

	.woocommerce-page .entry-hero .hero-container {
		padding: 2.25rem 1.5rem 2rem;
	}

	.woocommerce-page .entry-hero-container-inner::before {
		top: 1.25rem;
		left: 1.5rem;
		right: auto;
		font-size: 0.62rem;
	}

	.woocommerce-page .entry-hero .entry-title,
	.woocommerce-page .entry-hero .page-title {
		/* Même formule que le titre institutionnel mobile. */
		font-size: clamp(1.9rem, 7.5vw, 2.5rem);
	}

	.idi-shop-assurance {
		grid-template-columns: 1fr;
		margin-top: -1.5rem;
	}

	.idi-shop-assurance__item {
		min-height: 48px;
		padding-top: 0.85rem;
		padding-bottom: 0.85rem;
		padding-left: 2.5rem;
	}

	.idi-shop-assurance__item + .idi-shop-assurance__item {
		border-top: 1px solid rgba(23, 23, 26, 0.08);
		border-left: 0;
	}

	.idi-catalog-panel__families,
	.idi-catalog-panel__tools,
	.idi-catalog-search {
		padding: 0.75rem;
	}

	.woocommerce .kadence-shop-top-row.is-in-rail .woocommerce-result-count {
		display: none;
	}

	.woocommerce .kadence-shop-top-row.is-in-rail .woocommerce-ordering,
	.woocommerce .kadence-shop-top-row.is-in-rail .woocommerce-ordering select {
		width: 100%;
	}

	.woocommerce .kadence-shop-top-row {
		align-items: stretch;
		padding: 0.8rem;
	}

	.woocommerce ul.products li.product .product-details {
		min-height: 0;
		padding: 1rem 1.1rem 1.1rem;
	}

	.woocommerce ul.products li.product .woocommerce-loop-image-link::after {
		display: none;
	}

	.idi-card-excerpt {
		display: none;
	}

	.single-product div.product {
		display: block;
	}

	.single-product div.product .woocommerce-product-gallery {
		border-right: 0;
		border-bottom: 1px solid var(--idi-shop-line);
	}

	.single-product div.product .summary {
		margin-top: 0;
	}

	.single-product div.product.product-type-simple form.cart {
		flex-wrap: wrap;
		align-items: stretch;
	}

	.single-product div.product.product-type-simple .single_add_to_cart_button {
		flex: 1 1 100%;
	}

	.idi-product-benefits {
		grid-template-columns: 1fr;
	}

	.idi-product-support {
		flex-direction: column;
		align-items: flex-start;
	}

	.idi-product-support__phone {
		width: 100%;
		text-align: center;
	}

	.single-product div.product .woocommerce-tabs {
		margin-top: 1.25rem;
		padding: 1.25rem;
	}

	.single-product .woocommerce-Tabs-panel--description > p:first-of-type + p:not(:has(> strong:only-child)) {
		padding-left: 3.75rem;
	}

	.single-product .woocommerce-Tabs-panel--description > p:first-of-type + p:not(:has(> strong:only-child))::before {
		left: 1.25rem;
	}

	.single-product .woocommerce-Tabs-panel--description > ul {
		grid-template-columns: minmax(0, 1fr);
	}

	.single-product .woocommerce-Tabs-panel--description > ul li:nth-child(odd) {
		border-right: 0;
	}

	.single-product div.product .woocommerce-tabs ul.tabs {
		display: flex;
		overflow: hidden;
	}

	.single-product div.product .woocommerce-tabs ul.tabs li {
		margin: 0;
		padding-right: 0.65rem;
		padding-left: 0.65rem;
		flex: 1;
		text-align: center;
		white-space: nowrap;
	}

	.single-product div.product .woocommerce-tabs ul.tabs li a {
		font-size: 0.7rem;
	}

	.single-product .related.products {
		margin-top: 2.5rem;
	}
}

/* --------------------------------------------------------------------------
   Mon compte — connexion, inscription et tableau de bord client
   -------------------------------------------------------------------------- */

body.woocommerce-account #primary .content-container {
	max-width: 1000px;
}

/* Client connecté : l'espace compte exploite la même largeur que le reste
   du site (1320px, comme le hero boutique) au lieu de rester compacté au
   centre. Les pages de connexion/inscription restent à 1000px : deux
   formulaires n'ont pas besoin de plus. */
body.woocommerce-account.logged-in #primary .content-container {
	max-width: 1320px;
}

/* Le hero compact laisse un grand vide au-dessus du formulaire avec la
   marge/le padding par défaut de Kadence, pensés pour un hero pleine
   hauteur : on la resserre pour ces pages utilitaires */
body.woocommerce-account #primary.content-area,
body.woocommerce-cart #primary.content-area,
body.woocommerce-checkout #primary.content-area {
	margin-top: 0;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

body.woocommerce-account #primary .content-container,
body.woocommerce-cart #primary .content-container,
body.woocommerce-checkout #primary .content-container {
	padding-top: clamp(1.5rem, 3vw, 2rem);
}

/* Formulaires de connexion / inscription : deux cartes côte à côte quand
   les deux sont présentes (inscription activée), une seule sinon */
.woocommerce-account .u-columns.col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
}

/* Kadence impose width:48% + float sur .col-1/.col-2 partout où WooCommerce
   utilise ce gabarit à deux colonnes hérité (connexion/inscription ET
   adresses) — spécificité (0,3,0), on l'annule à spécificité égale, chargée
   après (voir dépendance kadence-woocommerce dans functions.php). */
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2 {
	float: none;
	width: 100%;
}

/* Kadence ajoute aussi un clearfix ::before/::after (content:" ";
   display:table) pour l'ancien layout en float. Une fois le parent passé
   en display:grid, ces pseudo-éléments générés deviennent eux-mêmes des
   items de grille et décalent l'ordre de placement des vraies cartes
   (visible en survol : cartes qui se chevauchent, désalignées). On les
   neutralise entièrement dans ce contexte. */
.woocommerce-account .col2-set::before,
.woocommerce-account .col2-set::after {
	display: none;
	content: none;
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	margin: 0;
	padding: clamp(1.75rem, 3.5vw, 2.5rem);
	border: 1px solid var(--idi-shop-line);
	border-top: 4px solid var(--global-palette1);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 30px 70px -55px rgba(23, 23, 26, 0.75);
}

.woocommerce-account .woocommerce-form-login h2,
.woocommerce-account .woocommerce-form-register h2,
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	margin: 0 0 1.25rem;
	color: var(--idi-shop-ink);
	font-size: 1.4rem;
}

.woocommerce-account .form-row {
	margin: 0 0 1.1rem;
}

.woocommerce-account .form-row label {
	display: block;
	margin-bottom: 0.4rem;
	color: var(--idi-shop-ink);
	font-size: 0.85rem;
	font-weight: 700;
}

.woocommerce-account .woocommerce-Input {
	width: 100%;
	min-height: 50px;
	padding: 0.65rem 1rem;
	border: 1px solid #d7d7db;
	border-radius: 3px;
	background: #ffffff;
	color: var(--idi-shop-ink);
	font-size: 0.95rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce-account .woocommerce-Input:focus {
	border-color: var(--global-palette1);
	box-shadow: 0 0 0 3px rgba(201, 31, 99, 0.12);
	outline: none;
}

.woocommerce-account .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--idi-shop-muted);
	font-size: 0.85rem;
	font-weight: 500;
}

.woocommerce-account .woocommerce-form__input-checkbox {
	accent-color: var(--global-palette1);
}

.woocommerce-account .woocommerce-button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	margin-top: 0.5rem;
	padding: 0 1.75rem;
	border: 0;
	border-radius: 3px;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.25s ease, transform 0.25s var(--idi-ease);
}

.woocommerce-account .woocommerce-button.button:hover {
	background: var(--global-palette1);
	transform: translateY(-1px);
}

.woocommerce-account .woocommerce-LostPassword {
	margin-top: 1rem;
	font-size: 0.84rem;
}

.woocommerce-account .woocommerce-LostPassword a {
	color: var(--idi-shop-muted);
	text-decoration: underline;
}

/* Tableau de bord (utilisateur connecté) : navigation en rail + contenu */

/* Kadence enveloppe l'avatar/nom du client et la navigation dans
   .account-navigation-wrap, et à partir de 768px le fait flotter à droite
   sur 30% de largeur pendant que .woocommerce-MyAccount-content flotte à
   gauche sur 70% (gabarit "sidebar" hérité, voir
   assets/css/woocommerce-account.min.css) : notre nav en pilules pleine
   largeur et notre carte de contenu n'ont jamais été pensées pour ce
   float, d'où un avatar en cercle absolu qui chevauchait la nav et un
   contenu qui se recalait sous/à côté du float au lieu de s'empiler
   proprement. On neutralise le float pour retrouver un simple empilement
   vertical à toutes les largeurs. */
.woocommerce-account .account-navigation-wrap,
.woocommerce-account.kadence-account-nav-left .account-navigation-wrap,
.kadence-account-nav-left.woocommerce-account .account-navigation-wrap {
	float: none;
	width: 100%;
	border: 0;
	margin: 0 0 clamp(1.5rem, 3vw, 2rem);
}

/* Bloc avatar + nom : Kadence le positionne en absolu (cercle de 40px
   chevauchant le nom décalé de 50px à gauche) pour cohabiter avec l'ancien
   float ci-dessus ; on en fait une carte simple alignée avec le reste du
   tableau de bord. */
.woocommerce-account .kadence-account-avatar {
	position: static;
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-height: 0;
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
}

.woocommerce-account .kadence-customer-image {
	position: static;
	flex: 0 0 auto;
}

.woocommerce-account .kadence-customer-image img {
	position: static;
	display: block;
	width: 44px;
	height: 44px;
	max-width: 44px;
	border: 2px solid var(--idi-shop-line);
	border-radius: 50%;
}

.woocommerce-account .idi-account-initials {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 2px solid #e2e0e3;
	border-radius: 50%;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
}

.woocommerce-account .kadence-customer-name {
	padding-left: 0;
	color: var(--idi-shop-ink);
	font-size: 0.95rem;
	font-weight: 800;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	margin: 0 0 clamp(1.5rem, 3vw, 2rem);
	padding: 0.6rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation-link {
	margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation-link a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 1rem;
	border-radius: 4px;
	color: var(--idi-shop-muted);
	font-size: 0.82rem;
	font-weight: 700;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover {
	background: #f4f3f4;
	color: var(--idi-shop-ink);
}

.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a {
	background: var(--idi-shop-ink);
	color: #ffffff;
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	padding: clamp(1.75rem, 3.5vw, 2.5rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 30px 70px -55px rgba(23, 23, 26, 0.75);
}

.woocommerce-account .woocommerce-MyAccount-content p {
	color: #494950;
	line-height: 1.7;
}

.woocommerce-account .woocommerce-MyAccount-content mark {
	background: none;
	color: var(--global-palette1);
	font-weight: 700;
}

/* :not(.button):not(.woocommerce-Button) — sans quoi cette règle générique
   écrase aussi la couleur du texte des boutons blancs-sur-noir (« Parcourir
   les produits » etc.), rendant leur texte invisible (texte et fond dans
   la même teinte). */
.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button),
.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button):link,
.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button):visited {
	color: var(--idi-shop-ink) !important;
	font-weight: 700;
	text-decoration: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button):hover {
	color: var(--global-palette1) !important;
}

/* Accueil du compte : le gabarit WooCommerce natif ne contient que deux
   paragraphes. Le dashboard IDI crée une vraie vue de travail, sans ajouter
   une carte dans la carte générique du contenu. */
.woocommerce-account .woocommerce-MyAccount-content:has(.idi-account-dashboard) {
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.idi-account-dashboard {
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 2rem);
}

.idi-account-dashboard svg {
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.idi-account-welcome {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	min-height: 220px;
	padding: clamp(1.75rem, 4vw, 3rem);
	overflow: hidden;
	border-radius: 6px;
	background: var(--idi-shop-ink);
	color: #ffffff;
}

.idi-account-welcome::after {
	position: absolute;
	right: -1px;
	top: 0;
	width: clamp(90px, 16vw, 175px);
	height: 100%;
	border-left: 1px solid rgba(255, 255, 255, 0.1);
	background-image: linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
	background-size: 24px 24px;
	content: "";
	pointer-events: none;
}

.idi-account-welcome__copy {
	position: relative;
	z-index: 1;
	max-width: 620px;
}

.idi-account-welcome__eyebrow,
.idi-account-section-heading__eyebrow,
.idi-account-status__label {
	margin: 0 0 0.65rem !important;
	color: var(--global-palette1) !important;
	font-size: 0.69rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.3 !important;
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-welcome h2 {
	max-width: 520px;
	margin: 0 0 0.8rem;
	color: #ffffff;
	font-size: clamp(1.8rem, 3.4vw, 2.65rem);
	line-height: 1.08;
}

.idi-account-welcome__copy > p:last-child {
	max-width: 590px;
	margin: 0;
	color: rgba(255, 255, 255, 0.72) !important;
	font-size: 0.96rem;
	line-height: 1.65;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-welcome__shop,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-welcome__shop:link,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-welcome__shop:visited {
	position: relative;
	z-index: 2;
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	min-height: 48px;
	padding: 0 1.2rem;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 3px;
	background: #ffffff;
	color: var(--idi-shop-ink) !important;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s var(--idi-ease);
}

.idi-account-welcome__shop svg {
	width: 17px;
	height: 17px;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-welcome__shop:hover {
	background: var(--global-palette1);
	color: #ffffff !important;
	transform: translateY(-2px);
}

.idi-account-overview {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.idi-account-status {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	min-height: 132px;
	padding: 1.25rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
}

.idi-account-status__icon,
.idi-account-action__icon,
.idi-account-support__icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 4px;
	background: #f3f2f3;
	color: var(--idi-shop-ink);
}

.idi-account-status__icon svg,
.idi-account-action__icon svg,
.idi-account-support__icon svg {
	width: 22px;
	height: 22px;
}

.idi-account-status__label {
	margin-bottom: 0.25rem !important;
	color: var(--idi-shop-muted) !important;
}

.idi-account-status__value {
	margin: 0 !important;
	color: var(--idi-shop-ink) !important;
	font-size: 1.85rem;
	font-weight: 800;
	line-height: 1.1 !important;
}

.idi-account-status__value--text {
	font-size: 1.08rem;
}

.idi-account-status__meta {
	margin: 0.3rem 0 0 !important;
	color: var(--idi-shop-muted) !important;
	font-size: 0.76rem;
	line-height: 1.4 !important;
}

.idi-account-status--partner .idi-account-status__icon {
	background: rgba(201, 31, 99, 0.09);
	color: var(--global-palette1);
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-status > a,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-status > a:link,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-status > a:visited {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 0.4rem;
	color: var(--idi-shop-ink) !important;
	font-size: 0.75rem;
	font-weight: 800;
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

.idi-account-section-heading {
	display: block;
	margin-bottom: 1rem;
}

.idi-account-section-heading__eyebrow {
	margin-bottom: 0.35rem !important;
}

.idi-account-section-heading h2 {
	margin: 0;
	color: var(--idi-shop-ink);
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}

.idi-account-actions__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-action,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-action:link,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-action:visited {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	min-height: 92px;
	padding: 1rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	color: var(--idi-shop-ink) !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s var(--idi-ease);
}

.idi-account-action__body {
	display: grid;
	gap: 0.2rem;
}

.idi-account-action__body strong {
	font-size: 0.92rem;
	font-weight: 800;
}

.idi-account-action__body small {
	color: var(--idi-shop-muted);
	font-size: 0.76rem;
	font-weight: 500;
}

.idi-account-action__arrow {
	width: 19px;
	height: 19px;
	color: #a4a3a7;
	transition: color 0.2s ease, transform 0.2s var(--idi-ease);
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-action:hover {
	border-color: #c9c7cb;
	box-shadow: 0 16px 35px -28px rgba(23, 23, 26, 0.8);
	transform: translateY(-2px);
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-action:hover .idi-account-action__arrow {
	color: var(--global-palette1);
	transform: translateX(3px);
}

.idi-latest-order {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--idi-shop-line);
	border-left: 4px solid var(--global-palette1);
	border-radius: 4px;
	background: #ffffff;
}

.idi-partner-benefits {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid rgba(201, 31, 99, 0.22);
	border-radius: 6px;
	background: linear-gradient(135deg, rgba(201, 31, 99, 0.055), #ffffff 55%);
}

.idi-partner-benefits__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-partner-benefit,
.woocommerce-account .woocommerce-MyAccount-content .idi-partner-benefit:link,
.woocommerce-account .woocommerce-MyAccount-content .idi-partner-benefit:visited {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.85rem;
	min-height: 72px;
	padding: 0.75rem;
	border: 1px solid rgba(201, 31, 99, 0.14);
	border-radius: 4px;
	background: #ffffff;
	color: var(--idi-shop-ink) !important;
}

.idi-partner-benefit__discount {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 3px;
	background: var(--global-palette1);
	color: #ffffff;
	font-size: 0.84rem;
	font-weight: 800;
}

.idi-partner-benefit__body {
	display: grid;
	min-width: 0;
	gap: 0.2rem;
}

.idi-partner-benefit__body strong {
	font-size: 0.84rem;
}

.idi-partner-benefit__body small {
	color: var(--idi-shop-muted);
	font-size: 0.75rem;
	font-weight: 700;
}

.idi-partner-benefit > svg {
	width: 18px;
	height: 18px;
	color: var(--global-palette1);
}

.idi-latest-order__main > p,
.idi-document-section__heading p,
.idi-account-page-heading > p {
	margin: 0 0 0.25rem !important;
	color: var(--global-palette1) !important;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	line-height: 1.3 !important;
	text-transform: uppercase;
}

.idi-latest-order__main h2 {
	margin: 0 0 0.25rem;
	font-size: 1.1rem;
}

.idi-latest-order__main > span {
	color: var(--idi-shop-muted);
	font-size: 0.78rem;
}

.idi-latest-order__actions,
.idi-document-row__actions,
.idi-account-product__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-latest-order__actions > a:not(.button) {
	font-size: 0.78rem;
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-latest-order__actions .button,
.woocommerce-account .woocommerce-MyAccount-content .idi-document-row__actions .button,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-product__actions .button,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-empty .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 1rem;
	border-radius: 3px;
	background: var(--idi-shop-ink);
	color: #ffffff !important;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.idi-frequent-products__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-frequent-product,
.woocommerce-account .woocommerce-MyAccount-content .idi-frequent-product:link,
.woocommerce-account .woocommerce-MyAccount-content .idi-frequent-product:visited {
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr);
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	padding: 0.65rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 4px;
	background: #ffffff;
	color: var(--idi-shop-ink) !important;
}

.idi-frequent-product img {
	width: 68px;
	height: 68px;
	object-fit: contain;
	background: #f7f7f8;
}

.idi-frequent-product > span {
	display: grid;
	min-width: 0;
	gap: 0.25rem;
}

.idi-frequent-product strong {
	overflow: hidden;
	font-size: 0.78rem;
	line-height: 1.35;
	text-overflow: ellipsis;
}

.idi-frequent-product small {
	color: var(--global-palette1);
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

/* Dans cette petite carte, seul le prix courant compte : le prix barré
   et le badge partenaire (déjà visibles ailleurs) la faisaient déborder. */
.idi-frequent-product small del,
.idi-frequent-product small .idi-group-discount-badge,
.idi-frequent-product small .screen-reader-text {
	display: none;
}

.idi-account-support {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: 1.15rem 1.25rem;
	border-left: 4px solid var(--global-palette1);
	background: #f5f4f5;
}

.idi-account-support__icon {
	background: #ffffff;
}

.idi-account-support__copy {
	display: grid;
	gap: 0.15rem;
}

.idi-account-support__copy strong {
	color: var(--idi-shop-ink);
	font-size: 0.9rem;
}

.idi-account-support__copy span {
	color: var(--idi-shop-muted);
	font-size: 0.78rem;
}

.idi-account-support__links {
	display: grid;
	justify-items: end;
	gap: 0.2rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-support__links a,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-support__links a:link,
.woocommerce-account .woocommerce-MyAccount-content .idi-account-support__links a:visited {
	color: var(--idi-shop-ink) !important;
	font-size: 0.78rem;
	font-weight: 800;
	white-space: nowrap;
}

/* Pages Favoris et Documents. */
.idi-account-page-heading {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--idi-shop-line);
}

/* Desktop : rail de navigation latéral + contenu pleine largeur.
   Sous 1025px on garde l'empilement vertical déjà validé sur mobile. */
@media all and (min-width: 1025px) {
	body.woocommerce-account.logged-in .woocommerce {
		display: grid;
		grid-template-columns: 300px minmax(0, 1fr);
		gap: clamp(2rem, 3.5vw, 3rem);
		align-items: start;
	}

	body.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}

	/* Placement explicite : l'auto-placement héritait d'un ordre visuel
	   inversé (résidu du gabarit float droit de Kadence), on fige donc
	   chaque zone. */
	body.woocommerce-account.logged-in .account-navigation-wrap {
		grid-column: 1;
		grid-row: 2;
		position: sticky;
		top: calc(1.5rem + var(--wp-admin--admin-bar--height, 0px));
		margin: 0;
	}

	body.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 2;
		grid-row: 2;
	}

	body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
		margin: 0;
	}

	body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		gap: 0.2rem;
	}

	body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation-link a {
		display: flex;
		width: 100%;
		min-height: 44px;
	}

	/* Le contenu profite de la largeur gagnée : grilles densifiées. */
	body.woocommerce-account.logged-in .idi-account-actions__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.idi-account-page-heading h2 {
	margin: 0 0 0.45rem;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
}

.idi-account-page-heading > span {
	display: block;
	max-width: 680px;
	color: var(--idi-shop-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

.idi-account-products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.idi-account-product {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--idi-shop-line);
	border-radius: 5px;
}

.idi-account-product__image {
	display: grid;
	place-items: center;
	background: #f7f7f8;
}

.idi-account-product__image img {
	width: 100%;
	height: 100%;
	max-height: 190px;
	object-fit: contain;
}

.idi-account-product__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 1.15rem;
}

.idi-account-product__body > p {
	margin: 0 0 0.35rem;
	font-size: 0.68rem;
}

.idi-account-product__body h3 {
	margin: 0 0 0.65rem;
	font-size: 1rem;
}

.idi-account-product__price {
	margin-bottom: 1rem;
	color: var(--global-palette1);
	font-weight: 800;
}

.idi-account-product__actions {
	margin-top: auto;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-account-product__remove {
	font-size: 0.72rem;
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

.idi-account-empty {
	display: grid;
	justify-items: center;
	padding: clamp(2.5rem, 6vw, 4.5rem) 1.5rem;
	border: 1px dashed #cfccd1;
	text-align: center;
}

.idi-account-empty svg {
	width: 34px;
	height: 34px;
	margin-bottom: 1rem;
	fill: none;
	stroke: var(--global-palette1);
	stroke-width: 1.5;
}

.idi-account-empty h3 {
	margin: 0 0 0.5rem;
}

.idi-account-empty p {
	margin: 0 0 1.25rem;
}

.idi-document-section + .idi-document-section {
	margin-top: 2.5rem;
}

.idi-document-section__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.9rem;
}

.idi-document-section__heading h3 {
	margin: 0;
	font-size: 1.1rem;
}

.idi-document-section__heading > span {
	color: var(--idi-shop-muted);
	font-size: 0.72rem;
	font-weight: 700;
}

.idi-document-list {
	border: 1px solid var(--idi-shop-line);
	border-radius: 5px;
}

.idi-document-row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: 1rem;
}

.idi-document-row + .idi-document-row {
	border-top: 1px solid var(--idi-shop-line);
}

.idi-document-row__icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 3px;
	background: #f3f2f3;
}

.idi-document-row__icon svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: var(--idi-shop-ink);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}

.idi-document-row__body {
	display: grid;
	gap: 0.2rem;
}

.idi-document-row__body strong {
	font-size: 0.86rem;
}

.idi-document-row__body span,
.idi-document-section__empty {
	color: var(--idi-shop-muted);
	font-size: 0.75rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-document-row__actions > a:not(.button) {
	font-size: 0.72rem;
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

/* Favoris sur les cartes boutique et les fiches produit. */
.woocommerce ul.products li.product {
	position: relative;
}

/* Parcours d'accueil (onboarding) et notifications du tableau de bord. */
.idi-onboarding,
.idi-notifications,
.idi-quick-order {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
}

.idi-onboarding__heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.idi-onboarding__heading p {
	margin: 0 0 0.25rem !important;
	color: var(--global-palette1) !important;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	line-height: 1.3 !important;
	text-transform: uppercase;
}

.idi-onboarding__heading h2 {
	margin: 0;
	font-size: 1.25rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-onboarding__dismiss {
	flex: 0 0 auto;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	font-size: 0.75rem;
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

.idi-onboarding__progress {
	height: 6px;
	margin-bottom: 1.1rem;
	border-radius: 999px;
	background: #ececef;
	overflow: hidden;
}

.idi-onboarding__progress span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--global-palette1);
	transition: width 0.4s var(--idi-ease);
}

.idi-onboarding__steps {
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.idi-onboarding__steps li {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.86rem;
}

.idi-onboarding__check {
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border: 1.5px solid #cfccd1;
	border-radius: 50%;
	color: transparent;
	flex: 0 0 auto;
}

.idi-onboarding__check svg {
	width: 12px;
	height: 12px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.idi-onboarding__steps li.is-done .idi-onboarding__check {
	border-color: var(--global-palette1);
	background: var(--global-palette1);
	color: #ffffff;
}

.idi-onboarding__steps li.is-done span {
	color: var(--idi-shop-muted);
	text-decoration: line-through;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-onboarding__steps a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.idi-notifications__badge {
	display: inline-grid;
	place-items: center;
	min-width: 22px;
	height: 22px;
	margin-left: 0.4rem;
	padding: 0 0.35rem;
	border-radius: 999px;
	background: var(--global-palette1);
	color: #ffffff;
	font-size: 0.7rem;
	font-weight: 800;
	vertical-align: middle;
}

.idi-notifications__list {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.idi-notifications__list li {
	display: grid;
	gap: 0.15rem;
	padding: 0.8rem 0.9rem;
	border-left: 3px solid transparent;
}

.idi-notifications__list li + li {
	border-top: 1px solid #ececef;
}

.idi-notifications__list li.is-unread {
	border-left-color: var(--global-palette1);
	background: #fdf5f8;
}

.idi-notifications__list strong {
	font-size: 0.86rem;
}

.idi-notifications__list span {
	color: #494950;
	font-size: 0.8rem;
	line-height: 1.5;
}

.idi-notifications__list small {
	color: var(--idi-shop-muted);
	font-size: 0.7rem;
}

/* Réachat rapide par référence. */
.idi-quick-order__form input[type="search"] {
	width: 100%;
	min-height: 50px;
	padding: 0.65rem 1rem;
	border: 1px solid #d7d7db;
	border-radius: 3px;
	font-size: 0.95rem;
}

.idi-quick-order__form input[type="search"]:focus {
	border-color: var(--global-palette1);
	box-shadow: 0 0 0 3px rgba(201, 31, 99, 0.12);
	outline: none;
}

.idi-quick-order__results {
	margin-top: 0.75rem;
	border: 1px solid var(--idi-shop-line);
	border-radius: 4px;
}

.idi-quick-order__item {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.85rem;
	padding: 0.7rem 0.85rem;
}

.idi-quick-order__item + .idi-quick-order__item {
	border-top: 1px solid #ececef;
}

.idi-quick-order__item img {
	width: 48px;
	height: 48px;
	object-fit: contain;
	background: #f7f7f8;
	border-radius: 3px;
}

.idi-quick-order__body {
	display: grid;
	min-width: 0;
	gap: 0.15rem;
}

.idi-quick-order__body strong {
	font-size: 0.84rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.idi-quick-order__body small {
	color: var(--idi-shop-muted);
	font-size: 0.74rem;
}

.idi-quick-order__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.woocommerce-account .woocommerce-MyAccount-content .idi-quick-order__actions > a:not(.button) {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	font-size: 0.75rem;
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

.idi-quick-order__actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 1rem;
	border: 0;
	border-radius: 3px;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.72rem;
	font-weight: 800;
	text-transform: uppercase;
	cursor: pointer;
}

.idi-quick-order__actions .button:hover {
	background: var(--global-palette1);
}

.idi-quick-order__empty {
	margin: 0;
	padding: 0.9rem;
	color: var(--idi-shop-muted);
	font-size: 0.82rem;
}

/* Timeline de suivi de commande. */
.idi-order-timeline {
	margin-bottom: clamp(1.5rem, 3vw, 2rem);
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
}

.idi-order-timeline--cancelled {
	border-left: 4px solid #b3261e;
	color: #494950;
}

.idi-order-timeline ol {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.idi-order-timeline__step {
	position: relative;
	display: grid;
	gap: 0.25rem;
	padding-top: 1.4rem;
	font-size: 0.8rem;
}

.idi-order-timeline__step::before {
	content: "";
	position: absolute;
	top: 8px;
	left: 0;
	right: 0;
	height: 3px;
	background: #ececef;
}

.idi-order-timeline__step.is-done::before,
.idi-order-timeline__step.is-current::before {
	background: var(--global-palette1);
}

.idi-order-timeline__dot {
	position: absolute;
	top: 2px;
	left: 0;
	width: 15px;
	height: 15px;
	border: 3px solid #ececef;
	border-radius: 50%;
	background: #ffffff;
}

.idi-order-timeline__step.is-done .idi-order-timeline__dot {
	border-color: var(--global-palette1);
	background: var(--global-palette1);
}

.idi-order-timeline__step.is-current .idi-order-timeline__dot {
	border-color: var(--global-palette1);
}

.idi-order-timeline__step strong {
	color: var(--idi-shop-ink);
	font-size: 0.8rem;
	line-height: 1.3;
}

.idi-order-timeline__step.is-pending strong {
	color: var(--idi-shop-muted);
}

.idi-order-timeline__step small {
	color: var(--idi-shop-muted);
	font-size: 0.72rem;
}

.idi-order-timeline__tracking {
	margin: 1.1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid #ececef;
	font-size: 0.85rem;
}

/* Équipe. */
.idi-team-invite {
	margin-bottom: 2.5rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid var(--idi-shop-line);
	border-top: 4px solid var(--global-palette1);
	border-radius: 6px;
	background: #ffffff;
}

.idi-team-invite h3 {
	margin: 0 0 1rem;
	font-size: 1.1rem;
}

.idi-team-invite__note {
	margin: 0.9rem 0 0;
	color: var(--idi-shop-muted);
	font-size: 0.78rem;
}

.idi-team-members__remove {
	min-height: 44px;
	padding: 0 0.9rem;
	border: 1px solid #d8d6da;
	border-radius: 3px;
	background: #ffffff;
	color: #8a1f1f;
	font-size: 0.72rem;
	font-weight: 800;
	text-transform: uppercase;
	cursor: pointer;
}

.idi-team-members__remove:hover {
	border-color: #8a1f1f;
	background: #fdf4f4;
}

/* Préférences de communication. */
.woocommerce-account .idi-communication-prefs {
	display: grid;
	gap: 0.6rem;
}

.woocommerce-account .idi-communication-prefs .woocommerce-form__label-for-checkbox {
	min-height: 44px;
	align-items: center;
}

.idi-communication-prefs__note {
	margin: 0.25rem 0 0;
	color: var(--idi-shop-muted);
	font-size: 0.76rem;
}

/* Historique documentaire. */
.idi-document-log {
	margin: 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--idi-shop-line);
	border-radius: 5px;
}

.idi-document-log li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem 0.9rem;
	font-size: 0.82rem;
}

.idi-document-log li + li {
	border-top: 1px solid #ececef;
}

.idi-document-log small {
	color: var(--idi-shop-muted);
	white-space: nowrap;
}

.idi-favorite-button.is-busy {
	opacity: 0.55;
	pointer-events: none;
}


.idi-favorite-button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	margin-top: 0.75rem;
	padding: 0 0.9rem;
	border: 1px solid #d8d6da;
	border-radius: 3px;
	background: #ffffff;
	color: var(--idi-shop-ink);
	font-size: 0.74rem;
	font-weight: 800;
	text-decoration: none;
}

.idi-favorite-button svg {
	width: 18px;
	height: 18px;
	fill: transparent;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.idi-favorite-button.is-saved {
	border-color: rgba(201, 31, 99, 0.3);
	color: var(--global-palette1);
}

.idi-favorite-button.is-saved svg {
	fill: currentColor;
}

.idi-favorite-button--compact {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 3;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	/* En mode compact le <span> du libellé reste dans le DOM (vide) pour
	   l'accessibilité, mais le "gap" du bouton parent s'applique quand même
	   entre l'icône et ce span à largeur nulle : le cœur se retrouvait
	   décalé de 4px vers la gauche du vrai centre du cercle. */
	gap: 0;
	border-radius: 50%;
	box-shadow: 0 8px 25px -18px rgba(23, 23, 26, 0.9);
}

.idi-account-action:focus-visible,
.idi-account-welcome__shop:focus-visible,
.idi-account-status > a:focus-visible,
.idi-account-support > a:focus-visible {
	outline: 3px solid rgba(201, 31, 99, 0.3);
	outline-offset: 3px;
}

/* Tableau des commandes */
.woocommerce-account table.woocommerce-orders-table,
.woocommerce-account table.shop_table {
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.woocommerce-account table.woocommerce-orders-table th {
	padding: 0.9rem 1.1rem;
	background: #fafafb;
	color: var(--idi-shop-muted);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.woocommerce-account table.woocommerce-orders-table td {
	padding: 0.9rem 1.1rem;
	border-top: 1px solid #ececef;
}

/* Les actions restent une cellule de tableau : on aligne les boutons en
   flex avec un espacement régulier au lieu de les laisser se coller. */
.woocommerce-account .woocommerce-orders-table__cell-order-actions {
	min-width: 220px;
}

.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
	margin: 0.2rem 0.4rem 0.2rem 0;
}

.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
	min-height: 44px;
	padding: 0 1rem;
	border-radius: 3px;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.74rem;
	font-weight: 800;
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-orders-table__cell-order-actions .button:hover {
	background: var(--global-palette1);
}

/* Liste des adresses (page « Adresses ») : deux cartes côte à côte */
.woocommerce-account .woocommerce-Addresses.col2-set {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.25rem, 2.5vw, 2rem);
}

.woocommerce-account > p:first-of-type {
	margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
	color: var(--idi-shop-muted);
}

/* Kadence impose width:48% + float sur .col-1/.col-2 (spécificité (0,3,0),
   héritée de sa grille de secours) : on l'annule avec un sélecteur de
   spécificité égale qui, chargé après (voir dépendance kadence-woocommerce
   dans functions.php), l'emporte pour laisser la grille CSS ci-dessus
   dimensionner réellement les cartes. */
.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
	float: none;
	width: 100%;
	padding: clamp(1.5rem, 3vw, 1.75rem);
	border: 1px solid var(--idi-shop-line);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 25px 60px -50px rgba(23, 23, 26, 0.7);
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.4rem 1rem;
	margin: 0 0 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #ececef;
}

.woocommerce-account .woocommerce-Address-title h2 {
	flex: 1 1 auto;
	min-width: fit-content;
	margin: 0;
	color: var(--idi-shop-ink);
	font-size: 1.05rem;
}

.woocommerce-account .woocommerce-Address-title .edit {
	flex: 0 0 auto;
	color: var(--global-palette1);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.woocommerce-account .woocommerce-Address-title .edit:hover {
	text-decoration: underline;
}

.woocommerce-account .woocommerce-Address address {
	color: var(--idi-shop-muted);
	font-size: 0.9rem;
	font-style: normal;
	line-height: 1.7;
}

/* Formulaires (adresse, détails du compte) : cartes, deux colonnes,
   champs harmonisés — même traitement que le formulaire de connexion */
.woocommerce-account .woocommerce-EditAccountForm,
.woocommerce-account form.woocommerce-address-fields,
.woocommerce-account .woocommerce-address-fields,
.woocommerce-account .edit-address form {
	padding: clamp(1.75rem, 3.5vw, 2.5rem);
	border: 1px solid var(--idi-shop-line);
	border-top: 4px solid var(--global-palette1);
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 30px 70px -55px rgba(23, 23, 26, 0.75);
}

.woocommerce-account .woocommerce-address-fields__field-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.25rem;
}

.woocommerce-account .form-row {
	flex: 1 1 100%;
	margin: 0 0 1.1rem;
}

.woocommerce-account .form-row-first,
.woocommerce-account .form-row-last {
	flex: 1 1 calc(50% - 0.625rem);
	float: none;
	width: auto;
}

.woocommerce-account .clear {
	display: none;
}

.woocommerce-account .form-row label {
	display: block;
	margin-bottom: 0.4rem;
	color: var(--idi-shop-ink);
	font-size: 0.85rem;
	font-weight: 700;
}

.woocommerce-account .form-row .required {
	color: var(--global-palette1);
	text-decoration: none;
}

.woocommerce-account .form-row .optional {
	color: var(--idi-shop-muted);
	font-weight: 500;
}

.woocommerce-account .form-row em {
	display: block;
	margin-top: 0.35rem;
	color: var(--idi-shop-muted);
	font-size: 0.78rem;
	font-style: normal;
	line-height: 1.5;
}

.woocommerce-account .form-row input.input-text,
.woocommerce-account .form-row select,
.woocommerce-account .form-row textarea {
	width: 100%;
	min-height: 50px;
	padding: 0.65rem 1rem;
	border: 1px solid #d7d7db;
	border-radius: 3px;
	background: #ffffff;
	color: var(--idi-shop-ink);
	font-size: 0.95rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Le chevron ne va que sur les listes déroulantes, pas sur les champs texte */
.woocommerce-account .form-row select {
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2317171a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.woocommerce-account .form-row input.input-text:focus,
.woocommerce-account .form-row select:focus,
.woocommerce-account .form-row textarea:focus {
	border-color: var(--global-palette1);
	box-shadow: 0 0 0 3px rgba(201, 31, 99, 0.12);
	outline: none;
}

/* Changement de mot de passe : sous-section visuellement détachée */
.woocommerce-account fieldset {
	margin: 1.75rem 0 0;
	padding: 1.5rem 0 0;
	border: 0;
	border-top: 1px solid #ececef;
}

.woocommerce-account fieldset legend {
	padding: 0;
	color: var(--idi-shop-ink);
	font-size: 1rem;
	font-weight: 800;
}

.woocommerce-account fieldset .form-row {
	margin-top: 1.1rem;
}

.woocommerce-account .woocommerce-EditAccountForm > p:last-of-type,
.woocommerce-account .edit-address form > p:last-of-type {
	margin: 1.75rem 0 0;
}

.woocommerce-account .woocommerce-MyAccount-content button.button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 1.75rem;
	border: 0;
	border-radius: 3px;
	background: var(--idi-shop-ink);
	color: #ffffff;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.25s ease, transform 0.25s var(--idi-ease);
}

.woocommerce-account .woocommerce-MyAccount-content button.button:hover,
.woocommerce-account .woocommerce-Button.button:hover {
	background: var(--global-palette1);
	transform: translateY(-1px);
}

@media all and (max-width: 781px) {
	.woocommerce-account .u-columns.col2-set,
	.woocommerce-account .woocommerce-Addresses.col2-set {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .form-row-first,
	.woocommerce-account .form-row-last {
		flex-basis: 100%;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce-account .woocommerce-MyAccount-navigation-link a {
		justify-content: center;
		min-height: 44px;
		padding: 0 0.75rem;
		text-align: center;
		width: 100%;
	}

	.idi-account-welcome {
		align-items: flex-start;
		flex-direction: column;
		min-height: 0;
	}

	.idi-account-overview,
	.idi-account-actions__grid,
	.idi-partner-benefits__grid {
		grid-template-columns: 1fr;
	}

	.idi-frequent-products__grid,
	.idi-account-products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.idi-account-product {
		grid-template-columns: 1fr;
	}

	.idi-account-product__image {
		min-height: 180px;
	}

	.idi-account-support {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.idi-account-support__links {
		grid-column: 2;
		justify-items: start;
	}

	.idi-latest-order,
	.idi-document-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.idi-order-timeline ol {
		grid-template-columns: 1fr;
		gap: 0.9rem;
	}

	/* Suggestions : sous 781px la carte horizontale n'a plus la place —
	   retour à l'empilement vertical compact. */
	.single-product .related.products li.product,
	.single-product .upsells.products li.product {
		grid-template-columns: 1fr;
	}

	.single-product .related.products li.product img,
	.single-product .upsells.products li.product img {
		max-height: 150px;
	}

	.single-product .related.products li.product .product-action-wrap .button,
	.single-product .upsells.products li.product .product-action-wrap .button {
		width: 100%;
	}

	.idi-order-timeline__step {
		padding-top: 0;
		padding-left: 1.7rem;
	}

	.idi-order-timeline__step::before {
		top: 0;
		bottom: -0.9rem;
		left: 6px;
		right: auto;
		width: 3px;
		height: auto;
	}

	.idi-order-timeline__step:last-child::before {
		display: none;
	}

	.idi-quick-order__item {
		grid-template-columns: 48px minmax(0, 1fr);
	}

	.idi-quick-order__actions {
		grid-column: 2;
		flex-wrap: wrap;
	}

	.idi-latest-order {
		display: flex;
	}

	.idi-document-row {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.idi-document-row__actions {
		grid-column: 2;
	}
}

@media all and (max-width: 480px) {
	.idi-account-welcome {
		padding: 1.5rem;
	}

	.idi-account-welcome::after {
		display: none;
	}

	.woocommerce-account .woocommerce-MyAccount-content .idi-account-welcome__shop {
		width: 100%;
	}

	.idi-account-status {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.idi-account-status > a {
		grid-column: 2;
		justify-self: start;
	}

	.idi-account-support {
		align-items: start;
	}

	.idi-frequent-products__grid,
	.idi-account-products {
		grid-template-columns: 1fr;
	}

	.idi-frequent-product {
		grid-template-columns: 60px minmax(0, 1fr);
	}

	.idi-document-row__actions {
		align-items: stretch;
		flex-direction: column;
	}
}

/* --------------------------------------------------------------------------
   Header — panier avec compteur + accès compte client
   -------------------------------------------------------------------------- */

/* Le panier et le lien compte n'ont de sens que dans le parcours d'achat :
   masqués partout ailleurs (accueil, société, contact…), visibles sur la
   boutique, les fiches produit, le panier, la commande et le compte
   (toutes ces pages portent la classe .woocommerce-page). */
/* Le panier n'a de sens que dans le parcours d'achat : masqué ailleurs.
   Le lien compte, lui, reste visible partout : les tarifs étant réservés aux
   professionnels connectés, c'est la porte d'entrée principale du site et la
   masquer sur l'accueil laissait le visiteur sans solution. */
.header-cart-wrap,
.header-mobile-cart-wrap {
	display: none !important;
}

.woocommerce-page .header-cart-wrap,
.woocommerce-page .header-mobile-cart-wrap,
.header-account-control-wrap {
	display: inline-flex !important;
}

.header-account-control-wrap .header-account-button {
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 0.75rem !important;
	border: 1px solid #e6e3e4;
	border-radius: 50%;
	background: #faf8f9;
	color: var(--global-palette3) !important;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.header-account-wrap .header-account-button,
.header-account-in-wrap .header-account-button,
.header-mobile-account-wrap .header-account-button,
.header-mobile-account-in-wrap .header-account-button {
	width: 44px;
	padding: 0 !important;
	border-radius: 50% !important;
}

.header-account-control-wrap .header-account-button svg {
	width: 20px;
	height: 20px;
}

.header-account-in-wrap .nav-drop-title-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding-right: 0;
}

.header-account-control-wrap .header-account-button:hover,
.header-account-control-wrap .header-account-button:focus-visible {
	border-color: rgba(201, 31, 99, 0.45);
	background: #ffffff;
	color: var(--global-palette1) !important;
}

.header-account-in-wrap .dropdown-nav-toggle {
	display: none !important;
}

.header-account-in-wrap .woocommerce-MyAccount-navigation.submenu {
	min-width: 250px;
	padding: 0.55rem;
	border: 1px solid #e6e3e4;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 18px 45px rgba(17, 17, 20, 0.14);
}

.header-account-in-wrap .woocommerce-MyAccount-navigation.submenu a {
	padding: 0.7rem 0.85rem;
	border-radius: 4px;
	font-size: 0.86rem;
	font-weight: 650;
}

.header-account-in-wrap .woocommerce-MyAccount-navigation.submenu a:hover,
.header-account-in-wrap .woocommerce-MyAccount-navigation.submenu a:focus-visible {
	background: #faf8f9;
	color: var(--global-palette1);
}

#login-drawer .drawer-inner {
	background: rgba(17, 17, 20, 0.98);
}

#login-drawer .drawer-content_inner.widget_login_form_inner {
	padding: 2rem;
	border-top: 3px solid var(--global-palette1);
	border-radius: 6px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

.idi-login-intro {
	margin-bottom: 1.5rem;
}

.idi-login-intro__eyebrow {
	display: block;
	margin-bottom: 0.5rem;
	color: var(--global-palette1);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.idi-login-intro h2 {
	margin: 0 0 0.45rem;
	font-size: 1.55rem;
	line-height: 1.15;
}

.idi-login-intro p {
	margin: 0;
	color: var(--global-palette5);
	font-size: 0.9rem;
	line-height: 1.55;
}

#login-drawer .login-username label,
#login-drawer .login-password label {
	font-size: 0.82rem;
	font-weight: 700;
}

#login-drawer input[type="text"],
#login-drawer input[type="password"] {
	min-height: 48px;
	border-color: #d8d5d7;
	border-radius: 4px;
}

#login-drawer input[type="text"]:focus,
#login-drawer input[type="password"]:focus {
	border-color: var(--global-palette1);
	box-shadow: 0 0 0 3px rgba(201, 31, 99, 0.14);
}

#login-drawer #wp-submit {
	width: 100%;
	min-height: 48px;
	font-weight: 750;
}

#login-drawer .lost_password {
	margin-bottom: 0;
	text-align: center;
}

#login-drawer .lost_password a {
	color: var(--global-palette4);
	font-weight: 650;
}

#login-drawer .lost_password a:hover,
#login-drawer .lost_password a:focus-visible {
	color: var(--global-palette1);
}

.header-cart-wrap .header-cart-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0 !important;
	border: 1px solid #e6e3e4;
	border-radius: 50%;
	background: #faf8f9;
	color: var(--global-palette3) !important;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.header-cart-wrap .header-cart-button:hover,
.header-cart-wrap .header-cart-button:focus-visible {
	border-color: rgba(201, 31, 99, 0.45);
	background: #ffffff;
	color: var(--global-palette1) !important;
}

.header-cart-wrap .header-cart-total {
	position: absolute;
	top: -5px;
	right: -5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 19px;
	height: 19px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--global-palette1);
	color: #ffffff;
	font-size: 0.66rem;
	font-weight: 800;
	line-height: 1;
}

.header-cart-wrap .header-cart-total.header-cart-is-empty-true {
	display: none;
}

.header-cart-total.idi-cart-bump {
	animation: idi-cart-bump 0.5s var(--idi-ease);
}

@keyframes idi-cart-bump {
	0% { transform: scale(1); }
	40% { transform: scale(1.45); }
	100% { transform: scale(1); }
}

/* --------------------------------------------------------------------------
   Tiroir panier (Kadence Pro : panier "slide" + ouverture auto à l'ajout)
   -------------------------------------------------------------------------- */

#cart-drawer .drawer-content.woocommerce.widget_shopping_cart {
	background: #ffffff;
}

#cart-drawer .woocommerce-mini-cart-item .remove.remove_from_cart_button {
	color: var(--global-palette3);
	opacity: 0.6;
	transition: color 0.2s ease, opacity 0.2s ease;
}

#cart-drawer .woocommerce-mini-cart-item .remove.remove_from_cart_button:hover,
#cart-drawer .woocommerce-mini-cart-item .remove.remove_from_cart_button:focus-visible {
	color: var(--global-palette1);
	opacity: 1;
}

#cart-drawer .woocommerce-mini-cart__buttons.buttons {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

#cart-drawer .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout) {
	background: #ffffff !important;
	border: 1px solid #e6e3e4 !important;
	color: var(--global-palette3) !important;
}

#cart-drawer .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout):hover,
#cart-drawer .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout):focus-visible {
	border-color: rgba(201, 31, 99, 0.45) !important;
	color: var(--global-palette1) !important;
}

/* --------------------------------------------------------------------------
   Barre d'achat collante (Kadence Pro, fiche produit — placement "footer")
   Direction artistique premium : barre sombre profonde, filet lumineux en
   haut, vignette produit encadrée, prix mis en valeur, stepper « verre
   sombre » et bouton d'achat en relief.
   -------------------------------------------------------------------------- */

.kadence-sticky-add-to-cart {
	background: linear-gradient(180deg, #1b1b20 0%, #111114 100%) !important;
	color: #ffffff !important;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 -18px 40px -24px rgba(0, 0, 0, 0.9);
}

/* Filet dégradé façon « ligne de lumière » sur l'arête supérieure. */
.kadence-sticky-add-to-cart-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(201, 31, 99, 0.55) 25%, rgba(201, 31, 99, 0.55) 75%, transparent);
	pointer-events: none;
}

.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-content {
	min-height: 78px;
	align-items: center;
	gap: 1.25rem;
}

/* Vignette produit : cadre arrondi discret plutôt qu'une image nue. */
.kadence-sticky-add-to-cart-title-wrap img {
	max-height: 52px !important;
	width: 52px;
	object-fit: contain;
	padding: 5px;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 8px 20px -12px rgba(0, 0, 0, 0.8);
}

.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-title {
	color: #ffffff !important;
	font-size: 17px !important;
	font-weight: 700;
	letter-spacing: -0.01em;
	padding-left: 0.9em !important;
}

.kadence-sticky-add-to-cart-action-wrap {
	gap: 1.25rem;
}

/* Prix : blanc franc, « TTC » (suffixe) atténué et espacé. */
.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-action-price {
	color: #ffffff !important;
	font-size: 20px !important;
	font-weight: 800;
	letter-spacing: -0.01em;
	padding-right: 0 !important;
}

.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-action-price .woocommerce-Price-currencySymbol {
	font-weight: 700;
}

.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-action-price small,
.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-action-price .woocommerce-price-suffix {
	margin-left: 0.4em;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.62em;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-action-price del {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.85em;
	font-weight: 600;
	text-decoration-color: rgba(214, 59, 116, 0.85);
	text-decoration-thickness: 1.5px;
}

.kadence-sticky-add-to-cart .kadence-sticky-add-to-cart-action-price del .amount {
	font-size: inherit;
}

/* Le coeur du plugin ne laisse que 4px entre la quantité et le bouton. */
.kadence-sticky-add-to-cart-action-wrap form.cart {
	gap: 1rem;
}

.kadence-sticky-add-to-cart-action-wrap form.cart .quantity {
	margin-right: 0 !important;
}

/* Stepper « verre sombre » : pilule translucide qui s'intègre à la barre
   sombre au lieu du pavé clair de la fiche produit. */
.kadence-sticky-add-to-cart-action-wrap form.cart .quantity.idi-qty {
	display: inline-flex;
	align-items: stretch;
	float: none;
	margin: 0;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.06);
	overflow: hidden;
}

.kadence-sticky-add-to-cart-action-wrap form.cart .idi-qty-btn {
	width: 42px;
	min-height: 50px;
	border: 0;
	background: transparent;
	color: rgba(255, 255, 255, 0.75);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.kadence-sticky-add-to-cart-action-wrap form.cart .idi-qty-btn:hover {
	background: rgba(255, 255, 255, 0.1);
	color: #ffffff;
}

.kadence-sticky-add-to-cart-action-wrap form.cart .quantity .qty {
	width: 48px;
	min-height: 50px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #ffffff;
	font-weight: 700;
	text-align: center;
	appearance: textfield;
	-moz-appearance: textfield;
}

.kadence-sticky-add-to-cart-action-wrap form.cart .quantity .qty::-webkit-outer-spin-button,
.kadence-sticky-add-to-cart-action-wrap form.cart .quantity .qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.kadence-sticky-add-to-cart-action-wrap form.cart .quantity .qty:focus-visible {
	outline: 2px solid var(--global-palette1);
	outline-offset: -2px;
}

/* Bouton d'achat en relief : dégradé de marque, coins généreux, halo coloré
   et micro-élévation au survol. */
.kadence-sticky-add-to-cart .single_add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 50px;
	padding: 0 2rem !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: linear-gradient(180deg, #d63b74 0%, #c91f63 100%) !important;
	color: #ffffff !important;
	font-weight: 700;
	letter-spacing: 0.01em;
	box-shadow: 0 12px 26px -12px rgba(201, 31, 99, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.18);
	transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

/* Desktop : le libellé reste sur une seule ligne. */
#kadence-sticky-add-to-cart .single_add_to_cart_button {
	white-space: nowrap;
}

.kadence-sticky-add-to-cart .single_add_to_cart_button:hover,
.kadence-sticky-add-to-cart .single_add_to_cart_button:focus-visible {
	transform: translateY(-1px);
	filter: brightness(1.05);
	box-shadow: 0 16px 32px -12px rgba(201, 31, 99, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.kadence-sticky-add-to-cart .single_add_to_cart_button:active {
	transform: translateY(0);
	box-shadow: 0 8px 18px -12px rgba(201, 31, 99, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

/* Barre mobile : mêmes codes, resserrés, avec de l'air sur les côtés pour que
   le bouton arrondi ne soit pas rogné par le bord de l'écran (la barre mobile
   n'a pas de .site-container, on rembourre donc directement le contenu). */
#kadence-mobile-sticky-add-to-cart .kadence-sticky-add-to-cart-content {
	min-height: 66px;
	align-items: center;
	gap: 0.6rem;
	padding: 0 12px;
}

#kadence-mobile-sticky-add-to-cart .kadence-sticky-add-to-cart-action-wrap {
	gap: 0.6rem;
}

#kadence-mobile-sticky-add-to-cart .kadence-sticky-add-to-cart-action-price {
	font-size: 16px !important;
}

#kadence-mobile-sticky-add-to-cart .kadence-sticky-add-to-cart-action-wrap .single_add_to_cart_button,
#kadence-mobile-sticky-add-to-cart .kadence-sticky-add-to-cart-action-wrap a.added_to_cart {
	border-radius: 10px !important;
	min-height: 50px;
	min-width: 104px;
	padding: 0.4em 0.9rem !important;
	font-size: 13px;
	line-height: 1.15;
	white-space: normal;
	text-align: center;
}

/* Vignette un peu plus contenue sur la barre mobile. */
#kadence-mobile-sticky-add-to-cart .kadence-sticky-add-to-cart-title-wrap img {
	max-height: 42px !important;
	width: 42px;
}

/* Sous 400px l'espace est trop rare pour la vignette : on la retire pour
   laisser respirer titre, prix et bouton. */
@media screen and (max-width: 400px) {
	#kadence-mobile-sticky-add-to-cart .kadence-sticky-add-to-cart-title-wrap img {
		display: none;
	}
}

.menu-toggle-open.drawer-toggle:hover,
.menu-toggle-open.drawer-toggle:focus-visible {
	border-color: rgba(201, 31, 99, 0.45) !important;
	background: #ffffff !important;
	color: var(--global-palette1) !important;
}

.popup-drawer .drawer-inner {
	width: min(90vw, 420px) !important;
	background: #111114;
}

.mobile-navigation a {
	min-height: 56px;
	font-size: 1rem !important;
	font-weight: 600;
}

.menu-toggle-close.drawer-toggle {
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	min-height: 44px;
	padding: 0 !important;
	position: relative;
}

.menu-toggle-close .toggle-close-bar {
	left: 50% !important;
	top: 50% !important;
	width: 24px !important;
	height: 2px !important;
	margin: 0 !important;
	transform-origin: center !important;
}

.menu-toggle-close .toggle-close-bar:first-child {
	transform: translate(-50%, -50%) rotate(45deg) !important;
}

.menu-toggle-close .toggle-close-bar:last-child {
	transform: translate(-50%, -50%) rotate(-45deg) !important;
}

@media all and (max-width: 1024px) {
	/* Ciblé sur la rangée principale : appliqué à toutes les rangées, ce
	   min-height gonflait aussi la barre utilitaire (38px voulus, 72px obtenus). */
	#masthead .site-main-header-wrap .site-header-row-container-inner,
	#masthead .site-main-header-inner-wrap {
		min-height: 72px;
	}

	.custom-logo {
		max-height: 52px;
	}

	/* Sous 1025px la place manque à côté du menu : le logo porte seul la marque,
	   la raison sociale reste lisible dans la barre utilitaire et le pied de page. */
	#masthead .site-branding .site-title-wrap {
		display: none !important;
	}
}

/* Mega menu métier Kadence : les cinq familles sont les en-têtes de colonnes. */
@media (min-width: 1025px) {
	/* Le mega menu était calé sur le bord droit de la LISTE du menu, pas sur
	   celui de la page : large de 1240px, il sortait de l'écran par la gauche
	   (-98px à 1440, -196px à 1280). On neutralise le positionnement de la
	   liste pour que la référence devienne l'en-tête lui-même, et on rend les
	   entrées simples explicitement relatives afin qu'elles restent, elles,
	   ancrées sous leur libellé. */
	/* Kadence pose `position:relative` sur `#primary-menu` (sélecteur d'id) :
	   il faut reprendre l'id pour gagner la cascade. */
	.header-navigation .primary-menu-container > ul#primary-menu {
		position: static;
	}

	.header-navigation .primary-menu-container > ul > li:not(.kadence-menu-mega-enabled) {
		position: relative;
	}

	/* Les menus déroulants simples (Société) reprennent le vocabulaire du mega
	   menu : filet haut rose et coins bas arrondis. Le fond, l'ombre et la
	   typographie viennent des réglages du thème. Ciblé sur les entrées de
	   premier niveau NON mega, sinon le filet rose se répéterait sur chaque
	   colonne du mega menu. */
	.header-navigation .primary-menu-container > ul > li:not(.kadence-menu-mega-enabled) > ul.sub-menu {
		border-top: 3px solid var(--global-palette1);
		border-radius: 0 0 6px 6px;
		overflow: hidden;
	}

	.header-navigation .kadence-menu-mega-enabled > .sub-menu {
		top: 100% !important;
		right: clamp(1.5rem, 4vw, 4.25rem) !important;
		left: clamp(1.5rem, 4vw, 4.25rem) !important;
		width: auto !important;
		max-width: 1320px !important;
		margin-inline: auto !important;
		transform: none !important;
		padding: 1.5rem !important;
		border-top: 3px solid var(--global-palette1);
		border-radius: 0 0 6px 6px;
		background: #ffffff !important;
		box-shadow: 0 28px 70px rgba(17, 17, 20, 0.17);
	}

	.header-navigation .kadence-menu-mega-enabled > .sub-menu > li {
		padding: 0 1rem;
		border-right: 1px solid #ececef;
	}

	.header-navigation .kadence-menu-mega-enabled > .sub-menu > li:last-child {
		border-right: 0;
	}

	.header-navigation .kadence-menu-mega-enabled > .sub-menu > li > a {
		min-height: 44px;
		padding: 0 0 0.7rem !important;
		color: #17171a !important;
		font-size: 0.82rem;
		font-weight: 850;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	.header-navigation .kadence-menu-mega-enabled > .sub-menu > li > .sub-menu a {
		min-height: 40px;
		padding: 0.55rem 0 !important;
		color: #5a5a62;
		font-size: 0.8rem;
		line-height: 1.35;
	}

	.header-navigation .kadence-menu-mega-enabled > .sub-menu > li > .sub-menu a:hover,
	.header-navigation .kadence-menu-mega-enabled > .sub-menu > li > .sub-menu a:focus-visible {
		color: var(--global-palette1);
	}
}

@media (max-width: 1100px) {
	.idi-catalog-search {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.idi-catalog-search__filters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.idi-context-cta {
		grid-template-columns: 1fr;
	}

	.idi-context-cta__actions {
		align-items: stretch;
	}

	.idi-context-cta__actions a {
		flex: 1 1 0;
		white-space: normal;
	}
}

@media (max-width: 520px) {
	.idi-catalog-search__filters {
		grid-template-columns: 1fr;
	}

	.idi-catalog-search__reset {
		grid-column: 1;
		justify-self: start;
	}

	.idi-context-cta__actions {
		flex-direction: column;
	}
}

/* ==========================================================================
   Modèle B2B — tarif verrouillé et invitation à se connecter
   ========================================================================== */

.idi-price-locked {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: #6a6a70;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.idi-price-locked::before {
	content: "";
	flex: none;
	width: 13px;
	height: 13px;
	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='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.summary .idi-price-locked {
	font-size: 0.95rem;
}

.idi-locked-purchase {
	margin: 1.75rem 0 0;
	padding: clamp(1.5rem, 3vw, 2rem);
	border: 1px solid #e2e0e1;
	border-left: 3px solid #d62b6f;
	border-radius: 6px;
	background: #fafaf9;
}

.idi-locked-purchase__title {
	margin: 0 0 0.6rem;
	color: #1d1d1f;
	font-family: var(--global-heading-font-family);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.3;
}

.idi-locked-purchase__text {
	margin: 0 0 1.25rem;
	max-width: 46ch;
	color: #5c5c62;
	font-size: 0.95rem;
	line-height: 1.65;
}

.idi-locked-purchase__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.idi-locked-purchase__cta,
.idi-locked-purchase__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 1.6rem;
	border-radius: 4px;
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.idi-locked-purchase__cta {
	background: #d62b6f;
	color: #ffffff;
}

.idi-locked-purchase__cta:hover,
.idi-locked-purchase__cta:focus-visible {
	background: #b81f5c;
	color: #ffffff;
}

.idi-locked-purchase__link {
	border: 1px solid #cfcccd;
	color: #1d1d1f;
}

.idi-locked-purchase__link:hover,
.idi-locked-purchase__link:focus-visible {
	border-color: #1d1d1f;
	color: #1d1d1f;
}

.idi-locked-purchase__phone {
	margin: 1.15rem 0 0;
	color: #6a6a70;
	font-size: 0.9rem;
}

.idi-locked-purchase__phone a {
	display: inline-block;
	padding: 0.25rem 0;
	color: #d62b6f;
	font-weight: 600;
}

@media all and (max-width: 480px) {
	.idi-locked-purchase__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.idi-locked-purchase__cta,
	.idi-locked-purchase__link {
		width: 100%;
	}
}

/* ==========================================================================
   Cibles tactiles — remontée des zones cliquables sous 44px
   ========================================================================== */

.woocommerce-tabs .wc-tabs li a {
	display: flex;
	align-items: center;
	min-height: 48px;
}

.products .product .woocommerce-loop-product__title,
.products .product h2 {
	display: block;
	padding: 0.35rem 0;
}

.products .product .woocommerce-LoopProduct-link {
	display: block;
	min-height: 44px;
}

.idi-contact-band a[href^="tel:"]:not(.wp-block-button__link),
.idi-contact-band a[href^="mailto:"]:not(.wp-block-button__link),
.entry-content a[href^="tel:"]:not(.wp-block-button__link),
.entry-content a[href^="mailto:"]:not(.wp-block-button__link) {
	display: inline-block;
	padding: 0.4rem 0;
}

/* ==========================================================================
   Fil d'Ariane boutique et catégories
   ========================================================================== */

.idi-shop-breadcrumb {
	margin: 0 auto 1.75rem;
	padding: 0 var(--global-content-edge-padding, 1.5rem);
	max-width: var(--global-calc-content-width, 1290px);
}

.idi-shop-breadcrumb .kadence-breadcrumbs {
	font-size: 0.85rem;
	color: #6b6b6e;
}

.idi-shop-breadcrumb .kadence-breadcrumbs a {
	display: inline-block;
	padding: 0.45rem 0;
	color: #6b6b6e;
	text-decoration: none;
}

.idi-shop-breadcrumb .kadence-breadcrumbs a:hover,
.idi-shop-breadcrumb .kadence-breadcrumbs a:focus-visible {
	color: #d62b6f;
	text-decoration: underline;
}

/* ==========================================================================
   Contenus éditoriaux — grille de vignettes des rubriques (Actualités,
   Expertise clinique) et fiche article. Les sélecteurs s'appuient sur les
   classes de corps posées par le thème, pas sur des identifiants de page :
   une nouvelle rubrique ou un nouvel article est stylé sans retoucher le CSS.
   ========================================================================== */

.idi-editorial-hub .entry-content,
.idi-article-single .entry-content {
	position: relative;
}

.idi-articles-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: clamp(1.75rem, 3vw, 2.5rem);
	margin: clamp(2.5rem, 5vw, 4rem) 0;
}

.idi-articles-empty {
	margin: clamp(2.5rem, 5vw, 4rem) 0;
	color: #6b6b6e;
}

.idi-article-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid #e4e2e3;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 18px 45px -42px rgba(16, 16, 19, 0.8);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.idi-article-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 24px 50px -36px rgba(16, 16, 19, 0.5);
}

/* La vignette porte volontairement des produits dans des formats très
   variés (photo carrée d'article, mais aussi visuel produit très haut et
   étroit comme implant-idslim.jpg, 335x1488). `aspect-ratio:4/3` seul ne
   suffit pas : l'image, enfant en `width/height:100%` d'un conteneur lui-
   même flex, referme une boucle de dimensionnement que Chromium résout en
   ignorant l'aspect-ratio déclaré et en calquant la hauteur sur le ratio
   intrinsèque de l'image — un visuel très haut faisait alors gonfler toute
   la carte à plus de 1400px de haut. Sortir l'image du flux (`position:
   absolute`) casse cette boucle : l'aspect-ratio du conteneur redevient la
   seule source de vérité pour la hauteur. */
.idi-article-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f4f5f2;
}

.idi-article-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 1.5rem;
	box-sizing: border-box;
}

/* Vignette déjà au format 4:3 : elle remplit tout le cadre. */
.idi-article-card__media--cover img {
	object-fit: cover;
	padding: 0;
}

.idi-article-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.5rem clamp(1.25rem, 2vw, 1.75rem) 1.75rem;
}

.idi-article-card__eyebrow {
	margin: 0 0 0.6rem;
	color: #d62b6f;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.idi-article-card__title {
	margin: 0 0 0.6rem;
	font-family: var(--global-heading-font-family);
	font-size: 1.2rem;
	line-height: 1.3;
}

.idi-article-card__title a {
	color: #1d1d1f;
	text-decoration: none;
}

.idi-article-card__title a:hover,
.idi-article-card__title a:focus-visible {
	color: #d62b6f;
}

.idi-article-card__excerpt {
	flex: 1;
	margin: 0 0 1.1rem;
	color: #5c5c62;
	font-size: 0.92rem;
	line-height: 1.6;
}

.idi-article-card__link {
	margin: 0;
}

.idi-article-card__link a {
	color: #1d1d1f;
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
}

.idi-article-card__link a span {
	display: inline-block;
	margin-left: 0.2rem;
	transition: transform 0.2s ease;
}

.idi-article-card:hover .idi-article-card__link a span {
	transform: translateX(4px);
}

/* ==========================================================================
   Fiche article — colonne éditoriale premium
   Scopé sur `.idi-article-single` (classe de corps automatique pour toute
   page enfant de "Articles") : s'applique à chaque futur article sans
   retouche.
   ========================================================================== */

/* Colonne de lecture resserrée : à 1242px de large, les paragraphes en pleine
   largeur donnaient un aplat de texte brut. Seuls le hero et le CTA restent
   pleine largeur (ils gèrent déjà leur propre largeur interne). */
.idi-article-single .entry-content > *:not(.idi-page-intro):not(.idi-article-stats) {
	max-width: 700px;
	margin-right: auto;
	margin-left: auto;
}

/* Kadence remet unilatéralement `margin-top:0` sur les paragraphes et groupes
   de blocs, et `margin-bottom:0` sur le TOUT DERNIER bloc de la colonne (deux
   règles internes au thème, de spécificité supérieure à notre rythme vertical
   générique `.entry-content > *`) : ces resets comptent normalement sur le
   padding de `.entry-content-wrap` pour créer l'espace avant/après. Or ce
   padding est mis à 0 sur toutes les pages à hero plein écran (règle
   `body:is(.idi-has-page-intro) .entry-content-wrap`, plus haut), pour que le
   hero parte du tout premier pixel. Sans compensation, un article qui n'ouvre
   pas sur un élément à marge propre (comme le bandeau de chiffres clés de
   IDSLIM, volontairement flush sous le hero — d'où l'exclusion ci-dessous)
   se retrouvait collé au hero en haut ET au pied de page en bas. Le hero
   lui-même n'est pas affecté : il reste flush grâce à ses marges négatives,
   indépendamment du padding du wrapper. */
.idi-article-single .entry-content > .idi-page-intro + *:not(.idi-article-stats) {
	margin-top: clamp(2.75rem, 5vw, 5.5rem) !important;
}

.idi-article-single .entry-content > *:last-child {
	margin-bottom: clamp(3rem, 6vw, 4.5rem) !important;
}

.idi-article-single .entry-content > p,
.idi-article-single .entry-content > ul,
.idi-article-single .entry-content > .idi-article-callout p {
	color: #3a3a3d;
	font-size: 1.05rem;
	line-height: 1.85;
}

/* Texte justifié sur grand écran ; césure pour éviter les grands blancs entre les mots. */
@media (min-width: 782px) {
	.idi-article-single .entry-content > p:not(.has-text-align-center):not(.has-text-align-right),
	.idi-article-single .entry-content > .idi-article-callout p {
		text-align: justify;
		hyphens: auto;
		-webkit-hyphens: auto;
	}
}

/* Lettrine sur le tout premier paragraphe : signature éditoriale discrète. */
.idi-article-single .entry-content > p:first-of-type:not(.idi-no-lettrine)::first-letter {
	float: left;
	margin: 0.1rem 0.6rem 0 0;
	color: #d62b6f;
	font-family: var(--global-heading-font-family);
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 0.85;
}

/* Bandeau de chiffres clés, juste sous le hero : reprend le langage des
   "stats" déjà utilisées ailleurs (Société), en pleine largeur du hero. */
.idi-article-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 0;
	max-width: 1000px;
	margin: 0 auto clamp(3rem, 6vw, 4.5rem);
	padding: 0;
	list-style: none;
	border-top: 1px solid #e4e2e3;
	border-bottom: 1px solid #e4e2e3;
}

.idi-article-stats__item {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: clamp(1.5rem, 3vw, 2rem) 1.25rem;
	border-left: 1px solid #e4e2e3;
	text-align: center;
}

.idi-article-stats__item:first-child {
	border-left: none;
}

.idi-article-stats__value {
	color: #1d1d1f;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	line-height: 1;
}

.idi-article-stats__label {
	color: #7a7a7f;
	font-size: 0.78rem;
	letter-spacing: 0.02em;
}

/* Numérotation éditoriale des grandes sections, comme sur Partenaires. */
.idi-article-single .entry-content {
	counter-reset: idi-article-section;
}

.idi-article-single .entry-content > h2.wp-block-heading {
	position: relative;
	margin-top: clamp(3.5rem, 6vw, 5rem);
	padding-top: 2rem;
	border-top: 1px solid #e4e2e3;
	counter-increment: idi-article-section;
}

.idi-article-single .entry-content > h2.wp-block-heading::before {
	display: block;
	margin-bottom: 0.85rem;
	color: #d62b6f;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	content: counter(idi-article-section, decimal-leading-zero);
}

/* Juste sous la carte du praticien, le filet de séparation ferait doublon. */
.idi-article-single .entry-content > .idi-praticien-card + h2.wp-block-heading {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
	padding-top: 0;
	border-top: 0;
}

.idi-article-single .entry-content > h3.wp-block-heading {
	margin-top: 2.5rem;
	color: #1d1d1f;
	font-size: 1.15rem;
}

/* Listes : puce fine reprenant l'accent magenta plutôt que le disque noir par défaut. */
.idi-article-single .entry-content > ul.wp-block-list {
	margin: 1.25rem 0;
	padding-left: 1.1rem;
}

.idi-article-single .entry-content > ul.wp-block-list li {
	margin-bottom: 0.6rem;
	padding-left: 0.4rem;
}

.idi-article-single .entry-content > ul.wp-block-list li::marker {
	color: #d62b6f;
}

/* Bibliographie : références numérotées, en petit, comme les notes d'une publication. */
.idi-article-single .entry-content > ul.idi-biblio {
	margin: 1.5rem auto 0;
	padding: 0;
	list-style: none;
	counter-reset: idi-biblio;
}

.idi-article-single .entry-content > ul.idi-biblio li {
	position: relative;
	margin: 0;
	padding: 0.65rem 0 0.65rem 2.5rem;
	border-top: 1px solid #e8e7ea;
	color: #5f5f66;
	font-size: 0.86rem;
	line-height: 1.6;
	text-align: left;
	counter-increment: idi-biblio;
}

.idi-article-single .entry-content > ul.idi-biblio li:last-child {
	border-bottom: 1px solid #e8e7ea;
}

.idi-article-single .entry-content > ul.idi-biblio li::before {
	content: counter(idi-biblio, decimal-leading-zero);
	position: absolute;
	top: 0.8rem;
	left: 0;
	color: #d62b6f;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	font-variant-numeric: tabular-nums;
}

/* Vignette IDCAM détourée sur blanc : le blanc se fond dans le fond teinté. */
.idi-product-link__media img[src*="idcam-thumb"] {
	mix-blend-mode: multiply;
	transform: scale(1.35);
}

/* Encadré "Observation" : reprend la signature bordure gauche magenta déjà
   utilisée pour .idi-page-intro__lead, sur fond légèrement teinté. */
.idi-article-callout {
	max-width: 700px;
	margin: 2rem auto;
	padding: 1.5rem 1.75rem;
	border-left: 3px solid #d62b6f;
	border-radius: 0 6px 6px 0;
	background: #f9f5f7;
}

.idi-article-callout p {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.7;
}

/* Fiche article : image encadrée et tableaux de caractéristiques */
.idi-article-single .idi-article__figure {
	margin: clamp(2rem, 4vw, 3rem) auto;
	padding: 2rem;
	border-radius: 8px;
	background: #f4f5f2;
}

.idi-article-single .idi-article__figure img {
	border-radius: 4px;
}

.idi-article-single .idi-article__figure figcaption {
	margin-top: 1rem;
	color: #7a7a7f;
	font-size: 0.82rem;
	text-align: center;
}

.idi-article-table {
	width: 100%;
	margin: 1.5rem 0 2rem;
	overflow: hidden;
	border: 1px solid #e4e2e3;
	border-radius: 8px;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 0.92rem;
}

.idi-article-table th {
	padding: 0.85rem 1.1rem;
	background: #1d1d1f;
	color: #ffffff;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-align: left;
	text-transform: uppercase;
}

.idi-article-table td {
	padding: 0.75rem 1.1rem;
	color: #1d1d1f;
	text-align: left;
}

.idi-article-table tbody tr:nth-child(even) {
	background: #f9f9fa;
}

.idi-article-table tbody tr:not(:last-child) td {
	border-bottom: 1px solid #ececed;
}

/* Carrousel photo d'un cas clinique : galerie contenue dans la colonne de
   l'article (contrairement au carrousel hero, plein cadre). Chaque bloc
   Image de .idi-case-gallery-source devient une slide, légende comprise. */
.idi-case-gallery-source {
	max-width: 700px;
	margin: clamp(2rem, 4vw, 3rem) auto;
	padding: 1.5rem;
	border-radius: 8px;
	background: #f4f5f2;
}

.idi-case-gallery-source .wp-block-group__inner-container > .wp-block-image:not(:first-child) {
	display: none;
}

.idi-case-gallery-source .wp-block-image {
	margin: 0;
}

.idi-case-gallery-source .wp-block-image img {
	display: block;
	width: 100%;
	height: min(56vh, 480px);
	object-fit: contain;
	background: #ffffff;
	border-radius: 4px;
}

.idi-case-gallery-source .wp-block-image figcaption {
	margin-top: 0.85rem;
	color: #5c5c62;
	font-size: 0.88rem;
	line-height: 1.5;
	text-align: center;
}

.idi-case-gallery__track {
	position: relative;
}

.idi-case-gallery__slide {
	display: none;
}

.idi-case-gallery__slide.is-active {
	display: block;
}

.idi-case-gallery__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-top: 1.1rem;
}

.idi-case-gallery__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid #dcdcde;
	border-radius: 50%;
	background: #ffffff;
	color: #1d1d1f;
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.idi-case-gallery__arrow:hover,
.idi-case-gallery__arrow:focus-visible {
	background: #d62b6f;
	color: #ffffff;
}

.idi-case-gallery__counter {
	min-width: 4.5em;
	color: #7a7a7f;
	font-size: 0.85rem;
	text-align: center;
}

.idi-case-gallery__dots {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 0.85rem;
}

.idi-case-gallery__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #dcdcde;
	cursor: pointer;
}

.idi-case-gallery__dot.is-active {
	background: #d62b6f;
}

.idi-case-gallery--single .idi-case-gallery__nav,
.idi-case-gallery--single .idi-case-gallery__dots {
	display: none;
}

@media all and (max-width: 600px) {
	.idi-case-gallery-source .wp-block-image img {
		height: 60vw;
	}
}

/* ==========================================================================
   Cas cliniques — Carte de visite du praticien
   ========================================================================== */

/* Plaque sombre reprenant exactement le traitement du hero d'article
   (`body.page:not(.home) .idi-page-intro`) : même halo rose, même #18171a,
   même rayon et même famille d'ombre. Un aplat blanc sur le gris de page
   n'avait aucun contraste et ne se rattachait à rien ; le sombre porte en
   plus très bien le vide à droite, là où le blanc le faisait lire comme
   inachevé. La largeur et le centrage viennent de la règle de colonne
   éditoriale : la plaque s'aligne donc d'office sur l'axe du texte. */
.idi-praticien-card {
	margin: clamp(2.5rem, 5vw, 3.5rem) auto !important;
}

.idi-praticien-card__inner {
	display: flex;
	align-items: center;
	gap: clamp(1.25rem, 3vw, 2rem);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: 8px;
	background: radial-gradient(80% 140% at 100% 0%, rgba(201, 31, 99, 0.16) 0%, rgba(201, 31, 99, 0) 58%), #18171a;
	box-shadow: 0 24px 54px -38px rgba(18, 18, 21, 0.8);
}

.idi-praticien-card__photo-wrap {
	flex-shrink: 0;
	width: 84px;
	height: 84px;
	border-radius: 50%;
}

/* Double anneau : un filet clair d'un pixel qui détache la photo du fond
   sombre, puis un halo rose très dilué qui reprend l'accent de la marque. */
.idi-praticien-card__photo {
	display: block;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	object-fit: cover;
	background: #232227;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.14), 0 0 0 5px rgba(230, 52, 120, 0.14);
}

.idi-praticien-card__photo-wrap--initials {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(140deg, #2c2b31 0%, #212025 100%);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.14), 0 0 0 5px rgba(230, 52, 120, 0.14);
}

.idi-praticien-card__initials {
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
}

.idi-praticien-card__info {
	flex: 1;
	min-width: 0;
}

.idi-praticien-card__eyebrow {
	display: block;
	color: #e63478;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1;
}

/* Police de titre et vraie échelle typographique : à 1.05rem dans la police
   de labeur, le nom ne se distinguait pas du texte courant. */
.idi-praticien-card__name {
	display: block;
	margin-top: 0.85rem;
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.35rem, 2.5vw, 1.6rem);
	font-weight: 400;
	letter-spacing: -0.01em;
	line-height: 1.15;
}

.idi-praticien-card__name strong {
	font-weight: 700;
}

/* Filet court sous le nom : même signe que celui posé sous les titres de
   section, pour rattacher la plaque à la grammaire de la page. */
.idi-praticien-card__name::after {
	content: "";
	display: block;
	width: 32px;
	height: 2px;
	margin-top: 0.85rem;
	background: #e63478;
}

.idi-praticien-card__titre {
	display: block;
	margin-top: 0.8rem;
	color: #b9b9c0;
	font-size: 0.87rem;
	line-height: 1.4;
}

.idi-praticien-card__lieu {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.45rem;
	color: #8e8e96;
	font-size: 0.8rem;
	line-height: 1.4;
}

.idi-praticien-card__lieu::before {
	content: "";
	flex-shrink: 0;
	width: 0.8rem;
	height: 0.8rem;
	background: #e63478;
	-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'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.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'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.idi-praticien-card__diplomes {
	display: grid;
	gap: 0.45rem;
	margin: 1.1rem 0 0 !important;
	padding: 1rem 0 0 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	list-style: none;
}

.idi-praticien-card__diplomes::before {
	content: "Formation";
	display: block;
	margin-bottom: 0.35rem;
	color: #8e8e96;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1;
}

/* Liste haute : photo et identité restent calées en haut plutôt que flottant au milieu. */
.idi-praticien-card__inner:has(.idi-praticien-card__diplomes) {
	align-items: flex-start;
}

.idi-praticien-card__diplomes li {
	position: relative;
	margin: 0 !important;
	padding-left: 0.95rem;
	color: #b9b9c0;
	font-size: 0.8rem;
	line-height: 1.45;
}

.idi-praticien-card__diplomes li::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #e63478;
}

/* Grand écran : carte de visite en bandeau sur toute la largeur du cas —
   identité à gauche, diplômes à droite — puis le texte dessous, sans habillage. */
@media (min-width: 900px) {
	.idi-article-single .idi-praticien-card__inner {
		align-items: center;
		gap: clamp(1.5rem, 3vw, 2.25rem);
		padding: clamp(2rem, 3.5vw, 2.75rem);
	}

	.idi-article-single .idi-praticien-card__info:has(.idi-praticien-card__diplomes) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
		align-items: center;
		column-gap: clamp(1.75rem, 4vw, 3rem);
	}

	.idi-article-single .idi-praticien-card__diplomes {
		margin: 0 !important;
		padding: 0.25rem 0 0.25rem clamp(1.75rem, 4vw, 3rem) !important;
		border-top: 0;
		border-left: 1px solid rgba(255, 255, 255, 0.1);
	}
}

@media (min-width: 1100px) {
	.idi-article-single .entry-content > .idi-praticien-card {
		max-width: 1000px !important;
	}

	/* Le reste du cas prend la largeur de la carte (1000px) pour rester aligné dessous. */
	.idi-article-single .entry-content:has(> .idi-praticien-card) > *:not(.idi-page-intro):not(.idi-article-stats) {
		max-width: 1000px !important;
	}
}

@media (max-width: 600px) {
	.idi-praticien-card__inner {
		gap: 1.1rem;
		padding: 1.4rem;
	}

	.idi-praticien-card__photo-wrap,
	.idi-praticien-card__photo,
	.idi-praticien-card__photo-wrap--initials {
		width: 64px;
		height: 64px;
	}

	.idi-praticien-card__initials {
		font-size: 1.2rem;
	}

	.idi-praticien-card__name {
		margin-top: 0.7rem;
	}

	.idi-praticien-card__name::after {
		margin-top: 0.7rem;
	}

	.idi-praticien-card__titre {
		margin-top: 0.65rem;
	}
}

@media all and (max-width: 600px) {
	.idi-articles-grid {
		grid-template-columns: 1fr;
	}

	.idi-article-single .entry-content > *:not(.idi-page-intro):not(.idi-article-stats) {
		max-width: none;
	}

	.idi-article-stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.idi-article-stats__item:nth-child(2) {
		border-left: 1px solid #e4e2e3;
	}

	.idi-article-stats__item:nth-child(odd) {
		border-left: none;
	}

	.idi-article-table {
		font-size: 0.85rem;
	}

	.idi-article-table th,
	.idi-article-table td {
		padding: 0.6rem 0.65rem;
	}
}

/* ==========================================================================
   Correctifs UI/UX — passe de juillet 2026
   ========================================================================== */

/* -- Boutique : 2 colonnes sur téléphone (au lieu d'une seule) pour diviser
      par deux la longueur de la page. Au-delà, Kadence reprend la main
      (3 colonnes dès 600px, 4 dès 1025px). ---------------------------------- */
@media all and (max-width: 599px) {
	.woocommerce ul.products.grid-cols {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.7rem !important;
	}

	.woocommerce ul.products li.product .product-details {
		min-height: 0;
		padding: 0.85rem 0.85rem 1rem;
	}

	.woocommerce ul.products li.product .woocommerce-loop-image-link {
		padding: 1rem;
	}

	.woocommerce ul.products.woo-archive-action-on-hover li.product .button,
	.woocommerce ul.products.woo-archive-action-on-hover li.product .added_to_cart {
		font-size: 0.72rem;
		padding-left: 0.6rem;
		padding-right: 0.6rem;
	}
}

/* -- Cross-sell / recommandations du panier et blocs « Produits » : ils
      utilisent le markup bloc `wc-block-grid__product`, qui n'héritait pas du
      cadre d'image de la grille boutique. On lui applique les mêmes garde-fous
      (cadre carré, image contenue) : une photo portrait ne fait plus exploser
      la hauteur de sa carte. --------------------------------------------------*/
.wc-block-grid__product .woocommerce-loop-image-link {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	padding: clamp(1.25rem, 3vw, 2rem);
	background:
		radial-gradient(circle at 50% 42%, #ffffff 0%, rgba(255, 255, 255, 0) 70%),
		linear-gradient(150deg, #ffffff 0%, #f2f2f4 100%);
	overflow: hidden;
}

.wc-block-grid__product .woocommerce-loop-image-link img {
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
}

/* -- Lisibilité des produits « blanc sur blanc » : on assombrit légèrement les
      angles du cadre et on pose un liseré interne, pour détacher une photo au
      fond blanc (implants, scanners…) sans toucher aux visuels détourés. ----- */
.woocommerce ul.products li.product .woocommerce-loop-image-link,
.wc-block-grid__product .woocommerce-loop-image-link {
	background:
		radial-gradient(circle at 50% 40%, #ffffff 0%, rgba(255, 255, 255, 0) 72%),
		linear-gradient(150deg, #f7f7f9 0%, #ececef 100%);
	box-shadow: inset 0 0 0 1px rgba(23, 23, 26, 0.04);
}

/* -- Produit sans photo : le média de remplacement WooCommerce se cale dans le
      même cadre neutre, centré et discret (plus de grand vide blanc). -------- */
.woocommerce ul.products li.product img[src*="placeholder"],
.wc-block-grid__product img[src*="placeholder"] {
	object-fit: contain;
	opacity: 0.5;
	filter: grayscale(1);
}

/* -- Page « Mon compte » : porte d'entrée pour un praticien pas encore client
      (la création de compte est réservée, d'où l'invitation à demander un accès). */
.idi-account-cta {
	max-width: 640px;
	margin: 1.4rem 0 0;
	padding: 1.1rem 1.35rem;
	border: 1px solid var(--idi-shop-line, #e3e1e2);
	border-left: 3px solid #d62b6f;
	border-radius: 6px;
	background: #fafafa;
	color: #4a4a50;
	font-size: 0.95rem;
	line-height: 1.6;
}

.idi-account-cta strong {
	color: #1d1d1f;
}

.idi-account-cta a {
	color: #d62b6f;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* -- Recherche « réachat rapide » : état de chargement et surbrillance de
      l'élément actif au clavier / au survol. --------------------------------- */
.idi-quick-order__results.is-loading::before {
	content: "Recherche en cours…";
	display: block;
	padding: 0.8rem 1rem;
	color: var(--idi-shop-muted, #6a6a70);
	font-size: 0.85rem;
}

.idi-quick-order__item.is-active,
.idi-quick-order__item:hover {
	background: #faf2f6;
}

/* Fin de la feuille de styles enfant IDI. */


/* ==========================================================================
   Documentation — bibliothèque publique
   Reprend le vocabulaire visuel de la boutique (carte blanche, filet clair,
   pastilles de filtre) pour que les deux univers restent cohérents.
   ========================================================================== */

.idi-documents {
	margin-top: clamp(2rem, 4vw, 3rem);
}

.idi-documents__panel {
	padding: clamp(1rem, 2vw, 1.35rem);
}

.idi-documents__search {
	margin-bottom: 0.9rem;
}

.idi-documents__input {
	width: 100%;
	min-height: 48px;
	padding: 0 1rem;
	border: 1px solid var(--idi-shop-line, #dfe0e4);
	border-radius: 4px;
	background: #ffffff;
	font-size: 0.95rem;
	color: var(--idi-shop-ink, #17171a);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.idi-documents__input:focus {
	outline: none;
	border-color: var(--global-palette1, #c91f63);
	box-shadow: 0 0 0 3px rgba(201, 31, 99, 0.14);
}

.idi-documents__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.idi-documents__filters--gamme {
	margin-top: 0.6rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--idi-shop-line, #dfe0e4);
}

.idi-documents__count {
	margin: 1.25rem 0 0.75rem;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--idi-shop-muted, #63636b);
}

.idi-documents__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
}

/* Rubriques (Catalogue, Protocoles…) et sous-rubriques de la bibliothèque */
.idi-documents__group + .idi-documents__group {
	margin-top: clamp(2.25rem, 4vw, 3rem);
}

.idi-documents__group-title {
	margin: 0 0 1.1rem !important;
	padding-bottom: .65rem;
	border-bottom: 1px solid #e4e2e3;
	color: #17171a;
	font-size: clamp(1.3rem, 2vw, 1.6rem) !important;
}

.idi-documents__subgroup + .idi-documents__subgroup {
	margin-top: 1.75rem;
}

.idi-documents__subgroup-title {
	margin: 0 0 .75rem !important;
	color: #c91f63;
	font-size: .78rem !important;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.idi-document {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(0.9rem, 2vw, 1.5rem);
	padding: clamp(0.9rem, 2vw, 1.25rem);
	border: 1px solid var(--idi-shop-line, #dfe0e4);
	border-radius: 6px;
	background: #ffffff;
	transition: border-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s var(--idi-ease);
}

.idi-document:hover {
	border-color: rgba(201, 31, 99, 0.35);
	box-shadow: 0 18px 40px -34px rgba(16, 16, 19, 0.8);
	transform: translateY(-2px);
}

.idi-document[hidden] {
	display: none;
}

/* Pastille de format : un simple libellé, plus lisible qu'une icône générique
   et sans média supplémentaire à charger. */
.idi-document__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 56px;
	border: 1px solid rgba(201, 31, 99, 0.25);
	border-radius: 4px;
	background: rgba(201, 31, 99, 0.06);
	color: var(--global-palette1, #c91f63);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.idi-document__eyebrow {
	margin: 0 0 0.2rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--global-palette1, #c91f63);
}

.idi-document__title {
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.35;
	color: var(--idi-shop-ink, #17171a);
}

.idi-document__resume {
	margin: 0.35rem 0 0;
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--idi-shop-muted, #63636b);
}

.idi-document__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.9rem;
	list-style: none;
	margin: 0.55rem 0 0;
	padding: 0;
	font-size: 0.76rem;
	color: var(--idi-shop-muted, #63636b);
}

.idi-document__meta li + li {
	position: relative;
	padding-left: 0.9rem;
}

.idi-document__meta li + li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: currentColor;
	transform: translateY(-50%);
	opacity: 0.5;
}

.idi-document__download {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	min-height: 48px;
	padding: 0.55rem 1.35rem;
	border-radius: 4px;
	background: var(--idi-shop-ink, #17171a);
	color: #ffffff !important;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s ease;
}

.idi-document__download:hover,
.idi-document__download:focus-visible {
	background: var(--global-palette1, #c91f63);
}

.idi-document__weight {
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	opacity: 0.75;
}

.idi-documents__empty,
.idi-documents-empty {
	margin-top: 1.5rem;
	padding: 1.25rem;
	border: 1px dashed var(--idi-shop-line, #dfe0e4);
	border-radius: 6px;
	color: var(--idi-shop-muted, #63636b);
	text-align: center;
}

@media all and (max-width: 700px) {
	.idi-document {
		grid-template-columns: auto minmax(0, 1fr);
		align-items: start;
		row-gap: 1rem;
	}

	.idi-document__download {
		grid-column: 1 / -1;
		width: 100%;
	}
}

/* ==========================================================================
   CATALOGUE PRODUITS — template-catalog-produits.php
   ========================================================================== */

.idi-catalog-page .content-area,
.idi-catalog-page .entry-content-wrap {
	padding: 0;
}

/* Hero */
.idi-catalog-hero {
	padding: clamp(4.5rem, 9vh, 7rem) 0;
	background: linear-gradient(120deg, #111114 0%, #191317 62%, #290c17 100%);
	position: relative;
	overflow: hidden;
}

.idi-catalog-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 0 68%, rgba(201,31,99,.08) 68% 68.1%, transparent 68.1%), radial-gradient(ellipse 50% 100% at 85% 50%, rgba(201,31,99,.18) 0%, transparent 70%);
	pointer-events: none;
}

.idi-catalog-hero__inner {
	position: relative;
	width: min(1240px, calc(100% - clamp(2rem, 8vw, 8rem)));
	margin-inline: auto;
}

.idi-catalog-hero__copy { max-width: 720px; }

.idi-catalog-hero__eyebrow {
	display: block;
	margin: 0 0 1rem;
	color: #c91f63;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.idi-catalog-hero__title {
	margin: 0 0 1.1rem !important;
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: clamp(2.1rem, 3vw, 2.85rem);
	line-height: 1.1;
	letter-spacing: -0.01em;
	text-wrap: balance;
	word-break: normal;
	overflow-wrap: normal;
}

.idi-catalog-hero__lead {
	margin: 0;
	color: rgba(255,255,255,.68);
	font-size: clamp(1rem, 1.25vw, 1.2rem);
	line-height: 1.7;
	max-width: 56ch;
}

/* Section communes */
.idi-catalog-section {
	padding: clamp(4rem, 7vw, 6rem) 0;
	background: #f5f5f7;
}

.idi-catalog-container {
	width: min(1240px, calc(100% - clamp(2rem, 8vw, 8rem)));
	margin-inline: auto;
}

.idi-catalog-family__header {
	margin-bottom: 2.5rem;
}

.idi-catalog-family__eyebrow {
	margin: 0 0 .65rem;
	color: #c91f63;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .11em;
}

.idi-catalog-family__title {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 700;
	color: #17171a;
	margin: 0 0 0.5rem !important;
}

.idi-catalog-family__desc {
	color: #6e6e73;
	font-size: 1rem;
	margin: 0;
}

/* Grille de cartes */
.idi-catalog-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

/* Catégories : sélecteur de gamme intégré au bandeau, les produits s'affichent en dessous */
.idi-catalog-cats {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: .85rem;
	margin-top: clamp(2.25rem, 4vw, 3rem);
}

.idi-cat-card {
	display: flex;
	align-items: center;
	gap: .9rem;
	padding: .85rem 1rem .85rem .85rem;
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 8px;
	background: rgba(255,255,255,.04);
	color: #ffffff;
	text-decoration: none;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: transform .3s var(--idi-ease, ease), background .25s ease, border-color .25s ease, box-shadow .3s ease;
}

.idi-cat-card:hover,
.idi-cat-card:focus-visible {
	transform: translateY(-2px);
	border-color: rgba(255,255,255,.24);
	background: rgba(255,255,255,.07);
	color: #ffffff;
}

.idi-cat-card.is-active {
	border-color: #c91f63;
	background: rgba(201,31,99,.16);
	box-shadow: 0 18px 36px -22px rgba(201,31,99,.9);
}

.idi-cat-card__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(201,31,99,.14);
	color: #f06a9e;
	box-shadow: inset 0 0 0 1px rgba(240,106,158,.25);
	transition: background .25s ease, color .25s ease;
}

.idi-cat-card.is-active .idi-cat-card__icon {
	background: #c91f63;
	color: #ffffff;
}

.idi-cat-card__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .2rem;
}

.idi-cat-card__name {
	font-family: var(--global-heading-font-family);
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .03em;
	line-height: 1.25;
	text-transform: uppercase;
}

.idi-cat-card__count {
	color: rgba(255,255,255,.55);
	font-size: .78rem;
}

.idi-cat-card__arrow {
	flex-shrink: 0;
	display: flex;
	color: rgba(255,255,255,.45);
	transition: transform .25s ease, color .2s ease;
}

.idi-cat-card:hover .idi-cat-card__arrow {
	color: #ffffff;
	transform: translateX(2px);
}

.idi-cat-card.is-active .idi-cat-card__arrow {
	color: #ffffff;
	transform: rotate(90deg);
}

/* Plus de 6 catégories : pastilles compactes, 4 à 5 par ligne */
.idi-catalog-cats--compact {
	grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
	gap: .6rem;
}

.idi-catalog-cats--compact .idi-cat-card {
	gap: .7rem;
	padding: .55rem .85rem .55rem .55rem;
}

.idi-catalog-cats--compact .idi-cat-card__icon {
	width: 38px;
	height: 38px;
}

.idi-catalog-cats--compact .idi-cat-card__icon svg {
	width: 22px;
	height: 22px;
}

.idi-catalog-cats--compact .idi-cat-card__count,
.idi-catalog-cats--compact .idi-cat-card__arrow {
	display: none;
}

.idi-catalog-cats--compact .idi-cat-card__name {
	font-size: .8rem;
	white-space: nowrap;
}

/* Mobile : grille de 2 pastilles compactes, toutes visibles sans défilement */
@media (max-width: 767px) {
	.idi-catalog-cats,
	.idi-catalog-cats--compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .55rem;
		margin-top: 1.75rem;
	}

	.idi-cat-card {
		gap: .6rem;
		min-height: 58px;
		padding: .5rem .65rem .5rem .5rem;
	}

	.idi-cat-card__icon,
	.idi-catalog-cats--compact .idi-cat-card__icon {
		width: 36px;
		height: 36px;
	}

	.idi-cat-card__icon svg,
	.idi-catalog-cats--compact .idi-cat-card__icon svg {
		width: 22px;
		height: 22px;
	}

	.idi-cat-card__name,
	.idi-catalog-cats--compact .idi-cat-card__name {
		font-size: .74rem;
		letter-spacing: .02em;
		white-space: normal;
		overflow-wrap: anywhere;
	}

	.idi-cat-card__count,
	.idi-cat-card__arrow {
		display: none;
	}
}

/* Fiches produits : retour vers la catégorie sur la page Produits */
.idi-product-back {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-bottom: 1.1rem;
	padding: .4rem .85rem .4rem .7rem;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: inherit;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .02em;
	text-decoration: none;
	opacity: .75;
	transition: opacity .2s ease, transform .2s ease;
}

.idi-product-back:hover,
.idi-product-back:focus-visible {
	opacity: 1;
	transform: translateX(-2px);
	color: inherit;
}

/* Cas cliniques : vignettes « Produit utilisé » avant la bibliographie */
.idi-product-links {
	clear: both;
	margin-top: clamp(2.5rem, 5vw, 3.5rem) !important;
}

.idi-product-links__title {
	margin: 0 0 1rem !important;
	color: #c91f63;
	font-size: .75rem !important;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.idi-product-links__title::before,
.idi-product-links__title::after {
	content: none !important;
}

.idi-product-links__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1rem;
}

.idi-product-link {
	display: flex;
	align-items: stretch;
	overflow: hidden;
	border: 1px solid rgba(23,23,26,.08);
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 2px 12px rgba(0,0,0,.06);
	color: #17171a;
	text-decoration: none !important;
	transition: transform .3s var(--idi-ease, ease), box-shadow .3s ease;
}

.idi-product-link:hover,
.idi-product-link:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 20px 40px -18px rgba(0,0,0,.25);
	color: #17171a;
}

.idi-product-link__media {
	flex: 0 0 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: .75rem;
	background: radial-gradient(circle at 50% 40%, rgba(201,31,99,.12) 0%, rgba(201,31,99,0) 70%), #f7f2f4;
}

.idi-product-link__media img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 110px !important;
	object-fit: contain;
}

.idi-product-link__body {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	padding: 1rem 1.25rem;
}

.idi-product-link__badge {
	align-self: flex-start;
	padding: .15rem .55rem;
	border-radius: 20px;
	background: rgba(201,31,99,.1);
	color: #c91f63;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.idi-product-link__name {
	font-family: var(--global-heading-font-family);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.2;
}

.idi-product-link__tagline {
	color: #6e6e73;
	font-size: .82rem;
	line-height: 1.45;
}

.idi-product-link__cta {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	margin-top: auto;
	padding-top: .4rem;
	color: #c91f63;
	font-size: .8rem;
	font-weight: 700;
}

/* Produits de la catégorie choisie */
.idi-catalog-products {
	scroll-margin-top: 110px;
	transition: opacity .4s ease, transform .4s var(--idi-ease, ease);
}

.idi-catalog-products + .idi-catalog-products {
	margin-top: clamp(3rem, 5vw, 4rem);
}

.idi-catalog-products[hidden] {
	display: none;
}

.idi-catalog-products.is-entering {
	opacity: 0;
	transform: translateY(14px);
	transition: none;
}

.idi-catalog-products__title {
	margin: 0 0 1.5rem !important;
	color: #17171a;
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	font-weight: 700;
}

/* Un seul produit : carte horizontale pleine largeur (image à gauche, texte à droite) */
.idi-catalog-grid--single {
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 768px) {
	.idi-catalog-grid--single .idi-product-card {
		flex-direction: row;
		min-height: 380px;
	}

	.idi-catalog-grid--single .idi-product-card__media {
		flex: 0 0 46%;
		min-height: 0;
	}

	.idi-catalog-grid--single .idi-product-card__body {
		justify-content: center;
		gap: .75rem;
		padding: clamp(2rem, 4vw, 3.25rem) !important;
	}

	.idi-catalog-grid--single .idi-product-card__name {
		font-size: clamp(1.6rem, 2.4vw, 2.1rem);
	}

	.idi-catalog-grid--single .idi-product-card__tagline {
		font-size: 1rem;
	}

	.idi-catalog-grid--single .idi-product-card__link {
		margin-top: 1rem;
		align-self: flex-start;
		padding-right: 1rem;
	}
}

/* Carte produit */
.idi-product-card {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid rgba(23,23,26,.07);
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,.06);
	text-decoration: none;
	color: inherit;
	transition: transform .4s var(--idi-ease, ease), box-shadow .4s var(--idi-ease, ease);
}

.idi-product-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px -16px rgba(0,0,0,.2);
}

.idi-product-card--coming {
	cursor: default;
	background: #1b1b1e;
	border-color: #1b1b1e;
}

.idi-product-card--coming:hover {
	transform: none;
	box-shadow: 0 2px 12px rgba(0,0,0,.1);
}

.idi-product-card__media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 340px;
	background: radial-gradient(circle at 50% 40%, rgba(201,31,99,.12) 0%, rgba(201,31,99,0) 70%), #f7f2f4;
	padding: 1.5rem;
	overflow: hidden;
}

.idi-product-card--featured {
	display: flex;
}

.idi-product-card__media--idslim {
	min-height: 340px;
	background: linear-gradient(145deg, #323237, #202024);
	padding: 1.5rem;
}

.idi-product-card__media img {
	display: block;
	max-height: 300px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	transition: transform .5s var(--idi-ease, ease);
}

.idi-product-card__media--idslim img {
	width: auto;
	height: 290px;
	max-height: none;
	object-fit: contain;
	box-shadow: 0 18px 35px rgba(0,0,0,.32);
}

.idi-product-card__media--idslim .idi-product-card__number {
	color: rgba(255,255,255,.4);
}

.idi-product-card__number {
	position: absolute;
	top: 1.25rem;
	left: 1.35rem;
	z-index: 1;
	color: rgba(23,23,26,.35);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
}

.idi-product-card:hover .idi-product-card__media img {
	transform: scale(1.06);
}

.idi-product-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1.5rem 1.75rem 1.85rem;
	flex: 1;
}

.idi-product-card--featured .idi-product-card__body {
	padding: 1.5rem 1.75rem 1.85rem;
}

.idi-product-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.idi-product-card__status {
	color: #8b8b91;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.idi-product-card--coming .idi-product-card__name { color: #fff; }
.idi-product-card--coming .idi-product-card__tagline { color: rgba(255,255,255,.58); }
.idi-product-card--coming .idi-product-card__status { color: rgba(255,255,255,.42); }

.idi-product-card--elite {
	background: #17171a;
	border-color: #17171a;
}

.idi-product-card--elite .idi-product-card__name { color: #fff; }
.idi-product-card--elite .idi-product-card__tagline { color: rgba(255,255,255,.62); }
.idi-product-card--elite .idi-product-card__status { color: #f06a9e; }
.idi-product-card--elite .idi-product-card__link { color: #f06a9e; border-top-color: rgba(255,255,255,.12); }

.idi-product-card__media--elite {
	min-height: 340px;
	padding: 1.25rem;
	background: linear-gradient(145deg, #f7f2f4, #ece7e9);
}

.idi-product-card__media--elite img {
	width: auto;
	height: 300px;
	max-height: none;
	filter: drop-shadow(0 20px 28px rgba(38,48,50,.18));
}

.idi-product-card__badge--tech {
	background: rgba(201,31,99,.14);
	color: #f06a9e;
}

.idi-product-card__badge {
	display: inline-flex;
	align-self: flex-start;
	padding: 0.2rem 0.65rem;
	border-radius: 20px;
	background: rgba(201,31,99,.1);
	color: #c91f63;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.idi-product-card__badge--soon {
	background: rgba(110,110,115,.1);
	color: #6e6e73;
}

.idi-product-card__name {
	margin: 0 !important;
	font-size: 1.35rem;
	font-weight: 700;
	color: #17171a;
	font-family: var(--global-heading-font-family);
}

.idi-product-card__tagline {
	margin: 0;
	color: #6e6e73;
	font-size: 0.88rem;
	line-height: 1.5;
}

.idi-product-card__specs {
	margin: 0.35rem 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.65rem;
}

.idi-product-card__specs li {
	color: #6e6e73;
	font-size: 0.78rem;
	font-weight: 600;
}

.idi-product-card__specs li::before {
	content: "·";
	margin-right: 0.35rem;
	color: #c91f63;
}

.idi-product-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: auto;
	padding-top: 0.85rem;
	color: #c91f63;
	font-size: 0.82rem;
	font-weight: 700;
	text-decoration: none;
	border-top: 1px solid #f0f0f2;
}

/* CTA catalogue */
.idi-catalog-cta {
	padding: clamp(4rem, 7vw, 6rem) 0;
	background: #17171a;
}

.idi-catalog-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2.5rem;
	flex-wrap: wrap;
}

.idi-catalog-cta__eyebrow {
	display: block;
	margin: 0 0 0.5rem;
	color: #c91f63;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.idi-catalog-cta__title {
	margin: 0 !important;
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.5rem, 2.5vw, 2.1rem);
	font-weight: 700;
	line-height: 1.15;
}

.idi-catalog-cta__text {
	max-width: 54ch;
	margin: 1rem 0 0;
	color: rgba(255,255,255,.55);
	font-size: .88rem;
	line-height: 1.65;
}

.idi-catalog-cta__actions {
	display: flex;
	gap: 0.85rem;
	flex-wrap: wrap;
	flex-shrink: 0;
}

.idi-catalog-cta__btn {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 1.5rem;
	border-radius: 4px;
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .25s ease, background .2s ease;
}

.idi-catalog-cta__btn--primary {
	background: #c91f63;
	color: #ffffff;
	border: 1px solid transparent;
}

.idi-catalog-cta__btn--primary:hover {
	background: #a81851;
	transform: translateY(-1px);
	box-shadow: 0 10px 24px -14px rgba(201,31,99,.9);
}

.idi-catalog-cta__btn--secondary {
	background: transparent;
	color: rgba(255,255,255,.8);
	border: 1px solid rgba(255,255,255,.25);
}

.idi-catalog-cta__btn--secondary:hover {
	border-color: rgba(255,255,255,.6);
	color: #ffffff;
}

@media all and (max-width: 767px) {
	.idi-catalog-hero {
		padding: 3.5rem 0;
	}

	.idi-catalog-grid {
		grid-template-columns: 1fr;
	}

	.idi-catalog-family__header {
		margin-bottom: 2rem;
	}

	.idi-product-card__media {
		height: 260px;
		min-height: 260px;
		box-sizing: border-box;
	}

	.idi-product-card__body {
		min-height: 271px;
	}

	.idi-product-card__media img {
		max-height: 225px;
	}

	.idi-product-card__media--idslim {
		min-height: 260px;
	}

	.idi-product-card__media--idslim img {
		height: 220px;
		max-height: none;
	}

	.idi-product-card__media--elite {
		min-height: 260px;
	}

	.idi-product-card__media--elite img {
		height: 225px;
		max-height: none;
	}

	.idi-catalog-cta__inner {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ==========================================================================
   FICHE PRODUIT — template-fiche-elite.php
   ========================================================================== */

.idi-elite,
body.page-template-template-fiche-elite-php {
	--elite-ink: #151719;
	--elite-muted: #6e6e73;
	--elite-tech: #c91f63;
	--elite-tech-light: #f06a9e;
	--elite-mist: #f5f5f7;
	--elite-line: #e5e5ea;
	color: var(--elite-ink);
	background: #fff;
}

.idi-elite-shell {
	width: min(1240px, calc(100% - clamp(2rem, 8vw, 8rem)));
	margin-inline: auto;
}

.idi-elite-hero {
	position: relative;
	overflow: hidden;
	color: #fff;
	background: linear-gradient(135deg, #0f0d0f 0%, #1d0e18 55%, #200a14 100%);
}

.idi-elite-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 48% 92% at 79% 50%, rgba(201,31,99,.24) 0%, transparent 70%);
	pointer-events: none;
}

.idi-elite-hero::after {
	content: "";
	position: absolute;
	top: 0;
	right: 8%;
	width: 1px;
	height: 100%;
	background: rgba(255,255,255,.08);
}

.idi-elite-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 480px);
	align-items: center;
	gap: clamp(3rem, 7vw, 7rem);
	min-height: clamp(650px, 82vh, 820px);
	padding: clamp(5rem, 9vh, 7rem) 0;
}

.idi-elite-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-bottom: 2.5rem;
	color: rgba(255,255,255,.42);
	font-size: .73rem;
}

.idi-elite-breadcrumb a { color: rgba(255,255,255,.52); text-decoration: none; }

.idi-elite-eyebrow {
	margin: 0 0 .85rem;
	color: var(--elite-tech);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.idi-elite-hero__title {
	margin: 0 0 .75rem !important;
	color: #ffffff;
	font-size: clamp(2.1rem, 3vw, 2.85rem);
	font-weight: 760;
	line-height: 1.1;
	letter-spacing: 0;
}

.idi-elite-hero__title span { color: var(--elite-tech); }

.idi-elite-hero__tagline {
	margin: 0 0 1.5rem;
	font-size: clamp(1.15rem, 1.6vw, 1.45rem);
	font-weight: 700;
	line-height: 1.3;
}

.idi-elite-hero__lead {
	max-width: 58ch;
	margin: 0 0 2rem;
	color: rgba(255,255,255,.68);
	font-size: clamp(1rem, 1.25vw, 1.2rem);
	line-height: 1.75;
}

.idi-elite-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

.idi-elite-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 1.4rem;
	border: 1px solid var(--elite-ink);
	border-radius: 3px;
	font-size: .84rem;
	font-weight: 750;
	text-decoration: none;
	transition: transform .2s ease, background .2s ease, color .2s ease;
}

.idi-elite-btn:hover { transform: translateY(-2px); }
.idi-elite-btn--primary { background: var(--elite-tech); border-color: var(--elite-tech); color: #fff; }
.idi-elite-btn--primary:hover { background: var(--elite-tech); border-color: var(--elite-tech); color: #fff; }
.idi-elite-btn--ghost { color: rgba(255,255,255,.82); background: transparent; border-color: rgba(255,255,255,.32); }
.idi-elite-btn--ghost:hover { color: #fff; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.65); }

.idi-elite-hero__proofs {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem 1.5rem;
	margin: 2rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid rgba(255,255,255,.14);
	list-style: none;
}

.idi-elite-hero__proofs li {
	position: relative;
	padding-left: .9rem;
	color: rgba(255,255,255,.58);
	font-size: .72rem;
	font-weight: 700;
}

.idi-elite-hero__proofs li::before { content: ""; position: absolute; left: 0; top: .45em; width: 5px; height: 5px; background: var(--elite-tech); }

.idi-elite-hero__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 570px;
}

.idi-elite-hero__stage::before {
	content: "";
	position: absolute;
	inset: 9% 3%;
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 50%;
	transform: rotate(-12deg);
}

.idi-elite-hero__stage img {
	position: relative;
	z-index: 1;
	display: block;
	width: auto;
	height: 520px;
	object-fit: contain;
	filter: drop-shadow(0 35px 35px rgba(29,43,46,.2));
}

.idi-elite-hero__edition {
	position: absolute;
	top: 0;
	right: 0;
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .12em;
	writing-mode: vertical-rl;
	color: rgba(255,255,255,.62);
}

.idi-elite-hero__measure {
	position: absolute;
	z-index: 2;
	display: flex;
	flex-direction: column;
	padding: .8rem 1rem;
	color: var(--elite-ink);
	background: rgba(255,255,255,.94);
	border-left: 2px solid var(--elite-tech);
	box-shadow: 0 12px 30px rgba(37,53,56,.09);
}

.idi-elite-hero__measure strong { font-size: 1.15rem; line-height: 1; }
.idi-elite-hero__measure span { margin-top: .25rem; color: var(--elite-muted); font-size: .64rem; text-transform: uppercase; letter-spacing: .07em; }
.idi-elite-hero__measure--weight { left: 0; bottom: 22%; }
.idi-elite-hero__measure--size { right: 0; top: 23%; }

.idi-elite-nav {
	position: sticky;
	top: 0;
	z-index: 150;
	background: rgba(255,255,255,.94);
	border-bottom: 1px solid var(--elite-line);
	backdrop-filter: blur(14px);
}

.idi-elite-nav__inner { display: flex; overflow-x: auto; scrollbar-width: none; }
.idi-elite-nav__inner::-webkit-scrollbar { display: none; }
.idi-elite-nav a { flex: none; padding: 1rem 1.1rem; color: var(--elite-muted); font-size: .76rem; font-weight: 700; text-decoration: none; }
.idi-elite-nav a:first-child { padding-left: 0; color: var(--elite-tech); }

.idi-elite-section { padding: clamp(5rem, 9vw, 8rem) 0; scroll-margin-top: 52px; }
.idi-elite-section--white { background: #fff; }
.idi-elite-section--mist { background: var(--elite-mist); }
.idi-elite-section--ink { background: var(--elite-ink); color: #fff; }

.idi-elite-heading { max-width: 720px; margin: 0 auto clamp(3rem, 6vw, 5rem); text-align: center; }
.idi-elite-heading--wide { max-width: 900px; }
.idi-elite-heading h2,
.idi-elite-copy h2,
.idi-elite-documentation h2 { margin: 0 0 1rem !important; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.04; letter-spacing: 0; }
.idi-elite-heading > p:last-child { margin: 0; color: var(--elite-muted); line-height: 1.7; }
.idi-elite-heading--dark h2 { color: #fff; }

.idi-elite-metrics { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--elite-line); border-bottom: 1px solid var(--elite-line); }
.idi-elite-metrics > div { display: flex; flex-direction: column; gap: .55rem; padding: 2rem clamp(1rem, 3vw, 2.5rem); border-right: 1px solid var(--elite-line); }
.idi-elite-metrics > div:last-child { border-right: 0; }
.idi-elite-metrics strong { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1; }
.idi-elite-metrics small { color: var(--elite-tech); font-size: .38em; }
.idi-elite-metrics span { color: var(--elite-muted); font-size: .75rem; font-weight: 700; }

.idi-elite-split { display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.idi-elite-split--reverse { grid-template-columns: minmax(360px, 1.1fr) minmax(0, .9fr); }
.idi-elite-copy h2 { color: #fff; }
.idi-elite-copy > p:not(.idi-elite-eyebrow) { color: rgba(255,255,255,.62); line-height: 1.75; }
.idi-elite-copy--light h2 { color: var(--elite-ink); }
.idi-elite-copy--light > p:not(.idi-elite-eyebrow) { color: var(--elite-muted); }

.idi-elite-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 2rem 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.14); }
.idi-elite-checks li { padding: 1rem .75rem 1rem 1rem; border-bottom: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.78); font-size: .8rem; }
.idi-elite-checks li::before { content: "+"; margin-right: .6rem; color: var(--elite-tech-light); }

.idi-elite-media { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 480px; overflow: hidden; }
.idi-elite-media--dark { background: #202427; border: 1px solid rgba(255,255,255,.1); }
.idi-elite-media--light { min-height: 360px; background: #000; border: 1px solid var(--elite-line); }
.idi-elite-media--light img { width: 100%; }
.idi-elite-media img { display: block; width: 88%; max-height: 430px; object-fit: contain; }
.idi-elite-media p { display: flex; justify-content: space-between; width: 100%; margin: 0; padding: 1rem 1.25rem; color: rgba(255,255,255,.52); border-top: 1px solid rgba(255,255,255,.1); font-size: .7rem; }
.idi-elite-media p span { color: var(--elite-tech-light); font-weight: 800; }

.idi-elite-capabilities { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.idi-elite-capability { min-width: 0; overflow: hidden; background: #fff; border: 1px solid #dedee2; box-shadow: 0 16px 40px -34px rgba(23,23,26,.35); }
.idi-elite-capability > img { display: block; width: 100%; aspect-ratio: 1.75 / 1; object-fit: cover; background: #fff; }
.idi-elite-capability__body { min-height: 190px; padding: 1.35rem 1.45rem 1.5rem; border-top: 1px solid #ececf0; }
.idi-elite-capability span { color: var(--elite-tech); font-size: .68rem; font-weight: 800; }
.idi-elite-capability h3 { margin: 1rem 0 .65rem !important; font-size: 1.05rem; }
.idi-elite-capability p { margin: 0; color: var(--elite-muted); font-size: .82rem; line-height: 1.65; }

.idi-elite-spec-line { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--elite-line); font-size: .82rem; }
.idi-elite-spec-line span { color: var(--elite-muted); }

.idi-elite-tips-media {
	margin-top: clamp(3rem, 6vw, 5rem);
	padding: clamp(1rem, 3vw, 2rem);
	background: #f8f8f9;
	border: 1px solid var(--elite-line);
}

.idi-elite-tips-media img {
	display: block;
	width: min(760px, 100%);
	height: auto;
	margin-inline: auto;
}

.idi-elite-versions { display: grid; grid-template-columns: 1fr 1fr .8fr; border: 1px solid rgba(255,255,255,.14); }
.idi-elite-versions > * { min-width: 0; padding: clamp(1.5rem, 3vw, 2.5rem); border-right: 1px solid rgba(255,255,255,.14); }
.idi-elite-versions > *:last-child { border-right: 0; }
.idi-elite-versions article > p { color: var(--elite-tech-light); font-size: .68rem; font-weight: 800; letter-spacing: .1em; }
.idi-elite-versions h3 { margin: 1rem 0 1.5rem !important; color: #fff; font-size: 1.6rem; }
.idi-elite-versions ul { min-height: 120px; margin: 0 0 2rem; padding-left: 1.1rem; color: rgba(255,255,255,.62); font-size: .82rem; line-height: 1.8; }
.idi-elite-versions a { color: #fff; font-size: .78rem; font-weight: 750; text-underline-offset: 4px; }
.idi-elite-version--featured { background: #202427; }
.idi-elite-version-media { display: flex; align-items: center; justify-content: center; background: #f5f5f7; }
.idi-elite-version-media img { display: block; width: 100%; height: auto; }

.idi-elite-documentation { background: #f0eaed; }
.idi-elite-documentation__inner { display: grid; grid-template-columns: 1fr minmax(320px, 480px); align-items: end; gap: 4rem; }
.idi-elite-documentation__inner > div > p:last-child { color: var(--elite-muted); }
.idi-elite-download { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; padding: 1.4rem; color: var(--elite-ink); background: #fff; border: 1px solid #ded3d8; text-decoration: none; }
.idi-elite-download > span { grid-row: 1 / 3; display: flex; align-items: center; justify-content: center; width: 52px; color: #fff; background: var(--elite-tech); font-size: .72rem; font-weight: 800; }
.idi-elite-download strong { align-self: end; font-size: .9rem; }
.idi-elite-download em { color: var(--elite-muted); font-size: .7rem; font-style: normal; }
.idi-elite-download--pending { opacity: .62; }

@media all and (max-width: 1024px) {
	.idi-elite-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(280px, 35vw); gap: 2rem; }
	.idi-elite-hero__stage img { height: 430px; }
	.idi-elite-hero__measure--weight { left: -1rem; }
	.idi-elite-split,
	.idi-elite-split--reverse { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
	.idi-elite-versions { grid-template-columns: 1fr 1fr; }
	.idi-elite-version-media { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.14); }
	.idi-elite-version-media img { width: min(360px, 80%); }
}

@media all and (max-width: 767px) {
	.idi-elite-hero { background: linear-gradient(155deg, #0f0d0f 0%, #1d0e18 62%, #200a14 100%); }
	.idi-elite-hero__inner { grid-template-columns: 1fr; padding: 3.5rem 0; }
	.idi-elite-breadcrumb { margin-bottom: 1.5rem; }
	.idi-elite-hero__title { font-size: clamp(1.9rem, 7.5vw, 2.5rem); }
	.idi-elite-hero__stage { grid-row: 1; min-height: 350px; }
	.idi-elite-hero__stage img { height: 330px; }
	.idi-elite-hero__edition { top: 1rem; }
	.idi-elite-hero__measure--weight { left: 0; bottom: 10%; }
	.idi-elite-hero__measure--size { right: 0; top: 18%; }
	.idi-elite-hero__actions { flex-direction: column; }
	.idi-elite-btn { width: 100%; }
	.idi-elite-nav a { padding-inline: .85rem; }
	.idi-elite-metrics { grid-template-columns: 1fr 1fr; }
	.idi-elite-metrics > div:nth-child(2) { border-right: 0; }
	.idi-elite-metrics > div:nth-child(-n+2) { border-bottom: 1px solid var(--elite-line); }
	.idi-elite-split,
	.idi-elite-split--reverse { grid-template-columns: 1fr; }
	.idi-elite-split--reverse .idi-elite-media { grid-row: 2; }
	.idi-elite-media { min-height: 330px; }
	.idi-elite-media img { max-height: 300px; }
	.idi-elite-checks { grid-template-columns: 1fr; }
	.idi-elite-capabilities { grid-template-columns: 1fr; }
	.idi-elite-capability__body { min-height: auto; }
	.idi-elite-versions { grid-template-columns: 1fr; }
	.idi-elite-versions > * { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
	.idi-elite-versions ul { min-height: auto; }
	.idi-elite-version-media { grid-column: auto; }
	.idi-elite-documentation__inner { grid-template-columns: 1fr; gap: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
	.idi-elite *, .idi-product-card--elite * { transition: none !important; }
}

/* --- Elite IDI composée en blocs : adaptation aux enveloppes des blocs (figure, bouton, paragraphes) --- */
.idi-elite-hero.alignfull,
.idi-elite-section.alignfull {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

.idi-elite figure.wp-block-image,
.page-template-template-fiche-elite-php figure.wp-block-image {
	margin: 0;
}

p.idi-elite-breadcrumb { display: block; word-spacing: .2em; }
p.idi-elite-breadcrumb a { color: rgba(255,255,255,.52); text-decoration: none; }
.idi-elite-hero__copy > * { margin-top: 0; }
.idi-elite-hero__title strong { color: var(--elite-tech); font-weight: inherit; }

.idi-elite-hero__actions.wp-block-buttons { gap: .75rem; }
.wp-block-button.idi-elite-btn { display: inline-flex; min-height: 0; padding: 0; border: 0; background: none; }
.wp-block-button.idi-elite-btn > .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 0 1.4rem;
	border: 1px solid var(--elite-tech);
	border-radius: 3px;
	background: var(--elite-tech);
	color: #fff;
	font-size: .84rem;
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: none;
	transition: transform .2s ease, background .2s ease, color .2s ease;
}
.wp-block-button.idi-elite-btn > .wp-block-button__link:hover { transform: translateY(-2px); color: #fff; }
.wp-block-button.idi-elite-btn--ghost > .wp-block-button__link { color: rgba(255,255,255,.82); background: transparent; border-color: rgba(255,255,255,.32); }
.wp-block-button.idi-elite-btn--ghost > .wp-block-button__link:hover { color: #fff; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.65); }
.idi-elite-hero__proofs { margin-left: 0; }

.idi-elite-hero__stage > figure { position: relative; z-index: 1; }
/* Plus spécifique que .wp-block-image img{height:auto}, chargé après ce fichier pour les visiteurs. */
.idi-elite-hero__stage > figure.wp-block-image img { width: auto; max-width: 100%; height: 520px; object-fit: contain; }
@media all and (max-width: 1024px) { .idi-elite-hero__stage > figure.wp-block-image img { height: 430px; } }
@media all and (max-width: 767px) { .idi-elite-hero__stage > figure.wp-block-image img { height: 330px; } }
p.idi-elite-hero__edition { margin: 0; }
p.idi-elite-hero__measure {
	display: block;
	margin: 0;
	color: var(--elite-muted);
	font-size: .64rem;
	letter-spacing: .07em;
	text-transform: uppercase;
}
p.idi-elite-hero__measure strong {
	display: block;
	margin-bottom: .25rem;
	color: var(--elite-ink);
	font-size: 1.15rem;
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;
}

.idi-elite-heading > * { margin-top: 0; }
.idi-elite-metrics > div > p { margin: 0; }
.idi-elite-metric__value { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 700; line-height: 1; }
.idi-elite-metric__value sub { color: var(--elite-tech); font-size: .38em; vertical-align: baseline; }
.idi-elite-metric__label { color: var(--elite-muted); font-size: .75rem; font-weight: 700; }

.idi-elite-copy > * { margin-top: 0; }
.idi-elite-checks { margin-left: 0; }
.idi-elite-media > figure { display: flex; justify-content: center; width: 100%; }
.idi-elite-media--light > figure img { width: 100%; }
.idi-elite-media p strong { color: var(--elite-tech-light); font-weight: 800; }

.idi-elite-capability > figure img { display: block; width: 100%; aspect-ratio: 1.75 / 1; object-fit: cover; background: #fff; }
.idi-elite-capability p.idi-elite-capability__num { color: var(--elite-tech); font-size: .68rem; font-weight: 800; }

p.idi-elite-spec-line { margin: 0; color: var(--elite-muted); }
p.idi-elite-spec-line strong { color: var(--elite-ink); }
.idi-elite-tips-media > figure img { display: block; width: min(760px, 100%); height: auto; margin-inline: auto; }

.idi-elite-versions > article > * { margin-top: 0; }
.idi-elite-versions article > p.idi-elite-version__link { margin: 0; letter-spacing: 0; }
.idi-elite-version-media > figure { width: 100%; }

.idi-elite-documentation__inner > div > * { margin-top: 0; }
.wp-block-button.idi-elite-download { display: block; width: 100%; padding: 0; border: 0; background: none; }
.wp-block-button.idi-elite-download > .wp-block-button__link {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: .25rem 1rem;
	width: 100%;
	padding: 1.4rem;
	border: 1px solid #ded3d8;
	border-radius: 0;
	background: #fff;
	color: var(--elite-ink);
	text-align: left;
	text-decoration: none;
	box-shadow: none;
}
.wp-block-button.idi-elite-download > .wp-block-button__link::before {
	content: "PDF";
	grid-row: 1 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: var(--elite-tech);
	font-size: .72rem;
	font-weight: 800;
}
.wp-block-button.idi-elite-download strong { grid-column: 2; align-self: end; font-size: .9rem; }
.wp-block-button.idi-elite-download em { grid-column: 2; color: var(--elite-muted); font-size: .7rem; font-style: normal; font-weight: 400; }

/* Gabarit Elite : compléments utilisés par la fiche Aoralscan ELF */
.idi-elite-copy h3 { margin: 2rem 0 .6rem !important; color: #fff; font-size: 1.1rem; }
.idi-elite-copy > h3:first-child { margin-top: 0 !important; }
.idi-elite-copy--light h3 { color: var(--elite-ink); }
.idi-elite-split + .idi-elite-split { margin-top: clamp(4rem, 8vw, 7rem); }
.idi-elite-media--screen { min-height: 360px; padding: clamp(1rem, 3vw, 2rem); background: var(--elite-mist); border: 1px solid var(--elite-line); }
.idi-elite-media--screen > figure img { width: 100%; }
.idi-elite-media--photo { min-height: 0; border-radius: 16px; box-shadow: 0 24px 60px -30px rgba(21,23,25,.45); }
.idi-elite-media--photo > figure.wp-block-image img { width: 100%; height: auto; max-height: none; object-fit: cover; }

.idi-elite-heading > p:not(.idi-elite-eyebrow) { margin: 0 0 1rem; color: var(--elite-muted); line-height: 1.7; }
.idi-elite-heading > h3 { margin: 0 0 1rem !important; font-size: 1.15rem; }
.idi-elite-heading--dark > h3 { color: #fff; }
.idi-elite-heading--dark > p:not(.idi-elite-eyebrow) { color: rgba(255,255,255,.68); }
.idi-elite-heading > p.idi-elite-heading__lead { color: var(--elite-ink); font-weight: 700; }
.idi-elite-heading--dark > p.idi-elite-heading__lead { color: #fff; }

.idi-elite-benefits { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid rgba(255,255,255,.14); }
.idi-elite-benefits > div { min-width: 0; padding: clamp(1.5rem, 3vw, 2.5rem); border-right: 1px solid rgba(255,255,255,.14); }
.idi-elite-benefits > div:last-child { border-right: 0; }
.idi-elite-benefits h3 { margin: 0 0 .75rem !important; color: #fff; font-size: 1.2rem; }
.idi-elite-benefits p { margin: 0; color: rgba(255,255,255,.62); font-size: .88rem; line-height: 1.7; }
.idi-elite-benefits--4 { grid-template-columns: repeat(2, 1fr); }
.idi-elite-benefits--4 > div:nth-child(2n) { border-right: 0; }
.idi-elite-benefits--4 > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.14); }
@media all and (min-width: 1025px) {
	.idi-elite-benefits--4 { grid-template-columns: repeat(4, 1fr); }
	.idi-elite-benefits--4 > div:nth-child(2n) { border-right: 1px solid rgba(255,255,255,.14); }
	.idi-elite-benefits--4 > div:last-child { border-right: 0; }
	.idi-elite-benefits--4 > div:nth-child(-n+2) { border-bottom: 0; }
}
@media all and (max-width: 767px) {
	.idi-elite-benefits--4 { grid-template-columns: 1fr; }
	.idi-elite-benefits--4 > div:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,.14); }
}

.idi-elite-handpiece { margin: 0 auto clamp(2.5rem, 5vw, 4rem); }
.idi-elite-handpiece > figure.wp-block-image { margin: 0; }
.idi-elite-handpiece > figure.wp-block-image img { display: block; width: min(960px, 100%); height: auto; margin-inline: auto; }

.idi-elite-specs > p.idi-elite-specs__note { margin: 1.25rem 0 0; color: var(--elite-muted); font-size: .8rem; text-align: center; }

/* Fiche Laser TRIPLO : grilles de texte en panneau dégradé rose, comme la bande de chiffres de la page Société */
#triplo-reglages .idi-elite-benefits,
#triplo-piece-a-main .idi-elite-benefits {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(130% 240% at 86% 0%, rgba(214, 43, 111, 0.4) 0%, rgba(214, 43, 111, 0.12) 42%, rgba(214, 43, 111, 0) 72%),
		linear-gradient(135deg, #2b2330 0%, #1f1c22 64%);
	border: 1px solid rgba(214, 43, 111, 0.22);
	border-radius: 6px;
	box-shadow: 0 32px 80px -42px rgba(15, 14, 16, 0.9);
}

#triplo-reglages .idi-elite-benefits::before,
#triplo-piece-a-main .idi-elite-benefits::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 2px;
	background: linear-gradient(90deg, #d62b6f 0%, #d62b6f 38%, rgba(214, 43, 111, 0.5) 68%, rgba(214, 43, 111, 0) 96%);
}

#triplo-reglages .idi-elite-benefits > div,
#triplo-piece-a-main .idi-elite-benefits > div {
	border-color: rgba(255, 255, 255, 0.16);
}

#triplo-reglages .idi-elite-benefits p,
#triplo-piece-a-main .idi-elite-benefits p {
	color: rgba(255, 255, 255, 0.68);
}

.idi-elite-tips-copy { max-width: 760px; margin: 0 auto 2rem; }
.idi-elite-tips-copy > * { margin-top: 0; }
.idi-elite-tips-copy h3 { margin-bottom: .6rem !important; font-size: 1.1rem; }
.idi-elite-tips-copy p,
.idi-elite-tips-copy li { color: var(--elite-muted); font-size: .92rem; line-height: 1.7; }
.idi-elite-tips-copy ul { margin: 1rem 0 0; padding-left: 1.1rem; }
.idi-elite-tips-copy strong { color: var(--elite-ink); }

.idi-elite-capability > .idi-elite-capability__body:first-child { border-top: 0; }

.idi-elite-specs { max-width: 860px; margin-inline: auto; }
.idi-elite-specs > * { margin-top: 0; }
.idi-elite-specs > h3 { margin: 0 0 1.5rem !important; font-size: 1.3rem; text-align: center; }
.idi-elite-specs > figure.wp-block-image { margin: 0 0 2rem; }
.idi-elite-specs > figure.wp-block-image img { display: block; width: 100%; height: auto; }
figure.wp-block-table.idi-elite-table { margin: 0; }
.idi-elite-table table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.idi-elite-table.wp-block-table thead { border-bottom: 0; }
.idi-elite-table.wp-block-table th,
.idi-elite-table.wp-block-table td { padding: 1rem 1.25rem; border: 0; border-bottom: 1px solid var(--elite-line); text-align: left; }
.idi-elite-table.wp-block-table thead th { background: var(--elite-ink); color: #fff; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.idi-elite-table td:first-child { width: 40%; color: var(--elite-muted); font-weight: 600; }

@media all and (max-width: 767px) {
	.idi-elite-benefits { grid-template-columns: 1fr; }
	.idi-elite-benefits > div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
	.idi-elite-benefits > div:last-child { border-bottom: 0; }
	.idi-elite-table.wp-block-table th,
	.idi-elite-table.wp-block-table td { padding: .75rem .8rem; }
	.idi-elite-table td:first-child { width: auto; }
}

/* ==========================================================================
   FICHE PRODUIT — template-fiche-idcam.php
   ========================================================================== */

/* --- Reset page --- */
.idi-fp .content-area,
.idi-fp .entry-content-wrap {
	padding: 0;
}

/* --- Tokens --- */
.idi-fp,
body.idi-fiche-blocs {
	--fp-ink: #17171a;
	--fp-muted: #6e6e73;
	--fp-line: #e5e5ea;
	--fp-accent: #c91f63;
	--fp-bg-light: #f5f5f7;
	--fp-bg-dark: #17171a;
	--fp-bg-white: #ffffff;
	--fp-radius: 12px;
	--fp-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---- HERO ---- */
.idi-fp-hero {
	position: relative;
	background: linear-gradient(135deg, #0f0d0f 0%, #1d0e18 55%, #200a14 100%);
	overflow: hidden;
	padding: 0;
}

.idi-fp-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 50% 100% at 75% 50%, rgba(201,31,99,.25) 0%, transparent 65%);
	pointer-events: none;
	z-index: 0;
}

.idi-fp-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
	align-items: center;
	gap: clamp(2rem, 5vw, 5rem);
	width: min(1280px, calc(100% - clamp(2rem, 8vw, 8rem)));
	min-height: clamp(600px, 85vh, 820px);
	margin-inline: auto;
	padding: clamp(5rem, 10vh, 8rem) 0 clamp(4rem, 8vh, 6rem);
}

/* Breadcrumb */
.idi-fp-breadcrumb {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
	font-size: 0.78rem;
	color: rgba(255,255,255,.45);
}

.idi-fp-breadcrumb a {
	color: rgba(255,255,255,.45);
	text-decoration: none;
	transition: color .2s;
}

.idi-fp-breadcrumb a:hover {
	color: rgba(255,255,255,.8);
}

.idi-fp-hero__eyebrow {
	display: block;
	margin: 0 0 0.85rem;
	color: #f06a9e;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.idi-fp-hero__title {
	margin: 0 0 0.3rem !important;
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: clamp(2.1rem, 3vw, 2.85rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	word-break: normal;
	overflow-wrap: normal;
}

.idi-fp-hero__tagline {
	margin: 0 0 1.35rem;
	color: rgba(255,255,255,.5);
	font-size: clamp(0.95rem, 1.2vw, 1.1rem);
	font-style: italic;
	font-weight: 400;
}

.idi-fp-hero__lead {
	margin: 0 0 2rem;
	color: rgba(255,255,255,.75);
	font-size: clamp(1rem, 1.25vw, 1.2rem);
	line-height: 1.72;
	max-width: 56ch;
}

.idi-fp-hero__lead strong {
	color: #ffffff;
	font-weight: 700;
}

/* Chips */
.idi-fp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0 0 2.25rem;
	padding: 0;
}

.idi-fp-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.38rem 0.85rem;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 20px;
	color: rgba(255,255,255,.8);
	font-size: 0.78rem;
	font-weight: 600;
	backdrop-filter: blur(4px);
}

/* Boutons */
.idi-fp-hero__actions {
	display: flex;
	gap: 0.85rem;
	flex-wrap: wrap;
	margin-bottom: 1.75rem;
}

.idi-fp-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0 1.35rem;
	border-radius: 4px;
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
	transition: transform .25s var(--fp-ease), box-shadow .25s ease, background .2s ease, border-color .2s ease;
}

.idi-fp-btn--primary {
	background: #c91f63;
	color: #ffffff;
	border: 1px solid transparent;
}

.idi-fp-btn--primary:hover {
	background: #a81851;
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -12px rgba(201,31,99,.9);
}

.idi-fp-btn--outline {
	background: transparent;
	color: rgba(255,255,255,.82);
	border: 1px solid rgba(255,255,255,.3);
}

.idi-fp-btn--outline:hover {
	border-color: rgba(255,255,255,.7);
	color: #ffffff;
}

/* Badges réglementaires */
.idi-fp-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.idi-fp-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.3rem 0.75rem;
	border-radius: 3px;
	background: rgba(255,255,255,.08);
	color: rgba(255,255,255,.6);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.idi-fp-flag-fr {
	display: inline-block;
	width: 16px;
	height: 11px;
	background: linear-gradient(90deg, #173f8a 0 33.333%, #fff 33.333% 66.666%, #e52b42 66.666%);
	box-shadow: 0 0 0 1px rgba(255,255,255,.16);
}

/* Visuel hero */
.idi-fp-hero__visual {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.idi-fp-hero__visual-wrap {
	position: relative;
	width: min(100%, 390px);
	padding: 1rem 1rem 0.85rem;
	background: #f8f8f6;
	border: 1px solid rgba(255,255,255,.22);
	box-shadow: 0 40px 90px rgba(0,0,0,.5), 0 0 0 8px rgba(255,255,255,.025);
}

.idi-fp-hero__visual-label,
.idi-fp-hero__visual-caption {
	margin: 0;
	color: #737378;
	font-size: 0.6rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.idi-fp-hero__visual-label {
	padding: 0.15rem 0.2rem 0.75rem;
}

.idi-fp-hero__visual-caption {
	padding: 0.75rem 0.2rem 0.1rem;
	border-top: 1px solid #dedee2;
	letter-spacing: 0.05em;
}

.idi-fp-hero__img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
	position: relative;
	z-index: 1;
}

/* ---- NAV STICKY ---- */
.idi-fp-nav {
	position: sticky;
	top: 0;
	z-index: 150;
	background: rgba(255,255,255,.92);
	backdrop-filter: blur(16px) saturate(140%);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	border-bottom: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

.idi-fp-nav__inner {
	display: flex;
	gap: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	width: min(1280px, calc(100% - clamp(2rem, 8vw, 8rem)));
	margin-inline: auto;
}

.idi-fp-nav__inner::-webkit-scrollbar { display: none; }

.idi-fp-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	padding: 0 1.15rem;
	color: #6e6e73;
	font-size: 0.82rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color .2s ease, border-color .2s ease;
}

.idi-fp-nav__link:hover {
	color: #17171a;
}

.idi-fp-nav__link.is-active {
	color: #c91f63;
	border-bottom-color: #c91f63;
}

/* ---- SECTIONS ---- */
.idi-fp-section {
	padding: clamp(4.5rem, 8vw, 7rem) 0;
}

.idi-fp-section--light { background: #f5f5f7; }
.idi-fp-section--white { background: #ffffff; }
.idi-fp-section--dark  { background: #17171a; }

.idi-fp-container {
	width: min(1240px, calc(100% - clamp(2rem, 8vw, 8rem)));
	margin-inline: auto;
}

.idi-fp-section__header {
	text-align: center;
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}

.idi-fp-section__eyebrow {
	display: block;
	margin: 0 0 0.75rem;
	color: #c91f63;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.idi-fp-section__title {
	margin: 0 !important;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.65rem, 2.8vw, 2.5rem);
	font-weight: 700;
	color: #17171a;
	line-height: 1.12;
}

.idi-fp-section__eyebrow--dark { color: #f06a9e; }
.idi-fp-section__title--dark { color: #ffffff; }

.idi-fp-media-fallback {
	display: none;
	margin: 0;
	padding: 2rem;
	min-height: 180px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--fp-line);
	color: var(--fp-muted);
	font-size: 0.85rem;
	text-align: center;
}

.idi-fp-media-fallback--dark {
	border-color: rgba(255,255,255,.12);
	color: rgba(255,255,255,.55);
}

.has-media-error > .idi-fp-media-fallback { display: flex; }

/* ---- OVERVIEW GRID ---- */
.idi-fp-overview-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: 1.5rem;
}

.idi-fp-feature {
	background: #ffffff;
	border-radius: var(--fp-radius);
	padding: 2rem 1.75rem;
	box-shadow: 0 2px 12px rgba(0,0,0,.05);
	transition: transform .35s var(--fp-ease), box-shadow .35s var(--fp-ease);
}

.idi-fp-feature:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px -12px rgba(0,0,0,.14);
}

.idi-fp-feature__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(201,31,99,.08);
	margin-bottom: 1.1rem;
}

.idi-fp-feature__title {
	margin: 0 0 0.65rem !important;
	font-size: 1rem;
	font-weight: 700;
	color: #17171a;
}

.idi-fp-feature__text {
	margin: 0;
	color: #6e6e73;
	font-size: 0.88rem;
	line-height: 1.65;
}

/* ---- ANATOMIE ---- */
.idi-fp-anatomy {
	display: grid;
	grid-template-columns: 1fr minmax(200px, 340px) 1fr;
	align-items: center;
	gap: clamp(2rem, 4vw, 4rem);
}

.idi-fp-anatomy__visual {
	grid-column: 2;
}

.idi-fp-anatomy__visual img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 480px;
	object-fit: contain;
	filter: drop-shadow(0 20px 48px rgba(0,0,0,.5));
}

.idi-fp-anatomy__labels {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.idi-fp-anatomy__labels--left {
	grid-column: 1;
	align-items: flex-end;
}

.idi-fp-anatomy__labels--right {
	grid-column: 3;
	align-items: flex-start;
}

/* Label */
.idi-fp-label {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.idi-fp-label__dot {
	flex: none;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #c91f63;
	box-shadow: 0 0 0 3px rgba(201,31,99,.25);
}

.idi-fp-label__line {
	flex: none;
	width: 32px;
	height: 1px;
	background: rgba(255,255,255,.25);
}

.idi-fp-label__body {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.idi-fp-label--right .idi-fp-label__body { text-align: right; }
.idi-fp-label--left  .idi-fp-label__body { text-align: left; }

.idi-fp-label__body strong {
	color: #ffffff;
	font-size: 0.88rem;
	font-weight: 700;
}

.idi-fp-label__body span {
	color: rgba(255,255,255,.5);
	font-size: 0.76rem;
	line-height: 1.4;
}

.idi-fp-label__apex-text {
	color: #c91f63 !important;
	font-size: 0.95rem !important;
	letter-spacing: 0.04em;
}

/* Anatomie annotée : légendes noires intégrées à l'image, donc plaque claire sur la section sombre. */
.idi-fp-anatomy.idi-fp-anatomy--annotated {
	grid-template-columns: minmax(0, 400px) minmax(0, 420px);
	justify-content: center;
	gap: clamp(2.5rem, 6vw, 5.5rem);
}

.idi-fp-anatomy__figure {
	margin: 0;
	padding: clamp(1rem, 2.5vw, 1.75rem);
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 40px 90px rgba(0, 0, 0, .45), 0 0 0 8px rgba(255, 255, 255, .03);
}

.idi-fp-anatomy__figure img {
	display: block;
	width: 100%;
	height: auto;
}

.idi-fp-anatomy__zones {
	display: grid;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	counter-reset: idi-zone;
}

.idi-fp-anatomy__zones li {
	position: relative;
	margin: 0 !important;
	padding: 1.25rem 0 1.25rem 3.25rem;
	border-top: 1px solid rgba(255, 255, 255, .1);
	color: rgba(255, 255, 255, .55);
	font-size: 0.85rem;
	line-height: 1.5;
	counter-increment: idi-zone;
}

.idi-fp-anatomy__zones li:last-child {
	border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.idi-fp-anatomy__zones li::before {
	content: counter(idi-zone, decimal-leading-zero);
	position: absolute;
	top: 1.3rem;
	left: 0;
	color: #e63478;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.2em;
}

.idi-fp-anatomy__zones strong {
	display: block;
	margin-bottom: 0.3rem;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 700;
}

.idi-fp-anatomy__zones span {
	color: rgba(255, 255, 255, .55);
	font-size: 0.85rem;
	line-height: 1.5;
}

.idi-fp-anatomy__zone--apex strong,
.idi-fp-anatomy__zones li:last-child strong {
	color: #e63478;
}

@media (max-width: 1024px) {
	.idi-fp-anatomy.idi-fp-anatomy--annotated {
		grid-template-columns: minmax(0, 360px);
	}
}

/* ---- SPECS TABLE ---- */
.idi-fp-specs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(440px, 100%), 1fr));
	gap: 1.5rem;
}

.idi-fp-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.88rem;
	border-radius: var(--fp-radius);
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,.05);
}

.idi-fp-table thead th {
	background: #17171a;
	color: #ffffff;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 1rem 1.25rem;
	text-align: left;
}

.idi-fp-table tbody tr {
	border-bottom: 1px solid #f0f0f2;
}

.idi-fp-table tbody tr:last-child {
	border-bottom: none;
}

.idi-fp-table td {
	padding: 0.85rem 1.25rem;
	vertical-align: top;
	line-height: 1.5;
}

.idi-fp-table td:first-child {
	color: #6e6e73;
	font-weight: 600;
	width: 44%;
}

.idi-fp-table td:last-child {
	color: #17171a;
	font-weight: 500;
}

.idi-fp-table tbody tr:nth-child(even) {
	background: #f9f9fb;
}

/* Tableau dimensions */
.idi-fp-table--dims { box-shadow: none; border-radius: 0; }
.idi-fp-table--dims thead th { background: #1d1d1f; }
.idi-fp-table--dims td:first-child { width: auto; }

/* ---- DIMENSIONS ---- */
#idi-fp-dimensions > .idi-fp-container {
	container-type: inline-size;
}

.idi-fp-dimensions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: 2rem;
	min-width: 0;
}

.idi-fp-dimensions > * { min-width: 0; }

.idi-fp-dimensions__table-wrap {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.idi-fp-dimensions__drawings {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2.5rem;
	background: #ffffff;
	border-radius: var(--fp-radius);
	box-shadow: 0 2px 16px rgba(0,0,0,.07);
}

.idi-fp-dimensions__drawings img {
	display: block;
	max-width: 360px;
	width: 100%;
	height: auto;
	filter: contrast(1.05);
}

.idi-fp-dimensions__note {
	margin-top: 1.25rem;
	padding: 0.85rem 1.1rem;
	border-left: 3px solid #c91f63;
	background: rgba(201,31,99,.05);
	border-radius: 0 4px 4px 0;
	color: #6e6e73;
	font-size: 0.82rem;
	line-height: 1.6;
}

.idi-fp-dim-row td { padding: 1rem 1.25rem; }

.idi-fp-note {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.15rem 0.5rem;
	border-radius: 3px;
	background: rgba(201,31,99,.1);
	color: #c91f63;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* ---- CONSIDÉRATIONS ---- */
.idi-fp-considerations {
	max-width: 820px;
	margin-inline: auto;
}

.idi-fp-considerations__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.idi-fp-consideration {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	background: #f5f5f7;
	border-radius: var(--fp-radius);
	border-left: 3px solid #c91f63;
}

.idi-fp-consideration__icon {
	flex: none;
	margin-top: 2px;
}

.idi-fp-consideration p {
	margin: 0;
	color: #17171a;
	font-size: 0.92rem;
	line-height: 1.65;
}

.idi-fp-consideration p strong {
	font-weight: 700;
}

/* ---- CTA / TÉLÉCHARGEMENTS ---- */
.idi-fp-section--cta {
	padding: clamp(5rem, 9vw, 8rem) 0;
}

.idi-fp-cta-grid {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: clamp(3rem, 6vw, 6rem);
	align-items: start;
}

.idi-fp-downloads {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 0;
}

.idi-fp-download-btn {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: var(--fp-radius);
	text-decoration: none;
	color: #ffffff;
	transition: background .2s ease, border-color .2s ease;
}

.idi-fp-download-btn:hover {
	background: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.25);
}

.idi-fp-download-btn > span {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.idi-fp-download-btn strong {
	font-size: 0.88rem;
	font-weight: 700;
	color: #ffffff;
}

.idi-fp-download-btn em {
	font-size: 0.75rem;
	font-style: normal;
	color: rgba(255,255,255,.45);
}

.idi-fp-cta__title {
	margin: 0.35rem 0 1.25rem !important;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.5rem, 2.5vw, 2.2rem);
	font-weight: 700;
	line-height: 1.12;
}

.idi-fp-cta__intro {
	margin: 0 0 1.75rem;
	color: rgba(255,255,255,.6);
	font-size: .9rem;
	line-height: 1.65;
}

/* Card contact */
.idi-fp-cta-contact__card {
	background: #ffffff;
	border-radius: 16px;
	padding: 2rem 2rem 2.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.idi-fp-cta-contact__label {
	margin: 0;
	color: #c91f63;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.idi-fp-cta-contact__title {
	margin: 0 !important;
	font-family: var(--global-heading-font-family);
	font-size: 1.45rem;
	font-weight: 700;
	color: #17171a;
	line-height: 1.2;
}

.idi-fp-cta-contact__text {
	margin: 0;
	color: #6e6e73;
	font-size: 0.88rem;
	line-height: 1.6;
}

.idi-fp-cta-contact__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: #17171a;
	font-size: 1.05rem;
	font-weight: 700;
	text-decoration: none;
	transition: color .2s;
}

.idi-fp-cta-contact__phone:hover {
	color: #c91f63;
}

.idi-fp-cta-contact__shop {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	align-self: center;
	margin-top: 0.25rem;
	color: #6e6e73;
	font-size: 0.82rem;
	font-weight: 600;
	text-decoration: none;
	transition: color .2s;
}

.idi-fp-cta-contact__shop:hover {
	color: #17171a;
}

/* ---- RESPONSIVE ---- */

@media all and (max-width: 1024px) {
	.idi-fp-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(230px, 32vw);
		gap: 2rem;
	}

	.idi-fp-hero__visual {
		display: flex;
	}

	.idi-fp-anatomy {
		grid-template-columns: 1fr;
	}

	.idi-fp-anatomy__visual {
		grid-column: 1;
		max-width: 300px;
		margin-inline: auto;
	}

	.idi-fp-anatomy__labels {
		grid-column: 1;
		align-items: flex-start;
	}

	.idi-fp-anatomy__labels--left,
	.idi-fp-anatomy__labels--right {
		grid-column: 1;
	}

	.idi-fp-label--right {
		flex-direction: row-reverse;
	}

	.idi-fp-label__body { text-align: left !important; }

	.idi-fp-cta-grid {
		grid-template-columns: 1fr;
	}

	.idi-fp-dimensions {
		grid-template-columns: 1fr;
	}
}

@media all and (max-width: 767px) {
	.idi-fp-hero__inner {
		grid-template-columns: 1fr;
		min-height: auto;
		padding-top: 4rem;
		padding-bottom: 3rem;
	}

	.idi-fp-hero__visual {
		grid-row: 1;
		margin: 0 auto 0.5rem;
		width: min(52vw, 200px);
	}

	.idi-fp-hero__visual-wrap {
		padding: 0.7rem 0.7rem 0.6rem;
	}

	.idi-fp-overview-grid {
		grid-template-columns: 1fr;
	}

	.idi-fp-specs-grid {
		grid-template-columns: 1fr;
	}

	.idi-fp-table--dims {
		font-size: 0.8rem;
		min-width: 620px;
	}

	.idi-fp-table--dims td,
	.idi-fp-table--dims th {
		padding: 0.7rem 0.85rem;
	}

	.idi-fp-nav__link {
		padding: 0 0.85rem;
		font-size: 0.76rem;
	}
}

/* ---- PRÉSENTATION ---- */
.idi-fp-presentation-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2.5rem, 5vw, 5rem);
	align-items: stretch;
}

.idi-fp-presentation-text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1rem;
	background: #ffffff;
	border-radius: var(--fp-radius, 12px);
	padding: 2.5rem;
	box-shadow: 0 2px 16px rgba(0,0,0,.06);
}

.idi-fp-presentation-text p {
	margin: 0;
	color: #3a3a3e;
	font-size: 1.05rem;
	line-height: 1.8;
}

.idi-fp-characteristics {
	background: #ffffff;
	border-radius: var(--fp-radius, 12px);
	padding: 2.5rem;
	box-shadow: 0 2px 16px rgba(0,0,0,.06);
}

.idi-fp-characteristics__title {
	margin: 0 0 1.5rem !important;
	font-family: var(--global-heading-font-family);
	font-size: 1.05rem;
	font-weight: 700;
	color: #c91f63;
}

.idi-fp-characteristics__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1.5rem;
}

.idi-fp-characteristics__list li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	color: #17171a;
	font-size: 0.92rem;
	font-weight: 500;
	padding: 0.5rem 0;
	border-bottom: 1px solid #f0f0f2;
}

.idi-fp-characteristics__list li:nth-last-child(-n+2) {
	border-bottom: none;
}

.idi-fp-characteristics__list li::before {
	content: "";
	display: block;
	flex: none;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #c91f63;
}

@media all and (max-width: 900px) {
	.idi-fp-presentation-layout {
		grid-template-columns: 1fr;
	}

	.idi-fp-characteristics__list {
		grid-template-columns: 1fr;
	}

	.idi-fp-characteristics__list li:nth-last-child(2) {
		border-bottom: 1px solid #f0f0f2;
	}
}

/* ---- CÔNE MORSE ---- */
.idi-fp-cone-layout {
	display: grid;
	grid-template-columns: minmax(300px, 420px) 1fr;
	gap: clamp(3rem, 6vw, 6rem);
	align-items: center;
}

.idi-fp-cone-visual {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.idi-fp-cone-visual > img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--fp-radius, 12px);
	box-shadow: 0 8px 32px rgba(0,0,0,.12);
}

.idi-fp-cone-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 3rem 2rem;
	background: #f5f5f7;
	border-radius: var(--fp-radius, 12px);
	border: 2px dashed #d0d0d5;
}

.idi-fp-cone-placeholder__note {
	margin: 0;
	color: #9999a5;
	font-size: 0.76rem;
	text-align: center;
}

.idi-fp-cone-placeholder__note code {
	font-family: monospace;
	color: #c91f63;
}

.idi-fp-cone-schema svg {
	width: 180px;
	height: 180px;
}

.idi-fp-cone-annotations {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

@media all and (min-width: 901px) {
	.idi-fp-cone-annotations {
		display: none;
	}
}

.idi-fp-cone-annotation {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 0.85rem 1.1rem;
	border-left: 3px solid #c91f63;
	background: #f9f9fb;
	border-radius: 0 6px 6px 0;
}

.idi-fp-cone-annotation__label {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: #c91f63;
	text-transform: uppercase;
}

.idi-fp-cone-annotation__desc {
	font-size: 0.85rem;
	color: #6e6e73;
	line-height: 1.5;
}

/* Contenu textuel */
.idi-fp-cone-content {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.idi-fp-cone-intro {
	margin: 0;
	color: #6e6e73;
	font-size: 0.92rem;
	font-style: italic;
	line-height: 1.65;
	padding-bottom: 2rem;
	border-bottom: 1px solid #e5e5ea;
}

.idi-fp-cone-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
}

.idi-fp-cone-col__title {
	margin: 0 0 1rem !important;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #c91f63;
}

.idi-fp-cone-col__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.idi-fp-cone-col__list li {
	color: #3a3a3e;
	font-size: 0.9rem;
	line-height: 1.6;
	padding-left: 1.1rem;
	position: relative;
}

.idi-fp-cone-col__list li::before {
	content: "–";
	position: absolute;
	left: 0;
	color: #c91f63;
	font-weight: 700;
}

.idi-fp-cone-col__list em {
	color: #9999a5;
	font-style: italic;
	font-size: 0.82rem;
}

.idi-fp-cone-note {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.25rem;
	background: rgba(201,31,99,.06);
	border: 1px solid rgba(201,31,99,.18);
	border-radius: 6px;
	font-size: 0.88rem;
	color: #3a3a3e;
}

@media all and (max-width: 1024px) {
	.idi-fp-cone-layout {
		grid-template-columns: 1fr;
	}

	.idi-fp-cone-columns {
		grid-template-columns: 1fr 1fr;
	}
}

@media all and (max-width: 600px) {
	.idi-fp-cone-columns {
		grid-template-columns: 1fr;
	}
}

/* ---- SYSTÈME PROTHÉTIQUE ---- */
.idi-fp-prothetic-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(3rem, 6vw, 6rem);
	align-items: start;
}

.idi-fp-prothetic-subtitle {
	font-size: 0.6em;
	font-weight: 500;
	opacity: .75;
	display: block;
	margin-top: 0.35rem;
}

.idi-fp-prothetic-badge {
	display: inline-block;
	padding: 0.3rem 0.85rem;
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 3px;
	color: rgba(255,255,255,.6);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 0.85rem;
}

.idi-fp-prothetic-lead {
	margin: 0 0 1.75rem !important;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	font-weight: 700;
	color: #ffffff;
	line-height: 1.2;
}

.idi-fp-prothetic-intro {
	margin: 0 0 1.1rem;
	color: rgba(255,255,255,.65);
	font-size: 0.9rem;
	font-style: italic;
}

.idi-fp-prothetic-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.idi-fp-prothetic-list li {
	color: rgba(255,255,255,.75);
	font-size: 0.9rem;
	line-height: 1.7;
	padding-left: 1rem;
	border-left: 2px solid rgba(201,31,99,.5);
}

.idi-fp-prothetic-list strong {
	color: #ffffff;
	font-weight: 700;
}

/* Visuel */
.idi-fp-prothetic-visual {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	align-items: center;
}

.idi-fp-prothetic-visual > img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--fp-radius, 12px);
}

.idi-fp-prothetic-elements {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 0;
	width: 100%;
	background: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: var(--fp-radius, 12px);
	overflow: hidden;
}

.idi-fp-prothetic-element {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 1.5rem 1rem;
	text-align: center;
}

.idi-fp-prothetic-element--center {
	border-left: 1px solid rgba(255,255,255,.1);
	border-right: 1px solid rgba(255,255,255,.1);
	background: rgba(201,31,99,.08);
}

.idi-fp-prothetic-element__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(255,255,255,.06);
}

.idi-fp-prothetic-element strong {
	color: #ffffff;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.4;
}

.idi-fp-prothetic-element__highlight {
	color: #f06a9e;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.4;
}

@media all and (max-width: 1024px) {
	.idi-fp-prothetic-layout {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   FICHE PRODUIT EN BLOCS — la page IDCAM est composée de blocs Gutenberg
   (groupes, listes, images, boutons, tableau) portant les classes idi-fp-*.
   Ces règles adaptent le design aux enveloppes des blocs (figure, li,
   div.wp-block-button) ; elles valent sur le site et dans l'éditeur.
   ========================================================================== */
.idi-fp-section > .idi-fp-container > *,
.idi-fp-hero__copy > *,
.idi-fp-cta-contact__card > * {
	margin-block: 0;
}

.idi-fp-section > .idi-fp-container > .idi-fp-section__header {
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}

.idi-fp-section__header > * {
	margin-top: 0;
}

/* Dans l'éditeur, la fiche est dans .entry-content : pas du filet décoratif des titres d'article. */
.idi-fiche-blocs .entry-content h2.wp-block-heading::after {
	content: none !important;
}

/* Éléments du modèle laissés vides (nouvelle fiche) : rien sur le site. */
:is(.idi-fp, .idi-elite) :is(p, h1, h2, h3, h4, li):empty,
:is(.idi-fp, .idi-elite) .wp-block-button:has(> .wp-block-button__link:not([href])),
:is(.idi-fp, .idi-elite) .wp-block-button:has(> .wp-block-button__link:empty),
:is(.idi-fp, .idi-elite) figure.wp-block-image:has(> img:not([src])),
:is(.idi-fp, .idi-elite) .wp-block-table:not(:has(td:not(:empty))) {
	display: none;
}

.idi-fp-hero__title.wp-block-post-title {
	margin: 0 0 0.3rem !important;
}

p.idi-fp-breadcrumb {
	display: block;
	word-spacing: 0.2em;
}

p.idi-fp-cone-note {
	position: relative;
	display: block;
	padding-left: 3rem;
}

p.idi-fp-cone-note::before {
	position: absolute;
	top: 50%;
	left: 1.25rem;
	transform: translateY(-50%);
}

.idi-fp .wp-block-group,
.idi-fiche-blocs .wp-block-group {
	box-sizing: border-box;
}

.idi-fp-section.alignfull,
.idi-fp-hero.alignfull {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

.idi-fp-hero__copy > .idi-fp-breadcrumb { margin-bottom: 1.5rem; }
.idi-fp-hero__copy > .idi-fp-hero__eyebrow { margin-bottom: 0.85rem; }
.idi-fp-hero__copy > .idi-fp-hero__tagline { margin-bottom: 1.35rem; }
.idi-fp-hero__copy > .idi-fp-hero__lead { margin-bottom: 2rem; }
.idi-fp-hero__copy > .idi-fp-chips { margin-bottom: 2.25rem; }
.idi-fp-hero__copy > .idi-fp-hero__actions { margin-bottom: 1.75rem; }

.idi-fp-hero__title sup {
	font-size: 0.5em;
	vertical-align: super;
}

/* Pastilles et badges : listes à puces */
.idi-fp-chips,
.idi-fp-hero__badges {
	list-style: none;
	margin-left: 0;
	padding: 0 !important;
}

.idi-fp-chips > li {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0.38rem 0.85rem;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 20px;
	color: rgba(255,255,255,.8);
	font-size: 0.78rem;
	font-weight: 600;
}

.idi-fp-hero__badges > li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0.3rem 0.75rem;
	border-radius: 3px;
	background: rgba(255,255,255,.08);
	color: rgba(255,255,255,.6);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.idi-fp-hero__badges > li:first-child::before {
	content: "";
	width: 16px;
	height: 11px;
	background: linear-gradient(90deg, #173f8a 0 33.333%, #fff 33.333% 66.666%, #e52b42 66.666%);
	box-shadow: 0 0 0 1px rgba(255,255,255,.16);
}

/* Boutons (blocs Bouton) */
.idi-fp .wp-block-buttons,
.idi-fiche-blocs .wp-block-buttons {
	gap: 0.85rem;
}

.wp-block-button.idi-fp-btn {
	display: inline-flex;
	min-height: 0;
	padding: 0;
	border: 0;
	background: none;
}

.wp-block-button.idi-fp-btn > .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0 1.35rem;
	border: 1px solid transparent;
	border-radius: 4px;
	background: #c91f63;
	color: #ffffff;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: none;
	transition: transform .25s var(--fp-ease), box-shadow .25s ease, background .2s ease, border-color .2s ease;
}

.wp-block-button.idi-fp-btn--primary > .wp-block-button__link:hover {
	background: #a81851;
	color: #ffffff;
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -12px rgba(201,31,99,.9);
}

.wp-block-button.idi-fp-btn--primary:first-child > .wp-block-button__link::before {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v9M6 9l3 4 3-4M3 15h12'/%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 18 18' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v9M6 9l3 4 3-4M3 15h12'/%3E%3C/svg%3E") center / contain no-repeat;
}

.idi-fp-cta-contact__card .wp-block-button.idi-fp-btn--primary > .wp-block-button__link::before {
	content: none;
}

.wp-block-button.idi-fp-btn--outline > .wp-block-button__link {
	background: transparent;
	color: rgba(255,255,255,.82);
	border-color: rgba(255,255,255,.3);
}

.wp-block-button.idi-fp-btn--outline > .wp-block-button__link:hover {
	border-color: rgba(255,255,255,.7);
	color: #ffffff;
}

.idi-fp-cta-contact__card .wp-block-buttons,
.idi-fp-cta-contact__card .wp-block-button.idi-fp-btn,
.idi-fp-cta-contact__card .wp-block-button.idi-fp-btn > .wp-block-button__link {
	width: 100%;
	justify-content: center;
}

/* Images (blocs Image) */
.idi-fp figure.wp-block-image,
.idi-fiche-blocs figure.wp-block-image {
	margin: 0;
}

.idi-fp-hero__img img {
	display: block;
	width: 100%;
	height: auto;
}

.idi-fp-hero__visual-wrap > p { margin: 0; }

.idi-fp-cone-visual > figure img,
.idi-fp-prothetic-visual > figure img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--fp-radius, 12px);
}

.idi-fp-cone-visual > figure img {
	box-shadow: 0 8px 32px rgba(0,0,0,.12);
}

.idi-fp-prothetic-visual > figure {
	width: 100%;
}

/* Sous-titre de section (bloc Paragraphe sous le titre) */
.idi-fp-section__subtitle {
	margin: 0.5rem 0 0 !important;
	color: #6e6e73;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1rem, 1.7vw, 1.5rem);
	font-weight: 500;
}

.idi-fp-section--dark .idi-fp-section__subtitle {
	color: rgba(255,255,255,.7);
}

/* Présentation, cône morse, prothèse : paragraphes et titres sans marges parasites */
.idi-fp-cone-annotation > p,
.idi-fp-cone-content > *,
.idi-fp-cone-col > *,
.idi-fp-prothetic-content > *,
.idi-fp-prothetic-advantages > *,
.idi-fp-cta-downloads > * {
	margin-block: 0;
}

.idi-fp-cone-col > .idi-fp-cone-col__title { margin-bottom: 1rem !important; }
.idi-fp-prothetic-content > .idi-fp-prothetic-badge { margin-bottom: 0.85rem; }
.idi-fp-prothetic-advantages > .idi-fp-prothetic-intro { margin-bottom: 1.1rem; }
.idi-fp-cta-downloads > .idi-fp-cta__intro { margin-bottom: 1.75rem; }

.idi-fp-characteristics__list,
.idi-fp-cone-col__list,
.idi-fp-prothetic-list,
.idi-fp-considerations__list,
.idi-fp-anatomy__zones {
	margin-left: 0 !important;
	padding-left: 0 !important;
}

.idi-fp-cone-note::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23c91f63' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='9'/%3E%3Cpath d='M7 10l2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.idi-fp-prothetic-element {
	margin: 0;
	color: #ffffff;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.4;
}

.idi-fp-prothetic-element--center {
	color: #f06a9e;
}

.idi-fp-prothetic-element--center strong {
	color: inherit;
}

p.idi-fp-prothetic-element::before {
	content: "";
	display: block;
	width: 52px;
	height: 52px;
	margin: 0 auto 0.75rem;
	border-radius: 50%;
	background: rgba(255,255,255,.06) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 60' fill='none'%3E%3Crect x='14' y='2' width='12' height='14' rx='3' fill='%23c91f63' opacity='.8'/%3E%3Cpath d='M8 16 Q4 28 5 42 Q6 54 20 58 Q34 54 35 42 Q36 28 32 16Z' stroke='%23c91f63' stroke-width='1.5'/%3E%3Cpath d='M12 30 Q20 26 28 30' stroke='%23c91f63' stroke-width='1' stroke-linecap='round'/%3E%3C/svg%3E") center / 22px auto no-repeat;
}

p.idi-fp-prothetic-element--center::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 60' fill='none'%3E%3Crect x='16' y='2' width='8' height='10' rx='2' fill='%23888' opacity='.6'/%3E%3Cpath d='M12 12 L16 52 L24 52 L28 12Z' stroke='%23888' stroke-width='1.5'/%3E%3Cline x1='12' y1='28' x2='28' y2='28' stroke='%23888' stroke-width='1'/%3E%3Cline x1='12' y1='38' x2='28' y2='38' stroke='%23888' stroke-width='1'/%3E%3C/svg%3E");
}

p.idi-fp-prothetic-element:last-child::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 60' fill='none'%3E%3Crect x='14' y='2' width='12' height='14' rx='3' fill='%23c91f63' opacity='.5'/%3E%3Cpath d='M10 16 Q6 28 7 42 Q8 54 20 58 Q32 54 33 42 Q34 28 30 16Z' stroke='%23c91f63' stroke-width='1.5'/%3E%3Ccircle cx='20' cy='36' r='4' stroke='%23c91f63' stroke-width='1'/%3E%3C/svg%3E");
}

/* Dimensions : plan et tableau */
figure.idi-fp-dimensions__drawings {
	margin: 0;
}

figure.wp-block-table.idi-fp-table {
	margin: 0;
	overflow: hidden;
}

.idi-fp-table table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	font-size: inherit;
}

.idi-fp-table.wp-block-table thead {
	border-bottom: 0;
}

.idi-fp-table.wp-block-table th,
.idi-fp-table.wp-block-table td {
	border: 0;
}

.idi-fp-table tbody tr {
	border-bottom: 1px solid #f0f0f2;
}

.idi-fp-table--dims td {
	padding: 1rem 1.25rem;
	background: #ffffff;
}

.idi-fp-table--dims tbody tr:nth-child(even) td {
	background: #f9f9fb;
}

.idi-fp-table--dims td em {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.15rem 0.5rem;
	border-radius: 3px;
	background: rgba(201,31,99,.1);
	color: #c91f63;
	font-size: 0.7rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.idi-fp-dimensions__table-wrap > .idi-fp-dimensions__note {
	margin-bottom: 0;
}

/* Le plafond est sur le cadre : .wp-block-image img{max-width:100%} peut être chargé après ce fichier. */
.idi-fp-dimensions > figure.idi-fp-dimensions__drawings {
	justify-self: center;
	width: 100%;
	max-width: 480px;
	padding: 1.5rem;
}

.idi-fp-dimensions > figure.idi-fp-dimensions__drawings img { max-width: 100%; }

@container (max-width: 800px) {
	.idi-fp-table--dims { min-width: 0; }
	.idi-fp-table--dims:not(.idi-fp-table--compact) table,
	.idi-fp-table--dims:not(.idi-fp-table--compact) tbody { display: block; width: 100%; }
	.idi-fp-table--dims:not(.idi-fp-table--compact) thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}
	.idi-fp-table--dims:not(.idi-fp-table--compact) tbody tr {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-bottom: 0.75rem;
		border: 1px solid #e6e6e9;
		border-radius: 4px;
		overflow: hidden;
	}
	.idi-fp-table--dims:not(.idi-fp-table--compact) tbody tr td {
		width: auto;
		min-width: 0;
		padding: 0.65rem 0.85rem;
		background: #fff;
	}
	.idi-fp-table--dims:not(.idi-fp-table--compact) tbody tr td:first-child,
	.idi-fp-table--dims:not(.idi-fp-table--compact) tbody tr td:nth-child(n+4) { grid-column: 1 / -1; }
	.idi-fp-table--dims:not(.idi-fp-table--compact) tbody tr td:first-child { background: #f5f5f7; color: #17171a; }
	.idi-fp-table--dims:not(.idi-fp-table--compact) tbody tr td:nth-child(n+2)::before {
		display: block;
		margin-bottom: 0.2rem;
		color: #6e6e73;
		font-size: 0.7rem;
		font-weight: 700;
	}
	.idi-fp-table--dims:not(.idi-fp-table--compact) td:nth-child(2)::before { content: "Ø col (mm)"; }
	.idi-fp-table--dims:not(.idi-fp-table--compact) td:nth-child(3)::before { content: "Ø corps (mm)"; }
	.idi-fp-table--dims:not(.idi-fp-table--compact) td:nth-child(4)::before { content: "Indication principale"; }
	.idi-fp-table--dims:not(.idi-fp-table--compact) td:nth-child(5)::before { content: "Longueurs disponibles"; }
}

/* Fiches à plusieurs paragraphes par section (IDALL) */
.idi-fp-presentation-text > h3 {
	margin: 0.5rem 0 0 !important;
	color: #c91f63;
	font-family: var(--global-heading-font-family);
	font-size: 1.05rem;
	font-weight: 700;
}

.idi-fp-cone-content > p:not([class]),
.idi-fp-cone-col > p {
	color: #3a3a3e;
	font-size: 0.95rem;
	line-height: 1.75;
}

.idi-fp-cone-visual--tall > figure {
	padding: 2rem;
	background: #ffffff;
	border-radius: var(--fp-radius, 12px);
	box-shadow: 0 8px 32px rgba(0,0,0,.08);
}

.idi-fp-cone-visual.idi-fp-cone-visual--tall > figure img {
	width: auto;
	max-width: 100%;
	max-height: 560px;
	margin-inline: auto;
	border-radius: 0;
	box-shadow: none;
}

.idi-fp-dimensions__table-wrap--narrow {
	justify-self: center;
	width: 100%;
	max-width: 760px;
}

.idi-fp-dimensions__intro {
	margin: 0 0 1.25rem !important;
	color: #6e6e73;
	font-size: 0.95rem;
}

.idi-fp-table.idi-fp-table--compact { min-width: 0; }

/* Considérations : chaque puce devient un encadré avec pictogramme */
.idi-fp-considerations__list > li {
	position: relative;
	margin: 0;
	padding: 1.25rem 1.5rem 1.25rem 3.4rem;
	background: #f5f5f7;
	border-radius: var(--fp-radius, 12px);
	border-left: 3px solid #c91f63;
	color: #17171a;
	font-size: 0.92rem;
	line-height: 1.65;
}

.idi-fp-considerations__list > li::before {
	content: "";
	position: absolute;
	top: 1.4rem;
	left: 1.25rem;
	width: 22px;
	height: 22px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%23c91f63' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='10'/%3E%3Cpath d='M7 11l3 3 5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.idi-fp-considerations__list > li:is(:first-child, :last-child)::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%23c91f63' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='10'/%3E%3Cpath d='M11 7v5M11 15.5h.01'/%3E%3C/svg%3E");
}

/* Téléchargement : bouton en carte document */
.wp-block-button.idi-fp-download {
	width: 100%;
}

.wp-block-button.idi-fp-download > .wp-block-button__link {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: center;
	column-gap: 1rem;
	row-gap: 0.2rem;
	width: 100%;
	padding: 1rem 1.25rem;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: var(--fp-radius, 12px);
	color: #ffffff;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: left;
	text-decoration: none;
	box-shadow: none;
	transition: background .2s ease, border-color .2s ease;
}

.wp-block-button.idi-fp-download > .wp-block-button__link:hover {
	background: rgba(255,255,255,.12);
	border-color: rgba(255,255,255,.25);
	color: #ffffff;
}

.wp-block-button.idi-fp-download > .wp-block-button__link::before {
	content: "";
	grid-row: 1 / span 2;
	width: 18px;
	height: 22px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 22' fill='none' stroke='%23c91f63' stroke-width='1.4' stroke-linecap='round'%3E%3Crect x='1' y='1' width='16' height='20' rx='2'/%3E%3Cpath d='M5 7h8M5 11h8M5 15h5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-button.idi-fp-download strong,
.wp-block-button.idi-fp-download em {
	grid-column: 2;
}

.wp-block-button.idi-fp-download em {
	display: block;
	color: rgba(255,255,255,.45);
	font-size: 0.75rem;
	font-style: normal;
	font-weight: 400;
}

/* Contact */
p.idi-fp-cta-contact__phone {
	display: block;
}

p.idi-fp-cta-contact__phone a {
	color: inherit;
	text-decoration: none;
}

p.idi-fp-cta-contact__phone a:hover {
	color: #c91f63;
}
/* ==========================================================================
   RÉVÉLATIONS AU DÉFILEMENT — pages produits (catalogue, IDCAM, Elite)
   Classes posées par js/product-reveals.js, retirées après l'entrée pour
   rendre la main aux transitions de survol propres à chaque composant.
   ========================================================================== */
.idi-anim {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s var(--idi-ease) var(--idi-anim-delay, 0ms),
		transform 0.7s var(--idi-ease) var(--idi-anim-delay, 0ms);
	will-change: opacity, transform;
}

.idi-anim--in {
	opacity: 1;
	transform: none;
}

/* Micro-relief au survol, harmonisé avec les cartes du catalogue */
.idi-elite-capability,
.idi-elite-versions article {
	transition: transform 0.35s var(--idi-ease), box-shadow 0.35s var(--idi-ease);
}

.idi-elite-capability:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 44px -30px rgba(23, 23, 26, 0.5);
}

.idi-elite-versions article:hover {
	transform: translateY(-4px);
}

/* ==========================================================================
   Page Contact — supprime le bloc PAR TÉLÉPHONE / PAR EMAIL.
   :has() cible uniquement ces colonnes sans toucher la section "Nous rendre
   visite" qui a aussi un wp-block-columns (avec la map).
   ========================================================================== */

/* Bloc colonnes téléphone + email */
.idi-contact .wp-block-columns:has(a[href^="tel:"]) {
	display: none !important;
}

/* Spacer juste après ce bloc */
.idi-contact .wp-block-columns:has(a[href^="tel:"]) + .wp-block-spacer {
	display: none !important;
}

/* Séparateur décoratif juste avant ce bloc */
.idi-contact .wp-block-separator:has(+ .wp-block-columns:has(a[href^="tel:"])) {
	display: none !important;
}

/* ==========================================================================
   Header / Footer — supprime le style "bouton encadré" du numéro de tél.
   ========================================================================== */
.site-header a[href^="tel:"],
.site-footer a[href^="tel:"] {
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	padding: 0.15em 0.4em !important;
	text-decoration: none;
}

/* ==========================================================================
   Header — masque visuellement l'email (icône + texte).
   Pour suppression du HTML source : Customizer → En-tête → Barre supérieure.
   ========================================================================== */
.site-header a[href^="mailto:"],
.site-header li:has(a[href^="mailto:"]),
.site-header span:has(a[href^="mailto:"]) {
	display: none !important;
}
/* ==========================================================================
   Retour en haut de page (js/back-to-top.js) : pages longues uniquement
   ========================================================================== */
button.idi-to-top {
	position: fixed;
	right: clamp(1rem, 2.4vw, 2rem);
	bottom: calc(clamp(1rem, 2.4vw, 2rem) + env(safe-area-inset-bottom, 0px));
	z-index: 90;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(23, 23, 26, 0.9);
	color: #ffffff;
	box-shadow: 0 16px 34px -14px rgba(0, 0, 0, 0.6), inset 0 0 0 1px rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(14px) scale(0.9);
	transition: opacity 0.3s ease, transform 0.4s var(--idi-ease, ease), background 0.25s ease, visibility 0s linear 0.4s;
}

button.idi-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

button.idi-to-top:hover {
	background: #c91f63;
	color: #ffffff;
	box-shadow: 0 18px 38px -14px rgba(201, 31, 99, 0.75);
	transform: translateY(-3px);
}

button.idi-to-top:focus-visible {
	outline: 2px solid #e63478;
	outline-offset: 4px;
}

.idi-to-top__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
	fill: none;
	stroke-width: 2.5;
	pointer-events: none;
}

.idi-to-top__track {
	stroke: rgba(255, 255, 255, 0.12);
}

.idi-to-top__progress {
	stroke: #e63478;
	stroke-linecap: round;
	transition: stroke-dashoffset 0.15s linear, stroke 0.25s ease;
}

button.idi-to-top:hover .idi-to-top__progress {
	stroke: #ffffff;
}

.idi-to-top__arrow {
	position: relative;
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 0.25s ease;
}

button.idi-to-top:hover .idi-to-top__arrow {
	transform: translateY(-2px);
}

@media (max-width: 767px) {
	button.idi-to-top {
		width: 46px;
		height: 46px;
	}

	.idi-to-top__arrow {
		width: 16px;
		height: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	button.idi-to-top,
	.idi-to-top__arrow,
	.idi-to-top__progress {
		transition: none;
	}
}

@media print {
	button.idi-to-top {
		display: none;
	}
}

/* ==========================================================================
   Publications scientifiques — fiches bibliographiques
   ========================================================================== */

.idi-publications {
	margin: clamp(2.5rem, 5vw, 4rem) 0 0;
}

.idi-publications__count {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 1rem;
	margin: 0 0 1.75rem;
	color: #17171a;
	font-size: 0.95rem;
	font-weight: 700;
}

.idi-publications__count span {
	color: #6b6b73;
	font-weight: 400;
}

.idi-publications__list {
	display: grid;
	gap: 1.25rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.idi-publication {
	display: grid;
	grid-template-columns: 8.75rem minmax(0, 1fr);
	gap: clamp(1.5rem, 3vw, 2.75rem);
	margin: 0 !important;
	padding: clamp(1.75rem, 3vw, 2.5rem);
	border: 1px solid rgba(23, 23, 26, 0.06);
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 18px 44px -34px rgba(23, 23, 26, 0.35);
	transition: transform 0.35s var(--idi-ease, ease), box-shadow 0.35s var(--idi-ease, ease), border-color 0.35s ease;
}

.idi-publication:hover {
	transform: translateY(-3px);
	border-color: rgba(201, 31, 99, 0.18);
	box-shadow: 0 26px 60px -34px rgba(23, 23, 26, 0.45);
}

.idi-publication__year {
	margin: 0 !important;
	padding-right: clamp(1.5rem, 3vw, 2.75rem);
	border-right: 1px solid rgba(23, 23, 26, 0.08);
	color: #c91f63;
	font-family: var(--global-heading-font-family);
	font-size: clamp(1.9rem, 3vw, 2.4rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
	white-space: nowrap;
}

.idi-publication__journal {
	margin: 0 0 0.65rem !important;
	color: #c91f63;
	font-size: 0.74rem;
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.idi-publication__title {
	margin: 0 0 0.75rem !important;
	color: #17171a;
	font-size: clamp(1.2rem, 1.8vw, 1.45rem);
	line-height: 1.3;
	text-wrap: balance;
}

.idi-publication__authors {
	margin: 0 0 1rem !important;
	color: #6b6b73;
	font-size: 0.9rem;
	font-style: italic;
	line-height: 1.6;
}

.idi-publication__summary {
	max-width: 72ch;
	margin: 0 0 1.5rem !important;
	color: #4a4a50;
	font-size: 1rem;
	line-height: 1.75;
	text-wrap: pretty;
}

.idi-publication__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
}

.idi-publication__read {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	border-radius: 999px;
	background: #c91f63;
	color: #ffffff !important;
	font-size: 0.92rem;
	font-weight: 700;
	text-decoration: none !important;
	box-shadow: 0 12px 26px -14px rgba(201, 31, 99, 0.7);
	transition: background 0.25s ease, transform 0.3s var(--idi-ease, ease);
}

.idi-publication__read::after {
	content: "\2197";
	font-weight: 400;
}

.idi-publication__read:hover {
	transform: translateY(-2px);
	background: #a81851;
}

.idi-publication__download,
.idi-publication__doi {
	color: #17171a !important;
	font-size: 0.92rem;
	font-weight: 600;
	text-decoration: underline !important;
	text-decoration-color: rgba(201, 31, 99, 0.35) !important;
	text-underline-offset: 0.3em;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.idi-publication__download span {
	margin-left: 0.35rem;
	color: #6b6b73;
	font-weight: 400;
}

.idi-publication__doi {
	color: #6b6b73 !important;
	font-weight: 400;
}

.idi-publication__download:hover,
.idi-publication__doi:hover {
	color: #c91f63 !important;
	text-decoration-color: #c91f63 !important;
}

.idi-publication__read:focus-visible,
.idi-publication__download:focus-visible,
.idi-publication__doi:focus-visible {
	outline: 2px solid #c91f63;
	outline-offset: 3px;
}

@media all and (max-width: 781px) {
	.idi-publication {
		grid-template-columns: 1fr;
		gap: 1rem;
		padding: 1.5rem;
	}

	.idi-publication__year {
		padding: 0 0 1rem;
		border-right: 0;
		border-bottom: 1px solid rgba(23, 23, 26, 0.08);
		font-size: 1.6rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.idi-publication,
	.idi-publication__read {
		transition: none;
	}

	.idi-publication:hover,
	.idi-publication__read:hover {
		transform: none;
	}
}

/* ==========================================================================
   Fiche produit générée (Catalogue produits)
   ========================================================================== */

.idi-produit-body {
	padding: clamp(3rem, 6vw, 5rem) 1.5rem clamp(2.5rem, 5vw, 4rem);
	background: #ffffff;
}

.idi-produit-body .entry-content > *:first-child {
	margin-top: 0 !important;
	padding-top: 0 !important;
	border-top: 0 !important;
}

/* ==========================================================================
   Accueil — bandeau « Une qualité certifiée » (même langage que la bande de chiffres Société)
   ========================================================================== */

.wp-block-columns.idi-quality-band {
	position: relative;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 !important;
	width: min(1240px, 100%);
	max-width: 1240px !important;
	margin: 2.25rem auto 2rem !important;
	padding: clamp(2rem, 3.5vw, 2.75rem) 1.5rem;
	overflow: hidden;
	background:
		radial-gradient(130% 240% at 86% 0%, rgba(214, 43, 111, 0.4) 0%, rgba(214, 43, 111, 0.12) 42%, rgba(214, 43, 111, 0) 72%),
		linear-gradient(135deg, #2b2330 0%, #1f1c22 64%);
	border: 1px solid rgba(214, 43, 111, 0.22);
	border-radius: 6px;
	box-shadow: 0 32px 80px -42px rgba(15, 14, 16, 0.9);
}

.wp-block-columns.idi-quality-band::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 2px;
	background: linear-gradient(90deg, #d62b6f 0%, #d62b6f 38%, rgba(214, 43, 111, 0.5) 68%, rgba(214, 43, 111, 0) 96%);
}

.idi-quality-band > .wp-block-column {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 !important;
	padding: 0.25rem clamp(1rem, 2.5vw, 2rem);
	text-align: center;
}

.idi-quality-band > .wp-block-column + .wp-block-column {
	border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.idi-quality-band .idi-quality-band__icon {
	margin: 0 0 1.1rem !important;
}

.idi-quality-band .idi-quality-band__icon img {
	display: block;
	width: 64px;
	height: auto;
	opacity: 0.95;
}

.idi-quality-band p.idi-quality-band__title {
	margin: 0 !important;
	color: #ffffff;
	font-family: var(--global-heading-font-family);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}

.idi-quality-band p.idi-quality-band__text {
	max-width: 24ch;
	margin: 0.55rem 0 0 !important;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.92rem;
	line-height: 1.55;
}

@media all and (max-width: 781px) {
	.wp-block-columns.idi-quality-band {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding: 1rem;
	}

	.idi-quality-band > .wp-block-column {
		padding: 1.25rem 0.75rem;
	}

	.idi-quality-band > .wp-block-column:nth-child(odd) {
		border-left: 0;
	}

	.idi-quality-band > .wp-block-column:nth-child(n + 3) {
		border-top: 1px solid rgba(255, 255, 255, 0.16);
	}
}
