@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url(/assets/fontes/bricolage-latin.woff2) format("woff2")}
@font-face{font-family:"Lora";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fontes/lora-latin.woff2) format("woff2")}
@font-face{font-family:"Lora";font-style:italic;font-weight:400 700;font-display:swap;src:url(/assets/fontes/lora-italique-latin.woff2) format("woff2")}

:root{
  --olv-ink:#14151a;--olv-ink-2:#2c2f38;--olv-acc:#ff6a13;--olv-acc-txt:#b84300;
  --olv-fond:#fff;--olv-gris-1:#f3f5f8;--olv-gris-2:#e9ecf1;--olv-bord:#dfe3ea;--olv-blanc:#fff;
  --olv-encre:#14151a;--olv-gris:#545a66;--olv-focus:#14151a;
  --olv-rouge:#c0262d;
  --olv-titre:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --olv-texte:"Lora",Georgia,"Times New Roman",serif;
  --olv-max:78rem;--olv-gout:clamp(1rem,4vw,2.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}
body{margin:0;background:var(--olv-fond);color:var(--olv-encre);font-family:var(--olv-texte);font-size:1.0625rem;line-height:1.7;overflow-x:hidden}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--olv-acc-txt);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--olv-ink)}
:focus-visible{outline:3px solid var(--olv-focus);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--olv-titre);font-weight:700;line-height:1.08;letter-spacing:-.02em;color:var(--olv-ink);margin:0 0 .6em}
h1{font-size:clamp(2.4rem,7vw,5.2rem);font-weight:800;font-variation-settings:"opsz" 96}
h2{font-size:clamp(1.8rem,4.2vw,3rem);font-variation-settings:"opsz" 72}
h3{font-size:clamp(1.25rem,2.2vw,1.6rem);font-variation-settings:"opsz" 36}
p{margin:0 0 1.1em}
ul,ol{padding-left:1.2em}
li{margin-bottom:.45em}
.olv-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.olv-saut{position:absolute;left:-999px;top:0;background:var(--olv-ink);color:var(--olv-gris-1);padding:.8rem 1.2rem;z-index:50}
.olv-saut:focus{left:1rem;top:1rem}
.olv-cadre{max-width:var(--olv-max);margin:0 auto;padding:0 var(--olv-gout)}

/* bandeau */
.olv-tete{background:var(--olv-ink);color:var(--olv-fond);border-bottom:3px solid var(--olv-acc);position:sticky;top:0;z-index:20}
.olv-tete :focus-visible,.olv-pied :focus-visible,.olv-rub--sombre :focus-visible,.olv-synthese :focus-visible,.olv-une__bloc :focus-visible,.olv-appel :focus-visible{outline-color:var(--olv-acc)}
.olv-tete__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.25rem}
.olv-marque{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--olv-fond);font-family:var(--olv-titre);font-weight:800;font-size:1.15rem;letter-spacing:-.03em}
.olv-marque:hover{color:#fff}
.olv-marque svg{width:2.1rem;height:2.1rem;flex:none}
.olv-marque small{display:block;font-weight:500;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--olv-acc)}
.olv-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.2rem;flex-wrap:wrap}
.olv-nav li{margin:0}
.olv-nav a{display:flex;align-items:center;min-height:44px;padding:0 .8rem;font-family:var(--olv-titre);font-weight:600;font-size:.95rem;text-decoration:none;color:var(--olv-fond);border-radius:2px}
.olv-nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.olv-nav a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--olv-acc)}
.olv-nav .olv-nav__cta{background:var(--olv-acc);color:var(--olv-ink);margin-left:.4rem}
.olv-nav .olv-nav__cta:hover,.olv-nav .olv-nav__cta[aria-current=page]{background:var(--olv-fond);color:var(--olv-ink)}
.olv-burger{display:none}
@media (max-width:60rem){
  .js .olv-burger{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;min-width:44px;padding:0 .9rem;border:1.5px solid var(--olv-fond);background:transparent;color:var(--olv-fond);font:600 .95rem var(--olv-titre);border-radius:2px;cursor:pointer}
  .olv-burger span{display:block;width:18px;height:2px;background:currentColor;box-shadow:0 6px 0 currentColor,0 -6px 0 currentColor}
  .js .olv-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--olv-ink);border-bottom:3px solid var(--olv-acc);padding:.5rem var(--olv-gout) 1.2rem}
  .js .olv-nav.is-open{display:block}
  .olv-nav ul{flex-direction:column}
  .olv-nav .olv-nav__cta{margin:.5rem 0 0}
  .olv-tete__in{flex-wrap:wrap}
  html:not(.js) .olv-nav{width:100%;padding-bottom:.6rem}
  html:not(.js) .olv-nav ul{flex-direction:row}
}

/* une : photo en fond, accroche + formulaire */
.olv-une{position:relative;background:var(--olv-ink);color:var(--olv-fond);overflow:hidden}
.olv-une .olv-plein{position:absolute;inset:0;margin:0}
.olv-une .olv-plein::after{content:"";position:absolute;inset:0;background:rgba(20,21,26,.86)}
.olv-une picture,.olv-une picture img{width:100%;height:100%}
.olv-une picture img{object-fit:cover;object-position:center 60%}
.olv-une__grille{position:relative;z-index:1;display:grid;gap:1.1rem;padding-top:1.1rem;padding-bottom:2rem}
.olv-une__bloc h1{color:var(--olv-fond);font-size:clamp(2.1rem,5.4vw,4.4rem);margin-bottom:.3em}
.olv-une__bloc .olv-surtitre{color:var(--olv-acc);margin-bottom:.5rem}
.olv-une__bloc .olv-chapo{color:#e9ecf1;margin:0}
.olv-une__liens{display:none;font-family:var(--olv-titre);font-weight:600;margin:1.4rem 0 0}
.olv-une__liens a{color:var(--olv-acc);display:inline-flex;min-height:44px;align-items:center}
.olv-une .olv-legende{display:none}
@media (min-width:60rem){
  .olv-une .olv-plein::after{background:linear-gradient(90deg,rgba(20,21,26,.9) 0,rgba(20,21,26,.78) 48%,rgba(20,21,26,.45) 100%)}
  .olv-une__grille{grid-template-columns:minmax(0,1fr) minmax(0,35rem);align-items:start;column-gap:clamp(2rem,4vw,4rem);padding-top:1.5rem;padding-bottom:2.5rem}
  .olv-une__bloc{padding-top:clamp(1rem,6vh,4rem)}
  .olv-une__liens{display:block}
  .olv-une .olv-legende{display:block;position:absolute;z-index:2;left:var(--olv-gout);bottom:1rem;background:rgba(20,21,26,.8);color:var(--olv-gris-1);padding:.35rem .7rem;border:0;max-width:24rem}
  .olv-une .olv-legende b{color:#fff}
}
.olv-chapo{font-size:1.18rem;line-height:1.6;font-style:italic;color:var(--olv-ink-2)}
.olv-surtitre{display:inline-block;font-family:var(--olv-titre);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--olv-acc-txt);margin-bottom:.9rem}
.olv-legende{font-family:var(--olv-titre);font-size:.8rem;letter-spacing:.02em;color:var(--olv-gris);padding:.55rem 0;border-bottom:1px solid var(--olv-bord)}
.olv-legende b{color:var(--olv-ink);font-weight:700}

.olv-bouton{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.75rem 1.4rem;background:var(--olv-acc);color:var(--olv-ink);font:700 1rem var(--olv-titre);text-decoration:none;border:0;border-radius:0 1.4rem 0 1.4rem;cursor:pointer;transition:background .2s,color .2s}
.olv-bouton:hover{background:var(--olv-ink);color:var(--olv-acc)}
.olv-rub--sombre .olv-bouton:hover,.olv-appel .olv-bouton:hover{background:var(--olv-fond);color:var(--olv-ink)}
.olv-bouton--clair{background:transparent;color:var(--olv-ink);box-shadow:inset 0 0 0 2px var(--olv-ink)}
.olv-bouton--clair:hover{background:var(--olv-ink);color:var(--olv-fond)}
.olv-bouton svg{width:1.1em;height:1.1em}
.olv-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}

/* rubriques magazine */
.olv-rub{padding:clamp(3rem,8vw,6.5rem) 0}
.olv-rub--gris{background:var(--olv-gris-1)}
.olv-rub--sombre{background:var(--olv-ink);color:var(--olv-gris-1)}
.olv-rub--sombre h2,.olv-rub--sombre h3{color:var(--olv-gris-1)}
.olv-rub--sombre a{color:#ff6a13}
.olv-rub--sombre .olv-surtitre{color:#ff6a13}
.olv-asym{display:grid;gap:clamp(1.5rem,4vw,4rem)}
@media (min-width:52rem){
  .olv-asym{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
  .olv-asym--inverse{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
  .olv-asym--inverse > :first-child{order:2}
  .olv-colle{position:sticky;top:6rem;align-self:start}
}
.olv-lettrine::first-letter{float:left;font-family:var(--olv-titre);font-weight:800;font-size:4.6em;line-height:.82;margin:.06em .1em 0 0;color:var(--olv-acc-txt)}
.olv-colonnes{columns:1}
@media (min-width:60rem){.olv-colonnes{columns:2;column-gap:3rem}.olv-colonnes > *{break-inside:avoid}}
.olv-exergue{font-family:var(--olv-titre);font-weight:600;font-size:clamp(1.35rem,2.6vw,1.9rem);line-height:1.25;color:var(--olv-acc-txt);border-left:4px solid var(--olv-acc);padding:.2rem 0 .2rem 1.2rem;margin:2rem 0}
.olv-rub--sombre .olv-exergue{color:#ff6a13}
.olv-filet{border:0;border-top:1px solid var(--olv-bord);margin:2.5rem 0}

.olv-photo{margin:0}
.olv-photo img{width:100%;object-fit:cover}
.olv-plein{margin:0}
.olv-plein img{width:100%;height:min(70vh,40rem);object-fit:cover;object-position:center 72%}
.olv-plein figcaption{max-width:var(--olv-max);margin:0 auto;padding:.55rem var(--olv-gout)}

/* trois cas */
.olv-cas{display:grid;gap:1.5rem;margin-top:2rem}
@media (min-width:46rem){.olv-cas{grid-template-columns:repeat(3,1fr)}}
.olv-cas article{border-top:3px solid var(--olv-ink);padding-top:1rem}
.olv-cas .olv-num{font-family:var(--olv-titre);font-weight:800;font-size:2.6rem;color:var(--olv-acc-txt);line-height:1}

/* nuancier */
.olv-nuancier{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13.5rem),1fr));gap:1.4rem;margin-top:2rem;padding:0;list-style:none}
.olv-nuancier li{margin:0;background:var(--olv-fond);border:1px solid var(--olv-bord);box-shadow:0 1px 0 var(--olv-bord),0 12px 24px -18px rgba(20,21,26,.35)}
.olv-nuancier h3{font-size:1.1rem;margin:0 0 .3rem}
.olv-nuancier p{font-size:.93rem;line-height:1.55;margin:0;color:var(--olv-gris)}
.olv-nuancier div.olv-fiche{padding:1rem 1rem 1.2rem}
.olv-ref{font-family:var(--olv-titre);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--olv-acc-txt);margin-bottom:.3rem;display:block}
.olv-ech{height:9rem;border-bottom:1px solid var(--olv-bord)}
.olv-ech--zellige{background:
  linear-gradient(90deg,#fff 3px,transparent 3px) 0 0/50% 100%,
  linear-gradient(#fff 3px,transparent 3px) 0 0/100% 50%,
  conic-gradient(from 90deg at 50% 50%,#3a3f4a 0 25%,#4a505c 0 50%,#2c2f38 0 75%,#41464f 0);}
.olv-ech--metro{background:
  repeating-linear-gradient(0deg,#c5cad3 0 2px,transparent 2px 2.25rem),
  linear-gradient(90deg,#c5cad3 2px,transparent 2px) 0 0/4.5rem 4.5rem,
  linear-gradient(90deg,#c5cad3 2px,transparent 2px) 2.25rem 2.25rem/4.5rem 4.5rem,
  #fafbfc;}
.olv-ech--grand{background:
  linear-gradient(90deg,transparent calc(60% - 1px),#c5cad3 calc(60% - 1px) 60%,transparent 60%),
  linear-gradient(160deg,#f3f5f8,#e9ecf1 60%,#dfe3ea);}
.olv-ech--terrazzo{background:
  radial-gradient(circle at 20% 30%,#14151a 0 4px,transparent 5px),
  radial-gradient(circle at 70% 20%,#4a505c 0 3px,transparent 4px),
  radial-gradient(circle at 45% 70%,#545a66 0 5px,transparent 6px),
  radial-gradient(circle at 85% 75%,#ff6a13 0 3px,transparent 4px),
  radial-gradient(circle at 10% 85%,#4a505c 0 2px,transparent 3px),
  #f3f5f8;background-size:3.2rem 3.2rem,2.6rem 2.6rem,3.8rem 3.8rem,2.2rem 2.2rem,2.9rem 2.9rem,auto}
.olv-ech--ciment{background:
  radial-gradient(circle at 50% 50%,#4a505c 0 18%,transparent 19%),
  radial-gradient(circle at 0 0,#14151a 0 30%,transparent 31%),
  radial-gradient(circle at 100% 0,#14151a 0 30%,transparent 31%),
  radial-gradient(circle at 0 100%,#14151a 0 30%,transparent 31%),
  radial-gradient(circle at 100% 100%,#14151a 0 30%,transparent 31%),
  #fff;background-size:3rem 3rem}
.olv-ech--ardoise{background:
  linear-gradient(90deg,#14151a 2px,transparent 2px) 0 0/50% 100%,
  linear-gradient(#14151a 2px,transparent 2px) 0 0/100% 50%,
   #3a3e47;}
.olv-ech--terre{background:
  linear-gradient(90deg,#fff 3px,transparent 3px) 0 0/2.4rem 2.4rem,
  linear-gradient(#fff 3px,transparent 3px) 0 0/2.4rem 2.4rem,
  linear-gradient(135deg,#ff6a13,#e85a0c 50%,#ff6a13);}
.olv-ech--chevron{background:
  linear-gradient(135deg,#6b717d 25%,transparent 25%) -1.2rem 0/2.4rem 2.4rem,
  linear-gradient(225deg,#545a66 25%,transparent 25%) -1.2rem 0/2.4rem 2.4rem,
  linear-gradient(315deg,#6b717d 25%,transparent 25%) 0 0/2.4rem 2.4rem,
  linear-gradient(45deg,#545a66 25%,transparent 25%) 0 0/2.4rem 2.4rem,
  #8a909c;}

/* fiches techniques */
.olv-fiches{display:grid;gap:1px;background:var(--olv-bord);border:1px solid var(--olv-bord);margin:2rem 0}
@media (min-width:44rem){.olv-fiches{grid-template-columns:repeat(2,1fr)}}
.olv-fiches > div{background:var(--olv-fond);padding:1.3rem 1.4rem}
.olv-fiches h3{font-size:1.15rem;margin-bottom:.4rem}
.olv-fiches p{margin:0;font-size:.97rem}
.olv-liste-coche{list-style:none;padding:0}
.olv-liste-coche li{position:relative;padding-left:1.8rem}
.olv-liste-coche li::before{content:"";position:absolute;left:0;top:.5em;width:.95rem;height:.95rem;background:var(--olv-acc-txt);border-radius:0 .5rem 0 .5rem}

/* étapes */
.olv-etapes{counter-reset:etape;list-style:none;padding:0;display:grid;gap:1.6rem;margin-top:2rem}
@media (min-width:52rem){.olv-etapes{grid-template-columns:repeat(3,1fr)}}
.olv-etapes li{counter-increment:etape;margin:0;padding-top:3.4rem;position:relative}
.olv-etapes li::before{content:counter(etape,decimal-leading-zero);position:absolute;top:0;left:0;font:800 2.4rem/1 var(--olv-titre);color:#ff6a13}

/* communes */
.olv-communes{display:grid;gap:0;margin-top:2rem;border-top:2px solid var(--olv-ink)}
@media (min-width:48rem){.olv-communes{grid-template-columns:repeat(2,1fr);column-gap:3rem}}
.olv-communes section{padding:1.3rem 0;border-bottom:1px solid var(--olv-bord)}
.olv-communes h3{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:1.3rem;margin-bottom:.35rem}
.olv-communes h3 span{font:500 .75rem var(--olv-titre);letter-spacing:.1em;text-transform:uppercase;color:var(--olv-acc-txt)}
.olv-communes p{margin:0;font-size:.98rem}

/* faq */
.olv-faq details{border-bottom:1px solid var(--olv-bord)}
.olv-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:44px;padding:1.1rem 0;font:700 1.15rem/1.3 var(--olv-titre);color:var(--olv-ink)}
.olv-faq summary::-webkit-details-marker{display:none}
.olv-faq summary::after{content:"";flex:none;width:1.1rem;height:1.1rem;background:linear-gradient(var(--olv-acc-txt),var(--olv-acc-txt)) center/100% 2px no-repeat,linear-gradient(var(--olv-acc-txt),var(--olv-acc-txt)) center/2px 100% no-repeat;transition:transform .2s}
.olv-faq details[open] summary::after{transform:rotate(45deg)}
.olv-faq details > div{padding:0 0 1.2rem;max-width:46rem}

/* texte courant de pages juridiques */
.olv-texte{max-width:46rem}
.olv-texte h2{font-size:1.6rem;margin-top:2.2rem}
.olv-entete-page{padding:clamp(2.5rem,7vw,5rem) 0 clamp(1.5rem,4vw,2.5rem);background:var(--olv-gris-1);border-bottom:1px solid var(--olv-bord)}
.olv-entete-page--form{padding:clamp(1.1rem,3vw,2rem) 0 clamp(1.5rem,4vw,2.5rem)}
.olv-entete__grille{display:grid;gap:1.1rem;grid-template-areas:"titre" "form" "chapo"}
.olv-entete__titre{grid-area:titre}
.olv-entete__titre h1{margin-bottom:0}
.olv-entete__titre .olv-surtitre{margin-bottom:.5rem}
.olv-entete__chapo{grid-area:chapo;margin:0}
.olv-entete__form{grid-area:form;min-width:0}
@media (min-width:60rem){
  .olv-entete__grille{grid-template-columns:minmax(0,1fr) minmax(0,34rem);grid-template-areas:"titre form" "chapo form";grid-template-rows:auto 1fr;column-gap:clamp(2rem,4vw,4rem);row-gap:1.4rem;align-items:start}
  .olv-entete__titre{padding-top:clamp(.5rem,4vh,3rem)}
}
.olv-entete-page h1{font-size:clamp(2.2rem,6vw,4.2rem);max-width:18ch}

/* pied */
.olv-pied{background:var(--olv-ink);color:#e9ecf1;padding:3.5rem 0 2rem;font-size:.95rem}
.olv-pied a{color:#ff6a13}
.olv-pied__grille{display:grid;gap:2rem}
@media (min-width:48rem){.olv-pied__grille{grid-template-columns:2fr 1fr 1fr}}
.olv-pied h2{font-size:1rem;color:#fff;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.8rem}
.olv-pied ul{list-style:none;padding:0;margin:0}
.olv-pied li a{display:inline-flex;min-height:44px;align-items:center}
.olv-pied__bas{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.22);font-size:.85rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}
.olv-pied__frise{height:14px;background:repeating-linear-gradient(90deg,var(--olv-ink-2) 0 28px,var(--olv-acc) 28px 30px,var(--olv-acc-txt) 30px 58px,var(--olv-acc) 58px 60px)}

/* ===== formulaire ===== */
.olv-atelier{display:grid;gap:2rem;align-items:start}
@media (min-width:64rem){.olv-atelier{grid-template-columns:minmax(0,1fr) 22rem}}
.olv-form{background:var(--olv-fond);border:1px solid var(--olv-bord);padding:clamp(1.1rem,3.5vw,2.4rem)}
.olv-progres{display:none}
.js .olv-progres{display:block;margin-bottom:1.6rem}
.olv-progres ol{list-style:none;padding:0;margin:0 0 .7rem;display:flex;gap:.4rem;flex-wrap:wrap;font:600 .82rem var(--olv-titre)}
.olv-progres li{margin:0;color:var(--olv-gris)}
.olv-progres li[aria-current=step]{color:var(--olv-ink)}
.olv-progres li.is-fait{color:var(--olv-acc-txt)}
.olv-progres li + li::before{content:"/";margin-right:.4rem;color:var(--olv-bord)}
.olv-barre{height:6px;background:var(--olv-bord)}
.olv-barre span{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--olv-acc-txt),var(--olv-acc));transition:width .35s}
.olv-etape{border:0;margin:0 0 2.2rem;padding:0;min-width:0}
.olv-etape legend{font:800 clamp(1.35rem,3vw,1.8rem)/1.15 var(--olv-titre);color:var(--olv-ink);padding:0;margin-bottom:.4rem}
.olv-etape > p.olv-aide{color:var(--olv-gris);font-size:.95rem;margin-bottom:1.2rem}
.js .olv-etape[hidden]{display:none}

.olv-schema{margin:0 0 1.2rem;background:var(--olv-gris-1);border:1px solid var(--olv-bord);padding:.8rem}
.olv-schema svg{width:100%;max-width:34rem;margin:0 auto}
.olv-schema .olv-zone{cursor:pointer;transition:fill .2s,stroke .2s}
.olv-schema .olv-zone--credence{fill:#e9ecf1;stroke:#c5cad3}
.olv-schema .olv-zone--sol{fill:#dfe3ea;stroke:#c5cad3}
.olv-schema .olv-zone:hover{fill:#ffe1cf}
.olv-schema .olv-zone.is-actif{fill:var(--olv-acc);stroke:var(--olv-ink);stroke-width:3}
.olv-schema .olv-zone:focus-visible{outline:none;stroke:var(--olv-focus);stroke-width:5}
.olv-schema .olv-motif{pointer-events:none;opacity:.55}
.olv-schema .olv-etiq{pointer-events:none;font:700 15px var(--olv-titre);fill:var(--olv-ink)}
.olv-schema figcaption{font:500 .82rem var(--olv-titre);color:var(--olv-gris);text-align:center;margin-top:.5rem}

.olv-choix{display:grid;gap:.7rem}
.olv-choix--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}
.olv-carte{position:relative;display:block}
.olv-carte input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.olv-carte span.olv-carte__corps{display:flex;flex-direction:column;gap:.15rem;min-height:3.5rem;padding:.85rem 1rem;border:1.5px solid var(--olv-bord);background:#fff;font:600 1rem/1.25 var(--olv-titre);color:var(--olv-ink);transition:border-color .15s,background .15s}
.olv-carte small{font:400 .85rem/1.35 var(--olv-texte);color:var(--olv-gris)}
.olv-carte input:checked + .olv-carte__corps{border-color:var(--olv-ink);background:var(--olv-gris-2);box-shadow:inset 4px 0 0 var(--olv-acc)}
.olv-carte input:focus-visible + .olv-carte__corps{outline:3px solid var(--olv-focus);outline-offset:2px}
.olv-carte:hover .olv-carte__corps{border-color:var(--olv-acc)}

.olv-vignettes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,8.6rem),1fr));gap:.8rem}
.olv-vignettes .olv-carte__corps{padding:0;overflow:hidden}
.olv-vignettes .olv-ech{height:5.2rem}
.olv-vignettes .olv-carte__texte{padding:.6rem .7rem .7rem;display:block;font-size:.92rem}
.olv-ech--neutre{background:repeating-linear-gradient(45deg,#fff 0 10px,#e9ecf1 10px 20px)}

.olv-dosage{display:grid;gap:1.2rem}
@media (min-width:40rem){.olv-dosage{grid-template-columns:1fr 1fr}}
.olv-dose{border:1px solid var(--olv-bord);background:#fff;padding:1rem}
.olv-dose label{display:block;font:700 1rem var(--olv-titre);color:var(--olv-ink);margin-bottom:.6rem}
.olv-stepper{display:flex;align-items:stretch;max-width:15rem}
.olv-stepper button{flex:none;width:48px;min-height:48px;border:1.5px solid var(--olv-ink);background:var(--olv-gris-1);color:var(--olv-ink);font:700 1.5rem/1 var(--olv-titre);cursor:pointer;display:none}
.js .olv-stepper button{display:block}
.olv-stepper button:hover{background:var(--olv-bord)}
.olv-stepper input{width:100%;min-width:0;min-height:48px;text-align:center;border:1.5px solid var(--olv-ink);border-left-width:0;border-right-width:0;font:700 1.25rem var(--olv-titre);color:var(--olv-ink);background:#fff;-moz-appearance:textfield;appearance:textfield}
html:not(.js) .olv-stepper input{border-width:1.5px}
.olv-stepper input::-webkit-outer-spin-button,.olv-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.olv-unite{font:600 .9rem var(--olv-titre);color:var(--olv-gris);margin-left:.6rem;align-self:center}
.olv-dose .olv-indice{font-size:.85rem;color:var(--olv-gris);margin:.6rem 0 0}

.olv-champs{display:grid;gap:1.1rem}
@media (min-width:40rem){.olv-champs{grid-template-columns:1fr 1fr}.olv-champs .olv-large{grid-column:1/-1}}
.olv-champ label,.olv-champ .olv-lib{display:block;font:700 .97rem var(--olv-titre);color:var(--olv-ink);margin-bottom:.35rem}
.olv-champ input,.olv-champ select,.olv-champ textarea{width:100%;min-height:48px;padding:.65rem .8rem;border:1.5px solid #8a909c;background:#fff;color:var(--olv-encre);font:1rem var(--olv-texte);border-radius:0}
.olv-champ textarea{min-height:7.5rem;resize:vertical}
.olv-champ input:focus,.olv-champ select:focus,.olv-champ textarea:focus{border-color:var(--olv-acc-txt);outline:3px solid rgba(255,106,19,.4);outline-offset:0}
.olv-champ.is-erreur input{border-color:var(--olv-rouge)}
.olv-champ.is-ok input{border-color:var(--olv-acc-txt)}
.olv-msg{display:block;min-height:1.2em;font:500 .85rem var(--olv-titre);color:var(--olv-rouge);margin-top:.3rem}
.olv-req{color:var(--olv-rouge)}
.olv-consent{display:flex;gap:.8rem;align-items:flex-start;font-size:.95rem;line-height:1.5}
.olv-consent input{flex:none;width:1.4rem;height:1.4rem;margin:.15rem 0 0;accent-color:var(--olv-acc-txt)}
.olv-piege{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.olv-nav-etapes{display:none}
.js .olv-nav-etapes{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--olv-bord)}
.olv-envoi{margin-top:1.6rem}
.js .olv-envoi[hidden]{display:none}
.olv-bouton[disabled]{opacity:.7;cursor:progress}
.olv-cocher{display:flex;gap:.7rem;align-items:center;min-height:44px;font-size:.98rem}
.olv-cocher input{width:1.3rem;height:1.3rem;accent-color:var(--olv-acc-txt)}

.olv-synthese{background:var(--olv-ink);color:var(--olv-gris-1);padding:1.5rem;position:relative}
@media (min-width:64rem){.olv-synthese{position:sticky;top:5.5rem}}
.olv-synthese h2{color:#fff;font-size:1.35rem;margin-bottom:1rem}
.olv-synthese dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;font-size:.95rem}
.olv-synthese dt{font:600 .78rem var(--olv-titre);letter-spacing:.08em;text-transform:uppercase;color:#ff6a13;padding-top:.2rem}
.olv-synthese dd{margin:0}
.olv-conseil{margin-top:1.3rem;padding:1rem;background:rgba(255,255,255,.1);border-left:3px solid var(--olv-acc);font-size:.93rem;line-height:1.55}
.olv-conseil strong{font-family:var(--olv-titre);display:block;margin-bottom:.3rem;color:#ff6a13}
.olv-conseil[hidden]{display:none}
.olv-conseil--form{margin:1.1rem 0 0;background:var(--olv-gris-2);border-left-color:var(--olv-acc-txt);color:var(--olv-encre)}
.olv-conseil--form strong{color:var(--olv-ink)}
.olv-synthese .olv-mini{margin-top:1rem;font-size:.82rem;opacity:.85}
.olv-sansjs{font-size:.92rem}
.js .olv-sansjs{display:none}

.olv-encadre{background:var(--olv-gris-1);border:1px solid var(--olv-bord);border-left:6px solid var(--olv-acc);padding:1.3rem 1.5rem;margin:1.8rem 0}
.olv-encadre p:last-child{margin:0}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.olv-bouton[hidden],.olv-dose[hidden],.olv-champ[hidden]{display:none}

/* formulaire compact (haut de page) */
.olv-form--compact{background:var(--olv-blanc);border:0;border-top:5px solid var(--olv-acc);padding:clamp(1rem,2.4vw,1.5rem);box-shadow:0 22px 44px -26px rgba(20,21,26,.6);color:var(--olv-encre)}
.olv-form__titre{font:500 .88rem/1.35 var(--olv-titre);color:var(--olv-gris);margin:0 0 .75rem}
.olv-form__titre span{display:block;font-weight:800;font-size:1.2rem;letter-spacing:-.01em;color:var(--olv-ink)}
.js .olv-form--compact .olv-progres{margin-bottom:.9rem}
.olv-form--compact .olv-progres ol{margin-bottom:.45rem}
.olv-form--compact .olv-etape{margin-bottom:0}
.olv-form--compact .olv-etape legend{font-size:clamp(1.15rem,2vw,1.4rem)}
.olv-form--compact .olv-etape > p.olv-aide{font-size:.9rem;line-height:1.45;margin-bottom:.7rem}
.olv-form--compact .olv-schema{padding:.35rem;margin-bottom:.7rem}
.olv-form--compact .olv-schema svg{max-width:19rem}
.olv-form--compact .olv-schema figcaption{display:none}
.olv-form--compact .olv-choix--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
.olv-form--compact .olv-choix--3 .olv-carte__corps{min-height:48px;padding:.55rem .4rem;align-items:center;justify-content:center;text-align:center;font-size:.95rem}
.olv-form--compact .olv-choix--3 small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.olv-form--compact .olv-dosage,.olv-form--compact .olv-champs{grid-template-columns:1fr}
.js .olv-form--compact .olv-nav-etapes{margin-top:.9rem;padding-top:.8rem}
.olv-form--compact .olv-nav-etapes .olv-bouton{min-height:46px;padding:.6rem 1.1rem}

/* bandeau d'appel vers le formulaire du haut */
.olv-appel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem;padding:1.2rem 1.4rem;background:var(--olv-ink);color:var(--olv-fond)}
.olv-appel p{margin:0;font:600 1.05rem/1.4 var(--olv-titre);max-width:40rem}
