/* ============================================
   LCF SERVICE – CSS v2 corrigé & redesigné
   Auteur: Beronyx
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&family=Open+Sans:ital,wght@0,400;0,600;1,400&display=swap');

:root {
  --bleu-fonce: #1a3a6b;
  --bleu-moyen: #2d5fa6;
  --bleu-clair: #4a90d9;
  --or: #d4a017;
  --or-clair: #f0c040;
  --vert-teal: #2a7a6f;
  --rouge: #c0392b;
  --rouge-vif: #e74c3c;
  --blanc: #ffffff;
  --gris-clair: #f4f7fc;
  --gris-texte: #444;
  --noir-doux: #0d1b2e;
  --grad-bleu: linear-gradient(135deg, #1a3a6b 0%, #2d5fa6 60%, #4a90d9 100%);
  --grad-or: linear-gradient(135deg, #d4a017, #f0c040);
  --grad-hero: linear-gradient(155deg, #060f22 0%, #0d2855 40%, #1a3a6b 100%);
  --shadow-card: 0 6px 24px rgba(26,58,107,0.10);
  --shadow-hover: 0 14px 38px rgba(26,58,107,0.20);
  --radius: 12px;
  --radius-sm: 6px;
  --radius-lg: 20px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Open Sans',sans-serif;color:var(--gris-texte);background:var(--blanc);overflow-x:hidden;line-height:1.7}
img{max-width:100%;height:auto}
a{text-decoration:none;color:inherit;transition:all .3s}
ul{list-style:none}
h1,h2,h3,h4,h5{font-family:'Montserrat',sans-serif;color:var(--bleu-fonce);font-weight:700;line-height:1.2}

.container{max-width:1200px;margin:0 auto;padding:0 20px}
.section{padding:80px 0}
.section-alt{background:var(--gris-clair)}

/* ── BOUTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:50px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;cursor:pointer;transition:all .3s;border:none;text-transform:uppercase;letter-spacing:.5px}
.btn-primary{background:var(--grad-or);color:var(--bleu-fonce);box-shadow:0 4px 15px rgba(212,160,23,.4)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(212,160,23,.5);color:var(--bleu-fonce)}
.btn-secondary{background:transparent;color:white;border:2px solid white}
.btn-secondary:hover{background:white;color:var(--bleu-fonce)}
.btn-outline{background:transparent;color:var(--bleu-fonce);border:2px solid var(--bleu-fonce)}
.btn-outline:hover{background:var(--bleu-fonce);color:white}
.btn-red{background:var(--rouge-vif);color:white}
.btn-red:hover{transform:translateY(-2px)}
.btn-sm{padding:6px 14px;font-size:11px;border-radius:6px}

/* ── HEADER ── */
#header{position:fixed;top:0;width:100%;z-index:1000;background:rgba(6,15,34,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.07);transition:all .3s}
#header.scrolled{background:rgba(6,15,34,.98);box-shadow:0 4px 24px rgba(0,0,0,.35)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:6px 24px;max-width:1300px;margin:0 auto}
.nav-logo{display:flex;align-items:center;gap:10px}
.nav-logo img{height:72px;width:auto;mix-blend-mode:screen;opacity:1;transition:height .3s}
#header.scrolled .nav-logo img{height:52px}
.nav-logo-text{color:white}
.nav-logo-text strong{font-family:'Montserrat',sans-serif;font-size:17px;display:block;letter-spacing:.5px}
.nav-logo-text span{font-size:10px;opacity:.6;letter-spacing:2px;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{color:rgba(255,255,255,.78);font-family:'Montserrat',sans-serif;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:6px 0;position:relative;transition:color .3s}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--or-clair);transition:width .3s}
.nav-links a:hover,.nav-links a.active{color:var(--or-clair)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-cta{margin-left:6px}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:5px}
.hamburger span{display:block;width:24px;height:2px;background:white;transition:all .3s}

/* ── HERO ── */
#hero{background:var(--grad-hero);position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:100vh}

/* Particules décoratives */
.hero-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-particles span{position:absolute;background:rgba(255,255,255,.04);border-radius:50%}
.hero-particles span:nth-child(1){width:300px;height:300px;top:-80px;right:-60px}
.hero-particles span:nth-child(2){width:200px;height:200px;bottom:20%;left:-40px;background:rgba(212,160,23,.06)}
.hero-particles span:nth-child(3){width:150px;height:150px;top:30%;right:20%;background:rgba(74,144,217,.08)}

/* Logo blanc centré */
.hero-logo-top{display:flex;justify-content:center;padding-top:95px;padding-bottom:20px;position:relative;z-index:2}
.hero-logo-top img{height:100px;width:auto;filter:brightness(0) invert(1);opacity:.95;drop-shadow(0 4px 20px rgba(0,0,0,.4))}

.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;max-width:1200px;margin:0 auto;padding:20px 24px 90px;position:relative;z-index:2;flex:1}

/* Gauche hero */
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(212,160,23,.12);border:1px solid rgba(212,160,23,.35);color:var(--or-clair);font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;padding:6px 14px;border-radius:50px;margin-bottom:22px}
.hero-title{font-size:clamp(26px,3.2vw,46px);font-weight:900;color:white;margin-bottom:18px;line-height:1.08}
.hero-title .highlight{color:var(--or-clair)}
.hero-desc{color:rgba(255,255,255,.75);font-size:16px;margin-bottom:8px;line-height:1.75}
.hero-tagline{color:var(--or-clair);font-style:italic;font-size:14px;margin-bottom:32px;font-weight:600;opacity:.9}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:32px}
.hero-credibility{display:flex;align-items:center;gap:18px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.cred-item{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.65);font-size:12px}
.cred-dot{width:5px;height:5px;background:var(--or-clair);border-radius:50%;flex-shrink:0}

/* Droite hero – bulle animée */
.hero-right{display:flex;justify-content:center;align-items:center;position:relative}
.hero-bubble-wrap{position:relative;width:400px;height:460px}

.hero-blob-svg{position:absolute;inset:0;z-index:0;width:100%;height:100%}
.blob-shape{fill:rgba(45,95,166,.25);animation:blobAnim 9s ease-in-out infinite}
@keyframes blobAnim{
  0%,100%{d:path("M200,40 C280,20 370,70 390,160 C410,250 360,340 280,400 C200,460 110,455 60,390 C10,325 15,220 35,140 C55,60 120,60 200,40Z")}
  33%{d:path("M210,35 C300,15 385,75 400,165 C415,255 355,345 270,405 C185,465 95,458 50,392 C5,326 12,225 32,145 C52,65 120,55 210,35Z")}
  66%{d:path("M195,45 C278,22 368,68 388,158 C408,248 365,338 288,398 C211,458 115,462 65,396 C15,330 18,228 38,148 C58,68 112,68 195,45Z")}
}

.hero-photo-ring{
  position:absolute;
  inset:10px;
  z-index:1;
  border-radius:50% 45% 55% 48% / 50% 55% 45% 52%;
  animation:bubbleFloat 7s ease-in-out infinite;
  overflow:hidden;
  border:3px solid rgba(240,192,64,.35);
  box-shadow:0 20px 60px rgba(0,0,0,.45),inset 0 0 40px rgba(45,95,166,.2);
}
@keyframes bubbleFloat{
  0%,100%{transform:translateY(0) rotate(0deg);border-radius:50% 45% 55% 48% / 50% 55% 45% 52%}
  25%{transform:translateY(-12px) rotate(1deg);border-radius:48% 52% 48% 55% / 52% 48% 55% 45%}
  50%{transform:translateY(-18px) rotate(-1deg);border-radius:52% 48% 55% 45% / 48% 55% 45% 52%}
  75%{transform:translateY(-8px) rotate(.5deg);border-radius:45% 55% 48% 52% / 55% 45% 52% 48%}
}

/* Image IDF en fond de bulle */
.hero-photo-ring .hero-idf-bg{
  width:100%;height:100%;object-fit:cover;object-position:center;
  filter:saturate(1.2) contrast(1.05);
}

/* Pictogrammes activités flottants */
.hero-picto{
  position:absolute;background:white;border-radius:12px;
  padding:9px 13px;display:flex;align-items:center;gap:7px;
  box-shadow:0 8px 24px rgba(0,0,0,.22);
  font-size:11px;font-weight:700;color:var(--bleu-fonce);
  font-family:'Montserrat',sans-serif;white-space:nowrap;z-index:3;
}
.hero-picto .pi{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.hero-picto.p1{top:2%;left:-5%;animation:pf1 4s ease-in-out infinite}
.hero-picto.p2{top:22%;right:-8%;animation:pf2 4.5s ease-in-out infinite}
.hero-picto.p3{top:50%;left:-12%;animation:pf3 5s ease-in-out infinite}
.hero-picto.p4{bottom:22%;right:-10%;animation:pf4 4.2s ease-in-out infinite}
.hero-picto.p5{bottom:5%;left:-5%;animation:pf5 3.8s ease-in-out infinite}

@keyframes pf1{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes pf2{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes pf3{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}
@keyframes pf4{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes pf5{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* Badge -50% CI */
.hero-badge-ci{
  position:absolute;top:38%;right:-6%;
  background:var(--rouge-vif);color:white;
  font-family:'Montserrat',sans-serif;font-weight:900;
  width:90px;height:90px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;z-index:4;
  box-shadow:0 0 0 5px #f5c518,0 0 0 9px rgba(231,76,60,.25);
  animation:ciPulse 2.5s ease-in-out infinite;
}
.hero-badge-ci .ci-big{font-size:22px;line-height:1}
.hero-badge-ci .ci-sm{font-size:8px;line-height:1.3;margin-top:2px;opacity:.9}
@keyframes ciPulse{
  0%,100%{box-shadow:0 0 0 5px #f5c518,0 0 0 9px rgba(231,76,60,.25)}
  50%{box-shadow:0 0 0 5px #f5c518,0 0 0 16px rgba(231,76,60,.1)}
}

/* Badge CESU */
.hero-badge-cesu{
  position:absolute;bottom:18%;left:-8%;
  background:white;color:var(--bleu-fonce);
  font-family:'Montserrat',sans-serif;font-weight:900;
  padding:10px 16px;border-radius:12px;z-index:4;
  font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.2);
  animation:pf1 4.8s ease-in-out infinite;
}

.hero-wave{position:absolute;bottom:-1px;left:0;right:0;z-index:3}

/* ── SECTION HEADER ── */
.section-header{text-align:center;margin-bottom:52px}
.overline{color:var(--or);font-family:'Montserrat',sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:3px;font-weight:700;display:block;margin-bottom:8px}
.section-header h2{font-size:clamp(26px,3.5vw,38px);margin-bottom:8px}
.section-header p{max-width:560px;margin:0 auto;color:#666;font-size:15px}
.separator{width:48px;height:3px;background:var(--grad-or);border-radius:2px;margin:12px auto}

/* ── ABOUT ── */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.about-text h2{font-size:clamp(24px,3vw,34px);margin-bottom:16px}
.about-text p{margin-bottom:13px;line-height:1.8;color:#555}
.about-decret{background:var(--gris-clair);border-left:4px solid var(--or);padding:13px 16px;border-radius:0 6px 6px 0;font-size:13px;color:var(--bleu-fonce);font-weight:600;margin-top:18px}

/* Vraie carte IDF SVG */
.map-container{background:var(--gris-clair);border-radius:var(--radius);padding:26px;text-align:center}
.idf-svg-wrap{display:flex;justify-content:center;align-items:center;margin-bottom:12px}
.zone-label{font-family:'Montserrat',sans-serif;font-weight:800;color:var(--rouge-vif);font-size:17px;margin-top:10px}

/* ── SERVICES ── */
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.service-card{background:white;border-radius:var(--radius);padding:26px 20px;box-shadow:var(--shadow-card);transition:all .35s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden;border:1px solid transparent}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-or);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover);border-color:rgba(212,160,23,.15)}
.service-card:hover::before{transform:scaleX(1)}
.service-icon{width:52px;height:52px;background:var(--grad-bleu);border-radius:13px;display:flex;align-items:center;justify-content:center;color:white;font-size:20px;margin-bottom:16px;transition:transform .3s}
.service-card:hover .service-icon{transform:scale(1.1) rotate(-5deg)}
.service-card h3{font-size:14px;margin-bottom:7px;color:var(--bleu-fonce);line-height:1.3}
.service-card p{font-size:13px;color:#777;line-height:1.6}
.service-card .read-more{display:inline-flex;align-items:center;gap:5px;margin-top:12px;color:var(--bleu-moyen);font-size:11px;font-weight:700;font-family:'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.5px;opacity:0;transform:translateX(-8px);transition:all .3s}
.service-card:hover .read-more{opacity:1;transform:translateX(0)}

/* ── MODAL SERVICE ── */
.service-modal-overlay{display:none;position:fixed;inset:0;background:rgba(6,15,34,.75);backdrop-filter:blur(8px);z-index:9000;align-items:center;justify-content:center;padding:20px}
.service-modal-overlay.open{display:flex;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.service-modal{background:white;border-radius:var(--radius-lg);max-width:560px;width:100%;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4);animation:slideUp .3s ease}
@keyframes slideUp{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-header{background:var(--grad-bleu);padding:28px;display:flex;align-items:center;gap:16px;position:relative}
.modal-header-icon{width:56px;height:56px;background:rgba(255,255,255,.15);border-radius:14px;display:flex;align-items:center;justify-content:center;color:white;font-size:24px;flex-shrink:0}
.modal-header h3{color:white;font-size:18px;flex:1;line-height:1.3}
.modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;background:rgba(255,255,255,.15);border:none;border-radius:50%;color:white;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .2s}
.modal-close:hover{background:rgba(255,255,255,.3)}
.modal-body{padding:28px}
.modal-body p{color:#555;line-height:1.8;margin-bottom:14px}
.modal-tarif{background:var(--gris-clair);border-radius:var(--radius-sm);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.modal-tarif .label{font-size:12px;color:#888}
.modal-tarif .price{font-family:'Montserrat',sans-serif;font-weight:900;font-size:26px;color:var(--bleu-fonce)}
.modal-tarif .after-ci{font-size:11px;color:var(--vert-teal);font-weight:700}
.modal-footer{display:flex;gap:10px;padding:0 28px 22px}
.modal-footer .btn{flex:1;justify-content:center}

/* ── TARIFS ── */
.tarifs-section{background:var(--grad-bleu);color:white}
.tarifs-section .section-header h2{color:white}
.tarifs-section .overline{color:var(--or-clair)}
.tarifs-section .section-header p{color:rgba(255,255,255,.72)}
.tarifs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:26px;max-width:800px;margin:0 auto}
.tarif-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:var(--radius-lg);padding:36px 26px;text-align:center;backdrop-filter:blur(10px);transition:all .3s}
.tarif-card:hover{background:rgba(255,255,255,.14);transform:translateY(-4px)}
.tarif-card.featured{border-color:var(--or);background:rgba(212,160,23,.12)}
.tarif-mode{font-family:'Montserrat',sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--or-clair);margin-bottom:13px}
.tarif-price{font-family:'Montserrat',sans-serif;font-size:56px;font-weight:900;color:white;line-height:1}
.tarif-price sup{font-size:20px;vertical-align:top;margin-top:10px}
.tarif-price sub{font-size:16px}
.tarif-desc{margin-top:13px;color:rgba(255,255,255,.72);font-size:13px;line-height:1.6}
.tarif-dispo{margin-top:16px;padding:8px 16px;background:rgba(255,255,255,.1);border-radius:50px;font-size:11px;color:var(--or-clair);font-weight:700;display:inline-block}

/* ── FLASH ── */
.flash-section{background:var(--rouge-vif);color:white;padding:58px 0}
.flash-inner{display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap}
.flash-content h2{font-size:clamp(22px,3vw,34px);color:white;margin-bottom:7px}
.flash-content .highlight{font-size:17px;font-weight:600;color:var(--or-clair)}
.flash-content p{color:rgba(255,255,255,.82);margin-top:9px;max-width:460px}
.flash-actions{display:flex;gap:13px;flex-wrap:wrap}

/* ── DEVIS ── */
.devis-section{background:var(--gris-clair)}
.devis-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:start}
.devis-info h2{font-size:clamp(20px,2.5vw,30px);margin-bottom:14px}
.devis-info p{color:#666;margin-bottom:22px}
.info-list{display:flex;flex-direction:column;gap:13px}
.info-item{display:flex;align-items:flex-start;gap:11px}
.info-icon{width:38px;height:38px;background:var(--grad-bleu);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-size:14px;flex-shrink:0}
.info-item h4{font-size:12px;margin-bottom:2px}
.info-item p{font-size:13px;color:#666;margin:0}
.devis-form-wrap{background:white;border-radius:var(--radius-lg);padding:34px;box-shadow:var(--shadow-card)}
.devis-form-wrap h3{font-size:19px;margin-bottom:20px;text-align:center}

/* ── CONTACT ── */
.contact-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;align-items:start}
.contact-card{background:var(--bleu-fonce);color:white;border-radius:var(--radius-lg);padding:34px}
.contact-card h3{color:var(--or-clair);font-size:17px;margin-bottom:5px}
.contact-card .tagline{color:rgba(255,255,255,.58);font-size:12px;margin-bottom:24px}
.contact-items{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}
.contact-item{display:flex;align-items:flex-start;gap:11px}
.contact-item .icon{width:36px;height:36px;background:rgba(212,160,23,.13);border:1px solid var(--or);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--or-clair);flex-shrink:0;font-size:13px}
.contact-item h4{font-size:11px;color:rgba(255,255,255,.52);margin-bottom:2px}
.contact-item p{font-size:13px;font-weight:600}
.contact-item a{color:var(--or-clair)}
.social-title{font-size:12px;color:rgba(255,255,255,.55);margin-bottom:9px}
.social-links{display:flex;gap:9px}
.social-link{width:34px;height:34px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;transition:all .3s;font-size:13px}
.social-link:hover{background:var(--or);color:var(--bleu-fonce)}
.contact-form-wrap{background:white;border-radius:var(--radius-lg);padding:34px;box-shadow:var(--shadow-card)}

/* ── FORMULAIRES ── */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:11px;font-weight:700;color:var(--bleu-fonce);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:11px 13px;border:2px solid #e0e7f0;border-radius:var(--radius-sm);font-family:'Open Sans',sans-serif;font-size:13px;color:var(--gris-texte);transition:border-color .3s;background:white}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--bleu-moyen);box-shadow:0 0 0 3px rgba(45,95,166,.09)}
.form-group textarea{resize:vertical;min-height:88px}
.form-submit{text-align:center;margin-top:18px}
.form-submit .btn{width:100%;justify-content:center;font-size:14px;padding:14px}
.form-note{font-size:11px;color:#bbb;margin-top:7px;text-align:center}

/* ── ZONES ── */
.zones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:13px;margin-top:34px}
.zone-card{background:white;border-radius:var(--radius);padding:16px;text-align:center;box-shadow:var(--shadow-card);transition:all .3s;border-bottom:3px solid transparent}
.zone-card:hover{transform:translateY(-4px);border-bottom-color:var(--or)}
.zone-dept{font-family:'Montserrat',sans-serif;font-size:24px;font-weight:900;color:var(--bleu-fonce)}
.zone-name{font-size:12px;color:#888;margin-top:3px}

/* ── FOOTER ── */
#footer{background:var(--noir-doux);color:rgba(255,255,255,.62);padding:58px 0 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:34px;padding-bottom:34px}
.footer-brand h3{font-family:'Montserrat',sans-serif;font-size:18px;color:white;margin-bottom:9px}
.footer-brand p{font-size:13px;line-height:1.7;margin-bottom:16px}
.footer-title{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--or-clair);margin-bottom:14px}
.footer-links li{margin-bottom:7px}
.footer-links a{font-size:13px;transition:color .3s}
.footer-links a:hover{color:var(--or-clair)}
.footer-contact-item{display:flex;align-items:flex-start;gap:8px;margin-bottom:11px;font-size:13px}
.footer-contact-item i{color:var(--or-clair);margin-top:3px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding:16px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:9px;font-size:12px}
.footer-bottom a{color:rgba(255,255,255,.38)}
.footer-bottom a:hover{color:var(--or-clair)}
.footer-badges{display:flex;gap:7px}
.footer-badge{background:rgba(255,255,255,.07);padding:3px 9px;border-radius:4px;font-size:10px;font-weight:700;color:white}

/* ── PAGE HERO ── */
.page-hero{background:var(--grad-bleu);padding:136px 0 54px;text-align:center;color:white}
.page-hero h1{font-size:clamp(26px,4vw,42px);color:white;margin-bottom:9px}
.page-hero p{font-size:16px;color:rgba(255,255,255,.76)}
.breadcrumb{font-size:11px;color:rgba(255,255,255,.52);margin-bottom:13px}
.breadcrumb a{color:var(--or-clair)}

/* ── ALERTS ── */
.alert{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13px}
.alert-success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}
.alert-error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}
.alert-info{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}

/* ── SCROLL TOP ── */
#scroll-top{position:fixed;bottom:26px;right:26px;width:40px;height:40px;background:var(--bleu-fonce);color:white;border:none;border-radius:50%;cursor:pointer;display:none;align-items:center;justify-content:center;font-size:14px;box-shadow:0 4px 14px rgba(0,0,0,.28);z-index:999;transition:all .3s}
#scroll-top:hover{background:var(--or);color:var(--bleu-fonce)}
#scroll-top.visible{display:flex}

/* ── COOKIE ── */
#cookie-notice{position:fixed;bottom:0;left:0;right:0;background:var(--bleu-fonce);color:white;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:13px;z-index:9999;font-size:13px;box-shadow:0 -4px 18px rgba(0,0,0,.2)}

/* ══════════════════════════
   ADMIN – CORRIGÉ COMPLET
   ══════════════════════════ */

/* ══════════════════════════════════════════
   ADMIN – Design entièrement revu v2
   Sidebar sombre lisible, contenu clair
   ══════════════════════════════════════════ */

.admin-layout {
  display: block;
  min-height: 100vh;
}

/* ── Sidebar ── */
.admin-sidebar {
  background: linear-gradient(180deg, #0d1f3c 0%, #0a1628 100%);
  color: white;
  position: fixed;
  top: 0; left: 0;
  width: 260px;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 200;
  box-shadow: 4px 0 20px rgba(0,0,0,0.25);
}
.admin-sidebar::-webkit-scrollbar { width: 3px; }
.admin-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 2px; }

.admin-sidebar-logo {
  padding: 22px 20px 18px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  gap: 12px;
}
.admin-sidebar-logo img {
  height: 44px;
  width: auto;
  mix-blend-mode: screen;
  flex-shrink: 0;
  opacity: 1;
}
.admin-sidebar-logo-text h2 {
  color: #f0c040;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 2px;
  line-height: 1.2;
}
.admin-sidebar-logo-text p {
  font-size: 10px;
  color: rgba(255,255,255,0.42);
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

.admin-nav { padding: 12px 0 20px; }

.admin-nav-title {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: rgba(255,255,255,0.32);
  padding: 14px 20px 6px;
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
}

.admin-nav a {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 20px;
  color: rgba(255,255,255,0.72);
  font-size: 13px;
  font-family: 'Open Sans', sans-serif;
  font-weight: 600;
  transition: all 0.18s ease;
  white-space: nowrap;
  border-left: 3px solid transparent;
  border-right: none;
  margin: 1px 0;
}
.admin-nav a i {
  width: 18px;
  text-align: center;
  flex-shrink: 0;
  font-size: 14px;
  opacity: 0.85;
}
.admin-nav a:hover {
  background: rgba(255,255,255,0.08);
  color: white;
  border-left-color: rgba(240,192,64,0.4);
}
.admin-nav a.active {
  background: rgba(240,192,64,0.12);
  color: white;
  border-left-color: #f0c040;
  font-weight: 700;
}
.admin-nav a.active i { opacity: 1; color: #f0c040; }

.admin-nav a .nav-badge {
  background: #e74c3c;
  color: white;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 50px;
  margin-left: auto;
  flex-shrink: 0;
  font-weight: 700;
}
.admin-nav .nav-danger { color: #ff7675 !important; }
.admin-nav .nav-danger:hover { color: #ff4757 !important; background: rgba(231,76,60,0.1) !important; }

/* ── Main content ── */
.admin-main {
  margin-left: 260px;
  background: #f0f4f9;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* ── Topbar ── */
.admin-topbar {
  background: white;
  padding: 14px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 1px 8px rgba(0,0,0,0.06);
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 2px solid #eef2f8;
}
.admin-topbar-left h2 {
  font-size: 15px;
  color: #1a3a6b;
  font-weight: 700;
  font-family: 'Montserrat', sans-serif;
}
.admin-topbar-right { display: flex; align-items: center; gap: 14px; }
.admin-user-info {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  color: #666;
  font-weight: 600;
}
.admin-user-info .avatar {
  width: 34px;
  height: 34px;
  background: linear-gradient(135deg,#1a3a6b,#2d5fa6);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 14px;
  flex-shrink: 0;
}

/* ── Content area ── */
.admin-content { padding: 28px; flex: 1; }
.admin-content > h1 { font-size: 21px; color: #1a3a6b; margin-bottom: 4px; font-family: 'Montserrat',sans-serif; }
.admin-content > .page-sub { font-size: 13px; color: #999; margin-bottom: 22px; }

/* ── Stat cards ── */
.admin-stats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 18px;
  margin-bottom: 26px;
}
.stat-card {
  background: white;
  border-radius: 12px;
  padding: 22px 20px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  display: flex;
  align-items: center;
  gap: 16px;
  border: 1px solid #eef2f8;
  transition: transform 0.2s, box-shadow 0.2s;
}
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.09); }
.stat-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: white;
  flex-shrink: 0;
}
.stat-icon.bleu { background: linear-gradient(135deg,#1a3a6b,#2d5fa6); }
.stat-icon.or   { background: linear-gradient(135deg,#d4a017,#f0c040); }
.stat-icon.rouge{ background: linear-gradient(135deg,#c0392b,#e74c3c); }
.stat-icon.vert { background: linear-gradient(135deg,#1e8449,#27ae60); }
.stat-info strong {
  font-family: 'Montserrat', sans-serif;
  font-size: 28px;
  color: #1a3a6b;
  display: block;
  line-height: 1;
  font-weight: 800;
}
.stat-info span { font-size: 12px; color: #aaa; margin-top: 5px; display: block; }

/* ── Admin cards ── */
.admin-card {
  background: white;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  margin-bottom: 22px;
  border: 1px solid #eef2f8;
}
.admin-card-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #1a3a6b;
  margin-bottom: 18px;
  padding-bottom: 13px;
  border-bottom: 2px solid #f0f4f9;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ── Tables admin ── */
.admin-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.admin-table th {
  background: #f8fafd;
  padding: 11px 14px;
  text-align: left;
  font-weight: 700;
  color: #5a6a85;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  border-bottom: 2px solid #eef2f8;
  white-space: nowrap;
}
.admin-table td {
  padding: 13px 14px;
  border-bottom: 1px solid #f4f7fc;
  vertical-align: middle;
  color: #333;
}
.admin-table tr:last-child td { border-bottom: none; }
.admin-table tr:hover td { background: #fafbff; }

/* ── Badges statut ── */
.badge-statut { display:inline-block; padding:3px 10px; border-radius:50px; font-size:10px; font-weight:700; text-transform:uppercase; white-space:nowrap; }
.badge-nouveau  { background:#fff8e1; color:#e65100; border:1px solid #ffe082; }
.badge-en_cours { background:#e3f2fd; color:#1565c0; border:1px solid #90caf9; }
.badge-traite   { background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7; }
.badge-archive  { background:#f5f5f5; color:#616161; border:1px solid #e0e0e0; }
.badge-lu       { background:#e3f2fd; color:#1565c0; border:1px solid #90caf9; }
.badge-repondu  { background:#e8f5e9; color:#2e7d32; border:1px solid #a5d6a7; }

/* ── Login admin ── */
.admin-login-page {
  min-height: 100vh;
  background: linear-gradient(155deg,#060f22 0%,#0d2855 40%,#1a3a6b 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.login-box {
  background: white;
  border-radius: 20px;
  padding: 46px 36px;
  width: 100%;
  max-width: 400px;
  box-shadow: 0 24px 70px rgba(0,0,0,0.4);
  text-align: center;
}
.login-logo { margin-bottom: 26px; }
.login-logo img { height: 65px; }
.login-box h2 { font-size: 22px; margin-bottom: 5px; color: #1a3a6b; }
.login-box .sub { color: #999; font-size: 13px; margin-bottom: 26px; }

.admin-card-title{font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;color:var(--bleu-fonce);margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #f4f7fc;display:flex;justify-content:space-between;align-items:center}

.admin-table{width:100%;border-collapse:collapse;font-size:12px}
.admin-table th{background:#f8fafc;padding:10px 13px;text-align:left;font-weight:700;color:#6b7a90;font-size:10px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #eef2f7;white-space:nowrap}
.admin-table td{padding:12px 13px;border-bottom:1px solid #f4f7fc;vertical-align:middle}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:#fafbfe}

.badge-statut{display:inline-block;padding:3px 9px;border-radius:50px;font-size:10px;font-weight:700;text-transform:uppercase;white-space:nowrap}
.badge-nouveau{background:#fff3cd;color:#856404}
.badge-en_cours{background:#cce5ff;color:#004085}
.badge-traite{background:#d4edda;color:#155724}
.badge-archive{background:#e9ecef;color:#495057}
.badge-lu{background:#cce5ff;color:#004085}
.badge-repondu{background:#d4edda;color:#155724}

/* Login admin */
.admin-login-page{min-height:100vh;background:var(--grad-hero);display:flex;align-items:center;justify-content:center}
.login-box{background:white;border-radius:var(--radius-lg);padding:44px 34px;width:100%;max-width:390px;box-shadow:0 20px 60px rgba(0,0,0,.35);text-align:center}
.login-logo{margin-bottom:24px}
.login-logo img{height:62px}
.login-box h2{font-size:21px;margin-bottom:5px}
.login-box .sub{color:#999;font-size:13px;margin-bottom:24px}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .hero-inner{grid-template-columns:1fr;text-align:center}
  .hero-right{display:none}
  .about-grid{grid-template-columns:1fr}
  .devis-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .hero-ctas{justify-content:center}
  .hero-credibility{justify-content:center}
}
@media(max-width:768px){
  .nav-links{display:none}
  .hamburger{display:flex}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:66px;left:0;right:0;background:rgba(6,15,34,.98);padding:18px;gap:13px;border-top:1px solid rgba(255,255,255,.08)}
  .section{padding:48px 0}
  .footer-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .admin-layout{grid-template-columns:1fr}
  .admin-sidebar{transform:translateX(-260px);transition:transform .3s}
  .admin-sidebar.open{transform:translateX(0)}
  .admin-main{margin-left:0}
}
