/* Sève Noire — composants du site. Les jetons (couleurs, polices, tailles) viennent de theme.json. */
:root {
	--snl-paper: var(--wp--preset--color--paper);
	--snl-sand: var(--wp--preset--color--sand);
	--snl-ink: var(--wp--preset--color--ink);
	--snl-muted: var(--wp--preset--color--muted);
	--snl-red: var(--wp--preset--color--red);
	--snl-blue: var(--wp--preset--color--blue);
	--snl-green: var(--wp--preset--color--green);
	--snl-rule: var(--wp--custom--rule);
	--snl-serif: var(--wp--preset--font-family--serif);
	--snl-sans: var(--wp--preset--font-family--sans);
	--snl-gutter: clamp(1.125rem, 4vw, 3.5rem);
	--snl-wide: 1320px;
	--snl-header: 76px;
}
html { scroll-behavior: smooth; scroll-padding-top: 82px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > * { margin-block: 0 !important; }
.snl-main > *, .snl-main > * + * { margin-block-start: 0; margin-block-end: 0; }
.snl-main .alignwide { width: min(var(--snl-wide), 100% - 2 * var(--snl-gutter)); max-width: none; margin-inline: auto; }
.snl-main .alignfull { width: 100%; max-width: none; margin-inline: 0; }
.snl-main :where(.wp-block-group, .wp-block-buttons, .wp-block-query) > * { margin-block-start: 0; margin-block-end: 0; }
img { height: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--snl-blue); outline-offset: 3px; }

/* ---------- Typographie commune ---------- */
.snl-eyebrow { margin: 0 0 1.25rem; color: var(--snl-red); font: 700 0.6875rem/1.4 var(--snl-sans); letter-spacing: 0.18em; text-transform: uppercase; }
.snl-title { max-width: 12ch; margin: 0 !important; font-size: var(--wp--preset--font-size--title) !important; letter-spacing: -0.075em; line-height: 0.86; text-wrap: balance; }
.snl-title:where(.snl-page-hero *) { max-width: 14ch; }
.snl-display { max-width: 760px; margin: 0 !important; font-size: var(--wp--preset--font-size--display) !important; letter-spacing: -0.075em; line-height: 0.86; }
.snl-page-lead, .snl-lead { max-width: 640px; margin: 1.75rem 0 0; color: var(--snl-muted); font-size: var(--wp--preset--font-size--lead); line-height: 1.6; }
.snl-section-intro { max-width: 460px; margin: 0; color: var(--snl-muted); font-size: 1.0625rem; line-height: 1.6; }
.snl-byline { margin: 1.4rem 0 1.9rem; color: var(--snl-muted); font-size: 1.125rem; }
.snl-date { color: var(--snl-muted); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; }
.snl-prose p, .snl-split__body p, .snl-prose-page p { max-width: 62ch; font-size: 1.0625rem; line-height: 1.7; }
.snl-prose--wide p { max-width: 76ch; }
.snl-split__body ul, .snl-prose ul { max-width: 62ch; padding-left: 1.2rem; font-size: 1.0625rem; line-height: 1.7; }
.snl-split__body li, .snl-prose li { margin-bottom: 0.5rem; }
.snl-note-line { color: var(--snl-muted); font-size: 0.8125rem; margin-top: 1.5rem; }

/* ---------- Boutons et liens ---------- */
.wp-block-button__link { transition: background 0.2s, color 0.2s, transform 0.2s; }
.wp-block-button__link:hover { transform: translateY(-2px); }
.snl-btn-arrow .wp-block-button__link { display: inline-flex; align-items: center; gap: 1.5rem; }
.snl-btn-arrow .wp-block-button__link::after, .snl-text-link a::after, .snl-menu-newsletter a::after {
	content: ""; flex: 0 0 auto; width: 22px; height: 11px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 11' fill='none' stroke='black' stroke-width='1.2'%3E%3Cpath d='M0 5.5h21M16 .8l4.9 4.7-4.9 4.7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 11' fill='none' stroke='black' stroke-width='1.2'%3E%3Cpath d='M0 5.5h21M16 .8l4.9 4.7-4.9 4.7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.snl-btn-red .wp-block-button__link { background: var(--snl-red); color: #fff; }
.snl-btn-red .wp-block-button__link:hover { background: var(--snl-ink); }
.snl-btn-light .wp-block-button__link { background: var(--snl-paper); color: var(--snl-ink); }
.snl-btn-light .wp-block-button__link:hover { background: var(--snl-ink); color: var(--snl-paper); }
.snl-btn-line .wp-block-button__link { background: transparent; color: inherit; border: 1px solid currentColor; }
.snl-btn-line .wp-block-button__link:hover { background: var(--snl-ink); color: var(--snl-paper); }
.snl-text-link { margin: 1.1rem 0 0; }
.snl-text-link a { display: inline-flex; align-items: center; gap: 0.9rem; padding-bottom: 0.5rem; border-bottom: 1px solid currentColor; font: 700 0.6875rem/1.2 var(--snl-sans); letter-spacing: 0.13em; text-transform: uppercase; }
.snl-text-link a:hover { color: var(--snl-red); }

/* ---------- En-tête et menu plein écran ---------- */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 20; }
body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
.snl-top { height: var(--snl-header); padding: 0 clamp(1.125rem, 3.4vw, 3rem); background: rgba(247, 243, 235, 0.96); backdrop-filter: blur(12px); border-bottom: 1px solid var(--snl-rule); }
.snl-brand { gap: 0.95rem; align-items: center; }
.snl-wordmark { margin: 0; width: min-content; font-size: 1.4375rem; }
.snl-brand-label { margin: 0; padding-left: 0.95rem; border-left: 1px solid var(--snl-rule); color: var(--snl-red); font: 700 0.625rem/1.2 var(--snl-sans); letter-spacing: 0.19em; text-transform: uppercase; }
.snl-menu-toggle { display: none; align-items: center; gap: 0.75rem; padding: 0.75rem 0; border: 0; background: none; color: inherit; font: 600 0.6875rem var(--snl-sans); letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; }
.snl-js .snl-menu-toggle { display: inline-flex; }
.snl-menu-toggle__icon { display: grid; gap: 5px; width: 24px; }
.snl-menu-toggle__icon i { display: block; height: 1px; background: currentColor; transition: width 0.35s; }
.snl-menu-toggle__icon i:last-child { width: 70%; }
.snl-menu-toggle:hover .snl-menu-toggle__icon i:last-child { width: 100%; }
.snl-progress { position: fixed; top: var(--snl-header); left: 0; z-index: 30; height: 2px; width: 0; background: var(--snl-blue); pointer-events: none; }
body.admin-bar .snl-progress { top: calc(var(--snl-header) + 32px); }
.snl-site-menu { background: var(--snl-paper); display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 32%); }
.snl-js .snl-site-menu { position: fixed; inset: 0; z-index: 50; opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0.35s; }
.snl-js .snl-site-menu.is-open { opacity: 1; visibility: visible; transform: none; }
.snl-site-menu__main { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 90px clamp(2rem, 7vw, 6.9rem); }
.snl-menu-close { display: none; position: absolute; top: 30px; left: clamp(2rem, 4vw, 4rem); width: 42px; height: 42px; border: 0; background: none; cursor: pointer; }
.snl-js .snl-menu-close { display: block; }
.snl-menu-close::before, .snl-menu-close::after { content: ""; position: absolute; left: 9px; top: 20px; width: 25px; height: 1px; background: var(--snl-ink); transition: transform 0.25s; }
.snl-menu-close::before { transform: rotate(45deg); } .snl-menu-close::after { transform: rotate(-45deg); }
.snl-menu-close:hover::before { transform: rotate(135deg); } .snl-menu-close:hover::after { transform: rotate(45deg); }
.snl-menu-links .wp-block-navigation__container { gap: clamp(0.75rem, 1.8vh, 1.5rem); }
.snl-menu-links .wp-block-navigation-item__content { display: inline-block; font: 400 clamp(2.5rem, 5.2vw, 4.75rem)/0.98 var(--snl-serif); letter-spacing: -0.055em; transition: color 0.25s, transform 0.35s; }
.snl-menu-links .wp-block-navigation-item__content:hover { color: var(--snl-red); transform: translateX(8px); }
.snl-site-menu.is-open .snl-menu-links .wp-block-navigation-item { animation: snl-menu-in 0.55s both; }
.snl-site-menu.is-open .snl-menu-links .wp-block-navigation-item:nth-child(2) { animation-delay: 0.04s; }
.snl-site-menu.is-open .snl-menu-links .wp-block-navigation-item:nth-child(3) { animation-delay: 0.08s; }
.snl-site-menu.is-open .snl-menu-links .wp-block-navigation-item:nth-child(4) { animation-delay: 0.12s; }
.snl-site-menu.is-open .snl-menu-links .wp-block-navigation-item:nth-child(5) { animation-delay: 0.16s; }
.snl-site-menu.is-open .snl-menu-links .wp-block-navigation-item:nth-child(6) { animation-delay: 0.2s; }
@keyframes snl-menu-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.snl-site-menu__side { display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; border-left: 1px solid var(--snl-rule); padding: 94px clamp(1.5rem, 3vw, 3rem) 2.4rem; overflow-y: auto; }
.snl-menu-side__top { display: grid; gap: 1.75rem; }
.snl-menu-label { margin: 0 0 0.5rem; color: var(--snl-muted); font: 700 0.5625rem var(--snl-sans); letter-spacing: 0.16em; text-transform: uppercase; }
.snl-menu-list { font-size: 0.9375rem; }
.snl-menu-list .wp-block-navigation__container { gap: 0.2rem; }
.snl-menu-newsletter p { margin: 0 0 0.9rem; font-size: 0.8125rem; }
body.snl-menu-open { overflow: hidden; }

/* ---------- Accueil ---------- */
.snl-hero { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: center; gap: 5vw; padding-block: 72px 48px; min-height: min(820px, calc(100svh - var(--snl-header))); }
.snl-hero__intro { max-width: 610px; margin: 1.9rem 0 1.75rem; font-size: var(--wp--preset--font-size--lead); line-height: 1.65; }
.snl-hero__art { position: relative; isolation: isolate; width: 100%; max-width: 600px; margin: 0 0 0 auto; aspect-ratio: 1.05 / 1; overflow: hidden; }
.snl-hero__art::before { content: ""; position: absolute; inset: 7% -3% -3% 8%; background: var(--snl-blue); opacity: 0.18; z-index: -1; transform: translate(20px, 15px); }
.snl-hero__art img { width: 100%; height: 100%; object-fit: cover; }
.snl-hero__note { grid-column: 1 / -1; padding-top: 0.9rem; border-top: 1px solid var(--snl-rule); color: var(--snl-muted); font: 600 0.625rem var(--snl-sans); letter-spacing: 0.12em; text-transform: uppercase; }
.snl-hero__note p { margin: 0; }
.snl-section { padding-block: var(--wp--preset--spacing--80); }
.snl-section--sand { background: var(--snl-sand); }
.snl-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 2.6rem; }
.snl-section-head .snl-eyebrow { margin-bottom: 0.75rem; }
.snl-section-head h2, .snl-section h2, .snl-band h2, .snl-promo h2, .snl-manifesto h2 { margin: 0; font-size: var(--wp--preset--font-size--heading-2); letter-spacing: -0.065em; line-height: 0.95; }
.snl-section-head--cta { align-items: flex-start; }
.snl-manifesto { padding-block: clamp(3.9rem, 8vw, 6.75rem); }
.snl-manifesto__grid { display: grid; grid-template-columns: 1fr 0.9fr; align-items: center; gap: 8vw; }
.snl-manifesto h2 { font-size: clamp(3.4rem, 7vw, 6rem); }
.snl-manifesto__copy { max-width: 610px; font-size: clamp(1.0625rem, 1.6vw, 1.375rem); line-height: 1.65; }
.snl-manifesto__copy p:last-child { color: #d1c8ba; }
.snl-manifesto .snl-eyebrow { color: #dc6b51; }
.snl-book-feature { display: grid; grid-template-columns: 0.95fr 1.05fr; align-items: center; gap: clamp(2rem, 7vw, 6.25rem); padding: 1.9rem; background: var(--snl-sand); }
.snl-book-feature__art { position: relative; min-height: 460px; overflow: hidden; background: #171613; }
.snl-book-feature__art figure, .snl-book-feature__art img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: left center; }
.snl-book-feature__art::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(17, 16, 15, 0.78)); }
.snl-art-index { position: absolute; z-index: 1; left: 1.5rem; bottom: 1.4rem; margin: 0; color: #fff7e9; font: 400 0.625rem var(--snl-sans); letter-spacing: 0.18em; text-transform: uppercase; }
.snl-book-feature__copy { padding: clamp(1rem, 4vw, 3rem) clamp(0.5rem, 2vw, 1.5rem); }
.snl-book-feature__copy h2 { font-size: clamp(3rem, 6vw, 5rem); }
.snl-collection-list { border-top: 1px solid var(--snl-rule); }
.snl-collection { position: relative; display: grid; grid-template-columns: 130px 1fr 1.15fr auto; align-items: center; gap: 1.5rem; padding-block: 1.5rem; border-bottom: 1px solid var(--snl-rule); transition: color 0.2s; }
.snl-collection .snl-eyebrow, .snl-collection h3, .snl-collection p { margin: 0; }
.snl-collection h3 { font-size: clamp(1.75rem, 3vw, 2.625rem); }
.snl-collection p:not(.snl-eyebrow):not(.snl-text-link) { color: var(--snl-muted); font-size: 0.875rem; }
.snl-collection .snl-text-link { margin: 0; white-space: nowrap; }
.snl-collection h3 a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.snl-collection:hover { color: var(--snl-red); }
.snl-promo { padding-block: clamp(3.25rem, 7vw, 5.5rem); }
.snl-promo__grid { display: grid; grid-template-columns: 1fr 0.8fr; align-items: center; gap: 7vw; }
.snl-promo h2 { max-width: 780px; font-size: clamp(3.4rem, 7vw, 5.75rem); }
.snl-promo .snl-eyebrow, .snl-band .snl-eyebrow { color: rgba(255, 255, 255, 0.78); }
.snl-promo__copy p { max-width: 460px; color: #e7e9f2; font-size: 1.0625rem; line-height: 1.65; }
.snl-promo__meta { grid-column: 1 / -1; margin: 0; padding-top: 0.95rem; border-top: 1px solid rgba(255, 255, 255, 0.4); color: #e7e9f2; font-size: 0.625rem; letter-spacing: 0.14em; text-transform: uppercase; }
.snl-journal { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 7vw; }
.snl-journal__heading { position: sticky; top: 125px; align-self: start; }
.snl-journal__heading h2 { font-size: clamp(3.1rem, 6vw, 5rem); }
.snl-journal__list { border-top: 1px solid var(--snl-ink); }
.snl-journal-item { display: grid; grid-template-columns: 1fr 130px; gap: 0.5rem 1.5rem; padding-block: 1.75rem; border-bottom: 1px solid var(--snl-rule); }
.snl-journal-item .snl-eyebrow { grid-column: 1; margin: 0 0 0.4rem; font-size: 0.5625rem; }
.snl-journal-item .wp-block-post-title { grid-column: 1; margin: 0 0 0.6rem; font-size: clamp(1.625rem, 3.4vw, 2.625rem); letter-spacing: -0.04em; }
.snl-journal-item .wp-block-post-excerpt { grid-column: 1; max-width: 660px; margin: 0; color: var(--snl-muted); font-size: 0.9375rem; line-height: 1.65; }
.snl-journal-item .snl-date { grid-column: 2; grid-row: 1; justify-self: end; }
.snl-band { padding-block: clamp(3.4rem, 7vw, 5.6rem); }
.snl-band__grid { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2.1rem; }
.snl-band h2 { max-width: 800px; font-size: clamp(3.4rem, 7vw, 5.9rem); }
.snl-band__copy { max-width: 470px; margin: 1.25rem 0 0; color: #fff0e6; font-size: 1.0625rem; line-height: 1.65; }
.snl-band__formats { margin: 1.1rem 0 0; padding-top: 1.1rem; border-top: 1px solid rgba(255, 255, 255, 0.4); color: #ffe7d9; font: 600 0.625rem var(--snl-sans); letter-spacing: 0.14em; text-transform: uppercase; }

/* ---------- Pages de contenu ---------- */
.snl-page-hero { padding-block: clamp(3.6rem, 8vw, 7rem) clamp(2.5rem, 5vw, 4rem); }
.snl-page-hero--center { text-align: center; }
.snl-page-hero--center .snl-title { margin-inline: auto !important; max-width: 16ch; }
.snl-page-band { padding-block: 0; }
.snl-page-band .snl-eyebrow { color: rgba(255, 255, 255, 0.78); }
.snl-page-band .snl-page-lead { color: inherit; }
.snl-page-band--dark .snl-page-lead { color: #9db5f0; }
.snl-page-band--dark .snl-eyebrow { color: #dc6b51; }
.snl-split { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 7vw; align-items: start; }
.snl-split__label h2 { font-size: clamp(2.5rem, 4.5vw, 3.9rem); }
.snl-services { border-top: 1px solid var(--snl-ink); }
.snl-service { display: grid; grid-template-columns: 120px 1fr; gap: 1.5rem; padding-block: 2.1rem; border-bottom: 1px solid var(--snl-rule); }
.snl-service .snl-eyebrow { margin: 0.4rem 0 0; }
.snl-service h3 { margin: 0 0 1rem; }
.snl-service p { max-width: 62ch; color: var(--snl-muted); }
.snl-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; counter-reset: step; }
.snl-steps > div { counter-increment: step; padding-top: 1rem; border-top: 1px solid var(--snl-ink); }
.snl-steps > div::before { content: "0" counter(step); display: block; margin-bottom: 0.6rem; color: var(--snl-red); font: 700 0.6875rem var(--snl-sans); letter-spacing: 0.15em; }
.snl-quiet-cta { padding-block: 3rem 5rem; display: flex; justify-content: space-between; align-items: center; gap: 2rem; border-top: 1px solid var(--snl-rule); }
.snl-quiet-cta h2 { max-width: 760px; font-size: clamp(2rem, 4vw, 3.25rem); }
.snl-collab-intro { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 6vw; align-items: center; }
.snl-collab__image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.snl-contact-card { padding: 1.6rem; background: var(--snl-sand); }
.snl-contact-mail a { font: 400 clamp(1.5rem, 3vw, 2.25rem) var(--snl-serif); letter-spacing: -0.04em; }
.snl-call { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; padding-block: 2rem; border-block: 1px solid var(--snl-rule); }
.snl-call__meta { display: grid; gap: 0.5rem; align-content: start; }
.snl-status, .snl-status-collection { margin: 0; display: inline-block; width: max-content; padding: 0.45rem 0.65rem; background: var(--snl-red); color: #fff; font: 700 0.5625rem var(--snl-sans); letter-spacing: 0.13em; text-transform: uppercase; }
.snl-status-collection { background: var(--snl-sand); color: var(--snl-ink); }
.snl-directory-item { display: grid; grid-template-columns: 1fr 0.8fr; gap: 6vw; align-items: center; padding-block: clamp(3rem, 6vw, 5rem); border-top: 1px solid var(--snl-rule); }
.snl-directory-item h2 { font-size: clamp(4rem, 9vw, 8rem); }
.snl-directory-item--noire h2 { color: var(--snl-ink); } .snl-directory-item--seve h2 { color: var(--snl-green); } .snl-directory-item--origines h2 { color: var(--snl-blue); }
.snl-directory__meta { margin: 0 0 1rem; color: var(--snl-muted); font: 700 0.6875rem var(--snl-sans); letter-spacing: 0.16em; text-transform: uppercase; }
.snl-directory__note { padding: 0.9rem 0; border-top: 1px solid var(--snl-rule); color: var(--snl-muted); font-size: 0.875rem; }
.snl-directory__art img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; }
.snl-directory-item:nth-child(even) .snl-directory__copy { order: 2; }
.snl-links-hero { padding-block: 3.5rem 1rem; }
.snl-links-list { border-top: 1px solid var(--snl-ink); }
.snl-links-card { position: relative; display: grid; grid-template-columns: 70px 1fr; gap: 0.25rem 1.5rem; padding-block: 1.6rem; border-bottom: 1px solid var(--snl-rule); }
.snl-links-card h2 { margin: 0; font-size: clamp(1.875rem, 4vw, 3rem); letter-spacing: -0.05em; }
.snl-links-card h2 a::before { content: ""; position: absolute; inset: 0; }
.snl-links-card p { grid-column: 2; margin: 0; color: var(--snl-muted); font-size: 0.9375rem; }
.snl-links-card .snl-links-index { grid-row: 1 / 3; color: var(--snl-red); font: 700 0.6875rem var(--snl-sans); letter-spacing: 0.14em; }
.snl-links-feature { display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-block: 3rem 5rem; padding: 2.2rem; background: var(--snl-sand); }
.snl-links-feature h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
.snl-prose-page { padding-block: 0 var(--wp--preset--spacing--70); padding-inline: var(--snl-gutter); }

/* ---------- Cartes, grilles, contenus (livres, auteurs) ---------- */
.snl-grid .wp-block-post-template, .snl-grid > .wp-block-post-template { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; padding: 0; list-style: none; }
.snl-grid--catalog .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.snl-grid--authors .wp-block-post-template { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4rem 0.8rem; }
.snl-card { position: relative; display: grid; grid-template-rows: auto 1fr; height: 100%; background: var(--snl-sand); transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.4s; }
.snl-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(17, 16, 15, 0.1); }
.snl-card__cover { aspect-ratio: 4 / 5; overflow: hidden; background: linear-gradient(140deg, #5f201f, #b23c2f 47%, #171612); }
.snl-card__cover figure, .snl-card__cover img { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }
.snl-card:hover .snl-card__cover img { transform: scale(1.035); }
.snl-card__body { display: grid; gap: 0.5rem; align-content: start; padding: 1rem 1.1rem 1.2rem; }
.snl-card__body .wp-block-post-title { margin: 0; font-size: 1.5rem; line-height: 1.05; letter-spacing: -0.03em; }
.snl-card__body .snl-eyebrow { margin: 0; font-size: 0.5625rem; }
.snl-book-hero, .snl-profile-hero { display: grid; grid-template-columns: 0.7fr 1fr; gap: 6vw; align-items: end; padding-block: clamp(3rem, 6vw, 5.5rem); }
.snl-profile-hero { grid-template-columns: 1fr 0.7fr; }
.snl-book__cover img, .snl-author__portrait img { width: 100%; object-fit: cover; }
.snl-book__facts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0; font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; }
.snl-article { padding-bottom: 5rem; }
.snl-article > * { font-size: 1.125rem; line-height: 1.75; }
.wp-block-query-pagination { margin-top: 2.5rem; font: 700 0.6875rem var(--snl-sans); letter-spacing: 0.12em; text-transform: uppercase; }

/* ---------- Pied de page ---------- */
.snl-footer { padding: 3.25rem var(--snl-gutter) 1.75rem; border-top: 1px solid var(--snl-rule); }
.snl-footer__top { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 6vw; align-items: start; }
.snl-footer__motto { margin: 0; font-size: clamp(2rem, 4.5vw, 3.6rem); letter-spacing: -0.055em; line-height: 0.98; }
.snl-newsletter { padding-top: 1rem; border-top: 1px solid var(--snl-rule); }
.snl-newsletter__label { margin: 0 0 0.6rem; font: 700 0.6875rem var(--snl-sans); letter-spacing: 0.14em; text-transform: uppercase; }
.snl-newsletter__text { max-width: 440px; color: var(--snl-muted); }
.snl-footer__bottom { display: flex; justify-content: space-between; gap: 1.4rem; margin-top: 3.4rem; padding-top: 1.1rem; border-top: 1px solid var(--snl-rule); color: var(--snl-muted); font-size: 0.5625rem; letter-spacing: 0.1em; text-transform: uppercase; }
.snl-footer__bottom p { margin: 0; }
.snl-footer__links .wp-block-navigation__container { gap: 1.05rem; flex-wrap: wrap; }
.snl-to-top { position: fixed; right: 24px; bottom: 24px; z-index: 15; width: 48px; height: 48px; border: 0; background: var(--snl-blue); color: #fff; font-size: 1.3rem; box-shadow: 0 8px 22px rgba(17, 16, 15, 0.13); opacity: 0; pointer-events: none; transition: opacity 0.2s; cursor: pointer; }
.snl-to-top.is-visible { opacity: 1; pointer-events: auto; }

/* ---------- Apparition au défilement ---------- */
.snl-js .snl-reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.72s ease, transform 0.72s cubic-bezier(0.2, 0.7, 0.2, 1); }
.snl-js .snl-reveal.is-visible { opacity: 1; transform: none; }
@view-transition { navigation: auto; }

/* ---------- Adaptation ---------- */
@media (max-width: 900px) {
	.snl-hero { grid-template-columns: 1fr 1fr; gap: 1.6rem; min-height: 640px; }
	.snl-book-feature { padding: 1.1rem; gap: 1.6rem; }
	.snl-book-feature__art { min-height: 380px; }
	.snl-collection { grid-template-columns: 70px 1fr 1.2fr auto; gap: 1rem; padding-block: 1.25rem; }
	.snl-grid .wp-block-post-template, .snl-grid--catalog .wp-block-post-template, .snl-grid--authors .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.snl-steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 650px) {
	:root { --snl-header: 64px; }
	.snl-brand-label { display: none; }
	.snl-wordmark { font-size: 1.3125rem; }
	.snl-site-menu { grid-template-columns: 1fr; overflow-y: auto; overscroll-behavior: contain; }
	.snl-site-menu__main { min-height: 72svh; padding: 100px 1.75rem 2.9rem; }
	.snl-menu-close { top: 20px; left: auto; right: 22px; }
	.snl-site-menu__side { border-left: 0; border-top: 1px solid var(--snl-rule); padding: 1.4rem 1.75rem 1.75rem; }
	.snl-menu-side__top { display: flex; justify-content: space-between; gap: 1.1rem; }
	.snl-menu-group:last-child, .snl-menu-newsletter { display: none; }
	.snl-hero { grid-template-columns: 1fr; gap: 1.9rem; min-height: 0; padding-block: 58px 24px; }
	.snl-hero__art { max-width: none; aspect-ratio: 1.08 / 1; }
	.snl-section-head { display: block; margin-bottom: 1.75rem; }
	.snl-section-intro { margin-top: 0.9rem; font-size: 0.9375rem; }
	.snl-manifesto__grid, .snl-promo__grid, .snl-band__grid, .snl-journal, .snl-footer__top, .snl-split, .snl-collab-intro, .snl-book-hero, .snl-profile-hero, .snl-directory-item, .snl-call { grid-template-columns: 1fr; gap: 1.6rem; }
	.snl-book-feature { grid-template-columns: 1fr; padding: 0.75rem; gap: 0.5rem; }
	.snl-book-feature__art { min-height: 360px; }
	.snl-collection { grid-template-columns: 1fr auto; gap: 0.5rem 1rem; padding-block: 1.4rem; }
	.snl-collection .snl-eyebrow, .snl-collection p:not(.snl-eyebrow):not(.snl-text-link), .snl-collection .snl-text-link { grid-column: 1 / -1; }
	.snl-journal__heading { position: static; }
	.snl-journal-item { grid-template-columns: 1fr; }
	.snl-journal-item .snl-date { grid-column: 1; grid-row: 1; justify-self: start; }
	.snl-service { grid-template-columns: 1fr; gap: 0.4rem; }
	.snl-steps { grid-template-columns: 1fr; }
	.snl-quiet-cta, .snl-links-feature { flex-direction: column; align-items: flex-start; }
	.snl-directory-item:nth-child(even) .snl-directory__copy { order: 0; }
	.snl-footer__bottom { display: block; line-height: 1.8; }
	.snl-footer__links { margin-top: 0.9rem; }
	.snl-to-top { right: 14px; bottom: 14px; width: 44px; height: 44px; }
	.snl-grid--catalog .wp-block-post-template { gap: 0.75rem; }
	.snl-card__body { padding: 0.8rem; } .snl-card__body .wp-block-post-title { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
	.snl-js .snl-reveal { opacity: 1; transform: none; }
}

/* Mots colorés dans les titres : pas de surlignage */
mark.has-inline-color, .has-inline-color { background: none; background-color: transparent; }
