/*
Theme Name: Salubre
Theme URI: https://salubre.app
Author: Salubre
Author URI: https://salubre.app
Description: Thème FSE sur mesure du réseau Salubre.
Version: 1.40.0
Requires at least: 7.0
Tested up to: 7.0
Requires PHP: 8.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: salubre
*/

/* La quasi-totalité du style vient de theme.json.
   Ici : uniquement ce que theme.json ne sait pas faire. */

/* Soulignement doux sur l'emphase du hero */
.salubre-hero em {
	font-style: normal;
	color: var(--wp--preset--color--green);
	background: linear-gradient(color-mix(in srgb, var(--wp--preset--color--signal) 34%, transparent), color-mix(in srgb, var(--wp--preset--color--signal) 34%, transparent)) left 88% / 100% 0.16em no-repeat;
}

/* Liens du pied de page avec icônes */
.salubre-footer-links {
	display: flex;
	flex-direction: column;
	gap: .95rem;
	align-items: flex-start;
}
.salubre-footer-links .wp-block-icon,
.salubre-footer-links .wp-block-icon svg {
	width: 21px;
	height: 21px;
	color: var(--wp--preset--color--green-bright);
	fill: currentColor;
}
.salubre-footer-links h3 { margin: 0; }
.salubre-footer-links a {
	color: var(--wp--preset--color--paper);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .15s;
}
.salubre-footer-links a:hover {
	border-bottom-color: var(--wp--preset--color--green-bright);
}
.salubre-footer-links svg {
	color: var(--wp--preset--color--green-bright);
	flex-shrink: 0;
}

/* Pastille de catégorie (blog + article) */
.salubre-cat-pill {
	font-family: var(--wp--preset--font-family--display);
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
}
.salubre-cat-pill a {
	display: inline-block;
	background: var(--wp--preset--color--green);
	color: var(--wp--preset--color--paper);
	padding: .3em .95em;
	border-radius: 99px;
	text-decoration: none;
}
.salubre-cat-pill a:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}

/* Cartes du blog : léger relief au survol, liseré accent */
.salubre-card {
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.salubre-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 34px rgb(15 29 22 / .09);
	border-color: var(--wp--preset--color--green-bright) !important;
}
.salubre-card .wp-block-post-date {
	color: var(--wp--preset--color--ink-soft);
}

/* Corps d'article : titres marqués, lecture confortable */
.salubre-article {
	font-size: 1.06rem;
	line-height: 1.75;
}
.salubre-article > h2 {
	margin-top: 2.6rem;
	padding-top: 1.1rem;
	position: relative;
}
.salubre-article > h2::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 3.2rem;
	height: 5px;
	border-radius: 99px;
	background: var(--wp--preset--color--green-bright);
}
.salubre-article > h3 {
	margin-top: 2rem;
	color: var(--wp--preset--color--green);
}
.salubre-article a {
	text-decoration-color: var(--wp--preset--color--green-bright);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}
.salubre-article table {
	border-collapse: collapse;
	font-size: .92rem;
}
.salubre-article table th,
.salubre-article table td {
	border: 1px solid var(--wp--preset--color--line);
	padding: .55rem .8rem;
}
.salubre-article table th {
	background: var(--wp--preset--color--green-wash);
	font-family: var(--wp--preset--font-family--display);
}

/* Superposition de navigation : croix de fermeture en clair */
.wp-block-navigation-overlay-close,
.wp-block-navigation-overlay-close button,
.wp-block-navigation-overlay__close {
	background: none;
	border: 0;
	color: var(--wp--preset--color--paper);
}
.wp-block-navigation-overlay-close svg,
.wp-block-navigation-overlay__close svg {
	fill: currentColor;
	stroke: currentColor;
}

/* Bande de suggestion de langue (multisite) : en haut du site, dans le flux */
.salubre-lang-band {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	padding: 10px 16px;
	font-size: 0.85rem;
	text-align: center;
}
.salubre-lang-band a {
	color: var(--wp--preset--color--green-bright);
	font-weight: 700;
	white-space: nowrap;
}
.salubre-lang-band button {
	background: none;
	border: 0;
	color: var(--wp--preset--color--paper);
	opacity: 0.7;
	cursor: pointer;
	font-size: 0.85rem;
	padding: 2px 6px;
}
.salubre-lang-band button:hover { opacity: 1; }

/* La palette au travail dans toute la mise en page */
::selection {
	background: var(--wp--preset--color--green-bright);
	color: var(--wp--preset--color--ink);
}
mark {
	background: var(--wp--preset--color--signal-wash);
	color: var(--wp--preset--color--signal);
	padding: 0 .25em;
	border-radius: 4px;
}
.salubre-article li::marker {
	color: var(--wp--preset--color--signal);
}
.salubre-article blockquote {
	border-left: 4px solid var(--wp--preset--color--green-bright);
	background: var(--wp--preset--color--green-wash);
	padding: .9rem 1.2rem;
	border-radius: 0 14px 14px 0;
}
.wp-block-separator {
	border-color: var(--wp--preset--color--green-bright);
}
.wp-block-query-pagination .current,
.wp-block-query-pagination-numbers .current {
	color: var(--wp--preset--color--signal);
	font-weight: 800;
}

/* Radiographie native (details) : cartes sombres dépliables */
.salubre-xray-item {
	background: rgb(255 255 255 / .06);
	border: 1px solid rgb(255 255 255 / .12);
	border-radius: 14px;
	padding: .85rem 1rem;
	margin-bottom: .7rem;
}
.salubre-xray-item summary {
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: .5em;
	flex-wrap: wrap;
}
.salubre-xray-item[open] {
	border-color: var(--wp--preset--color--green-bright);
}
.salubre-xray-item p { margin-top: .6rem; }

/* FAQ : marqueurs et survol aux couleurs du thème */
.wp-block-details > summary::marker {
	color: var(--wp--preset--color--signal);
}
.wp-block-details > summary:hover {
	color: var(--wp--preset--color--green);
}

/* Radiographie : objets emoji, panneau façon fiche de l'app */
.salubre-xray .sx-emoji,
.sx-item .sx-emoji {
	font-size: 52px;
	cursor: pointer;
	transition: transform .2s ease, filter .2s ease;
}
.sx-item:hover .sx-emoji,
.sx-item.is-active .sx-emoji {
	transform: translateY(-3px);
	filter: drop-shadow(0 6px 14px rgb(143 191 111 / .55));
}
.sx-badges {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin: .45rem 0 .65rem;
}
.sx-b {
	font-size: .64rem;
	font-weight: 800;
	padding: 4px 10px;
	border-radius: 99px;
	letter-spacing: .02em;
	white-space: nowrap;
}
.sx-b-i {
	background: var(--wp--preset--color--signal-wash);
	color: var(--wp--preset--color--signal);
}
.sx-b-p {
	background: var(--wp--preset--color--green-wash);
	color: var(--wp--preset--color--green);
	border: 1px solid var(--wp--preset--color--green-bright);
}
.sx-alt {
	background: var(--wp--preset--color--green-wash);
	border: 1px solid var(--wp--preset--color--green-bright);
	border-radius: 12px;
	padding: .7rem .9rem;
}
.sx-alt i {
	display: block;
	font-style: normal;
	font-size: .6rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--wp--preset--color--green);
	margin-bottom: 2px;
}
.sx-alt b { display: block; }
.sx-alt span { font-size: .82rem; }

/* Aperçus de l'app : deux cartes flottantes, jamais déformées */
.salubre-shots {
	position: relative;
	min-height: 350px;
	max-width: 430px;
	margin: 0 auto;
}
.salubre-shot {
	position: absolute;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 16px;
	box-shadow: 0 16px 38px rgb(45 40 30 / .16);
	padding: 15px 16px;
}
.salubre-shot-a { width: 285px; max-width: 74%; top: 0; left: 0; transform: rotate(-2.5deg); z-index: 2; }
.salubre-shot-b { width: 215px; max-width: 60%; bottom: 0; right: 0; transform: rotate(2deg); }
.salubre-shot p { margin: 0; }
.ss-label {
	font-size: .62rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: #9C917B;
}
.ss-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.02rem;
	margin-top: 3px !important;
}
.ss-badges { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 !important; }
.ss-verdict { font-size: .78rem; color: var(--wp--preset--color--ink-soft); line-height: 1.55; }
.ss-choice {
	margin-top: 10px;
	background: var(--wp--preset--color--green-wash);
	border: 1px solid var(--wp--preset--color--green-bright);
	border-radius: 11px;
	padding: 8px 11px;
	font-size: .74rem;
}
.ss-choice i {
	display: block;
	font-style: normal;
	font-size: .58rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wp--preset--color--green);
}
.ss-choice b { display: block; font-family: var(--wp--preset--font-family--display); font-size: .88rem; }
.ss-ring {
	width: 78px;
	height: 78px;
	border-radius: 50%;
	background: conic-gradient(var(--wp--preset--color--green) 0 68%, var(--wp--preset--color--line) 68% 100%);
	display: grid;
	place-items: center;
	margin: 8px 0;
}
.ss-ring span {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--wp--preset--color--paper);
	display: grid;
	place-items: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.15rem;
}
.ss-milest { display: flex; gap: 5px; margin-top: 9px !important; }
.ss-milest span {
	font-size: .95rem;
	background: var(--wp--preset--color--green-wash);
	border: 1px solid var(--wp--preset--color--green-bright);
	border-radius: 9px;
	padding: 3px 7px;
}
.ss-milest span.off {
	background: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--line);
	opacity: .45;
}
@media (max-width: 781px) {
	.salubre-shots { min-height: 0; display: flex; flex-direction: column; gap: 14px; max-width: 360px; }
	.salubre-shot { position: static; }
	.salubre-shot-a { width: 100%; max-width: none; transform: rotate(-1deg); }
	.salubre-shot-b { width: 82%; max-width: none; transform: rotate(1.2deg); align-self: flex-end; }
}

/* Carte Salubre Pro : la maquette, en accueillant */
.salubre-procard {
	background: var(--wp--preset--color--panel);
	border: 1px solid var(--wp--preset--color--line);
	border-top: 4px solid var(--wp--preset--color--green-bright);
	border-radius: 18px;
	padding: 26px 24px 20px;
	box-shadow: 0 14px 32px rgb(60 90 45 / .12);
}
.salubre-procard .pc-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}
.salubre-procard .pc-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0;
}
.salubre-procard .pc-tag {
	font-size: .64rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	background: var(--wp--preset--color--green-wash);
	color: var(--wp--preset--color--green);
	border: 1px solid var(--wp--preset--color--green-bright);
	padding: 5px 12px;
	border-radius: 99px;
	white-space: nowrap;
}
.salubre-procard .pc-list {
	list-style: none;
	padding: 0;
	margin: 10px 0 0;
}
.salubre-procard .pc-list li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 10px 0;
	border-bottom: 1px dashed var(--wp--preset--color--line);
	font-size: .9rem;
	line-height: 1.5;
}
.salubre-procard .pc-list li:last-child { border-bottom: 0; }
.salubre-procard .pc-emoji { flex: 0 0 auto; font-size: 1.05rem; }
.salubre-procard .pc-foot {
	color: #9C917B;
	font-size: .78rem;
	margin: 10px 0 0;
}

/* Badge du hero : pastille (maquette) */
.salubre-pill {
	display: inline-block;
	background: var(--wp--preset--color--green-wash);
	color: var(--wp--preset--color--green);
	border: 1px solid var(--wp--preset--color--green-bright);
	padding: 6px 15px;
	border-radius: 99px;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .03em;
}

/* Radiographie : rangée d'objets emoji cliquables (mêmes interactions qu'avant) */
.sx-scene {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(2, 1fr);
	align-content: stretch;
	justify-items: stretch;
	gap: 8px;
	height: 100%;
	min-height: 430px;
	background: rgb(255 255 255 / .05);
	border: 1px solid rgb(255 255 255 / .13);
	border-radius: 16px;
	padding: 16px 14px;
}
.sx-scene .sx-item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	background: none;
	border: 0;
	padding: 10px 12px;
	border-radius: 14px;
	cursor: pointer;
	color: #CDC2AB;
	font: inherit;
}
.sx-scene .sx-obj {
	font-size: 2.4rem;
	line-height: 1;
	transition: transform .18s ease, filter .18s ease;
}
.sx-scene .sx-name {
	font-size: .72rem;
	font-weight: 600;
	max-width: 9em;
	text-align: center;
	line-height: 1.3;
}
.sx-scene .sx-item:hover .sx-obj,
.sx-scene .sx-item:focus-visible .sx-obj {
	transform: translateY(-3px);
	filter: drop-shadow(0 6px 12px rgb(143 191 111 / .5));
}
.sx-scene .sx-item.is-active {
	background: rgb(143 191 111 / .14);
	outline: 1px solid var(--wp--preset--color--green-bright);
}
.sx-scene .sx-item.is-active .sx-name {
	color: var(--wp--preset--color--paper);
}
.sx-dot {
	position: absolute;
	top: 6px;
	right: 10px;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--wp--preset--color--signal);
	animation: salubre-ping 2.2s ease-out infinite;
}
@keyframes salubre-ping {
	0% { box-shadow: 0 0 0 0 rgb(201 58 34 / .5); }
	70% { box-shadow: 0 0 0 9px rgb(201 58 34 / 0); }
	100% { box-shadow: 0 0 0 0 rgb(201 58 34 / 0); }
}
@media (prefers-reduced-motion: reduce) {
	.sx-dot { animation: none; }
}

/* Titres : emphase verte de la maquette (accueil) */
h2.wp-block-heading em {
	color: var(--wp--preset--color--green);
	font-style: italic;
}
.has-ink-background-color h2.wp-block-heading em {
	color: var(--wp--preset--color--green-bright);
}

/* Manifeste : piliers en cartes bordées sur fond encre (maquette) */
.has-ink-background-color > .wp-block-columns > .wp-block-column {
	border: 1px solid #3A3226 !important;
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40) !important;
}
.has-ink-background-color > .wp-block-columns > .wp-block-column p.has-ink-soft-color {
	color: #CDC2AB !important;
}

/* Sections en deux colonnes avec aperçu ou carte Pro : centrage vertical */
.wp-block-columns:has(.salubre-shots),
.wp-block-columns:has(.salubre-procard) {
	align-items: center;
}

/* ===== v1.32 : accueil reconstruit en blocs natifs, adaptation du balisage ===== */

/* Hero : bandeau de sources + halo */
.salubre-trust { margin-top: var(--wp--preset--spacing--40); }
.salubre-trust p { margin: 0; }
.salubre-trust-lab {
	font-size: .66rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #9C917B;
}
.salubre-trust-src {
	font-family: var(--wp--preset--font-family--display);
	font-size: .8rem;
	color: var(--wp--preset--color--ink-soft);
	letter-spacing: .02em;
}
.salubre-trust-src strong { color: var(--wp--preset--color--green); font-weight: 700; }
main.salubre-front > .wp-block-group:first-child,
.wp-block-post-content > .wp-block-group:first-child { position: relative; overflow: hidden; }
main.salubre-front > .wp-block-group:first-child::before,
.wp-block-post-content > .wp-block-group:first-child::before {
	content: "";
	position: absolute;
	top: -140px;
	right: -120px;
	width: 480px;
	height: 480px;
	border-radius: 50%;
	background: radial-gradient(circle, var(--wp--preset--color--green-wash) 0%, rgb(234 241 226 / 0) 68%);
	pointer-events: none;
}
main.salubre-front > .wp-block-group:first-child > *,
.wp-block-post-content > .wp-block-group:first-child > * { position: relative; }

/* Aperçus : badges et « Notre choix » en paragraphes natifs */
.ss-badges { margin: 8px 0 !important; }
.ss-badges p, .salubre-shot .ss-badge {
	margin: 0;
	font-size: .6rem;
	font-weight: 800;
	padding: 4px 9px;
	border-radius: 99px;
	line-height: 1.4;
}
.ss-badge-i { background: var(--wp--preset--color--signal-wash); color: var(--wp--preset--color--signal); }
.ss-badge-p { background: var(--wp--preset--color--green-wash); color: var(--wp--preset--color--green); border: 1px solid var(--wp--preset--color--green-bright); }
.ss-choice p { margin: 0; }
.ss-choice-lab {
	font-size: .58rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wp--preset--color--green);
}
.ss-choice-name { font-family: var(--wp--preset--font-family--display); font-size: .88rem; }
.ss-choice-meta { font-size: .72rem; color: var(--wp--preset--color--ink-soft); }
.ss-ring > p {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--wp--preset--color--paper);
	display: grid;
	place-items: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.15rem;
	margin: 0;
}
.ss-milest { margin-top: 9px !important; gap: 5px; }
.ss-milest p {
	margin: 0;
	font-size: .95rem;
	background: var(--wp--preset--color--green-wash);
	border: 1px solid var(--wp--preset--color--green-bright);
	border-radius: 9px;
	padding: 3px 7px;
	letter-spacing: .35em;
	padding-right: 2px;
}
.ss-milest p.off {
	background: var(--wp--preset--color--paper);
	border-color: var(--wp--preset--color--line);
	opacity: .45;
}
.salubre-beta-min {
	font-size: .8rem !important;
	font-style: italic;
	margin-top: var(--wp--preset--spacing--30);
}
.salubre-beta-min a { color: var(--wp--preset--color--green); }
.wp-block-columns:has(.salubre-shots), .wp-block-columns:has(.salubre-procard) { align-items: center; }

/* Carte Pro : liste native (emoji dans le texte) */
.salubre-procard p { margin: 0; }
.salubre-procard .pc-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	font-weight: 700;
}
.salubre-procard .pc-list { list-style: none; padding: 0; margin: 10px 0 0; }
.salubre-procard .pc-list li {
	display: block;
	padding: 11px 0;
	border-bottom: 1px dashed var(--wp--preset--color--line);
	font-size: .88rem;
	line-height: 1.55;
}
.salubre-procard .pc-list li:last-child { border-bottom: 0; }
.salubre-procard .pc-foot { margin-top: 10px; }

/* Section Pro : chips du gratuit */
.salubre-freechips { margin: 4px 0 10px; gap: 8px; }
.salubre-freechips p {
	margin: 0;
	font-size: .74rem;
	font-weight: 700;
	background: var(--wp--preset--color--panel);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 99px;
	padding: 6px 13px;
	color: var(--wp--preset--color--ink-soft);
}
.salubre-freechips p::first-letter { color: var(--wp--preset--color--green); }

/* Manifeste : lueur des piliers */
.has-ink-background-color > .wp-block-columns > .wp-block-column {
	background: linear-gradient(180deg, rgb(143 191 111 / .06), rgb(143 191 111 / 0) 40%);
}

/* Étapes : trait signal sous le numéro */
.wp-block-column.has-panel-background-color > h3:first-child::after {
	content: "";
	display: block;
	width: 26px;
	height: 3px;
	border-radius: 2px;
	background: var(--wp--preset--color--signal);
	opacity: .55;
	margin-top: 8px;
}

/* Blog : flèche au survol des cartes */
.salubre-card { position: relative; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.salubre-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgb(45 40 30 / .1); border-color: var(--wp--preset--color--green-bright) !important; }
.salubre-card::after {
	content: "→";
	position: absolute;
	right: 16px;
	bottom: 12px;
	color: var(--wp--preset--color--green-bright);
	font-weight: 800;
	opacity: 0;
	transition: opacity .18s ease;
}
.salubre-card:hover::after { opacity: 1; }

/* ===== v1.32.1 : radiographie, la grille et le panneau qui manquaient ===== */
.salubre-xray {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 26px;
	align-items: stretch;
	margin-top: var(--wp--preset--spacing--50);
}
.salubre-xray .sx-scene {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	align-content: center;
}
.sx-scene .sx-item { padding: 14px 8px; }
.sx-scene .sx-dot { top: 10px; right: calc(50% - 34px); }
.salubre-xray__detail {
	background: var(--wp--preset--color--panel);
	color: var(--wp--preset--color--ink);
	border-radius: 18px;
	padding: 24px 24px 20px;
	box-shadow: 0 18px 40px rgb(0 0 0 / .3);
}
.salubre-xray__detail .sx-tag {
	font-size: .62rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--wp--preset--color--signal);
}
.salubre-xray__detail h3 {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.3rem;
	margin: 4px 0 8px;
}
.salubre-xray__detail .sx-why {
	font-size: .85rem;
	color: var(--wp--preset--color--ink-soft);
	line-height: 1.65;
	margin: 0 0 4px;
}
.salubre-xray__detail .sx-alt {
	margin-top: 12px;
	padding: 11px 14px;
	border-radius: 13px;
}
.salubre-xray__detail .sx-alt b {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	margin: 2px 0;
}
.salubre-xray__detail .sx-alt span {
	font-size: .78rem;
	color: var(--wp--preset--color--ink-soft);
}
.salubre-xray__detail .sx-hint {
	margin: 12px 0 0;
	font-size: .72rem;
	color: #9C917B;
}
.salubre-xray__detail.is-switching { animation: salubre-fiche .25s ease; }
@keyframes salubre-fiche {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}
@media (max-width: 781px) {
	.salubre-xray { grid-template-columns: 1fr; }
	.salubre-xray .sx-scene { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
	.salubre-xray .sx-scene { grid-template-columns: repeat(2, 1fr); }
}

/* ===================================================================
   v1.33 : élévation du design (charte de l'application)
   Matière, profondeur, mouvement doux, finitions.
   =================================================================== */

/* Sélection de texte aux couleurs de l'herbier */
::selection {
	background: var(--wp--preset--color--green-bright);
	color: var(--wp--preset--color--ink);
}

/* Typographie : titres plus dessinés */
h1.wp-block-heading, h2.wp-block-heading {
	letter-spacing: -0.015em;
	text-wrap: balance;
}
h2.wp-block-heading.has-x-large-font-size { line-height: 1.12; }
p { text-wrap: pretty; }

/* En-tête : verre dépoli sur papier */
header.is-position-sticky.has-paper-background-color {
	background: rgb(247 243 236 / .86) !important;
	-webkit-backdrop-filter: blur(10px) saturate(1.2);
	backdrop-filter: blur(10px) saturate(1.2);
	box-shadow: 0 1px 0 var(--wp--preset--color--line), 0 8px 24px rgb(45 40 30 / .05);
	border-bottom: 0 !important;
	z-index: 40;
}

/* Boutons : relief, retour tactile, focus visible */
.wp-element-button {
	transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease;
	box-shadow: 0 1px 2px rgb(36 31 26 / .12);
}
.wp-element-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgb(78 122 60 / .28);
}
.wp-element-button:active { transform: translateY(0); box-shadow: 0 2px 6px rgb(36 31 26 / .18); }
.is-style-outline .wp-element-button:hover {
	background: var(--wp--preset--color--green-wash);
	box-shadow: 0 10px 22px rgb(78 122 60 / .16);
}
.wp-element-button:focus-visible,
.sx-item:focus-visible,
.wp-block-details > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--signal);
	outline-offset: 3px;
}

/* Cartes (étapes, articles, aperçus, Pro) : ombre à deux couches */
.wp-block-column.has-panel-background-color,
.salubre-card,
.salubre-procard,
.salubre-shot {
	box-shadow: 0 1px 2px rgb(45 40 30 / .05), 0 12px 30px rgb(45 40 30 / .07);
}
.wp-block-column.has-panel-background-color {
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.wp-block-column.has-panel-background-color:hover {
	transform: translateY(-4px);
	border-color: var(--wp--preset--color--green-bright) !important;
	box-shadow: 0 2px 4px rgb(45 40 30 / .05), 0 20px 44px rgb(45 40 30 / .12);
}

/* Radiographie : fiche en relief, objets plus vivants */
.salubre-xray__detail {
	box-shadow: 0 2px 4px rgb(0 0 0 / .2), 0 24px 48px rgb(0 0 0 / .35);
	transition: opacity .18s ease, transform .18s ease;
}
.sx-scene { backdrop-filter: blur(2px); }
.sx-scene .sx-item { transition: background .18s ease, outline-color .18s ease, transform .18s ease; }
.sx-scene .sx-item:hover { transform: translateY(-2px); }
@media (max-width: 781px) {
	.salubre-xray { grid-template-columns: 1fr; }
}

/* Aperçus : les cartes se redressent sous la souris */
.salubre-shot { transition: transform .25s ease, box-shadow .25s ease; }
.salubre-shots:hover .salubre-shot-a { transform: rotate(-1deg) translateY(-3px); }
.salubre-shots:hover .salubre-shot-b { transform: rotate(0.8deg) translateY(-3px); }
.salubre-shots:hover .salubre-shot { box-shadow: 0 2px 4px rgb(45 40 30 / .06), 0 24px 52px rgb(45 40 30 / .18); }

/* Carte Pro : filigrane végétal, léger relief au survol */
.salubre-procard { position: relative; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.salubre-procard::after {
	content: "🌿";
	position: absolute;
	right: -18px;
	bottom: -24px;
	font-size: 7rem;
	opacity: .07;
	transform: rotate(-14deg);
	pointer-events: none;
}
.salubre-procard:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgb(60 90 45 / .06), 0 22px 48px rgb(60 90 45 / .18); }
.salubre-procard > * { position: relative; }

/* FAQ de l'accueil : rangées plates et jointes, centrées dans leur section.
   margin-inline reste géré par la mise en page WordPress (centrage auto) :
   ne JAMAIS écraser margin avec un raccourci ici. */
section.has-panel-background-color > .wp-block-details {
	background: none;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
	box-shadow: none;
	padding: 1rem .35rem;
	margin-block: 0 !important;
}
section.has-panel-background-color > .wp-block-details + .wp-block-details {
	margin-block-start: 0 !important;
}
.wp-block-details > summary {
	list-style: none;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	gap: .6em;
	align-items: baseline;
	transition: color .15s ease;
}
.wp-block-details > summary::-webkit-details-marker { display: none; }
.wp-block-details > summary::before {
	content: "\25B8";
	color: var(--wp--preset--color--signal);
	transition: transform .18s ease;
	flex: 0 0 auto;
}
.wp-block-details[open] > summary::before { transform: rotate(90deg); }
.wp-block-details > p { margin: .7rem 0 .2rem 1.5em; }

/* Sections sombres : halo doux (radiographie, manifeste, finale) */
main.salubre-front > .wp-block-group.has-ink-background-color,
.wp-block-post-content > .wp-block-group.has-ink-background-color {
	position: relative;
	overflow: hidden;
}
main.salubre-front > .wp-block-group.has-ink-background-color::before,
.wp-block-post-content > .wp-block-group.has-ink-background-color::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -30%;
	transform: translateX(-50%);
	width: 620px;
	height: 620px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(143 191 111 / .08), rgb(143 191 111 / 0) 70%);
	pointer-events: none;
}
main.salubre-front > .wp-block-group.has-ink-background-color > *,
.wp-block-post-content > .wp-block-group.has-ink-background-color > * { position: relative; }

/* Apparition douce au défilement (activée par reveal.js uniquement) */
html.salubre-reveal .wp-block-post-content > .wp-block-group,
html.salubre-reveal main.salubre-front > .wp-block-group {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .55s ease, transform .55s ease;
}
html.salubre-reveal .wp-block-post-content > .wp-block-group.is-revealed,
html.salubre-reveal main.salubre-front > .wp-block-group.is-revealed {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	html.salubre-reveal .wp-block-post-content > .wp-block-group,
html.salubre-reveal main.salubre-front > .wp-block-group { opacity: 1; transform: none; transition: none; }
	.wp-element-button, .salubre-shot, .salubre-procard, .wp-block-column.has-panel-background-color { transition: none; }
}

/* Blog : titres qui verdissent, extraits contenus */
.salubre-card .wp-block-post-title a { transition: color .15s ease; text-decoration: none; }
.salubre-card:hover .wp-block-post-title a { color: var(--wp--preset--color--green); }
.salubre-card .wp-block-post-excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* v1.34 : retours de relecture */

/* Scène de la radiographie : objets répartis sur toute la hauteur */
.sx-scene .sx-item { justify-content: center; }
@media (max-width: 781px) {
	.sx-scene { height: auto; grid-template-columns: repeat(3, 1fr); }
}

/* Sources du hero : une respiration, pas un bandeau */
.salubre-trust {
	margin-top: var(--wp--preset--spacing--40) !important;
	font-size: .78rem;
	color: #9C917B;
	font-style: italic;
	letter-spacing: .01em;
}

/* Fin de page : aucune marge parasite avant le pied de page */
.wp-block-post-content { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.wp-block-post-content > .wp-block-group:last-child { margin-bottom: 0 !important; }
.wp-site-blocks > main, main.wp-block-group { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.wp-site-blocks > footer, footer.wp-block-template-part { margin-top: 0 !important; }

/* v1.35 : accueil piloté par le gabarit front-page */
main.salubre-front { margin-block: 0 !important; padding: 0 !important; }
main.salubre-front + footer, .wp-site-blocks > footer { margin-block-start: 0 !important; }

/* v1.37 : retours captures */

/* Radiographie : hauteur stable quel que soit l'objet ouvert */
.salubre-xray__detail { min-height: 430px; }
@media (max-width: 781px) {
	.sx-scene { min-height: 0; grid-template-rows: none; height: auto; }
	.salubre-xray__detail { min-height: 0; }
}

/* Salubre Pro et aperçus : centrés verticalement face à leur colonne voisine */
.wp-block-column:has(> .salubre-procard),
.wp-block-column:has(> .salubre-shots) {
	align-self: center;
}

/* v1.38 : sections jointives, pictos SVG, micro-animations, finitions */

/* Plus aucune bande de fond entre les grandes sections de page :
   l'écart de flux ne s'applique plus aux groupes pleine largeur. */
.wp-block-post-content > .wp-block-group.alignfull,
main.salubre-front > .wp-block-group.alignfull {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Pictos SVG de la scène : calés sur la taille des emojis */
.sx-scene .sx-obj svg {
	width: 1em;
	height: 1em;
	display: block;
	font-size: inherit;
}

/* Changement d'objet : la fiche glisse en douceur */
.salubre-xray__detail.sx-swap { animation: sx-swap .22s ease; }
@keyframes sx-swap {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

/* FAQ : la rangée s'éclaire sous la souris */
section.has-panel-background-color > .wp-block-details > summary { border-radius: 8px; padding: .15rem .35rem; margin: -.15rem -.35rem; }
section.has-panel-background-color > .wp-block-details > summary:hover { background: var(--wp--preset--color--green-wash); }

/* Défilement fluide et ancres dégagées de l'en-tête collant */
html { scroll-behavior: smooth; }
:target, section[id] { scroll-margin-top: 90px; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.salubre-xray__detail.sx-swap { animation: none; }
}

/* v1.39 : piliers du manifeste, textes calés en bas des cartes */
.has-ink-background-color > .wp-block-columns > .wp-block-column {
	display: flex;
	flex-direction: column;
}
.has-ink-background-color > .wp-block-columns > .wp-block-column > p:last-child {
	margin-top: auto;
	padding-top: 1rem;
}

/* v1.40 : hero, respiration et impact */
main.salubre-front > .wp-block-group:first-child,
.wp-block-post-content > .wp-block-group:first-child {
	padding-top: clamp(4.5rem, 9vw, 7rem) !important;
	padding-bottom: clamp(4rem, 8vw, 6rem) !important;
}
.salubre-pill { margin-bottom: .6rem; }
h1.salubre-hero {
	font-size: clamp(2.5rem, 5.6vw, 3.9rem) !important;
	line-height: 1.05;
	margin-block: .9rem 1.1rem;
}
h1.salubre-hero + p { margin-bottom: .6rem; }

/* Le soulignement du titre se trace à l'arrivée */
html.salubre-reveal h1.salubre-hero em {
	background-size: 0% 0.16em;
	animation: salubre-underline .7s ease .55s forwards;
}
@keyframes salubre-underline {
	to { background-size: 100% 0.16em; }
}

/* Entrée en scène du hero, en cascade */
html.salubre-reveal main.salubre-front > .wp-block-group:first-child > *,
html.salubre-reveal .wp-block-post-content > .wp-block-group:first-child > * {
	opacity: 0;
	transform: translateY(12px);
	animation: salubre-rise .55s ease forwards;
}
html.salubre-reveal main.salubre-front > .wp-block-group:first-child > :nth-child(2),
html.salubre-reveal .wp-block-post-content > .wp-block-group:first-child > :nth-child(2) { animation-delay: .1s; }
html.salubre-reveal main.salubre-front > .wp-block-group:first-child > :nth-child(3),
html.salubre-reveal .wp-block-post-content > .wp-block-group:first-child > :nth-child(3) { animation-delay: .2s; }
html.salubre-reveal main.salubre-front > .wp-block-group:first-child > :nth-child(4),
html.salubre-reveal .wp-block-post-content > .wp-block-group:first-child > :nth-child(4) { animation-delay: .3s; }
@keyframes salubre-rise {
	to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	html.salubre-reveal main.salubre-front > .wp-block-group:first-child > *,
	html.salubre-reveal .wp-block-post-content > .wp-block-group:first-child > *,
	html.salubre-reveal h1.salubre-hero em {
		opacity: 1;
		transform: none;
		animation: none;
		background-size: 100% 0.16em;
	}
}
