:root {
  --blue-950: #06192f;
  --blue-900: #082544;
  --blue-800: #0b3764;
  --blue-700: #0b4f8f;
  --blue-600: #0b79c9;
  --blue-500: #1297e8;
  --blue-100: #dff4ff;
  --white: #ffffff;
  --soft: #f4fbff;
  --text: #17324d;
  --muted: #6a7d8f;
  --line: rgba(18, 151, 232, 0.22);
  --shadow: 0 22px 60px rgba(6, 25, 47, 0.18);
  --radius-xl: 28px;
  --radius-lg: 20px;
  --radius-md: 14px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--soft)}a{color:inherit;text-decoration:none}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.navbar{max-width:1180px;margin:auto;padding:12px 22px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:inline-flex;align-items:center}.brand-logo{display:block;width:auto;max-width:230px;max-height:64px;object-fit:contain}.nav-links{display:flex;gap:22px;align-items:center;font-weight:800;color:var(--blue-900)}.nav-links a{opacity:.86}.nav-links a:hover{opacity:1;color:var(--blue-600)}.menu-toggle{display:none;border:0;background:transparent;cursor:pointer}.menu-toggle span{display:block;width:26px;height:3px;margin:5px 0;border-radius:999px;background:var(--blue-900)}.hero,.catalogue-hero-page{position:relative;min-height:720px;display:grid;align-items:center;overflow:hidden;color:white;background:linear-gradient(110deg,rgba(6,25,47,.96),rgba(8,55,100,.78),rgba(6,25,47,.32)),url("assets/logo-banniere.png");background-size:cover;background-position:center}.catalogue-hero-page{min-height:560px}.hero-overlay{position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,rgba(18,151,232,.3),transparent 30%),repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 1px,transparent 1px,transparent 18px)}.hero-content,.catalogue-hero-content{position:relative;max-width:900px;padding:110px 22px 80px;margin-left:calc((100vw - 1180px)/2)}.catalogue-hero-content{padding-top:96px;padding-bottom:88px}.eyebrow{margin:0 0 12px;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:900;color:var(--blue-500)}.hero h1,.catalogue-hero-content h1{max-width:780px;margin:0;font-size:clamp(46px,8vw,92px);line-height:.9;letter-spacing:-.07em}.catalogue-hero-content h1{max-width:860px;font-size:clamp(42px,7vw,82px);line-height:.94}.hero-text,.catalogue-hero-content p:not(.eyebrow){max-width:720px;font-size:20px;line-height:1.7;color:rgba(255,255,255,.86)}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{border:0;display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:0 22px;border-radius:999px;font-weight:900;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{color:white;background:linear-gradient(135deg,var(--blue-500),var(--blue-800));box-shadow:0 18px 40px rgba(18,151,232,.32)}.btn-secondary{color:var(--blue-950);background:white;box-shadow:0 18px 40px rgba(6,25,47,.12)}.hero-card{position:absolute;right:max(22px,calc((100vw - 1180px)/2));bottom:70px;width:min(340px,calc(100% - 44px));padding:24px;border-radius:var(--radius-lg);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.status-dot{width:10px;height:10px;display:inline-block;margin-right:8px;border-radius:50%;background:#6fffd4;box-shadow:0 0 0 8px rgba(111,255,212,.12)}.section{max-width:1180px;margin:auto;padding:92px 22px}.section.alt{max-width:none;padding-left:max(22px,calc((100vw - 1180px)/2));padding-right:max(22px,calc((100vw - 1180px)/2));background:white}.section-heading{max-width:780px;margin-bottom:36px}.section-heading h2,.reservation-copy h2,.split-section h2,.contact-card h2,.catalogue-cta-card h2,.catalogue-request-card h2,.table-panel-heading h2{margin:0;color:var(--blue-950);font-size:clamp(34px,5vw,56px);letter-spacing:-.05em;line-height:1}.catalogue-cta-card h2,.catalogue-request-card h2,.table-panel-heading h2{font-size:clamp(28px,4vw,44px)}.section-heading p,.reservation-copy p,.split-section p,.catalogue-cta-card p,.catalogue-request-card p{font-size:18px;line-height:1.7;color:var(--muted)}.service-grid,.contact-section{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card,.booking-form,.info-panel,.contact-card,.stats div,.catalogue-cta-card,.catalogue-request-card,.catalogue-toolbar,.table-panel,.vehicle-card{border:1px solid var(--line);border-radius:var(--radius-xl);background:white;box-shadow:0 18px 48px rgba(6,25,47,.08)}.service-card{padding:30px}.icon{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;font-size:28px;background:var(--blue-100)}.service-card h3,.contact-card h3,.vehicle-card h3{color:var(--blue-950);font-size:24px;margin:24px 0 10px}.service-card p,.contact-card p,.info-panel p{color:var(--muted);line-height:1.65}.catalogue-preview{padding-top:72px;padding-bottom:72px}.catalogue-cta-card,.catalogue-request-card{background:linear-gradient(135deg,white,var(--blue-100));box-shadow:var(--shadow);padding:34px;display:flex;gap:24px;align-items:center;justify-content:space-between}.reservation-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:start}.info-panel{margin-top:28px;padding:24px;background:linear-gradient(135deg,white,var(--blue-100))}.booking-form{padding:28px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:grid;gap:8px;margin-bottom:18px;font-weight:850;color:var(--blue-950)}input,select,textarea{width:100%;border:1px solid rgba(11,55,100,.18);border-radius:var(--radius-md);padding:14px 15px;font:inherit;color:var(--text);background:#fbfdff}textarea{resize:vertical}pre{white-space:pre-wrap;padding:24px;border-radius:var(--radius-lg);background:var(--blue-950);color:white;line-height:1.6;box-shadow:var(--shadow)}.split-section{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center}.stats{display:grid;gap:16px}.stats div{padding:24px}.stats strong{display:block;font-size:34px;color:var(--blue-600)}.stats span{display:block;color:var(--muted);margin-top:6px}.contact-card{padding:30px}.contact-card.light{background:linear-gradient(135deg,white,var(--blue-100))}.footer{padding:28px 22px;text-align:center;color:rgba(255,255,255,.72);background:var(--blue-950)}.catalogue-stats{position:absolute;right:max(22px,calc((100vw - 1180px)/2));bottom:58px;width:min(360px,calc(100% - 44px));display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.catalogue-stats div{padding:18px 14px;border-radius:20px;text-align:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(18px)}.catalogue-stats strong{display:block;font-size:30px}.catalogue-stats span{display:block;margin-top:4px;font-size:12px;color:rgba(255,255,255,.76);text-transform:uppercase;letter-spacing:.08em;font-weight:900}.catalogue-toolbar{display:grid;gap:18px;margin-bottom:28px;padding:24px}.search-label{margin-bottom:0}.filter-buttons{display:flex;flex-wrap:wrap;gap:10px}.filter-btn{border:1px solid var(--line);border-radius:999px;padding:11px 15px;background:var(--soft);color:var(--blue-950);font-weight:900;cursor:pointer}.filter-btn.active{color:white;background:var(--blue-800)}.vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.vehicle-card{overflow:hidden}.vehicle-image{position:relative;height:190px;background:linear-gradient(135deg,rgba(223,244,255,.92),rgba(255,255,255,.92)),url("assets/logo-fond-bleu.png");background-size:cover;background-position:center;border-bottom:1px solid var(--line)}.vehicle-image img{width:100%;height:100%;display:block;object-fit:cover}.vehicle-image.missing-image::after{content:"Image véhicule à ajouter";position:absolute;inset:18px;display:grid;place-items:center;border:1px dashed rgba(11,55,100,.28);border-radius:18px;color:var(--blue-900);font-weight:950;text-align:center;background:rgba(255,255,255,.45)}.vehicle-card-body{padding:24px}.vehicle-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.vehicle-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;font-size:24px;background:var(--blue-100)}.tag{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--blue-100);color:var(--blue-800);font-size:12px;font-weight:900;letter-spacing:.08em}.vehicle-card h3{margin:20px 0 8px;font-size:26px;letter-spacing:-.03em}.vehicle-code{color:var(--muted);line-height:1.55}.vehicle-code strong{color:var(--blue-900)}.vehicle-price{margin:20px 0 0;padding:18px;border-radius:var(--radius-lg);background:var(--soft);border:1px solid rgba(11,55,100,.08)}.vehicle-price span{display:block;margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.vehicle-price strong{display:block;color:var(--blue-600);font-size:26px}.vehicle-actions{margin-top:20px}.vehicle-actions .btn{width:100%}.empty-state{grid-column:1/-1;padding:34px;border:1px solid var(--line);border-radius:var(--radius-xl);text-align:center;background:white}.empty-state h3{color:var(--blue-950);margin-top:0}.empty-state p{color:var(--muted)}.table-panel{margin-top:34px;padding:28px}.table-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.table-wrapper{overflow-x:auto}.vehicle-table{width:100%;border-collapse:collapse;min-width:720px}.vehicle-table th,.vehicle-table td{padding:14px 12px;border-bottom:1px solid var(--line);text-align:left}.vehicle-table th{color:var(--blue-950);font-size:12px;text-transform:uppercase;letter-spacing:.08em;background:var(--soft)}.vehicle-table td{color:var(--text)}.vehicle-table tr:hover td{background:rgba(223,244,255,.34)}@media(max-width:980px){.vehicle-grid{grid-template-columns:repeat(2,1fr)}.hero-content,.catalogue-hero-content{margin-left:0}.catalogue-stats{position:relative;right:auto;bottom:auto;margin:-40px 22px 54px}}@media(max-width:900px){.menu-toggle{display:block}.nav-links{position:absolute;top:89px;left:0;right:0;display:none;padding:20px 22px;background:white;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.hero-card{position:relative;right:auto;bottom:auto;margin:-40px 22px 50px}.service-grid,.contact-section,.reservation-section,.split-section{grid-template-columns:1fr}.form-row{grid-template-columns:1fr;gap:0}}@media(max-width:700px){.brand-logo{max-width:180px}.catalogue-cta-card,.catalogue-request-card,.table-panel-heading{align-items:flex-start;flex-direction:column}.vehicle-grid,.catalogue-stats{grid-template-columns:1fr}}
/* Dark mode */
body.dark-mode {
  background: #03111f;
  color: #eaf6ff;
}

body.dark-mode .site-header {
  background: rgba(3, 17, 31, 0.92);
  border-bottom-color: rgba(120, 200, 255, 0.18);
}

body.dark-mode .nav-links a {
  color: #eaf6ff;
}

body.dark-mode .service-card,
body.dark-mode .booking-form,
body.dark-mode .info-panel,
body.dark-mode .contact-card,
body.dark-mode .catalogue-cta-card,
body.dark-mode .catalogue-request-card,
body.dark-mode .catalogue-toolbar,
body.dark-mode .table-panel,
body.dark-mode .vehicle-card,
body.dark-mode .stats div {
  background: #071c32;
  border-color: rgba(120, 200, 255, 0.18);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
}

body.dark-mode .section.alt {
  background: #041526;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode label,
body.dark-mode .vehicle-code strong {
  color: #ffffff;
}

body.dark-mode p,
body.dark-mode .section-heading p,
body.dark-mode .reservation-copy p,
body.dark-mode .split-section p,
body.dark-mode .vehicle-code,
body.dark-mode .contact-card p,
body.dark-mode .info-panel p {
  color: #a9bfd3;
}

body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea {
  background: #03111f;
  color: #ffffff;
  border-color: rgba(120, 200, 255, 0.25);
}

body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder {
  color: #7f98ad;
}

body.dark-mode .btn-secondary {
  background: #0b2a49;
  color: #ffffff;
}

body.dark-mode .vehicle-price,
body.dark-mode .vehicle-prices div {
  background: #03111f;
  border-color: rgba(120, 200, 255, 0.16);
}

body.dark-mode .vehicle-table th {
  background: #03111f;
  color: #ffffff;
}

body.dark-mode .vehicle-table td {
  color: #eaf6ff;
}

body.dark-mode .vehicle-table tr:hover td {
  background: rgba(18, 151, 232, 0.12);
}

.theme-toggle {
  border: 1px solid rgba(18, 151, 232, 0.25);
  background: white;
  color: #082544;
  border-radius: 999px;
  width: 42px;
  height: 42px;
  cursor: pointer;
  font-size: 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 4px;
}

body.dark-mode .theme-toggle {
  background: #0b2a49;
  color: white;
  border-color: rgba(120, 200, 255, 0.25);
}
/* Section Nos services */
.services-pricing-section {
  max-width: 1180px;
}

.service-price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.price-card {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: white;
  box-shadow: 0 18px 48px rgba(6, 25, 47, 0.08);
}

.price-card h3 {
  margin: 22px 0 10px;
  color: var(--blue-950);
  font-size: 24px;
  letter-spacing: -0.03em;
}

.price-card p {
  color: var(--muted);
  line-height: 1.6;
}

.price-card .price {
  margin: 14px 0 4px;
  color: var(--blue-600);
  font-size: 30px;
  font-weight: 950;
  line-height: 1.1;
}

.price-card .sub-price {
  margin: 0 0 14px;
  color: var(--blue-900);
  font-weight: 900;
}

.featured-price-card {
  background: linear-gradient(135deg, white, var(--blue-100));
  border-color: rgba(18, 151, 232, 0.38);
}

/* Dark mode pour la section Nos services */
body.dark-mode .price-card {
  background: #071c32;
  border-color: rgba(120, 200, 255, 0.18);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
}

body.dark-mode .price-card h3 {
  color: #ffffff;
}

body.dark-mode .price-card p {
  color: #a9bfd3;
}

body.dark-mode .price-card .sub-price {
  color: #d8edff;
}

body.dark-mode .featured-price-card {
  background: linear-gradient(135deg, #071c32, #0b2a49);
}

@media (max-width: 980px) {
  .service-price-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 700px) {
  .service-price-grid {
    grid-template-columns: 1fr;
  }
}
/* Carrousels activités */
.services-carousel-section {
  max-width: 1180px;
}

.carousel-block {
  margin-top: 46px;
}

.carousel-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin-bottom: 20px;
}

.carousel-heading h3 {
  margin: 0;
  color: var(--blue-950);
  font-size: clamp(28px, 4vw, 42px);
  letter-spacing: -0.04em;
}

.carousel-controls {
  display: flex;
  gap: 10px;
}

.carousel-btn {
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--blue-950);
  font-size: 28px;
  font-weight: 900;
  cursor: pointer;
}

.activity-carousel {
  display: flex;
  gap: 22px;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding: 4px 4px 18px;
  scrollbar-width: thin;
}

.activity-card {
  min-width: 330px;
  max-width: 330px;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: white;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(6, 25, 47, 0.08);
}

.activity-card img {
  width: 100%;
  height: 190px;
  display: block;
  object-fit: cover;
  background: linear-gradient(135deg, var(--blue-100), white);
}

.activity-content {
  padding: 24px;
}

.activity-content h4 {
  margin: 18px 0 10px;
  color: var(--blue-950);
  font-size: 24px;
  line-height: 1.1;
}

.activity-content p {
  color: var(--muted);
  line-height: 1.55;
}

.activity-price {
  margin: 12px 0 4px;
  color: var(--blue-600) !important;
  font-size: 28px;
  font-weight: 950;
}

.sub-price {
  margin: 0 0 12px;
  color: var(--blue-900) !important;
  font-weight: 900;
}

/* Dark mode carrousels */
body.dark-mode .carousel-heading h3,
body.dark-mode .activity-content h4 {
  color: white;
}

body.dark-mode .activity-card,
body.dark-mode .carousel-btn {
  background: #071c32;
  border-color: rgba(120, 200, 255, 0.18);
}

body.dark-mode .activity-content p {
  color: #a9bfd3;
}

body.dark-mode .sub-price {
  color: #d8edff !important;
}

@media (max-width: 700px) {
  .carousel-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .activity-card {
    min-width: 82vw;
    max-width: 82vw;
  }
}