/* =========================================================================
   Nexus Édition — styles principaux
   Couleurs et polices : voir style.css (:root).
   ========================================================================= */

/* ---------- Polices hébergées sur le site (RGPD) ---------- */
@font-face { font-family: "Baloo 2"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/baloo-2-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Baloo 2"; font-weight: 800; font-style: normal; font-display: swap; src: url("../fonts/baloo-2-latin-800-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible"; font-weight: 700; font-style: normal; font-display: swap; src: url("../fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible"; font-weight: 400; font-style: italic; font-display: swap; src: url("../fonts/atkinson-hyperlegible-latin-400-italic.woff2") format("woff2"); }

/* ---------- Base ---------- */
body {
	background: var(--nx-creme);
	color: var(--nx-nuit);
	font-family: var(--nx-police-texte);
	font-size: 1.0625rem;
	line-height: 1.6;
}
h1, h2, h3, h4, .nx-card__title, .site-title {
	font-family: var(--nx-police-titres);
	font-weight: 800;
	line-height: 1.15;
	color: var(--nx-nuit);
	letter-spacing: -0.01em;
}
h1 { font-size: clamp(2rem, 5vw, 3.25rem); }
h2 { font-size: clamp(1.5rem, 3.2vw, 2.25rem); margin-bottom: 0.75em; }
h3 { font-size: 1.25rem; }
a { color: var(--nx-nuit); text-decoration-thickness: 0.08em; text-underline-offset: 0.2em; }
a:hover { color: #0d1626; }
img { max-width: 100%; height: auto; }

/* Focus clavier bien visible partout. */
:focus-visible {
	outline: 3px solid var(--nx-nuit);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--nx-or);
	border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
html { scroll-behavior: smooth; }

.screen-reader-text:not(:focus) {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* ---------- Mise en page ---------- */
.nx-wrap { width: min(100% - 2rem, 1200px); margin-inline: auto; }
.nx-narrow { max-width: 760px; }
.nx-center { text-align: center; justify-content: center; }
.nx-main { overflow-x: clip; }
.nx-section { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.nx-section--tint { background: var(--nx-creme-fonce); }
.nx-section__head { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; align-items: baseline; justify-content: space-between; margin-bottom: 1.5rem; }
.nx-section__head h2 { margin: 0; }
.nx-prose { max-width: 68ch; }
.nx-prose p { margin-bottom: 1em; }

/* ---------- Boutons ---------- */
.nx-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 48px; padding: 0.75rem 1.5rem;
	border: 2px solid var(--nx-nuit); border-radius: 999px;
	font-family: var(--nx-police-titres); font-weight: 800; font-size: 1.0625rem; line-height: 1.1;
	text-decoration: none; cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}
.nx-btn--primary { background: var(--nx-or); color: var(--nx-nuit); box-shadow: 0 4px 0 var(--nx-nuit); }
.nx-btn--primary:hover { color: var(--nx-nuit); transform: translateY(-2px); box-shadow: 0 6px 0 var(--nx-nuit); }
.nx-btn--primary:active { transform: translateY(2px); box-shadow: 0 2px 0 var(--nx-nuit); }
.nx-btn--ghost { background: transparent; color: var(--nx-nuit); }
.nx-btn--ghost:hover { background: var(--nx-nuit); color: var(--nx-creme); }
.nx-btn--big { font-size: 1.2rem; padding: 0.95rem 1.9rem; }
.nx-btn .nx-icon { width: 1.1em; height: 1.1em; }
.nx-more { font-weight: 700; white-space: nowrap; }
.nx-more::after { content: " →"; }
.nx-linklike { background: none; border: 0; padding: 0; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }

/* ---------- Badges et pastilles ---------- */
.nx-badge {
	display: inline-block; padding: 0.2rem 0.7rem; border-radius: 999px;
	background: var(--nx-blanc); border: 2px solid var(--nx-nuit);
	font-size: 0.85rem; font-weight: 700; line-height: 1.4; vertical-align: middle;
}
.nx-badge--level { background: var(--nx-c, var(--nx-or)); }
.nx-badge--ok { background: #D7F5DF; border-color: #1E6B35; color: #14492A; }
.nx-badge--soon { background: #FFF1C9; border-color: #7A5600; color: #5A3F00; }
.nx-card__badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.6rem; }

.nx-pills { display: flex; flex-wrap: wrap; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
.nx-pill {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 4.5rem; min-height: 4.5rem; padding: 0.5rem 1rem; border-radius: 999px;
	background: var(--nx-c); color: var(--nx-nuit); border: 3px solid var(--nx-nuit);
	font-family: var(--nx-police-titres); font-weight: 800; font-size: 1.15rem; text-decoration: none;
	box-shadow: 0 4px 0 var(--nx-nuit); transition: transform 0.15s ease;
}
.nx-pill:hover, .nx-pill[aria-current] { color: var(--nx-nuit); transform: translateY(-3px) rotate(-3deg); }
.nx-pill[aria-current] { outline: 3px dashed var(--nx-nuit); outline-offset: 4px; }

/* ---------- Accueil ---------- */
.nx-hero { padding-block: clamp(2rem, 6vw, 5rem); background:
	radial-gradient(circle at 8% 20%, rgba(255, 210, 63, 0.35) 0 9rem, transparent 9.1rem),
	radial-gradient(circle at 92% 85%, rgba(46, 196, 182, 0.25) 0 11rem, transparent 11.1rem),
	var(--nx-creme); }
.nx-hero__grid { display: grid; gap: 2rem; align-items: center; grid-template-columns: 1fr; }
.nx-hero__title { margin-bottom: 0.5em; }
.nx-hero__lead { font-size: 1.2rem; max-width: 40ch; margin-bottom: 1.5rem; }
.nx-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.nx-hero__img { width: 100%; height: auto; border-radius: var(--nx-rayon); }
@media (min-width: 860px) { .nx-hero__grid { grid-template-columns: 1.1fr 0.9fr; } }

.nx-ages h2 { margin-bottom: 1rem; }

.nx-why { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); list-style: none; margin: 0; padding: 0; }
.nx-why__item { background: var(--nx-blanc); border-radius: var(--nx-rayon); padding: 1.5rem; box-shadow: var(--nx-ombre); }
.nx-why__num { display: inline-grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--nx-or); font-family: var(--nx-police-titres); font-weight: 800; margin-bottom: 0.75rem; }

.nx-novels-band { background: var(--nx-nuit); color: var(--nx-creme); border-top: 4px solid var(--nx-or); }
.nx-novels-band h2, .nx-novels-band a:not(.nx-btn) { color: var(--nx-creme); }
.nx-novels-band__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 860px) { .nx-novels-band__grid { grid-template-columns: 0.8fr 1.2fr; } }

/* ---------- Cartes ---------- */
.nx-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); list-style: none; margin: 0; padding: 0; }
.nx-card {
	position: relative; height: 100%; display: flex; flex-direction: column;
	background: var(--nx-blanc); border-radius: var(--nx-rayon); overflow: hidden;
	box-shadow: var(--nx-ombre); border-top: 8px solid var(--nx-c, var(--nx-or));
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.nx-card:hover, .nx-card:focus-within { transform: translateY(-4px); box-shadow: 0 1rem 2rem rgba(27, 42, 65, 0.18); }
.nx-card__media { background: color-mix(in srgb, var(--nx-c, var(--nx-or)) 25%, var(--nx-creme)); padding: 1rem; display: grid; place-items: center; }
.nx-card__cover { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; border-radius: var(--nx-rayon-petit); }
.nx-card--collection .nx-card__cover { aspect-ratio: 4 / 3; object-fit: cover; }
.nx-card__cover--empty { width: 100%; aspect-ratio: 3 / 4; background: var(--nx-creme-fonce); }
.nx-card__body { padding: 1rem 1.25rem 1.25rem; flex: 1; }
.nx-card__title { font-size: 1.2rem; margin: 0 0 0.4rem; }
.nx-card__link { text-decoration: none; color: var(--nx-nuit); }
.nx-card__link::after { content: ""; position: absolute; inset: 0; } /* Toute la carte est cliquable. */
.nx-card__text { margin: 0 0 0.4rem; }
.nx-card__meta { margin: 0; font-weight: 700; font-size: 0.95rem; }
.nx-empty { font-size: 1.15rem; }

/* ---------- En-têtes de pages, fil d'Ariane ---------- */
.nx-pagehead { padding-block: 1.5rem 2.5rem; background: color-mix(in srgb, var(--nx-c, var(--nx-or)) 22%, var(--nx-creme)); }
.nx-pagehead--compact { padding-bottom: 1.5rem; }
.nx-pagehead__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 860px) { .nx-pagehead__grid { grid-template-columns: 1.2fr 0.8fr; } }
.nx-pagehead__media img { border-radius: var(--nx-rayon); }
.nx-pagehead__lead { font-size: 1.15rem; max-width: 60ch; }
.nx-kicker { font-family: var(--nx-police-titres); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; margin: 0; }
.nx-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 0.25rem; list-style: none; margin: 0 0 1rem; padding: 0; font-size: 0.95rem; }
.nx-breadcrumb li + li::before { content: "›"; margin-inline: 0.4rem; }

/* ---------- Fiche livre ---------- */
.nx-book__top { display: grid; gap: 2rem; padding-block: 1rem 3rem; }
@media (min-width: 860px) { .nx-book__top { grid-template-columns: 0.9fr 1.1fr; align-items: start; } .nx-book__media { position: sticky; top: 1.5rem; } }
.nx-book__media { background: color-mix(in srgb, var(--nx-c, var(--nx-or)) 25%, var(--nx-creme)); border-radius: var(--nx-rayon); padding: clamp(1rem, 4vw, 2.5rem); }
.nx-book__cover { width: 100%; height: auto; border-radius: var(--nx-rayon-petit); box-shadow: 0 1.5rem 2.5rem rgba(27, 42, 65, 0.3); }
.nx-book__thumbs { display: flex; gap: 0.5rem; list-style: none; margin: 1rem 0 0; padding: 0; overflow-x: auto; }
.nx-book__thumbs img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 2px solid var(--nx-nuit); }
.nx-book__lead { font-size: 1.25rem; }
.nx-book__facts { font-weight: 700; }
.nx-book__author { font-family: var(--nx-police-titres); font-size: 1.25rem; font-weight: 600; }
.nx-book__body { display: grid; gap: 2rem; padding-bottom: 3rem; }
@media (min-width: 860px) { .nx-book__body { grid-template-columns: 1.4fr 0.6fr; } }

.nx-buy { margin-block: 1.5rem; padding: 1.25rem; background: var(--nx-blanc); border-radius: var(--nx-rayon); box-shadow: var(--nx-ombre); }
.nx-buy .nx-btn--big { width: 100%; }
.nx-buy__more { margin-top: 1rem; }
.nx-buy__more summary { cursor: pointer; font-weight: 700; min-height: 44px; display: flex; align-items: center; }
.nx-buy__more ul { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.nx-buy__more a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.75rem 1rem; border: 2px solid var(--nx-nuit); border-radius: var(--nx-rayon-petit); text-decoration: none; }
.nx-buy__more a:hover { background: var(--nx-creme); }
.nx-buy__note { margin: 0.75rem 0 0; font-size: 0.95rem; }

.nx-otherlangs ul { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.nx-otherlangs a { display: inline-block; padding: 0.3rem 0.8rem; border: 2px solid var(--nx-nuit); border-radius: 999px; text-decoration: none; font-size: 0.95rem; }

.nx-idcard { background: var(--nx-blanc); border-radius: var(--nx-rayon); padding: 1.25rem 1.5rem; box-shadow: var(--nx-ombre); }
.nx-idcard h2 { font-size: 1.35rem; }
.nx-idcard dl { margin: 0; }
.nx-idcard dl > div { display: flex; justify-content: space-between; gap: 1rem; padding-block: 0.5rem; border-bottom: 1px dashed rgba(27, 42, 65, 0.3); }
.nx-idcard dt { font-weight: 700; }
.nx-idcard dd { margin: 0; text-align: right; }

.nx-faq { padding-block: 2rem 3rem; }
.nx-faq details { background: var(--nx-blanc); border-radius: var(--nx-rayon-petit); margin-bottom: 0.75rem; box-shadow: var(--nx-ombre); }
.nx-faq summary { cursor: pointer; padding: 1rem 1.25rem; list-style-position: inside; }
.nx-faq summary h3 { display: inline; font-size: 1.1rem; }
.nx-faq details p { padding: 0 1.25rem 1rem; margin: 0; }

/* Barre d'achat fixe sur téléphone. */
.nx-sticky-buy { display: none; }
@media (max-width: 859px) {
	.nx-sticky-buy {
		display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
		position: fixed; inset: auto 0 0 0; z-index: 90; padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
		background: var(--nx-blanc); box-shadow: 0 -0.5rem 1.5rem rgba(27, 42, 65, 0.15);
	}
	.nx-sticky-buy__title { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.nx-book { padding-bottom: 5rem; }
}

/* ---------- Catalogue ---------- */
.nx-filters { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin-bottom: 1rem; padding: 1rem 1.25rem; background: var(--nx-blanc); border-radius: var(--nx-rayon); box-shadow: var(--nx-ombre); }
.nx-filters label { display: grid; gap: 0.25rem; font-weight: 700; font-size: 0.95rem; }
.nx-filters select, .nx-form input, .nx-form textarea, .nx-form select {
	min-height: 44px; padding: 0.5rem 0.75rem; border: 2px solid var(--nx-nuit); border-radius: var(--nx-rayon-petit);
	background: var(--nx-blanc); color: var(--nx-nuit); font: inherit;
}
.nx-count { font-weight: 700; }
.navigation.pagination { margin-top: 2rem; }

/* ---------- Formulaires (contact, newsletter) ---------- */
.nx-form { display: grid; gap: 1rem; }
.nx-form label { display: grid; gap: 0.3rem; font-weight: 700; }
.nx-form .nx-check { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; }
.nx-form .nx-check input { width: 1.4rem; height: 1.4rem; min-height: 0; margin-top: 0.15rem; flex: none; accent-color: var(--nx-nuit); }
.nx-form--inline { grid-template-columns: 1fr; }
@media (min-width: 640px) { .nx-form--inline { grid-template-columns: 1fr auto; } .nx-form--inline .nx-check, .nx-form--inline .nx-form__msg { grid-column: 1 / -1; } }
.nx-form__msg { margin: 0; padding: 0.75rem 1rem; border-radius: var(--nx-rayon-petit); font-weight: 700; }
.nx-form__msg--ok { background: #D7F5DF; color: #14492A; }
.nx-form__msg--error { background: #FDE2E2; color: #7A1414; }
.nx-hp { position: absolute !important; left: -9999px !important; }

/* ---------- Sélecteur de langue et réseaux sociaux ---------- */
.nx-lang { position: relative; display: inline-block; }
.nx-lang summary { list-style: none; cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.3rem 0.8rem; border: 2px solid currentColor; border-radius: 999px; font-weight: 700; }
.nx-lang summary::-webkit-details-marker { display: none; }
.nx-lang summary::after { content: "▾"; }
.nx-lang__list { position: absolute; right: 0; z-index: 100; min-width: 12rem; margin: 0.4rem 0 0; padding: 0.4rem; list-style: none; background: var(--nx-blanc); border-radius: var(--nx-rayon-petit); box-shadow: var(--nx-ombre); }
.nx-lang__list a { display: flex; gap: 0.6rem; padding: 0.5rem 0.75rem; border-radius: 6px; text-decoration: none; color: var(--nx-nuit); }
.nx-lang__list a:hover, .nx-lang__list a[aria-current] { background: var(--nx-creme-fonce); }
.nx-lang__code { font-weight: 700; min-width: 1.8rem; }
.nx-footer .nx-lang__list { bottom: 100%; top: auto; margin: 0 0 0.4rem; }

.nx-social { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.nx-social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: inherit; border: 2px solid currentColor; }
.nx-social a:hover { background: var(--nx-or); color: var(--nx-nuit); border-color: var(--nx-or); }
.nx-icon { width: 22px; height: 22px; }

/* ---------- Pied de page ---------- */
.nx-footer { background: var(--nx-nuit); color: var(--nx-creme); padding-top: 3rem; border-top: 6px solid var(--nx-or); }
.nx-footer a, .nx-footer .nx-linklike { color: var(--nx-creme); }
.nx-footer__grid { display: grid; gap: 2rem; grid-template-columns: 1fr; padding-bottom: 2rem; }
@media (min-width: 860px) { .nx-footer__grid { grid-template-columns: 1.3fr 1.5fr auto; } }
.nx-footer__name, .nx-footer__slogan { font-family: var(--nx-police-titres); font-weight: 800; font-size: 1.4rem; margin: 0 0 0.25rem; }
.nx-footer__slogan { color: var(--nx-or); font-size: 1.1rem; }
.nx-footer__menu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.nx-footer__menu a { text-decoration: none; }
.nx-footer__menu a:hover { text-decoration: underline; }
.nx-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; padding-block: 1.25rem; border-top: 1px solid rgba(255, 248, 236, 0.2); font-size: 0.95rem; }
.nx-footer__bottom p { margin: 0; }

/* ---------- Bannière cookies ---------- */
.nx-consent { position: fixed; inset: auto 1rem 1rem 1rem; z-index: 1000; max-width: 560px; margin-inline: auto; padding: 1.25rem 1.5rem; background: var(--nx-blanc); color: var(--nx-nuit); border-radius: var(--nx-rayon); box-shadow: 0 1rem 3rem rgba(27, 42, 65, 0.35); border: 3px solid var(--nx-nuit); }
.nx-consent[hidden] { display: none; }
.nx-consent h2 { font-size: 1.25rem; margin-bottom: 0.4rem; }
.nx-consent p { margin: 0 0 1rem; font-size: 0.98rem; }
.nx-consent__actions { display: grid; gap: 0.75rem; grid-template-columns: 1fr 1fr; }
.nx-consent__actions .nx-btn { width: 100%; padding-inline: 0.75rem; }
.nx-consent .nx-btn--reject { background: var(--nx-nuit); color: var(--nx-creme); box-shadow: 0 4px 0 var(--nx-or); } /* Aussi visible que « Tout accepter ». */
.nx-embed-blocked { display: grid; place-items: center; gap: 0.75rem; min-height: 200px; padding: 1.5rem; text-align: center; background: var(--nx-creme-fonce); border-radius: var(--nx-rayon); }

/* ---------- Univers romans : plus sobre ---------- */
.nx-univers-romans { --nx-c: var(--nx-nuit); }
.nx-univers-romans .nx-pagehead, .nx-pagehead--novels { background: var(--nx-nuit); color: var(--nx-creme); border-bottom: 3px solid var(--nx-or); }
.nx-univers-romans .nx-pagehead h1, .nx-pagehead--novels h1, .nx-pagehead--novels a, .nx-pagehead--novels .nx-breadcrumb { color: var(--nx-creme); }
.nx-univers-romans .nx-card { border-top-color: var(--nx-or); border-radius: 6px; }
.nx-univers-romans .nx-card__media { background: var(--nx-nuit); }
.nx-univers-romans .nx-book__media { background: var(--nx-nuit); }
.nx-univers-romans h1, .nx-univers-romans h2 { font-weight: 600; letter-spacing: 0; }
.nx-univers-romans .nx-btn { border-radius: 6px; }
.nx-univers-romans .nx-pill:hover { transform: none; }
.nx-excerpt { margin: 0; padding: 1rem 1.5rem; border-left: 4px solid var(--nx-or); font-style: italic; background: var(--nx-blanc); }

/* ---------- Page 404 ---------- */
.nx-404__img { margin: 0 auto 1.5rem; }

/* ---------- Barre du haut ---------- */
.nx-topbar { background: var(--nx-nuit); color: var(--nx-creme); font-size: 0.95rem; }
.nx-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 52px; padding-block: 0.25rem; }
.nx-topbar__slogan { margin: 0; font-family: var(--nx-police-titres); font-weight: 600; color: var(--nx-or); }
.nx-topbar__tools { display: flex; align-items: center; gap: 0.75rem; margin-left: auto; }
.nx-topbar .nx-social a { width: 36px; height: 36px; border-width: 0; }
.nx-topbar .nx-icon { width: 20px; height: 20px; }
.nx-topbar .nx-lang summary { min-height: 36px; color: var(--nx-creme); }
@media (max-width: 640px) { .nx-topbar__slogan { display: none; } }

/* ---------- Tableaux (pages légales, fiche libraires) ---------- */
.nx-table-wrap, .entry-content .wp-block-table { overflow-x: auto; max-width: 100%; }
.nx-table, .entry-content table { width: 100%; border-collapse: collapse; margin-block: 1rem 1.5rem; background: var(--nx-blanc); font-size: 0.95rem; }
.nx-table th, .nx-table td, .entry-content table th, .entry-content table td { padding: 0.6rem 0.75rem; border: 1px solid rgba(27, 42, 65, 0.2); text-align: left; vertical-align: top; }
.nx-table thead th, .entry-content table thead th { background: var(--nx-nuit); color: var(--nx-creme); }
.entry-content mark { background: #FFF1C9; color: #5A3F00; padding: 0 0.25rem; }
@media (max-width: 640px) { .entry-content table { display: block; overflow-x: auto; } }

/* ---------- Images du thème ---------- */
/* Bannière d'accueil en fond : le texte se pose dans la zone crème vide de l'image. */
.nx-hero { position: relative; isolation: isolate; min-height: clamp(520px, 62vw, 760px); display: grid; align-items: center; background: var(--nx-creme); }
.nx-hero__bg img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.nx-hero__grid { grid-template-columns: 1fr !important; }
.nx-hero__text { max-width: 34rem; }
@media (max-width: 859px) {
	.nx-hero { min-height: 150vw; align-items: start; padding-top: 2rem; }
	.nx-hero__bg img { object-position: center bottom; }
	.nx-hero__title { font-size: clamp(1.8rem, 8vw, 2.4rem); }
	.nx-hero__lead { font-size: 1.05rem; }
}

/* Pastilles de niveau avec le badge de Plume. */
.nx-pill--img { flex-direction: column; gap: 0.2rem; min-width: 6.5rem; min-height: auto; padding: 0.5rem 0.75rem 0.6rem; border-radius: var(--nx-rayon); }
.nx-pill--img img { width: 64px; height: 64px; border-radius: 50%; background: var(--nx-creme); }

/* Newsletter avec Plume. */
.nx-nl { display: grid; gap: 1.5rem; align-items: center; max-width: 900px; }
.nx-nl__img { width: 160px; height: auto; margin-inline: auto; }
@media (min-width: 700px) { .nx-nl { grid-template-columns: 220px 1fr; } .nx-nl__img { width: 220px; } }

/* Bandeau des romans : image du livre qui s'envole, voile bleu nuit pour la lisibilité. */
.nx-novels-band, .nx-pagehead--novels {
	background: linear-gradient(90deg, rgba(27, 42, 65, 0.97) 0%, rgba(27, 42, 65, 0.85) 45%, rgba(27, 42, 65, 0.35) 100%), url("../img/bandeau-romans.webp") right center / cover no-repeat, var(--nx-nuit);
}
.nx-pagehead--novels { padding-block: 2rem 4rem; }

/* Téléphone : le texte d'abord, l'illustration en dessous (jamais de texte sur le dessin). */
@media (max-width: 859px) {
	.nx-hero { display: flex; flex-direction: column; min-height: 0; padding-block: 1.5rem 0; }
	.nx-hero__grid { order: 1; }
	.nx-hero__bg { order: 2; display: block; margin-top: 1rem; }
	.nx-hero__bg img { position: static; z-index: auto; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center bottom; }
}

/* ---------- Pleine largeur pour toutes les pages du thème ----------
   Astra place le contenu dans un conteneur flexible : sans cela, une page
   avec peu de contenu (ex. Romans vide) se rétrécit à gauche. */
.nx-main { flex: 1 1 100%; width: 100%; max-width: 100%; min-width: 0; }
.site-content > .ast-container:has(> .nx-main) { display: block; max-width: none; padding-inline: 0; }

/* Cartes mystère des romans à paraître. */
.nx-card--mystery .nx-card__media { background: var(--nx-nuit); }
.nx-card--mystery .nx-card__cover { object-fit: cover; }
.nx-card--mystery .nx-card__text { font-style: italic; }
.nx-novels-band .nx-card, .nx-novels-band .nx-card__title { color: var(--nx-nuit); }
.nx-grid--novels { grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
@media (min-width: 1000px) { .nx-novels .nx-grid--novels { grid-template-columns: repeat(5, 1fr); } }
