:root {
  --ardoise: #303c46; --blanc: #ffffff; --brique: #913f36; --brume: #f3f5f5;
  --trait: #77818a; --caslon: 'Libre Caslon Text', Georgia, serif; --mono: 'Overpass Mono', Consolas, monospace;
  --s1: .5rem; --s2: 1rem; --s3: 1.5rem; --s4: 2rem; --s6: 3rem; --s8: 4rem;
  --petit: .8125rem; --corps: 1rem; --h3: 1.25rem; --h2: 2rem; --h1: clamp(2.2rem, 4.8vw, 3.8rem);
  --angle: 0; --ombre: none; --largeur: 72rem;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body { margin: 0; color: var(--ardoise); background: var(--blanc); font: var(--corps)/1.8 var(--caslon); overflow-wrap: anywhere; }
a { color: var(--brique); text-underline-offset: .25em; }
button, input, select { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
*:focus-visible { outline: 3px solid var(--brique); outline-offset: 5px; }
img, svg { max-width: 100%; height: auto; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: var(--h1); line-height: 1.18; font-weight: 400; letter-spacing: -.045em; max-width: 17ch; margin-bottom: var(--s3); }
h2 { font-size: var(--h2); line-height: 1.35; font-weight: 400; letter-spacing: -.035em; }
h3 { font-size: var(--h3); line-height: 1.5; font-weight: 400; }
p { max-width: 64ch; }
main { min-height: 60vh; }
header { padding: 2.5rem 0 0; }
header > div { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: 2rem; }
header img { width: 238px; display: block; }
header nav { border-block: 1px solid var(--trait); display: flex; flex-wrap: wrap; gap: .5rem 2.8rem; padding: .65rem 0; font: var(--petit)/1.6 var(--mono); }
header nav a { color: var(--ardoise); padding: .65rem 0; text-decoration: none; min-height: 44px; }
header nav a[aria-current] { text-decoration: underline; color: var(--brique); }
footer { margin-top: var(--s8); background: var(--brume); padding-block: var(--s6); }
footer nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font: var(--petit)/1.6 var(--mono); }
footer nav a { padding-block: .65rem; }
ol { padding-left: 1.5rem; }
details { border-top: 1px solid var(--trait); padding: 1.25rem 0; }
summary { cursor: pointer; font-size: 1.125rem; min-height: 44px; }
details p { margin: 1rem 0 0; }
label, legend { font: var(--petit)/1.6 var(--mono); }
fieldset { border: 0; margin: 0 0 var(--s4); padding: 0; min-width: 0; }
legend { font-weight: 600; color: var(--brique); padding: 0 0 1.5rem; }
input:not([type=checkbox]), select { width: 100%; min-height: 48px; margin-top: .5rem; padding: .65rem .75rem; border: 1px solid var(--trait); border-radius: var(--angle); background: var(--blanc); color: var(--ardoise); }
input[type=checkbox] { width: 22px; height: 22px; margin: .25rem .75rem 0 0; flex: 0 0 auto; accent-color: var(--brique); }
form > p { font: var(--petit)/1.7 var(--mono); }
[hidden] { display: none !important; }
.w { width: min(calc(100% - 4rem), var(--largeur)); margin-inline: auto; }
.w-sm { max-width: 47rem; }
.p-4 { padding: var(--s4); }
.py-8 { padding-block: var(--s8); }
.mt-6 { margin-top: var(--s6); }
.mb-0 { margin-bottom: 0; }
.g-2 { display: grid; grid-template-columns: 1.25fr .75fr; gap: 4.5rem; align-items: start; }
.g-eq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.flex { display: flex; align-items: start; }
.txt-sm { font: var(--petit)/1.7 var(--mono); }
.txt-red { color: var(--brique); }
.caps { text-transform: uppercase; letter-spacing: .08em; }
.bg-soft { background: var(--brume); }
.br-l { border-left: 3px solid var(--brique); }
.br-t { border-top: 1px solid var(--trait); }
.btn-r { display: inline-flex; align-items: center; justify-content: center; padding: .85rem 1.2rem; min-height: 48px; background: var(--ardoise); color: var(--blanc); font: var(--petit)/1.5 var(--mono); text-decoration: none; border: 1px solid var(--ardoise); cursor: pointer; }
.btn-r:hover { background: var(--brique); border-color: var(--brique); }
.num { font: 1.7rem/1 var(--mono); color: var(--brique); display: block; padding-bottom: 1.4rem; }
.steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.8rem; }
.steps li { border-top: 1px solid var(--trait); padding-top: 1.8rem; }
.steps h3 { margin-bottom: .75rem; }
.paper { width: 100%; margin: 1rem 0 2rem; }
.crumb { padding-top: 1.5rem; font: .75rem/1.6 var(--mono); }
.crumb a { display: inline-block; padding-block: .5rem; }
.jump { position: absolute; top: -12rem; left: 1rem; z-index: 20; padding: 1rem; background: var(--blanc); }
.jump:focus { top: 1rem; }
.note-r { font: var(--petit)/1.7 var(--mono); margin-top: 2rem; }
@media (max-width: 860px) { .g-2 { grid-template-columns: 1fr; gap: 2.8rem; } .paper { max-width: 370px; } .steps { gap: 1.5rem; } header > div > p { max-width: 23ch; } }
@media (max-width: 560px) { .w { width: calc(100% - 2.5rem); } header { padding-top: 1.5rem; } header > div { display: block; padding-bottom: 1rem; } header > div > p { margin-top: 1.1rem; max-width: none; } header nav { gap: 0 1.2rem; } .py-8 { padding-block: 2.5rem; } .g-eq, .steps { grid-template-columns: 1fr; } .p-4 { padding: 1.4rem; } h2 { font-size: 1.7rem; } footer { margin-top: 2.5rem; } .steps li { padding-top: 1.2rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* V2 : procédure asymétrique, grands repères et espace de lecture. */
:root { --h1: clamp(2.5rem, 5.5vw, 4.75rem); --h2: clamp(1.85rem, 3vw, 2.85rem); --largeur: 74rem; }
h1 { line-height: 1.08; max-width: 15ch; letter-spacing: -.045em; }
h2 { line-height: 1.2; max-width: 23ch; }
h3 { font-weight: 700; font-size: 1.25rem; }
main > section { scroll-margin-top: 2rem; }
.g-2 { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); }
.g-cover { align-items: center; gap: clamp(2rem,6vw,6rem); padding-block: 4.5rem 5.5rem; }
.g-cover .photo { max-width: 27rem; margin-left: auto; }
.lead { font-size: clamp(1.12rem,1.6vw,1.35rem); line-height: 1.7; }
.g-no { display: grid; grid-template-columns: 7rem minmax(0,1fr); gap: 3rem; }
.num-lg { font: 400 clamp(3.5rem,7vw,6.5rem)/1 var(--caslon); letter-spacing: -.06em; color: var(--brique); }
.g-air { gap: 3rem; align-items: start; }
.g-no.bg-soft { padding: 3rem; }
.g-no.bg-soft .g-eq { grid-template-columns: minmax(0,1fr) minmax(0,.8fr); }
.steps { margin-bottom: 2rem; }
.steps li { transition: border-color .2s; }
.steps li:hover { border-top-color: var(--brique); }
.photo { margin: 0; width: 100%; }
.frame { position: relative; width: 100%; background: var(--brume); }
.ar-34 { aspect-ratio: 3/4; } .ar-43 { aspect-ratio: 4/3; } .ar-169 { aspect-ratio: 16/9; }
.frame img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; background: var(--brume); }
.frame.is-empty::after { content: ''; position: absolute; inset: 1rem; border: 1px solid var(--trait); opacity: .45; }
.photo figcaption { font: .8125rem/1.7 var(--mono); margin-top: 1rem; max-width: 45ch; }
.sch { width: 100%; height: auto; margin: 2.5rem 0; }
.sch::before { content: ''; display: block; aspect-ratio: 16/7; background: var(--brume); border-block: 1px solid var(--trait); }
.sch:has(> svg)::before { display: none; }
.sch > svg { display: block; width: 100%; height: auto; }
.sch figcaption { padding-top: 1.1rem; font: .8125rem/1.8 var(--mono); max-width: 80ch; }
.g-no.bg-soft .frame, .g-no.bg-soft .sch::before { background: var(--blanc); }
body[data-page="service"] main > .py-8:first-of-type { align-items: center; }
body[data-page="actualite"] article { max-width: 52rem; margin-inline: auto; }
body[data-page="actualite"] article h1 { max-width: 18ch; }
body[data-page="actualite"] article > .photo { margin: 2rem 0 3.5rem; }
body[data-page="actualite"] article > h2 { margin-top: 3rem; }
.form-r { margin-top: 3rem; border-top: 3px solid var(--brique); }
.form-r fieldset + fieldset { border-top: 1px solid var(--trait); padding-top: 2rem; }
body[data-page="devis"] main > section { grid-template-columns: minmax(0,1.45fr) minmax(0,.55fr); gap: 3rem; }
body[data-page="devis"] main > section > aside { position: sticky; top: 2rem; margin-top: 1rem; }
input:not([type=checkbox]):focus, select:focus { border-color: var(--brique); background: var(--blanc); }
input, select { transition: border-color .2s; }
details[open] { padding-left: 1rem; border-left: 3px solid var(--brique); }
.btn-r { transition: background-color .2s, border-color .2s, transform .2s; }
.btn-r:hover { transform: translateY(-2px); }
header nav a:hover { color: var(--brique); text-decoration: underline; text-underline-offset: .4em; }
footer { margin-top: 2rem; border-top: 1px solid var(--trait); padding-block: 3.5rem 1.5rem; }
.foot-g { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.6fr) minmax(0,1fr); gap: 3rem; }
.foot-g h2 { font-size: 1.8rem; }
.foot-g nav { display: flex; flex-direction: column; gap: 0; align-items: start; }
.foot-g nav p { margin-bottom: .7rem; }
.foot-cta { border-left: 1px solid var(--trait); padding-left: 2rem; }
footer .foot-links { margin-top: 3rem; border-top: 1px solid var(--trait); padding-top: 1rem; }
[hidden] { display: none !important; }
@keyframes rh-arrive { from { transform: translateY(.5rem); } to { transform: none; } }
@media (prefers-reduced-motion: no-preference) { .is-revealed { animation: rh-arrive .5s ease-out both; } }
@media (max-width: 860px) { .g-2, body[data-page="devis"] main > section { grid-template-columns: 1fr; } .g-cover .photo { margin: 0; max-width: 34rem; } .g-cover .frame { aspect-ratio: 4/3; } .g-no { grid-template-columns: 4rem minmax(0,1fr); gap: 1.8rem; } .g-no.bg-soft { padding: 2rem; } .g-no.bg-soft .g-eq, .g-air { grid-template-columns: 1fr; gap: 2rem; } .foot-g { grid-template-columns: 1fr 1fr; } .foot-cta { grid-column: 1/-1; border-left: 0; border-top: 1px solid var(--trait); padding: 1.5rem 0 0; } body[data-page="devis"] main > section > aside { position: static; } }
@media (max-width: 560px) { .g-cover { padding-block: 2.8rem; } .g-no { display: block; } .num-lg { display: block; font-size: 3rem; margin-bottom: 1.5rem; } .g-no.bg-soft { padding: 1.5rem; } .g-air { gap: 2rem; } .sch { margin-block: 1.5rem; } .sch::before { aspect-ratio: 4/3; } .foot-g { grid-template-columns: 1fr; gap: 2rem; } .foot-cta { grid-column: auto; } .foot-g nav { gap: .15rem; } .foot-links { gap: .35rem 1rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } .btn-r:hover { transform: none; } }

body { overflow-wrap: anywhere; }

.rh-schema-pan{max-width:100%;overflow-x:auto}.rh-schema-pan svg{display:block;width:100%;height:auto}.rh-schema-help{display:none}
@media(max-width:699px){.rh-schema-pan svg{min-width:640px}.rh-schema-help{display:block;font-size:.8rem;margin:.5rem 0}}

.sch:has(svg)::before{display:none}.rh-extra-field{display:block;margin:1rem 0}.rh-extra-field input,.rh-extra-field textarea{display:block;width:100%}
