/* =====================================================================
   Bavans Conduite — feuille de style unique
   1. Polices   2. Variables   3. Base   4. En-tête   5. Pied de page
   6. Composants   7. Utilitaires (1 classe = 1 déclaration, en fin de fichier)
   ===================================================================== */

/* 1. Polices --------------------------------------------------------- */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-condensed-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-condensed-700.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/dm-sans.woff2) format('woff2')}

/* 2. Variables ------------------------------------------------------- */
:root{
  --ink:#15171C;     /* texte principal, fonds sombres */
  --red:#D4001A;     /* couleur de marque */
  --red-dark:#A80015;
  --text:#2B2E36;
  --body:#3A3E47;    /* texte courant */
  --mute:#5B5F68;    /* texte secondaire */
  --grey:#8A8F98;
  --line:#DAD5C8;    /* filets */
  --edge:#E2DED4;    /* bordures de cartes */
  --soft:#EFEBE2;
  --sand:#E9E4D8;
  --paper:#F7F5F0;   /* fond de page */
  --paper-18:rgba(247,245,240,.18);
  --white:#FFFFFF;
}

/* 3. Base ------------------------------------------------------------ */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}
body>main{flex:1 0 auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
img{max-width:100%}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:100;background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px;font-weight:600}

/* 4. En-tête --------------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);transition:box-shadow .2s}
.site-header.is-stuck{box-shadow:0 1px 0 var(--line),0 8px 24px rgba(21,23,28,.06)}
.site-header__in{width:100%;max-width:1200px;margin:0 auto;box-sizing:border-box;padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.logo{display:block;height:46px;width:auto;mix-blend-mode:multiply}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 26px}
.nl{padding:10px 2px;font-size:15px;font-weight:500;border-bottom:2px solid transparent;color:var(--ink)}
.nl:hover,.nl.is-active{border-bottom-color:var(--red)}
details.mn{position:relative}
details.mn>summary{list-style:none;cursor:pointer;padding:10px 2px;font-size:15px;font-weight:500;border-bottom:2px solid transparent;display:flex;align-items:center;gap:6px}
details.mn>summary::-webkit-details-marker{display:none}
details.mn>summary:hover,details.mn>summary.is-active{border-bottom-color:var(--red)}
.drop{position:absolute;top:100%;z-index:20;box-sizing:border-box;background:#fff;border:1px solid var(--edge);border-radius:20px;box-shadow:0 18px 40px rgba(21,23,28,.12)}
.drop--permis{left:0;width:min(760px,86vw);padding:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:20px 32px}
.drop--infos{right:0;width:min(300px,86vw);padding:24px 28px}
.drop__label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--red)}
.mi{display:block;padding:8px 0;font-size:15px;color:var(--ink)}
.mi:hover{text-decoration:underline}
@media (max-width:820px){
  html{scroll-padding-top:20px}
  .site-header{position:relative}   /* menu sur plusieurs lignes : pas collant sur mobile */
  .drop{position:static;width:auto;margin-top:8px;box-shadow:none}
}

/* 5. Pied de page ---------------------------------------------------- */
.site-footer{background:var(--ink);color:var(--paper)}
.site-footer__in{max-width:1200px;margin:0 auto;box-sizing:border-box;padding:64px 24px 32px;display:flex;flex-direction:column;gap:48px}
.site-footer__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:32px}
.site-footer__col{display:flex;flex-direction:column;gap:6px}
.site-footer__labels{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px}
.site-footer__logos{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;padding:16px 24px;background:#fff;border-radius:18px}
.site-footer__logos img{display:block;height:64px;width:auto}
.site-footer__labels p{margin:0;flex:1 1 260px;max-width:420px;font-size:13px;line-height:1.5}
.site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:24px;border-top:1px solid var(--paper-18);font-size:14px}
.fl{color:var(--paper);opacity:.8;font-size:15px}
.fl:hover{opacity:1;text-decoration:underline}
.fl--title{opacity:1;font-weight:600}

/* 6. Composants ------------------------------------------------------ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;background:var(--red);color:#fff;font-weight:600;font-size:16px;border-radius:999px;border:0;cursor:pointer}
.btn:hover{background:var(--red-dark)}
.btn2{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1.5px solid var(--ink);font-weight:600;font-size:16px;border-radius:999px}
.btn2:hover{background:var(--ink);color:var(--paper)}
.tile{display:flex;flex-direction:column;gap:14px;padding:28px;background:#fff;border:1px solid var(--edge);border-radius:20px;transition:transform .15s,border-color .15s}
.tile:hover{transform:translateY(-3px);border-color:var(--ink)}
.rel{display:flex;flex-direction:column;gap:6px;padding:20px 22px;background:#fff;border:1px solid var(--edge);border-radius:18px;font-weight:600}
.rel:hover{border-color:var(--ink)}
/* Équipe */
.team{display:flex;flex-direction:column;gap:22px;padding:24px;background:#fff;border:1px solid var(--edge);border-radius:20px}
.team__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.team__mono{display:flex;align-items:center;justify-content:center;flex:none;width:64px;height:64px;border-radius:50%;background:var(--sand);color:var(--red);font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:32px;line-height:1}
.team__tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--soft);font-size:13px;font-weight:600;color:var(--text)}
.team__tag svg{flex:none}
.team__name{display:block;font-size:21px;font-weight:600;line-height:1.2}
.team__role{display:block;margin-top:4px;font-size:15px;line-height:1.4;color:var(--mute)}
.team--lead{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.team--lead .team__mono{background:var(--red);color:#fff}
.team--lead .team__tag{background:var(--paper-18);color:var(--paper)}
.team--lead .team__role{color:#C9C6BE}
.team--cta{justify-content:space-between;background:transparent;border:1.5px dashed var(--line);transition:border-color .15s,background .15s}
.team--cta:hover{border-color:var(--ink);background:#fff}
.team--cta .team__arrow{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;transition:transform .15s}
.team--cta:hover .team__arrow{transform:translateX(4px)}
.dl:hover{background:var(--soft)}
details.faq>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-size:19px;font-weight:600;line-height:1.35}
details.faq>summary::-webkit-details-marker{display:none}
details.faq[open]>summary .pl{transform:rotate(45deg)}
.pl{flex:none;font-size:28px;line-height:1;font-weight:400;transition:transform .15s}
/* Formulaire */
.fld{display:flex;flex-direction:column;gap:8px;font-size:15px;font-weight:600}
.fld input,.fld select,.fld textarea{font-family:inherit;font-size:17px;font-weight:400;min-height:48px;padding:10px 16px;box-sizing:border-box;border:1.5px solid #B9B4A6;border-radius:14px;background:#fff;color:var(--ink)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--ink);outline-offset:1px}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-msg{margin:0 0 20px;padding:16px 20px;background:var(--sand);border-radius:14px;font-weight:600}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* ==== Utilitaires (générés depuis les anciens style="" ; 1 classe = 1 déclaration) ==== */
/* display */
.block{display:block}
.flex{display:flex}
.grid{display:grid}
.inline-flex{display:inline-flex}
/* flex */
.fx-0-0-auto{flex:0 0 auto}
.fx-0-1-240{flex:0 1 240px}
.fx-0-1-260{flex:0 1 260px}
.fx-0-1-280{flex:0 1 280px}
.fx-0-1-380{flex:0 1 380px}
.fx-1-1-320{flex:1 1 320px}
.fx-1-1-340{flex:1 1 340px}
.fx-1-1-360{flex:1 1 360px}
.fx-1-1-380{flex:1 1 380px}
.fx-1-1-420{flex:1 1 420px}
.fx-1-1-480{flex:1 1 480px}
.fx-1-1-520{flex:1 1 520px}
.fx-1-1-560{flex:1 1 560px}
/* flex-direction */
.col{flex-direction:column}
/* flex-wrap */
.flex-wrap{flex-wrap:wrap}
/* align-items */
.items-baseline{align-items:baseline}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.items-start{align-items:flex-start}
.items-stretch{align-items:stretch}
/* justify-content */
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
/* align-self */
.self-start{align-self:flex-start}
/* gap */
.gap-0{gap:0}
.gap-0-32{gap:0 32px}
.gap-0-40{gap:0 40px}
.gap-0-48{gap:0 48px}
.gap-10{gap:10px}
.gap-12{gap:12px}
.gap-12-32{gap:12px 32px}
.gap-14{gap:14px}
.gap-16{gap:16px}
.gap-2{gap:2px}
.gap-20{gap:20px}
.gap-24{gap:24px}
.gap-24-48{gap:24px 48px}
.gap-24-56{gap:24px 56px}
.gap-28{gap:28px}
.gap-40{gap:40px}
.gap-44{gap:44px}
.gap-48{gap:48px}
.gap-48-64{gap:48px 64px}
.gap-56{gap:56px}
.gap-6{gap:6px}
.gap-6-10{gap:6px 10px}
.gap-64{gap:64px}
.gap-72{gap:72px}
.gap-8{gap:8px}
.gap-8-24{gap:8px 24px}
.gap-8-28{gap:8px 28px}
.gap-80{gap:80px}
.gap-88{gap:88px}
.gap-96{gap:96px}
/* grid-template-columns */
.cols-200{grid-template-columns:repeat(auto-fit, minmax(min(200px, 100%), 1fr))}
.cols-220{grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr))}
.cols-240{grid-template-columns:repeat(auto-fit, minmax(min(240px, 100%), 1fr))}
.cols-250{grid-template-columns:repeat(auto-fit, minmax(min(250px, 100%), 1fr))}
.cols-260{grid-template-columns:repeat(auto-fit, minmax(min(260px, 100%), 1fr))}
.cols-280{grid-template-columns:repeat(auto-fit, minmax(min(280px, 100%), 1fr))}
.cols-300{grid-template-columns:repeat(auto-fit, minmax(min(300px, 100%), 1fr))}
.cols-320{grid-template-columns:repeat(auto-fit, minmax(min(320px, 100%), 1fr))}
.cols-340{grid-template-columns:repeat(auto-fit, minmax(min(340px, 100%), 1fr))}
.cols-360{grid-template-columns:repeat(auto-fit, minmax(min(360px, 100%), 1fr))}
.cols-420{grid-template-columns:repeat(auto-fit, minmax(min(420px, 100%), 1fr))}
.cols-460{grid-template-columns:repeat(auto-fit, minmax(min(460px, 100%), 1fr))}
/* grid-column */
.gcol-1-n1{grid-column:1 / -1}
/* box-sizing */
.border-box{box-sizing:border-box}
/* width */
.w-10{width:10px}
.w-100pct{width:100%}
/* max-width */
.mw-1000{max-width:1000px}
.mw-1200{max-width:1200px}
.mw-380{max-width:380px}
.mw-420{max-width:420px}
.mw-440{max-width:440px}
.mw-520{max-width:520px}
.mw-560{max-width:560px}
.mw-620{max-width:620px}
.mw-640{max-width:640px}
.mw-720{max-width:720px}
.mw-760{max-width:760px}
.mw-800{max-width:800px}
.mw-880{max-width:880px}
.mw-980{max-width:980px}
/* height */
.h-10{height:10px}
.h-220{height:220px}
.h-240{height:240px}
.h-300{height:300px}
.h-auto{height:auto}
/* min-height */
.minh-44{min-height:44px}
.minh-48{min-height:48px}
/* aspect-ratio */
.ratio-4-3{aspect-ratio:4 / 3}
.ratio-4-5{aspect-ratio:4 / 5}
/* object-fit */
.fit-contain{object-fit:contain}
.fit-cover{object-fit:cover}
/* overflow */
.overflow-hidden{overflow:hidden}
/* margin */
.m-0{margin:0}
.m-0-0-12{margin:0 0 12px}
.m-0-0-14{margin:0 0 14px}
.m-0-0-16{margin:0 0 16px}
.m-0-0-20{margin:0 0 20px}
.m-0-0-24{margin:0 0 24px}
.m-0-0-28{margin:0 0 28px}
.m-0-0-32{margin:0 0 32px}
.m-0-0-40{margin:0 0 40px}
.m-0-0-48{margin:0 0 48px}
.m-0-0-8{margin:0 0 8px}
.m-0-auto{margin:0 auto}
.m-10-0-0{margin:10px 0 0}
.m-12-0-0{margin:12px 0 0}
.m-14-0-0{margin:14px 0 0}
.m-16-0-0{margin:16px 0 0}
.m-20-0-0{margin:20px 0 0}
.m-24-0-0{margin:24px 0 0}
.m-28-0-0{margin:28px 0 0}
.m-32-0-0{margin:32px 0 0}
.m-48-0-0{margin:48px 0 0}
.m-56-0-0{margin:56px 0 0}
.m-6-0-0{margin:6px 0 0}
.m-8-0-0{margin:8px 0 0}
/* margin-top */
.mt-10{margin-top:10px}
.mt-12{margin-top:12px}
.mt-2{margin-top:2px}
.mt-3{margin-top:3px}
.mt-32{margin-top:32px}
.mt-36{margin-top:36px}
.mt-40{margin-top:40px}
.mt-72{margin-top:72px}
.mt-auto{margin-top:auto}
/* margin-bottom */
.mb-32{margin-bottom:32px}
/* padding */
.p-0{padding:0}
.p-0-0-0-22{padding:0 0 0 22px}
.p-0-20{padding:0 20px}
.p-0-22{padding:0 22px}
.p-10-0{padding:10px 0}
.p-11-12{padding:11px 12px}
.p-12-0{padding:12px 0}
.p-14-0{padding:14px 0}
.p-16{padding:16px}
.p-16-0{padding:16px 0}
.p-16-8{padding:16px 8px}
.p-18-0{padding:18px 0}
.p-20-0{padding:20px 0}
.p-24{padding:24px}
.p-24-24-96{padding:24px 24px 96px}
.p-24-28{padding:24px 28px}
.p-28{padding:28px}
.p-32{padding:32px}
.p-40-48{padding:40px 48px}
.p-48{padding:48px}
.p-56-24{padding:56px 24px}
.p-56-24-96{padding:56px 24px 96px}
.p-72-24-56{padding:72px 24px 56px}
.p-80-24{padding:80px 24px}
.p-96-24-0{padding:96px 24px 0}
.p-96-24-56{padding:96px 24px 56px}
/* padding-top */
.pt-16{padding-top:16px}
.pt-48{padding-top:48px}
/* border */
.bd-1-edge{border:1px solid var(--edge)}
.bd-15-ink{border:1.5px solid var(--ink)}
/* border-top */
.bt-1-edge{border-top:1px solid var(--edge)}
.bt-1-line{border-top:1px solid var(--line)}
.bt-1-soft{border-top:1px solid var(--soft)}
.bt-2-ink{border-top:2px solid var(--ink)}
.bt-6-dashed-ink{border-top:6px dashed var(--ink)}
/* border-bottom */
.bb-1-line{border-bottom:1px solid var(--line)}
.bb-1-papern18{border-bottom:1px solid var(--paper-18)}
/* border-radius */
.r-16{border-radius:16px}
.r-18{border-radius:18px}
.r-20{border-radius:20px}
.r-24{border-radius:24px}
.r-28{border-radius:28px}
.r-50pct{border-radius:50%}
.r-pill{border-radius:999px}
/* background */
.bg-grey{background:var(--grey)}
.bg-ink{background:var(--ink)}
.bg-paper{background:var(--paper)}
.bg-red{background:var(--red)}
.bg-sand{background:var(--sand)}
.bg-transparent{background:transparent}
.bg-white{background:var(--white)}
/* color */
.c-body{color:var(--body)}
.c-ink{color:var(--ink)}
.c-mute{color:var(--mute)}
.c-paper{color:var(--paper)}
.c-red{color:var(--red)}
.c-text{color:var(--text)}
/* opacity */
.o-85{opacity:0.85}
.o-9{opacity:0.9}
/* mix-blend-mode */
.blend-multiply{mix-blend-mode:multiply}
/* font-family */
.font-display{font-family:'Barlow Condensed',sans-serif}
/* font-size */
.fs-13{font-size:13px}
.fs-14{font-size:14px}
.fs-15{font-size:15px}
.fs-16{font-size:16px}
.fs-17{font-size:17px}
.fs-18{font-size:18px}
.fs-19{font-size:19px}
.fs-20{font-size:20px}
.fs-22{font-size:22px}
.fs-30{font-size:30px}
.fs-30-44{font-size:clamp(30px, 4vw, 44px)}
.fs-34{font-size:34px}
.fs-34-52{font-size:clamp(34px, 5vw, 52px)}
.fs-36-56{font-size:clamp(36px, 5vw, 56px)}
.fs-36-64{font-size:clamp(36px, 5vw, 64px)}
.fs-38{font-size:38px}
.fs-40{font-size:40px}
.fs-44-80{font-size:clamp(44px, 7vw, 80px)}
.fs-48{font-size:48px}
.fs-48-104{font-size:clamp(48px, 8vw, 104px)}
.fs-48-96{font-size:clamp(48px, 8vw, 96px)}
.fs-52{font-size:52px}
.fs-52-128{font-size:clamp(52px, 9vw, 128px)}
.fs-56{font-size:56px}
.fs-64-160{font-size:clamp(64px, 12vw, 160px)}
.fs-72{font-size:72px}
.fs-88{font-size:88px}
/* font-weight */
.fw-400{font-weight:400}
.fw-500{font-weight:500}
.fw-600{font-weight:600}
.fw-700{font-weight:700}
/* line-height */
.lh-092{line-height:0.92}
.lh-095{line-height:0.95}
.lh-1{line-height:1}
.lh-102{line-height:1.02}
.lh-105{line-height:1.05}
.lh-125{line-height:1.25}
.lh-13{line-height:1.3}
.lh-14{line-height:1.4}
.lh-145{line-height:1.45}
.lh-15{line-height:1.5}
.lh-155{line-height:1.55}
.lh-16{line-height:1.6}
.lh-165{line-height:1.65}
/* letter-spacing */
.ls-006{letter-spacing:0.06em}
.ls-008{letter-spacing:0.08em}
.ls-n0005{letter-spacing:-0.005em}
/* text-transform */
.uppercase{text-transform:uppercase}
/* text-align */
.text-center{text-align:center}
.text-right{text-align:right}
/* text-wrap */
.wrap-balance{text-wrap:balance}
.wrap-pretty{text-wrap:pretty}
/* text-decoration */
.underline{text-decoration:underline}
/* white-space */
.nowrap{white-space:nowrap}
/* list-style */
.list-none{list-style:none}
/* cursor */
.cursor-pointer{cursor:pointer}
