/* ==========================================================================
   IPS Botanica : mise en page et composants.
   Les tokens (couleurs, polices, tailles, espacements) viennent de theme.json
   et sont modifiables dans l'éditeur de site : --wp--preset--*.
   ========================================================================== */

:root {
	--ips-wide: 82rem;
	--ips-content: 42.5rem;                 /* 680 px : colonne de lecture */
	--ips-gutter: var(--wp--custom--gutter, clamp(1.25rem, 0.5rem + 3vw, 3rem));
	--ips-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--ips-quick: 180ms;
	--ips-standard: 450ms;
	--ips-mousse: var(--wp--preset--color--mousse, #4d5a4f);
	/* ombres du site (cartes de l'arc seulement) : teinte humus, jamais noir pur */
	--ips-shadow: 0 1px 2px rgb(30 40 32 / 0.08), 0 10px 22px -14px rgb(30 40 32 / 0.4);
	--ips-shadow-lift: 0 2px 4px rgb(30 40 32 / 0.1), 0 22px 40px -16px rgb(30 40 32 / 0.55);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; text-rendering: optimizeLegibility; overflow-x: clip; }
img { max-width: 100%; height: auto; }
figure { margin: 0; }
a { text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
:focus-visible { outline: 2px solid var(--wp--preset--color--brique); outline-offset: 3px; }
h1, h2, h3, h4, h5, h6 { margin: 0; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
.visually-hidden, .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.wrap { width: min(100% - 2 * var(--ips-gutter), var(--ips-wide)); margin-inline: auto; }
.wrap--article { width: min(100% - 2 * var(--ips-gutter), 70rem); }
.wrap--page { width: min(100% - 2 * var(--ips-gutter), var(--ips-content)); padding-block: var(--wp--preset--spacing--60); }

/* Cadre photo : le format (2:3, 4:5) est tenu par le cadre, l'image remplit */
.ph { position: relative; overflow: hidden; isolation: isolate; background: var(--wp--preset--color--lichen); margin: 0; }
.ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ph::after {                                 /* filet lichen 1 px : les murs blancs ne se fondent pas dans le fond */
	content: ""; position: absolute; inset: 0; z-index: 1;
	border: 1px solid var(--wp--preset--color--lichen);
	border-radius: inherit; pointer-events: none;
}
.ph--23 { aspect-ratio: 2 / 3; }
.ph--45 { aspect-ratio: 4 / 5; }

/* Liens et méta */
.textlink { font-weight: 600; text-decoration: underline; text-decoration-color: var(--wp--preset--color--lichen); text-decoration-thickness: 2px; }
.textlink:hover { text-decoration-color: currentColor; }
.kicker, .kicker a { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--brique); text-decoration: none; }
.kicker .wp-block-post-terms__separator { color: var(--wp--preset--color--lichen); }
.meta { font-size: var(--wp--preset--font-size--small); color: var(--ips-mousse); }

/* Boutons : styles « lien souligné » et « clair » */
.wp-block-button__link { transition: background-color var(--ips-quick) var(--ips-ease), color var(--ips-quick); }
.wp-block-button.is-style-link .wp-block-button__link {
	background: none; color: var(--wp--preset--color--humus); padding: 0.25rem 0; border-radius: 0;
	text-decoration: underline; text-decoration-color: var(--wp--preset--color--lichen); text-decoration-thickness: 2px; text-underline-offset: 0.3em;
}
.wp-block-button.is-style-link .wp-block-button__link:hover { background: none; color: var(--wp--preset--color--brique); text-decoration-color: currentColor; }
.wp-block-button.is-style-light .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--fougere); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--wp--preset--color--lichen-pale); color: var(--wp--preset--color--humus); }

/* ---------- En-tête ---------- */
.site-header { position: relative; z-index: 20; }
.site-header__inner { gap: 2rem; padding-block: 1.4rem; align-items: center; }
.wordmark-wrap { margin: 0; line-height: 1; }
.wordmark {
	font-family: var(--wp--preset--font-family--newsreader);
	font-size: 1.6rem; font-weight: 400; letter-spacing: -0.01em;
	color: var(--wp--preset--color--fougere); text-decoration: none; line-height: 1; white-space: nowrap;
}
.wordmark:hover { color: var(--wp--preset--color--fougere); }
.wordmark--text { font-weight: 300; }
/* Logo de l'utilisatrice (SVG en <img>) : hauteur fixe, largeur proportionnelle */
.wordmark img { display: block; width: auto; height: 3.5rem; max-width: none; }
@media (max-width: 720px) { .wordmark img { height: 2.75rem; } }       /* ≈ 190 px de large : tient à 375 px */
.site-footer .wordmark img { height: 4rem; }

.site-nav { flex: 1 1 auto; }
.site-nav .wp-block-navigation__container { gap: 2rem; }
.site-nav .wp-block-navigation-item__content { text-decoration: none; font-size: 0.98rem; font-weight: 500; padding-block: 0.4rem; }
.site-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--brique); }
.site-nav .current-menu-item > .wp-block-navigation-item__content,
.site-nav [aria-current="page"] { text-decoration: underline; text-decoration-color: var(--wp--preset--color--brique); text-decoration-thickness: 2px; }

/* Bouton menu et fermeture */
.site-nav .wp-block-navigation__responsive-container-open,
.site-nav .wp-block-navigation__responsive-container-close {
	width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border-radius: 50%; color: var(--wp--preset--color--fougere);
}   /* pas de « display » ici : le cœur WordPress masque le bouton sur desktop */
.site-nav .wp-block-navigation__responsive-container-open:hover { background: rgba(167, 180, 156, 0.35); }
/* Le menu bascule en version mobile sous 860 px (le cœur WordPress le fait sous 600 px) */
@media (min-width: 600px) and (max-width: 860px) {
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* Menu mobile ouvert : liste typographique alignée à gauche, comme « Find plants by room » */
.site-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.4rem var(--ips-gutter) 2rem; }
.site-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem; align-items: stretch !important; }
.site-nav .is-menu-open .wp-block-navigation__container {
	gap: 0 !important; align-items: stretch !important; width: 100%;
}
/* About Karlie et Contact : seulement dans le menu mobile ouvert, en petit sous la liste
   (le filet du premier ferme la liste principale) */
.site-nav .nav-extra { display: none !important; }
.site-nav .is-menu-open .wp-block-navigation-item.nav-extra { display: block !important; border-top: 0; }
.site-nav .is-menu-open .wp-block-navigation-item.nav-extra--first { border-top: 1px solid var(--wp--preset--color--lichen); margin-top: 0; padding-top: 1.5rem; }
.site-nav .is-menu-open .nav-extra .wp-block-navigation-item__content {
	padding: 0.45rem 0 !important; font-family: var(--wp--preset--font-family--hanken-grotesk);
	font-size: 1rem; font-weight: 500; color: var(--ips-mousse);
}
/* Menu ouvert : le logo et la loupe restent visibles au-dessus de la surimpression (la croix est à droite) */
@media (max-width: 860px) {
	.site-header .wordmark-wrap, .site-header .site-search { position: relative; z-index: 100001; }
}
.site-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-top: 1px solid var(--wp--preset--color--lichen); }
.site-nav .is-menu-open .wp-block-navigation-item__content {
	display: block; width: 100%; padding: 0.9rem 0 !important;
	font-family: var(--wp--preset--font-family--newsreader); font-size: 2.3rem; font-weight: 300; line-height: 1.1;
	color: var(--wp--preset--color--fougere); text-align: left;
}
.site-nav .is-menu-open .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--brique); }

/* Recherche (loupe qui déplie le champ) */
.site-search { margin: 0; }
.site-search .wp-block-search__button {
	width: 2.75rem; height: 2.75rem; padding: 0; margin: 0; border: 0; border-radius: 50%;
	background: none; color: var(--wp--preset--color--fougere); display: grid; place-items: center;
}
.site-search .wp-block-search__button:hover { background: rgba(167, 180, 156, 0.35); }
.site-search .wp-block-search__button svg { width: 1.4rem; height: 1.4rem; fill: currentColor; }
.site-search .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.site-search .wp-block-search__input {
	border: 1px solid var(--wp--preset--color--fougere); border-radius: 999px; padding: 0.55rem 1rem; font: inherit; font-size: 0.95rem; min-width: 14rem;
}
.site-search.wp-block-search__searchfield-hidden .wp-block-search__input { min-width: 0; border-width: 0; padding: 0; }

@media (max-width: 860px) {
	.site-header__inner { gap: 0.25rem; }
	.wordmark-wrap { margin-right: auto; }
	.site-nav { flex: 0 0 auto; order: 3; }
	.site-search { order: 2; }
}

/* ---------- Hero en arc ---------- */
.hero {
	position: relative;
	min-height: min(calc(100svh - 5.5rem), 58rem);
	overflow-x: clip;
	display: grid; grid-template-rows: 1fr auto;
}
.hero__stage {
	position: relative;
	display: grid; place-items: start center;
	perspective: 800px;
	perspective-origin: 50% 11rem;            /* fixe : même géométrie quelle que soit la hauteur d'écran */
	min-height: 35rem;
}
/* Anneau incliné vu de l'intérieur : le fond remonte, les côtés descendent et encadrent le titre. */
.arc {
	--r: 540px; --w: 10.5rem; --step: 19deg;
	--c: var(--c-d, 5.5);                     /* photo centrale (fourni par le bloc) */
	--tilt: -18deg; --lift: -5rem; --near: 250px; --arc-y: 21rem;
	position: absolute; inset: 0; margin: 0; padding: 0; list-style: none;
	transform-style: preserve-3d;
	/* sans JS : position fixe. Avec JS, ips-motion.js écrit ce transform à chaque image (rotateY) :
	   aucune transition CSS ici, elle se battrait avec la boucle d'animation */
	transform: translateY(var(--lift)) translateZ(var(--near)) rotateX(var(--tilt)) rotateY(0deg);
	pointer-events: none;
}
.arc__item {
	position: absolute; left: 50%; top: var(--arc-y);
	width: var(--w); margin: calc(var(--w) * -0.75) 0 0 calc(var(--w) * -0.5);
	/* --k : tours complets (en nombre de cartes) ajoutés par le JS quand une carte passe d'un bord à l'autre */
	transform: rotateY(calc((var(--i) - var(--c) + var(--k, 0)) * var(--step))) translateZ(calc(var(--r) * -1));
	transform-style: preserve-3d; backface-visibility: hidden;
}
.arc__item:nth-child(odd) { margin-top: calc(var(--w) * -0.75 + 1.1rem); }
.arc__item:nth-child(3n)  { margin-top: calc(var(--w) * -0.75 - 0.9rem); }
.arc__link {
	position: relative; display: block; pointer-events: auto; isolation: isolate;
	text-decoration: none; color: inherit;
	transition: transform 120ms var(--ips-ease);
	-webkit-user-drag: none; user-select: none; -webkit-tap-highlight-color: transparent;
}
/* ombres sur deux pseudo-éléments : au survol, seule l'opacité de la plus marquée change (pas de repeinte) */
.arc__link::before, .arc__link::after {
	content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; aspect-ratio: 2 / 3;
	border-radius: 0.25rem; pointer-events: none;
}
.arc__link::before { box-shadow: var(--ips-shadow); }
.arc__link::after { box-shadow: var(--ips-shadow-lift); opacity: 0; transition: opacity 120ms var(--ips-ease); }
.arc__link .ph { display: block; aspect-ratio: 2 / 3; border-radius: 0.25rem; }
.arc__link:focus-visible { outline: none; }
.arc__link:focus-visible .ph { outline: 2px solid var(--wp--preset--color--brique); outline-offset: 4px; }
.js .arc__link:focus-visible { transform: scale(1.04); }
.js .arc__link:focus-visible::after { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
	.js .arc__link:hover { transform: scale(1.04); }
	.js .arc__link:hover::after { opacity: 1; }
}
.arc__tag {
	position: absolute; left: 50%; top: calc(100% + 0.3rem);
	width: max-content; max-width: 15rem; translate: -50% 0.4rem;
	padding: 0.3rem 0.75rem 0.35rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--fougere); outline: 1px solid var(--wp--preset--color--fougere); outline-offset: -4px;
	text-align: center; line-height: 1.2; opacity: 0; pointer-events: none;
	transition: opacity var(--ips-quick) var(--ips-ease), translate var(--ips-standard) var(--ips-ease);
}
.arc__name { display: block; font-size: 0.86rem; font-weight: 600; color: var(--wp--preset--color--fougere); }
.arc__latin { display: block; font-family: var(--wp--preset--font-family--newsreader); font-size: 1.02rem; color: var(--wp--preset--color--humus); }
/* Sans JavaScript : survol CSS simple (la photo est un lien vers l'article) */
html:not(.js) .arc__link { transition: transform 300ms var(--ips-ease); }
html:not(.js) .arc__link:hover, html:not(.js) .arc__link:focus-visible { transform: translateZ(60px) scale(1.13); }
html:not(.js) .arc__link:hover .arc__tag, html:not(.js) .arc__link:focus-visible .arc__tag { opacity: 1; translate: -50% 0; }
.hero__stage.is-draggable { cursor: grab; }
.hero__stage.is-draggable .arc__link { cursor: pointer; }
.hero__stage.is-grabbing, .hero__stage.is-grabbing * { cursor: grabbing !important; }
.hero__stage.is-grabbing .arc__link { transform: none; }

/* Carte sélectionnée (clic, tap, Entrée) : amenée au centre de l'arc par ips-motion.js, elle s'avance
   dans l'arc (translateZ + scale ≈ ×1,3 à l'écran, perspective conservée) devant ses voisines. */
.js .arc__item.is-selected .arc__link { transform: translateZ(var(--sel-z, 80px)) scale(1.2); }
.js .arc__item.is-selected .arc__link::after { opacity: 1; }
/* Légende de la carte sélectionnée : à plat, sous la carte (position écrite par le JS), sur fond blanc */
.arc-cap {
	position: absolute; z-index: 3; left: 50%; top: 0; translate: -50% 0;
	width: max-content; max-width: min(27rem, calc(100vw - 2 * var(--ips-gutter)));   /* ≈ l'espace libre sous la carte centrale : jamais sous les cartes voisines */
	display: flex; flex-direction: row; align-items: center; gap: 1rem; text-align: left;
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity 200ms linear, visibility 0s linear 200ms;
}
.arc-cap.is-shown { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 200ms linear; }
.arc-cap__title {
	font-family: var(--wp--preset--font-family--newsreader); font-size: 1.3rem; line-height: 1.15;
	color: var(--wp--preset--color--fougere); text-wrap: balance; min-width: 0;   /* largeur ramenée à la ligne la plus longue par le JS (fitTitle) */
}
.arc-cap__cta {
	display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 1.2rem; border-radius: 999px;
	background: var(--wp--preset--color--fougere); color: var(--wp--preset--color--base);
	font-weight: 600; font-size: 0.9rem; text-decoration: none; white-space: nowrap; flex: none;
	transition: background-color var(--ips-quick) var(--ips-ease);
}
.arc-cap__cta:hover { background: var(--wp--preset--color--humus); color: var(--wp--preset--color--base); }

.hero__title.wp-block-heading {
	position: relative; z-index: 2;
	font-size: var(--wp--preset--font-size--display); font-weight: 290; line-height: 0.95; letter-spacing: -0.03em;
	text-align: center; max-width: 11ch;
	margin: calc(var(--title-drop, 19.5rem) + var(--sel-drop, 0px)) auto 0;   /* --sel-drop : place de la légende d'une carte sélectionnée */
	/* écart minimal avec l'intro sur les écrans bas (≤ 800 px de haut, la scène s'y arrête au bas du titre,
	   et les lettres débordent de 2 px de leur boîte) ; sur les écrans hauts, la grille du hero donne plus */
	margin-bottom: 2.25rem;
	color: var(--wp--preset--color--fougere);
}
.hero__foot {
	position: relative; z-index: 2;
	display: grid; grid-template-columns: minmax(0, 26rem) auto; justify-content: space-between; align-items: end; gap: 2rem;
	padding-bottom: var(--wp--preset--spacing--50);
}
.hero__intro { font-size: 1.125rem; }
.hero__actions { gap: 1.75rem; align-items: center; }

@media (max-width: 720px) {
	.hero { min-height: auto; }
	.hero__stage { min-height: 0; padding-bottom: 2.5rem; perspective: 420px; perspective-origin: 50% 18%; }
	.arc { --r: 230px; --w: 6.4rem; --step: 27deg; --c: var(--c-m, 3.5); --tilt: -30deg; --lift: 0.75rem; --near: 110px; --arc-y: 12.6rem; --sel-z: 40px; }
	.arc-cap { flex-direction: column; gap: 0.5rem; text-align: center; max-width: min(15rem, 64vw); /* reste entre les cartes voisines, même avec un titre d'article long */ }
	.arc-cap__title { font-size: 1.1rem; }
	.arc__item[data-wide] { display: none; }
	.arc__item { transform: rotateY(calc((var(--im) - var(--c) + var(--k, 0)) * var(--step))) translateZ(calc(var(--r) * -1)); }
	.arc__item:nth-child(odd) { margin-top: calc(var(--w) * -0.75 + 1rem); }
	.arc__item:nth-child(3n)  { margin-top: calc(var(--w) * -0.75 - 0.8rem); }
	.hero__title.wp-block-heading { --title-drop: 13rem; }
	.hero__foot { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ---------- Sections ---------- */
.section { padding-block: var(--wp--preset--spacing--70) 0; }
.section-head { gap: 0.5rem 1.5rem; margin-bottom: var(--wp--preset--spacing--50); }
.section-head h2, h2.section-head { font-size: var(--wp--preset--font-size--x-large); }

/* Cartes d'article (élément d'une boucle de requête) */
.wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.wp-block-post-template > li { position: relative; margin: 0; }
.wp-block-post-template .wp-block-post-featured-image { margin: 0; }
.wp-block-post-template .wp-block-post-featured-image img { transition: transform 700ms var(--ips-ease); }
.wp-block-post-template > li:hover .wp-block-post-featured-image img,
.wp-block-post-template > li:focus-within .wp-block-post-featured-image img { transform: scale(1.03); }
.wp-block-post-template .kicker { margin-top: 0.65rem; }
.wp-block-post-template .wp-block-post-title { margin-top: 0.35rem; }
.wp-block-post-template .wp-block-post-title a {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%;
	transition: background-size var(--ips-standard) var(--ips-ease);
}
.wp-block-post-template > li:hover .wp-block-post-title a,
.wp-block-post-template .wp-block-post-title a:focus-visible { background-size: 100% 1px; }
.wp-block-post-template .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.wp-block-post-template .kicker a { position: relative; z-index: 3; }      /* la catégorie reste cliquable */
.wp-block-post-template .excerpt { margin-top: 0.75rem; color: #3b4a3e; }
.wp-block-post-template .meta { margin-top: 0.5rem; }

/* Grille cassée « New this week » : 1 grand, 1 qui chevauche, 1 texte, 3 titres */
.broken { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ips-gutter); align-items: start; }
.broken > li { grid-column: 8 / span 5; }
.broken > li:nth-child(1) { grid-column: 1 / span 7; grid-row: 1 / span 6; }
.broken > li:nth-child(1) .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); max-width: 16ch; margin-top: 1rem; }
.broken > li:nth-child(1) .excerpt { max-width: 34rem; }
.broken > li:not(:first-child) .excerpt { display: none; }
.broken > li:nth-child(2) { margin-top: var(--wp--preset--spacing--70); }
.broken > li:nth-child(2) .wp-block-post-featured-image {
	width: 78%; margin-left: calc(-1 * (var(--ips-gutter) + 22%));
	outline: 0.75rem solid var(--wp--preset--color--base);
}
.broken > li:nth-child(2) .wp-block-post-title { font-size: var(--wp--preset--font-size--large); }
.broken > li:nth-child(3) { margin-top: var(--wp--preset--spacing--60); border-top: 1px solid var(--wp--preset--color--lichen); padding-top: 1.5rem; }
.broken > li:nth-child(3) .wp-block-post-title { font-size: var(--wp--preset--font-size--large); font-weight: 300; }
.broken > li:nth-child(n + 3) .wp-block-post-featured-image { display: none; }
.broken > li:nth-child(3) .kicker { margin-top: 0; }
.broken > li:nth-child(n + 4) { border-top: 1px solid var(--wp--preset--color--lichen); padding-block: 1rem; }
.broken > li:nth-child(4) { margin-top: var(--wp--preset--spacing--60); }
.broken > li:nth-child(n + 4) .kicker, .broken > li:nth-child(n + 4) .meta { display: none; }
.broken > li:nth-child(n + 4) .wp-block-post-title { font-size: 1.3rem; line-height: 1.25; margin: 0; }
.broken > li:nth-child(6) { border-bottom: 1px solid var(--wp--preset--color--lichen); }
@media (max-width: 860px) {
	.broken { grid-template-columns: 1fr; }
	.broken > li, .broken > li:nth-child(1) { grid-column: 1; grid-row: auto; }
	.broken > li:nth-child(2) { margin-top: var(--wp--preset--spacing--50); }
	.broken > li:nth-child(2) .wp-block-post-featured-image { width: 72%; margin-left: auto; outline: 0; }
}

/* « Find plants by room »
   Sans JS (et sur mobile) : chaque pièce montre sa propre photo.
   Desktop avec JS : liste à gauche, grand cadre collant à droite (une photo par pièce, empilées) ;
   ips-motion.js active la pièce au centre de l'écran et change la photo en rideau. */
.rooms { --room-dim: #818e7f; }               /* noms atténués : 3,4:1 sur blanc (grands caractères) */
.rooms__list { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--wp--preset--color--lichen); }
.room { border-top: 1px solid var(--wp--preset--color--lichen); margin: 0; position: relative; }
.room__link {
	display: grid; grid-template-columns: minmax(0, 1fr) auto 13rem; grid-template-areas: "name count ph" "note note ph";
	grid-template-rows: auto 1fr; align-items: baseline; column-gap: 2rem; row-gap: 0.4rem; padding-block: 1.6rem; text-decoration: none; color: inherit;
}
.room__link:focus-visible { outline: 2px solid var(--wp--preset--color--brique); outline-offset: 4px; }
.room__name {
	grid-area: name; font-family: var(--wp--preset--font-family--newsreader); font-weight: 300; line-height: 1;
	font-size: clamp(2.3rem, 1.1rem + 2.6vw, 3.9rem); letter-spacing: -0.01em;
	color: var(--wp--preset--color--fougere);
	transition: color var(--ips-standard) var(--ips-ease);
}
.room__count { grid-area: count; font-size: var(--wp--preset--font-size--small); color: var(--ips-mousse); font-variant-numeric: tabular-nums; white-space: nowrap; }
.room__note { grid-area: note; align-self: start; font-size: 1rem; color: var(--ips-mousse); max-width: 34rem; }
.room__ph { grid-area: ph; align-self: start; aspect-ratio: 4 / 5; border-radius: 0.25rem; }
.room__link:hover .room__name { color: var(--wp--preset--color--brique); }
.rooms__stage { display: none; }

/* Étiquette d'herbier posée sur la photo (même double filet que la fiche plante) */
.room-tag {
	position: absolute; left: 1rem; bottom: 1rem; z-index: 2; max-width: calc(100% - 2rem);
	background: var(--wp--preset--color--lichen-pale);
	border: 1px solid var(--wp--preset--color--fougere); outline: 1px solid var(--wp--preset--color--fougere); outline-offset: -5px;
	padding: 0.7rem 0.95rem 0.65rem; line-height: 1.3;
}
.room-tag__room { display: block; font-family: var(--wp--preset--font-family--newsreader); font-size: 1.2rem; color: var(--wp--preset--color--fougere); }
.room-tag__plants { display: block; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--humus); }
.room__link .room-tag { display: none; }       /* sans JS, desktop : le texte de la ligne suffit */

@media (min-width: 900px) {
	.js .rooms { display: grid; grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); column-gap: clamp(2rem, 5vw, 6rem); }
	.js .room__ph { display: none; }
	.js .room__link { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto; grid-template-areas: "name count" "note note"; padding-block: clamp(1.5rem, 0.6rem + 1.6vw, 2.4rem); }
	.js .rooms.is-live .room__name { color: var(--room-dim); }
	.js .rooms.is-live .room.is-active .room__name { color: var(--wp--preset--color--fougere); }
	/* pièce active : son filet supérieur se trace en Fougère, de gauche à droite */
	.js .rooms.is-live .room::before {
		content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--wp--preset--color--fougere);
		transform: scaleX(0); transform-origin: left center; transition: transform 700ms var(--ips-ease);
	}
	.js .rooms.is-live .room.is-active::before { transform: scaleX(1); }
	.js .rooms__stage { display: block; container-type: inline-size; }
	.js .rooms__frame {
		--fh: min(125cqi, 100svh - 6rem);                   /* 4:5, jamais plus haut que l'écran */
		position: sticky; top: calc((100svh - var(--fh)) / 2);
		height: var(--fh); width: calc(var(--fh) * 0.8); margin-left: auto;
		overflow: hidden; isolation: isolate; border-radius: 0.25rem; background: var(--wp--preset--color--lichen);
	}
	.js .rooms__frame::after { content: ""; position: absolute; inset: 0; z-index: 3; border: 1px solid var(--wp--preset--color--lichen); border-radius: inherit; pointer-events: none; }
	.js .rooms__slide { position: absolute; inset: 0; clip-path: inset(100% 0 0 0); }
	.js .rooms__slide.is-current { clip-path: inset(0); z-index: 1; }
	.js .rooms__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
	.js .rooms__slide .room-tag { left: 1.25rem; bottom: 1.25rem; }
}

/* Mobile et tablette : cartes glissées horizontalement, accrochées ; la suivante dépasse */
@media (max-width: 899px) {
	.rooms__list {
		display: flex; gap: 0.9rem; overflow-x: auto; overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory; scroll-padding-inline: var(--ips-gutter);
		margin-inline: calc(-1 * var(--ips-gutter)); padding: 0 var(--ips-gutter) 0.25rem; border: 0;
		scrollbar-width: none;
	}
	.rooms__list::-webkit-scrollbar { display: none; }
	.room { flex: 0 0 min(82%, 22rem); scroll-snap-align: start; border: 0; }
	.room__link { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto; grid-template-areas: "ph ph" "name count" "note note"; padding: 0; row-gap: 0.35rem; }
	.room__ph { margin-bottom: 0.65rem; }
	.room__link .room-tag { display: block; left: 0.75rem; bottom: 0.75rem; max-width: calc(100% - 1.5rem); padding: 0.55rem 0.8rem 0.5rem; }
	.room-tag__room { font-size: 1.05rem; }
	.room__name { font-size: 1.85rem; }
	.room__note { font-size: 0.95rem; }
}
@media (prefers-reduced-motion: reduce) {
	.room__name { transition: color var(--ips-quick) linear; }
	.js .rooms.is-live .room::before { transition: none; }
}

/* Bande Fougère : guide mis en avant */
.feature-band { margin-top: var(--wp--preset--spacing--60); padding-block: var(--wp--preset--spacing--60); overflow-x: clip; }
.feature { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ips-gutter); align-items: center; }
.feature::before {
	content: ""; position: absolute; z-index: 0; top: 0; bottom: 0;
	left: calc((100vw - 100%) / -2); right: 30%;
	background: var(--wp--preset--color--fougere);
}
.feature__text { position: relative; z-index: 1; grid-column: 1 / span 6; padding-block: var(--wp--preset--spacing--60); color: var(--wp--preset--color--base); }
.feature__text h2 { color: var(--wp--preset--color--base); font-size: var(--wp--preset--font-size--xx-large); max-width: 12ch; }
.feature__text p { max-width: 30rem; color: #dfe3d6; margin-top: 1.25rem; }
.feature__text .wp-block-buttons { margin-top: 1.75rem; }
.feature__media { position: relative; z-index: 1; grid-column: 8 / span 4; margin-block: calc(-1 * var(--wp--preset--spacing--60)); }
@media (max-width: 860px) {
	.feature { grid-template-columns: 1fr; }
	.feature::before { right: calc((100vw - 100%) / -2); bottom: 8rem; }
	.feature__text, .feature__media { grid-column: 1; }
	.feature__media { margin: 0 0 0 auto; width: 72%; }
}

/* « Start here » (étiquette most-saved) : colonnes décalées */
.pins { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ips-gutter); align-items: start; }
.pins > li:nth-child(even) { margin-top: var(--wp--preset--spacing--60); }
.pins .wp-block-post-title { font-size: 1.3rem; line-height: 1.2; }
@media (max-width: 860px) {
	.pins { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 62%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem; margin-right: calc(-1 * var(--ips-gutter)); padding-right: var(--ips-gutter); }
	.pins > li { scroll-snap-align: start; }
	.pins > li:nth-child(even) { margin-top: 2rem; }
}

/* Newsletter */
.newsletter { margin-top: var(--wp--preset--spacing--70); background: var(--wp--preset--color--lichen-pale); padding-block: var(--wp--preset--spacing--60); }
.newsletter__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 28rem); gap: var(--ips-gutter); align-items: end; }
.newsletter h2 { font-size: var(--wp--preset--font-size--x-large); max-width: 14ch; }
.newsletter p { margin-top: 1rem; max-width: 30rem; }
.signup { display: flex; gap: 0.5rem; flex-wrap: wrap; position: relative; }
.signup label { flex-basis: 100%; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.signup input[type="email"] {
	flex: 1 1 14rem; min-height: 3.1rem; padding: 0 1.1rem; font: inherit; font-size: 1rem;
	border: 1px solid var(--wp--preset--color--fougere); border-radius: 999px; background: var(--wp--preset--color--base); color: var(--wp--preset--color--humus);
}
.btn, .signup button {
	display: inline-flex; align-items: center; min-height: 3.1rem; padding: 0 1.5rem; border: 0; border-radius: 999px; cursor: pointer;
	font: 600 1rem/1 var(--wp--preset--font-family--hanken-grotesk); background: var(--wp--preset--color--fougere); color: var(--wp--preset--color--base);
	transition: background-color var(--ips-quick) var(--ips-ease);
}
.btn:hover, .signup button:hover { background: var(--wp--preset--color--brique); }
.signup small, .signup__msg { flex-basis: 100%; color: var(--ips-mousse); font-size: var(--wp--preset--font-size--small); margin: 0; }
.signup__msg { color: var(--wp--preset--color--fougere); font-weight: 600; }
.signup__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.signup__consent { flex-basis: 100%; display: flex; gap: 0.6rem; align-items: flex-start; margin: 0.4rem 0 0; font-size: var(--wp--preset--font-size--small); line-height: 1.45; color: var(--ips-mousse); }
.signup__consent input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin: 0.12rem 0 0; accent-color: var(--wp--preset--color--fougere); }
.signup__consent a { color: inherit; }
.signup button { margin-top: 0.4rem; }        /* sous la case de consentement */

/* Accueil mobile : un seul écart entre les sections (≈ 3,5rem entre le contenu de l'une et le début de la suivante) */
@media (max-width: 860px) {
	.home .site-main { --ips-gap-m: 3.5rem; }
	.home .hero__foot { padding-bottom: 0; }
	.home .site-main > .section { padding-top: var(--ips-gap-m); }
	.home .feature-band { margin-top: 0; padding-block: var(--ips-gap-m) 0; }
	.home .newsletter { margin-top: calc(var(--ips-gap-m) - 1rem); }   /* les épingles gardent 1rem sous leur défilement */
}

/* Bouton « Save » Pinterest sur les images d'article (lien simple, ips-core/pinterest.php) */
.prose .wp-block-image { position: relative; }
.pin-save {
	position: absolute; z-index: 2; top: 0.75rem; left: 0.75rem;
	display: inline-flex; align-items: center; gap: 0.4rem; min-height: 2.4rem; padding: 0 0.95rem 0 0.75rem;
	border-radius: 999px; background: var(--wp--preset--color--base); color: var(--wp--preset--color--humus);
	font: 600 0.9rem/1 var(--wp--preset--font-family--hanken-grotesk); text-decoration: none;
	transition: opacity var(--ips-quick) var(--ips-ease), background-color var(--ips-quick) var(--ips-ease);
}
/* le cœur WordPress étire les liens de l'image à la une (display:block; height:100%) */
.wp-block-post-featured-image a.pin-save, .wp-block-image a.pin-save { display: inline-flex; width: auto; height: auto; }
.pin-save__icon { color: #e60023; flex: none; }
.pin-save:hover { background: var(--wp--preset--color--lichen-pale); color: var(--wp--preset--color--humus); }
.pin-save:focus-visible { outline: 2px solid var(--wp--preset--color--brique); outline-offset: 2px; opacity: 1; }
@media (hover: hover) and (pointer: fine) {           /* desktop : au survol de l'image ou au focus clavier */
	.pin-save { opacity: 0; }
	figure:hover > .pin-save, figure:focus-within > .pin-save { opacity: 1; }
}
@media (hover: none), (pointer: coarse) {     /* tactile : toujours visible, petit, dans le coin */
	.pin-save { top: 0.5rem; left: 0.5rem; min-height: 2rem; padding: 0 0.7rem 0 0.55rem; gap: 0.3rem; font-size: 0.78rem; }
	.pin-save__icon { width: 14px; height: 14px; }
}

/* Formulaire de contact (ips-core) */
.ips-contact { max-width: 34rem; margin-top: var(--wp--preset--spacing--40); }
.ips-contact__form { display: grid; gap: 1.1rem; }
.ips-field { display: grid; gap: 0.35rem; margin: 0; }
.ips-field label { font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.ips-field input, .ips-field textarea {
	width: 100%; font: inherit; font-size: 1rem; color: var(--wp--preset--color--humus); background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--fougere); border-radius: 0.6rem; padding: 0.75rem 1rem;
}
.ips-field input { border-radius: 999px; min-height: 3.1rem; }
.ips-field [aria-invalid="true"] { border-color: var(--wp--preset--color--brique); box-shadow: 0 0 0 1px var(--wp--preset--color--brique); }
.ips-field__error, .ips-contact__alert { color: var(--wp--preset--color--brique); font-size: var(--wp--preset--font-size--small); font-weight: 600; margin: 0; }
.ips-contact__status { background: var(--wp--preset--color--lichen-pale); border-left: 3px solid var(--wp--preset--color--fougere); padding: 1rem 1.25rem; margin: 0; }
.ips-contact__privacy { font-size: var(--wp--preset--font-size--small); color: var(--ips-mousse); margin: 0; }
.ips-contact__actions { margin: 0; }
.prose .ips-contact a, .prose .ips-email { color: var(--wp--preset--color--fougere); }
.prose .affiliate-note { font-size: var(--wp--preset--font-size--small); color: var(--ips-mousse); border-left: 2px solid var(--wp--preset--color--lichen); padding-left: 0.9rem; }
@media (max-width: 720px) { .newsletter__inner { grid-template-columns: 1fr; } }

/* ---------- Pied de page ---------- */
.site-footer { background: var(--wp--preset--color--fougere); color: #dfe3d6; padding-block: var(--wp--preset--spacing--60) 2rem; margin-top: var(--wp--preset--spacing--70); }
.newsletter + .site-footer, .site-main:has(> .newsletter:last-child) + * .site-footer { margin-top: 0; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--wp--preset--color--lichen); }
.site-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--ips-gutter); }
.site-footer .wordmark { color: var(--wp--preset--color--base); font-size: 2.2rem; }
.site-footer__tagline { margin-top: 1rem; max-width: 22rem; }
.site-footer__title.wp-block-heading { font-family: var(--wp--preset--font-family--hanken-grotesk); font-size: 0.95rem; font-weight: 600; color: var(--wp--preset--color--base); letter-spacing: 0; margin-bottom: 0.9rem; }
.site-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; font-size: 0.98rem; }
.site-footer__base { margin-top: var(--wp--preset--spacing--60); padding-top: 1.25rem; border-top: 1px solid rgba(167, 180, 156, 0.4); font-size: var(--wp--preset--font-size--small); gap: 0.75rem 1.5rem; }
.site-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; }
@media (max-width: 720px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } .site-footer__brand { grid-column: 1 / -1; } }

/* ---------- Article ---------- */
.crumbs { font-size: var(--wp--preset--font-size--small); color: var(--ips-mousse); margin-bottom: 1.25rem; }
.crumbs a { text-decoration: none; color: inherit; }
.crumbs a:hover { text-decoration: underline; }
.crumbs .separator, .crumbs__sep { padding-inline: 0.15rem; color: var(--wp--preset--color--lichen); }
.crumbs p { margin: 0; }
.post-head { padding-top: var(--wp--preset--spacing--50); max-width: 58rem; }
.post-head .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); font-weight: 330; max-width: 19ch; }
.post-head .dek { font-size: 1.3rem; line-height: 1.5; color: #3b4a3e; max-width: 38rem; margin-top: 1.25rem; }
.post-head .dek .wp-block-post-excerpt__more-link { display: none; }
.byline { display: flex; align-items: center; gap: 0.85rem; margin-top: 1.5rem; font-size: var(--wp--preset--font-size--small); }
.byline__avatar { flex: 0 0 auto; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--wp--preset--color--lichen); display: grid; place-items: center; font-family: var(--wp--preset--font-family--newsreader); color: var(--wp--preset--color--fougere); font-size: 1.1rem; }
.byline strong { display: block; font-size: 0.95rem; }
.byline a { color: inherit; text-decoration: none; }

.post-lead { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--ips-gutter); align-items: end; margin-top: var(--wp--preset--spacing--50); }
.post-lead:not(:has(.herbarium)) { grid-template-columns: minmax(0, 34rem); }

/* Fiche plante (shortcode [ips_plant_card] d'ips-core) */
.herbarium {
	background: var(--wp--preset--color--lichen-pale);
	border: 1px solid var(--wp--preset--color--fougere); outline: 1px solid var(--wp--preset--color--fougere); outline-offset: -6px;
	padding: 1.6rem 1.6rem 1.3rem; font-size: 0.98rem; margin: 0;
}
.herbarium__name { font-family: var(--wp--preset--font-family--newsreader); font-style: italic; font-size: 1.7rem; font-weight: 400; color: var(--wp--preset--color--fougere); line-height: 1.1; }
.herbarium__common { color: var(--ips-mousse); margin: 0.25rem 0 1rem; font-size: var(--wp--preset--font-size--small); }
.herbarium dl { margin: 0; display: grid; grid-template-columns: auto 1fr; }
.herbarium dt, .herbarium dd { padding-block: 0.55rem; border-top: 1px dashed var(--wp--preset--color--lichen); margin: 0; }
.herbarium dt { font-weight: 600; padding-right: 1.25rem; color: var(--wp--preset--color--fougere); }
.herbarium__warn { color: var(--wp--preset--color--brique); font-weight: 600; }

.post-body { display: grid; grid-template-columns: minmax(0, var(--ips-content)) 18.75rem; justify-content: space-between; gap: var(--ips-gutter); margin-top: var(--wp--preset--spacing--60); }
.post-body:not(:has(.ad-slot)) { grid-template-columns: minmax(0, var(--ips-content)); }

/* Texte courant (articles et pages) */
.prose { font-size: 1.15rem; line-height: 1.72; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: var(--wp--preset--font-size--large); margin-top: 2.2em; font-weight: 400; }
.prose h3 { font-size: var(--wp--preset--font-size--medium); margin-top: 1.8em; font-weight: 500; }
.prose a { color: var(--wp--preset--color--fougere); text-decoration-color: var(--wp--preset--color--brique); }
.prose a:hover { color: var(--wp--preset--color--brique); }
.prose ul, .prose ol { padding-left: 1.2em; }
.prose li { margin-bottom: 0.45em; }
.prose li::marker { color: var(--wp--preset--color--brique); }
.prose blockquote, .prose .wp-block-quote { margin-inline: 0; }
.prose figure { margin-inline: 0; }
.prose .wp-block-image img { height: auto; }
.prose .wp-block-image.is-pin, .prose figure.is-pin { width: min(100%, 26rem); }
.prose figcaption, .prose .wp-element-caption { font-size: var(--wp--preset--font-size--small); color: var(--ips-mousse); margin-top: 0.6rem; }
/* Sommaire : celui de Rank Math ou un groupe « toc » */
.prose .toc, .prose .wp-block-rank-math-toc-block { background: var(--wp--preset--color--lichen-pale); padding: 1.25rem 1.5rem; font-size: 1rem; }
.prose .toc h2, .prose .wp-block-rank-math-toc-block h2 { font-family: var(--wp--preset--font-family--hanken-grotesk); font-size: 1rem; font-weight: 600; margin: 0 0 0.5rem; letter-spacing: 0; color: var(--wp--preset--color--humus); }
.prose .toc ul, .prose .wp-block-rank-math-toc-block ul, .prose .wp-block-rank-math-toc-block ol { margin: 0; padding-left: 1.1em; }
.prose .wp-block-rank-math-toc-block nav ul { list-style: disc; }
.prose .wp-block-table table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.prose .wp-block-table th, .prose .wp-block-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--lichen); padding: 0.6rem 0.5rem; text-align: left; vertical-align: top; hyphens: manual; }
.prose .wp-block-table thead { border-bottom: 0; }
.prose .wp-block-table thead th { border-bottom: 2px solid var(--wp--preset--color--fougere); color: var(--wp--preset--color--fougere); font-weight: 600; vertical-align: bottom; }
/* Mobile : texte plus petit et marges serrées pour tenir dans 320 px sans défilement horizontal */
@media (max-width: 600px) {
	.prose .wp-block-table table { font-size: 0.875rem; line-height: 1.45; }
	.prose .wp-block-table th, .prose .wp-block-table td { padding: 0.55rem 0.4rem 0.55rem 0; }
	.prose .wp-block-table th:last-child, .prose .wp-block-table td:last-child { padding-right: 0; }
	/* 5 colonnes ou plus : trop serré pour 320 px ; largeur minimale et défilement horizontal,
	   ombre discrète au bord droit (disparaît en fin de défilement) pour signaler le glissement */
	.prose .wp-block-table:has(tr > :nth-child(5)) {
		overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
		background:
			linear-gradient(to left, #fff 40%, rgba(255, 255, 255, 0)) right / 1.5rem 100% no-repeat local,
			linear-gradient(to left, rgba(30, 40, 32, 0.14), rgba(30, 40, 32, 0)) right / 0.6rem 100% no-repeat scroll;
	}
	.prose .wp-block-table:has(tr > :nth-child(5)) table { min-width: 36rem; }
}

/* Emplacements publicitaires (ips-core) : hauteur réservée, aucun décalage de mise en page */
.ad-slot { position: relative; display: grid; place-items: center; font-size: 0.8rem; color: #6b766c; }
.ad-slot--reserved { min-height: var(--ad-h, 280px); border-block: 1px solid rgba(167, 180, 156, 0.6); }
.ad-slot--reserved::before { content: "Advertisement"; position: absolute; top: 0.4rem; left: 0; font-size: 0.72rem; color: #6b766c; }
.ad-slot--reserved:empty { background: repeating-linear-gradient(135deg, transparent 0 10px, rgba(167, 180, 156, 0.18) 10px 11px); }
.ad-slot > ins { width: 100%; }
.ad-slot--incontent { --ad-h: 280px; }
.ad-rail { position: relative; }
.ad-rail .ad-slot { --ad-h: 600px; position: sticky; top: 1.5rem; }
@media (max-width: 1199px) {
	.post-body { grid-template-columns: minmax(0, var(--ips-content)); justify-content: start; }
	.ad-rail { display: none; }
}
@media (max-width: 860px) {
	.post-lead, .post-lead:not(:has(.herbarium)) { grid-template-columns: 1fr; }
	.ad-slot--incontent { --ad-h: 300px; margin-inline: calc(-1 * var(--ips-gutter)); }
}

/* « Keep reading » */
.related { margin-top: var(--wp--preset--spacing--70); }
.related__grid { display: grid; grid-template-columns: 5fr 4fr 3fr; gap: var(--ips-gutter); align-items: start; }
.related__grid .wp-block-post-title { font-size: 1.35rem; line-height: 1.2; }
.related__grid > li:nth-child(2) { margin-top: var(--wp--preset--spacing--50); }
.related__grid > li:nth-child(3) .wp-block-post-featured-image { display: none; }
.related__grid > li:nth-child(3) { border-top: 1px solid var(--wp--preset--color--lichen); padding-top: 1rem; }
.related__grid > li:nth-child(3) .kicker { margin-top: 0; }
.related__grid > li:nth-child(3) .wp-block-post-title { font-size: 1.6rem; font-weight: 300; }
@media (max-width: 720px) {
	.related__grid { grid-template-columns: 1fr 1fr; }
	.related__grid > li:nth-child(3) { grid-column: 1 / -1; }
}

/* ---------- Catégories, pièces, index, recherche ---------- */
.cat-band { background: var(--wp--preset--color--lichen-pale); padding-bottom: var(--wp--preset--spacing--50); }
.cat-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ips-gutter); padding-top: var(--wp--preset--spacing--50); }
.cat-head__text { grid-column: 1 / span 7; padding-bottom: var(--wp--preset--spacing--50); }
.cat-head h1 { font-size: var(--wp--preset--font-size--display); font-weight: 280; line-height: 0.95; letter-spacing: -0.03em; max-width: 9ch; }
.cat-head__desc { font-size: 1.25rem; max-width: 30rem; margin-top: 1.5rem; }
.cat-head__desc p { margin: 0; }
.search .cat-head h1 { font-size: var(--wp--preset--font-size--xx-large); max-width: 16ch; }
.cat-head__media { grid-column: 9 / span 4; grid-row: 1 / span 2; align-self: start; margin-bottom: -17rem; position: relative; z-index: 1; }
/* Photo d'en-tête = article mis en avant (retiré de la grille) : la photo et sa légende y mènent */
.term-feature__link { display: block; text-decoration: none; color: inherit; }
.term-feature__ph { display: block; }
.term-feature__text { display: block; margin-top: 0.85rem; }
.term-feature__title {
	display: block; margin-top: 0.2rem; font-family: var(--wp--preset--font-family--newsreader);
	font-size: 1.3rem; line-height: 1.2; color: var(--wp--preset--color--fougere); transition: color var(--ips-quick) var(--ips-ease);
}
.term-feature__link:hover .term-feature__title { color: var(--wp--preset--color--brique); }
.term-feature__link:focus-visible { outline: none; }
.term-feature__link:focus-visible .term-feature__ph { outline: 2px solid var(--wp--preset--color--brique); outline-offset: 4px; }
/* Page de pièce : étiquette d'herbier « Plants for this room » entre le titre et la photo */
.tax-room .cat-head__text { grid-column: 1 / span 5; }
.room-plants {
	grid-column: 6 / span 3; grid-row: 1; align-self: center; margin-bottom: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--fougere); outline: 1px solid var(--wp--preset--color--fougere); outline-offset: -5px;
	padding: 1.1rem 1.25rem 1rem;
}
.room-plants__title { margin: 0 0 0.5rem; font-family: var(--wp--preset--font-family--newsreader); font-style: italic; font-size: 1.35rem; line-height: 1.15; color: var(--wp--preset--color--fougere); }
.room-plants__list { list-style: none; margin: 0; padding: 0; }
.room-plants__list li { margin: 0; padding-block: 0.45rem; border-top: 1px dashed var(--wp--preset--color--lichen); font-size: 0.98rem; color: var(--wp--preset--color--humus); }
.room-plants__count { margin: 0; padding-top: 0.6rem; border-top: 1px dashed var(--wp--preset--color--lichen); font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--brique); font-variant-numeric: tabular-nums; }
.chips { grid-column: 1 / span 8; display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.chips a {
	display: inline-block; padding: 0.55rem 1rem; border: 1px solid var(--wp--preset--color--fougere); border-radius: 999px;
	text-decoration: none; font-size: 0.95rem; color: inherit; transition: background-color var(--ips-quick) var(--ips-ease), color var(--ips-quick);
}
.chips a:hover, .chips a[aria-current] { background: var(--wp--preset--color--fougere); color: var(--wp--preset--color--base); }
.cat-band + .section, .cat-section { padding-top: var(--wp--preset--spacing--60); }
.search-page-form { margin-top: 1.5rem; max-width: 30rem; }
.search-page-form .wp-block-search__input { border: 1px solid var(--wp--preset--color--fougere); border-radius: 999px; padding: 0.7rem 1.1rem; font: inherit; }
.search-page-form .wp-block-search__button { border-radius: 999px; background: var(--wp--preset--color--fougere); color: var(--wp--preset--color--base); border: 0; padding: 0 1.3rem; font-weight: 600; }

.cat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--60) var(--ips-gutter); align-items: start; }
.cat-grid > li:nth-child(3n + 2) { margin-top: var(--wp--preset--spacing--60); }
.cat-grid > li:nth-child(even) .wp-block-post-featured-image,
.cat-grid > li:nth-child(even) .wp-block-post-featured-image img { aspect-ratio: 4 / 5 !important; }
.cat-grid .wp-block-post-title { font-size: 1.4rem; line-height: 1.18; }
.cat-grid .excerpt { font-size: 1rem; margin-top: 0.5rem; }
/* Premier article de la page 1 : mis en avant (photo + texte côte à côte) */
body:not(.paged) .cat-grid > li:first-child {
	grid-column: 1 / -1; margin-top: 0;
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ips-gutter); align-items: end;
	margin-bottom: var(--wp--preset--spacing--30);
}
body:not(.paged) .cat-grid > li:first-child .wp-block-post-featured-image { grid-column: 1 / span 5; }
body:not(.paged) .cat-grid > li:first-child .wp-block-post-featured-image,
body:not(.paged) .cat-grid > li:first-child .wp-block-post-featured-image img { aspect-ratio: 4 / 5 !important; }
body:not(.paged) .cat-grid > li:first-child .card__text { grid-column: 6 / span 3; padding-bottom: 1rem; }
body:not(.paged) .cat-grid > li:first-child .wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); }
/* après l'article mis en avant, le décalage des colonnes repart du 1er rang */
body:not(.paged) .cat-grid > li:nth-child(3n + 2) { margin-top: 0; }
body:not(.paged) .cat-grid > li:nth-child(3n) { margin-top: var(--wp--preset--spacing--60); }

.pager { margin-top: var(--wp--preset--spacing--70); gap: 0.25rem; align-items: center; }
.pager a, .pager .page-numbers { min-width: 2.75rem; height: 2.75rem; display: inline-grid; place-items: center; text-decoration: none; border-radius: 999px; padding-inline: 0.9rem; color: inherit; }
.pager .page-numbers.current { background: var(--wp--preset--color--fougere); color: var(--wp--preset--color--base); }
.pager a:hover { background: rgba(167, 180, 156, 0.35); color: inherit; }

@media (max-width: 860px) {
	.cat-head { grid-template-columns: 1fr; }
	.cat-head__text, .chips, .cat-head__media, .tax-room .cat-head__text, .room-plants { grid-column: 1; }
	.cat-head__text { order: 1; }
	.chips { order: 2; }
	.room-plants { grid-row: auto; order: 2; align-self: start; width: min(100%, 22rem); margin: 0; }
	.room-plants__list { display: flex; flex-wrap: wrap; column-gap: 1.25rem; border-top: 1px dashed var(--wp--preset--color--lichen); }
	.room-plants__list li { border-top: 0; padding-block: 0.4rem; }
	.cat-head__media { grid-row: auto; order: 3; width: 58%; margin: 2rem 0 -3rem auto; }
	.cat-band + .cat-section { padding-top: calc(var(--wp--preset--spacing--50) + 3rem); }
	.cat-grid { grid-template-columns: 1fr 1fr; }
	.cat-grid .wp-block-post-title { font-size: 1.15rem; }
	.cat-grid > li:nth-child(3n + 2), body:not(.paged) .cat-grid > li:nth-child(3n) { margin-top: 0; }
	.cat-grid > li:nth-child(even) { margin-top: var(--wp--preset--spacing--50); }
	body:not(.paged) .cat-grid > li:first-child { grid-template-columns: 1fr; }
	body:not(.paged) .cat-grid > li:first-child .wp-block-post-featured-image,
	body:not(.paged) .cat-grid > li:first-child .card__text { grid-column: 1; }
	body:not(.paged) .cat-grid > li:nth-child(even) { margin-top: 0; }
	body:not(.paged) .cat-grid > li:nth-child(odd):not(:first-child) { margin-top: var(--wp--preset--spacing--50); }
}

/* Index A–Z des plantes (shortcode ips-core) */
.plant-index { columns: 2 16rem; column-gap: var(--wp--preset--spacing--50); margin-top: var(--wp--preset--spacing--40); }
.plant-index > :first-child { margin-top: 0; }
.plant-index p:empty, .plant-index > br { display: none; }
.plant-index__group { break-inside: avoid; margin-bottom: 1.5rem; }
.prose .plant-index__letter, .plant-index__letter { margin-top: 0; font-size: var(--wp--preset--font-size--large); border-bottom: 1px solid var(--wp--preset--color--lichen); padding-bottom: 0.3rem; margin: 0 0 0.6rem; }
.plant-index ul { list-style: none; margin: 0; padding: 0; }
.plant-index li { margin: 0 0 0.35rem; }
.plant-index em { color: var(--ips-mousse); font-family: var(--wp--preset--font-family--newsreader); }

/* Pages et 404 */
.page-title { font-size: var(--wp--preset--font-size--xx-large); margin-bottom: var(--wp--preset--spacing--40); }
.not-found > * + * { margin-top: 1.25rem; }

/* ---------- Animation : états initiaux posés seulement si le JS tourne ---------- */
.ips-motion .hero__title { visibility: hidden; }
.ips-motion .parallax img { will-change: transform; }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
	.wp-block-post-template > li:hover .wp-block-post-featured-image img { transform: none; }
	.arc__link { transition: none; }
	.arc__tag { transition: opacity 200ms linear !important; translate: -50% 0; }
}

/* ---------- Éditeur : respiration entre les blocs ---------- */
.editor-styles-wrapper .is-root-container > * + * { margin-top: 1.1em; }
