:root{
  --bleu-fonce:#1a2a42;
  --bleu-clair:#3a6ea5;
  --bleu-medium:#274e7e;
  --beige:#aab7c4;

  --blanc:#ffffff;

  --gris-clair:#f4f6f8;
  --gris-moyen:#c1cbd9;
  --gris-fonce:#333842;

  --noir:#121a27;

  --vert:#28a745;
  --rouge:#dc3545;
  --jaune:#f5a623;
  --or:#1a73e8;

  --ltl-accent:#B8860B;
  --ltl-border:#e5e7eb;
  --ltl-text:#111827;
  --ltl-muted:#6b7280;

  --grad-primary:linear-gradient(90deg, var(--bleu-clair) 0%, var(--bleu-medium) 60%, var(--bleu-fonce) 100%);
  --grad-primary-rev:linear-gradient(90deg, var(--bleu-fonce) 0%, var(--bleu-medium) 70%, var(--bleu-clair) 100%);
  --grad-hero:linear-gradient(90deg, #1a73e8 0%, #155ab6 100%);
  --shadow-card:0 4px 20px rgba(26,115,232,0.15);
  --shadow-card-hover:0 12px 44px rgba(26,115,232,0.25);
  --shadow-soft:0 2px 8px rgba(26,115,232,0.25);
  --shadow-hover:0 4px 14px rgba(26,115,232,0.4);
  --shadow-header:0 6px 20px rgba(15,40,80,0.4);
  --shadow-footer:0 -6px 20px rgba(10,25,55,0.35);
  --radius-main:18px;
  --radius-btn:16px;
  --radius-pill:20px;
  --transition-main:0.18s cubic-bezier(0.5,0.4,0.25,1);
  --z-header:100;
  --z-modal:200;
  --z-footer:10;

  --sb-bg: #ffffff;
  --sb-border: #e6e7eb;
  --sb-muted: #6b7280;
  --sb-text: #111111;
  --sb-accent: #B8860B;      /* or foncé LTL */
  --sb-accent-ghost: #fff7e6;/* fond léger */
  --sb-shadow: 0 8px 28px rgba(0,0,0,.06);
  --sb-radius: 14px;
}
*,
*::before,
*::after{
  margin:0;
  padding:0;
  box-sizing:border-box;
}
html, body{
  height:100%;
  min-height:100%;
  scroll-behavior:smooth;
  background:#f4f6f8;
  background:var(--gris-clair);
  color:#333842;
  color:var(--gris-fonce);
  font-family:'Inter', Arial, 'Segoe UI', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
}
body{
  display:flex;
  flex-direction:column;
  min-height:100vh;
  width:100vw;
  overflow-x:hidden;
}
main{
  flex:1;
  width:100%;
}
img, video{
  max-width:100%;
  height:auto;
  display:block;
}
a{
  color:#3a6ea5;
  color:var(--bleu-clair);
  text-decoration:none;
  transition:color 0.18s;
  outline:none;
}
a:hover, a:focus{
  color:#1a2a42;
  color:var(--bleu-fonce);
  text-decoration:underline;
}
a:focus-visible{
  outline:2px solid #aab7c4;
  outline:2px solid var(--beige);
  outline-offset:2px;
}
button, input, select, textarea{
  font-family:inherit;
  font-size:1em;
  border:none;
  background:none;
  color:inherit;
  outline:none;
}
button{
  cursor:pointer;
}
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid #3a6ea5;
  outline:2px solid var(--bleu-clair);
  outline-offset:2px;
}
::-webkit-input-placeholder{ color:#b5bbc5; }
::-moz-placeholder{ color:#b5bbc5; }
::placeholder{ color:#b5bbc5; opacity:1; }
html, body{
  overflow-x:hidden;
}
button, .btn, .btn-primary, .btn-secondary, .btn-danger, .btn-success, .lien-bouton{
  -moz-user-select:none;
       user-select:none;
  -webkit-user-select:none;
}
html{
  touch-action:manipulation;
}
.text-gradient{
  background:linear-gradient(90deg, #1a73e8, #3a6ea5, #155ab6);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  text-fill-color:transparent;
  position:relative;
  }
.text-gradient::before{
  content:"";
  position:absolute;
  top:0; left:-50%;
  width:200%;
  height:100%;
  pointer-events:none;
  background:linear-gradient(
    120deg,
    rgba(255,255,255,0.4) 30%,
    rgba(255,255,255,0.15) 50%,
    rgba(255,255,255,0.4) 70%
  );
  transform:skewX(-25deg);
  animation:shine 3s infinite linear;
  z-index:2;
}
@keyframes shine{
  0%{ left:-50%; }
  100%{ left:150%; }
}
.container{
  max-width:1200px;
  margin:auto;
  padding:20px;
  border-radius:18px;
  border-radius:var(--radius-main);
  background-color:#ffffff;
  background-color:var(--blanc);
    }
.container-narrow{
  max-width:800px;
  margin-left:auto;
  margin-right:auto;
  padding:22px 12px;
  width:100%;
  border-radius:18px;
  border-radius:var(--radius-main);
  background-color:#ffffff;
  background-color:var(--blanc);
    }
.container-wide{
  max-width:1400px;
  margin-left:auto;
  margin-right:auto;
  padding:24px 22px;
  width:100%;
  border-radius:18px;
  border-radius:var(--radius-main);
  background-color:#ffffff;
  background-color:var(--blanc);
    }
.reservations-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:24px;
  margin-top:30px;
}
.reservation-card{
  background:#ffffff;
  background:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    padding:20px 24px;
  display:flex;
  flex-direction:column;
  gap:12px;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-weight:600;
  font-size:1rem;
  transition:box-shadow 0.25s ease, transform 0.25s ease;
}
.reservation-card:hover{
    transform:translateY(-6px);
}
.reservation-card .reservation-numero{
  font-weight:900;
  font-size:1.3rem;
  margin-bottom:8px;
}
.reservation-card p{
  margin:0;
}
.reservation-card .prix-total{
  font-weight:700;
  font-size:1.1rem;
  color:#3a6ea5;
  color:var(--bleu-clair);
  margin-top:10px;
}
.reservation-card .actions{
  margin-top:auto;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.reservation-card .actions a{
  flex:1 1 auto;
  text-align:center;
}
.mobile-user-links{
  display:none;
}
@media (max-width: 768px){
  .burger{
    display:flex !important;
    flex-direction:column;
    justify-content:space-around;
    width:32px !important;
    height:24px !important;
    background:transparent !important;
    cursor:pointer;
    z-index:1200 !important;
    padding:0;
  }
  .burger div{
    width:100%;
    height:3.5px;
    background-color:#3a6ea5;
    background-color:var(--bleu-clair);
    border-radius:2px;
  }
}
@media (max-width: 768px){
  .header-left{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .mobile-user-links{
    display:flex;
    gap:12px;
    justify-content:flex-start;
  }

  .mobile-user-links a{
    font-weight:700;
    padding:6px 14px;
    border-radius:20px;
    border-radius:var(--radius-pill);
    background:linear-gradient(90deg, #1a2a42 0%, #274e7e 60%, #3a6ea5 100%);
    color:#ffffff;
    color:var(--blanc);
    text-decoration:none;
    transition:background-color 0.25s, color 0.25s;
  }
  .mobile-user-links a:hover,
  .mobile-user-links a:focus{
    background-color:#1a2a42;
    background-color:var(--bleu-fonce);
    color:#ffffff;
    color:var(--blanc);
    text-shadow:none;
  }
  .user-links{
    display:none !important;
  }
  .burger{
    display:flex !important;
    position:relative;
    z-index:1101;
    margin-left:auto;
  }
  .header-flex{
    flex-wrap:nowrap;
    align-items:center;
  }
}
@media (max-width: 768px){
  .main-nav{
    position:fixed !important;
    top:64px !important;
    right:0 !important;
    width:260px !important;
    max-height:calc(100vh - 64px);
    background:linear-gradient(145deg, #e6f0ff, #c4d9ff);
    border-radius:16px 16px 16px 16px;
        padding:2rem 1rem;
    display:flex !important;
    flex-direction:column !important;
    gap:1.4rem !important;
    transform:translateX(100%) !important;
    transition:transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index:1200 !important;
    color:#1a2a42;
    color:var(--bleu-fonce);
    justify-content:flex-start;
    overflow-y:auto;
  }

  .main-nav.active{
    transform:translateX(0) !important;
  }

  .main-nav a{
    font-weight:700 !important;
    font-size:1.18rem !important;
    padding:14px 20px !important;
    border-radius:20px !important;
    border-radius:var(--radius-pill) !important;
    background:linear-gradient(90deg, #1a2a42 0%, #274e7e 60%, #3a6ea5 100%);
    color:#ffffff !important;
    color:var(--blanc) !important;
    text-align:center;
    margin:0 0.8rem !important;
    transition:background 0.3s ease, color 0.3s ease !important;
  }

  .main-nav a:hover,
  .main-nav a:focus{
    background:linear-gradient(90deg, var(--bleu-fonce), var(--bleu-medium));
    color:#ffffff !important;
    color:var(--blanc) !important;
        outline:none !important;
  }
}
@media (max-width: 768px){
  .header-center{
    display:none !important;
  }
  .header-flex{
    flex-direction:row !important;
    justify-content:space-between !important;
    align-items:center !important;
    padding:0 12px !important;
  }
}
.site-header, header{
  background:linear-gradient(90deg, #222f44 0%, #121a27 100%);
    border-bottom:1.5px solid rgba(26,115,232,0.25);
  border-radius:0 0 36px 36px;
  color:#ffffff;
  color:var(--blanc);
  padding:18px 5vw;
  position:relative;
  z-index:100;
  z-index:var(--z-header);
}
.header-flex{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5vw;
  position:relative;
  gap:20px;
}
.header-left{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:10px;
}
.header-left img{
  height:70px;
  filter:drop-shadow(0 1px 4px rgba(26,115,232,0.6));
  transition:filter 0.3s ease;
}
.header-left img:hover,
.header-left img:focus{
  filter:drop-shadow(0 1px 8px rgba(26,115,232,0.9));
  outline:none;
}
.header-center{
  flex:1 1 auto;
  text-align:center;
  min-width:0;
}
.header-center h1{
  position:relative;
  font-size:2.1rem;
  background:var(--grad-hero);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  font-weight:800;
  display:inline-block;
  overflow:visible;
}
.header-center h1::before{
  content:"";
  position:absolute;
  top:0;
  left:-60%;
  width:60%;
  height:100%;
  pointer-events:none;
  background:linear-gradient(
    120deg,
    rgba(255,255,255,0.1) 30%,
    rgba(255,255,255,0.01) 50%,
    rgba(255,255,255,0.1) 70%
  );
  transform:skewX(-25deg);
  animation:shine 2.5s infinite linear;
  z-index:2;
}
.user-links{
  flex:0 0 auto;
  padding:8px 20px;
  border-radius:20px;
  background:linear-gradient(90deg, #1a2a42 0%, #274e7e 60%, #3a6ea5 100%);
  display:flex;
  align-items:center;
  gap:15px;
}
.user-links a{
  color:#ffffff;
  color:var(--blanc);
  font-weight:700;
  padding:6px 12px;
  border-radius:14px;
  transition:background-color 0.25s, color 0.25s;
  text-decoration:none;
}
.user-links a:hover{
  background-color:#3a6ea5;
  background-color:var(--bleu-clair);
  color:#ffffff;
  color:var(--blanc);
  text-shadow:none;
  outline:none;
}
.main-nav{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
  gap:30px;
  list-style:none;
  margin:0;
  padding:0;
}
.main-nav a{
  color:#3a6ea5;
  color:var(--bleu-medium);
  font-weight:700;
  text-decoration:none;
  padding:8px 14px;
  border-radius:14px;
  transition:background-color 0.25s ease, color 0.25s ease;
}
.main-nav a:hover,
.main-nav a:focus{
  background-color:var(--bleu-medium);
  color:#ffffff;
  color:var(--blanc);
  text-shadow:none;
  outline:none;
}
@media (max-width: 768px){
  .main-nav{
    flex-direction:column;
    gap:18px;
    padding:10px 0;
  }
  .main-nav a{
    padding:10px 18px;
  }
}
footer{
  background-color:#1a2a42;
  background-color:var(--bleu-fonce);
  color:#ffffff;
  color:var(--blanc);
  text-align:center;
  padding:18px 0 8px 0;
  margin-top:48px;
  position:relative;
  z-index:10;
  z-index:var(--z-footer);
  border-radius:28px 28px 0 0;
  }
footer .container{
  background-color:rgba(255, 255, 255, 0.08);
  border-radius:18px;
  display:inline-block;
  padding:10px 32px;
  }
footer a{
  color:#3a6ea5;
  color:var(--bleu-clair);
  text-decoration:underline;
  transition:color 0.17s;
}
footer a:hover{
  color:#274e7e;
  color:var(--bleu-medium);
}
footer .footer-socials{
  margin-top:12px;
  display:flex;
  justify-content:center;
  gap:24px;
}
footer .footer-socials a{
  color:#3a6ea5;
  color:var(--bleu-clair);
  font-size:1.5rem;
  transition:color 0.25s ease;
}
footer .footer-socials a:hover,
footer .footer-socials a:focus{
  color:#274e7e;
  color:var(--bleu-medium);
  outline:none;
}
.btn, .btn-primary, .btn-secondary, .btn-success, .btn-danger, .lien-bouton, button{
  display:inline-block;
  padding:13px 28px;
  border-radius:16px;
  border-radius:var(--radius-btn);
  font-weight:600;
  font-size:1.06rem;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  color:#ffffff;
  color:var(--blanc);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  cursor:pointer;
  transition:background 0.25s ease, box-shadow 0.25s ease, transform 0.15s ease;
  position:relative;
  overflow:hidden;
  margin-top:15px;
  text-align:center;
}
.btn:hover, .btn-primary:hover, button:hover{
  background:linear-gradient(90deg, #1a2a42 0%, #274e7e 70%, #3a6ea5 100%);
  background:var(--grad-primary-rev);
      transform:translateY(-2px) scale(1.05);
  border-color:#3a6ea5;
  border-color:var(--bleu-clair);
}
.btn-secondary{
  background:linear-gradient(90deg, #222222 0%, #000000 100%);
  color:#ffffff;
  color:var(--blanc);
}
.btn-secondary:hover{
  background:linear-gradient(90deg, #444444 0%, #222222 100%);
}
.btn-success{
  background:linear-gradient(90deg, #28a745 0%, #19692c 100%);
  color:#fff;
  border:none;
  }
.btn-success:hover{
  background:linear-gradient(90deg, #3dd56b 0%, #2a8c37 100%);
}
.btn-danger{
  background:linear-gradient(90deg, #dc3545 0%, #7a1a23 100%);
  color:#fff;
  border:none;
  }
.btn-danger:hover{
  background:linear-gradient(90deg, #e84956 0%, #8e222b 100%);
}
.lien-bouton{
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 100%);
  background:linear-gradient(90deg, var(--bleu-clair) 0%, var(--bleu-medium) 100%);
  color:#ffffff;
  color:var(--blanc);
}
.lien-bouton:hover{
  background:linear-gradient(90deg, #1a2a42 0%, #3a6ea5 100%);
  background:linear-gradient(90deg, var(--bleu-fonce) 0%, var(--bleu-clair) 100%);
}
.alert,
.alert-info,
.alert-success,
.alert-error,
.error{
  padding:13px 22px;
  border-radius:12px;
  font-size:1.02em;
  margin:0 auto 22px auto;
  max-width:600px;
  text-align:center;
  }
.alert-info{
  background:linear-gradient(100deg, rgba(26,115,232,0.12), rgba(15,40,85,0.08));
  color:#1a2a42;
  color:var(--bleu-fonce);
  border:1.5px solid #3a6ea5;
  border:1.5px solid var(--bleu-clair);
}
.alert-success, .alert{
  background:linear-gradient(100deg, rgba(26,115,232,0.15), rgba(15,40,85,0.08));
  color:#274e7e;
  color:var(--bleu-medium);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
}
.alert-error, .error{
  background:linear-gradient(100deg, rgba(220,53,69,0.15), rgba(15,40,85,0.09));
  color:#dc3545;
  color:var(--rouge);
  border:1.5px solid #dc3545;
  border:1.5px solid var(--rouge);
}
.voitures{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  margin-top:34px;
  max-width:100%;
}
@media (min-width: 600px){
  .voitures{ grid-template-columns:repeat(2, 1fr); }
}
@media (min-width: 1000px){
  .voitures{ grid-template-columns:repeat(3, 1fr); }
}
.voiture{
  background:#ffffff;
  background:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
      transition:box-shadow 0.18s, transform 0.13s;
  padding:22px 18px 24px 18px;
  position:relative;
  overflow:hidden;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:430px;
}
.voiture:hover{
    transform:translateY(-5px) scale(1.025);
}
.voiture img{
  width:100%;
  max-width:220px;
  min-width:150px;
  height:140px;
  -o-object-fit:contain;
     object-fit:contain;
  -o-object-position:center;
     object-position:center;
  border-radius:12px;
  background:#f4f6f8;
  background:var(--gris-clair);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    padding:12px;
  margin:0 auto 14px auto;
  display:block;
}
.voiture h3{
  color:transparent;
  margin:10px 0 8px 0;
  font-weight:700;
  letter-spacing:0.02em;
  font-size:1.15rem;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.voiture p{
  font-size:0.98rem;
  color:#333842;
  color:var(--gris-fonce);
  margin-bottom:15px;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.voiture .btn, .voiture .btn-primary, .voiture button, .voiture .lien-bouton{
  margin-top:auto;
  margin-bottom:0;
}
.confirmation-message{
    position:fixed;
    top:20px;
    left:50%;
    transform:translateX(-50%);
    background-color:rgba(26,115,232,0.8);
    color:#f4f6f8;
    padding:16px 28px;
    border-radius:24px;
    font-weight:700;
    font-size:1.2rem;
        z-index:1100;
    -webkit-user-select:none;
       -moz-user-select:none;
            user-select:none;
    animation:fadeInOut 5s ease forwards;
    max-width:90%;
    text-align:center;
}
.gestion-vehicules-container{
  overflow-x:auto;
  padding:20px;
  background:#ffffff;
  background:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
      max-width:1400px;
  margin:20px auto;
}
.gestion-vehicules-container .vehicule-table{
  width:100%;
  max-width:100%;
  border-collapse:separate;
  border-spacing:0 1rem;
  word-wrap:break-word;
}
.gestion-vehicules-container .vehicule-table th, 
.gestion-vehicules-container .vehicule-table td{
  padding:12px 10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
  max-width:150px;
}
.gestion-vehicules-container .vehicule-table td:nth-child(2){
  white-space:normal;
  max-width:300px;
}
.gestion-vehicules-container .vehicule-table img{
  max-width:100px;
  max-height:60px;
  -o-object-fit:contain;
     object-fit:contain;
  border-radius:12px;
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  }
@media (max-width: 768px){
  .gestion-vehicules-container{
    padding:10px;
    margin:15px auto;
  }
  .gestion-vehicules-container .vehicule-table th,
  .gestion-vehicules-container .vehicule-table td{
    max-width:none;
    white-space:normal;
  }
}
.gestion-vehicules-container .vehicule-table th:last-child,
.gestion-vehicules-container .vehicule-table td:last-child{
  min-width:160px;
  white-space:nowrap;
}
.confirmation-message.error{
    background-color:rgba(220,53,69,0.8);
    color:#fff;
    }
@keyframes fadeInOut{
    0%{
        opacity:0;
        transform:translate(-50%, -20px);
    }
    10%, 90%{
        opacity:1;
        transform:translate(-50%, 0);
    }
    100%{
        opacity:0;
        transform:translate(-50%, -20px);
    }
}
.modal-content{
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    padding:28px 24px;
  min-width:360px;
  max-width:600px;
  width:100%;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-family:'Inter', sans-serif;
  font-size:1rem;
  position:relative;
}
form{
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    padding:38px 32px 34px 32px;
  max-width:600px;
  margin:0 auto 32px auto;
  transition:box-shadow 0.2s, border 0.2s, background 0.2s;
}
form label{
  display:block;
  margin-bottom:9px;
  font-weight:600;
  color:#1a2a42;
  color:var(--bleu-fonce);
  letter-spacing:0.01em;
}
form input,
form select,
form textarea{
  width:100%;
  padding:12px 13px;
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:10px;
  background:#fff;
  font-size:1rem;
  margin-bottom:17px;
  color:#333842;
  color:var(--gris-fonce);
    outline:none;
  transition:border 0.18s, box-shadow 0.21s, background 0.22s;
}
form input:focus,
form select:focus,
form textarea:focus{
  border:1.5px solid #3a6ea5;
  border:1.5px solid var(--bleu-clair);
  background:#fff;
  }
input[type="file"]{
  background:transparent;
  padding:3px 0;
}
input[type="checkbox"]{
  width:auto;
  margin-right:7px;
}
form button,
form .btn{
  margin-top:13px;
}
form input::-moz-placeholder, form textarea::-moz-placeholder{
  color:#b5bbc5;
  font-style:italic;
  opacity:0.85;
}
form input::placeholder,
form textarea::placeholder{
  color:#b5bbc5;
  font-style:italic;
  opacity:0.85;
}
form .alert, form .alert-success, form .alert-error, form .error{
  margin-bottom:19px;
  font-size:1rem;
}
.dashboard-cards{
  display:flex;
  gap:24px;
  justify-content:center;
  margin:30px 0;
  flex-wrap:wrap;
}
.dashboard-cards .card{
  background:#ffffff;
  background:var(--blanc);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:18px;
  border-radius:var(--radius-main);
    padding:25px 20px;
  flex:1 1 280px;
  max-width:320px;
  text-align:center;
  transition:box-shadow 0.22s ease, transform 0.18s ease;
  cursor:default;
}
.dashboard-cards .card:hover{
    transform:translateY(-5px);
}
.card-icon{
  color:#222222;
}
.account-layout{
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:36px;
  margin-top:40px;
}
@media (max-width: 768px){
  .account-layout{
    display:block;
  }
}
.left-column{
  display:flex;
  flex-direction:column;
  gap:26px;
}
.profil-box,
.abonnement-box{
  background:#ffffff;
  background:var(--blanc);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:18px;
  border-radius:var(--radius-main);
    padding:28px 24px;
  color:#1a2a42;
  color:var(--bleu-fonce);
  transition:box-shadow 0.2s ease;
}
.profil-box:hover,
.abonnement-box:hover{
  }
.profil-list{
  list-style:none;
  padding-left:0;
  margin:20px 0 0 0;
  font-size:1rem;
  color:#333842;
  color:var(--gris-fonce);
}
.profil-list li{
  margin-bottom:12px;
  line-height:1.5;
}
.profil-box a.btn-primary{
  margin-top:20px;
  padding:12px 28px;
  border-radius:16px;
  border-radius:var(--radius-btn);
    font-weight:600;
  font-size:1.05rem;
  text-shadow:none;
  display:inline-block;
  transition:box-shadow 0.2s ease, background 0.2s ease;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  color:#ffffff;
  color:var(--blanc);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  position:relative;
}
.profil-box a.btn-primary:hover{
  }
.reservation-detail{
  display:flex;
  flex-wrap:wrap;
  gap:30px;
  justify-content:center;
  background:#ffffff;
  background:var(--blanc);
  padding:24px 36px;
  border-radius:18px;
  border-radius:var(--radius-main);
    max-width:960px;
  margin:0 auto 40px auto;
}
.reservation-image{
  flex:0 0 300px;
  text-align:center;
  border-radius:18px;
  border-radius:var(--radius-main);
  overflow:hidden;
    background:#f4f6f8;
  background:var(--gris-clair);
  padding:12px;
}
.reservation-image img{
  width:100%;
  height:auto;
  border-radius:12px;
  -o-object-fit:contain;
     object-fit:contain;
}
.reservation-image figcaption{
  margin-top:12px;
  font-weight:700;
  font-size:1.3rem;
  color:#274e7e;
  color:var(--bleu-medium);
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.reservation-info{
  flex:1 1 500px;
  color:#333842;
  color:var(--gris-fonce);
  font-size:1.05rem;
  line-height:1.5;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.detail-list{
  list-style:none;
  padding-left:0;
  margin-bottom:1.5rem;
}
.detail-list li{
  margin-bottom:1.2rem;
  font-weight:600;
  color:#1a2a42;
  color:var(--bleu-fonce);
  display:flex;
  justify-content:space-between;
}
.detail-list li strong{
  color:#274e7e;
  color:var(--bleu-medium);
  min-width:130px;
}
.detail-list li span{
  font-weight:400;
  color:#333842;
  color:var(--gris-fonce);
  max-width:60%;
  text-align:right;
}
.sub-list{
  list-style:disc inside;
  margin:0.3rem 0 0 0;
  padding-left:1.2rem;
  color:#333842;
  color:var(--gris-fonce);
  font-weight:400;
  max-width:80%;
}
.sub-list li{
  margin-bottom:0.6rem;
}
.price{
  font-style:italic;
  color:#274e7e;
  color:var(--bleu-medium);
  margin-left:6px;
}
.total-price{
  font-size:1.2rem;
  font-weight:700;
  color:#274e7e;
  color:var(--bleu-medium);
  border-top:1px solid #ddd;
  padding-top:14px;
}
.driver-choice-cards{
  display:flex;
  flex-direction:row;
  gap:1.5rem;
  margin-bottom:1.5rem;
  justify-content:center;
}
.driver-choice-cards .option-card{
  cursor:pointer;
  padding:16px 18px;
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    background-color:#ffffff;
  background-color:var(--blanc);
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-weight:600;
  font-size:1.05rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  width:280px;
  text-align:center;
  transition:box-shadow 0.18s, border-color 0.16s;
}
.driver-choice-cards .option-card:hover{
    border-color:#3a6ea5;
  border-color:var(--bleu-clair);
  background-color:#f4f6f8;
  background-color:var(--gris-clair);
}
.driver-choice-cards .option-card input[type="radio"]{
  -webkit-appearance:none;
     -moz-appearance:none;
          appearance:none;
  width:26px;
  height:26px;
  margin-left:8px;
  border-radius:50%;
  border:2.5px solid #3a6ea5;
  border:2.5px solid var(--bleu-clair);
  background:transparent;
    cursor:pointer;
  position:relative;
  transition:border 0.17s, box-shadow 0.16s, background 0.15s;
}
.driver-choice-cards .option-card input[type="radio"]:checked{
  border:7px solid #3a6ea5;
  border:7px solid var(--bleu-clair);
  background:radial-gradient(circle, #3a6ea5 55%, transparent 56%);
  background:radial-gradient(circle, var(--bleu-clair) 55%, transparent 56%);
}
.driver-choice-cards .option-card input[type="radio"]:focus{
  outline:2px solid #aab7c4;
  outline:2px solid var(--beige);
  outline-offset:1.5px;
}
.reservations-box{
  background:#ffffff;
  background:var(--blanc);
  border:1px solid #274e7e;
  border:1px solid var(--bleu-medium);
  border-radius:18px;
  border-radius:var(--radius-main);
  padding:28px 24px;
    color:#333842;
  color:var(--gris-fonce);
  max-width:100%;
}
.reservations-box .box-title{
  font-size:1.5rem;
  margin-bottom:1.2rem;
  color:#1a2a42;
  color:var(--bleu-fonce);
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.reservations-box .box-link{
  color:#274e7e;
  color:var(--bleu-medium);
  text-decoration:none;
  border-bottom:2px solid transparent;
  transition:border-color 0.25s;
}
.reservations-box .box-link:hover{
  border-color:#274e7e;
  border-color:var(--bleu-medium);
}
.reservations-preview{
  display:grid;
  grid-template-columns:1fr;
  gap:1.4rem;
}
@media (min-width: 600px){
  .reservations-preview{
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  }
}
.reservation-card{
  background:#ffffff;
  background:var(--blanc);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:14px;
      padding:18px 22px;
  color:#1a2a42;
  color:var(--bleu-fonce);
  transition:box-shadow 0.25s ease;
  display:flex;
  flex-direction:column;
}
.reservation-card:hover{
  }
.reservation-card-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:14px;
}
.reservation-wrapper{
  display:flex;
  gap:20px;
  max-width:900px;
  margin:0 auto;
  justify-content:center;
  align-items:flex-start;
}
.reservation-main{
  flex:1 1 65%;
  min-width:320px;
}
.reservation-car{
  color:transparent;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.reservation-price{
  font-weight:700;
  font-size:1.15rem;
  color:#dc3545;
  color:var(--rouge);
}
.reservation-card-body{
  font-size:0.95rem;
  color:#333842;
  color:var(--gris-fonce);
  line-height:1.45;
}
.see-more{
  text-align:center;
  margin-top:24px;
}
.btn-see-more{
  background:#3a6ea5;
  background:var(--bleu-clair);
  color:#ffffff;
  color:var(--blanc);
  padding:10px 28px;
  border-radius:16px;
  border-radius:var(--radius-btn);
  font-weight:600;
  font-size:1.1rem;
    text-decoration:none;
  transition:background 0.25s ease;
  display:inline-block;
}
.btn-see-more:hover{
  background:#1a2a42;
  background:var(--bleu-fonce);
}
@media (max-width: 768px){
  .reservation-wrapper{
    flex-direction:column;
    max-width:100%;
    margin:0 12px;
    gap:1.5rem;
  }

  .reservation-main,
  .reservation-recap{
    flex:none;
    width:100%;
    max-width:100%;
  }

  .reservation-recap{
    margin-top:1.5rem;
    max-height:none;
  }

  form button.btn-primary,
  form button.btn-success{
    width:100%;
    box-sizing:border-box;
  }

  h2{
    font-size:1.5rem;
  }
}
.table-mes-reservations{
  width:100%;
  border-collapse:separate;
  border-spacing:0 0.8rem;
  margin:2.5rem 0;
  font-size:1rem;
  color:#333842;
  color:var(--gris-fonce);
  table-layout:auto;
}
.table-mes-reservations thead th{
  background:#274e7e;
  background:var(--bleu-medium);
  color:#ffffff;
  color:var(--blanc);
  font-weight:700;
  padding:1rem 1.3rem;
  text-align:left;
  border-radius:12px 12px 0 0;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
  letter-spacing:0.04em;
  white-space:nowrap;
}
.table-mes-reservations tbody tr{
  background:#ffffff;
  background:var(--blanc);
  border-radius:14px;
    transition:box-shadow 0.3s ease;
}
.table-mes-reservations tbody tr:hover{
  }
.table-mes-reservations tbody td{
  vertical-align:middle;
  padding:12px 16px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.table-mes-reservations tbody td.options,
.table-mes-reservations tbody td.protections{
  white-space:normal;
  max-width:280px;
  word-wrap:break-word;
  overflow-wrap:break-word;
  padding-right:24px;
}
.table-mes-reservations tbody td.numero{ width:150px; text-align:center; vertical-align:middle;}
.table-mes-reservations tbody td.periode{ width:140px; font-weight:600; white-space:nowrap; text-align:center; vertical-align:middle;}
.table-mes-reservations tbody td.vehicule{ width:100px; text-align:center; vertical-align:middle;}
.table-mes-reservations tbody td.forfait{ width:100px; text-align:center; vertical-align:middle;}
.table-mes-reservations tbody td.prix-total{
  width:110px;
  white-space:nowrap;
  font-weight:600;
  color:#3a6ea5;
  color:var(--bleu-clair);
  text-align:center;
  vertical-align:middle;
}
.table-mes-reservations thead{
  background:transparent;
  border-radius:0;
  }
.table-mes-reservations thead tr{
  border-radius:inherit;
    overflow:hidden;
  display:table-row;
  background:transparent;
}
.table-mes-reservations thead th{
  background:linear-gradient(120deg, #3a6ea5, #274e7e);
  background:linear-gradient(120deg, var(--bleu-clair), var(--bleu-medium));
  color:#ffffff;
  color:var(--blanc);
  font-weight:700;
  padding:1rem 1.5rem;
  text-align:center;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
  letter-spacing:0.04em;
  border:none;
    position:relative;
  z-index:1;
  border-collapse:collapse;
}
.table-mes-reservations thead th:first-child{
  border-radius:18px 18px 0 0;
  border-radius:var(--radius-main) var(--radius-main) 0 0;
}
.table-mes-reservations thead th:last-child{
  border-radius:18px 18px 0 0;
  border-radius:var(--radius-main) var(--radius-main) 0 0;
}
.table-mes-reservations thead th:not(:last-child){
  border-right:1px solid rgba(255,255,255,0.15);
}
.table-mes-reservations thead th:hover{
  background:linear-gradient(120deg, #274e7e, #3a6ea5);
  background:linear-gradient(120deg, var(--bleu-medium), var(--bleu-clair));
  cursor:default;
}
.hero{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:40px 20px;
  max-width:1200px;
  margin:0 auto;
}
.hero-text{
  flex:1 1 380px;
  max-width:520px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.hero-text h2{
  font-size:2.4rem;
  font-weight:900;
  color:#1a2a42;
  color:var(--bleu-fonce);
}
.hero-text p{
  font-size:1.15rem;
  color:#333842;
  color:var(--gris-fonce);
  line-height:1.5;
}
.btn-hero{
  max-width:400px;
  padding:14px 20px;
  white-space:nowrap;
  font-size:1.3rem;
  font-weight:800;
  margin-top:28px;
  align-self:center;
  border-radius:32px;
  background:linear-gradient(90deg, #1a73e8 0%, #155ab6 100%);
  color:#f4f6f8;
  border:none;
  cursor:pointer;
  transition:background 0.4s ease, box-shadow 0.3s ease, transform 0.15s ease;
  letter-spacing:0.04em;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.btn-hero:hover,
.btn-hero:focus-visible{
  background:linear-gradient(90deg, #155ab6 0%, #1a73e8 100%);
    transform:scale(1.08);
  outline:none;
}
.btn-hero:active{
  transform:scale(0.95);
  }
.hero-video{
  flex:1 1 480px;
  max-width:480px;
  border-radius:18px;
  border-radius:var(--radius-main);
  overflow:hidden;
    background-color:#f4f6f8;
  background-color:var(--gris-clair);
}
.hero-video video{
  width:100%;
  height:auto;
  display:block;
  border-radius:18px;
  border-radius:var(--radius-main);
  -o-object-fit:cover;
     object-fit:cover;
}
@media (max-width: 768px){
  .hero{
    flex-direction:column;
    padding:30px 12px;
  }

  .hero-text, .hero-video{
    max-width:100%;
    flex:none;
  }

  .hero-text h2{
    font-size:1.9rem;
  }

  .btn-hero{
    max-width:100%;
  }

  .hero-video{
    margin-top:28px;
  }
}
.btn-res{
  min-width:70px;
  padding:8px 14px;
  font-size:0.9rem;
  line-height:1.2;
  white-space:nowrap;
    border-radius:12px;
  border:none;
  cursor:pointer;
  color:#ffffff;
  color:var(--blanc);
  font-weight:600;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.btn-res i{
  margin-right:6px;
  font-size:1.2em;
  line-height:1;
}
.btn-res-details{
  background:linear-gradient(135deg, #3399ff, #0066cc);
  }
.btn-res-details:hover{
  background:#004c99;
  }
.btn-res-edit{
  background:linear-gradient(135deg, #4caf50, #2e7d32);
  }
.btn-res-edit:hover{
  background:#245d20;
  }
.btn-res-delete{
  background:linear-gradient(135deg, #e53935, #b71c1c);
  }
.btn-res-delete:hover{
  background:#7f0000;
  }
@media (max-width: 768px){
  .table-mes-reservations{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .table-mes-reservations thead,
  .table-mes-reservations tbody,
  .table-mes-reservations tr,
  .table-mes-reservations th,
  .table-mes-reservations td{
    display:block;
  }
  .table-mes-reservations thead tr{
    position:absolute;
    top:-9999px;
    left:-9999px;
  }
  .table-mes-reservations tbody tr{
    margin-bottom:1.2rem;
  }
  .table-mes-reservations tbody td{
    padding-left:50%;
    position:relative;
    white-space:normal;
    text-align:left;
    overflow:visible;
  }
  .table-mes-reservations tbody td::before{
    position:absolute;
    top:1rem;
    left:1.2rem;
    width:45%;
    white-space:nowrap;
    font-weight:700;
    color:#1a2a42;
    color:var(--bleu-fonce);
    content:attr(data-label);
  }
  .table-mes-reservations tbody td.actions{
    padding-left:1.3rem;
    display:flex;
    gap:0.8rem;
    white-space:normal;
  }
}
.reservation-summary-cards{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
  max-width:900px;
  margin:1.5rem auto;
  padding:0 12px;
  justify-content:center;
}
.card-item.card-total.wide{
  grid-column:span 2;
  justify-self:center;
}
@media (max-width: 700px){
  .reservation-summary-cards{
    grid-template-columns:repeat(2, 1fr);
  }
  .card-item.card-total.wide{
    grid-column:span 2;
  }
}
.btn-detail{
  margin:1.5rem auto;
  padding:12px 24px;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:linear-gradient(90deg, var(--bleu-clair) 0%, var(--bleu-medium) 60%, var(--bleu-fonce) 100%);
  border:none;
  border-radius:16px;
  border-radius:var(--radius-btn);
    font-weight:700;
  cursor:pointer;
  display:block;
  transition:background 0.25s ease, box-shadow 0.25s ease;
}
.btn-detail:hover{
  background:linear-gradient(90deg, #1a2a42 0%, #274e7e 70%, #3a6ea5 100%);
  background:linear-gradient(90deg, var(--bleu-fonce) 0%, var(--bleu-medium) 70%, var(--bleu-clair) 100%);
  }
form.no-form-style{
  background:transparent !important;
  border:none !important;
    padding:0 !important;
  max-width:none !important;
  margin:0 !important;
}
.image-center-wrapper{
  width:100%;
  text-align:center;
  margin-bottom:2rem;
}
.centered-vehicle-image{
  max-width:300px;
  width:100%;
  height:auto;
  border-radius:8px;
  display:inline-block;
  }
.confirmation-container{
  margin:2rem auto;
  max-width:1000px;
  padding:20px;
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    color:#1a2a42;
  color:var(--bleu-fonce);
  font-family:'Inter', sans-serif;
  display:flex;
  justify-content:center;
  flex-direction:column;
  align-items:center;
}
.confirmation-wrapper{
  display:flex;
  flex-wrap:wrap;
  gap:2rem;
  margin-bottom:2rem;
  justify-content:center;
  align-items:flex-start;
}
.confirmation-image{
  flex:0 0 auto;
  max-width:300px;
  background:#ffffff;
  background:var(--blanc);
  border:1.5px solid #aab7c4;
  border:1.5px solid var(--beige);
  border-radius:12px;
  padding:0.5rem;
    text-align:center;
  margin:0 auto;
}
.confirmation-image img{
  width:100%;
  height:auto;
  max-height:300px;
  -o-object-fit:contain;
     object-fit:contain;
  border-radius:8px;
  display:block;
  margin-left:auto;
  margin-right:auto;
}
.confirmation-content{
  flex:1;
  color:#333842;
  color:var(--gris-fonce);
  font-size:1rem;
  line-height:1.5;
}
.confirmation-content h2{
  color:transparent;
  font-weight:700;
  margin-bottom:1rem;
  font-size:1.8rem;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.confirmation-list{
  list-style:none;
  padding:0;
  margin:1rem 0;
}
.confirmation-list li{
  margin:0.5rem 0;
}
.price-line{
  display:flex;
  align-items:center;
  gap:1rem;
  font-weight:600;
  color:#3a6ea5;
  color:var(--bleu-clair);
  font-size:1.1rem;
  margin-top:1rem;
}
.points-earned{
  font-weight:600;
  color:#28a745;
  color:var(--vert);
  margin-top:1rem;
  font-size:1rem;
}
.confirmation-actions{
  display:flex;
  gap:1rem;
  margin-top:2rem;
  justify-content:flex-end;
}
.confirmation-actions .btn-primary,
.confirmation-actions .btn-secondary{
  margin:0;
  padding:0.7em 1.6em;
  font-size:1rem;
  border-radius:16px;
  border-radius:var(--radius-btn);
  font-weight:700;
    transition:background 0.25s ease, transform 0.15s ease;
}
.confirmation-actions .btn-primary:hover{
  background:linear-gradient(120deg, #274e7e, #3a6ea5);
  background:linear-gradient(120deg, var(--bleu-medium), var(--bleu-clair));
  transform:translateY(-3px);
}
.confirmation-actions .btn-secondary:hover{
  background:linear-gradient(120deg, rgba(26,115,232,0.8), rgba(0,114,206,0.28));
  transform:translateY(-3px);
}
.price-detail-table{
  width:100%;
  border-collapse:collapse;
  margin-top:1rem;
  font-size:0.95rem;
  color:#333842;
  color:var(--gris-fonce);
  border-radius:12px;
  overflow:hidden;
  }
.price-detail-table thead{
  background:#1a2a42;
  background:var(--bleu-fonce);
  color:#ffffff;
  color:var(--blanc);
}
.price-detail-table th,
.price-detail-table td{
  border:1px solid #aab7c4;
  border:1px solid var(--beige);
  padding:0.6rem 1rem;
  text-align:left;
}
.price-detail-table tbody tr:nth-child(even){
  background:rgba(26,115,232,0.06);
}
.subscription-cards{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  justify-content:center;
  margin-top:2rem;
}
.abonnement-card{
  flex:1 1 280px;
  display:flex;
  flex-direction:column;
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
      padding:24px 22px 28px 22px;
  transition:transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  cursor:pointer;
}
.abonnement-card:hover{
  transform:translateY(-6px) scale(1.02);
    border-color:#3a6ea5;
  border-color:var(--bleu-clair);
  background-color:#f4f6f8;
  background-color:var(--gris-clair);
}
.abonnement-card h3{
  font-size:1.4rem;
  margin-bottom:0.75rem;
  color:transparent;
  text-transform:uppercase;
  letter-spacing:0.03em;
  font-weight:700;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.abonnement-card .price{
  font-size:1.8rem;
  margin:0.75rem 0 1.25rem 0;
  color:#3a6ea5;
  color:var(--bleu-clair);
  font-weight:700;
  letter-spacing:0.02em;
}
.benefits-list{
  list-style:disc inside;
  margin:0 0 1.75rem 0;
  color:#333842;
  color:var(--gris-fonce);
  line-height:1.5;
  font-size:1rem;
}
.benefits-list li{
  margin-bottom:0.6rem;
}
.abonnement-card .btn-primary{
  align-self:center;
  margin-top:auto;
  padding:14px 28px;
  font-size:1.05rem;
  border-radius:20px;
  border-radius:var(--radius-pill);
  font-weight:700;
    background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  color:#ffffff;
  color:var(--blanc);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  position:relative;
}
.abonnement-card .btn-primary:hover{
  background:linear-gradient(90deg, #274e7e, #3a6ea5);
  background:linear-gradient(90deg, var(--bleu-medium), var(--bleu-clair));
  transform:translateY(-3px);
  }
@media (max-width: 700px){
  .abonnement-card{
    flex:1 1 100%;
    padding:20px 18px 24px 18px;
  }
  .subscription-cards{
    gap:1rem;
  }
}
.confirmation-card{
  max-width:500px;
  margin:2.5rem auto;
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    padding:28px 24px;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-family:'Inter', sans-serif;
}
.confirmation-card h3{
  margin:0 0 1rem 0;
  font-size:1.6rem;
  font-weight:700;
  text-transform:uppercase;
  text-align:center;
  color:transparent;
  background:linear-gradient(90deg, #3a6ea5 0%, #274e7e 60%, #1a2a42 100%);
  background:var(--grad-primary);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.confirmation-card .price{
  font-size:2rem;
  font-weight:700;
  color:#3a6ea5;
  color:var(--bleu-clair);
  text-align:center;
  margin:0 0 1.5rem 0;
}
.confirmation-card .benefits-list{
  list-style:disc inside;
  margin:0 0 2rem 0;
  color:#333842;
  color:var(--gris-fonce);
  line-height:1.5;
  font-size:1.05rem;
  padding-left:0;
}
.confirmation-card .benefits-list li{
  margin-bottom:0.7rem;
}
.confirmation-card form{
  margin:0;
  padding:0;
  border:none;
    display:flex;
  flex-direction:column;
  gap:1rem;
}
.confirmation-card fieldset{
  border:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.confirmation-card fieldset legend{
  font-weight:700;
  font-size:1.1rem;
  color:#1a2a42;
  color:var(--bleu-fonce);
  margin-bottom:0.5rem;
}
.confirmation-card fieldset label{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  white-space:nowrap;
  cursor:pointer;
  gap:0.5rem;
  color:#333842;
  color:var(--gris-fonce);
  font-weight:600;
}
.confirmation-card fieldset label input{
  margin-right:0.5rem;
  transform:scale(1.15);
  cursor:pointer;
  border-radius:6px;
  border:2.5px solid #3a6ea5;
  border:2.5px solid var(--bleu-clair);
  background:transparent;
  transition:border-color 0.3s ease;
}
.confirmation-card fieldset label input:checked{
  border-color:#aab7c4;
  border-color:var(--beige);
  background:#3a6ea5;
  background:var(--bleu-clair);
}
.confirmation-card fieldset label input:focus-visible{
  outline:2px solid #aab7c4;
  outline:2px solid var(--beige);
  outline-offset:2px;
}
.confirmation-card .form-actions{
  display:flex;
  justify-content:flex-end;
  gap:1rem;
  margin-top:1.5rem;
}
.confirmation-card .form-actions .btn-primary,
.confirmation-card .form-actions .btn-secondary{
  padding:0.7em 1.6em;
  font-size:1rem;
  border-radius:16px;
  border-radius:var(--radius-btn);
  font-weight:700;
    cursor:pointer;
  transition:background 0.25s ease, transform 0.15s ease;
}
.confirmation-card .form-actions .btn-primary:hover{
  background:linear-gradient(120deg, #274e7e, #3a6ea5);
  background:linear-gradient(120deg, var(--bleu-medium), var(--bleu-clair));
  transform:translateY(-3px);
}
.confirmation-card .form-actions .btn-secondary:hover{
  background:linear-gradient(120deg, rgba(26,115,232,0.8), rgba(0,114,206,0.28));
  transform:translateY(-3px);
}
form .forgot-password{
  margin-top:12px;
  text-align:center;
  font-size:0.9rem;
}
form .forgot-password a{
  color:#274e7e;
  color:var(--bleu-medium);
  text-decoration:none;
  font-weight:600;
  padding:4px 8px;
  border-radius:12px;
    transition:background-color 0.25s ease, color 0.25s ease;
}
form .forgot-password a:hover,
form .forgot-password a:focus{
  background-color:#3a6ea5;
  background-color:var(--bleu-clair);
  color:#222;
  outline:none;
}
.forfait-cards,
.protection-cards,
.options-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:1.5rem;
  margin-top:20px;
}
.forfait-card,
.protection-card,
.option-card{
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    transition:box-shadow 0.18s, transform 0.13s, border 0.16s;
  padding:22px 18px 24px 18px;
  margin-bottom:0;
  position:relative;

  display:flex;
  flex-direction:column;
  gap:0.5rem;
  align-items:flex-start;
}
.forfait-card:hover,
.protection-card:hover,
.option-card:hover{
    transform:translateY(-2px) scale(1.015);
  border-color:#3a6ea5;
  border-color:var(--bleu-clair);
  background-color:#f4f6f8;
  background-color:var(--gris-clair);
}
.forfait-info, .option-info{
  flex:1;
  margin-right:1rem;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-weight:600;
}
.forfait-name, .forfait-details{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.option-price{
  font-weight:normal;
  color:#333842;
  color:var(--gris-fonce);
  margin-left:0.5rem;
}
@media (max-width: 700px){
  .forfait-cards, .protection-cards, .options-cards{
    gap:0.8rem;
  }
  .forfait-card, .protection-card, .option-card{
    flex-direction:column;
    align-items:stretch;
    padding:15px 10px 17px 10px;
  }
  .forfait-info, .option-info{ margin-right:0; }
}
.forfait-card input[type="radio"],
.protection-card input[type="radio"]{
  -webkit-appearance:none;
     -moz-appearance:none;
          appearance:none;
  width:22px; height:22px;
  margin:0 0 0 16px;
  border-radius:50%;
  border:2.5px solid #3a6ea5;
  border:2.5px solid var(--bleu-clair);
  background:transparent;
    outline:none;
  transition:border 0.17s, box-shadow 0.16s, background 0.15s;
  cursor:pointer;
  position:relative;
  flex-shrink:0;
  z-index:1;
  display:inline-block;
  vertical-align:middle;
}
.forfait-card input[type="radio"]:checked,
.protection-card input[type="radio"]:checked{
  border:7px solid #3a6ea5;
  border:7px solid var(--bleu-clair);
  background:radial-gradient(circle, #3a6ea5 55%, transparent 56%);
  background:radial-gradient(circle, var(--bleu-clair) 55%, transparent 56%);
}
.forfait-card input[type="radio"]:focus,
.protection-card input[type="radio"]:focus{
  outline:2px solid #aab7c4;
  outline:2px solid var(--beige);
  outline-offset:1.5px;
}
@media (max-width: 600px){
  .forfait-card input[type="radio"],
  .protection-card input[type="radio"]{
    width:26px; height:26px; margin-left:8px;
  }
}
.option-card input[type="checkbox"]{
  -webkit-appearance:none;
     -moz-appearance:none;
          appearance:none;
  width:22px;
  height:22px;
  margin:0 0 0 12px;
  border-radius:6px;
  border:2.5px solid #3a6ea5;
  border:2.5px solid var(--bleu-clair);
  background:transparent;
    outline:none;
  transition:border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  cursor:pointer;
  position:relative;
  flex-shrink:0;
  z-index:1;
  display:inline-block;
  vertical-align:middle;
}
.option-card input[type="checkbox"]::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:8px;
  height:12px;
  border:solid #aab7c4;
  border:solid var(--beige);
  border-width:0 2.5px 2.5px 0;
  transform:translate(-50%, -60%) rotate(45deg);
  opacity:0;
  transition:opacity 0.2s ease;
  pointer-events:none;
  z-index:2;
}
.option-card input[type="checkbox"]:checked{
  background:#3a6ea5;
  background:var(--bleu-clair);
  border-color:#aab7c4;
  border-color:var(--beige);
  }
.option-card input[type="checkbox"]:checked::after{
  opacity:1;
}
.option-card input[type="checkbox"]:focus-visible{
  outline:2px solid #aab7c4;
  outline:2px solid var(--beige);
  outline-offset:1.5px;
}
.card-header h3{
  margin:0 0 0.5rem;
  font-size:1.15rem;
  color:#1a2a42;
  color:var(--bleu-fonce);
  text-transform:uppercase;
  letter-spacing:0.03em;
  font-weight:700;
}
.stars{
  color:#f5a623;
  font-size:0.95rem;
  margin-bottom:0.6rem;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.description{
  font-size:1rem;
  color:#333842;
  color:var(--gris-fonce);
  margin:0.6rem 0 1.2rem 0;
  line-height:1.4;
  min-height:56px;
}
.franchise{
  font-weight:700;
  color:#c00;
  margin-bottom:1rem;
  font-size:1rem;
}
.features-list{
  list-style:none;
  padding-left:0;
  margin:0 0 1.3rem 0;
  font-size:0.95rem;
  color:#333842;
  color:var(--gris-fonce);
  line-height:1.4;
}
.features-list li{
  position:relative;
  padding-left:1.6em;
  margin-bottom:0.5rem;
}
.features-list li.included::before{
  content:"✔";
  position:absolute;
  left:0;
  top:0;
  color:#28a745;
  color:var(--vert);
  font-weight:700;
  font-size:1.1rem;
  line-height:1;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.features-list li.excluded{
  opacity:0.5;
  font-style:italic;
}
.features-list li.excluded::before{
  content:"✖";
  position:absolute;
  left:0;
  top:0;
  color:#888;
  font-weight:700;
  font-size:1.1rem;
  line-height:1;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.features-cards{
  display:flex;
  justify-content:center;
  gap:28px;
  flex-wrap:wrap;
  margin-top:24px;
}
.feature-card{
  background:linear-gradient(145deg, #f4f6f8, #d0d7e1);
  background:linear-gradient(145deg, var(--gris-clair), #d0d7e1);
  border-radius:24px;
    padding:28px 36px;
  max-width:320px;
  width:100%;
  text-align:center;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-weight:700;
  font-size:1.15rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  transition:box-shadow 0.3s ease, transform 0.3s ease;
  cursor:default;
}
.feature-card:hover{
    transform:translateY(-8px);
  background:linear-gradient(145deg, #dbe4f5, #a3b7dd);
}
.feature-card .icon i{
  font-size:48px;
  color:#274e7e;
  color:var(--bleu-medium);
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.features h2{
  text-align:center;
  font-weight:900;
  font-size:2rem;
  margin-bottom:1.2rem;
  color:#274e7e;
  color:var(--bleu-medium);
}
.card-footer{
  margin-top:auto;
  text-align:right;
  font-size:1.1rem;
  font-weight:700;
  color:#1a2a42;
  color:var(--bleu-fonce);
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.card-footer .price,
.card-footer .new-price{
  font-size:1.3rem;
  color:#3a6ea5;
  color:var(--bleu-clair);
}
.old-price{
  text-decoration:line-through;
  margin-left:0.5rem;
  color:#888;
  font-weight:400;
  font-size:1rem;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.badge-discount{
  background:#ff7f00;
  color:#fff;
  font-size:0.85rem;
  padding:3px 8px;
  border-radius:6px;
  margin-left:0.5rem;
  font-weight:700;
  text-transform:uppercase;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
    transition:background-color 0.3s ease;
}
.badge-discount:hover{
  background-color:#e06b00;
}
.admin-header{
  background-color:#1a2a42;
  background-color:var(--bleu-fonce);
      border-bottom:1.5px solid rgba(255,255,255,0.15);
  position:relative;
  z-index:100;
  z-index:var(--z-header);
  color:#ffffff;
  color:var(--blanc);
  padding:18px 5vw;
  border-radius:0 0 36px 36px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
}
.admin-header-inner{
  max-width:1200px;
  margin:0 auto;
  padding:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  width:100%;
  gap:12px;
}
.admin-header-left h1{
  font-size:2rem;
  margin:0;
  font-weight:700;
  color:#ffffff;
  color:var(--blanc);
  letter-spacing:0.5px;
}
.admin-nav{
  display:flex;
  flex-wrap:wrap;
  gap:30px;
  justify-content:center;
  background-color:rgba(0, 0, 0, 0.1);
  border-radius:14px;
  padding:5px 24px;
  }
.admin-nav a{
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:600;
  padding:9px 14px;
  border-radius:8px;
  transition:background 0.15s, color 0.16s;
  position:relative;
  text-decoration:none;
}
.admin-nav a:hover,
.admin-nav a.active{
  background:linear-gradient(90deg, #3a6ea5, #274e7e);
  background:linear-gradient(90deg, var(--bleu-clair), var(--bleu-medium));
  color:#ffffff;
  color:var(--blanc);
}
.admin-user{
  text-align:right;
  font-size:1rem;
  color:#ffffff;
  color:var(--blanc);
  white-space:nowrap;
}
.admin-user span{
  margin-right:16px;
}
.admin-user a{
  color:#3a6ea5;
  color:var(--bleu-clair);
  text-decoration:none;
  font-weight:bold;
  transition:color 0.2s ease;
}
.admin-user a:hover{
  color:#ffffff;
  color:var(--blanc);
}
.vehicule-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 1rem;
  margin-top:24px;
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
    font-family:'Inter', sans-serif;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-weight:600;
  font-size:1rem;
  overflow:hidden;
}
.vehicule-table thead{
  background:linear-gradient(90deg, #3a6ea5, #274e7e);
  background:linear-gradient(90deg, var(--bleu-clair), var(--bleu-medium));
  color:#ffffff;
  color:var(--blanc);
  border-radius:18px 18px 0 0;
  border-radius:var(--radius-main) var(--radius-main) 0 0;
}
.vehicule-table thead th{
  padding:14px 18px;
  text-align:center;
  font-weight:700;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
  letter-spacing:0.04em;
}
.vehicule-table tbody tr{
  background:#ffffff;
  background:var(--blanc);
  border-radius:14px;
    transition:box-shadow 0.3s ease;
}
.vehicule-table tbody tr:hover{
  }
.vehicule-table tbody td{
  padding:12px 18px;
  text-align:center;
  vertical-align:middle;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.vehicule-img{
  width:100px;
  height:auto;
  border-radius:12px;
  background-color:#f4f6f8;
  background-color:var(--gris-clair);
  padding:6px;
  }
.btn-edit,
.btn-delete{
  padding:8px 16px;
  border-radius:16px;
  border-radius:var(--radius-btn);
  font-weight:700;
  font-size:1rem;
  text-decoration:none;
  display:inline-block;
  transition:background-color 0.25s ease, box-shadow 0.25s ease;
  cursor:pointer;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.btn-edit{
  background:linear-gradient(135deg, #3399ff, #0066cc);
  color:#ffffff;
  color:var(--blanc);
  }
.btn-edit:hover{
  background:#004c99;
  }
.btn-delete{
  background:linear-gradient(135deg, #dc3545, #7a1a23);
  color:#ffffff;
  color:var(--blanc);
    margin-left:10px;
}
.btn-delete:hover{
  background:#7f0000;
  }
@media (max-width: 900px){
  .admin-header-inner{
    flex-direction:column;
    gap:15px;
    text-align:center;
  }
  .vehicule-table{
    font-size:0.9rem;
  }
  .btn-edit,
  .btn-delete{
    font-size:0.9rem;
    padding:6px 12px;
  }
}
.modal{
  display:none;
  position:fixed;
  z-index:200;
  z-index:var(--z-modal, 200);
  top:0;
  left:0;
  width:100vw;
  height:100vh;
  background:rgba(0, 0, 0, 0.35);
  align-items:center;
  justify-content:center;
  padding:20px;
  overflow-y:auto;
}
.modal.active{
  display:flex;
  animation:fadeInModal 0.3s ease forwards;
}
@keyframes fadeInModal{
  from{
    opacity:0;
    transform:translateY(-15px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
.modal-content{
  background-color:#ffffff;
  background-color:var(--blanc);
  border-radius:18px;
  border-radius:var(--radius-main);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    padding:28px 24px;
  min-width:360px;
  max-width:600px;
  width:100%;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-family:'Inter', sans-serif;
  font-size:1rem;
  position:relative;
}
.modal-content h3{
  margin-top:0;
  margin-bottom:1.2rem;
  font-weight:700;
  font-size:1.4rem;
  color:#1a2a42;
  color:var(--bleu-fonce);
  text-transform:uppercase;
}
.modal-content button,
.modal-content .btn{
  margin-top:1.5rem;
  padding:12px 26px;
  border-radius:16px;
  border-radius:var(--radius-btn);
  font-weight:700;
  font-size:1.1rem;
  cursor:pointer;
    border:none;
  transition:background 0.25s ease, box-shadow 0.25s ease;
}
.modal-content button.btn-primary,
.modal-content .btn-primary{
  background:#3a6ea5;
  background:var(--bleu-clair);
  color:#ffffff;
  color:var(--blanc);
  }
.modal-content button.btn-primary:hover,
.modal-content .btn-primary:hover{
  background:#1a2a42;
  background:var(--bleu-fonce);
  }
.modal-content button.btn-secondary,
.modal-content .btn-secondary{
  background:#c1cbd9;
  background:var(--gris-moyen);
  color:#1a2a42;
  color:var(--bleu-fonce);
  }
.modal-content button.btn-secondary:hover,
.modal-content .btn-secondary:hover{
  background:#3a6ea5;
  background:var(--bleu-clair);
  color:#ffffff;
  color:var(--blanc);
  }
@media (max-width: 480px){
  .modal-content{
    min-width:90vw;
    padding:20px 15px;
    font-size:0.95rem;
  }

  .modal-content button,
  .modal-content .btn{
    font-size:1rem;
    padding:10px 20px;
  }
}
.modal-bg{
  display:none;
  position:fixed;
  z-index:1000;
  left:0;
  top:0;
  width:100vw;
  height:100vh;
  background:rgba(0,0,0,0.45);
  justify-content:center;
  align-items:center;
}
.modal-bg.active{
  display:flex;
}
.modal-close{
  position:absolute;
  top:8px;
  right:16px;
  font-size:2rem;
  color:#aaa;
  cursor:pointer;
}
.modal-close:hover{
  color:#333;
}
.btn-gestion{
  background:#c1cbd9;
  background:var(--gris-moyen);
  color:#1a2a42;
  color:var(--bleu-fonce);
  border:none;
  border-radius:7px;
  font-weight:600;
  padding:9px 16px;
  margin-left:5px;
  display:inline-block;
  transition:background 0.12s;
  text-decoration:none;
}
.btn-gestion:hover{
  background:#3a6ea5;
  background:var(--bleu-clair);
  color:#ffffff;
  color:var(--blanc);
}
.btn-table{
  background:#f1f1f3;
  color:#2757a4;
  font-weight:600;
  border:none;
  border-radius:7px;
  padding:7px 15px;
  margin:0 2px;
  font-size:1em;
  cursor:pointer;
  display:inline-block;
  transition:background 0.14s, color 0.14s;
  min-width:70px;
  text-align:center;
}
.btn-table:hover{
  background:#e0e9f7;
  color:#193e6b;
}
.btn-table.danger{
  background:#fae7e7;
  color:#a32e2e;
}
.btn-table.danger:hover{
  background:#e2bbbb;
  color:#fff;
}
.btn-table.success{
  background:#d4efdf;
  color:#147b3c;
}
.btn-table.success:hover{
  background:#a5d6a7;
  color:#0c4736;
}
.btn-table.mdp{
  background:linear-gradient(90deg,#74a8ff 0,#285eb7 100%);
  color:#fff;
}
.btn-table.mdp:hover{
  background:linear-gradient(90deg,#285eb7 0,#74a8ff 100%);
  color:#fff;
}
.btn-table.voir{
  background:linear-gradient(90deg,#4fc3f7 0,#1976d2 100%);
  color:#fff;
}
.btn-table.voir:hover{
  background:linear-gradient(90deg,#1976d2 0,#4fc3f7 100%);
  color:#fff;
}
.dashboard-tiles{
  display:flex;
  gap:32px;
  margin:32px 0 24px 0;
  flex-wrap:wrap;
}
.dashboard-tile{
  background:#f8fbff;
  border-radius:20px;
  border-radius:var(--radius-pill);
  padding:32px 38px;
    min-width:165px;
  flex:1 1 155px;
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-bottom:8px;
}
.tile-number{
  font-size:2.7em;
  font-weight:700;
  color:#1c3d70;
  margin-bottom:8px;
  letter-spacing:1px;
}
.tile-label{
  font-size:1.08em;
  font-weight:600;
  color:#4e6a9a;
}
@media (max-width: 1000px){
  .dashboard-tiles{ gap:15px; }
  .dashboard-tile{ padding:22px 12px; min-width:120px; }
  .tile-number{ font-size:2em; }
}
.bons-container{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-top:15px;
}
.bon-card{
  background:#e8f0fe;
  border:2px solid #3a6ea5;
  border:2px solid var(--bleu-clair);
  border-radius:14px;
  padding:16px 20px;
    width:280px;
  font-family:'Inter', sans-serif;
  color:#274e7e;
  color:var(--bleu-medium);
  display:flex;
  flex-direction:column;
  gap:8px;
  -webkit-user-select:text;
     -moz-user-select:text;
          user-select:text;
}
.bon-code{
  font-weight:900;
  font-size:1.6rem;
  color:#3a6ea5;
  color:var(--bleu-clair);
  letter-spacing:2px;
  text-align:center;
}
.bon-info{
  font-size:1rem;
  font-weight:600;
  line-height:1.4;
  text-align:center;
  color:#274e7e;
  color:var(--bleu-medium);
}
.bons-utilises-container{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-top:15px;
}
.bon-utilise-card{
  background:#f4f6f8;
  background:var(--gris-clair);
  border:2px solid #ccc;
  border-radius:14px;
  padding:16px 20px;
    width:280px;
  font-family:'Inter', sans-serif;
  color:#888;
  display:flex;
  flex-direction:column;
  gap:8px;
  -webkit-user-select:text;
     -moz-user-select:text;
          user-select:text;
  opacity:0.7;
  text-decoration:line-through;
}
.bon-utilise-card .bon-code{
  font-weight:900;
  font-size:1.6rem;
  color:#888;
  letter-spacing:2px;
  text-align:center;
}
.bon-utilise-card .bon-info{
  font-size:1rem;
  font-weight:600;
  line-height:1.4;
  text-align:center;
}
select#bon_type{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-color:#f4f6f8;
  background-color:var(--gris-clair);
  border:2px solid #3a6ea5;
  border:2px solid var(--bleu-clair);
  border-radius:12px;
  padding:10px 40px 10px 14px;
  font-size:1rem;
  font-weight:600;
  color:#274e7e;
  color:var(--bleu-medium);
  cursor:pointer;
    background-image:url('data:image/svg+xml;utf8,<svg fill="%231a73e8" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:18px 18px;
  transition:border-color 0.25s ease;
}
select#bon_type:focus{
  outline:none;
  border-color:#3a6ea5;
  border-color:var(--bleu-clair);
    }
.connexion-title{
  text-align:center;
  font-weight:700;
  font-size:1.8rem;
  color:#1a2a42;
  color:var(--bleu-fonce);
  margin-bottom:1.6rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.connexion-links{
  margin-top:20px;
  font-size:1rem;
  color:#1a2a42;
  color:var(--bleu-fonce);
  text-align:center;
  font-weight:600;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.connexion-links p{
  margin:8px 0;
}
.connexion-links a{
  text-decoration:none;
  padding:6px 14px;
  border-radius:20px;
  border-radius:var(--radius-pill);
    color:#274e7e;
  color:var(--bleu-medium);
  font-weight:700;
  transition:background-color 0.25s ease, color 0.25s ease;
}
.connexion-links a:hover,
.connexion-links a:focus{
  background-color:#3a6ea5;
  background-color:var(--bleu-clair);
  color:#222;
  outline:none;
}
.link-primary{
  }
.link-secondary{
  font-size:0.9rem;
  font-weight:500;
  color:#444;
    padding:0;
}
.link-secondary:hover,
.link-secondary:focus{
  color:#274e7e;
  color:var(--bleu-medium);
  text-decoration:underline;
  }
.connexion-container{
  max-width:420px;
  margin:0 auto;
  background:#ffffff;
  background:var(--blanc);
  padding:30px 28px 38px 28px;
  border-radius:18px;
  border-radius:var(--radius-main);
    border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
}
.connexion-container form{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.recapitulatif{
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:18px;
  padding:16px 24px;
  max-width:600px;
  margin:24px auto;
  background:#f4f6f8;
  background:var(--gris-clair);
  }
.recapitulatif h3{
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:700;
  margin-bottom:14px;
  text-align:center;
  font-size:1.4rem;
}
.recap-content{
  display:flex;
  gap:18px;
  align-items:center;
}
.recap-content img{
  width:140px;
  height:auto;
  border-radius:14px;
  -o-object-fit:contain;
     object-fit:contain;
  }
.recap-info p{
  margin:6px 0;
  font-weight:600;
  color:#274e7e;
  color:var(--bleu-medium);
  font-size:1.1rem;
}
.recapitulatif-complet{
  background:#f4f6f8;
  background:var(--gris-clair);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:18px;
  padding:24px 32px;
  max-width:700px;
  margin:24px auto 48px auto;
    font-family:'Inter', sans-serif;
  color:#274e7e;
  color:var(--bleu-medium);
}
.recapitulatif-complet h3{
  text-align:center;
  font-weight:900;
  font-size:1.7rem;
  margin-bottom:1rem;
  color:#274e7e;
  color:var(--bleu-medium);
}
.reservation-recap{
  flex:0 0 420px;
  background:linear-gradient(145deg, #f4f6f8, #c9d5eb);
  background:linear-gradient(145deg, var(--gris-clair), #c9d5eb);
  border-radius:20px;
  padding:24px 28px;
    position:relative;
  font-family:'Inter', sans-serif;
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:600;
  line-height:1.4;
  border:2px solid #a3b7dd;

  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
.reservation-recap h3{
  font-weight:900;
  font-size:1.6rem;
  margin-bottom:1rem;
  color:#274e7e;
  color:var(--bleu-medium);
  text-align:center;
  letter-spacing:0.03em;
}
.reservation-recap img{
  display:block;
  max-width:100%;
  height:auto;
  margin:0 auto 1rem auto;
  border-radius:14px;
  }
.recap-section{
  margin-bottom:1.2rem;
  border-bottom:1px solid #a3b7dd;
  padding-bottom:0.9rem;
}
.recap-section:last-child{
  border-bottom:none;
  padding-bottom:0;
}
.recap-section p{
  margin:6px 0;
  font-size:1rem;
}
.total-price p{
  font-size:1.4rem;
  font-weight:900;
  text-align:center;
  margin-top:1.5rem;
  border-top:2px solid #274e7e;
  border-top:2px solid var(--bleu-medium);
  padding-top:14px;
  letter-spacing:0.05em;
  background:linear-gradient(90deg, #3a6ea5, #333842);
  background:linear-gradient(90deg, var(--bleu-clair), var(--gris-fonce));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.card-item{
  background:#e6ecf9;
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:16px;
  padding:16px 20px;
    color:#274e7e;
  color:var(--bleu-medium);
  font-weight:600;
  text-align:center;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
.card-item h4{
  margin-bottom:8px;
  font-size:1.1rem;
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:700;
  text-transform:uppercase;
}
.card-item p{
  margin:0;
  font-size:1rem;
  color:#3a6ea5;
  color:var(--bleu-clair);
}
.card-item.card-total{
  background:linear-gradient(90deg, #3a6ea5, #274e7e);
  background:linear-gradient(90deg, var(--bleu-clair), var(--bleu-medium));
  color:#111;
  font-weight:900;
  font-size:1.4rem;
  }
.card-item.card-total h3{
  font-size:1.6rem;
  margin-bottom:10px;
  color:#222;
}
.card-item.card-discount{
  background:#c5d2f0;
  border-color:#a3b7dd;
  color:#2e4486;
  font-weight:700;
  }
.prix-barre{
  text-decoration:line-through;
  color:#8895b0;
  font-weight:600;
  font-size:1.1rem;
}
.remise{
  background:linear-gradient(60deg, #333333, #777777, #bbbbbb);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  font-weight:700;
  font-size:1.1rem;
}
.prix-nouveau{
  font-weight:900;
  font-size:1.6rem;
  margin-top:6px;
  background:linear-gradient(90deg, #fffdd0, #f5f5dc, #fffaf0);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.card-item .stars{
  color:#f5a623;
  font-size:1.2rem;
  margin-top:4px;
}
.options-list{
  list-style:none;
  margin:0;
  padding-left:0;
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:500;
  text-align:left;
}
.options-list li{
  margin-bottom:0.4rem;
  padding-left:1rem;
  position:relative;
}
.options-list li::before{
  content:"–";
  position:absolute;
  left:0;
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:700;
}
.reservation-info-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
  gap:16px;
  margin-top:12px;
}
.info-card{
  background-color:#ffffff;
  background-color:var(--blanc);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:18px;
  border-radius:var(--radius-main);
    padding:14px 18px;
  color:#1a2a42;
  color:var(--bleu-fonce);
  font-weight:600;
  font-size:1rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
  transition:box-shadow 0.3s ease;
}
.info-card strong{
  font-weight:700;
  color:#274e7e;
  color:var(--bleu-medium);
  margin-bottom:6px;
  font-size:0.95rem;
  text-transform:uppercase;
  text-align:center;
}
.info-card p{
  margin:0;
  font-weight:600;
  font-size:1.05rem;
  text-align:center;
}
.info-card:hover{
    cursor:default;
}
.prix-total-card p{
  margin:2px 0;
}
@media (max-width: 480px){
  .reservation-info-grid{
    grid-template-columns:1fr;
  }
}
.reservation-layout{
  display:grid;
  grid-template-columns:220px 1fr 350px;
  gap:20px;
  max-width:1400px;
  margin:0 auto;
  padding:20px;
  align-items:start;
}
.reservation-steps,
.reservation-main,
.reservation-recap{
  align-self:start;
  height:auto;
  padding-top: 20px;
}
.reservation-steps > :first-child,
.reservation-main  > :first-child,
.reservation-recap > :first-child{
  margin-top:0;
}
.reservation-main h2 {
  margin-top: 0;
}
.reservation-steps,
.reservation-recap{
  padding-top:20px;
}
.reservation-steps{
  align-self:start;
  align-items:flex-start;
  height:auto;
  background:#ffffff;
  background:var(--blanc);
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
  border-radius:18px;
  border-radius:var(--radius-main);
  padding:20px;
    }
.reservation-steps ul{
  list-style:none;
  margin:0;
  padding:0;
}
.reservation-steps li{
  margin-bottom:14px;
  font-weight:600;
  color:#333842;
  color:var(--gris-fonce);
}
.reservation-steps li.active{
  color:#3a6ea5;
  color:var(--bleu-clair);
}
.reservation-steps li.completed{
  color:#28a745;
  color:var(--vert);
}
.reservation-steps a{
  color:inherit;
  text-decoration:none;
}
.reservation-steps a:hover{
  text-decoration:underline;
}
@media (max-width: 900px){
  .reservation-layout{
    grid-template-columns:1fr;
  }
  .reservation-steps{
    order:-1;
    margin-bottom:20px;
  }
}
#reservation-details{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:20px;
  justify-items:center;
  align-items:start;
}
#reservation-details .card-item{
  text-align:center;
  padding:20px;
  min-height:130px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-radius:16px;
  border:1.5px solid #274e7e;
  border:1.5px solid var(--bleu-medium);
    background:#f4f6f8;
  background:var(--gris-clair);
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:600;
}
#reservation-details .card-total{
  grid-column:span 2;
  font-weight:900;
  font-size:1.4rem;
  background:linear-gradient(90deg, #3a6ea5, #274e7e);
  background:linear-gradient(90deg, var(--bleu-clair), var(--bleu-medium));
  color:#222;
    display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
  padding:24px 0;
}
#reservation-detail-modal .modal-content{
  max-width:720px;
  padding:32px 36px;
  background:#f4f6f8;
  background:var(--gris-clair);
  border-radius:24px;
    color:#274e7e;
  color:var(--bleu-medium);
  font-weight:700;
}
#reservation-details .stars{
  display:flex;
  justify-content:center;
  gap:4px;
  font-size:1.25rem;
  color:#274e7e;
  color:var(--bleu-medium);
  margin-top:6px;
}
#reservation-detail-modal.modal-bg{
  display:none;
  position:fixed;
  z-index:1000;
  left:0; top:0;
  width:100vw; height:100vh;
  background:rgba(0,0,0,0.45);
  justify-content:center;
  align-items:center;
  padding:1rem;
  overflow-y:auto;
  font-family:'Inter', sans-serif;
}
#reservation-detail-modal.modal-bg.active{
  display:flex;
}
#reservation-detail-modal .modal-content{
  background:linear-gradient(145deg, #f4f6f8, #c9d5eb);
  background:linear-gradient(145deg, var(--gris-clair), #c9d5eb);
  border-radius:24px;
  border:2px solid #274e7e;
  border:2px solid var(--bleu-medium);
    padding:2rem 2.5rem 3rem;
  max-width:600px;
  width:100%;
  color:#274e7e;
  color:var(--bleu-medium);
  position:relative;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
}
#reservation-detail-modal #reservation-modal-title{
  font-weight:900;
  font-size:1.7rem;
  color:#274e7e;
  color:var(--bleu-medium);
  text-transform:uppercase;
  margin-bottom:1.8rem;
}
#reservation-detail-modal .modal-close{
  position:absolute;
  top:18px;
  right:18px;
  width:32px; height:32px;
  background:#274e7e;
  background:var(--bleu-medium);
  border-radius:50%;
  border:none;
  color:#fff;
  font-weight:900;
  font-size:1.4rem;
  line-height:32px;
  text-align:center;
  cursor:pointer;
    transition:background 0.3s ease;
}
#reservation-detail-modal .modal-close:hover{
  background:#3a6ea5;
  background:var(--bleu-clair);
  color:#222;
}
#reservation-detail-modal .reservation-summary-cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px 24px;
  justify-items:stretch;
  align-items:stretch;
}
#reservation-detail-modal .card-item{
  min-height:180px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  width:100%;
  box-sizing:border-box;
}
#reservation-detail-modal .card-item h4{
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:900;
  font-size:1.1rem;
  margin-bottom:0.7rem;
  text-transform:uppercase;
}
#reservation-detail-modal .card-total{
  grid-column:span 3;
  min-height:180px;
}
#reservation-detail-modal .options-list{
  list-style:none;
  margin:0;
  padding-left:1rem;
  text-align:left;
  font-weight:600;
  color:#274e7e;
  color:var(--bleu-medium);
}
#reservation-detail-modal .options-list li{
  margin-bottom:0.3rem;
  position:relative;
}
#reservation-detail-modal .options-list li::before{
  content:"–";
  position:absolute;
  left:0;
  color:#274e7e;
  color:var(--bleu-medium);
  font-weight:700;
}
#reservation-detail-modal .stars{
  color:#274e7e;
  color:var(--bleu-medium);
  font-size:1.2rem;
  -webkit-user-select:none;
     -moz-user-select:none;
          user-select:none;
  margin-top:0.3rem;
}
#reservation-detail-modal > button.btn-secondary{
  margin:2rem auto 0;
  padding:0.8rem 2rem;
  display:block;
  font-weight:700;
  font-size:1.1rem;
  border-radius:12px;
    cursor:pointer;
  background:#274e7e;
  background:var(--bleu-medium);
  color:#fff;
  border:none;
  transition:background 0.25s ease;
}
#reservation-detail-modal > button.btn-secondary:hover{
  background:#3a6ea5;
  background:var(--bleu-clair);
  color:#222;
}
@media (max-width: 700px){
  #reservation-detail-modal .reservation-summary-cards{
    grid-template-columns:1fr;
  }
  #reservation-detail-modal .card-total{
    grid-column:span 1;
  }
}

/* === Layout de base (safe) === */
.container { max-width: 1100px; margin: 0 auto; padding: 16px; }
h1 { margin: 12px 0 16px; }
h2 { margin: 14px 0 10px; }

/* === Grilles & cartes === */
.grid-cards {
  display: grid; gap: 14px;
  grid-template-columns: repeat(3, minmax(220px,1fr));
}
@media (max-width: 1000px) {
  .grid-cards { grid-template-columns: repeat(2, minmax(220px,1fr)); }
}
@media (max-width: 640px) {
  .grid-cards { grid-template-columns: 1fr; }
}
.grid-2 {
  display: grid; gap: 16px; grid-template-columns: 1.2fr .8fr;
}
@media (max-width: 900px) { .grid-2 { grid-template-columns: 1fr; } }

.card {
  background:#fff; border:1px solid #e6e6f0; border-radius:14px;
    overflow:hidden; transition: transform .08s ease;
}
.card:hover{ transform: translateY(-2px); }
.card-media img{ display:block; width:100%; height:auto; }
.card-body{ padding:12px 14px; }
.card-body h3{ margin:0 0 6px; font-size:1.05rem; }

/* === Formulaires === */
.form-grid {
  display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(220px,1fr));
  margin: 8px 0 12px;
}
@media (max-width: 640px){ .form-grid { grid-template-columns: 1fr; } }
.form-row { display:flex; flex-direction:column; gap:6px; }
label { font-weight:700; font-size:.95rem; }
input[type="text"], input[type="email"], input[type="password"],
input[type="tel"], input[type="date"], input[type="datetime-local"] {
  width:100%; padding:10px 12px; border:1px solid #d7d7e3; border-radius:10px;
}

/* === Boutons === */
.btn-primary, .btn-secondary, .btn-success, .btn-plain {
  display:inline-block; padding:10px 14px; border-radius:12px; border:1px solid transparent;
  font-weight:800; cursor:pointer; text-decoration:none;
}
.btn-primary { background:#2a62d6; color:#fff; }
.btn-secondary{ background:#eef3ff; color:#1d3ea3; border-color:#cdd9ff; }
.btn-success { background:#0bbf64; color:#083; }
.btn-plain   { background:transparent; color:#333; border-color:#d7d7e3; }
.actions { margin-top: 12px; }

/* === Messages === */
.error { background:#ffe6e6; border:1px solid #ffb5b5; padding:8px 10px; border-radius:10px; }
.info  { background:#eef7ff; border:1px solid #cde1ff; padding:8px 10px; border-radius:10px; }

/* === Bandeau étapes (si pas déjà intégré) === */
.step-banner{background:#fff;border:1px solid var(--sb-border);border-radius:14px;padding:12px;margin:14px 0 10px;}
.step-banner .steps{
  display:grid; gap:10px;
  grid-template-columns:repeat(7, minmax(140px, 1fr)); /* était 6 → 7 */
}
.step-banner .step-item{
  background:#fff;border:1px solid var(--sb-border);border-radius:12px;padding:10px 12px;min-height:78px;
}
.step-banner .step-item .title{font-weight:800;color:var(--sb-text);font-size:.95rem;margin-bottom:4px;}
.step-banner .step-item small{display:block;color:var(--sb-muted);font-size:.85rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* active */
.step-banner .step-item.is-current{border-color:var(--sb-accent);background:linear-gradient(180deg,#fff,#fff7e6);}
.step-banner .step-item.is-current .title{color:var(--sb-accent);}
.step-banner .step-item.is-current::before{
  content:"";position:absolute;display:block;
}
/* done */
.step-banner .step-item.is-done{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#ecfdf5);position:relative;}
.step-banner .step-item.is-done .title{color:#166534;}
.step-banner .step-item.is-done small{color:#166534;opacity:.9;}
.step-banner .step-item.is-done::after{
  content:"✓";position:absolute;right:10px;top:10px;color:var(--sb-done);font-weight:900;}

/* ===== TOTAL BANNER séparé ===== */
.total-banner{
  background:#0f172a;color:#fff;border-radius:12px;padding:10px 12px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.total-banner strong{font-weight:800;}
.total-banner .after-tier{color:#d1d5db;}

/* ===== Responsive ===== */
@media (max-width: 1024px){
  .step-banner .steps{grid-template-columns:repeat(4, minmax(160px,1fr));}
}
@media (max-width: 640px){
  .step-banner{padding:10px;}
  .step-banner .steps{grid-template-columns:repeat(2, minmax(150px,1fr));}
  .step-banner .step-item{min-height:auto;}
  .step-banner .step-item small{display:none;}
  .step-banner .step-item.is-current small{display:block;} /* ne montre les détails que pour l’étape active */
  .total-banner{gap:8px;}
}
.info-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  border:1.5px solid #2a62d6;color:#2a62d6;font-weight:900;margin-left:8px}
.info-icon:hover{background:#eef3ff}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center}
.modal-bg.active{display:flex}
.modal-content{background:#fff;border-radius:12px;max-width:640px;width:92%;padding:16px;cursor:pointer;font-size:22px}

/* === Sélecteurs date/heure === */
.time-grid { display:grid; gap:12px; grid-template-columns: repeat(2, minmax(240px,1fr)); }
@media (max-width:700px){ .time-grid { grid-template-columns: 1fr; } }

.date-time-box {
  border:1px solid #e6e6f0; border-radius:12px; padding:12px;
  background:#fff; }
.date-time-box h3 { margin:0 0 8px; font-size:1rem; }

.time-select {
  width:100%; padding:10px 12px; border:1px solid #d7d7e3; border-radius:10px;
  background:#fff;
}

/* === Liste véhicules (mode lignes) === */
.veh-list {
  border:1px solid #e6e6f0; border-radius:12px; overflow:hidden; background:#fff;
  }
.veh-head, .veh-row {
  display:grid; gap:12px; align-items:center; padding:10px 12px;
  grid-template-columns: 92px 1fr 140px 160px 140px; /* photo | modèle | prix/j | total | action */
}
.veh-head {
  background:#f6f8ff; font-weight:800; color:#26325b; border-bottom:1px solid #e6e6f0;
}
.veh-row:nth-child(even){ background:#fafbff; }
.veh-img img {
  width:84px; height:56px; object-fit:cover; border-radius:10px; border:1px solid #e6e6f0;
}
.veh-name { display:flex; align-items:center; gap:8px; }
.veh-name .title { font-weight:800; }
.veh-meta { color:#5b637a; font-size:.9rem; }

.price { font-weight:800; }
.btn-choose { white-space:nowrap; }

/* Bouton info “joli” */
.btn-info {
  width:32px; height:32px; border-radius:50%;
  border:1.5px solid #2a62d6; background:linear-gradient(#ffffff,#f6f9ff);
  display:inline-flex; align-items:center; justify-content:center;
  color:#2a62d6; font-weight:900;   transition:transform .08s ease, background .2s ease;
}
.btn-info:hover{ background:#eef3ff; transform:translateY(-1px); }
.btn-info svg{ width:16px; height:16px; }

/* Responsive */
@media (max-width: 900px) {
  .veh-head, .veh-row { grid-template-columns: 72px 1fr 120px 120px 110px; }
}
@media (max-width: 640px) {
  .veh-head { display:none; }
  .veh-row {
    grid-template-columns: 72px 1fr;
    grid-template-areas:
      "img name"
      "img meta"
      "img prices"
      "img action";
    row-gap:6px;
  }
  .veh-img { grid-area: img; }
  .veh-name { grid-area: name; }
  .veh-meta { grid-area: meta; }
  .veh-day, .veh-total { display:inline-block; margin-right:10px; }
  .veh-prices { grid-area: prices; }
  .veh-action { grid-area: action; }
}

.radio-cards{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0;}
.r-card{display:flex;gap:10px;align-items:center;border:1px solid #e5e7eb;border-radius:12px;padding:10px 12px;cursor:pointer;background:#fff;}
.r-card input[type="radio"]{accent-color:#B8860B;transform:scale(1.1);}
.r-card .r-title{font-weight:800;}
.r-card .r-sub{font-size:.9rem;color:#6b7280;}
.r-card:has(input[type="radio"]:checked){border-color:#B8860B;background:#fffaf0;}
@media (max-width:640px){.radio-cards{flex-direction:column;}}

/* ===== Total banner sticky sur mobile ===== */
@media (max-width: 768px){
  /* si ton header est fixe, règle ici la marge haute (ex: 56px) */
  :root{ --total-sticky-top: max(0px, env(safe-area-inset-top, 0px)); }

  .total-banner{
    position: sticky;
    top: var(--total-sticky-top);
    z-index: 1000;
    border-radius: 0 0 12px 12px;         /* bord inférieur arrondi collé au haut */
      }

  /* optionnel: étendre légèrement le fond si la page a un padding latéral */
  .total-banner::before{
    content:"";
    position:absolute;
    left:-12px; right:-12px; top:-12px; bottom:0;
    background:#0f172a;
    z-index:-1;
    border-radius: 0 0 14px 14px;
  }
}

/* Etapes cliquables (retour en arrière) */
.step-banner .step-item.is-done{ cursor:pointer; transition: box-shadow .18s ease, border-color .18s ease, background .18s; }
.step-banner .step-item.is-done:hover{ border-color: var(--sb-accent); background: linear-gradient(180deg,#fff,#fff7e6); }
.step-banner .steps > a.step-item{ text-decoration: none; color: inherit; display:block; }

.time-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
@media (max-width: 720px){
  .time-grid{ grid-template-columns: 1fr; }
}

/* Carte “Départ / Retour” */
.date-time-box{
  background:#fff;
  border:1px solid var(--ltl-border);
  border-radius:14px;
  padding:12px;
  }
.date-time-box h3{
  margin:0 0 8px;
  font-size:1rem;
  font-weight:800;
  color:var(--ltl-text);
}

/* Ligne champ */
.form-row{
  display:flex; align-items:center; gap:10px;
  margin:8px 0;
}
.form-row label{
  min-width:64px;
  font-weight:600; color:var(--ltl-muted);
}

/* Inputs date / select heure : look minimal */
.date-time-box input[type="date"],
.date-time-box select.time-select{
  appearance:none;
  -webkit-appearance:none;
  background:#fff;
  border:1px solid var(--ltl-border);
  border-radius:10px;
  padding:10px 12px;
  font-size:0.95rem;
  color:var(--ltl-text);
  width:100%;
  transition: border-color .15s ease, box-shadow .15s ease;
}
@supports not selector(input[type="date"]::-webkit-calendar-picker-indicator) {
  .date-time-box input[type="date"]{
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position: right 10px center; background-size:18px 18px;
    padding-right:38px;
  }
}
@supports not selector(input[type="time"]::-webkit-calendar-picker-indicator) {
  .date-time-box input[type="time"]{
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position: right 10px center; background-size:18px 18px;
    padding-right:38px;
  }
}
.date-time-box input[type="date"]:focus,
.date-time-box select.time-select:focus{
  outline:none;
  border-color: var(--ltl-accent);
  }

/* petite icône calendrier/horloge en fond (sans surcharger) */
.date-time-box input[type="date"]{
  background-image: none !important;
  background-repeat:no-repeat;
  background-position: right 10px center;
  background-size: 18px 18px;
  padding-right:12px;
}
.date-time-box select.time-select{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position: right 10px center;
  background-size: 18px 18px;
  padding-right:38px;
}

/* Affinages mobiles */
@media (max-width: 420px){
  .form-row{ flex-direction: column; align-items: stretch; gap:6px; }
  .form-row label{ min-width:0; }
}
#promo_select{
  appearance:none;
  background:#fff;
  border:1.5px solid #d7d7e3;
  border-radius:10px;
  padding:10px 38px 10px 12px;
  font-weight:600;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:18px 18px;
}
#promo_select:focus{ outline:none; border-color:#1a73e8; box-shadow:0 0 0 3px rgba(26,115,232,.15); }

/* Bons de réduction : alignements */
.coupon-row{
  display:flex;
  gap:8px;
  align-items:stretch;      /* aligne boutons et champs */
  flex-wrap:wrap;
}
.coupon-field{
  flex:1 1 280px;
  min-height:42px;
  padding:10px 12px;
  border:1px solid #d7d7e3;
  border-radius:10px;
  font-weight:600;
}
.coupon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  min-height:42px;          /* même hauteur que l’input */
  border-radius:10px;
}
