/* Auto-École Bourg Neuf — blanc, noir, orange.
   Sommaire : base · boutons · bandeau et entête · menu · héros · rubans · chiffres · promesses · formules
   · budget · parcours · manifeste · comparatif · galerie · stage · test de code · avis · parents et aides
   · FAQ · final · pied · pages intérieures · inscription · responsive */

:root {
  /*clio*/--clio-uri:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 84'%3E%3Cpath d='M48.04 9.72L48.17 7.85C50.78 7.85 53.9 8.6 56.02 9.47Z' fill='%23101011'/%3E%3Cpath d='M12.78 65.04C10.54 64.3 8.54 63.3 7.8 61.56C7.05 59.56 6.55 57.44 6.55 55.2C6.67 52.21 6.92 48.85 7.3 46.23C8.04 44.36 10.04 42.87 10.91 41C11.28 39.63 11.28 37.51 11.28 34.39L11.66 33.65L11.91 32.65L11.41 31.03L11.41 30.03L11.91 28.16C11.78 27.29 11.66 26.42 11.78 25.3C13.4 24.67 15.27 24.05 17.51 23.8C20.88 23.3 24.62 22.18 26.86 21.06C29.6 19.81 32.96 17.95 35.58 15.7C37.7 14.21 40.44 12.46 42.68 11.34C45.18 10.35 47.67 9.72 50.16 9.47C53.9 9.22 61.37 8.97 66.36 8.97C72.59 8.73 80.06 8.73 87.54 9.1C93.77 9.47 100 10.1 106.23 11.22C112.46 12.34 118.69 14.33 124.92 17.2C129.9 19.69 135.51 23.18 141.12 26.92C143.61 27.29 146.72 28.04 149.84 28.66C156.07 30.03 162.3 30.78 168.53 31.9C174.76 33.15 180.99 35.27 186.6 37.76C189.46 39.38 191.58 43.11 193.08 48.47C193.45 51.84 193.45 59.31 193.2 64.3C192.95 65.79 190.96 67.29 188.34 67.79C186.6 68.28 184.73 68.78 183.23 69.03L141.12 68.28L57.14 67.29Z' fill='%23d5d7da'/%3E%3Cpath d='M17.51 23.8L30.6 16.7L30.97 14.71C29.97 13.96 28.73 13.71 28.23 13.34C27.61 12.96 27.61 12.46 28.48 12.21C32.96 11.47 37.95 10.97 42.93 11.09L42.68 11.34C40.44 12.46 37.7 14.21 35.58 15.7C32.96 17.95 29.6 19.81 26.86 21.06C24.62 22.18 20.88 23.3 17.51 23.8Z' fill='%23101011'/%3E%3Cpath d='M54.64 57.44C75.08 53.83 107.48 53.33 140.87 56.57L140.87 68.28L57.14 67.29Z' fill='%23bcbfc3'/%3E%3Cpath d='M37.7 22.18C60.13 28.16 102.49 31.15 142.36 33.4C156.07 34.14 167.28 35.14 175.38 38.13C166.04 37.51 152.33 37.51 142.36 37.38C102.49 35.89 60.13 32.9 40.19 28.16Z' fill='%23f1f2f4'/%3E%3Cpath d='M57.14 65.54L141.12 66.54L141.12 68.28L57.14 67.29Z' fill='%231d1d20'/%3E%3Cpath d='M6.8 56.82C8.54 58.32 11.03 59.31 13.28 59.31L12.78 65.04C10.54 64.3 8.54 63.3 7.8 61.56C7.3 60.06 6.8 58.32 6.8 56.82Z' fill='%231d1d20'/%3E%3Cpath d='M182.98 67.54C186.6 67.04 190.96 65.79 193.2 62.8L193.2 64.3C192.95 65.79 190.96 67.29 188.34 67.79C186.6 68.28 184.73 68.78 183.23 69.03Z' fill='%231d1d20'/%3E%3Cpath d='M33.96 20.56C37.7 18.94 42.68 17.45 47.29 16.08C50.78 14.83 53.9 13.46 58.01 12.59C62 11.84 65.11 11.59 68.85 11.34C75.08 11.09 81.31 10.97 87.54 11.22C93.77 11.47 100 12.09 106.23 13.34C112.46 14.71 118.69 16.7 124.92 19.69C131.15 23.93 137.38 28.41 145.98 32.77C139.87 32.4 134.89 31.9 128.91 31.4C118.69 30.41 106.23 29.53 92.02 28.79C87.54 28.41 81.31 27.91 75.08 27.54C68.85 27.17 62.62 26.79 58.01 26.04C55.14 25.42 52.65 24.67 50.16 24.05C47.67 23.43 45.18 22.93 42.68 22.56C40.19 21.93 37.08 21.19 33.96 20.56Z' fill='%23101011'/%3E%3Cpath d='M36.2 20.56C39.57 19.19 43.31 17.95 46.92 16.95L48.29 22.56C46.42 22.31 44.55 21.93 42.93 21.68C40.81 21.31 38.32 20.94 36.2 20.56Z' fill='%2317191c'/%3E%3Cpath d='M51.41 14.96C54.52 13.83 56.39 13.34 58.63 12.96C66.36 11.84 73.83 11.59 80.31 11.72L83.55 27.79C76.33 27.42 67.6 26.92 58.63 25.92C56.39 25.55 54.52 25.17 53.02 24.67Z' fill='%2317191c'/%3E%3Cpath d='M88.04 12.71C96.26 12.84 103.74 13.71 109.97 15.2C116.2 16.95 121.8 19.69 126.41 22.18L129.4 30.9C121.18 30.41 107.48 29.53 93.15 28.66Z' fill='%2333383d'/%3E%3Cpath d='M128.66 22.68C133.64 25.67 139.25 29.41 144.23 32.52C139.87 32.15 134.89 31.78 130.78 31.4Z' fill='%2333383d'/%3E%3Cpath d='M100 13.46L109.97 15.33L103.74 29.41L93.15 28.66Z' fill='%23fff' opacity='.16'/%3E%3Cpath d='M113.08 16.33L116.82 17.95L110.22 29.78L107.48 29.53Z' fill='%23fff' opacity='.12'/%3E%3Cpath d='M42.68 22.68C41.19 24.42 40.69 26.92 40.81 29.41C41.19 33.4 42.93 38.13 44.05 41.62' fill='none' stroke='%237f8287' stroke-width='0.32' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M87.54 28.79C88.54 30.65 89.53 36.88 90.28 44.36C90.78 50.59 91.9 57.44 92.27 64.67' fill='none' stroke='%237f8287' stroke-width='0.32' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M141.24 32.9C143.11 36.88 143.61 41.87 143.36 45.61C142.86 51.84 141.12 59.31 140.37 65.79' fill='none' stroke='%237f8287' stroke-width='0.32' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M149.84 28.66L153.58 33.27C161.05 34.39 171.02 35.64 179.74 38.13' fill='none' stroke='%237f8287' stroke-width='0.32' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M27.98 34.39C27.98 31.03 28.73 30.41 30.22 30.41L36.45 30.65C38.07 30.78 38.7 31.9 38.82 33.77C38.95 36.26 38.7 38.38 36.7 38.63L30.22 38.63C28.48 38.63 27.98 37.51 27.98 34.39Z' fill='none' stroke='%237f8287' stroke-width='0.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M92.77 37.26L103.74 37.76C104.61 37.88 104.73 38.75 103.86 38.88L93.27 38.63C92.27 38.5 92.02 37.51 92.77 37.26Z' fill='%23f1f2f4' stroke='%237f8287' stroke-width='0.22'/%3E%3Cpath d='M185.72 54.45L190.09 48.1L193.2 50.34L193.32 63.05L191.33 63.92L188.71 58.81Z' fill='%23101011'/%3E%3Cpath d='M185.97 54.45L190.09 48.22L190.83 48.72L186.97 54.45L189.46 58.57L188.71 58.94Z' fill='%23fff'/%3E%3Cpath d='M175.38 38.38C179.74 38.13 184.73 39.13 187.84 40.87C188.96 41.62 189.46 42.49 189.21 43.11L188.71 45.11C185.97 45.36 183.48 44.98 181.61 44.36C179.12 43.11 177 40.87 175.38 38.38Z' fill='%23101011'/%3E%3Cpath d='M179.49 39.75C183.48 40 186.6 40.87 188.59 42.49L187.22 42.74C184.73 41.49 182.24 40.75 179.74 40.5Z' fill='%23fff'/%3E%3Cpath d='M11.28 30.28L13.65 29.16C16.52 28.91 19.01 29.04 20.63 29.41L24.99 31.9C25.24 32.52 24.87 32.9 23.99 32.9C20.88 33.02 18.39 33.15 16.52 33.4L13.65 34.14L11.78 33.52Z' fill='%23101011'/%3E%3Cpath d='M11.41 30.41L13.4 29.53L15.27 32.03L12.53 32.65Z' fill='%23fa6400'/%3E%3Cpath d='M12.87 65.04A21.93 21.93 0 1 1 56.23 67.29Z' fill='%23101011'/%3E%3Cpath d='M140.75 68.28A21.93 21.93 0 1 1 183.22 68.78Z' fill='%23101011'/%3E%3Cpath d='M16.22 65.79A18.69 18.69 0 1 1 52.85 67.54Z' fill='%23050506'/%3E%3Cpath d='M144.18 68.53A18.69 18.69 0 1 1 179.84 68.78Z' fill='%23050506'/%3E%3Cpath d='M128.91 31.53C129.16 27.54 131.15 25.67 133.64 25.67C136.38 25.67 137.75 27.54 137.88 29.66L138.87 31.9L138.87 35.14C138.87 36.14 138.13 36.64 137.13 36.64L135.14 36.51C133.64 36.51 132.89 35.64 132.89 34.39L132.89 32.9L129.9 32.65C129.16 32.52 128.91 32.03 128.91 31.53Z' fill='%23101011'/%3E%3Cpath d='M129.9 29.91C130.4 27.42 131.9 26.54 133.64 26.54C135.51 26.54 136.76 27.66 137.01 29.41Z' fill='%2334363a'/%3E%3Cpath d='M63.24 8.73L65.11 1.75C65.24 1.25 65.61 1 66.11 1L86.54 1C87.04 1 87.41 1.25 87.54 1.75L89.53 8.97Z' fill='%23101011' stroke='%23fff' stroke-width='0.37'/%3E%3Cg%3E%3Ccircle cx='34.71' cy='63.05' r='15.95' fill='%23101011'/%3E%3Ccircle cx='34.71' cy='63.05' r='14.2' fill='none' stroke='%232e2f33' stroke-width='0.37'/%3E%3Ccircle cx='34.71' cy='63.05' r='12.34' fill='%23141517' stroke='%23dcdee1' stroke-width='0.75'/%3E%3Cpath d='M35.19 60.1L33.95 51.32L39.12 52.15Z' fill='%234c4f54'/%3E%3Cpath d='M34.59 60.63L35.7 60.81L34.98 51.23L33.19 51.32Z' fill='%23dcdee1'/%3E%3Cpath d='M34.47 60.61L35.58 60.79L39.84 52.39L38.17 51.75Z' fill='%23dcdee1'/%3E%3Cpath d='M37.66 62.59L45.63 58.71L46.44 63.88Z' fill='%234c4f54'/%3E%3Cpath d='M36.97 62.19L37.14 63.3L46.03 59.65L45.4 57.99Z' fill='%23dcdee1'/%3E%3Cpath d='M36.95 62.07L37.12 63.18L46.43 64.63L46.53 62.85Z' fill='%23dcdee1'/%3E%3Cpath d='M36.06 65.72L42.22 72.1L37.55 74.46Z' fill='%234c4f54'/%3E%3Cpath d='M36.22 64.94L35.22 65.44L41.44 72.77L42.83 71.65Z' fill='%23dcdee1'/%3E%3Cpath d='M36.33 64.88L35.33 65.39L36.82 74.69L38.55 74.23Z' fill='%23dcdee1'/%3E%3Cpath d='M32.59 65.16L28.42 72.99L24.73 69.28Z' fill='%234c4f54'/%3E%3Cpath d='M33.38 65.07L32.59 64.28L27.54 72.46L29.04 73.43Z' fill='%23dcdee1'/%3E%3Cpath d='M33.47 65.16L32.68 64.37L24.3 68.66L25.26 70.16Z' fill='%23dcdee1'/%3E%3Cpath d='M32.05 61.69L23.32 60.14L25.7 55.49Z' fill='%234c4f54'/%3E%3Cpath d='M32.38 62.41L32.89 61.42L23.55 59.14L23.09 60.87Z' fill='%23dcdee1'/%3E%3Cpath d='M32.32 62.52L32.83 61.53L26.16 54.88L25.03 56.26Z' fill='%23dcdee1'/%3E%3Ccircle cx='34.71' cy='63.05' r='2.62' fill='%23202124' stroke='%23dcdee1' stroke-width='0.44'/%3E%3Ccircle cx='34.71' cy='63.05' r='0.87' fill='%23dcdee1'/%3E%3C/g%3E%3Cg%3E%3Ccircle cx='162.05' cy='63.05' r='15.95' fill='%23101011'/%3E%3Ccircle cx='162.05' cy='63.05' r='14.2' fill='none' stroke='%232e2f33' stroke-width='0.37'/%3E%3Ccircle cx='162.05' cy='63.05' r='12.34' fill='%23141517' stroke='%23dcdee1' stroke-width='0.75'/%3E%3Cpath d='M162.53 60.1L161.29 51.32L166.46 52.15Z' fill='%234c4f54'/%3E%3Cpath d='M161.94 60.63L163.04 60.81L162.32 51.23L160.54 51.32Z' fill='%23dcdee1'/%3E%3Cpath d='M161.81 60.61L162.92 60.79L167.18 52.39L165.52 51.75Z' fill='%23dcdee1'/%3E%3Cpath d='M165 62.59L172.98 58.71L173.78 63.88Z' fill='%234c4f54'/%3E%3Cpath d='M164.31 62.19L164.48 63.3L173.37 59.65L172.74 57.99Z' fill='%23dcdee1'/%3E%3Cpath d='M164.29 62.07L164.47 63.18L173.77 64.63L173.87 62.85Z' fill='%23dcdee1'/%3E%3Cpath d='M163.4 65.72L169.56 72.1L164.89 74.46Z' fill='%234c4f54'/%3E%3Cpath d='M163.56 64.94L162.56 65.44L168.78 72.77L170.17 71.65Z' fill='%23dcdee1'/%3E%3Cpath d='M163.67 64.88L162.67 65.39L164.17 74.69L165.89 74.23Z' fill='%23dcdee1'/%3E%3Cpath d='M159.93 65.16L155.77 72.99L152.08 69.28Z' fill='%234c4f54'/%3E%3Cpath d='M160.72 65.07L159.93 64.28L154.89 72.46L156.38 73.43Z' fill='%23dcdee1'/%3E%3Cpath d='M160.81 65.16L160.02 64.37L151.64 68.66L152.6 70.16Z' fill='%23dcdee1'/%3E%3Cpath d='M159.39 61.69L150.66 60.14L153.05 55.49Z' fill='%234c4f54'/%3E%3Cpath d='M159.72 62.41L160.23 61.42L150.89 59.14L150.43 60.87Z' fill='%23dcdee1'/%3E%3Cpath d='M159.66 62.52L160.17 61.53L153.5 54.88L152.37 56.26Z' fill='%23dcdee1'/%3E%3Ccircle cx='162.05' cy='63.05' r='2.62' fill='%23202124' stroke='%23dcdee1' stroke-width='0.44'/%3E%3Ccircle cx='162.05' cy='63.05' r='0.87' fill='%23dcdee1'/%3E%3C/g%3E%3C/svg%3E");/*fin-clio*/
  --blanc: #fff;
  --encre: #101011;
  --orange: #fa6400;
  --orange-2: #ff7d26;
  --orange-pale: #fff1e6;
  --sable: #f5f3ee;
  --ligne: #e5e2dc;
  --gris: #5b5955;
  --gris-2: #8b8882;
  --nuit: #1c1c1e;

  --f-affiche: 'Barlow Condensed', 'Arial Narrow', Impact, sans-serif;
  --f-titre: 'Barlow Semi Condensed', 'Arial Narrow', sans-serif;
  --f-texte: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --g: clamp(16px, 3.4vw, 52px);
  --r-s: 14px;
  --r-m: 22px;
  --r-l: 32px;
  --r-xl: 44px;
  --e: cubic-bezier(.22, 1, .36, 1);
  --entete: 72px;
  --s: clamp(76px, 10.5vw, 168px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
body {
  margin: 0;
  background: var(--blanc);
  color: var(--encre);
  font: 400 18px/1.55 var(--f-texte);
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'tnum' 0;
}
[hidden] { display: none !important; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, h4, p, ul, ol, figure, dl, dd, fieldset { margin: 0; padding: 0; border: 0; }
ul, ol { list-style: none; }
sup { font-size: .62em; line-height: 0; vertical-align: .42em; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--encre); outline-offset: 3px; border-radius: 4px; }
.fond-noir :focus-visible, .pied :focus-visible { outline-color: var(--orange); }
::selection { background: var(--orange); color: var(--encre); }

.evitement { position: absolute; left: -9999px; top: 0; z-index: 200; background: var(--encre); color: #fff; padding: 12px 20px; border-radius: 0 0 12px 0; }
.evitement:focus { left: 0; }
.visuel-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Tant que les animations ne sont pas prêtes, on cache ce qui va être révélé */
html.anim:not(.pret) [data-titre],
html.anim:not(.pret) [data-fade],
html.anim:not(.pret) [data-cascade] > *,
html.anim:not(.pret) [data-photo],
html.anim:not(.pret) .hero__ligne,
html.anim:not(.pret) .hero__bas > * { visibility: hidden; }

/* Mise en page */
.c { width: 100%; max-width: 1640px; margin-inline: auto; padding-inline: var(--g); }
.s { padding-block: var(--s); }
.s--serre { padding-block: calc(var(--s) * .6); }
.pt0 { padding-top: 0; }
.fond-sable { background: var(--sable); }
.fond-pale { background: var(--orange-pale); }
.fond-noir { background: var(--encre); color: #fff; }
.fond-orange { background: var(--orange); color: var(--encre); }
.panneau { border-radius: var(--r-xl); margin-inline: clamp(8px, 1.2vw, 20px); }

/* Titres */
.ta {
  font-family: var(--f-affiche);
  font-weight: 800;
  text-transform: uppercase;
  line-height: .9;
  letter-spacing: -.004em;
  text-wrap: balance;
}
.ta em { font-style: italic; color: var(--orange); }
.fond-orange .ta em, .sur-orange .ta em { color: var(--blanc); }
.ta--xl { font-size: clamp(66px, 13.2vw, 240px); line-height: .86; }
.ta--l { font-size: clamp(54px, 9.2vw, 164px); }
.ta--m { font-size: clamp(44px, 6.2vw, 108px); }
.ta--s { font-size: clamp(34px, 3.8vw, 64px); line-height: .96; }
.ta.ta--acc, .ph-hero__t .ta.ta--acc { line-height: 1.05; }
.ta--2l { font-size: clamp(40px, 12.6vw, 120px); }
.tb { font: 700 clamp(25px, 2.3vw, 36px)/1.08 var(--f-titre); }
.chapo { font-size: clamp(19px, 1.55vw, 24px); line-height: 1.42; font-weight: 500; }
.gris { color: var(--gris); }
.fond-noir .gris { color: #b7b4ae; }
.fond-orange .gris { color: var(--encre); }

.surt { display: inline-flex; align-items: center; gap: 12px; font: 600 clamp(18px, 1.4vw, 22px)/1.1 var(--f-titre); }
.surt::before { content: ''; flex: none; width: 53px; height: 6px; background: repeating-linear-gradient(90deg, var(--orange) 0 13px, transparent 13px 20px); }
.fond-orange .surt::before, .sur-orange .surt::before { background: repeating-linear-gradient(90deg, var(--encre) 0 13px, transparent 13px 20px); }

.tete { display: grid; gap: clamp(14px, 1.8vw, 26px); margin-bottom: clamp(36px, 5vw, 80px); }
.tete--2 { grid-template-columns: minmax(0, 1.55fr) minmax(0, .75fr); align-items: end; column-gap: clamp(24px, 5vw, 96px); }
.tete--2 .surt { grid-column: 1 / -1; }
@media (min-width: 1024px) {
  .tete--large { grid-template-columns: max-content minmax(0, 1fr); }
  .tete--large .ta { white-space: nowrap; }
  .ta--2l { font-size: clamp(54px, 9.2vw, 164px); }
}

.mot { display: inline-block; vertical-align: top; clip-path: inset(-.34em -.4em -.1em -.4em); }
.mot--ok { clip-path: none; }
/* La boîte déborde largement du mot : sans ça, Safari coupe les lettres italiques au bord du calque */
.mot__i { display: inline-block; padding: .26em .16em .16em .1em; margin: -.26em -.16em -.16em -.1em; }

/* Photos */
.ph { position: relative; overflow: hidden; border-radius: var(--r-l); background: var(--sable); isolation: isolate; }
.ph__z { position: absolute; inset: 0; transition: transform 1.2s var(--e); }
a:hover > .ph .ph__z, .ph:hover .ph__z { transform: scale(1.05); }
.ph img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; }

/* Boutons */
.boutons { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  height: 64px;
  padding: 0 9px 0 30px;
  border-radius: 999px;
  font: 700 clamp(20px, 1.45vw, 22px)/1 var(--f-titre);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  will-change: transform;
  transition: background-color .35s, color .35s, box-shadow .35s;
}
.btn__t { position: relative; display: block; overflow: hidden; height: 1.25em; line-height: 1.25em; }
.btn__t > span { display: block; transition: transform .55s var(--e); }
.btn__t > span + span { position: absolute; left: 0; top: 100%; }
.btn:hover .btn__t > span { transform: translateY(-100%); }
.btn__r { position: relative; flex: none; width: 46px; height: 46px; border-radius: 50%; overflow: hidden; transition: transform .55s var(--e); }
.btn__r svg { position: absolute; inset: 12px; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .55s var(--e); }
.btn__r svg + svg { transform: translateX(-46px); }
.btn:hover .btn__r svg { transform: translateX(46px); }
.btn:hover .btn__r svg + svg { transform: none; }
.btn--orange { background: var(--orange); color: var(--encre); }
.btn--orange .btn__r { background: var(--encre); color: var(--blanc); }
.btn--orange:hover { background: var(--orange-2); }
.btn--noir { background: var(--encre); color: var(--blanc); }
.btn--noir .btn__r { background: var(--orange); color: var(--encre); }
.btn--blanc { background: var(--blanc); color: var(--encre); }
.btn--blanc .btn__r { background: var(--orange); color: var(--encre); }
.btn--ligne { box-shadow: inset 0 0 0 2px currentColor; color: var(--encre); }
.btn--ligne .btn__r { background: var(--encre); color: var(--blanc); }
.fond-noir .btn--ligne { color: var(--blanc); }
.fond-noir .btn--ligne .btn__r { background: var(--blanc); color: var(--encre); }
.btn--petit { height: 52px; padding: 0 7px 0 22px; font-size: 19px; gap: 12px; }
.btn--petit .btn__r { width: 38px; height: 38px; }
.btn--petit .btn__r svg { inset: 9px; width: 20px; height: 20px; }
.btn--petit .btn__r svg + svg { transform: translateX(-38px); }
.btn--petit:hover .btn__r svg { transform: translateX(38px); }
.btn--petit:hover .btn__r svg + svg { transform: none; }
.btn[disabled] { opacity: .55; cursor: default; }

.lien { display: inline-flex; align-items: center; gap: 8px; font: 700 clamp(19px, 1.4vw, 21px)/1.2 var(--f-titre); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100%/100% 2px no-repeat; padding-bottom: 3px; transition: background-size .5s var(--e); }
.lien:hover { background-size: 0 2px; background-position: 100% 100%; }
.lien svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .5s var(--e); }
.lien:hover svg { transform: translateX(6px); }

.ic { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* Transition entre pages */
.volet { position: fixed; inset: 0; z-index: 300; background: var(--orange); display: none; align-items: center; justify-content: center; pointer-events: none; }
html.entree .volet { display: flex; }
.volet svg { width: min(46vw, 460px); color: var(--encre); }

/* Défilement générique (bandeau, rubans) */
.defile { overflow: hidden; white-space: nowrap; }
.defile__piste { display: inline-flex; will-change: transform; }
.defile__g { display: inline-flex; align-items: center; flex: none; }
html:not(.anim) .defile__piste { animation: defile 42s linear infinite; }
@keyframes defile { to { transform: translateX(-50%); } }

/* Bandeau */
.bandeau { display: block; position: relative; z-index: 90; background: var(--orange); color: var(--encre); text-decoration: none; font: 600 17px/38px var(--f-titre); height: 38px; }
.bandeau .defile__g > span { padding-inline: 22px; }
.bandeau b { font-weight: 700; }
.bandeau .sep { width: 28px; height: 3px; padding: 0; background: repeating-linear-gradient(90deg, var(--encre) 0 7px, transparent 7px 11px); }

/* Entête */
.entete { position: sticky; top: 10px; z-index: 80; margin: 10px var(--g) 0; transition: transform .35s cubic-bezier(.22, 1, .36, 1); }
.entete.suit { transition: none; }
.entete.cache { transform: translateY(calc(-100% - 22px)); }
.entete__pilule {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  height: var(--entete); padding: 0 10px 0 26px;
  background: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  border: 1px solid var(--ligne);
  border-radius: 999px;
}
.logo { display: inline-flex; flex-direction: column; text-decoration: none; line-height: .92; flex: none; }
.logo span { font: 700 13.5px/1 var(--f-titre); letter-spacing: .01em; }
.logo b { font: italic 800 28px/.95 var(--f-affiche); color: var(--orange); text-transform: uppercase; }
.pied .logo span { color: #fff; }
.nav { display: flex; gap: clamp(14px, 1.7vw, 30px); }
.nav a { position: relative; font: 600 clamp(17px, 1.3vw, 19px)/1 var(--f-titre); text-decoration: none; padding: 8px 0; }
.nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: repeating-linear-gradient(90deg, var(--orange) 0 9px, transparent 9px 14px); transform: scaleX(0); transform-origin: 0 50%; transition: transform .45s var(--e); }
.nav a:hover::after, .nav a[aria-current]::after { transform: scaleX(1); }
.entete__droite { display: flex; align-items: center; gap: 14px; flex: none; }
.tel { display: inline-flex; align-items: center; gap: 8px; font: 700 19px/1 var(--f-titre); text-decoration: none; white-space: nowrap; }
.burger { display: none; width: 52px; height: 52px; border-radius: 50%; background: var(--encre); color: #fff; position: relative; }
.burger i { position: absolute; left: 15px; right: 15px; height: 2.4px; background: currentColor; border-radius: 2px; transition: transform .45s var(--e), top .45s var(--e); }
.burger i:nth-child(1) { top: 20px; }
.burger i:nth-child(2) { top: 30px; }
.burger[aria-expanded="true"] i:nth-child(1) { top: 25px; transform: rotate(45deg); }
.burger[aria-expanded="true"] i:nth-child(2) { top: 25px; transform: rotate(-45deg); }

/* Menu plein écran */
.menu { position: fixed; inset: 0; z-index: 70; background: var(--orange); color: var(--encre); display: flex; flex-direction: column; gap: 14px; padding: 100px var(--g) calc(16px + env(safe-area-inset-bottom)); overflow-y: auto; transform: translateY(-100%); visibility: hidden; transition: transform .55s cubic-bezier(.22, 1, .36, 1), visibility 0s .55s; }
.menu.ouvert { transform: none; visibility: visible; transition: transform .55s cubic-bezier(.22, 1, .36, 1), visibility 0s; }
.menu nav { display: grid; }
.menu nav a { display: flex; align-items: center; min-height: 44px; overflow: hidden; font: italic 800 clamp(30px, 10.6vw, 50px)/1.18 var(--f-affiche); font-size: clamp(30px, min(10.6vw, 5.4svh), 50px); text-transform: uppercase; text-decoration: none; }
.menu nav a[aria-current] { color: #fff; }
.menu nav a span { display: block; transform: translateY(110%); transition: transform .6s cubic-bezier(.22, 1, .36, 1); }
.menu.ouvert nav a span { transform: none; }
.menu.ouvert nav a:nth-child(2) span { transition-delay: .05s; }
.menu.ouvert nav a:nth-child(3) span { transition-delay: .1s; }
.menu.ouvert nav a:nth-child(4) span { transition-delay: .15s; }
.menu.ouvert nav a:nth-child(5) span { transition-delay: .2s; }
.menu.ouvert nav a:nth-child(6) span { transition-delay: .25s; }
.menu.ouvert nav a:nth-child(7) span { transition-delay: .3s; }
.menu.ouvert nav a:nth-child(8) span { transition-delay: .35s; }
.menu.ouvert nav a:nth-child(9) span { transition-delay: .4s; }
.menu__bas { display: grid; grid-template-columns: 1fr 1.5fr; gap: 8px; margin-top: auto; }
.menu__bas a { display: flex; align-items: center; justify-content: center; gap: 8px; height: 56px; border-radius: 999px; font: 700 20px/1 var(--f-titre); text-decoration: none; }
.menu__bas a:first-child { background: #fff; }
.menu__bas a:last-child { background: var(--encre); color: #fff; }

/* Carte du bas (mobile) */
.barre { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 65; display: none; grid-template-columns: 1fr 1.5fr; gap: 8px; max-width: 560px; margin-inline: auto; padding: 8px; background: #fff; border-radius: 24px; box-shadow: 0 10px 34px rgba(16, 16, 17, .24), 0 0 0 1px rgba(16, 16, 17, .06); transform: translateY(calc(100% + 44px)); transition: transform .6s var(--e); }
.barre.visible { transform: none; }
.barre.au-clavier { transform: translateY(calc(100% + 44px)); }
.barre a { display: flex; align-items: center; justify-content: center; gap: 8px; height: 52px; border-radius: 999px; font: 700 20px/1 var(--f-titre); text-decoration: none; }
.barre a:first-child { box-shadow: inset 0 0 0 2px var(--encre); }
.barre a:last-child { background: var(--orange); }

/* Héros */
.hero { position: relative; }
.hero__haut { padding: clamp(14px, 1.7vw, 28px) var(--g) 0; }
.hero__titre { font-family: var(--f-affiche); font-weight: 800; text-transform: uppercase; font-size: min(23vw, 36.5vh); line-height: .83; letter-spacing: -.006em; }
.hero__ligne { display: flex; align-items: center; gap: .1em; white-space: nowrap; will-change: transform; }
.hero__ligne em { font-style: italic; color: var(--orange); }
.hero__m { display: inline-block; }
.pastille { position: relative; flex: 1 1 0; min-width: 0; height: .72em; border-radius: 999px; overflow: hidden; background: var(--sable); transform-origin: 0 50%; }
.pastille img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .9s; }
.pastille img.on { opacity: 1; }
.pastille--mobile { display: none; }
.hero__bas { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: clamp(20px, 3vw, 56px); align-items: center; padding-block: clamp(18px, 2.2vw, 34px) clamp(20px, 2.4vw, 38px); }
.hero__bas .chapo { max-width: 34em; }
.note { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; font: 600 18px/1.15 var(--f-titre); }
.note b { font: 800 44px/1 var(--f-affiche); }
.etoiles { display: inline-flex; gap: 2px; color: var(--orange); }
.etoiles svg { width: 16px; height: 16px; fill: currentColor; }

.hero__media { position: relative; height: 100vh; min-height: 620px; overflow: hidden; background: var(--encre); color: #fff; }
.hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 40%; will-change: transform; }
.hero__voile { position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 10, 10, .72), rgba(10, 10, 10, .08) 58%); }
.hero__slogans { position: absolute; left: var(--g); bottom: calc(var(--g) + 12px); font: italic 800 clamp(58px, 7.6vw, 148px)/.9 var(--f-affiche); text-transform: uppercase; }
.hero__slogans span { display: block; }

.ticket {
  position: absolute; right: var(--g); bottom: calc(var(--g) + 26px); z-index: 3;
  width: clamp(290px, 26vw, 390px);
  padding: 24px 26px 20px;
  background: #fff; color: var(--encre);
  border-radius: 26px;
  transform: rotate(-3.5deg);
  text-decoration: none;
  -webkit-mask: radial-gradient(circle 11px at 0 66%, transparent 97%, #000) left/51% 100% no-repeat, radial-gradient(circle 11px at 100% 66%, transparent 97%, #000) right/51% 100% no-repeat;
          mask: radial-gradient(circle 11px at 0 66%, transparent 97%, #000) left/51% 100% no-repeat, radial-gradient(circle 11px at 100% 66%, transparent 97%, #000) right/51% 100% no-repeat;
}
.ticket__nom { font: 700 23px/1.1 var(--f-titre); display: flex; justify-content: space-between; gap: 12px; }
.ticket__prix { font: 800 clamp(76px, 7.4vw, 112px)/.92 var(--f-affiche); margin-top: 4px; }
.ticket__note { font: 500 17px/1.3 var(--f-texte); }
.ticket__sep { border-top: 2px dashed var(--ligne); margin: 16px 0 12px; }
.ticket__suite { display: flex; align-items: center; justify-content: space-between; gap: 10px; font: 700 19px/1 var(--f-titre); }
.ticket__suite span { display: inline-flex; align-items: center; gap: 8px; }

/* Rubans */
.rubans { display: grid; overflow: clip; padding-block: clamp(46px, 6vw, 96px); }
.rubans .defile { grid-area: 1 / 1; align-self: center; }
.defile--noir { background: var(--encre); color: #fff; transform: rotate(-1.7deg) scale(1.03); z-index: 2; padding-block: clamp(10px, 1.1vw, 18px); }
.defile--orange { background: var(--orange); color: var(--encre); transform: rotate(1.5deg) scale(1.03); padding-block: clamp(6px, .7vw, 12px); }
.ruban__i { font: 800 clamp(38px, 5.2vw, 84px)/1 var(--f-affiche); text-transform: uppercase; padding-inline: .32em; }
.defile--orange .ruban__i { font-size: clamp(26px, 3vw, 46px); font-style: italic; }
.ruban__sep { width: clamp(70px, 7.4vw, 118px); color: var(--orange); flex: none; }
.defile--orange .ruban__sep { width: clamp(52px, 4.8vw, 72px); color: var(--encre); }

/* Chiffres */
.chiffres { display: grid; grid-template-columns: 1.4fr 1.02fr .82fr .62fr; border-top: 2px solid var(--encre); }
.chiffre { padding: clamp(18px, 2vw, 30px) clamp(14px, 1.6vw, 28px) 0 0; }
.chiffre + .chiffre { border-left: 2px solid var(--encre); padding-left: clamp(14px, 1.6vw, 28px); }
.chiffre b { display: block; font: 800 clamp(66px, 9.6vw, 172px)/.92 var(--f-affiche); white-space: nowrap; font-variant-numeric: tabular-nums; }
.chiffre b.orange { color: var(--orange); }
.chiffre p { margin-top: 10px; font-size: clamp(17px, 1.3vw, 20px); line-height: 1.32; max-width: 16em; }

/* Promesses */
.promesses { border-top: 2px solid var(--encre); }
.promesse { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(16px, 3vw, 48px); align-items: center; padding: clamp(18px, 2.2vw, 34px) clamp(0px, 1.4vw, 24px); border-bottom: 2px solid var(--encre); overflow: hidden; isolation: isolate; }
.promesse::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--orange); transform: translateY(101%); transition: transform .6s var(--e); }
.promesse h3 { font: 800 clamp(44px, 6.6vw, 118px)/1.02 var(--f-affiche); text-transform: uppercase; transition: transform .6s var(--e); }
.promesse p { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.35; font-weight: 500; }
.promesse__mini { display: none; }
@media (min-width: 1024px) {
  /* Ordinateur : quatre cartes, comme les autres grilles du site */
  .promesses { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 26px); border-top: 0; }
  .promesse { display: flex; flex-direction: column; justify-content: flex-start; align-items: stretch; gap: 10px; padding: 0; border-bottom: 0; overflow: visible; }
  .promesse::before { content: none; }
  .promesse__mini { display: block; order: -1; aspect-ratio: 4/3; margin-bottom: 6px; }
  .promesse h3 { font: 700 clamp(25px, 2.3vw, 36px)/1.08 var(--f-titre); text-transform: none; }
  .promesse p { font-size: clamp(17px, 1.3vw, 20px); color: var(--gris); }
  .stage__g h1.ta { font-size: clamp(54px, 10.4vw, 186px); line-height: .88; }
  /* Le titre des questions tient sur deux lignes dans sa colonne */
  .faq__t .ta { font-size: clamp(44px, 4.6vw, 84px); }
}

/* Formules : cartes empilées */
.offres__pile { display: grid; gap: clamp(16px, 2vw, 28px); }
.offre { position: sticky; top: 92px; }
.offre__carte { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); min-height: min(720px, calc(100vh - 118px)); border-radius: var(--r-xl); overflow: hidden; transform-origin: 50% 0; will-change: transform; }
.offre--orange .offre__carte { background: var(--orange); color: var(--encre); }
.offre--sable .offre__carte { background: var(--sable); }
.offre--noir .offre__carte { background: var(--encre); color: #fff; }
.offre__texte { display: flex; flex-direction: column; justify-content: space-between; gap: clamp(20px, 2.4vw, 36px); padding: clamp(26px, 3.4vw, 58px); }
.offre__haut { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; font: 600 clamp(19px, 1.5vw, 23px)/1.15 var(--f-titre); }
.offre__nom { font: 800 clamp(44px, 5.4vw, 92px)/1.04 var(--f-affiche); text-transform: uppercase; margin-top: 8px; }
.offre__prix { font: 800 clamp(88px, 12vw, 212px)/.84 var(--f-affiche); white-space: nowrap; }
.offre--noir .offre__prix { color: var(--orange); }
.offre__note { font: 600 clamp(18px, 1.5vw, 23px)/1.25 var(--f-titre); margin-top: 8px; }
.coches { display: grid; gap: 7px; font-size: clamp(17px, 1.3vw, 20px); line-height: 1.3; font-weight: 500; }
.coches li { display: flex; gap: 10px; align-items: flex-start; }
.coches .ic { margin-top: 1px; }
.offre__photo { position: relative; min-height: 340px; border-radius: 0; }
.offre__photo img { top: -8%; }

/* Budget */
.budget { padding: clamp(32px, 5vw, 88px) clamp(20px, 4vw, 72px); }
.budget__g { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 110px); align-items: center; }
.simu { background: #fff; border-radius: var(--r-l); padding: clamp(22px, 3vw, 44px); }
.simu__l { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font: 600 clamp(19px, 1.5vw, 23px)/1.15 var(--f-titre); }
.simu__l output { font: 800 clamp(40px, 3.6vw, 56px)/1 var(--f-affiche); }
.simu__total { font: 800 clamp(92px, 11vw, 186px)/.9 var(--f-affiche); font-variant-numeric: tabular-nums; margin-top: 18px; white-space: nowrap; }
.simu__note { font-size: 16px; color: var(--gris); margin-top: 8px; }
.route-range { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 64px; margin-top: 8px; background: transparent; cursor: grab; --p: 0%; }
.route-range:active { cursor: grabbing; }
.route-range::-webkit-slider-runnable-track { height: 16px; border-radius: 8px; background: repeating-linear-gradient(90deg, #fff 0 16px, transparent 16px 28px) center/100% 2px no-repeat, linear-gradient(90deg, var(--orange) var(--p), var(--encre) var(--p)); }
.route-range::-moz-range-track { height: 16px; border-radius: 8px; background: repeating-linear-gradient(90deg, #fff 0 16px, transparent 16px 28px) center/100% 2px no-repeat, linear-gradient(90deg, var(--orange) var(--p), var(--encre) var(--p)); }
.route-range::-webkit-slider-thumb { -webkit-appearance: none; width: 92px; height: 46px; margin-top: -32px; border: 0; background: var(--clio-uri) center/contain no-repeat; }
.route-range::-moz-range-thumb { width: 92px; height: 46px; border: 0; border-radius: 0; background: var(--clio-uri) center/contain no-repeat; transform: translateY(-14px); }
/* Simulateur : une vraie voiture dessinée sur une route qu'on attrape partout, à la souris comme au doigt.
   Le curseur natif reste invisible (sur iPhone, Safari lui ajoute un fond blanc et une ombre) */
.route { position: relative; display: block; height: 92px; margin-top: 6px; overflow: hidden; touch-action: pan-y; cursor: grab; --t: 0; }
.route.prise { cursor: grabbing; }
.route__piste { position: absolute; left: 0; right: 0; bottom: 12px; height: 16px; border-radius: 8px; background: repeating-linear-gradient(90deg, #fff 0 16px, transparent 16px 28px) center/100% 2px no-repeat, linear-gradient(90deg, var(--orange) calc(48px + var(--t) * (100% - 96px)), var(--encre) 0); }
.route__auto { position: absolute; left: calc(var(--t) * (100% - 96px)); bottom: 20px; width: 96px; height: auto; max-width: none; color: var(--encre); pointer-events: none; }
.route-range { position: absolute; inset: 0; height: 100%; margin: 0; opacity: 0; pointer-events: none; }
.route:has(input:focus-visible) { outline: 3px solid var(--encre); outline-offset: 4px; border-radius: 12px; }
/* Le signal qui dit qu'on peut la bouger, devant la voiture, jusqu'au premier geste */
.route__aide { position: absolute; left: calc(var(--t) * (100% - 96px) + 106px); bottom: 34px; display: flex; align-items: center; gap: 5px; font: 600 17px/1 var(--f-titre); color: var(--encre); white-space: nowrap; pointer-events: none; transition: opacity .45s; }
.route__aide i { width: 9px; height: 9px; margin-left: 2px; border: solid var(--orange); border-width: 0 3px 3px 0; transform: rotate(-45deg); animation: chevron 1.3s ease-in-out infinite; }
.route__aide i:first-of-type { margin-left: 8px; }
.route__aide i:nth-of-type(2) { animation-delay: .15s; }
.route__aide i:nth-of-type(3) { animation-delay: .3s; }
@keyframes chevron { 0%, 100% { opacity: .2; } 50% { opacity: 1; } }
.route.touche .route__aide { opacity: 0; }

.paiement { margin-top: clamp(40px, 6vw, 96px); }
.paiement__route { position: relative; height: 18px; border-radius: 9px; background: var(--encre); }
.paiement__rempli { position: absolute; inset: 0; border-radius: 9px; background: var(--orange); transform: scaleX(var(--a, 1)); transform-origin: 0 50%; }
.paiement__route::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #fff 0 18px, transparent 18px 34px) center/100% 2px no-repeat; }
.paiement__clio { position: absolute; left: 0; bottom: 10px; width: clamp(96px, 9.4vw, 150px); color: var(--encre); z-index: 2; transform: translateX(var(--x, 0)); }
.paiement__bornes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 18px; }
.borne { padding-right: 12px; }
.borne:nth-child(2) { text-align: center; padding: 0 6px; }
.borne:nth-child(3) { text-align: right; padding: 0 0 0 12px; }
.borne b { display: block; font: 800 clamp(56px, 7.6vw, 128px)/.92 var(--f-affiche); }
.borne span { font: 600 clamp(17px, 1.5vw, 23px)/1.2 var(--f-titre); }

/* Parcours */
.parcours { position: relative; overflow: hidden; background: var(--blanc); }
.parcours__piste { position: relative; display: flex; align-items: stretch; gap: clamp(24px, 3vw, 48px); width: max-content; height: 100vh; min-height: 640px; padding: 100px var(--g) 170px; will-change: transform; }
.parcours__titre { font-size: clamp(54px, 7.4vw, 132px); white-space: nowrap; }
.parcours__intro { width: max-content; padding-right: clamp(10px, 2vw, 40px); display: flex; flex-direction: column; justify-content: center; gap: 20px; flex: none; }
.etape { flex: none; width: clamp(360px, 33vw, 560px); display: flex; flex-direction: column; gap: 16px; }
.etape:nth-of-type(even) { padding-top: clamp(0px, 4vh, 44px); }
.etape:nth-of-type(odd) { padding-bottom: clamp(0px, 4vh, 44px); }
.etape .ph { flex: 1 1 0; min-height: 0; }
.etape__l { display: flex; gap: 16px; align-items: flex-start; }
.etape__n { font: italic 800 clamp(60px, 5.6vw, 92px)/.84 var(--f-affiche); color: var(--orange); }
.etape h3 { font: 700 clamp(27px, 2.3vw, 36px)/1.04 var(--f-titre); }
.etape p { font-size: 18px; line-height: 1.36; margin-top: 4px; color: var(--gris); }
.parcours__fin { flex: none; width: min(58vw, 860px); display: flex; flex-direction: column; justify-content: center; gap: 24px; padding-left: clamp(0px, 4vw, 70px); }
.parcours__svg { position: absolute; left: 0; bottom: 0; height: 170px; pointer-events: none; overflow: visible; }
.parcours__v { display: none; }

/* Sans animation (mouvement réduit, bibliothèque absente) : le parcours se fait au doigt ou à la molette */
@media (min-width: 1024px) {
  html:not(.anim) .parcours { overflow-x: auto; }
  html:not(.anim) .parcours__piste { padding-bottom: 60px; }
  html:not(.anim) .parcours__svg { display: none; }
}

/* Manifeste */
.manifeste__t { font: 800 clamp(50px, 8.9vw, 150px)/.93 var(--f-affiche); text-transform: uppercase; }
.fw { color: #dfdcd6; transition: none; }
.manifeste__t em { font-style: italic; }
.manifeste__ph { display: inline-block; vertical-align: middle; width: 1.75em; height: .72em; margin: -.06em .08em 0; border-radius: 999px; overflow: hidden; position: relative; }
.manifeste__ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Comparatif */
.vs { display: grid; }
.vs__t, .vs__l { display: grid; grid-template-columns: minmax(0, 1fr) clamp(180px, 19vw, 310px) minmax(0, 1fr); align-items: stretch; }
.vs__h { padding: clamp(20px, 2.4vw, 38px) clamp(20px, 2.6vw, 44px); font: italic 800 clamp(34px, 4vw, 72px)/1 var(--f-affiche); text-transform: uppercase; }
.vs__h small { display: block; margin-bottom: 8px; font: 600 clamp(17px, 1.3vw, 20px)/1.2 var(--f-titre); text-transform: none; }
.vs__h--a { background: var(--orange); color: var(--encre); border-radius: var(--r-l) var(--r-l) 0 0; }
.vs__h--b { background: #e4e0d8; color: var(--encre); border-radius: var(--r-l) var(--r-l) 0 0; }
.vs__mid { display: grid; place-items: center; }
.vs__mid b { display: grid; place-items: center; width: clamp(72px, 7.6vw, 124px); aspect-ratio: 1; border-radius: 50%; background: var(--encre); color: #fff; font: italic 800 clamp(32px, 3.4vw, 56px)/1 var(--f-affiche); }
.vs__a, .vs__b { display: flex; align-items: center; gap: 12px; padding: clamp(16px, 1.6vw, 26px) clamp(20px, 2.6vw, 44px); font-size: clamp(18px, 1.45vw, 22px); line-height: 1.25; }
.vs__a { background: var(--encre); color: #fff; font-weight: 600; border-top: 1px solid rgba(255, 255, 255, .16); }
.vs__b { background: var(--sable); color: #3f3d39; border-top: 1px solid rgba(16, 16, 17, .1); }
.vs__q { display: grid; place-items: center; text-align: center; padding: 10px clamp(12px, 1.4vw, 22px); font: 700 clamp(19px, 1.65vw, 27px)/1.1 var(--f-titre); border-top: 1px solid var(--ligne); }
.vs__l:last-child .vs__a, .vs__l:last-child .vs__b { border-radius: 0 0 var(--r-l) var(--r-l); }
.vs__a .ic { color: var(--orange); }
.vs__b .ic { color: var(--gris-2); }
.vs__a .ic path { stroke-dasharray: 30; stroke-dashoffset: 0; }

/* Galerie */
.galerie { overflow: clip; padding-block: var(--s); }
.galerie__rang { display: flex; gap: clamp(10px, 1.2vw, 20px); width: max-content; will-change: transform; }
.galerie__rang + .galerie__rang { margin-top: clamp(10px, 1.2vw, 20px); }
.galerie__rang .ph { flex: none; width: clamp(250px, 31vw, 560px); aspect-ratio: 3/2; border-radius: var(--r-m); }
.galerie__rang .ph img { top: 0; height: 100%; }
.galerie__titre { padding: clamp(36px, 5vw, 80px) var(--g); display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: clamp(20px, 5vw, 90px); align-items: end; max-width: 1640px; margin-inline: auto; }
.communes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.communes li { font: 600 18px/1 var(--f-titre); padding: 10px 16px; border-radius: 999px; background: var(--sable); }

/* Stage */
html:not(.anim) .morph { background: var(--orange); }
.morph .ta em { color: var(--blanc); }
.morph .surt::before { background: repeating-linear-gradient(90deg, var(--encre) 0 13px, transparent 13px 20px); }
.stage__g { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(30px, 5vw, 90px); align-items: center; }
.stage__jours { display: flex; align-items: flex-end; gap: 18px; margin-top: 12px; }
.compte { position: relative; display: inline-grid; place-items: center; width: clamp(150px, 16vw, 260px); aspect-ratio: 1; border-radius: 50%; background: var(--encre); color: #fff; text-align: center; flex: none; }
.compte b { display: block; font: 800 clamp(66px, 7.6vw, 124px)/.9 var(--f-affiche); }
.compte b em { font-style: italic; color: var(--orange); }
.compte > div > span { font: 600 clamp(16px, 1.3vw, 20px)/1.1 var(--f-titre); }
.dates { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(8px, 1vw, 14px); margin-top: clamp(24px, 3vw, 44px); }
.date { background: #fff; color: var(--encre); border-radius: var(--r-m); padding: clamp(12px, 1.4vw, 22px); }
.date b { display: block; font: 800 clamp(58px, 7vw, 118px)/.88 var(--f-affiche); }
.date span { font: 600 clamp(17px, 1.4vw, 21px)/1.1 var(--f-titre); }
.stage__liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; margin-top: clamp(24px, 3vw, 44px); font-size: clamp(18px, 1.4vw, 21px); font-weight: 600; line-height: 1.25; }
.stage__liste li { display: flex; gap: 10px; }
.stage__prix { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; margin-top: clamp(26px, 3.4vw, 50px); }
.stage__prix strong { font: 800 clamp(70px, 8vw, 132px)/.86 var(--f-affiche); }
.stage__prix p { font: 600 clamp(19px, 1.5vw, 23px)/1.18 var(--f-titre); max-width: 14em; }
.eventail { position: relative; aspect-ratio: 4/5; max-width: 620px; margin-inline: auto; width: 100%; }
.eventail .ph { position: absolute; width: 72%; aspect-ratio: 4/5; border-radius: var(--r-l); box-shadow: 0 0 0 8px #fff; }
.eventail .ph img { top: 0; height: 100%; }
.eventail .ph:nth-child(1) { left: 0; top: 2%; transform: rotate(-8deg); }
.eventail .ph:nth-child(2) { right: 0; top: 14%; transform: rotate(7deg); }
.eventail .ph:nth-child(3) { left: 14%; top: 28%; transform: rotate(-2deg); }

/* Test de code */
.test-zone { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 90px); align-items: center; }
.test { background: #fff; color: var(--encre); border-radius: var(--r-l); padding: clamp(22px, 3vw, 46px); min-height: 460px; display: flex; flex-direction: column; }
.test__tete { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 600 19px/1 var(--f-titre); }
.test__points { display: flex; gap: 5px; }
.test__points i { width: 26px; height: 6px; border-radius: 3px; background: var(--ligne); transition: background-color .3s; }
.test__points i.ok { background: var(--orange); }
.test__points i.ko { background: var(--encre); }
.test__points i.ici { background: var(--gris-2); }
.test__question { font: 700 clamp(29px, 3vw, 46px)/1.06 var(--f-titre); margin-top: clamp(16px, 2vw, 26px); }
.test__reponses { display: grid; gap: 8px; margin-top: clamp(16px, 2vw, 26px); }
.test__reponse { display: flex; gap: 14px; align-items: center; width: 100%; min-height: 62px; padding: 8px 20px 8px 8px; text-align: left; font: 600 clamp(19px, 1.45vw, 22px)/1.15 var(--f-titre); border-radius: 18px; background: var(--sable); transition: background-color .3s, color .3s, transform .4s var(--e); }
.test__reponse i { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: #fff; font: 800 26px/1 var(--f-affiche); font-style: normal; }
.test__reponse:not([disabled]):hover { transform: translateX(8px); background: var(--orange-pale); }
.test__reponse.est-juste { background: var(--orange); color: var(--encre); }
.test__reponse.est-fausse { background: var(--encre); color: #fff; }
.test__reponse.est-fausse i { color: var(--encre); }
.test__reponse[disabled] { cursor: default; }
.test__bas { margin-top: auto; padding-top: 16px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; }
.test__retour { font-size: 18px; line-height: 1.35; flex: 1 1 260px; }
.test__retour strong { font-weight: 700; }
.test__score { font: 800 clamp(120px, 15vw, 240px)/.86 var(--f-affiche); margin-top: 14px; }
.test__score em { font-style: italic; color: var(--orange); }

/* Avis */
.avis__g { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(30px, 5vw, 90px); align-items: center; }
.avis__note { font: 800 clamp(170px, 25vw, 440px)/.8 var(--f-affiche); font-variant-numeric: tabular-nums; }
.avis__etoiles { display: flex; gap: clamp(4px, .6vw, 10px); color: var(--orange); margin-top: clamp(34px, 4.8vw, 84px); }
.avis__etoiles svg { width: clamp(36px, 4.6vw, 76px); height: clamp(36px, 4.6vw, 76px); fill: currentColor; }
.themes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(10px, 1.2vw, 18px); }
.theme { border-radius: var(--r-l); padding: clamp(20px, 2.4vw, 36px); min-height: clamp(190px, 18vw, 290px); display: flex; flex-direction: column; justify-content: space-between; gap: 18px; transition: transform .6s var(--e); }
.theme:nth-child(1) { background: var(--orange); transform: rotate(-1.4deg); }
.theme:nth-child(2) { background: var(--sable); transform: rotate(1.2deg) translateY(16px); }
.theme:nth-child(3) { background: var(--encre); color: #fff; transform: rotate(1deg); }
.theme:nth-child(4) { background: var(--orange-pale); transform: rotate(-1deg) translateY(16px); }
.theme:hover { transform: none; }
.theme b { font: 800 clamp(34px, 3.4vw, 58px)/.96 var(--f-affiche); text-transform: uppercase; }
.theme p { font-size: 18px; line-height: 1.32; }

/* Parents et aides */
.duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 22px); }
.duo__b { border-radius: var(--r-xl); overflow: hidden; display: flex; flex-direction: column; }
.duo__t { padding: clamp(24px, 3.4vw, 56px); display: flex; flex-direction: column; gap: 18px; flex: 1; }
.duo__ph { position: relative; height: clamp(240px, 26vw, 440px); border-radius: 0; flex: none; }
.aides-q { display: grid; gap: 14px; }
.aides-q legend { font: 700 clamp(21px, 1.7vw, 26px)/1.1 var(--f-titre); margin-bottom: 8px; padding: 0; }
.puces { display: flex; flex-wrap: wrap; gap: 8px; }
.puce { position: relative; display: inline-flex; align-items: center; min-height: 50px; padding: 0 20px; border-radius: 999px; font: 600 19px/1.1 var(--f-titre); box-shadow: inset 0 0 0 2px currentColor; cursor: pointer; transition: background-color .3s, color .3s, transform .4s var(--e); }
.puce:hover { transform: translateY(-2px); }
.puce input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.puce:has(input:checked) { background: var(--orange); color: var(--encre); box-shadow: none; }
.puce:has(input:focus-visible) { outline: 3px solid var(--encre); outline-offset: 2px; }
.fond-noir .puce:has(input:focus-visible) { outline-color: var(--orange); }
.aides-r { display: grid; gap: 2px; margin-top: 8px; }
.aides-r li { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, .24); font-size: 18px; line-height: 1.25; }
.fond-sable .aides-r li, .fond-blanc .aides-r li { border-color: var(--ligne); }
.aides-r strong { flex: none; font: 800 32px/1 var(--f-affiche); color: var(--orange); white-space: nowrap; }
.aides-note { font-size: 16px; line-height: 1.35; opacity: .8; }

/* FAQ */
.faq__g { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 5vw, 90px); align-items: start; }
.faq__t { position: sticky; top: 110px; display: grid; gap: 18px; }
.qs { border-top: 2px solid var(--encre); }
.q { border-bottom: 2px solid var(--encre); }
.q__b { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 20px; padding: clamp(16px, 1.7vw, 24px) 0; text-align: left; font: 700 clamp(23px, 2vw, 32px)/1.08 var(--f-titre); }
.q__p { position: relative; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--sable); transition: background-color .35s, transform .6s var(--e); }
.q__p::before, .q__p::after { content: ''; position: absolute; left: 13px; right: 13px; top: 21px; height: 2.4px; background: var(--encre); border-radius: 2px; transition: transform .6s var(--e); }
.q__p::after { transform: rotate(90deg); }
.q__b:hover .q__p { background: var(--orange); }
.q.ouvert .q__p { background: var(--orange); transform: rotate(180deg); }
.q.ouvert .q__p::after { transform: rotate(0); }
.q__r { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--e); }
html:not(.js) .q__r, .q.ouvert .q__r { grid-template-rows: 1fr; }
.q__r > div { overflow: hidden; min-height: 0; visibility: hidden; transition: visibility .6s; }
html:not(.js) .q__r > div, .q.ouvert .q__r > div { visibility: visible; }
.q__r p { padding: 0 60px clamp(18px, 2vw, 28px) 0; font-size: clamp(18px, 1.35vw, 21px); line-height: 1.45; }
.q.masque { display: none; }

/* Final */
.final { position: relative; }
.final__cadre { position: relative; height: 100vh; min-height: 640px; overflow: hidden; color: #fff; background: var(--encre); display: flex; flex-direction: column; justify-content: flex-end; }
.final__cadre img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; }
.final__voile { position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 10, 10, .78), rgba(10, 10, 10, .12) 62%); }
.final__t { position: relative; padding: var(--g); display: grid; gap: clamp(16px, 2vw, 30px); padding-bottom: calc(var(--g) + 12px); }
.final__t .ta em { color: var(--orange); }
.final__b { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 18px 40px; }
.final__b address { font-style: normal; font: 600 clamp(19px, 1.5vw, 23px)/1.25 var(--f-titre); }

/* Pied */
.pied { background: var(--encre); color: #fff; overflow: clip; margin-top: -1px; padding-top: clamp(50px, 6vw, 96px); padding-bottom: 6px; }
.pied__g { display: grid; grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr)); gap: clamp(26px, 4vw, 70px); }
.pied h2 { font: 600 18px/1.1 var(--f-titre); color: #b7b4ae; margin-bottom: 16px; }
.pied li { margin-bottom: 8px; }
.pied a { text-decoration: none; }
.pied__g a:hover { color: var(--orange); }
.pied__g li a { font: 600 clamp(19px, 1.4vw, 21px)/1.2 var(--f-titre); }
.pied__adresse { display: grid; gap: 14px; font-size: 18px; line-height: 1.4; }
.pied__adresse .pied__tel { font: 800 clamp(42px, 4.4vw, 76px)/.98 var(--f-affiche); color: var(--orange); }
.pied__geant { overflow: hidden; margin-top: clamp(36px, 5vw, 80px); }
.pied__geant svg { display: block; width: 100%; height: auto; }
.pied__geant text { font: italic 800 232px var(--f-affiche); fill: var(--orange); }
.pied__leg { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 28px; padding-block: 20px 26px; color: #b7b4ae; font-size: 16px; }
.pied__leg a { text-decoration: underline; text-underline-offset: 3px; }

/* Pages intérieures */
.ph-hero { padding-top: clamp(26px, 3.4vw, 60px); }
html:has(> body.p-stage-code) { background-color: var(--orange); }
.p-stage-code .entete__pilule { background: #fff; }
.ph-hero--sous-entete { margin-top: calc(-10px - var(--entete)); padding-top: calc(10px + var(--entete) + clamp(26px, 3.4vw, 60px)); }
.ph-hero__g { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(26px, 4vw, 70px); align-items: end; }
.ph-hero__t { display: grid; gap: clamp(16px, 2vw, 30px); padding-bottom: clamp(0px, 2vw, 34px); }
.ph-hero__p { aspect-ratio: 4/5; max-height: calc(100vh - 170px); width: 100%; }
.ph-hero__t .ta--l { font-size: clamp(54px, 10.4vw, 186px); line-height: .88; }
.ph-hero--large .ph-hero__t { max-width: none; padding-bottom: clamp(24px, 3vw, 46px); }
.ph-hero__large { height: min(84vh, 56vw); min-height: 340px; margin-inline: var(--g); border-radius: var(--r-xl); }

.mosa { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(10px, 1.2vw, 20px); }
.mosa .ph { height: 100%; }
.mosa.mosa--court > * { min-height: 0; }
.mosa > * { min-height: clamp(220px, 26vw, 470px); }
.m-3 { grid-column: span 3; }
.m-4 { grid-column: span 4; }
.m-5 { grid-column: span 5; }
.m-6 { grid-column: span 6; }
.m-7 { grid-column: span 7; }
.m-8 { grid-column: span 8; }
.bloc { border-radius: var(--r-l); padding: clamp(22px, 2.6vw, 42px); display: flex; flex-direction: column; justify-content: space-between; gap: 16px; }
.bloc b.gros { font: 800 clamp(66px, 8vw, 138px)/.88 var(--f-affiche); }

.detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 90px); align-items: center; }
.detail--inv .ph { order: 2; }
.detail .ph { aspect-ratio: 5/4; }
.detail__t { display: grid; gap: 18px; }

.lignes-prix { border-top: 2px solid var(--encre); }
.ligne-prix { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: clamp(12px, 1.3vw, 20px) 0; border-bottom: 1px solid var(--ligne); font-size: clamp(18px, 1.4vw, 21px); line-height: 1.3; }
.ligne-prix strong { font: 800 clamp(30px, 2.7vw, 44px)/1 var(--f-affiche); white-space: nowrap; }
.ligne-prix--total { border-bottom: 2px solid var(--encre); font: 700 clamp(22px, 2vw, 30px)/1.1 var(--f-titre); }
.ligne-prix--total strong { font-size: clamp(54px, 6vw, 100px); }

.grille-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 22px); }
.grille-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 22px); }
.grille-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 22px); }
.carte-photo { display: flex; flex-direction: column; gap: 14px; text-decoration: none; }
.carte-photo .ph { aspect-ratio: 4/3; }
.logo-tuile { background: #fff; box-shadow: inset 0 0 0 1px var(--ligne); }
.logo-tuile img, .ph.logo-tuile img { position: absolute; left: 22%; top: 18%; width: 56%; height: 64%; object-fit: contain; }
.carte-photo p { color: var(--gris); font-size: 18px; line-height: 1.36; }
.fond-noir .carte-photo p { color: #b7b4ae; }

.tarif { display: flex; flex-direction: column; justify-content: space-between; gap: 22px; border-radius: var(--r-l); padding: clamp(22px, 2.6vw, 42px); }
.tarif__nom { font: 800 clamp(38px, 3.6vw, 62px)/.94 var(--f-affiche); text-transform: uppercase; }
.tarif__prix { font: 800 clamp(84px, 8.4vw, 148px)/.86 var(--f-affiche); }

.recherche { position: relative; }
.recherche input { width: 100%; height: 66px; padding: 0 22px 0 58px; border-radius: 999px; border: 2px solid var(--encre); background: #fff; font: 600 21px/1 var(--f-titre); }
.recherche input::placeholder { color: var(--gris); }
.recherche .ic { position: absolute; left: 22px; top: 22px; }
.filtres { display: flex; flex-wrap: wrap; gap: 8px; }
.faq-vide { font-size: 20px; padding: 26px 0; }

.carte-map { position: relative; height: clamp(440px, 46vw, 640px); border-radius: var(--r-xl); overflow: hidden; background: var(--sable); }
.plan { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.c-r { font-family: var(--f-titre); font-weight: 600; fill: var(--gris-2); }
.c-l { font-family: var(--f-titre); font-weight: 700; font-size: 21px; fill: #3a3936; }
.c-l circle { fill: var(--encre); }
.c-n1 { font-family: var(--f-affiche); font-weight: 800; font-size: 22px; fill: #fff; letter-spacing: .02em; text-transform: uppercase; }
.c-n2 { font-family: var(--f-affiche); font-weight: 800; font-style: italic; font-size: 46px; fill: var(--orange); text-transform: uppercase; }
.c-n3 { font-family: var(--f-texte); font-weight: 500; font-size: 17px; fill: #fff; }
.carte-map__bas { position: absolute; inset: auto clamp(14px, 2vw, 30px) clamp(14px, 2vw, 30px); display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; pointer-events: none; }
.carte-map__bas a { pointer-events: auto; }
.carte-map__osm { padding: 3px 9px; border-radius: 8px; background: rgba(255, 255, 255, .86); color: var(--gris); font-size: 13px; text-decoration: none; }
.contact-g { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(24px, 4vw, 70px); align-items: start; }
.contact-tels { display: grid; gap: 4px; }
.contact-tels a { font: 800 clamp(52px, 6.8vw, 116px)/.96 var(--f-affiche); text-decoration: none; transition: color .3s; }
.contact-tels a:hover { color: var(--orange); }

.grande-clio { position: relative; overflow: hidden; }
.grande-clio__route { position: relative; height: 26px; background: var(--orange); }
.grande-clio__route::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #fff 0 44px, transparent 44px 80px) center/100% 3px no-repeat; }
.grande-clio__auto { display: block; width: clamp(320px, 54vw, 960px); margin-bottom: calc(clamp(320px, 54vw, 960px) * -.0255); color: var(--encre); will-change: transform; }

.reussite { display: grid; place-items: center; text-align: center; gap: 14px; border: 2px dashed var(--encre); border-radius: var(--r-l); padding: clamp(36px, 6vw, 90px) 24px; }

.legal { max-width: 860px; }
.legal h2 { font: 700 clamp(26px, 2.2vw, 34px)/1.1 var(--f-titre); margin: 36px 0 10px; }
.legal p, .legal li { margin-bottom: 10px; }
.legal ul { list-style: disc; padding-left: 22px; }

/* Inscription */
.tunnel { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); min-height: 100vh; }
.tunnel__form { display: flex; flex-direction: column; padding: 20px clamp(20px, 5vw, 96px) 40px; }
.tunnel__haut { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: clamp(16px, 2.4vw, 36px); }
.jauge { position: relative; height: 12px; border-radius: 6px; background: var(--encre); margin: 44px 0 12px; }
.jauge::before { content: ''; position: absolute; inset: 0; border-radius: 6px; background: var(--orange); transform: scaleX(calc(var(--avance, 0) * .93 + .07)); transform-origin: 0 50%; transition: transform .8s var(--e); }
.jauge::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #fff 0 14px, transparent 14px 26px) center/100% 1.5px no-repeat; }
.jauge__clio { position: absolute; left: calc(var(--avance, 0) * (100% - 96px)); bottom: 8px; width: 96px; color: var(--encre); z-index: 2; transition: left .8s var(--e); }
.etape-n { font: 600 19px/1 var(--f-titre); }
.recap-mini { display: none; font: 700 20px/1.1 var(--f-titre); margin-top: 6px; }
.t__etape { padding-top: clamp(20px, 3vw, 44px); }
.t__etape[hidden] { display: none; }
.t__question { font: 800 clamp(46px, 6.2vw, 104px)/1.04 var(--f-affiche); text-transform: uppercase; outline: none; }
.t__sous { margin-top: 8px; color: var(--gris); font-size: 19px; }
.choix { display: grid; gap: 10px; margin-top: clamp(18px, 2.2vw, 32px); }
.choix--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choix--2 > label:last-of-type:nth-of-type(odd) { grid-column: 1 / -1; }
.choix label { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 76px; padding: 12px 24px; border-radius: 22px; background: var(--sable); cursor: pointer; font: 700 clamp(21px, 1.7vw, 26px)/1.1 var(--f-titre); transition: background-color .3s, color .3s, transform .45s var(--e); }
.choix label:hover { transform: translateX(6px); background: var(--orange-pale); }
.choix input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.choix label:has(input:checked) { background: var(--orange); color: var(--encre); }
.choix label:has(input:focus-visible) { outline: 3px solid var(--encre); outline-offset: 2px; }
.choix__p { font: 800 clamp(34px, 3vw, 48px)/1 var(--f-affiche); white-space: nowrap; }
.choix__coche { flex: none; width: 34px; height: 34px; border-radius: 50%; background: #fff; display: grid; place-items: center; color: transparent; transition: color .2s; }
.choix label:has(input:checked) .choix__coche { color: var(--encre); }
.choix-rapide { margin-top: 26px; }
.choix-rapide legend { font: 700 22px/1.1 var(--f-titre); margin-bottom: 10px; padding: 0; }
.champs-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.champ { display: grid; gap: 6px; margin-top: 14px; }
.champ label { font: 600 19px/1.1 var(--f-titre); }
.champ small { font-weight: 500; color: var(--gris); font-size: 16px; }
.champ input, .champ textarea { width: 100%; min-height: 62px; padding: 14px 20px; border: 2px solid transparent; border-radius: 18px; background: var(--sable); font-size: 19px; transition: border-color .25s, background-color .25s; }
.champ textarea { resize: vertical; }
.champ input:focus, .champ textarea:focus { outline: none; border-color: var(--orange); background: #fff; }
.champ.a-erreur input { border-color: var(--encre); background: var(--orange-pale); }
.case { display: flex; gap: 12px; align-items: flex-start; margin-top: 16px; font-size: 17px; line-height: 1.35; cursor: pointer; }
.case input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--orange); }
.erreur { margin-top: 8px; font: 600 17px/1.25 var(--f-texte); color: var(--encre); padding-left: 12px; border-left: 4px solid var(--orange); }
.t__bas { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: auto; padding-top: 28px; }
.t__retour { font: 700 20px/1 var(--f-titre); text-decoration: underline; text-underline-offset: 4px; padding: 16px 0; }
.tunnel__recap { position: relative; color: #fff; background: var(--encre); overflow: hidden; }
.tunnel__recap > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.tunnel__voile { position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 10, 10, .64), rgba(10, 10, 10, .08) 60%); }
.recap { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(18px, 2.4vw, 36px); }
.recap__t { position: relative; background: #fff; color: var(--encre); border-radius: 26px; padding: 24px 26px; transform: rotate(-1.6deg); }
.recap__nom { font: 800 clamp(34px, 3vw, 50px)/.96 var(--f-affiche); text-transform: uppercase; margin-top: 2px; }
.recap__prix { font: 800 clamp(70px, 6.6vw, 112px)/.9 var(--f-affiche); margin-top: 6px; }
.recap__note { font: 600 19px/1.2 var(--f-titre); }
.recap__l { margin-top: 12px; border-top: 2px dashed var(--ligne); padding-top: 10px; display: grid; gap: 4px; font-size: 16px; }
.recap__l li { display: flex; justify-content: space-between; gap: 12px; }
.recap__l li span:first-child { color: var(--gris); }
.recap__l li span:last-child { text-align: right; font-weight: 600; }
.recap__aide { position: relative; margin-top: 16px; font: 600 20px/1.2 var(--f-titre); }
.merci { padding-top: 24px; display: grid; gap: 20px; }
.mail { border-radius: 22px; background: var(--sable); padding: clamp(18px, 2.2vw, 30px); }
.mail__note { font: 600 18px/1.2 var(--f-titre); margin-bottom: 12px; }
.mail__tete { display: grid; gap: 3px; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 2px dashed var(--ligne); font-size: 17px; }
.mail dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 18px; font-size: 17px; }
.mail dt { color: var(--gris); }
.mail dd { font-weight: 600; }

/* Tablette et mobile. Rien de ce qui suit ne touche l'ordinateur : en 1024 px et plus, la mise en page ne change pas */
@media (min-width: 1024px) {
  .m-seul { display: none !important; }
}
@media (max-width: 1240px) {
  .tel { display: none; }
  .nav { gap: 14px; }
}
/* Au doigt, un effet de survol reste collé après le tap */
@media (hover: none) {
  .btn:hover .btn__t > span { transform: none; }
  .btn:hover .btn__r svg { transform: none; }
  .btn:hover .btn__r svg + svg { transform: translateX(-46px); }
  .btn--petit:hover .btn__r svg + svg { transform: translateX(-38px); }
  a:hover > .ph .ph__z, .ph:hover .ph__z { transform: none; }
  .lien:hover { background-size: 100% 2px; }
  .lien:hover svg { transform: none; }
  .puce:hover { transform: none; }
  .choix label:hover { transform: none; background: var(--sable); }
  .test__reponse:not([disabled]):hover { transform: none; background: var(--sable); }
  .q__b:hover .q__p { background: var(--sable); }
  .q.ouvert .q__b:hover .q__p { background: var(--orange); }
}
@media (max-width: 1023px) {
  :root { --entete: 64px; }
  html { -webkit-tap-highlight-color: transparent; }
  .o-seul { display: none !important; }

  /* Entête et repères */
  .nav { display: none; }
  .burger { display: block; }
  .entete__pilule { padding: 0 6px 0 20px; }
  .entete__droite .btn { display: none; }
  .logo { justify-content: center; min-height: 44px; }
  .logo b { font-size: 25px; }
  .logo span { font-size: 12.5px; }
  .barre { display: grid; }
  .lien { position: relative; }
  .lien::after { content: ''; position: absolute; inset: -11px 0; }
  .tete--2, .budget__g, .stage__g, .test-zone, .avis__g, .faq__g, .ph-hero__g, .detail, .contact-g, .galerie__titre { grid-template-columns: minmax(0, 1fr); }
  .detail--inv .ph { order: 0; }

  /* Héros */
  .hero__titre { font-size: min(27vw, 21vh); line-height: .86; }
  .pastille--desktop { display: none; }
  .pastille--mobile { display: block; }
  .hero__ligne--2 { flex-wrap: wrap; row-gap: 0; }
  .hero__dernier { flex: 0 0 100%; }
  .hero__bas { grid-template-columns: minmax(0, 1fr); gap: 16px; padding-block: 16px 22px; }
  .hero__bas .boutons .btn { flex: 1 1 100%; }
  .hero__media { height: 50vh; height: 50svh; min-height: 380px; }
  .hero__media img { object-position: 88% 40%; }
  .hero__slogans { display: none; }
  .ticket { left: var(--g); right: var(--g); width: auto; bottom: 18px; padding: 16px 20px; transform: rotate(-1.6deg); }
  .ticket__nom { padding-right: 30px; }
  .ticket__sep { display: none; }
  .ticket__suite { position: absolute; top: 18px; right: 20px; }
  .ticket__suite span { display: none; }

  /* Rubans : un seul, droit */
  .rubans { padding-block: 28px; }
  .rubans .defile--orange { display: none; }
  .rubans .defile--noir { transform: none; }

  /* Chiffres */
  .chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 0; }
  .chiffre b { font-size: clamp(50px, 13.4vw, 110px); }
  .chiffre { border-top: 2px solid var(--encre); padding-bottom: 22px; }
  .chiffre + .chiffre { border-left: 0; padding-left: 0; }
  .chiffre:nth-child(even) { border-left: 2px solid var(--encre); padding-left: 14px; }

  /* Promesses */
  .promesse { grid-template-columns: minmax(0, 1fr) 84px; column-gap: 14px; row-gap: 4px; padding: 14px 0; align-items: start; }
  .promesse__t { grid-column: 1; grid-row: 1; }
  .promesse__mini { display: block; grid-column: 2; grid-row: 1 / span 2; width: 84px; height: 84px; border-radius: 16px; }
  .promesse__mini img { top: 0; height: 100%; }
  .promesse h3 { font: 700 25px/1.1 var(--f-titre); text-transform: none; }
  .promesse p { grid-column: 1; grid-row: 2; font-size: 17px; }

  /* Formules */
  .offre { position: static; }
  .offre__carte { grid-template-columns: minmax(0, 1fr); min-height: 0; border-radius: var(--r-l); }
  .offre__texte { position: relative; gap: 14px; padding: 20px; }
  .offre__haut { padding-right: 92px; }
  .offre__texte .lien { position: absolute; top: 20px; right: 20px; }
  .offre__texte > div:nth-child(2) { display: flex; align-items: flex-end; gap: 12px; }
  .offre__prix { font-size: clamp(70px, 20.5vw, 120px); }
  .offre__note { margin: 0 0 4px; font-size: 18px; line-height: 1.18; }
  .coches { gap: 5px; }
  .offre__photo { order: -1; min-height: 0; height: 42vw; max-height: 300px; }
  .offre:not(:first-child) .offre__photo { display: none; }
  .z-plus { margin-top: 22px; }

  /* Simulateur : la voiture est un vrai dessin, le curseur natif d'iOS (fond blanc, ombre) reste invisible */

  /* Parcours */
  .parcours { overflow: visible; padding-block: var(--s); }
  .parcours__piste { display: grid; width: 100%; height: auto; min-height: 0; padding: 0 var(--g) 0 calc(var(--g) + 40px); gap: 26px; }
  .parcours__intro { width: auto; margin-left: -40px; padding-right: 0; gap: 12px; }
  .parcours__titre { font-size: clamp(54px, 9.2vw, 164px); white-space: normal; }
  .parcours__fin { width: auto; padding-left: 0; margin-left: -40px; gap: 16px; }
  .etape { width: auto; gap: 10px; }
  .etape:nth-of-type(even), .etape:nth-of-type(odd) { padding: 0; }
  .etape .ph { flex: none; aspect-ratio: 5/2; border-radius: var(--r-m); }
  .etape__l { gap: 12px; }
  .etape__n { font-size: 52px; }
  .etape h3 { font-size: 25px; }
  .etape p { font-size: 17px; line-height: 1.32; }
  .parcours__svg { display: none; }
  .parcours__v { display: block; position: absolute; left: var(--g); top: 190px; bottom: 0; width: 14px; border-radius: 7px; background: var(--encre); }
  .parcours__v i { position: absolute; inset: 0; border-radius: 7px; background: var(--orange); transform-origin: 50% 0; transform: scaleY(var(--a, 1)); }
  .parcours__v::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(180deg, #fff 0 14px, transparent 14px 26px) center/1.5px 100% no-repeat; }
  .parcours__v svg { position: absolute; left: 50%; top: calc(var(--a, 1) * (100% - 64px)); width: 64px; max-width: none; margin-left: -32px; margin-top: 18.5px; transform: rotate(90deg); color: var(--encre); z-index: 2; }

  /* Manifeste : deux phrases nettes, chacune avec sa photo */
  .manifeste__m .manifeste__t { font-size: calc((100vw - 2 * var(--g)) / 8.1); line-height: 1; white-space: nowrap; }
  .manifeste__m .ph { aspect-ratio: 16/7; border-radius: var(--r-m); margin: 14px 0 26px; }
  .manifeste__m .ph:last-child { margin-bottom: 0; }

  /* Comparatif */
  .vs__t, .vs__l { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vs__t { position: relative; }
  .vs__mid { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 2; }
  .vs__mid b { width: 58px; font-size: 27px; }
  .vs__h { padding: 18px 14px; font-size: clamp(22px, 6.7vw, 50px); }
  .vs__h small { font-size: 16px; }
  .vs__h--a { border-radius: var(--r-m) 0 0 0; }
  .vs__h--b { border-radius: 0 var(--r-m) 0 0; padding-left: 36px; }
  .vs__q { grid-column: 1 / -1; grid-row: 1; padding: 13px 8px 8px; border-top: 0; font-size: 20px; }
  .vs__a, .vs__b { grid-row: 2; align-items: flex-start; gap: 8px; padding: 11px 12px; font-size: 17px; border-top: 0; }
  .vs__l:last-child .vs__a { border-radius: 0 0 0 var(--r-m); }
  .vs__l:last-child .vs__b { border-radius: 0 0 var(--r-m) 0; }

  /* Galerie : le titre, puis une seule rangée */
  .galerie { display: flex; flex-direction: column; }
  .galerie__titre { order: -1; width: 100%; margin-inline: 0; padding: 0 var(--g) 24px; gap: 14px; }
  .galerie > .galerie__rang:last-child { display: none; }
  .galerie__rang .ph { width: 76vw; max-width: 460px; }
  .communes { display: block; margin-top: 10px; font: 600 18px/1.3 var(--f-titre); }
  .communes li { display: inline; padding: 0; background: none; border-radius: 0; font: inherit; }
  .communes li:not(:last-child)::after { content: ', '; }

  /* Stage : le prix et le bouton avant la liste */
  .morph { background: var(--orange); }
  .stage__g > div:first-child { display: flex; flex-direction: column; }
  .stage__g .surt { order: 1; }
  .stage__g .ta { order: 2; }
  .dates { order: 3; }
  .stage__prix { order: 4; }
  .stage__liste { order: 5; }
  .eventail { max-width: 460px; }
  .stage__g .compte { right: 8px !important; }
  .test { min-height: 0; }
  .z-test-lien { margin-top: 34px; }

  /* Avis */
  .avis__g { gap: 22px; }
  .avis__g > div:first-child { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; align-items: center; }
  .avis__g .surt { grid-column: 1 / -1; margin-bottom: 14px; }
  .avis__note { grid-row: 2 / span 2; font-size: 124px; }
  .avis__etoiles { grid-column: 2; align-self: end; margin-top: 0; }
  .avis__etoiles svg { width: 34px; height: 34px; }
  .avis__g .chapo { grid-column: 2; align-self: start; margin: 4px 0 0 !important; font-size: 17px; line-height: 1.3; }
  .avis__g > div:first-child > p:last-child { grid-column: 1 / -1; margin-top: 18px; }
  .themes { margin-top: 0; }
  .theme { min-height: 0; padding: 16px; gap: 8px; }
  .theme:nth-child(n) { transform: none; }
  .theme b { font-size: 27px; }
  .theme p { font-size: 16px; line-height: 1.3; }

  /* Parents et aides */
  .duo { grid-template-columns: minmax(0, 1fr); }
  .duo__t { padding: 22px 20px; gap: 14px; }
  .duo__ph { height: 36vw; max-height: 300px; }

  /* FAQ : les questions tout de suite après le titre */
  .faq__g { gap: 16px; }
  .faq__t { position: static; display: contents; }
  .faq__t > .surt { order: 0; }
  .faq__t > .ta, .faq__t > .recherche { order: 1; }
  .faq__t > .ta { margin-bottom: 6px; }
  .faq__t > .filtres { order: 2; }
  .faq__g > :not(.faq__t) { order: 3; }
  .faq__t > .chapo { order: 4; margin-top: 12px; }
  .faq__t > .boutons { order: 5; }
  .faq__t > p:not(.chapo):not(.surt) { order: 6; }

  /* Bandeau final */
  /* Le voile suit le texte, quelle que soit sa hauteur : la photo reste claire au-dessus */
  .final__cadre { height: auto; min-height: 72vh; min-height: 72svh; }
  .final__voile { background: rgba(10, 10, 10, .08); }
  .final__t { padding-top: 92px; background: linear-gradient(to top, rgba(10, 10, 10, .93), rgba(10, 10, 10, .86) 66%, rgba(10, 10, 10, 0)); }
  .final address { display: none; }

  /* Pied */
  .pied { padding-bottom: 6px; }
  .pied__g { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
  .pied__g > div:first-child, .pied__g > div:last-child { grid-column: 1 / -1; }
  .pied__g > div:last-child ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
  .pied h2 { margin-bottom: 4px; }
  .pied li { margin-bottom: 0; }
  .pied__g li a { display: flex; align-items: center; min-height: 44px; }
  .pied__adresse { gap: 8px; }
  .pied__adresse p a { display: inline-block; padding-block: 12px; line-height: 20px; }
  .pied__adresse p + p { margin-top: -8px; }
  .pied__adresse .pied__tel { display: flex; align-items: center; min-height: 44px; }
  .pied__leg a { display: inline-block; padding-block: 10px; margin-block: -10px; }
  .pied__geant { padding-inline: 8px; }

  /* Pages intérieures */
  .ph-hero__p { aspect-ratio: 16/10; max-height: none; }
  .ph-hero__large { height: auto; min-height: 0; aspect-ratio: 16/10; }
  .grille-3 { grid-template-columns: minmax(0, 1fr); }
  .grille-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grille-2, .grille-3, .grille-4 { row-gap: 36px; }
  .carte-photo > div { order: -1; }
  .carte-photo .ph { aspect-ratio: 16/9; }
  .mosa > * { grid-column: span 12; min-height: 58vw; }
  .mosa > .bloc { min-height: 0; }

  /* Contact : le plan avant le formulaire */
  .p-contact main { display: flex; flex-direction: column; }
  .z-contact, .z-contact > .c { display: contents; }
  .contact-infos { order: 1; margin: 18px var(--g) 0; }
  .z-plan { order: 2; padding-block: 26px; }
  .contact-form { order: 3; margin-inline: var(--g); }
  .p-contact main > div:last-child { order: 4; }
  .carte-map { height: clamp(320px, 88vw, 480px); }
  .contact-infos p > a { display: inline-block; padding-block: 12px; line-height: 20px; }

  /* Inscription */
  .tunnel { grid-template-columns: minmax(0, 1fr); }
  .tunnel__recap { display: none; }
  .recap-mini:not([hidden]) { display: block; }
  .tunnel__form { padding: 14px var(--g) 30px; min-height: 100vh; min-height: 100svh; }
  #f-autre ~ .choix__coche { display: none; }
  .tunnel__haut .tel { min-height: 44px; }

  /* Accueil : l'ordre de lecture sur téléphone. Le HTML garde l'ordre de l'ordinateur */
  .p-index main { display: flex; flex-direction: column; }
  .p-index .hero { order: 1; }
  .p-index .rubans { order: 2; }
  .p-index #formules { order: 3; padding-top: 28px; }
  .p-index #avis { order: 4; padding-top: 0; }
  .p-index .z-manifeste { order: 5; padding-top: 0; }
  .p-index .z-vs { order: 6; padding-top: 0; padding-bottom: 14px; }
  .p-index .z-promesses { order: 7; padding-top: 0; }
  .p-index .z-promesses .tete, .p-index .promesse__ants { display: none; }
  .p-index .z-promesses .promesses { border-top: 0; }
  .p-index .promesse:first-child, .p-index .promesse:last-child { display: none; }
  .p-index .stage__liste, .p-index #faq .q:nth-child(n+5) { display: none; }
  .p-index .galerie { order: 8; padding-top: 0; }
  .p-index .parcours { order: 9; padding-top: 0; }
  .p-index #stage { order: 10; }
  .p-index .z-duo { order: 11; }
  .p-index #faq { order: 12; }
  .p-index .final { order: 13; }
  .p-index .z-chiffres, .p-index #budget, .p-index .test-zone, .p-index .z-duo .coches { display: none; }
}
@media (max-width: 640px) {
  :root { --s: 52px; }
  body { font-size: 17px; }

  /* Une seule échelle de titres sur téléphone */
  h1.ta, .ph-hero__t h1.ta { font-size: clamp(46px, 14vw, 62px); line-height: .94; }
  h2.ta, .ta--l, .ta--m, .ta--2l, .parcours__titre { font-size: clamp(38px, 11.4vw, 50px); line-height: .96; }
  .final h2.ta { font-size: clamp(58px, 17vw, 76px); }
  .final h2.ta:not(.ta--acc) { line-height: .92; }
  .tete { gap: 10px; margin-bottom: 24px; }
  .panneau { margin-inline: 8px; border-radius: var(--r-l); }
  .budget { padding: 28px 18px; }
  .simu__total { font-size: clamp(64px, 23.5vw, 112px); }

  /* Boutons pleine largeur */
  .btn:not(.btn--petit) { height: 62px; padding-left: 24px; }
  .boutons .btn, .stage__prix .btn, .t__bas .btn, #contact-form .btn, .test__bas .btn { width: 100%; }
  .carte-map__bas { position: static; }
  .carte-map__bas .btn { position: absolute; left: 14px; bottom: 14px; width: auto; }
  .carte-map__osm { position: absolute; top: 10px; right: 10px; white-space: nowrap; }
  .reussite .boutons { width: 100%; }
  .final__b .boutons { gap: 4px; }
  .final .btn--blanc { justify-content: center; gap: 8px; height: 48px; padding: 0; background: none; color: #fff; }
  .final .btn--blanc .btn__r { order: -1; width: 24px; height: 24px; background: none; color: #fff; }
  .final .btn--blanc .btn__r svg { inset: 1px; width: 22px; height: 22px; }
  .t__bas { flex-wrap: wrap; }
  .t__bas > span { display: none; }
  .t__bas .btn { order: 1; }
  .t__bas #retour { order: 2; margin-inline: auto; }

  .grille-2, .grille-4 { grid-template-columns: minmax(0, 1fr); }
  .eventail { width: 62%; }
  .stage__liste { grid-template-columns: minmax(0, 1fr); }
  .champs-2 { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .choix--2 { grid-template-columns: minmax(0, 1fr); }
  .ticket__prix { font-size: 66px; }
  .hero__media img { object-position: 50% 100%; }
  .borne b { font-size: 11.4vw; }
  .q__r p { padding-right: 0; }
  .aides-r li { flex-direction: column; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
