/* ==========================================================================
   GIA-CI — Feuille de style principale
   Direction artistique : institutionnel premium (inspiration Vinci / Egis /
   Suez / Capgemini) — grand espace blanc, photographie réelle en grand
   format, hiérarchie typographique stricte, accents mesurés.
   ========================================================================== */

html{font-size:86%;}

:root{
  --navy:#0A2A43;
  --navy-deep:#071B2C;
  --blue:#155A8A;
  --orange:#E07A1F;
  --ink:#12181F;
  --ink-soft:#4B5563;
  --paper:#FFFFFF;
  --gray-50:#F6F7F9;
  --gray-100:#EEF0F3;
  --line:#E3E6EA;

  --font-display:'Montserrat', 'Segoe UI', sans-serif;
  --font-body:'Montserrat', 'Segoe UI', sans-serif;

  --container:1240px;
  --ease:cubic-bezier(.16,.8,.24,1);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
p{text-align:justify; text-justify:inter-word;}
.hero p, .page-hero p, .section-head.center p, .testi-empty p, .partners-note{text-align:center;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
input,textarea,select{font-family:inherit; font-size:1rem;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

.container{max-width:var(--container); margin:0 auto; padding:0 40px;}
@media (max-width:768px){ .container{padding:0 22px;} }

h1,h2,h3,h4{font-family:var(--font-display); font-weight:700; letter-spacing:-0.01em; color:var(--navy);}
.eyebrow{
  font-family:var(--font-body); font-weight:600; font-size:0.8rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--orange); margin-bottom:18px; display:block;
}
.section-title{font-size:clamp(1.9rem,3.2vw,2.7rem); line-height:1.15; margin-bottom:20px;}
.section-lede{font-size:1.08rem; color:var(--ink-soft); max-width:640px;}
.section-head{margin-bottom:36px;}
.section-head.center{text-align:center; margin-left:auto; margin-right:auto;}
.section-head.center .section-lede{margin-left:auto; margin-right:auto;}

section{padding:50px 0;}
@media (max-width:768px){ section{padding:30px 0;} }
#services{padding:30px 0;}
@media (max-width:768px){ #services{padding:20px 0;} }
.section-tight{padding:50px 0;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 32px; border-radius:2px; font-size:0.92rem; font-weight:600; letter-spacing:0.02em;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s, color .35s, border-color .35s;
  white-space:nowrap;
}
.btn-primary{background:var(--orange); color:#fff;}
.btn-primary:hover{background:#C4650F; transform:translateY(-2px);}
.btn-outline{border:1.5px solid rgba(255,255,255,0.55); color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,0.12); border-color:#fff;}
.btn-navy{background:var(--navy); color:#fff;}
.btn-navy:hover{background:var(--navy-deep); transform:translateY(-2px);}
.btn-ghost{border:1.5px solid var(--line); color:var(--navy);}
.btn-ghost:hover{border-color:var(--navy);}
.btn-sm{padding:12px 22px; font-size:0.84rem;}

/* ---------- Loader ---------- */
#loader{
  position:fixed; inset:0; z-index:9999; background:var(--navy-deep);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
#loader.hidden{opacity:0; visibility:hidden; pointer-events:none;}
.loader-mark{font-family:var(--font-display); font-size:1.6rem; font-weight:700; color:#fff; letter-spacing:0.05em;}
.loader-bar{width:160px; height:2px; background:rgba(255,255,255,.15); overflow:hidden;}
.loader-bar span{display:block; height:100%; width:0; background:var(--orange); animation:loaderFill 1s var(--ease) forwards;}
@keyframes loaderFill{ to{width:100%;} }

#progress-bar{position:fixed; top:0; left:0; height:2px; width:0%; background:var(--orange); z-index:1200; transition:width .1s linear;}

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:1000; padding:26px 0;
  transition:padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
}
header.solid, header.scrolled{
  padding:16px 0; background:rgba(255,255,255,0.96); backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line);
}
header.solid .nav-links a, header.scrolled .nav-links a{color:var(--ink-soft);}
header.solid .brand-text strong, header.scrolled .brand-text strong{color:var(--navy);}
header:not(.solid):not(.scrolled) .nav-links a{color:rgba(255,255,255,0.88);}
header:not(.solid):not(.scrolled) .brand-text strong{color:#fff;}
header:not(.solid):not(.scrolled) .brand-text span{color:rgba(255,255,255,0.6);}
header:not(.solid):not(.scrolled) .btn-ghost{border-color:rgba(255,255,255,0.5); color:#fff;}

.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{width:40px; height:40px; border-radius:4px; object-fit:cover;}
.brand-text{display:flex; flex-direction:column; line-height:1.15;}
.brand-text strong{font-family:var(--font-display); font-size:1.02rem; letter-spacing:0.01em; transition:color .4s;}
.brand-text span{font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; transition:color .4s;}

.nav-links{display:flex; align-items:center; gap:30px;}
.nav-links a{font-size:0.88rem; font-weight:500; transition:color .3s; position:relative;}
.nav-links a:hover{color:var(--orange) !important;}
.nav-cta{display:flex; align-items:center; gap:14px;}
@media (max-width:980px){ .nav-links{display:none;} }

.burger{
  display:none; width:42px; height:42px; align-items:center; justify-content:center; border-radius:3px;
}
header:not(.solid):not(.scrolled) .burger span,
header:not(.solid):not(.scrolled) .burger span::before,
header:not(.solid):not(.scrolled) .burger span::after{background:#fff;}
.burger span{display:block; width:20px; height:1.5px; background:var(--navy); position:relative;}
.burger span::before,.burger span::after{content:""; position:absolute; width:20px; height:1.5px; background:var(--navy); left:0; transition:.3s;}
.burger span::before{top:-6px;} .burger span::after{top:6px;}
.burger.open span{background:transparent;}
.burger.open span::before{transform:rotate(45deg); top:0; background:var(--navy) !important;}
.burger.open span::after{transform:rotate(-45deg); top:0; background:var(--navy) !important;}
@media (max-width:980px){ .burger{display:flex;} .nav-cta .btn{display:none;} }

.mobile-menu{
  position:fixed; top:0; right:0; height:100vh; width:min(340px,86vw); z-index:1100; background:#fff;
  box-shadow:-16px 0 40px rgba(7,27,44,.18); transform:translateX(100%); transition:transform .45s var(--ease);
  padding:110px 32px 30px; display:flex; flex-direction:column; gap:4px;
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu a{padding:15px 2px; font-size:1.05rem; font-weight:500; color:var(--navy); border-bottom:1px solid var(--line);}
.mobile-overlay{position:fixed; inset:0; background:rgba(7,27,44,.5); z-index:1050; opacity:0; visibility:hidden; transition:.35s;}
.mobile-overlay.open{opacity:1; visibility:visible;}

/* ---------- Hero (épuré) ---------- */
.hero{
  position:relative; min-height:min(39vh,375px); display:flex; align-items:center; justify-content:center; text-align:center;
  color:#fff; overflow:hidden;
}
.hero-bg{position:absolute; inset:0; z-index:0;}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:center 30%;}
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,27,44,.78) 0%, rgba(7,27,44,.62) 45%, rgba(7,27,44,.88) 100%);
}
.hero-content{position:relative; z-index:2; max-width:820px; padding:36px 24px 0;}
.hero-logo{width:76px; height:76px; margin:0 auto 16px; border-radius:16px; object-fit:cover; box-shadow:0 16px 40px rgba(0,0,0,.4); background:#fff; padding:10px;}
.hero-content .eyebrow{text-align:center;}
.hero h1{color:#fff; font-size:clamp(1.7rem,3.8vw,2.6rem); line-height:1.12; letter-spacing:-0.01em; margin-bottom:0;}
.hero h1 .accent{color:var(--orange);}
@media (max-width:640px){
  .hero-content{padding-top:28px;}
  .hero-logo{width:64px; height:64px;}
}
.scroll-cue{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%); z-index:2;
  color:rgba(255,255,255,.7); display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-cue .arrow{width:1px; height:34px; background:rgba(255,255,255,.5); position:relative; overflow:hidden;}
.scroll-cue .arrow::after{content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:#fff; animation:arrowFall 1.8s infinite;}
@keyframes arrowFall{ to{top:100%;} }

/* Page hero (pages intérieures — plus compact) */
.page-hero{
  position:relative; padding:200px 0 90px; color:#fff; overflow:hidden;
  background:linear-gradient(155deg, var(--navy-deep), var(--navy));
}
.page-hero-bg{position:absolute; inset:0; z-index:0; opacity:.35;}
.page-hero-bg img{width:100%; height:100%; object-fit:cover;}
.page-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,27,44,.4), rgba(7,27,44,.92)); z-index:0;}
.page-hero .container{position:relative; z-index:1;}
.page-hero .eyebrow{color:var(--orange);}
.page-hero h1{color:#fff; font-size:clamp(2rem,4vw,3rem); margin-bottom:16px;}
.page-hero p{color:rgba(255,255,255,.78); font-size:1.05rem; max-width:640px;}
.breadcrumb{font-size:0.8rem; color:rgba(255,255,255,.55); margin-bottom:20px;}
.breadcrumb a{color:rgba(255,255,255,.8);}
.breadcrumb a:hover{color:#fff;}

/* ---------- Reveal ---------- */
.reveal{opacity:0; transform:translateY(30px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-stagger > *{transition-delay:calc(var(--i,0) * 100ms);}

/* ---------- Qui sommes-nous ---------- */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;}
@media (max-width:900px){ .about-grid{grid-template-columns:1fr; gap:44px;} }
.about-photo{position:relative;}
.about-photo img{width:100%; aspect-ratio:4/4.2; object-fit:cover; border-radius:2px;}
.about-photo-caption{
  position:absolute; left:-1px; bottom:-1px; background:var(--navy); color:#fff; padding:16px 22px;
  font-size:0.78rem; letter-spacing:0.04em; max-width:78%;
}
.about-content p{color:var(--ink-soft); margin-bottom:20px; font-size:1.02rem;}
.about-content .lead{font-size:1.22rem; color:var(--navy); font-weight:600; margin-bottom:22px; font-family:var(--font-display);}

.mvv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin-top:80px; border:1px solid var(--line);}
@media (max-width:820px){ .mvv-grid{grid-template-columns:1fr;} }
.mvv-item{background:#fff; padding:46px 40px;}
.mvv-item .n{font-family:var(--font-display); font-size:0.78rem; color:var(--orange); letter-spacing:0.1em; margin-bottom:16px;}
.mvv-item h3{font-size:1.2rem; margin-bottom:14px;}
.mvv-item p{color:var(--ink-soft); font-size:0.94rem;}

/* ---------- Stats ---------- */
.stats-band{background:var(--navy); color:#fff;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:40px;}
@media (max-width:820px){ .stats-grid{grid-template-columns:1fr 1fr;} }
.stat{text-align:center;}
.stat .count{font-family:var(--font-display); font-size:clamp(2.1rem,3.6vw,2.8rem); font-weight:700;}
.stat .count::after{content:attr(data-suffix); color:var(--orange);}
.stat .lbl{font-size:0.84rem; color:rgba(255,255,255,.62); margin-top:10px;}

/* ---------- Services (4 cartes) ---------- */
.services-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
@media (max-width:820px){ .services-grid{grid-template-columns:1fr;} }
.service-card{
  background:#fff; position:relative; overflow:hidden; min-height:460px; display:flex; flex-direction:column; justify-content:flex-end;
  padding:44px; color:#fff; transition:.5s var(--ease);
}
.service-card .sc-bg{position:absolute; inset:0; z-index:0;}
.service-card .sc-bg img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
.service-card:hover .sc-bg img{transform:scale(1.07);}
.service-card .sc-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,27,44,.15), rgba(7,27,44,.92));}
.service-card > *{position:relative; z-index:1;}
.service-card .sc-icon{font-size:1.6rem; margin-bottom:20px;}
.service-card h3{color:#fff; font-size:1.5rem; margin-bottom:14px;}
.service-card p{color:rgba(255,255,255,.8); font-size:0.94rem; margin-bottom:26px; max-width:400px;}
.service-card .sc-link{display:inline-flex; align-items:center; gap:10px; font-size:0.86rem; font-weight:600; letter-spacing:0.03em; color:#fff; border-bottom:1px solid rgba(255,255,255,.4); padding-bottom:4px; width:fit-content;}
.service-card:hover .sc-link{border-color:var(--orange); color:var(--orange);}

/* ---------- Cards génériques (formations, prestations) ---------- */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
@media (max-width:980px){ .card-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .card-grid{grid-template-columns:1fr;} }
.info-card{background:#fff; padding:36px 32px; cursor:pointer; transition:background .3s; display:flex; flex-direction:column; gap:16px;}
.info-card:hover{background:var(--gray-50);}
.info-card .ic-thumb{aspect-ratio:16/8.5; border-radius:2px; overflow:hidden; background:var(--gray-100);}
.info-card .ic-thumb img{width:100%; height:100%; object-fit:cover;}
.info-card .tag{font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--blue); font-weight:600;}
.info-card h4{font-size:1.02rem; line-height:1.4;}
.info-card .meta{display:flex; justify-content:space-between; align-items:center; font-size:0.86rem; color:var(--ink-soft); padding-top:12px; border-top:1px solid var(--line); margin-top:auto;}
.info-card .price{color:var(--orange); font-weight:700; font-family:var(--font-display);}

/* Filter bar */
.filter-bar{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:50px;}
.filter-btn{padding:11px 20px; border:1.5px solid var(--line); font-size:0.84rem; font-weight:500; color:var(--ink-soft); transition:.25s;}
.filter-btn:hover{border-color:var(--navy); color:var(--navy);}
.filter-btn.active{background:var(--navy); border-color:var(--navy); color:#fff;}

/* ---------- Modal fiche détaillée ---------- */
.modal{
  position:fixed; inset:0; z-index:2000; background:rgba(7,20,32,.9);
  display:flex; align-items:center; justify-content:center; padding:30px;
  opacity:0; visibility:hidden; transition:.35s;
}
.modal.open{opacity:1; visibility:visible;}
.modal-card{background:#fff; max-width:600px; width:100%; max-height:86vh; overflow-y:auto; position:relative;}
.modal-close{position:absolute; top:18px; right:18px; width:38px; height:38px; background:#fff; border:1px solid var(--line); border-radius:50%; z-index:2;}
.modal-img{aspect-ratio:16/7.6; overflow:hidden; background:var(--gray-100);}
.modal-img img{width:100%; height:100%; object-fit:cover;}
.modal-body{padding:36px;}
.modal-body .tag{font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--blue); font-weight:600;}
.modal-body h3{font-size:1.4rem; margin:14px 0;}
.modal-body p{color:var(--ink-soft); margin-bottom:24px;}
.modal-price-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding-top:20px; border-top:1px solid var(--line);}
.modal-price{font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--orange);}

/* ---------- Partenaires (marquee) ---------- */
.partners-wrap{background:var(--gray-50); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:60px 0;}
.partners-carousel{display:flex; align-items:center; gap:16px; max-width:100%;}
.partners-viewport{flex:1; min-width:0; overflow:hidden;}
.partners-track{display:flex; align-items:stretch; gap:20px; width:max-content; will-change:transform;}
.partners-arrow{
  flex-shrink:0; width:42px; height:42px; border-radius:50%; background:#fff; border:1px solid var(--line);
  color:var(--navy); display:flex; align-items:center; justify-content:center; font-size:1.05rem; cursor:pointer;
  transition:background .25s, color .25s, border-color .25s, transform .2s; box-shadow:0 4px 14px rgba(10,42,67,.06);
}
.partners-arrow:hover{background:var(--orange); border-color:var(--orange); color:#fff; transform:scale(1.06);}
@media (max-width:640px){ .partners-arrow{width:34px; height:34px; font-size:.9rem;} }

.partner-card{flex-shrink:0; width:180px;}
.partner-card-link{
  display:flex; flex-direction:column; align-items:center; gap:12px; height:100%;
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:20px 16px;
  transition:box-shadow .25s, border-color .25s, transform .25s;
}
.partner-card-link:hover{box-shadow:0 12px 30px rgba(10,42,67,.1); border-color:transparent; transform:translateY(-3px);}
.partner-card-logo{height:56px; width:100%; display:flex; align-items:center; justify-content:center;}
.partner-card-logo img{height:100%; width:auto; max-width:100%; object-fit:contain; filter:grayscale(1); opacity:.65; transition:filter .3s, opacity .3s;}
.partner-card-link:hover .partner-card-logo img{filter:grayscale(0); opacity:1;}
.partner-card-info{display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px;}
.partner-card-type{font-size:0.62rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--orange);}
.partner-card-info b{font-family:var(--font-display); font-size:0.82rem; color:var(--navy); line-height:1.3;}
.partners-note{text-align:center; font-size:0.8rem; color:var(--ink-soft); margin-top:22px;}

/* ---------- Galerie ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:4px;}
@media (max-width:900px){ .gallery-grid{grid-template-columns:repeat(3,1fr);} }
.gallery-item{aspect-ratio:1/1; overflow:hidden; cursor:pointer; position:relative;}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-item .gi-cap{
  position:absolute; inset:auto 0 0 0; padding:16px; background:linear-gradient(0deg, rgba(7,27,44,.85), transparent);
  color:#fff; font-size:0.74rem; opacity:0; transition:.3s;
}
.gallery-item:hover .gi-cap{opacity:1;}

/* ---------- Nos réalisations — 3 colonnes ---------- */
.realisations-columns{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
@media (max-width:900px){ .realisations-columns{grid-template-columns:1fr; gap:44px;} }
.real-col-head{display:flex; align-items:center; gap:12px; margin-bottom:20px;}
.real-col-icon{
  width:44px; height:44px; border-radius:12px; background:var(--gray-50); color:var(--navy);
  display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0;
}
.real-col-head h3{font-family:var(--font-display); font-size:1.05rem; color:var(--navy); margin:0;}
.real-col-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:4px;}
.real-col-grid .gallery-item{aspect-ratio:4/3.2;}
.real-col-empty{
  aspect-ratio:4/3; border:1.5px dashed var(--line); border-radius:6px;
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:var(--ink-soft); font-size:0.8rem; padding:20px; grid-column:1/-1;
}
.real-col-more{margin-top:16px;}

.lightbox{
  position:fixed; inset:0; z-index:2100; background:rgba(7,20,32,.94); display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:16px; padding:40px; opacity:0; visibility:hidden; transition:.3s;
}
.lightbox.open{opacity:1; visibility:visible;}
.lightbox img{max-width:min(1000px,92vw); max-height:78vh;}
.lightbox-cap{color:rgba(255,255,255,.8); font-size:0.85rem;}
.lightbox-close{position:absolute; top:26px; right:26px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff;}

/* ---------- Témoignages ---------- */
.testi-empty{
  border:1.5px dashed var(--line); padding:60px 40px; text-align:center; max-width:640px; margin:0 auto;
}
.testi-empty p{color:var(--ink-soft); margin-bottom:8px;}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
@media (max-width:900px){ .testi-grid{grid-template-columns:1fr;} }
.testi-card{background:#fff; padding:38px 34px;}
.testi-card .stars{color:var(--orange); margin-bottom:18px; letter-spacing:2px;}
.testi-card p{color:var(--ink-soft); margin-bottom:22px;}
.testi-who{display:flex; align-items:center; gap:12px;}
.testi-avatar{width:44px; height:44px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:0.85rem;}
.testi-who b{display:block; font-size:0.9rem; color:var(--navy);}
.testi-who span{font-size:0.78rem; color:var(--ink-soft);}

/* ---------- Actualités ---------- */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
@media (max-width:900px){ .news-grid{grid-template-columns:1fr;} }
.news-card{background:#fff;}
.news-card .nc-img{aspect-ratio:16/8.5; overflow:hidden; background:var(--gray-100);}
.news-card .nc-img img{width:100%; height:100%; object-fit:cover;}
.news-card .nc-body{padding:28px 26px;}
.news-card .nc-date{font-size:0.74rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--orange); font-weight:600;}
.news-card h4{font-size:1.02rem; margin:12px 0; line-height:1.4;}
.news-card p{color:var(--ink-soft); font-size:0.9rem;}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px;}
@media (max-width:940px){ .contact-grid{grid-template-columns:1fr;} }
.contact-info-list{display:flex; flex-direction:column; gap:2px; background:var(--line); border:1px solid var(--line); margin-bottom:30px;}
.contact-info-item{background:#fff; padding:24px 26px; display:flex; gap:18px; align-items:flex-start;}
.contact-info-item .ic{font-size:1.2rem; color:var(--orange); flex-shrink:0;}
.contact-info-item b{display:block; font-size:0.92rem; color:var(--navy); margin-bottom:4px;}
.contact-info-item span, .contact-info-item a{display:block; font-size:0.87rem; color:var(--ink-soft);}
.map-frame{border:1px solid var(--line); aspect-ratio:16/10;}
.map-frame iframe{width:100%; height:100%; border:0;}

.form-card{background:var(--gray-50); border:1px solid var(--line); padding:44px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
@media (max-width:560px){ .form-row{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-size:0.8rem; color:var(--ink-soft); font-weight:500;}
.field input,.field select,.field textarea{
  padding:14px 16px; border:1.5px solid var(--line); background:#fff; color:var(--ink); transition:border-color .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--blue);}
.field.error input,.field.error select,.field.error textarea{border-color:#C0392B;}
.field .err{font-size:0.76rem; color:#C0392B; display:none;}
.field.error .err{display:block;}
.field textarea{resize:vertical; min-height:120px;}
.form-foot{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:10px; flex-wrap:wrap;}
.form-note{font-size:0.78rem; color:var(--ink-soft);}
.btn-spinner{display:none; width:15px; height:15px; border-radius:50%; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; animation:spin .7s linear infinite;}
.btn.is-loading .btn-spinner{display:inline-block;}
.btn.is-loading .btn-label{opacity:.7;}
@keyframes spin{ to{transform:rotate(360deg);} }
.form-msg{display:none; align-items:center; gap:12px; padding:16px 18px; margin-top:20px; font-size:0.87rem;}
.form-msg.show{display:flex;}
.form-success{background:rgba(21,90,138,.07); border:1px solid rgba(21,90,138,.25); color:var(--blue);}
.form-error{background:rgba(192,57,43,.07); border:1px solid rgba(192,57,43,.25); color:#C0392B;}

/* ---------- FAQ ---------- */
.faq-list{max-width:820px; margin:0 auto; border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; text-align:left; padding:26px 2px; font-family:var(--font-display); font-size:1.02rem; color:var(--navy); font-weight:600;}
.faq-q .plus{width:26px; height:26px; border-radius:50%; border:1.5px solid var(--line); position:relative; flex-shrink:0; transition:.3s;}
.faq-q .plus::before,.faq-q .plus::after{content:""; position:absolute; background:var(--navy); top:50%; left:50%; transform:translate(-50%,-50%);}
.faq-q .plus::before{width:10px; height:1.5px;} .faq-q .plus::after{width:1.5px; height:10px; transition:.3s;}
.faq-item.open .faq-q .plus{border-color:var(--orange); background:var(--orange);}
.faq-item.open .faq-q .plus::before,.faq-item.open .faq-q .plus::after{background:#fff;}
.faq-item.open .faq-q .plus::after{opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .4s var(--ease);}
.faq-a p{color:var(--ink-soft); padding:0 2px 26px; max-width:680px;}

/* ---------- Footer ---------- */
footer{background:var(--navy-deep); color:rgba(255,255,255,.72); padding-top:90px;}
.footer-top{display:grid; grid-template-columns:1.4fr .9fr 1fr; gap:56px; padding-bottom:60px;}
@media (max-width:900px){ .footer-top{grid-template-columns:1fr 1fr; row-gap:44px;} }
@media (max-width:560px){ .footer-top{grid-template-columns:1fr;} }
.footer-brand img{width:44px; margin-bottom:20px;}
.footer-brand p{font-size:0.87rem; color:rgba(255,255,255,.55); max-width:280px; margin:16px 0 22px;}
.footer-social{display:flex; gap:10px;}
.footer-social a{width:38px; height:38px; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-size:0.9rem; transition:.3s;}
.footer-social a:hover{background:var(--orange); border-color:var(--orange);}
footer h5{color:#fff; font-family:var(--font-display); font-size:0.9rem; margin-bottom:22px; letter-spacing:0.03em;}
.footer-col ul{display:flex; flex-direction:column; gap:13px;}
.footer-col a{font-size:0.86rem; color:rgba(255,255,255,.58); transition:.25s;}
.footer-col a:hover{color:var(--orange);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12); padding:26px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-size:0.78rem; color:rgba(255,255,255,.45);}
.footer-bottom a{color:rgba(255,255,255,.45);}
.footer-bottom a:hover{color:#fff;}

/* ---------- FAB ---------- */
.fab-stack{position:fixed; right:26px; bottom:26px; display:flex; flex-direction:column; gap:12px; z-index:900;}
.fab{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.3rem; box-shadow:0 12px 26px rgba(7,27,44,.25); transition:transform .3s var(--ease);}
.fab:hover{transform:translateY(-4px) scale(1.05);}
.fab-whatsapp{background:#25D366;}
.fab-top{background:#fff; color:var(--navy); border:1px solid var(--line); opacity:0; visibility:hidden; transform:translateY(10px); transition:.35s;}
.fab-top.show{opacity:1; visibility:visible; transform:translateY(0);}

.mini-note{font-size:0.8rem; color:var(--ink-soft); background:var(--gray-50); border:1px dashed var(--line); padding:14px 18px; margin-top:20px;}

/* ==========================================================================
   PATCH — Méga-menu "Formations" + ajustements navigation
   ========================================================================== */
.nav-links{gap:34px;}
.nav-item{position:relative;}
.nav-item > a{display:inline-flex; align-items:center; gap:6px;}
.nav-caret{font-size:0.6rem; transition:transform .3s var(--ease);}
.nav-item:hover .nav-caret, .nav-item.mega-open .nav-caret{transform:rotate(180deg);}

.mega-panel{
  position:absolute; top:calc(100% + 22px); left:0; z-index:999;
  width:600px; max-width:min(600px, 84vw);
  background:#fff; border-radius:20px; border:1px solid var(--line);
  box-shadow:0 30px 70px -18px rgba(7,27,44,.30), 0 6px 20px rgba(7,27,44,.06);
  padding:14px; display:grid; grid-template-columns:1fr 1fr; gap:2px;
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(8px) scale(.97); transform-origin:top left;
  transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
}
.mega-panel::before{
  content:""; position:absolute; top:-7px; left:28px; width:14px; height:14px;
  background:#fff; border-left:1px solid var(--line); border-top:1px solid var(--line);
  transform:rotate(45deg); border-radius:3px 0 0 0;
}
.mega-panel.open{opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1);}
.mega-col{background:transparent; padding:20px 18px; border-radius:14px; display:flex; flex-direction:column; gap:10px; transition:background .22s;}
.mega-col:hover{background:var(--gray-50);}
.mega-col .mc-icon{
  width:42px; height:42px; border-radius:12px; background:var(--gray-50); color:var(--navy);
  display:flex; align-items:center; justify-content:center; font-size:1.2rem;
  transition:background .22s, color .22s, transform .22s;
}
.mega-col:hover .mc-icon{background:var(--navy); color:#fff; transform:scale(1.06);}
.mega-col h4{font-family:var(--font-display); font-size:0.96rem; color:var(--navy); margin:0;}

@media (max-width:1240px){ .mega-panel{left:auto; right:0; transform-origin:top right;} .mega-panel::before{left:auto; right:28px;} }
@media (max-width:980px){ .mega-panel{display:none;} }

/* Sous-menu mobile (Formations) */
.mobile-submenu{padding-left:16px; border-left:2px solid var(--line); margin:2px 0 10px;}
.mobile-submenu a{font-size:0.94rem; padding:11px 2px; color:var(--ink-soft);}
.mobile-toggle{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:15px 2px; font-size:1.05rem; font-weight:500; color:var(--navy); border-bottom:1px solid var(--line);
  background:none; border-top:none; border-left:none; border-right:none;
}
.mobile-toggle .car{transition:transform .3s;}
.mobile-toggle.open .car{transform:rotate(180deg);}

/* Cartes info sans prix : lien "Demander un devis" en bas */
.info-card .meta{justify-content:flex-end;}
.info-card .meta .quote-link{color:var(--blue); font-weight:600; font-size:0.86rem;}
.info-card:hover .meta .quote-link{color:var(--orange);}
.info-card .ic-cover{display:flex; flex-direction:column; gap:16px; cursor:pointer;}
.info-card .meta.has-preinscription{justify-content:space-between; gap:14px;}
.info-card .meta .preinsc-link{
  color:#fff; background:var(--orange); font-weight:600; font-size:0.78rem;
  padding:8px 14px; border-radius:20px; white-space:nowrap; transition:background .25s, transform .2s;
}
.info-card .meta .preinsc-link:hover{background:var(--navy); transform:translateY(-1px);}

/* ==========================================================================
   PATCH v3 — services repensés, recherche interne, header épuré, blog
   ========================================================================== */

/* Services : cartes fines, image panoramique, coins arrondis */
.services-grid-v2{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media (max-width:980px){ .services-grid-v2{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .services-grid-v2{grid-template-columns:1fr;} }
.service-card-v2{
  background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;
  display:flex; flex-direction:column; transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.service-card-v2:hover{transform:translateY(-6px); box-shadow:0 26px 50px -22px rgba(7,27,44,.22);}
.service-card-v2 .scv2-photo{aspect-ratio:16/8.5; overflow:hidden;}
.service-card-v2 .scv2-photo img{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease);}
.service-card-v2:hover .scv2-photo img{transform:scale(1.06);}
.service-card-v2 .scv2-body{padding:26px 26px 30px; display:flex; flex-direction:column; gap:12px; flex:1;}
.service-card-v2 .scv2-icon{
  width:40px; height:40px; border-radius:10px; background:var(--gray-50); border:1px solid var(--line); color:var(--navy);
  display:flex; align-items:center; justify-content:center; font-size:1.05rem; margin-top:-46px;
  position:relative; z-index:2; background:#fff;
}
.service-card-v2 h3{font-size:1.08rem; margin:0;}
.service-card-v2 p{color:var(--ink-soft); font-size:0.88rem; margin:0; flex:1;}
.service-card-v2 .scv2-link{
  display:inline-flex; align-items:center; gap:8px; font-size:0.82rem; font-weight:600; color:var(--navy);
  margin-top:8px; align-self:flex-start; padding-bottom:2px; border-bottom:1.5px solid transparent; transition:.25s;
}
.service-card-v2:hover .scv2-link{color:var(--orange); border-color:var(--orange);}

/* Recherche interne */
.search-trigger{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid transparent; font-size:1rem; transition:.25s;
}
header:not(.solid):not(.scrolled) .search-trigger{color:#fff;}
header.solid .search-trigger, header.scrolled .search-trigger{color:var(--navy);}
.search-trigger:hover{border-color:var(--line); background:var(--gray-50);}
.search-overlay{
  position:fixed; inset:0; z-index:2200; background:rgba(7,20,32,.92);
  display:flex; align-items:flex-start; justify-content:center; padding:12vh 24px 24px;
  opacity:0; visibility:hidden; transition:.3s;
}
.search-overlay.open{opacity:1; visibility:visible;}
.search-box{width:100%; max-width:640px;}
.search-input-wrap{position:relative; margin-bottom:20px;}
.search-input-wrap input{
  width:100%; padding:20px 54px 20px 22px; font-size:1.15rem; border:none; border-radius:10px; background:#fff; color:var(--ink);
}
.search-input-wrap input:focus{outline:2px solid var(--orange);}
.search-input-wrap .search-close{position:absolute; right:10px; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; background:var(--gray-50);}
.search-results{background:#fff; border-radius:10px; overflow:hidden; max-height:52vh; overflow-y:auto;}
.search-results a{display:flex; flex-direction:column; gap:2px; padding:16px 22px; border-bottom:1px solid var(--line);}
.search-results a:hover{background:var(--gray-50);}
.search-results a b{color:var(--navy); font-family:var(--font-display); font-size:0.96rem;}
.search-results a span{color:var(--ink-soft); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.04em;}
.search-empty{padding:20px 22px; color:rgba(255,255,255,.6); font-size:0.9rem;}

/* Footer — liens discrets additionnels */
.footer-discreet-links{display:flex; gap:24px; flex-wrap:wrap; justify-content:center; margin:0 0 40px; font-size:0.84rem;}
.footer-discreet-links a{color:rgba(255,255,255,.55);}
.footer-discreet-links a:hover{color:var(--orange);}

/* Lien discret bas de page (accueil) vers Blog / Galerie / Témoignages */
.discreet-links-band{padding:60px 0; text-align:center; border-top:1px solid var(--line);}
.discreet-links-band .links{display:flex; gap:36px; justify-content:center; flex-wrap:wrap;}
.discreet-links-band a{font-size:0.88rem; font-weight:600; color:var(--ink-soft); display:inline-flex; align-items:center; gap:8px;}
.discreet-links-band a:hover{color:var(--navy);}
.discreet-links-band a .arrow{transition:transform .25s;}
.discreet-links-band a:hover .arrow{transform:translateX(4px);}

/* Sous-page de déclinaison */
.declin-hero-meta{display:flex; gap:28px; flex-wrap:wrap; margin-top:26px;}
.declin-hero-meta div{font-size:0.82rem; color:rgba(255,255,255,.7);}
.declin-hero-meta b{display:block; color:#fff; font-size:0.92rem; margin-bottom:2px;}
.declin-body{display:grid; grid-template-columns:1.4fr 1fr; gap:60px;}
@media (max-width:900px){ .declin-body{grid-template-columns:1fr;} }
.declin-sidebar{background:var(--gray-50); border:1px solid var(--line); border-radius:12px; padding:32px 28px; align-self:start; position:sticky; top:110px;}
.declin-sidebar h4{font-size:1rem; margin-bottom:14px;}
.declin-sidebar p{font-size:0.88rem; color:var(--ink-soft); margin-bottom:22px;}
.declin-related{margin-top:50px;}
.declin-related h4{font-size:0.95rem; margin-bottom:20px; font-family:var(--font-display); color:var(--navy);}
