/* Home tunée bien-etre-holistique.fr : « La journée heure par heure » (laboratoire 16/10/2026).
   Couleurs, polices, rayons et ombres : uniquement les variables de da.css / global.css. */

[data-usine-page="home"] {
	--tn-col: min(1180px, 100% - 3rem);
	--tn-air: clamp(4.5rem, 8vw, 7.5rem);
	--tn-rayon: var(--r-carte, 16px);
	--tn-trait: 1px solid var(--c-bord);
	--tn-doux: color-mix(in srgb, var(--c-doux) 70%, var(--c-surface));
	line-height: 1.6;
}
[data-usine-page="home"] *, [data-usine-page="home"] *::before, [data-usine-page="home"] *::after { box-sizing: border-box; }
[data-usine-page="home"] h1,
[data-usine-page="home"] h2,
[data-usine-page="home"] h3 { font-family: var(--f-titre); color: var(--c-texte); text-align: left; letter-spacing: -0.02em; }
[data-usine-page="home"] em { font-style: normal; color: var(--c-primaire-texte); }
[data-usine-page="home"] img { display: block; max-width: 100%; }
[data-usine-page="home"] article :not(.article-title) { line-height: inherit; }

/* ---------- briques communes ---------- */
.tn-in { width: var(--tn-col); margin-inline: auto; }
.tn-sec { padding-block: var(--tn-air); background: var(--c-fond); }
.tn-sec-teinte { background: var(--c-fond-2); }
.tn-pastille {
	display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 1.1rem; padding: .38rem .9rem .38rem .7rem;
	border: var(--tn-trait); border-radius: 999px; background: var(--c-surface);
	font: 600 .76rem/1.2 var(--f-texte); letter-spacing: .12em; text-transform: uppercase; color: var(--c-primaire-texte);
}
.tn-pastille-point { width: 8px; height: 8px; border-radius: 50%; background: var(--c-primaire); box-shadow: 0 0 0 4px var(--c-doux); flex: none; }
.tn-sec h2 { font-size: clamp(1.75rem, 3.2vw, 2.55rem); font-weight: 700; line-height: 1.12; margin: 0 0 1rem; text-wrap: balance; }
.tn-tete { text-align: center; max-width: 760px; margin: 0 auto clamp(2.5rem, 5vw, 3.5rem); }
.tn-tete h2 { text-align: center; }
.tn-lede { font-size: 1.08rem; color: var(--c-texte-2); margin: 0 0 1.5rem; max-width: 60ch; }
.tn-tete .tn-lede { margin-inline: auto; margin-bottom: 0; }
.tn-carte { background: var(--c-surface); border: var(--tn-trait); border-radius: var(--tn-rayon); box-shadow: var(--o-carte); }
.tn-etiquette {
	display: inline-flex; align-items: center; padding: .2rem .6rem; border-radius: 999px; background: var(--c-doux); color: var(--c-sur-doux);
	font: 600 .74rem/1.3 var(--f-texte); letter-spacing: .02em; white-space: nowrap;
}
.tn-duree {
	display: inline-flex; align-items: center; padding: .15rem .55rem; border-radius: 6px; border: var(--tn-trait); background: var(--c-fond);
	font: 500 .78rem/1.35 "iA Writer Mono", monospace; color: var(--c-primaire-texte); white-space: nowrap; flex: none;
}
.tn-note { font-size: .88rem; color: var(--c-texte-2); margin: 1rem 0 0; }
.tn-suite { text-align: center; margin: 2.5rem 0 0; }
.tn-lien {
	display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.4rem; min-height: 44px; font-weight: 600; color: var(--c-primaire-texte);
	text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .3ex;
}
.tn-lien::after { content: "→"; text-decoration: none; transition: transform .2s; }
.tn-lien:hover::after { transform: translateX(4px); }
.tn-deux { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; }
.tn-col { min-width: 0; margin: 0; }

/* boutons : la forme du site (carré, bordure 2px, ombre décalée), comme le « Contact » du menu */
.tn-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .75rem 1.35rem;
	background: var(--btn-fond); color: var(--btn-texte); border: var(--btn-bord); border-radius: var(--r-bouton, 0); box-shadow: var(--btn-ombre);
	font: 600 1rem/1.2 var(--f-texte); text-decoration: none; transition: transform .15s, box-shadow .15s, background .15s;
}
.tn-btn:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--c-texte); color: var(--btn-texte); }
.tn-btn-clair { background: var(--c-surface); color: var(--c-texte); }
.tn-btn-clair:hover { color: var(--c-texte); background: var(--c-doux); }
.tn-actions { display: flex; flex-wrap: wrap; gap: 1rem 1.1rem; }

/* onglets (souffle, saisons) */
.tn-onglets { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.tn-onglet {
	display: inline-flex; align-items: baseline; gap: .5rem; min-height: 44px; padding: .55rem 1rem; cursor: pointer;
	border: var(--tn-trait); border-radius: 999px; background: var(--c-surface); color: var(--c-texte); font: 500 .95rem/1.2 var(--f-texte);
	transition: background .2s, border-color .2s, color .2s;
}
.tn-onglet small { font: .75rem "iA Writer Mono", monospace; color: var(--c-texte-2); }
.tn-onglet:hover { border-color: var(--c-secondaire); }
.tn-onglet.est-actif { background: var(--c-texte); border-color: var(--c-texte); color: var(--c-fond); }
.tn-onglet.est-actif small { color: var(--c-doux); }

/* cadres photo : ratio 4/5 ou 3/4, jamais en bandeau */
.tn-cadre-photo { position: relative; border-radius: calc(var(--tn-rayon) + 8px); overflow: hidden; box-shadow: var(--o-survol); aspect-ratio: 4 / 5; max-height: 640px; justify-self: center; width: 100%; max-width: 520px; }
/* socle.css plafonne les images de section à 480 px : le cadre porte déjà le ratio */
.tn-cadre-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none !important; object-fit: cover; }

/* ---------- 1. hero : la journée heure par heure ---------- */
.tn-hero { background: linear-gradient(90deg, var(--c-fond) 0 55%, var(--c-fond-2) 55% 100%); padding-block: clamp(2.5rem, 5vh, 3.5rem); }
.tn-hero-in {
	width: var(--tn-col); margin-inline: auto; min-height: calc(100svh - var(--header-h, 72px) - 36px - 7rem);
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr); gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center;
}
.tn-hero-copie { min-width: 0; }
.tn-hero h1 {
	font-family: "Unbounded", var(--f-titre); font-weight: 700; font-size: clamp(2.2rem, 3.9vw, 3.45rem); line-height: 1.06;
	letter-spacing: -0.035em; margin: 0 0 1.4rem; text-wrap: balance;
}
.tn-hero h1 { position: relative; z-index: 0; }
.tn-hero h1 em { position: relative; white-space: nowrap; }
.tn-hero h1 em::after {
	content: ""; position: absolute; left: -.04em; right: -.04em; bottom: .02em; height: .2em; z-index: -1;
	background: var(--c-doux); border-radius: 3px; transform-origin: left; transition: transform .9s cubic-bezier(.2, .7, .2, 1) .3s;
}
.tn-js .tn-hero:not(.tn-pret) h1 em::after { transform: scaleX(0); }
.tn-chapo { font-size: 1.12rem; line-height: 1.65; color: var(--c-texte-2); margin: 0 0 2rem; max-width: 34em; }
.tn-reperes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2.4rem 0 0; padding-top: 1.4rem; border-top: var(--tn-trait); max-width: 520px; }
.tn-reperes div { padding-right: 1rem; }
.tn-reperes div + div { padding-left: 1.2rem; border-left: var(--tn-trait); }
.tn-reperes dt { font: 700 1.9rem/1 var(--f-titre); color: var(--c-texte); letter-spacing: -0.03em; }
.tn-reperes dd { margin: .35rem 0 0; font-size: .9rem; color: var(--c-texte-2); }

.tn-scene { min-width: 0; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 1.4rem; align-items: center; }
.tn-frise { list-style: none; margin: 0; padding: 0 0 0 22px; position: relative; display: grid; gap: .35rem; }
.tn-frise::before { content: ""; position: absolute; left: 6px; top: 18px; bottom: 18px; width: 2px; background: var(--c-bord); border-radius: 2px; }
.tn-frise::after {
	content: ""; position: absolute; left: 6px; top: 18px; width: 2px; border-radius: 2px; background: var(--c-primaire);
	height: calc((100% - 36px) * var(--tn-p, 0.4)); transition: height .6s cubic-bezier(.3, .7, .2, 1);
}
.tn-heure {
	position: relative; display: grid; gap: .1rem; padding: .5rem .7rem; border-radius: 10px; border: 1px solid transparent;
	text-decoration: none; color: var(--c-texte); transition: background .25s, border-color .25s, box-shadow .25s;
}
.tn-heure::before {
	content: ""; position: absolute; left: -21px; top: 50%; width: 10px; height: 10px; margin-top: -5px; border-radius: 50%;
	background: var(--c-fond); border: 2px solid var(--c-bord); transition: background .25s, border-color .25s, transform .25s; z-index: 1;
}
.tn-heure-h { font: 700 1rem/1.15 var(--f-titre); letter-spacing: -0.02em; }
.tn-heure-t { font-size: .8rem; line-height: 1.3; color: var(--c-texte-2); }
.tn-heure:hover { background: var(--c-surface); }
.tn-heure.est-actif { background: var(--c-surface); border-color: var(--c-bord); box-shadow: var(--o-carte); }
.tn-heure.est-actif .tn-heure-h { color: var(--c-primaire-texte); }
.tn-heure.est-actif::before, .tn-heure.est-passe::before { background: var(--c-primaire); border-color: var(--c-primaire); }
.tn-heure.est-actif::before { transform: scale(1.3); box-shadow: 0 0 0 4px var(--c-doux); }

.tn-cadre { position: relative; aspect-ratio: 4 / 5; max-height: min(600px, calc(100svh - 230px)); width: 100%; justify-self: center; border-radius: calc(var(--tn-rayon) + 8px); overflow: hidden; box-shadow: var(--o-survol); background: var(--c-voile); }
.tn-photos, .tn-photo { position: absolute; inset: 0; }
.tn-photo { width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .8s ease, transform 5s ease-out; }
.tn-photo.est-actif { opacity: 1; transform: scale(1); }
.tn-horloge {
	position: absolute; top: 1rem; left: 1rem; margin: 0; padding: .45rem .8rem; border-radius: 10px;
	background: color-mix(in srgb, var(--c-voile) 72%, transparent); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	color: var(--c-sur-voile); font: 700 1.35rem/1 var(--f-titre); letter-spacing: -0.02em;
}
.tn-fiches { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; display: grid; }
.tn-fiche {
	grid-area: 1 / 1; padding: 1rem 1.15rem 1rem; border-radius: 14px; background: color-mix(in srgb, var(--c-surface) 94%, transparent);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--o-carte); visibility: hidden; align-self: end;
}
.tn-fiche.est-actif { visibility: visible; animation: tn-entre .55s cubic-bezier(.2, .7, .2, 1); }
@keyframes tn-entre { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.tn-fiche-tete { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin: 0 0 .45rem; font: 600 .74rem/1.3 var(--f-texte); letter-spacing: .1em; text-transform: uppercase; color: var(--c-primaire-texte); }
.tn-fiche-geste { margin: 0 0 .75rem; font-size: .98rem; line-height: 1.5; color: var(--c-texte); }
.tn-fiche-pied { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; }
.tn-fiche-pied a { font-weight: 600; color: var(--c-primaire-texte); text-decoration-thickness: 2px; }
.tn-avance { position: absolute; left: 0; right: 0; top: 0; height: 3px; background: color-mix(in srgb, var(--c-sur-voile) 25%, transparent); }
.tn-avance span { display: block; height: 100%; width: 0; background: var(--c-primaire); }
.tn-avance.en-cours span { animation: tn-avance var(--tn-duree, 5s) linear forwards; }
@keyframes tn-avance { to { width: 100%; } }
.tn-scene.en-pause .tn-avance span { animation-play-state: paused; }

/* ---------- 2. sommaire ---------- */
.tn-besoins { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; }
.tn-besoin { padding: 1.4rem 1.3rem 1.2rem; display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s, border-color .25s; }
.tn-besoin:hover { transform: translateY(-4px); box-shadow: var(--o-survol); border-color: var(--c-secondaire); }
.tn-besoin-tete { display: flex; align-items: center; justify-content: space-between; margin: 0 0 1.1rem; }
.tn-besoin-tete .tag { margin: 0; font-size: .8rem; }
.tn-besoin h3 { font-size: 1.22rem; line-height: 1.2; margin: 0 0 .25rem; }
.tn-besoin h3 a { text-decoration: none; }
.tn-besoin h3 a:hover { color: var(--c-primaire-texte); }
.tn-besoin-rub { margin: 0 0 1rem; font-size: .85rem; color: var(--c-texte-2); }
.tn-guides { list-style: none; margin: auto 0 0; padding: 0; counter-reset: g; }
.tn-guides li { counter-increment: g; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem .6rem; padding: .8rem 0; border-top: var(--tn-trait); }
.tn-guides li::before { content: "0" counter(g); grid-row: span 2; font: 500 .75rem/1.6 "iA Writer Mono", monospace; color: var(--c-texte-2); }
.tn-guides a { font-weight: 500; font-size: .95rem; line-height: 1.35; text-decoration-thickness: 2px; text-decoration-color: var(--c-bord); }
.tn-guides a:hover { text-decoration-color: var(--c-primaire); }
.tn-guides .tn-duree { justify-self: start; }

/* ---------- 3. souffle ---------- */
.tn-comparatif { display: none; margin: 0; padding: .4rem 1.3rem; }
.tn-comparatif.est-actif { display: block; }
.tn-comparatif div { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: 1rem; padding: .8rem 0; }
.tn-comparatif div + div { border-top: var(--tn-trait); }
.tn-comparatif dt { font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-texte-2); }
.tn-comparatif dd { margin: 0; font-weight: 500; }
.tn-cadre-souffle > img { object-position: 76% 50%; }
.tn-metronome {
	position: absolute; left: 1.1rem; bottom: 1.1rem; display: flex; align-items: center; gap: 1rem; padding: .9rem 1.2rem .9rem .9rem;
	border-radius: 16px; background: color-mix(in srgb, var(--c-surface) 94%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--o-carte);
}
.tn-anneau { width: 72px; height: 72px; border-radius: 50%; border: 2px solid var(--c-bord); display: grid; place-items: center; flex: none; }
.tn-anneau-coeur { width: 64px; height: 64px; border-radius: 50%; background: radial-gradient(circle, var(--c-primaire) 0 35%, color-mix(in srgb, var(--c-primaire) 45%, var(--c-doux)) 70%); transform: scale(.55); }
.tn-metronome-txt { margin: 0; display: grid; }
.tn-metronome-txt strong { font: 700 1.15rem/1.2 var(--f-titre); }
.tn-metronome-txt span { font: .85rem "iA Writer Mono", monospace; color: var(--c-texte-2); }

/* ---------- 4. soirée ---------- */
.tn-deux-inverse { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.tn-cadre-soiree { aspect-ratio: 3 / 4; }
.tn-cadre-soiree > img { object-position: 50% 30%; }
.tn-pendule {
	position: absolute; right: 1rem; top: 1rem; margin: 0; padding: .6rem .9rem; border-radius: 12px; display: grid; text-align: right;
	background: color-mix(in srgb, var(--c-voile) 74%, transparent); color: var(--c-sur-voile); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.tn-pendule span { font: 700 1.6rem/1.05 var(--f-titre); letter-spacing: -0.02em; }
.tn-pendule small { font-size: .78rem; opacity: .85; }
.tn-barre20 { position: relative; display: flex; gap: 4px; margin: .5rem 0 1.4rem; }
.tn-barre20 span { height: 40px; border-radius: 8px; background: var(--c-doux); display: flex; align-items: center; padding-left: .9rem; overflow: hidden; transition: background .3s; }
.tn-barre20 span.est-actif { background: var(--c-secondaire); }
.tn-barre20 span.est-actif b { color: var(--c-sur-secondaire); }
.tn-barre20 b { font: 600 .8rem "iA Writer Mono", monospace; color: var(--c-sur-doux); }
.tn-curseur { position: absolute; top: -6px; bottom: -6px; left: 0; z-index: 1; width: 3px; border-radius: 3px; background: var(--c-texte); opacity: 0; }
.tn-soiree.tn-anime .tn-curseur { opacity: 1; }
.tn-temps { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.tn-temps li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; padding: 1rem 1.2rem; transition: border-color .3s, box-shadow .3s, transform .3s; }
.tn-temps li.est-actif { border-color: var(--c-secondaire); box-shadow: var(--o-survol); transform: translateX(6px); }
.tn-temps-n { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--c-doux); color: var(--c-sur-doux); font: 700 .9rem var(--f-titre); }
.tn-temps li.est-actif .tn-temps-n { background: var(--c-primaire); color: var(--c-sur-primaire); }
.tn-temps h3 { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; font-size: 1.02rem; margin: .2rem 0 .3rem; }
.tn-temps p { margin: 0; font-size: .95rem; color: var(--c-texte-2); }

/* ---------- 5. petits gestes ---------- */
.tn-gestes-grille { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.tn-liste-gestes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.tn-coche {
	display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .85rem; height: 100%; box-sizing: border-box; padding: 1rem 1.1rem; cursor: pointer;
	background: var(--c-surface); border: var(--tn-trait); border-radius: 14px; transition: border-color .2s, background .2s;
}
.tn-coche:hover { border-color: var(--c-secondaire); }
.tn-coche input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tn-coche-case { width: 22px; height: 22px; margin-top: 2px; border-radius: 6px; border: 2px solid var(--c-bord); display: grid; place-items: center; transition: background .2s, border-color .2s; }
.tn-coche-case::after { content: ""; width: 10px; height: 6px; border: solid var(--c-sur-primaire); border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform .2s; }
.tn-coche input:checked + .tn-coche-case { background: var(--c-primaire); border-color: var(--c-primaire); }
.tn-coche input:checked + .tn-coche-case::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.tn-coche input:focus-visible + .tn-coche-case { outline: 2px solid var(--c-primaire); outline-offset: 2px; }
.tn-coche:has(input:checked) { background: var(--tn-doux); border-color: var(--c-secondaire); }
.tn-coche-txt { display: grid; gap: .2rem; }
.tn-coche-txt strong { font-weight: 600; font-size: .98rem; line-height: 1.35; }
.tn-coche-txt small { font-size: .86rem; line-height: 1.45; color: var(--c-texte-2); }
.tn-bilan { padding: 1.6rem; position: sticky; top: calc(var(--header-h, 72px) + 1.5rem); }
.tn-jauge { display: flex; align-items: center; gap: 1.2rem; }
.tn-jauge svg { width: 104px; height: 104px; transform: rotate(-90deg); flex: none; }
.tn-jauge circle { fill: none; stroke-width: 10; }
.tn-jauge-fond { stroke: var(--c-doux); }
.tn-jauge-val { stroke: var(--c-primaire); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: calc(100 - var(--k) * 100); transition: stroke-dashoffset .6s cubic-bezier(.3, .7, .2, 1); }
.tn-jauge p { margin: 0; display: grid; }
.tn-jauge b { font: 700 2.4rem/1 var(--f-titre); }
.tn-jauge span { color: var(--c-texte-2); font-size: .92rem; }
.tn-bilan-msg { margin: 1.1rem 0 1.3rem; font-weight: 500; }
.tn-calcul { border-top: var(--tn-trait); padding-top: 1.1rem; display: grid; gap: .55rem; }
.tn-calcul-titre { margin: 0 0 .2rem; font: 600 .76rem/1.3 var(--f-texte); letter-spacing: .1em; text-transform: uppercase; color: var(--c-primaire-texte); }
.tn-calcul label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .95rem; }
.tn-calcul input { width: 4.5rem; min-height: 40px; padding: .3rem .5rem; border: var(--tn-trait); border-radius: 8px; background: var(--c-fond); color: var(--c-texte); font: 600 1rem "iA Writer Mono", monospace; text-align: center; }
.tn-calcul-total { margin: .6rem 0 0; font-size: 1rem; }
.tn-calcul-total b { font: 700 1.9rem/1 var(--f-titre); color: var(--c-primaire-texte); margin-right: .3rem; }

/* ---------- 6. quiz + erreurs ---------- */
.tn-score { display: inline-block; margin-left: .4rem; color: var(--c-texte); font-weight: 600; }
.tn-cartes-quiz { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.tn-question { padding: 1.3rem 1.3rem 1.2rem; display: flex; flex-direction: column; gap: .8rem; transition: border-color .3s, transform .3s; }
.tn-question-n { margin: 0; font: 500 .75rem "iA Writer Mono", monospace; color: var(--c-texte-2); }
.tn-question h3 { margin: 0; font-size: 1.04rem; line-height: 1.35; flex: 1; }
.tn-choix { display: flex; flex-wrap: wrap; gap: .4rem; }
.tn-choix button {
	min-height: 40px; padding: .4rem .85rem; cursor: pointer; border: var(--tn-trait); border-radius: 999px; background: var(--c-fond);
	color: var(--c-texte); font: 500 .9rem var(--f-texte); transition: background .2s, border-color .2s, color .2s;
}
.tn-choix button:hover { border-color: var(--c-secondaire); }
.tn-choix button.est-bon { background: var(--c-secondaire); border-color: var(--c-secondaire); color: var(--c-sur-secondaire); }
.tn-choix button.est-faux { background: var(--c-fond-2); color: var(--c-texte-2); text-decoration: line-through; }
.tn-reponse { margin: 0; font-size: .92rem; color: var(--c-texte-2); padding-top: .7rem; border-top: var(--tn-trait); }
.tn-reponse b { color: var(--c-primaire-texte); }
.tn-js .tn-question:not(.est-repondu) .tn-reponse { display: none; }
.tn-question.est-repondu { border-color: var(--c-secondaire); }
.tn-erreurs { margin-top: clamp(3rem, 6vw, 4.5rem); }
.tn-erreurs h3 { text-align: center; font-size: clamp(1.25rem, 2vw, 1.55rem); margin: 0 0 1.4rem; }
.tn-erreurs table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--c-surface); border: var(--tn-trait); border-radius: var(--tn-rayon); overflow: hidden; box-shadow: var(--o-carte); }
.tn-erreurs th { text-align: left; padding: .9rem 1.3rem; font: 600 .76rem/1.3 var(--f-texte); letter-spacing: .1em; text-transform: uppercase; background: var(--c-fond-2); color: var(--c-texte-2); }
.tn-erreurs th + th { color: var(--c-primaire-texte); }
.tn-erreurs td { padding: .85rem 1.3rem; border-top: var(--tn-trait); vertical-align: top; width: 50%; }
.tn-erreurs td:first-child { color: var(--c-texte-2); }
.tn-erreurs td:first-child::before { content: "×"; display: inline-block; width: 1.2rem; color: var(--c-texte-2); font-weight: 600; }
.tn-erreurs td + td::before { content: "→"; display: inline-block; width: 1.4rem; color: var(--c-primaire-texte); }
.tn-erreurs td + td { font-weight: 500; border-left: var(--tn-trait); }

/* ---------- 7. saisons ---------- */
.tn-saison { display: none; padding: 1.2rem 1.4rem; }
.tn-saison.est-actif { display: block; }
.tn-saison p:last-child { margin: 0; font-size: 1.02rem; }
.tn-maintenant { margin-left: auto; font: 500 .72rem "iA Writer Mono", monospace; letter-spacing: 0; text-transform: none; color: var(--c-texte-2); }
.tn-cadre-saisons > img { object-position: 66% 50%; }
.tn-etiquette-photo {
	position: absolute; left: 1rem; right: 1rem; bottom: 1rem; margin: 0; padding: .75rem 1rem; border-radius: 12px; font-weight: 500; font-size: .95rem;
	background: color-mix(in srgb, var(--c-surface) 94%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--o-carte);
}

/* ---------- 8. questions ---------- */
.tn-questions-grille { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 1.5rem; align-items: start; }
.tn-lettre { padding: 1.8rem; }
.tn-lettre blockquote { margin: .4rem 0 1.2rem; padding: 0; border: 0; font: 500 1.12rem/1.55 var(--f-texte); font-style: normal; color: var(--c-texte); }
.tn-lettre-rep { margin: 0; padding-top: 1.1rem; border-top: var(--tn-trait); color: var(--c-texte-2); }
.tn-lettre-rep b { color: var(--c-texte); }
.tn-faq { display: grid; gap: .6rem; }
.tn-faq details { padding: 0 1.2rem; box-shadow: none; }
.tn-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 56px; padding: .6rem 0; font-weight: 600; }
.tn-faq summary::-webkit-details-marker { display: none; }
.tn-faq summary::after { content: "+"; flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--c-doux); color: var(--c-sur-doux); font-weight: 500; transition: transform .25s; }
.tn-faq details[open] summary::after { content: "−"; background: var(--c-primaire); color: var(--c-sur-primaire); }
.tn-faq details p { margin: 0 0 1.1rem; color: var(--c-texte-2); }

/* ---------- 9. lexique ---------- */
.tn-mots { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; margin: 0 auto 1.4rem; max-width: 900px; }
.tn-mot {
	min-height: 44px; padding: .5rem 1.05rem; cursor: pointer; border: var(--tn-trait); border-radius: 999px; background: var(--c-surface);
	color: var(--c-texte); font: 500 .95rem var(--f-texte); transition: background .2s, color .2s, border-color .2s;
}
.tn-mot:hover { border-color: var(--c-secondaire); }
.tn-mot.est-actif { background: var(--c-texte); color: var(--c-fond); border-color: var(--c-texte); }
.tn-definitions { margin: 0 auto; max-width: 760px; display: grid; }
.tn-definition { grid-area: 1 / 1; padding: 1.5rem 1.8rem; visibility: hidden; }
.tn-definition.est-actif { visibility: visible; animation: tn-entre .45s ease; }
.tn-definition dt { font: 700 1.2rem/1.2 var(--f-titre); margin-bottom: .5rem; color: var(--c-primaire-texte); }
.tn-definition dd { margin: 0; font-size: 1.05rem; }
html:not(.tn-js) .tn-definitions { gap: .8rem; }
html:not(.tn-js) .tn-definition { grid-area: auto; visibility: visible; }

/* ---------- 10. rédaction ---------- */
.tn-compteurs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 760px; margin: 0 auto 2.6rem; text-align: center; }
.tn-compteurs div + div { border-left: var(--tn-trait); }
.tn-compteurs dt { font: 700 clamp(2.4rem, 5vw, 3.4rem)/1 var(--f-titre); color: var(--c-primaire-texte); letter-spacing: -0.04em; }
.tn-compteurs dd { margin: .5rem 0 0; color: var(--c-texte-2); }
.tn-auteurs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.tn-auteur { padding: 1.4rem; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 1rem; align-items: center; }
.tn-auteur img { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; border: 3px solid var(--c-doux); }
.tn-auteur h3 { font-size: 1.05rem; margin: 0; }
.tn-auteur h3 a { text-decoration: none; }
.tn-auteur h3 a:hover { color: var(--c-primaire-texte); }
.tn-auteur-role { margin: .15rem 0 .35rem; font-size: .85rem; color: var(--c-texte-2); line-height: 1.35; }
.tn-auteur-n { margin: 0; font-size: .85rem; }
.tn-auteur-n b { font: 700 1rem var(--f-titre); color: var(--c-primaire-texte); }
.tn-auteur-bio { grid-column: 1 / -1; margin: 0; font-size: .92rem; color: var(--c-texte-2); }
.tn-engagements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; margin-top: 1.1rem; }
.tn-engagements > div { padding: 1.4rem 1.6rem; border-radius: var(--tn-rayon); background: var(--c-fond-2); }
.tn-engagements h3 { font-size: 1.05rem; margin: 0 0 .8rem; }
.tn-engagements ol { margin: 0; padding: 0; list-style: none; display: grid; gap: .7rem; counter-reset: e; }
.tn-engagements li { counter-increment: e; display: grid; grid-template-columns: 2rem minmax(0, 1fr); font-size: .93rem; color: var(--c-texte-2); }
.tn-engagements li::before { content: "0" counter(e); grid-row: span 2; font: 500 .8rem/1.7 "iA Writer Mono", monospace; color: var(--c-primaire-texte); }
.tn-engagements li b { color: var(--c-texte); font-weight: 600; }

/* ---------- 11. fin ---------- */
.tn-fin { background: var(--tn-doux); }
.tn-fin .tn-pastille { background: var(--c-surface); }
.tn-carnet { padding: 1.6rem; }
.tn-jours { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.tn-jour {
	width: 100%; aspect-ratio: 1; display: grid; place-items: center; cursor: pointer; border-radius: 12px; border: 2px dashed var(--c-bord); background: var(--c-fond);
	color: var(--c-texte-2); font: 600 .82rem var(--f-texte); transition: background .25s, border-color .25s, color .25s, transform .2s;
}
.tn-jour:hover { border-color: var(--c-secondaire); }
.tn-jour[aria-pressed="true"] { background: var(--c-primaire); border: 2px solid var(--c-primaire); color: var(--c-sur-primaire); }
.tn-jour.est-aujourdhui { border-style: solid; border-color: var(--c-texte); color: var(--c-texte); }
.tn-jour.est-aujourdhui[aria-pressed="true"] { border-color: var(--c-primaire); color: var(--c-sur-primaire); }

/* apparitions (posées par tuning.js, jamais sans JS) */
.tn-js .tn-monte { opacity: 0; transform: translateY(22px); }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
	.tn-besoins { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tn-cartes-quiz { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tn-auteurs { grid-template-columns: minmax(0, 1fr); max-width: 640px; margin-inline: auto; }
}
@media (max-width: 960px) {
	.tn-hero { background: var(--c-fond); }
	.tn-hero-in { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.tn-deux, .tn-deux-inverse, .tn-gestes-grille, .tn-questions-grille { grid-template-columns: minmax(0, 1fr); }
	.tn-deux-inverse > figure { order: 2; }
	.tn-bilan { position: static; }
	.tn-cadre-photo { max-width: 460px; }
}
@media (max-width: 700px) {
	[data-bandeau], .announcement-bar { display: none !important; }
	[data-usine-page="home"] { --tn-col: calc(100% - 2.25rem); --tn-air: 4rem; }
	.tn-hero { padding-block: 1.6rem 3rem; }
	.tn-hero h1 { font-size: clamp(1.85rem, 8.4vw, 2.3rem); margin-bottom: 1rem; }
	.tn-pastille { font-size: .7rem; margin-bottom: .9rem; }
	.tn-chapo { font-size: 1rem; margin-bottom: 1.4rem; }
	.tn-actions .tn-btn { flex: 1 1 100%; }
	.tn-reperes { margin-top: 1.8rem; }
	.tn-reperes dt { font-size: 1.5rem; }
	.tn-scene { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
	.tn-frise { order: 2; padding: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
	.tn-frise::before, .tn-frise::after, .tn-heure::before { display: none; }
	.tn-heure { padding: .5rem .55rem; border-color: var(--c-bord); background: var(--c-surface); }
	.tn-heure-t { font-size: .74rem; }
	.tn-cadre { aspect-ratio: 1 / 1; max-height: none; overflow: visible; background: none; box-shadow: none; border-radius: 0; }
	.tn-photos { position: relative; aspect-ratio: 1 / 1; inset: auto; border-radius: calc(var(--tn-rayon) + 4px); overflow: hidden; box-shadow: var(--o-survol); background: var(--c-voile); }
	.tn-cadre { aspect-ratio: auto; }
	.tn-fiches { position: relative; left: auto; right: auto; bottom: auto; margin-top: -2.2rem; padding: 0 .7rem; }
	.tn-avance { border-radius: 0; }
	.tn-besoins, .tn-cartes-quiz, .tn-liste-gestes, .tn-engagements { grid-template-columns: minmax(0, 1fr); }
	.tn-comparatif div { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
	.tn-metronome { left: .8rem; right: .8rem; bottom: .8rem; }
	.tn-erreurs th, .tn-erreurs td { padding: .75rem .8rem; font-size: .9rem; }
	.tn-auteur { grid-template-columns: 64px minmax(0, 1fr); }
	.tn-auteur img { width: 64px; height: 64px; }
	.tn-compteurs dd { font-size: .85rem; }
	.tn-jours { gap: .3rem; }
	.tn-jour { font-size: .72rem; border-radius: 9px; }
	.tn-lettre { padding: 1.3rem; }
}

@media (prefers-reduced-motion: reduce) {
	.tn-photo, .tn-fiche, .tn-definition, .tn-besoin, .tn-heure, .tn-frise::after, .tn-jauge-val, .tn-temps li { transition: none !important; animation: none !important; }
	.tn-js .tn-monte { opacity: 1; transform: none; }
	.tn-avance { display: none; }
	.tn-js .tn-hero:not(.tn-pret) h1 em::after { transform: none; }
}
