/*
Theme Name: TAA
Theme URI: https://theadultaffiliate.com/
Author: TAA
Description: Field notes of The Adult Affiliate. Plum ink on lilac paper, one brass accent, and a verdict ticket on top of every article.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
License: GPLv2 or later
Text Domain: taa
*/

/* ---------- Dark mode: same tokens, night version ---------- */
@media (prefers-color-scheme: dark) {
	:root {
		--wp--preset--color--paper: #1b1320;
		--wp--preset--color--ink: #ece6ee;
		--wp--preset--color--muted: #a898ad;
		--wp--preset--color--plum: #d2a6da;
		--wp--preset--color--brass: #d4ae62;
		--wp--preset--color--mist: #3a2c40;
		--wp--preset--color--shade: #261b2c;
	}
}

html { -webkit-text-size-adjust: 100%; }
body { font-optical-sizing: auto; text-rendering: optimizeLegibility; }

a { text-decoration-thickness: 1px; text-underline-offset: 0.18em; text-decoration-color: var(--wp--preset--color--mist); transition: text-decoration-color .15s; }
a:hover { text-decoration-color: currentColor; }
:where(a, button, input, summary):focus-visible { outline: 2px solid var(--wp--preset--color--brass); outline-offset: 3px; border-radius: 2px; }

::selection { background: var(--wp--preset--color--brass); color: #1b1320; }

/* ---------- Header ---------- */
.taa-header { padding-block: 1.4rem; }
.taa-wordmark { margin: 0; font-family: var(--wp--preset--font-family--grotesk); line-height: 1; }
.taa-wordmark a { color: var(--wp--preset--color--ink); text-decoration: none; display: inline-flex; align-items: baseline; gap: .55rem; }
.taa-wordmark b { font-size: 1.65rem; font-weight: 700; letter-spacing: -0.04em; }
.taa-wordmark i { font-family: var(--wp--preset--font-family--serif); font-size: 1.05rem; color: var(--wp--preset--color--muted); }
.taa-header .wp-block-navigation a { text-decoration: none; color: var(--wp--preset--color--ink); }
.taa-header .wp-block-navigation a:hover { color: var(--wp--preset--color--plum); }

/* ---------- Covers (images générées, 5:2) ---------- */
.taa-cover { margin-block: 2rem 0.5rem; }
.taa-cover img { border-radius: 12px; display: block; }
.taa-list .taa-cover { margin: 0 0 1rem; }
.taa-list .taa-cover a { display: block; }

/* ---------- Home: plain list of articles ---------- */
.taa-intro { font-size: var(--wp--preset--font-size--large); line-height: 1.45; color: var(--wp--preset--color--muted); }
.taa-list .wp-block-post { padding-block: 1.6rem; }
.taa-list .wp-block-post + .wp-block-post { border-top: 1px solid var(--wp--preset--color--mist); }
.taa-list .wp-block-post-title { font-size: var(--wp--preset--font-size--large); margin: 0 0 .35rem; }
.taa-list .wp-block-post-title a:hover { color: var(--wp--preset--color--plum); }
.taa-list .wp-block-post-excerpt { margin: 0; }
.taa-list .wp-block-post-excerpt__excerpt { margin: 0 0 .5rem; }
.taa-list .wp-block-post-date { margin: 0; }

/* ---------- Article ---------- */
.taa-byline { font-family: var(--wp--preset--font-family--grotesk); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.taa-byline > * { margin: 0; }
.entry-content > p:first-child { font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.entry-content li + li { margin-top: .4rem; }
.entry-content :where(ul, ol) { padding-left: 1.2rem; }
.entry-content li::marker { color: var(--wp--preset--color--brass); }
.entry-content :not(pre) > code { font-family: var(--wp--preset--font-family--code); font-size: .86em; background: var(--wp--preset--color--shade); padding: .1em .35em; border-radius: 4px; }
.entry-content pre.wp-block-code { overflow-x: auto; }

.entry-content .wp-block-table table { border-collapse: collapse; width: 100%; border: 0; }
.entry-content .wp-block-table th, .entry-content .wp-block-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--mist); padding: .6rem .7rem .6rem 0; text-align: left; vertical-align: top; }
.entry-content .wp-block-table thead { border: 0; }
.entry-content .wp-block-table thead th { font-weight: 600; border-bottom: 2px solid var(--wp--preset--color--ink); }
.wp-block-table figcaption { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

/* ---------- Signature: the verdict ticket ----------
   Admission ticket: plum stub on the left (our verdict, in brass), perforation, details on the right.
   Two notches are punched at the perforation. Stacked on phones (notches move to the sides).
   Markup = pattern "taa/verdict": group.taa-ticket > group.taa-ticket__stub (2 p) + table (3 rows). */
.taa-ticket {
	--notch: 13px;
	--stub: 11.5rem;
	display: grid;
	grid-template-columns: var(--stub) 1fr;
	margin-block: 2rem 2.6rem !important;
	background: #5b2a5e;
	color: #f2eaf3;
	border-radius: 10px;
	-webkit-mask: radial-gradient(circle var(--notch) at var(--stub) 0, #0000 98%, #000), radial-gradient(circle var(--notch) at var(--stub) 100%, #0000 98%, #000);
	-webkit-mask-composite: source-in;
	mask: radial-gradient(circle var(--notch) at var(--stub) 0, #0000 98%, #000), radial-gradient(circle var(--notch) at var(--stub) 100%, #0000 98%, #000);
	mask-composite: intersect;
}
.taa-ticket > * { margin: 0 !important; }
.taa-ticket__stub {
	padding: 1.3rem 1.4rem;
	border-right: 2px dashed rgb(242 234 243 / .3);
	display: flex; flex-direction: column; justify-content: center; gap: .2rem;
	font-family: var(--wp--preset--font-family--grotesk);
}
.taa-ticket__stub p { margin: 0; }
.taa-ticket__stub p:first-child { font-size: .95rem; color: rgb(242 234 243 / .72); }
.taa-ticket__stub p:last-child { font-size: 1.7rem; font-weight: 700; line-height: 1.05; letter-spacing: -0.02em; color: #d4ae62; }
.taa-ticket .wp-block-table { padding: 1.1rem 1.6rem; align-self: center; }
.taa-ticket table { font-family: var(--wp--preset--font-family--grotesk); font-size: 1rem; }
.entry-content .taa-ticket .wp-block-table th, .entry-content .taa-ticket .wp-block-table td { border: 0; padding: .28rem 0; }
.entry-content .taa-ticket .wp-block-table td:first-child { width: 45%; color: rgb(242 234 243 / .72); padding-right: 1rem; }
.taa-ticket td:last-child { font-weight: 600; }
@media (max-width: 36rem) {
	.taa-ticket {
		--stub-h: 6.2rem;
		grid-template-columns: 1fr;
		-webkit-mask: radial-gradient(circle var(--notch) at 0 var(--stub-h), #0000 98%, #000), radial-gradient(circle var(--notch) at 100% var(--stub-h), #0000 98%, #000);
		-webkit-mask-composite: source-in;
		mask: radial-gradient(circle var(--notch) at 0 var(--stub-h), #0000 98%, #000), radial-gradient(circle var(--notch) at 100% var(--stub-h), #0000 98%, #000);
		mask-composite: intersect;
	}
	.taa-ticket__stub { height: var(--stub-h); box-sizing: border-box; border-right: 0; border-bottom: 2px dashed rgb(242 234 243 / .3); }
	.taa-ticket .wp-block-table { padding: 1rem 1.4rem 1.2rem; }
}
@media (prefers-color-scheme: dark) {
	.taa-ticket { background: #3d1e40; }
}

/* ---------- Footer ---------- */
.taa-footer { font-family: var(--wp--preset--font-family--grotesk); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); border-top: 1px solid var(--wp--preset--color--mist); }
.taa-footer p { margin: 0; }
.taa-footer a { color: inherit; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- Encarts programmes (taa-pass) ----------
   Même famille que le ticket de verdict, en version papier : logo sur le talon, texte, bouton prune. */
.taa-pass {
	--stub: 13rem;
	display: grid; grid-template-columns: var(--stub) 1fr;
	margin-block: 2.4rem !important;
	background: var(--wp--preset--color--shade); border-radius: 12px;
	-webkit-mask: radial-gradient(circle 12px at var(--stub) 0, #0000 98%, #000), radial-gradient(circle 12px at var(--stub) 100%, #0000 98%, #000);
	-webkit-mask-composite: source-in;
	mask: radial-gradient(circle 12px at var(--stub) 0, #0000 98%, #000), radial-gradient(circle 12px at var(--stub) 100%, #0000 98%, #000);
	mask-composite: intersect;
}
.taa-pass__mark { display: grid; place-items: center; padding: 1.4rem; background: #fff; border-radius: 12px 0 0 12px; border-right: 2px dashed var(--wp--preset--color--mist); }
.taa-pass__mark img { width: 100%; height: auto; max-width: 10rem; }
.taa-pass__body { padding: 1.3rem 1.5rem 1.4rem; font-family: var(--wp--preset--font-family--grotesk); }
.taa-pass__body p { margin: 0; }
.taa-pass__title { font-weight: 650; font-size: 1.2rem; letter-spacing: -0.01em; }
.taa-pass__text { margin-top: .35rem !important; font-size: .98rem; line-height: 1.45; color: var(--wp--preset--color--muted); }
.taa-pass__go {
	display: inline-block; margin-top: 1rem; padding: .6rem 1.1rem; border-radius: 999px;
	background: var(--wp--preset--color--plum); color: var(--wp--preset--color--paper) !important;
	font-weight: 600; font-size: .98rem; text-decoration: none;
}
.taa-pass__go:hover { background: var(--wp--preset--color--ink); }
@media (prefers-color-scheme: dark) {
	.taa-pass__go { background: #d2a6da; color: #1b1320 !important; }
	.taa-pass__go:hover { background: #ece6ee; }
}
@media (max-width: 36rem) {
	.taa-pass {
		--stub-h: 6rem; grid-template-columns: 1fr;
		-webkit-mask: radial-gradient(circle 12px at 0 var(--stub-h), #0000 98%, #000), radial-gradient(circle 12px at 100% var(--stub-h), #0000 98%, #000);
		-webkit-mask-composite: source-in;
		mask: radial-gradient(circle 12px at 0 var(--stub-h), #0000 98%, #000), radial-gradient(circle 12px at 100% var(--stub-h), #0000 98%, #000);
		mask-composite: intersect;
	}
	.taa-pass__mark { height: var(--stub-h); box-sizing: border-box; border-radius: 12px 12px 0 0; border-right: 0; border-bottom: 2px dashed var(--wp--preset--color--mist); }
	.taa-pass__mark img { max-height: 3rem; width: auto; }
}

/* ---------- Sommaire (taa-toc) ---------- */
.taa-toc { margin-block: 2rem 2.4rem; padding: 1.1rem 1.4rem 1.2rem; border-left: 3px solid var(--wp--preset--color--brass); background: var(--wp--preset--color--shade); border-radius: 0 10px 10px 0; font-family: var(--wp--preset--font-family--grotesk); }
.taa-toc__title { margin: 0 0 .5rem; font-weight: 650; font-size: 1rem; }
.taa-toc ol { margin: 0; padding-left: 1.3rem; font-size: .98rem; line-height: 1.45; }
.entry-content .taa-toc li + li { margin-top: .3rem; }
.taa-toc li::marker { color: var(--wp--preset--color--muted); font-variant-numeric: tabular-nums; }
.taa-toc a { color: var(--wp--preset--color--ink); text-decoration-color: var(--wp--preset--color--mist); }
.taa-toc a:hover { color: var(--wp--preset--color--plum); }
.entry-content h2[id] { scroll-margin-top: 1.5rem; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ---------- Catégories et étiquettes ---------- */
.taa-byline .taa-cat { font-family: var(--wp--preset--font-family--grotesk); }
.taa-byline .taa-cat a, .taa-kicker a { color: var(--wp--preset--color--plum); text-decoration: none; }
.taa-byline .taa-cat a:hover, .taa-kicker a:hover { text-decoration: underline; }
.taa-list .taa-kicker { margin: 0 0 .3rem; font-family: var(--wp--preset--font-family--grotesk); font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.taa-tags { margin-top: 2.6rem; font-family: var(--wp--preset--font-family--grotesk); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.taa-tags a { display: inline-block; margin: .25rem .2rem 0 0; padding: .2rem .65rem; border: 1px solid var(--wp--preset--color--mist); border-radius: 999px; color: var(--wp--preset--color--ink); text-decoration: none; }
.taa-tags a:hover { border-color: var(--wp--preset--color--plum); color: var(--wp--preset--color--plum); }
.taa-tags .wp-block-post-terms__separator { display: none; }

/* H1 de l'accueil : présent pour le SEO, en retrait visuel pour laisser la liste d'articles dominer. */
.taa-home-title { font-size: var(--wp--preset--font-size--x-large); letter-spacing: -0.02em; line-height: 1.15; margin-bottom: .6rem; }

/* ---------- Formulaire de contact ---------- */
.taa-form { font-family: var(--wp--preset--font-family--grotesk); }
.taa-form label { display: block; font-weight: 600; margin-bottom: .35rem; }
.taa-form input[type=email], .taa-form textarea { width: 100%; box-sizing: border-box; padding: .7rem .8rem; font: inherit; font-size: 1rem; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--paper); border: 1px solid var(--wp--preset--color--mist); border-radius: 8px; }
.taa-form input:focus, .taa-form textarea:focus { outline: 2px solid var(--wp--preset--color--brass); outline-offset: 1px; border-color: transparent; }
.taa-form button { padding: .7rem 1.3rem; border: 0; border-radius: 999px; background: var(--wp--preset--color--plum); color: var(--wp--preset--color--paper); font: inherit; font-weight: 600; cursor: pointer; }
.taa-form button:hover { background: var(--wp--preset--color--ink); }
.taa-form__trap { position: absolute; left: -9999px; }
.taa-form__error { color: #8a1f2b; font-weight: 600; }
.taa-form__done { font-family: var(--wp--preset--font-family--grotesk); padding: 1rem 1.2rem; background: var(--wp--preset--color--shade); border-left: 3px solid var(--wp--preset--color--brass); border-radius: 0 10px 10px 0; }
@media (prefers-color-scheme: dark) { .taa-form__error { color: #f0a0a8; } .taa-form button { background: #d2a6da; color: #1b1320; } }

/* ---------- Accueil compact ---------- */
.taa-essentials { margin-top: 2rem; padding: 1.2rem 1.4rem; background: var(--wp--preset--color--shade); border-radius: 12px; font-family: var(--wp--preset--font-family--grotesk); }
.taa-essentials__title { margin: 0 0 .6rem; font-size: 1rem; }
.taa-essentials ol { margin: 0; padding-left: 1.3rem; font-size: 1rem; line-height: 1.5; }
.taa-essentials li + li { margin-top: .25rem; }
.taa-essentials li::marker { color: var(--wp--preset--color--brass); font-weight: 700; }
.taa-essentials a { color: var(--wp--preset--color--ink); }
/* Liste : petite couverture à gauche, texte à droite ; empilé sur mobile. */
@media (min-width: 40rem) {
	.taa-list .wp-block-post { display: grid; grid-template-columns: 12rem 1fr; column-gap: 1.4rem; align-items: start; }
	.taa-list .wp-block-post > .taa-cover { grid-column: 1; grid-row: 1 / span 4; margin: .2rem 0 0; }
	.taa-list .wp-block-post > :not(.taa-cover) { grid-column: 2; }
	.taa-list .taa-cover img { border-radius: 8px; }
}
.taa-list .wp-block-post-excerpt__excerpt { font-size: 1.02rem; line-height: 1.5; }
@media (max-width: 39.99rem) {
	/* mobile : vignette recadrée sur le centre du ticket (logo), texte à droite ; extrait masqué pour raccourcir le défilement */
	.taa-list .wp-block-post { display: grid; grid-template-columns: 6.5rem 1fr; column-gap: 1rem; align-items: start; padding-block: 1.2rem; }
	.taa-list .wp-block-post > .taa-cover { grid-column: 1; grid-row: 1 / span 3; margin: .15rem 0 0; }
	.taa-list .wp-block-post > :not(.taa-cover) { grid-column: 2; }
	.taa-list .taa-cover img { aspect-ratio: 1 / 1 !important; object-fit: cover; object-position: 40% 50%; border-radius: 8px; }
	.taa-list .wp-block-post-title { font-size: 1.1rem; }
	.taa-list .wp-block-post-excerpt { display: none; }
}
