/* =========================================================================
   Softly Events — direction Editorial Patrimoine
   Theme SaaS evenementiel : aucune valeur n'est specifique a un client ici.
   Tous les tokens marque (couleurs + polices) sont overrides inline depuis
   inc/enqueue.php a partir de Reglages > Softly Events.
   ========================================================================= */

:root {
	/* === Couleurs marque (parametrables par client) === */
	--color-primary:    #5C1A1B; /* burgundy */
	--color-night:      #1A1A2E; /* navy nuit profond */
	--color-gold:       #C8902E; /* ocre dore */
	--color-cream:      #F5EDE0; /* creme chaud */
	--color-danger:     #B85C3A; /* terra cuite */
	--color-light:      #FFFFFF;
	--color-text:       #221814;
	--color-muted:      #7A6E64;
	--color-ink:        #1A1A2E;

	/* === Alias semantiques (pour ne pas confondre danger=terra) === */
	--color-terra:      var(--color-danger);
	--color-burgundy:   var(--color-primary);
	--color-ocre:       var(--color-gold);

	/* === Couleurs derivees (suivent automatiquement les couleurs marque) === */
	--color-cream-warm:  color-mix(in srgb, var(--color-cream) 78%, var(--color-gold) 22%);
	--color-cream-cool:  color-mix(in srgb, var(--color-cream) 92%, #fff);
	--color-cream-dark:  color-mix(in srgb, var(--color-cream) 85%, var(--color-primary));
	--color-gold-dark:   color-mix(in srgb, var(--color-gold) 78%, #000);
	--color-gold-soft:   color-mix(in srgb, var(--color-gold) 30%, var(--color-cream));
	--color-burgundy-soft: color-mix(in srgb, var(--color-primary) 18%, var(--color-cream));
	--color-rule:        color-mix(in srgb, var(--color-primary) 22%, transparent);
	--color-rule-strong: color-mix(in srgb, var(--color-primary) 50%, transparent);
	--color-rule-gold:   color-mix(in srgb, var(--color-gold) 60%, transparent);
	--color-danger-soft: color-mix(in srgb, var(--color-danger) 18%, var(--color-cream));

	/* === Typographie (parametrable, fallback system-safe) === */
	--font-heading: 'Fraunces', 'Times New Roman', Georgia, serif;
	--font-body:    'Bricolage Grotesque', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--font-eyebrow: 'JetBrains Mono', 'Courier New', monospace;

	/* Echelles typographiques generouses (editorial) */
	--fs-xs:    .75rem;     /* 12px */
	--fs-sm:    .875rem;    /* 14px */
	--fs-base:  1.0625rem;  /* 17px */
	--fs-lg:    1.25rem;    /* 20px */
	--fs-xl:    1.5rem;     /* 24px */
	--fs-2xl:   2rem;       /* 32px */
	--fs-3xl:   2.75rem;    /* 44px */
	--fs-4xl:   clamp(3rem, 6vw, 4.75rem);   /* 48-76px */
	--fs-5xl:   clamp(4rem, 11vw, 9rem);     /* hero gigantesque 64-144px */

	--lh-tight:  1.02;
	--lh-snug:   1.15;
	--lh-base:   1.55;
	--lh-loose:  1.75;

	--tracking-eyebrow: .22em;
	--tracking-mono:    .04em;
	--tracking-tight:   -.025em;
	--tracking-display: -.035em;

	/* === Layout & forme === */
	--radius-xs:  2px;
	--radius-sm:  3px;
	--radius:     0;          /* editorial : tres peu de radius */
	--radius-lg:  0;
	--radius-pill: 999px;

	--rule:        1px;
	--rule-thick:  2px;
	--rule-heavy:  4px;

	--shadow-sm: 0 1px 0 var(--color-rule);
	--shadow-md: 0 12px 32px -16px rgba(10, 23, 64, .25);
	--shadow-lg: 0 30px 60px -24px rgba(10, 23, 64, .4);

	--container-max:    1320px;
	--container-narrow: 880px;
	--container-pad:    clamp(20px, 5vw, 64px);

	--space-1: 4px;
	--space-2: 8px;
	--space-3: 16px;
	--space-4: 24px;
	--space-5: 40px;
	--space-6: 64px;
	--space-7: 96px;
	--space-8: 144px;
	--space-9: 200px;
}

/* =========================================================================
   Reset + base
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--fs-base);
	font-weight: 300; /* light - inspire Aura Tulum (Freight Sans Pro 300) */
	line-height: var(--lh-base);
	color: var(--color-text);
	background: var(--color-cream);
	font-variation-settings: 'wdth' 100, 'opsz' 17;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/* Grain papier (subtil) sur le body */
body::before {
	content: '';
	position: fixed; inset: 0;
	pointer-events: none;
	z-index: 1;
	opacity: .35;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .045 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a {
	color: var(--color-primary);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0% 1px;
	background-repeat: no-repeat;
	background-position: 0 100%;
	transition: background-size .35s ease, color .2s ease;
}
a:hover, a:focus { background-size: 100% 1px; }

p { margin: 0 0 1em; }

::selection { background: var(--color-gold); color: var(--color-night); }

/* =========================================================================
   Typographie editoriale
   ========================================================================= */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	margin: 0;
	color: var(--color-night);
	letter-spacing: var(--tracking-display);
	font-variation-settings: 'opsz' 80, 'SOFT' 0;
}
h1 {
	font-size: var(--fs-5xl);
	line-height: var(--lh-tight);
	font-weight: 350;
}
h2 { font-size: var(--fs-4xl); line-height: var(--lh-snug); font-weight: 400; letter-spacing: var(--tracking-tight); }
h3 { font-size: var(--fs-2xl); line-height: var(--lh-snug); font-weight: 500; letter-spacing: var(--tracking-tight); }
h4 { font-size: var(--fs-xl);  line-height: var(--lh-snug); font-weight: 500; }
h5 { font-size: var(--fs-lg);  line-height: var(--lh-snug); font-weight: 500; }
h6 { font-size: var(--fs-base);line-height: var(--lh-snug); font-weight: 600; }

em, i { font-style: italic; font-variation-settings: 'SOFT' 100; }

/* Eyebrow : code editorial / numerotation */
.se-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: var(--tracking-eyebrow);
	color: var(--color-primary);
	margin: 0;
}
.se-eyebrow--gold { color: var(--color-gold-dark); }
.se-eyebrow--cream { color: var(--color-cream); }
.se-eyebrow::before {
	content: '';
	width: var(--space-5); height: 1px;
	background: currentColor;
	flex-shrink: 0;
	opacity: .6;
}
.se-eyebrow--nobar::before { display: none; }

/* Indice editorial (I. II. III.) */
.se-index {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	font-weight: 500;
	letter-spacing: var(--tracking-mono);
	color: var(--color-gold-dark);
	text-transform: uppercase;
}

/* =========================================================================
   Accessibilite
   ========================================================================= */
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px);
	height: 1px; width: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	position: absolute !important;
	word-wrap: normal !important;
}
.se-skip-link:focus {
	position: fixed; top: 12px; left: 12px;
	width: auto; height: auto; clip: auto;
	padding: 12px 18px;
	background: var(--color-night);
	color: var(--color-cream);
	z-index: 1000;
}
:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
}

/* =========================================================================
   Layout : container + grille editoriale 12 cols
   ========================================================================= */
.se-container {
	width: 100%;
	max-width: var(--container-max);
	margin: 0 auto;
	padding-inline: var(--container-pad);
	position: relative;
	z-index: 2;
}
.se-container--narrow { max-width: var(--container-narrow); }

.se-rule {
	display: block;
	height: var(--rule);
	background: var(--color-rule-strong);
	margin: 0;
	border: 0;
}
.se-rule--heavy   { height: var(--rule-heavy); background: var(--color-night); }
.se-rule--gold    { background: var(--color-gold); }
.se-rule--cream   { background: var(--color-cream); opacity: .25; }

/* =========================================================================
   Header
   ========================================================================= */
.se-header {
	background: color-mix(in srgb, var(--color-cream) 92%, transparent);
	color: var(--color-night);
	border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 18%, transparent);
	position: sticky; top: 0; z-index: 50;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	transition: background .35s ease, border-color .35s ease, color .35s ease;
}

/* Mode over-hero : header totalement transparent sur la photo avant scroll */
.se-header--over-hero {
	position: fixed;
	left: 0; right: 0; top: 0;
	background: transparent;
	border-bottom-color: transparent;
	color: var(--color-cream);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}
.se-header--over-hero .se-header__title { color: var(--color-cream); }
.se-header--over-hero .se-menu a { color: var(--color-cream); }
.se-header--over-hero .se-menu a::after { background: var(--color-gold); }
.se-header--over-hero .se-menu a:hover,
.se-header--over-hero .se-menu .current-menu-item > a { color: var(--color-gold); }
.se-header--over-hero .se-header__logo img {
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 45%, transparent),
		0 18px 40px -10px rgba(0,0,0,.55);
}
.se-header--over-hero.is-scrolled {
	background: color-mix(in srgb, var(--color-cream) 94%, transparent);
	border-bottom-color: color-mix(in srgb, var(--color-gold) 18%, transparent);
	color: var(--color-night);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}
.se-header--over-hero.is-scrolled .se-header__title,
.se-header--over-hero.is-scrolled .se-menu a { color: var(--color-night); }
.se-header--over-hero.is-scrolled .se-menu .current-menu-item > a { color: var(--color-gold-dark); }
.se-header--over-hero.is-scrolled .se-header__logo img {
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 12px 28px -10px rgba(0,0,0,.45);
}

/* Le body ne doit pas pousser le hero quand le header est en mode fixed */
.home .se-header--over-hero ~ * .se-hero--image,
body:has(.se-header--over-hero) .se-hero--image { margin-top: 0; }
.se-header__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: clamp(var(--space-3), 3vw, var(--space-5));
	padding-block: var(--space-3);
}
.se-header__nav--left  { justify-self: end; }
.se-header__brand      { justify-self: center; }
.se-header__nav--right { justify-self: start; }
.se-header__cta {
	position: absolute;
	right: var(--container-pad);
	top: 50%;
	transform: translateY(-50%);
	display: flex; align-items: center; gap: 6px;
}

/* Desktop : grille a 5 colonnes avec spacer-miroir gauche de meme largeur que le CTA.
   Les deux pistes 1fr sont strictement equivalentes -> logo parfaitement centre. */
@media (min-width: 980px) {
	.se-header__inner {
		grid-template-columns:
			clamp(195px, 14vw, 215px)
			minmax(0, 1fr)
			auto
			minmax(0, 1fr)
			clamp(195px, 14vw, 215px);
		gap: clamp(var(--space-2), 2vw, var(--space-4));
	}
	.se-header__inner::before {
		content: '';
		grid-column: 1;
	}
	.se-header__nav--left  { grid-column: 2; }
	.se-header__brand      { grid-column: 3; }
	.se-header__nav--right { grid-column: 4; }
	.se-header__cta {
		position: static;
		grid-column: 5;
		justify-self: end;
		align-self: center;
		transform: none;
		top: auto;
		right: auto;
	}
	.se-header__nav .se-menu {
		gap: clamp(var(--space-2), 1.6vw, var(--space-4));
	}
}

.se-menu a { white-space: nowrap; }

.se-header__nav .se-menu {
	display: flex;
	gap: clamp(var(--space-3), 2.5vw, var(--space-5));
	list-style: none;
	margin: 0; padding: 0;
}

.se-header__logo { display: inline-flex; }
.se-header__logo img {
	max-height: 72px;
	width: auto;
	aspect-ratio: 1;
	object-fit: contain;
	display: block;
	background: var(--color-night);
	padding: 4px;
	border-radius: 50%;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 12px 28px -10px rgba(0,0,0,.45);
	transition: transform .35s ease, max-height .35s ease, box-shadow .35s ease;
}
.se-header__logo:hover img { transform: scale(1.04); }
.se-header.is-scrolled .se-header__logo img { max-height: 56px; }
.se-header__title {
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
	color: var(--color-night);
	letter-spacing: var(--tracking-tight);
	background: none;
}

.se-menu {
	list-style: none; display: flex; gap: clamp(var(--space-3), 2.5vw, var(--space-5));
	margin: 0; padding: 0;
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--tracking-eyebrow);
}
.se-menu a {
	color: var(--color-night);
	padding: 8px 0;
	background: none;
	position: relative;
	transition: color .25s ease;
}
/* Mode over-hero (sur image) : text-shadow pour rester lisible sur photos chargees */
.se-header--over-hero .se-menu a {
	text-shadow: 0 1px 8px rgba(0,0,0,.55), 0 0 1px rgba(0,0,0,.4);
}
.se-header--over-hero.is-scrolled .se-menu a {
	text-shadow: none;
}
.se-menu a::after {
	content: ''; position: absolute; left: 50%; right: 50%; bottom: 2px;
	height: 1px; background: var(--color-gold);
	transition: left .35s ease, right .35s ease;
}
.se-menu a:hover::after,
.se-menu a:focus::after,
.se-menu .current-menu-item > a::after,
.se-menu a.is-current::after { left: 0; right: 0; }
.se-menu a:hover,
.se-menu .current-menu-item > a,
.se-menu a.is-current { color: var(--color-burgundy); }
.se-menu a:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 6px;
	border-radius: 2px;
}
.se-header--over-hero .se-menu a.is-current { color: var(--color-gold); }
.se-header--over-hero.is-scrolled .se-menu a.is-current { color: var(--color-burgundy); }

/* === CTA bouton du header (style Aura WhatsApp pill) === */
.se-header__cta-btn {
	padding: 10px 18px;
	font-size: 12px;
	font-weight: 700;
	border-radius: var(--radius-pill);
	letter-spacing: var(--tracking-eyebrow);
}
.se-header__cta-btn::after { font-size: 1.1em; }

/* === Icone panier WooCommerce === */
.se-header__cart {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	color: var(--color-night);
	text-decoration: none;
	transition: color .2s ease, transform .25s cubic-bezier(.2,.7,.2,1);
}
.se-header__cart:hover,
.se-header__cart:focus-visible {
	color: var(--color-burgundy);
	transform: translateY(-1px);
}
.se-header__cart:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
	border-radius: 50%;
}
.se-header__cart-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.se-header__cart-count {
	position: absolute;
	top: -2px;
	right: -2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--color-burgundy);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .04em;
	border-radius: 10px;
	box-shadow: 0 0 0 2px var(--color-cream);
	transition: transform .35s cubic-bezier(.2,.7,.2,1), background .25s ease;
}
.se-header__cart-count.is-empty {
	display: none;
}
.se-header__cart:hover .se-header__cart-count {
	background: var(--color-gold-dark);
	transform: scale(1.08);
}
/* Variante over-hero (header sur image, fond translucide) */
.se-header--over-hero .se-header__cart { color: var(--color-cream); }
.se-header--over-hero.is-scrolled .se-header__cart { color: var(--color-night); }
.se-header--over-hero .se-header__cart-count {
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-cream) 30%, transparent);
}
.se-header--over-hero.is-scrolled .se-header__cart-count {
	box-shadow: 0 0 0 2px var(--color-cream);
}

/* === Lien panier dans drawer mobile === */
.se-mobile-menu__cart {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 18px;
	margin: 0 0 var(--space-3);
	color: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	background: transparent;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	border-radius: var(--radius-pill);
	transition: background .25s ease, color .25s ease;
}
.se-mobile-menu__cart:hover {
	background: var(--color-burgundy);
	color: var(--color-cream);
}
.se-mobile-menu__cart svg { flex-shrink: 0; }
.se-mobile-menu__cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	background: var(--color-gold);
	color: var(--color-night);
	font-size: 11px;
	font-weight: 700;
	border-radius: 11px;
	margin-left: auto;
}
.se-mobile-menu__cart-count.is-empty { display: none; }

/* === Hamburger button === */
.se-header__burger {
	display: none;
	width: 44px; height: 44px;
	border: 0; background: transparent;
	cursor: pointer;
	padding: 12px 10px;
	flex-direction: column; justify-content: space-between;
	align-items: stretch;
	border-radius: 6px;
}
.se-header__burger:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 2px;
}
.se-header__burger span {
	display: block;
	height: 1.5px;
	background: var(--color-night);
	transition: transform .35s ease, opacity .25s ease, background .25s ease;
	transform-origin: center;
}
.se-header--over-hero .se-header__burger span { background: var(--color-cream); }
.se-header--over-hero.is-scrolled .se-header__burger span { background: var(--color-night); }

/* === Mode over-hero : texte cream + soulignement or === */
.se-header--over-hero .se-menu a { color: var(--color-cream); }
.se-header--over-hero .se-menu a::after { background: var(--color-gold); }
.se-header--over-hero .se-menu a:hover,
.se-header--over-hero .se-menu .current-menu-item > a { color: var(--color-gold); }
.se-header--over-hero.is-scrolled .se-menu a { color: var(--color-night); }
.se-header--over-hero.is-scrolled .se-menu a:hover,
.se-header--over-hero.is-scrolled .se-menu .current-menu-item > a { color: var(--color-burgundy); }

/* CTA over-hero : pill transparente avec bordure cream */
.se-header--over-hero .se-header__cta-btn {
	background: transparent;
	color: var(--color-cream);
	border-color: var(--color-cream);
}
.se-header--over-hero .se-header__cta-btn:hover {
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
}
.se-header--over-hero.is-scrolled .se-header__cta-btn {
	background: var(--color-night);
	color: var(--color-cream);
	border-color: var(--color-night);
}
.se-header--over-hero.is-scrolled .se-header__cta-btn:hover {
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
}

/* === Drawer mobile === */
.se-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 100;
	background: color-mix(in srgb, var(--color-burgundy) 96%, #000);
	color: var(--color-cream);
	opacity: 0;
	visibility: hidden;
	transition: opacity .45s cubic-bezier(.2, .8, .2, 1), visibility .45s;
	overflow-y: auto;
}
.se-mobile-menu.is-open {
	opacity: 1;
	visibility: visible;
}
.se-mobile-menu__inner {
	min-height: 100%;
	padding: var(--space-5) var(--container-pad);
	display: flex; flex-direction: column;
}
.se-mobile-menu__head {
	display: grid;
	grid-template-columns: 44px 1fr 44px;
	align-items: center;
	gap: var(--space-3);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 20%, transparent);
}
.se-mobile-menu__brand {
	display: flex; flex-direction: column;
	align-items: center;
	gap: 10px;
	grid-column: 2;
}
.se-mobile-menu__logo {
	display: inline-flex; justify-content: center;
}
.se-mobile-menu__logo img {
	max-height: 64px;
	width: auto;
	aspect-ratio: 1;
	object-fit: contain;
	background: var(--color-night);
	padding: 4px;
	border-radius: 50%;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 12px 28px -10px rgba(0,0,0,.45);
}
.se-mobile-menu__close { grid-column: 3; justify-self: end; }

/* === Motto decoratif (recree le motif grave dans le logo original) === */
.se-motto {
	display: inline-flex; flex-direction: column;
	align-items: center;
	gap: 6px;
}
.se-motto__words {
	display: inline-flex; flex-wrap: wrap;
	justify-content: center;
	gap: 6px 10px;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(.95rem, 1.1vw, 1.05rem);
	letter-spacing: var(--tracking-tight);
	color: color-mix(in srgb, var(--color-cream) 90%, var(--color-gold) 10%);
	font-variation-settings: 'opsz' 24, 'SOFT' 100;
	line-height: 1.2;
}
.se-motto__sep {
	color: var(--color-gold);
	font-style: normal;
	opacity: .7;
}
.se-motto__rule {
	display: inline-flex; align-items: center;
	gap: 10px;
	color: color-mix(in srgb, var(--color-gold) 90%, transparent);
}
.se-motto__line {
	display: inline-block;
	width: clamp(36px, 8vw, 64px); height: 1px;
	background: currentColor;
	opacity: .65;
}
.se-motto__diamond {
	display: inline-block;
	width: 6px; height: 6px;
	background: currentColor;
	transform: rotate(45deg);
	flex-shrink: 0;
	opacity: .85;
}
.se-motto__leaf {
	color: #C8323C; /* rouge feuille d'erable */
	flex-shrink: 0;
}

/* Variante sombre (sur fond clair) : reutilise tokens cream/burgundy */
.se-motto--on-light .se-motto__words {
	color: color-mix(in srgb, var(--color-burgundy) 85%, transparent);
}
.se-mobile-menu__close {
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--color-cream) 30%, transparent);
	color: var(--color-cream);
	width: 44px; height: 44px;
	border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	cursor: pointer;
	transition: background .25s ease, border-color .25s ease;
}
.se-mobile-menu__close:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-night);
}

.se-mobile-menu__nav {
	flex: 1;
	display: flex; align-items: center;
	padding-block: var(--space-5);
}
.se-mobile-menu__list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column;
	gap: var(--space-3);
	width: 100%;
	font-family: var(--font-heading);
	font-size: clamp(2rem, 7vw, 3.5rem);
	line-height: 1;
	font-weight: 350;
	letter-spacing: var(--tracking-display);
}
/* Stagger reveal des items quand le drawer s'ouvre */
.se-mobile-menu__list li {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s cubic-bezier(.2,.7,.2,1), transform .5s cubic-bezier(.2,.7,.2,1);
}
.se-mobile-menu.is-open .se-mobile-menu__list li {
	opacity: 1;
	transform: translateY(0);
	transition-delay: calc(.18s + var(--item-index, 0) * 60ms);
}
@media (prefers-reduced-motion: reduce) {
	.se-mobile-menu__list li { opacity: 1; transform: none; transition: none; }
}
.se-mobile-menu__list a {
	color: var(--color-cream);
	background: none;
	position: relative;
	display: inline-block;
	transition: color .25s ease, padding-left .35s ease;
}
.se-mobile-menu__list a::before {
	content: '';
	display: inline-block;
	width: 0; height: 1.5px;
	background: var(--color-gold);
	vertical-align: middle;
	margin-right: 0;
	transition: width .35s ease, margin-right .35s ease;
}
.se-mobile-menu__list a:hover,
.se-mobile-menu__list .current-menu-item > a,
.se-mobile-menu__list a.is-current {
	color: var(--color-gold);
}
.se-mobile-menu__list a:hover::before,
.se-mobile-menu__list .current-menu-item > a::before,
.se-mobile-menu__list a.is-current::before {
	width: 32px;
	margin-right: 16px;
}
.se-mobile-menu__list a:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 6px;
	border-radius: 2px;
}
.se-mobile-menu__close:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
}

.se-mobile-menu__footer {
	padding-top: var(--space-5);
	border-top: 1px solid color-mix(in srgb, var(--color-gold) 20%, transparent);
	display: flex; flex-direction: column;
	gap: var(--space-3);
}
.se-mobile-menu__footer .se-button {
	align-self: flex-start;
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
}
.se-mobile-menu__contact {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-sm);
	letter-spacing: var(--tracking-mono);
	color: color-mix(in srgb, var(--color-cream) 75%, transparent);
	margin: 0;
}
.se-mobile-menu__contact a {
	color: var(--color-cream);
	background: none;
}
.se-mobile-menu__contact a:hover { color: var(--color-gold); }
.se-mobile-menu__social {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: var(--space-3);
}
.se-mobile-menu__social a { color: var(--color-gold); background: none; }
.se-mobile-menu__social a:hover { color: var(--color-cream); }
.se-mobile-menu__social .se-social-icon { width: 22px; height: 22px; }

/* Body lock quand menu mobile ouvert */
body.se-menu-open { overflow: hidden; padding-right: var(--se-sbw, 0); }
body.se-menu-open .se-header { padding-right: var(--se-sbw, 0); }

/* =========================================================================
   Hero - 2 modes : image-first (Aura Tulum) OU composition typographique
   ========================================================================= */
.se-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* --- Mode IMAGE-FIRST : photo cover + overlay + caption centre ------- */
.se-hero--image {
	min-height: 100vh;
	min-height: 100svh;
	display: flex; align-items: center; justify-content: center;
	text-align: center;
	color: var(--color-cream);
	padding-block: clamp(140px, 18vh, 200px) clamp(160px, 22vh, 240px);
}
@supports (height: 100dvh) {
	.se-hero--image { min-height: 100dvh; }
}
.se-hero--image .se-hero__media {
	position: absolute; inset: 0;
	z-index: 0;
	overflow: hidden;
}
.se-hero--image .se-hero__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(.7) contrast(1.05) brightness(.42);
}

/* Slides : empilees en absolute, fade transition lent, Ken Burns sur l'active */
.se-hero__slide {
	position: absolute; inset: 0;
	opacity: 0;
	transition: opacity 1.5s cubic-bezier(.4, 0, .2, 1);
	will-change: opacity;
}
.se-hero__slide.is-active { opacity: 1; z-index: 1; }
.se-hero__slide img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(.7) contrast(1.05) brightness(.42);
	transform: scale(1.04);
}
.se-hero__slide.is-active img {
	animation: se-kenburns 11s ease-out forwards;
}
@keyframes se-kenburns {
	0%   { transform: scale(1.04) translate(0, 0); }
	100% { transform: scale(1.14) translate(-1%, -1%); }
}
@media (prefers-reduced-motion: reduce) {
	.se-hero__slide { transition: none; }
	.se-hero__slide.is-active img { animation: none; transform: scale(1.04); }
}
.se-hero--image .se-hero__overlay {
	position: absolute; inset: 0;
	background-color: rgba(0, 0, 0, .62);
	background-image:
		/* Voile sombre en haut : assure la lisibilite du menu */
		linear-gradient(180deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.45) 22%, rgba(0,0,0,.3) 60%),
		/* Voile burgundy bas : transition vers le countdown */
		linear-gradient(180deg, transparent 60%, color-mix(in srgb, var(--color-burgundy) 92%, transparent) 100%),
		/* Atmosphere coloree : burgundy gauche-bas + or droite-haut (subtil) */
		radial-gradient(900px 600px at 18% 90%, color-mix(in srgb, var(--color-burgundy) 50%, transparent), transparent 60%),
		radial-gradient(700px 500px at 85% 25%, color-mix(in srgb, var(--color-gold) 18%, transparent), transparent 60%);
}

/* === Glass radial : halo glace au centre, extremites nettes === */
.se-hero--image::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	backdrop-filter: blur(22px) brightness(.5) saturate(1.1);
	-webkit-backdrop-filter: blur(22px) brightness(.5) saturate(1.1);
	-webkit-mask-image: radial-gradient(ellipse 58% 48% at 50% 55%, black 0%, black 35%, transparent 88%);
	mask-image: radial-gradient(ellipse 58% 48% at 50% 55%, black 0%, black 35%, transparent 88%);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
/* Fallback : pas de backdrop-filter -> on garde une vignette sombre classique */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.se-hero--image::after {
		background: radial-gradient(ellipse 58% 48% at 50% 55%, rgba(0,0,0,.7) 0%, rgba(0,0,0,.4) 50%, transparent 90%);
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	/* Pas de motion mais on garde le glass : c'est statique */
}
.se-hero--image .se-hero__layout {
	position: relative; z-index: 2;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.se-hero__caption {
	max-width: 920px;
	margin: 0 auto;
	display: flex; flex-direction: column;
	align-items: center;
	gap: var(--space-3);
}
.se-hero--image .se-hero__eyebrow {
	display: inline-flex; align-items: center; gap: var(--space-3);
	justify-content: center;
	margin: 0 0 var(--space-3);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
	text-shadow: 0 1px 8px rgba(0,0,0,.7), 0 0 2px rgba(0,0,0,.5);
}
.se-hero--image .se-hero__eyebrow::before,
.se-hero--image .se-hero__eyebrow::after {
	content: '';
	width: 36px; height: 1px;
	background: var(--color-gold);
	opacity: .7;
}
.se-hero--image .se-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(2.5rem, 5.5vw, 5rem);
	line-height: 1.02;
	font-weight: 400;
	letter-spacing: var(--tracking-display);
	color: var(--color-cream);
	margin: 0 0 var(--space-3);
	font-variation-settings: 'opsz' 144, 'SOFT' 20;
	text-shadow: 0 2px 32px rgba(0,0,0,.6), 0 0 8px rgba(0,0,0,.4);
	text-align: center;
}
.se-hero--image .se-hero__title em {
	font-style: italic;
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
	color: var(--color-gold);
}
.se-hero__motto-inline {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.125rem, 1.5vw, 1.375rem);
	color: var(--color-cream);
	margin: 0 0 var(--space-4);
	font-variation-settings: 'opsz' 24, 'SOFT' 100;
	letter-spacing: var(--tracking-tight);
	line-height: 1.5;
	text-align: center;
	text-shadow: 0 1px 14px rgba(0,0,0,.65), 0 0 4px rgba(0,0,0,.35);
}
.se-hero__motto-inline em + em { margin-left: 8px; }

/* Hero motto avec motif decoratif (mots + filet/lozenge/erable/lozenge/filet) */
.se-hero__motto-wrap {
	display: flex;
	justify-content: center;
	margin: 0 0 var(--space-4);
}
.se-hero__motto-wrap .se-motto {
	gap: 12px;
}
.se-hero__motto-wrap .se-motto__words {
	font-size: clamp(1.125rem, 1.5vw, 1.375rem);
	color: var(--color-cream);
	text-shadow: 0 1px 14px rgba(0,0,0,.7), 0 0 4px rgba(0,0,0,.4);
}
.se-hero__motto-wrap .se-motto__sep {
	color: var(--color-gold);
	opacity: .95;
}
.se-hero__motto-wrap .se-motto__rule {
	color: var(--color-gold);
	gap: 12px;
	filter: drop-shadow(0 1px 4px rgba(0,0,0,.85)) drop-shadow(0 0 8px rgba(0,0,0,.45));
}
.se-hero__motto-wrap .se-motto__line {
	width: clamp(48px, 9vw, 80px);
	height: 1.5px;
	opacity: 1;
}
.se-hero__motto-wrap .se-motto__diamond {
	width: 7px; height: 7px;
	opacity: 1;
}
.se-hero__motto-wrap .se-motto__leaf {
	width: 16px;
	height: 16px;
}
.se-hero__where-when {
	display: inline-flex; align-items: center;
	gap: clamp(12px, 1.8vw, 22px);
	flex-wrap: wrap;
	justify-content: center;
	font-family: var(--font-eyebrow);
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-cream);
	margin: 0 0 var(--space-5);
	text-align: center;
	text-shadow: 0 1px 12px rgba(0,0,0,.7), 0 0 2px rgba(0,0,0,.5);

	/* Reveal animation on mount */
	animation: se-where-when-in .9s cubic-bezier(.2,.7,.2,1) both;
	animation-delay: .55s;
}
.se-hero__date,
.se-hero__place {
	display: inline-block;
	color: var(--color-cream);
	position: relative;
}
/* Soulignement or anime sur le lieu : draw on mount + pulse */
.se-hero__place::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: -6px;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--color-gold) 30%, var(--color-gold) 70%, transparent);
	transform-origin: center;
	transform: scaleX(0);
	animation: se-underline-draw .9s cubic-bezier(.2,.7,.2,1) 1.4s both,
	           se-underline-pulse 3.2s ease-in-out 2.4s infinite;
}

/* Separateur or anime : barre pulsante */
.se-hero__sep {
	position: relative;
	display: inline-block;
	width: clamp(40px, 6vw, 72px);
	height: 2px;
	background: var(--color-gold);
	border-radius: 2px;
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-gold) 80%, transparent);
	transform-origin: center;
	animation: se-sep-pulse 2.8s ease-in-out infinite;
}
.se-hero__sep::before,
.se-hero__sep::after {
	content: '';
	position: absolute;
	top: 50%;
	width: 5px; height: 5px;
	background: var(--color-gold);
	border-radius: 50%;
	transform: translate(-50%, -50%);
}
.se-hero__sep::before { left: 0; }
.se-hero__sep::after  { left: 100%; }

@keyframes se-where-when-in {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes se-sep-pulse {
	0%, 100% {
		transform: scaleX(1);
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-gold) 80%, transparent);
	}
	50% {
		transform: scaleX(1.15);
		box-shadow: 0 0 18px 2px color-mix(in srgb, var(--color-gold) 55%, transparent);
	}
}
@keyframes se-underline-draw {
	from { transform: scaleX(0); }
	to   { transform: scaleX(1); }
}
@keyframes se-underline-pulse {
	0%, 100% { opacity: .6; }
	50%      { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.se-hero__where-when,
	.se-hero__date,
	.se-hero__place,
	.se-hero__sep {
		animation: none !important;
	}
	.se-hero__date,
	.se-hero__place {
		-webkit-text-fill-color: var(--color-cream);
		color: var(--color-cream);
		background: none;
	}
}
.se-hero--image .se-hero__cta {
	display: flex; flex-wrap: wrap;
	gap: var(--space-3);
	justify-content: center;
	margin: 0;
}
.se-hero--image .se-hero__cta .se-button {
	transition: transform .25s cubic-bezier(.2,.7,.2,1), background .2s ease, color .2s ease, border-color .2s ease, box-shadow .25s ease;
}
.se-hero--image .se-hero__cta .se-button--primary:hover {
	transform: translateY(-2px) scale(1.03);
	box-shadow: 0 14px 36px -12px rgba(0,0,0,.45);
}
.se-hero--image .se-hero__cta .se-button:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
}

/* Annee : retire en filigrane (trop editorial) — gardee comme element discret centre OU ne pas afficher */
.se-hero--image .se-hero__year { display: none; }

/* === Side label vertical (signature premium) === */
.se-hero__side {
	position: absolute;
	left: clamp(20px, 3vw, 48px);
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	pointer-events: none;
	display: flex; align-items: center;
}
.se-hero__side-label {
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
	white-space: nowrap;
	text-shadow: 0 1px 8px rgba(0,0,0,.7), 0 0 2px rgba(0,0,0,.5);
}
.se-hero__side-label::before,
.se-hero__side-label::after {
	content: '';
	display: inline-block;
	width: 1px; height: 32px;
	background: color-mix(in srgb, var(--color-gold) 60%, transparent);
	margin: 12px 0;
}

@media (max-width: 920px) {
	.se-hero__side { display: none; }
}

/* === Hero slider controls (premium) === */
.se-hero__controls {
	position: absolute;
	left: 50%; bottom: clamp(32px, 4vh, 56px);
	transform: translateX(-50%);
	z-index: 4;
	display: flex; align-items: center;
	gap: var(--space-4);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	color: color-mix(in srgb, var(--color-cream) 92%, transparent);
	padding: 10px 18px;
	background: color-mix(in srgb, var(--color-night) 35%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid color-mix(in srgb, var(--color-cream) 12%, transparent);
	border-radius: 999px;
}
.se-hero__nav {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px;
	border: 1px solid color-mix(in srgb, var(--color-cream) 35%, transparent);
	background: transparent;
	color: var(--color-cream);
	cursor: pointer;
	border-radius: 50%;
	transition: background .3s ease, border-color .3s ease, color .3s ease, transform .3s ease;
}
.se-hero__nav:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-night);
}
.se-hero__nav:hover.se-hero__nav--prev { transform: translateX(-2px); }
.se-hero__nav:hover.se-hero__nav--next { transform: translateX(2px); }

.se-hero__counter {
	display: inline-flex; align-items: baseline; gap: 4px;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-mono);
	color: var(--color-gold);
	min-width: 64px;
	justify-content: center;
}
.se-hero__counter-sep { opacity: .5; margin: 0 2px; }

.se-hero__pagination {
	list-style: none; padding: 0; margin: 0;
	display: flex; gap: var(--space-2);
	align-items: center;
}
.se-hero__dot {
	position: relative;
	display: block;
	padding: 8px 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	width: 28px;
	transition: width .4s ease;
}
.se-hero__dot.is-active { width: 56px; }
.se-hero__dot-track,
.se-hero__dot-progress {
	display: block;
	position: absolute;
	left: 0; right: 0;
	top: 50%; transform: translateY(-50%);
	height: 2px;
}
.se-hero__dot-track {
	background: color-mix(in srgb, var(--color-cream) 30%, transparent);
	transition: background .3s ease;
}
.se-hero__dot-progress {
	right: auto;
	width: 0;
	background: var(--color-gold);
	transition: none;
}
.se-hero__dot.is-active .se-hero__dot-track {
	background: color-mix(in srgb, var(--color-cream) 18%, transparent);
}
.se-hero__dot.is-active .se-hero__dot-progress {
	width: 100%;
	transition: width var(--se-hero-autoplay, 7000ms) linear;
}
.se-hero--paused .se-hero__dot.is-active .se-hero__dot-progress,
.se-hero:hover .se-hero__dot.is-active .se-hero__dot-progress,
.se-hero:focus-within .se-hero__dot.is-active .se-hero__dot-progress {
	animation-play-state: paused;
	transition: none;
}
.se-hero__dot:hover .se-hero__dot-track {
	background: color-mix(in srgb, var(--color-cream) 60%, transparent);
}
.se-hero__dot:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
	border-radius: 2px;
}

/* Pause/play button (WCAG 2.2.2 - controle visible auto-moving content) */
.se-hero__playpause {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px;
	border: 1px solid color-mix(in srgb, var(--color-cream) 30%, transparent);
	background: transparent;
	color: var(--color-cream);
	cursor: pointer;
	border-radius: 50%;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.se-hero__playpause:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-night);
}
.se-hero__playpause:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
}
.se-hero__playpause-icon { display: block; }
.se-hero__playpause-icon--play { display: none; }
.se-hero--paused .se-hero__playpause-icon--pause { display: none; }
.se-hero--paused .se-hero__playpause-icon--play { display: block; }

/* Hero controls : responsive
   - <= 720px : composant plus compact (boutons 36px, gaps reduits, padding plus serre)
   - <= 540px : on retire la pagination (dots) pour ne garder que prev/counter/playpause/next
   - <= 380px : compteur tres condense et tailles encore reduites */
@media (max-width: 720px) {
	.se-hero__controls {
		gap: var(--space-3);
		padding: 8px 12px;
		max-width: calc(100vw - 24px);
	}
	.se-hero__nav { width: 38px; height: 38px; }
	.se-hero__nav svg { width: 18px; height: 12px; }
	.se-hero__playpause { width: 32px; height: 32px; }
	.se-hero__counter { min-width: 52px; gap: 2px; }
	.se-hero__pagination { gap: 6px; }
	.se-hero__dot { width: 22px; }
	.se-hero__dot.is-active { width: 40px; }
}
@media (max-width: 540px) {
	.se-hero__controls {
		gap: 10px;
		padding: 6px 10px;
		bottom: clamp(20px, 3vh, 36px);
	}
	.se-hero__pagination { display: none; }
	.se-hero__nav { width: 34px; height: 34px; }
	.se-hero__playpause { width: 30px; height: 30px; }
	.se-hero__counter { min-width: 48px; font-size: 11px; }
}
@media (max-width: 380px) {
	.se-hero__controls { gap: 6px; padding: 5px 8px; }
	.se-hero__nav { width: 30px; height: 30px; }
	.se-hero__nav svg { width: 14px; height: 10px; }
	.se-hero__playpause { width: 26px; height: 26px; }
	.se-hero__playpause svg { width: 11px; height: 11px; }
	.se-hero__counter { min-width: 40px; font-size: 10px; }
}

/* Indicateur scroll */
.se-hero__scroll {
	position: absolute;
	left: 50%; bottom: var(--space-4);
	transform: translateX(-50%);
	z-index: 3;
	display: inline-flex; flex-direction: column; align-items: center; gap: 8px;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-cream) 80%, transparent);
	background: none;
	transition: color .25s ease, transform .25s ease;
}
.se-hero__scroll:hover {
	color: var(--color-gold);
	transform: translate(-50%, 4px);
	background: none;
}
.se-hero__scroll svg line {
	stroke: currentColor;
	animation: se-scroll 1.6s ease-in-out infinite;
}
@keyframes se-scroll {
	0%   { transform: translateY(0);  opacity: 1; }
	60%  { transform: translateY(4px); opacity: 0; }
	100% { transform: translateY(0);  opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.se-hero__scroll svg line { animation: none; }
}

/* --- Mode COMPOSITION (fallback : logo grand + typographie) ----------- */
.se-hero--composition {
	padding-block: clamp(80px, 11vw, 180px) clamp(72px, 9vw, 140px);
	background: var(--color-cream);
}
.se-hero__bg {
	position: absolute; inset: 0;
	z-index: 0;
	background:
		radial-gradient(900px 700px at 78% 38%, color-mix(in srgb, var(--color-gold) 32%, transparent), transparent 65%),
		radial-gradient(700px 700px at 18% 88%, color-mix(in srgb, var(--color-terra) 25%, transparent), transparent 60%),
		radial-gradient(600px 600px at 95% 95%, color-mix(in srgb, var(--color-primary) 18%, transparent), transparent 55%),
		linear-gradient(160deg, var(--color-cream) 30%, color-mix(in srgb, var(--color-cream-warm) 70%, var(--color-gold-soft) 30%) 100%);
}
.se-hero__bg::after {
	content: '';
	position: absolute; inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='360' height='360'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .12 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	mix-blend-mode: multiply;
	opacity: .4;
	pointer-events: none;
}
.se-hero::after {
	content: '';
	position: absolute;
	left: var(--container-pad); right: var(--container-pad);
	bottom: 0;
	height: var(--rule-heavy);
	background: var(--color-primary);
	z-index: 2;
}
.se-hero__layout {
	position: relative; z-index: 2;
	display: grid;
	grid-template-columns: 0.85fr 1fr;
	align-items: center;
	gap: clamp(40px, 7vw, 96px);
}

/* --- Colonne visuelle : logo grand + motto vertical --- */
.se-hero__visual {
	position: relative;
	display: flex; flex-direction: column;
	align-items: flex-start; gap: var(--space-5);
}
.se-hero__logo {
	display: block;
	width: 100%;
	max-width: clamp(240px, 32vw, 420px);
	height: auto;
	filter: drop-shadow(0 24px 48px rgba(92, 26, 27, .18));
}
.se-hero__motto {
	margin: 0;
	display: flex; flex-direction: column;
	gap: 4px;
	padding-left: var(--space-3);
	border-left: var(--rule-thick) solid var(--color-gold);
}
.se-hero__motto em {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	line-height: 1.05;
	font-weight: 400;
	font-variation-settings: 'opsz' 32, 'SOFT' 100;
	color: var(--color-primary);
	letter-spacing: var(--tracking-tight);
}

/* --- Colonne copy : eyebrow / titre / annee / meta / CTA --- */
.se-hero__copy {
	display: flex; flex-direction: column;
	gap: var(--space-5);
}
.se-hero__heading {
	display: flex; flex-direction: column;
	gap: var(--space-3);
}
.se-hero__index {
	display: flex; align-items: center;
	gap: var(--space-3);
	margin: 0;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	font-weight: 500;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold-dark);
}
.se-hero__index::after {
	content: '';
	flex: 1; height: 1px;
	background: var(--color-rule-gold);
}
.se-hero__eyebrow {
	color: var(--color-primary);
}
.se-hero__title {
	font-family: var(--font-heading);
	font-size: clamp(2.5rem, 6.5vw, 5.5rem);
	line-height: .96;
	font-weight: 350;
	letter-spacing: var(--tracking-display);
	color: var(--color-night);
	margin: 0;
	font-variation-settings: 'opsz' 144, 'SOFT' 20;
}
.se-hero__year {
	margin: 0;
	line-height: 1;
}
.se-hero__year em {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(3.5rem, 9vw, 8rem);
	font-weight: 350;
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
	color: var(--color-gold-dark);
	letter-spacing: -.02em;
	line-height: .82;
	display: inline-block;
	margin-top: -.05em;
}

.se-hero__meta {
	display: grid;
	grid-template-columns: repeat(2, auto);
	gap: var(--space-4) var(--space-5);
	margin: 0;
	padding-top: var(--space-4);
	border-top: var(--rule) solid var(--color-rule-strong);
}
.se-hero__meta-item { margin: 0; }
.se-hero__meta-item dt {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-muted);
	margin: 0 0 4px;
}
.se-hero__meta-item dd {
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 1.5vw, 1.5rem);
	font-weight: 400;
	color: var(--color-night);
	letter-spacing: var(--tracking-tight);
	margin: 0;
	font-variation-settings: 'opsz' 32, 'SOFT' 30;
}
.se-hero__meta-item dd span {
	display: block;
	font-size: var(--fs-base);
	color: var(--color-muted);
}

.se-hero__cta {
	display: flex; flex-wrap: wrap;
	gap: var(--space-3);
	margin: 0;
}

/* =========================================================================
   Section : indice + filet + titre + intro
   ========================================================================= */
.se-section {
	padding-block: clamp(56px, 6.5vw, 96px);
	position: relative;
}
.se-section--cream-warm { background: var(--color-cream-warm); }
.se-section--cream-dark { background: var(--color-cream-dark); }
.se-section--night {
	background: var(--color-night);
	color: var(--color-cream);
}
.se-section--burgundy {
	background:
		radial-gradient(900px 600px at 80% 20%, color-mix(in srgb, var(--color-gold) 25%, transparent), transparent 60%),
		radial-gradient(700px 600px at 12% 90%, color-mix(in srgb, var(--color-terra) 20%, transparent), transparent 55%),
		var(--color-burgundy);
	color: var(--color-cream);
}
.se-section--night h1, .se-section--night h2, .se-section--night h3,
.se-section--burgundy h1, .se-section--burgundy h2, .se-section--burgundy h3 { color: var(--color-cream); }
.se-section--night a, .se-section--burgundy a { color: var(--color-gold); }
.se-section--night .se-eyebrow, .se-section--burgundy .se-eyebrow { color: var(--color-gold); }
.se-section--night .se-index, .se-section--burgundy .se-index { color: var(--color-gold); }
.se-section--burgundy .se-section__index { border-top-color: var(--color-gold); color: var(--color-gold); }
.se-section--burgundy .se-section__title { color: var(--color-cream); }
.se-section--burgundy .se-section__intro { color: rgba(245,237,224,.82); }

.se-section__header {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: var(--space-4);
	margin-bottom: var(--space-6);
	align-items: start;
}
.se-section__index {
	grid-column: 1 / span 2;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
	padding-top: 12px;
	border-top: var(--rule-thick) solid var(--color-gold);
}
.se-section--night .se-section__index { border-top-color: var(--color-gold); color: var(--color-gold); }
.se-section__title {
	grid-column: 3 / span 7;
	font-family: var(--font-heading);
	font-size: clamp(2.25rem, 4vw, 3.5rem);  /* 36-56px (etait 48-76px) */
	line-height: 1.05;
	letter-spacing: var(--tracking-tight);
	color: var(--color-night);
	margin: 0;
	font-weight: 400;
	font-variation-settings: 'opsz' 72, 'SOFT' 0;
}
.se-section--night .se-section__title { color: var(--color-cream); }
.se-section__title em {
	font-style: italic;
	color: var(--color-gold-dark);
	font-variation-settings: 'opsz' 96, 'SOFT' 100;
}
.se-section--night .se-section__title em { color: var(--color-gold); }
.se-section__intro {
	grid-column: 3 / span 7;
	font-family: var(--font-body);
	font-size: var(--fs-lg);
	line-height: var(--lh-loose);
	color: var(--color-muted);
	margin: var(--space-3) 0 0;
	padding: 0;
	border: 0;
	max-width: 62ch;
}
.se-section--night .se-section__intro { color: rgba(248,245,236,.78); }

.se-section__lead {
	max-width: var(--container-narrow);
	margin: 0;
	font-family: var(--font-heading);
	font-size: var(--fs-2xl);
	line-height: var(--lh-snug);
	font-weight: 350;
	color: var(--color-night);
	letter-spacing: var(--tracking-tight);
	font-variation-settings: 'opsz' 32, 'SOFT' 30;
}
.se-section__lead p { margin: 0 0 .8em; }
.se-section__lead p:last-child { margin-bottom: 0; }

.se-section__footer {
	grid-column: 1 / -1;
	margin-top: var(--space-6);
	display: flex; gap: var(--space-3); align-items: center;
	justify-content: center;
	text-align: center;
}
.se-section__placeholder {
	grid-column: 3 / span 9;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: var(--fs-lg);
	color: var(--color-muted);
	padding: var(--space-4) 0;
	border-top: var(--rule) solid var(--color-rule);
	border-bottom: var(--rule) solid var(--color-rule);
}

.se-section__body {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: var(--space-4);
}

/* =========================================================================
   Countdown premium : chiffres serif geants, filigrane date, progress bars
   ========================================================================= */
.se-countdown-section {
	position: relative;
	padding-block: clamp(48px, 5.5vw, 80px);
	background:
		radial-gradient(900px 500px at 50% 0%, color-mix(in srgb, var(--color-gold) 14%, transparent), transparent 60%),
		radial-gradient(700px 500px at 50% 100%, color-mix(in srgb, var(--color-burgundy) 10%, transparent), transparent 65%),
		var(--color-cream);
	overflow: hidden;
	isolation: isolate;
}
.se-countdown-section::before,
.se-countdown-section::after {
	content: '';
	position: absolute;
	left: var(--container-pad); right: var(--container-pad);
	height: 1px;
	background: var(--color-rule-gold);
	z-index: 2;
}
.se-countdown-section::before { top: 0; }
.se-countdown-section::after  { bottom: 0; }

/* Filigrane date du debut, en arriere-plan */
.se-countdown-section__filigree {
	position: absolute;
	left: 50%; top: 50%;
	transform: translate(-50%, -50%);
	z-index: 0;
	pointer-events: none;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(8rem, 22vw, 22rem);
	line-height: 1;
	color: color-mix(in srgb, var(--color-burgundy) 6%, transparent);
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
	letter-spacing: -.04em;
	white-space: nowrap;
	font-feature-settings: 'lnum', 'tnum';
}

/* === Header : eyebrow encadré === */
.se-countdown-section__header {
	position: relative; z-index: 2;
	text-align: center;
	margin-bottom: clamp(20px, 2.5vw, 36px);
}
.se-countdown-section__eyebrow {
	display: inline-flex; align-items: center; gap: var(--space-3);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
	margin: 0;
}
.se-countdown-section__eyebrow span {
	display: inline-block;
	width: 36px; height: 1px;
	background: var(--color-gold);
	opacity: .7;
}

/* === Grille des unites === */
.se-countdown {
	position: relative; z-index: 2;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	max-width: 1200px;
	margin: 0 auto;
	gap: 0;
}
.se-countdown__item {
	position: relative;
	text-align: center;
	padding: var(--space-3) var(--space-3) var(--space-4);
	display: flex; flex-direction: column;
	align-items: center;
	gap: var(--space-3);
}
.se-countdown__item + .se-countdown__item::before {
	content: '';
	position: absolute;
	left: 0; top: 18%; bottom: 18%;
	width: 1px;
	background: linear-gradient(to bottom, transparent, var(--color-rule-gold), transparent);
}

.se-countdown__num {
	display: block;
	font-family: var(--font-heading);
	font-size: clamp(3rem, 8vw, 6.5rem);
	line-height: .85;
	font-weight: 300;
	color: var(--color-night);
	letter-spacing: -.04em;
	font-variation-settings: 'opsz' 144, 'SOFT' 0;
	font-variant-numeric: lining-nums tabular-nums;
	font-feature-settings: 'lnum', 'tnum', 'kern';
	will-change: transform, opacity;
}
.se-countdown__num.is-flip {
	animation: se-countdown-flip .6s cubic-bezier(.2, .8, .2, 1);
}
@keyframes se-countdown-flip {
	0%   { opacity: 1;  transform: translateY(0); }
	35%  { opacity: 0;  transform: translateY(-12px); }
	36%  { opacity: 0;  transform: translateY(14px); }
	100% { opacity: 1;  transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
	.se-countdown__num.is-flip { animation: none; }
}

.se-countdown__label {
	display: block;
	margin-top: var(--space-2);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
	opacity: .75;
}

/* Progress bar : 1.5px de hauteur, gold, transform scale */
.se-countdown__progress {
	display: block;
	position: relative;
	width: 56px; height: 1.5px;
	background: color-mix(in srgb, var(--color-night) 12%, transparent);
	overflow: hidden;
	border-radius: 1px;
	margin-top: 6px;
}
.se-countdown__progress-bar {
	position: absolute; left: 0; top: 0; bottom: 0;
	width: 100%;
	background: var(--color-gold);
	transform-origin: left center;
	transform: scaleX(0);
	transition: transform .9s cubic-bezier(.4, 0, .2, 1);
}
[data-progress="seconds"] { transition-duration: .9s; }

/* === Footer : caption + sub === */
.se-countdown-section__footer {
	position: relative; z-index: 2;
	margin-top: var(--space-4);
	text-align: center;
}
.se-countdown__caption {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 2vw, 1.625rem);
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 32, 'SOFT' 100;
}
.se-countdown__caption em {
	font-style: italic;
}
.se-countdown__sub {
	margin: var(--space-2) 0 0;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
}

/* Hierarchie : h2 visuel identique a l'ancien <p>, semantique correcte */
h2.se-countdown-section__eyebrow {
	font-weight: 500;
	line-height: 1;
}

/* CTA "Ajouter au calendrier" : discret mais identifiable */
.se-countdown__cta-wrap {
	margin-top: var(--space-3);
	display: flex;
	justify-content: center;
}
.se-countdown__cta {
	display: inline-flex; align-items: center;
	gap: 10px;
	padding: 12px 22px;
	background: transparent;
	color: var(--color-burgundy);
	border: 1px solid color-mix(in srgb, var(--color-burgundy) 30%, transparent);
	border-radius: 999px;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	font-weight: 500;
	text-decoration: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.se-countdown__cta:hover {
	background: var(--color-burgundy);
	color: var(--color-cream);
	border-color: var(--color-burgundy);
	transform: translateY(-1px);
}
.se-countdown__cta:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
}
.se-countdown__cta-icon {
	transition: transform .25s cubic-bezier(.2,.7,.2,1);
}
.se-countdown__cta:hover .se-countdown__cta-icon { transform: rotate(-6deg); }

/* Etat post-evenement : remplace le countdown */
.se-countdown--ended { opacity: .35; }
.se-countdown__ended {
	position: relative; z-index: 2;
	display: flex; flex-direction: column;
	align-items: center;
	gap: var(--space-3);
	margin: var(--space-5) auto 0;
	padding: var(--space-4) var(--space-4);
	max-width: 540px;
	text-align: center;
	background: color-mix(in srgb, var(--color-cream) 70%, var(--color-gold) 8%);
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	border-radius: 8px;
}
.se-countdown__ended[hidden] { display: none; }
.se-countdown__ended-title {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.4rem, 2.4vw, 1.875rem);
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 48, 'SOFT' 100;
}

@media (max-width: 720px) {
	.se-countdown { grid-template-columns: repeat(2, 1fr); row-gap: var(--space-4); }
	.se-countdown__item:nth-child(odd)::before { display: none; }
	.se-countdown__item:nth-child(3)::before,
	.se-countdown__item:nth-child(4)::before { top: -8px; bottom: auto; left: 18%; right: 18%; width: auto; height: 1px; background: linear-gradient(to right, transparent, var(--color-rule-gold), transparent); }
	.se-countdown-section__filigree { font-size: clamp(5rem, 28vw, 9rem); }
}

/* =========================================================================
   About : Codex editorial Bamileke ("Royal Codex x Ndop Manuscript")
   ========================================================================= */
.se-section--about.se-codex {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 96%, var(--color-gold) 4%) 0%,
			var(--color-cream) 50%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-burgundy) 8%) 100%);
}

/* --- Fond : motif lattice ndop + halo radial --- */
.se-codex__ground {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}
.se-codex__ground-lattice {
	position: absolute;
	inset: 0;
	opacity: .055;
	mix-blend-mode: multiply;
	background-image:
		repeating-linear-gradient( 45deg, var(--color-burgundy) 0 1px, transparent 1px 26px),
		repeating-linear-gradient(-45deg, var(--color-burgundy) 0 1px, transparent 1px 26px);
}
.se-codex__ground-glow {
	position: absolute;
	right: -12%; top: 8%;
	width: min(820px, 70vw); height: min(820px, 70vw);
	background:
		radial-gradient(circle at center,
			color-mix(in srgb, var(--color-gold) 22%, transparent) 0%,
			color-mix(in srgb, var(--color-gold) 6%, transparent) 35%,
			transparent 65%);
	filter: blur(8px);
}
.se-codex::after {
	content: '';
	position: absolute;
	left: -8%; bottom: -10%;
	width: min(640px, 60vw); height: min(640px, 60vw);
	background: radial-gradient(circle at center, color-mix(in srgb, var(--color-burgundy) 14%, transparent), transparent 60%);
	pointer-events: none;
	z-index: 0;
}

/* --- Container grille --- */
.se-codex__container {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"header"
		"portrait"
		"chronicle"
		"proc"
		"signature";
	gap: clamp(28px, 5vw, 56px);
	max-width: 1240px;
	margin: 0 auto;
}
.se-codex--text-only .se-codex__container {
	grid-template-areas:
		"header"
		"chronicle"
		"proc"
		"signature";
}
@media (min-width: 980px) {
	.se-codex__container {
		grid-template-columns: 76px minmax(0, 5fr) minmax(0, 7fr);
		grid-template-areas:
			"header    header   header"
			"rail      portrait chronicle"
			"proc      proc     proc"
			"signature signature signature";
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(48px, 6vw, 88px);
	}
	.se-codex--text-only .se-codex__container {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas:
			"header    header"
			"rail      chronicle"
			"proc      proc"
			"signature signature";
	}
}

/* --- Header --- */
.se-codex__header {
	grid-area: header;
	max-width: 980px;
}
.se-codex__overline {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 78%, transparent);
	margin-bottom: clamp(16px, 2vw, 28px);
}
.se-codex__overline-rule {
	width: 56px; height: 1px;
	background: linear-gradient(to right, transparent, var(--color-gold) 30%, var(--color-gold));
	flex-shrink: 0;
}
.se-codex__overline-dot {
	width: 5px; height: 5px;
	background: var(--color-gold);
	transform: rotate(45deg);
	flex-shrink: 0;
}
.se-codex__title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 360;
	font-style: normal;
	font-size: clamp(2.4rem, 5.4vw, 4.4rem);
	line-height: 1.02;
	letter-spacing: -0.015em;
	color: var(--color-night);
	font-variation-settings: 'opsz' 120, 'SOFT' 30;
}
.se-codex__title-words em,
.se-codex__title-words i {
	font-style: italic;
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 144, 'SOFT' 80;
}
.se-codex__title-flourish {
	display: block;
	width: clamp(180px, 24vw, 320px);
	height: auto;
	margin-top: clamp(8px, 1.4vw, 16px);
	color: var(--color-gold);
	overflow: visible;
}

/* --- Rail ceremoniel --- */
.se-codex__rail {
	grid-area: rail;
	display: none;
	flex-direction: column;
	align-items: center;
	gap: var(--space-4);
	position: relative;
}
@media (min-width: 980px) {
	.se-codex__rail {
		display: flex;
		position: sticky;
		top: calc(72px + 32px);
		align-self: start;
		height: fit-content;
	}
}

.se-codex__seal {
	position: relative;
	width: 76px;
	height: 76px;
	display: grid;
	place-items: center;
	color: var(--color-burgundy);
}
.se-codex__seal-svg {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	color: color-mix(in srgb, var(--color-gold) 80%, var(--color-burgundy));
	animation: se-codex-seal-rotate 60s linear infinite;
}
@keyframes se-codex-seal-rotate {
	to { transform: rotate(360deg); }
}
.se-codex__seal-num {
	position: relative;
	z-index: 2;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: 1.65rem;
	color: var(--color-burgundy);
	letter-spacing: -.02em;
	font-variation-settings: 'opsz' 60, 'SOFT' 50;
}

.se-codex__thread {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	flex-grow: 1;
	padding: var(--space-3) 0;
}
.se-codex__thread-line {
	width: 1px;
	flex: 1 1 auto;
	min-height: 36px;
	background: linear-gradient(to bottom,
		color-mix(in srgb, var(--color-gold) 18%, transparent),
		var(--color-gold) 50%,
		color-mix(in srgb, var(--color-gold) 18%, transparent));
}
.se-codex__thread-diamond {
	width: 10px;
	height: 10px;
	background: var(--color-gold);
	transform: rotate(45deg);
	box-shadow: 0 0 0 2px var(--color-cream),
				0 0 0 3px color-mix(in srgb, var(--color-gold) 50%, transparent);
}
.se-codex__thread-diamond--small {
	width: 5px; height: 5px;
	background: color-mix(in srgb, var(--color-gold) 70%, var(--color-burgundy));
	box-shadow: none;
}

.se-codex__rail-byline {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	white-space: nowrap;
	padding-top: var(--space-3);
}

/* --- Portrait : cadre ndop --- */
.se-codex__portrait {
	grid-area: portrait;
	margin: 0;
	position: relative;
}
.se-codex__portrait-frame {
	position: relative;
	padding: clamp(14px, 1.8vw, 22px);
	background:
		linear-gradient(135deg,
			color-mix(in srgb, var(--color-burgundy) 92%, #000) 0%,
			var(--color-burgundy) 50%,
			color-mix(in srgb, var(--color-burgundy) 86%, var(--color-night)) 100%);
	box-shadow:
		0 36px 80px -32px color-mix(in srgb, var(--color-burgundy) 55%, transparent),
		0 10px 30px -14px rgba(0,0,0,.28),
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent);
}
.se-codex__portrait-pattern {
	position: absolute;
	pointer-events: none;
}
.se-codex__portrait-pattern--outer {
	inset: 0;
	background-image:
		repeating-linear-gradient( 45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 14px),
		repeating-linear-gradient(-45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 14px);
	-webkit-mask: linear-gradient(#000 0 0) content-box,
				  linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box,
		  linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	padding: clamp(14px, 1.8vw, 22px);
	box-sizing: border-box;
}
.se-codex__portrait-pattern--inner {
	inset: 0;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent);
}
.se-codex__portrait-image {
	position: relative;
	overflow: hidden;
}
.se-codex__portrait-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4/5;
	object-fit: cover;
	transition: transform 1.4s cubic-bezier(.2,.7,.2,1), filter .6s ease;
	filter: saturate(1.05) contrast(1.02);
}
.se-codex__portrait:hover .se-codex__portrait-image img {
	transform: scale(1.04);
}
.se-codex__portrait-veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--color-night) 38%, transparent) 100%),
		linear-gradient(135deg, transparent 60%, color-mix(in srgb, var(--color-burgundy) 18%, transparent) 100%);
	pointer-events: none;
	mix-blend-mode: multiply;
}

/* Coins ornementaux (museum-label style) */
.se-codex__portrait-corner {
	position: absolute;
	width: 22px; height: 22px;
	border: 2px solid var(--color-gold);
	z-index: 3;
}
.se-codex__portrait-corner--tl { top: -1px; left: -1px;  border-right: none; border-bottom: none; }
.se-codex__portrait-corner--tr { top: -1px; right: -1px; border-left:  none; border-bottom: none; }
.se-codex__portrait-corner--bl { bottom: -1px; left: -1px;  border-right: none; border-top: none; }
.se-codex__portrait-corner--br { bottom: -1px; right: -1px; border-left:  none; border-top: none; }

.se-codex__portrait-caption {
	display: flex;
	align-items: baseline;
	gap: var(--space-3);
	margin-top: var(--space-3);
	padding-left: 2px;
}
.se-codex__portrait-caption-tag {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	border: 1px solid color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	padding: 4px 8px;
	flex-shrink: 0;
}
.se-codex__portrait-caption-text {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: var(--fs-sm);
	line-height: 1.4;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
	font-variation-settings: 'opsz' 24, 'SOFT' 40;
}

/* --- Chronique (texte) --- */
.se-codex__chronicle {
	grid-area: chronicle;
	position: relative;
	padding-top: clamp(0px, 1vw, 8px);
}

.se-codex__lead {
	position: relative;
	margin: 0 0 clamp(28px, 3.5vw, 44px);
	font-family: var(--font-heading);
	font-size: clamp(1.35rem, 1.8vw, 1.65rem);
	line-height: 1.48;
	color: var(--color-night);
	font-weight: 360;
	font-variation-settings: 'opsz' 32, 'SOFT' 50;
	letter-spacing: var(--tracking-tight);
	padding-left: clamp(0px, 1.5vw, 18px);
	border-left: 1px solid color-mix(in srgb, var(--color-gold) 45%, transparent);
}
.se-codex__lead::first-letter {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 5.6em;
	line-height: .84;
	float: left;
	margin: .04em .14em -.06em -.04em;
	color: var(--color-burgundy);
	font-weight: 380;
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
	background: linear-gradient(135deg,
		var(--color-burgundy) 0%,
		color-mix(in srgb, var(--color-burgundy) 70%, var(--color-gold)) 60%,
		var(--color-gold-dark) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	text-shadow: 0 6px 28px color-mix(in srgb, var(--color-burgundy) 18%, transparent);
}

.se-codex__body {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.75;
	color: color-mix(in srgb, var(--color-text) 86%, transparent);
}
.se-codex__body p {
	margin: 0 0 1em;
}
.se-codex__body p:last-child { margin-bottom: 0; }
.se-codex__body p::first-line {
	font-variant: small-caps;
	letter-spacing: .03em;
	color: color-mix(in srgb, var(--color-burgundy) 90%, var(--color-text));
}

/* --- Proclamation (pull-quote) --- */
.se-codex__proclamation {
	grid-area: proc;
	margin: 0;
	padding: 0;
	position: relative;
	text-align: center;
}
.se-codex__proclamation-inner {
	max-width: 880px;
	margin: 0 auto;
	padding: clamp(20px, 2.5vw, 32px) clamp(20px, 4vw, 56px);
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: clamp(14px, 2vw, 28px);
}
.se-codex__proclamation-band {
	display: block;
	height: 14px;
	background-image:
		repeating-linear-gradient(45deg,
			var(--color-gold) 0 8px,
			transparent 8px 16px,
			var(--color-burgundy) 16px 18px,
			transparent 18px 26px);
	background-size: 26px 14px;
	mask: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
	-webkit-mask: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
	opacity: .85;
	max-width: 880px;
	margin: 0 auto;
}
.se-codex__proclamation-band--top { margin-bottom: clamp(12px, 1.6vw, 18px); }
.se-codex__proclamation-band--bottom { margin-top: clamp(12px, 1.6vw, 18px); }

.se-codex__proclamation-lozenge {
	width: 12px; height: 12px;
	background: var(--color-gold);
	transform: rotate(45deg);
	flex-shrink: 0;
	position: relative;
}
.se-codex__proclamation-lozenge::after {
	content: '';
	position: absolute;
	inset: 3px;
	background: var(--color-burgundy);
}

.se-codex__proclamation-text {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 320;
	font-size: clamp(1.4rem, 2.5vw, 2.05rem);
	line-height: 1.32;
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 96, 'SOFT' 100;
	letter-spacing: -.005em;
	text-wrap: balance;
}

/* --- Signature --- */
.se-codex__signature {
	grid-area: signature;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-3);
	padding-top: clamp(16px, 2vw, 24px);
	border-top: 1px solid color-mix(in srgb, var(--color-burgundy) 18%, transparent);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
}
.se-codex__signature-line {
	width: 56px; height: 1px;
	background: linear-gradient(to right, transparent, var(--color-gold));
}
.se-codex__signature-star {
	display: inline-flex;
	color: var(--color-gold);
	width: 14px; height: 14px;
}
.se-codex__signature-star svg {
	width: 100%; height: 100%;
	display: block;
}
.se-codex__signature-text {
	font-weight: 500;
}

/* --- Responsive : ajustements mobile --- */
@media (max-width: 979px) {
	.se-codex__portrait-frame { padding: 10px; }
	.se-codex__portrait-pattern--outer { padding: 10px; }
	.se-codex__lead { padding-left: 0; border-left: none; }
	.se-codex__proclamation-inner {
		grid-template-columns: 1fr;
		gap: var(--space-3);
	}
	.se-codex__proclamation-lozenge {
		justify-self: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.se-codex__seal-svg { animation: none; }
	.se-codex__portrait:hover .se-codex__portrait-image img { transform: none; }
}

/* =========================================================================
   Programme : cards editoriales numerotees
   ========================================================================= */
.se-programme-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: var(--space-4);
}
.se-card-session {
	grid-column: span 4;
	display: flex; flex-direction: column;
	background: transparent;
	border-top: var(--rule-thick) solid var(--color-gold);
	padding-top: var(--space-3);
	position: relative;
	transition: transform .4s ease;
}
.se-card-session:nth-child(3n+2) { margin-top: var(--space-5); }
.se-card-session:nth-child(3n+3) { margin-top: var(--space-7); }
.se-card-session:hover { transform: translateY(-4px); }
.se-card-session__num {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	color: var(--color-gold-dark);
	text-transform: uppercase;
	margin-bottom: var(--space-3);
}
.se-card-session__media {
	margin: 0 0 var(--space-3);
	aspect-ratio: 4/5;
	overflow: hidden;
	background: var(--color-cream-dark);
}
.se-card-session__media img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .8s ease, filter .8s ease;
	filter: sepia(.15) saturate(.95) contrast(1.02);
}
.se-card-session:hover .se-card-session__media img { filter: sepia(0) saturate(1) contrast(1); }
.se-card-session:hover .se-card-session__media img { transform: scale(1.04); }
.se-card-session__tag {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-primary);
	margin: 0 0 var(--space-2);
}
.se-card-session__title {
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
	line-height: var(--lh-snug);
	font-weight: 400;
	margin: 0 0 var(--space-2);
	letter-spacing: var(--tracking-tight);
}
.se-card-session__title a {
	color: var(--color-night);
	background: none;
}
.se-card-session__title a:hover { color: var(--color-gold-dark); background: none; }
.se-card-session__excerpt {
	font-size: var(--fs-sm);
	line-height: var(--lh-base);
	color: var(--color-muted);
	margin: 0;
}

/* =========================================================================
   Speakers : grille de portraits N&B viragee
   ========================================================================= */
.se-speakers-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: var(--space-6) var(--space-5);
	justify-content: center;
}
/* Quand 1-3 cards : on centre proprement le bloc */
.se-speakers-grid:has(> :nth-child(-n+3):last-child) {
	grid-template-columns: repeat(auto-fit, minmax(220px, 280px));
}
.se-speaker-card {
	position: relative;
}
.se-speaker-card__link {
	display: block; text-decoration: none; color: inherit;
	background: none;
}
.se-speaker-card__avatar {
	aspect-ratio: 4/5;
	overflow: hidden;
	margin-bottom: var(--space-3);
	background: var(--color-cream-dark);
	position: relative;
}
.se-speaker-card__avatar img {
	width: 100%; height: 100%; object-fit: cover;
	filter: sepia(.45) saturate(1.1) contrast(1.05);
	transition: filter .6s ease, transform .8s ease;
}
.se-speaker-card:hover .se-speaker-card__avatar img {
	filter: sepia(0) saturate(1) contrast(1);
	transform: scale(1.02);
}
.se-speaker-card__placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-heading);
	font-size: 4rem;
	color: var(--color-muted);
	font-style: italic;
}
.se-speaker-card__name {
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
	font-weight: 400;
	color: var(--color-night);
	margin: 0 0 4px;
	letter-spacing: var(--tracking-tight);
}
.se-speaker-card__topic {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin: 0;
}

/* =========================================================================
   Pricing : Codex editorial — Edits royaux du congres
   ========================================================================= */
.se-section--pricing.se-codex--pricing {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 8%) 0%,
			var(--color-cream) 50%,
			color-mix(in srgb, var(--color-cream) 90%, var(--color-night) 10%) 100%);
}
.se-codex__ground-glow--top-right {
	right: -8%; top: 6%; left: auto; bottom: auto;
	background:
		radial-gradient(circle at center,
			color-mix(in srgb, var(--color-gold) 25%, transparent) 0%,
			color-mix(in srgb, var(--color-gold) 6%, transparent) 35%,
			transparent 65%);
}

/* Container layout : section centree, rail horizontal au-dessus du header */
.se-codex__container--pricing {
	grid-template-areas:
		"header"
		"stage"
		"signature";
}
.se-codex--pricing .se-codex-pricing-stage { grid-area: stage; }
@media (min-width: 980px) {
	.se-codex__container--pricing {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"rail"
			"header"
			"stage"
			"signature";
		column-gap: 0;
		row-gap: clamp(20px, 3vw, 40px);
	}
	.se-codex--pricing .se-codex__rail {
		grid-area: rail;
		position: static;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: clamp(10px, 1.4vw, 18px);
		top: auto;
		height: auto;
		margin-bottom: clamp(8px, 1.5vw, 16px);
	}
	.se-codex--pricing .se-codex__thread { display: none; }
	.se-codex--pricing .se-codex__seal {
		width: 56px;
		height: 56px;
	}
	.se-codex--pricing .se-codex__seal-num { font-size: 1.25rem; }
	.se-codex--pricing .se-codex__rail-byline {
		writing-mode: horizontal-tb;
		transform: none;
		padding-top: 0;
		display: inline-flex;
		align-items: center;
		gap: clamp(10px, 1.4vw, 18px);
		font-size: 11px;
		letter-spacing: .28em;
		color: color-mix(in srgb, var(--color-burgundy) 75%, transparent);
	}
	.se-codex--pricing .se-codex__rail-byline::before {
		content: '';
		width: 5px;
		height: 5px;
		background: var(--color-gold);
		transform: rotate(45deg);
		flex-shrink: 0;
	}
	.se-codex--pricing .se-codex__header {
		text-align: center;
		max-width: 980px;
		margin-left: auto;
		margin-right: auto;
	}
	.se-codex--pricing .se-codex__overline { justify-content: center; }
	.se-codex--pricing .se-codex__intro { margin-left: auto; margin-right: auto; }
	.se-codex--pricing .se-codex__title-flourish { margin-left: auto; margin-right: auto; }
}

/* Stage */
.se-codex-pricing-stage {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(28px, 3vw, 44px);
	min-width: 0;
}

/* ==========================================================================
   Edit (proclamation deadline) — "Plus que X jours..."
   ========================================================================== */
.se-codex-edict {
	margin: 0 auto;
	max-width: 920px;
	padding: clamp(14px, 1.8vw, 20px) clamp(18px, 2vw, 28px);
	display: grid;
	grid-template-columns: 1fr auto auto auto 1fr;
	align-items: center;
	gap: clamp(10px, 1.5vw, 18px);
	background:
		linear-gradient(135deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-gold) 6%) 0%,
			color-mix(in srgb, var(--color-cream) 88%, var(--color-gold) 12%) 100%);
	color: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 13px;
	letter-spacing: .01em;
	position: relative;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent);
}
.se-codex-edict::before,
.se-codex-edict::after {
	content: '';
	position: absolute;
	width: 14px; height: 14px;
	border: 1.5px solid var(--color-gold);
}
.se-codex-edict::before {
	top: 6px; left: 6px;
	border-right: none; border-bottom: none;
}
.se-codex-edict::after {
	bottom: 6px; right: 6px;
	border-left: none; border-top: none;
}
.se-codex-edict__rule {
	display: block;
	height: 1px;
	min-width: 24px;
	background: linear-gradient(to right,
		transparent, color-mix(in srgb, var(--color-gold) 55%, transparent) 30%, var(--color-gold));
}
.se-codex-edict__rule--right {
	background: linear-gradient(to right,
		var(--color-gold), color-mix(in srgb, var(--color-gold) 55%, transparent) 70%, transparent);
}
.se-codex-edict__lozenge {
	width: 7px; height: 7px;
	background: var(--color-gold);
	transform: rotate(45deg);
	flex-shrink: 0;
}
.se-codex-edict__body {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	justify-content: center;
	font-family: var(--font-eyebrow);
	font-size: 12.5px;
	font-weight: 500;
	color: var(--color-burgundy);
	letter-spacing: .02em;
}
.se-codex-edict__dot {
	width: 9px; height: 9px;
	border-radius: 50%;
	background: var(--color-gold);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-gold) 28%, transparent);
	animation: se-codex-edict-pulse 2.4s ease-in-out infinite;
	flex-shrink: 0;
}
@keyframes se-codex-edict-pulse {
	0%, 100% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-gold) 28%, transparent); }
	50%      { box-shadow: 0 0 0 9px color-mix(in srgb, var(--color-gold) 14%, transparent); }
}
.se-codex-edict__label {
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	font-size: 11px;
	color: var(--color-gold-dark);
}
.se-codex-edict__sep {
	color: color-mix(in srgb, var(--color-gold) 80%, var(--color-burgundy));
	font-size: 8px;
	transform: translateY(-1px);
	display: inline-block;
}
.se-codex-edict__text em {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 14px;
	font-weight: 420;
	color: var(--color-burgundy);
	letter-spacing: -.005em;
	margin: 0 2px;
}
.se-codex-edict__after {
	font-style: italic;
	font-family: var(--font-heading);
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
	font-size: 13px;
}
.se-codex-edict--ended {
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
	font-style: italic;
}

@media (max-width: 760px) {
	.se-codex-edict {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.se-codex-edict__rule,
	.se-codex-edict > .se-codex-edict__lozenge { display: none; }
	.se-codex-edict::before,
	.se-codex-edict::after { display: none; }
	.se-codex-edict__body { text-align: center; }
}

/* ==========================================================================
   Edit (carte pricing) — chaque pass est un "edit" du congres
   ========================================================================== */
.se-codex-pricing-grid,
.se-codex--pricing .se-pricing-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(22px, 2.5vw, 32px);
	align-items: stretch;
	min-width: 0;
}
@media (min-width: 720px) {
	.se-codex-pricing-grid,
	.se-codex--pricing .se-pricing-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Carte */
.se-codex-edit {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 1.8vw, 22px);
	padding: clamp(28px, 3vw, 42px) clamp(22px, 2.5vw, 32px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 98%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 90%, var(--color-gold) 4%) 100%);
	color: var(--color-night);
	transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 16px 36px -22px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	isolation: isolate;
}
.se-codex-edit::before {
	content: '';
	position: absolute;
	inset: 8px;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 45%, transparent);
	z-index: 0;
	transition: inset .3s ease;
}
.se-codex-edit:hover,
.se-codex-edit:focus-within {
	transform: translateY(-4px);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		0 26px 50px -22px color-mix(in srgb, var(--color-burgundy) 45%, transparent);
}
.se-codex-edit:hover::before,
.se-codex-edit:focus-within::before {
	inset: 10px;
}

/* Coins ornementaux gold */
.se-codex-edit__corner {
	position: absolute;
	width: 14px; height: 14px;
	border: 1.5px solid var(--color-gold);
	z-index: 2;
}
.se-codex-edit__corner--tl {
	top: 0; left: 0;
	border-right: none; border-bottom: none;
}
.se-codex-edit__corner--br {
	bottom: 0; right: 0;
	border-left: none; border-top: none;
}

/* === Carte featured (navy ndop) === */
.se-codex-edit--featured,
.se-codex--pricing .se-price-card--featured {
	background:
		linear-gradient(160deg,
			color-mix(in srgb, var(--color-night) 96%, #000) 0%,
			var(--color-night) 55%,
			color-mix(in srgb, var(--color-night) 88%, var(--color-burgundy)) 100%);
	color: var(--color-cream);
	margin-top: clamp(-20px, -2vw, -32px);
	margin-bottom: clamp(-20px, -2vw, -32px);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent),
		0 32px 60px -28px color-mix(in srgb, var(--color-night) 70%, transparent);
}
.se-codex-edit--featured::before {
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent);
}
.se-codex-edit--featured:hover,
.se-codex-edit--featured:focus-within {
	transform: translateY(-6px);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 65%, transparent),
		0 40px 70px -28px color-mix(in srgb, var(--color-night) 75%, transparent);
}

/* Motif ndop subtil sur featured (crosshatch gold) */
.se-codex-edit__pattern {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background-image:
		repeating-linear-gradient( 45deg,
			color-mix(in srgb, var(--color-gold) 22%, transparent) 0 1px,
			transparent 1px 18px),
		repeating-linear-gradient(-45deg,
			color-mix(in srgb, var(--color-gold) 22%, transparent) 0 1px,
			transparent 1px 18px);
	opacity: .35;
	-webkit-mask: linear-gradient(180deg, #000 0%, #000 60%, transparent 100%);
	mask: linear-gradient(180deg, #000 0%, #000 60%, transparent 100%);
}

/* Sceau RECOMMANDE en medallion */
.se-codex-edit__seal {
	position: absolute;
	top: -18px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 4;
	pointer-events: none;
}
.se-codex-edit__seal-inner {
	display: inline-flex;
	align-items: center;
	gap: 0;
	padding: 0;
	background: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px var(--color-gold),
		inset 0 0 0 3px var(--color-cream),
		inset 0 0 0 4px color-mix(in srgb, var(--color-gold) 50%, transparent),
		0 8px 22px -10px rgba(0,0,0,.35);
}
.se-codex-edit__seal-text {
	display: inline-block;
	padding: 8px 18px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	white-space: nowrap;
}

/* Tete de la carte */
.se-codex-edit__head {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: clamp(8px, 1vw, 14px);
}
.se-codex-edit__rank {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
}
.se-codex-edit--featured .se-codex-edit__rank {
	color: color-mix(in srgb, var(--color-cream) 70%, transparent);
}
.se-codex-edit__rank-mark {
	display: inline-block;
	width: 22px; height: 1px;
	background: var(--color-gold);
}
.se-codex-edit__name,
.se-codex--pricing .se-price-card__name {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	line-height: 1.05;
	color: var(--color-night);
	letter-spacing: -.012em;
	font-variation-settings: 'opsz' 60, 'SOFT' 40;
}
.se-codex-edit--featured .se-codex-edit__name,
.se-codex--pricing .se-price-card--featured .se-price-card__name {
	color: var(--color-cream);
}

/* Prix */
.se-codex-edit__price,
.se-codex--pricing .se-price-card__price {
	position: relative;
	z-index: 1;
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(2.8rem, 5.5vw, 4.2rem);
	line-height: 1;
	color: var(--color-gold-dark);
	font-weight: 360;
	letter-spacing: -.022em;
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
}
.se-codex-edit--featured .se-codex-edit__price,
.se-codex--pricing .se-price-card--featured .se-price-card__price {
	color: var(--color-gold);
	text-shadow: 0 6px 24px color-mix(in srgb, var(--color-gold) 30%, transparent);
}
.se-codex-edit__price .woocommerce-Price-currencySymbol,
.se-codex--pricing .se-price-card__price .woocommerce-Price-currencySymbol {
	font-size: .42em;
	vertical-align: super;
	margin-left: 4px;
	margin-right: 0;
	color: inherit;
	opacity: .85;
	font-style: normal;
}

/* Description */
.se-codex-edit__desc,
.se-codex--pricing .se-price-card__desc {
	position: relative;
	z-index: 1;
	font-family: var(--font-body);
	font-size: 14.5px;
	line-height: 1.6;
	color: color-mix(in srgb, var(--color-text) 78%, transparent);
	flex: 1;
	max-width: 32ch;
}
.se-codex-edit--featured .se-codex-edit__desc,
.se-codex--pricing .se-price-card--featured .se-price-card__desc {
	color: color-mix(in srgb, var(--color-cream) 80%, transparent);
}
.se-codex-edit__desc p { margin: 0 0 .6em; }
.se-codex-edit__desc p:last-child { margin: 0; }

/* CTA */
.se-codex-edit__cta {
	position: relative;
	z-index: 1;
	margin-top: auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 22px;
	background: transparent;
	color: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-burgundy) 40%, transparent);
	transition: background .3s ease, color .3s ease, box-shadow .3s ease, transform .3s cubic-bezier(.2,.7,.2,1), gap .3s ease;
}
.se-codex-edit__cta-arrow {
	transition: transform .3s cubic-bezier(.2,.7,.2,1);
	display: inline-block;
}
.se-codex-edit__cta:hover,
.se-codex-edit__cta:focus-visible {
	background: var(--color-burgundy);
	color: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px var(--color-burgundy),
		inset 0 0 0 4px var(--color-burgundy),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 50%, transparent);
}
.se-codex-edit__cta:hover .se-codex-edit__cta-arrow,
.se-codex-edit__cta:focus-visible .se-codex-edit__cta-arrow {
	transform: translateX(4px);
}
.se-codex-edit__cta:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
}
/* CTA featured : gold rempli */
.se-codex-edit__cta--featured {
	background: var(--color-gold);
	color: var(--color-night);
	box-shadow:
		inset 0 0 0 1px var(--color-gold-dark),
		inset 0 0 0 4px var(--color-gold),
		inset 0 0 0 5px color-mix(in srgb, var(--color-night) 25%, transparent);
}
.se-codex-edit__cta--featured:hover,
.se-codex-edit__cta--featured:focus-visible {
	background: var(--color-gold-dark);
	color: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px var(--color-gold-dark),
		inset 0 0 0 4px var(--color-gold-dark),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 60%, transparent);
}

/* Signature avec CTA "Voir toutes les options" */
.se-codex--pricing .se-codex__signature--linked {
	grid-area: signature;
	margin-top: clamp(36px, 4.5vw, 56px);
	justify-content: center;
}

@media (max-width: 720px) {
	.se-codex-edit--featured {
		margin-top: 0;
		margin-bottom: 0;
	}
	.se-codex-edit__seal { top: -16px; }
}

/* =========================================================================
   Single product (WooCommerce) — Codex editorial
   ========================================================================= */
.se-product-main {
	display: block;
}

.se-section--product.se-codex--product {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-gold) 6%) 0%,
			var(--color-cream) 50%,
			color-mix(in srgb, var(--color-cream) 90%, var(--color-night) 10%) 100%);
	padding: clamp(48px, 6vw, 96px) 0 clamp(48px, 6vw, 96px);
}

.se-codex__container--product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"header"
		"layout"
		"story"
		"signature";
	gap: clamp(28px, 4vw, 56px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--product .se-codex-product__layout { grid-area: layout; }
.se-codex--product .se-codex-product__story  { grid-area: story; }
.se-codex--product .se-codex__signature       { grid-area: signature; }

@media (min-width: 980px) {
	.se-codex__container--product {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas:
			"rail      header"
			"rail-mid  layout"
			"rail-end  story"
			"signature signature";
		column-gap: clamp(36px, 4.5vw, 64px);
	}
	.se-codex--product .se-codex__rail {
		grid-area: rail / rail / rail-mid / rail-mid;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
}

/* === Layout : portrait + chronique === */
.se-codex-product__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(32px, 4vw, 64px);
	align-items: start;
	min-width: 0;
}
@media (min-width: 920px) {
	.se-codex-product__layout {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		gap: clamp(40px, 5vw, 80px);
	}
}

/* === Figure (portrait ndop) === */
.se-codex-product__figure {
	margin: 0;
	position: relative;
	min-width: 0;
}
.se-codex-product__frame {
	position: relative;
	padding: clamp(14px, 1.8vw, 22px);
	background:
		linear-gradient(135deg,
			color-mix(in srgb, var(--color-burgundy) 92%, #000) 0%,
			var(--color-burgundy) 50%,
			color-mix(in srgb, var(--color-burgundy) 86%, var(--color-night)) 100%);
	box-shadow:
		0 36px 80px -32px color-mix(in srgb, var(--color-burgundy) 55%, transparent),
		0 10px 30px -14px rgba(0,0,0,.28),
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 38%, transparent);
}
.se-codex-product__pattern {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		repeating-linear-gradient( 45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 14px),
		repeating-linear-gradient(-45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 14px);
	-webkit-mask: linear-gradient(#000 0 0) content-box,
				  linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box,
		  linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	padding: clamp(14px, 1.8vw, 22px);
	box-sizing: border-box;
}
.se-codex-product__image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4/5;
	background: color-mix(in srgb, var(--color-burgundy) 80%, var(--color-night));
}
.se-codex-product__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.4s cubic-bezier(.2,.7,.2,1);
	filter: saturate(1.05) contrast(1.02);
}
.se-codex-product__figure:hover .se-codex-product__img { transform: scale(1.03); }
.se-codex-product__placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 380;
	font-size: clamp(5rem, 12vw, 9rem);
	color: var(--color-gold);
}
.se-codex-product__veil {
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--color-night) 40%, transparent) 100%),
		linear-gradient(135deg, transparent 65%, color-mix(in srgb, var(--color-burgundy) 18%, transparent) 100%);
	pointer-events: none;
	mix-blend-mode: multiply;
}
.se-codex-product__corner {
	position: absolute;
	width: 22px; height: 22px;
	border: 2px solid var(--color-gold);
	z-index: 3;
}
.se-codex-product__corner--tl { top: -1px; left: -1px;  border-right: none; border-bottom: none; }
.se-codex-product__corner--tr { top: -1px; right: -1px; border-left:  none; border-bottom: none; }
.se-codex-product__corner--bl { bottom: -1px; left: -1px;  border-right: none; border-top: none; }
.se-codex-product__corner--br { bottom: -1px; right: -1px; border-left:  none; border-top: none; }

/* Sceau RECOMMANDE positionne sur le cadre */
.se-codex-product__seal {
	position: absolute;
	top: -18px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 4;
	pointer-events: none;
}
.se-codex-product__seal-inner {
	display: inline-flex;
	background: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px var(--color-gold),
		inset 0 0 0 3px var(--color-cream),
		inset 0 0 0 4px color-mix(in srgb, var(--color-gold) 50%, transparent),
		0 8px 22px -10px rgba(0,0,0,.35);
}
.se-codex-product__seal-text {
	display: inline-block;
	padding: 8px 18px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	white-space: nowrap;
}

/* Galerie miniatures */
.se-codex-product__gallery {
	list-style: none;
	margin: var(--space-3) 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}
.se-codex-product__gallery-item {
	overflow: hidden;
	aspect-ratio: 1;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent);
}
.se-codex-product__gallery-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}
.se-codex-product__gallery-item:hover .se-codex-product__gallery-img { transform: scale(1.08); }

/* === Chronique (infos produit) === */
.se-codex-product__chronicle {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2.5vw, 28px);
	min-width: 0;
}

.se-codex-product__rank {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
}
.se-codex-product__rank-mark {
	display: inline-block;
	width: 28px; height: 1px;
	background: var(--color-gold);
}

.se-codex-product__price {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(3.2rem, 6vw, 5.2rem);
	line-height: 1;
	color: var(--color-gold-dark);
	font-weight: 360;
	letter-spacing: -.022em;
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
}
.se-codex-product__price .woocommerce-Price-currencySymbol {
	font-size: .42em;
	vertical-align: super;
	margin-left: 4px;
	margin-right: 0;
	color: inherit;
	opacity: .85;
	font-style: normal;
}
.se-codex-product__price del {
	display: inline-block;
	margin-right: 12px;
	font-size: .55em;
	color: color-mix(in srgb, var(--color-burgundy) 50%, transparent);
	text-decoration: line-through;
}
.se-codex-product__price ins {
	background: none;
	text-decoration: none;
}

.se-codex-product__lead {
	font-family: var(--font-heading);
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 82%, transparent);
	font-weight: 380;
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
	max-width: 56ch;
}
.se-codex-product__lead p { margin: 0 0 .8em; }
.se-codex-product__lead p:last-child { margin: 0; }

/* Inclus dans ce pass */
.se-codex-product__inclus {
	padding: clamp(20px, 2.5vw, 28px) clamp(20px, 2.5vw, 28px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 98%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 4%) 100%);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent);
	position: relative;
}
.se-codex-product__inclus::before,
.se-codex-product__inclus::after {
	content: '';
	position: absolute;
	width: 12px; height: 12px;
	border: 1.5px solid var(--color-gold);
}
.se-codex-product__inclus::before {
	top: 6px; left: 6px;
	border-right: none; border-bottom: none;
}
.se-codex-product__inclus::after {
	bottom: 6px; right: 6px;
	border-left: none; border-top: none;
}
.se-codex-product__inclus-title {
	margin: 0 0 clamp(14px, 1.6vw, 20px);
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
}
.se-codex-product__inclus-mark {
	display: inline-block;
	width: 8px; height: 8px;
	background: var(--color-gold);
	transform: rotate(45deg);
	flex-shrink: 0;
}
.se-codex-product__inclus-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.se-codex-product__inclus-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-family: var(--font-body);
	font-size: 15.5px;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-text) 88%, transparent);
}
.se-codex-product__inclus-bullet {
	display: inline-block;
	width: 14px;
	height: 1px;
	margin-top: 0.8em;
	background: var(--color-gold);
	flex-shrink: 0;
}

/* === Add-to-cart form (override WC default) === */
.se-codex-product__cart {
	margin-top: clamp(8px, 1.5vw, 16px);
}
.se-codex-product__cart form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin: 0;
}
.se-codex-product__cart .quantity {
	display: inline-flex;
	align-items: stretch;
	background: var(--color-cream);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-burgundy) 30%, transparent);
}
.se-codex-product__cart .quantity input.qty,
.se-codex-product__cart .quantity .qty {
	width: 72px;
	height: 52px;
	border: 0;
	background: transparent;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 1.3rem;
	color: var(--color-night);
	text-align: center;
	-moz-appearance: textfield;
	font-variation-settings: 'opsz' 48;
}
.se-codex-product__cart .quantity input.qty:focus {
	outline: 2px solid var(--color-gold);
	outline-offset: 1px;
}
.se-codex-product__cart .quantity input::-webkit-outer-spin-button,
.se-codex-product__cart .quantity input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.se-codex-product__cart button.single_add_to_cart_button,
.se-codex-product__cart .single_add_to_cart_button,
.se-codex-product__cart button.button.alt,
.se-codex-product__cart .wp-element-button.single_add_to_cart_button {
	background: var(--color-burgundy) !important;
	background-color: var(--color-burgundy) !important;
	background-image: none !important;
	color: var(--color-cream) !important;
	font-family: var(--font-eyebrow) !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	letter-spacing: .22em !important;
	text-transform: uppercase !important;
	padding: 18px 32px !important;
	border: 0 !important;
	border-radius: 0 !important;
	cursor: pointer;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		inset 0 0 0 4px var(--color-burgundy),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 30%, transparent) !important;
	text-shadow: none !important;
	transition: background .3s ease, transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.se-codex-product__cart button.single_add_to_cart_button:hover,
.se-codex-product__cart button.single_add_to_cart_button:focus-visible,
.se-codex-product__cart button.button.alt:hover {
	background: color-mix(in srgb, var(--color-burgundy) 90%, #000) !important;
	background-color: color-mix(in srgb, var(--color-burgundy) 90%, #000) !important;
	transform: translateY(-2px);
	box-shadow:
		inset 0 0 0 1px var(--color-gold),
		inset 0 0 0 4px color-mix(in srgb, var(--color-burgundy) 90%, #000),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 45%, transparent) !important;
}
.se-codex-product__cart button.single_add_to_cart_button:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
}

/* === Meta (sku, category) === */
.se-codex-product__meta {
	margin: clamp(12px, 1.6vw, 20px) 0 0;
	padding-top: clamp(16px, 2vw, 24px);
	border-top: 1px solid color-mix(in srgb, var(--color-burgundy) 18%, transparent);
	display: grid;
	gap: 8px;
}
.se-codex-product__meta-row {
	display: flex;
	align-items: baseline;
	gap: 14px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.se-codex-product__meta-row dt {
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
	font-weight: 600;
	min-width: 80px;
}
.se-codex-product__meta-row dd {
	margin: 0;
	color: var(--color-night);
}
.se-codex-product__meta-row a {
	color: var(--color-burgundy);
	text-decoration: none;
	transition: color .2s;
}
.se-codex-product__meta-row a:hover { color: var(--color-gold-dark); }

/* === Story (long description) === */
.se-codex-product__story {
	max-width: 920px;
	margin: clamp(28px, 4vw, 56px) auto 0;
	padding-top: clamp(28px, 3.5vw, 44px);
}
.se-codex-product__story-head {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: clamp(16px, 2vw, 28px);
	margin-bottom: clamp(20px, 2.5vw, 32px);
}
.se-codex-product__story-rule {
	height: 1px;
	background: linear-gradient(to right,
		transparent,
		color-mix(in srgb, var(--color-gold) 50%, transparent) 30%,
		var(--color-gold));
}
.se-codex-product__story-head > .se-codex-product__story-rule:last-child {
	background: linear-gradient(to right,
		var(--color-gold),
		color-mix(in srgb, var(--color-gold) 50%, transparent) 70%,
		transparent);
}
.se-codex-product__story-title {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.4rem, 2vw, 1.8rem);
	color: var(--color-gold-dark);
	letter-spacing: -.005em;
	font-variation-settings: 'opsz' 48, 'SOFT' 80;
	white-space: nowrap;
}
.se-codex-product__story-body {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.7;
	color: color-mix(in srgb, var(--color-text) 86%, transparent);
}
.se-codex-product__story-body p { margin: 0 0 1em; }
.se-codex-product__story-body p:last-child { margin: 0; }

/* === Related products (codex-edit grid) === */
.se-section--product-related.se-codex--product-related {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-night) 8%) 0%,
			var(--color-cream) 100%);
	padding: clamp(56px, 7vw, 96px) 0;
}
.se-codex-product-related__container {
	position: relative;
	z-index: 1;
	max-width: 1240px;
	margin: 0 auto;
}
.se-codex-product-related__header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto clamp(36px, 4.5vw, 56px);
}
.se-codex-product-related__header .se-codex__overline {
	justify-content: center;
}
.se-codex__title--small {
	font-size: clamp(1.8rem, 3.5vw, 2.6rem);
}
.se-codex-product-related__header .se-codex__title-flourish {
	margin-left: auto;
	margin-right: auto;
}
.se-codex-product-related__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(22px, 2.5vw, 32px);
	align-items: stretch;
}
@media (min-width: 760px) {
	.se-codex-product-related__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.se-codex-product-related__grid .se-codex-edit--featured {
		margin-top: clamp(-16px, -1.5vw, -24px);
		margin-bottom: clamp(-16px, -1.5vw, -24px);
	}
}

/* WC notices */
.se-codex-product__chronicle .woocommerce-notices-wrapper:empty { display: none; }
.se-codex-product__chronicle .woocommerce-message,
.se-codex-product__chronicle .woocommerce-error,
.se-codex-product__chronicle .woocommerce-info {
	font-family: var(--font-eyebrow);
	font-size: 12.5px;
	padding: 12px 18px;
	margin: 0 0 var(--space-3);
	background: color-mix(in srgb, var(--color-gold) 14%, var(--color-cream));
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 45%, transparent);
	color: var(--color-burgundy);
	list-style: none;
}

@media (max-width: 760px) {
	.se-codex-product__story-head {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.se-codex-product__story-rule { display: none; }
}
.se-section--sponsors.se-codex--sponsors {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding-block: clamp(64px, 7vw, 96px) clamp(56px, 6vw, 88px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 95%, var(--color-gold) 5%) 0%,
			var(--color-cream) 45%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-burgundy) 8%) 100%);
}
.se-codex__ground-glow--bottom-right {
	right: -8%; bottom: 4%; left: auto; top: auto;
	background:
		radial-gradient(circle at center,
			color-mix(in srgb, var(--color-gold) 22%, transparent) 0%,
			color-mix(in srgb, var(--color-gold) 6%, transparent) 35%,
			transparent 65%);
}

/* Container layout : registre compact */
.se-codex__container--sponsors {
	grid-template-areas:
		"header"
		"register"
		"signature";
}
.se-codex--sponsors .se-codex-register { grid-area: register; }
@media (min-width: 980px) {
	.se-codex__container--sponsors {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas:
			"rail      header"
			"rail-mid  register"
			"signature signature";
	}
	.se-codex--sponsors .se-codex__rail {
		grid-area: rail / rail / rail-mid / rail-mid;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
}

/* =========================================================================
   Registre de patronage — un seul cartouche, une ligne par tier
   ========================================================================= */
.se-codex-register {
	position: relative;
	margin-top: clamp(28px, 3.2vw, 44px);
	padding: clamp(28px, 3vw, 44px) clamp(20px, 2.5vw, 40px) clamp(20px, 2.5vw, 32px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 98%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 90%, var(--color-gold) 5%) 100%);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 38%, transparent),
		0 18px 48px -28px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	isolation: isolate;
}
.se-codex-register::before {
	content: '';
	position: absolute;
	inset: 6px;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 28%, transparent);
	pointer-events: none;
	z-index: 0;
}
/* watermark ndop discret */
.se-codex-register::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: .04;
	background:
		repeating-linear-gradient(45deg,
			var(--color-burgundy) 0 1px,
			transparent 1px 9px),
		repeating-linear-gradient(-45deg,
			var(--color-burgundy) 0 1px,
			transparent 1px 9px);
	z-index: 0;
}

/* Coins ornementaux du registre */
.se-codex-register__corner {
	position: absolute;
	width: 16px; height: 16px;
	border: 1.5px solid var(--color-gold);
	z-index: 2;
}
.se-codex-register__corner--tl { top: 10px;    left: 10px;   border-right: none; border-bottom: none; }
.se-codex-register__corner--tr { top: 10px;    right: 10px;  border-left: none;  border-bottom: none; }
.se-codex-register__corner--bl { bottom: 10px; left: 10px;   border-right: none; border-top: none; }
.se-codex-register__corner--br { bottom: 10px; right: 10px;  border-left: none;  border-top: none; }

/* Ruban titre en haut (byline) */
.se-codex-register__ribbon {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 5px 16px;
	background: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 60%, transparent),
		inset 0 0 0 3px var(--color-cream),
		inset 0 0 0 4px color-mix(in srgb, var(--color-gold) 25%, transparent);
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	font-weight: 700;
	white-space: nowrap;
	z-index: 3;
}

/* === Ligne tier === */
.se-codex-register__row {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px 24px;
	padding: clamp(16px, 1.8vw, 22px) 0;
	border-top: 1px solid color-mix(in srgb, var(--color-gold) 32%, transparent);
	align-items: center;
}
.se-codex-register__row:first-of-type {
	border-top: none;
	padding-top: clamp(6px, 1vw, 12px);
}
@media (min-width: 720px) {
	.se-codex-register__row {
		grid-template-columns: minmax(170px, 0.28fr) minmax(0, 1fr);
		gap: 14px 32px;
	}
}

/* Label tier (gauche) */
.se-codex-register__tier {
	display: flex;
	align-items: baseline;
	gap: 10px;
	font-family: var(--font-heading);
	color: var(--color-gold-dark);
	font-variation-settings: 'opsz' 48, 'SOFT' 60;
	min-width: 0;
}
.se-codex-register__tier-marks {
	display: inline-flex;
	gap: 4px;
	flex-shrink: 0;
}
.se-codex-register__tier-mark {
	width: 7px; height: 7px;
	background: var(--color-gold);
	transform: rotate(45deg);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent);
}
.se-codex-register__tier-label {
	font-style: italic;
	font-weight: 420;
	font-size: clamp(1.1rem, 1.5vw, 1.35rem);
	letter-spacing: -.008em;
	line-height: 1;
	white-space: nowrap;
}
.se-codex-register__tier-count {
	margin-left: auto;
	font-family: var(--font-eyebrow);
	font-style: normal;
	font-size: 10px;
	letter-spacing: .24em;
	color: color-mix(in srgb, var(--color-burgundy) 50%, transparent);
	font-weight: 600;
}
@media (min-width: 720px) {
	.se-codex-register__tier-count { margin-left: 8px; }
}

/* Modulation visuelle selon le rank */
.se-codex-register__row--rank-3 .se-codex-register__tier-mark {
	background: var(--color-gold);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-gold) 30%, transparent);
}
.se-codex-register__row--rank-2 .se-codex-register__tier-mark {
	background: color-mix(in srgb, var(--color-gold) 75%, var(--color-cream));
}
.se-codex-register__row--rank-1 .se-codex-register__tier-mark {
	background: var(--color-terra, #B85C3A);
	opacity: .85;
}
.se-codex-register__row--rank-0 .se-codex-register__tier-mark {
	background: color-mix(in srgb, var(--color-burgundy) 50%, var(--color-cream));
}

/* Liste sponsors (droite) */

/* ========================================================================
   Ticker des partenaires — cards modernes defilantes + CTA centre
   ======================================================================== */
.se-sponsors-ticker {
	margin-top: clamp(28px, 3.5vw, 56px);
}
.se-sponsors-ticker__viewport {
	overflow: hidden;
	padding: 20px 0;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%);
	        mask-image: linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%);
}
.se-sponsors-ticker__track {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: stretch;
	gap: clamp(20px, 2.4vw, 32px);
	width: max-content;
	animation: se-sponsors-ticker-scroll 40s linear infinite;
	will-change: transform;
}
.se-sponsors-ticker__viewport:hover .se-sponsors-ticker__track,
.se-sponsors-ticker__viewport:focus-within .se-sponsors-ticker__track {
	animation-play-state: paused;
}
@keyframes se-sponsors-ticker-scroll {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.se-sponsors-ticker__track { animation: none; }
}

.se-sponsors-ticker__item {
	margin: 0;
	flex: 0 0 auto;
	display: flex;
}
.se-sponsors-ticker__link {
	display: flex;
	text-decoration: none;
	color: inherit;
	transition: transform .3s ease;
}
.se-sponsors-ticker__link:hover { transform: translateY(-3px); }
.se-sponsors-ticker__link:focus-visible { outline: 0; }
.se-sponsors-ticker__link:focus-visible .se-sponsors-ticker__card {
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-gold) 28%, transparent);
}

/* === Card commune : layout grid (media en haut, nom en bas) === */
.se-sponsors-ticker__card {
	position: relative;
	display: grid;
	grid-template-rows: 1fr auto;
	gap: 10px;
	width: 200px;
	height: 150px;
	padding: 16px 18px 14px;
	box-sizing: border-box;
	background:
		linear-gradient(180deg,
			#ffffff 0%,
			color-mix(in srgb, var(--color-cream) 92%, #ffffff 8%) 100%);
	border: 1px solid color-mix(in srgb, var(--color-night) 8%, transparent);
	border-radius: 14px;
	box-shadow:
		0 1px 0 0 color-mix(in srgb, var(--color-gold) 12%, transparent) inset,
		0 12px 28px -20px color-mix(in srgb, var(--color-night) 60%, transparent);
	transition: border-color .3s ease, box-shadow .3s ease;
	overflow: hidden;
}
.se-sponsors-ticker__link:hover .se-sponsors-ticker__card {
	border-color: color-mix(in srgb, var(--color-gold) 55%, transparent);
	box-shadow:
		0 1px 0 0 color-mix(in srgb, var(--color-gold) 20%, transparent) inset,
		0 18px 36px -18px color-mix(in srgb, var(--color-night) 65%, transparent);
}
/* Liseré or fin en bas (signature pro) */
.se-sponsors-ticker__card::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 14%;
	right: 14%;
	height: 2px;
	background: linear-gradient(to right,
		transparent,
		color-mix(in srgb, var(--color-gold) 70%, transparent),
		transparent);
	opacity: 0;
	transition: opacity .3s ease;
}
.se-sponsors-ticker__link:hover .se-sponsors-ticker__card::after { opacity: 1; }

/* Zone media (logo image OU monogramme) en haut */
.se-sponsors-ticker__media {
	position: relative;
	width: 100%;
	min-height: 0;
	display: grid;
	place-items: center;
	overflow: hidden;
}
/* Logo image : position absolue dans le media pour que max-height:100% se calcule
   sur la hauteur reelle du grid track (au lieu d'un cycle width/height). */
.se-sponsors-ticker__logo {
	position: absolute;
	inset: 0;
	margin: auto;
	max-width: 100%;
	max-height: 100%;
	width: auto !important;
	height: auto !important;
	object-fit: contain;
	display: block;
}
.se-sponsors-ticker__monogram {
	width: 58px;
	height: 58px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 1.55rem;
	line-height: 1;
	color: var(--color-cream);
	background:
		radial-gradient(ellipse at 30% 30%,
			color-mix(in srgb, var(--color-gold) 30%, transparent) 0%,
			transparent 60%),
		linear-gradient(135deg,
			var(--color-night) 0%,
			color-mix(in srgb, var(--color-burgundy) 60%, var(--color-night) 40%) 100%);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-gold) 45%, transparent);
	font-variation-settings: 'opsz' 40, 'SOFT' 60;
}

/* Nom du sponsor en bas, toujours visible */
.se-sponsors-ticker__wordmark {
	flex: 0 0 auto;
	width: 100%;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
	text-align: center;
	line-height: 1.35;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	font-weight: 600;
}

/* === CTA centre sous le ticker === */
.se-sponsors-ticker__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	text-align: center;
	max-width: 560px;
	margin: clamp(28px, 3.5vw, 48px) auto 0;
}
.se-sponsors-ticker__cta-text {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1rem, 1.25vw, 1.18rem);
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
	margin: 0;
	font-variation-settings: 'opsz' 32, 'SOFT' 60;
}
.se-sponsors-ticker__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 32px;
	font-family: var(--font-eyebrow);
	font-size: 12px;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--color-cream);
	background: var(--color-burgundy);
	border: 1px solid var(--color-burgundy);
	border-radius: 999px;
	text-decoration: none;
	box-shadow: 0 14px 28px -16px color-mix(in srgb, var(--color-burgundy) 70%, transparent);
	transition: background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.se-sponsors-ticker__cta-btn:hover {
	background: var(--color-night);
	border-color: var(--color-night);
	transform: translateY(-2px);
	box-shadow: 0 18px 32px -14px color-mix(in srgb, var(--color-night) 65%, transparent);
}
.se-sponsors-ticker__cta-arrow {
	transition: transform .25s ease;
}
.se-sponsors-ticker__cta-btn:hover .se-sponsors-ticker__cta-arrow {
	transform: translateX(4px);
}

/* Screen reader only */
.se-codex-register .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* === Footer compact (citation + CTA inline) === */
.se-codex-register__footer {
	position: relative;
	z-index: 1;
	margin-top: clamp(18px, 2vw, 26px);
	padding-top: clamp(18px, 2vw, 26px);
	border-top: 1px double color-mix(in srgb, var(--color-gold) 45%, transparent);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	align-items: center;
}
@media (min-width: 760px) {
	.se-codex-register__footer {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 28px;
	}
}
.se-codex-register__footer-text {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 380;
	font-size: clamp(.95rem, 1.15vw, 1.05rem);
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
	max-width: 58ch;
}
.se-codex-register__footer-cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 22px;
	background: var(--color-burgundy);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	justify-self: start;
	transition: background .3s ease, transform .3s cubic-bezier(.2,.7,.2,1);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		inset 0 0 0 3px var(--color-burgundy),
		inset 0 0 0 4px color-mix(in srgb, var(--color-gold) 25%, transparent);
}
@media (min-width: 760px) {
	.se-codex-register__footer-cta { justify-self: end; }
}
.se-codex-register__footer-cta-arrow { transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.se-codex-register__footer-cta:hover,
.se-codex-register__footer-cta:focus-visible {
	background: color-mix(in srgb, var(--color-burgundy) 90%, #000);
	transform: translateY(-2px);
}
.se-codex-register__footer-cta:hover .se-codex-register__footer-cta-arrow,
.se-codex-register__footer-cta:focus-visible .se-codex-register__footer-cta-arrow {
	transform: translateX(4px);
}
.se-codex-register__footer-cta:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
}

/* Signature */
.se-codex--sponsors .se-codex__signature {
	grid-area: signature;
	margin-top: clamp(28px, 3.5vw, 44px);
}

/* Mobile : compactage supplementaire */
@media (max-width: 720px) {
	.se-codex-register {
		padding-left: 16px;
		padding-right: 16px;
	}
	.se-codex-register__ribbon {
		font-size: 9px;
		letter-spacing: .24em;
		padding: 4px 12px;
	}
	.se-codex-register__row {
		padding: 14px 0;
	}
	.se-codex-register__tier {
		padding-bottom: 2px;
	}
	.se-codex-register__patron + .se-codex-register__patron::before {
		margin: 0 12px;
	}
	.se-codex-register__patron-link {
		font-size: 1.05rem;
	}
	.se-codex-register__row--rank-3 .se-codex-register__patron-link {
		font-size: 1.2rem;
	}
}

/* === Tier title (reutilise par l'archive orateurs) === */
.se-codex-tier__title {
	margin: 0;
	display: grid;
	grid-template-columns: 1fr auto auto auto 1fr;
	align-items: center;
	gap: clamp(10px, 1.4vw, 18px);
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 380;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	line-height: 1;
	color: var(--color-gold-dark);
	letter-spacing: -.005em;
	font-variation-settings: 'opsz' 60, 'SOFT' 80;
	text-align: center;
}
.se-codex-tier__rule {
	display: block;
	height: 1px;
	min-width: 40px;
	background: linear-gradient(to right,
		transparent,
		color-mix(in srgb, var(--color-gold) 55%, transparent) 30%,
		var(--color-gold));
}
.se-codex-tier__rule--right {
	background: linear-gradient(to right,
		var(--color-gold),
		color-mix(in srgb, var(--color-gold) 55%, transparent) 70%,
		transparent);
}
.se-codex-tier__lozenge {
	width: 8px; height: 8px;
	background: var(--color-gold);
	transform: rotate(45deg);
	box-shadow: 0 0 0 2px var(--color-cream),
				0 0 0 3px color-mix(in srgb, var(--color-gold) 35%, transparent);
}
.se-codex-tier__label {
	display: inline-block;
	padding: 0 4px;
	white-space: nowrap;
}
@media (max-width: 600px) {
	.se-codex-tier__title {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 10px;
	}
	.se-codex-tier__title > .se-codex-tier__rule {
		width: 60%;
		max-width: 220px;
		background: linear-gradient(to right, transparent, var(--color-gold) 50%, transparent);
		order: 2;
	}
	.se-codex-tier__title > .se-codex-tier__rule--right { display: none; }
	.se-codex-tier__title > .se-codex-tier__lozenge:first-of-type { order: 0; }
	.se-codex-tier__title > .se-codex-tier__label { order: 1; }
	.se-codex-tier__title > .se-codex-tier__lozenge:last-of-type { display: none; }
}

/* =========================================================================
   CTA final : bandeau editorial
   ========================================================================= */
.se-section--cta {
	position: relative;
	overflow: hidden;
}
.se-section--cta::after {
	content: '';
	position: absolute;
	right: -20%; top: -30%;
	width: 70vw; height: 70vw;
	background: radial-gradient(circle at center, var(--color-gold), transparent 60%);
	opacity: .12;
	pointer-events: none;
}
.se-cta-final {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: var(--space-4) var(--space-5);
	position: relative; z-index: 2;
}
.se-cta-final__index {
	grid-column: 1 / span 2;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	color: var(--color-gold);
	text-transform: uppercase;
	border-top: var(--rule-thick) solid var(--color-gold);
	padding-top: 12px;
}
.se-cta-final__body {
	grid-column: 3 / span 7;
}
.se-cta-final__title {
	font-family: var(--font-heading);
	font-size: var(--fs-4xl);
	line-height: var(--lh-snug);
	font-weight: 350;
	letter-spacing: var(--tracking-display);
	color: var(--color-cream);
	margin: 0 0 var(--space-3);
	font-variation-settings: 'opsz' 96;
}
.se-cta-final__title em {
	font-style: italic;
	color: var(--color-gold);
	font-variation-settings: 'opsz' 96, 'SOFT' 100;
}
.se-cta-final__text {
	font-family: var(--font-body);
	font-size: var(--fs-lg);
	line-height: var(--lh-base);
	color: rgba(248,245,236,.82);
	margin: 0 0 var(--space-5);
	max-width: 580px;
}
.se-cta-final__action { grid-column: 10 / span 3; align-self: end; }

/* === Variant : split avec ambassadrice / visuel billetterie === */
.se-section--cta--with-image {
	overflow: hidden; /* clip tout debordement (image trop haute, capsule, etc.) */
}
.se-section--cta--with-image .se-cta-final {
	grid-template-columns: 1fr;
	gap: var(--space-5);
	align-items: center;
}
.se-section--cta--with-image .se-cta-final__index,
.se-section--cta--with-image .se-cta-final__body,
.se-section--cta--with-image .se-cta-final__action {
	grid-column: 1 / -1;
}
.se-section--cta--with-image .se-cta-final__action {
	margin-top: var(--space-2);
}

/* Figure : conteneur du PNG + capsule. Centre dans sa colonne, ancre en bas. */
.se-cta-final__figure {
	position: relative;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-self: center;
	width: 100%;
	max-width: 78vw;
}
/* === CERCLE PARFAIT BLANC qui contient la dame, fond uniforme studio. */
.se-cta-final__figure-halo {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 100%;
	aspect-ratio: 1;
	height: auto;
	transform: translateX(-50%);
	z-index: 0;
	pointer-events: none;

	background: #FFFFFF;
	border-radius: 50%;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent),
		0 30px 60px -20px rgba(0, 0, 0, .35);
}
/* Lueur or radiale juste derriere la dame (au-dessus de la forme, sous le PNG) */
.se-cta-final__figure-halo::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 35%;
	width: 80%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	background: radial-gradient(circle at center,
		color-mix(in srgb, var(--color-gold) 28%, transparent) 0%,
		transparent 65%);
	filter: blur(14px);
}
.se-cta-final__image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	max-height: 78vh;
	margin: 0 auto;
	object-fit: contain;
	/* Masque "tombstone" : full opacity en haut + bas clippe a la courbe du cercle.
	   ViewBox 100x141.4 = ratio du PNG (1414x2000 = 1.414).
	   Cercle (cx 50, cy 91.4, r 50) aligne pixel-perfect avec le halo cream. */
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 141.4'><rect x='0' y='0' width='100' height='91.4' fill='black'/><circle cx='50' cy='91.4' r='50' fill='black'/></svg>");
	        mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 141.4'><rect x='0' y='0' width='100' height='91.4' fill='black'/><circle cx='50' cy='91.4' r='50' fill='black'/></svg>");
	-webkit-mask-size: 100% 100%;
	        mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	filter: drop-shadow(0 30px 50px color-mix(in srgb, #000 38%, transparent))
	        drop-shadow(0 6px 14px color-mix(in srgb, var(--color-gold) 22%, transparent));
}
.se-cta-final__figcaption {
	position: relative;
	z-index: 1;
	display: flex; align-items: center; gap: var(--space-3);
	margin-top: var(--space-3);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-cream) 78%, transparent);
}
.se-cta-final__figcaption-bar {
	display: inline-block;
	width: 28px; height: 1px;
	background: var(--color-gold);
	flex-shrink: 0;
}

@media (min-width: 920px) {
	.se-section--cta--with-image .se-cta-final {
		grid-template-columns: 7fr 5fr;
		grid-template-areas:
			"index   figure"
			"body    figure"
			"action  figure";
		align-items: start;
		gap: var(--space-4) var(--space-6);
	}
	.se-section--cta--with-image .se-cta-final__index   { grid-area: index;   grid-column: auto; max-width: 240px; }
	.se-section--cta--with-image .se-cta-final__body    { grid-area: body;    grid-column: auto; }
	.se-section--cta--with-image .se-cta-final__action  { grid-area: action;  grid-column: auto; margin-top: 0; }
	.se-section--cta--with-image .se-cta-final__figure  {
		grid-area: figure;
		grid-row: 1 / -1;
		align-self: end;
		justify-self: center;
		max-width: 460px;       /* legerement reduit pour menager une marge naturelle a droite */
		padding-right: 0;        /* image et halo doivent avoir la meme largeur exacte */
	}
	.se-section--cta--with-image .se-cta-final__title { max-width: 16ch; }
	.se-section--cta--with-image .se-cta-final__text  { max-width: 52ch; }
}

/* =========================================================================
   Buttons : minimaux editoriaux
   ========================================================================= */
.se-button {
	display: inline-flex; align-items: center;
	gap: var(--space-3);
	padding: var(--space-3) var(--space-5);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	font-weight: 500;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-night);
	background: transparent;
	border: var(--rule) solid var(--color-night);
	cursor: pointer;
	transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
	text-decoration: none;
	background-image: none !important;
}
.se-button::after {
	content: '\2192';
	font-family: var(--font-heading);
	font-size: 1.25em;
	transition: transform .3s ease;
}
.se-button:hover {
	background: var(--color-night);
	color: var(--color-cream);
	background-image: none;
}
.se-button:hover::after { transform: translateX(4px); }

.se-button--primary {
	background: var(--color-night);
	color: var(--color-cream);
	border-color: var(--color-night);
}
.se-button--primary:hover {
	background: var(--color-gold-dark);
	border-color: var(--color-gold-dark);
	color: var(--color-night);
}

.se-button--gold,
.se-section--burgundy a.se-button--gold,
.se-section--night a.se-button--gold {
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
}
.se-button--gold:hover,
.se-section--burgundy a.se-button--gold:hover,
.se-section--night a.se-button--gold:hover {
	background: var(--color-night);
	color: var(--color-gold);
	border-color: var(--color-night);
}

.se-button--ghost {
	color: var(--color-cream);
	border-color: var(--color-cream);
	background: transparent;
}
.se-button--ghost:hover {
	background: var(--color-cream);
	color: var(--color-night);
}

.se-button--outline {
	color: var(--color-primary);
	border-color: var(--color-primary);
}
.se-button--outline:hover {
	background: var(--color-primary);
	color: var(--color-cream);
}

.se-button--sm { padding: 8px 16px; font-size: 11px; }
.se-button--lg { padding: var(--space-4) var(--space-6); font-size: var(--fs-sm); }

/* =========================================================================
   Forms
   ========================================================================= */
.se-form { display: flex; flex-direction: column; gap: var(--space-3); }
.se-form__row { display: flex; flex-direction: column; gap: var(--space-2); }
.se-form__label {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	text-transform: uppercase;
	letter-spacing: var(--tracking-eyebrow);
	color: var(--color-night);
}
.se-form__input, .se-form__textarea, .se-form__select {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	padding: 14px 16px;
	border: var(--rule) solid var(--color-rule-strong);
	border-radius: 0;
	background: var(--color-cream);
	color: var(--color-text);
	transition: border-color .2s ease;
}
.se-form__input:focus, .se-form__textarea:focus, .se-form__select:focus {
	outline: none;
	border-color: var(--color-night);
}

/* =========================================================================
   Footer — pattern Event/Conference (UI/UX Pro Max) + ame editoriale
   - Signature geante (place + date) en frise haute
   - 4 colonnes brand / Explorer / Contact / Suivre
   - Capture newsletter (paramétrable)
   - Bottom : copyright + legal + back-to-top
   ========================================================================= */
.se-footer {
	position: relative;
	color: color-mix(in srgb, var(--color-cream) 86%, transparent);
	background:
		radial-gradient(ellipse 110% 60% at 50% 0%, color-mix(in srgb, var(--color-gold) 6%, transparent) 0%, transparent 60%),
		linear-gradient(180deg, color-mix(in srgb, var(--color-night) 92%, #000) 0%, #0E0E1B 100%);
	border-top: 1px solid color-mix(in srgb, var(--color-gold) 18%, transparent);
	overflow: hidden;
}
.se-footer a {
	color: color-mix(in srgb, var(--color-cream) 86%, transparent);
	background: none;
	transition: color .2s ease, transform .2s ease;
}
.se-footer a:hover { color: var(--color-gold); background: none; }
.se-footer a:focus-visible {
	color: var(--color-gold);
	outline: 1px solid color-mix(in srgb, var(--color-gold) 70%, transparent);
	outline-offset: 4px;
	border-radius: 2px;
}

/* --- Signature : place + date geantes, frise editoriale --- */
.se-footer__signature {
	padding: clamp(36px, 6vw, 72px) 0 clamp(28px, 4vw, 56px);
	position: relative;
}
@media (min-width: 768px) {
	.se-footer__signature::after {
		content: '';
		position: absolute;
		left: 50%;
		bottom: 0;
		width: min(82%, 1080px);
		height: 1px;
		background: linear-gradient(to right,
			transparent,
			color-mix(in srgb, var(--color-gold) 55%, transparent) 18%,
			color-mix(in srgb, var(--color-gold) 80%, transparent) 50%,
			color-mix(in srgb, var(--color-gold) 55%, transparent) 82%,
			transparent);
		transform: translateX(-50%);
		pointer-events: none;
	}
}
.se-footer__signature-inner {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: clamp(12px, 2vw, 28px);
	flex-wrap: wrap;
	text-align: center;
	font-family: var(--font-heading);
	color: color-mix(in srgb, var(--color-cream) 96%, transparent);
	font-weight: 300;
	line-height: 0.9;
	letter-spacing: -0.01em;
	font-size: clamp(2.8rem, 9vw, 7.5rem);
}
.se-footer__signature-place { font-style: italic; }
.se-footer__signature-sep {
	color: var(--color-gold);
	font-size: 0.7em;
	transform: translateY(-0.15em);
	display: inline-block;
}
.se-footer__signature-date {
	font-feature-settings: "lnum", "tnum";
	color: color-mix(in srgb, var(--color-cream) 96%, transparent);
}

/* --- Top : bloc brand centre (logo + motto + tagline) --- */
.se-footer__top {
	padding-block: clamp(40px, 6vw, 72px) var(--space-5);
}

.se-footer__brand {
	display: flex; flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--space-3);
	max-width: 320px;
	margin: 0 auto;
}
.se-footer__logo-wrap { display: inline-block; }
.se-footer__logo {
	max-width: 130px; height: auto;
	display: block;
	filter: drop-shadow(0 8px 20px rgba(0,0,0,.4));
}
.se-footer__brand .se-motto {
	align-items: center;
	gap: 8px;
}
.se-footer__brand .se-motto__words {
	font-size: clamp(.95rem, 1.05vw, 1.05rem);
	color: color-mix(in srgb, var(--color-cream) 90%, var(--color-gold) 10%);
	justify-content: center;
}
.se-footer__brand .se-motto__rule {
	color: var(--color-gold);
}
.se-footer__brand .se-motto__line {
	width: clamp(40px, 6vw, 56px);
	opacity: .75;
}
.se-footer__brand .se-motto__diamond {
	width: 6px; height: 6px;
	opacity: 1;
}
.se-footer__brand .se-motto__leaf {
	width: 13px; height: 13px;
}
/* Desktop : brand centre, logo a cheval sur la ligne de separation de la signature */
@media (min-width: 768px) {
	.se-footer__top {
		padding-top: 0;
	}
	.se-footer__brand {
		max-width: 420px;
		margin: 0 auto;
		position: relative;
		z-index: 2;
	}
	/* Logo medaillon centre exactement sur la ligne (moitie haute par-dessus la signature) */
	.se-footer__brand .se-footer__logo-wrap {
		margin-top: clamp(-56px, -4vw, -40px);
	}
	.se-footer__brand .se-footer__logo {
		max-width: 96px;
		background: var(--color-night);
		padding: 10px;
		border-radius: 50%;
		box-shadow:
			0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
			0 18px 36px -12px rgba(0,0,0,.55);
	}
}
.se-footer__title {
	font-family: var(--font-heading);
	font-size: var(--fs-xl);
	margin: 0;
	color: var(--color-cream);
	font-weight: 400;
	letter-spacing: var(--tracking-tight);
}
.se-footer__tagline {
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	line-height: var(--lh-base);
	color: color-mix(in srgb, var(--color-cream) 62%, transparent);
	margin: 0;
}

.se-footer__col {
	display: flex; flex-direction: column;
	gap: var(--space-3);
}
.se-footer h4 {
	color: var(--color-gold);
	margin: 0 0 var(--space-2);
	font-size: var(--fs-xs);
	font-family: var(--font-eyebrow);
	font-weight: 500;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
}
.se-footer address {
	font-style: normal;
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	line-height: var(--lh-base);
	color: color-mix(in srgb, var(--color-cream) 76%, transparent);
	margin: 0;
}

.se-footer-menu, .se-social {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-direction: column;
	gap: 10px;
	font-family: var(--font-body);
	font-size: var(--fs-sm);
}
.se-footer-menu a, .se-social a {
	display: inline-flex; align-items: center;
	gap: 10px;
}
.se-social-icon {
	width: 16px; height: 16px;
	flex-shrink: 0;
	color: var(--color-gold);
	transition: color .2s ease, transform .2s ease;
}
.se-social a:hover .se-social-icon { color: var(--color-cream); transform: translateY(-1px); }

.se-footer__placeholder {
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	color: color-mix(in srgb, var(--color-cream) 48%, transparent);
	margin: 0;
	font-style: italic;
}

/* --- Newsletter capture : 2 colonnes, sobre, gold accent --- */
.se-footer__newsletter {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: clamp(24px, 4vw, 64px);
	align-items: center;
	padding: clamp(28px, 4vw, 48px) 0;
	border-top: 1px solid color-mix(in srgb, var(--color-cream) 10%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--color-cream) 10%, transparent);
}
.se-footer .se-footer__newsletter-title {
	font-family: var(--font-heading);
	color: var(--color-cream);
	font-size: clamp(1.4rem, 2.2vw, 1.8rem);
	font-weight: 400;
	margin: 0 0 .35em;
	letter-spacing: var(--tracking-tight);
	text-transform: none;
}
.se-footer__newsletter-desc {
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	color: color-mix(in srgb, var(--color-cream) 70%, transparent);
	line-height: var(--lh-base);
	margin: 0;
	max-width: 36ch;
}
.se-footer__newsletter-form {
	display: flex;
	gap: 0;
	background: color-mix(in srgb, var(--color-cream) 8%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-cream) 14%, transparent);
	border-radius: 999px;
	padding: 4px;
	transition: border-color .2s ease, background .2s ease;
}
.se-footer__newsletter-form:focus-within {
	border-color: color-mix(in srgb, var(--color-gold) 70%, transparent);
	background: color-mix(in srgb, var(--color-cream) 12%, transparent);
}
.se-footer__newsletter-input {
	flex: 1;
	background: transparent;
	border: 0;
	padding: 12px 18px;
	color: var(--color-cream);
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	outline: none;
	min-width: 0;
}
.se-footer__newsletter-input::placeholder {
	color: color-mix(in srgb, var(--color-cream) 42%, transparent);
}
.se-footer__newsletter-btn {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--color-gold);
	color: var(--color-night);
	border: 0;
	padding: 10px 20px;
	border-radius: 999px;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
	white-space: nowrap;
}
.se-footer__newsletter-btn:hover {
	background: color-mix(in srgb, var(--color-gold) 92%, #fff);
	transform: translateY(-1px);
}
.se-footer__newsletter-btn:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
}
.se-footer__newsletter-arrow { transition: transform .2s ease; }
.se-footer__newsletter-btn:hover .se-footer__newsletter-arrow { transform: translateX(2px); }

/* --- Bottom : copyright + legal + back-to-top --- */
.se-footer__bottom {
	display: flex; justify-content: space-between; align-items: center;
	flex-wrap: wrap;
	gap: var(--space-3);
	padding-block: var(--space-4);
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: var(--tracking-mono);
	color: color-mix(in srgb, var(--color-cream) 54%, transparent);
}
.se-footer__copy { margin: 0; }
.se-legal-menu {
	list-style: none;
	display: flex; gap: var(--space-3);
	margin: 0; padding: 0;
}
.se-legal-menu a {
	color: color-mix(in srgb, var(--color-cream) 54%, transparent);
	font-size: 11px;
}
.se-footer__top-link {
	display: inline-flex; align-items: center; gap: 8px;
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--color-cream) 18%, transparent);
	color: color-mix(in srgb, var(--color-cream) 62%, transparent);
	padding: 8px 14px;
	border-radius: 999px;
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: var(--tracking-mono);
	text-transform: uppercase;
	cursor: pointer;
	transition: color .2s ease, border-color .2s ease, transform .2s ease;
}
.se-footer__top-link:hover {
	color: var(--color-gold);
	border-color: color-mix(in srgb, var(--color-gold) 50%, transparent);
	transform: translateY(-1px);
}
.se-footer__top-link:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
	color: var(--color-gold);
}
.se-footer__top-link svg { transition: transform .2s ease; }
.se-footer__top-link:hover svg { transform: translateY(-2px); }

/* Signature editeur — ligne discrete sous le bottom row */
.se-footer__credit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(10px, 1.4vw, 16px);
	margin: 0;
	padding: clamp(14px, 1.8vw, 22px) 0 6px;
	border-top: 1px solid color-mix(in srgb, var(--color-cream) 8%, transparent);
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-cream) 42%, transparent);
	flex-wrap: wrap;
	text-align: center;
}
.se-footer__credit-rule {
	flex: 1 1 40px;
	max-width: 60px;
	height: 1px;
	background: linear-gradient(to right,
		transparent,
		color-mix(in srgb, var(--color-gold) 30%, transparent),
		transparent);
}
.se-footer__credit-label {
	color: color-mix(in srgb, var(--color-cream) 40%, transparent);
}
.se-footer__credit-link,
.se-footer__credit-name {
	color: color-mix(in srgb, var(--color-cream) 78%, transparent);
	text-decoration: none;
	font-weight: 600;
	letter-spacing: .22em;
}
.se-footer__credit-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	transition: color .25s ease;
}
.se-footer__credit-link:hover,
.se-footer__credit-link:focus-visible {
	color: var(--color-gold);
}
.se-footer__credit-arrow {
	font-size: 11px;
	transition: transform .25s ease;
}
.se-footer__credit-link:hover .se-footer__credit-arrow,
.se-footer__credit-link:focus-visible .se-footer__credit-arrow {
	transform: translate(2px, -2px);
}

/* =========================================================================
   Reveal au scroll
   ========================================================================= */
.se-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);
	transition-delay: calc(var(--reveal-stagger, 0) * 80ms);
}
.se-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.se-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	a, .se-button, .se-card-session, .se-speaker-card { transition: none !important; }
}

/* =========================================================================
   Mobile
   ========================================================================= */
@media (max-width: 920px) {
	.se-hero__layout { grid-template-columns: 1fr; gap: var(--space-5); }
	.se-hero__visual { align-items: center; text-align: center; }
	.se-hero__motto { align-self: flex-start; }
	.se-hero__meta { grid-template-columns: 1fr 1fr; }

	.se-section__header,
	.se-section__body,
	.se-cta-final,
	.se-programme-grid { grid-template-columns: 1fr; gap: var(--space-3); }
	.se-section__index,
	.se-section__title,
	.se-section__intro,
	.se-section__footer,
	.se-section__placeholder,
	.se-cta-final__index,
	.se-cta-final__body,
	.se-cta-final__action,
	.se-cta-final__figure,
	.se-card-session { grid-column: 1 / -1; }
	.se-section--cta--with-image .se-cta-final {
		grid-template-areas: none;
		grid-template-columns: 1fr;
	}
	.se-section--cta--with-image .se-cta-final__figure {
		order: -1;
		justify-self: center;
		max-width: 72vw;
	}
	.se-card-session:nth-child(n+2) { margin-top: 0; }
	.se-section__intro { border-left: none; padding-left: 0; }
	.se-footer__newsletter { grid-template-columns: 1fr; gap: var(--space-3); }
	.se-footer__signature-inner { font-size: clamp(2.4rem, 11vw, 5.5rem); }

	.se-header__nav,
	.se-header__cta-btn { display: none; }
	.se-header__burger {
		display: flex;
	}
	/* En mobile : nav cachees (display:none) retirent les cols du grid flow.
	   On force le brand sur la col 2 pour qu'il reste centre dans la grille 1fr|auto|1fr. */
	.se-header__brand { grid-column: 2; }

	/* Burger -> croix quand menu ouvert */
	body.se-menu-open .se-header__burger span:nth-child(1) {
		transform: translateY(8px) rotate(45deg);
	}
	body.se-menu-open .se-header__burger span:nth-child(2) {
		opacity: 0;
	}
	body.se-menu-open .se-header__burger span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}
}

@media (max-width: 540px) {
	.se-countdown { grid-template-columns: repeat(2, 1fr); }
	.se-countdown__item:nth-child(3) { border-top: var(--rule) solid var(--color-rule); border-left: none; }
	.se-footer__bottom { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
	.se-footer__signature-inner { font-size: clamp(2rem, 10vw, 4.5rem); gap: 8px; }
	.se-footer__newsletter-form { flex-direction: column; border-radius: 18px; gap: 6px; }
	.se-footer__newsletter-btn { justify-content: center; }
	.se-footer__top-link { align-self: flex-end; }
}

/* ==========================================================================
   HERO : strip de quick-actions sous les CTAs principaux
   ========================================================================== */
.se-hero__quick {
	margin: var(--space-5) auto 0;
	max-width: 720px;
	width: 100%;
}
.se-hero__quick-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
.se-hero__quick-item {
	min-width: 0;
	animation: se-qa-rise .55s cubic-bezier(.2,.7,.2,1) both;
	animation-delay: calc(.6s + var(--qa-index, 0) * .08s);
}
@keyframes se-qa-rise {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}
.se-hero__quick-link {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
	padding: 14px 14px 12px;
	min-height: 96px;
	border-radius: 14px;
	background: color-mix(in srgb, var(--color-night) 38%, transparent);
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	border: 1px solid color-mix(in srgb, var(--color-cream) 22%, transparent);
	color: var(--color-cream);
	text-decoration: none;
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: none;
	transition: transform .28s cubic-bezier(.2,.7,.2,1), background .25s ease, border-color .25s ease, color .2s ease, box-shadow .3s ease;
}
.se-hero__quick-link::after {
	content: "";
	position: absolute;
	left: 14px; right: 14px; top: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--color-gold), transparent);
	border-radius: 2px;
	transform: scaleX(.0); transform-origin: left;
	transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.se-hero__quick-link:hover,
.se-hero__quick-link:focus-visible {
	background: color-mix(in srgb, var(--color-night) 58%, transparent);
	border-color: color-mix(in srgb, var(--color-gold) 55%, transparent);
	color: #fff;
	transform: translateY(-3px);
	box-shadow: 0 18px 32px -16px rgba(0,0,0,.6);
}
.se-hero__quick-link:hover::after,
.se-hero__quick-link:focus-visible::after { transform: scaleX(1); }
.se-hero__quick-link:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
}
.se-hero__quick-icon {
	display: inline-flex;
	width: 34px; height: 34px;
	align-items: center; justify-content: center;
	border-radius: 999px;
	background: color-mix(in srgb, var(--color-gold) 22%, transparent);
	color: var(--color-gold);
}
.se-hero__quick-icon .se-action-icon { width: 18px; height: 18px; }
.se-hero__quick-label {
	font-size: 13px;
	line-height: 1.25;
	max-width: 100%;
	white-space: normal;
	word-break: break-word;
	hyphens: auto;
}
.se-hero__quick-arrow {
	position: absolute;
	right: 12px; bottom: 10px;
	font-size: 14px;
	opacity: .55;
	transition: transform .25s ease, opacity .2s ease;
}
.se-hero__quick-link:hover .se-hero__quick-arrow,
.se-hero__quick-link:focus-visible .se-hero__quick-arrow {
	transform: translateX(3px);
	opacity: 1;
}
@media (max-width: 760px) {
	.se-hero__quick-list { grid-template-columns: repeat(2, 1fr); }
	.se-hero__quick-link { min-height: 84px; }
}
@media (max-width: 380px) {
	.se-hero__quick-list { grid-template-columns: 1fr; gap: 8px; }
	.se-hero__quick-link {
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		min-height: 0;
		padding: 12px 14px;
	}
	.se-hero__quick-icon { width: 30px; height: 30px; }
}

/* ==========================================================================
   SECTION KEYNOTES : Codex editorial — portraits ceremoniels
   ========================================================================== */
.se-section--keynotes.se-codex--keynotes {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-burgundy) 8%) 0%,
			var(--color-cream) 50%,
			color-mix(in srgb, var(--color-cream) 95%, var(--color-gold) 5%) 100%);
}
.se-codex--keynotes .se-codex__ground-glow--top-left {
	left: -10%; top: 4%; right: auto;
	background:
		radial-gradient(circle at center,
			color-mix(in srgb, var(--color-burgundy) 18%, transparent) 0%,
			color-mix(in srgb, var(--color-burgundy) 5%, transparent) 40%,
			transparent 65%);
}

/* Container : section centree, rail horizontal au-dessus du header */
.se-codex__container--keynotes {
	grid-template-areas:
		"header"
		"stage"
		"signature";
}
.se-codex--keynotes .se-codex-stage { grid-area: stage; }
@media (min-width: 980px) {
	.se-codex__container--keynotes {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"rail"
			"header"
			"stage"
			"signature";
		column-gap: 0;
		row-gap: clamp(20px, 3vw, 40px);
	}
	.se-codex--keynotes .se-codex__rail {
		grid-area: rail;
		position: static;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: clamp(10px, 1.4vw, 18px);
		top: auto;
		height: auto;
		margin-bottom: clamp(8px, 1.5vw, 16px);
	}
	.se-codex--keynotes .se-codex__thread { display: none; }
	.se-codex--keynotes .se-codex__seal {
		width: 56px;
		height: 56px;
	}
	.se-codex--keynotes .se-codex__seal-num { font-size: 1.25rem; }
	.se-codex--keynotes .se-codex__rail-byline {
		writing-mode: horizontal-tb;
		transform: none;
		padding-top: 0;
		display: inline-flex;
		align-items: center;
		gap: clamp(10px, 1.4vw, 18px);
		font-size: 11px;
		letter-spacing: .28em;
		color: color-mix(in srgb, var(--color-burgundy) 75%, transparent);
	}
	.se-codex--keynotes .se-codex__rail-byline::before {
		content: '';
		width: 5px;
		height: 5px;
		background: var(--color-gold);
		transform: rotate(45deg);
		flex-shrink: 0;
	}
	.se-codex--keynotes .se-codex__header {
		text-align: center;
		max-width: 980px;
		margin-left: auto;
		margin-right: auto;
	}
	.se-codex--keynotes .se-codex__overline { justify-content: center; }
	.se-codex--keynotes .se-codex__intro { margin-left: auto; margin-right: auto; }
	.se-codex--keynotes .se-codex__title-flourish { margin-left: auto; margin-right: auto; }
}

/* Intro paragraphe sous le titre */
.se-codex__intro {
	margin: clamp(20px, 2.5vw, 32px) 0 0;
	max-width: 64ch;
	font-family: var(--font-heading);
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 82%, transparent);
	font-weight: 360;
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
}

/* === STAGE === */
.se-codex-stage {
	position: relative;
}

/* Controls header : compteur royal + filet + nav */
.se-codex-stage__controls {
	display: grid;
	grid-template-columns: 1fr auto auto;
	align-items: center;
	gap: clamp(16px, 2.5vw, 32px);
	margin-bottom: clamp(18px, 2.2vw, 28px);
	color: var(--color-burgundy);
}
.se-codex-stage__rule {
	display: block;
	height: 1px;
	background: linear-gradient(to right,
		transparent,
		color-mix(in srgb, var(--color-gold) 55%, transparent) 20%,
		var(--color-gold) 70%);
}
.se-codex-stage__counter {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	font-family: var(--font-heading);
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 48, 'SOFT' 50;
}
.se-codex-stage__counter-num {
	font-size: clamp(1.4rem, 2vw, 1.7rem);
	font-weight: 380;
	font-style: italic;
	letter-spacing: -.01em;
	color: var(--color-burgundy);
	min-width: 1.8em;
	text-align: right;
}
.se-codex-stage__counter-sep {
	font-size: .9rem;
	color: var(--color-gold);
	transform: translateY(-2px);
}
.se-codex-stage__counter-total {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .18em;
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
	text-transform: uppercase;
	align-self: end;
	padding-bottom: 4px;
}
.se-codex-stage__nav {
	display: inline-flex;
	gap: 10px;
}

/* Boutons prev/next : cercles avec liseré gold */
.se-codex-stage__btn,
.se-codex--keynotes .se-keynotes-nav {
	background: transparent;
	color: var(--color-burgundy);
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: none;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: color .3s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.se-codex-stage__btn::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background:
		conic-gradient(from -90deg,
			var(--color-gold) 0deg,
			color-mix(in srgb, var(--color-gold) 30%, transparent) 90deg,
			var(--color-gold) 180deg,
			color-mix(in srgb, var(--color-gold) 30%, transparent) 270deg);
	-webkit-mask: radial-gradient(circle at center, transparent 19px, #000 20px);
	mask: radial-gradient(circle at center, transparent 19px, #000 20px);
	opacity: .6;
	transition: opacity .3s ease;
}
.se-codex-stage__btn::after {
	content: '';
	position: absolute;
	inset: 4px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--color-cream) 70%, transparent);
	z-index: -1;
}
.se-codex-stage__btn svg {
	position: relative;
	z-index: 1;
	transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.se-codex-stage__btn:hover:not([disabled])::before,
.se-codex-stage__btn:focus-visible:not([disabled])::before {
	opacity: 1;
}
.se-codex-stage__btn:hover:not([disabled]) {
	color: var(--color-burgundy);
}
.se-codex-stage__btn--prev:hover:not([disabled]) svg { transform: translateX(-3px); }
.se-codex-stage__btn--next:hover:not([disabled]) svg { transform: translateX(3px); }
.se-codex-stage__btn:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
}
.se-codex-stage__btn[disabled] {
	opacity: .35;
	cursor: not-allowed;
}

/* === TRACK / SLIDER === */
.se-codex-keynotes-track,
.se-codex--keynotes .se-keynotes-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(40px, 5vw, 72px);
	position: relative;
}
@media (min-width: 920px) {
	.se-codex--keynotes .se-keynotes-grid:not(.se-keynotes-grid--slider) {
		grid-template-columns: 1fr 1fr;
		gap: clamp(var(--space-5), 5vw, var(--space-8));
		align-items: start;
	}
}
.se-codex--keynotes .se-keynotes-grid--slider {
	display: flex;
	gap: clamp(28px, 4vw, 56px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: 0;
	scroll-behavior: smooth;
	padding: 4px 4px 28px;
	margin: 0 -4px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: color-mix(in srgb, var(--color-burgundy) 40%, transparent) transparent;
}
.se-codex--keynotes .se-keynotes-grid--slider::-webkit-scrollbar { height: 6px; }
.se-codex--keynotes .se-keynotes-grid--slider::-webkit-scrollbar-track { background: transparent; }
.se-codex--keynotes .se-keynotes-grid--slider::-webkit-scrollbar-thumb {
	background: color-mix(in srgb, var(--color-burgundy) 32%, transparent);
	border-radius: 999px;
}
.se-codex--keynotes .se-keynotes-grid--slider:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 6px;
	border-radius: 4px;
}
.se-codex--keynotes .se-keynotes-grid--slider .se-keynote-card {
	flex: 0 0 calc((100% - 2 * clamp(28px, 4vw, 56px)) / 3);
	scroll-snap-align: start;
	scroll-snap-stop: always;
	min-width: 0;
}
@media (max-width: 1199px) {
	.se-codex--keynotes .se-keynotes-grid--slider .se-keynote-card {
		flex-basis: calc((100% - clamp(28px, 4vw, 56px)) / 2);
	}
}
@media (max-width: 919px) {
	.se-codex--keynotes .se-keynotes-grid--slider .se-keynote-card {
		flex-basis: calc(100% - 60px);
	}
}
@media (max-width: 540px) {
	.se-codex--keynotes .se-keynotes-grid--slider { gap: var(--space-4); }
	.se-codex--keynotes .se-keynotes-grid--slider .se-keynote-card {
		flex-basis: calc(100% - 36px);
	}
}

/* === CARTE KEYNOTE === */
.se-codex-keynote,
.se-codex--keynotes .se-keynote-card {
	position: relative;
	display: grid;
	grid-template-rows: auto auto;
	gap: clamp(20px, 2.5vw, 32px);
	transform: none !important; /* reset old offset */
}
.se-codex-keynote__portrait,
.se-codex--keynotes .se-keynote-card__media {
	position: relative;
	display: block;
	overflow: visible;
	border-radius: 0;
	aspect-ratio: auto;
	width: 100%;
	max-width: none;
	background: transparent;
	box-shadow: none;
	isolation: auto;
}

/* Cadre ndop (meme principe que portrait about, version carte) */
.se-codex-keynote__frame {
	position: relative;
	padding: clamp(10px, 1.2vw, 16px);
	background:
		linear-gradient(135deg,
			color-mix(in srgb, var(--color-burgundy) 94%, #000) 0%,
			var(--color-burgundy) 55%,
			color-mix(in srgb, var(--color-burgundy) 86%, var(--color-night)) 100%);
	box-shadow:
		0 32px 60px -28px color-mix(in srgb, var(--color-burgundy) 60%, transparent),
		0 10px 24px -12px rgba(0,0,0,.32),
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent);
}
.se-codex-keynote__frame-pattern {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		repeating-linear-gradient( 45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 12px),
		repeating-linear-gradient(-45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 12px);
	-webkit-mask: linear-gradient(#000 0 0) content-box,
				  linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box,
		  linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	padding: clamp(10px, 1.2vw, 16px);
	box-sizing: border-box;
}
.se-codex-keynote__frame-image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4/5;
}
.se-codex-keynote__frame-image img {
	display: block;
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(1.04) contrast(1.04) grayscale(.05);
	transition: transform 1.2s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
.se-codex-keynote__portrait:hover .se-codex-keynote__frame-image img,
.se-codex-keynote__portrait:focus-visible .se-codex-keynote__frame-image img {
	transform: scale(1.05);
	filter: saturate(1.08) contrast(1.08) grayscale(0);
}
.se-codex-keynote__veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--color-night) 45%, transparent) 100%),
		linear-gradient(135deg, transparent 70%, color-mix(in srgb, var(--color-burgundy) 18%, transparent) 100%);
	pointer-events: none;
	mix-blend-mode: multiply;
}

.se-codex-keynote__placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 380;
	font-size: clamp(4rem, 10vw, 6rem);
	color: var(--color-gold);
	background: linear-gradient(135deg, var(--color-burgundy), color-mix(in srgb, var(--color-burgundy) 70%, var(--color-night)));
}

/* Coins ornementaux */
.se-codex-keynote__corner {
	position: absolute;
	width: 18px; height: 18px;
	border: 2px solid var(--color-gold);
	z-index: 3;
}
.se-codex-keynote__corner--tl { top: -1px; left: -1px;  border-right: none; border-bottom: none; }
.se-codex-keynote__corner--tr { top: -1px; right: -1px; border-left:  none; border-bottom: none; }
.se-codex-keynote__corner--bl { bottom: -1px; left: -1px;  border-right: none; border-top: none; }
.se-codex-keynote__corner--br { bottom: -1px; right: -1px; border-left:  none; border-top: none; }

/* Badge "Keynote" en sceau ovale (override de l'ancien badge pill) */
.se-codex-keynote__seal,
.se-codex--keynotes .se-keynote-card__badge {
	position: absolute;
	left: 18px; top: 18px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px 6px 10px;
	background: var(--color-cream);
	color: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	border-radius: 0;
	box-shadow:
		inset 0 0 0 1px var(--color-burgundy),
		inset 0 0 0 3px var(--color-cream),
		inset 0 0 0 4px color-mix(in srgb, var(--color-gold) 70%, transparent);
}
.se-codex-keynote__seal::before { display: none; }
.se-codex-keynote__seal-dot {
	width: 6px; height: 6px;
	background: var(--color-burgundy);
	transform: rotate(45deg);
	flex-shrink: 0;
	box-shadow: 0 0 0 1.5px var(--color-gold);
}

/* Body texte */
.se-codex-keynote__body,
.se-codex--keynotes .se-keynote-card__body {
	display: grid;
	gap: 10px;
	padding-top: 4px;
}

.se-codex-keynote__num {
	margin: 0 0 4px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.se-codex-keynote__num-mark {
	display: inline-block;
	width: 28px; height: 1px;
	background: var(--color-gold);
}

.se-codex-keynote__name,
.se-codex--keynotes .se-keynote-card__name {
	font-family: var(--font-heading);
	font-size: clamp(1.75rem, 2.8vw, 2.45rem);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -.012em;
	margin: 0;
	color: var(--color-night);
	font-variation-settings: 'opsz' 60, 'SOFT' 30;
}
.se-codex-keynote__name a {
	color: inherit;
	text-decoration: none;
	background-image: linear-gradient(var(--color-gold), var(--color-gold));
	background-size: 0% 1.5px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	padding-bottom: 4px;
	transition: background-size .45s cubic-bezier(.2,.7,.2,1), color .25s;
}
.se-codex-keynote__name a:hover,
.se-codex-keynote__name a:focus-visible {
	background-size: 100% 1.5px;
	color: var(--color-burgundy);
}

.se-codex-keynote__role {
	margin: 4px 0 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(.95rem, 1.1vw, 1.05rem);
	line-height: 1.45;
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
}
.se-codex-keynote__role em {
	font-style: italic;
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
}
.se-codex-keynote__role-sep {
	color: var(--color-gold);
	margin: 0 4px;
	font-size: .7em;
	display: inline-block;
	transform: translateY(-1px);
}

.se-codex-keynote__bio {
	margin: 8px 0 0;
	font-family: var(--font-body);
	font-size: 15.5px;
	line-height: 1.65;
	color: color-mix(in srgb, var(--color-text) 84%, transparent);
	max-width: 42ch;
}

.se-codex-keynote__footer {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
	margin: clamp(12px, 1.4vw, 18px) 0 0;
	padding-top: clamp(12px, 1.4vw, 16px);
	border-top: 1px solid color-mix(in srgb, var(--color-burgundy) 18%, transparent);
	font-family: var(--font-eyebrow);
	font-size: 11.5px;
	letter-spacing: .06em;
}
.se-codex-keynote__city {
	display: inline-flex; align-items: center; gap: 6px;
	color: color-mix(in srgb, var(--color-night) 72%, transparent);
	text-transform: uppercase;
	letter-spacing: .14em;
}
.se-codex-keynote__more {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--color-burgundy);
	font-weight: 600;
	text-decoration: none;
	letter-spacing: .16em;
	text-transform: uppercase;
	transition: color .25s;
}
.se-codex-keynote__more-arrow {
	display: inline-block;
	transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.se-codex-keynote__more:hover,
.se-codex-keynote__more:focus-visible { color: var(--color-gold-dark); }
.se-codex-keynote__more:hover .se-codex-keynote__more-arrow,
.se-codex-keynote__more:focus-visible .se-codex-keynote__more-arrow {
	transform: translateX(4px);
}

/* === DOTS (losanges) === */
.se-codex-stage__dots,
.se-codex--keynotes .se-keynotes-dots {
	list-style: none;
	margin: clamp(28px, 3.5vw, 44px) 0 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
}
.se-codex-stage__dot,
.se-codex--keynotes .se-keynotes-dot {
	background: transparent;
	border: 0;
	padding: 10px 6px;
	cursor: pointer;
	transition: transform .25s ease;
}
.se-codex-stage__dot-inner,
.se-codex--keynotes .se-keynotes-dot__inner {
	display: block;
	width: 9px;
	height: 9px;
	background: color-mix(in srgb, var(--color-burgundy) 22%, transparent);
	transform: rotate(45deg);
	transition: background .35s ease, box-shadow .35s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.se-codex-stage__dot.is-active .se-codex-stage__dot-inner,
.se-codex--keynotes .se-keynotes-dot.is-active .se-keynotes-dot__inner {
	background: var(--color-gold);
	transform: rotate(45deg) scale(1.4);
	box-shadow:
		0 0 0 2px var(--color-cream),
		0 0 0 3px var(--color-gold),
		0 4px 10px color-mix(in srgb, var(--color-gold) 35%, transparent);
}
.se-codex-stage__dot:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 3px;
	border-radius: 4px;
}
.se-codex-stage__dot:hover .se-codex-stage__dot-inner {
	background: color-mix(in srgb, var(--color-burgundy) 55%, transparent);
}

/* === FOOTER / CTA SIGNATURE === */
.se-codex--keynotes .se-codex__signature {
	grid-area: signature;
}
.se-codex__signature-cta {
	color: var(--color-burgundy);
	text-decoration: none;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	transition: color .25s ease, gap .3s ease;
}
.se-codex__signature-arrow {
	display: inline-block;
	transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.se-codex__signature-cta:hover,
.se-codex__signature-cta:focus-visible {
	color: var(--color-gold-dark);
}
.se-codex__signature-cta:hover .se-codex__signature-arrow,
.se-codex__signature-cta:focus-visible .se-codex__signature-arrow {
	transform: translateX(5px);
}

@media (max-width: 919px) {
	.se-codex-stage__controls {
		grid-template-columns: 1fr auto;
	}
	.se-codex-stage__rule { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.se-codex-keynote__portrait:hover .se-codex-keynote__frame-image img { transform: none; }
}

/* ==========================================================================
   Archive orateurs (/orateurs/) — Codex
   ========================================================================== */
.se-section--speakers-archive.se-codex--speakers {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(48px, 6vw, 96px) 0 clamp(56px, 7vw, 112px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-burgundy) 6%) 0%,
			var(--color-cream) 45%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 8%) 100%);
}

.se-codex__container--speakers {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(36px, 4.5vw, 64px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
/* Le rail est cache sur mobile : flux naturel header > groups > signature */
.se-codex--speakers .se-codex__rail { display: none; }
.se-codex--speakers .se-codex__signature { margin-top: clamp(24px, 3vw, 40px); }

@media (min-width: 980px) {
	.se-codex__container--speakers {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 64px);
	}
	/* Rail : visible, sticky, en row 2/-1 pour ne pas inflate la row du header */
	.se-codex--speakers .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	/* Tous les autres enfants (header, groups, signature) en colonne 2, flux naturel */
	.se-codex--speakers .se-codex__header,
	.se-codex--speakers .se-codex-speakers__group,
	.se-codex--speakers .se-codex__signature {
		grid-column: 2;
	}
}

.se-codex-speakers__group {
	display: grid;
	gap: clamp(28px, 3.5vw, 44px);
}
.se-codex-speakers__group + .se-codex-speakers__group {
	margin-top: clamp(36px, 4.5vw, 64px);
}

.se-codex-speakers__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(28px, 3.5vw, 48px);
	min-width: 0;
}
@media (min-width: 600px) {
	.se-codex-speakers__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 960px) {
	.se-codex-speakers__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Headline keynotes : 2 colonnes max sur desktop pour plus de presence */
.se-codex-speakers__list--headline {
	gap: clamp(32px, 4vw, 56px);
}
@media (min-width: 960px) {
	.se-codex-speakers__list--headline {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 1040px;
		margin: 0 auto;
	}
}

.se-codex-speakers__empty {
	text-align: center;
	margin: clamp(48px, 6vw, 88px) auto;
	max-width: 36ch;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.1rem, 1.6vw, 1.35rem);
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
	font-variation-settings: 'opsz' 36, 'SOFT' 60;
}

/* Footer signature : full-width centered */
.se-codex--speakers .se-codex__signature {
	grid-area: signature;
	justify-content: center;
	margin-top: clamp(36px, 4.5vw, 56px);
}

/* Tier title (réutilisé) : un poil plus compact pour les sous-sections */
.se-codex--speakers .se-codex-tier__title {
	font-size: clamp(1.4rem, 2.2vw, 1.85rem);
}

/* ==========================================================================
   Single orateur (/orateurs/<slug>/) — Codex editorial
   ========================================================================== */
.se-section--speaker.se-codex--speaker {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(48px, 6vw, 96px) 0 clamp(56px, 7vw, 112px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-burgundy) 6%) 0%,
			var(--color-cream) 45%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 8%) 100%);
}

.se-codex__container--speaker {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: none;
	gap: clamp(36px, 4.5vw, 56px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--speaker .se-codex__rail { display: none; }
/* Annule les grid-area herites de .se-codex__container (header/portrait/chronicle/proc/signature)
   pour que toutes les sections speaker (existantes + nouvelles) flow en auto-placement. */
.se-codex--speaker .se-codex__header,
.se-codex--speaker .se-codex__signature { grid-area: auto; }

@media (min-width: 980px) {
	.se-codex__container--speaker {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--speaker .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex--speaker .se-codex__container--speaker > :not(.se-codex__rail) {
		grid-column: 2;
	}
	.se-codex--speaker .se-codex-speaker__breadcrumb { grid-row: 1; }
}

/* Breadcrumb retour */
.se-codex-speaker__breadcrumb {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
}
.se-codex-speaker__breadcrumb a {
	color: var(--color-burgundy);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	transition: color .25s ease, gap .3s ease;
}
.se-codex-speaker__breadcrumb a:hover { color: var(--color-gold-dark); gap: 14px; }
.se-codex-speaker__breadcrumb-arrow { transition: transform .3s; }
.se-codex-speaker__breadcrumb a:hover .se-codex-speaker__breadcrumb-arrow { transform: translateX(-3px); }

/* === Hero : portrait + identite === */
.se-codex-speaker__hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(32px, 4vw, 64px);
	align-items: start;
	min-width: 0;
}
@media (min-width: 920px) {
	.se-codex-speaker__hero {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		gap: clamp(40px, 5vw, 80px);
	}
}

/* Portrait (cadre ndop) */
.se-codex-speaker__portrait {
	margin: 0;
	position: relative;
	min-width: 0;
}
.se-codex-speaker__frame {
	position: relative;
	padding: clamp(14px, 1.8vw, 22px);
	background:
		linear-gradient(135deg,
			color-mix(in srgb, var(--color-burgundy) 92%, #000) 0%,
			var(--color-burgundy) 50%,
			color-mix(in srgb, var(--color-burgundy) 86%, var(--color-night)) 100%);
	box-shadow:
		0 36px 80px -32px color-mix(in srgb, var(--color-burgundy) 55%, transparent),
		0 10px 30px -14px rgba(0,0,0,.28),
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 38%, transparent);
}
.se-codex-speaker__pattern {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		repeating-linear-gradient( 45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 14px),
		repeating-linear-gradient(-45deg,
			color-mix(in srgb, var(--color-gold) 38%, transparent) 0 1px,
			transparent 1px 14px);
	-webkit-mask: linear-gradient(#000 0 0) content-box,
				  linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box,
		  linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	padding: clamp(14px, 1.8vw, 22px);
	box-sizing: border-box;
}
.se-codex-speaker__image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4/5;
	background: color-mix(in srgb, var(--color-burgundy) 80%, var(--color-night));
}
.se-codex-speaker__img,
.se-codex-speaker__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.4s cubic-bezier(.2,.7,.2,1);
	filter: saturate(1.04) contrast(1.04);
}
.se-codex-speaker__portrait:hover .se-codex-speaker__image img { transform: scale(1.03); }
.se-codex-speaker__placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 380;
	font-size: clamp(5rem, 12vw, 9rem);
	color: var(--color-gold);
}
.se-codex-speaker__veil {
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, transparent 60%, color-mix(in srgb, var(--color-night) 38%, transparent) 100%);
	pointer-events: none;
	mix-blend-mode: multiply;
}
.se-codex-speaker__corner {
	position: absolute;
	width: 22px; height: 22px;
	border: 2px solid var(--color-gold);
	z-index: 3;
}
.se-codex-speaker__corner--tl { top: -1px; left: -1px;  border-right: none; border-bottom: none; }
.se-codex-speaker__corner--tr { top: -1px; right: -1px; border-left:  none; border-bottom: none; }
.se-codex-speaker__corner--bl { bottom: -1px; left: -1px;  border-right: none; border-top: none; }
.se-codex-speaker__corner--br { bottom: -1px; right: -1px; border-left:  none; border-top: none; }

/* Sceau Keynote */
.se-codex-speaker__seal {
	position: absolute;
	top: -16px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 4;
	pointer-events: none;
}
.se-codex-speaker__seal-inner {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px 7px 12px;
	background: var(--color-cream);
	color: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	box-shadow:
		inset 0 0 0 1px var(--color-burgundy),
		inset 0 0 0 3px var(--color-cream),
		inset 0 0 0 4px color-mix(in srgb, var(--color-gold) 70%, transparent),
		0 8px 22px -10px rgba(0,0,0,.35);
}
.se-codex-speaker__seal-dot {
	width: 6px; height: 6px;
	background: var(--color-burgundy);
	transform: rotate(45deg);
	box-shadow: 0 0 0 1.5px var(--color-gold);
	flex-shrink: 0;
}

/* === Identite === */
.se-codex-speaker__identity {
	display: flex;
	flex-direction: column;
	gap: clamp(18px, 2.2vw, 28px);
	min-width: 0;
}
.se-codex-speaker__name {
	margin: 4px 0 0;
	font-size: clamp(2.4rem, 4.2vw, 3.8rem);
	line-height: 1.02;
}
.se-codex-speaker__name em {
	color: var(--color-burgundy);
	font-style: italic;
}
.se-codex-speaker__role {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.1rem, 1.5vw, 1.3rem);
	color: var(--color-burgundy);
	line-height: 1.4;
	font-variation-settings: 'opsz' 36, 'SOFT' 80;
}
.se-codex-speaker__role-sep {
	color: var(--color-gold);
	margin: 0 8px;
	font-size: .65em;
	display: inline-block;
	transform: translateY(-2px);
}
.se-codex-speaker__role-org {
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
}
/* Citation lead (excerpt ou texte d'invitation par defaut) */
.se-codex-speaker__lead {
	position: relative;
	margin: 0;
	padding: clamp(16px, 1.8vw, 22px) clamp(18px, 2vw, 28px) clamp(16px, 1.8vw, 22px) clamp(28px, 3vw, 44px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 96%, var(--color-gold) 4%) 0%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 8%) 100%);
	border-left: 2px solid var(--color-gold);
	max-width: 60ch;
}
.se-codex-speaker__lead p {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 82%, transparent);
	font-weight: 380;
	font-variation-settings: 'opsz' 32, 'SOFT' 80;
}
.se-codex-speaker__lead-mark {
	position: absolute;
	left: clamp(6px, .8vw, 12px);
	top: 4px;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(2.4rem, 3.2vw, 3rem);
	line-height: 1;
	color: var(--color-gold);
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
	pointer-events: none;
}
.se-codex-speaker__lead--placeholder p {
	color: color-mix(in srgb, var(--color-night) 65%, transparent);
}

/* Plate metas (sous le portrait) */
.se-codex-speaker__plate {
	margin: clamp(16px, 2vw, 22px) 0 0;
	padding: clamp(14px, 1.6vw, 18px) clamp(16px, 1.8vw, 22px);
	background: color-mix(in srgb, var(--color-cream) 96%, var(--color-gold) 4%);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent);
	display: grid;
	gap: 10px;
}
.se-codex-speaker__plate-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: baseline;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .14em;
}
.se-codex-speaker__plate-row dt {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
	font-weight: 600;
	text-transform: uppercase;
}
.se-codex-speaker__plate-row dt svg { flex-shrink: 0; color: var(--color-gold); }
.se-codex-speaker__plate-row dd {
	margin: 0;
	color: var(--color-night);
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 14px;
	letter-spacing: -.005em;
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
	text-align: right;
}

/* Topics chips */
.se-codex-speaker__topics {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: clamp(4px, 1vw, 12px) 0 0;
}
.se-codex-speaker__topics-label {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
	margin-right: 4px;
}
.se-codex-speaker__topics-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
}
.se-codex-speaker__topics-list a {
	display: inline-block;
	padding: 6px 12px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	text-decoration: none;
	background: var(--color-cream);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent);
	transition: background .25s ease, color .25s ease, box-shadow .25s ease;
}
.se-codex-speaker__topics-list a:hover {
	background: var(--color-burgundy);
	color: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px var(--color-burgundy),
		inset 0 0 0 3px var(--color-burgundy),
		inset 0 0 0 4px color-mix(in srgb, var(--color-gold) 60%, transparent);
}

/* Liens & reseaux sociaux — rangee d'icones codex */
.se-codex-speaker__socials {
	list-style: none;
	margin: clamp(14px, 2vw, 22px) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.se-codex-speaker__social-item { margin: 0; }

.se-codex-speaker__social-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px 8px 10px;
	color: var(--color-burgundy);
	background: color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 8%);
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	border-radius: 999px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s cubic-bezier(.2,.7,.2,1);
}
.se-codex-speaker__social-link:hover,
.se-codex-speaker__social-link:focus-visible {
	background: var(--color-burgundy);
	color: var(--color-cream);
	border-color: var(--color-burgundy);
	transform: translateY(-2px);
}
.se-codex-speaker__social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--color-gold) 30%, transparent);
	color: var(--color-burgundy);
	transition: background .25s ease, color .25s ease;
}
.se-codex-speaker__social-link:hover .se-codex-speaker__social-icon,
.se-codex-speaker__social-link:focus-visible .se-codex-speaker__social-icon {
	background: var(--color-gold);
	color: var(--color-burgundy);
}
.se-codex-speaker__social-icon svg { display: block; }

/* Actions group (CTA primary + secondary) */
.se-codex-speaker__actions {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(12px, 1.6vw, 20px);
	align-items: center;
	margin-top: clamp(8px, 1.5vw, 16px);
}

.se-codex-speaker__cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 28px;
	background: var(--color-burgundy);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent),
		inset 0 0 0 4px var(--color-burgundy),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 25%, transparent);
	transition: background .3s ease, transform .3s cubic-bezier(.2,.7,.2,1);
}
.se-codex-speaker__cta:hover,
.se-codex-speaker__cta:focus-visible {
	background: color-mix(in srgb, var(--color-burgundy) 90%, #000);
	transform: translateY(-2px);
}
.se-codex-speaker__cta-arrow { transition: transform .3s; display: inline-block; }
.se-codex-speaker__cta:hover .se-codex-speaker__cta-arrow { transform: translateX(4px); }

/* CTA secondaire (ghost) */
.se-codex-speaker__cta-secondary {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	text-decoration: none;
	transition: color .2s ease, gap .3s ease;
}
.se-codex-speaker__cta-secondary:hover {
	color: var(--color-gold-dark);
	gap: 14px;
}

/* === Section "Sa presence au congres" === */
.se-codex-speaker__presence {
	margin: clamp(36px, 4.5vw, 56px) 0 0;
}
.se-codex-speaker__presence-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(18px, 2vw, 28px);
	margin-top: clamp(24px, 3vw, 36px);
	min-width: 0;
}
@media (min-width: 720px) {
	.se-codex-speaker__presence-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.se-codex-speaker__presence-card {
	position: relative;
	padding: clamp(20px, 2.2vw, 28px) clamp(20px, 2vw, 26px) clamp(20px, 2.2vw, 28px) clamp(28px, 2.6vw, 36px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 96%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 90%, var(--color-gold) 4%) 100%);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent);
}
.se-codex-speaker__presence-mark {
	position: absolute;
	top: clamp(18px, 2vw, 26px);
	left: clamp(12px, 1.4vw, 16px);
	width: 6px;
	height: 6px;
	background: var(--color-gold);
	transform: rotate(45deg);
}
.se-codex-speaker__presence-card h3 {
	margin: 0 0 8px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
}
.se-codex-speaker__presence-card p {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 14.5px;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
}

/* === Section videos === */
.se-codex-speaker__videos {
	margin: clamp(32px, 4vw, 48px) 0 0;
}
.se-codex-speaker__videos-grid {
	list-style: none;
	margin: clamp(20px, 2.5vw, 28px) 0 0;
	padding: 0;
	display: grid;
	gap: clamp(18px, 2.4vw, 28px);
	grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 720px) {
	.se-codex-speaker__videos-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.se-codex-speaker__video { margin: 0; }
.se-codex-speaker__video-frame {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: color-mix(in srgb, var(--color-night) 92%, #000);
	box-shadow:
		0 1px 0 color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 14px 30px -20px color-mix(in srgb, var(--color-night) 40%, transparent),
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 25%, transparent);
}
.se-codex-speaker__video-frame iframe,
.se-codex-speaker__video-frame embed,
.se-codex-speaker__video-frame object,
.se-codex-speaker__video-frame video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.se-codex-speaker__video-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--color-cream);
	background: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 16px;
	text-align: center;
}

/* === Section documents === */
.se-codex-speaker__documents {
	margin: clamp(32px, 4vw, 48px) 0 0;
}
.se-codex-speaker__documents-list {
	list-style: none;
	margin: clamp(20px, 2.5vw, 28px) 0 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.se-codex-speaker__document { margin: 0; }
.se-codex-speaker__document-link {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(12px, 2vw, 18px);
	padding: 14px clamp(16px, 2vw, 20px);
	background: color-mix(in srgb, var(--color-cream) 94%, var(--color-gold) 6%);
	color: var(--color-night);
	text-decoration: none;
	border: 1px solid color-mix(in srgb, var(--color-gold) 30%, transparent);
	box-shadow: inset 3px 0 0 0 var(--color-gold);
	transition: background .25s ease, transform .25s cubic-bezier(.2,.7,.2,1), border-color .25s ease;
}
.se-codex-speaker__document-link:hover,
.se-codex-speaker__document-link:focus-visible {
	background: color-mix(in srgb, var(--color-cream) 80%, var(--color-gold) 20%);
	border-color: color-mix(in srgb, var(--color-gold) 60%, transparent);
	transform: translateX(2px);
}
.se-codex-speaker__document-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 56px;
	padding: 6px 10px;
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--color-cream);
	background: var(--color-burgundy);
	border-radius: 2px;
}
.se-codex-speaker__document-label {
	font-family: var(--font-serif);
	font-size: clamp(15px, 1.4vw, 17px);
	line-height: 1.4;
	color: var(--color-night);
}
.se-codex-speaker__document-arrow {
	font-size: 18px;
	color: var(--color-burgundy);
	transition: transform .25s ease;
}
.se-codex-speaker__document-link:hover .se-codex-speaker__document-arrow,
.se-codex-speaker__document-link:focus-visible .se-codex-speaker__document-arrow {
	transform: translate(2px, -2px);
}

/* === Bandeau compact "Autres voix" === */
.se-codex-speaker__others-band {
	margin: clamp(36px, 4.5vw, 56px) 0 0;
	padding-top: clamp(28px, 3.5vw, 40px);
	border-top: 1px solid color-mix(in srgb, var(--color-burgundy) 18%, transparent);
}
.se-codex-speaker__others-band-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: clamp(18px, 2vw, 26px);
}
.se-codex-speaker__others-band-rule {
	flex: 1;
	height: 1px;
	background: linear-gradient(to right,
		transparent, color-mix(in srgb, var(--color-gold) 55%, transparent) 30%, var(--color-gold));
}
.se-codex-speaker__others-band-head > .se-codex-speaker__others-band-rule:last-child {
	background: linear-gradient(to right,
		var(--color-gold), color-mix(in srgb, var(--color-gold) 55%, transparent) 70%, transparent);
}
.se-codex-speaker__others-band-label {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	white-space: nowrap;
}
.se-codex-speaker__others-band-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
}
@media (min-width: 720px) {
	.se-codex-speaker__others-band-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.se-codex-speaker__others-band-link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 16px;
	background: color-mix(in srgb, var(--color-cream) 96%, #fff);
	color: var(--color-night);
	text-decoration: none;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 25%, transparent);
	transition: background .25s ease, transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.se-codex-speaker__others-band-link:hover,
.se-codex-speaker__others-band-link:focus-visible {
	background: var(--color-cream);
	transform: translateY(-2px);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent),
		0 10px 24px -16px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
}
.se-codex-speaker__others-band-thumb {
	position: relative;
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	overflow: hidden;
	background: var(--color-burgundy);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent);
}
.se-codex-speaker__others-band-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.se-codex-speaker__others-band-initial {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 1.4rem;
	color: var(--color-gold);
}
.se-codex-speaker__others-band-keynote {
	position: absolute;
	top: -3px; right: -3px;
	width: 10px; height: 10px;
	background: var(--color-gold);
	transform: rotate(45deg);
	box-shadow: 0 0 0 2px var(--color-cream);
}
.se-codex-speaker__others-band-info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.se-codex-speaker__others-band-name {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 1.05rem;
	color: var(--color-night);
	line-height: 1.2;
	letter-spacing: -.005em;
}
.se-codex-speaker__others-band-role {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.se-codex-speaker__others-band-arrow {
	color: var(--color-burgundy);
	font-size: 16px;
	flex-shrink: 0;
	transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.se-codex-speaker__others-band-link:hover .se-codex-speaker__others-band-arrow {
	transform: translateX(4px);
}

/* === Chronique (bio longue) === */
.se-codex-speaker__chronicle {
	max-width: 820px;
	margin: clamp(28px, 4vw, 56px) auto 0;
}
.se-codex-speaker__chronicle-head {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: clamp(16px, 2vw, 28px);
	margin-bottom: clamp(24px, 3vw, 40px);
}
.se-codex-speaker__chronicle-rule {
	height: 1px;
	background: linear-gradient(to right,
		transparent, color-mix(in srgb, var(--color-gold) 55%, transparent) 30%, var(--color-gold));
}
.se-codex-speaker__chronicle-head > .se-codex-speaker__chronicle-rule:last-child {
	background: linear-gradient(to right,
		var(--color-gold), color-mix(in srgb, var(--color-gold) 55%, transparent) 70%, transparent);
}
.se-codex-speaker__chronicle-title {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.4rem, 2vw, 1.85rem);
	color: var(--color-gold-dark);
	letter-spacing: -.005em;
	font-variation-settings: 'opsz' 48, 'SOFT' 80;
	white-space: nowrap;
}
.se-codex-speaker__chronicle-title em {
	font-style: italic;
	color: var(--color-burgundy);
}
.se-codex-speaker__chronicle-body {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.75;
	color: color-mix(in srgb, var(--color-text) 86%, transparent);
}
.se-codex-speaker__chronicle-body p { margin: 0 0 1em; }
.se-codex-speaker__chronicle-body p:last-child { margin: 0; }
.se-codex-speaker__chronicle-body p:first-child::first-line {
	font-variant: small-caps;
	letter-spacing: .03em;
	color: color-mix(in srgb, var(--color-burgundy) 90%, var(--color-text));
}

/* === Autres orateurs === */
.se-codex-speaker__others {
	margin-top: clamp(28px, 4vw, 48px);
	padding-top: clamp(28px, 4vw, 48px);
	border-top: 1px solid color-mix(in srgb, var(--color-burgundy) 16%, transparent);
}
.se-codex-speaker__others-head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto clamp(28px, 3.5vw, 44px);
}
.se-codex-speaker__others-head .se-codex__overline {
	justify-content: center;
}
.se-codex-speaker__others-head .se-codex__title-flourish {
	margin-left: auto;
	margin-right: auto;
}
.se-codex-speaker__others-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(28px, 3vw, 40px);
	min-width: 0;
}
@media (min-width: 720px) {
	.se-codex-speaker__others-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Footer signature : justifie au centre. Le grid-area herite est neutralise plus haut. */
.se-codex--speaker .se-codex__signature {
	margin-top: clamp(36px, 4.5vw, 56px);
	justify-content: center;
}

@media (max-width: 760px) {
	.se-codex-speaker__chronicle-head {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.se-codex-speaker__chronicle-rule { display: none; }
	.se-codex-speaker__meta-row {
		grid-template-columns: 1fr;
		gap: 4px;
	}
}

/* ==========================================================================
   Page Programme (/programme/) — Codex editorial
   ========================================================================== */
.se-section--programme-page.se-codex--programme-page {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(48px, 6vw, 96px) 0 clamp(56px, 7vw, 112px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-gold) 6%) 0%,
			var(--color-cream) 45%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-burgundy) 8%) 100%);
}

.se-codex__container--programme-page {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(36px, 4.5vw, 64px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--programme-page .se-codex__rail { display: none; }

@media (min-width: 980px) {
	.se-codex__container--programme-page {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--programme-page .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex--programme-page .se-codex__container--programme-page > :not(.se-codex__rail) {
		grid-column: 2;
	}
}

/* Lead (post_content optionnel) */
.se-codex-programme__lead {
	max-width: 60ch;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.1rem, 1.4vw, 1.25rem);
	line-height: 1.6;
	color: color-mix(in srgb, var(--color-night) 82%, transparent);
	font-variation-settings: 'opsz' 32, 'SOFT' 80;
}

.se-codex-programme__empty {
	text-align: center;
	margin: clamp(48px, 6vw, 88px) auto;
	max-width: 36ch;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.1rem, 1.6vw, 1.35rem);
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
}

/* === Timeline 3 jours === */
.se-codex-programme__timeline {
	position: relative;
	display: grid;
	gap: clamp(36px, 4.5vw, 64px);
	min-width: 0;
}
.se-codex-programme__thread {
	position: absolute;
	top: 50px;
	bottom: 50px;
	left: clamp(34px, 4vw, 50px);
	width: 1px;
	background: linear-gradient(to bottom,
		transparent 0%,
		color-mix(in srgb, var(--color-gold) 60%, transparent) 8%,
		var(--color-gold) 50%,
		color-mix(in srgb, var(--color-gold) 60%, transparent) 92%,
		transparent 100%);
	pointer-events: none;
}

/* === Carte journee === */
.se-codex-day {
	position: relative;
	padding: clamp(24px, 3vw, 36px) clamp(24px, 3vw, 36px) clamp(28px, 3.5vw, 40px) clamp(88px, 10vw, 124px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 98%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 4%) 100%);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 18px 40px -28px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	transition: box-shadow .35s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.se-codex-day:hover {
	transform: translateY(-3px);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent),
		0 26px 56px -28px color-mix(in srgb, var(--color-burgundy) 45%, transparent);
}
.se-codex-day::before {
	content: '';
	position: absolute;
	inset: 8px;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 38%, transparent);
}

/* Header de jour : medallion num + date + counter */
.se-codex-day__head {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: clamp(14px, 2vw, 24px);
	margin: 0 0 clamp(16px, 2vw, 24px);
	padding-bottom: clamp(16px, 2vw, 22px);
	border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
}
.se-codex-day__num-medallion {
	position: absolute;
	left: clamp(10px, 1.6vw, 22px);
	top: clamp(20px, 2.6vw, 32px);
	width: clamp(48px, 6vw, 58px);
	height: clamp(48px, 6vw, 58px);
	display: grid;
	place-items: center;
	color: color-mix(in srgb, var(--color-gold) 75%, var(--color-burgundy));
	background: color-mix(in srgb, var(--color-cream) 95%, var(--color-gold) 5%);
	box-shadow:
		inset 0 0 0 1px var(--color-gold),
		0 6px 18px -8px rgba(0,0,0,.25);
	z-index: 2;
}
.se-codex-day__num-rings {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	animation: se-codex-seal-rotate 90s linear infinite;
}
.se-codex-day__num-roman {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	color: var(--color-burgundy);
	font-weight: 480;
	letter-spacing: -.04em;
	font-variation-settings: 'opsz' 36, 'SOFT' 50;
	z-index: 1;
}
.se-codex-day__date {
	grid-column: 1 / span 2;
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-left: 0;
}
.se-codex-day__date-weekday {
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-gold-dark);
}
.se-codex-day__date-num {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	font-family: var(--font-heading);
	color: var(--color-night);
	font-variation-settings: 'opsz' 60, 'SOFT' 30;
}
.se-codex-day__date-num-fig {
	font-size: clamp(1.85rem, 3vw, 2.5rem);
	font-weight: 400;
	font-style: italic;
	letter-spacing: -.025em;
	color: var(--color-burgundy);
	line-height: 1;
}
.se-codex-day__date-num-month {
	font-family: var(--font-heading);
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	font-style: italic;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
	font-weight: 380;
	letter-spacing: -.005em;
}
.se-codex-day__count {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .22em;
	color: color-mix(in srgb, var(--color-burgundy) 55%, transparent);
}

.se-codex-day__theme {
	margin: 0 0 clamp(18px, 2.4vw, 28px);
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	line-height: 1.15;
	color: var(--color-night);
	letter-spacing: -.012em;
	font-variation-settings: 'opsz' 60, 'SOFT' 30;
	max-width: 30ch;
}
.se-codex-day__theme em,
.se-codex-day__theme i {
	font-style: italic;
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 60, 'SOFT' 80;
}

.se-codex-day__highlights {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: clamp(10px, 1.4vw, 14px);
}
.se-codex-day__highlight {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding-left: 0;
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-text) 86%, transparent);
}
.se-codex-day__highlight-mark {
	display: inline-block;
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	margin-top: 0.55em;
	background: var(--color-gold);
	transform: rotate(45deg);
	box-shadow: 0 0 0 2px var(--color-cream),
				0 0 0 3px color-mix(in srgb, var(--color-gold) 40%, transparent);
}
.se-codex-day__highlight-text {
	flex: 1;
}

@media (max-width: 600px) {
	.se-codex-day {
		padding: clamp(24px, 4vw, 32px);
	}
	.se-codex-day__num-medallion {
		position: relative;
		margin-bottom: 14px;
		flex-shrink: 0;
	}
	/* On garde les rings ancres au medallion (sinon ils heritent du .se-codex-day relative et debordent) */
	.se-codex-day__num-rings { animation: none; opacity: .65; }
	.se-codex-day__head {
		grid-template-columns: auto auto 1fr;
		grid-template-rows: auto auto;
	}
	.se-codex-day__date {
		grid-column: 1 / -1;
		grid-row: 2;
	}
	.se-codex-day__count {
		grid-column: 3;
		grid-row: 1;
		justify-self: end;
	}
	.se-codex-programme__thread { display: none; }
}

/* === Actions / "Continuer la lecture" === */
.se-codex-programme__actions {
	margin-top: clamp(28px, 4vw, 56px);
}
.se-codex-programme__actions-head {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: clamp(16px, 2vw, 28px);
	margin-bottom: clamp(20px, 2.5vw, 32px);
}
.se-codex-programme__actions-rule {
	height: 1px;
	background: linear-gradient(to right,
		transparent, color-mix(in srgb, var(--color-gold) 55%, transparent) 30%, var(--color-gold));
}
.se-codex-programme__actions-head > .se-codex-programme__actions-rule:last-child {
	background: linear-gradient(to right,
		var(--color-gold), color-mix(in srgb, var(--color-gold) 55%, transparent) 70%, transparent);
}
.se-codex-programme__actions-title {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.3rem, 1.9vw, 1.65rem);
	color: var(--color-gold-dark);
	font-variation-settings: 'opsz' 48, 'SOFT' 80;
	letter-spacing: -.005em;
	white-space: nowrap;
}
.se-codex-programme__actions-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(14px, 1.8vw, 22px);
}
@media (min-width: 720px) {
	.se-codex-programme__actions-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.se-codex-programme__action {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: clamp(14px, 1.6vw, 20px);
	padding: clamp(18px, 2.2vw, 26px) clamp(18px, 2vw, 24px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 96%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 90%, var(--color-gold) 4%) 100%);
	color: var(--color-night);
	text-decoration: none;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent);
	transition: background .25s ease, transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.se-codex-programme__action:hover {
	transform: translateY(-3px);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		0 14px 32px -18px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
}
.se-codex-programme__action--primary {
	background:
		linear-gradient(160deg,
			color-mix(in srgb, var(--color-burgundy) 96%, #000) 0%,
			var(--color-burgundy) 60%,
			color-mix(in srgb, var(--color-burgundy) 88%, var(--color-night)) 100%);
	color: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		inset 0 0 0 4px var(--color-burgundy),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 30%, transparent);
}
.se-codex-programme__action-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px; height: 42px;
	background: color-mix(in srgb, var(--color-cream) 80%, var(--color-gold) 20%);
	color: var(--color-burgundy);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 45%, transparent);
}
.se-codex-programme__action--primary .se-codex-programme__action-icon {
	background: var(--color-gold);
	color: var(--color-night);
}
.se-codex-programme__action-label {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.se-codex-programme__action-kicker {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
}
.se-codex-programme__action--primary .se-codex-programme__action-kicker {
	color: color-mix(in srgb, var(--color-gold) 80%, transparent);
}
.se-codex-programme__action-title {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 1.05rem;
	line-height: 1.2;
	color: inherit;
	letter-spacing: -.005em;
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
}
.se-codex-programme__action-arrow {
	color: var(--color-burgundy);
	font-size: 18px;
	transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.se-codex-programme__action--primary .se-codex-programme__action-arrow {
	color: var(--color-gold);
}
.se-codex-programme__action:hover .se-codex-programme__action-arrow {
	transform: translateX(4px);
}

/* Footer signature programme */
.se-codex--programme-page .se-codex__signature {
	margin-top: clamp(36px, 4.5vw, 56px);
	justify-content: center;
	grid-row: auto;
}
@media (min-width: 980px) {
	.se-codex--programme-page .se-codex__signature { grid-column: 2; }
}

@media (max-width: 760px) {
	.se-codex-programme__actions-head {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.se-codex-programme__actions-rule { display: none; }
}

/* ==========================================================================
   PROGRAMME DYNAMIQUE : toolbar (tabs + filtres), sessions, favoris
   ========================================================================== */
.se-codex-programme--dynamic {
	margin-top: clamp(28px, 4vw, 48px);
}
.is-hidden { display: none !important; }

/* --- Toolbar : tabs jours + filtres ---------------------------------------- */
.se-codex-programme__toolbar {
	position: sticky;
	top: 12px;
	z-index: 5;
	background: color-mix(in srgb, var(--color-cream-cool) 92%, transparent);
	backdrop-filter: blur(8px);
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-sm);
	padding: clamp(12px, 1.4vw, 18px);
	display: grid;
	gap: 14px;
	margin-bottom: clamp(24px, 3vw, 36px);
}

/* Tabs jours */
.se-codex-programme__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	border-bottom: 1px solid var(--color-rule);
	padding-bottom: 12px;
}
.se-codex-programme__tab {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	background: transparent;
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-pill);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: 14px;
	cursor: pointer;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.se-codex-programme__tab:hover {
	border-color: color-mix(in srgb, var(--color-gold) 60%, transparent);
	transform: translateY(-1px);
}
.se-codex-programme__tab.is-active {
	background: var(--color-primary);
	color: var(--color-cream);
	border-color: var(--color-primary);
}
.se-codex-programme__tab-num {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.7;
}
.se-codex-programme__tab-label {
	display: inline-flex;
	flex-direction: column;
	line-height: 1.1;
	text-align: left;
}
.se-codex-programme__tab-weekday {
	font-weight: 600;
}
.se-codex-programme__tab-date {
	font-size: 11.5px;
	opacity: 0.78;
}
.se-codex-programme__tab-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	background: color-mix(in srgb, var(--color-gold) 22%, transparent);
	color: var(--color-text);
	border-radius: var(--radius-pill);
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
}
.se-codex-programme__tab.is-active .se-codex-programme__tab-count {
	background: var(--color-gold);
	color: var(--color-night);
}

/* Filtres */
.se-codex-programme__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}
.se-codex-programme__search {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 1 1 240px;
	padding: 8px 14px;
	background: var(--color-light);
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-pill);
	color: var(--color-text);
}
.se-codex-programme__search svg {
	flex-shrink: 0;
	color: var(--color-muted);
}
.se-codex-programme__search input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-family: var(--font-body);
	font-size: 14px;
	color: inherit;
}
.se-codex-programme__select {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	background: var(--color-light);
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-pill);
}
.se-codex-programme__select-label {
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-muted);
}
.se-codex-programme__select select {
	border: none;
	outline: none;
	background: transparent;
	font-family: var(--font-body);
	font-size: 13.5px;
	color: var(--color-text);
	cursor: pointer;
	max-width: 180px;
}
.se-codex-programme__agenda {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	background: var(--color-night);
	color: var(--color-cream);
	border: 1px solid var(--color-night);
	border-radius: var(--radius-pill);
	font-family: var(--font-body);
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
	transition: background .18s ease, transform .18s ease;
}
.se-codex-programme__agenda:hover { transform: translateY(-1px); }
.se-codex-programme__agenda.is-active {
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
}
.se-codex-programme__agenda-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	background: color-mix(in srgb, var(--color-cream) 22%, transparent);
	border-radius: var(--radius-pill);
	font-family: var(--font-eyebrow);
	font-size: 11px;
}
.se-codex-programme__agenda.is-active .se-codex-programme__agenda-count {
	background: var(--color-night);
	color: var(--color-cream);
}
.se-codex-programme__reset {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	background: transparent;
	color: var(--color-muted);
	border: 1px dashed var(--color-rule);
	border-radius: var(--radius-pill);
	font-family: var(--font-body);
	font-size: 12.5px;
	cursor: pointer;
}
.se-codex-programme__reset:hover { color: var(--color-primary); border-color: var(--color-primary); }

/* --- Day block (groupement par jour) --------------------------------------- */
.se-codex-programme__days {
	display: grid;
	gap: clamp(28px, 4vw, 48px);
}
.se-codex-day-block {
	display: grid;
	gap: 18px;
}
.se-codex-day-block__head {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 14px;
	align-items: center;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--color-rule);
}
.se-codex-day-block__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: color-mix(in srgb, var(--color-gold) 18%, transparent);
	border-radius: 50%;
	color: var(--color-primary);
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 600;
}
.se-codex-day-block__eyebrow {
	display: block;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-muted);
}
.se-codex-day-block__title {
	margin: 4px 0 0;
	font-family: var(--font-heading);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 600;
	color: var(--color-primary);
	letter-spacing: -0.01em;
}
.se-codex-day-block__count {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1;
}
.se-codex-day-block__count-num {
	font-family: var(--font-heading);
	font-size: clamp(28px, 3.2vw, 36px);
	font-style: italic;
	color: var(--color-gold);
}
.se-codex-day-block__count-label {
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-muted);
	margin-top: 4px;
}

/* --- Liste des sessions ---------------------------------------------------- */
.se-codex-day-block__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 14px;
}
.se-codex-session {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 18px;
	align-items: stretch;
}

/* Rail temps */
.se-codex-session__time {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	padding-top: 6px;
	font-family: var(--font-heading);
	color: var(--color-primary);
}
.se-codex-session__time-start {
	font-size: clamp(22px, 2.4vw, 28px);
	font-style: italic;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.01em;
}
.se-codex-session__time-start--tbd {
	font-size: 16px;
	color: var(--color-muted);
}
.se-codex-session__time-rule {
	display: block;
	width: 28px;
	height: 1px;
	background: var(--color-rule-gold);
	margin: 6px 0;
}
.se-codex-session__time-end {
	font-family: var(--font-body);
	font-size: 13.5px;
	color: var(--color-muted);
}
.se-codex-session__time-duration {
	margin-top: 8px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-muted);
}

/* Card session */
.se-codex-session__card {
	position: relative;
	display: grid;
	gap: 10px;
	padding: clamp(16px, 1.8vw, 22px);
	background: var(--color-light);
	border: 1px solid var(--color-rule);
	border-left: 3px solid var(--color-gold);
	border-radius: var(--radius-sm);
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.se-codex-session__card:hover {
	border-color: var(--color-rule-strong);
	box-shadow: 0 6px 28px -18px color-mix(in srgb, var(--color-primary) 32%, transparent);
	transform: translateY(-1px);
}
.se-codex-session__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	flex-wrap: wrap;
}
.se-codex-session__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	align-items: center;
}
.se-codex-session__type {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	background: color-mix(in srgb, var(--color-primary) 92%, transparent);
	color: var(--color-cream);
	border-radius: var(--radius-pill);
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.se-codex-session__type[data-type-badge="atelier"]      { background: var(--color-danger); }
.se-codex-session__type[data-type-badge="atelier-bis"]  { background: var(--color-danger); }
.se-codex-session__type[data-type-badge="gala"]         { background: var(--color-night); }
.se-codex-session__type[data-type-badge="panel"]        { background: var(--color-gold-dark); color: var(--color-night); }
.se-codex-session__type[data-type-badge="brunch"]       { background: var(--color-gold); color: var(--color-night); }
.se-codex-session__type[data-type-badge="tour"]         { background: var(--color-burgundy-soft); color: var(--color-primary); }
.se-codex-session__type[data-type-badge="tourisme"]     { background: var(--color-burgundy-soft); color: var(--color-primary); }
.se-codex-session__type[data-type-badge="networking"]   { background: var(--color-cream-dark); color: var(--color-primary); }
.se-codex-session__venue,
.se-codex-session__capacity {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-family: var(--font-body);
	font-size: 12.5px;
	color: var(--color-muted);
}
.se-codex-session__venue svg,
.se-codex-session__capacity svg { color: var(--color-gold); }

/* Bouton favori */
.se-codex-session__fav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: transparent;
	border: 1px solid var(--color-rule);
	border-radius: 50%;
	color: var(--color-muted);
	cursor: pointer;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.se-codex-session__fav:hover {
	color: var(--color-danger);
	border-color: var(--color-danger);
	transform: scale(1.06);
}
.se-codex-session__fav.is-favorited {
	background: var(--color-danger);
	border-color: var(--color-danger);
	color: var(--color-cream);
}
.se-codex-session__fav.is-favorited .se-codex-session__fav-icon { fill: currentColor; }
.se-codex-session__fav--lg {
	width: auto;
	padding: 10px 18px;
	border-radius: var(--radius-pill);
	gap: 8px;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 14px;
}

.se-codex-session__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -0.01em;
}
.se-codex-session__title a {
	color: var(--color-primary);
	text-decoration: none;
	background-image: linear-gradient(to right, var(--color-gold), var(--color-gold));
	background-position: 0 100%;
	background-size: 0 1px;
	background-repeat: no-repeat;
	transition: background-size .25s ease;
}
.se-codex-session__title a:hover { background-size: 100% 1px; }

.se-codex-session__excerpt {
	margin: 0;
	font-family: var(--font-body);
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--color-text);
}

/* Orateurs */
.se-codex-session__speakers {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.se-codex-session__speaker-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 10px 4px 4px;
	background: var(--color-cream-cool);
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-pill);
	color: var(--color-text);
	text-decoration: none;
	font-family: var(--font-body);
	font-size: 12.5px;
	transition: border-color .18s ease, background .18s ease;
}
.se-codex-session__speaker-link:hover {
	border-color: var(--color-gold);
	background: var(--color-cream-warm);
}
.se-codex-session__speaker-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--color-gold-soft);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-weight: 600;
	font-size: 12px;
	color: var(--color-primary);
}
.se-codex-session__speaker-name {
	display: inline-flex;
	flex-direction: column;
	line-height: 1.15;
}
.se-codex-session__speaker-fullname { font-weight: 600; }
.se-codex-session__speaker-role {
	font-size: 11px;
	color: var(--color-muted);
}

/* Tags theme / audience */
.se-codex-session__tags {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.se-codex-session__tag {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 9px;
	background: transparent;
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-pill);
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-muted);
}
.se-codex-session__tag--theme { color: var(--color-primary); border-color: color-mix(in srgb, var(--color-primary) 30%, transparent); }
.se-codex-session__tag--audience { color: var(--color-night); border-color: color-mix(in srgb, var(--color-night) 30%, transparent); }

/* Footer card */
.se-codex-session__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 4px;
	padding-top: 10px;
	border-top: 1px dashed var(--color-rule);
}
.se-codex-session__detail {
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--color-muted);
	text-decoration: none;
	letter-spacing: 0.02em;
}
.se-codex-session__detail:hover { color: var(--color-primary); }
.se-codex-session__register {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	background: var(--color-primary);
	color: var(--color-cream);
	border-radius: var(--radius-pill);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: background .18s ease, transform .18s ease;
}
.se-codex-session__register:hover { background: var(--color-night); transform: translateY(-1px); }
.se-codex-session__register--placeholder {
	background: transparent;
	color: var(--color-muted);
	border: 1px dashed var(--color-rule);
	font-weight: 400;
	font-size: 12.5px;
}

/* Empty state filtres */
.se-codex-programme__empty-state {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 40px 20px;
	background: color-mix(in srgb, var(--color-cream) 60%, transparent);
	border: 1px dashed var(--color-rule);
	border-radius: var(--radius-sm);
	font-family: var(--font-heading);
	font-style: italic;
	color: var(--color-muted);
	text-align: center;
}
.se-codex-programme__empty-icon {
	color: var(--color-gold);
	font-size: 20px;
}

/* Responsive programme dynamique */
@media (max-width: 760px) {
	.se-codex-session {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.se-codex-session__time {
		flex-direction: row;
		align-items: baseline;
		padding-top: 0;
		gap: 10px;
	}
	.se-codex-session__time-rule {
		width: 16px;
		margin: 0;
	}
	.se-codex-session__time-duration { margin-top: 0; }
	.se-codex-programme__toolbar { position: static; }
	.se-codex-day-block__head {
		grid-template-columns: auto 1fr;
		gap: 10px;
	}
	.se-codex-day-block__count {
		grid-column: 1 / -1;
		flex-direction: row;
		gap: 8px;
		align-items: baseline;
	}
	.se-codex-day-block__count-label { margin-top: 0; }
}

/* ==========================================================================
   SINGLE SESSION : page de detail
   ========================================================================== */
.se-codex--session {
	padding-top: clamp(24px, 3vw, 40px);
	padding-bottom: clamp(48px, 6vw, 80px);
}
.se-codex--session .se-codex__rail { display: none; }
.se-codex__container--session {
	display: grid;
	grid-template-columns: minmax(0, 1fr) !important;
	grid-template-areas: none !important;
	gap: clamp(24px, 3vw, 40px);
	max-width: 1000px;
}
.se-codex--session .se-codex__container--session > * {
	grid-area: auto;
	grid-column: 1;
}
.se-codex-session-page__breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-muted);
}
.se-codex-session-page__breadcrumb a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .18s ease, border-color .18s ease;
}
.se-codex-session-page__breadcrumb a:hover {
	color: var(--color-primary);
	border-color: var(--color-rule-gold);
}
.se-codex-session-page__breadcrumb-current {
	color: var(--color-primary);
}

.se-codex-session-page__hero {
	display: grid;
	gap: 18px;
	padding: clamp(24px, 3vw, 40px);
	background: var(--color-light);
	border: 1px solid var(--color-rule);
	border-top: 3px solid var(--color-gold);
	border-radius: var(--radius-sm);
}
.se-codex-session-page__hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	align-items: center;
}
.se-codex-session-page__type {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	background: var(--color-primary);
	color: var(--color-cream);
	border-radius: var(--radius-pill);
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.se-codex-session-page__day {
	display: inline-flex;
	flex-direction: column;
	line-height: 1.2;
}
.se-codex-session-page__day-num {
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-muted);
}
.se-codex-session-page__day-label {
	font-family: var(--font-heading);
	font-size: 16px;
	font-style: italic;
	color: var(--color-primary);
}

.se-codex-session-page__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.015em;
	color: var(--color-primary);
}
.se-codex-session-page__lead {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(16px, 1.8vw, 19px);
	line-height: 1.5;
	color: var(--color-text);
}

.se-codex-session-page__facts {
	margin: 8px 0 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 16px;
	padding: 16px;
	background: var(--color-cream-cool);
	border-top: 1px solid var(--color-rule);
	border-bottom: 1px solid var(--color-rule);
}
.se-codex-session-page__fact dt {
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-muted);
	margin-bottom: 4px;
}
.se-codex-session-page__fact dd {
	margin: 0;
	display: inline-flex;
	flex-direction: column;
	gap: 2px;
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--color-text);
}
.se-codex-session-page__fact dd strong {
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 600;
	font-style: italic;
	color: var(--color-primary);
}
.se-codex-session-page__fact dd a { color: inherit; text-decoration: none; border-bottom: 1px dashed var(--color-rule-gold); }
.se-codex-session-page__fact dd a:hover { border-color: var(--color-primary); }

.se-codex-session-page__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin-top: 4px;
}
.se-codex-session-page__register {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	background: var(--color-primary);
	color: var(--color-cream);
	border-radius: var(--radius-pill);
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background .18s ease, transform .18s ease;
}
.se-codex-session-page__register:hover { background: var(--color-night); transform: translateY(-1px); }
.se-codex-session-page__register--ghost {
	background: transparent;
	color: var(--color-primary);
	border: 1px solid var(--color-primary);
}
.se-codex-session-page__register--ghost:hover { background: var(--color-primary); color: var(--color-cream); }

.se-codex-session-page__body {
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.7;
	color: var(--color-text);
}
.se-codex-session-page__body p { margin: 0 0 16px; }

.se-codex-session-page__speakers,
.se-codex-session-page__related {
	display: grid;
	gap: 18px;
}
.se-codex-session-page__speakers-head,
.se-codex-session-page__related-head {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 16px;
}
.se-codex-session-page__speakers-rule,
.se-codex-session-page__related-rule {
	height: 1px;
	background: linear-gradient(to right, transparent, var(--color-rule-gold), transparent);
}
.se-codex-session-page__speakers-title,
.se-codex-session-page__related-title {
	margin: 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(20px, 2.4vw, 24px);
	color: var(--color-primary);
}
.se-codex-session-page__speakers-list,
.se-codex-session-page__related-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 12px;
}
.se-codex-session-page__speakers-list {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.se-codex-session-page__speaker-link {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 14px;
	background: var(--color-light);
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-sm);
	color: var(--color-text);
	text-decoration: none;
	transition: border-color .18s ease, transform .18s ease;
}
.se-codex-session-page__speaker-link:hover {
	border-color: var(--color-gold);
	transform: translateY(-1px);
}
.se-codex-session-page__speaker-thumb {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--color-gold-soft);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.se-codex-session-page__speaker-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.se-codex-session-page__speaker-letter {
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 600;
	font-size: 24px;
	color: var(--color-primary);
}
.se-codex-session-page__speaker-id {
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}
.se-codex-session-page__speaker-name {
	font-family: var(--font-heading);
	font-size: 16px;
	font-weight: 600;
	color: var(--color-primary);
}
.se-codex-session-page__speaker-meta {
	font-family: var(--font-body);
	font-size: 12.5px;
	color: var(--color-muted);
}

.se-codex-session-page__related-list {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.se-codex-session-page__related-card a {
	display: grid;
	gap: 6px;
	padding: 14px;
	background: var(--color-cream-cool);
	border: 1px solid var(--color-rule);
	border-left: 3px solid var(--color-gold);
	border-radius: var(--radius-sm);
	color: var(--color-text);
	text-decoration: none;
	transition: border-color .18s ease, transform .18s ease;
}
.se-codex-session-page__related-card a:hover {
	border-color: var(--color-rule-strong);
	border-left-color: var(--color-primary);
	transform: translateY(-2px);
}
.se-codex-session-page__related-time {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 18px;
	color: var(--color-primary);
}
.se-codex-session-page__related-type {
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-muted);
}
.se-codex-session-page__related-title-text {
	font-family: var(--font-body);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--color-text);
}
.se-codex-session-page__related-venue {
	font-family: var(--font-body);
	font-size: 12.5px;
	color: var(--color-muted);
}

@media (max-width: 760px) {
	.se-codex-session-page__speakers-head,
	.se-codex-session-page__related-head {
		grid-template-columns: 1fr;
		text-align: center;
	}
	.se-codex-session-page__speakers-rule,
	.se-codex-session-page__related-rule { display: none; }
}

/* ==========================================================================
   SECTION VENUE : split layout image + facts (Drummondville + hotel)
   ========================================================================== */
.se-section--venue { overflow: hidden; }
.se-venue {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-6);
	margin-top: var(--space-6);
}
@media (min-width: 920px) {
	.se-venue {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
		gap: clamp(var(--space-5), 5vw, var(--space-8));
		align-items: start;
	}
}
.se-venue__media {
	position: relative;
	margin: 0;
	border-radius: 4px;
	overflow: hidden;
	box-shadow: 0 40px 60px -32px rgba(0,0,0,.45);
}
.se-venue__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4/3;
	object-fit: cover;
	filter: contrast(1.04) saturate(1.04);
	transition: transform 1s cubic-bezier(.2,.7,.2,1);
}
.se-venue__media:hover img { transform: scale(1.03); }
.se-venue__caption {
	position: absolute;
	left: 16px; bottom: 14px;
	padding: 8px 14px;
	background: color-mix(in srgb, var(--color-cream) 90%, transparent);
	backdrop-filter: blur(8px);
	border-radius: 999px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	color: var(--color-burgundy);
}
.se-venue__body { display: grid; align-content: start; }
.se-venue__facts {
	display: grid;
	gap: var(--space-4);
	margin: 0;
}
.se-venue__fact {
	display: grid;
	grid-template-columns: 1fr;
	gap: 6px;
	padding: var(--space-4) var(--space-4) var(--space-4) calc(var(--space-4) + 18px);
	background: var(--color-cream);
	border-left: 3px solid var(--color-gold);
	border-radius: 0 6px 6px 0;
	box-shadow: 0 14px 28px -22px rgba(0,0,0,.35);
}
.se-venue__fact dt {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-eyebrow);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	margin: 0;
}
.se-venue__fact dt svg { color: var(--color-gold-dark); }
.se-venue__fact dd {
	margin: 0;
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.55;
	color: var(--color-night);
}
.se-venue__fact dd strong { color: var(--color-burgundy); font-weight: 600; }
.se-venue__map {
	display: inline-block;
	margin-top: 4px;
	color: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	transition: color .2s, border-color .2s;
}
.se-venue__map:hover { color: var(--color-gold-dark); border-bottom-color: var(--color-gold); }
.se-venue__fact--hotel {
	background: var(--color-burgundy);
	border-left-color: var(--color-gold);
	color: var(--color-cream);
}
.se-venue__fact--hotel dt { color: var(--color-cream); }
.se-venue__fact--hotel dt svg { color: var(--color-gold); }
.se-venue__fact--hotel dd { color: color-mix(in srgb, var(--color-cream) 92%, transparent); }
.se-venue__fact--hotel dd strong { color: var(--color-cream); }
.se-venue__perk {
	display: inline-block;
	margin-top: 4px;
	padding: 3px 10px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--color-gold) 22%, transparent);
	color: var(--color-gold);
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .06em;
}
.se-venue__hotel-cta { margin: var(--space-3) 0 0; }

/* ==========================================================================
   SECTION TESTIMONIALS : 3 cartes editoriales avec quote mark
   ========================================================================== */
.se-section--testimonials {
	background: var(--color-cream-cool);
	overflow: hidden;
}
.se-section--testimonials::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--color-gold) 10%, transparent), transparent 50%),
		radial-gradient(circle at 0% 100%, color-mix(in srgb, var(--color-burgundy) 8%, transparent), transparent 55%);
	pointer-events: none;
	z-index: 0;
}
.se-section--testimonials > .se-container { position: relative; z-index: 1; }
.se-testimonials-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-5);
	margin-top: var(--space-7);
}
@media (min-width: 760px) { .se-testimonials-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .se-testimonials-grid { grid-template-columns: repeat(3, 1fr); } }
.se-testimonial {
	position: relative;
	display: grid;
	grid-template-rows: auto 1fr auto;
	gap: var(--space-4);
	margin: 0;
	padding: var(--space-6) var(--space-5) var(--space-5);
	background: #fff;
	border-radius: 4px;
	border-top: 3px solid var(--color-burgundy);
	box-shadow: 0 24px 40px -28px rgba(0,0,0,.35);
	transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.se-testimonial:hover {
	transform: translateY(-4px);
	box-shadow: 0 32px 50px -28px rgba(0,0,0,.4);
}
.se-testimonial:nth-child(2) { border-top-color: var(--color-gold); transform: translateY(-12px); }
.se-testimonial:nth-child(2):hover { transform: translateY(-16px); }
@media (max-width: 1079px) { .se-testimonial:nth-child(2) { transform: none; } .se-testimonial:nth-child(2):hover { transform: translateY(-4px); } }

.se-testimonial__mark {
	display: block;
	font-family: var(--font-heading);
	font-size: clamp(4rem, 6vw, 6rem);
	font-style: italic;
	line-height: .8;
	color: var(--color-gold);
	margin: 0;
	letter-spacing: -.02em;
}
.se-testimonial__quote {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.05rem, 1.5vw, 1.2rem);
	line-height: 1.55;
	color: var(--color-night);
	font-style: italic;
	font-weight: 400;
}
.se-testimonial__author {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding-top: var(--space-3);
	border-top: 1px solid var(--color-rule);
}
.se-testimonial__avatar {
	flex-shrink: 0;
	width: 44px; height: 44px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--color-cream-warm);
	display: inline-flex; align-items: center; justify-content: center;
}
.se-testimonial__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.se-testimonial__avatar--initial {
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 600;
	color: var(--color-burgundy);
}
.se-testimonial__person { display: grid; gap: 2px; min-width: 0; }
.se-testimonial__name {
	font-family: var(--font-body);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--color-night);
	line-height: 1.2;
}
.se-testimonial__meta {
	font-family: var(--font-eyebrow);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: .04em;
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
}

/* ==========================================================================
   PRICING : pastille deadline early-bird au-dessus de la grid + tag carte
   ========================================================================== */
.se-pricing-deadline {
	margin: var(--space-5) auto 0;
	padding: 12px 22px;
	display: inline-flex;
	align-items: center; gap: 12px;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 100%;
	background: linear-gradient(95deg, color-mix(in srgb, var(--color-gold) 18%, var(--color-cream)) 0%, color-mix(in srgb, var(--color-gold) 8%, var(--color-cream)) 100%);
	border: 1px solid color-mix(in srgb, var(--color-gold) 45%, transparent);
	border-radius: 999px;
	font-family: var(--font-eyebrow);
	font-size: 13px;
	font-weight: 500;
	color: var(--color-burgundy);
	letter-spacing: .01em;
}
.se-pricing-deadline strong {
	font-weight: 700;
	color: var(--color-gold-dark);
	letter-spacing: .06em;
	text-transform: uppercase;
	font-size: 11.5px;
}
.se-pricing-deadline__after {
	color: color-mix(in srgb, var(--color-burgundy) 65%, transparent);
	font-style: italic;
}
.se-pricing-deadline__dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--color-gold);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-gold) 28%, transparent);
	animation: se-deadline-pulse 2.4s ease-in-out infinite;
}
@keyframes se-deadline-pulse {
	0%, 100% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-gold) 28%, transparent); }
	50%      { box-shadow: 0 0 0 8px color-mix(in srgb, var(--color-gold) 14%, transparent); }
}
.se-pricing-deadline--ended {
	background: color-mix(in srgb, var(--color-burgundy) 6%, var(--color-cream));
	border-color: var(--color-rule);
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
}
/* Anciens overrides obsolete (le layout pricing passe par .se-codex--pricing) */
.se-price-card { position: relative; }

@media (max-width: 760px) {
	.se-keynote-card__media { aspect-ratio: 1/1; max-width: 100%; }
	.se-section--keynotes::before { opacity: .6; }
	.se-venue__fact { padding-left: var(--space-4); }
}

/* ==========================================================================
   SPEAKER CARD : enrichissement (chip topic sur avatar, role/org, ville)
   ========================================================================== */
.se-speaker-card__chip {
	position: absolute;
	left: 10px; top: 10px;
	z-index: 2;
	padding: 4px 9px;
	background: color-mix(in srgb, var(--color-cream) 92%, transparent);
	color: var(--color-burgundy);
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: 999px;
	backdrop-filter: blur(6px);
}
.se-speaker-card__role {
	font-family: var(--font-body);
	font-size: 13.5px;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
	margin: 4px 0 4px;
	line-height: 1.4;
}
.se-speaker-card__role em {
	color: var(--color-burgundy);
	font-style: italic;
}
.se-speaker-card__city {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .04em;
	color: color-mix(in srgb, var(--color-night) 55%, transparent);
	margin: 0;
}
.se-speaker-card__city svg { color: var(--color-gold-dark); }

/* ==========================================================================
   PROGRAMME : teaser des 3 jours (cards date + theme + highlights)
   ========================================================================== */
.se-days-grid {
	list-style: none;
	margin: var(--space-7) 0 var(--space-6);
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-4);
	counter-reset: day;
}
@media (min-width: 760px)  { .se-days-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .se-days-grid { grid-template-columns: repeat(3, 1fr); } }
.se-day-card {
	position: relative;
	display: grid;
	grid-template-rows: auto 1fr;
	gap: var(--space-3);
	padding: var(--space-5) var(--space-5) var(--space-5);
	background: var(--color-cream);
	border-radius: 4px;
	border-top: 4px solid var(--color-burgundy);
	box-shadow: 0 18px 32px -24px rgba(0,0,0,.35);
	overflow: hidden;
	transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .25s;
}
.se-day-card::before {
	content: "";
	position: absolute;
	right: -40px; top: -40px;
	width: 140px; height: 140px;
	border-radius: 50%;
	background: radial-gradient(circle, color-mix(in srgb, var(--color-gold) 22%, transparent) 0%, transparent 70%);
	pointer-events: none;
}
.se-day-card:nth-child(2) { border-top-color: var(--color-gold); }
.se-day-card:nth-child(3) { border-top-color: var(--color-night); }
.se-day-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 26px 40px -22px rgba(0,0,0,.45);
}
.se-day-card__head {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: var(--space-3);
	row-gap: 2px;
	align-items: end;
	border-bottom: 1px solid var(--color-rule);
	padding-bottom: var(--space-3);
}
.se-day-card__num {
	grid-row: 1 / span 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px; height: 38px;
	border-radius: 50%;
	background: var(--color-burgundy);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	align-self: center;
}
.se-day-card:nth-child(2) .se-day-card__num { background: var(--color-gold); color: var(--color-night); }
.se-day-card:nth-child(3) .se-day-card__num { background: var(--color-night); }
.se-day-card__date {
	display: flex;
	align-items: baseline;
	gap: 6px;
	font-family: var(--font-heading);
	font-weight: 500;
	color: var(--color-night);
	line-height: .9;
}
.se-day-card__num-big {
	font-size: clamp(2.4rem, 4vw, 3.2rem);
	font-style: italic;
	letter-spacing: -.02em;
}
.se-day-card__mo {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--color-burgundy);
}
.se-day-card__weekday {
	grid-column: 2;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 55%, transparent);
}
.se-day-card__body { display: grid; gap: var(--space-3); }
.se-day-card__theme {
	font-family: var(--font-heading);
	font-size: clamp(1.2rem, 1.8vw, 1.45rem);
	font-weight: 500;
	color: var(--color-night);
	margin: 0;
	line-height: 1.15;
	letter-spacing: -.012em;
}
.se-day-card__theme em {
	color: var(--color-burgundy);
	font-style: italic;
}
.se-day-card__theme--ghost {
	color: color-mix(in srgb, var(--color-night) 35%, transparent);
	font-style: italic;
}
.se-day-card__highlights {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.se-day-card__highlights li {
	position: relative;
	padding-left: 18px;
	font-family: var(--font-body);
	font-size: 14px;
	line-height: 1.45;
	color: color-mix(in srgb, var(--color-night) 82%, transparent);
}
.se-day-card__highlights li::before {
	content: "";
	position: absolute;
	left: 0; top: 9px;
	width: 8px; height: 1px;
	background: var(--color-gold-dark);
}

/* ==========================================================================
   SPONSORS : etat vide premium (4 tier slots + skeletons + CTA)
   ========================================================================== */
.se-sponsors-empty {
	margin-top: var(--space-7);
	display: grid;
	gap: var(--space-6);
}
.se-sponsors-tier--ghost {
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
}
.se-sponsors-tier__title {
	display: flex;
	align-items: baseline;
	gap: 14px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--color-burgundy);
	margin: 0 0 var(--space-3);
}
.se-sponsors-tier__rule {
	width: 36px; height: 1px;
	background: var(--color-burgundy);
	display: inline-block;
}
.se-sponsors-tier__title--gold .se-sponsors-tier__rule { background: var(--color-gold-dark); height: 2px; }
.se-sponsors-tier__title--silver .se-sponsors-tier__rule { background: color-mix(in srgb, var(--color-night) 50%, transparent); }
.se-sponsors-tier__title--bronze .se-sponsors-tier__rule { background: color-mix(in srgb, var(--color-burgundy) 60%, transparent); }
.se-sponsors-tier__title--community .se-sponsors-tier__rule { background: color-mix(in srgb, var(--color-night) 30%, transparent); }
.se-sponsors-tier__count {
	font-weight: 500;
	letter-spacing: .04em;
	color: color-mix(in srgb, var(--color-night) 45%, transparent);
}
.se-sponsors-logos--ghost {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.se-sponsors-logos__item--ghost {
	background: color-mix(in srgb, var(--color-cream) 60%, transparent);
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	color: color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	transition: color .35s ease, background .35s ease;
}
.se-sponsors-logos__item--ghost:hover {
	background: color-mix(in srgb, var(--color-cream) 75%, transparent);
	color: var(--color-burgundy);
}
.se-sponsors-empty__cta {
	margin-top: var(--space-3);
	padding: var(--space-5) var(--space-5);
	background: linear-gradient(105deg, var(--color-burgundy) 0%, color-mix(in srgb, var(--color-burgundy) 80%, var(--color-night)) 100%);
	color: var(--color-cream);
	border-radius: 4px;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--space-4);
	align-items: center;
	box-shadow: 0 22px 40px -24px rgba(0,0,0,.55);
}
.se-sponsors-empty__lead {
	font-family: var(--font-heading);
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	font-style: italic;
	font-weight: 400;
	margin: 0;
	max-width: 60ch;
	line-height: 1.45;
}
@media (max-width: 760px) {
	.se-sponsors-empty__cta {
		grid-template-columns: 1fr;
		text-align: left;
	}
}

/* ==========================================================================
   Page Inscription (/inscription/) — Codex editorial + passes WC
   ========================================================================== */
.se-codex--inscription {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(48px, 6vw, 96px) 0 clamp(56px, 7vw, 112px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-gold) 6%) 0%,
			var(--color-cream) 50%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-burgundy) 8%) 100%);
}
.se-codex__container--inscription {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(36px, 4.5vw, 56px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--inscription .se-codex__rail { display: none; }
@media (min-width: 980px) {
	.se-codex__container--inscription {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--inscription .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex__container--inscription > :not(.se-codex__rail) {
		grid-column: 2;
	}
}

/* --- Bandeau 3 reperes (dates / ou / inclus) --- */
.se-codex-inscription__facts {
	margin: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(18px, 2.5vw, 32px);
	padding: clamp(20px, 2.5vw, 32px) clamp(22px, 3vw, 40px);
	background: color-mix(in srgb, var(--color-cream) 98%, #fff);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 32%, transparent),
		0 14px 36px -22px color-mix(in srgb, var(--color-burgundy) 30%, transparent);
	position: relative;
}
.se-codex-inscription__facts::before,
.se-codex-inscription__facts::after {
	content: '';
	position: absolute;
	width: 14px; height: 14px;
	border: 1.5px solid var(--color-gold);
	pointer-events: none;
}
.se-codex-inscription__facts::before {
	top: 8px; left: 8px;
	border-right: none; border-bottom: none;
}
.se-codex-inscription__facts::after {
	bottom: 8px; right: 8px;
	border-left: none; border-top: none;
}
@media (min-width: 640px) {
	.se-codex-inscription__facts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(20px, 3vw, 40px);
	}
}
.se-codex-inscription__fact {
	display: grid;
	gap: 6px;
	min-width: 0;
}
.se-codex-inscription__fact dt {
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 65%, transparent);
	font-weight: 600;
	margin: 0;
}
.se-codex-inscription__fact dd {
	font-family: var(--font-heading);
	font-size: clamp(1.05rem, 1.3vw, 1.2rem);
	color: var(--color-burgundy);
	margin: 0;
	line-height: 1.35;
	font-variation-settings: 'opsz' 32, 'SOFT' 80;
}
.se-codex-inscription__fact dd em {
	font-style: italic;
	color: color-mix(in srgb, var(--color-burgundy) 75%, transparent);
	font-size: .9em;
}

/* --- Section "Comment s'inscrire" : 3 etapes numerotees --- */
.se-codex-inscription__steps {
	margin: 0;
}
.se-codex-inscription__steps-head {
	text-align: center;
	margin-bottom: clamp(24px, 3vw, 40px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(12px, 1.5vw, 18px);
}
.se-codex-inscription__steps-title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.8rem, 3.2vw, 2.6rem);
	line-height: 1.05;
	font-weight: 350;
	color: var(--color-night);
	letter-spacing: -.01em;
	font-variation-settings: 'opsz' 96, 'SOFT' 30;
}
.se-codex-inscription__steps-title em {
	font-style: italic;
	color: var(--color-burgundy);
	font-weight: 400;
}
.se-codex-inscription__steps-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(20px, 2.5vw, 32px);
	counter-reset: step;
}
@media (min-width: 760px) {
	.se-codex-inscription__steps-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.se-codex-inscription__step {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: clamp(14px, 1.8vw, 22px);
	padding: clamp(20px, 2.5vw, 28px);
	background: color-mix(in srgb, var(--color-cream) 96%, #fff);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 26%, transparent);
	position: relative;
}
.se-codex-inscription__step-num {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.8rem, 2.6vw, 2.4rem);
	line-height: 1;
	color: var(--color-gold-dark);
	font-weight: 350;
	font-variation-settings: 'opsz' 96, 'SOFT' 60;
	letter-spacing: -.02em;
	min-width: 1.6em;
}
.se-codex-inscription__step-body {
	min-width: 0;
}
.se-codex-inscription__step-title {
	margin: 0 0 6px;
	font-family: var(--font-heading);
	font-size: clamp(1.15rem, 1.5vw, 1.35rem);
	font-weight: 400;
	color: var(--color-burgundy);
	letter-spacing: -.005em;
	line-height: 1.15;
	font-variation-settings: 'opsz' 48, 'SOFT' 30;
}
.se-codex-inscription__step-text {
	margin: 0;
	font-family: var(--font-body);
	font-size: .94rem;
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
}

/* Signature lien email */
.se-codex--inscription .se-codex__signature-text a {
	color: var(--color-burgundy);
	font-weight: 500;
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 50%, transparent);
	padding-bottom: 1px;
	transition: border-color .25s ease, color .25s ease;
}
.se-codex--inscription .se-codex__signature-text a:hover {
	color: var(--color-gold-dark);
	border-color: var(--color-gold);
}

/* ==========================================================================
   Page Contact (/contact/) — Codex editorial + formulaire
   ========================================================================== */
.se-codex--contact {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(48px, 6vw, 96px) 0 clamp(56px, 7vw, 112px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-gold) 6%) 0%,
			var(--color-cream) 50%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-burgundy) 8%) 100%);
}
.se-codex__container--contact {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(36px, 4.5vw, 56px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--contact .se-codex__rail { display: none; }
@media (min-width: 980px) {
	.se-codex__container--contact {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--contact .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex__container--contact > :not(.se-codex__rail) {
		grid-column: 2;
	}
}

/* --- Split : formulaire | panneau infos --- */
.se-codex-contact__split {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(24px, 3vw, 48px);
	min-width: 0;
}
@media (min-width: 880px) {
	.se-codex-contact__split {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
		gap: clamp(32px, 4vw, 56px);
		align-items: start;
	}
}

/* --- Formulaire --- */
.se-codex-contact__form {
	display: grid;
	gap: clamp(16px, 2vw, 22px);
	padding: clamp(24px, 3vw, 40px);
	background: color-mix(in srgb, var(--color-cream) 98%, #fff);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 18px 48px -28px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	position: relative;
	min-width: 0;
}
.se-codex-contact__form::before,
.se-codex-contact__form::after {
	content: '';
	position: absolute;
	width: 14px; height: 14px;
	border: 1.5px solid var(--color-gold);
	pointer-events: none;
}
.se-codex-contact__form::before {
	top: 10px; left: 10px;
	border-right: none; border-bottom: none;
}
.se-codex-contact__form::after {
	bottom: 10px; right: 10px;
	border-left: none; border-top: none;
}

.se-codex-contact__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(16px, 2vw, 22px);
}
@media (min-width: 560px) {
	.se-codex-contact__row {
		grid-template-columns: 1fr 1fr;
	}
}

.se-codex-contact__field {
	display: grid;
	gap: 6px;
	min-width: 0;
}
.se-codex-contact__label {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
	font-weight: 600;
}
.se-codex-contact__field input,
.se-codex-contact__field select,
.se-codex-contact__field textarea {
	width: 100%;
	padding: 12px 14px;
	background: var(--color-cream);
	border: 1px solid color-mix(in srgb, var(--color-burgundy) 18%, transparent);
	color: var(--color-burgundy);
	font-family: var(--font-heading);
	font-size: 1.02rem;
	line-height: 1.4;
	font-variation-settings: 'opsz' 24, 'SOFT' 60;
	transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
}
.se-codex-contact__field select {
	background-image:
		linear-gradient(45deg, transparent 50%, var(--color-burgundy) 50%),
		linear-gradient(135deg, var(--color-burgundy) 50%, transparent 50%);
	background-position:
		calc(100% - 18px) 50%,
		calc(100% - 13px) 50%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	padding-right: 36px;
}
.se-codex-contact__field textarea {
	resize: vertical;
	min-height: 140px;
}
.se-codex-contact__field input:focus,
.se-codex-contact__field select:focus,
.se-codex-contact__field textarea:focus {
	outline: none;
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-gold) 18%, transparent);
	background: #fff;
}

/* Honeypot : visuellement invisible mais pas display:none (sinon les bots l'ignorent moins) */
.se-codex-contact__hp {
	position: absolute;
	left: -9999px;
	top: -9999px;
	width: 1px; height: 1px;
	overflow: hidden;
}

.se-codex-contact__submit {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 28px;
	background: var(--color-burgundy);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	border: none;
	cursor: pointer;
	margin-top: 6px;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		inset 0 0 0 4px var(--color-burgundy),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 25%, transparent);
	transition: background .25s ease, transform .25s cubic-bezier(.2,.7,.2,1);
}
.se-codex-contact__submit:hover,
.se-codex-contact__submit:focus-visible {
	background: color-mix(in srgb, var(--color-burgundy) 90%, #000);
	transform: translateY(-2px);
}
.se-codex-contact__submit:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
}
.se-codex-contact__submit-arrow {
	transition: transform .25s cubic-bezier(.2,.7,.2,1);
}
.se-codex-contact__submit:hover .se-codex-contact__submit-arrow {
	transform: translateX(4px);
}

.se-codex-contact__fineprint {
	margin: 0;
	font-family: var(--font-body);
	font-size: .82rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 55%, transparent);
}

/* --- Alertes (succes / erreur) --- */
.se-codex-contact__alert {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	font-family: var(--font-eyebrow);
	font-size: 12.5px;
	letter-spacing: .12em;
	margin: -8px 0 4px;
}
.se-codex-contact__alert--success {
	background: color-mix(in srgb, var(--color-gold) 16%, var(--color-cream));
	color: var(--color-burgundy);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 50%, transparent);
}
.se-codex-contact__alert--error {
	background: color-mix(in srgb, var(--color-burgundy) 12%, var(--color-cream));
	color: var(--color-burgundy);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-burgundy) 45%, transparent);
}
.se-codex-contact__alert-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px; height: 22px;
	border-radius: 50%;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 13px;
	flex-shrink: 0;
}
.se-codex-contact__alert--success .se-codex-contact__alert-mark {
	background: var(--color-gold);
	color: var(--color-cream);
}
.se-codex-contact__alert--error .se-codex-contact__alert-mark {
	background: var(--color-burgundy);
	color: var(--color-cream);
}

/* --- Panneau infos a droite --- */
.se-codex-contact__info {
	position: relative;
	padding: clamp(24px, 3vw, 40px);
	background: linear-gradient(180deg,
		color-mix(in srgb, var(--color-night) 96%, #000) 0%,
		color-mix(in srgb, var(--color-night) 92%, var(--color-burgundy) 8%) 100%);
	color: color-mix(in srgb, var(--color-cream) 88%, transparent);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 18px 48px -24px rgba(0, 0, 0, .45);
	min-width: 0;
}
.se-codex-contact__info-corner {
	position: absolute;
	width: 16px; height: 16px;
	border: 1.5px solid var(--color-gold);
	pointer-events: none;
}
.se-codex-contact__info-corner--tl {
	top: 10px; left: 10px;
	border-right: none; border-bottom: none;
}
.se-codex-contact__info-corner--br {
	bottom: 10px; right: 10px;
	border-left: none; border-top: none;
}

.se-codex-contact__info-title {
	margin: 0 0 clamp(18px, 2.2vw, 28px);
	font-family: var(--font-heading);
	font-size: clamp(1.4rem, 2vw, 1.8rem);
	font-weight: 350;
	color: var(--color-cream);
	line-height: 1.1;
	font-variation-settings: 'opsz' 72, 'SOFT' 40;
	letter-spacing: -.01em;
}
.se-codex-contact__info-title em {
	font-style: italic;
	color: var(--color-gold);
	font-weight: 400;
	display: block;
}

.se-codex-contact__info-list {
	margin: 0;
	display: grid;
	gap: clamp(14px, 1.8vw, 22px);
	border-top: 1px solid color-mix(in srgb, var(--color-gold) 20%, transparent);
	padding-top: clamp(16px, 2vw, 22px);
}
.se-codex-contact__info-item {
	display: grid;
	gap: 4px;
}
.se-codex-contact__info-item dt {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-gold) 80%, transparent);
	font-weight: 600;
	margin: 0;
}
.se-codex-contact__info-item dt svg {
	color: var(--color-gold);
	flex-shrink: 0;
}
.se-codex-contact__info-item dd {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.02rem;
	color: var(--color-cream);
	line-height: 1.45;
	font-variation-settings: 'opsz' 24, 'SOFT' 50;
	padding-left: 24px;
}
.se-codex-contact__info-item dd a {
	color: var(--color-cream);
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 50%, transparent);
	padding-bottom: 1px;
	transition: color .25s ease, border-color .25s ease;
}
.se-codex-contact__info-item dd a:hover {
	color: var(--color-gold);
	border-color: var(--color-gold);
}

.se-codex-contact__socials {
	margin-top: clamp(20px, 2.5vw, 28px);
	padding-top: clamp(16px, 2vw, 22px);
	border-top: 1px solid color-mix(in srgb, var(--color-gold) 20%, transparent);
}
.se-codex-contact__socials-label {
	margin: 0 0 12px;
	font-family: var(--font-eyebrow);
	font-size: 10.5px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-gold) 80%, transparent);
	font-weight: 600;
}
.se-codex-contact__socials-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.se-codex-contact__socials-list a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	color: var(--color-cream);
	background: color-mix(in srgb, var(--color-cream) 6%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-gold) 25%, transparent);
	text-decoration: none;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	transition: background .25s ease, border-color .25s ease, color .25s ease;
}
.se-codex-contact__socials-list a:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-night);
}
.se-codex-contact__socials-list svg {
	width: 14px; height: 14px;
}

/* ==========================================================================
   Page Sponsors (/sponsors/) — Codex editorial
   ========================================================================== */
.se-section--sponsors-page.se-codex--sponsors-page {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(48px, 6vw, 96px) 0 clamp(56px, 7vw, 112px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 94%, var(--color-gold) 6%) 0%,
			var(--color-cream) 45%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-burgundy) 8%) 100%);
}

.se-codex__container--sponsors-page {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(36px, 4.5vw, 64px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--sponsors-page .se-codex__rail { display: none; }

@media (min-width: 980px) {
	.se-codex__container--sponsors-page {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--sponsors-page .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex--sponsors-page .se-codex__container--sponsors-page > :not(.se-codex__rail) {
		grid-column: 2;
	}
}

/* --- Lead (post_content optionnel) --- */
.se-codex-sponsors-page__lead {
	max-width: 60ch;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.1rem, 1.4vw, 1.25rem);
	line-height: 1.6;
	color: color-mix(in srgb, var(--color-night) 82%, transparent);
	font-variation-settings: 'opsz' 32, 'SOFT' 80;
}

/* --- Registre dans la page : on l'enveloppe pour le centrer --- */
.se-codex-sponsors-page__register {
	min-width: 0;
}

/* --- En-tête de section (Pourquoi / Niveaux) --- */
.se-codex-sponsors-page__section-head {
	display: grid;
	grid-template-columns: auto auto 1fr;
	align-items: baseline;
	gap: clamp(14px, 1.8vw, 24px);
	margin-bottom: clamp(24px, 3vw, 44px);
}
.se-codex-sponsors-page__section-num {
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.2rem, 1.6vw, 1.5rem);
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 60, 'SOFT' 50;
	letter-spacing: -.01em;
}
.se-codex-sponsors-page__section-title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 360;
	font-size: clamp(1.8rem, 3.2vw, 2.6rem);
	line-height: 1.05;
	letter-spacing: -.015em;
	color: var(--color-night);
	font-variation-settings: 'opsz' 96, 'SOFT' 30;
}
.se-codex-sponsors-page__section-title em {
	font-style: italic;
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 120, 'SOFT' 80;
}
.se-codex-sponsors-page__section-rule {
	display: block;
	height: 1px;
	background: linear-gradient(to right,
		var(--color-gold),
		color-mix(in srgb, var(--color-gold) 25%, transparent) 60%,
		transparent);
	align-self: center;
}

/* --- 1. POURQUOI : grille 4 cartes -------------------------------------- */
.se-codex-sponsors-page__why-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(20px, 2.5vw, 32px);
}
@media (min-width: 640px) {
	.se-codex-sponsors-page__why-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 1100px) {
	.se-codex-sponsors-page__why-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
.se-codex-sponsors-page__why-card {
	position: relative;
	padding: clamp(24px, 2.6vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 10px;
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 98%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 4%) 100%);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 28%, transparent),
		0 14px 30px -22px color-mix(in srgb, var(--color-burgundy) 32%, transparent);
	transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.se-codex-sponsors-page__why-card:hover {
	transform: translateY(-2px);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 48%, transparent),
		0 22px 44px -22px color-mix(in srgb, var(--color-burgundy) 40%, transparent);
}
.se-codex-sponsors-page__why-num {
	position: absolute;
	top: 14px;
	right: 18px;
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .24em;
	color: color-mix(in srgb, var(--color-gold) 70%, var(--color-burgundy));
}
.se-codex-sponsors-page__why-kicker {
	margin: 0;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 75%, transparent);
}
.se-codex-sponsors-page__why-title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(1.15rem, 1.6vw, 1.4rem);
	line-height: 1.15;
	color: var(--color-night);
	font-variation-settings: 'opsz' 48, 'SOFT' 40;
}
.se-codex-sponsors-page__why-text {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
}

/* --- 2. TIERS : grille 3 colonnes Or/Argent/Bronze ---------------------- */
.se-codex-sponsors-page__tiers-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(20px, 2.5vw, 32px);
}
@media (min-width: 900px) {
	.se-codex-sponsors-page__tiers-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: stretch;
	}
}
.se-codex-sponsors-page__tier {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: clamp(14px, 1.6vw, 20px);
	padding: clamp(28px, 3vw, 36px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 98%, #fff) 0%,
			color-mix(in srgb, var(--color-cream) 92%, var(--color-gold) 4%) 100%);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 28%, transparent),
		0 18px 40px -28px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
	transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.se-codex-sponsors-page__tier:hover {
	transform: translateY(-3px);
}
.se-codex-sponsors-page__tier--rank-3 {
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 96%, var(--color-gold) 6%) 0%,
			color-mix(in srgb, var(--color-cream) 88%, var(--color-gold) 10%) 100%);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 60%, transparent),
		0 22px 50px -28px color-mix(in srgb, var(--color-burgundy) 40%, transparent);
}
.se-codex-sponsors-page__tier-head {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-bottom: clamp(14px, 1.5vw, 20px);
	border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 32%, transparent);
}
.se-codex-sponsors-page__tier-marks {
	display: inline-flex;
	gap: 6px;
}
.se-codex-sponsors-page__tier-mark {
	width: 8px;
	height: 8px;
	background: var(--color-gold);
	transform: rotate(45deg);
	display: inline-block;
}
.se-codex-sponsors-page__tier--rank-2 .se-codex-sponsors-page__tier-mark {
	background: color-mix(in srgb, var(--color-gold) 75%, var(--color-burgundy) 25%);
}
.se-codex-sponsors-page__tier--rank-1 .se-codex-sponsors-page__tier-mark {
	background: color-mix(in srgb, var(--color-gold) 55%, var(--color-burgundy) 45%);
}
.se-codex-sponsors-page__tier-kicker {
	margin: 0;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 75%, transparent);
}
.se-codex-sponsors-page__tier-name {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	line-height: 1;
	color: var(--color-night);
	letter-spacing: -.01em;
	font-variation-settings: 'opsz' 96, 'SOFT' 30;
}
.se-codex-sponsors-page__tier-price {
	margin: 4px 0 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 40, 'SOFT' 60;
}
.se-codex-sponsors-page__tier-pitch {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
}
.se-codex-sponsors-page__tier-benefits {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex-grow: 1;
}
.se-codex-sponsors-page__tier-benefits li {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 12px;
	font-family: var(--font-body);
	font-size: .95rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 82%, transparent);
}
.se-codex-sponsors-page__tier-benefit-mark {
	width: 6px;
	height: 6px;
	background: var(--color-gold);
	transform: rotate(45deg);
	margin-top: 8px;
	flex-shrink: 0;
}
.se-codex-sponsors-page__tier-cta {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 18px;
	text-decoration: none;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-night);
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--color-gold) 55%, transparent);
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.se-codex-sponsors-page__tier--rank-3 .se-codex-sponsors-page__tier-cta {
	background: var(--color-night);
	color: var(--color-cream);
	border-color: var(--color-night);
}
.se-codex-sponsors-page__tier--rank-3 .se-codex-sponsors-page__tier-cta:hover {
	background: var(--color-burgundy);
	border-color: var(--color-burgundy);
}
.se-codex-sponsors-page__tier-cta:hover {
	background: color-mix(in srgb, var(--color-gold) 18%, transparent);
	border-color: var(--color-gold);
	color: var(--color-night);
}
.se-codex-sponsors-page__tier-cta-arrow {
	transition: transform .25s ease;
}
.se-codex-sponsors-page__tier-cta:hover .se-codex-sponsors-page__tier-cta-arrow {
	transform: translateX(3px);
}

/* --- 3. CTA FINAL : encart partenariat ---------------------------------- */
.se-codex-sponsors-page__cta {
	position: relative;
	padding: clamp(40px, 5vw, 72px) clamp(28px, 4vw, 56px);
	text-align: center;
	background:
		linear-gradient(180deg,
			var(--color-night) 0%,
			color-mix(in srgb, var(--color-night) 88%, var(--color-burgundy) 12%) 100%);
	color: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent),
		0 28px 60px -30px color-mix(in srgb, var(--color-night) 80%, transparent);
}
.se-codex-sponsors-page__cta-corner {
	position: absolute;
	width: 18px;
	height: 18px;
	border: 1px solid color-mix(in srgb, var(--color-gold) 65%, transparent);
}
.se-codex-sponsors-page__cta-corner--tl { top: 10px; left: 10px;  border-right: 0; border-bottom: 0; }
.se-codex-sponsors-page__cta-corner--tr { top: 10px; right: 10px; border-left: 0;  border-bottom: 0; }
.se-codex-sponsors-page__cta-corner--bl { bottom: 10px; left: 10px;  border-right: 0; border-top: 0; }
.se-codex-sponsors-page__cta-corner--br { bottom: 10px; right: 10px; border-left: 0;  border-top: 0; }

.se-codex-sponsors-page__cta-kicker {
	margin: 0 0 12px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-gold) 80%, var(--color-cream));
}
.se-codex-sponsors-page__cta-title {
	margin: 0 0 16px;
	font-family: var(--font-heading);
	font-weight: 380;
	font-size: clamp(1.8rem, 3.2vw, 2.8rem);
	line-height: 1.05;
	color: var(--color-cream);
	font-variation-settings: 'opsz' 120, 'SOFT' 30;
}
.se-codex-sponsors-page__cta-title em {
	display: block;
	font-style: italic;
	color: var(--color-gold);
	font-variation-settings: 'opsz' 144, 'SOFT' 80;
}
.se-codex-sponsors-page__cta-text {
	margin: 0 auto clamp(20px, 2.5vw, 32px);
	max-width: 56ch;
	font-family: var(--font-body);
	font-size: clamp(1rem, 1.2vw, 1.1rem);
	line-height: 1.6;
	color: color-mix(in srgb, var(--color-cream) 86%, transparent);
}
.se-codex-sponsors-page__cta-actions {
	display: inline-flex;
	flex-wrap: wrap;
	gap: clamp(12px, 1.5vw, 20px);
	justify-content: center;
	align-items: center;
}
.se-codex-sponsors-page__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 22px;
	text-decoration: none;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .28em;
	text-transform: uppercase;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.se-codex-sponsors-page__cta-btn--primary {
	background: var(--color-gold);
	color: var(--color-night);
	border: 1px solid var(--color-gold);
}
.se-codex-sponsors-page__cta-btn--primary:hover {
	background: color-mix(in srgb, var(--color-gold) 88%, #fff);
	transform: translateY(-1px);
}
.se-codex-sponsors-page__cta-btn--ghost {
	background: transparent;
	color: var(--color-cream);
	border: 1px solid color-mix(in srgb, var(--color-gold) 50%, transparent);
	text-transform: none;
	letter-spacing: 0;
	font-family: var(--font-body);
	font-size: var(--fs-base);
}
.se-codex-sponsors-page__cta-btn--ghost:hover {
	border-color: var(--color-gold);
	color: var(--color-gold);
}
.se-codex-sponsors-page__cta-arrow {
	transition: transform .25s ease;
}
.se-codex-sponsors-page__cta-btn:hover .se-codex-sponsors-page__cta-arrow {
	transform: translateX(3px);
}

/* Signature : annule le grid-area pour rester sur la colonne 2 en desktop */
.se-codex--sponsors-page .se-codex__signature {
	margin-top: clamp(36px, 4.5vw, 56px);
	justify-content: center;
}

/* ==========================================================================
   Promoteurs (3 variants : page Sponsors, Home, Footer)
   ========================================================================== */

/* --- VARIANT PAGE (sponsors) ------------------------------------------- */
.se-promoters--page {
	position: relative;
	padding: clamp(28px, 3.5vw, 48px) clamp(24px, 3vw, 40px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-night) 96%, var(--color-burgundy) 4%) 0%,
			var(--color-night) 100%);
	color: var(--color-cream);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent),
		0 28px 60px -30px color-mix(in srgb, var(--color-night) 80%, transparent);
}
.se-promoters--page .se-promoters__head {
	text-align: center;
	margin-bottom: clamp(24px, 3vw, 40px);
}
.se-promoters--page .se-promoters__kicker {
	display: inline-block;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-gold) 80%, var(--color-cream));
	padding: 6px 16px;
	border: 1px solid color-mix(in srgb, var(--color-gold) 45%, transparent);
}
.se-promoters--page .se-promoters__intro {
	max-width: 56ch;
	margin: 14px auto 0;
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1rem, 1.25vw, 1.15rem);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-cream) 88%, transparent);
	font-variation-settings: 'opsz' 32, 'SOFT' 60;
}
.se-promoters--page .se-promoters__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(20px, 3vw, 36px);
}
@media (min-width: 720px) {
	.se-promoters--page .se-promoters__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.se-promoters--page.se-promoters--n3 .se-promoters__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.se-promoters--page .se-promoters__item {
	margin: 0;
}
.se-promoters--page .se-promoters__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(14px, 1.8vw, 20px);
	padding: clamp(20px, 2vw, 28px);
	text-align: center;
	color: var(--color-cream);
	text-decoration: none;
	background: color-mix(in srgb, var(--color-cream) 6%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-gold) 28%, transparent);
	border-radius: 0;
	transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
a.se-promoters__link:hover {
	background: color-mix(in srgb, var(--color-cream) 12%, transparent);
	border-color: color-mix(in srgb, var(--color-gold) 60%, transparent);
	transform: translateY(-2px);
}
.se-promoters--page .se-promoters__logo-wrap {
	width: clamp(96px, 12vw, 140px);
	aspect-ratio: 1;
	box-sizing: border-box;
	display: grid;
	place-items: center;
	background: var(--color-night);
	border-radius: 50%;
	padding: 8px;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 45%, transparent),
		0 18px 36px -12px rgba(0,0,0,.55);
}
.se-promoters--page .se-promoters__logo {
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	display: block;
	object-fit: contain;
	border-radius: 50%;
}
.se-promoters--page .se-promoters__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.se-promoters--page .se-promoters__name {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(1.1rem, 1.4vw, 1.3rem);
	line-height: 1.15;
	color: var(--color-cream);
	font-variation-settings: 'opsz' 60, 'SOFT' 40;
	letter-spacing: -.005em;
}
.se-promoters--page .se-promoters__tagline {
	font-family: var(--font-body);
	font-size: .9rem;
	line-height: 1.45;
	color: color-mix(in srgb, var(--color-cream) 75%, transparent);
}
.se-promoters--page .se-promoters__location {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 4px;
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-gold) 70%, var(--color-cream));
}
.se-promoters--page .se-promoters__arrow {
	margin-top: 8px;
	font-family: var(--font-heading);
	font-size: 1.1rem;
	color: var(--color-gold);
	opacity: .75;
	transition: opacity .25s ease, transform .25s ease;
}
a.se-promoters__link:hover .se-promoters__arrow {
	opacity: 1;
	transform: translateX(3px);
}

/* --- VARIANT HOME ------------------------------------------------------ */
.se-promoters--home {
	padding: clamp(36px, 4vw, 64px) 0;
	background: color-mix(in srgb, var(--color-cream) 96%, var(--color-gold) 4%);
	border-block: 1px solid color-mix(in srgb, var(--color-gold) 22%, transparent);
}
.se-promoters--home .se-promoters__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(20px, 2.5vw, 32px);
}
.se-promoters--home .se-promoters__head {
	display: flex;
	align-items: center;
	gap: clamp(12px, 2vw, 20px);
	width: 100%;
	max-width: 480px;
}
.se-promoters--home .se-promoters__rule {
	flex: 1;
	height: 1px;
	background: linear-gradient(to right,
		transparent,
		var(--color-gold),
		transparent);
}
.se-promoters--home .se-promoters__heading {
	flex-shrink: 0;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 75%, transparent);
}
.se-promoters--home .se-promoters__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: clamp(24px, 4vw, 56px);
}
.se-promoters--home .se-promoters__item { margin: 0; }
.se-promoters--home .se-promoters__link {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: var(--color-night);
	transition: transform .25s ease;
}
a.se-promoters--home__noop {} /* placeholder pour spec */
.se-promoters--home a.se-promoters__link:hover {
	transform: translateY(-2px);
}
.se-promoters--home .se-promoters__logo-wrap {
	width: clamp(80px, 9vw, 108px);
	aspect-ratio: 1;
	box-sizing: border-box;
	display: grid;
	place-items: center;
	background: var(--color-night);
	border-radius: 50%;
	padding: 6px;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent),
		0 14px 28px -12px rgba(0,0,0,.45);
}
.se-promoters--home .se-promoters__logo {
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	display: block;
	object-fit: contain;
}
.se-promoters--home .se-promoters__meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	max-width: 18ch;
	text-align: center;
}
.se-promoters--home .se-promoters__name {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: .95rem;
	line-height: 1.2;
	color: var(--color-night);
	font-variation-settings: 'opsz' 40, 'SOFT' 30;
	min-height: 2.4em;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.se-promoters--home .se-promoters__location {
	font-family: var(--font-eyebrow);
	font-size: 9px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 60%, transparent);
}

/* --- VARIANT FOOTER --------------------------------------------------- */
.se-promoters--footer {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: clamp(20px, 2.5vw, 32px) var(--container-pad);
	border-top: 1px solid color-mix(in srgb, var(--color-gold) 18%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 18%, transparent);
}
.se-promoters--footer .se-promoters__heading {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-gold) 70%, var(--color-cream));
}
.se-promoters--footer .se-promoters__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: clamp(16px, 3vw, 32px);
}
.se-promoters--footer .se-promoters__item { margin: 0; }
.se-promoters--footer .se-promoters__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	aspect-ratio: 1;
	box-sizing: border-box;
	border-radius: 50%;
	background: var(--color-night);
	padding: 4px;
	transition: transform .25s ease, box-shadow .25s ease;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 35%, transparent);
}
.se-promoters--footer a.se-promoters__link:hover {
	transform: translateY(-2px) scale(1.04);
	box-shadow:
		0 0 0 1px var(--color-gold),
		0 10px 20px -8px rgba(0,0,0,.4);
}
.se-promoters--footer .se-promoters__logo {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: contain;
	display: block;
}

/* --- VARIANT CONGRES (page Le Congrès, cartes éditoriales codex) -------- */
.se-promoters--congres {
	margin: clamp(32px, 5vw, 64px) 0 0;
	padding: 0;
}
.se-promoters--congres .se-promoters__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	text-align: center;
	margin: 0 auto clamp(28px, 3.5vw, 48px);
	max-width: 60ch;
}
.se-promoters--congres .se-promoters__ornament {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--color-gold);
}
.se-promoters--congres .se-promoters__ornament-rule {
	width: clamp(40px, 6vw, 72px);
	height: 1px;
	background: linear-gradient(to right,
		transparent,
		color-mix(in srgb, var(--color-gold) 70%, transparent),
		color-mix(in srgb, var(--color-gold) 70%, transparent));
}
.se-promoters--congres .se-promoters__ornament-rule:last-child {
	background: linear-gradient(to right,
		color-mix(in srgb, var(--color-gold) 70%, transparent),
		color-mix(in srgb, var(--color-gold) 70%, transparent),
		transparent);
}
.se-promoters--congres .se-promoters__ornament-diamond {
	width: 6px;
	height: 6px;
	transform: rotate(45deg);
	background: var(--color-gold);
	display: inline-block;
}
.se-promoters--congres .se-promoters__kicker {
	font-family: var(--font-eyebrow);
	font-size: 12px;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 80%, transparent);
}
.se-promoters--congres .se-promoters__intro {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
	margin: 0;
	font-variation-settings: 'opsz' 32, 'SOFT' 60;
}

.se-promoters--congres .se-promoters__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(20px, 2.5vw, 32px);
}
@media (min-width: 720px) {
	.se-promoters--congres .se-promoters__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.se-promoters--congres.se-promoters--n3 .se-promoters__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.se-promoters--congres .se-promoters__item {
	margin: 0;
	display: flex;
}
.se-promoters--congres .se-promoters__card {
	position: relative;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
	padding: clamp(28px, 3vw, 40px) clamp(20px, 2.5vw, 32px);
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 70%, #ffffff 30%) 0%,
			color-mix(in srgb, var(--color-cream) 92%, transparent) 100%);
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	box-shadow:
		0 1px 0 0 color-mix(in srgb, var(--color-gold) 18%, transparent) inset,
		0 20px 40px -28px color-mix(in srgb, var(--color-night) 60%, transparent);
}
.se-promoters--congres .se-promoters__card-corner {
	position: absolute;
	width: 14px;
	height: 14px;
	border: 1px solid var(--color-gold);
	pointer-events: none;
}
.se-promoters--congres .se-promoters__card-corner--tl { top: -1px;    left: -1px;  border-right: 0; border-bottom: 0; }
.se-promoters--congres .se-promoters__card-corner--tr { top: -1px;    right: -1px; border-left: 0;  border-bottom: 0; }
.se-promoters--congres .se-promoters__card-corner--bl { bottom: -1px; left: -1px;  border-right: 0; border-top: 0; }
.se-promoters--congres .se-promoters__card-corner--br { bottom: -1px; right: -1px; border-left: 0;  border-top: 0; }

.se-promoters--congres .se-promoters__logo-wrap {
	width: clamp(96px, 11vw, 128px);
	aspect-ratio: 1;
	box-sizing: border-box;
	display: grid;
	place-items: center;
	background: var(--color-night);
	border-radius: 50%;
	padding: 10px;
	margin-bottom: 4px;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		0 0 0 5px color-mix(in srgb, var(--color-cream) 92%, transparent),
		0 0 0 6px color-mix(in srgb, var(--color-gold) 25%, transparent),
		0 14px 28px -12px rgba(0,0,0,.35);
}
.se-promoters--congres .se-promoters__logo {
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	display: block;
	object-fit: contain;
}
.se-promoters--congres .se-promoters__name {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(1.35rem, 1.8vw, 1.7rem);
	line-height: 1.15;
	color: var(--color-night);
	margin: 6px 0 0;
	font-variation-settings: 'opsz' 60, 'SOFT' 40;
	letter-spacing: -.01em;
}
.se-promoters--congres .se-promoters__tagline {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(.95rem, 1.1vw, 1.05rem);
	line-height: 1.45;
	color: color-mix(in srgb, var(--color-burgundy) 80%, transparent);
	margin: 0;
	max-width: 32ch;
	font-variation-settings: 'opsz' 32, 'SOFT' 60;
}
.se-promoters--congres .se-promoters__star {
	display: inline-block;
	color: var(--color-gold);
	opacity: .85;
	margin: 4px 0;
}
.se-promoters--congres .se-promoters__star svg {
	width: 14px;
	height: 14px;
	display: block;
}
.se-promoters--congres .se-promoters__location {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--font-eyebrow);
	font-size: 10px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
}
.se-promoters--congres .se-promoters__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	padding: 10px 22px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-night);
	text-decoration: none;
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--color-night) 70%, transparent);
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.se-promoters--congres .se-promoters__cta:hover {
	background: var(--color-night);
	color: var(--color-cream);
	border-color: var(--color-night);
}
.se-promoters--congres .se-promoters__cta-arrow {
	transition: transform .25s ease;
}
.se-promoters--congres .se-promoters__cta:hover .se-promoters__cta-arrow {
	transform: translateX(3px);
}

/* ==========================================================================
   Invites speciaux (2 variants : home, congres)
   ========================================================================== */

/* --- Communs aux deux variants ---------------------------------------- */
.se-guests__card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 14px;
	padding: clamp(24px, 2.5vw, 36px) clamp(18px, 2vw, 28px);
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}
.se-guests__portrait {
	position: relative;
	width: clamp(108px, 12vw, 144px);
	aspect-ratio: 1;
	flex-shrink: 0;
}
.se-guests__photo {
	width: 100%;
	height: 100%;
	display: block;
	border-radius: 50%;
	object-fit: cover;
	background: var(--color-night);
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		0 0 0 5px color-mix(in srgb, var(--color-cream) 92%, transparent),
		0 0 0 6px color-mix(in srgb, var(--color-gold) 25%, transparent),
		0 14px 28px -14px rgba(0,0,0,.35);
}
.se-guests__photo--placeholder {
	display: grid;
	place-items: center;
	color: var(--color-gold);
	font-family: var(--font-heading);
	font-size: clamp(2.2rem, 4vw, 3rem);
	font-variation-settings: 'opsz' 60, 'SOFT' 30;
	background:
		radial-gradient(circle at 30% 30%,
			color-mix(in srgb, var(--color-night) 80%, transparent) 0%,
			var(--color-night) 100%);
}
.se-guests__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	width: 100%;
}
.se-guests__role {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 75%, transparent);
}
.se-guests__name {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(1.25rem, 1.6vw, 1.55rem);
	line-height: 1.15;
	color: var(--color-night);
	margin: 2px 0 0;
	font-variation-settings: 'opsz' 60, 'SOFT' 40;
	letter-spacing: -.01em;
}
.se-guests__meta {
	font-family: var(--font-body);
	font-size: .9rem;
	line-height: 1.4;
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
	margin: 0;
}
.se-guests__bio {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(.92rem, 1vw, 1rem);
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 72%, transparent);
	margin: 6px 0 0;
	max-width: 32ch;
	font-variation-settings: 'opsz' 32, 'SOFT' 60;
}
.se-guests__socials {
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
	display: inline-flex;
	gap: 10px;
}
.se-guests__social {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	color: color-mix(in srgb, var(--color-night) 70%, transparent);
	background: transparent;
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}
.se-guests__social:hover {
	color: var(--color-cream);
	background: var(--color-night);
	border-color: var(--color-night);
	transform: translateY(-2px);
}
.se-guests__social svg {
	width: 14px;
	height: 14px;
}
.se-guests__cta {
	display: flex;
	justify-content: center;
	margin-top: clamp(28px, 3.5vw, 48px);
}
.se-guests__cta-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 26px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--color-cream);
	background: var(--color-night);
	border: 1px solid var(--color-night);
	text-decoration: none;
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.se-guests__cta-link:hover {
	background: transparent;
	color: var(--color-night);
}
.se-guests__cta-arrow {
	transition: transform .25s ease;
}
.se-guests__cta-link:hover .se-guests__cta-arrow {
	transform: translateX(3px);
}

/* --- VARIANT HOME ----------------------------------------------------- */
.se-guests--home .se-guests__head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto clamp(36px, 4vw, 56px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}
.se-guests--home .se-guests__overline {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: color-mix(in srgb, var(--color-burgundy) 80%, transparent);
}
.se-guests--home .se-guests__overline-rule {
	width: clamp(28px, 4vw, 56px);
	height: 1px;
	background: color-mix(in srgb, var(--color-gold) 70%, transparent);
}
.se-guests--home .se-guests__overline-text {
	font-family: var(--font-eyebrow);
	font-size: 12px;
	letter-spacing: .32em;
	text-transform: uppercase;
}
.se-guests--home .se-guests__overline-dot {
	width: 5px;
	height: 5px;
	background: var(--color-gold);
	transform: rotate(45deg);
	display: inline-block;
}
.se-guests--home .se-guests__title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(2rem, 4vw, 3.2rem);
	line-height: 1.05;
	color: var(--color-night);
	margin: 0;
	font-variation-settings: 'opsz' 90, 'SOFT' 30;
	letter-spacing: -.015em;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.se-guests--home .se-guests__title em {
	font-style: italic;
	color: var(--color-burgundy);
	font-variation-settings: 'opsz' 90, 'SOFT' 70;
}
.se-guests--home .se-guests__title-flourish {
	width: clamp(180px, 22vw, 280px);
	height: auto;
	color: var(--color-gold);
}
.se-guests--home .se-guests__intro {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
	margin: 0;
	max-width: 56ch;
	font-variation-settings: 'opsz' 32, 'SOFT' 60;
}
/* --- Carrousel home (track scroll-snap + boutons + dots) ---------- */
.se-guests--home .se-guests__carousel {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(4px, 1vw, 12px);
}
.se-guests--home .se-guests__viewport {
	overflow-x: auto;
	overflow-y: visible;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 0 12px;
	margin: -4px 0 -12px;
}
.se-guests--home .se-guests__viewport::-webkit-scrollbar { display: none; }
.se-guests--home .se-guests__track {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: clamp(16px, 2vw, 28px);
	align-items: stretch;
}
.se-guests--home .se-guests__item {
	margin: 0;
	display: flex;
	flex: 0 0 100%;
	scroll-snap-align: start;
	min-width: 0;
}
@media (min-width: 640px) {
	.se-guests--home .se-guests__item {
		flex-basis: calc(50% - clamp(16px, 2vw, 28px) / 2);
	}
}
@media (min-width: 960px) {
	.se-guests--home .se-guests__item {
		flex-basis: calc(33.3333% - clamp(16px, 2vw, 28px) * 2 / 3);
	}
}

.se-guests--home .se-guests__nav {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-grid;
	place-items: center;
	background: var(--color-cream);
	color: var(--color-night);
	border: 1px solid color-mix(in srgb, var(--color-gold) 45%, transparent);
	box-shadow: 0 12px 28px -16px color-mix(in srgb, var(--color-night) 60%, transparent);
	cursor: pointer;
	flex-shrink: 0;
	transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease, opacity .25s ease;
}
.se-guests--home .se-guests__nav:hover {
	background: var(--color-night);
	color: var(--color-cream);
	border-color: var(--color-night);
	transform: translateY(-1px);
}
.se-guests--home .se-guests__nav:disabled {
	opacity: .35;
	cursor: not-allowed;
	transform: none;
}
.se-guests--home .se-guests__nav[hidden] { display: none; }
@media (max-width: 639px) {
	.se-guests--home .se-guests__nav { display: none; }
}

.se-guests--home .se-guests__dots {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin: clamp(20px, 2.5vw, 32px) 0 0;
	padding: 0;
}
.se-guests--home .se-guests__dots[hidden] { display: none; }
.se-guests--home .se-guests__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--color-night) 30%, transparent);
	border: 0;
	padding: 0;
	cursor: pointer;
	transition: background .25s ease, transform .25s ease;
}
.se-guests--home .se-guests__dot:hover {
	background: color-mix(in srgb, var(--color-night) 60%, transparent);
}
.se-guests--home .se-guests__dot.is-active {
	background: var(--color-burgundy);
	transform: scale(1.35);
}

.se-guests--home .se-guests__card {
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 60%, #ffffff 40%) 0%,
			color-mix(in srgb, var(--color-cream) 92%, transparent) 100%);
	border: 1px solid color-mix(in srgb, var(--color-gold) 30%, transparent);
	box-shadow: 0 18px 36px -28px color-mix(in srgb, var(--color-night) 60%, transparent);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.se-guests--home .se-guests__card:hover {
	transform: translateY(-4px);
	border-color: color-mix(in srgb, var(--color-gold) 60%, transparent);
	box-shadow: 0 26px 44px -22px color-mix(in srgb, var(--color-night) 65%, transparent);
}

/* --- VARIANT PAGE (page /invites/ — liste complete codex) --------------- */
.se-guests--page .se-guests__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(20px, 2.5vw, 32px);
}
@media (min-width: 640px) {
	.se-guests--page .se-guests__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 960px) {
	.se-guests--page .se-guests__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.se-guests--page .se-guests__item {
	margin: 0;
	display: flex;
}
.se-guests--page .se-guests__card {
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 60%, #ffffff 40%) 0%,
			color-mix(in srgb, var(--color-cream) 92%, transparent) 100%);
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	box-shadow: 0 18px 36px -28px color-mix(in srgb, var(--color-night) 60%, transparent);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.se-guests--page .se-guests__card:hover {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--color-gold) 65%, transparent);
}

/* --- VARIANT CONGRES (cartes editoriales codex) ------------------------ */
.se-guests--congres {
	margin: clamp(40px, 5vw, 72px) 0 0;
}
.se-guests--congres .se-guests__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	text-align: center;
	margin: 0 auto clamp(28px, 3.5vw, 48px);
	max-width: 60ch;
}
.se-guests--congres .se-guests__ornament {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--color-gold);
}
.se-guests--congres .se-guests__ornament-rule {
	width: clamp(40px, 6vw, 72px);
	height: 1px;
	background: color-mix(in srgb, var(--color-gold) 70%, transparent);
}
.se-guests--congres .se-guests__ornament-diamond {
	width: 6px;
	height: 6px;
	transform: rotate(45deg);
	background: var(--color-gold);
	display: inline-block;
}
.se-guests--congres .se-guests__kicker {
	font-family: var(--font-eyebrow);
	font-size: 12px;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 80%, transparent);
}
.se-guests--congres .se-guests__intro {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
	margin: 0;
	font-variation-settings: 'opsz' 32, 'SOFT' 60;
}
.se-guests--congres .se-guests__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(20px, 2.5vw, 32px);
}
@media (min-width: 720px) {
	.se-guests--congres .se-guests__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 1080px) {
	.se-guests--congres .se-guests__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.se-guests--congres.se-guests--n2 .se-guests__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.se-guests--congres.se-guests--n4 .se-guests__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
.se-guests--congres .se-guests__item {
	margin: 0;
	display: flex;
}
.se-guests--congres .se-guests__card {
	background:
		linear-gradient(180deg,
			color-mix(in srgb, var(--color-cream) 70%, #ffffff 30%) 0%,
			color-mix(in srgb, var(--color-cream) 92%, transparent) 100%);
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	box-shadow:
		0 1px 0 0 color-mix(in srgb, var(--color-gold) 18%, transparent) inset,
		0 20px 40px -28px color-mix(in srgb, var(--color-night) 60%, transparent);
}
.se-guests--congres .se-guests__card-corner {
	position: absolute;
	width: 14px;
	height: 14px;
	border: 1px solid var(--color-gold);
	pointer-events: none;
}
.se-guests--congres .se-guests__card-corner--tl { top: -1px;    left: -1px;  border-right: 0; border-bottom: 0; }
.se-guests--congres .se-guests__card-corner--tr { top: -1px;    right: -1px; border-left: 0;  border-bottom: 0; }
.se-guests--congres .se-guests__card-corner--bl { bottom: -1px; left: -1px;  border-right: 0; border-top: 0; }
.se-guests--congres .se-guests__card-corner--br { bottom: -1px; right: -1px; border-left: 0;  border-top: 0; }

/* ============================================================================
   PAGE HOTELS — Codex editorial
   ============================================================================ */
.se-codex--hotels-page { background: var(--color-cream); }

.se-codex__container--hotels-page {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: none;
	gap: clamp(36px, 4.5vw, 64px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--hotels-page .se-codex__rail { display: none; }
.se-codex--hotels-page .se-codex__header,
.se-codex--hotels-page .se-codex__signature { grid-area: auto; }

@media (min-width: 980px) {
	.se-codex__container--hotels-page {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas: none;
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--hotels-page .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex--hotels-page .se-codex__container--hotels-page > :not(.se-codex__rail) {
		grid-column: 2;
	}
}

.se-codex-hotels-page__lead {
	max-width: 64ch;
	margin: 0 auto var(--space-7);
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.75;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
}

/* === Liste des hotels =================================================== */
.se-codex-hotels-page__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(var(--space-5), 4vw, var(--space-6));
	margin: 0;
}
@media (min-width: 880px) {
	.se-codex-hotels-page__list:not(.se-codex-hotels-page__list--embedded) {
		grid-template-columns: 1fr;
	}
}

.se-codex-hotels-page__empty {
	text-align: center;
	padding: var(--space-7) var(--space-4);
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
	font-family: var(--font-body);
	font-style: italic;
}

/* === Carte hotel ========================================================= */
.se-hotel-card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	background: var(--color-paper, #fdfaf2);
	border: 1px solid color-mix(in srgb, var(--color-night) 14%, transparent);
	border-radius: 4px;
	overflow: hidden;
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
	box-shadow: 0 2px 6px -3px rgba(0,0,0,.08);
}
.se-hotel-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 24px 40px -24px rgba(0,0,0,.18);
	border-color: color-mix(in srgb, var(--color-gold) 55%, transparent);
}
@media (min-width: 720px) {
	.se-hotel-card { grid-template-columns: minmax(0, 38%) minmax(0, 1fr); }
}

.se-hotel-card__corner {
	position: absolute;
	width: 14px; height: 14px;
	border: 1px solid color-mix(in srgb, var(--color-gold) 70%, transparent);
	z-index: 2;
	pointer-events: none;
}
.se-hotel-card__corner--tl { top: 8px; left: 8px;  border-right: 0; border-bottom: 0; }
.se-hotel-card__corner--tr { top: 8px; right: 8px; border-left: 0;  border-bottom: 0; }
.se-hotel-card__corner--bl { bottom: 8px; left: 8px;  border-right: 0; border-top: 0; }
.se-hotel-card__corner--br { bottom: 8px; right: 8px; border-left: 0;  border-top: 0; }

/* --- Media (image ou placeholder) --- */
.se-hotel-card__media {
	position: relative;
	background: color-mix(in srgb, var(--color-night) 6%, transparent);
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.se-hotel-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .8s ease;
}
.se-hotel-card:hover .se-hotel-card__media img { transform: scale(1.04); }

.se-hotel-card__media-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: color-mix(in srgb, var(--color-night) 30%, transparent);
}
.se-hotel-card__media-placeholder svg { width: 64px; height: 64px; }

.se-hotel-card__index {
	position: absolute;
	top: 14px; left: 14px;
	font-family: var(--font-heading);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--color-cream);
	background: color-mix(in srgb, var(--color-night) 78%, transparent);
	padding: 3px 8px;
	border-radius: 2px;
	z-index: 1;
}

/* --- Body --- */
.se-hotel-card__body {
	padding: clamp(var(--space-4), 3vw, var(--space-6));
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.se-hotel-card__rating {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold-dark);
	margin: 0;
}

.se-hotel-card__name {
	font-family: var(--font-heading);
	font-size: clamp(1.4rem, 2.2vw, 1.85rem);
	color: var(--color-night);
	margin: 0;
	line-height: 1.15;
	letter-spacing: var(--tracking-tight);
}

.se-hotel-card__meta {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px var(--space-4);
}
.se-hotel-card__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-body);
	font-size: 13px;
	color: color-mix(in srgb, var(--color-night) 72%, transparent);
}
.se-hotel-card__meta-icon {
	display: inline-flex;
	color: var(--color-burgundy);
}
.se-hotel-card__meta-icon svg { width: 15px; height: 15px; }

.se-hotel-card__desc {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.65;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
	margin: 0;
}

.se-hotel-card__perks {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px;
}
@media (min-width: 480px) {
	.se-hotel-card__perks { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-4); }
}
.se-hotel-card__perks li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-family: var(--font-body);
	font-size: 13.5px;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
}
.se-hotel-card__perk-mark {
	flex: 0 0 6px;
	width: 6px; height: 6px;
	margin-top: 8px;
	background: var(--color-gold);
	transform: rotate(45deg);
}

.se-hotel-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	margin-top: auto;
	padding-top: var(--space-3);
	border-top: 1px solid color-mix(in srgb, var(--color-night) 10%, transparent);
}

.se-hotel-card__price {
	font-family: var(--font-heading);
	font-size: 1.05rem;
	font-style: italic;
	color: var(--color-burgundy);
	margin: 0;
}
.se-hotel-card__price--empty { color: transparent; }

.se-hotel-card__actions {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.se-hotel-card__phone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
	text-decoration: none;
	transition: color .2s ease;
}
.se-hotel-card__phone:hover { color: var(--color-burgundy); }
.se-hotel-card__phone svg { width: 13px; height: 13px; }

.se-hotel-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 18px;
	background: var(--color-night);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--radius-pill);
	border: 1px solid var(--color-night);
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.se-hotel-card__cta:hover {
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
	transform: translateX(2px);
}
.se-hotel-card__cta-arrow {
	font-family: var(--font-heading);
	font-size: 1.1em;
	transition: transform .25s ease;
}
.se-hotel-card__cta:hover .se-hotel-card__cta-arrow { transform: translateX(3px); }

/* === CTA final hotels ==================================================== */
.se-codex-hotels-page__cta {
	position: relative;
	margin: clamp(var(--space-7), 9vw, var(--space-9)) auto 0;
	max-width: 880px;
	padding: clamp(var(--space-6), 6vw, var(--space-8)) clamp(var(--space-4), 4vw, var(--space-6));
	background: color-mix(in srgb, var(--color-night) 4%, var(--color-cream));
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	text-align: center;
}
.se-codex-hotels-page__cta-corner {
	position: absolute;
	width: 16px; height: 16px;
	border: 1.5px solid var(--color-gold);
}
.se-codex-hotels-page__cta-corner--tl { top: -1px; left: -1px;  border-right: 0; border-bottom: 0; }
.se-codex-hotels-page__cta-corner--tr { top: -1px; right: -1px; border-left: 0;  border-bottom: 0; }
.se-codex-hotels-page__cta-corner--bl { bottom: -1px; left: -1px;  border-right: 0; border-top: 0; }
.se-codex-hotels-page__cta-corner--br { bottom: -1px; right: -1px; border-left: 0;  border-top: 0; }

.se-codex-hotels-page__cta-kicker {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
	margin: 0 0 var(--space-2);
}
.se-codex-hotels-page__cta-title {
	font-family: var(--font-heading);
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	color: var(--color-night);
	margin: 0 0 var(--space-3);
	line-height: 1.15;
}
.se-codex-hotels-page__cta-title em {
	font-style: italic;
	color: var(--color-burgundy);
}
.se-codex-hotels-page__cta-text {
	max-width: 56ch;
	margin: 0 auto var(--space-5);
	font-family: var(--font-body);
	line-height: 1.7;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
}
.se-codex-hotels-page__cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	justify-content: center;
	align-items: center;
}
.se-codex-hotels-page__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 22px;
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--radius-pill);
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.se-codex-hotels-page__cta-btn--primary {
	background: var(--color-night);
	color: var(--color-cream);
	border: 1px solid var(--color-night);
}
.se-codex-hotels-page__cta-btn--primary:hover {
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
	transform: translateY(-1px);
}
.se-codex-hotels-page__cta-btn--ghost {
	background: transparent;
	color: var(--color-night);
	border: 1px solid color-mix(in srgb, var(--color-night) 30%, transparent);
}
.se-codex-hotels-page__cta-btn--ghost:hover {
	border-color: var(--color-burgundy);
	color: var(--color-burgundy);
}
.se-codex-hotels-page__cta-arrow {
	font-family: var(--font-heading);
	font-size: 1.1em;
	transition: transform .25s ease;
}
.se-codex-hotels-page__cta-btn:hover .se-codex-hotels-page__cta-arrow { transform: translateX(3px); }

/* ============================================================================
   PAGE SHOP — Codex editorial (archive WooCommerce)
   ============================================================================ */
.se-codex--shop-page { background: var(--color-cream); }

.se-codex__container--shop-page {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: none;
	gap: clamp(36px, 4.5vw, 64px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--shop-page .se-codex__rail { display: none; }
/* Annule les grid-area "header"/"signature" herites de .se-codex__container parent —
   sinon le signature atterrit au milieu de la grille (en row "signature" invalide). */
.se-codex--shop-page .se-codex__header,
.se-codex--shop-page .se-codex__signature { grid-area: auto; }
/* WooCommerce ajoute un .woocommerce-notices-wrapper vide quand il n'y a pas de notice :
   on le masque pour qu'il ne reserve pas une row inutile dans le grid. */
.se-codex--shop-page .woocommerce-notices-wrapper:empty { display: none; }
/* Le rail est volontairement compact sur /shop/ : un thread sobre et pas de byline rotated.
   Sinon son intrinsic height (~480px) inflate la row 2 (promo banner) via le grid track-sizing. */
.se-codex--shop-page .se-codex__thread { flex-grow: 0; gap: 6px; padding: 6px 0; }
.se-codex--shop-page .se-codex__thread-line { flex: 0 0 18px; min-height: 18px; }
.se-codex--shop-page .se-codex__rail-byline { display: none; }

@media (min-width: 980px) {
	.se-codex__container--shop-page {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas: none;
		grid-template-rows: min-content;
		grid-auto-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--shop-page .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 1 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex--shop-page .se-codex__container--shop-page > :not(.se-codex__rail) {
		grid-column: 2;
		align-self: start;
	}
	.se-codex--shop-page .se-codex__header { grid-row: 1; }
}

.se-codex-shop-page__lead {
	max-width: 64ch;
	margin: 0 auto var(--space-7);
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.75;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
}

/* Reset des styles WooCommerce indesirables sur l'archive --------------- */
.woocommerce-shop .woocommerce-breadcrumb,
.woocommerce-shop .woocommerce-products-header,
.woocommerce-shop .woocommerce-result-count,
.woocommerce-shop .woocommerce-ordering { display: none; }
.woocommerce-shop .woocommerce-notices-wrapper { margin: 0 0 var(--space-4); }

.se-codex-shop-page__products { margin: 0; }

ul.se-shop-grid.products {
	display: grid;
	/* auto-fill (pas auto-fit) : garde les tracks vides pour qu'une section a un seul
	   produit ne fasse pas exploser la largeur de la carte. */
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: clamp(var(--space-5), 4vw, var(--space-7));
	list-style: none;
	padding: 0;
	margin: 0;
	max-width: none;
}
/* Cas particulier : un seul produit dans la categorie → la carte est centree sur la ligne. */
ul.se-shop-grid.products:has(> .se-product-card:only-child) {
	grid-template-columns: minmax(280px, 360px);
	justify-content: center;
}
/* Neutralise les pseudos clearfix de WooCommerce qui pollue la grille (fantomes en col 1) */
ul.se-shop-grid.products::before,
ul.se-shop-grid.products::after {
	content: none !important;
	display: none !important;
}

.se-codex-shop-page__empty {
	text-align: center;
	padding: var(--space-7) var(--space-4);
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
	font-family: var(--font-body);
	font-style: italic;
}

/* === Bandeau code promo ================================================ */
.se-codex-shop-page__promo {
	display: flex;
	align-items: center;
	gap: clamp(14px, 1.8vw, 20px);
	padding: clamp(14px, 1.8vw, 18px) clamp(16px, 2.4vw, 24px);
	margin: 0;
	background: color-mix(in srgb, var(--color-gold) 12%, var(--color-cream));
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	box-shadow: inset 4px 0 0 0 var(--color-gold);
}
.se-codex-shop-page__promo-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--color-gold) 30%, transparent);
	color: var(--color-burgundy);
}
.se-codex-shop-page__promo-text {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(13px, 1.2vw, 14px);
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 85%, transparent);
}
.se-codex-shop-page__promo-text strong {
	font-family: var(--font-eyebrow);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-size: 11px;
	color: var(--color-burgundy);
	margin-right: 8px;
}
@media (max-width: 560px) {
	.se-codex-shop-page__promo { align-items: flex-start; }
	.se-codex-shop-page__promo-text strong {
		display: block;
		margin: 0 0 6px;
	}
}

/* === Section de categorie ============================================== */
.se-codex-shop-page__group {
	margin: 0 0 clamp(48px, 6vw, 80px);
}
.se-codex-shop-page__group:last-child {
	margin-bottom: 0;
}
.se-codex-shop-page__group-head {
	text-align: center;
	margin: 0 0 clamp(28px, 3.6vw, 44px);
}
.se-codex-shop-page__group-overline {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin-bottom: clamp(12px, 1.4vw, 16px);
}
.se-codex-shop-page__group-rule {
	display: inline-block;
	width: clamp(28px, 4vw, 56px);
	height: 1px;
	background: linear-gradient(to right,
		transparent,
		color-mix(in srgb, var(--color-gold) 70%, transparent),
		transparent);
}
.se-codex-shop-page__group-eyebrow {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 78%, transparent);
}
.se-codex-shop-page__group-title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-style: italic;
	font-size: clamp(28px, 3.4vw, 40px);
	letter-spacing: -.01em;
	color: var(--color-burgundy);
	margin: 0 0 clamp(8px, 1vw, 12px);
	font-variation-settings: 'opsz' 48, 'SOFT' 60;
}
.se-codex-shop-page__group-intro {
	max-width: 640px;
	margin: 0 auto;
	font-family: var(--font-body);
	font-size: clamp(14px, 1.2vw, 16px);
	line-height: 1.6;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
}

/* Placeholders colores par categorie : on cible la grille via data-shop-cat
   pour donner une identite visuelle a chaque famille de produits. */
.se-shop-grid[data-shop-cat="pass"] .se-product-card__placeholder {
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--color-burgundy) 92%, #000) 0%,
		var(--color-burgundy) 100%);
}
.se-shop-grid[data-shop-cat="evenements"] .se-product-card__placeholder {
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--color-night) 95%, var(--color-burgundy)) 0%,
		color-mix(in srgb, var(--color-night) 80%, var(--color-burgundy) 20%) 100%);
}
.se-shop-grid[data-shop-cat="ateliers"] .se-product-card__placeholder {
	background: linear-gradient(135deg,
		#3a4a3b 0%,
		#2a3a2b 100%);
}
.se-shop-grid[data-shop-cat="gala"] .se-product-card__placeholder {
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--color-gold) 55%, var(--color-burgundy)) 0%,
		var(--color-burgundy) 60%,
		color-mix(in srgb, var(--color-burgundy) 80%, #000) 100%);
}
.se-shop-grid[data-shop-cat="tours"] .se-product-card__placeholder {
	background: linear-gradient(135deg,
		#a0563a 0%,
		#7a3a25 100%);
}
.se-shop-grid[data-shop-cat="boutique"] .se-product-card__placeholder {
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--color-night) 96%, #000) 0%,
		var(--color-night) 100%);
}

/* === Carte produit ====================================================== */
li.se-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--color-paper, #fdfaf2);
	border: 1px solid color-mix(in srgb, var(--color-night) 14%, transparent);
	border-radius: 4px;
	overflow: hidden;
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
	box-shadow: 0 2px 6px -3px rgba(0,0,0,.08);
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
li.se-product-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 24px 40px -24px rgba(0,0,0,.18);
	border-color: color-mix(in srgb, var(--color-gold) 55%, transparent);
}
li.se-product-card.is-featured { border-color: var(--color-gold); }

.se-product-card__corner {
	position: absolute;
	width: 14px; height: 14px;
	border: 1px solid color-mix(in srgb, var(--color-gold) 70%, transparent);
	z-index: 3;
	pointer-events: none;
}
.se-product-card__corner--tl { top: 8px; left: 8px;  border-right: 0; border-bottom: 0; }
.se-product-card__corner--tr { top: 8px; right: 8px; border-left: 0;  border-bottom: 0; }
.se-product-card__corner--bl { bottom: 8px; left: 8px;  border-right: 0; border-top: 0; }
.se-product-card__corner--br { bottom: 8px; right: 8px; border-left: 0;  border-top: 0; }

.se-product-card__ribbon {
	position: absolute;
	top: 12px; left: 50%;
	transform: translateX(-50%);
	z-index: 4;
	background: var(--color-gold);
	color: var(--color-night);
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	padding: 4px 12px;
	border-radius: var(--radius-pill);
}

.se-product-card__sale {
	position: absolute;
	top: 12px; right: 12px;
	z-index: 4;
	background: var(--color-burgundy);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 2px;
}

/* --- Media --- */
.se-product-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: color-mix(in srgb, var(--color-night) 6%, transparent);
	text-decoration: none;
}
.se-product-card__img,
.se-product-card .se-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .8s ease;
}
li.se-product-card:hover .se-product-card__img,
li.se-product-card:hover .se-product-card__media img { transform: scale(1.04); }

/* Placeholder decoratif quand le produit n'a pas d'image */
.se-product-card__placeholder {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(ellipse at 30% 25%, color-mix(in srgb, var(--color-gold) 16%, transparent) 0%, transparent 55%),
		linear-gradient(135deg,
			color-mix(in srgb, var(--color-night) 96%, transparent) 0%,
			color-mix(in srgb, var(--color-burgundy) 70%, var(--color-night) 30%) 100%);
	overflow: hidden;
}
.se-product-card__placeholder-pattern {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(45deg, transparent 48%, color-mix(in srgb, var(--color-gold) 12%, transparent) 49%, color-mix(in srgb, var(--color-gold) 12%, transparent) 51%, transparent 52%),
		linear-gradient(-45deg, transparent 48%, color-mix(in srgb, var(--color-gold) 8%, transparent) 49%, color-mix(in srgb, var(--color-gold) 8%, transparent) 51%, transparent 52%);
	background-size: 22px 22px;
	opacity: .7;
	pointer-events: none;
}
.se-product-card__placeholder-seal {
	position: absolute;
	top: 50%;
	left: 50%;
	width: clamp(110px, 22vw, 150px);
	height: clamp(110px, 22vw, 150px);
	transform: translate(-50%, -50%);
	color: color-mix(in srgb, var(--color-gold) 70%, transparent);
}
.se-product-card__placeholder-seal svg {
	width: 100%;
	height: 100%;
	display: block;
}
.se-product-card__placeholder-letter {
	position: relative;
	z-index: 1;
	font-family: var(--font-heading);
	font-size: clamp(2.6rem, 6vw, 3.6rem);
	font-style: italic;
	color: var(--color-cream);
	letter-spacing: var(--tracking-tight);
	line-height: 1;
}
.se-product-card__placeholder-byline {
	position: absolute;
	bottom: 14px;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--font-eyebrow);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-gold) 85%, transparent);
}
.se-product-card__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, transparent 50%, color-mix(in srgb, var(--color-night) 18%, transparent));
	pointer-events: none;
}
/* Pas de voile additionnel sur le placeholder (il est deja sombre) */
li.se-product-card:not(.has-image) .se-product-card__veil { display: none; }
li.se-product-card:not(.has-image) .se-product-card__index {
	background: color-mix(in srgb, var(--color-cream) 18%, transparent);
	color: var(--color-cream);
	backdrop-filter: blur(4px);
}
.se-product-card__index {
	position: absolute;
	top: 14px; left: 14px;
	z-index: 1;
	font-family: var(--font-heading);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--color-cream);
	background: color-mix(in srgb, var(--color-night) 78%, transparent);
	padding: 3px 8px;
	border-radius: 2px;
}

/* --- Body --- */
.se-product-card__body {
	padding: clamp(var(--space-4), 3vw, var(--space-5));
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	flex: 1;
}

.se-product-card__overline {
	font-family: var(--font-eyebrow);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
	margin: 0;
}
.se-product-card__overline a {
	color: inherit;
	text-decoration: none;
}
.se-product-card__overline a:hover { color: var(--color-gold-dark); }

.se-product-card__title {
	font-family: var(--font-heading);
	font-size: clamp(1.3rem, 2vw, 1.65rem);
	color: var(--color-night);
	margin: 0;
	line-height: 1.15;
	letter-spacing: var(--tracking-tight);
}
.se-product-card__title a {
	color: inherit;
	text-decoration: none;
	background: none;
}
.se-product-card__title a:hover { color: var(--color-burgundy); }

.se-product-card__inclus {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.se-product-card__inclus li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-family: var(--font-body);
	font-size: 13.5px;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
}
.se-product-card__inclus-mark {
	flex: 0 0 6px;
	width: 6px; height: 6px;
	margin-top: 8px;
	background: var(--color-gold);
	transform: rotate(45deg);
}

.se-product-card__short {
	font-family: var(--font-body);
	font-size: 14px;
	line-height: 1.55;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
}
.se-product-card__short p { margin: 0; }

.se-product-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	margin-top: auto;
	padding-top: var(--space-3);
	border-top: 1px solid color-mix(in srgb, var(--color-night) 10%, transparent);
}

.se-product-card__price {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-style: italic;
	color: var(--color-burgundy);
	margin: 0;
}
.se-product-card__price .woocommerce-Price-amount { color: inherit; }
.se-product-card__price del { color: color-mix(in srgb, var(--color-night) 40%, transparent); font-size: 0.85em; margin-right: 6px; }
.se-product-card__price ins { background: none; text-decoration: none; }

.se-product-card__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.se-product-card__view {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 70%, transparent);
	text-decoration: none;
	padding: 4px 0;
	border-bottom: 1px solid transparent;
	transition: color .2s ease, border-color .2s ease;
}
.se-product-card__view:hover {
	color: var(--color-burgundy);
	border-color: var(--color-burgundy);
}

/* Override du bouton add-to-cart natif WC pour qu'il porte notre style codex */
.se-product-card__cart-wrap .button,
.se-product-card__cart-wrap .se-product-card__cart {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 10px 16px !important;
	background: var(--color-night) !important;
	color: var(--color-cream) !important;
	font-family: var(--font-eyebrow) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	text-decoration: none !important;
	border-radius: var(--radius-pill) !important;
	border: 1px solid var(--color-night) !important;
	margin: 0 !important;
	line-height: 1.2;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.se-product-card__cart-wrap .button:hover,
.se-product-card__cart-wrap .se-product-card__cart:hover {
	background: var(--color-gold) !important;
	color: var(--color-night) !important;
	border-color: var(--color-gold) !important;
	transform: translateX(2px);
}
.se-product-card__cart-wrap .added_to_cart {
	display: inline-flex;
	margin-left: 10px;
	font-family: var(--font-eyebrow);
	font-size: 10px;
	color: var(--color-gold-dark);
	text-transform: uppercase;
	letter-spacing: var(--tracking-eyebrow);
}

/* Loading state */
.se-product-card__cart-wrap .button.loading::after {
	border-color: currentColor;
	border-top-color: transparent;
}

/* === Pagination =========================================================== */
.woocommerce-shop .woocommerce-pagination,
.se-codex-shop-page__products .woocommerce-pagination {
	margin-top: var(--space-7);
	text-align: center;
}
.woocommerce-shop .woocommerce-pagination ul {
	display: inline-flex;
	gap: 4px;
	border: none !important;
	padding: 0;
	margin: 0;
}
.woocommerce-shop .woocommerce-pagination ul li {
	border: none !important;
}
.woocommerce-shop .woocommerce-pagination ul li a,
.woocommerce-shop .woocommerce-pagination ul li span {
	font-family: var(--font-eyebrow) !important;
	font-size: 12px !important;
	letter-spacing: var(--tracking-eyebrow);
	padding: 10px 14px !important;
	background: transparent !important;
	color: var(--color-night) !important;
	border: 1px solid color-mix(in srgb, var(--color-night) 20%, transparent) !important;
	border-radius: var(--radius-pill);
}
.woocommerce-shop .woocommerce-pagination ul li span.current {
	background: var(--color-night) !important;
	color: var(--color-cream) !important;
	border-color: var(--color-night) !important;
}

/* === CTA final shop ====================================================== */
.se-codex-shop-page__cta {
	position: relative;
	margin: clamp(var(--space-7), 9vw, var(--space-9)) auto 0;
	max-width: 880px;
	padding: clamp(var(--space-6), 6vw, var(--space-8)) clamp(var(--space-4), 4vw, var(--space-6));
	background: color-mix(in srgb, var(--color-night) 4%, var(--color-cream));
	border: 1px solid color-mix(in srgb, var(--color-gold) 35%, transparent);
	text-align: center;
}
.se-codex-shop-page__cta-corner {
	position: absolute;
	width: 16px; height: 16px;
	border: 1.5px solid var(--color-gold);
}
.se-codex-shop-page__cta-corner--tl { top: -1px; left: -1px;  border-right: 0; border-bottom: 0; }
.se-codex-shop-page__cta-corner--tr { top: -1px; right: -1px; border-left: 0;  border-bottom: 0; }
.se-codex-shop-page__cta-corner--bl { bottom: -1px; left: -1px;  border-right: 0; border-top: 0; }
.se-codex-shop-page__cta-corner--br { bottom: -1px; right: -1px; border-left: 0;  border-top: 0; }

.se-codex-shop-page__cta-kicker {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
	margin: 0 0 var(--space-2);
}
.se-codex-shop-page__cta-title {
	font-family: var(--font-heading);
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	color: var(--color-night);
	margin: 0 0 var(--space-3);
	line-height: 1.15;
}
.se-codex-shop-page__cta-title em {
	font-style: italic;
	color: var(--color-burgundy);
}
.se-codex-shop-page__cta-text {
	max-width: 56ch;
	margin: 0 auto var(--space-5);
	font-family: var(--font-body);
	line-height: 1.7;
	color: color-mix(in srgb, var(--color-night) 80%, transparent);
}
.se-codex-shop-page__cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	justify-content: center;
	align-items: center;
}
.se-codex-shop-page__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 22px;
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--radius-pill);
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.se-codex-shop-page__cta-btn--primary {
	background: var(--color-night);
	color: var(--color-cream);
	border: 1px solid var(--color-night);
}
.se-codex-shop-page__cta-btn--primary:hover {
	background: var(--color-gold);
	color: var(--color-night);
	border-color: var(--color-gold);
	transform: translateY(-1px);
}
.se-codex-shop-page__cta-btn--ghost {
	background: transparent;
	color: var(--color-night);
	border: 1px solid color-mix(in srgb, var(--color-night) 30%, transparent);
}
.se-codex-shop-page__cta-btn--ghost:hover {
	border-color: var(--color-burgundy);
	color: var(--color-burgundy);
}
.se-codex-shop-page__cta-arrow {
	font-family: var(--font-heading);
	font-size: 1.1em;
	transition: transform .25s ease;
}
.se-codex-shop-page__cta-btn:hover .se-codex-shop-page__cta-arrow { transform: translateX(3px); }

/* === Section "Hebergement" embed sur la page Shop ====================== */
.se-codex-shop-page__hotels {
	margin: 0;
}

.se-codex-shop-page__section-head {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2);
	text-align: center;
	margin: 0 auto var(--space-6);
	max-width: 56ch;
}

.se-codex-shop-page__section-kicker {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
	margin: 0;
}

.se-codex-shop-page__section-title {
	font-family: var(--font-heading);
	font-size: clamp(1.7rem, 3.8vw, 2.6rem);
	color: var(--color-night);
	line-height: 1.1;
	letter-spacing: var(--tracking-tight);
	margin: 0;
}
.se-codex-shop-page__section-title em {
	font-style: italic;
	color: var(--color-burgundy);
}

.se-codex-shop-page__section-rule {
	display: inline-block;
	width: 56px;
	height: 1px;
	background: var(--color-gold);
	margin: var(--space-2) auto 0;
}

.se-codex-shop-page__section-text {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.7;
	color: color-mix(in srgb, var(--color-night) 78%, transparent);
	margin: var(--space-3) auto 0;
}

/* Variante embedded : 2 colonnes desktop, cards verticales (image + body stack) */
.se-codex-hotels-page__list--embedded {
	grid-template-columns: 1fr;
	max-width: none;
}
@media (min-width: 720px) {
	.se-codex-hotels-page__list--embedded {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Dans la variante embedded, les cards repassent en stack vertical (image au-dessus). */
.se-codex-hotels-page__list--embedded .se-hotel-card {
	grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 1024px) {
	.se-codex-hotels-page__list--embedded .se-hotel-card {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ============================================================================
   PAGES À propos / Le congrès — Codex editorial (meme pattern container)
   ============================================================================ */
.se-codex--apropos-page,
.se-codex--congres-page { background: var(--color-cream); }

.se-codex--invites-page { background: var(--color-cream); }

.se-codex__container--apropos-page,
.se-codex__container--congres-page,
.se-codex__container--invites-page {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: none;
	gap: clamp(36px, 4.5vw, 64px);
	max-width: 1240px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--apropos-page .se-codex__rail,
.se-codex--congres-page .se-codex__rail,
.se-codex--invites-page .se-codex__rail { display: none; }

/* Reset grid-area "header"/"signature" herites de .se-codex__container parent —
   sinon header/signature pointent vers des areas non definies dans nos containers
   --apropos-page / --congres-page / --invites-page et tombent en derniere position. */
.se-codex--apropos-page .se-codex__header,
.se-codex--apropos-page .se-codex__signature,
.se-codex--congres-page .se-codex__header,
.se-codex--congres-page .se-codex__signature,
.se-codex--invites-page .se-codex__header,
.se-codex--invites-page .se-codex__signature {
	grid-area: auto;
}

@media (min-width: 980px) {
	.se-codex__container--apropos-page,
	.se-codex__container--congres-page,
	.se-codex__container--invites-page {
		grid-template-columns: 76px minmax(0, 1fr);
		grid-template-areas: none;
		grid-template-rows: min-content;
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(36px, 4.5vw, 56px);
	}
	.se-codex--apropos-page .se-codex__rail,
	.se-codex--congres-page .se-codex__rail,
	.se-codex--invites-page .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex--apropos-page .se-codex__container--apropos-page > :not(.se-codex__rail),
	.se-codex--congres-page .se-codex__container--congres-page > :not(.se-codex__rail),
	.se-codex--invites-page .se-codex__container--invites-page > :not(.se-codex__rail) {
		grid-column: 2;
	}
}

/* Body — corps Gutenberg avec typographie de magazine */
.se-codex-apropos-page__body,
.se-codex-congres-page__body,
.se-codex-invites-page__body {
	max-width: 70ch;
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.75;
	color: color-mix(in srgb, var(--color-night) 86%, transparent);
}
.se-codex-apropos-page__body > * + *,
.se-codex-congres-page__body > * + * { margin-top: clamp(1.1rem, 1.6vw, 1.4rem); }

.se-codex-apropos-page__body h2,
.se-codex-congres-page__body h2 {
	font-family: var(--font-heading);
	font-size: clamp(1.6rem, 2.6vw, 2.2rem);
	color: var(--color-night);
	line-height: 1.2;
	letter-spacing: -.008em;
	margin-top: clamp(var(--space-6), 5vw, var(--space-7));
}
.se-codex-apropos-page__body h2 em,
.se-codex-congres-page__body h2 em { font-style: italic; color: var(--color-burgundy); }

.se-codex-apropos-page__body h3,
.se-codex-congres-page__body h3 {
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 1.9vw, 1.55rem);
	color: var(--color-night);
	line-height: 1.25;
	margin-top: clamp(var(--space-5), 4vw, var(--space-6));
}

.se-codex-apropos-page__body blockquote,
.se-codex-congres-page__body blockquote {
	border-left: 3px solid var(--color-gold);
	padding: var(--space-3) 0 var(--space-3) var(--space-5);
	font-family: var(--font-heading);
	font-style: italic;
	font-size: clamp(1.15rem, 1.7vw, 1.4rem);
	color: var(--color-night);
	line-height: 1.45;
	max-width: 60ch;
}
.se-codex-apropos-page__body blockquote cite,
.se-codex-congres-page__body blockquote cite {
	display: block;
	margin-top: var(--space-2);
	font-family: var(--font-eyebrow);
	font-size: 11px;
	font-style: normal;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
}

.se-codex-apropos-page__body ul,
.se-codex-congres-page__body ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.se-codex-apropos-page__body ul li,
.se-codex-congres-page__body ul li {
	position: relative;
	padding-left: 22px;
	margin: .35em 0;
}
.se-codex-apropos-page__body ul li::before,
.se-codex-congres-page__body ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: .7em;
	width: 7px;
	height: 7px;
	background: var(--color-gold);
	transform: rotate(45deg);
}

.se-codex-apropos-page__body a,
.se-codex-congres-page__body a {
	color: var(--color-burgundy);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--color-gold) 70%, transparent);
	text-underline-offset: 3px;
}
.se-codex-apropos-page__body a:hover,
.se-codex-congres-page__body a:hover {
	text-decoration-color: var(--color-burgundy);
}

.se-codex-apropos-page__body img,
.se-codex-congres-page__body img {
	max-width: 100%;
	height: auto;
	border-radius: 2px;
}


/* ============================================================================
   PAGE LEGAL — Codex sobre (politique confidentialité, CGU, mentions)
   ============================================================================ */
.se-codex--legal { background: var(--color-cream); }

.se-codex__container--legal {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: none;
	gap: clamp(28px, 3.5vw, 48px);
	max-width: 880px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.se-codex--legal .se-codex__rail { display: none; }
.se-codex--legal .se-codex__header,
.se-codex--legal .se-codex__signature { grid-area: auto; }

@media (min-width: 1080px) {
	.se-codex__container--legal {
		grid-template-columns: 76px minmax(0, 1fr);
		column-gap: clamp(36px, 4.5vw, 64px);
		row-gap: clamp(28px, 3.5vw, 44px);
		max-width: 1100px;
	}
	.se-codex--legal .se-codex__rail {
		display: flex;
		grid-column: 1;
		grid-row: 2 / -1;
		align-self: start;
		position: sticky;
		top: calc(72px + 32px);
	}
	.se-codex--legal .se-codex__container--legal > :not(.se-codex__rail) {
		grid-column: 2;
	}
}

.se-legal__updated {
	margin-top: var(--space-3);
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	padding: 6px 14px;
	border: 1px solid color-mix(in srgb, var(--color-burgundy) 22%, transparent);
	border-radius: 999px;
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-night) 70%, transparent);
}
.se-legal__updated-label { opacity: 0.7; }
.se-legal__updated-value { color: var(--color-burgundy); font-weight: 600; }

/* --- Sommaire ---------------------------------------------------------- */
.se-legal__toc {
	border: 1px solid color-mix(in srgb, var(--color-burgundy) 18%, transparent);
	background: color-mix(in srgb, var(--color-cream) 60%, white);
	border-radius: 4px;
	padding: clamp(20px, 3vw, 32px);
	position: relative;
}
.se-legal__toc::before,
.se-legal__toc::after {
	content: "";
	position: absolute;
	width: 14px;
	height: 14px;
	border: 1px solid var(--color-gold);
}
.se-legal__toc::before { top: -1px; left: -1px;   border-right: 0; border-bottom: 0; }
.se-legal__toc::after  { bottom: -1px; right: -1px; border-left: 0;  border-top: 0; }

.se-legal__toc-title {
	margin: 0 0 var(--space-3);
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
}
.se-legal__toc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	counter-reset: legal-toc;
}
@media (min-width: 720px) {
	.se-legal__toc-list { grid-template-columns: 1fr 1fr; column-gap: 28px; }
}
.se-legal__toc-list li { margin: 0; }
.se-legal__toc-list a {
	display: flex;
	align-items: baseline;
	gap: 12px;
	padding: 6px 0;
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	color: var(--color-night);
	text-decoration: none;
	border-bottom: 1px dashed color-mix(in srgb, var(--color-night) 20%, transparent);
	transition: color 0.2s, border-color 0.2s;
}
.se-legal__toc-list a:hover {
	color: var(--color-burgundy);
	border-bottom-color: var(--color-gold);
}
.se-legal__toc-num {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: 0.12em;
	color: var(--color-gold);
	min-width: 22px;
}

/* --- Prose typographique ----------------------------------------------- */
.se-legal__prose {
	font-family: var(--font-body);
	font-size: var(--fs-base);
	line-height: 1.8;
	color: color-mix(in srgb, var(--color-night) 88%, transparent);
	max-width: 70ch;
	margin: 0 auto;
}
.se-legal__prose > * + * { margin-top: 1.1em; }

.se-legal__prose h2 {
	font-family: var(--font-heading);
	font-size: clamp(1.4rem, 2.2vw, 1.85rem);
	line-height: 1.25;
	margin-top: 2.4em;
	margin-bottom: 0.6em;
	color: var(--color-burgundy);
	scroll-margin-top: 96px;
	position: relative;
	padding-left: 22px;
}
.se-legal__prose h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 12px;
	height: 1px;
	background: var(--color-gold);
}
.se-legal__prose h2:first-child { margin-top: 0; }

.se-legal__prose h3 {
	font-family: var(--font-heading);
	font-size: clamp(1.1rem, 1.6vw, 1.3rem);
	line-height: 1.3;
	margin-top: 1.8em;
	margin-bottom: 0.4em;
	color: var(--color-night);
}

.se-legal__prose p { margin: 0; }
.se-legal__prose strong { color: var(--color-night); font-weight: 600; }
.se-legal__prose em { font-style: italic; }

.se-legal__prose a {
	color: var(--color-burgundy);
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--color-gold) 70%, transparent);
	text-underline-offset: 3px;
	transition: text-decoration-color 0.2s;
}
.se-legal__prose a:hover { text-decoration-color: var(--color-burgundy); }

.se-legal__prose ul,
.se-legal__prose ol {
	margin: 0;
	padding-left: 1.4em;
}
.se-legal__prose ul li,
.se-legal__prose ol li { margin: 0.35em 0; }
.se-legal__prose ul li::marker { color: var(--color-gold); }
.se-legal__prose ol li::marker { color: var(--color-burgundy); font-weight: 600; }

.se-legal__prose blockquote {
	margin: 1.4em 0;
	padding: 0.4em 0 0.4em 1.2em;
	border-left: 2px solid var(--color-gold);
	font-style: italic;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
}

.se-legal__prose code {
	font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
	font-size: 0.92em;
	background: color-mix(in srgb, var(--color-burgundy) 6%, transparent);
	padding: 1px 6px;
	border-radius: 3px;
}

.se-legal__prose hr {
	border: 0;
	border-top: 1px solid color-mix(in srgb, var(--color-burgundy) 20%, transparent);
	margin: 2em 0;
}

.se-legal__prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-sm);
}
.se-legal__prose th,
.se-legal__prose td {
	padding: 10px 12px;
	border-bottom: 1px solid color-mix(in srgb, var(--color-night) 14%, transparent);
	text-align: left;
	vertical-align: top;
}
.se-legal__prose th {
	font-family: var(--font-eyebrow);
	font-size: var(--fs-xs);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--color-burgundy);
}


/* =========================================================================
   WOOCOMMERCE — Ajustements couleurs (cart, checkout)
   Aligne les boutons, liens et notices WC sur la palette du theme (bordeaux,
   or, nuit, creme). Aucun changement de layout : structure native WC.
   ========================================================================= */

/* Boutons primaires WC : violet -> bordeaux (scope : .woocommerce wrapper du contenu uniquement) */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order {
	background: var(--color-burgundy);
	color: var(--color-cream);
	border: 0;
	font-weight: 600;
	transition: background 180ms ease, color 180ms ease;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #place_order:hover {
	background: var(--color-night);
	color: var(--color-cream);
}
.woocommerce a.button.alt:focus,
.woocommerce button.button.alt:focus,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus,
.woocommerce-checkout #place_order:focus {
	outline: 0;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-burgundy) 28%, transparent);
}

/* Boutons secondaires (coupon, update cart) : style outline */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	background: transparent;
	color: var(--color-night);
	border: 1px solid var(--color-night);
	font-weight: 600;
	transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--color-night);
	color: var(--color-cream);
	border-color: var(--color-night);
}
/* Les .alt restent prioritaires (deja stylees au-dessus) */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	border: 0;
}

/* Liens dans les notices WC (ex: "Cliquez ici pour entrer votre code") */
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
	color: var(--color-burgundy);
	font-weight: 600;
}
.woocommerce-message a:hover,
.woocommerce-info a:hover,
.woocommerce-error a:hover {
	color: var(--color-night);
}

/* Notices : barres laterales colorees */
.woocommerce-message {
	border-top-color: var(--color-gold) !important;
}
.woocommerce-info {
	border-top-color: var(--color-burgundy) !important;
}
.woocommerce-error {
	border-top-color: var(--color-danger) !important;
}
.woocommerce-message::before { color: var(--color-gold); }
.woocommerce-info::before { color: var(--color-burgundy); }
.woocommerce-error::before { color: var(--color-danger); }

/* Liens dans le contenu WC (politique, retour boutique, "cliquez ici"). Scope : .woocommerce uniquement, pas tout le body */
.woocommerce a:not(.button):not([class*="se-button"]):not([class*="se-header"]):not([class*="se-footer"]) {
	color: var(--color-burgundy);
}
.woocommerce a:not(.button):not([class*="se-button"]):not([class*="se-header"]):not([class*="se-footer"]):hover {
	color: var(--color-night);
}
/* Sauf : titres produits dans le tableau (gardent la couleur normale) */
.woocommerce .shop_table .product-name a {
	color: var(--color-text);
}
.woocommerce .shop_table .product-name a:hover {
	color: var(--color-burgundy);
}

/* Bouton "retirer" (X) dans le tableau panier */
.woocommerce-cart .shop_table .product-remove a.remove {
	color: var(--color-burgundy) !important;
}
.woocommerce-cart .shop_table .product-remove a.remove:hover {
	background: var(--color-burgundy) !important;
	color: var(--color-cream) !important;
}

/* Prix : accent bordeaux sur les sous-totaux */
.woocommerce-cart .shop_table .product-subtotal,
.woocommerce .cart_totals .order-total .amount,
.woocommerce-checkout #order_review .order-total .amount {
	color: var(--color-burgundy);
}

/* Focus visibles sur inputs (cohérent avec le reste du site) */
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-cart input.qty:focus,
.woocommerce-cart input#coupon_code:focus {
	outline: 0;
	border-color: var(--color-burgundy);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-burgundy) 14%, transparent);
}

/* Ligne actions du panier : coupon + boutons bien alignes */
.woocommerce-cart .shop_table.cart td.actions {
	padding: 18px 14px;
	background: color-mix(in srgb, var(--color-cream) 92%, #fff);
	border-top: 1px solid color-mix(in srgb, var(--color-night) 8%, transparent);
}
.woocommerce-cart .shop_table.cart td.actions .coupon {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin: 0;
	float: none;
}
.woocommerce-cart .shop_table.cart td.actions .coupon label.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	margin: -1px;
}
.woocommerce-cart .shop_table.cart td.actions .coupon #coupon_code {
	width: 220px;
	min-width: 0;
	padding: 10px 14px;
	border: 1px solid color-mix(in srgb, var(--color-night) 18%, transparent);
	border-radius: 3px;
	background: #fff;
	font-family: var(--font-body);
	font-size: 14px;
}
.woocommerce-cart .shop_table.cart td.actions .coupon #coupon_code:focus {
	outline: 0;
	border-color: var(--color-burgundy);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-burgundy) 14%, transparent);
}
.woocommerce-cart .shop_table.cart td.actions .coupon button[name="apply_coupon"] {
	padding: 10px 18px;
	font-size: 13px;
	white-space: nowrap;
}
.woocommerce-cart .shop_table.cart td.actions button[name="update_cart"] {
	float: right;
	margin-left: 16px;
	padding: 10px 18px;
	font-size: 13px;
}
@media (max-width: 640px) {
	.woocommerce-cart .shop_table.cart td.actions { display: flex; flex-direction: column; gap: 12px; align-items: stretch; }
	.woocommerce-cart .shop_table.cart td.actions .coupon { display: flex; flex-direction: column; gap: 10px; width: 100%; }
	.woocommerce-cart .shop_table.cart td.actions .coupon #coupon_code { width: 100%; flex: none; }
	.woocommerce-cart .shop_table.cart td.actions .coupon button[name="apply_coupon"] { width: 100%; white-space: normal; }
	.woocommerce-cart .shop_table.cart td.actions button[name="update_cart"] { float: none; width: 100%; margin-left: 0; }
}

/* ==========================================================================
   SUBMISSION FORM — formulaire generique de soumission publique
   (orateurs, sponsors, artistes, benevoles...)
   ========================================================================== */

.se-submission {
	max-width: 760px;
	margin: clamp(32px, 5vw, 64px) auto;
	padding: 0 clamp(16px, 4vw, 24px);
}

.se-submission-form {
	display: grid;
	gap: clamp(20px, 2.4vw, 28px);
	padding: clamp(24px, 3vw, 40px);
	background: color-mix(in srgb, var(--color-cream) 98%, #fff);
	position: relative;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
		0 18px 48px -28px color-mix(in srgb, var(--color-burgundy) 35%, transparent);
}
.se-submission-form::before,
.se-submission-form::after {
	content: '';
	position: absolute;
	width: 14px; height: 14px;
	border: 1.5px solid var(--color-gold);
	pointer-events: none;
}
.se-submission-form::before {
	top: 10px; left: 10px;
	border-right: none; border-bottom: none;
}
.se-submission-form::after {
	bottom: 10px; right: 10px;
	border-left: none; border-top: none;
}

.se-submission-form--success,
.se-submission-form--closed {
	padding: clamp(24px, 3vw, 40px);
	background: color-mix(in srgb, var(--color-cream) 98%, #fff);
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent);
	font-family: var(--font-heading);
	color: var(--color-burgundy);
	font-size: 1.05rem;
}
.se-submission-form--success { border-left: 3px solid var(--color-gold); }
.se-submission-form--closed  { border-left: 3px solid color-mix(in srgb, var(--color-night) 30%, transparent); }

.se-submission-form__group {
	display: grid;
	gap: 18px;
	border: none;
	padding: 0;
	margin: 0;
}
.se-submission-form__legend {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 80%, transparent);
	font-weight: 700;
	padding: 0;
	margin: 0 0 4px;
}
.se-submission-form__hint {
	margin: -10px 0 6px;
	font-family: var(--font-body);
	font-size: .9rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 60%, transparent);
}

.se-submission-form__row {
	display: grid;
	gap: 6px;
	min-width: 0;
}
.se-submission-form__label {
	font-family: var(--font-eyebrow);
	font-size: 11px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-burgundy) 70%, transparent);
	font-weight: 600;
}
.se-submission-form__required {
	color: var(--color-gold);
	margin-left: 2px;
}
.se-submission-form__input {
	width: 100%;
	padding: 12px 14px;
	background: var(--color-cream);
	border: 1px solid color-mix(in srgb, var(--color-burgundy) 18%, transparent);
	color: var(--color-burgundy);
	font-family: var(--font-heading);
	font-size: 1.02rem;
	line-height: 1.4;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.se-submission-form__input:focus {
	outline: none;
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-gold) 18%, transparent);
	background: #fff;
}
.se-submission-form__input--textarea {
	resize: vertical;
	min-height: 130px;
	font-family: var(--font-body);
	font-size: .98rem;
}
.se-submission-form__input--select {
	background-image:
		linear-gradient(45deg, transparent 50%, var(--color-burgundy) 50%),
		linear-gradient(135deg, var(--color-burgundy) 50%, transparent 50%);
	background-position:
		calc(100% - 18px) 50%,
		calc(100% - 13px) 50%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	padding-right: 36px;
}
.se-submission-form__input--file {
	font-family: var(--font-body);
	font-size: .9rem;
	padding: 10px 12px;
	background: #fff;
	cursor: pointer;
}
.se-submission-form__help {
	font-family: var(--font-body);
	font-size: .82rem;
	color: color-mix(in srgb, var(--color-night) 55%, transparent);
	line-height: 1.4;
}

.se-submission-form__row--consent {
	margin-top: 4px;
}
.se-submission-form__checkbox {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-family: var(--font-body);
	font-size: .92rem;
	line-height: 1.5;
	color: color-mix(in srgb, var(--color-night) 75%, transparent);
	cursor: pointer;
}
.se-submission-form__checkbox input[type="checkbox"] {
	margin-top: 4px;
	width: 18px; height: 18px;
	accent-color: var(--color-burgundy);
	flex: none;
}

.se-submission-form__actions {
	display: flex;
	justify-content: flex-start;
}
.se-submission-form__submit {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 28px;
	background: var(--color-burgundy);
	color: var(--color-cream);
	font-family: var(--font-eyebrow);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	border: none;
	cursor: pointer;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--color-gold) 55%, transparent),
		inset 0 0 0 4px var(--color-burgundy),
		inset 0 0 0 5px color-mix(in srgb, var(--color-gold) 25%, transparent);
	transition: background .25s ease, transform .25s cubic-bezier(.2,.7,.2,1);
}
.se-submission-form__submit:hover,
.se-submission-form__submit:focus-visible {
	background: color-mix(in srgb, var(--color-burgundy) 90%, #000);
	transform: translateY(-2px);
}
.se-submission-form__submit:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
}

.se-submission-form__alert {
	padding: 14px 18px;
	font-family: var(--font-eyebrow);
	font-size: 12.5px;
	letter-spacing: .08em;
	background: color-mix(in srgb, var(--color-danger, #c8102e) 10%, transparent);
	color: var(--color-danger, #c8102e);
	border-left: 3px solid var(--color-danger, #c8102e);
}

