/*
Theme Name: Franck Sachet
Description: Thème sobre et futuriste pour le site d'auteur de Franck Sachet.
Author: Franck Sachet
Version: 1.1.19
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: francksachet
*/

/* ---------- Polices (hébergées localement) ---------- */
@font-face { font-family: 'Michroma'; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/michroma-400-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Michroma'; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/michroma-400-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 300 500; font-display: swap; src: url("assets/fonts/ibm-plex-sans-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 300 500; font-display: swap; src: url("assets/fonts/ibm-plex-sans-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: italic; font-weight: 300; font-display: swap; src: url("assets/fonts/ibm-plex-sans-italic-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: italic; font-weight: 300; font-display: swap; src: url("assets/fonts/ibm-plex-sans-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/ibm-plex-mono-400-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/ibm-plex-mono-400-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/ibm-plex-mono-500-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/ibm-plex-mono-500-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- Jetons ---------- */
:root {
	--bg: #0a0d12;
	--surface: #10151c;
	--line: rgba(255, 255, 255, 0.09);
	--line-strong: rgba(255, 255, 255, 0.25);
	--text: #e8ecf1;
	--muted: #b4bfcc;
	--dim: #8f9baa;
	--accent: #6fd3e0;
	--on-accent: #06222a;
	--display: 'Michroma', sans-serif;
	--sans: 'IBM Plex Sans', system-ui, sans-serif;
	--mono: 'IBM Plex Mono', ui-monospace, monospace;
	--gutter: 96px;
	--space: 80px;
}
@media (max-width: 1100px) { :root { --gutter: 48px; --space: 64px; } }
@media (max-width: 640px)  { :root { --gutter: 20px; --space: 48px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; }
a { color: var(--text); text-decoration: none; transition: color 0.15s ease; }
a:hover { color: var(--accent); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

.container { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 var(--gutter); }

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 12px 20px; background: var(--accent); color: var(--on-accent); font-family: var(--mono); }
.skip-link:focus { left: 12px; top: 12px; color: var(--on-accent); }

/* ---------- Typographie utilitaire ---------- */
.eyebrow { font-family: var(--mono); font-size: 13px; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); }
.eyebrow--small { font-size: 12px; letter-spacing: 0.12em; }
.eyebrow--dot { display: flex; align-items: center; gap: 14px; }
.eyebrow--dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.meta { font-family: var(--mono); font-size: 13px; font-weight: 400; color: var(--dim); letter-spacing: 0.06em; }
.meta--caps { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; }
.lead-xl { font-size: clamp(20px, 1.9vw, 26px); line-height: 1.5; font-weight: 300; }
.link-arrow { font-family: var(--mono); font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); }
.link-arrow:hover { color: var(--text); }

/* ---------- Boutons ---------- */
.btn-row { display: flex; flex-wrap: wrap; gap: 16px; }
.btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 0 28px; border-radius: 2px;
	font-family: var(--mono); font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.btn--primary { background: var(--accent); color: var(--on-accent); font-weight: 500; }
.btn--primary:hover { background: #9be2eb; color: var(--on-accent); }
.btn--ghost { border: 1px solid var(--line-strong); color: var(--text); }
.btn--ghost:hover { border-color: var(--accent); color: var(--accent); }

/* ---------- En-tête ---------- */
.site-header { position: relative; border-bottom: 1px solid var(--line); background: var(--bg); z-index: 20; }
.site-header__inner { height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { font-family: var(--display); font-size: 15px; letter-spacing: 0.22em; text-transform: uppercase; white-space: nowrap; }
.site-nav__list { display: flex; gap: 40px; font-family: var(--mono); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.site-nav__list a { color: var(--muted); }
.site-nav__list a:hover { color: var(--text); }
.site-nav__list .current-menu-item > a, .site-nav__list .current_page_item > a { color: var(--accent); }
.nav-toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; padding: 0; background: none; border: 0; color: var(--text); cursor: pointer; }
.nav-toggle__close { display: none; }

@media (max-width: 900px) {
	.site-header__inner { height: 68px; }
	.brand { font-size: 12px; letter-spacing: 0.2em; }
	.nav-toggle { display: flex; }
	.site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--line); padding: 8px var(--gutter) 16px; }
	.site-header.is-open .site-nav { display: block; }
	.site-header.is-open .nav-toggle__open { display: none; }
	.site-header.is-open .nav-toggle__close { display: inline; }
	.site-nav__list { flex-direction: column; gap: 0; }
	.site-nav__list a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid var(--line); }
	.site-nav__list li:last-child a { border-bottom: 0; }
}

/* ---------- Sections ---------- */
.section { padding: var(--space) 0; border-bottom: 1px solid var(--line); }
.section--last { border-bottom: 0; }
.section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 56px; }
.section__title { font-family: var(--display); font-weight: 400; font-size: clamp(20px, 1.9vw, 26px); letter-spacing: 0.06em; }

.page-head { padding: 88px 0 64px; border-bottom: 1px solid var(--line); }
.page-head .eyebrow { margin-bottom: 20px; }
.page-title { font-family: var(--display); font-weight: 400; font-size: clamp(28px, 3.2vw, 44px); line-height: 1.25; letter-spacing: 0.03em; }
@media (max-width: 640px) { .page-head { padding: 48px 0 40px; } }

.split { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 96px; align-items: start; }
.split__label { margin: 0; }
.split__body { display: flex; flex-direction: column; gap: 28px; max-width: 760px; }
.split--wide { grid-template-columns: 380px minmax(0, 1fr); }
@media (max-width: 1000px) { .split--wide { grid-template-columns: minmax(0, 1fr); gap: 20px; } }
@media (max-width: 900px) { .split { grid-template-columns: minmax(0, 1fr); gap: 20px; } }

/* ---------- Livres : image et lueur ---------- */
.book { position: relative; display: block; flex-shrink: 0; --glow: 26px; }
.book::before {
	content: ""; position: absolute; left: 14%; width: 76%; bottom: -4%; height: 15%;
	background: var(--accent); opacity: 0.32; filter: blur(var(--glow)); border-radius: 50%; pointer-events: none;
}
.book img { position: relative; display: block; width: 100%; height: auto; }
.book--hero { width: 250px; }
.book--card { width: 150px; --glow: 16px; }
.book--large { width: 380px; --glow: 34px; }
/* Couverture cliquable (page Livres) ou placée dans un lien (accueil) : légère élévation au survol. */
.book--link img, .book--link::before,
.hero__book .book img, .hero__book .book::before,
.book-card .book img, .book-card .book::before { transition: transform 0.25s ease, opacity 0.25s ease; }
.book--link:hover img, .book--link:focus-visible img,
.hero__book:hover .book img, .hero__book:focus-visible .book img,
.book-card:hover .book img, .book-card:focus-visible .book img { transform: translateY(-6px); }
.book--link:hover::before, .book--link:focus-visible::before,
.hero__book:hover .book::before, .hero__book:focus-visible .book::before,
.book-card:hover .book::before, .book-card:focus-visible .book::before { opacity: 0.5; }

/* ---------- Accueil : bandeau ---------- */
.hero { padding: 100px 0; border-bottom: 1px solid var(--line); overflow: hidden; }
.hero__inner { display: flex; align-items: center; justify-content: space-between; gap: 64px; }
.hero__text { max-width: 620px; display: flex; flex-direction: column; gap: 32px; }
.hero__title { font-family: var(--display); font-weight: 400; font-size: clamp(27px, 3.2vw, 46px); line-height: 1.25; letter-spacing: 0.02em; }
.hero__lead { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; font-weight: 300; color: var(--muted); max-width: 520px; }
.hero__text .btn-row { margin-top: 8px; }
.hero__books { position: relative; width: 560px; height: 520px; flex-shrink: 0; }
.hero__book { position: absolute; display: flex; flex-direction: column; gap: 32px; width: 250px; }
.hero__book--1 { left: 0; top: 0; }
.hero__book--2 { left: 290px; top: 170px; }
.hero__book-label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dim); }
.hero__book:hover .hero__book-label { color: var(--accent); }

@media (max-width: 1100px) {
	.hero__inner { flex-direction: column; align-items: flex-start; }
	.hero__books { width: 100%; height: auto; display: flex; gap: 24px; }
	.hero__book { position: static; width: min(250px, 50%); }
	.hero__book--2 { margin-top: 40px; }
	.book--hero { width: 100%; }
}
@media (max-width: 640px) {
	.hero { padding: 48px 0 56px; }
	.hero__text { gap: 24px; }
	.hero__text .btn-row { flex-direction: column; }
	.hero__text .btn { width: 100%; }
	.hero__book { gap: 20px; }
	.hero__book-label { font-size: 11px; }
}

/* ---------- Accueil : cartes livres ---------- */
.book-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.book-card { display: flex; gap: 32px; padding: 32px; background: var(--surface); border: 1px solid var(--line); transition: border-color 0.15s ease; }
.book-card:hover { border-color: rgba(111, 211, 224, 0.45); color: var(--text); }
.book-card__body { display: flex; flex-direction: column; gap: 14px; }
.book-card__title { font-family: var(--display); font-size: 22px; letter-spacing: 0.03em; }
.book-card__teaser { font-size: 16px; line-height: 1.6; font-weight: 300; color: var(--muted); }
@media (max-width: 1100px) { .book-cards { grid-template-columns: minmax(0, 1fr); gap: 24px; } }
@media (max-width: 560px) {
	.book-card { flex-direction: column; padding: 24px; gap: 24px; }
	.book-card__title { font-size: 19px; }
	.book-card__teaser { font-size: 15px; }
}

/* ---------- Page Livres ---------- */
.book-detail { scroll-margin-top: 16px; }
.book-detail__inner { display: flex; gap: 96px; align-items: flex-start; }
.book-detail__body { display: flex; flex-direction: column; gap: 28px; padding-top: 8px; max-width: 640px; }
.book-detail__title { font-family: var(--display); font-weight: 400; font-size: clamp(24px, 2.5vw, 36px); letter-spacing: 0.03em; line-height: 1.3; }
.book-detail__summary { display: flex; flex-direction: column; gap: 16px; }
.book-detail__summary p { font-size: 18px; line-height: 1.7; font-weight: 300; color: var(--muted); }
.specs { border-top: 1px solid var(--line); }
.specs__row { display: flex; justify-content: space-between; gap: 24px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.specs dt { font-family: var(--mono); font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--dim); }
.specs dd { font-family: var(--mono); font-size: 15px; text-align: right; }
@media (max-width: 1000px) {
	.book-detail__inner { flex-direction: column; gap: 48px; }
	.book--large { width: min(380px, 80%); }
}
@media (max-width: 640px) {
	.book-detail__summary p { font-size: 16px; }
	.book-detail .btn-row { flex-direction: column; }
	.book-detail .btn { width: 100%; }
}

/* ---------- Page Bio ---------- */
.bio { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 96px; align-items: start; }
.bio__aside { display: flex; flex-direction: column; gap: 20px; }
.bio__portrait { display: block; width: 260px; height: 300px; object-fit: cover; border-radius: 2px; }
.bio__rule { display: block; width: 260px; height: 1px; background: var(--accent); opacity: 0.6; }
.bio__body { display: flex; flex-direction: column; gap: 40px; max-width: 720px; }
.bio__text { display: flex; flex-direction: column; gap: 32px; }
.bio__text p { font-size: 18px; line-height: 1.7; font-weight: 300; color: var(--muted); }
.bio__text p:first-child { font-size: clamp(20px, 1.7vw, 24px); line-height: 1.55; color: var(--text); }
.bio__themes { display: flex; flex-direction: column; gap: 16px; }
.chips { display: flex; flex-wrap: wrap; gap: 12px; }
.chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 18px; font-family: var(--mono); font-size: 13px; }
@media (max-width: 1000px) { .bio { grid-template-columns: minmax(0, 1fr); gap: 40px; } }

.biblio { border-top: 1px solid var(--line); }
.biblio__row { display: flex; align-items: center; gap: 40px; min-height: 88px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.biblio__year { width: 72px; flex-shrink: 0; font-family: var(--mono); font-size: 14px; color: var(--dim); }
.biblio__title { flex-grow: 1; font-family: var(--display); font-size: clamp(17px, 1.6vw, 22px); letter-spacing: 0.03em; }
.biblio__kind { font-family: var(--mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dim); }
.biblio__arrow { font-family: var(--mono); font-size: 16px; color: var(--accent); }
@media (max-width: 560px) {
	.biblio__row { gap: 16px; min-height: 72px; }
	.biblio__year { width: auto; }
	.biblio__kind { display: none; }
}

/* ---------- Page Presse ---------- */
.press__inner { display: flex; gap: 80px; align-items: flex-start; }
.press__body { width: 468px; flex-shrink: 0; display: flex; flex-direction: column; gap: 28px; }
.press__title { font-family: var(--display); font-weight: 400; font-size: clamp(22px, 2.2vw, 32px); line-height: 1.3; letter-spacing: 0.02em; }
.press__quote { margin: 0; padding: 28px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.press__quote p { font-size: clamp(21px, 1.9vw, 26px); line-height: 1.4; font-weight: 300; font-style: italic; }
.press__mark { color: var(--accent); font-style: normal; }
.press__excerpt { font-size: 17px; line-height: 1.7; font-weight: 300; color: var(--muted); }
.press__figure { flex-grow: 1; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.press__scan { display: block; width: 100%; max-width: 820px; height: auto; border: 1px solid var(--line); }
.contact-line { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.contact-line__mail { font-family: var(--mono); font-size: 18px; color: var(--accent); }
.contact-line__mail:hover { color: var(--text); }
@media (max-width: 1100px) {
	.press__inner { flex-direction: column; gap: 48px; }
	.press__body { width: 100%; max-width: 640px; }
}

/* ---------- Page Illustrations ---------- */
.gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; align-items: end; }
.gallery__item { display: flex; flex-direction: column; gap: 20px; }
.gallery__item a { display: block; }
.gallery__img { display: block; width: 100%; height: auto; transition: opacity 0.15s ease; }
.gallery__item a:hover .gallery__img { opacity: 0.85; }
.gallery__caption { display: flex; flex-direction: column; gap: 6px; }
.gallery__title { font-family: var(--display); font-size: 18px; letter-spacing: 0.03em; }
@media (max-width: 900px) { .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; } }
@media (max-width: 560px) { .gallery { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Page Contact ---------- */
.contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.panel { display: flex; flex-direction: column; gap: 24px; padding: 48px; background: var(--surface); border: 1px solid var(--line); }
.panel--narrow { max-width: 560px; margin: 0 auto; }
.panel__title { font-family: var(--display); font-weight: 400; font-size: clamp(20px, 1.9vw, 26px); letter-spacing: 0.02em; }
.panel__text { font-size: 17px; line-height: 1.7; font-weight: 300; color: var(--muted); }
.panel__mail { font-family: var(--mono); font-size: clamp(16px, 1.5vw, 20px); overflow-wrap: anywhere; }
@media (max-width: 900px) { .contact { grid-template-columns: minmax(0, 1fr); gap: 24px; } .panel { padding: 28px; } }

/* Formulaire Noptin, aux couleurs du thème */
.newsletter-form .noptin-optin-main-wrapper { --noptin-background-color: transparent; --noptin-border-color: transparent; margin: 0; }
.newsletter-form .noptin-optin-form-wrapper { max-width: none !important; min-height: 0 !important; margin: 0 !important; border: 0 !important; padding: 0 !important; background: transparent !important; overflow: visible; }
.newsletter-form form { width: 100%; margin: 0; padding: 0; background: transparent; }
.newsletter-form .noptin-form-footer { padding: 0 !important; }
.newsletter-form .noptin-form-fields { display: flex; flex-direction: row !important; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.newsletter-form .noptin-form-fields::after { display: none; }
.newsletter-form .noptin-form-field-wrapper { margin: 0 !important; }
.newsletter-form .noptin-form-field-email { flex: 1 1 240px; min-width: 0; }
.newsletter-form .noptin-form-field-submit { flex: 0 0 auto; }
.newsletter-form .noptin-form-field { margin: 0 !important; }
.newsletter-form .noptin-label { position: static !important; width: auto !important; height: auto !important; clip: auto !important; clip-path: none !important; overflow: visible !important; display: block !important; margin: 0 0 10px !important; padding: 0 !important; font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--dim); }
.newsletter-form input[type="email"] { width: 100%; height: 52px; padding: 0 16px; background: var(--bg) !important; border: 1px solid var(--line-strong) !important; border-radius: 2px !important; color: var(--text) !important; font-family: var(--sans); font-size: 16px; box-shadow: none !important; }
.newsletter-form input[type="email"]::placeholder { color: var(--dim); }
.newsletter-form input[type="email"]:focus { border-color: var(--accent) !important; outline: none; }
.newsletter-form input[type="submit"] { width: auto !important; height: 52px; padding: 0 28px !important; background: var(--accent) !important; color: var(--on-accent) !important; border: 0 !important; border-radius: 2px !important; font-family: var(--mono) !important; font-size: 14px !important; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; }
.newsletter-form input[type="submit"]:hover { background: #9be2eb !important; }
.newsletter-form .noptin-response { margin-top: 12px; color: var(--text); font-size: 15px; }
@media (max-width: 560px) { .newsletter-form .noptin-form-field-submit, .newsletter-form input[type="submit"] { width: 100% !important; } }

/* ---------- Contenus libres (pages génériques, articles) ---------- */
.prose { max-width: 720px; }
.prose > * + * { margin-top: 20px; }
.prose p, .prose li { font-size: 18px; line-height: 1.7; font-weight: 300; color: var(--muted); }
.prose h2, .prose h3 { font-family: var(--display); font-weight: 400; letter-spacing: 0.03em; color: var(--text); margin-top: 48px; }
.prose h2 { font-size: 24px; } .prose h3 { font-size: 19px; }
.prose a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.prose ul { list-style: disc; padding-left: 24px; }
.prose ol { padding-left: 24px; }
.prose img { border-radius: 2px; }
.prose strong { font-weight: 500; color: var(--text); }
.section--last .btn-row { margin-top: 40px; }

/* ---------- Journal (liste des articles) ---------- */
.post-list { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.post-card { display: flex; gap: 32px; padding: 36px 0; border-bottom: 1px solid var(--line); align-items: flex-start; color: var(--text); transition: opacity 0.15s ease; }
.post-card:hover, .post-card:focus-visible { opacity: 0.75; }
.post-card__image { display: block; width: 180px; height: 180px; flex-shrink: 0; overflow: hidden; border: 1px solid var(--line); }
.post-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.post-card__body { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.post-card__title { font-family: var(--display); font-weight: 400; font-size: clamp(19px, 1.8vw, 24px); letter-spacing: 0.03em; line-height: 1.35; }
.post-card__excerpt { font-size: 16px; line-height: 1.6; font-weight: 300; color: var(--muted); }
.post-card__more { font-family: var(--mono); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
@media (max-width: 640px) {
	.post-card { flex-direction: column; gap: 16px; padding: 28px 0; }
	.post-card__image { width: 100%; height: auto; aspect-ratio: 16 / 9; }
}
.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; font-family: var(--mono); font-size: 14px; }
.pagination .page-numbers { color: var(--dim); }
.pagination a.page-numbers:hover { color: var(--text); }
.pagination .page-numbers.current { color: var(--accent); }

/* ---------- Article de journal ---------- */
.post__inner { max-width: none; margin: 0; }
.post__inner .prose { max-width: none; }
.post__date { margin-bottom: 28px; }
.post__figure--inline { float: right; width: 260px; max-width: 42%; margin: 6px 0 24px 36px; }
.post__image { display: block; width: 100%; height: auto; border: 1px solid var(--line); }
@media (max-width: 640px) {
	.post__figure--inline { float: none; width: 100%; max-width: none; margin: 0 0 28px; }
}
.share { clear: both; display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--line); }
.share__list { display: flex; flex-wrap: wrap; gap: 20px; list-style: none; font-family: var(--mono); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.share__list[hidden] { display: none; }
.share__list a { color: var(--dim); }
.share__list a:hover { color: var(--accent); }
.share__native { font-family: var(--mono); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); background: none; border: 1px solid var(--line-strong); padding: 7px 16px; cursor: pointer; }
.share__native:hover { border-color: var(--accent); }
@media (max-width: 640px) {
	.share { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* ---------- Commentaires (fermés par défaut, stylés au cas où ils sont rouverts) ---------- */
.comments-area .section__title { margin-bottom: 32px; }
.comment-list { list-style: none; display: flex; flex-direction: column; gap: 28px; }
.comment-list .children { list-style: none; margin-top: 28px; padding-left: 32px; border-left: 1px solid var(--line); }
.comment-body { display: flex; flex-direction: column; gap: 8px; }
.comment-author .fn { font-family: var(--display); font-weight: 400; font-style: normal; font-size: 16px; }
.comment-metadata { font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; color: var(--dim); }
.comment-content p { font-size: 16px; line-height: 1.6; font-weight: 300; color: var(--muted); }
.comment-reply-link { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.comment-respond { margin-top: 40px; display: flex; flex-direction: column; gap: 16px; }
.comment-form p { display: flex; flex-direction: column; gap: 8px; }
.comment-form label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dim); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	background: var(--surface); border: 1px solid var(--line-strong); color: var(--text); font-family: var(--sans); font-size: 16px; padding: 12px 14px;
}
.comment-form textarea { min-height: 140px; }
.comment-form .form-submit input { cursor: pointer; }

/* ---------- Pied de page ---------- */
.site-footer { border-top: 1px solid var(--line); }
.site-footer__inner { padding-top: 64px; padding-bottom: 64px; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-family: var(--mono); font-size: 13px; color: var(--dim); }
.site-footer__links { display: flex; flex-wrap: wrap; gap: 32px; letter-spacing: 0.08em; text-transform: uppercase; }
.site-footer__links a { color: var(--dim); }
.site-footer__links a:hover { color: var(--accent); }
@media (max-width: 640px) {
	.site-footer__inner { flex-direction: column-reverse; align-items: flex-start; padding-top: 40px; padding-bottom: 40px; gap: 20px; }
	.site-footer__links { gap: 20px 24px; }
}

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