/* Charte graphique Bravi Car */
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url("../fonts/barlow-latin-600-normal.a1e2a2d7d4c0.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-weight:700;font-display:swap;src:url("../fonts/barlow-latin-700-normal.15481e4eab6d.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:400;font-display:swap;src:url("../fonts/source-sans-3-latin-400-normal.27ab01c4cb50.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:600;font-display:swap;src:url("../fonts/source-sans-3-latin-600-normal.9a35cba76eda.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:700;font-display:swap;src:url("../fonts/source-sans-3-latin-700-normal.9b13bd3653e3.woff2") format("woff2")}

:root{
  --blue:#0B4EA2;--red:#EE1C25;--red-dark:#C8101A;--navy:#08306B;--blue-light:#E8F0FA;--red-light:#FDE8E9;
  --text:#1B2333;--text-2:#4A5568;--border:#E1E5EC;--bg:#F4F6F9;--white:#fff;--public-bg:#F2F5FA;
  --ok-bg:#DDF3E4;--ok:#14663A;--warn-bg:#FDEBC8;--warn:#8A4B00;--err-bg:#FBDDDD;--err:#9C1C1C;
  --info-bg:#DCE7FB;--info:#1B3F8C;--gray-bg:#E7EAF0;--gray:#3F4859;
  --r:8px;--r-lg:12px;
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Source Sans 3",system-ui,sans-serif;line-height:1.5}
h1,h2,h3{font-family:"Barlow","Source Sans 3",sans-serif;font-weight:700;margin:0;color:var(--navy)}
h1{font-size:1.6rem}h2{font-size:1.15rem}h3{font-size:1rem}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.sidebar{background:var(--navy);color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:18px}
.logo-pad{background:#fff;border-radius:var(--r);padding:10px;text-align:center}
.logo-pad img{max-width:100%;height:auto;display:block;margin:0 auto}
.nav{display:flex;flex-direction:column;gap:4px}
.nav a{color:#DCE6F5;text-decoration:none;padding:10px 12px;border-radius:var(--r);font-weight:600;border-left:3px solid transparent}
.nav a:hover{background:rgba(255,255,255,.08)}
.nav a[aria-current="page"]{background:rgba(255,255,255,.14);color:#fff;border-left-color:var(--red)}
.nav .soon{opacity:.5;padding:10px 12px;font-weight:600;font-size:.95rem}
.sidebar-foot{margin-top:auto;font-size:.9rem;color:#C7D5EC}
.sidebar-foot button{margin-top:8px}
.main{padding:28px 32px;max-width:1200px;width:100%}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

.card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;margin-bottom:20px}
.card h2{margin-bottom:12px}
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}
.stat{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;border-top:4px solid var(--blue)}
.stat .n{font-family:"Barlow";font-weight:700;font-size:2rem;color:var(--navy);line-height:1.1}
.stat .l{color:var(--text-2);font-size:.95rem}

.btn{display:inline-block;border:1px solid var(--border);background:var(--white);color:var(--text);padding:9px 16px;border-radius:var(--r);font:600 .95rem "Source Sans 3",sans-serif;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--blue-light)}
.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover{background:var(--navy)}
.btn-danger{background:var(--red-dark);border-color:var(--red-dark);color:#fff}.btn-danger:hover{background:#A00D15}
.btn-sm{padding:5px 10px;font-size:.85rem}
.btn-light{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}.btn-light:hover{background:rgba(255,255,255,.12)}

.table{width:100%;border-collapse:collapse;font-size:.95rem}
.table th{text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding:8px 10px;border-bottom:2px solid var(--border)}
.table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}
.table tr:hover td{background:#FAFBFD}
.table-wrap{overflow-x:auto}

.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.8rem;font-weight:700}
.b-ok{background:var(--ok-bg);color:var(--ok)}.b-warn{background:var(--warn-bg);color:var(--warn)}
.b-err{background:var(--err-bg);color:var(--err)}.b-info{background:var(--info-bg);color:var(--info)}.b-gray{background:var(--gray-bg);color:var(--gray)}

label{display:block;font-weight:600;font-size:.9rem;margin-bottom:4px}
.input{width:100%;padding:9px 12px;border:1px solid #C5CCD8;border-radius:var(--r);font:inherit;background:#fff;color:var(--text)}
.input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(11,78,162,.2)}
.checkbox{width:18px;height:18px;accent-color:var(--blue);vertical-align:middle;margin-right:8px}
.field{margin-bottom:14px}
.field .help{color:var(--text-2);font-size:.85rem}
.errorlist{list-style:none;margin:4px 0 0;padding:0;color:var(--err);font-size:.9rem;font-weight:600}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px}
.form-grid .full{grid-column:1/-1}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:16px}
.filters .field{margin:0}

.messages{list-style:none;margin:0 0 16px;padding:0}
.messages li{padding:10px 14px;border-radius:var(--r);margin-bottom:8px;font-weight:600}
.messages .success{background:var(--ok-bg);color:var(--ok)}.messages .error{background:var(--err-bg);color:var(--err)}
.messages .info,.messages .warning{background:var(--info-bg);color:var(--info)}

.dl{display:grid;grid-template-columns:200px 1fr;gap:8px 16px;margin:0}
.dl dt{color:var(--text-2);font-weight:600}.dl dd{margin:0}
.alert-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}
.muted{color:var(--text-2)}
.pagination{display:flex;gap:8px;align-items:center;margin-top:14px}
.hidden{display:none}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--border);border-top:5px solid var(--red);border-radius:var(--r-lg);padding:28px}
.login-card img{display:block;margin:0 auto 20px;max-width:200px}

@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  .sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px}
  .logo-pad{max-width:120px}
  .nav{flex-direction:row;flex-wrap:wrap}
  .sidebar-foot{margin:0}
  .main{padding:18px 14px}
  .grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}
  .dl{grid-template-columns:1fr}
}

/* Reservations arrivant a echeance le jour meme */
.card-echeance { border-left: 6px solid #C8101A; background: #FFF4F4; }
.card-echeance h2 { color: #C8101A; }
.card-echeance .alert-row { font-size: 1.05em; }

/* Planning */
.planning { border-collapse: collapse; width: 100%; table-layout: fixed; font-size: .85rem; }
.planning th, .planning td { border: 1px solid #DCE2EA; padding: 2px; text-align: center; height: 38px; }
.planning thead th { background: #F4F6F9; font-weight: 600; }
.planning .pl-veh { width: 150px; text-align: left; padding: 4px 8px; background: #fff; position: sticky; left: 0; }
.planning .pl-we { background: #F4F6F9; }
.planning .pl-today { background: #FFF8DC; }
.planning .pl-libre a { display: block; color: transparent; text-decoration: none; height: 34px; line-height: 34px; }
.planning .pl-libre a:hover, .planning .pl-libre a:focus { color: #0B4EA2; background: #E8F0FB; }
.planning .pl-resa { padding: 0; }
.planning .pl-resa a { display: block; padding: 6px 4px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-decoration: none; font-weight: 600; }
.planning .pl-confirmee { background: #DCE8F8; }
.planning .pl-confirmee a { color: #0B4EA2; }
.planning .pl-en_cours { background: #0B4EA2; }
.planning .pl-en_cours a { color: #fff; }
.planning .pl-retour { outline: 3px solid #C8101A; outline-offset: -3px; }
.planning .pl-coupe-g { border-left: 4px dashed #08306B; }
.planning .pl-coupe-d { border-right: 4px dashed #08306B; }
.planning-legend .pl-key { display: inline-block; padding: 2px 10px; margin-right: 6px; border-radius: 4px; font-size: .85rem; }
.planning-legend .pl-confirmee { background: #DCE8F8; color: #0B4EA2; }
.planning-legend .pl-en_cours { background: #0B4EA2; color: #fff; }
.planning-legend .pl-retour { outline: 3px solid #C8101A; outline-offset: -3px; }

.section-title { margin: 20px 0 10px; color: #08306B; }

.bar-row { display: flex; align-items: center; gap: 10px; margin: 6px 0; font-size: .95em; }
.bar-label { flex: 0 0 110px; }
.bar-track { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.bar { display: block; height: 10px; border-radius: 3px; background: #0B4EA2; min-width: 0; }
.bar-alt { background: #EE1C25; }
.bar-value { flex: 0 0 90px; text-align: right; font-variant-numeric: tabular-nums; }
.legende { display: inline-block; width: 10px; height: 10px; border-radius: 2px; background: #0B4EA2; }
.legende-alt { background: #EE1C25; }

/* Site public (templates/vitrine) : pas de sidebar, mise en page vitrine */
body.public { background: var(--public-bg); overflow-x: hidden; }

.public-banniere{line-height:0}
.public-banniere img{width:100%;height:auto;display:block}

.public-navbar{position:sticky;top:0;z-index:10;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:26px;padding:12px 28px;background:rgba(242,245,250,.94);backdrop-filter:saturate(180%) blur(6px);border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(8,48,107,.03)}
.public-navbar a{color:var(--text);text-decoration:none;font-weight:600;padding:4px 2px;border-bottom:2px solid transparent}
.public-navbar a:hover{color:var(--blue)}
.public-navbar a[aria-current="page"]{color:var(--blue);border-bottom-color:var(--red)}
.public-navbar .btn{font-size:.9rem;padding:8px 18px;margin-left:8px}
.lang-switch{display:inline-flex;gap:2px;margin-left:4px;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.lang-btn{border:0;background:transparent;color:var(--text-2);font:600 .78rem "Source Sans 3",sans-serif;padding:5px 9px;cursor:pointer}
.lang-btn.active{background:var(--blue);color:#fff}
.public-main{max-width:1080px;margin:0 auto;padding:32px 20px 48px}
.public-main .card{box-shadow:0 1px 3px rgba(8,48,107,.07)}
.public-main .messages{margin-bottom:24px}

.public-footer{background:var(--navy);color:#C7D5EC;margin-top:56px}
.public-footer-in{max-width:1080px;margin:0 auto;padding:36px 20px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px;font-size:.92rem}
.public-footer h3{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}
.public-footer p{margin:0 0 6px}
.public-footer a{color:#C7D5EC}
.public-footer a:hover{color:#fff;text-decoration:underline}
.public-footer-bas{border-top:1px solid rgba(255,255,255,.14);padding:14px 20px;text-align:center;font-size:.85rem;color:#9FB3D6}

/* Bandeaux pleine largeur : grand (catalogue) et petit (pages secondaires) */
.hero,.page-hero{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);color:#fff;background:linear-gradient(135deg,var(--navy) 0%,var(--blue) 65%,#1560C4 100%)}
.hero .hero-in,.page-hero .hero-in{max-width:1080px;margin:0 auto;padding:52px 24px}
.hero{margin-bottom:0}
.hero h1{color:#fff;font-size:2.2rem;margin-bottom:14px;max-width:680px}
.hero p{color:#DCE6F5;max-width:600px;font-size:1.08rem;margin:0}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.hero-actions .btn{padding:11px 20px}
.hero-actions .btn-primary{background:var(--red-dark);border-color:var(--red-dark)}
.hero-actions .btn-primary:hover{background:#A00D15}
.hero-actions .btn-light{border-color:rgba(255,255,255,.55)}

.page-hero{margin-bottom:32px}
.page-hero .hero-in{padding:32px 24px}
.page-hero h1{color:#fff;font-size:1.7rem;margin-bottom:6px}
.page-hero p{color:#DCE6F5;margin:0;max-width:620px}

.atouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:28px 0}
.atout{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--blue-light);border-radius:var(--r-lg)}
.atout .picto{font-size:1.5rem;line-height:1;flex:0 0 auto}
.atout .txt{font-weight:600;color:var(--navy);font-size:.92rem}

.public-main .section-title{position:relative;padding-bottom:10px}
.public-main .section-title::after{content:"";position:absolute;left:0;bottom:0;width:46px;height:3px;background:var(--red);border-radius:2px}

.etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:18px 0 8px}
.etape{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px}
.etape .num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-family:"Barlow",sans-serif;font-weight:700;margin-bottom:10px}
.etape h3{margin-bottom:6px}
.etape p{margin:0;color:var(--text-2);font-size:.92rem}

.public-vehicule{border-top:none;border-radius:var(--r-lg);text-align:center;padding:26px 20px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.public-vehicule:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(8,48,107,.14);border-color:var(--blue)}
.public-vehicule .icone{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:var(--blue-light);font-size:1.7rem}
.public-vehicule h2{margin-bottom:6px}
.public-vehicule .prix{color:var(--red-dark);font-size:1.05rem}
.public-vehicule .btn{margin-top:14px}

.confirmation-icone{width:60px;height:60px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin-bottom:14px}

.info-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:24px 20px;text-align:center;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.info-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(8,48,107,.14);border-color:var(--blue)}
.info-card .icone{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:var(--blue-light);font-size:1.8rem}
.info-card h2,.info-card h3{margin-bottom:8px}
.info-card p{margin:0 0 14px;color:var(--text-2);font-size:.92rem}
.info-card .btn{margin-top:4px}

.urgence-card{background:var(--red-light);border-radius:var(--r-lg);padding:18px;text-align:center}
.urgence-card .picto{font-size:1.6rem;display:block;margin-bottom:6px}
.urgence-card .num{display:block;font-family:"Barlow",sans-serif;font-weight:700;font-size:1.7rem;color:var(--red-dark);margin:4px 0}
.urgence-card a{color:inherit;text-decoration:none}
.urgence-card .txt{font-size:.85rem;color:var(--text-2)}

.hp-wrap{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* FAQ : accordéon natif <details>/<summary>, sans JavaScript */
.faq-groupe{margin-bottom:28px}
.faq-item{border:1px solid var(--border);border-radius:var(--r);padding:2px 18px;margin-bottom:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;font-weight:700;color:var(--navy)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";flex:0 0 auto;font-size:1.4rem;line-height:1;color:var(--blue)}
.faq-item[open] summary::after{content:"–"}
.faq-item[open]{border-color:var(--blue);box-shadow:0 4px 14px rgba(8,48,107,.08)}
.faq-item p{margin:0 0 16px;color:var(--text-2)}

@media (max-width: 720px){
  .public-main { padding-left: 16px; padding-right: 16px; }
  .public-footer-in{grid-template-columns:1fr;gap:22px}
  .hero .hero-in,.page-hero .hero-in{padding:34px 18px}
  .hero h1{font-size:1.7rem}
  .page-hero h1{font-size:1.4rem}
}
