/* ═══════════════════════════════════════════════
   EKLOR / Le registre
   Papier, encre, tampons, fiches et factures.
   ═══════════════════════════════════════════════ */

/* ---------- 1. TOKENS ---------- */
:root{
  --papier:#F6F4EF;
  --papier-fonce:#ECE8DF;
  --encre:#16140F;
  --graphite:#5C574D;
  --rouge:#D23A1F;
  --vert:#2E6B4A;
  --filet:#CFC7B6;

  /* Rouge assombri pour le petit texte : le rouge tampon n'atteint pas
     le contraste AA (4,5:1) sur le papier en dessous de 24 px. */
  --rouge-texte:#B02E16;
  --rouge-survol:#B5301A;
  --surligneur:rgba(210,58,31,.30);

  --f-titre:'Archivo','Arial Narrow',Arial,sans-serif;
  --f-texte:'IBM Plex Sans',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,'Cascadia Mono',Consolas,monospace;

  --maxw:1200px;
  --gouttiere:32px;
  --rayon:2px;
}

/* ---------- 2. BASE ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{
  background:var(--papier);color:var(--encre);
  font-family:var(--f-texte);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
@media(min-width:1024px){body{font-size:18px}}
a{color:inherit}
ul,ol{list-style:none}
img,svg{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit}
::selection{background:var(--encre);color:var(--papier)}
:focus-visible{outline:2px solid var(--encre);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gouttiere)}
@media(max-width:640px){:root{--gouttiere:18px}}

.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gouttiere);row-gap:40px}
.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c12{grid-column:1/-1}
@media(max-width:960px){.c5,.c6,.c7{grid-column:1/-1}}

/* ---------- 3. TYPOGRAPHIE ---------- */
h1,h2,h3{font-family:var(--f-titre);font-weight:800;font-stretch:87%;line-height:1;letter-spacing:-0.01em}
h1{font-size:clamp(2.35rem,4.6vw,4.25rem)}
h2{font-size:clamp(2rem,3.6vw,3.25rem);margin-bottom:28px}
h3{font-size:1.4rem;line-height:1.1}
p+p{margin-top:14px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.graphite{color:var(--graphite)}
.chapeau{font-size:1.1em;color:var(--graphite);max-width:620px}

/* Surligneur : un seul mot par titre, trait de feutre rouge à 30 % */
.surligne{box-shadow:inset 0 -.3em 0 var(--surligneur);-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* Étiquette de champ (fiche, facture, simulateur) */
.champ{font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--graphite)}

/* ---------- 4. BOUTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:12px 22px;border:1px solid var(--encre);border-radius:var(--rayon);
  font-family:var(--f-texte);font-weight:500;font-size:16px;line-height:1.3;text-decoration:none;text-align:center;
  cursor:pointer;transition:background-color .15s,color .15s;
}
.btn--rouge{background:var(--rouge);border-color:var(--rouge);color:#fff}
.btn--rouge:hover{background:var(--rouge-survol);border-color:var(--rouge-survol)}
.btn--encre{background:var(--encre);color:var(--papier)}
.btn--encre:hover{background:#2C2920}
.btn--trait{background:transparent;color:var(--encre)}
.btn--trait:hover{background:var(--papier-fonce)}
.btn--plein{width:100%}

/* ---------- 5. EN-TÊTE ---------- */
.entete{position:sticky;top:0;z-index:50;background:var(--papier);border-bottom:1px solid var(--filet)}
.entete .container{display:flex;align-items:center;justify-content:space-between;gap:20px;height:68px}
.logo{font-family:var(--f-titre);font-weight:800;font-stretch:87%;font-size:24px;letter-spacing:.02em;text-decoration:none;display:inline-flex;align-items:baseline;gap:2px}
.logo i{width:7px;height:7px;background:var(--rouge);display:inline-block;font-style:normal}
.nav{display:flex;align-items:center;gap:26px}
.nav a:not(.btn){font-size:15px;text-decoration:none;color:var(--graphite)}
.nav a:not(.btn):hover{color:var(--encre);text-decoration:underline;text-underline-offset:4px}
.nav .btn{min-height:42px;padding:9px 16px;font-size:15px}
@media(max-width:860px){.nav a:not(.btn){display:none}}

/* ---------- 6. SECTIONS (filets de registre) ---------- */
.section{padding:125px 0;border-top:1px solid var(--filet)}
.section--fonce{background:var(--papier-fonce)}
@media(max-width:640px){.section{padding:83px 0}}

/* ---------- 7. HERO + SIMULATEUR ---------- */
.hero{padding:56px 0 114px}
.hero-grille{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gouttiere)}
.hero-titre{grid-column:1/span 5;grid-row:1}
.hero-chapeau{grid-column:1/span 5;grid-row:2;align-self:start}
.hero-sim{grid-column:6/span 7;grid-row:1/span 2;align-self:start}
.hero h1{margin-bottom:18px}
.hero-sous{font-family:var(--f-titre);font-weight:800;font-stretch:87%;font-size:clamp(1.35rem,2vw,1.75rem);line-height:1.15;margin-bottom:20px}
.hero-ligne{font-family:var(--f-mono);font-size:15px;margin-bottom:22px}
.hero-ligne b{font-weight:500;color:var(--rouge-texte)}
@media(max-width:960px){
  .hero-titre,.hero-chapeau,.hero-sim{grid-column:1/-1;grid-row:auto}
  .hero-sim{order:2;margin-bottom:28px}
  .hero-chapeau{order:3}
}
@media(max-width:640px){.hero{padding:32px 0 72px}}

/* Le simulateur est une interface, pas un document */
.sim{background:#FFFFFF;border-radius:6px;padding:28px;box-shadow:0 1px 2px rgba(22,20,15,.06),0 8px 24px rgba(22,20,15,.06)}
@media(max-width:640px){.sim{padding:20px 16px}}
.sim label.champ,.sim legend{display:block;margin-bottom:8px}
.select{
  width:100%;min-height:48px;padding:10px 40px 10px 12px;
  background:#FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316140F' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center;
  border:1px solid var(--filet);border-radius:4px;appearance:none;-webkit-appearance:none;font-size:16px;
}
.select:hover{border-color:var(--graphite)}
.sim-menus{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;align-items:end}
@media(max-width:560px){.sim-menus{grid-template-columns:1fr}}
.sim-resultat{border-top:1px solid var(--filet);padding-top:22px}
.sim-prix{font-family:var(--f-mono);font-weight:500;font-size:64px;line-height:1;letter-spacing:-0.03em;font-variant-numeric:tabular-nums}
@media(max-width:400px){.sim-prix{font-size:54px}}
.sim-unite{font-size:16px;margin-top:8px}
.sim-zeros{font-family:var(--f-mono);font-size:14px;margin:14px 0 6px;color:var(--rouge-texte)}
.sim-delai{font-size:15px;color:var(--graphite)}

/* Sélecteur de mode : deux boutons courts, groupe radio navigable aux flèches */
.modes{border:0;margin:22px 0 20px}
.modes-options{display:inline-flex;flex-wrap:wrap;gap:0;border:1px solid var(--filet);border-radius:4px;padding:3px;background:var(--papier)}
.mode{position:relative;display:block;padding:8px 14px;border-radius:3px;cursor:pointer;font-size:15px;font-weight:500;color:var(--graphite)}
.mode input{position:absolute;opacity:0;width:1px;height:1px}
.mode:has(input:checked){background:var(--encre);color:#FFFFFF}
.mode:has(input:focus-visible){outline:2px solid var(--rouge);outline-offset:2px}
.mode-ligne{margin-top:10px;font-size:15px;color:var(--graphite)}

.sim-cadrage{font-size:17px;line-height:1.5;margin-bottom:18px}
.sim-erreur{font-size:15px}

/* Plafond mensuel (page Tarifs) */
.sim-plafond{margin:22px 0 0;padding:16px 0 0;border-top:1px solid var(--filet)}
.sim-plafond-ligne{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.sim-plafond input[type=range]{width:100%;margin:12px 0 8px;accent-color:var(--encre);height:28px}
.sim-budget{font-size:15px}
.sim-budget strong{font-family:var(--f-mono);font-weight:500}
.sim-justif{margin-top:14px;font-size:14px;color:var(--graphite)}
[hidden]{display:none!important}

/* ---------- 8. TAMPON ---------- */
.tampon{--angle:-6deg;position:absolute;color:var(--rouge);transform:rotate(var(--angle));pointer-events:none;opacity:.92}
.tampon text{font-family:var(--f-titre);font-weight:800;font-stretch:87%;fill:currentColor}
.js .tampon:not(.est-tamponne){opacity:0}
.tampon.est-tamponne{animation:tamponner .2s ease-out both}
.tampon--droit{--angle:4deg}
@keyframes tamponner{from{opacity:0;transform:rotate(var(--angle)) scale(1.15)}to{opacity:.92;transform:rotate(var(--angle)) scale(1)}}

/* ---------- 9. FACTURE ---------- */
.facture{position:relative;background:var(--papier);border:1px solid var(--filet);border-radius:var(--rayon);padding:30px 28px 26px;
  clip-path:polygon(0 0,calc(100% - 26px) 0,100% 26px,100% 100%,0 100%)}
.facture-tete{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:2px solid var(--encre);margin-bottom:6px}
.facture-tete strong{font-family:var(--f-titre);font-weight:800;font-stretch:87%;font-size:26px;line-height:1}
.facture table{width:100%;border-collapse:collapse;font-family:var(--f-mono);font-size:14.5px}
.facture td{padding:14px 0;border-bottom:1px solid var(--filet);vertical-align:top}
.facture td:last-child{text-align:right;white-space:nowrap;padding-left:16px}
.facture td small{display:block;font-family:var(--f-texte);font-size:13px;color:var(--graphite);margin-top:3px}
.facture .zero{color:var(--rouge-texte);font-weight:500}
.facture tfoot td{border-bottom:0;padding-top:18px;font-weight:500;font-size:17px}
.facture .tampon{left:46%;top:43%;width:150px}
@media(max-width:480px){.facture{padding:24px 16px 20px}.facture table{font-size:13px}.facture{padding-bottom:104px}.facture .tampon{width:118px;left:auto;right:16px;top:auto;bottom:16px}}

/* ---------- 10. FICHE DE TRANSMISSION ---------- */
.fiche{position:relative;background:var(--papier-fonce);border:1px solid var(--filet);border-radius:var(--rayon);padding:30px 28px 28px 58px}
.fiche::before{ /* marge perforée */
  content:'';position:absolute;left:0;top:0;bottom:0;width:38px;border-right:1px dashed var(--filet);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='38' height='44'%3E%3Ccircle cx='19' cy='22' r='5' fill='%23F3EFE6' stroke='%23CFC7B6'/%3E%3C/svg%3E") repeat-y center top
}
.fiche-tete{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:baseline;border-bottom:2px solid var(--encre);padding-bottom:14px;margin-bottom:4px}
.fiche-tete strong{font-family:var(--f-titre);font-weight:800;font-stretch:87%;font-size:26px;line-height:1}
.exemple{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--encre);padding:2px 8px}
.fiche dl{display:grid;grid-template-columns:200px 1fr}
.fiche dt,.fiche dd{padding:13px 0;border-bottom:1px solid var(--filet)}
.fiche dt{padding-right:16px}
.fiche dd{font-size:16px}
.fiche dd.mono{font-size:15px}
.fiche .ecoute{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:15px}
.fiche .ecoute::before{content:'';border-left:9px solid var(--encre);border-top:6px solid transparent;border-bottom:6px solid transparent}
.fiche-pied{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;font-size:14px;color:var(--graphite)}
.fiche{padding-bottom:112px}
.fiche .tampon{right:26px;bottom:20px;width:170px}
.conforme{color:var(--vert);font-weight:500}
@media(max-width:640px){
  .fiche{padding:22px 16px 22px 44px}
  .fiche::before{width:28px}
  .fiche dl{grid-template-columns:1fr}
  .fiche dt{border-bottom:0;padding-bottom:2px}
  .fiche dd{padding-top:2px}
  .fiche{padding-bottom:96px}
  .fiche .tampon{width:140px;right:14px;bottom:18px}
}

/* ---------- 11. FRISE (comment ça marche) ---------- */
.frise{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin-top:16px;counter-reset:etape}
.frise::before{content:'';position:absolute;left:0;right:0;top:19px;border-top:2px solid var(--encre)}
.etape{position:relative;padding-right:22px}
.etape-num{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--papier);border:2px solid var(--encre);font-family:var(--f-mono);font-weight:500;margin-bottom:18px}
.etape:last-child .etape-num{background:var(--encre);color:var(--papier)}
.etape h3{font-size:1.3rem;margin-bottom:8px}
.etape p{font-size:15.5px;color:var(--graphite)}
@media(max-width:860px){
  .frise{grid-template-columns:1fr;row-gap:28px}
  .frise::before{left:19px;right:auto;top:0;bottom:0;border-top:0;border-left:2px solid var(--encre)}
  .etape{display:grid;grid-template-columns:40px 1fr;column-gap:18px;padding-right:0}
  .etape-num{margin-bottom:0;grid-row:span 2}
}

/* ---------- 12. GARANTIES (grille à filets) ---------- */
.garanties{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--encre)}
.garantie{padding:26px 24px 28px 0;border-bottom:1px solid var(--filet)}
.garantie:not(:nth-child(3n+1)){padding-left:24px;border-left:1px solid var(--filet)}
.garantie .garantie-chiffre{color:var(--encre);font-family:var(--f-mono);font-weight:500;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.1;margin-bottom:10px;letter-spacing:-0.02em}
.garantie p{font-size:16px;color:var(--graphite)}
.garantie p strong{color:var(--encre);font-weight:500}
@media(max-width:860px){
  .garanties{grid-template-columns:1fr 1fr}
  .garantie,.garantie:not(:nth-child(3n+1)){padding:22px 16px 22px 0;border-left:0}
  .garantie:nth-child(2n){padding-left:16px;border-left:1px solid var(--filet)}
}
@media(max-width:520px){
  .garanties{grid-template-columns:1fr}
  .garantie:nth-child(2n){padding-left:0;border-left:0}
}
.renvoi{margin-top:22px;font-size:15px}

/* ---------- 13. COMPARATIF ---------- */
.comparatif{width:100%;border-collapse:collapse;font-size:16px}
.comparatif th,.comparatif td{text-align:left;padding:16px 14px;border-bottom:1px solid var(--filet);vertical-align:top}
.comparatif thead th{font-family:var(--f-titre);font-weight:800;font-stretch:87%;font-size:1.35rem;border-bottom:2px solid var(--encre)}
.comparatif tbody th{font-weight:500;width:22%}
.comparatif .eklor{background:var(--papier);border-left:2px solid var(--encre);border-right:2px solid var(--encre);font-weight:500}
.comparatif thead th.eklor{font-family:var(--f-titre);font-weight:800;font-stretch:87%}
.comparatif td:not(.eklor){color:var(--graphite)}
@media(max-width:760px){
  .comparatif thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .comparatif,.comparatif tbody,.comparatif tr,.comparatif th,.comparatif td{display:block;width:100%}
  .comparatif tr{border-top:2px solid var(--encre);padding:8px 0 14px}
  .comparatif tbody th{width:100%;font-family:var(--f-titre);font-weight:800;font-stretch:87%;font-size:1.3rem;border:0;padding:10px 0 6px}
  .comparatif td{display:grid;grid-template-columns:42% 1fr;gap:12px;padding:9px 10px;border-bottom:1px solid var(--filet)}
  .comparatif td::before{content:attr(data-col);font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--graphite);padding-top:3px}
}

/* ---------- 14. QUI PILOTE ---------- */
.portrait{border:1px solid var(--filet);border-radius:var(--rayon);width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:var(--papier-fonce)}
.portrait-legende{margin-top:10px;font-size:14px;color:var(--graphite)}
.parcours{border-top:2px solid var(--encre);margin:26px 0}
.parcours div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--filet);align-items:baseline}
.parcours strong{font-family:var(--f-mono);font-weight:500;font-size:1.35rem}
.equipe{border-left:4px solid var(--encre);padding:4px 0 4px 18px;font-weight:500}
@media(max-width:480px){.parcours div{grid-template-columns:1fr;gap:2px}}

/* ---------- 15. PROGRAMME PILOTE ---------- */
.pilote{border:2px solid var(--encre);border-radius:var(--rayon);padding:36px 32px;display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center}
.pilote-places{font-family:var(--f-mono);font-weight:500;font-size:clamp(3.5rem,8vw,5.5rem);line-height:.9}
.pilote-places span{display:block;font-size:14px;letter-spacing:.08em;text-transform:uppercase;margin-top:8px}
.pilote h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:12px}
@media(max-width:860px){.pilote{grid-template-columns:1fr;gap:18px;padding:26px 20px}}

/* ---------- 16. FAQ ---------- */
.faq{border-top:2px solid var(--encre)}
.faq details{border-bottom:1px solid var(--filet)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:18px;padding:20px 0;font-weight:500;font-size:1.05em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:var(--f-mono);font-size:22px;line-height:1}
.faq details[open] summary::after{content:'−'}
.faq .reponse{padding:0 0 22px;max-width:700px;color:var(--graphite)}
.faq .reponse ul{margin-top:10px}
.faq .reponse li{padding-left:18px;position:relative;margin-top:6px}
.faq .reponse li::before{content:'';position:absolute;left:0;top:.7em;width:8px;border-top:1.5px solid var(--encre)}
.faq .reponse a{color:var(--encre)}

/* ---------- 17. APPEL DE CADRAGE ---------- */
.agenda{border:1px solid var(--encre);border-radius:var(--rayon);background:var(--papier);overflow:hidden}
.agenda iframe{display:block;width:100%;height:720px;border:0}
@media(max-width:860px){.agenda iframe{height:980px}}
.agenda-secours{margin-top:16px;font-size:15px;color:var(--graphite)}

/* ---------- 18. PIED DE PAGE ---------- */
.pied{border-top:2px solid var(--encre);padding:48px 0 40px;font-size:15px}
.pied-grille{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px 48px}
.pied ul li+li{margin-top:6px}
.pied a{text-decoration:none}
.pied a:hover{text-decoration:underline;text-underline-offset:3px}
.pied-bas{margin-top:36px;padding-top:18px;border-top:1px solid var(--filet);color:var(--graphite);font-size:14px}

/* ---------- 19. BARRE MOBILE ---------- */
.cta-mobile{display:none}
@media(max-width:760px){
  .cta-mobile{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--papier);border-top:1px solid var(--encre)}
  .js .cta-mobile.est-masquee{visibility:hidden}
  .pied{padding-bottom:110px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .tampon:not(.est-tamponne){opacity:.92}
}
