/* TAP 2026 · composants et pages. Mobile d'abord (référence 390 px, 4 colonnes, marge 16, pas de 8).
   Tablette (768) et bureau (1024) sont dérivés sans nouveau composant : « dérivé, non validé par Max ». */
@layer base, components, pages, derived;

/* ---------------------------------------------------------------- base */
@layer base {
	*, *::before, *::after { box-sizing: border-box; }
	html { -webkit-text-size-adjust: 100%; }
	body { margin: 0; background: var(--tap-bg); color: var(--tap-white); font: 400 16px/1.5 var(--tap-sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
	h1, h2, h3, p, ol, ul, figure { margin: 0; padding: 0; }
	ol, ul { list-style: none; }
	a { color: inherit; text-decoration: none; }
	img, svg { display: block; max-width: 100%; }
	button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
	em, i, cite, dfn, var, address { font-style: normal; } /* aucun italique (R5) */
	:focus-visible { outline: 1px solid var(--tap-white); outline-offset: 2px; }
	[hidden] { display: none !important; }
	.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.tap-skip { position: absolute; left: -999px; top: 8px; z-index: 100000; background: var(--tap-white); color: var(--tap-ink); padding: 8px 12px; font: 400 14px/1 var(--tap-mono); }
	.tap-skip:focus { left: 16px; }
	.tap-hp { position: absolute; left: -9999px; }
	.tap-hp input { color: var(--tap-white); background: var(--tap-bg); border: 1px solid var(--tap-outline); }
	.tap-icon { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
	.tap-main { position: relative; z-index: 1; max-width: var(--tap-max); margin: 0 auto; padding: 0 var(--tap-margin); }
}

/* ---------------------------------------------------------------- components */
@layer components {
	/* Libellés mono */
	.tap-label, .tap-kicker, .tap-sep__tag, .tap-grid__all, .tap-brief__label { font-family: var(--tap-mono); font-weight: 400; color: var(--tap-grey-2); }
	.tap-label { font-size: 10px; line-height: 14px; letter-spacing: 1.5px; text-transform: uppercase; }
	.tap-kicker { font-size: 10px; line-height: 14px; letter-spacing: 1.5px; text-transform: uppercase; }
	.tap-kicker--tile { display: block; font-size: 9px; line-height: 12px; letter-spacing: .4px; }
	.tap-kicker--mark { color: var(--tap-grey-1); }
	.tap-kicker--mark::after { content: ''; display: block; width: 24px; height: 2px; margin-top: 6px; background: var(--tap-red); }
	time, .tap-date { font: 400 11px/14px var(--tap-mono); color: var(--tap-grey-2); text-transform: uppercase; }

	/* En-tête (4.1 / 4.2) */
	.tap-hd { position: relative; z-index: 10; max-width: var(--tap-max); margin: 0 auto; padding: 0 var(--tap-margin); background: transparent; }
	.tap-hd__row--top { height: 56px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--tap-line); }
	.tap-hd__icon { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; color: var(--tap-white); }
	.tap-hd__logo { display: flex; align-items: center; justify-content: center; width: 160px; height: 32px; }
	.tap-hd__logo .tap-lockup { width: 160px; height: auto; }
	.tap-hd__side { display: contents; }
	.tap-hd__date--d, .tap-pill.tap-pill--d { display: none; }
	.tap-hd__row--meta { height: 48px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--tap-line); }
	.tap-hd__date { font: 400 9px/12px var(--tap-mono); letter-spacing: 1.5px; color: var(--tap-grey-2); }
	.tap-pill { width: 112px; height: 28px; border-radius: 14px; background: var(--tap-white); color: var(--tap-ink); display: inline-flex; align-items: center; justify-content: space-between; padding: 0 14px 0 16px; font: 400 10px/1 var(--tap-mono); text-transform: uppercase; }
	.tap-pill .tap-icon { stroke-width: 1.75; }
	.tap-tabs { height: 36px; display: flex; align-items: flex-end; gap: 28px; border-bottom: 1px solid var(--tap-line); overflow-x: auto; scrollbar-width: none; }
	.tap-tabs::-webkit-scrollbar { display: none; }
	.tap-tabs__link { position: relative; flex: 0 0 auto; font: 400 13px/16px var(--tap-sans); color: var(--tap-grey-1); padding-bottom: 7px; }
	.tap-tabs__link.is-active { color: var(--tap-white); font-weight: 600; }
	.tap-tabs__link.is-active::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--tap-white); }
	.tap-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; }
	.tap-progress span { display: block; height: 2px; width: 0; background: var(--tap-white); }

	/* Médias */
	.tap-media { position: relative; overflow: hidden; border-radius: 2px; background: var(--tap-surface-3); }
	.tap-media__img { width: 100%; height: 100%; object-fit: cover; }
	.tap-media--une { aspect-ratio: 358 / 240; }
	.tap-media--grande { aspect-ratio: 358 / 220; }
	.tap-media--moyenne { width: 120px; height: 90px; }
	.tap-media--article { aspect-ratio: 390 / 244; border-radius: 0; }

	/* Méta : kicker à gauche, date à droite */
	.tap-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 11px; }

	/* Blocs de la home : 56 px entre blocs (3.3) */
	.tap-block + .tap-block, .tap-block + .tap-insight, .tap-insight + .tap-block { margin-top: var(--tap-block); }

	/* La une (4.3) */
	.tap-une { padding-top: 33px; }
	.tap-une__media { display: block; }
	.tap-une__title { margin-top: 11px; font: 600 26px/32px var(--tap-serif); color: var(--tap-white); }
	.tap-une__chapo { margin-top: 6px; font: 400 14px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-une + .tap-block { margin-top: 44px; }

	/* Grille de rubrique (4.4) */
	.tap-grid__head { border-top: 1px solid var(--tap-sep); padding: 16px 0 10px; border-bottom: 1px solid var(--tap-line); }
	.tap-grid__line { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
	.tap-grid__name { font: 600 22px/27px var(--tap-serif); color: var(--tap-white); }
	.tap-grid__all { font-size: 10px; letter-spacing: 1px; text-transform: uppercase; white-space: nowrap; }
	.tap-grid__sub { margin-top: 2px; font: 400 12px/16px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-grid__list { margin-top: var(--tap-card); }
	.tap-grid__item:not(:last-child) { border-bottom: 1px solid var(--tap-line); }
	.tap-grid__empty { margin-top: var(--tap-card); font: 400 14px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-card { display: block; }
	.tap-card__title { font: 600 15px/19px var(--tap-sans); color: var(--tap-white); }
	.tap-card__title--serif { margin-top: 5px; font: 600 22px/27px var(--tap-serif); }
	.tap-card__title--plain { font-weight: 500; }
	.tap-grid__item--grande .tap-card { padding-bottom: 14px; }
	.tap-card--moyenne { display: grid; grid-template-columns: 120px 1fr; column-gap: 12px; padding: 12px 0 15px; align-items: start; }
	.tap-card--moyenne .tap-card__title { margin-top: 5px; }
	.tap-card--moyenne .tap-card__body > :first-child { margin-top: 0; }
	.tap-card--moyenne time { display: block; margin-top: 3px; }
	.tap-card--texte { padding: 9px 0 12px; }
	.tap-card--texte time { display: block; margin-top: 3px; }
	.tap-card:hover .tap-card__title, .tap-une__link:hover .tap-une__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

	/* Séparateurs de données (4.5) : filet blanc au-dessus, aucun en dessous */
	.tap-sep { border-top: 1px solid var(--tap-sep); padding-top: 16px; }
	.tap-sep__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
	.tap-sep__title { font: 600 16px/20px var(--tap-serif); color: var(--tap-white); }
	.tap-sep__tag { font-size: 10px; line-height: 14px; letter-spacing: 1px; }
	.tap-sep__empty { margin-top: 12px; font: 400 14px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-rot { position: relative; margin-top: 12px; }
	.tap-rot__line { position: absolute; inset: 0 0 auto 0; opacity: 0; transition: opacity 600ms ease-in-out; pointer-events: none; }
	.tap-rot__line.is-on { opacity: 1; pointer-events: auto; }
	html:not(.tap-js) .tap-rot__line:first-child { position: relative; opacity: 1; }
	.tap-sep--tape .tap-rot { min-height: 20px; }
	.tap-sep--fil .tap-rot, .tap-sep--agenda .tap-rot { min-height: 58px; }
	.tap-rot__meta { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; }
	.tap-rot__bars { display: flex; gap: 4px; }
	.tap-rot__bars span { width: 8px; height: 2px; background: var(--tap-outline); }
	.tap-rot__bars span.is-on { background: var(--tap-white); }
	.tap-rot__ctrl { display: flex; align-items: center; gap: 12px; }
	.tap-rot__count, .tap-rot__btn { font: 400 10px/14px var(--tap-mono); letter-spacing: 1px; color: var(--tap-grey-2); }
	.tap-rot__btn { text-decoration: underline; text-underline-offset: 2px; }
	.tap-tape { display: flex; }
	.tap-rot__line .tap-tape__label, .tap-tape__label { flex: 0 0 170px; font: 400 14px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-tape__value { font: 600 14px/20px var(--tap-sans); color: var(--tap-white); }
	.tap-tape__change { margin-left: auto; font: 400 13px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-sep--tape .tap-rot__line { display: flex; align-items: baseline; }
	.tap-fil__link { display: block; }
	.tap-fil__link .tap-date { display: block; }
	.tap-fil__title { display: block; margin-top: 6px; font: 500 15px/19px var(--tap-sans); color: var(--tap-white); }

	/* Insight (4.7, phase 2) */
	.tap-insight { margin-top: 24px; }
	.tap-insight__title { margin-top: 8px; font: 400 15px/19px var(--tap-sans); color: var(--tap-white); }
	.tap-insight__chart { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
	.tap-insight__chart svg { flex: 1 1 auto; height: auto; }
	.tap-insight__peak { font: 500 11px var(--tap-sans); fill: var(--tap-white); }
	.tap-insight__axis { font: 400 11px var(--tap-sans); fill: var(--tap-grey-2); }
	.tap-insight__final { display: flex; flex-direction: column; }
	.tap-insight__value { font: 600 24px/28px var(--tap-sans); color: var(--tap-blue); }
	.tap-insight__flabel { font: 500 12px/16px var(--tap-sans); color: var(--tap-white); }
	.tap-insight__source { margin-top: 8px; font: 400 11px/15px var(--tap-sans); color: var(--tap-grey-2); }
	.tap-insight__source a { text-decoration: underline; }

	/* Bloc Opinion (4.6) */
	.tap-opinion { border: 1.25px solid var(--tap-blue); border-radius: 2px; padding: 20px; }
	.tap-opinion__word { display: inline-flex; align-items: center; gap: 2px; font: 700 28px/34px var(--tap-serif); color: var(--tap-blue); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
	.tap-opinion__word .tap-icon { stroke-width: 2; }
	.tap-opinion__body { display: block; margin-top: 18px; }
	.tap-opinion__top { display: flex; justify-content: space-between; gap: 18px; }
	.tap-opinion__text { display: block; }
	.has-avatar .tap-opinion__text { max-width: 256px; }
	.tap-opinion__author { display: block; font: 600 17px/22px var(--tap-sans); color: var(--tap-white); }
	.tap-opinion__title { display: block; margin-top: 10px; font: 600 22px/28px var(--tap-serif); color: var(--tap-white); }
	.tap-opinion__avatar { flex: 0 0 60px; width: 60px; height: 60px; border-radius: 50%; overflow: hidden; background: transparent; }
	.tap-opinion__avatar img { width: 60px; height: 60px; object-fit: cover; }
	.tap-opinion__chapo { display: block; margin-top: 10px; font: 400 14px/22px var(--tap-sans); color: var(--tap-grey-1); }

	/* Le Brief (4.9) */
	.tap-brief { border-top: 1px solid var(--tap-sep); border-bottom: 1px solid var(--tap-sep); padding: 18px 0 24px; }
	.tap-brief__label { font-size: 10px; line-height: 14px; color: var(--tap-white); text-transform: uppercase; }
	.tap-brief__title { margin-top: 12px; font: 600 26px/32px var(--tap-serif); color: var(--tap-white); }
	.tap-brief__text { margin-top: 6px; font: 400 14px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-brief__form { margin-top: 16px; }
	.tap-brief__form .tap-btn { margin-top: 10px; height: 44px; }
	.tap-brief__note { margin-top: 14px; font: 400 11px/15px var(--tap-sans); color: var(--tap-grey-2); }
	.tap-brief__note a { text-decoration: underline; }
	.tap-brief__status { margin-top: 12px; font: 400 14px/20px var(--tap-sans); color: var(--tap-white); }

	/* Champs et boutons (4.11) */
	.tap-field__label { display: block; margin-bottom: 8px; font: 400 12px/16px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-field { display: block; width: 100%; height: 44px; border-radius: 6px; border: 1px solid var(--tap-outline); background: var(--tap-surface-1); color: var(--tap-white); font: 400 14px/1 var(--tap-sans); padding: 0 14px; }
	.tap-field::placeholder { color: var(--tap-grey-2); opacity: 1; }
	.tap-field:focus { border-color: var(--tap-white); outline: none; }
	/* Trait d'erreur de 1,5 px : Chrome arrondit les bordures fractionnaires, d'où 1 px de bordure + 0,5 px d'ombre intérieure. */
	.tap-field.is-error { border: 1px solid var(--tap-red); box-shadow: inset 0 0 0 .5px var(--tap-red); }
	.tap-field__error { display: flex; align-items: center; gap: 8px; margin-top: 10px; font: 400 14px/20px var(--tap-sans); color: var(--tap-white); }
	.tap-field__error .tap-icon { color: var(--tap-red); }
	.tap-field__wrap { position: relative; display: block; }
	.tap-field__wrap .tap-field { padding-right: 48px; }
	.tap-field__eye { position: absolute; right: 12px; top: 12px; color: var(--tap-grey-1); }
	.tap-btn { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; height: 48px; border-radius: 6px; font: 400 14px/1 var(--tap-mono); }
	.tap-btn--full { background: var(--tap-white-btn); color: var(--tap-ink); }
	.tap-btn--full:hover { background: var(--tap-white); }
	.tap-btn--google { height: 52px; background: var(--tap-white-btn); color: var(--tap-ink); }
	.tap-google-mark { width: 20px; height: 20px; }
	.tap-notice { margin-top: 16px; font: 400 14px/20px var(--tap-sans); color: var(--tap-white); }

	/* Chips et listes de la recherche (4.12) */
	.tap-chip { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border: 1px solid var(--tap-outline); border-radius: 16px; font: 400 14px/1 var(--tap-sans); color: var(--tap-white); }
}

/* ---------------------------------------------------------------- pages */
@layer pages {
	/* Recherche version A : le champ remplace la rangée du haut, la page reste visible derrière */
	.tap-search { position: fixed; z-index: 99990; top: 0; left: 0; right: 0; background: var(--tap-bg); border-bottom: 1px solid var(--tap-line); padding: 0 var(--tap-margin) 24px; }
	.tap-search__bar { height: 56px; display: flex; align-items: center; gap: 12px; max-width: var(--tap-max); margin: 0 auto; }
	.tap-search__field { flex: 0 0 296px; height: 40px; display: flex; align-items: center; gap: 10px; padding: 0 12px; border-radius: 10px; background: var(--tap-surface-2); border: 1px solid rgb(255 255 255 / .55); color: var(--tap-grey-1); }
	.tap-search__field input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--tap-white); font: 400 15px/1 var(--tap-sans); outline: none; }
	.tap-search__field input::placeholder { color: var(--tap-grey-2); }
	.tap-search__cancel { margin-left: auto; font: 400 14px/1 var(--tap-sans); color: var(--tap-white); }
	.tap-search__panel { max-width: var(--tap-max); margin: 16px auto 0; }
	.tap-search__head { display: flex; justify-content: space-between; align-items: baseline; }
	.tap-search__clear { font: 400 10px/14px var(--tap-mono); letter-spacing: 1.5px; color: var(--tap-grey-2); text-transform: uppercase; }
	.tap-search__list { margin: 8px 0 24px; }
	.tap-search__list a { display: flex; align-items: center; gap: 12px; height: 44px; border-bottom: 1px solid var(--tap-line); font: 400 15px/1 var(--tap-sans); }
	.tap-search__list a span { flex: 1; }
	.tap-search__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

	/* Menu plein écran (non maquetté) */
	.tap-menu { position: fixed; inset: 0; z-index: 99999; background: var(--tap-bg); overflow-y: auto; padding: 0 var(--tap-margin) 40px; }
	.tap-menu__label { margin-top: 32px; }
	.tap-menu__list li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--tap-line); font: 600 22px/27px var(--tap-serif); }
	html.tap-locked, html.tap-locked body { overflow: hidden; }

	/* Feuille de partage (4.13) */
	.tap-share { position: fixed; inset: 0; z-index: 99995; background: rgb(15 15 15 / .6); display: flex; align-items: flex-end; }
	.tap-share__sheet { width: 100%; max-width: 560px; margin: 0 auto; background: var(--tap-surface-1); border-radius: 12px 12px 0 0; padding: 8px var(--tap-margin) 24px; }
	.tap-share__grip { display: block; width: 36px; height: 4px; margin: 0 auto 12px; border-radius: 2px; background: var(--tap-outline); }
	.tap-share__head { display: flex; justify-content: space-between; align-items: center; height: 44px; }
	.tap-share__title { font: 600 18px/24px var(--tap-serif); }
	.tap-share__row { width: 100%; height: 52px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--tap-line); font: 400 15px/1 var(--tap-sans); text-align: left; }

	/* Article (5.2) */
	.tap-article .tap-hd--compact, body.single .tap-hd--compact { position: sticky; top: 0; background: var(--tap-bg); }
	.tap-article__in { max-width: var(--tap-read); }
	.tap-article__head { padding-top: 32px; }
	.tap-article__title { margin-top: 14px; font: 600 30px/36px var(--tap-serif); color: var(--tap-white); }
	.tap-article__chapo { margin-top: 14px; font: 400 17px/26px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-byline { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; padding: 12px 0; border-top: 1px solid var(--tap-line); border-bottom: 1px solid var(--tap-line); }
	/* Deux lignes fixes (signature, puis date et durée) : la hauteur ne dépend pas de la police chargée (CLS). */
	.tap-byline__text { display: flex; flex-direction: column; gap: 4px; font: 400 11px/14px var(--tap-mono); color: var(--tap-grey-1); }
	.tap-byline__text time { color: inherit; }
	.tap-byline__actions { display: flex; gap: 16px; }
	.tap-article__photo { margin: 24px calc(-1 * var(--tap-margin)) 0; }
	.tap-article__credit { padding: 8px var(--tap-margin) 0; font: 400 11px/15px var(--tap-sans); color: var(--tap-grey-2); }
	.tap-article__body { margin-top: 24px; font: 400 17px/28px var(--tap-sans); color: var(--tap-white); }
	.tap-article__body > * + * { margin-top: 20px; }
	.tap-article__body h2, .tap-article__body h3 { margin-top: 36px; font: 600 22px/28px var(--tap-serif); }
	.tap-article__body blockquote { margin: 32px 0 0; padding: 0; font: 600 22px/29px var(--tap-serif); }
	.tap-article__body blockquote::before { content: ''; display: block; width: 24px; height: 1px; margin-bottom: 16px; background: var(--tap-white); }
	.tap-article__body a { text-decoration: underline; text-underline-offset: 3px; }
	.tap-article__body figure, .tap-article__body img { max-width: 100%; height: auto; }
	.tap-article__body ul, .tap-article__body ol { padding-left: 20px; }
	.tap-article__body ul { list-style: disc; }
	.tap-article__body ol { list-style: decimal; }
	.tap-retenir { margin-top: 40px; }
	.tap-retenir::before { content: ''; display: block; width: 48px; height: 2px; margin-bottom: 10px; background: var(--tap-red); }
	.tap-retenir .tap-label { padding-bottom: 12px; border-bottom: 1px solid var(--tap-sep); color: var(--tap-white); }
	.tap-retenir__list li { display: flex; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--tap-line); }
	.tap-retenir__list li:last-child { border-bottom: 1px solid var(--tap-sep); }
	.tap-retenir__n { flex: 0 0 auto; font: 400 12px/24px var(--tap-mono); color: var(--tap-grey-2); }
	.tap-retenir__t { font: 600 17px/24px var(--tap-serif); }
	.tap-article__fix { margin-top: 24px; font: 400 14px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-article__fix a { text-decoration: underline; text-underline-offset: 3px; }
	.tap-next { margin-top: var(--tap-block); border-top: 1px solid var(--tap-sep); padding-top: 16px; }
	.tap-next .tap-grid__list { margin-top: 12px; }
	.tap-article .tap-brief { margin-top: var(--tap-block); }

	/* Pages d'entonnoir (5.3, 5.4) : un écran de 844 px, contenu sur le fond */
	body.page-template-default.tap-secondary, body.tap-secondary { min-height: 100svh; display: flex; flex-direction: column; }
	.tap-secondary .tap-main { flex: 1 0 auto; width: 100%; }
	.tap-secondary .tap-hd { width: 100%; }
	.tap-funnel, .tap-page { padding-top: 47px; padding-bottom: 48px; }
	.tap-funnel__title { margin-top: 30px; font: 600 36px/42px var(--tap-serif); color: var(--tap-white); }
	.tap-funnel__lead { margin-top: 12px; font: 400 17px/26px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-auth { margin-top: 42px; }
	.tap-auth__toggle { display: inline-flex; align-items: center; gap: 8px; margin-top: 30px; font: 500 15px/20px var(--tap-sans); color: var(--tap-white); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px; }
	.tap-auth__or { display: none; }
	html.tap-js .tap-auth:not(.is-open) .tap-auth__form { display: none; }
	.tap-auth.is-open .tap-auth__toggle { display: none; }
	.tap-auth.is-open .tap-btn--google { height: 48px; background: transparent; color: var(--tap-white); border: 1px solid rgb(255 255 255 / .55); font: 500 15px/1 var(--tap-sans); }
	.tap-auth.is-open .tap-auth__or { display: flex; align-items: center; gap: 16px; margin: 24px 0 20px; font: 400 9px/1 var(--tap-mono); letter-spacing: 1.5px; text-transform: uppercase; color: var(--tap-grey-1); }
	.tap-auth.is-open .tap-auth__or::before, .tap-auth.is-open .tap-auth__or::after { content: ''; flex: 1; height: 1px; background: rgb(255 255 255 / .25); }
	.tap-auth__form .tap-field__label { margin-top: 0; }
	.tap-auth__form .tap-field + .tap-field__label, .tap-auth__form .tap-field__wrap + .tap-field__label { margin-top: 16px; }
	.tap-auth__form .tap-btn--main { margin-top: 16px; }
	.tap-auth__lost { margin-top: 14px; font: 500 15px/20px var(--tap-sans); }
	.tap-auth__lost a { text-decoration: underline; text-underline-offset: 4px; }
	.tap-funnel__consent { margin-top: 26px; font: 400 11px/15px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-funnel__consent a, .tap-funnel__switch a { color: var(--tap-white); text-decoration: underline; text-underline-offset: 3px; }
	.tap-funnel__switch { margin-top: 24px; font: 400 14px/20px var(--tap-sans); color: var(--tap-grey-1); }
	.tap-funnel > .tap-btn { margin-top: 32px; }
	.tap-legal { position: relative; z-index: 1; padding: 16px var(--tap-margin) 20px; text-align: center; }
	.tap-legal p { font: 400 8px/12px var(--tap-mono); letter-spacing: 1.5px; color: var(--tap-grey-1); }

	/* Pages secondaires (lecture) */
	.tap-page__body { max-width: var(--tap-read); margin-top: 32px; }
	.tap-archive__list { margin-top: 32px; }
	.tap-pager { margin-top: 32px; display: flex; gap: 16px; font: 400 12px/1 var(--tap-mono); color: var(--tap-grey-1); }
	.tap-pager .current { color: var(--tap-white); }
	.tap-pager a, .tap-pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 24px; }

	/* Fond atmosphère, accueil et article (pack « vega ») : géométrie des maquettes 01 à 03.
	   Bleu nuit cx 30, cy 60, r 400 (0,70 / 0,35 / 0) ; braise cx 400, cy 860, r 520 (0,38 / 0,19 / 0) ; hauteur 1400. */
	.tap-ambient { position: absolute; top: 0; left: 0; right: 0; height: 1400px; overflow: hidden; pointer-events: none; z-index: 0;
		background:
			radial-gradient(circle 400px at 30px 60px, rgb(var(--tap-ambient-navy) / .7) 0%, rgb(var(--tap-ambient-navy) / .35) 55%, rgb(var(--tap-ambient-navy) / 0) 100%),
			radial-gradient(circle 520px at 400px 860px, rgb(var(--tap-ambient-ember) / .38) 0%, rgb(var(--tap-ambient-ember) / .19) 55%, rgb(var(--tap-ambient-ember) / 0) 100%); }

	/* Pied de page (4.10) */
	.tap-footer { position: relative; z-index: 1; margin-top: var(--tap-block); background: var(--tap-coral); color: var(--tap-ink); }
	.tap-footer__in { max-width: var(--tap-max); margin: 0 auto; padding: 32px var(--tap-margin) 28px; }
	.tap-footer__logo { display: inline-block; }
	.tap-footer__logo .tap-lockup { width: 170px; height: auto; }
	.tap-footer__baseline { margin-top: 18px; font: 400 9px/12px var(--tap-mono); letter-spacing: 2px; text-transform: uppercase; }
	.tap-footer__desc { margin-top: 14px; max-width: 360px; font: 400 14px/20px var(--tap-sans); }
	.tap-footer__cols { display: grid; grid-template-columns: 160px 1fr; column-gap: 27px; grid-template-areas: "rub media" "legal media"; margin-top: 30px; }
	.tap-footer__col:nth-child(1) { grid-area: rub; }
	.tap-footer__col:nth-child(2) { grid-area: media; }
	.tap-footer__col:nth-child(3) { grid-area: legal; margin-top: 30px; }
	.tap-footer__head { font: 400 10px/14px var(--tap-mono); letter-spacing: 2px; text-transform: uppercase; padding-bottom: 6px; border-bottom: 1px solid rgb(17 17 17 / .5); }
	.tap-footer__col li { margin-top: 12px; font: 500 14px/19px var(--tap-sans); }
	.tap-footer__col a:hover { text-decoration: underline; }
	.tap-footer__legal { margin-top: 40px; padding-top: 16px; border-top: 1px solid rgb(17 17 17 / .5); }
	.tap-footer__legal p { font: 400 10px/20px var(--tap-mono); letter-spacing: 1px; }
	.tap-footer__legal p + p { text-transform: uppercase; }
	.tap-home .tap-brief + * { margin-top: var(--tap-block); }
}

/* ---------------------------------------------------------------- dérivés (non validés par Max) */
@layer derived {
	@media (min-width: 768px) {
		.tap-main { padding: 0 24px; }
		.tap-hd { padding: 0 24px; }
		.tap-home { max-width: 760px; }
		.tap-grid__list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
		.tap-grid__item--grande { grid-column: 1 / -1; }
	}
	@media (prefers-reduced-motion: reduce) {
		.tap-rot__line { transition: none; }
	}
}

/* Recovery 2026-10-13: readable live data, no change to editorial words. */
.tap-home .tap-sep--tape { padding-top:20px; }
.tap-home .tap-sep--tape .tap-sep__title { font:600 24px/30px var(--tap-serif); }
.tap-home .tap-sep--tape .tap-sep__tag { font-size:12px;line-height:18px;letter-spacing:.5px;color:var(--tap-grey-1); }
.tap-home .tap-sep--tape .tap-rot { min-height:70px;margin-top:20px; }
.tap-home .tap-sep--tape .tap-rot__line { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:baseline; }
.tap-home .tap-sep--tape .tap-tape__label { grid-column:1/-1;font:500 16px/22px var(--tap-sans); }
.tap-home .tap-sep--tape .tap-tape__value { font:600 26px/32px var(--tap-sans); }
.tap-home .tap-sep--tape .tap-tape__change { font:500 16px/22px var(--tap-sans); }
.tap-home .tap-sep--tape .tap-rot__btn,.tap-home .tap-sep--tape .tap-rot__count { font-size:12px;line-height:18px;color:var(--tap-grey-1); }
.tap-home .tap-insight__source { font-size:13px;line-height:20px; }
.tap-home .tap-insight__title { font-size:18px;line-height:25px; }
.tap-home .tap-opinion__author { font-size:18px;line-height:25px; }
.tap-home .tap-opinion__chapo { font-size:16px;line-height:25px; }
@media(min-width:1024px){
 .tap-home .tap-sep--tape .tap-rot { max-width:900px; }
 .tap-home .tap-sep--tape .tap-rot__line { grid-template-columns:240px minmax(0,1fr) auto;gap:24px;align-items:center; }
 .tap-home .tap-sep--tape .tap-tape__label { grid-column:auto;font-size:18px;line-height:26px; }
 .tap-home .tap-sep--tape .tap-tape__value { font-size:30px;line-height:38px; }
 .tap-home .tap-sep--tape .tap-rot { min-height:40px; }
}
/* Desktop chart: keep the axis labels at reading size rather than scaling the mobile SVG type. */
@media(min-width:1024px){
 .tap-home .tap-insight__chart { max-width:none!important;gap:32px; }
 .tap-home .tap-insight__chart svg { max-width:800px;flex:1 1 800px; }
 .tap-home .tap-insight__axis { font:400 5px var(--tap-mono); }
 .tap-home .tap-insight__peak { font:500 6px var(--tap-mono); }
 .tap-home .tap-insight__final { flex:1;min-width:140px; }
 .tap-home .tap-insight__value { font-size:40px;line-height:48px; }
 .tap-home .tap-insight__flabel { font-size:14px;line-height:22px;max-width:210px; }
}

/* Editorial density: larger complete headlines, no truncation and no new copy. */
.tap-home .tap-card--moyenne .tap-card__title { font:600 18px/24px var(--tap-sans); }
.tap-home .tap-card--texte .tap-card__title { font:600 18px/25px var(--tap-sans); }
.tap-home .tap-card--grande .tap-card__title { font:600 26px/33px var(--tap-serif); }
@media(min-width:1024px){
 .tap-home .tap-card__title { max-width:34ch;font:600 23px/30px var(--tap-sans); }
 .tap-home .tap-card--grande .tap-card__title { font:600 30px/38px var(--tap-serif);max-width:32ch; }
 .tap-home .tap-card--texte .tap-card__title { font:600 21px/28px var(--tap-sans); }
 .tap-home .tap-opinion__title { max-width:38ch; }
}
@media(min-width:1024px){
 .tap-home .tap-card--moyenne .tap-card__title { font:600 24px/31px var(--tap-sans);max-width:24ch; }
 .tap-home .tap-card--texte .tap-card__title { max-width:25ch; }
}

/* Signup and login atmosphere: existing TAP rosette, navy-to-blue glow. */
body:has(.tap-funnel[data-block="abonnement"]),body:has(.tap-funnel[data-block="connexion"]) { position:relative;isolation:isolate; }
body.search::before,body:has(.tap-funnel[data-block="abonnement"])::before,body:has(.tap-funnel[data-block="connexion"])::before {
 content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
 background:radial-gradient(ellipse at 18% 20%,rgb(39 96 157 / .85),transparent 68%),linear-gradient(135deg,#142D4C 0%,#10243D 55%,#0F0F0F 100%);
}
body:has(.tap-funnel[data-block="abonnement"])::after,body:has(.tap-funnel[data-block="connexion"])::after {
 content:'';position:fixed;right:-90px;top:22%;width:400px;height:400px;z-index:-1;opacity:.07;pointer-events:none;
 background:url('../brand/tap-rosace-white.png') center/contain no-repeat;
}
body:has(.tap-funnel[data-block="abonnement"]) .tap-hd,body:has(.tap-funnel[data-block="connexion"]) .tap-hd { background:transparent; }
@media(min-width:1024px){
 body:has(.tap-funnel[data-block="abonnement"])::after,body:has(.tap-funnel[data-block="connexion"])::after { width:680px;height:680px;right:3%;top:10%; }
}

/* Article desktop: compact header is outside main.tap-article. */
@media (min-width:1024px) {
 .tap-hd--compact .tap-hd__row--top > .tap-hd__icon:first-child { justify-self:start; }
 .tap-hd--compact .tap-hd__row--top > .tap-hd__icon:last-child { justify-self:end; }
}

/* Insight: complete kt scale and all monthly reference labels. */
.tap-insight__chart { flex-wrap:wrap; }
.tap-insight__chart svg { flex:1 1 100%; width:100%; }
.tap-insight__axis { font:400 11px var(--tap-mono); fill:#b8b8b8; }
.tap-insight__peak { font:500 11px var(--tap-mono); }
.tap-insight__final { flex-direction:row; align-items:baseline; gap:12px; }
.tap-insight__source { font-size:12px; line-height:18px; max-width:900px; }
@media(min-width:1024px) {
 .tap-insight__chart { flex-wrap:nowrap; }
 .tap-insight__chart svg { flex:0 1 680px; width:680px; }
 .tap-insight__axis,.tap-insight__peak { font-size:8px; }
 .tap-insight__final { flex-direction:column; gap:4px; min-width:150px; }
}

.tap-insight__final { display:block; max-width:280px; }
.tap-insight__final p+p { margin-top:6px; }
@media (min-width:1024px) { .tap-insight__final { min-width:220px; } }

/* Desktop share sheet: compact window at the article action, not a mobile bottom sheet. */
@media (min-width:1024px) {
 .tap-share { align-items:flex-start; justify-content:flex-end; padding:110px 60px 32px; }
 .tap-share__sheet { width:340px; max-width:340px; margin:0; border:1px solid var(--tap-line); border-radius:6px; padding:8px 20px 20px; }
 .tap-share__grip { display:none; }
}

/* Mobile/tablet flow for the three-column section grids. No horizontal rules. */
@media(max-width:1023px) {
 .tap-grid__columns { margin-top:16px; }
 .tap-grid__stack { margin-top:20px; }
 .tap-grid__columns .tap-grid__item { border:0; }
 .tap-grid__columns .tap-card { padding-top:0; padding-bottom:0; }
 .tap-grid__stack .tap-grid__item + .tap-grid__item { margin-top:24px; }
}
@media(min-width:768px) and (max-width:1023px) {
 .tap-grid__columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
 .tap-grid__lead { grid-column:1/-1; }
 .tap-grid__stack { margin-top:0; }
 .tap-grid__stack + .tap-grid__stack { border-left:1px solid var(--tap-line); padding-left:24px; }
}
/* Search layout, 2026-10-14: match TAP navy glow; preserve masthead and usable controls. */
body.search { isolation:isolate; }

body.search .tap-hd { background:transparent; }
body.search .tap-page[data-block="recherche"] { min-height:50vh; }
.tap-search { top:var(--tap-search-top,56px);z-index:9990;max-height:var(--tap-search-height,calc(100dvh - 56px));overflow-y:auto;overscroll-behavior:contain;padding:12px var(--tap-margin) 24px;box-shadow:0 12px 32px rgb(0 0 0 / .35); }
.tap-search__bar { gap:8px;height:auto;min-height:48px; }
.tap-search__field { flex:1 1 auto;min-width:0; }
.tap-search__field input { font-size:16px; }
.tap-search__cancel { flex:0 0 auto;min-height:44px;padding:0 8px;margin-left:0; }