/* =========================================================
   TIZALE — direction « Édition »
   Un prospectus d'école imprimé sur papier crème.
   Serif éditoriale Fraunces · sans Figtree · filets d'un pixel.
   Aucune ombre, aucun arrondi : la hiérarchie vient du blanc
   tournant, du filet et de l'échelle typographique.
   ========================================================= */

/* ---------------------------------------------------------
   1. Jetons
   --------------------------------------------------------- */
:root {
	--paper: #FFFFFF;
	--paper-2: #FAEFE1;
	--paper-3: #F2E3D2;
	--r: 999px;
	--ri: 12px;
	--ink: #4A2C27;
	--ink-2: #6E514A;
	--ink-3: #9A8178;
	--clay: #C18468;
	--clay-2: #9A5B3E;
	--clay-soft: #EBD6C4;
	--brun: #724540;
	--deep: #3A2320;
	--line: rgba(35, 22, 20, .18);
	--line-soft: rgba(35, 22, 20, .085);
	--max: 1320px;
	--pad: clamp(20px, 5vw, 72px);
	--hdr: 82px;
	--ease: cubic-bezier(.22, .61, .36, 1);
	--serif: "Prata", "Iowan Old Style", Georgia, serif;
	--sans: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---------------------------------------------------------
   2. Socle
   --------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

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

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink-2);
	font-family: var(--sans);
	font-size: 1.0625rem;
	line-height: 1.68;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

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

a { color: inherit; }

h1, h2, h3, h4 {
	font-family: var(--serif);
	color: var(--ink);
	font-weight: 400;
	letter-spacing: -.005em;
	margin: 0 0 .5em;
	text-wrap: balance;
}

h1 { font-size: clamp(2.6rem, 5.4vw, 4.9rem); line-height: 1.05; letter-spacing: -.012em; }
h2 { font-size: clamp(1.8rem, 3.1vw, 2.85rem); line-height: 1.16; letter-spacing: -.008em; }
h3 { font-size: clamp(1.22rem, 1.6vw, 1.52rem); line-height: 1.3; letter-spacing: 0; }
h4 {
	font-family: var(--sans);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--clay-2);
	margin: 0 0 .9em;
}

p { margin: 0 0 1.05em; }
p:last-child { margin-bottom: 0; }
.tiz-mb0 { margin-bottom: 0; }

strong, b { font-weight: 600; color: var(--ink); }

::selection { background: var(--clay); color: var(--paper-2); }

.tiz-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--ink);
	color: var(--paper);
	padding: 14px 20px;
	z-index: 999;
	font-size: .9rem;
}
.tiz-skip:focus { left: 12px; top: 12px; }

:focus-visible {
	outline: 2px solid var(--clay);
	outline-offset: 3px;
}

.tiz-wrap {
	width: min(var(--max), 100%);
	margin-inline: auto;
	padding-inline: var(--pad);
}

.tiz-eyebrow {
	display: block;
	font-family: var(--sans);
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--clay-2);
	margin-bottom: 1.1em;
}

.tiz-lead {
	font-size: clamp(1.08rem, 1.35vw, 1.28rem);
	line-height: 1.6;
	color: var(--ink-2);
}

.tiz-badge {
	display: inline-block;
	font-size: .66rem;
	font-weight: 600;
	letter-spacing: .17em;
	text-transform: uppercase;
	color: var(--clay-2);
	border: 1px solid var(--line);
	padding: 7px 15px;
	border-radius: var(--r);
	margin-bottom: 1.6rem;
	background: transparent;
}

/* ---------------------------------------------------------
   3. Boutons
   --------------------------------------------------------- */
.tiz-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--sans);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 16px 30px;
	border: 1px solid var(--brun);
	background: var(--brun);
	color: #FFF;
	border-radius: var(--r);
	cursor: pointer;
	isolation: isolate;
	transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
	overflow: hidden;
}

.tiz-btn::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--clay-2);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .42s var(--ease);
	z-index: -1;
}
.tiz-btn:hover::after { transform: scaleX(1); }
.tiz-btn:hover { border-color: var(--clay-2); color: var(--paper-2); }

.tiz-btn--ghost {
	background: transparent;
	color: var(--brun);
	border-color: var(--clay-soft);
}
.tiz-btn--ghost:hover { color: var(--paper-2); }

.tiz-btn--sm { padding: 12px 22px; font-size: .74rem; }

.tiz-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 2.2rem;
}

/* ---------------------------------------------------------
   4. En-tête
   --------------------------------------------------------- */
.tiz-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 90;
	transition: background .35s var(--ease), border-color .35s var(--ease);
	border-bottom: 1px solid transparent;
}
.tiz-header.is-stuck {
	background: rgba(255, 255, 255, .88);
	backdrop-filter: saturate(140%) blur(14px);
	-webkit-backdrop-filter: saturate(140%) blur(14px);
	border-bottom-color: var(--line-soft);
}

.admin-bar .tiz-header { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .tiz-header { top: 46px; }
}

.tiz-header__in {
	width: min(var(--max), 100%);
	margin-inline: auto;
	padding: 0 var(--pad);
	height: var(--hdr);
	display: flex;
	align-items: center;
	gap: clamp(18px, 3vw, 46px);
}

.tiz-logo {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	text-decoration: none;
}
.tiz-logo__img { height: 38px; width: auto; }
.tiz-logo__txt {
	font-family: var(--serif);
	font-size: 1.45rem;
	letter-spacing: .02em;
	color: var(--ink);
}

.tiz-nav { margin-left: auto; }
.tiz-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2vw, 30px);
	list-style: none;
	margin: 0;
	padding: 0;
}
.tiz-nav__item { position: static; }

.tiz-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--sans);
	font-size: .84rem;
	font-weight: 500;
	letter-spacing: .01em;
	color: var(--ink);
	text-decoration: none;
	padding: 8px 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.tiz-nav__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 1px;
	background: var(--clay);
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform .34s var(--ease);
}
.tiz-nav__link:hover::after,
.tiz-nav__item[data-open="true"] .tiz-nav__link::after { transform: scaleX(1); transform-origin: left center; }

.tiz-nav__chev {
	width: 5px;
	height: 5px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .3s var(--ease);
}
.tiz-nav__item[data-open="true"] .tiz-nav__chev { transform: rotate(225deg) translateY(-2px); }

.tiz-header__act { flex: 0 0 auto; }

/* --- méga-menu --- */
.tiz-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--paper);
	border-top: 1px solid var(--line-soft);
	box-shadow: 0 26px 60px -30px rgba(35, 22, 20, .4);
	animation: tizMega .34s var(--ease) both;
}
.tiz-mega[hidden] { display: none; }

@keyframes tizMega {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: none; }
}

.tiz-mega__in {
	width: min(var(--max), 100%);
	margin-inline: auto;
	padding: clamp(32px, 4vw, 54px) var(--pad);
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 3fr);
	gap: clamp(28px, 4vw, 64px);
}

.tiz-mega__aside { border-right: 1px solid var(--line-soft); padding-right: clamp(20px, 2.5vw, 40px); }
.tiz-mega__pitch {
	font-family: var(--serif);
	font-size: 1.22rem;
	line-height: 1.3;
	color: var(--ink);
	margin-bottom: 1.4em;
}

.tiz-mega__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 30px);
}

.tiz-mega__card {
	display: block;
	text-decoration: none;
	color: inherit;
}
.tiz-mega__thumb {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--paper-3);
	border-radius: var(--ri);
	margin-bottom: 14px;
}
.tiz-mega__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--ease), filter .5s var(--ease);
	filter: saturate(.86);
}
.tiz-mega__card:hover .tiz-mega__thumb img { transform: scale(1.055); filter: saturate(1); }

.tiz-mega__body { display: block; }
.tiz-mega__body strong {
	display: block;
	font-family: var(--serif);
	font-size: 1.04rem;
	font-weight: 400;
	line-height: 1.22;
	color: var(--ink);
	margin-bottom: 5px;
	transition: color .3s var(--ease);
}
.tiz-mega__card:hover .tiz-mega__body strong { color: var(--clay-2); }
.tiz-mega__body em {
	font-style: normal;
	font-size: .76rem;
	letter-spacing: .04em;
	color: var(--ink-3);
}

/* --- burger + tiroir --- */
.tiz-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 42px;
	height: 42px;
	background: none;
	border: 1px solid var(--line);
	border-radius: var(--r);
	cursor: pointer;
	padding: 0 11px;
}
.tiz-burger span {
	display: block;
	height: 1px;
	background: var(--ink);
	transition: transform .3s var(--ease), opacity .2s;
}
.tiz-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.tiz-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tiz-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.tiz-drawer {
	position: fixed;
	inset: var(--hdr) 0 0;
	z-index: 89;
	background: var(--paper);
	padding: 36px var(--pad) 48px;
	overflow-y: auto;
}
.admin-bar .tiz-drawer { top: calc(var(--hdr) + 32px); }
.tiz-drawer[hidden] { display: none; }
.tiz-drawer__list { list-style: none; margin: 0 0 28px; padding: 0; }
.tiz-drawer__list > li { border-bottom: 1px solid var(--line-soft); padding: 16px 0; }
.tiz-drawer__list > li > a {
	font-family: var(--serif);
	font-size: 1.6rem;
	color: var(--ink);
	text-decoration: none;
}
.tiz-drawer__sub { list-style: none; margin: 12px 0 0; padding: 0 0 0 2px; }
.tiz-drawer__sub a {
	display: block;
	padding: 7px 0;
	font-size: .95rem;
	color: var(--ink-3);
	text-decoration: none;
}
.tiz-drawer__cta { width: 100%; }

/* ---------------------------------------------------------
   5. Héros éditorial
   --------------------------------------------------------- */
.tiz-hero {
	position: relative;
	background: var(--paper);
	padding-top: calc(var(--hdr) + clamp(36px, 5vw, 78px));
	padding-bottom: clamp(48px, 6vw, 92px);
	border-bottom: 1px solid var(--line-soft);
	overflow: hidden;
}

.tiz-hero__in {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 36vw);
	align-items: center;
	gap: clamp(32px, 5vw, 86px);
}

.tiz-hero__text {
	padding-left: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)));
	padding-right: clamp(16px, 3vw, 64px);
	width: 100%;
}

.tiz-hero h1 { font-size: clamp(2.4rem, 4.4vw, 4.4rem); margin-bottom: .34em; }

.tiz-hero__lead {
	font-family: var(--sans);
	font-size: clamp(1.06rem, 1.3vw, 1.22rem);
	line-height: 1.6;
	color: var(--ink-2);
	max-width: 36rem;
	margin-bottom: 0;
}

.tiz-hero__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
	gap: 0;
	margin: clamp(26px, 3vw, 40px) 0 0;
	border-top: 1px solid var(--line);
}
.tiz-hero__facts > div {
	padding: 16px 18px 14px 0;
	border-bottom: 1px solid var(--line-soft);
}
.tiz-hero__facts dt {
	font-size: .62rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 7px;
}
.tiz-hero__facts dd {
	margin: 0;
	font-family: var(--serif);
	font-size: 1.06rem;
	line-height: 1.25;
	color: var(--ink);
}

.tiz-hero__note {
	margin-top: 1.8rem;
	font-size: .72rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--ink-3);
}

.tiz-hero__media {
	position: relative;
	margin: 0;
	align-self: stretch;
	min-height: clamp(380px, 54vw, 640px);
	overflow: hidden;
	border-radius: var(--ri) 0 0 var(--ri);
}
.tiz-hero__media img,
.tiz-hero__media video {
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
	object-position: center;
}
.tiz-hero__media::after {
	content: "";
	position: absolute;
	left: -18px;
	top: 18px;
	bottom: 18px;
	width: 1px;
	background: var(--clay);
	opacity: .5;
}

.tiz-hero--plain { padding-bottom: clamp(40px, 5vw, 72px); }
.tiz-hero--plain .tiz-hero__in { grid-template-columns: minmax(0, 1fr); }
.tiz-hero--plain .tiz-hero__text {
	justify-self: start;
	padding-right: var(--pad);
	max-width: 52rem;
}

.tiz-js .tiz-hero__text > * { opacity: 0; transform: translateY(16px); animation: tizUp .9s var(--ease) forwards; }
.tiz-js .tiz-hero__text > *:nth-child(1) { animation-delay: .05s; }
.tiz-js .tiz-hero__text > *:nth-child(2) { animation-delay: .13s; }
.tiz-js .tiz-hero__text > *:nth-child(3) { animation-delay: .21s; }
.tiz-js .tiz-hero__text > *:nth-child(4) { animation-delay: .29s; }
.tiz-js .tiz-hero__text > *:nth-child(5) { animation-delay: .37s; }
.tiz-js .tiz-hero__text > *:nth-child(6) { animation-delay: .45s; }
.tiz-js .tiz-hero__media img { clip-path: inset(0 0 0 100%); animation: tizWipe 1.2s var(--ease) .1s forwards; }

@keyframes tizUp { to { opacity: 1; transform: none; } }
@keyframes tizWipe { to { clip-path: inset(0 0 0 0); } }

@media (prefers-reduced-motion: reduce) {
	.tiz-js .tiz-hero__text > *,
	.tiz-js .tiz-hero__media img,
.tiz-hero__media video { animation: none; opacity: 1; transform: none; clip-path: none; }
}

.tiz-hero--video { padding: 0; border-bottom: 0; }
.tiz-hero--video .tiz-hero__bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
}
.tiz-hero--video .tiz-hero__bg video,
.tiz-hero--video .tiz-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---------------------------------------------------------
   6. Sections
   --------------------------------------------------------- */
.tiz-sec {
	position: relative;
	padding: clamp(68px, 9vw, 136px) 0;
	background: var(--paper);
}
.tiz-sec--tight { padding: clamp(46px, 5.5vw, 78px) 0; }
.tiz-sec--surface { background: var(--paper-2); }
.tiz-sec + .tiz-sec--surface,
.tiz-sec--surface + .tiz-sec { border-top: 1px solid var(--line-soft); }

.tiz-sec--deep,
.tiz-sec--green {
	background: var(--deep);
	color: rgba(247, 240, 230, .76);
}
.tiz-sec--deep h2,
.tiz-sec--deep h3,
.tiz-sec--green h2,
.tiz-sec--green h3 { color: var(--paper); }
.tiz-sec--deep .tiz-eyebrow,
.tiz-sec--green .tiz-eyebrow { color: var(--clay-soft); }
.tiz-sec--deep strong,
.tiz-sec--green strong { color: var(--paper); }
.tiz-sec--deep .tiz-btn--ghost,
.tiz-sec--green .tiz-btn--ghost { color: var(--paper); border-color: rgba(247, 240, 230, .3); }
.tiz-sec--deep .tiz-btn--primary,
.tiz-sec--green .tiz-btn--primary { background: var(--paper-2); border-color: var(--paper-2); color: var(--brun); }
.tiz-sec--deep .tiz-btn--primary:hover,
.tiz-sec--green .tiz-btn--primary:hover { color: #FFF; }

.tiz-sec__shape { display: none; }

.tiz-grid-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2.05fr);
	column-gap: clamp(18px, 3vw, 56px);
	row-gap: 0;
	padding-top: 26px;
	border-top: 1px solid var(--line);
	margin-bottom: clamp(38px, 4.5vw, 66px);
}
.tiz-grid-head .tiz-eyebrow { margin-bottom: 0; padding-top: .5em; }
.tiz-grid-head h2,
.tiz-grid-head h3 { grid-column: 2; margin-bottom: .36em; }
.tiz-grid-head .tiz-lead { grid-column: 2; max-width: 44rem; }
.tiz-sec--deep .tiz-grid-head,
.tiz-sec--green .tiz-grid-head { border-top-color: rgba(247, 240, 230, .2); }

/* ---------------------------------------------------------
   7. Split image + texte
   --------------------------------------------------------- */
.tiz-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(28px, 5vw, 86px);
	margin-bottom: clamp(50px, 6vw, 96px);
}
.tiz-split:last-child { margin-bottom: 0; }
.tiz-split--golden { grid-template-columns: minmax(0, 1fr) minmax(0, 1.26fr); }
.tiz-split--rev .tiz-split__media { order: 2; }
.tiz-split--rev.tiz-split--golden { grid-template-columns: minmax(0, 1.26fr) minmax(0, 1fr); }

.tiz-split__media { position: relative; overflow: hidden; border-radius: var(--ri); }
.tiz-split__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 1.1s var(--ease);
}
.tiz-split__media--wide img { aspect-ratio: 4 / 3; }
.tiz-split:hover .tiz-split__media img { transform: scale(1.03); }

.tiz-split__body h2 { margin-bottom: .44em; }
.tiz-split__body > p { max-width: 36rem; }

/* ---------------------------------------------------------
   8. Chiffres
   --------------------------------------------------------- */
.tiz-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}
.tiz-stat {
	padding: clamp(26px, 3vw, 40px) clamp(18px, 2vw, 32px) clamp(26px, 3vw, 40px) 0;
	border-right: 1px solid var(--line-soft);
}
.tiz-stat:last-child { border-right: 0; }
.tiz-stat b {
	display: block;
	font-family: var(--serif);
	font-size: clamp(2.2rem, 3.8vw, 3.4rem);
	font-weight: 400;
	line-height: 1;
	color: var(--ink);
	letter-spacing: -.035em;
	margin-bottom: .34em;
}
.tiz-stat span {
	display: block;
	font-size: .76rem;
	letter-spacing: .09em;
	color: var(--ink-3);
	line-height: 1.45;
}

/* ---------------------------------------------------------
   9. Fiche technique
   --------------------------------------------------------- */
.tiz-spec {
	margin: 0;
	border-top: 1px solid var(--line);
}
.tiz-spec__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 18px;
	padding: 17px 0;
	border-bottom: 1px solid var(--line-soft);
}
.tiz-spec dt {
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ink-3);
	padding-top: .32em;
}
.tiz-spec dd {
	margin: 0;
	font-family: var(--serif);
	font-size: 1.12rem;
	line-height: 1.38;
	color: var(--ink);
}
.tiz-spec__row--price dd {
	font-size: clamp(1.5rem, 2.2vw, 1.95rem);
	font-weight: 400;
	letter-spacing: -.02em;
	color: var(--clay-2);
}

/* ---------------------------------------------------------
   10. Sessions
   --------------------------------------------------------- */
.tiz-table-wrap { overflow-x: auto; }
.tiz-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .95rem;
	min-width: 620px;
}
.tiz-table th {
	text-align: left;
	font-size: .62rem;
	font-weight: 600;
	letter-spacing: .19em;
	text-transform: uppercase;
	color: var(--ink-3);
	padding: 0 20px 14px 0;
	border-bottom: 1px solid var(--line);
}
.tiz-table td {
	padding: 22px 20px 22px 0;
	border-bottom: 1px solid var(--line-soft);
	vertical-align: middle;
	color: var(--ink-2);
}
.tiz-table tr:last-child td { border-bottom: 1px solid var(--line); }
.tiz-table tbody tr { transition: background .3s var(--ease); }
.tiz-table tbody tr:hover { background: var(--paper-2); }
.tiz-date {
	font-family: var(--serif);
	font-size: 1.18rem;
	color: var(--ink);
	letter-spacing: -.012em;
	white-space: nowrap;
}
.tiz-places {
	display: inline-block;
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--clay-2);
	border: 1px solid var(--clay-soft);
	border-radius: var(--r);
	padding: 5px 12px;
	white-space: nowrap;
}
.tiz-table td:last-child { text-align: right; padding-right: 0; }

/* ---------------------------------------------------------
   11. Cartes
   --------------------------------------------------------- */
.tiz-cards {
	display: grid;
	gap: clamp(22px, 3vw, 46px);
}
.tiz-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tiz-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.tiz-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	border-top: 1px solid var(--line);
	padding-top: 22px;
}
.tiz-card__img { overflow: hidden; border-radius: var(--ri); margin-bottom: 22px; }
.tiz-card__img img {
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	transition: transform .9s var(--ease), filter .6s var(--ease);
	filter: saturate(.9);
}
a.tiz-card:hover .tiz-card__img img { transform: scale(1.045); filter: saturate(1); }

.tiz-card__body { display: flex; flex-direction: column; flex: 1; }
.tiz-card__body h3 { margin-bottom: .45em; transition: color .3s var(--ease); }
a.tiz-card:hover .tiz-card__body h3 { color: var(--clay-2); }
.tiz-card__body p { font-size: .97rem; color: var(--ink-2); }

.tiz-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin-top: auto;
	padding-top: 20px;
}
.tiz-card__meta span {
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.tiz-card__meta span + span::before {
	content: "·";
	margin-right: 16px;
	color: var(--clay);
}

/* ---------------------------------------------------------
   12. Programme par journée
   --------------------------------------------------------- */
.tiz-day {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2.05fr);
	gap: clamp(18px, 3vw, 56px);
	padding: clamp(30px, 3.6vw, 52px) 0;
	border-top: 1px solid var(--line);
}
.tiz-day:last-child { border-bottom: 1px solid var(--line); }

.tiz-day__head { position: relative; }
.tiz-day__n {
	display: block;
	font-family: var(--serif);
	font-size: clamp(2.3rem, 4vw, 3.6rem);
	font-weight: 400;
	line-height: .9;
	letter-spacing: -.04em;
	color: var(--clay);
	margin-bottom: .22em;
}
.tiz-day__t {
	display: block;
	font-family: var(--serif);
	font-size: 1.3rem;
	line-height: 1.18;
	color: var(--ink);
}
.tiz-day__s {
	display: block;
	margin-top: .6em;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ink-3);
}

.tiz-day__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(24px, 3vw, 48px);
}
.tiz-day__cols p { font-size: .98rem; }
.tiz-day__cols ul { margin: 0 0 1em; padding-left: 1.1em; }
.tiz-day__cols li { margin-bottom: .4em; }

.tiz-day__prat {
	margin-top: 18px;
	padding: 16px 18px;
	background: var(--paper-2);
	border-left: 1px solid var(--clay);
	border-radius: 0 var(--ri) var(--ri) 0;
	font-size: .92rem;
}
.tiz-day__prat b {
	display: block;
	font-family: var(--sans);
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--clay-2);
	margin-bottom: .55em;
}

/* ---------------------------------------------------------
   13. Listes à coches
   --------------------------------------------------------- */
.tiz-checks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--line-soft);
}
.tiz-checks li {
	position: relative;
	padding: 14px 0 14px 34px;
	border-bottom: 1px solid var(--line-soft);
	font-size: 1rem;
	color: var(--ink-2);
}
.tiz-checks li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 22px;
	width: 11px;
	height: 6px;
	border-left: 1px solid var(--clay);
	border-bottom: 1px solid var(--clay);
	transform: rotate(-45deg);
}

/* ---------------------------------------------------------
   14. Encart légal
   --------------------------------------------------------- */
.tiz-legal {
	padding: clamp(22px, 2.6vw, 34px) clamp(22px, 2.6vw, 36px);
	background: var(--paper-2);
	border: 1px solid var(--line-soft);
	border-left: 2px solid var(--clay);
	border-radius: 0 var(--ri) var(--ri) 0;
	font-size: .93rem;
	color: var(--ink-2);
}
.tiz-sec--deep .tiz-legal,
.tiz-sec--green .tiz-legal {
	background: rgba(247, 240, 230, .05);
	border-color: rgba(247, 240, 230, .16);
	border-left-color: var(--clay);
	color: rgba(247, 240, 230, .72);
}

/* ---------------------------------------------------------
   15. Appel à l'action
   --------------------------------------------------------- */
.tiz-cta {
	position: relative;
	text-align: center;
	max-width: 52rem;
	margin-inline: auto;
	padding: clamp(10px, 2vw, 24px) 0;
}
.tiz-cta__arc { display: none; }
.tiz-cta h2 { font-size: clamp(2.1rem, 4vw, 3.4rem); margin-bottom: .4em; }
.tiz-cta p { max-width: 38rem; margin-inline: auto; }
.tiz-cta .tiz-btns { justify-content: center; }

/* ---------------------------------------------------------
   16. FAQ
   --------------------------------------------------------- */
.tiz-faq { border-top: 1px solid var(--line); }
.tiz-faq__item { border-bottom: 1px solid var(--line-soft); }
.tiz-faq__q {
	position: relative;
	display: block;
	width: 100%;
	text-align: left;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 26px 60px 26px 0;
	font-family: var(--serif);
	font-size: clamp(1.08rem, 1.5vw, 1.32rem);
	line-height: 1.3;
	color: var(--ink);
	transition: color .3s var(--ease);
}
.tiz-faq__q:hover { color: var(--clay-2); }
.tiz-faq__q::before,
.tiz-faq__q::after {
	content: "";
	position: absolute;
	right: 6px;
	top: 50%;
	background: var(--clay);
	transition: transform .34s var(--ease), opacity .3s;
}
.tiz-faq__q::before { width: 16px; height: 1px; margin-top: 0; right: 4px; }
.tiz-faq__q::after { width: 1px; height: 16px; margin-top: -8px; right: 11px; }
.tiz-faq__item.is-open .tiz-faq__q::after { transform: rotate(90deg); opacity: 0; }

.tiz-faq__a {
	padding: 0 56px 26px 0;
	font-size: 1rem;
	color: var(--ink-2);
	max-width: 46rem;
}
.tiz-faq__a[hidden] { display: none; }

/* ---------------------------------------------------------
   17. Formulaire
   --------------------------------------------------------- */
.tiz-form { max-width: 46rem; }
.tiz-form__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: clamp(16px, 2vw, 28px);
}
.tiz-field { margin-bottom: clamp(16px, 2vw, 26px); }
.tiz-field label {
	display: block;
	font-size: .66rem;
	font-weight: 600;
	letter-spacing: .17em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 9px;
}
.tiz-field input,
.tiz-field select,
.tiz-field textarea {
	width: 100%;
	font-family: var(--sans);
	font-size: 1rem;
	color: var(--ink);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--line);
	padding: 10px 0;
	transition: border-color .3s var(--ease);
}
.tiz-field textarea { min-height: 140px; resize: vertical; }
.tiz-field input:focus,
.tiz-field select:focus,
.tiz-field textarea:focus {
	outline: none;
	border-bottom-color: var(--clay);
}

.tiz-consent {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: .87rem;
	color: var(--ink-3);
	margin: 8px 0 28px;
	max-width: 42rem;
}
.tiz-consent input { margin-top: 4px; accent-color: var(--clay-2); }
.tiz-consent a { color: var(--clay-2); }

.tiz-hp { position: absolute; left: -9999px; }

.tiz-note {
	padding: 16px 20px;
	margin-bottom: 26px;
	font-size: .95rem;
	border-left: 2px solid var(--clay);
	border-radius: 0 var(--ri) var(--ri) 0;
	background: var(--paper-2);
}
.tiz-note--ko { border-left-color: #A33; }

/* ---------------------------------------------------------
   18. Barre de session collante
   --------------------------------------------------------- */
.tiz-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 80;
	background: var(--deep);
	color: var(--paper);
	transform: translateY(102%);
	transition: transform .4s var(--ease);
}
.tiz-bar.is-in { transform: none; }
.tiz-bar__in {
	width: min(var(--max), 100%);
	margin-inline: auto;
	padding: 14px var(--pad);
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}
.tiz-bar__t {
	font-family: var(--serif);
	font-size: 1.05rem;
	color: var(--paper);
}
.tiz-bar__m {
	font-size: .74rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: rgba(247, 240, 230, .6);
}
.tiz-bar .tiz-btn {
	margin-left: auto;
	background: var(--paper-2);
	border-color: var(--paper-2);
	color: var(--brun);
}
.tiz-bar .tiz-btn:hover { color: #FFF; }

/* ---------------------------------------------------------
   19. Pied de page
   --------------------------------------------------------- */
.tiz-footer {
	background: var(--deep);
	color: rgba(247, 240, 230, .62);
	padding: clamp(60px, 7vw, 104px) 0 36px;
	font-size: .93rem;
}
.tiz-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 72px);
	padding-bottom: clamp(38px, 4vw, 60px);
	border-bottom: 1px solid rgba(247, 240, 230, .14);
}
.tiz-footer__brand {
	display: block;
	font-family: var(--serif);
	font-size: 1.6rem;
	color: var(--paper);
	margin-bottom: .7em;
}
.tiz-footer h3 {
	font-family: var(--sans);
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .19em;
	text-transform: uppercase;
	color: rgba(247, 240, 230, .45);
	margin-bottom: 1.4em;
}
.tiz-footer ul { list-style: none; margin: 0; padding: 0; }
.tiz-footer li { margin-bottom: .7em; }
.tiz-footer a {
	color: rgba(247, 240, 230, .78);
	text-decoration: none;
	transition: color .25s var(--ease);
}
.tiz-footer a:hover { color: var(--clay-soft); }
.tiz-footer p { color: rgba(247, 240, 230, .55); max-width: 34rem; }

.tiz-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 14px;
	padding-top: 26px;
	font-size: .78rem;
	color: rgba(247, 240, 230, .42);
}

/* ---------------------------------------------------------
   20. Révélation au défilement
   --------------------------------------------------------- */
.tiz-js .tiz-rv {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .85s var(--ease), transform .85s var(--ease);
}
.tiz-js .tiz-rv.is-in { opacity: 1; transform: none; }
.tiz-js .tiz-rv[data-d="1"] { transition-delay: .09s; }
.tiz-js .tiz-rv[data-d="2"] { transition-delay: .18s; }
.tiz-js .tiz-rv[data-d="3"] { transition-delay: .27s; }

@media (prefers-reduced-motion: reduce) {
	.tiz-js .tiz-rv { opacity: 1; transform: none; transition: none; }
}

/* ---------------------------------------------------------
   21. Adaptatif
   --------------------------------------------------------- */
@media (max-width: 1180px) {
	.tiz-mega__in { grid-template-columns: minmax(0, 1fr); }
	.tiz-mega__aside { border-right: 0; border-bottom: 1px solid var(--line-soft); padding: 0 0 22px; }
	.tiz-mega__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1060px) {
	:root { --hdr: 72px; }
	.tiz-nav { display: none; }
	.tiz-header__act { display: none; }
	.tiz-burger { display: flex; margin-left: auto; }

	.tiz-hero__in { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.tiz-hero__text {
		padding-inline: var(--pad);
		justify-self: stretch;
		max-width: none;
		margin-inline: auto;
		width: min(var(--max), 100%);
	}
	.tiz-hero__media {
		min-height: 0;
		margin-top: clamp(32px, 5vw, 52px);
	}
	.tiz-hero__media img,
.tiz-hero__media video { aspect-ratio: 16 / 10; min-height: 0; }
	.tiz-hero__media::after { display: none; }

	.tiz-grid-head { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.tiz-grid-head h2,
	.tiz-grid-head h3,
	.tiz-grid-head .tiz-lead { grid-column: 1; }

	.tiz-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tiz-day { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.tiz-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

@media (max-width: 760px) {
	body { font-size: 1rem; }
	.tiz-split,
	.tiz-split--golden,
	.tiz-split--rev.tiz-split--golden { grid-template-columns: minmax(0, 1fr); }
	.tiz-split--rev .tiz-split__media { order: 0; }
	.tiz-split__media img { aspect-ratio: 4 / 3; }

	.tiz-mega__grid { grid-template-columns: minmax(0, 1fr); }
	.tiz-cards--2,
	.tiz-cards--3 { grid-template-columns: minmax(0, 1fr); }
	.tiz-stat { border-right: 0; border-bottom: 1px solid var(--line-soft); padding-right: 0; }
	.tiz-stats { border-bottom: 0; }
	.tiz-spec__row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
	.tiz-hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tiz-hero__facts > div { padding-right: 14px; }
	.tiz-footer__top { grid-template-columns: minmax(0, 1fr); }
	.tiz-btns .tiz-btn { flex: 1 1 100%; }
	.tiz-bar__m { display: none; }
	.tiz-bar .tiz-btn { margin-left: 0; flex: 1 1 100%; }
}

/* ---------------------------------------------------------
   22. Animations
   --------------------------------------------------------- */

/* filet d'en-tête de section qui se trace */
.tiz-grid-head { position: relative; border-top: 0; }
.tiz-grid-head::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 1px;
	background: var(--line);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 1.1s var(--ease);
}
.tiz-grid-head.is-in::before,
.tiz-grid-head:not(.tiz-rv)::before { transform: scaleX(1); }
.tiz-sec--deep .tiz-grid-head::before,
.tiz-sec--green .tiz-grid-head::before { background: rgba(255, 252, 248, .25); }

/* image de split révélée par volet */
.tiz-js .tiz-split .tiz-split__media img { clip-path: inset(0 0 100% 0); }
.tiz-js .tiz-split.is-in .tiz-split__media img {
	clip-path: inset(0 0 0 0);
	transition: clip-path 1.15s var(--ease) .08s, transform 1.1s var(--ease);
}

/* cascade dans les grilles */
.tiz-js .tiz-cards > .tiz-rv:nth-child(2) { transition-delay: .1s; }
.tiz-js .tiz-cards > .tiz-rv:nth-child(3) { transition-delay: .2s; }
.tiz-js .tiz-cards > .tiz-rv:nth-child(4) { transition-delay: .3s; }

/* chiffres */
.tiz-js .tiz-stats .tiz-stat {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.tiz-js .tiz-stats.is-in .tiz-stat { opacity: 1; transform: none; }
.tiz-js .tiz-stats.is-in .tiz-stat:nth-child(2) { transition-delay: .1s; }
.tiz-js .tiz-stats.is-in .tiz-stat:nth-child(3) { transition-delay: .2s; }
.tiz-js .tiz-stats.is-in .tiz-stat:nth-child(4) { transition-delay: .3s; }

/* fiche technique et sessions ligne par ligne */
.tiz-js .tiz-spec.is-in .tiz-spec__row,
.tiz-js .tiz-table-wrap.is-in tbody tr { animation: tizRow .7s var(--ease) both; }
.tiz-js .tiz-spec.is-in .tiz-spec__row:nth-child(2),
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(2) { animation-delay: .07s; }
.tiz-js .tiz-spec.is-in .tiz-spec__row:nth-child(3),
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(3) { animation-delay: .14s; }
.tiz-js .tiz-spec.is-in .tiz-spec__row:nth-child(4),
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(4) { animation-delay: .21s; }
.tiz-js .tiz-spec.is-in .tiz-spec__row:nth-child(5) { animation-delay: .28s; }
.tiz-js .tiz-spec.is-in .tiz-spec__row:nth-child(6) { animation-delay: .35s; }

@keyframes tizRow {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: none; }
}

/* liste à coches : la coche se dessine */
.tiz-js .tiz-checks li::before { opacity: 0; transform: rotate(-45deg) scale(.5); transition: opacity .4s var(--ease), transform .5s var(--ease); }
.tiz-js .tiz-checks.is-in li::before { opacity: 1; transform: rotate(-45deg) scale(1); }
.tiz-js .tiz-checks.is-in li:nth-child(2)::before { transition-delay: .06s; }
.tiz-js .tiz-checks.is-in li:nth-child(3)::before { transition-delay: .12s; }
.tiz-js .tiz-checks.is-in li:nth-child(4)::before { transition-delay: .18s; }
.tiz-js .tiz-checks.is-in li:nth-child(5)::before { transition-delay: .24s; }
.tiz-js .tiz-checks.is-in li:nth-child(6)::before { transition-delay: .3s; }

/* parallaxe douce sur l'image du héros */
.tiz-hero__media img,
.tiz-hero__media video { will-change: transform; transform: translate3d(0, var(--py, 0px), 0) scale(1.06); }

/* en-tête à l'ouverture */
.tiz-js .tiz-header__in > * { animation: tizFadeIn .8s var(--ease) both; }
.tiz-js .tiz-header__in > *:nth-child(2) { animation-delay: .08s; }
.tiz-js .tiz-header__in > *:nth-child(3) { animation-delay: .16s; }

@keyframes tizFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* liens de pied de page */
.tiz-footer a { position: relative; }
.tiz-footer a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 1px;
	background: var(--clay-soft);
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform .35s var(--ease);
}
.tiz-footer a:hover::after { transform: scaleX(1); transform-origin: left center; }

/* carte : l'image se soulève */
a.tiz-card { transition: transform .5s var(--ease); }
a.tiz-card:hover { transform: translateY(-4px); }

@media (prefers-reduced-motion: reduce) {
	.tiz-js .tiz-split .tiz-split__media img,
	.tiz-js .tiz-stats .tiz-stat,
	.tiz-js .tiz-checks li::before,
	.tiz-js .tiz-header__in > * {
		opacity: 1;
		transform: none;
		clip-path: none;
		animation: none;
	}
	.tiz-grid-head::before { transform: scaleX(1); }
	.tiz-hero__media img,
.tiz-hero__media video { transform: none; }
}

/* ---------------------------------------------------------
   23. Décor de fond des sections
   Deux formes tracées au filet d'argile, alternées d'une
   section à l'autre, plus un halo crème très diffus.
   --------------------------------------------------------- */
.tiz-sec { overflow: hidden; }
.tiz-sec > .tiz-wrap { position: relative; z-index: 2; }

.tiz-sec::before,
.tiz-sec::after {
	content: "";
	position: absolute;
	pointer-events: none;
	border-radius: 50%;
	z-index: 0;
}

/* grand cercle filaire */
.tiz-sec::before {
	width: clamp(26rem, 46vw, 52rem);
	aspect-ratio: 1;
	height: auto;
	border: 1px solid var(--clay);
	opacity: .22;
	top: -16%;
	right: -14rem;
}

/* halo crème diffus */
.tiz-sec::after {
	width: clamp(22rem, 38vw, 44rem);
	aspect-ratio: 1;
	height: auto;
	background: radial-gradient(circle, rgba(193, 132, 104, .16), rgba(193, 132, 104, 0) 68%);
	left: -12rem;
	bottom: -16%;
}

/* on inverse une section sur deux */
.tiz-sec:nth-of-type(even)::before {
	right: auto;
	left: -16rem;
	top: auto;
	bottom: -18%;
}
.tiz-sec:nth-of-type(even)::after {
	left: auto;
	right: -12rem;
	bottom: auto;
	top: -16%;
}

/* second filet concentrique, sur les sections crème */
.tiz-sec--surface .tiz-sec__shape,
.tiz-sec--surface::before { opacity: .3; }

.tiz-sec--surface {
	background-image:
		repeating-linear-gradient(90deg, rgba(193, 132, 104, .09) 0 1px, transparent 1px 25%);
	background-size: 100% 100%;
	background-position: center;
}

/* sections sombres : on garde le tracé, en crème */
.tiz-sec--deep::before,
.tiz-sec--green::before { border-color: var(--clay-soft); opacity: .18; }
.tiz-sec--deep::after,
.tiz-sec--green::after { background: radial-gradient(circle, rgba(235, 214, 196, .1), rgba(235, 214, 196, 0) 68%); }

/* les formes explicites du shortcode restent disponibles */
.tiz-sec__shape {
	display: block;
	position: absolute;
	pointer-events: none;
	z-index: 1;
}
.tiz-sec__shape--arc {
	width: clamp(18rem, 30vw, 34rem);
	aspect-ratio: 1;
	border: 1px solid var(--clay);
	border-radius: 50%;
	opacity: .26;
	left: 8%;
	top: -10rem;
}
.tiz-sec__shape--bar {
	left: 50%;
	top: 0;
	width: 1px;
	height: clamp(60px, 9vw, 120px);
	background: linear-gradient(var(--clay), transparent);
	opacity: .6;
}

@media (max-width: 760px) {
	.tiz-sec::before { right: -10rem; width: 24rem; }
	.tiz-sec:nth-of-type(even)::before { left: -10rem; }
	.tiz-sec--surface { background-image: none; }
}

/* ---------------------------------------------------------
   24. Héros d'accueil : la vidéo prend plus de place
   --------------------------------------------------------- */
.tiz-hero--home .tiz-hero__in { grid-template-columns: minmax(0, 1fr) minmax(0, 42vw); }
.tiz-hero--home .tiz-hero__media { min-height: clamp(480px, 66vw, 820px); }
.tiz-hero--home h1 { font-size: clamp(2.3rem, 3.7vw, 3.9rem); }

@media (max-width: 1060px) {
	.tiz-hero--home .tiz-hero__in { grid-template-columns: minmax(0, 1fr); }
	.tiz-hero--home .tiz-hero__media { min-height: 0; }
	.tiz-hero--home .tiz-hero__text { padding-inline: var(--pad); }
}

/* ---------------------------------------------------------
   25. Vidéo du héros d'accueil
   Le fichier source est un 16/9 : on évite le recadrage
   extrême, on réchauffe l'image et on la fond dans la page.
   --------------------------------------------------------- */
.tiz-hero--home .tiz-hero__in { grid-template-columns: minmax(0, 1fr) minmax(0, 44vw); }
.tiz-hero--home .tiz-hero__media { min-height: clamp(400px, 48vw, 620px); }
.tiz-hero--home h1 { font-size: clamp(2.2rem, 3.4vw, 3.6rem); }

.tiz-hero--home .tiz-hero__media video {
	object-position: 38% 52%;
	filter: saturate(.94) contrast(1.03) brightness(1.02);
	clip-path: none;
	scale: 1.03;
	transition: opacity .45s linear;
	animation: tizKen 26s var(--ease) 1s infinite alternate;
}

.tiz-js .tiz-hero--home .tiz-hero__media {
	opacity: 0;
	animation: tizFadeIn 1.2s var(--ease) .25s forwards;
}

@keyframes tizKen {
	from { scale: 1.03; }
	to { scale: 1.1; }
}

/* fondu vers la page à gauche et en bas, voile crème très léger */
.tiz-hero--home .tiz-hero__media::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		linear-gradient(90deg, #FFF 0%, rgba(255, 255, 255, .55) 7%, rgba(255, 255, 255, 0) 26%),
		linear-gradient(0deg, rgba(250, 239, 225, .5) 0%, rgba(250, 239, 225, 0) 32%),
		radial-gradient(120% 90% at 70% 45%, rgba(193, 132, 104, 0) 55%, rgba(114, 69, 64, .16) 100%);
}

@media (prefers-reduced-motion: reduce) {
	.tiz-hero--home .tiz-hero__media video { animation: none; scale: 1.03; opacity: 1; }
	.tiz-js .tiz-hero--home .tiz-hero__media { animation: none; opacity: 1; }
}

@media (max-width: 1060px) {
	.tiz-hero--home .tiz-hero__media::before {
		background: linear-gradient(0deg, rgba(250, 239, 225, .45) 0%, rgba(250, 239, 225, 0) 30%);
	}
}

/* ---------------------------------------------------------
   26. Reprise adaptative du héros d'accueil
   Ce bloc doit rester le dernier : il annule la grille en
   deux colonnes déclarée plus haut.
   --------------------------------------------------------- */
@media (max-width: 1060px) {
	.tiz-hero--home .tiz-hero__in {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}
	.tiz-hero--home .tiz-hero__text {
		padding-inline: var(--pad);
		width: min(var(--max), 100%);
		margin-inline: auto;
	}
	.tiz-hero--home .tiz-hero__media {
		min-height: 0;
		margin-top: clamp(32px, 5vw, 52px);
		border-radius: var(--ri) 0 0 var(--ri);
	}
	.tiz-hero--home .tiz-hero__media video {
		aspect-ratio: 16 / 10;
		min-height: 0;
		object-position: 40% 50%;
	}
}

/* ---------------------------------------------------------
   27. Lignes de contour en fond de section
   Neuf courbes parallèles tirées au filet d'argile. Le motif
   évoque les lignes d'un corps sans jamais le représenter.
   --------------------------------------------------------- */
.tiz-sec__shape--vagues {
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	height: min(80%, 640px);
	opacity: .4;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 600' preserveAspectRatio='none' fill='none' stroke='rgb(193,132,104)' stroke-width='1.2'><path d='M-60 90 C 180 10, 400 180, 640 90 S 1040 0, 1260 80'/><path d='M-60 142 C 180 62, 400 232, 640 142 S 1040 52, 1260 132'/><path d='M-60 194 C 180 114, 400 284, 640 194 S 1040 104, 1260 184'/><path d='M-60 246 C 180 166, 400 336, 640 246 S 1040 156, 1260 236'/><path d='M-60 298 C 180 218, 400 388, 640 298 S 1040 208, 1260 288'/><path d='M-60 350 C 180 270, 400 440, 640 350 S 1040 260, 1260 340'/><path d='M-60 402 C 180 322, 400 492, 640 402 S 1040 312, 1260 392'/><path d='M-60 454 C 180 374, 400 544, 640 454 S 1040 364, 1260 444'/><path d='M-60 506 C 180 426, 400 596, 640 506 S 1040 416, 1260 496'/></svg>");
}

/* là où les vagues passent, on retire le cercle et la trame */
.tiz-sec:has(.tiz-sec__shape--vagues)::before { display: none; }
.tiz-sec--surface:has(.tiz-sec__shape--vagues) { background-image: none; }
.tiz-sec--deep .tiz-sec__shape--vagues,
.tiz-sec--green .tiz-sec__shape--vagues { opacity: .22; }

@media (max-width: 760px) {
	.tiz-sec__shape--vagues { opacity: .3; height: min(92%, 520px); }
}

/* ---------------------------------------------------------
   28. Cartes formation : moins tableau, plus fiche éditoriale
   --------------------------------------------------------- */
.tiz-cards--2 {
	column-gap: clamp(28px, 4.5vw, 78px);
	row-gap: clamp(44px, 5vw, 76px);
}
.tiz-cards--2 > *:nth-child(even) { margin-top: clamp(0px, 5vw, 88px); }

.tiz-card {
	border-top: 0;
	padding-top: 0;
	position: relative;
}

.tiz-card__img { margin-bottom: 26px; }
.tiz-cards--2 .tiz-card__img img { aspect-ratio: 5 / 4; }
.tiz-cards--3 .tiz-card__img img { aspect-ratio: 4 / 3; }

.tiz-card__n {
	display: flex;
	align-items: center;
	gap: 16px;
	font-family: var(--serif);
	font-size: 1.1rem;
	line-height: 1;
	color: var(--clay);
	margin-bottom: 14px;
}
.tiz-card__n::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--line-soft);
}

.tiz-card__body h3 { margin-bottom: .5em; }
.tiz-card__meta { padding-top: 18px; }

.tiz-card__go {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	align-self: flex-start;
	margin-top: 24px;
	padding-bottom: 8px;
	font-family: var(--sans);
	font-size: .69rem;
	font-weight: 700;
	letter-spacing: .17em;
	text-transform: uppercase;
	color: var(--clay-2);
}
.tiz-card__go::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--clay);
	transform: scaleX(.2);
	transform-origin: left center;
	transition: transform .55s var(--ease);
}
a.tiz-card:hover .tiz-card__go::after { transform: scaleX(1); }

.tiz-card__arrow {
	width: 22px;
	height: 8px;
	flex: 0 0 auto;
	transition: transform .45s var(--ease);
}
a.tiz-card:hover .tiz-card__arrow { transform: translateX(6px); }

@media (max-width: 760px) {
	.tiz-cards--2 > *:nth-child(even) { margin-top: 0; }
}

/* les cartes sans numéro gardent le filet supérieur d'origine */
.tiz-card:not(:has(.tiz-card__n)) {
	border-top: 1px solid var(--line);
	padding-top: 22px;
}

/* ---------------------------------------------------------
   29. Reprise : la gamme en liste, et le calendrier
   Dernier bloc chargé : il corrige les règles posées plus
   haut au lieu de les dupliquer.
   --------------------------------------------------------- */

/* --- les vagues deviennent un bandeau de tête --- */
.tiz-sec__shape--vagues {
	top: 0;
	bottom: auto;
	transform: none;
	height: clamp(190px, 23vw, 330px);
	opacity: .55;
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 42%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 0%, #000 42%, transparent 100%);
}

/* --- la gamme : quatre lignes alignées --- */
.tiz-cards--list {
	display: block;
	border-top: 1px solid var(--line);
}

.tiz-cards--list .tiz-card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 310px) minmax(0, 1fr);
	align-items: center;
	column-gap: clamp(22px, 3vw, 54px);
	padding: clamp(22px, 2.6vw, 34px) clamp(14px, 1.6vw, 24px);
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--line-soft);
	border-radius: var(--ri);
	transition: background .45s var(--ease);
}
.tiz-cards--list a.tiz-card:hover { background: var(--paper-2); transform: none; }

.tiz-cards--list .tiz-card__n {
	display: block;
	font-size: 1.05rem;
	color: var(--clay);
	margin: 0;
	transition: color .35s var(--ease);
}
.tiz-cards--list .tiz-card__n::after { display: none; }
.tiz-cards--list a.tiz-card:hover .tiz-card__n { color: var(--clay-2); }

.tiz-cards--list .tiz-card__img {
	margin: 0;
	border-radius: var(--ri);
}
.tiz-cards--list .tiz-card__img img { aspect-ratio: 3 / 2; }

.tiz-cards--list .tiz-card__body { display: block; }
.tiz-cards--list .tiz-card__body h3 {
	font-size: clamp(1.2rem, 1.7vw, 1.62rem);
	margin-bottom: .4em;
}
.tiz-cards--list .tiz-card__body p {
	font-size: .95rem;
	line-height: 1.6;
	max-width: 52ch;
}
.tiz-cards--list .tiz-card__meta { padding-top: 14px; margin-top: 0; }
.tiz-cards--list .tiz-card__go { margin-top: 16px; }

/* révélation ligne par ligne */
.tiz-js .tiz-cards--list > .tiz-rv:nth-child(1) { transition-delay: 0s; }
.tiz-js .tiz-cards--list > .tiz-rv:nth-child(2) { transition-delay: .1s; }
.tiz-js .tiz-cards--list > .tiz-rv:nth-child(3) { transition-delay: .2s; }
.tiz-js .tiz-cards--list > .tiz-rv:nth-child(4) { transition-delay: .3s; }

@media (max-width: 900px) {
	.tiz-cards--list .tiz-card {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 20px;
		align-items: start;
	}
	.tiz-cards--list .tiz-card__img img { aspect-ratio: 16 / 9; }
}

/* ---------------------------------------------------------
   30. Calendrier : des lignes, plus un tableau
   --------------------------------------------------------- */
.tiz-table-wrap { overflow: visible; }

.tiz-table {
	display: block;
	width: 100%;
	min-width: 0;
	border-collapse: separate;
}
.tiz-table thead { display: none; }
.tiz-table tbody {
	display: block;
	border-top: 1px solid var(--line);
}

.tiz-table tr {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, .9fr) auto auto;
	align-items: center;
	column-gap: clamp(16px, 2.2vw, 36px);
	padding: clamp(18px, 2.1vw, 26px) clamp(14px, 1.6vw, 24px);
	border-bottom: 1px solid var(--line-soft);
	border-radius: var(--ri);
	transition: background .45s var(--ease);
}
.tiz-table tbody tr:hover { background: var(--paper-2); }
.tiz-table tr:last-child td { border-bottom: 0; }

.tiz-table td {
	display: block;
	padding: 0;
	border: 0;
	font-size: .92rem;
	color: var(--ink-3);
	letter-spacing: .03em;
}
.tiz-table td:last-child { text-align: right; padding: 0; }

.tiz-date {
	font-size: clamp(1.12rem, 1.6vw, 1.46rem);
	color: var(--ink);
	white-space: normal;
}

.tiz-table .tiz-btn {
	padding: 11px 22px;
	font-size: .7rem;
	background: transparent;
	color: var(--brun);
	border-color: var(--clay-soft);
}
.tiz-table .tiz-btn:hover { color: #FFF; }

.tiz-sec--surface .tiz-table tbody tr:hover { background: #FFF; }

@media (max-width: 860px) {
	.tiz-table tr {
		grid-template-columns: minmax(0, 1fr) auto;
		row-gap: 10px;
	}
	.tiz-table td:nth-child(1) { grid-column: 1 / -1; }
	.tiz-table td:nth-child(2),
	.tiz-table td:nth-child(3) { display: inline; }
	.tiz-table td:nth-child(2)::after { content: " · "; }
	.tiz-table td:nth-child(4) { grid-column: 1; }
	.tiz-table td:last-child { grid-column: 2; }
}

.tiz-sec--surface .tiz-cards--list a.tiz-card:hover { background: #FFF; }

/* la ligne du bas : méta à gauche, lien calé à droite */
.tiz-cards--list .tiz-card__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: clamp(20px, 3vw, 48px);
	align-content: center;
}
.tiz-cards--list .tiz-card__n,
.tiz-cards--list .tiz-card__body h3,
.tiz-cards--list .tiz-card__body p { grid-column: 1 / -1; }
.tiz-cards--list .tiz-card__body p { max-width: 60ch; }
.tiz-cards--list .tiz-card__meta {
	grid-column: 1;
	align-self: center;
	margin-top: 0;
	padding-top: 16px;
}
.tiz-cards--list .tiz-card__go {
	grid-column: 2;
	align-self: center;
	margin-top: 16px;
}

@media (max-width: 900px) {
	.tiz-cards--list .tiz-card__body { grid-template-columns: minmax(0, 1fr); }
	.tiz-cards--list .tiz-card__meta,
	.tiz-cards--list .tiz-card__go { grid-column: 1; }
}

/* la trame verticale des sections crème refabriquait un quadrillage
   derrière les listes : on ne garde que le cercle, le halo et les vagues */
.tiz-sec--surface { background-image: none; }

/* on allège le bandeau de vagues : on n'affiche que les premières
   courbes du tracé, plus espacées et plus discrètes */
.tiz-sec__shape--vagues {
	height: clamp(170px, 20vw, 290px);
	opacity: .3;
	background-size: 100% 230%;
	background-position: 0 -4%;
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 92%);
	mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 92%);
}

@media (max-width: 760px) {
	.tiz-sec__shape--vagues { opacity: .24; height: clamp(140px, 30vw, 220px); }
}

/* ---------------------------------------------------------
   31. Bandeau de chiffres
   Plus de cadre ni de séparateurs : un filet d'argile se trace
   au-dessus de chaque chiffre, le chiffre se dévoile par le bas
   pendant qu'il compte, puis le libellé apparaît. Les quatre
   colonnes s'enchaînent de gauche à droite.
   --------------------------------------------------------- */
.tiz-stats {
	border: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
	column-gap: clamp(26px, 3.6vw, 60px);
	row-gap: clamp(32px, 4vw, 52px);
}

.tiz-stat {
	position: relative;
	border: 0;
	padding: 26px 0 0;
}

/* le filet qui se trace */
.tiz-stat::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 1px;
	background: var(--clay);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .95s var(--ease), background .35s var(--ease);
}
.tiz-stats.is-in .tiz-stat::before,
.tiz-stats:not(.tiz-rv) .tiz-stat::before { transform: scaleX(1); }

/* petit repère à l'origine du filet */
.tiz-stat::after {
	content: "";
	position: absolute;
	left: 0;
	top: -2px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--clay);
	opacity: 0;
	transform: scale(.4);
	transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.tiz-stats.is-in .tiz-stat::after { opacity: 1; transform: none; }

/* le chiffre se dévoile par le bas */
.tiz-stat b {
	font-size: clamp(2.5rem, 4.4vw, 3.9rem);
	letter-spacing: -.03em;
	line-height: 1;
	margin-bottom: .34em;
	clip-path: inset(118% 0 -14% 0);
	transition: clip-path 1.05s var(--ease), color .35s var(--ease);
}
.tiz-stats.is-in .tiz-stat b,
.tiz-stats:not(.tiz-rv) .tiz-stat b { clip-path: inset(-14% 0 -14% 0); }

/* le libellé suit */
.tiz-stat span {
	opacity: 0;
	transform: translateY(9px);
	transition: opacity .75s var(--ease), transform .75s var(--ease);
}
.tiz-stats.is-in .tiz-stat span,
.tiz-stats:not(.tiz-rv) .tiz-stat span { opacity: 1; transform: none; }

/* l'enchaînement de gauche à droite */
.tiz-stat:nth-child(1)::before { transition-delay: .04s; }
.tiz-stat:nth-child(2)::before { transition-delay: .16s; }
.tiz-stat:nth-child(3)::before { transition-delay: .28s; }
.tiz-stat:nth-child(4)::before { transition-delay: .4s; }

.tiz-stat:nth-child(1)::after { transition-delay: .04s; }
.tiz-stat:nth-child(2)::after { transition-delay: .16s; }
.tiz-stat:nth-child(3)::after { transition-delay: .28s; }
.tiz-stat:nth-child(4)::after { transition-delay: .4s; }

.tiz-stat:nth-child(1) b { transition-delay: .18s; }
.tiz-stat:nth-child(2) b { transition-delay: .3s; }
.tiz-stat:nth-child(3) b { transition-delay: .42s; }
.tiz-stat:nth-child(4) b { transition-delay: .54s; }

.tiz-stat:nth-child(1) span { transition-delay: .4s; }
.tiz-stat:nth-child(2) span { transition-delay: .52s; }
.tiz-stat:nth-child(3) span { transition-delay: .64s; }
.tiz-stat:nth-child(4) span { transition-delay: .76s; }

/* survol */
.tiz-stat:hover::before { background: var(--clay-2); }
.tiz-stat:hover b { color: var(--clay-2); }

/* sections sombres */
.tiz-sec--deep .tiz-stat::before,
.tiz-sec--deep .tiz-stat::after,
.tiz-sec--green .tiz-stat::before,
.tiz-sec--green .tiz-stat::after { background: var(--clay-soft); }

@media (prefers-reduced-motion: reduce) {
	.tiz-stat::before { transform: scaleX(1); }
	.tiz-stat::after { opacity: 1; transform: none; }
	.tiz-stat b { clip-path: none; }
	.tiz-stat span { opacity: 1; transform: none; }
}

@media (max-width: 760px) {
	.tiz-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tiz-stat { border-bottom: 0; padding-right: 0; }
}

/* plus de filet horizontal au-dessus des titres de section */
.tiz-grid-head::before { display: none; }
.tiz-grid-head { border-top: 0; padding-top: 0; }

/* ---------------------------------------------------------
   32. La gamme : mise en mouvement
   Entrée en quatre temps par ligne (filet, image, titre mot à
   mot, texte), parallaxe douce sur les photos, et un survol
   qui répond sur toute la ligne.
   --------------------------------------------------------- */

/* le filet de séparation se trace */
.tiz-cards--list .tiz-card { border-bottom: 0; }
.tiz-cards--list .tiz-card::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--line-soft);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 1.1s var(--ease);
}
.tiz-js .tiz-cards--list .tiz-card.is-in::after,
.tiz-cards--list .tiz-card:not(.tiz-rv)::after { transform: scaleX(1); }

/* barre d'argile au survol */
.tiz-cards--list .tiz-card::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12%;
	bottom: 12%;
	width: 2px;
	background: var(--clay);
	transform: scaleY(0);
	transform-origin: top center;
	transition: transform .55s var(--ease);
}
.tiz-cards--list a.tiz-card:hover::before { transform: scaleY(1); }

/* la photo se dévoile par le bas, puis respire au défilement */
.tiz-js .tiz-cards--list .tiz-card__img {
	clip-path: inset(0 0 100% 0);
	transition: clip-path 1.15s var(--ease);
}
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__img { clip-path: inset(0 0 0 0); }

.tiz-cards--list .tiz-card__img img {
	translate: 0 var(--ly, 0px);
	transform: scale(1.14);
	transition: transform 1.4s var(--ease), filter .6s var(--ease);
}
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__img img,
.tiz-cards--list .tiz-card:not(.tiz-rv) .tiz-card__img img { transform: scale(1.06); }
a.tiz-card:hover .tiz-card__img img { transform: scale(1.12); filter: saturate(1); }

/* le titre monte mot à mot */
.tiz-w {
	display: inline-block;
	overflow: hidden;
	vertical-align: bottom;
	padding-bottom: .1em;
	margin-bottom: -.1em;
}
.tiz-w > span {
	display: inline-block;
	transform: translateY(108%);
	transition: transform .85s var(--ease);
}
.tiz-cards--list .tiz-card.is-in .tiz-w > span { transform: none; }

/* numéro, texte, méta et lien suivent */
.tiz-js .tiz-cards--list .tiz-card__n,
.tiz-js .tiz-cards--list .tiz-card__body p,
.tiz-js .tiz-cards--list .tiz-card__meta,
.tiz-js .tiz-cards--list .tiz-card__go {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__n,
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__body p,
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__meta,
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__go {
	opacity: 1;
	transform: none;
}
.tiz-cards--list .tiz-card__n { transition-delay: .05s; }
.tiz-cards--list .tiz-card__body p { transition-delay: .3s; }
.tiz-cards--list .tiz-card__meta { transition-delay: .42s; }
.tiz-cards--list .tiz-card__go { transition-delay: .5s; }

/* la ligne répond au survol */
.tiz-cards--list .tiz-card__body,
.tiz-cards--list .tiz-card__img { transition: transform .55s var(--ease), clip-path 1.15s var(--ease); }
.tiz-cards--list a.tiz-card:hover .tiz-card__body { transform: translateX(10px); }
.tiz-cards--list a.tiz-card:hover .tiz-card__n { color: var(--clay-2); }
.tiz-cards--list a.tiz-card:hover h3 { color: var(--clay-2); }
.tiz-cards--list .tiz-card__body h3 { transition: color .4s var(--ease); }

@media (prefers-reduced-motion: reduce) {
	.tiz-cards--list .tiz-card::after { transform: scaleX(1); }
	.tiz-js .tiz-cards--list .tiz-card__img { clip-path: none; }
	.tiz-cards--list .tiz-card__img img { transform: none; translate: none; }
	.tiz-w > span { transform: none; }
	.tiz-js .tiz-cards--list .tiz-card__n,
	.tiz-js .tiz-cards--list .tiz-card__body p,
	.tiz-js .tiz-cards--list .tiz-card__meta,
	.tiz-js .tiz-cards--list .tiz-card__go { opacity: 1; transform: none; }
}

/* passerelle de survol : l'onglet du méga-menu reste actif jusqu'au
   bas de l'en-tête, pour que la souris n'ait pas de vide à traverser */
.tiz-nav__item--mega .tiz-nav__link {
	padding-bottom: 30px;
	margin-bottom: -30px;
}
.tiz-nav__item--mega .tiz-nav__link::after { bottom: 32px; }

/* ---------------------------------------------------------
   33. Pages de texte courant
   Mentions légales, CGV, confidentialité : une colonne de
   lecture, rien d'autre.
   --------------------------------------------------------- */
.tiz-prose {
	max-width: 72ch;
	font-size: 1rem;
	line-height: 1.75;
	color: var(--ink-2);
}

.tiz-prose > *:first-child { margin-top: 0; }

.tiz-prose h2 {
	font-size: clamp(1.4rem, 2.1vw, 1.95rem);
	line-height: 1.25;
	margin: 2.4em 0 .6em;
	padding-top: .7em;
	border-top: 1px solid var(--line-soft);
}
.tiz-prose h2:first-child { margin-top: 0; border-top: 0; padding-top: 0; }

.tiz-prose h3 {
	font-size: clamp(1.1rem, 1.5vw, 1.3rem);
	margin: 1.9em 0 .5em;
}

.tiz-prose h4 {
	font-family: var(--sans);
	font-size: .68rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--clay-2);
	margin: 1.8em 0 .7em;
}

.tiz-prose p { margin: 0 0 1.15em; }

.tiz-prose ul,
.tiz-prose ol { margin: 0 0 1.4em; padding-left: 1.3em; }
.tiz-prose li { margin-bottom: .5em; }
.tiz-prose ul { list-style: none; padding-left: 0; }
.tiz-prose ul li {
	position: relative;
	padding-left: 1.5em;
}
.tiz-prose ul li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .72em;
	width: 7px;
	height: 1px;
	background: var(--clay);
}
.tiz-prose ol li::marker { color: var(--clay-2); }

.tiz-prose a {
	color: var(--clay-2);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--clay-soft);
	transition: text-decoration-color .3s var(--ease);
}
.tiz-prose a:hover { text-decoration-color: var(--clay); }

.tiz-prose strong { color: var(--ink); }

.tiz-prose table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 1.6em;
	font-size: .94rem;
}
.tiz-prose th,
.tiz-prose td {
	text-align: left;
	padding: 12px 16px 12px 0;
	border-bottom: 1px solid var(--line-soft);
	vertical-align: top;
}
.tiz-prose th { color: var(--ink); font-weight: 600; }

.tiz-prose hr {
	border: 0;
	border-top: 1px solid var(--line-soft);
	margin: 2.4em 0;
}

.tiz-prose blockquote {
	margin: 1.8em 0;
	padding: 4px 0 4px 22px;
	border-left: 2px solid var(--clay);
	color: var(--ink-2);
}

.tiz-prose img { border-radius: var(--ri); margin: 1.6em 0; }

/* ---------------------------------------------------------
   34. Mouvement au défilement — toutes les pages
   Un pilote JS unique alimente trois variables : --tiz-p
   pour la barre de lecture, --ly pour la parallaxe des
   photos, --sy pour la dérive du décor de fond.
   --------------------------------------------------------- */

/* barre de progression de lecture, sous l'en-tête */
.tiz-prog {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	background: var(--clay);
	transform: scaleX(var(--tiz-p, 0));
	transform-origin: left center;
	opacity: 0;
	transition: opacity .45s var(--ease);
	pointer-events: none;
}
.tiz-header.is-stuck .tiz-prog { opacity: .85; }

/* le décor de fond dérive doucement à contre-sens */
.tiz-sec::before,
.tiz-sec::after,
.tiz-sec__shape { translate: 0 var(--sy, 0px); }

/* parallaxe des photos de section, sans toucher au survol */
.tiz-split__media img { translate: 0 var(--ly, 0px); }

/* les titres montent mot à mot dans toutes les sections */
.tiz-js .tiz-grid-head.is-in .tiz-w > span,
.tiz-js .tiz-split.is-in .tiz-w > span { transform: none; }

/* l'accroche et le texte suivent le titre, en cascade */
.tiz-js .tiz-grid-head .tiz-lead > *,
.tiz-js .tiz-split__body > p {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.tiz-js .tiz-grid-head.is-in .tiz-lead > *,
.tiz-js .tiz-split.is-in .tiz-split__body > p {
	opacity: 1;
	transform: none;
}
.tiz-js .tiz-grid-head .tiz-lead > *:nth-child(1),
.tiz-js .tiz-split__body > p:nth-of-type(1) { transition-delay: .22s; }
.tiz-js .tiz-grid-head .tiz-lead > *:nth-child(2),
.tiz-js .tiz-split__body > p:nth-of-type(2) { transition-delay: .3s; }
.tiz-js .tiz-grid-head .tiz-lead > *:nth-child(3),
.tiz-js .tiz-split__body > p:nth-of-type(3) { transition-delay: .38s; }
.tiz-js .tiz-grid-head .tiz-lead > *:nth-child(n+4),
.tiz-js .tiz-split__body > p:nth-of-type(n+4) { transition-delay: .46s; }

/* l'eyebrow se glisse depuis la gauche */
.tiz-js .tiz-grid-head .tiz-eyebrow,
.tiz-js .tiz-split__body .tiz-eyebrow {
	opacity: 0;
	transform: translateX(-10px);
	transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.tiz-js .tiz-grid-head.is-in .tiz-eyebrow,
.tiz-js .tiz-split.is-in .tiz-split__body .tiz-eyebrow {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.tiz-prog { display: none; }
	.tiz-sec::before,
	.tiz-sec::after,
	.tiz-sec__shape,
	.tiz-split__media img { translate: none; }
	.tiz-js .tiz-grid-head .tiz-lead > *,
	.tiz-js .tiz-split__body > p,
	.tiz-js .tiz-grid-head .tiz-eyebrow,
	.tiz-js .tiz-split__body .tiz-eyebrow {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* ---------------------------------------------------------
   35. Quatre familles de revelation, en alternance
   Le pilote JS pose data-rv="0" a "3" sur chaque section ;
   chaque famille entre differemment pour que le defilement
   ne se repete jamais a l'identique.
   --------------------------------------------------------- */

/* 0 — la montee, comportement d'origine */

/* 1 — le glisse lateral : le contenu arrive du cote oppose
   a son image, et de la droite par defaut */
.tiz-js [data-rv="1"] .tiz-rv {
	transform: translateX(30px);
	transition-duration: .95s;
}
.tiz-js [data-rv="1"] .tiz-split--rev.tiz-rv { transform: translateX(-30px); }
.tiz-js [data-rv="1"] .tiz-rv.is-in { transform: none; }

/* 2 — l'ouverture : le bloc se devoile par la gauche */
.tiz-js [data-rv="2"] .tiz-rv {
	transform: none;
	clip-path: inset(0 0 0 14%);
	transition: opacity 1s var(--ease), clip-path 1.1s var(--ease);
}
.tiz-js [data-rv="2"] .tiz-rv.is-in {
	transform: none;
	clip-path: inset(0 0 0 0);
}

/* 3 — l'echelle : le bloc se pose en avancant vers le lecteur */
.tiz-js [data-rv="3"] .tiz-rv {
	transform: scale(.965) translateY(16px);
	transform-origin: 50% 80%;
	transition-duration: 1.05s;
}
.tiz-js [data-rv="3"] .tiz-rv.is-in { transform: none; }

/* les cartes d'une meme rangee gardent leur cascade propre */
.tiz-js [data-rv="2"] .tiz-cards .tiz-rv,
.tiz-js [data-rv="2"] .tiz-card { clip-path: none; }

@media (prefers-reduced-motion: reduce) {
	.tiz-js [data-rv] .tiz-rv {
		transform: none;
		clip-path: none;
		transition: none;
	}
}

/* ---------------------------------------------------------
   36. Heros d'accueil : plus de photo d'attente
   Le poster affichait une autre image que la premiere trame
   de la video, ce qui produisait un saut. On le remplace par
   un aplat chaud, et la video se fond par-dessus des qu'une
   image est disponible.
   --------------------------------------------------------- */
.tiz-hero--home .tiz-hero__media {
	background:
		linear-gradient(152deg, var(--paper-2) 0%, var(--clay-soft) 52%, var(--paper-3) 100%);
}
.tiz-hero--home .tiz-hero__media video { transition: opacity .7s var(--ease); }

/* ---------------------------------------------------------
   37. Arrivee sur la page : rien ne se replace
   Les blocs deja visibles au chargement sont poses sans
   transition. Seul ce qui est sous la ligne de flottaison
   s'anime au defilement.
   --------------------------------------------------------- */
.tiz-js .is-now,
.tiz-js .is-now *,
.tiz-js [data-rv] .tiz-rv.is-now { transition: none; }

/* ---------------------------------------------------------
   38. Titre du heros d'accueil, lettre par lettre
   --------------------------------------------------------- */
.tiz-hero--home h1 .tiz-wd { display: inline-block; white-space: nowrap; }
.tiz-hero--home h1 .tiz-c {
	display: inline-block;
	overflow: hidden;
	vertical-align: bottom;
	padding-bottom: .09em;
	margin-bottom: -.09em;
}
.tiz-hero--home h1 .tiz-c > span {
	display: inline-block;
	transform: translateY(108%);
	transition: transform .75s var(--ease);
}
.tiz-hero--home h1.is-lit .tiz-c > span { transform: none; }

/* ---------------------------------------------------------
   39. Titre d'appel a l'action : les mots montent, puis un
   filet d'argile se trace dessous
   --------------------------------------------------------- */
.tiz-cta h2 { position: relative; }
.tiz-js .tiz-cta > h2::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -.1em;
	height: 1px;
	width: min(18rem, 62%);
	background: var(--clay);
	opacity: .75;
	transform: translateX(-50%) scaleX(0);
	transform-origin: center;
	transition: transform 1.15s var(--ease) .5s;
}
.tiz-js .tiz-cta.is-in > h2::after { transform: translateX(-50%) scaleX(1); }
.tiz-js .tiz-cta.is-in .tiz-w > span { transform: none; }
.tiz-sec--deep .tiz-cta > h2::after { background: var(--clay-soft); }

/* ---------------------------------------------------------
   40. Calendrier : les rangees se deplient une a une
   --------------------------------------------------------- */
.tiz-js .tiz-table-wrap { perspective: 1100px; }
.tiz-js .tiz-table tbody tr {
	opacity: 0;
	transform: rotateX(-68deg);
	transform-origin: top center;
	transition: opacity .5s var(--ease), transform .7s var(--ease);
}
.tiz-js .tiz-table-wrap.is-in tbody tr { opacity: 1; transform: none; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(1) { transition-delay: .06s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(2) { transition-delay: .14s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(3) { transition-delay: .22s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(4) { transition-delay: .3s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(5) { transition-delay: .38s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(6) { transition-delay: .46s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(7) { transition-delay: .54s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(8) { transition-delay: .62s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(9) { transition-delay: .7s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(10) { transition-delay: .78s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(11) { transition-delay: .86s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(n+12) { transition-delay: .94s; }

@media (prefers-reduced-motion: reduce) {
	.tiz-hero--home h1 .tiz-c > span { transform: none; transition: none; }
	.tiz-js .tiz-cta > h2::after { transform: translateX(-50%) scaleX(1); transition: none; }
	.tiz-js .tiz-table tbody tr { opacity: 1; transform: none; transition: none; }
}

/* ---------------------------------------------------------
   41. Correctif : les accents des capitales etaient rognes
   Les boites de decoupe (mot a mot et lettre par lettre)
   masquaient tout ce qui depasse au-dessus de la hauteur de
   capitale : le E accent de « Ecole » perdait son accent.
   On ouvre la boite vers le haut sans decaler la ligne.
   --------------------------------------------------------- */
.tiz-w {
	padding-top: .22em;
	margin-top: -.22em;
}
.tiz-hero--home h1 .tiz-c {
	padding-top: .22em;
	margin-top: -.22em;
}
.tiz-hero--home h1 .tiz-c > span { transform: translateY(118%); }
.tiz-w > span { transform: translateY(118%); }
.tiz-hero--home h1.is-lit .tiz-c > span,
.tiz-cards--list .tiz-card.is-in .tiz-w > span,
.tiz-js .tiz-grid-head.is-in .tiz-w > span,
.tiz-js .tiz-split.is-in .tiz-w > span,
.tiz-js .tiz-cta.is-in .tiz-w > span { transform: none; }

/* ---------------------------------------------------------
   42. Calendrier : la date devient une pastille, et le
   bouton Candidater passe en plein
   --------------------------------------------------------- */
.tiz-table .tiz-date {
	display: inline-block;
	justify-self: start;
	font-family: var(--serif);
	font-size: clamp(.98rem, 1.2vw, 1.16rem);
	line-height: 1.15;
	color: var(--brun);
	background: transparent;
	border: 1px solid var(--brun);
	border-radius: var(--r);
	padding: 9px 20px;
	white-space: nowrap;
	transition: background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.tiz-table tbody tr:hover .tiz-date {
	background: var(--brun);
	color: var(--paper-2);
	border-color: var(--brun);
}

/* le bouton d'action devient plein, marron et texte creme */
.tiz-table .tiz-btn {
	background: var(--brun);
	color: var(--paper-2);
	border-color: var(--brun);
}
.tiz-table .tiz-btn:hover,
.tiz-table tbody tr:hover .tiz-btn {
	background: var(--deep);
	border-color: var(--deep);
	color: var(--paper-2);
}

/* la pastille des places s'aligne sur le meme trace */
.tiz-table .tiz-places { border-color: var(--clay); color: var(--clay-2); }

@media (max-width: 860px) {
	.tiz-table .tiz-date {
		font-size: 1rem;
		padding: 8px 16px;
		white-space: normal;
	}
}

/* ---------------------------------------------------------
   43. Reglages demandes sur le calendrier et le titre
   --------------------------------------------------------- */

/* le depliage des rangees etait trop rapide : on l'allonge
   et on espace davantage les rangees entre elles */
.tiz-js .tiz-table tbody tr {
	transition: opacity .8s var(--ease), transform 1.05s var(--ease);
}
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(1) { transition-delay: .1s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(2) { transition-delay: .24s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(3) { transition-delay: .38s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(4) { transition-delay: .52s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(5) { transition-delay: .66s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(6) { transition-delay: .8s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(7) { transition-delay: .94s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(8) { transition-delay: 1.08s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(9) { transition-delay: 1.22s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(10) { transition-delay: 1.36s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(11) { transition-delay: 1.5s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(n+12) { transition-delay: 1.64s; }

/* la derniere rangee gardait son filet, qui venait couper la
   pastille de date : on le retire et on rend l'air du bas */
.tiz-table tbody tr:last-child { border-bottom: 0; padding-bottom: clamp(22px, 2.4vw, 30px); }
.tiz-table tbody { padding-bottom: 4px; }

/* de la marge avant le lien qui suit le tableau */
.tiz-table-wrap + .tiz-btn { margin-top: clamp(26px, 3vw, 44px); }

/* ---------------------------------------------------------
   44. Titre d'accueil : deux lignes, la seconde en argile
   --------------------------------------------------------- */
.tiz-hero--home h1 .tiz-wd--accent { color: var(--clay); }
.tiz-hero--home h1 br { line-height: 0; }

/* la premiere ligne du titre doit tenir d'un seul tenant pour
   que le titre se lise bien sur deux lignes */
.tiz-hero--home h1 { font-size: clamp(1.95rem, 2.85vw, 3rem); line-height: 1.08; }
@media (max-width: 1060px) {
	.tiz-hero--home h1 { font-size: clamp(1.9rem, 6vw, 2.6rem); }
}

/* ---------------------------------------------------------
   45. Les photos n'ont plus d'apparition, sauf une par page
   Tous les devoilements au clip-path sont neutralises : les
   photos sont simplement la, avec le bloc. Seule la photo
   editoriale (split golden, une par page) garde un vrai
   effet : un rideau d'argile qui se retire vers le haut.
   --------------------------------------------------------- */

/* a. plus aucun devoilement sur les photos de section */
.tiz-js .tiz-split .tiz-split__media img,
.tiz-js .tiz-split.is-in .tiz-split__media img {
	clip-path: none;
	transform: none;
	transition: transform 1.1s var(--ease);
}
.tiz-split:hover .tiz-split__media img { transform: scale(1.03); }

/* b. plus aucun devoilement sur les photos de la gamme */
.tiz-js .tiz-cards--list .tiz-card__img,
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__img {
	clip-path: none;
	transition: none;
}
.tiz-cards--list .tiz-card__img img,
.tiz-js .tiz-cards--list .tiz-card.is-in .tiz-card__img img {
	transform: scale(1.06);
	transition: transform 1.1s var(--ease), filter .6s var(--ease);
}
.tiz-cards--list a.tiz-card:hover .tiz-card__img img { transform: scale(1.12); }

/* c. la seule photo qui s'anime : le rideau d'argile */
.tiz-js .tiz-split--golden .tiz-split__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	background: var(--clay-soft);
	transform: scaleY(1);
	transform-origin: top center;
	transition: transform 1.15s cubic-bezier(.76, 0, .24, 1) .12s;
	pointer-events: none;
}
.tiz-js .tiz-split--golden.is-in .tiz-split__media::after { transform: scaleY(0); }

.tiz-js .tiz-split--golden .tiz-split__media img {
	transform: scale(1.09);
	transition: transform 1.7s var(--ease);
}
.tiz-js .tiz-split--golden.is-in .tiz-split__media img { transform: scale(1); }
.tiz-js .tiz-split--golden:hover .tiz-split__media img { transform: scale(1.04); }

@media (prefers-reduced-motion: reduce) {
	.tiz-js .tiz-split--golden .tiz-split__media::after { display: none; }
	.tiz-js .tiz-split--golden .tiz-split__media img { transform: none; transition: none; }
}

/* ---------------------------------------------------------
   46. Calendrier : un depliage lent, rangee par rangee
   L'angle de 68 degres ecrasait la pastille de date pendant
   la rotation, ce qui donnait l'impression qu'elle etait
   coupee. On adoucit l'angle, on rallonge la duree et on
   espace nettement les rangees.
   --------------------------------------------------------- */
.tiz-js .tiz-table-wrap { perspective: 1400px; }
.tiz-js .tiz-table tbody tr {
	opacity: 0;
	transform: rotateX(-34deg) translateY(18px);
	transform-origin: top center;
	transition: opacity .9s var(--ease), transform 1.1s var(--ease);
}
.tiz-js .tiz-table-wrap.is-in tbody tr { opacity: 1; transform: none; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(1) { transition-delay: .1s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(2) { transition-delay: .38s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(3) { transition-delay: .66s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(4) { transition-delay: .94s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(5) { transition-delay: 1.22s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(6) { transition-delay: 1.5s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(7) { transition-delay: 1.78s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(8) { transition-delay: 2.06s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(9) { transition-delay: 2.34s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(10) { transition-delay: 2.62s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(11) { transition-delay: 2.9s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(n+12) { transition-delay: 3.18s; }

/* la pastille de date accompagne sa rangee plutot que de
   subir la rotation : elle se pose en fondu */
.tiz-js .tiz-table tbody tr .tiz-date { opacity: 0; transition: opacity .7s var(--ease); }
.tiz-js .tiz-table-wrap.is-in tbody tr .tiz-date { opacity: 1; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(1) .tiz-date { transition-delay: .3s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(2) .tiz-date { transition-delay: .58s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(3) .tiz-date { transition-delay: .86s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(4) .tiz-date { transition-delay: 1.14s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(5) .tiz-date { transition-delay: 1.42s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(6) .tiz-date { transition-delay: 1.7s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(n+7) .tiz-date { transition-delay: 1.98s; }

@media (prefers-reduced-motion: reduce) {
	.tiz-js .tiz-table tbody tr,
	.tiz-js .tiz-table tbody tr .tiz-date { opacity: 1; transform: none; transition: none; }
}

/* ---------------------------------------------------------
   47. Calendrier : on abandonne la rotation 3D
   C'est elle qui rognait le bas de la pastille de date : une
   rangee inclinee rend son bord inferieur en perspective, et
   la derniere rangee, qui finit en dernier, restait visible
   dans cet etat. On remplace par un deroulement au clip, qui
   ne deforme rien, et on ralentit nettement la cascade.
   --------------------------------------------------------- */
.tiz-js .tiz-table-wrap { perspective: none; }

.tiz-js .tiz-table tbody tr {
	opacity: 0;
	transform: translateY(16px);
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
	transition:
		opacity .9s var(--ease),
		transform 1.3s var(--ease),
		clip-path 1.3s var(--ease);
}
.tiz-js .tiz-table-wrap.is-in tbody tr {
	opacity: 1;
	transform: none;
	-webkit-clip-path: inset(-14% -14% -14% -14%);
	clip-path: inset(-14% -14% -14% -14%);
}

/* la cascade : une rangee toutes les 420 ms */
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(1) { transition-delay: .1s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(2) { transition-delay: .52s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(3) { transition-delay: .94s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(4) { transition-delay: 1.36s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(5) { transition-delay: 1.78s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(6) { transition-delay: 2.2s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(7) { transition-delay: 2.62s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(8) { transition-delay: 3.04s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(9) { transition-delay: 3.46s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(10) { transition-delay: 3.88s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(11) { transition-delay: 4.3s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(n+12) { transition-delay: 4.72s; }

/* la pastille se pose juste apres sa rangee */
.tiz-js .tiz-table tbody tr .tiz-date { opacity: 0; transition: opacity .8s var(--ease); }
.tiz-js .tiz-table-wrap.is-in tbody tr .tiz-date { opacity: 1; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(1) .tiz-date { transition-delay: .4s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(2) .tiz-date { transition-delay: .82s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(3) .tiz-date { transition-delay: 1.24s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(4) .tiz-date { transition-delay: 1.66s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(5) .tiz-date { transition-delay: 2.08s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(6) .tiz-date { transition-delay: 2.5s; }
.tiz-js .tiz-table-wrap.is-in tbody tr:nth-child(n+7) .tiz-date { transition-delay: 2.92s; }

/* de l'air sous la derniere rangee, pour que la pastille ne
   touche jamais le bord du bloc */
.tiz-table tbody tr:last-child {
	border-bottom: 0;
	padding-bottom: clamp(30px, 3.2vw, 44px);
}
.tiz-table tbody { padding-bottom: 10px; }

@media (prefers-reduced-motion: reduce) {
	.tiz-js .tiz-table tbody tr,
	.tiz-js .tiz-table tbody tr .tiz-date {
		opacity: 1;
		transform: none;
		-webkit-clip-path: none;
		clip-path: none;
		transition: none;
	}
}

/* ---------------------------------------------------------
   48. Candidature guidee
   Sans JavaScript, toutes les etapes sont visibles et le
   formulaire reste un formulaire ordinaire. Avec, elles
   s'enchainent une par une.
   --------------------------------------------------------- */
.tiz-wiz { max-width: 54rem; margin-inline: auto; }

/* le fil des etapes */
.tiz-wiz__fil {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(10px, 2vw, 26px);
	list-style: none;
	margin: 0 0 14px;
	padding: 0;
}
.tiz-wiz__fil li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ink-3);
	transition: color .5s var(--ease);
}
.tiz-wiz__fil i {
	display: block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	border: 1px solid var(--clay);
	background: transparent;
	transition: background .5s var(--ease), transform .5s var(--ease);
}
.tiz-wiz__fil li.is-done i { background: var(--clay-soft); }
.tiz-wiz__fil li.is-on i { background: var(--brun); border-color: var(--brun); transform: scale(1.5); }
.tiz-wiz__fil li.is-on { color: var(--brun); }

.tiz-wiz__barre {
	height: 2px;
	background: var(--line);
	border-radius: 2px;
	overflow: hidden;
	margin-bottom: clamp(26px, 3vw, 40px);
}
.tiz-wiz__barre i {
	display: block;
	height: 100%;
	background: var(--brun);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .7s var(--ease);
}

/* une etape */
.tiz-wiz__step {
	border: 0;
	margin: 0 0 clamp(26px, 3vw, 40px);
	padding: 0;
	min-inline-size: 0;
}
.tiz-wiz__step legend {
	display: flex;
	align-items: baseline;
	gap: 14px;
	font-family: var(--serif);
	font-size: clamp(1.4rem, 2.4vw, 2.1rem);
	line-height: 1.18;
	color: var(--ink);
	padding: 0;
	margin-bottom: .3em;
}
.tiz-wiz__n {
	flex: 0 0 auto;
	font-family: var(--sans);
	font-size: .7rem;
	letter-spacing: .12em;
	color: var(--clay-2);
	border: 1px solid var(--clay-soft);
	border-radius: var(--r);
	padding: 4px 11px;
}
.tiz-wiz__aide { color: var(--ink-3); margin-bottom: 1.4em; max-width: 42rem; }

/* les choix exclusifs */
.tiz-wiz__choix { display: grid; gap: 10px; }
.tiz-wiz__choix--cartes { gap: 12px; }

.tiz-wiz__opt { position: relative; display: block; cursor: pointer; }
.tiz-wiz__opt input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
}
.tiz-wiz__opt span {
	display: block;
	padding: clamp(14px, 1.7vw, 19px) clamp(18px, 2vw, 26px);
	border: 1px solid var(--line);
	border-radius: var(--ri);
	background: var(--paper);
	color: var(--ink-2);
	line-height: 1.4;
	transition: border-color .35s var(--ease), background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.tiz-wiz__opt:hover span { border-color: var(--clay); transform: translateX(3px); }
.tiz-wiz__opt input:checked + span {
	border-color: var(--brun);
	background: var(--paper-2);
	color: var(--ink);
}
.tiz-wiz__opt input:focus-visible + span { outline: 2px solid var(--clay); outline-offset: 3px; }

/* relecture */
.tiz-wiz__recap {
	display: grid;
	grid-template-columns: minmax(0, .5fr) minmax(0, 1fr);
	gap: 0;
	margin: 0 0 clamp(22px, 2.6vw, 32px);
	border-top: 1px solid var(--line);
}
.tiz-wiz__recap dt,
.tiz-wiz__recap dd {
	margin: 0;
	padding: 13px 0;
	border-bottom: 1px solid var(--line-soft);
}
.tiz-wiz__recap dt {
	font-size: .72rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ink-3);
	padding-top: 16px;
}
.tiz-wiz__recap dd { color: var(--ink); }

/* navigation */
.tiz-wiz__nav { display: none; }
.tiz-js .tiz-wiz__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: clamp(18px, 2vw, 26px);
	border-top: 1px solid var(--line);
}
.tiz-wiz__compteur {
	font-size: .72rem;
	letter-spacing: .12em;
	color: var(--ink-3);
}

/* l'etape qui entre */
.tiz-js .tiz-wiz__step.is-on {
	animation: tizWizIn .6s var(--ease) both;
}
@keyframes tizWizIn {
	from { opacity: 0; transform: translateX(22px); }
	to { opacity: 1; transform: none; }
}

/* fin de parcours */
.tiz-wiz__fini { text-align: center; padding: clamp(28px, 4vw, 54px) 0; }
.tiz-wiz__fini h2 { font-size: clamp(2rem, 3.6vw, 3rem); margin-bottom: .35em; }
.tiz-wiz__fini p { max-width: 36rem; margin-inline: auto; }
.tiz-wiz__fini .tiz-btns { justify-content: center; margin-top: 26px; }

@media (max-width: 760px) {
	.tiz-wiz__fil li span { display: none; }
	.tiz-wiz__recap { grid-template-columns: minmax(0, 1fr); }
	.tiz-wiz__recap dt { border-bottom: 0; padding-bottom: 0; }
	.tiz-wiz__recap dd { padding-top: 4px; }
}

@media (prefers-reduced-motion: reduce) {
	.tiz-js .tiz-wiz__step.is-on { animation: none; }
}

/* ---------------------------------------------------------
   49. Calendrier : le filet de clôture
   La dernière ligne n'a plus de bordure (le contour de la pastille
   s'y heurtait) : on referme le tableau sous le tbody, donc sous
   les 44 px de respiration, jamais au contact de la pastille.
   --------------------------------------------------------- */
.tiz-table tbody { border-bottom: 1px solid var(--line); }
