/* --- src/css/tokens.css --- */
/* =============================================================================
   Variables de design : couleurs, typographie, espacements, rayons, ombres.
   Pour changer l'apparence du site, on modifie ces valeurs, pas les composants.

   Points de rupture (les variables CSS ne marchent pas dans @media, on les
   utilise donc en dur, toujours ces quatre-là) :
     max-width: 991px  -> tablette
     max-width: 767px  -> grand mobile
     max-width: 479px  -> mobile
     min-width: 1280px -> grand écran
   ============================================================================= */

:root {
  /* Couleurs de marque */
  --color-primary: #4b8162;        /* vert foncé : titres, boutons, fonds */
  --color-primary-hover: #3a6650;
  --color-accent: #b0ef8f;         /* vert clair : surlignage, boutons de formulaire */
  --color-text: #494545;           /* texte courant */
  --color-heading-dark: #000;
  --color-surface: #fff;
  --color-surface-muted: #e9e9e9;  /* gris clair : bouton « Précédent », survols */
  --color-star: #fff04a;
  --color-error: #c30303;
  --color-error-surface: #ffdede;
  --color-input-text: #333;
  --color-input-border: #ccc;
  --color-focus: #3898ec;

  /* Typographie */
  --font-body: 'Inter', sans-serif;
  --font-script: 'La Belle Aurore', cursive;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  --text-2xs: .625rem;  /* 10px */
  --text-xs: .7rem;
  --text-sm: .8rem;
  --text-input: .875rem; /* 14px */
  --text-base: 1rem;
  --text-md: 1.2rem;
  --text-lg: 1.5rem;
  --text-xl: 2rem;
  --text-number: 5rem;

  --heading-1: 38px;
  --heading-1-line: 44px;
  --heading-2: 32px;
  --heading-2-line: 36px;
  --heading-3: 24px;
  --heading-3-line: 30px;

  /* Espacements */
  --space-3xs: .2rem;
  --space-2xs: .5rem;
  --space-xs: 1rem;
  --space-sm: 1.5rem;
  --space-md: 2rem;
  --space-lg: 3rem;
  --space-xl: 4rem;
  --space-2xl: 5rem;
  --space-section: 80px;
  --space-card: 24px;
  --space-button: 16px;

  /* Formes */
  --radius-sm: .5rem;
  --radius-md: 1rem;
  --radius-round: 50%;
  --shadow-card: 0 2px 5px #0003;
  --shadow-float: -5px 6px 12px #0003;
  --transition: .3s ease;

  /* Mise en page */
  --container-max: 1280px;
  --gutter-ratio: .03; /* marge latérale = 3 % de la largeur du conteneur */
  --gutter: calc(min(100%, var(--container-max)) * var(--gutter-ratio));
  --hero-height: 800px;

  /* Images de fond */
  --image-hero: url('/assets/img/hero.webp');
  --image-highlight: url('/assets/img/highlight.png');

  /* Voile blanc sur la photo du bandeau d'accueil (plus opaque sur tablette et mobile) */
  --hero-veil: #ffffff4d;
  --hero-veil-compact: #ffffffb3;
  --hero-fade: linear-gradient(transparent, transparent 81%, #ffffffbf 91%, var(--color-surface));
}

/* --- src/css/base.css --- */
/* Styles de base des éléments HTML (aucune classe). */

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

html {
  height: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  min-height: 100%;
  margin: 0;
  background-color: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1;
}

h1,
h2,
h3 {
  margin: 0;
  font-weight: var(--weight-bold);
}

h1 { font-size: var(--heading-1); line-height: var(--heading-1-line); }
h2 { font-size: var(--heading-2); line-height: var(--heading-2-line); }
h3 { font-size: var(--heading-3); line-height: var(--heading-3-line); }

p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

img {
  display: inline-block;
  max-width: 100%;
  vertical-align: middle;
  border: 0;
}

a {
  color: inherit;
}

button {
  font: inherit;
  cursor: pointer;
}

fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  padding: 0;
}

mark {
  background-color: transparent;
  background-image: var(--image-highlight);
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: 100% 100%; /* le trait de surligneur couvre tout le mot */
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  color: inherit;
}

[hidden] {
  display: none !important;
}

:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

/* --- src/css/layout.css --- */
/* Conteneur, sections et utilitaires partagés. */

.container {
  width: 100%;
  max-width: var(--container-max);
  height: 100%;
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.section {
  margin-top: var(--space-section);
}

.section--flush {
  margin-top: 0;
}

.section--primary {
  background-color: var(--color-primary);
}

.section--accent {
  background-color: var(--color-accent);
}

/* Utilitaires */
.icon {
  display: block;
  color: inherit;
}

.icon svg {
  display: block;
  width: 100%;
  height: auto;
}

.img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.check-icon {
  width: 60px;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (max-width: 991px) {
  .check-icon { width: 40px; }
}

/* --- node_modules/vanilla-cookieconsent/dist/cookieconsent.css --- */
#cc-main{background:transparent;color:var(--cc-primary-color);font-family:var(--cc-font-family);font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.15;position:relative;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;position:fixed;z-index:var(--cc-z-index)}#cc-main :after,#cc-main :before,#cc-main a,#cc-main button,#cc-main div,#cc-main h2,#cc-main input,#cc-main p,#cc-main span{all:unset;box-sizing:border-box}#cc-main .pm__badge,#cc-main button{all:initial;box-sizing:border-box;color:unset;visibility:unset}#cc-main .pm__badge,#cc-main a,#cc-main button,#cc-main input{-webkit-appearance:none;appearance:none;cursor:pointer;font-family:inherit;font-size:100%;line-height:normal;margin:0;outline:revert;outline-offset:2px;overflow:hidden}#cc-main table,#cc-main tbody,#cc-main td,#cc-main th,#cc-main thead,#cc-main tr{all:revert;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit}:root{--cc-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--cc-modal-border-radius:.5rem;--cc-btn-border-radius:.4rem;--cc-modal-transition-duration:.25s;--cc-link-color:var(--cc-btn-primary-bg);--cc-modal-margin:1rem;--cc-z-index:2147483647;--cc-bg:#fff;--cc-primary-color:#2c2f31;--cc-secondary-color:#5e6266;--cc-btn-primary-bg:#30363c;--cc-btn-primary-color:#fff;--cc-btn-primary-border-color:var(--cc-btn-primary-bg);--cc-btn-primary-hover-bg:#000;--cc-btn-primary-hover-color:#fff;--cc-btn-primary-hover-border-color:var(--cc-btn-primary-hover-bg);--cc-btn-secondary-bg:#eaeff2;--cc-btn-secondary-color:var(--cc-primary-color);--cc-btn-secondary-border-color:var(--cc-btn-secondary-bg);--cc-btn-secondary-hover-bg:#d4dae0;--cc-btn-secondary-hover-color:#000;--cc-btn-secondary-hover-border-color:#d4dae0;--cc-separator-border-color:#f0f4f7;--cc-toggle-on-bg:var(--cc-btn-primary-bg);--cc-toggle-off-bg:#667481;--cc-toggle-on-knob-bg:#fff;--cc-toggle-off-knob-bg:var(--cc-toggle-on-knob-bg);--cc-toggle-enabled-icon-color:var(--cc-bg);--cc-toggle-disabled-icon-color:var(--cc-bg);--cc-toggle-readonly-bg:#d5dee2;--cc-toggle-readonly-knob-bg:#fff;--cc-toggle-readonly-knob-icon-color:var(--cc-toggle-readonly-bg);--cc-section-category-border:var(--cc-cookie-category-block-bg);--cc-cookie-category-block-bg:#f0f4f7;--cc-cookie-category-block-border:#f0f4f7;--cc-cookie-category-block-hover-bg:#e9eff4;--cc-cookie-category-block-hover-border:#e9eff4;--cc-cookie-category-expanded-block-bg:transparent;--cc-cookie-category-expanded-block-hover-bg:#dee4e9;--cc-overlay-bg:rgba(0,0,0,.65);--cc-webkit-scrollbar-bg:var(--cc-section-category-border);--cc-webkit-scrollbar-hover-bg:var(--cc-btn-primary-hover-bg);--cc-footer-bg:var(--cc-btn-secondary-bg);--cc-footer-color:var(--cc-secondary-color);--cc-footer-border-color:#e4eaed;--cc-pm-toggle-border-radius:4em}#cc-main.cc--rtl{direction:rtl}#cc-main .cm__title,#cc-main a,#cc-main b,#cc-main em,#cc-main strong{font-weight:600}#cc-main button>span{pointer-events:none}#cc-main .cc__link,#cc-main a{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;font-weight:600;position:relative;transition:background-size .25s,color .25s ease}#cc-main .cc__link:hover,#cc-main a:hover{background-size:100% 1px;color:var(--cc-primary-color)}#cc-main .cc__link{color:var(--cc-link-color)}#cc-main .cm__desc,#cc-main .pm__body{overscroll-behavior:auto contain;scrollbar-width:thin}@media screen and (min-width:640px){#cc-main ::-webkit-scrollbar,#cc-main ::-webkit-scrollbar-thumb,#cc-main ::-webkit-scrollbar-track{all:revert}#cc-main ::-webkit-scrollbar-thumb{-webkit-background-clip:padding-box;background-clip:padding-box;background:var(--cc-toggle-readonly-bg);border:.25rem solid var(--cc-bg);border-radius:1rem}#cc-main ::-webkit-scrollbar-thumb:hover{background:var(--cc-toggle-off-bg)}#cc-main ::-webkit-scrollbar{background:transparent;width:12px}}html.disable--interaction.show--consent,html.disable--interaction.show--consent body{height:auto!important;overflow:hidden!important}@media (prefers-reduced-motion){#cc-main{--cc-modal-transition-duration:0s}}.cc--darkmode{--cc-bg:#161a1c;--cc-primary-color:#ebf3f6;--cc-secondary-color:#aebbc5;--cc-btn-primary-bg:#c2d0e0;--cc-btn-primary-color:var(--cc-bg);--cc-btn-primary-border-color:var(--cc-btn-primary-bg);--cc-btn-primary-hover-bg:#98a7b6;--cc-btn-primary-hover-color:#000;--cc-btn-primary-hover-border-color:var(--cc-btn-primary-hover-bg);--cc-btn-secondary-bg:#242c31;--cc-btn-secondary-color:var(--cc-primary-color);--cc-btn-secondary-border-color:var(--cc-btn-secondary-bg);--cc-btn-secondary-hover-bg:#353d43;--cc-btn-secondary-hover-color:#fff;--cc-btn-secondary-hover-border-color:var(--cc-btn-secondary-hover-bg);--cc-separator-border-color:#222a30;--cc-toggle-on-bg:var(--cc-btn-primary-bg);--cc-toggle-off-bg:#525f6b;--cc-toggle-on-knob-bg:var(--cc-btn-primary-color);--cc-toggle-off-knob-bg:var(--cc-btn-primary-color);--cc-toggle-enabled-icon-color:var(--cc-btn-primary-color);--cc-toggle-disabled-icon-color:var(--cc-btn-primary-color);--cc-toggle-readonly-bg:#343e45;--cc-toggle-readonly-knob-bg:#5f6b72;--cc-toggle-readonly-knob-icon-color:var(--cc-toggle-readonly-bg);--cc-section-category-border:#1e2428;--cc-cookie-category-block-bg:#1e2428;--cc-cookie-category-block-border:var(--cc-section-category-border);--cc-cookie-category-block-hover-bg:#242c31;--cc-cookie-category-block-hover-border:#232a2f;--cc-cookie-category-expanded-block-bg:transparent;--cc-cookie-category-expanded-block-hover-bg:var(--cc-toggle-readonly-bg);--cc-overlay-bg:rgba(0,0,0,.65);--cc-webkit-scrollbar-bg:var(--cc-section-category-border);--cc-webkit-scrollbar-hover-bg:var(--cc-btn-primary-hover-bg);--cc-footer-bg:#0c0e0f;--cc-footer-color:var(--cc-secondary-color);--cc-footer-border-color:#060809}.cc--darkmode #cc-main{color-scheme:dark}#cc-main .cm{background:var(--cc-bg);border-radius:var(--cc-modal-border-radius);box-shadow:0 .625em 1.875em rgba(0,0,2,.3);display:flex;flex-direction:column;max-width:24rem;opacity:0;overflow:hidden;position:fixed;transform:translateY(1.6em);visibility:hidden;z-index:1}#cc-main .cm--top{top:var(--cc-modal-margin)}#cc-main .cm--middle{top:50%;transform:translateY(calc(-50% + 1.6em))}#cc-main .cm--bottom{bottom:var(--cc-modal-margin)}#cc-main .cm--center{left:var(--cc-modal-margin);margin:0 auto;right:var(--cc-modal-margin);width:unset}#cc-main .cm--left{left:var(--cc-modal-margin);margin-right:var(--cc-modal-margin)}#cc-main .cm--right{margin-left:var(--cc-modal-margin);right:var(--cc-modal-margin)}#cc-main .cm__body{display:flex;flex-direction:column;justify-content:space-between;position:relative}#cc-main .cm__btns,#cc-main .cm__links{padding:1rem 1.3rem;width:unset}#cc-main .cm__texts{display:flex;flex:1;flex-direction:column;justify-content:center;padding:1rem 0 0}#cc-main .cm__desc,#cc-main .cm__title{padding:0 1.3rem}#cc-main .cm__title{font-size:1.05em}#cc-main .cm__title+.cm__desc{margin-top:1.1em}#cc-main .cm__desc{color:var(--cc-secondary-color);font-size:.9em;line-height:1.5;max-height:40vh;overflow-x:visible;overflow-y:auto;padding-bottom:1em}#cc-main .cm__btns{border-top:1px solid var(--cc-separator-border-color);display:flex;flex-direction:column;justify-content:center}#cc-main .cm__btn-group{display:grid;grid-auto-columns:minmax(0,1fr)}#cc-main .cm__btn+.cm__btn,#cc-main .cm__btn-group+.cm__btn-group{margin-top:.375rem}#cc-main .cm--flip .cm__btn+.cm__btn,#cc-main .cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:.375rem;margin-top:0}#cc-main .cm--inline .cm__btn+.cm__btn{margin-left:.375rem;margin-top:0}#cc-main .cm--inline.cm--flip .cm__btn+.cm__btn{margin-bottom:0;margin-left:0;margin-right:.375rem}#cc-main .cm--inline.cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:.375rem;margin-right:0}#cc-main .cm--wide .cm__btn+.cm__btn,#cc-main .cm--wide .cm__btn-group+.cm__btn-group{margin-left:.375rem;margin-top:0}#cc-main .cm--wide.cm--flip .cm__btn+.cm__btn,#cc-main .cm--wide.cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:0;margin-right:.375rem}#cc-main .cm--bar:not(.cm--inline) .cm__btn-group--uneven,#cc-main .cm--wide .cm__btn-group--uneven{display:flex;flex:1;justify-content:space-between}#cc-main .cm--bar:not(.cm--inline).cm--flip .cm__btn-group--uneven,#cc-main .cm--wide.cm--flip .cm__btn-group--uneven{flex-direction:row-reverse}#cc-main .cm__btn{background:var(--cc-btn-primary-bg);border:1px solid var(--cc-btn-primary-border-color);border-radius:var(--cc-btn-border-radius);color:var(--cc-btn-primary-color);font-size:.82em;font-weight:600;min-height:42px;padding:.5em 1em;text-align:center}#cc-main .cm__btn:hover{background:var(--cc-btn-primary-hover-bg);border-color:var(--cc-btn-primary-hover-border-color);color:var(--cc-btn-primary-hover-color)}#cc-main .cm__btn--secondary{background:var(--cc-btn-secondary-bg);border-color:var(--cc-btn-secondary-border-color);color:var(--cc-btn-secondary-color)}#cc-main .cm__btn--secondary:hover{background:var(--cc-btn-secondary-hover-bg);border-color:var(--cc-btn-secondary-hover-border-color);color:var(--cc-btn-secondary-hover-color)}#cc-main .cm__btn--close{border-radius:0;border-bottom-left-radius:var(--cc-btn-border-radius);border-right:none;border-top:none;display:none;font-size:1em;height:42px;min-width:auto!important;overflow:hidden;padding:0!important;position:absolute;right:0;top:0;width:42px}#cc-main .cm__btn--close svg{stroke:var(--cc-btn-primary-color);transform:scale(.5);transition:stroke .15s ease}#cc-main .cm__btn--close:hover svg{stroke:var(--cc-btn-primary-hover-color)}#cc-main .cm__btn--close.cm__btn--secondary svg{stroke:var(--cc-btn-secondary-color)}#cc-main .cm__btn--close.cm__btn--secondary:hover svg{stroke:var(--cc-btn-secondary-hover-color)}#cc-main .cm__btn--close+.cm__texts .cm__title{padding-right:3rem}#cc-main .cm--inline .cm__btn-group{grid-auto-flow:column}#cc-main .cm__footer{background:var(--cc-footer-bg);border-top:1px solid var(--cc-footer-border-color);color:var(--cc-footer-color);padding:.4em 0 .5em}#cc-main .cm__links{display:flex;flex-direction:row;padding-bottom:0;padding-top:0}#cc-main .cm__link-group{display:flex;flex-direction:row;font-size:.8em;width:100%}#cc-main .cm__link-group>*+*{margin-left:1.3rem}#cc-main .cm--flip .cm__btn:last-child{grid-row:1}#cc-main .cm--inline.cm--flip .cm__btn:last-child{grid-column:1}#cc-main .cm--box .cm__btn--close{display:block}#cc-main .cm--box.cm--flip .cm__btns{flex-direction:column-reverse}#cc-main .cm--box.cm--wide{max-width:36em}#cc-main .cm--box.cm--wide .cm__btns{flex-direction:row;justify-content:space-between}#cc-main .cm--box.cm--wide .cm__btn-group{grid-auto-flow:column}#cc-main .cm--box.cm--wide .cm__btn{min-width:120px;padding-left:1.8em;padding-right:1.8em}#cc-main .cm--box.cm--wide.cm--flip .cm__btns{flex-direction:row-reverse}#cc-main .cm--box.cm--wide.cm--flip .cm__btn:last-child{grid-column:1}#cc-main .cm--cloud{max-width:54em;width:unset}#cc-main .cm--cloud .cm__body{flex-direction:row}#cc-main .cm--cloud .cm__texts{flex:1}#cc-main .cm--cloud .cm__desc{max-height:9.4em}#cc-main .cm--cloud .cm__btns{border-left:1px solid var(--cc-separator-border-color);border-top:none;max-width:23em}#cc-main .cm--cloud .cm__btn-group{flex-direction:column}#cc-main .cm--cloud .cm__btn{min-width:19em}#cc-main .cm--cloud.cm--flip .cm__btn-group,#cc-main .cm--cloud.cm--flip .cm__btns{flex-direction:column-reverse}#cc-main .cm--cloud.cm--inline .cm__btn-group{flex-direction:row}#cc-main .cm--cloud.cm--inline .cm__btn{min-width:10em}#cc-main .cm--cloud.cm--inline.cm--flip .cm__btn-group{flex-direction:row-reverse}#cc-main .cm--bar{border-radius:0;left:0;margin:0;max-width:unset;opacity:1;right:0;transform:translateY(0);width:100vw;--cc-modal-transition-duration:.35s}#cc-main .cm--bar.cm--top{top:0;transform:translateY(-100%)}#cc-main .cm--bar.cm--bottom{bottom:0;transform:translateY(100%)}#cc-main .cm--bar .cm__body,#cc-main .cm--bar .cm__links{margin:0 auto;max-width:55em;width:100%}#cc-main .cm--bar .cm__body{padding:.5em 0 .9em}#cc-main .cm--bar .cm__btns{border-top:none;flex-direction:row;justify-content:space-between}#cc-main .cm--bar .cm__btn-group{grid-auto-flow:column}#cc-main .cm--bar:not(.cm--inline) .cm__btn+.cm__btn,#cc-main .cm--bar:not(.cm--inline) .cm__btn-group+.cm__btn-group{margin-left:.375rem;margin-top:0}#cc-main .cm--bar .cm__btn{min-width:120px;padding-left:2em;padding-right:2em}#cc-main .cm--bar.cm--flip:not(.cm--inline) .cm__btn+.cm__btn,#cc-main .cm--bar.cm--flip:not(.cm--inline) .cm__btn-group+.cm__btn-group{margin-bottom:0;margin-left:0;margin-right:.375rem}#cc-main .cm--bar.cm--flip .cm__btns{flex-direction:row-reverse}#cc-main .cm--bar.cm--flip .cm__btn:last-child{grid-column:1}#cc-main .cm--bar.cm--inline .cm__body,#cc-main .cm--bar.cm--inline .cm__links{max-width:74em}#cc-main .cm--bar.cm--inline .cm__body{flex-direction:row;padding:0}#cc-main .cm--bar.cm--inline .cm__btns{flex-direction:column;justify-content:center;max-width:23em}#cc-main .cm--bar.cm--inline.cm--flip .cm__btns{flex-direction:column-reverse}#cc-main .cc--anim .cm,#cc-main .cc--anim.cm-wrapper:before{transition:opacity var(--cc-modal-transition-duration) ease,visibility var(--cc-modal-transition-duration) ease,transform var(--cc-modal-transition-duration) ease}#cc-main .cc--anim .cm__btn,#cc-main .cc--anim .cm__close{transition:background-color .15s ease,border-color .15s ease,color .15s ease}.disable--interaction #cc-main .cm-wrapper:before{background:var(--cc-overlay-bg);bottom:0;content:"";left:0;opacity:0;position:fixed;right:0;top:0;visibility:hidden;z-index:0}.show--consent #cc-main .cc--anim .cm{opacity:1;transform:translateY(0);visibility:visible!important}.show--consent #cc-main .cc--anim .cm--middle{transform:translateY(-50%)}.show--consent #cc-main .cc--anim .cm--bar{transform:translateY(0)}.show--consent #cc-main .cc--anim.cm-wrapper:before{opacity:1;visibility:visible}#cc-main.cc--rtl .cm__btn--close{border-bottom-left-radius:unset;border-bottom-right-radius:var(--cc-btn-border-radius);left:0;right:unset}#cc-main.cc--rtl .cm__btn--close+.cm__texts .cm__title{padding-left:3rem!important;padding-right:1.3rem}#cc-main.cc--rtl .cm--inline .cm__btn+.cm__btn{margin-left:0;margin-right:.375rem}#cc-main.cc--rtl .cm--inline.cm--flip .cm__btn+.cm__btn{margin-left:.375rem;margin-right:0}#cc-main.cc--rtl .cm:not(.cm--inline).cm--bar .cm__btn+.cm__btn,#cc-main.cc--rtl .cm:not(.cm--inline).cm--bar .cm__btn-group+.cm__btn-group,#cc-main.cc--rtl .cm:not(.cm--inline).cm--wide .cm__btn+.cm__btn,#cc-main.cc--rtl .cm:not(.cm--inline).cm--wide .cm__btn-group+.cm__btn-group{margin-left:0;margin-right:.375rem}#cc-main.cc--rtl .cm:not(.cm--inline).cm--bar.cm--flip .cm__btn+.cm__btn,#cc-main.cc--rtl .cm:not(.cm--inline).cm--wide.cm--flip .cm__btn+.cm__btn{margin-left:.375rem;margin-right:0}#cc-main.cc--rtl .cm__link-group>*+*{margin-left:0;margin-right:1.3rem}@media screen and (max-width:640px){#cc-main{--cc-modal-margin:.5em}#cc-main .cm{max-width:none!important;width:auto!important}#cc-main .cm__body{flex-direction:column!important;padding:0!important}#cc-main .cm__btns,#cc-main .cm__desc,#cc-main .cm__links,#cc-main .cm__title{padding-left:1.1rem!important;padding-right:1.1rem!important}#cc-main .cm__btns{border-left:none!important;border-top:1px solid var(--cc-separator-border-color)!important;flex-direction:column!important;max-width:none!important;min-width:auto!important}#cc-main .cm__btn+.cm__btn,#cc-main .cm__btn-group+.cm__btn-group{margin:.375rem 0 0!important}#cc-main .cm--flip .cm__btn+.cm__btn,#cc-main .cm--flip .cm__btn-group+.cm__btn-group{margin-bottom:.375rem!important;margin-top:0!important}#cc-main .cm__btn-group{display:flex!important;flex-direction:column!important;min-width:auto!important}#cc-main .cm__btn{flex:auto!important}#cc-main .cm__link-group{justify-content:center!important}#cc-main .cm--flip .cm__btn-group,#cc-main .cm--flip .cm__btns{flex-direction:column-reverse!important}}#cc-main .pm-wrapper{position:relative;z-index:2}#cc-main .pm{background:var(--cc-bg);border-radius:var(--cc-modal-border-radius);box-shadow:0 .625em 1.875em rgba(0,0,2,.3);display:flex;flex-direction:column;opacity:0;overflow:hidden;position:fixed;visibility:hidden;width:100%;width:unset;z-index:1}#cc-main svg{fill:none;width:100%}#cc-main .pm__body,#cc-main .pm__footer,#cc-main .pm__header{padding:1em 1.4em}#cc-main .pm__header{align-items:center;border-bottom:1px solid var(--cc-separator-border-color);display:flex;justify-content:space-between}#cc-main .pm__title{align-items:center;display:flex;flex:1;font-weight:600;margin-right:2em}#cc-main .pm__close-btn{background:var(--cc-btn-secondary-bg);border:1px solid var(--cc-btn-secondary-border-color);border-radius:var(--cc-btn-border-radius);height:40px;position:relative;transition:all .15s ease;width:40px}#cc-main .pm__close-btn span{display:flex;height:100%;width:100%}#cc-main .pm__close-btn svg{stroke:var(--cc-btn-secondary-color);transform:scale(.5);transition:stroke .15s ease}#cc-main .pm__close-btn:hover{background:var(--cc-btn-secondary-hover-bg);border-color:var(--cc-btn-secondary-hover-border-color)}#cc-main .pm__close-btn:hover svg{stroke:var(--cc-btn-secondary-hover-color)}#cc-main .pm__body{flex:1;overflow-y:auto;overflow-y:overlay}#cc-main .pm__section,#cc-main .pm__section--toggle{border-radius:var(--cc-btn-border-radius);display:flex;flex-direction:column;margin-bottom:.5em}#cc-main .pm__section--toggle .pm__section-desc-wrapper{border:1px solid var(--cc-cookie-category-block-border);border-radius:var(--cc-btn-border-radius);border-top:none;border-top-left-radius:0;border-top-right-radius:0;display:none;margin-top:0!important;overflow:hidden}#cc-main .pm__section{border:1px solid var(--cc-separator-border-color);padding:1em;transition:background-color .25s ease,border-color .25s ease}#cc-main .pm__section:first-child{border:none;margin-bottom:2em;margin-top:0;padding:0;transition:none}#cc-main .pm__section:not(:first-child):hover{background:var(--cc-cookie-category-block-bg);border-color:var(--cc-cookie-category-block-border)}#cc-main .pm__section-toggles+.pm__section{margin-top:2em}#cc-main .pm__section--toggle{background:var(--cc-cookie-category-block-bg);border-top:none;margin-bottom:.375rem}#cc-main .pm__section--toggle .pm__section-title{align-items:center;background:var(--cc-cookie-category-block-bg);border:1px solid var(--cc-cookie-category-block-border);display:flex;justify-content:space-between;min-height:58px;padding:1.1em 5.4em 1.1em 1.2em;position:relative;transition:background-color .25s ease,border-color .25s ease;width:100%}#cc-main .pm__section--toggle .pm__section-title:hover{background:var(--cc-cookie-category-block-hover-bg);border-color:var(--cc-cookie-category-block-hover-border)}#cc-main .pm__section--toggle .pm__section-desc{margin-top:0;padding:1em}#cc-main .pm__section--toggle.is-expanded{--cc-cookie-category-block-bg:var(--cc-cookie-category-expanded-block-bg);--cc-cookie-category-block-border:var(--cc-cookie-category-expanded-block-hover-bg)}#cc-main .pm__section--toggle.is-expanded .pm__section-title{border-bottom-left-radius:0;border-bottom-right-radius:0}#cc-main .pm__section--toggle.is-expanded .pm__section-arrow svg{transform:scale(.5) rotate(180deg)}#cc-main .pm__section--toggle.is-expanded .pm__section-desc-wrapper{display:flex}#cc-main .pm__section--expandable .pm__section-title{cursor:pointer;padding-left:3.4em}#cc-main .pm__section--expandable .pm__section-arrow{background:var(--cc-toggle-readonly-bg);border-radius:100%;display:flex;height:20px;justify-content:center;left:18px;pointer-events:none;position:absolute;width:20px}#cc-main .pm__section--expandable .pm__section-arrow svg{stroke:var(--cc-btn-secondary-color);transform:scale(.5)}#cc-main .pm__section-title-wrapper{align-items:center;display:flex;position:relative}#cc-main .pm__section-title-wrapper+.pm__section-desc-wrapper{margin-top:.85em}#cc-main .pm__section-title{border-radius:var(--cc-btn-border-radius);font-size:.95em;font-weight:600}#cc-main .pm__badge{align-items:center;background:var(--cc-btn-secondary-bg);border-radius:5em;color:var(--cc-secondary-color);display:flex;flex:none;font-size:.8em;font-weight:600;height:23px;justify-content:center;margin-left:1em;min-width:23px;overflow:hidden;padding:0 .6em 1px;position:relative;text-align:center;white-space:nowrap;width:auto}#cc-main .pm__service-counter{background:var(--cc-btn-primary-bg);color:var(--cc-btn-primary-color);padding:0;width:23px}#cc-main .pm__service-counter[data-counterlabel]{padding:0 .6em 1px;width:auto}#cc-main .section__toggle,#cc-main .section__toggle-wrapper,#cc-main .toggle__icon,#cc-main .toggle__label{border-radius:var(--cc-pm-toggle-border-radius);height:23px;transform:translateZ(0);width:50px}#cc-main .section__toggle-wrapper{cursor:pointer;position:absolute;right:18px;z-index:1}#cc-main .toggle-service{height:19px;position:relative;right:0;width:42px}#cc-main .toggle-service .section__toggle,#cc-main .toggle-service .toggle__icon,#cc-main .toggle-service .toggle__label{height:19px;width:42px}#cc-main .toggle-service .toggle__icon{position:relative}#cc-main .toggle-service .toggle__icon-circle{height:19px;width:19px}#cc-main .toggle-service .section__toggle:checked~.toggle__icon .toggle__icon-circle{transform:translateX(23px)}#cc-main .pm__section--toggle:nth-child(2) .section__toggle-wrapper:after{display:none!important}#cc-main .section__toggle{border:0;cursor:pointer;display:block;left:0;margin:0;position:absolute;top:0}#cc-main .section__toggle:disabled{cursor:not-allowed}#cc-main .toggle__icon{background:var(--cc-toggle-off-bg);box-shadow:0 0 0 1px var(--cc-toggle-off-bg);display:flex;flex-direction:row;pointer-events:none;position:absolute;transition:all .25s ease}#cc-main .toggle__icon-circle{background:var(--cc-toggle-off-knob-bg);border:none;border-radius:var(--cc-pm-toggle-border-radius);box-shadow:0 1px 2px rgba(24,32,3,.36);display:block;height:23px;left:0;position:absolute;top:0;transition:transform .25s ease,background-color .25s ease;width:23px}#cc-main .toggle__icon-off,#cc-main .toggle__icon-on{height:100%;position:absolute;transition:opacity .15s ease;width:100%}#cc-main .toggle__icon-on{opacity:0;transform:rotate(45deg)}#cc-main .toggle__icon-on svg{stroke:var(--cc-toggle-on-bg);transform:scale(.55) rotate(-45deg)}#cc-main .toggle__icon-off{opacity:1}#cc-main .toggle__icon-off svg{stroke:var(--cc-toggle-off-bg);transform:scale(.55)}#cc-main .section__toggle:checked~.toggle__icon{background:var(--cc-toggle-on-bg);box-shadow:0 0 0 1px var(--cc-toggle-on-bg)}#cc-main .section__toggle:checked~.toggle__icon .toggle__icon-circle{background-color:var(--cc-toggle-on-knob-bg);transform:translateX(27px)}#cc-main .section__toggle:checked~.toggle__icon .toggle__icon-on{opacity:1}#cc-main .section__toggle:checked~.toggle__icon .toggle__icon-off{opacity:0}#cc-main .section__toggle:checked:disabled~.toggle__icon{background:var(--cc-toggle-readonly-bg);box-shadow:0 0 0 1px var(--cc-toggle-readonly-bg)}#cc-main .section__toggle:checked:disabled~.toggle__icon .toggle__icon-circle{background:var(--cc-toggle-readonly-knob-bg);box-shadow:none}#cc-main .section__toggle:checked:disabled~.toggle__icon svg{stroke:var(--cc-toggle-readonly-knob-icon-color)}#cc-main .toggle__label{opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:0;z-index:-1}#cc-main .pm__section-desc-wrapper{color:var(--cc-secondary-color);display:flex;flex-direction:column;font-size:.9em}#cc-main .pm__section-desc-wrapper>:not(:last-child){border-bottom:1px solid var(--cc-cookie-category-block-border)}#cc-main .pm__section-services{display:flex;flex-direction:column}#cc-main .pm__service{align-items:center;display:flex;justify-content:space-between;padding:.4em 1.2em;position:relative;transition:background-color .15s ease}#cc-main .pm__service:hover{background-color:var(--cc-cookie-category-block-hover-bg)}#cc-main .pm__service-header{align-items:center;display:flex;margin-right:1em;width:100%}#cc-main .pm__service-icon{border:2px solid;border-radius:100%;height:8px;margin-left:6px;margin-right:20px;margin-top:1px;min-width:8px}#cc-main .pm__service-title{font-size:.95em;width:100%;word-break:break-word}#cc-main .pm__section-desc{line-height:1.5em}#cc-main .pm__section-table{border-collapse:collapse;font-size:.9em;margin:0;overflow:hidden;padding:0;text-align:left;width:100%}#cc-main .pm__table-caption{text-align:left}#cc-main .pm__table-caption,#cc-main .pm__table-head>tr{border-bottom:1px dashed var(--cc-separator-border-color);color:var(--cc-primary-color);font-weight:600}#cc-main .pm__table-tr{transition:background-color .15s ease}#cc-main .pm__table-tr:hover{background:var(--cc-cookie-category-block-hover-bg)}#cc-main .pm__table-caption,#cc-main .pm__table-td,#cc-main .pm__table-th{padding:.625em .625em .625em 1.2em;vertical-align:top}#cc-main .pm__footer{border-top:1px solid var(--cc-separator-border-color);display:flex;justify-content:space-between}#cc-main .pm__btn-group{display:flex}#cc-main .pm__btn+.pm__btn,#cc-main .pm__btn-group+.pm__btn-group{margin-left:.375rem}#cc-main .pm--flip .pm__btn+.pm__btn,#cc-main .pm--flip .pm__btn-group+.pm__btn-group{margin-left:0;margin-right:.375rem}#cc-main .pm__btn{background:var(--cc-btn-primary-bg);border:1px solid var(--cc-btn-primary-border-color);border-radius:var(--cc-btn-border-radius);color:var(--cc-btn-primary-color);flex:auto;font-size:.82em;font-weight:600;min-height:42px;min-width:110px;padding:.5em 1.5em;text-align:center;transition:background-color .15s ease,border-color .15s ease,color .15s ease}#cc-main .pm__btn:hover{background:var(--cc-btn-primary-hover-bg);border-color:var(--cc-btn-primary-hover-border-color);color:var(--cc-btn-primary-hover-color)}#cc-main .pm__btn--secondary{background:var(--cc-btn-secondary-bg);border-color:var(--cc-btn-secondary-border-color);color:var(--cc-btn-secondary-color)}#cc-main .pm__btn--secondary:hover{background:var(--cc-btn-secondary-hover-bg);border-color:var(--cc-btn-secondary-hover-border-color);color:var(--cc-btn-secondary-hover-color)}#cc-main .pm--box{height:calc(100% - 2em);left:var(--cc-modal-margin);margin:0 auto;max-height:37.5em;max-width:43em;right:var(--cc-modal-margin);top:50%;transform:translateY(calc(-50% + 1.6em))}#cc-main .pm--box.pm--flip .pm__btn-group,#cc-main .pm--box.pm--flip .pm__footer{flex-direction:row-reverse}#cc-main .pm--bar{border-radius:0;bottom:0;height:100%;margin:0;max-height:none;max-width:29em;opacity:1;top:0;width:100%;--cc-modal-transition-duration:.35s}#cc-main .pm--bar .pm__section-table,#cc-main .pm--bar .pm__table-body,#cc-main .pm--bar .pm__table-td,#cc-main .pm--bar .pm__table-th,#cc-main .pm--bar .pm__table-tr{display:block}#cc-main .pm--bar .pm__table-head{display:none}#cc-main .pm--bar .pm__table-caption{display:block}#cc-main .pm--bar .pm__table-tr:not(:last-child){border-bottom:1px solid var(--cc-separator-border-color)}#cc-main .pm--bar .pm__table-td{display:flex;justify-content:space-between}#cc-main .pm--bar .pm__table-td:before{color:var(--cc-primary-color);content:attr(data-column);flex:1;font-weight:600;min-width:100px;overflow:hidden;padding-right:2em;text-overflow:ellipsis}#cc-main .pm--bar .pm__table-td>div{flex:3}#cc-main .pm--bar:not(.pm--wide) .pm__body,#cc-main .pm--bar:not(.pm--wide) .pm__footer,#cc-main .pm--bar:not(.pm--wide) .pm__header{padding:1em 1.3em}#cc-main .pm--bar:not(.pm--wide) .pm__btn-group,#cc-main .pm--bar:not(.pm--wide) .pm__footer{flex-direction:column}#cc-main .pm--bar:not(.pm--wide) .pm__btn+.pm__btn,#cc-main .pm--bar:not(.pm--wide) .pm__btn-group+.pm__btn-group{margin:.375rem 0 0}#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__btn-group,#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__footer{flex-direction:column-reverse}#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__btn+.pm__btn,#cc-main .pm--bar:not(.pm--wide).pm--flip .pm__btn-group+.pm__btn-group{margin-bottom:.375rem;margin-top:0}#cc-main .pm--bar:not(.pm--wide) .pm__badge{display:none}#cc-main .pm--bar.pm--left{left:0;transform:translateX(-100%)}#cc-main .pm--bar.pm--right{right:0;transform:translateX(100%)}#cc-main .pm--bar.pm--wide{max-width:35em}#cc-main .pm--bar.pm--wide .pm__body,#cc-main .pm--bar.pm--wide .pm__footer,#cc-main .pm--bar.pm--wide .pm__header{padding:1em 1.4em}#cc-main .pm--bar.pm--wide.pm--flip .pm__btn-group,#cc-main .pm--bar.pm--wide.pm--flip .pm__footer{flex-direction:row-reverse}#cc-main .pm-overlay{background:var(--cc-overlay-bg);bottom:0;content:"";left:0;opacity:0;position:fixed;right:0;top:0;visibility:hidden;z-index:1}#cc-main .cc--anim .pm,#cc-main .cc--anim .pm-overlay{transition:opacity var(--cc-modal-transition-duration) ease,visibility var(--cc-modal-transition-duration) ease,transform var(--cc-modal-transition-duration) ease}.show--preferences #cc-main .cc--anim .pm{opacity:1;visibility:visible!important}.show--preferences #cc-main .cc--anim .pm--box{transform:translateY(-50%)}.show--preferences #cc-main .cc--anim .pm--bar{transform:translateX(0)}.show--preferences #cc-main .cc--anim .pm-overlay{opacity:1;visibility:visible}#cc-main.cc--rtl .pm__service-header{margin-left:1em;margin-right:0}#cc-main.cc--rtl .pm__section-arrow{left:unset;right:18px}#cc-main.cc--rtl .section__toggle-wrapper{left:18px;right:unset;transform-origin:left}#cc-main.cc--rtl .toggle-service{left:0}#cc-main.cc--rtl .pm__service-icon{margin-left:20px;margin-right:5px}#cc-main.cc--rtl .pm__section--toggle .pm__section-title{padding-left:5.4em;padding-right:1.2em}#cc-main.cc--rtl .pm__section--expandable .pm__section-title{padding-right:3.4em}#cc-main.cc--rtl .pm__badge{margin-left:unset;margin-right:1em}#cc-main.cc--rtl .toggle__icon-circle{transform:translateX(27px)}#cc-main.cc--rtl .toggle-service .toggle__icon-circle{transform:translateX(23px)}#cc-main.cc--rtl .section__toggle:checked~.toggle__icon .toggle__icon-circle{transform:translateX(0)}#cc-main.cc--rtl .pm__table-td,#cc-main.cc--rtl .pm__table-th{padding-left:unset;padding-right:1.2em;text-align:right}#cc-main.cc--rtl .pm__table-td{padding-left:unset;padding-right:1.2em}#cc-main.cc--rtl .pm__table-td:before{padding-left:2em;padding-right:unset}#cc-main.cc--rtl .pm__btn+.pm__btn,#cc-main.cc--rtl .pm__btn-group+.pm__btn-group{margin-left:0;margin-right:.375rem}#cc-main.cc--rtl .pm--flip .pm__btn+.pm__btn,#cc-main.cc--rtl .pm--flip .pm__btn-group+.pm__btn-group{margin-left:.375rem;margin-right:0}#cc-main.cc--rtl .pm--flip.pm--bar:not(.pm--wide) .pm__btn+.pm__btn,#cc-main.cc--rtl .pm--flip.pm--bar:not(.pm--wide) .pm__btn-group+.pm__btn-group{margin-left:0}@media screen and (max-width:640px){#cc-main .pm{border-radius:0;bottom:0;height:auto;left:0;max-height:100%;max-width:none!important;right:0;top:0;transform:translateY(1.6em)}#cc-main .pm__body,#cc-main .pm__footer,#cc-main .pm__header{padding:.9em!important}#cc-main .pm__badge{display:none}#cc-main .pm__section-table,#cc-main .pm__table-body,#cc-main .pm__table-caption,#cc-main .pm__table-td,#cc-main .pm__table-th,#cc-main .pm__table-tr{display:block}#cc-main .pm__table-head{display:none}#cc-main .pm__table-tr:not(:last-child){border-bottom:1px solid var(--cc-separator-border-color)}#cc-main .pm__table-td{display:flex;justify-content:space-between}#cc-main .pm__table-td:before{color:var(--cc-primary-color);content:attr(data-column);flex:1;font-weight:600;min-width:100px;overflow:hidden;padding-right:2em;text-overflow:ellipsis}#cc-main .pm__table-td>div{flex:3}#cc-main .pm__btn-group,#cc-main .pm__footer{flex-direction:column!important}#cc-main .pm__btn-group{display:flex!important}#cc-main .pm__btn+.pm__btn,#cc-main .pm__btn-group+.pm__btn-group{margin:.375rem 0 0!important}#cc-main .pm--flip .pm__btn+.pm__btn,#cc-main .pm--flip .pm__btn-group+.pm__btn-group{margin-bottom:.375rem!important;margin-top:0!important}#cc-main .pm--flip .pm__btn-group,#cc-main .pm--flip .pm__footer{flex-direction:column-reverse!important}.show--preferences #cc-main .cc--anim .pm{transform:translateY(0)!important}}
/* --- src/css/components/benefits.css --- */
/* Trois cartes d'arguments (« Des offres sur-mesure »…). */

.benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.benefit {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-card);
  box-shadow: var(--shadow-card);
}

.benefit__title {
  color: var(--color-primary);
}

.benefit__text {
  font-size: var(--text-md);
}

@media (max-width: 991px) {
  .benefits { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .benefit { gap: var(--space-xs); }
  .benefit__title { font-size: var(--text-lg); }
  .benefit__text { font-size: var(--text-base); }
}

/* --- src/css/components/button.css --- */
/* Boutons. .button = vert clair (formulaire), --secondary = gris, --primary = vert foncé. */

.button {
  display: inline-block;
  padding: var(--space-button);
  border: 0;
  border-radius: var(--radius-sm);
  background-color: var(--color-accent);
  color: var(--color-heading-dark);
  font-weight: var(--weight-extrabold);
  line-height: inherit;
  text-decoration: none;
  cursor: pointer;
}

.button:disabled {
  opacity: .6;
  cursor: wait;
}

.button--secondary {
  background-color: var(--color-surface-muted);
}

.button--primary {
  border: 3px solid var(--color-primary);
  background-color: var(--color-primary);
  transition: background-color var(--transition), color var(--transition);
}

.button--primary:hover {
  background-color: transparent;
  color: var(--color-primary);
}

/* --- src/css/components/choice.css --- */
/* Boutons de choix du formulaire (Électricité / Gaz, fournisseur, Oui / Non…). */

.choices {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-2xs);
  width: 100%;
}

.choice {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--space-2xs);
  width: 49%;
  height: 100px;
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-md);
  color: var(--color-heading-dark);
  font-weight: var(--weight-bold);
  text-align: center;
  cursor: pointer;
  transition: background-color var(--transition), border-color var(--transition), color var(--transition);
}

.choice:hover {
  border-color: var(--color-surface-muted);
  background-color: var(--color-surface-muted);
}

.choice:has(.choice__input:checked) {
  color: var(--color-primary);
}

.choice:has(.choice__input:focus-visible) {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

/* Le vrai bouton radio reste accessible au clavier mais n'est pas affiché */
.choice__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.choice__icons {
  display: flex;
  color: var(--color-primary);
}

.choice__icon {
  width: 35px;
  height: 35px;
}

@media (max-width: 767px) {
  .choice { width: 100%; }
}

@media (max-width: 479px) {
  .choices { flex-direction: column; }
}

/* --- src/css/components/cookie-banner.css --- */
/* Bandeau cookies (bibliothèque CookieConsent) aux couleurs du site. */

#cc-main {
  --cc-font-family: var(--font-body);
  --cc-btn-primary-bg: var(--color-primary);
  --cc-btn-primary-border-color: var(--color-primary);
  --cc-btn-primary-hover-bg: var(--color-primary-hover);
  --cc-btn-primary-hover-border-color: var(--color-primary-hover);
  --cc-btn-secondary-bg: var(--color-surface-muted);
  --cc-btn-secondary-border-color: var(--color-surface-muted);
  --cc-toggle-on-bg: var(--color-primary);
  --cc-link-color: var(--color-primary);
}

/* --- src/css/components/cta-banner.css --- */
/* Bandeau d'appel à l'action en bas de page. */

.cta-banner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  max-width: 450px;
  margin-inline: auto;
  padding-block: var(--space-2xl);
  text-align: center;
}

.cta-banner__title {
  margin: 20px 0 10px;
  font-size: var(--heading-3);
  font-weight: var(--weight-extrabold);
  line-height: var(--heading-3-line);
}

/* Variante haute (page de remerciement) */
.cta-banner--tall {
  padding-block: 10rem;
}

/* --- src/css/components/footer.css --- */
/* Pied de page. */

.site-footer {
  padding-block: var(--space-lg);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: 16px;
}

.site-footer__logo {
  display: inline-block;
  width: 150px;
}

.site-footer__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-xs);
}

.site-footer__title {
  border-bottom: 2px solid var(--color-heading-dark);
  font-size: var(--text-lg);
}

.site-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space-xs);
  width: 100%;
}

.site-footer__contacts {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2xs);
}

.site-footer__contact {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
  color: var(--color-text);
  text-decoration: none;
}

.site-footer__contact-icon {
  width: 25px;
}

.site-footer__legal {
  display: flex;
  gap: var(--space-2xs);
}

.site-footer__link {
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-text);
  font-size: var(--text-sm);
  text-decoration: underline;
}

.site-footer__link:hover {
  font-weight: var(--weight-medium);
}

@media (max-width: 991px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__bottom { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 767px) {
  .site-footer__grid { grid-template-columns: .5fr 1fr; }
  .site-footer__legal { flex-direction: column; }
}

@media (max-width: 479px) {
  .site-footer__grid { grid-template-columns: 1fr; }
  .site-footer__logo { justify-self: center; width: 80px; }
  .site-footer__title { font-size: var(--text-md); }
  .site-footer__content,
  .site-footer__bottom,
  .site-footer__contacts,
  .site-footer__legal { align-items: center; }
}

/* --- src/css/components/header.css --- */
/* En-tête : logo + bouton d'appel (optionnel, voir site.header.showCallButton). */

.site-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.site-header__logo {
  display: inline-block;
  width: 150px;
}

.call-button {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  padding: 10px;
  border-radius: var(--radius-sm);
  background-color: var(--color-accent);
  color: var(--color-primary);
  text-decoration: none;
  transition: background-color var(--transition), color var(--transition);
}

.call-button:hover {
  background-color: var(--color-primary);
  color: var(--color-surface);
}

.call-button__icon { width: 35px; height: 35px; }
.call-button__text { display: flex; flex-direction: column; }
.call-button__number { font-size: var(--text-md); }
.call-button__caption { font-size: var(--text-2xs); }

@media (max-width: 479px) {
  .site-header__logo { width: 80px; }
  .call-button { gap: var(--space-2xs); padding-inline: 15px; }
  .call-button__icon { display: none; }
  .call-button__text { gap: var(--space-3xs); }
  .call-button__number { font-size: var(--text-sm); font-weight: 600; }
}

/* --- src/css/components/hero.css --- */
/* Grand bandeau d'accueil : titre, arguments, note et formulaire. */

.hero {
  height: var(--hero-height);
  margin-top: var(--space-md);
  background-image:
    var(--hero-fade),
    linear-gradient(var(--hero-veil), var(--hero-veil)),
    var(--image-hero);
  background-position: 0 0, 0 0, 50%;
  background-size: auto, auto, cover;
}

.hero__inner {
  position: relative;
  display: flex;
}

.hero__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
  max-width: 45vw;
}

.hero__title {
  margin-top: 50px;
  color: var(--color-primary);
  font-size: 70px;
  font-weight: var(--weight-black);
  line-height: 1.1;
}

.hero__checklist {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.hero__check {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
}

.hero__check-text {
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  line-height: 1.2;
}

@media (min-width: 1280px) {
  .hero__content { max-width: 600px; }
  .hero__title { font-size: 50px; }
}

@media (max-width: 991px) {
  .hero { --hero-veil: var(--hero-veil-compact); }
  .hero__inner { flex-direction: column; gap: var(--space-md); text-align: center; }
  .hero__content { justify-content: center; align-items: center; max-width: none; }
  .hero__title { font-size: 60px; }
  .hero__checklist { gap: 0; justify-content: center; align-items: center; }
  .hero__check { text-align: left; }
  .hero__check-text { font-size: var(--text-md); }
}

@media (max-width: 767px) {
  .hero { margin-top: 0; }
  .hero__inner { gap: var(--space-xl); }
  .hero__title { font-size: 40px; }
}

@media (max-width: 479px) {
  .hero__inner,
  .hero__content { gap: var(--space-sm); }
  .hero__title { font-size: 30px; }
  .hero__checklist { flex-direction: row; gap: var(--space-2xs); justify-content: center; align-items: flex-start; }
  .hero__check { flex-direction: column; gap: var(--space-3xs); width: 50%; text-align: center; }
  .hero__check-text { font-size: var(--text-base); font-weight: var(--weight-extrabold); }
}

/* --- src/css/components/how-it-works.css --- */
/* « Comment ça marche » : 1, 2, 3 avec flèches. */

.how-it-works {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: var(--space-lg);
}

.how-it-works__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  width: 250px;
  text-align: center;
}

.how-it-works__number {
  font-family: var(--font-script);
  font-size: var(--text-number);
}

.how-it-works__text {
  font-size: var(--text-md);
}

.how-it-works__arrow {
  position: absolute;
  top: 0;
  left: 69%;
  width: 200px;
}

@media (max-width: 991px) {
  .how-it-works__arrow { left: 158px; }
}

@media (max-width: 767px) {
  .how-it-works { flex-direction: column; align-items: center; }
  .how-it-works__step { width: auto; }
  .how-it-works__arrow { display: none; }
}

/* --- src/css/components/lead-form.css --- */
/* Formulaire de lead multi-étapes (carte flottante du bandeau d'accueil). */

.lead-form {
  position: absolute;
  top: -100px;
  right: var(--gutter); /* aligné sur la marge du conteneur */
  width: 40vw;
  border-radius: var(--radius-md);
  background-color: var(--color-surface);
  box-shadow: var(--shadow-float);
}

/* --- En-tête vert --- */
.lead-form__header {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--space-xs);
  padding: var(--space-card);
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  background-color: var(--color-accent);
  color: var(--color-primary);
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  text-align: center;
}

.lead-form__title {
  font-weight: var(--weight-extrabold);
}

.lead-form__badge {
  padding: 8px var(--space-button);
  border-radius: var(--radius-md);
  background-color: var(--color-surface);
  font-size: var(--text-base);
  font-weight: var(--weight-medium);
}

.lead-form__arrow {
  position: absolute;
  top: 22%;
  left: -28%;
  width: 150px;
  color: var(--color-primary);
  transform: rotateY(-180deg) rotateZ(-150deg);
}

/* --- Corps --- */
.lead-form__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-bottom: 15px;
  padding: 32px 32px 0;
}

.lead-form__progress {
  border-radius: var(--radius-md);
  background-color: var(--color-surface-muted);
}

.lead-form__progress-bar {
  width: 0;
  height: 10px;
  border-radius: var(--radius-md);
  background-color: var(--color-primary);
  transition: width var(--transition);
}

.lead-form__step {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.lead-form__question {
  margin-bottom: var(--space-xs);
  font-weight: var(--weight-bold);
}

.lead-form__notice {
  margin-top: calc(-1 * var(--space-2xs));
  color: var(--color-text);
  font-size: var(--text-xs);
}

.lead-form__error {
  color: var(--color-error);
  font-size: var(--text-xs);
}

.lead-form__failure {
  padding: 10px;
  background-color: var(--color-error-surface);
  line-height: 1.4;
  text-align: center;
}

/* --- Champs --- */
.lead-form__fields {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

.lead-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  width: 100%;
}

.lead-form__field--half {
  width: calc(50% - var(--space-xs) / 2);
}

.lead-form__label {
  margin-bottom: 5px;
  font-weight: var(--weight-bold);
}

.input {
  display: block;
  width: 100%;
  height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--color-input-border);
  border-radius: var(--radius-sm);
  background-color: var(--color-surface);
  color: var(--color-input-text);
  font: inherit;
  font-size: var(--text-input);
  line-height: 1.42857;
}

.input:focus {
  border-color: var(--color-focus);
  outline: 0;
}

.input[aria-invalid="true"] {
  border-color: var(--color-error);
}

/* --- Consentement --- */
.consent {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2xs);
  cursor: pointer;
}

.consent__input {
  flex: none;
  margin: 0;
}

.consent__text {
  font-size: var(--text-xs);
  line-height: 1.3;
}

.consent__text a {
  text-decoration: underline;
}

.lead-form__captcha:empty {
  display: none;
}

/* --- Navigation --- */
.lead-form__nav {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

@media (min-width: 1280px) {
  .lead-form { width: 500px; }
}

@media (max-width: 991px) {
  .lead-form { position: static; align-self: center; width: 80%; }
  .lead-form__body { text-align: left; }
  .lead-form__arrow { display: none; }
}

@media (max-width: 767px) {
  .lead-form { width: 100%; }
}

@media (max-width: 479px) {
  .lead-form__header { padding: var(--space-button); }
  .lead-form__title { font-size: var(--text-base); }
  .lead-form__field--half { width: 100%; }
  .lead-form__nav--submit { flex-direction: column; gap: var(--space-xs); }
}

/* Champ piège anti-robots : hors écran (et non display:none, que certains robots repèrent) */
.lead-form__trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* --- src/css/components/partners.css --- */
/* Logos des fournisseurs partenaires. */

.partners__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-lg);
}

.partners__item {
  width: 150px;
  height: 100px;
}

.partners__logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Le formulaire ne flotte plus : on laisse la place sous le bandeau d'accueil */
@media (max-width: 991px) {
  .partners__list { margin-top: 15rem; }
}

@media (max-width: 767px) {
  .partners__list { flex-wrap: wrap; gap: var(--space-xs); }
  .partners__item { width: 100px; }
}

@media (max-width: 479px) {
  .partners__list { gap: var(--space-2xs); margin-top: 10rem; }
  .partners__item { width: 60px; }
}

/* --- src/css/components/promises.css --- */
/* Engagements (« Un service 100% gratuit… ») avec pastille « + ». */

.promises {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding-bottom: var(--space-2xl);
}

.promise {
  padding-bottom: var(--space-xs);
}

.promise__title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding-bottom: 20px;
  color: var(--color-primary);
  font-size: var(--text-xl);
  font-weight: var(--weight-extrabold);
  line-height: 1;
}

.promise__icon {
  display: flex;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  padding: 8px;
  border-radius: var(--radius-round);
  background-color: var(--color-accent);
}

.promise__text {
  padding-top: 4px;
}

@media (max-width: 767px) {
  .promise__title { font-size: var(--text-lg); }
}

/* --- src/css/components/rating.css --- */
/* Note « 5 étoiles + avatars + 1000+ clients satisfaits » et étoiles seules. */

.rating {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  font-size: var(--text-lg);
}

.rating__visuals {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
}

.rating__avatars {
  width: 100px;
}

.rating--reviews {
  align-items: center;
  gap: var(--space-xs);
  color: var(--color-heading-dark);
  font-weight: var(--weight-bold);
}

.stars {
  display: flex;
  gap: var(--space-2xs);
  color: var(--color-star);
}

.stars__star { width: 25px; }

.stars--sm { gap: var(--space-3xs); }
.stars--sm .stars__star { width: 1rem; }

@media (max-width: 991px) {
  .rating { flex-direction: row; justify-content: center; align-items: center; }
}

@media (max-width: 767px) {
  .rating--hero { font-size: var(--text-base); font-weight: var(--weight-bold); }
}

@media (max-width: 479px) {
  .rating { flex-direction: column; gap: .3rem; }
  .rating__visuals { gap: .5em; }
  .rating__avatars { width: 80px; }
  .stars { gap: .1rem; }
  .stars--lg .stars__star { width: 20px; }
}

/* --- src/css/components/reveal.css --- */
/* Apparition en fondu des blocs [data-reveal] (piloté par src/js/reveal.js). */

.js [data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .6s ease;
}

.js [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* --- src/css/components/reviews.css --- */
/* Avis clients (fond vert). */

.reviews {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
  padding-block: var(--space-2xl);
}

.reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.review {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-card);
  border-radius: var(--radius-md);
  background-color: var(--color-surface);
}

.review__photo {
  width: 100px;
  height: 100px;
  border-radius: 60%;
  object-fit: cover;
}

.review__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2xs);
}

.review__name {
  font-size: var(--text-xl);
  line-height: 1;
}

@media (max-width: 767px) {
  .reviews { gap: var(--space-lg); }
  .reviews__grid { grid-template-columns: 1fr; }
  .review__name { font-size: var(--text-lg); }
}

/* --- src/css/components/steps-bar.css --- */
/* Bandeau « Remplissez le formulaire / Nos spécialistes… / Recevez… » sous le logo. */

.steps-bar__list {
  display: flex;
  gap: var(--space-xs);
  width: 55%;
}

.steps-bar__item {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
}

.steps-bar__icon {
  display: flex;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  color: var(--color-primary);
}

.steps-bar__text {
  font-size: var(--text-base);
}

@media (max-width: 991px) {
  .steps-bar__list { width: 100%; }
  .steps-bar__item { width: 33.3333%; }
}

@media (max-width: 767px) {
  .steps-bar { display: none; }
}

/* --- src/css/components/text-page.css --- */
/* Pages de texte : mentions légales, confidentialité, remerciement, 404. */

.text-page {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-height: 60vh;
}

.text-page__body {
  max-width: 70ch;
  line-height: 1.5;
}

.text-page__body > * + * {
  margin-top: var(--space-xs);
}

.text-page__body h2 {
  margin-top: var(--space-md);
  font-size: var(--text-md);
  line-height: 1.3;
}

.text-page__body a:not(.button) {
  color: var(--color-primary);
}

@media (max-width: 767px) {
  .text-page { min-height: 50vh; }
}
