@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;700&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --bleu: #082C5C;
  --rouge: #FF3A1F;
  --blanc: #ffffff;
  --gris-bg: #f5f7fa;
  --gris-bord: #e8eaed;
  --texte: #1a1a2e;
  --texte-doux: #6b7280;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; color:var(--texte); background:#fff; line-height:1.65; }

/* ===== HEADER BLANC ===== */
header {
  background:#fff;
  position:sticky;
  top:0;
  z-index:1000;
  box-shadow:0 2px 12px rgba(0,0,0,0.08);
}
.header-inner {
  max-width:1140px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
  height:90px;
}
.logo img { height:80px; width:auto; display:block; }

.desktop-nav { display:flex; align-items:center; gap:4px; }
.desktop-nav a {
  color:var(--bleu);
  text-decoration:none;
  font-size:0.88rem;
  font-weight:600;
  padding:8px 12px;
  border-radius:6px;
  transition:background 0.2s, color 0.2s;
  white-space:nowrap;
}
.desktop-nav a:hover { background:var(--gris-bg); }
.desktop-nav .nav-cta {
  background:var(--rouge);
  color:#fff !important;
  padding:12px 22px !important;
  border-radius:8px;
  margin-left:10px;
  font-weight:700 !important;
  font-size:0.9rem !important;
}
.desktop-nav .nav-cta:hover { background:#e02e10 !important; }

/* Hamburger */
.hamburger {
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  width:44px;
  height:44px;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
}
.hamburger span { display:block; height:2px; background:var(--bleu); border-radius:2px; transition:all 0.3s ease; width:24px; }
.hamburger span:nth-child(2) { width:18px; }
.hamburger.open span:nth-child(1) { width:24px; transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { width:24px; transform:rotate(-45deg) translate(5px,-5px); }

/* Mobile drawer */
.mobile-drawer {
  position:fixed;
  top:90px; left:0; right:0; bottom:0;
  background:#fff;
  z-index:999;
  transform:translateX(100%);
  transition:transform 0.3s ease;
  overflow-y:auto;
  padding:8px 0 40px;
  border-top:1px solid var(--gris-bord);
}
.mobile-drawer.open { transform:translateX(0); }
.mobile-drawer a {
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--texte);
  text-decoration:none;
  font-size:1.05rem;
  font-weight:600;
  padding:18px 28px;
  border-bottom:1px solid var(--gris-bord);
  transition:background 0.15s;
}
.mobile-drawer a:hover { background:var(--gris-bg); }
.mobile-drawer a .icon { font-size:1.2rem; }
.drawer-cta {
  display:flex !important;
  justify-content:center;
  background:var(--rouge) !important;
  color:#fff !important;
  margin:20px 24px 0 !important;
  border-radius:12px !important;
  font-size:1.05rem !important;
  font-weight:700 !important;
  border:none !important;
  padding:18px !important;
}
.drawer-cta:hover { background:#e02e10 !important; }

/* ===== BOUTON FLOTTANT ===== */
.floating-call {
  position:fixed;
  bottom:24px; right:24px;
  background:var(--rouge);
  color:#fff;
  padding:14px 24px;
  border-radius:50px;
  font-family:'Oswald',sans-serif;
  font-size:0.95rem;
  font-weight:700;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:8px;
  box-shadow:0 4px 24px rgba(255,58,31,0.5);
  z-index:9000;
  letter-spacing:0.5px;
  animation:pulse 2.5s infinite;
}
.floating-call:hover { background:#e02e10; }
@keyframes pulse {
  0%,100% { box-shadow:0 4px 24px rgba(255,58,31,0.45); }
  50% { box-shadow:0 6px 36px rgba(255,58,31,0.7); }
}

/* ===== HERO BLEU FONCÉ ===== */
.hero {
  background:var(--bleu);
  padding:72px 24px 64px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.hero::before {
  content:'';
  position:absolute;
  inset:0;
  background:url('') center/cover;
  opacity:0.08;
}
.hero-content { position:relative; z-index:1; max-width:760px; margin:0 auto; }

.badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:rgba(255,255,255,0.12);
  color:#fff;
  border:1px solid rgba(255,255,255,0.25);
  padding:7px 18px;
  border-radius:50px;
  font-size:0.82rem;
  font-weight:700;
  margin-bottom:28px;
  letter-spacing:0.8px;
  text-transform:uppercase;
}
.badge-rouge {
  background:rgba(255,58,31,0.15);
  color:var(--rouge);
  border:1px solid rgba(255,58,31,0.3);
}

.hero h1 {
  font-family:'Oswald',sans-serif;
  font-size:clamp(2.6rem,7vw,4.2rem);
  font-weight:700;
  line-height:1.08;
  color:#fff;
  margin-bottom:20px;
  text-transform:uppercase;
  letter-spacing:1px;
}
.hero h1 span { color:var(--rouge); }
.hero p { font-size:1.1rem; color:rgba(255,255,255,0.8); max-width:520px; margin:0 auto 40px; }
.hero-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* BUTTONS */
.btn-rouge {
  background:var(--rouge);
  color:#fff;
  padding:15px 32px;
  border-radius:8px;
  font-family:'Oswald',sans-serif;
  font-size:1rem;
  font-weight:700;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-transform:uppercase;
  letter-spacing:1px;
  transition:background 0.2s, transform 0.15s;
  box-shadow:0 4px 16px rgba(255,58,31,0.35);
}
.btn-rouge:hover { background:#e02e10; transform:translateY(-1px); }

.btn-blanc {
  background:#fff;
  color:var(--bleu);
  padding:15px 32px;
  border-radius:8px;
  font-family:'Oswald',sans-serif;
  font-size:1rem;
  font-weight:700;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-transform:uppercase;
  letter-spacing:1px;
  transition:background 0.2s, transform 0.15s;
}
.btn-blanc:hover { background:#f0f2f5; transform:translateY(-1px); }

.btn-outline-blanc {
  background:transparent;
  color:#fff;
  padding:15px 32px;
  border-radius:8px;
  font-family:'Oswald',sans-serif;
  font-size:1rem;
  font-weight:700;
  text-decoration:none;
  border:2px solid rgba(255,255,255,0.5);
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-transform:uppercase;
  letter-spacing:1px;
  transition:border-color 0.2s, background 0.2s;
}
.btn-outline-blanc:hover { border-color:#fff; background:rgba(255,255,255,0.1); }

/* ===== STATS BAR ROUGE ===== */
.stats-bar {
  background:var(--rouge);
  padding:22px 24px;
}
.stats-inner {
  max-width:900px; margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:16px; text-align:center;
}
.stat strong { display:block; font-family:'Oswald',sans-serif; font-size:1.9rem; color:#fff; font-weight:700; }
.stat span { font-size:0.72rem; color:rgba(255,255,255,0.8); text-transform:uppercase; letter-spacing:0.5px; }

/* ===== SECTIONS ===== */
.section { padding:72px 24px; }
.section-bleu { background:var(--bleu); }
.section-gris { background:var(--gris-bg); }
.container { max-width:1100px; margin:0 auto; }

.section-eyebrow {
  display:block; text-align:center;
  font-size:0.72rem; font-weight:700;
  letter-spacing:2.5px; text-transform:uppercase;
  color:var(--rouge); margin-bottom:10px;
}
.section-bleu .section-eyebrow { color:rgba(255,255,255,0.6); }

.section-title {
  font-family:'Oswald',sans-serif;
  font-size:clamp(1.7rem,4vw,2.5rem);
  font-weight:700;
  text-align:center;
  text-transform:uppercase;
  color:var(--bleu);
  letter-spacing:0.5px;
  margin-bottom:8px;
  line-height:1.15;
}
.section-title span { color:var(--rouge); }
.section-bleu .section-title { color:#fff; }
.section-bleu .section-title span { color:#ff7b68; }

.section-sub { text-align:center; color:var(--texte-doux); margin-bottom:52px; font-size:0.92rem; }
.section-bleu .section-sub { color:rgba(255,255,255,0.65); }

/* ===== CARDS BLANCHES (sur fond bleu) ===== */
.grid-4 { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.grid-3 { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }

.card-blanc {
  background:#fff;
  border-radius:14px;
  padding:28px 22px;
  text-align:center;
  box-shadow:0 2px 12px rgba(0,0,0,0.06);
  transition:box-shadow 0.2s, transform 0.2s;
}
.card-blanc:hover { box-shadow:0 8px 28px rgba(0,0,0,0.12); transform:translateY(-3px); }
.card-icon { font-size:2.2rem; margin-bottom:14px; display:block; }
.card-blanc h3 { font-family:'Oswald',sans-serif; font-size:1.05rem; font-weight:700; color:var(--bleu); text-transform:uppercase; margin-bottom:8px; }
.card-blanc p { font-size:0.87rem; color:var(--texte-doux); line-height:1.6; }

/* Cards sur fond blanc */
.card-gris {
  background:var(--gris-bg);
  border:1px solid var(--gris-bord);
  border-radius:14px;
  padding:26px 22px;
  text-align:center;
  transition:box-shadow 0.2s, transform 0.2s;
}
.card-gris:hover { box-shadow:0 6px 24px rgba(8,44,92,0.08); transform:translateY(-3px); }
.card-gris h3 { font-family:'Oswald',sans-serif; font-size:1.05rem; font-weight:700; color:var(--bleu); text-transform:uppercase; margin-bottom:8px; }
.card-gris p { font-size:0.87rem; color:var(--texte-doux); line-height:1.6; }

/* ===== CHECKLIST ===== */
.checklist { list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; }
.checklist li {
  display:flex; align-items:center; gap:10px;
  background:#fff;
  border:1px solid var(--gris-bord);
  border-left:3px solid var(--rouge);
  padding:13px 16px; border-radius:8px;
  font-size:0.9rem; font-weight:500; color:var(--texte);
}
.checklist li::before { content:"✓"; color:var(--rouge); font-weight:700; flex-shrink:0; }

/* ===== PHOTOS ===== */
.photo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; }
.photo-grid img { width:100%; height:280px; object-fit:cover; border-radius:12px; display:block; }

/* ===== AVIS ===== */
.avis-card {
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.15);
  border-radius:14px; padding:24px;
}
.stars { color:#fbbf24; font-size:1.1rem; margin-bottom:12px; }
.avis-card p { font-size:0.92rem; color:rgba(255,255,255,0.85); font-style:italic; margin-bottom:14px; line-height:1.6; }
.avis-card strong { font-size:0.85rem; color:rgba(255,255,255,0.6); font-weight:600; }

/* ===== CTA ROUGE ===== */
.cta-rouge {
  background:var(--rouge);
  text-align:center; padding:70px 24px;
}
.cta-rouge h2 {
  font-family:'Oswald',sans-serif;
  font-size:clamp(1.6rem,4vw,2.6rem);
  font-weight:700; text-transform:uppercase; color:#fff; margin-bottom:10px;
}
.cta-rouge .tel {
  display:block; font-family:'Oswald',sans-serif;
  font-size:clamp(2rem,5vw,3.2rem); font-weight:700;
  color:#fff; text-decoration:none; margin:16px 0; letter-spacing:2px;
}
.cta-rouge p { color:rgba(255,255,255,0.85); margin-bottom:28px; }
.btn-blanc-solide {
  background:#fff; color:var(--rouge);
  padding:15px 36px; border-radius:8px;
  font-family:'Oswald',sans-serif; font-size:1rem; font-weight:700;
  text-decoration:none; display:inline-flex; align-items:center; gap:8px;
  text-transform:uppercase; letter-spacing:1px; transition:transform 0.15s;
}
.btn-blanc-solide:hover { transform:scale(1.04); }

/* ===== VILLES ===== */
.villes-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:10px; }
.ville {
  background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2);
  border-radius:8px; padding:13px 10px; text-align:center;
  font-weight:600; font-size:0.87rem; color:#fff;
  display:flex; align-items:center; justify-content:center; gap:6px;
}

/* ===== TARIF ===== */
.tarif-card { background:#fff; border:1px solid var(--gris-bord); border-radius:14px; overflow:hidden; text-align:center; transition:box-shadow 0.2s; }
.tarif-card:hover { box-shadow:0 8px 28px rgba(8,44,92,0.1); }
.tarif-head { background:var(--bleu); color:#fff; padding:20px; }
.tarif-head h3 { font-family:'Oswald',sans-serif; font-size:1.1rem; font-weight:700; text-transform:uppercase; }
.tarif-prix-block { padding:18px; border-bottom:1px solid var(--gris-bord); }
.prix { font-family:'Oswald',sans-serif; font-size:2.2rem; font-weight:700; color:var(--rouge); }
.prix-detail { font-size:0.78rem; color:var(--texte-doux); margin-top:4px; }
.tarif-liste { padding:16px 20px; text-align:left; }
.tarif-liste li { list-style:none; padding:5px 0; font-size:0.88rem; display:flex; gap:8px; }
.tarif-liste li::before { content:"✓"; color:var(--rouge); font-weight:700; flex-shrink:0; }

/* ===== CONTACT ===== */
.contact-wrapper { display:grid; grid-template-columns:1fr 1.4fr; gap:56px; align-items:start; }
.c-label { font-weight:700; color:var(--bleu); font-size:0.8rem; text-transform:uppercase; letter-spacing:0.5px; display:block; margin-bottom:4px; }
.contact-row { display:flex; gap:14px; margin-bottom:22px; align-items:flex-start; }
.c-icon { font-size:1.3rem; margin-top:2px; }
.form-group { margin-bottom:14px; }
.form-group label { display:block; font-size:0.8rem; font-weight:700; color:var(--bleu); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-group input, .form-group textarea, .form-group select {
  width:100%; padding:12px 14px;
  border:1.5px solid var(--gris-bord); border-radius:8px;
  font-family:'Inter',sans-serif; font-size:0.9rem; outline:none;
  transition:border-color 0.2s; background:#fff;
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color:var(--bleu); }
.form-group textarea { resize:vertical; min-height:110px; }
.btn-submit {
  width:100%; background:var(--rouge); color:#fff; border:none;
  padding:15px; border-radius:8px; font-family:'Oswald',sans-serif;
  font-size:1rem; font-weight:700; text-transform:uppercase; letter-spacing:1px;
  cursor:pointer; transition:background 0.2s; margin-top:6px;
}
.btn-submit:hover { background:#e02e10; }

/* ===== PAGE HERO ===== */
.page-hero { background:var(--bleu); padding:56px 24px 48px; text-align:center; }
.page-hero h1 { font-family:'Oswald',sans-serif; font-size:clamp(1.9rem,5vw,3rem); font-weight:700; color:#fff; text-transform:uppercase; margin-bottom:12px; }
.page-hero h1 span { color:#ff7b68; }
.page-hero p { color:rgba(255,255,255,0.75); max-width:520px; margin:0 auto; }

/* ===== FOOTER ===== */
footer { background:#050e1f; color:rgba(255,255,255,0.55); padding:48px 24px 24px; text-align:center; }
.footer-logo img { height:60px; margin-bottom:16px; }
.footer-links { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; margin:20px 0; }
.footer-links a { color:rgba(255,255,255,0.55); text-decoration:none; font-size:0.85rem; transition:color 0.2s; }
.footer-links a:hover { color:#fff; }
.footer-sep { border:none; border-top:1px solid rgba(255,255,255,0.08); margin:20px 0; }
footer p { font-size:0.82rem; }

/* ===== RESPONSIVE ===== */
@media (max-width:768px) {
  .desktop-nav { display:none; }
  .hamburger { display:flex; }
  .stats-inner { grid-template-columns:repeat(2,1fr); }
  .grid-2 { grid-template-columns:1fr; }
  .contact-wrapper { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .photo-grid { grid-template-columns:1fr; }
  .floating-call { bottom:16px; right:16px; padding:12px 20px; font-size:0.88rem; }
}
@media (max-width:480px) {
  .hero { padding:52px 16px 44px; }
  .section { padding:52px 16px; }
  .stats-inner { grid-template-columns:repeat(2,1fr); }
  .header-inner { padding:0 16px; }
}
