/**
 * Renovexo — core stylesheet (revision 2, « Le plan de chantier »).
 * Tokens, base typography, buttons, section heads, sticker icons, cards, article prose and
 * content components (fiche chantier, callouts, steps, tables), query grids, breadcrumbs.
 * Design: docs/design/design-system.md. Mobile first; breakpoints 600 / 782 / 1024 / 1280.
 */

:root {
	--rv-ink: #1C1F26;
	--rv-blue: #2B3BC4;
	--rv-night: #151C66;
	--rv-minium: #D63A12;
	--rv-minium-text: #B8330F;
	--rv-yellow: #F5C518;
	--rv-plaster: #F1F2EE;
	--rv-white: #FFFFFF;
	--rv-calque: #E3E7FB;
	--rv-minium-soft: #FDE8E1;
	--rv-yellow-soft: #FDF4D3;
	--rv-line: #D6D8DE;
	--rv-muted: #596070;

	--rv-font-head: "Unbounded", "Arial Black", sans-serif;
	--rv-font-body: "Atkinson Hyperlegible Next", Verdana, sans-serif;

	--rv-radius: 14px;
	--rv-radius-sm: 10px;
	--rv-border: 2px solid var(--rv-ink);
	--rv-press: 0 5px 0 var(--rv-ink);
	--rv-wide: 1240px;
	--rv-gutter: clamp(16px, 4vw, 32px);
}

/* ---- Base ------------------------------------------------------------------------------------------------- */

html { scroll-behavior: smooth; }
html.rv-no-scroll { overflow: hidden; }
body {
	background: var(--rv-plaster);
	color: var(--rv-ink);
	font-family: var(--rv-font-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
::selection { background: var(--rv-yellow); color: var(--rv-ink); }
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--rv-yellow);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--rv-ink);
	border-radius: 4px;
}
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

.rv-main { display: block; }
.wp-site-blocks > * { margin-block-start: 0; }
.rv-container {
	width: 100%;
	max-width: calc(var(--rv-wide) + 2 * var(--rv-gutter));
	margin-inline: auto;
	padding-inline: var(--rv-gutter);
	box-sizing: border-box;
}

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

/* ---- Blue surface ------------------------------------------------------------------------------------ */

.rv-blueprint,
.rv-hero,
.rv-home-hero {
	background-color: var(--rv-blue);
	color: var(--rv-white);
}

/* ---- Buttons ---------------------------------------------------------------------------------------------- */

.rv-btn,
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 48px;
	padding: .7rem 1.35rem;
	border: var(--rv-border);
	border-radius: var(--rv-radius-sm);
	background: var(--rv-blue);
	color: var(--rv-white);
	box-shadow: 0 4px 0 var(--rv-ink);
	font-family: var(--rv-font-head);
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.005em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: transform .12s ease, box-shadow .12s ease, background-color .15s ease;
	box-sizing: border-box;
}
.rv-btn:hover,
.wp-block-button__link:hover,
.wp-element-button:hover {
	transform: translateY(2px);
	box-shadow: 0 2px 0 var(--rv-ink);
	color: var(--rv-white);
	background: var(--rv-night);
}
.rv-btn:active { transform: translateY(4px); box-shadow: 0 0 0 var(--rv-ink); }
.rv-btn svg { flex: none; }

.rv-btn--cta { background: linear-gradient(180deg, #E64A1E 0%, var(--rv-minium) 100%); color: var(--rv-white); }
.rv-btn--cta:hover { background: linear-gradient(180deg, var(--rv-minium) 0%, var(--rv-minium-text) 100%); color: var(--rv-white); }
.rv-btn--light { background: var(--rv-white); color: var(--rv-ink); }
.rv-btn--light:hover { background: var(--rv-calque); color: var(--rv-ink); }
.rv-btn--yellow { background: linear-gradient(180deg, #FFD43B 0%, var(--rv-yellow) 100%); color: var(--rv-ink); }
.rv-btn--yellow:hover { background: #FFD84D; color: var(--rv-ink); }
.rv-btn--ghost { background: transparent; color: var(--rv-ink); }
.rv-btn--ghost:hover { background: var(--rv-ink); color: var(--rv-white); }
.rv-btn--lg { min-height: 56px; padding: .9rem 1.6rem; font-size: .95rem; }
.rv-btn--block { display: flex; width: 100%; }

/* ---- Section heads ---------------------------------------------------------------------------------------- */

.rv-home-section { padding-block: clamp(56px, 8vw, 104px); }
.rv-section-head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px); }
.rv-section-head__title {
	margin: 0;
	font-size: clamp(1.55rem, 1.1rem + 1.9vw, 2.5rem);
	font-weight: 800;
	line-height: 1.12;
}
.rv-section-head__title::after {
	/* a small roof — the house of the logo — under every section title */
	content: "";
	display: block;
	width: 58px;
	height: 18px;
	margin-top: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 18'%3E%3Cpath d='M3 15 L29 3 L55 15' fill='none' stroke='%23D63A12' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") left center / contain no-repeat;
}
.rv-section-head__lead {
	margin: 18px 0 0;
	max-width: 62ch;
	color: var(--rv-muted);
	font-size: 1.08rem;
}
.rv-section-head--light .rv-section-head__title { color: var(--rv-white); }
.rv-section-head--light .rv-section-head__lead { color: var(--rv-calque); }

/* ---- Sticker icon: blue disc, white cut ring, graphite outline ---------------------------------------------- */

.rv-sticker-icon {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--rv-blue);
	color: var(--rv-white);
	box-shadow: 0 0 0 3px var(--rv-white), 0 0 0 5px var(--rv-ink);
}
.rv-sticker-icon--sm { width: 40px; height: 40px; }

/* ---- Breadcrumbs ------------------------------------------------------------------------------------------ */

.rv-breadcrumbs { margin-bottom: 18px; font-size: .9rem; }
.rv-breadcrumbs__list { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 0; list-style: none; }
.rv-breadcrumbs__item { display: inline-flex; align-items: center; gap: 8px; }
.rv-breadcrumbs__link { color: inherit; opacity: .85; text-decoration: underline; text-underline-offset: 3px; }
.rv-breadcrumbs__link:hover { opacity: 1; color: var(--rv-yellow); }
.rv-breadcrumbs__current {
	max-width: 46ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	opacity: .75;
}
.rv-breadcrumbs__sep { opacity: .5; }

/* ---- Post cards (homepage cards and core query loops share one look) ---------------------------------------- */
/* A white card with the photo framed inside it (like a print pinned on the site board), the rubrique as a yellow
   sticker on the photo, the title, and a « Lire le guide » footer marked with the little roof of the logo. */

.rv-posts-grid { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .rv-posts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .rv-posts-grid { grid-template-columns: repeat(3, 1fr); gap: 28px; } }

.rv-content-area { padding-block: clamp(44px, 6vw, 80px) clamp(16px, 3vw, 32px); }
.rv-content-area .wp-block-query { max-width: var(--rv-wide); margin-inline: auto; }
.rv-content-area .wp-block-post-template {
	display: grid !important;
	gap: 24px;
	grid-template-columns: 1fr !important;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 640px) { .rv-content-area .wp-block-post-template { grid-template-columns: repeat(2, 1fr) !important; } }
@media (min-width: 1024px) { .rv-content-area .wp-block-post-template { grid-template-columns: repeat(3, 1fr) !important; gap: 28px; } }

.rv-post-card { height: 100%; }
.rv-post-card__link,
.rv-content-area .wp-block-post-template > li {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	padding: 10px;
	border: var(--rv-border);
	border-radius: 18px;
	background: linear-gradient(180deg, #FFFFFF 60%, #F8F8F5 100%);
	color: var(--rv-ink);
	text-decoration: none;
	box-sizing: border-box;
	transition: transform .18s ease, box-shadow .18s ease;
}
.rv-post-card__link:hover,
.rv-content-area .wp-block-post-template > li:hover { transform: translateY(-4px); box-shadow: var(--rv-press); color: var(--rv-ink); }

/* Framed photo */
.rv-post-card__media,
.rv-content-area .rv-card-media {
	position: relative;
	display: block;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: var(--rv-border);
	border-radius: 11px;
	background: var(--rv-calque);
}
.rv-post-card__media img,
.rv-content-area .rv-card-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.rv-post-card__link:hover .rv-post-card__media img,
.rv-content-area .wp-block-post-template > li:hover .rv-card-media img { transform: scale(1.05); }
.rv-post-card__media::after,
.rv-content-area .rv-card-media::after {
	/* a discreet shade at the foot of the photo so the sticker always reads */
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 40%;
	background: linear-gradient(180deg, transparent, rgba(21, 28, 102, .28));
	pointer-events: none;
}
.rv-post-card__placeholder { display: grid; place-items: center; height: 100%; color: var(--rv-blue); }

/* Rubrique sticker on the photo */
.rv-post-card__cat,
.rv-content-area .rv-card-cat {
	position: absolute;
	z-index: 2;
	left: 22px;
	top: 22px;
	max-width: calc(100% - 44px);
	padding: 4px 12px;
	border: 2px solid var(--rv-ink);
	border-radius: 999px;
	background: var(--rv-yellow);
	box-shadow: 0 3px 0 var(--rv-ink);
	color: var(--rv-ink);
	font-size: .8rem;
	font-weight: 700;
	line-height: 1.3;
	transform: rotate(-2deg);
}
.rv-content-area .rv-card-cat a { position: relative; z-index: 3; color: var(--rv-ink); text-decoration: none; }
.rv-content-area .rv-card-cat .wp-block-post-terms__separator { display: none; }
.rv-content-area .rv-card-cat a + a,
.rv-content-area .rv-card-cat .wp-block-post-terms__separator + a { display: none; }

/* Title */
.rv-post-card__title,
.rv-content-area .rv-card-title {
	margin: 18px 10px 0;
	color: var(--rv-ink);
	font-family: var(--rv-font-head);
	font-size: 1.02rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -.01em;
}
.rv-content-area .rv-card-title a { color: inherit; text-decoration: none; }
.rv-content-area .rv-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 18px; }

/* Footer: « Lire le guide » with the roof mark */
.rv-post-card__more,
.rv-content-area .rv-card-more {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: auto 10px 4px;
	padding-top: 14px;
	color: var(--rv-minium-text);
	font-family: var(--rv-font-head);
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
}
.rv-post-card__title + .rv-post-card__more,
.rv-content-area .rv-card-title + .rv-card-more { margin-top: auto; }
.rv-post-card__more::before,
.rv-content-area .rv-card-more::before {
	content: "";
	flex: none;
	width: 26px;
	height: 26px;
	border: 2px solid var(--rv-ink);
	border-radius: 50%;
	background: var(--rv-minium) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 15 L12 8 L19 15' fill='none' stroke='%23FFFFFF' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat;
	transition: transform .18s ease;
}
.rv-post-card__link:hover .rv-post-card__more::before,
.rv-content-area .wp-block-post-template > li:hover .rv-card-more::before { transform: translateY(-2px); }
.rv-content-area .rv-card-title { margin-bottom: 16px; }
.rv-post-card__title { margin-bottom: 16px; }
.rv-post-card__more,
.rv-content-area .rv-card-more { align-self: stretch; width: auto; border-top: 2px dashed var(--rv-line); padding-top: 12px; }

.wp-block-query-pagination { margin-top: 48px; gap: 8px; font-weight: 700; }
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: var(--rv-border);
	border-radius: var(--rv-radius-sm);
	background: var(--rv-white);
	color: var(--rv-ink);
	text-decoration: none;
	box-sizing: border-box;
}
.wp-block-query-pagination .page-numbers.current { background: var(--rv-ink); color: var(--rv-white); }
.wp-block-query-pagination a:hover { background: var(--rv-yellow); }

/* ---- Article ---------------------------------------------------------------------------------------------- */

.rv-article-wrap { padding-block: clamp(32px, 5vw, 56px) 24px; }
.rv-featured-frame {
	max-width: 960px;
	margin: 0 auto clamp(32px, 5vw, 56px) !important;
	overflow: hidden;
	border: var(--rv-border);
	border-radius: 18px;
	box-shadow: 0 6px 0 var(--rv-ink);
}
.rv-featured-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }

.rv-prose { font-size: clamp(1.0625rem, 1rem + .25vw, 1.15rem); line-height: 1.75; }
.rv-prose > * { max-width: 720px; margin-inline: auto; }
.rv-prose :where(p, ul, ol) { margin-block: 0 1.15em; }
.rv-prose a { color: var(--rv-blue); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rv-prose a:hover { color: var(--rv-minium-text); }
.rv-prose strong { font-weight: 700; }

.rv-prose h2 {
	margin: 2.4em auto .7em;
	font-size: clamp(1.35rem, 1.1rem + 1vw, 1.85rem);
	font-weight: 700;
	line-height: 1.22;
}

.rv-prose h3 { margin: 1.9em auto .55em; font-size: clamp(1.1rem, 1.02rem + .4vw, 1.3rem); font-weight: 600; line-height: 1.3; }
.rv-prose h4 { margin: 1.6em auto .5em; font-size: 1.05rem; }

.rv-prose ul:not([class*="is-style"]) { padding-left: 1.3em; }
.rv-prose ul:not([class*="is-style"]) > li { padding-left: .3em; }
.rv-prose ul:not([class*="is-style"]) > li::marker { content: "■  "; color: var(--rv-minium); font-size: .75em; }
.rv-prose ol:not([class*="is-style"]) > li::marker { color: var(--rv-blue); font-family: var(--rv-font-head); font-weight: 700; }
.rv-prose li + li { margin-top: .4em; }

.rv-prose blockquote,
.rv-prose .wp-block-quote {
	margin: 2em auto;
	padding: 20px 24px;
	border: 0;
	border-left: 6px solid var(--rv-blue);
	border-radius: 0 var(--rv-radius) var(--rv-radius) 0;
	background: var(--rv-calque);
	font-size: 1.08em;
}
.rv-prose figure:not(.wp-block-table) img { border: var(--rv-border); border-radius: var(--rv-radius); }
.rv-prose figcaption { margin-top: 8px; color: var(--rv-muted); font-size: .9rem; text-align: center; }
.rv-prose hr { max-width: 720px; height: 0; border: 0; border-top: 2px dashed var(--rv-line); margin: 2.5em auto; }

/* Tables */
.rv-prose .wp-block-table { margin: 2em auto; overflow-x: auto; }
.rv-prose table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	border: var(--rv-border);
	border-radius: var(--rv-radius);
	background: var(--rv-white);
	font-size: .95rem;
	font-variant-numeric: tabular-nums;
	line-height: 1.45;
}
.rv-prose th,
.rv-prose td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--rv-line); text-align: left; vertical-align: top; }
.rv-prose thead th,
.rv-prose tr:first-child th { background: var(--rv-blue); color: var(--rv-white); font-weight: 700; border-bottom: var(--rv-border); }
.rv-prose tbody tr:nth-child(even) td { background: var(--rv-plaster); }
.rv-prose tbody tr:last-child td { border-bottom: 0; }

/* Steps list: numbered stakes along a line */
.rv-prose ol.is-style-rv-steps,
.rv-steps { counter-reset: rv-step; list-style: none; padding: 0; }
.rv-prose ol.is-style-rv-steps > li,
.rv-steps > li {
	position: relative;
	counter-increment: rv-step;
	margin: 0;
	padding: 0 0 1.4em 64px;
}
.rv-prose ol.is-style-rv-steps > li::before,
.rv-steps > li::before {
	content: counter(rv-step);
	position: absolute;
	left: 0;
	top: -2px;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: var(--rv-border);
	border-radius: 50%;
	background: var(--rv-yellow);
	color: var(--rv-ink);
	font-family: var(--rv-font-head);
	font-size: .95rem;
	font-weight: 800;
}
.rv-prose ol.is-style-rv-steps > li:not(:last-child)::after,
.rv-steps > li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 20px;
	top: 42px;
	bottom: 0;
	border-left: 2px dashed var(--rv-ink);
	opacity: .35;
}

/* Callouts */
.rv-prose .rv-callout,
.rv-callout {
	position: relative;
	margin: 2em auto;
	padding: 22px 24px 20px 24px;
	border: var(--rv-border);
	border-radius: var(--rv-radius);
	background: var(--rv-calque);
}
.rv-callout > :last-child { margin-bottom: 0; }
.rv-callout__label {
	display: inline-block;
	margin-bottom: 10px;
	padding: 4px 12px;
	border: 1.5px solid var(--rv-ink);
	border-radius: 999px;
	background: var(--rv-white);
	font-family: var(--rv-font-head);
	font-size: .82rem;
	font-weight: 600;
	line-height: 1.35;
}
.rv-callout.rv-callout--important,
.rv-callout.rv-callout--warn,
.rv-callout.rv-callout--attention,
.rv-prose .is-style-rv-callout-warn { background: var(--rv-minium-soft); }
.rv-callout--important .rv-callout__label,
.rv-callout--warn .rv-callout__label,
.rv-callout--attention .rv-callout__label { background: var(--rv-minium); border-color: var(--rv-ink); color: var(--rv-white); }
.rv-callout.rv-callout--tip,
.rv-callout.rv-callout--astuce,
.rv-prose .is-style-rv-callout-tip { background: var(--rv-yellow-soft); }
.rv-callout--tip .rv-callout__label,
.rv-callout--astuce .rv-callout__label { background: var(--rv-yellow); }
.rv-callout--info .rv-callout__label,
.is-style-rv-callout-info .rv-callout__label { background: var(--rv-blue); color: var(--rv-white); }

/* Fiche chantier: a plan title block at the top of each guide */
.rv-prose .rv-fiche,
.rv-fiche {
	margin: 0 auto 2.4em;
	padding: 0;
	overflow: hidden;
	border: var(--rv-border);
	border-radius: var(--rv-radius);
	background: var(--rv-white);
	box-shadow: var(--rv-press);
}
.rv-fiche__label {
	margin: 0 !important;
	padding: 12px 20px;
	background-color: var(--rv-blue);
	color: var(--rv-white);
	font-family: var(--rv-font-head);
	font-size: .9rem;
	font-weight: 700;
	border-bottom: var(--rv-border);
}
.rv-fiche [class*="is-style-rv-level"] {
	margin: 0 !important;
	padding: 12px 20px;
	border-bottom: 1px solid var(--rv-line);
	background: var(--rv-yellow-soft);
	font-size: .95rem;
	font-weight: 700;
}
.rv-fiche__cols { gap: 0 !important; margin: 0 !important; }
.rv-fiche__cols > .wp-block-column { padding: 16px 20px 6px; }
@media (min-width: 782px) {
	.rv-fiche__cols > .wp-block-column + .wp-block-column { border-left: 1px solid var(--rv-line); }
}
@media (max-width: 781px) {
	.rv-fiche__cols > .wp-block-column + .wp-block-column { border-top: 1px solid var(--rv-line); }
}
.rv-fiche__h { margin: 0 0 8px !important; font-size: 1rem !important; }
.rv-fiche__h::before { display: none !important; }
.rv-fiche ul { font-size: .95rem; line-height: 1.55; }
.rv-fiche__finish {
	margin: 0 !important;
	padding: 12px 20px;
	border-top: 1px solid var(--rv-line);
	background: var(--rv-plaster);
	font-size: .92rem;
}

/* Level badge outside a fiche */
.rv-prose > [class*="is-style-rv-level"] {
	padding: 10px 16px;
	border-left: 6px solid var(--rv-yellow);
	background: var(--rv-white);
	font-weight: 700;
}

/* ---- FAQ (homepage and pages) ------------------------------------------------------------------------------ */

.rv-faq-wrap { max-width: 900px; }
.rv-faq { border-top: var(--rv-border); }
.rv-faq__item { border-bottom: var(--rv-border); }
.rv-faq__q {
	position: relative;
	display: block;
	padding: 22px 56px 22px 0;
	font-family: var(--rv-font-head);
	font-size: clamp(1rem, .95rem + .3vw, 1.15rem);
	font-weight: 600;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}
.rv-faq__q::-webkit-details-marker { display: none; }
.rv-faq__q::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin-top: -18px;
	border: var(--rv-border);
	border-radius: 50%;
	background: var(--rv-yellow);
	font-size: 1.3rem;
	line-height: 1;
	transition: transform .2s ease;
}
.rv-faq__item[open] .rv-faq__q::after { transform: rotate(45deg); }
.rv-faq__a { margin: 0 0 24px; max-width: 70ch; color: #3A3F4B; }

/* ---- Search form ------------------------------------------------------------------------------------------ */

.rv-hero .search-form { display: flex; gap: 8px; max-width: 560px; }
.rv-hero .search-form label { flex: 1; }
.search-field {
	width: 100%;
	min-height: 48px;
	padding: 0 14px;
	border: var(--rv-border);
	border-radius: var(--rv-radius-sm);
	font: inherit;
	box-sizing: border-box;
}
.search-submit {
	min-height: 48px;
	padding: 0 18px;
	border: var(--rv-border);
	border-radius: var(--rv-radius-sm);
	background: var(--rv-yellow);
	font-family: var(--rv-font-head);
	font-weight: 600;
	cursor: pointer;
}

/* ---- Devis band (all templates) --------------------------------------------------------------------------- */

.rv-devis-band,
.rv-main > .rv-devis-band:last-child {
	max-width: calc(var(--rv-wide) + 2 * var(--rv-gutter));
	margin: clamp(48px, 7vw, 88px) auto clamp(56px, 8vw, 104px);
	padding-inline: var(--rv-gutter);
	box-sizing: border-box;
}
.rv-devis-band__ticket {
	display: grid;
	overflow: hidden;
	border: var(--rv-border);
	border-radius: 18px;
	background: var(--rv-white);
	box-shadow: 0 6px 0 var(--rv-ink);
}
@media (min-width: 900px) { .rv-devis-band__ticket { grid-template-columns: 1.7fr 1fr; } }
.rv-devis-band__main {
	padding: clamp(24px, 4vw, 40px);
	background:
		radial-gradient(ellipse 60% 80% at 100% 0%, rgba(255, 170, 120, .28), transparent 70%),
		linear-gradient(135deg, #E44A1F 0%, var(--rv-minium) 55%, var(--rv-minium-text) 100%);
	color: var(--rv-white);
}
.rv-devis-band__trade {
	display: inline-block;
	margin: 0 0 14px;
	padding: 3px 12px;
	border: 1.5px solid var(--rv-ink);
	border-radius: 999px;
	background: var(--rv-yellow);
	color: var(--rv-ink);
	font-size: .85rem;
	font-weight: 700;
}
.rv-devis-band__title {
	margin: 0;
	max-width: 24ch;
	font-family: var(--rv-font-head);
	font-size: clamp(1.35rem, 1.05rem + 1.3vw, 2rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.025em;
}
.rv-devis-band__text { margin: 14px 0 0; max-width: 52ch; font-size: 1.05rem; line-height: 1.55; }
.rv-devis-band__stub {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 18px;
	padding: clamp(24px, 4vw, 36px);
	border-top: 3px dashed var(--rv-ink);
}
@media (min-width: 900px) {
	.rv-devis-band__stub { border-top: 0; border-left: 3px dashed var(--rv-ink); }
	/* ticket notches on the perforation */
	.rv-devis-band__stub::before,
	.rv-devis-band__stub::after {
		content: "";
		position: absolute;
		left: -15px;
		width: 26px;
		height: 26px;
		border: var(--rv-border);
		border-radius: 50%;
		background: var(--rv-plaster);
	}
	.rv-devis-band__stub::before { top: -15px; }
	.rv-devis-band__stub::after { bottom: -15px; }
}
.rv-devis-band__checks { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; font-weight: 700; }
.rv-devis-band__checks li { display: flex; align-items: center; gap: 10px; }
.rv-devis-band__checks li::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	border: var(--rv-border);
	border-radius: 6px;
	background: var(--rv-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%231C1F26' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
	box-sizing: border-box;
}

/* ---- Search results --------------------------------------------------------------------------------------- */

.rv-search-results { padding-block: clamp(40px, 6vw, 72px) 8px; }
.rv-search-result { position: relative; height: 100%; }
.rv-search-result__kind {
	position: absolute;
	z-index: 2;
	right: 16px;
	top: 16px;
	padding: 3px 10px;
	border: 1.5px solid var(--rv-ink);
	border-radius: 999px;
	background: var(--rv-white);
	color: var(--rv-ink);
	font-size: .75rem;
	font-weight: 700;
}
/* Calculator result: same card as a guide, a « calculator screen » instead of the photo */
.rv-calc-screen {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 18px;
	background:
		radial-gradient(ellipse 70% 80% at 80% 10%, rgba(128, 146, 255, .45), transparent 70%),
		linear-gradient(150deg, #2433B4 0%, var(--rv-blue) 55%, #4256DA 100%) !important;
	color: var(--rv-white);
}
.rv-calc-screen::after { display: none; }
.rv-calc-screen__unit { font-family: var(--rv-font-head); font-size: clamp(3rem, 6vw, 4.4rem); font-weight: 800; letter-spacing: -.05em; line-height: 1; }
.rv-calc-screen__unit.is-long { font-size: clamp(1.8rem, 3.2vw, 2.4rem); letter-spacing: -.03em; }
.rv-calc-screen__icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border: var(--rv-border);
	border-radius: 16px;
	background: var(--rv-yellow);
	color: var(--rv-ink);
	box-shadow: 0 4px 0 var(--rv-ink);
	transform: rotate(-6deg);
}
.rv-post-card--calc .rv-post-card__cat { background: var(--rv-white); }
.rv-post-card--calc .rv-post-card__more::before {
	background: var(--rv-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 12h10M12 7v10' fill='none' stroke='%231C1F26' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.rv-search-devis {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	height: 100%;
	min-height: 260px;
	padding: 28px 24px 24px;
	border: var(--rv-border);
	border-radius: 18px;
	background:
		radial-gradient(ellipse 70% 80% at 100% 0%, rgba(255, 170, 120, .3), transparent 70%),
		linear-gradient(140deg, #E44A1F 0%, var(--rv-minium) 55%, var(--rv-minium-text) 100%);
	color: var(--rv-white);
	text-decoration: none;
	box-sizing: border-box;
	transition: transform .18s ease, box-shadow .18s ease;
}
.rv-search-devis:hover { transform: translateY(-4px); box-shadow: var(--rv-press); color: var(--rv-white); }
.rv-search-devis__title { margin-top: 26px; font-family: var(--rv-font-head); font-size: 1.3rem; font-weight: 800; line-height: 1.2; letter-spacing: -.02em; }
.rv-search-devis__text { font-size: .98rem; line-height: 1.5; }
.rv-search-devis .rv-btn { margin-top: auto; align-self: flex-start; }

.rv-search-page {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 200px;
	padding: 28px 24px 14px;
	border: var(--rv-border);
	border-radius: 18px;
	background: linear-gradient(180deg, #FFFFFF 0%, var(--rv-calque) 100%);
	color: var(--rv-ink);
	text-decoration: none;
	box-sizing: border-box;
	transition: transform .18s ease, box-shadow .18s ease;
}
.rv-search-page:hover { transform: translateY(-4px); box-shadow: var(--rv-press); color: var(--rv-ink); }
.rv-search-page__title { margin: 26px 0 16px; font-family: var(--rv-font-head); font-size: 1.1rem; font-weight: 700; line-height: 1.3; }
.rv-search-page .rv-post-card__more { margin-inline: 0; }

.rv-pagination { margin-top: 48px; }
.rv-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	list-style: none;
}
.rv-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: var(--rv-border);
	border-radius: var(--rv-radius-sm);
	background: var(--rv-white);
	color: var(--rv-ink);
	font-weight: 700;
	text-decoration: none;
	box-sizing: border-box;
}
.rv-pagination .page-numbers.current { background: var(--rv-ink); color: var(--rv-white); }
.rv-pagination a.page-numbers:hover { background: var(--rv-yellow); }

.rv-search-empty { max-width: 640px; padding: 32px; border: var(--rv-border); border-radius: 20px; background: var(--rv-white); box-shadow: var(--rv-press); }
.rv-search-empty__title { margin: 0 0 10px; font-family: var(--rv-font-head); font-size: 1.2rem; font-weight: 700; }

/* ---- Reduced motion --------------------------------------------------------------------------------------- */

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