/* Audiocy'Bel — mise en page du site, refonte du 01/10/2026 : base « le trait qui guide », preuves en chiffres,
   papier du devis (docs/specs/2026-10-01-audiocybel-site-refonte-design.md). S'appuie sur audiocybel.css
   (variables, polices, titres). Couleurs : uniquement les variables --ab-… et des transparences de prune ou de crème. */
:root {
  --rayon: 1.375rem;
  --ressort: cubic-bezier(.32, .72, 0, 1);
  --trace: cubic-bezier(.65, 0, .35, 1);
  --filet: rgba(74, 35, 64, .15);
  --filet-clair: rgba(251, 244, 236, .18);
  --ombre: 0 1.75rem 3.5rem -1.75rem rgba(74, 35, 64, .55), 0 .125rem .25rem rgba(74, 35, 64, .06);
  --gouttiere-g: max(calc(1.25rem + env(safe-area-inset-left)), calc((100% - 72rem) / 2));
  --gouttiere-d: max(calc(1.25rem + env(safe-area-inset-right)), calc((100% - 72rem) / 2));
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-bottom: 4.5rem; }
body { margin: 0; }
img { max-width: 100%; height: auto; display: block; }
a { text-underline-offset: .18em; }
::selection { background: var(--ab-abricot); color: var(--ab-prune); }
input, select { caret-color: var(--ab-terracotta-texte); }
:focus-visible { outline: 3px solid var(--ab-terracotta-texte); outline-offset: 3px; }
.bandeau :focus-visible, .pied :focus-visible, .prune :focus-visible, .appel-fixe:focus-visible {
  outline-color: var(--ab-creme); }
.abricot :focus-visible { outline-color: var(--ab-prune); }
.largeur { width: min(100% - 2.5rem - env(safe-area-inset-left) - env(safe-area-inset-right), 72rem); margin-inline: auto; }
.evitement { position: absolute; left: -9999px; }
.evitement:focus { left: 1rem; top: 1rem; z-index: 3; background: var(--ab-creme); padding: .75rem 1rem;
  outline-color: var(--ab-abricot); }
h1, h2, h3 { text-wrap: balance; letter-spacing: -.01em; }
h1 em, h2 em { padding-right: .08em; }
p, li { text-wrap: pretty; }

/* Grain : un bruit très léger sur les aplats prune et abricot */
.bandeau, .pied, .section.prune, .section.abricot, .tuile.abricot, .tuile.prune { position: relative; isolation: isolate; }
.bandeau::after, .pied::after, .section.prune::after, .section.abricot::after, .tuile.abricot::after,
.tuile.prune::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--grain); opacity: .1; mix-blend-mode: soft-light; }

/* En-tête */
.bandeau { background: var(--ab-prune); color: var(--ab-creme); overflow: hidden; }
.bandeau a { color: inherit; }
.barre { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.75rem; min-height: 5.25rem; padding-block: .75rem; }
.logo img { width: 10.5rem; }
.menu-bouton { display: none; margin-left: auto; min-height: 48px; padding: .4rem 1.2rem; border: 2px solid currentColor;
  border-radius: 999px; background: none; color: var(--ab-creme); font: inherit; font-weight: 700; cursor: pointer; }
.js .menu-bouton { display: inline-flex; align-items: center; }
.nav-liens { display: flex; flex-direction: column; width: 100%; padding-bottom: .5rem; }
.js .nav-liens { display: none; }
.js .nav-liens.ouverte { display: flex; }
.nav-liens a { display: flex; align-items: center; min-height: 48px; font-weight: 700; text-decoration: none;
  border-bottom: 1px solid var(--filet-clair); }
.nav-liens a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--ab-abricot);
  text-decoration-thickness: 2px; text-underline-offset: .45em; }
.pastille-tel { display: none; }
@media (min-width: 60rem) {
  .menu-bouton, .js .menu-bouton { display: none; }
  .nav-liens, .js .nav-liens { display: flex; flex-direction: row; width: auto; margin-left: auto; gap: 1.75rem; padding: 0; }
  .nav-liens a { border: 0; }
  .pastille-tel { display: inline-flex; align-items: center; min-height: 48px; padding: .4rem 1.25rem; border-radius: 999px;
    background: var(--ab-abricot); color: var(--ab-prune) !important; font-weight: 700; text-decoration: none;
    white-space: nowrap; transition: transform .3s var(--ressort); }
  .pastille-tel:active { transform: scale(.98); }
}

/* Bandeaux */
.bandeau-contenu { position: relative; z-index: 1; padding-block: 2rem 3.5rem; }
.bandeau h1 { color: var(--ab-creme); font-size: clamp(2.25rem, 1.5rem + 2.6vw, 3.5rem); max-width: 18ch; margin: 0; }
.bandeau h1 em { color: var(--ab-abricot); }
.accueil .bandeau h1 { font-size: clamp(2.5rem, 1.4rem + 3.6vw, 4.25rem); max-width: 19ch; }
.chapeau { max-width: 34ch; margin: 1.5rem 0 0; font-size: clamp(1.125rem, 1rem + .5vw, 1.3125rem); }
.etiquette { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 700; color: var(--ab-abricot); }
.accueil .bandeau-contenu { display: grid; gap: 2.5rem; align-items: center; padding-block: 1.5rem 3rem; }
.bandeau-texte { position: relative; z-index: 1; }
.ondes { position: absolute; right: -6rem; top: -1rem; width: 17rem; aspect-ratio: 1; opacity: .5; pointer-events: none; }
.ondes svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ondes circle { fill: none; stroke: var(--ab-abricot); stroke-width: .45; opacity: var(--o);
  transform-box: view-box; transform-origin: 50% 50%; }
.ondes circle:nth-child(1) { --o: .6; }
.ondes circle:nth-child(2) { --o: .4; }
.ondes circle:nth-child(3) { --o: .24; }
.ondes circle:nth-child(4) { --o: .12; }
.ondes img { display: none; position: absolute; left: 50%; top: 50%; height: 46%; width: auto; transform: translate(-44%, -50%); }
.oreille { display: block; width: 100%; height: auto; stroke-width: 3; }
.oreille-bandeau { position: absolute; right: -3.5rem; top: 5.25rem; width: 12rem; color: var(--ab-abricot);
  stroke-width: 2.2; opacity: .3; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  .ondes circle { animation: onde 2.4s var(--ressort) both; }
  .ondes circle:nth-child(2) { animation-delay: .4s; }
  .ondes circle:nth-child(3) { animation-delay: .8s; }
  .ondes circle:nth-child(4) { animation-delay: 1.2s; }
}
@keyframes onde { from { transform: scale(.55); opacity: 0; } to { transform: scale(1); opacity: var(--o); } }
@media (min-width: 60rem) {
  .bandeau-contenu { padding-block: 2.5rem 4.5rem; }
  .accueil .bandeau-contenu { grid-template-columns: 1.2fr .8fr; padding-block: 2rem 4rem; }
  .ondes { position: relative; right: auto; top: auto; width: 100%; max-width: 27rem; justify-self: end; opacity: 1; }
  .ondes img { display: block; }
  .oreille-bandeau { right: max(-2rem, calc((100% - 72rem) / 2 - 4rem)); top: 5.25rem; width: 20rem; opacity: .9; }
}

/* Boutons */
.boutons { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0 0; }
.bouton { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; min-height: 3.375rem;
  padding: .375rem 1.5rem; border: 2px solid var(--ab-prune); border-radius: 999px; background: var(--ab-prune);
  color: var(--ab-creme); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer;
  transition: transform .3s var(--ressort); }
.bouton:not(.secondaire) { padding-right: .375rem; }
.bouton:not(.secondaire)::after { content: "→"; content: "→" / ""; display: grid; place-items: center; width: 2.5rem;
  height: 2.5rem; border-radius: 50%; background: var(--ab-abricot); color: var(--ab-prune);
  transition: transform .3s var(--ressort); }
.bouton:active { transform: scale(.98); }
.bandeau .bouton:not(.secondaire), .prune .bouton:not(.secondaire) { border-color: var(--ab-abricot);
  background: var(--ab-abricot); color: var(--ab-prune); }
.bandeau .bouton:not(.secondaire)::after, .prune .bouton:not(.secondaire)::after { background: var(--ab-prune);
  color: var(--ab-abricot); }
.bouton.secondaire { background: transparent; color: inherit; border-color: currentColor; }
.suite { font-weight: 700; color: var(--ab-terracotta-texte); }
.suite::after { content: "\00a0→"; }

@media (hover: hover) and (pointer: fine) {
  .bouton:hover::after { transform: translateX(3px); }
  .tuile:has(a:hover) { transform: translateY(-4px); }
}

/* Sections pleine largeur */
main { display: block; }
.section { padding: 4.5rem var(--gouttiere-d) 5rem var(--gouttiere-g); overflow-x: clip; }
.section.blanc { background: var(--ab-blanc); }
.section.abricot { background: var(--ab-abricot); }
.section.abricot a:not(.bouton) { color: var(--ab-prune); }
.section.prune { background: var(--ab-prune); color: var(--ab-creme); }
.section.prune a { color: inherit; }
.section.filet { border-top: 1px solid var(--filet); }
.section.bande { padding-block: 0 3rem; }
.bande > h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.section h2 { font-size: clamp(2rem, 1.5rem + 1.6vw, 3rem); max-width: 22ch; margin: 0 0 1.75rem; }
.section h3 { font-size: 1.5rem; margin: 0 0 .5rem; }
.section h2:not(:first-child) { margin-top: 3rem; }
.section h3:not(:first-child) { margin-top: 1.75rem; }
.section p { margin: 0 0 1rem; max-width: 42rem; }
.section ul, .section ol { max-width: 42rem; padding-left: 1.4rem; margin: 0 0 1rem; }
.section li { margin-bottom: .6rem; }
.section > :last-child, .carte > :last-child, .colonne > :last-child { margin-bottom: 0; }
.lecture h2 { font-size: var(--ab-t2); }
@media (min-width: 60rem) { .section { padding-block: 6.5rem 7rem; } .section.bande { padding-block: 0 4rem; } }

/* Grilles : une piste qui ne dépasse jamais la largeur de l'écran ; le texte agrandi revient à la ligne */
.colonnes, .chiffres, .mosaique, .phrases, .questions, .atouts { grid-template-columns: minmax(0, 1fr); }
main { overflow-wrap: break-word; }
.mot { max-width: 100%; }

/* Cibles tactiles : 48 px minimum pour les liens du pied de page et les liens isolés dans un paragraphe */
.pied a, main p > a:only-child { display: inline-flex; align-items: center; min-height: 48px; }

/* Cartes et colonnes */
.carte { padding: 2rem; border-radius: var(--rayon); background: var(--ab-blanc); }
.colonnes { display: grid; gap: 3rem; }
.collante .carte { margin-top: 2rem; }
@media (min-width: 60rem) {
  .colonnes { grid-template-columns: .85fr 1.15fr; gap: 4.5rem; align-items: start; }
  .blanc .colonnes { align-items: center; }
}
@media (min-width: 60rem) and (min-height: 50rem) { .colonne.collante { position: sticky; top: 1.5rem; } }

/* Preuves en chiffres */
.chiffres { display: grid; border-top: 1px solid var(--filet-clair); }
.chiffres .carte { padding: 1.75rem 0; border-radius: 0; background: none; }
.chiffres .carte + .carte { border-top: 1px solid var(--filet-clair); }
.chiffre p { margin: 0; font-family: var(--ab-police-titre); font-variation-settings: var(--ab-reglages-titre);
  font-size: 2.5rem; line-height: 1; color: var(--ab-abricot); }
.chiffres .carte h3 { margin: .75rem 0 .375rem; font-size: 1.375rem; color: var(--ab-creme); }
.chiffres .carte > p { margin: 0; }
@media (min-width: 48rem) {
  .chiffres { grid-template-columns: repeat(3, 1fr); }
  .chiffres .carte { display: block; padding: 2.5rem 2.25rem 0 0; }
  .chiffres .carte + .carte { border-top: 0; border-left: 1px solid var(--filet-clair); padding-left: 2.25rem; }
  .chiffre p { font-size: clamp(3.25rem, 1.5rem + 3.4vw, 4.75rem); }
  .chiffres .carte h3 { margin: 1rem 0 .5rem; font-size: 1.5rem; }
}

/* Parcours : pastilles numérotées sur un pointillé vertical, ou sur le fil courbe (accueil, ordinateur) */
.parcours { position: relative; counter-reset: etape; max-width: 44rem; padding-left: 5rem; }
.parcours::before { content: ""; position: absolute; left: 1.75rem; top: 1.75rem; bottom: 1.75rem; width: 3px;
  margin-left: -1.5px; background: repeating-linear-gradient(var(--ab-terracotta) 0 7px, transparent 7px 14px);
  transform-origin: top; }
.parcours ol { list-style: none; padding: 0; margin: 0; max-width: none; }
.parcours ol > li { position: relative; counter-increment: etape; margin: 0; padding: 0 0 2.5rem; }
.parcours ol > li::before { content: counter(etape); position: absolute; left: -5rem; top: 0; display: grid;
  place-items: center; width: 3.5rem; height: 3.5rem; border: 2.5px solid var(--ab-terracotta); border-radius: 50%;
  background: var(--fond-parcours, var(--ab-creme)); color: var(--ab-terracotta-texte);
  font-family: var(--ab-police-titre); font-variation-settings: var(--ab-reglages-titre); font-size: 1.5rem; }
.parcours ol > li strong { display: block; margin: .5rem 0 .4rem; font-family: var(--ab-police-titre); font-weight: 500;
  font-variation-settings: var(--ab-reglages-titre); font-size: 1.5rem; line-height: 1.2; }
.parcours > ol:last-child > li:last-child { padding-bottom: 0; }
.parcours > .papiers { margin: 0 0 2.5rem; }
.blanc .parcours { --fond-parcours: var(--ab-blanc); }
.fil { display: none; position: absolute; left: 0; top: 0; width: 100%; height: 3.5rem; overflow: visible; }
.fil path { fill: none; stroke: var(--ab-terracotta); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 3000;
  stroke-dashoffset: 0; }
.fil-pret .fil path { stroke-dashoffset: 3000; }
.fil-pret .parcours::before { transform: scaleY(0); }
.fil-pret .parcours.trace .fil path { stroke-dashoffset: 0; transition: stroke-dashoffset 2.6s var(--trace); }
.fil-pret .parcours.trace::before { transform: scaleY(1); transition: transform 2s var(--trace); }
@media (min-width: 60rem) {
  .parcours.horizontal { max-width: none; padding: 0; }
  .parcours.horizontal::before { display: none; }
  .parcours.horizontal ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
  .parcours.horizontal ol > li { padding: 5rem 0 0; }
  .parcours.horizontal ol > li::before { left: 0; }
  .parcours.horizontal .fil { display: block; }
}

/* Le papier du devis (illustration, role="img") */
.papiers { position: relative; max-width: 30rem; padding-top: 1rem; }
.papier { border-radius: .375rem; background: var(--ab-creme); box-shadow: var(--ombre); }
.section:not(.blanc) .feuille { background: var(--ab-blanc); }
.feuille { position: relative; width: min(100%, 24rem); padding: 1.5rem 1.5rem 1.25rem; transform: rotate(-1.5deg); }
.section .feuille-tete { display: flex; justify-content: space-between; align-items: flex-start; margin: 0;
  padding-bottom: .875rem; border-bottom: 2px solid var(--ab-prune); }
.feuille-titre { display: block; font-family: var(--ab-police-titre); font-variation-settings: var(--ab-reglages-titre);
  font-size: 1.625rem; line-height: 1.1; }
.feuille-sous { display: block; font-size: 1rem; }
.feuille-signe { display: none; width: 1.5rem; color: var(--ab-terracotta); stroke-width: 6; flex: none; }
.section .feuille-lignes { list-style: none; padding: 0; margin: .5rem 0 0; }
.section .feuille-lignes li { display: flex; align-items: center; gap: .75rem; margin: 0; padding: .625rem 0;
  border-bottom: 1px dashed rgba(74, 35, 64, .25); font-size: 1rem; line-height: 1.3; }
.feuille-lignes span:first-child { flex: 1; }
.montant { flex: none; width: 3.5rem; height: .5rem; border-radius: .25rem; background: rgba(74, 35, 64, .14); }
.section .feuille-lignes .total { border: 0; padding-top: 1rem; font-weight: 700; }
.total .montant { width: 4.5rem; height: .75rem; background: var(--ab-abricot); }
.mot { position: relative; width: 15rem; margin: -2rem 0 0 auto; padding: 1.25rem 1.375rem; transform: rotate(2deg);
  background: var(--ab-prune); color: var(--ab-creme); }
.section .mot p { margin: .375rem 0 0; font-size: 1rem; }
.section .mot .mot-titre { margin: 0; font-family: var(--ab-police-titre); font-variation-settings: var(--ab-reglages-titre);
  font-size: 1.375rem; color: var(--ab-abricot); }
.section .tampon { position: absolute; right: 0; top: 0; display: grid; place-items: center; width: 6.5rem; height: 6.5rem;
  margin: 0; border: 2.5px dashed var(--ab-terracotta); border-radius: 50%; background: rgba(251, 244, 236, .85);
  color: var(--ab-terracotta-texte); font-family: var(--ab-police-titre); font-variation-settings: var(--ab-reglages-titre);
  font-size: 1rem; line-height: 1.1; text-align: center; transform: rotate(-14deg); }
@media (min-width: 48rem) {
  .feuille { padding: 1.875rem 2rem 1.5rem; transform: rotate(-3deg); }
  .feuille-signe { display: block; }
  .mot { margin-top: -3.5rem; transform: rotate(4deg); }
  .section .tampon { right: -1rem; top: -1rem; width: 8.5rem; height: 8.5rem; font-size: 1.1875rem; }
}

/* Mosaïque de tuiles */
.mosaique { display: grid; gap: 1.25rem; }
.tuile { position: relative; display: flex; flex-direction: column; min-height: 12rem; padding: 2rem;
  border-radius: var(--rayon); overflow: hidden; background: var(--ab-blanc); transition: transform .4s var(--ressort); }
.tuile.abricot { background: var(--ab-abricot); }
.tuile.prune { background: var(--ab-prune); color: var(--ab-creme); }
.tuile.prune h3 { color: var(--ab-abricot); }
.tuile.blanche h3 { color: var(--ab-terracotta-texte); }
.section .tuile h3 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem); margin: 0 0 .75rem; }
.section .tuile p { max-width: 30ch; }
.tuile h3 a { color: inherit; text-decoration: none; }
.tuile h3 a::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.tuile h3 a::after { content: " →"; }
.tuile .oreille { position: absolute; right: -1rem; bottom: -2.5rem; width: 6.5rem; color: var(--ab-prune); opacity: .5; }
.tuile:has(.oreille) { padding-bottom: 7rem; }
@media (min-width: 48rem) {
  .mosaique { grid-template-columns: 1.25fr 1fr; }
  .mosaique > :first-child { grid-row: span 2; min-height: 26rem; }
  .tuile:has(.oreille) { padding-bottom: 2rem; }
  .mosaique.quatre > :first-child { grid-row: span 3; }
  .mosaique > :first-child .oreille { right: -2rem; bottom: -3rem; width: 16rem; }
}

/* Phrases et questions : le titre à gauche, le contenu à droite */
.phrases, .questions { display: grid; column-gap: 4rem; }
.phrases ul { list-style: none; padding: 0; margin: 0; max-width: none; }
.phrases li { margin: 0; padding: 1.5rem 0; border-bottom: 1px solid var(--filet); font-family: var(--ab-police-titre);
  font-variation-settings: var(--ab-reglages-titre); font-size: clamp(1.5rem, 1.2rem + 1vw, 2.125rem); line-height: 1.3; }
.phrases li:first-child { padding-top: 0; }
.phrases strong { font-weight: 500; color: var(--ab-terracotta-texte); }
.section .questions h3 { font-size: clamp(1.375rem, 1.2rem + .6vw, 1.625rem); }
.section .questions p { margin: 0; padding-bottom: 1.75rem; border-bottom: 1px solid var(--filet); max-width: 48ch; }
@media (min-width: 60rem) {
  .phrases, .questions { grid-template-columns: .8fr 1.2fr; }
  .phrases > h2, .questions > h2 { grid-row: 1 / span 20; }
  .phrases > :not(h2), .questions > :not(h2) { grid-column: 2; }
  .section .questions > h2 + h3 { margin-top: 0; }
}

/* Atouts : colonnes sous un filet prune */
.atouts { display: grid; border-top: 2px solid var(--ab-prune); }
.atout { padding: 1.5rem 0; }
.atout + .atout { border-top: 1px solid var(--filet); }
.section .atout h3 { color: var(--ab-terracotta-texte); font-size: clamp(1.5rem, 1.3rem + .7vw, 1.875rem); }
@media (min-width: 48rem) {
  .atouts { grid-auto-flow: column; grid-auto-columns: 1fr; }
  .atout { padding: 1.75rem 1.75rem .5rem 0; }
  .atout + .atout { border-top: 0; border-left: 1px solid var(--filet); padding-left: 1.75rem; }
}

/* Nous trouver, et la bande « rendez-vous » */
.section.trouver > h2 { margin: 0 0 .75rem; font-family: var(--ab-police-texte); font-variation-settings: normal;
  font-size: 1.125rem; font-weight: 700; letter-spacing: 0; }
.rue p { margin: 0; font-family: var(--ab-police-titre); font-variation-settings: var(--ab-reglages-titre);
  font-size: clamp(2.5rem, 1.5rem + 3.5vw, 4.25rem); line-height: 1.05; }
.section.trouver > p { margin-top: .75rem; font-size: 1.25rem; }
.section.trouver > p:last-child { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0 0; }
.section.rendez-vous { padding-block: 4rem 4.5rem; }
.rendez-vous h2 { margin: 0; max-width: 20ch; }
.rendez-vous > p:not(.boutons) { margin: 1rem 0 0; font-size: 1.25rem; }
@media (min-width: 60rem) {
  .section.trouver, .section.rendez-vous { display: grid; grid-template-columns: 1.15fr .85fr; column-gap: 3rem; align-items: end; }
  .section.rendez-vous { align-items: center; }
  .section.trouver > *, .rendez-vous > * { grid-column: 1; }
  .section.trouver > p:last-child, .rendez-vous > .boutons { grid-column: 2; grid-row: 1 / span 3; justify-content: flex-end; margin: 0; }
}

/* Le centre et le contact */
.colonne > .oreille { width: min(100%, 15rem); margin-inline: auto; color: var(--ab-terracotta); stroke-width: 2.5; }
.coordonnees ul { list-style: none; padding: 0; }
.section .coordonnees li { margin: 0; padding: .875rem 0; border-bottom: 1px solid var(--filet); }
.coordonnees li:first-child a { font-family: var(--ab-police-titre); font-variation-settings: var(--ab-reglages-titre);
  font-size: 1.75rem; }

/* Formulaire */
.formulaire { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; max-width: 32rem; }
.formulaire label, .formulaire legend { font-weight: 700; }
.formulaire input:not([type="radio"]), .formulaire select { width: 100%; min-height: 52px; padding: .6rem .9rem;
  border: 2px solid var(--ab-prune); border-radius: .75rem; background: var(--ab-blanc); color: var(--ab-prune);
  font: inherit; margin-bottom: .75rem; }
.formulaire fieldset { border: 0; padding: 0; margin: 0 0 .75rem; }
.choix { display: flex; align-items: center; gap: .6rem; min-height: 48px; font-weight: 400 !important; }
.choix input { width: 1.4rem; height: 1.4rem; accent-color: var(--ab-prune); }
.formulaire .bouton { justify-self: start; }
.note { font-size: 1.125rem; }
.aide { font-size: 1.125rem; margin-top: -.25rem; }
.piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.message { display: none; padding: 1rem 1.25rem; border: 2px solid var(--ab-terracotta); border-radius: .75rem; background: var(--ab-blanc); }
.message:target { display: block; }

/* Pied de page */
.pied { background: var(--ab-prune); color: var(--ab-creme); padding-block: 4rem 5.5rem; }
.pied a { color: inherit; }
.pied-grille { display: grid; gap: 2rem; }
.pied-logo { width: 10rem; margin-bottom: 1rem; }
.pied ul { list-style: none; padding: 0; margin: 0; }
.pied-titre { font-size: 1.25rem; margin: 0 0 .75rem; color: var(--ab-abricot); }
.mentions { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--filet-clair); font-size: var(--ab-legende); }
@media (min-width: 48rem) { .pied-grille { grid-template-columns: 1.2fr 1fr 1fr; } }

/* Appel fixé en bas de l'écran (mobile) */
.appel-fixe { position: fixed; inset: auto 0 0 0; z-index: 2; display: flex; align-items: center; justify-content: center;
  min-height: calc(3.5rem + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom);
  background: var(--ab-prune); color: var(--ab-creme); font-weight: 700; text-decoration: none;
  border-top: 1px solid rgba(251, 244, 236, .25); }
@media (min-width: 60rem) {
  html { scroll-padding-bottom: 0; }
  .pied { padding-bottom: 1.5rem; }
  .appel-fixe { display: none; }
}

/* Mouvement réduit et impression : tout est immobile, le fil est dessiné */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .fil-pret .fil path { stroke-dashoffset: 0; }
  .fil-pret .parcours::before { transform: none; }
}
@media print {
  .fil-pret .fil path { stroke-dashoffset: 0; }
  .fil-pret .parcours::before { transform: none; }
  .appel-fixe, .menu-bouton { display: none; }
}
