/*!
 * Reno360 — styles du site public.
 * Tout est préfixé par .rn-app pour cohabiter avec Divi 5 et les autres thèmes.
 * Palette et polices : variables CSS générées depuis les réglages (Réglages → Général).
 */

/* Palette « Vert forêt » par défaut ; la palette choisie est injectée après cette feuille. */
:root {
	--rn-primary: #1D5A3F;
	--rn-primary-hover: #174A34;
	--rn-ink: #14201A;
	--rn-ink-2: #33423A;
	--rn-muted: #4A564F;
	--rn-dark: #0F2E22;
	--rn-dark-2: #1D3B2E;
	--rn-on-dark: #D6E2DA;
	--rn-on-dark-2: #C9D6CE;
	--rn-on-primary: #DCE8E0;
	--rn-accent: #C6E36A;
	--rn-accent-hover: #D6EE86;
	--rn-accent-soft: #EEF6D2;
	--rn-accent-ink: #3C4F0E;
	--rn-soft: #E3EEE6;
	--rn-soft-2: #F1F6F1;
	--rn-soft-3: #F7FAF7;
	--rn-bg: #F6F4EE;
	--rn-disabled: #A9B8AF;
	--rn-shadow: 15, 46, 34;
	--rn-font-sans: inherit;
	--rn-font-serif: Georgia, 'Times New Roman', serif;
	--rn-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.rn-app {
	/* Gris chauds communs à toutes les palettes. */
	--rn-white: #FFFFFF;
	--rn-line: #E2DED4;
	--rn-line-2: #D9D4C8;
	--rn-line-3: #EFECE4;
	--rn-hover: #ECE8DF;
	--rn-placeholder: #DCD7CB;
	--rn-dash: #C9C3B5;
	--rn-paper: #FAF9F6;
	--rn-amber: #7A4F00;
	--rn-amber-bg: #FDF1D8;
	--rn-red: #A61B1B;
	--rn-red-bg: #FDE8E8;
	/* Anciens noms, conservés pour les pages internes. */
	--rn-surface: var(--rn-bg);
	--rn-primary-dark: var(--rn-primary-hover);
	--rn-primary-ink: var(--rn-primary);
	--rn-primary-soft: var(--rn-soft);
	--rn-primary-line: color-mix(in srgb, var(--rn-primary) 35%, #FFFFFF);
	--rn-dark-line: color-mix(in srgb, var(--rn-dark) 78%, #FFFFFF);
	--rn-on-dark-muted: var(--rn-on-dark-2);
	--rn-accent-on-dark: var(--rn-accent);
	--rn-font-display: var(--rn-font-sans);
	--rn-font-text: var(--rn-font-sans);
	--rn-radius: 16px;
	--rn-radius-sm: 10px;
	--rn-shadow-sm: 0 12px 32px -16px rgba(var(--rn-shadow), .22);
	--rn-shadow-md: 0 20px 40px -20px rgba(var(--rn-shadow), .35);
	--rn-shadow-lg: 0 24px 48px -24px rgba(var(--rn-shadow), .3);
	font-family: var(--rn-font-sans);
	color: var(--rn-ink);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	text-align: left;
}

.rn-app *,
.rn-app *::before,
.rn-app *::after { box-sizing: border-box; }

/* Remise à zéro face aux styles du thème (Divi, etc.). */
/* :where() garde une spécificité faible : les classes Reno360 l'emportent, les styles du thème non. */
.rn-app :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote, fieldset, legend) { margin: 0; padding: 0; }
.rn-app :where(h1, h2, h3, h4) { color: inherit; font-family: var(--rn-font-sans); font-weight: 700; line-height: 1.1; letter-spacing: -.02em; text-transform: none; text-wrap: balance; }
.rn-app h1 em, .rn-app h2 em, .rn-app .rn-serif { font-family: var(--rn-font-serif); font-style: italic; font-weight: 400; letter-spacing: -.01em; color: var(--rn-primary); }
.rn-app :where(ul, ol) { list-style: none; }
.rn-app :where(fieldset) { border: 0; min-width: 0; }
.rn-app :where(img) { max-width: 100%; height: auto; display: block; }
.rn-app :where(a) { color: var(--rn-primary); text-decoration: none; text-underline-offset: 2px; }
.rn-app :where(a):hover { color: var(--rn-dark); }
.rn-app :where(p a, .rn-prose a) { text-decoration: underline; }
.rn-app button { font: inherit; }
.rn-app[hidden], .rn-app [hidden] { display: none !important; }
.rn-app :focus-visible { outline: 3px solid var(--rn-primary); outline-offset: 2px; }
.rn-app .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---------- Mise en page ---------- */

.rn-full-width #main-content .container,
.rn-full-width .rn-main { width: 100%; max-width: none; padding: 0; }
.rn-full-width #main-content .container::before { display: none; }
.rn-full-width .rn-main { background: var(--rn-bg); }
/* « alignfull » sert aux modèles de thème à blocs ; dans le gabarit Reno360, on neutralise les règles des thèmes. */
.rn-page-article > .rn-app.alignfull { width: auto; max-width: none; margin-left: 0; margin-right: 0; }
.rn-main .rn-page-article { margin: 0; padding: 0; }
.rn-app.rn-home, .rn-app.rn-catalog-page, .rn-app.rn-activity-page { background: var(--rn-bg); }

.rn-container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
.rn-container--wide { max-width: 1240px; }
.rn-narrow { max-width: 560px; }
.rn-section { padding: clamp(64px, 8vw, 112px) 0; scroll-margin-top: 80px; }
.rn-section--tight { padding: 48px 0; }
.rn-section--muted { background: var(--rn-bg); }
.rn-section--white { background: var(--rn-white); border-top: 1px solid var(--rn-line); border-bottom: 1px solid var(--rn-line); }
.rn-section--soft { background: var(--rn-soft); }
.rn-section--dark { background: var(--rn-dark); color: var(--rn-white); }
.rn-section__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 40px; }
.rn-section__head > div { max-width: 640px; }
.rn-section__head--center { display: block; text-align: center; max-width: 720px; margin-left: auto; margin-right: auto; }
.rn-section__head--compact { margin-bottom: 14px; align-items: center; }
.rn-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(36px, 5vw, 72px); align-items: center; }
.rn-split--top { align-items: start; }
.rn-grid { display: grid; gap: 20px; }
.rn-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; }
.rn-grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.rn-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 32px; }
.rn-grid--tiles { grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); gap: 12px; margin-top: 24px; }
.rn-grid--cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.rn-grid--quotes { grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 16px; }
.rn-row { display: flex; flex-wrap: wrap; gap: 14px; }
.rn-stack { display: flex; flex-direction: column; gap: 16px; }
.rn-center { text-align: center; }
.rn-mt { margin-top: 28px !important; }
.rn-mt-sm { margin-top: 14px !important; }
.rn-mb { margin-bottom: 24px !important; }

/* ---------- Typographie ---------- */

.rn-overline { display: inline-flex; align-items: center; gap: 8px; font-family: var(--rn-font-mono); font-size: 12px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--rn-primary); margin-bottom: 14px; }
.rn-overline--dot::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.rn-overline--light { color: var(--rn-accent); }
.rn-overline--muted { color: var(--rn-muted); font-size: 11px; letter-spacing: .06em; margin-bottom: 8px; }
.rn-mono { font-family: var(--rn-font-mono); }
.rn-h1 { font-size: clamp(40px, 5.4vw, 68px); line-height: 1.02; letter-spacing: -.03em; font-weight: 700; margin: 0 0 20px; }
.rn-h1--md { font-size: clamp(34px, 4.2vw, 52px); margin: 10px 0 14px; }
.rn-h2 { font-size: clamp(30px, 3.6vw, 46px); line-height: 1.08; letter-spacing: -.025em; font-weight: 700; }
.rn-section--dark .rn-h2 { color: var(--rn-white); }
.rn-h3 { font-size: 21px; line-height: 1.2; font-weight: 700; display: block; letter-spacing: -.01em; }
.rn-lead { font-size: clamp(17px, 1.4vw, 19px); line-height: 1.55; color: var(--rn-muted); max-width: 540px; margin-top: 12px; text-wrap: pretty; }
.rn-lead--sm { font-size: 17px; }
.rn-lead--light { color: var(--rn-on-dark-2); }
.rn-muted { color: var(--rn-muted); }
.rn-small { font-size: 14px; }
.rn-eyebrow { display: inline-block; font-family: var(--rn-font-mono); color: var(--rn-primary); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 14px; }
.rn-eyebrow--light { color: var(--rn-accent); }
.rn-req { color: var(--rn-red); }
.rn-help, .rn-help-inline { font-size: 13px; color: var(--rn-muted); font-weight: 400; }
.rn-prose { max-width: 820px; font-size: 17px; }
.rn-prose h2 { font-size: 28px; margin: 32px 0 12px; }
.rn-prose h3 { font-size: 21px; margin: 24px 0 10px; }
.rn-prose p, .rn-prose ul, .rn-prose ol { margin: 0 0 16px; }
.rn-prose ul { list-style: disc; padding-left: 22px; }
.rn-prose ol { list-style: decimal; padding-left: 22px; }

/* ---------- Boutons, puces, badges ---------- */

.rn-app .rn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 12px 20px; border-radius: 10px; border: 1px solid transparent; font-weight: 600; font-size: 16px; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s, transform .15s; white-space: nowrap; }
.rn-app .rn-btn--primary { background: var(--rn-primary); color: #FFFFFF; }
.rn-app .rn-btn--primary:hover { background: var(--rn-primary-hover); color: #FFFFFF; }
.rn-app .rn-btn--ghost { background: var(--rn-white); color: var(--rn-ink); border-color: var(--rn-line-2); }
.rn-app .rn-btn--ghost:hover { border-color: var(--rn-ink); color: var(--rn-ink); }
.rn-app .rn-btn--white { background: var(--rn-white); color: var(--rn-dark); font-weight: 700; }
.rn-app .rn-btn--white:hover { background: var(--rn-accent); color: var(--rn-dark); }
.rn-app .rn-btn--accent { background: var(--rn-accent); color: var(--rn-dark); font-weight: 700; }
.rn-app .rn-btn--accent:hover { background: var(--rn-accent-hover); color: var(--rn-dark); }
.rn-app .rn-btn--outline-light { border-color: rgba(255, 255, 255, .35); color: #FFFFFF; background: transparent; }
.rn-app .rn-btn--outline-light:hover { border-color: #FFFFFF; color: #FFFFFF; }
.rn-app .rn-btn--lg { min-height: 52px; padding: 14px 22px; font-size: 16px; }
.rn-app .rn-btn--xl { min-height: 58px; padding: 18px 28px; font-size: 17px; border-radius: 12px; }
.rn-app .rn-btn--sm { min-height: 40px; padding: 9px 14px; font-size: 15px; }
.rn-app .rn-btn--block { width: 100%; }
.rn-app .rn-btn:disabled, .rn-app .rn-btn.is-loading { opacity: .65; cursor: progress; }
.rn-app .rn-btn.is-loading::after { content: ''; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: rn-spin .7s linear infinite; }
@keyframes rn-spin { to { transform: rotate(360deg); } }
.rn-btn-row { display: flex; flex-wrap: wrap; gap: 12px; }
.rn-app .rn-link { background: none; border: 0; padding: 0; color: var(--rn-primary); font-weight: 600; text-decoration: underline; cursor: pointer; }
.rn-link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; text-decoration: none; padding: 10px 0; }
.rn-app .rn-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--rn-line-2); border-radius: 999px; color: var(--rn-ink); background: transparent; text-decoration: none; font-size: 13px; font-weight: 500; cursor: pointer; line-height: 1.4; }
.rn-app .rn-chip:hover, .rn-app .rn-chip.is-selected { border-color: var(--rn-primary); color: var(--rn-primary); background: var(--rn-white); }
.rn-app .rn-chip--soft { background: var(--rn-soft); border-color: transparent; color: var(--rn-primary); font-weight: 600; }
.rn-app .rn-chip--line { padding: 10px 16px; border-color: var(--rn-primary); color: var(--rn-dark); font-size: 15px; font-weight: 600; }
.rn-app .rn-chip--line:hover { background: var(--rn-primary); color: #FFFFFF; border-color: var(--rn-primary); }
.rn-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.rn-pill { display: inline-flex; align-items: center; gap: 8px; background: var(--rn-soft); color: var(--rn-primary); font-weight: 600; font-size: 14px; padding: 6px 12px; border-radius: 999px; }
.rn-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rn-primary); display: inline-block; flex: none; }
.rn-tag { display: inline-block; font-family: var(--rn-font-mono); font-size: 12px; color: var(--rn-primary); background: var(--rn-soft); padding: 4px 8px; border-radius: 6px; }
.rn-tag--solid { background: var(--rn-primary); color: #FFFFFF; }
.rn-tag--muted { background: var(--rn-hover); color: var(--rn-ink-2); }
.rn-badge { display: inline-block; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.rn-icon { flex: none; vertical-align: middle; }
.rn-icon-tile { width: 44px; height: 44px; border-radius: 12px; background: var(--rn-soft); color: var(--rn-primary); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.rn-icon-tile--sm { width: 34px; height: 34px; border-radius: 9px; }
.rn-icon-tile--lg { width: 56px; height: 56px; border-radius: 16px; }
.rn-tick { width: 20px; height: 20px; border-radius: 50%; background: var(--rn-soft); color: var(--rn-primary); display: inline-grid; place-items: center; flex: none; }
.rn-tick .rn-icon { stroke-width: 3; }
.rn-tick--solid { background: var(--rn-primary); color: #FFFFFF; }
.rn-tick--accent { width: 22px; height: 22px; background: var(--rn-accent); color: var(--rn-dark); }
.rn-tick--ring { background: transparent; border: 2px solid var(--rn-primary); }
.rn-tick--ring::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--rn-primary); }
.rn-tick--empty { background: transparent; border: 2px solid var(--rn-line-2); }
.rn-checks { display: flex; flex-direction: column; gap: 10px; font-weight: 500; margin-top: 18px; }
.rn-checks li { display: flex; align-items: center; gap: 10px; }
.rn-checks > li > .rn-icon { color: var(--rn-primary); stroke-width: 2.6; }
.rn-checks--inline { flex-direction: row; flex-wrap: wrap; gap: 10px 24px; font-size: 15px; margin-top: 28px; }
.rn-checks--light { gap: 14px; font-size: 16px; font-weight: 400; margin: 0 0 32px; }
.rn-checks--light li { gap: 12px; }

/* ---------- Formulaires ---------- */

.rn-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rn-field--npa { flex: 1 1 110px; }
.rn-field--grow { flex: 3 1 220px; }
.rn-label { font-weight: 600; font-size: 14px; }
.rn-app .rn-input { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--rn-line-2); border-radius: var(--rn-radius-sm); background: var(--rn-white); color: var(--rn-ink); font: inherit; font-size: 16px; line-height: 1.4; box-shadow: none; }
.rn-app textarea.rn-input { min-height: 110px; resize: vertical; }
.rn-app .rn-input:focus { border-color: var(--rn-primary); outline: none; box-shadow: 0 0 0 3px var(--rn-soft); }
.rn-app .rn-input[aria-invalid="true"] { border-color: var(--rn-red); }
.rn-app .rn-input::placeholder { color: #7A847E; }
.rn-field-error { color: var(--rn-red); font-size: 14px; font-weight: 600; margin-top: 6px !important; }
.rn-opts { display: flex; flex-direction: column; gap: 10px; }
.rn-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.rn-pill-opt { position: relative; display: inline-flex; cursor: pointer; }
.rn-pill-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rn-pill-opt span { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 16px; border: 2px solid var(--rn-line); border-radius: 999px; background: var(--rn-white); font-weight: 600; font-size: 15px; line-height: 1.25; transition: border-color .15s, background .15s; }
.rn-pill-opt--sm span { min-height: 38px; padding: 6px 12px; font-size: 14px; }
.rn-pill-opt:hover span { border-color: var(--rn-line-2); }
.rn-pill-opt input:checked + span { border-color: var(--rn-primary); background: var(--rn-primary-soft); }
.rn-pill-opt input[type="checkbox"]:checked + span::before { content: '✓'; margin-right: 6px; color: var(--rn-primary-ink); font-weight: 800; }
.rn-pill-opt input:focus-visible + span { outline: 3px solid var(--rn-primary); outline-offset: 2px; }
.rn-check { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; cursor: pointer; }
.rn-check input { width: 22px; height: 22px; margin: 1px 0 0; flex: none; accent-color: var(--rn-primary); }
.rn-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rn-alert { padding: 14px 16px; border-radius: var(--rn-radius-sm); background: var(--rn-surface); font-size: 15px; }
.rn-alert--success { background: var(--rn-primary-soft); color: var(--rn-primary-ink); font-weight: 600; }
.rn-alert--error { background: var(--rn-red-bg); color: var(--rn-red); font-weight: 600; }
.rn-alert--warn { background: var(--rn-amber-bg); color: var(--rn-amber); }
.rn-notice { background: var(--rn-amber-bg); color: var(--rn-amber); padding: 10px 14px; border-radius: var(--rn-radius-sm); font-size: 14px; margin-bottom: 14px; }
.rn-panel { background: var(--rn-white); border: 1px solid var(--rn-line); border-radius: 20px; padding: 24px; }
.rn-panel--dark { background: var(--rn-dark); color: var(--rn-white); border-color: var(--rn-dark); }
.rn-panel--flush { padding: 10px; }
.rn-table-scroll { overflow-x: auto; min-width: 0; }

/* ---------- En-tête du site ---------- */

.rn-chrome { position: relative; z-index: 50; }
.wp-site-blocks > .rn-chrome, .wp-site-blocks > .rn-chrome + *, .wp-site-blocks > .rn-site-footer { margin-block-start: 0 !important; }
.rn-utility { background: var(--rn-dark); color: var(--rn-on-dark); font-size: 13px; line-height: 1.4; }
.rn-utility__inner { display: flex; flex-wrap: wrap; gap: 6px 24px; justify-content: space-between; align-items: center; padding-top: 8px; padding-bottom: 8px; }
.rn-utility__region { display: flex; gap: 8px; align-items: center; }
.rn-utility__region::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--rn-accent); flex: none; }
.rn-utility__links { display: flex; gap: 20px; align-items: center; }
.rn-app.rn-utility a { color: var(--rn-on-dark); }
.rn-app.rn-utility a:hover, .rn-app.rn-utility a.rn-utility__mail { color: #FFFFFF; }

.rn-site-header { position: sticky; top: 0; background: color-mix(in srgb, var(--rn-bg) 94%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--rn-line); }
.admin-bar .rn-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rn-site-header { top: 0; } }
.rn-site-header__bar { height: 72px; display: flex; align-items: center; gap: 32px; }
.rn-app .rn-site-header__logo { display: flex; align-items: center; flex: none; color: var(--rn-ink); }
.rn-site-header__logo img { height: 34px; width: auto; }
.rn-logo-text { font-size: 22px; font-weight: 800; letter-spacing: -.03em; color: var(--rn-ink); }
.rn-logo-text b { color: var(--rn-primary); font-weight: 800; }
.rn-site-nav { display: flex; align-items: center; gap: 4px; flex: 1; min-width: 0; }
.rn-app .rn-site-nav__link { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 10px 12px; border-radius: 8px; font-size: 15px; font-weight: 500; color: var(--rn-ink); cursor: pointer; white-space: nowrap; line-height: 1.3; }
.rn-app .rn-site-nav__link:hover, .rn-app .rn-site-nav__link[aria-expanded="true"] { background: var(--rn-hover); color: var(--rn-ink); }
.rn-site-nav__link .rn-icon { color: var(--rn-muted); transition: transform .15s; }
.rn-site-nav__link[aria-expanded="true"] .rn-icon { transform: rotate(180deg); }
.rn-site-header__actions { display: flex; align-items: center; gap: 8px; flex: none; }
.rn-app .rn-site-header__actions .rn-btn { min-height: 44px; font-size: 15px; padding: 10px 16px; }
.rn-app .rn-site-header__menu { display: none; margin-left: auto; }

.rn-mega { position: absolute; left: 0; right: 0; top: 100%; }
.rn-mega__panel { background: var(--rn-white); border-bottom: 1px solid var(--rn-line); box-shadow: 0 24px 48px -24px rgba(var(--rn-shadow), .25); max-height: calc(100vh - 110px); overflow: auto; }
.rn-mega__panel .rn-container { padding-top: 28px; padding-bottom: 32px; }
.rn-mega__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.rn-mega__head strong { font-size: 20px; font-weight: 700; }
.rn-app .rn-mega__head a { font-size: 15px; font-weight: 600; }
.rn-mega__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 24px 28px; }
.rn-mega__cat { margin-bottom: 8px; font-size: 11px; letter-spacing: .06em; }
.rn-mega__list { display: flex; flex-direction: column; gap: 2px; }
.rn-app .rn-mega__list a { display: block; padding: 3px 0; font-size: 14px; color: var(--rn-ink); }
.rn-app .rn-mega__list a:hover { color: var(--rn-primary); text-decoration: underline; }

.rn-mnav { position: absolute; left: 0; right: 0; top: 100%; background: var(--rn-white); border-bottom: 1px solid var(--rn-line); box-shadow: 0 24px 48px -24px rgba(var(--rn-shadow), .25); padding: 12px clamp(20px, 4vw, 40px) 24px; display: flex; flex-direction: column; gap: 2px; max-height: calc(100vh - 72px); overflow: auto; }
.rn-app .rn-mnav a:not(.rn-btn) { padding: 14px 0; border-bottom: 1px solid var(--rn-line-3); font-size: 17px; font-weight: 600; color: var(--rn-ink); }
.rn-app .rn-mnav a:not(.rn-btn):last-of-type { border-bottom: 0; }
.rn-app .rn-mnav .rn-btn { margin-top: 8px; min-height: 52px; }

@media (max-width: 959px) {
	.rn-site-nav, .rn-site-header__actions { display: none; }
	.rn-app .rn-site-header__menu { display: inline-flex; }
}
@media (min-width: 960px) {
	.rn-mnav { display: none !important; }
}

/* ---------- Pied de page du site ---------- */

.rn-site-footer { background: var(--rn-white); border-top: 1px solid var(--rn-line); }
.rn-site-footer .rn-container { padding-top: 56px; padding-bottom: 28px; }
.rn-site-footer__top { display: flex; flex-wrap: wrap; gap: 36px 48px; margin-bottom: 48px; }
.rn-site-footer__brand { flex: 2 1 280px; min-width: 0; max-width: 380px; }
.rn-site-footer__brand img { height: 32px; width: auto; margin-bottom: 16px; }
.rn-site-footer__brand .rn-logo-text { display: inline-block; margin-bottom: 14px; }
.rn-site-footer__brand p { margin: 0 0 16px; font-size: 15px; color: var(--rn-muted); }
.rn-app .rn-site-footer__brand a { font-size: 15px; font-weight: 600; }
.rn-site-footer__col { flex: 1 1 150px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.rn-site-footer__col .rn-overline { color: var(--rn-muted); font-size: 11px; letter-spacing: .06em; margin-bottom: 4px; }
.rn-app .rn-site-footer__col a { color: var(--rn-ink); }
.rn-app .rn-site-footer__col a:hover { color: var(--rn-primary); }
.rn-app .rn-site-footer__col a.is-strong { color: var(--rn-primary); font-weight: 600; }
.rn-site-footer__bottom { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; padding-top: 24px; border-top: 1px solid var(--rn-line-3); font-size: 13px; color: var(--rn-muted); }
.rn-site-footer__legal { display: flex; flex-wrap: wrap; gap: 20px; }
.rn-app .rn-site-footer__legal a { color: var(--rn-muted); }
.rn-app .rn-site-footer__legal a:hover { color: var(--rn-ink); }

/* ---------- Recherche + suggestions ---------- */

.rn-searchbox { position: relative; background: var(--rn-white); border: 1px solid var(--rn-line); border-radius: 16px; box-shadow: var(--rn-shadow-sm); padding: 8px; display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; max-width: 600px; }
.rn-searchbox__field { flex: 2 1 220px; display: flex; flex-direction: column; padding: 8px 12px; border-radius: 10px; min-width: 0; cursor: text; transition: background .15s; }
.rn-searchbox__field:hover { background: var(--rn-bg); }
.rn-searchbox__field--npa { flex: 1 1 100px; }
.rn-searchbox__sep { width: 1px; background: var(--rn-line); margin: 8px 0; flex: none; }
.rn-searchbox__label { font-size: 12px; font-weight: 600; color: var(--rn-muted); }
.rn-searchbox__input { display: flex; align-items: center; gap: 8px; }
.rn-app .rn-searchbox__input input { border: 0; outline: 0; background: transparent; box-shadow: none; padding: 2px 0; margin: 0; width: 100%; min-width: 0; font: inherit; font-size: 17px; color: var(--rn-ink); }
.rn-app .rn-searchbox__input input::placeholder { color: #7A847E; }
.rn-app .rn-searchbox__btn { flex: 1 1 180px; min-height: 56px; font-size: 16px; white-space: normal; }
.rn-searchbox__anchor { position: absolute; left: 0; right: 0; top: 100%; height: 0; z-index: 50; }
.rn-popular { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; max-width: 600px; }
.rn-popular__label { color: var(--rn-muted); font-size: 13px; margin-right: 4px; }
.rn-searchbar { display: flex; align-items: center; gap: 10px; border: 1px solid var(--rn-line-2); border-radius: 12px; padding: 0 14px; min-height: 54px; background: var(--rn-white); color: var(--rn-muted); position: relative; }
.rn-searchbar--sm { min-height: 46px; }
.rn-searchbar:focus-within { border-color: var(--rn-primary); box-shadow: 0 0 0 3px var(--rn-soft); }
.rn-app .rn-searchbar__input { border: 0; outline: 0; box-shadow: none; background: transparent; width: 100%; min-width: 0; font: inherit; font-size: 17px; color: var(--rn-ink); padding: 10px 0; margin: 0; }
.rn-wsearch { position: relative; margin-bottom: 18px; }
.rn-wsearch .rn-ac { top: 100%; }

.rn-app .rn-ac { position: absolute; left: 0; right: 0; top: 0; z-index: 60; background: var(--rn-white); border: 1px solid var(--rn-line); border-radius: 14px; box-shadow: 0 20px 40px -16px rgba(var(--rn-shadow), .3); padding: 6px; margin-top: 6px; max-height: min(70vh, 460px); overflow-y: auto; list-style: none; }
.rn-ac-head { padding: 8px 12px 4px; font-family: var(--rn-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--rn-muted); }
.rn-ac-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 8px; cursor: pointer; }
.rn-ac-item.is-active, .rn-ac-item:hover { background: var(--rn-soft); }
.rn-ac-ico { width: 36px; height: 36px; border-radius: 10px; background: var(--rn-bg); color: var(--rn-primary); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.rn-app .rn-ac .rn-ac-ico { display: none; }
.rn-ac-txt { display: flex; flex: 1; min-width: 0; justify-content: space-between; align-items: baseline; gap: 12px; line-height: 1.3; }
.rn-ac-name { font-size: 15px; font-weight: 600; }
.rn-ac-name mark { background: none; color: var(--rn-primary); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rn-ac-meta { font-size: 12px; color: var(--rn-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; }
.rn-ac-empty { padding: 12px; font-size: 14px; }
.rn-ac-empty a { display: inline-block; margin-top: 4px; font-weight: 600; }
.rn-ac-foot { border-top: 1px solid var(--rn-line-3); margin-top: 6px; padding: 10px 12px 6px; font-size: 14px; }
.rn-ac-foot a { font-weight: 600; }
@media (max-width: 600px) { .rn-ac-txt { flex-direction: column; align-items: flex-start; gap: 2px; } .rn-ac-meta { text-align: left; } }

/* ---------- Accueil : héros ---------- */

.rn-hero { padding: clamp(40px, 6vw, 80px) 0 clamp(48px, 6vw, 88px); }
.rn-hero__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: clamp(36px, 5vw, 72px); align-items: center; }
.rn-hero__content { min-width: 0; }
.rn-hero__content .rn-overline { margin-bottom: 20px; }
.rn-hero__content .rn-lead { margin: 0 0 32px; }
.rn-hero__media { position: relative; min-width: 0; }
.rn-hero__img { width: 100%; aspect-ratio: 5 / 6; max-height: 640px; object-fit: cover; border-radius: 24px; background: var(--rn-placeholder); }
.rn-float { position: absolute; background: var(--rn-white); }
.rn-float--top { top: 18px; left: 18px; max-width: calc(100% - 36px); background: rgba(255, 255, 255, .95); border-radius: 12px; padding: 10px 14px; display: flex; flex-direction: column; gap: 1px; box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .3); }
.rn-float--top strong { font-size: 14px; font-weight: 700; }
.rn-float--top small { font-family: var(--rn-font-mono); font-size: 11px; color: var(--rn-muted); }
.rn-float--bottom { left: 18px; right: 18px; bottom: 18px; max-width: 360px; border-radius: 16px; padding: 18px 20px; box-shadow: 0 20px 48px -20px rgba(var(--rn-shadow), .45); }
.rn-float__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.rn-float__head strong { font-size: 16px; font-weight: 700; }
.rn-float__head small { font-family: var(--rn-font-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--rn-muted); white-space: nowrap; }
.rn-track-mini { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.rn-track-mini li { display: flex; align-items: center; gap: 10px; }
.rn-track-mini .is-current { font-weight: 600; }
.rn-offers { margin-left: auto; font-size: 12px; font-weight: 600; background: var(--rn-accent-soft); color: var(--rn-accent-ink); padding: 2px 8px; border-radius: 999px; white-space: nowrap; }

/* ---------- Accueil : engagements ---------- */

.rn-strip { background: var(--rn-white); border-top: 1px solid var(--rn-line); border-bottom: 1px solid var(--rn-line); }
.rn-strip__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 1px; background: var(--rn-line-3); }
.rn-strip__item { padding: 32px 24px; background: var(--rn-white); }
.rn-strip__num { font-family: var(--rn-font-mono); font-size: 12px; color: var(--rn-primary); margin-bottom: 12px; }
.rn-strip__title { display: block; font-size: 18px; font-weight: 700; margin-bottom: 6px; }
.rn-strip__text { font-size: 15px; color: var(--rn-muted); text-wrap: pretty; }

/* ---------- Accueil : métiers ---------- */

.rn-app .rn-feature-card { display: flex; flex-direction: column; background: var(--rn-white); border: 1px solid var(--rn-line); border-radius: 18px; overflow: hidden; color: var(--rn-ink); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.rn-app .rn-feature-card:hover { transform: translateY(-3px); box-shadow: var(--rn-shadow-md); color: var(--rn-ink); }
.rn-feature-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--rn-placeholder); }
.rn-feature-card__ph { width: 100%; aspect-ratio: 16 / 10; display: flex; align-items: center; justify-content: center; background: var(--rn-soft); color: var(--rn-primary); }
.rn-feature-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.rn-feature-card__title { font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.rn-feature-card__desc { font-size: 15px; color: var(--rn-muted); line-height: 1.5; flex: 1; text-wrap: pretty; }
.rn-feature-card__cta { font-size: 15px; font-weight: 600; color: var(--rn-primary); margin-top: 10px; }

/* Catalogue intégré (catégories à gauche, travaux à droite). */
.rn-browser { margin-top: 28px; background: var(--rn-white); border: 1px solid var(--rn-line); border-radius: 20px; overflow: hidden; scroll-margin-top: 96px; }
.rn-browser__head { padding: 24px clamp(20px, 3vw, 32px); border-bottom: 1px solid var(--rn-line-3); display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; }
.rn-browser__title { display: block; font-size: 20px; font-weight: 700; }
.rn-browser__sub { font-size: 14px; color: var(--rn-muted); }
.rn-app .rn-browser__search { flex: 0 1 360px; min-width: 220px; padding: 13px 16px; border: 1px solid var(--rn-line-2); border-radius: 10px; font: inherit; font-size: 16px; background: var(--rn-bg); color: var(--rn-ink); outline: none; box-shadow: none; margin: 0; }
.rn-app .rn-browser__search:focus { border-color: var(--rn-primary); background: var(--rn-white); box-shadow: 0 0 0 3px var(--rn-soft); }
.rn-browser__body { display: flex; flex-wrap: wrap; }
.rn-browser__tabs { flex: 0 0 290px; border-right: 1px solid var(--rn-line-3); padding: 12px; display: flex; flex-direction: column; gap: 2px; }
.rn-app .rn-browser__tab { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--rn-ink-2); font-size: 14px; font-weight: 500; text-align: left; cursor: pointer; line-height: 1.35; }
.rn-app .rn-browser__tab:hover { background: var(--rn-soft); }
.rn-app .rn-browser__tab[aria-selected="true"] { background: var(--rn-soft); color: var(--rn-dark); font-weight: 700; }
.rn-browser__tab .rn-mono { font-size: 11px; opacity: .7; }
.rn-browser__panel { flex: 1 1 420px; padding: clamp(20px, 3vw, 28px); min-width: 0; }
.rn-browser__panel-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.rn-browser__panel-head strong { font-size: 18px; font-weight: 700; }
.rn-browser__panel-head .rn-mono { font-size: 12px; color: var(--rn-muted); }
.rn-browser__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 10px; }
.rn-app .rn-browser__item { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 16px 18px; border: 1px solid var(--rn-line-3); border-radius: 12px; background: var(--rn-white); color: var(--rn-ink); text-decoration: none; }
.rn-app .rn-browser__item:hover { border-color: var(--rn-primary); background: var(--rn-soft-3); color: var(--rn-ink); }
.rn-browser__item-top { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.rn-browser__item-top strong { font-size: 16px; font-weight: 700; }
.rn-browser__item-top span { color: var(--rn-primary); font-weight: 600; }
.rn-browser__item-desc { font-size: 14px; color: var(--rn-muted); line-height: 1.45; }
.rn-browser__item-cat { font-family: var(--rn-font-mono); font-size: 11px; color: var(--rn-primary); margin-top: 4px; }
.rn-browser__empty { padding: 24px; border: 1px dashed var(--rn-line-2); border-radius: 12px; color: var(--rn-muted); font-size: 15px; }
@media (max-width: 959px) {
	.rn-browser__tabs { flex: 1 1 100%; flex-direction: row; overflow-x: auto; padding: 14px 20px; border-right: 0; border-bottom: 1px solid var(--rn-line-3); gap: 8px; }
	.rn-app .rn-browser__tab { flex: none; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--rn-line-2); background: var(--rn-white); color: var(--rn-ink); white-space: nowrap; }
	.rn-app .rn-browser__tab[aria-selected="true"] { background: var(--rn-primary); border-color: var(--rn-primary); color: #FFFFFF; font-weight: 500; }
	.rn-browser__tab .rn-mono { display: none; }
}

/* ---------- Accueil : comment ça marche ---------- */

.rn-how-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 40px 32px; }
.rn-how-step { border-top: 2px solid var(--rn-primary); padding-top: 24px; }
.rn-how-step__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 28px; }
.rn-how-step__num { font-family: var(--rn-font-serif); font-size: 56px; line-height: 1; color: var(--rn-primary); }
.rn-how-step__title { display: block; font-size: 19px; font-weight: 700; margin-bottom: 8px; }
.rn-how-step__text { font-size: 15px; color: var(--rn-muted); text-wrap: pretty; }

/* ---------- Accueil : comparaison ---------- */

.rn-compare-box { background: var(--rn-white); border: 1px solid var(--rn-line); border-radius: 20px; overflow: hidden; }
.rn-compare { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 15px; }
.rn-compare th, .rn-compare td { padding: 16px 20px; text-align: left; vertical-align: top; border-top: 1px solid var(--rn-line-3); line-height: 1.5; }
.rn-compare thead th { border-top: 0; padding-top: 18px; padding-bottom: 18px; }
.rn-compare col.is-crit { width: 37.5%; }
.rn-compare thead .is-crit { font-family: var(--rn-font-mono); font-size: 11px; font-weight: 400; text-transform: uppercase; letter-spacing: .06em; color: var(--rn-muted); }
.rn-compare thead .is-us { background: var(--rn-primary); color: #FFFFFF; font-weight: 700; }
.rn-compare thead .is-other { color: var(--rn-muted); font-weight: 600; }
.rn-compare tbody th { font-weight: 600; }
.rn-compare tbody .is-us { background: var(--rn-soft-2); font-weight: 600; color: var(--rn-dark); }
.rn-compare tbody .is-other { color: var(--rn-muted); }
@media (max-width: 520px) { .rn-compare { font-size: 14px; } .rn-compare th, .rn-compare td { padding: 12px; } }

/* ---------- Accueil : subventions ---------- */

.rn-energy .rn-lead { color: var(--rn-ink-2); margin-bottom: 28px; }
.rn-sim { background: var(--rn-white); border-radius: 20px; padding: clamp(22px, 3vw, 32px); box-shadow: 0 24px 48px -28px rgba(var(--rn-shadow), .4); }
.rn-sim__title { display: block; font-size: 21px; font-weight: 700; margin-bottom: 4px; }
.rn-sim__sub { font-size: 15px; color: var(--rn-muted); margin-bottom: 24px; }
.rn-sim__q { display: block; font-size: 13px; font-weight: 700; margin-bottom: 10px; }
.rn-sim__q .rn-mono { color: var(--rn-primary); margin-right: 6px; }
.rn-opts-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.rn-app .rn-opt { padding: 9px 14px; border-radius: 10px; border: 1px solid var(--rn-line-2); background: var(--rn-white); color: var(--rn-ink); font-size: 14px; font-weight: 600; cursor: pointer; line-height: 1.3; }
.rn-app .rn-opt:hover { border-color: var(--rn-primary); }
.rn-app .rn-opt[aria-pressed="true"], .rn-app .rn-opt[aria-checked="true"] { background: var(--rn-primary); border-color: var(--rn-primary); color: #FFFFFF; }
.rn-sim__pending { padding: 14px 16px; border-radius: 12px; background: var(--rn-bg); color: var(--rn-muted); font-size: 14px; }
.rn-sim__result { padding: 18px 20px; border-radius: 14px; background: var(--rn-dark); color: #FFFFFF; }
.rn-sim__result-title { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; font-size: 16px; font-weight: 700; }
.rn-sim__result-title::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--rn-accent); flex: none; }
.rn-sim__result p { font-size: 14px; color: var(--rn-on-dark); margin-bottom: 14px; text-wrap: pretty; }
.rn-app .rn-sim__result .rn-btn { min-height: 44px; padding: 11px 16px; font-size: 15px; }
.rn-sim__note { font-size: 12px; color: var(--rn-muted); margin-top: 14px; }

/* ---------- Accueil : artisans ---------- */

.rn-artisans__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; background: var(--rn-dark-2); }
.rn-artisans .rn-h2 { margin-bottom: 18px; }
.rn-artisans .rn-lead { margin: 0 0 28px; max-width: 520px; }

/* ---------- Accueil : FAQ ---------- */

.rn-faq-wrap { display: flex; flex-wrap: wrap; gap: clamp(36px, 5vw, 72px); align-items: flex-start; }
.rn-faq-wrap__intro { flex: 1 1 300px; }
.rn-faq-wrap__intro .rn-h2 { margin-bottom: 16px; }
.rn-faq-wrap__intro p { font-size: 17px; color: var(--rn-muted); }
.rn-faq-wrap__intro a { font-weight: 600; text-decoration: none !important; }
.rn-faq { flex: 2 1 460px; min-width: 0; border-top: 1px solid var(--rn-line-2); }
.rn-faq__item { border-bottom: 1px solid var(--rn-line-2); }
.rn-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; font-size: clamp(17px, 1.5vw, 19px); font-weight: 600; }
.rn-faq__item summary::-webkit-details-marker { display: none; }
.rn-faq__sign { flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--rn-line-2); background: var(--rn-white); position: relative; color: var(--rn-primary); }
.rn-faq__sign::before, .rn-faq__sign::after { content: ''; position: absolute; left: 10px; right: 10px; top: 15px; height: 1.5px; background: currentColor; border-radius: 2px; transition: transform .2s; }
.rn-faq__sign::after { transform: rotate(90deg); }
.rn-faq__item[open] .rn-faq__sign { background: var(--rn-soft); }
.rn-faq__item[open] .rn-faq__sign::after { transform: rotate(0deg); }
.rn-faq__answer { margin: -6px 0 22px; font-size: 16px; color: var(--rn-muted); max-width: 680px; text-wrap: pretty; }
.rn-faq__answer p { margin-bottom: 10px; }
.rn-faq__answer p:last-child { margin-bottom: 0; }

/* ---------- Bandeau final ---------- */

.rn-cta { padding: 0 0 clamp(64px, 8vw, 112px); }
.rn-cta__box { background: var(--rn-primary); border-radius: 28px; padding: clamp(32px, 5vw, 72px); display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; align-items: center; color: #FFFFFF; }
.rn-cta__box > div:first-child { max-width: 620px; }
.rn-app .rn-cta__box h2 { font-size: clamp(32px, 4vw, 52px); line-height: 1.04; letter-spacing: -.03em; color: #FFFFFF; margin-bottom: 12px; }
.rn-app .rn-cta__box h2 em { color: inherit; }
.rn-cta__box p { font-size: 18px; color: var(--rn-on-primary); }
.rn-cta__action { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.rn-cta__action small { font-size: 13px; color: var(--rn-on-primary); }

/* ---------- Demande rapide (fenêtre) ---------- */

.rn-qm { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.rn-qm__overlay { position: absolute; inset: 0; background: rgba(var(--rn-shadow), .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.rn-qm__dialog { position: relative; width: 100%; max-width: 640px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); background: var(--rn-white); border-radius: 20px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .5); }
.rn-qm__form { display: flex; flex-direction: column; min-height: 0; flex: 1; }
.rn-qm__head { padding: 20px 24px 0; flex: none; }
.rn-qm__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.rn-qm__top .rn-overline { font-size: 11px; letter-spacing: .06em; margin: 0; }
.rn-qm__title { display: block; font-size: 21px; font-weight: 700; outline: none; }
.rn-app .rn-qm__close { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--rn-line); background: var(--rn-white); font-size: 22px; line-height: 1; color: var(--rn-ink); cursor: pointer; flex: none; padding: 0; }
.rn-app .rn-qm__close:hover { background: var(--rn-bg); }
.rn-qm__bars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.rn-qm__bars span { height: 4px; border-radius: 2px; background: var(--rn-line); transition: background .2s; }
.rn-qm__bars span.is-on { background: var(--rn-primary); }
.rn-qm__body { padding: 24px; overflow: auto; flex: 1; }
.rn-app .rn-qm__search { margin-bottom: 18px; }
.rn-qm__label { font-size: 13px; font-weight: 600; color: var(--rn-muted); margin-bottom: 10px; }
.rn-qm__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr)); gap: 8px; }
.rn-app .rn-qm__svc-btn { text-align: left; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--rn-line-2); background: var(--rn-white); color: var(--rn-ink); cursor: pointer; display: flex; flex-direction: column; gap: 2px; line-height: 1.3; }
.rn-app .rn-qm__svc-btn:hover { border-color: var(--rn-primary); }
.rn-app .rn-qm__svc-btn[aria-pressed="true"] { background: var(--rn-primary); border-color: var(--rn-primary); color: #FFFFFF; }
.rn-qm__svc-btn strong { font-size: 15px; font-weight: 600; }
.rn-qm__svc-btn small { font-size: 12px; opacity: .75; }
.rn-qm__free { margin-top: 14px; font-size: 15px; color: var(--rn-muted); }
.rn-qm__chosen { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--rn-soft); margin-bottom: 22px; }
.rn-qm__chosen small { display: block; font-size: 12px; color: var(--rn-ink-2); }
.rn-qm__chosen strong { font-size: 16px; font-weight: 700; color: var(--rn-dark); }
.rn-qm__chosen .rn-link { font-size: 14px; }
.rn-qm__q { display: block; font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.rn-qm__q span { font-weight: 400; color: var(--rn-muted); }
.rn-app .rn-qm__desc { margin-bottom: 14px; min-height: 104px; }
.rn-qm__drop { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 16px; border: 1.5px dashed var(--rn-dash); border-radius: 12px; font-size: 14px; color: var(--rn-ink-2); cursor: pointer; background: var(--rn-paper); }
.rn-qm__drop:hover, .rn-qm__drop:focus-within { border-color: var(--rn-primary); background: var(--rn-soft-2); }
.rn-qm__drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.rn-qm__drop b { font-weight: 700; color: var(--rn-primary); }
.rn-qm__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 14px 12px; margin-bottom: 18px; }
.rn-qm__fields .rn-field { gap: 6px; font-size: 13px; font-weight: 600; }
.rn-qm__consent { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: var(--rn-ink-2); cursor: pointer; padding: 14px; border-radius: 12px; background: var(--rn-bg); }
.rn-qm__consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--rn-primary); flex: none; }
.rn-qm__done { text-align: center; padding: 8px 0 20px; }
.rn-qm__done-icon { width: 64px; height: 64px; border-radius: 50%; background: var(--rn-primary); color: #FFFFFF; display: grid; place-items: center; margin: 0 auto 18px; }
.rn-qm__done strong { display: block; font-size: 24px; font-weight: 700; margin-bottom: 6px; }
.rn-qm__done p { font-size: 16px; color: var(--rn-muted); }
.rn-qm__done p b { color: var(--rn-ink); }
.rn-qm__recap { border: 1px solid var(--rn-line); border-radius: 14px; padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; font-size: 15px; }
.rn-qm__recap li { display: flex; gap: 10px; align-items: center; }
.rn-qm__recap li.is-todo { color: var(--rn-muted); }
.rn-qm__foot { padding: 16px 24px; border-top: 1px solid var(--rn-line-3); display: flex; justify-content: space-between; align-items: center; gap: 12px; flex: none; }
.rn-qm__note { font-size: 13px; color: var(--rn-muted); }
.rn-app .rn-qm__foot .rn-btn { min-height: 46px; padding: 12px 20px; font-size: 15px; }
.rn-app .rn-qm__next { margin-left: auto; font-weight: 700; }
.rn-app .rn-qm__next[aria-disabled="true"] { background: var(--rn-disabled); cursor: not-allowed; }
.rn-qm .rn-alert { margin-top: 14px; }
html.rn-qm-open, html.rn-qm-open body { overflow: hidden; }
@media (max-width: 520px) {
	.rn-qm { padding: 0; align-items: flex-end; }
	.rn-qm__dialog { max-height: 100dvh; border-radius: 20px 20px 0 0; }
	.rn-qm__head, .rn-qm__body { padding-left: 18px; padding-right: 18px; }
	.rn-qm__foot { padding: 14px 18px; }
}

/* ---------- Catalogue ---------- */

.rn-catalog__head { margin-bottom: 28px; }
.rn-catalog__search { max-width: 720px; margin-top: 22px; }
.rn-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.rn-app .rn-filter { border: 1px solid var(--rn-line-2); background: var(--rn-white); color: var(--rn-ink); padding: 8px 14px; border-radius: 999px; font-weight: 600; font-size: 14px; cursor: pointer; min-height: 40px; }
.rn-app .rn-filter.is-active { background: var(--rn-ink); color: #FFFFFF; border-color: var(--rn-ink); }
.rn-catalog__status { min-height: 24px; margin-bottom: 8px; }
.rn-cat-group { margin-bottom: 40px; scroll-margin-top: 100px; }
.rn-cat-group__title { display: flex; align-items: center; gap: 12px; font-family: var(--rn-font-display); font-size: 24px; margin-bottom: 16px !important; }
.rn-catalog .rn-grid--cards { display: flex; flex-wrap: wrap; }
.rn-catalog .rn-act-card { flex: 1 1 280px; max-width: 100%; }
.rn-app .rn-act-card { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border: 1px solid var(--rn-line); border-radius: 14px; text-decoration: none; color: var(--rn-ink); background: var(--rn-white); transition: border-color .15s, box-shadow .15s; }
.rn-app .rn-act-card:hover { border-color: var(--rn-primary); box-shadow: var(--rn-shadow); color: var(--rn-ink); }
.rn-act-card__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--rn-primary-soft); color: var(--rn-primary-ink); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.rn-act-card__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rn-act-card__name { font-size: 16px; }
.rn-act-card__ex { font-size: 14px; color: var(--rn-muted); }
.rn-act-card__hint { font-size: 12px; font-weight: 700; color: var(--rn-primary-ink); }
.rn-empty { text-align: center; padding: 48px 24px; border: 2px dashed var(--rn-line-2); border-radius: 20px; display: flex; flex-direction: column; align-items: center; gap: 10px; }

/* ---------- Page d'un type de travaux ---------- */

.rn-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--rn-muted); margin-bottom: 28px; }
.rn-breadcrumb a { color: var(--rn-muted); }
.rn-breadcrumb [aria-current] { color: var(--rn-ink); font-weight: 600; }
.rn-activity-hero { padding-top: 28px; }
.rn-activity-hero__media img { width: 100%; height: 480px; object-fit: cover; border-radius: 24px; }
.rn-activity-hero__icon { display: flex; align-items: center; justify-content: center; height: 380px; border-radius: 24px; background: var(--rn-primary-soft); color: var(--rn-primary-ink); }
.rn-quickstart { margin-top: 26px; display: flex; flex-direction: column; gap: 12px; box-shadow: var(--rn-shadow); border: 0; }
.rn-quickstart__row { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.rn-quickstart__row .rn-field { flex: 1 1 160px; }
.rn-quickstart__note { font-size: 14px; font-weight: 600; color: var(--rn-ink-2); }
.rn-app .rn-service { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--rn-line); border-radius: 16px; text-decoration: none; color: var(--rn-ink); }
.rn-app .rn-service:hover { border-color: var(--rn-primary); color: var(--rn-ink); }
.rn-table-box { border: 1px solid var(--rn-line); border-radius: 16px; }
.rn-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 560px; }
.rn-table th, .rn-table td { padding: 15px 18px; text-align: left; border-top: 1px solid var(--rn-line); }
.rn-table thead th { background: var(--rn-surface); border-top: 0; font-weight: 700; }
.rn-table tbody th { font-weight: 600; }

/* ---------- Formulaire de demande ---------- */

.rn-form-page { background: var(--rn-surface); padding-bottom: 64px; }
.rn-wizard__top { background: var(--rn-white); border-bottom: 1px solid var(--rn-line); padding-top: 16px; }
.rn-stepper { display: flex; flex-wrap: wrap; gap: 6px 26px; }
.rn-app .rn-stepper__btn { background: none; border: 0; padding: 6px 0; display: flex; align-items: center; gap: 10px; min-height: 44px; color: var(--rn-muted); font-weight: 500; font-size: 15px; cursor: pointer; }
.rn-stepper__num { width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--rn-line-2); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; background: var(--rn-white); }
.rn-stepper .is-done .rn-stepper__num, .rn-stepper .is-current .rn-stepper__num { background: var(--rn-primary); border-color: var(--rn-primary); color: #FFFFFF; }
.rn-stepper .is-current .rn-stepper__btn { color: var(--rn-ink); font-weight: 700; }
.rn-stepper .is-done .rn-stepper__btn { color: var(--rn-ink-2); }
.rn-progress { height: 4px; background: var(--rn-line); border-radius: 999px; margin-top: 14px; overflow: hidden; }
.rn-progress span { display: block; height: 4px; width: 20%; background: var(--rn-primary); border-radius: 999px; transition: width .3s; }
.rn-wizard__main { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; padding-top: 32px; }
.rn-wizard__card { flex: 999 1 600px; min-width: 0; background: var(--rn-white); border: 1px solid var(--rn-line); border-radius: 20px; padding: 36px; }
.rn-wizard__aside { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 16px; position: sticky; top: 24px; }
.rn-step-count { font-size: 14px; font-weight: 700; color: var(--rn-primary-ink); margin-bottom: 6px !important; }
.rn-wstep__title { font-size: clamp(26px, 3vw, 34px); margin-bottom: 18px !important; display: block; width: 100%; }
.rn-app .rn-wstep__title:focus, .rn-app .rn-wstep__title:focus-visible { outline: none; }
.rn-wstep .rn-muted { margin-bottom: 18px; }
.rn-choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 12px; }
.rn-app .rn-choice { background: var(--rn-white); border: 2px solid var(--rn-line); border-radius: 14px; padding: 18px 10px; color: var(--rn-ink); font-weight: 600; font-size: 15px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 112px; text-align: center; cursor: pointer; line-height: 1.25; }
.rn-app .rn-choice .rn-icon { color: var(--rn-primary-ink); stroke-width: 1.8; }
.rn-app .rn-choice:hover { border-color: var(--rn-line-2); }
.rn-app .rn-choice.is-selected { border-color: var(--rn-primary); background: var(--rn-primary-soft); }
.rn-all-acts { margin-top: 18px; display: flex; flex-direction: column; gap: 16px; border-top: 1px solid var(--rn-line); padding-top: 18px; }
.rn-all-acts__group strong { display: block; margin-bottom: 8px; font-size: 14px; text-transform: uppercase; letter-spacing: .05em; color: var(--rn-muted); }
.rn-all-acts__list { display: flex; flex-wrap: wrap; gap: 6px; }
.rn-free { margin-top: 14px; padding: 12px 14px; background: var(--rn-amber-bg); border-radius: 10px; font-size: 15px; }
.rn-drop { position: relative; border: 2px dashed var(--rn-primary-line); background: #F7FBF8; border-radius: 16px; padding: 28px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; cursor: pointer; }
.rn-drop.is-over { border-color: var(--rn-primary); background: var(--rn-primary-soft); }
.rn-drop__input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.rn-drop__icon { width: 48px; height: 48px; border-radius: 50%; background: var(--rn-primary-soft); color: var(--rn-primary-ink); display: inline-flex; align-items: center; justify-content: center; }
.rn-drop:focus-within { outline: 3px solid var(--rn-primary); outline-offset: 2px; }
.rn-thumbs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px !important; }
.rn-thumb { position: relative; width: 132px; }
.rn-thumb img, .rn-thumb__file { width: 132px; height: 96px; object-fit: cover; border-radius: 10px; background: var(--rn-surface); display: flex; align-items: center; justify-content: center; color: var(--rn-muted); }
.rn-thumb__name { display: block; font-size: 12px; color: var(--rn-muted); margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rn-app .rn-thumb__del { position: absolute; top: 6px; right: 6px; width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(15, 29, 21, .78); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.rn-wizard__nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--rn-line); }
.rn-wizard__nav [data-rn-next], .rn-wizard__nav [data-rn-submit] { margin-left: auto; }
.rn-wizard .rn-alert--error { margin-top: 20px; }
.rn-summary { display: flex; flex-direction: column; gap: 12px; margin-top: 14px !important; }
.rn-summary div { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; border-bottom: 1px solid #EEF2EF; padding-bottom: 10px; }
.rn-summary dt { color: var(--rn-muted); }
.rn-summary dd { font-weight: 600; text-align: right; }
.rn-next-steps { display: flex; flex-direction: column; gap: 14px; margin-top: 14px !important; font-size: 15px; color: var(--rn-on-dark); }
.rn-next-steps li { display: flex; gap: 12px; }
.rn-next-steps span { width: 26px; height: 26px; border-radius: 50%; background: var(--rn-primary); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; flex: none; }
.rn-secure { display: flex; gap: 12px; font-size: 14px; color: var(--rn-ink-2); padding: 4px 8px; }
.rn-secure .rn-icon { color: var(--rn-primary-ink); margin-top: 2px; }
.rn-wizard__done { padding-top: 48px; outline: none; }
.rn-done { max-width: 640px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 48px 32px; }
.rn-done__icon { width: 68px; height: 68px; border-radius: 50%; background: var(--rn-primary); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; }
.rn-done__ref { font-weight: 700; font-size: 18px; }

/* ---------- Espace client ---------- */

.rn-portal-page { background: var(--rn-surface); padding-bottom: 64px; }
.rn-portal__bar { background: var(--rn-white); border-bottom: 1px solid var(--rn-line); }
.rn-portal__bar-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; min-height: 64px; padding-top: 10px; padding-bottom: 10px; }
.rn-portal__bar-actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.rn-portal__grid { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; padding-top: 28px; }
.rn-portal__aside { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.rn-portal__main { flex: 999 1 700px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.rn-portal__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; }
.rn-portal__head .rn-muted { margin-top: 6px; }
.rn-panel--flush .rn-overline { padding: 10px 12px 4px; }
.rn-app .rn-req-link { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border-radius: 12px; text-decoration: none; color: var(--rn-ink); }
.rn-app .rn-req-link:hover { background: var(--rn-surface); color: var(--rn-ink); }
.rn-app .rn-req-link.is-current { background: var(--rn-primary-soft); }
.rn-req-link .rn-badge { align-self: flex-start; margin-top: 4px; }
.rn-advisor { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.rn-advisor small { display: block; }
.rn-avatar { width: 46px; height: 46px; border-radius: 50%; background: var(--rn-primary-soft); color: var(--rn-primary-ink); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; flex: none; }
.rn-avatar--sm { width: 36px; height: 36px; font-size: 13px; }
.rn-avatar--square { border-radius: 12px; background: var(--rn-surface); color: var(--rn-ink); }
.rn-tracker-box { overflow-x: auto; }
.rn-tracker { display: flex; min-width: 720px; }
.rn-tracker li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; position: relative; color: var(--rn-muted); font-size: 14px; font-weight: 600; }
.rn-tracker li::before { content: ''; position: absolute; top: 13px; left: -50%; right: 50%; height: 3px; background: var(--rn-line); }
.rn-tracker li:first-child::before { display: none; }
.rn-tracker li.is-done::before, .rn-tracker li.is-current::before { background: var(--rn-primary); }
.rn-tracker__dot { position: relative; z-index: 1; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--rn-line-2); background: var(--rn-white); color: #FFFFFF; display: inline-flex; align-items: center; justify-content: center; }
.rn-tracker .is-done .rn-tracker__dot { background: var(--rn-primary); border-color: var(--rn-primary); }
.rn-tracker .is-current .rn-tracker__dot { border-color: var(--rn-primary); background: var(--rn-primary); box-shadow: 0 0 0 5px var(--rn-primary-soft); }
.rn-tracker .is-done, .rn-tracker .is-current { color: var(--rn-ink); }
.rn-next-banner { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; background: var(--rn-dark); color: var(--rn-white); border-radius: 16px; padding: 18px 22px; }
.rn-next-banner .rn-icon { color: var(--rn-accent-on-dark); }
.rn-next-banner span { flex: 1 1 300px; }
.rn-quote { background: var(--rn-white); border-radius: 18px; border: 2px solid var(--rn-line); padding: 22px; display: flex; flex-direction: column; gap: 16px; }
.rn-quote.is-highlight { border-color: var(--rn-primary); }
.rn-quote.is-accepted { border-color: var(--rn-primary); box-shadow: 0 0 0 4px var(--rn-primary-soft); }
.rn-quote.is-refused { opacity: .7; }
.rn-quote__tags { display: flex; flex-wrap: wrap; gap: 6px; min-height: 26px; }
.rn-quote__company { display: flex; gap: 12px; align-items: center; }
.rn-quote__company small { display: block; }
.rn-quote__price { font-family: var(--rn-font-display); font-size: 32px; font-weight: 800; letter-spacing: -.02em; }
.rn-dl { display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.rn-dl div { display: flex; justify-content: space-between; gap: 12px; }
.rn-dl dt { color: var(--rn-muted); }
.rn-dl dd { font-weight: 600; text-align: right; }
.rn-dl--compact div { border-bottom: 1px solid #EEF2EF; padding-bottom: 6px; }
.rn-quote__list { display: flex; flex-direction: column; gap: 6px; font-size: 14px; border-top: 1px solid #EEF2EF; padding-top: 14px !important; }
.rn-quote__list li { display: flex; gap: 8px; align-items: flex-start; }
.rn-quote__list .is-in .rn-icon { color: var(--rn-primary); margin-top: 2px; }
.rn-quote__list .is-out { color: var(--rn-muted); }
.rn-quote__actions { display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.rn-portal__cols { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.rn-portal__messages { flex: 999 1 420px; min-width: 0; }
.rn-portal__docs { flex: 1 1 280px; min-width: 0; }
.rn-thread { display: flex; flex-direction: column; gap: 14px; margin: 16px 0; }
.rn-msg { display: flex; gap: 12px; }
.rn-msg.is-mine { flex-direction: row-reverse; }
.rn-msg__bubble { background: var(--rn-surface); border-radius: 4px 14px 14px 14px; padding: 12px 14px; font-size: 15px; max-width: 80%; }
.rn-msg.is-mine .rn-msg__bubble { background: var(--rn-primary); color: #FFFFFF; border-radius: 14px 4px 14px 14px; }
.rn-msg__meta { display: block; font-size: 13px; opacity: .85; margin-bottom: 4px; }
.rn-msg__bubble p { margin: 0 0 6px; }
.rn-msg__bubble p:last-child { margin: 0; }
.rn-composer { border: 1px solid var(--rn-line-2); border-radius: 12px; padding: 8px; display: flex; flex-direction: column; gap: 8px; }
.rn-app .rn-composer textarea { border: 0; min-height: 70px; outline: 0; }
.rn-composer__row { display: flex; justify-content: space-between; gap: 8px; }
.rn-file-btn { position: relative; overflow: hidden; }
.rn-file-btn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.rn-doc-thumbs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.rn-doc-thumbs img { width: 100%; height: 76px; object-fit: cover; border-radius: 8px; }
.rn-doc-list { display: flex; flex-direction: column; gap: 4px; font-size: 15px; }
.rn-doc-list a { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-radius: 8px; text-decoration: none; color: var(--rn-ink); }
.rn-doc-list a:hover { background: var(--rn-surface); }
.rn-doc-list span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rn-doc-list small { color: var(--rn-muted); }
.rn-app .rn-doc-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--rn-line); border-radius: 10px; text-decoration: none; color: var(--rn-ink); font-size: 14px; }
.rn-quote-text { margin: 12px 0 !important; padding: 12px 14px !important; background: var(--rn-surface); border-radius: 10px; font-size: 15px; border: 0; quotes: none; white-space: pre-line; }
.rn-login { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 40px 32px; }
.rn-login form { width: 100%; text-align: left; }

/* ---------- Espace artisan et candidature ---------- */

.rn-artisan-page, .rn-partner-page { background: var(--rn-surface); }
.rn-artisan { display: flex; flex-direction: column; gap: 24px; }
.rn-artisan__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px; align-items: start; }
.rn-artisan .rn-h3 { margin-bottom: 14px; }
.rn-decline { margin-top: 18px; border-top: 1px solid var(--rn-line); padding-top: 14px; }
.rn-decline summary { cursor: pointer; font-weight: 600; color: var(--rn-muted); }
.rn-decline form { margin-top: 12px; }
.rn-partner-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 40px; align-items: start; }
.rn-partner-form__intro { position: sticky; top: 24px; }
@media (max-width: 900px) { .rn-partner-form__intro, .rn-wizard__aside { position: static; } }
.rn-trades { display: flex; flex-direction: column; gap: 14px; max-height: 420px; overflow-y: auto; padding: 4px; border: 1px solid var(--rn-line); border-radius: 12px; padding: 14px; }
.rn-trades__group { display: flex; flex-wrap: wrap; gap: 6px; }
.rn-trades__group legend { width: 100%; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--rn-muted); margin-bottom: 6px; }

/* ---------- Petits écrans ---------- */

@media (max-width: 782px) {
	.rn-section--tight { padding: 40px 0; }
	.rn-searchbox__sep { width: 100%; height: 1px; margin: 0 8px; }
	.rn-wizard__card { padding: 24px 20px; }
	.rn-stepper__label { display: none; }
	.rn-stepper .is-current .rn-stepper__label { display: inline; }
	.rn-activity-hero__media img { height: 300px; }
}
@media (max-width: 520px) {
	.rn-float--top { display: none; }
	.rn-float--bottom { left: 12px; right: 12px; bottom: 12px; padding: 14px 16px; }
	.rn-hero__img { aspect-ratio: 4 / 5; }
}

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