/*
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.6.27
*/
/* --------------------------------------------------------------------------
	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. */
#masthead {
	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;
}

.custom-logo {
	max-height: 46px;
	width: auto;
}

/* Le logo porte déjà la marque "iDi" : on retire le texte "IDI - Dental" redondant à côté */
.site-branding .site-title-wrap {
	display: none;
}

.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;
}

/* ==========================================================================
   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;
	text-wrap: balance;
	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);
}

.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);
}

/* Hauteur commune, largeur NATURELLE selon le format de chaque logo (le
   drapeau est carré, le tampon OFG est plutôt vertical, EU-MDR est large) :
   contraindre width ET height comme précédemment écrasait doublement les
   logos non carrés (ex. EU-MDR retombé à ~11px de haut, illisible). */
.idi-hero__stat-icon img {
	display: block;
	height: 100%;
	width: auto;
	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;
}

.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;
}

.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(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) #primary.content-area {
	margin-top: 0;
	margin-bottom: 0;
}

body:is(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .entry-content-wrap {
	padding: 0 !important;
}

:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .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;
}

.page-id-34 .entry-content > .idi-page-intro {
	background:
		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%),
		url("../../../content-import/images/partners.jpeg") 68% 58% / cover no-repeat !important;
}

.page-id-32 .entry-content > .idi-page-intro {
	background:
		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%),
		url("../../../content-import/images/contact.jpg") 52% 60% / cover no-repeat !important;
}

.page-id-33 .entry-content > .idi-page-intro {
	background:
		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%),
		url("../../../content-import/images/recrutement.jpg") 62% 45% / cover no-repeat !important;
}

.page-id-306 .entry-content > .idi-page-intro {
	background:
		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%),
		url("../../../content-import/images/articles.jpg") 45% 45% / cover no-repeat !important;
}

:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .idi-page-intro .idi-eyebrow {
	margin-bottom: 2rem;
	color: #f0528f;
	font-size: 0.72rem;
	letter-spacing: 0.2em;
}

:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) h1.idi-page-intro__title {
	max-width: 720px;
	color: #ffffff;
	font-size: clamp(2.8rem, 5vw, 5.25rem);
	line-height: 0.98;
	letter-spacing: 0;
}

:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .entry-content > .idi-page-intro > .wp-block-column:has(> .idi-page-intro__lead) {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .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) {
	:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .entry-content > .idi-page-intro {
		min-height: 540px;
		padding: 5rem 1.5rem !important;
		align-items: center;
		text-align: center;
	}

	.page-id-34 .entry-content > .idi-page-intro {
		background:
			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%),
			url("../../../content-import/images/partners.jpeg") 61% 58% / cover no-repeat !important;
	}

	.page-id-32 .entry-content > .idi-page-intro {
		background:
			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%),
			url("../../../content-import/images/contact.jpg") 46% 60% / cover no-repeat !important;
	}

	.page-id-33 .entry-content > .idi-page-intro {
		background:
			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%),
			url("../../../content-import/images/recrutement.jpg") 58% 45% / cover no-repeat !important;
	}

	.page-id-306 .entry-content > .idi-page-intro {
		background:
			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%),
			url("../../../content-import/images/articles.jpg") 40% 45% / cover no-repeat !important;
	}

	:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .idi-page-intro .idi-eyebrow {
		width: 100%;
	}

	:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) h1.idi-page-intro__title {
		max-width: none;
		font-size: clamp(2.65rem, 12vw, 3.65rem);
		line-height: 1;
	}

	:where(.page-id-32, .page-id-33, .page-id-34, .page-id-42, .page-id-82, .page-id-306, .page-id-307) .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;
	background: #18171a;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 6px;
	box-shadow: 0 32px 80px -42px rgba(15, 14, 16, 0.9);
}

.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é — bandes éditoriales pleine largeur
   ========================================================================== */

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

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

.page-id-31 .entry-content {
	position: relative;
}

.page-id-31 .entry-content > .idi-page-intro,
.page-id-31 .entry-content > .idi-photo,
.page-id-31 .entry-content > .idi-bento-featured,
.page-id-31 .entry-content > .idi-cta,
.page-id-31 .entry-content > :nth-child(n + 4):nth-child(-n + 7) {
	width: 100vw !important;
	max-width: none !important;
	margin-bottom: 0 !important;
	margin-right: calc(50% - 50vw) !important;
	margin-left: calc(50% - 50vw) !important;
}

.page-id-31 .entry-content > .idi-page-intro {
	position: absolute !important;
	z-index: 2;
	top: 0;
	left: 50%;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.75fr);
	align-content: end;
	align-items: end !important;
	gap: clamp(3rem, 8vw, 8rem);
	/* Hauteur alignée sur les autres pages institutionnelles (Contact, Recrutement,
	   Partenaires, Mentions, CGV) : 620px, au lieu d'un calcul lié au viewport qui
	   rendait ce bloc plus grand (jusqu'à 760px) et cassait l'uniformité demandée. */
	height: 620px;
	padding: clamp(5rem, 9vw, 8rem) max(2rem, calc((100vw - 1240px) / 2)) clamp(7rem, 11vw, 9rem) !important;
	background: linear-gradient(90deg, rgba(15, 14, 16, 0.94) 0%, rgba(20, 16, 19, 0.76) 50%, rgba(20, 15, 18, 0.38) 100%) !important;
	border-radius: 0 !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	transform: translateX(-50%);
}

.page-id-31 .entry-content > .idi-photo {
	height: 620px;
	margin-top: 0 !important;
	box-shadow: none;
}

.page-id-31 .entry-content > .idi-photo img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 0 !important;
	object-fit: cover;
	object-position: 50% 42%;
	filter: grayscale(1) contrast(1.04);
	box-shadow: none;
}

.page-id-31 .idi-page-intro .idi-eyebrow {
	color: #f0528f;
	font-size: 0.72rem;
	letter-spacing: 0.2em;
}

.page-id-31 h1.idi-page-intro__title {
	max-width: 720px;
	color: #ffffff;
	font-size: clamp(2.5rem, 4.4vw, 4.8rem);
	line-height: 0.98;
	letter-spacing: 0;
}

.page-id-31 .idi-page-intro__lead {
	max-width: 520px;
	padding-left: 1.75rem;
	border-left-color: #d62b6f;
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(1rem, 1.2vw, 1.2rem);
	line-height: 1.7;
}

.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;
	background: rgba(24, 23, 26, 0.96);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 6px;
	box-shadow: 0 32px 80px -42px rgba(15, 14, 16, 0.9);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

.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.15);
}

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

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

.page-id-31 .entry-content > :nth-child(n + 4):nth-child(-n + 7) {
	margin-top: 0 !important;
	padding-right: max(1.5rem, calc((100vw - 1200px) / 2));
	padding-left: max(1.5rem, calc((100vw - 1200px) / 2));
	background: #f4f5f2;
}

.page-id-31 .entry-content > :nth-child(4) {
	padding-top: clamp(8rem, 12vw, 11rem);
	font-size: clamp(2.2rem, 4vw, 4rem);
	line-height: 1.05;
}

.page-id-31 .entry-content > :nth-child(5) {
	padding-top: 1.5rem;
	padding-right: max(1.5rem, calc((100vw - 760px) / 2));
	font-size: 1.12rem;
	line-height: 1.8;
}

.page-id-31 .entry-content > :nth-child(6) {
	padding-top: 2.25rem;
}

.page-id-31 .entry-content > :nth-child(7) {
	padding-top: 1rem;
	padding-bottom: clamp(6rem, 10vw, 9rem);
}

.page-id-31 .entry-content > .idi-bento-featured {
	margin-top: 0 !important;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

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

.page-id-31 .idi-bento-featured > .idi-bento__media {
	min-height: 520px;
	padding-left: max(1.5rem, calc((100vw - 1200px) / 2));
	background: #ffffff;
}

.page-id-31 .idi-bento-featured > .idi-bento__body {
	padding: clamp(5rem, 8vw, 8rem) max(1.5rem, calc((100vw - 1200px) / 2)) clamp(5rem, 8vw, 8rem) clamp(3rem, 7vw, 7rem);
	background: #eceee9;
}

.page-id-31 .entry-content > .idi-cta {
	margin-top: 0 !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;
}

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

	.page-id-31 .entry-content > .idi-page-intro {
		grid-template-columns: 1fr;
		align-content: end;
		gap: 2rem;
		/* Aligné sur la hauteur mobile commune des autres pages institutionnelles
		   (595px, déjà utilisée par Recrutement et Partenaires), au lieu de 760px. */
		height: 595px;
		padding: 6rem 1.5rem 7rem !important;
		background: linear-gradient(180deg, rgba(15, 14, 16, 0.25) 0%, rgba(17, 15, 17, 0.86) 48%, rgba(17, 15, 17, 0.98) 100%) !important;
	}

	.page-id-31 .entry-content > .idi-photo {
		height: 595px;
		min-height: 0;
	}

	.page-id-31 .entry-content > .idi-photo img {
		object-position: 54% center;
	}

	.page-id-31 h1.idi-page-intro__title {
		font-size: clamp(2.65rem, 12vw, 3.6rem);
		line-height: 1;
	}

	.page-id-31 .idi-page-intro__lead {
		font-size: 1rem;
		line-height: 1.65;
	}

	.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.15);
	}

	.page-id-31 .entry-content > :nth-child(4) {
		padding-top: 7rem;
		font-size: 2.5rem;
	}

	.page-id-31 .entry-content > :nth-child(5) {
		padding-right: 1.5rem;
		font-size: 1rem;
	}

	.page-id-31 .idi-bento-featured > .idi-bento__media {
		min-height: 320px;
		padding: 3rem 1.5rem;
	}

	.page-id-31 .idi-bento-featured > .idi-bento__body {
		padding: 4rem 1.5rem 5rem;
	}
}

/* ==========================================================================
   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;
	padding: clamp(3rem, 7vw, 6rem) max(2rem, calc((100vw - 1240px) / 2));
	background: #f1f2ef;
}

.home .idi-bento-row > .wp-block-column:nth-child(even) > .wp-block-image {
	grid-column: 1;
}

.home .idi-bento-row > .wp-block-column > .wp-block-image img {
	width: auto;
	max-width: min(520px, 100%);
	height: auto;
	max-height: 390px;
	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::after {
	content: "";
	position: absolute;
	right: -22px;
	bottom: 20px;
	width: 58px;
	height: 3px;
	background: #d62b6f;
}

.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% 35%;
	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__portrait::after {
		right: -12px;
		bottom: 18px;
		width: 48px;
	}

	.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);
}

.custom-logo {
	max-height: 48px;
}

@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: 58px;
	}

	#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;
	}

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

	#masthead .site-branding .site-title-wrap {
		display: none !important;
	}

	#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.9rem !important;
		font-size: 0.94rem;
		font-weight: 600;
	}

}

.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
   ========================================================================== */

body.woocommerce,
body.woocommerce-page {
	--idi-shop-ink: #17171a;
	--idi-shop-muted: #63636b;
	--idi-shop-line: #dfe0e4;
	--idi-shop-surface: #ffffff;
	--idi-shop-soft: #f4f3f4;
	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 (72px à 1440px) : le hero boutique
	   affichait un titre plus gros (86px) sans raison, alors que la hauteur du
	   bandeau est désormais identique. */
	font-size: clamp(2.8rem, 5vw, 5.25rem);
	line-height: 0.95;
	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(2.65rem, 12vw, 3.65rem);
	}

	.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) {
	#masthead,
	#masthead .site-header-row-container-inner,
	#masthead .site-main-header-inner-wrap {
		min-height: 72px;
	}

	.custom-logo {
		max-height: 44px;
	}
}

/* Mega menu métier Kadence : les cinq familles sont les en-têtes de colonnes. */
@media (min-width: 1025px) {
	.header-navigation .kadence-menu-mega-enabled > .sub-menu {
		top: 100% !important;
		right: 0 !important;
		left: auto !important;
		width: min(calc(100vw - 6rem), 1240px) !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:"],
.idi-contact-band a[href^="mailto:"],
.entry-content a[href^="tel:"],
.entry-content a[href^="mailto:"] {
	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;
}

/* ==========================================================================
   Articles — grille de vignettes (page 306) et fiche article (page 307)
   ========================================================================== */

.page-id-306 .entry-content,
.page-id-307 .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);
}

.idi-article-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	background: #f4f5f2;
}

.idi-article-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 1.5rem;
}

.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;
}

.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;
}

/* Lettrine sur le tout premier paragraphe : signature éditoriale discrète. */
.idi-article-single .entry-content > p:first-of-type::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);
}

.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;
}

/* 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;
}

@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;
	}
}

/* Fin de la feuille de styles enfant IDI. */

