/* ================================================================
   CD2C-CGA — Feuille de Style v2.0 | Design Premium Institutionnel
   ================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&family=Nunito+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,400&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
  --blue-deep:    #0A2540;
  --blue-primary: #1B5E96;
  --blue-mid:     #2E86C1;
  --blue-pale:    #EBF5FB;
  --green:        #1E8449;
  --green-light:  #27AE60;
  --orange:       #E67E22;
  --orange-light: #F39C12;
  --white:        #FFFFFF;
  --gray-50:      #F9FAFB;
  --gray-100:     #F3F4F6;
  --gray-200:     #E5E7EB;
  --gray-400:     #9CA3AF;
  --gray-600:     #6B7280;
  --gray-700:     #374151;
  --gray-900:     #111827;
  --gold:         #D4AF37;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'Nunito Sans', sans-serif;
  --font-ui:      'Space Grotesk', sans-serif;
  --s1: 0 2px 8px rgba(10,37,64,.08);
  --s2: 0 8px 24px rgba(10,37,64,.12);
  --s3: 0 16px 48px rgba(10,37,64,.18);
  --s4: 0 32px 80px rgba(10,37,64,.24);
  --r1: 6px; --r2: 12px; --r3: 20px; --r4: 32px;
  --ease: all .3s cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-body);color:var(--gray-700);background:var(--white);overflow-x:hidden;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}

/* Utility */
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.text-center{text-align:center}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-l{opacity:0;transform:translateX(-36px);transition:opacity .7s ease,transform .7s ease}
.reveal-l.visible{opacity:1;transform:translateX(0)}
.reveal-r{opacity:0;transform:translateX(36px);transition:opacity .7s ease,transform .7s ease}
.reveal-r.visible{opacity:1;transform:translateX(0)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--r1);font-family:var(--font-ui);font-size:.88rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;transition:var(--ease);white-space:nowrap}
.btn-primary{background:var(--orange);color:var(--white);box-shadow:0 4px 16px rgba(230,126,34,.35)}
.btn-primary:hover{background:var(--orange-light);transform:translateY(-2px);box-shadow:0 8px 24px rgba(230,126,34,.5)}
.btn-secondary{background:var(--white);color:var(--blue-primary);border:2px solid var(--blue-primary)}
.btn-secondary:hover{background:var(--blue-primary);color:var(--white)}
.btn-ghost{background:rgba(255,255,255,.12);color:var(--white);border:2px solid rgba(255,255,255,.35);backdrop-filter:blur(8px)}
.btn-ghost:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.7)}
.btn-white{background:var(--white);color:var(--orange)}
.btn-white:hover{background:var(--gray-100);transform:translateY(-2px)}
.btn-lg{padding:18px 36px;font-size:.95rem}
.btn-sm{padding:9px 18px;font-size:.78rem}
.btn-wa{background:#25D366;color:var(--white)}
.btn-wa:hover{background:#128C7E;transform:translateY(-2px)}

/* Section heads */
.s-label{font-family:var(--font-ui);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:10px;margin-bottom:10px}
.s-label::before{content:'';display:block;width:28px;height:2px;background:var(--orange)}
.s-label.center{justify-content:center}
.s-label.center::before,.s-label.center::after{content:'';display:block;width:28px;height:2px;background:var(--orange)}
.s-title{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.7rem);color:var(--blue-deep);line-height:1.2;margin-bottom:18px}
.s-sub{font-size:1rem;color:var(--gray-400);max-width:580px;line-height:1.75}
.s-title.light{color:var(--white)}
.s-sub.light{color:rgba(255,255,255,.65)}

/* ── Topbar ── */
.topbar{background:var(--blue-deep);padding:7px 0;font-family:var(--font-ui);font-size:.75rem;color:rgba(255,255,255,.7)}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.topbar-l,.topbar-r{display:flex;gap:18px;align-items:center}
.topbar a:hover{color:var(--orange)}
.topbar i{margin-right:4px;font-size:.8rem}
.badge-agr{background:var(--orange);color:var(--white);padding:2px 10px;border-radius:20px;font-size:.67rem;font-weight:700;letter-spacing:.07em}

/* ── Header ── */
.header{position:sticky;top:0;z-index:1000;background:var(--white);box-shadow:var(--s1);transition:var(--ease)}
.header.scrolled{box-shadow:var(--s2)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo img{height:52px;width:auto}
.logo-text{display:flex;flex-direction:column;line-height:1.2}
.logo-text strong{font-family:var(--font-ui);font-size:1rem;font-weight:800;color:var(--blue-deep);letter-spacing:.02em}
.logo-text span{font-size:.64rem;color:var(--gray-400);letter-spacing:.07em;text-transform:uppercase}

.nav{display:flex;gap:2px;align-items:center}
.nav a{font-family:var(--font-ui);font-size:.82rem;font-weight:600;color:var(--gray-700);padding:8px 12px;border-radius:var(--r1);transition:var(--ease);white-space:nowrap}
.nav a:hover,.nav a.active{color:var(--blue-primary);background:var(--blue-pale)}
.nav-drop{position:relative}
.nav-drop>a::after{content:' ▾';font-size:.65rem}
.drop-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;background:var(--white);border-radius:var(--r2);box-shadow:var(--s3);min-width:210px;padding:6px;border-top:3px solid var(--blue-primary)}
.nav-drop:hover .drop-menu{display:block}
.drop-menu a{display:block;padding:9px 14px;border-radius:var(--r1);font-family:var(--font-ui);font-size:.82rem;color:var(--gray-700)}
.drop-menu a:hover{background:var(--blue-pale);color:var(--blue-primary)}

.h-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}
.lang-btn{font-family:var(--font-ui);font-size:.78rem;font-weight:700;color:var(--blue-primary);padding:6px 11px;border:2px solid var(--blue-pale);border-radius:var(--r1);transition:var(--ease);cursor:pointer}
.lang-btn:hover{background:var(--blue-pale)}
.hamburger{display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer}
.hamburger span{display:block;width:22px;height:2px;background:var(--blue-deep);transition:var(--ease);border-radius:2px}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* Mobile nav overlay */
.mobile-nav{display:none;position:fixed;inset:0;z-index:9990;background:var(--white);flex-direction:column;padding:80px 24px 32px;overflow-y:auto;gap:0}
.mobile-nav.open{display:flex}
.mobile-nav a{font-family:var(--font-ui);font-size:.95rem;font-weight:600;color:var(--gray-700);padding:14px 0;border-bottom:1px solid var(--gray-200)}
.mobile-nav a:hover{color:var(--blue-primary)}
.mob-close{position:absolute;top:18px;right:18px;font-size:1.4rem;color:var(--gray-700);cursor:pointer;padding:8px}
.mob-footer{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:12px}

/* ── Hero ── */
.hero{min-height:92vh;position:relative;display:flex;align-items:center;background:var(--blue-deep);overflow:hidden}
.hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 68% 50%,rgba(27,94,150,.45) 0%,transparent 70%),radial-gradient(ellipse 40% 60% at 5% 85%,rgba(30,132,73,.3) 0%,transparent 60%),linear-gradient(135deg,#071c31 0%,#0D3057 55%,#071c31 100%)}
.hero-dots{position:absolute;inset:0;opacity:.04;background-image:radial-gradient(circle,rgba(255,255,255,1) 1px,transparent 1px);background-size:30px 30px}
.hero-glow{position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(27,94,150,.2) 0%,transparent 70%);top:-150px;right:-150px;animation:glowPulse 5s ease-in-out infinite}
@keyframes glowPulse{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.08);opacity:.9}}

.hero-content{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.8);padding:6px 16px;border-radius:30px;font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:22px;backdrop-filter:blur(8px)}
.hero-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--orange);animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.hero h1{font-family:var(--font-display);font-size:clamp(2.1rem,3.8vw,3.4rem);color:var(--white);line-height:1.15;margin-bottom:18px}
.hero h1 em{color:var(--orange);font-style:normal}
.hero h1 .gr{color:#5ABF6E}
.hero-sub{color:rgba(255,255,255,.68);font-size:1rem;line-height:1.8;margin-bottom:34px;max-width:480px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:44px}
.hero-stats{display:flex;gap:28px;padding-top:28px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.hs-item{text-align:center}
.hs-num{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--white);display:block;line-height:1}
.hs-label{font-size:.7rem;color:rgba(255,255,255,.45);letter-spacing:.08em;text-transform:uppercase;margin-top:3px}

.hero-visual{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:220px 220px;gap:14px}
.hv-main{grid-column:span 2;border-radius:var(--r3);overflow:hidden;position:relative;box-shadow:var(--s4);border:2px solid rgba(255,255,255,.08)}
.hv-main img,.hv-sm img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.hv-main:hover img,.hv-sm:hover img{transform:scale(1.04)}
.hv-sm{border-radius:var(--r2);overflow:hidden;position:relative;box-shadow:var(--s3);border:2px solid rgba(255,255,255,.08)}
.hv-ov{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,37,64,.65))}
.hv-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:rgba(255,255,255,.4);font-family:var(--font-ui);font-size:.75rem;text-align:center;padding:10px}
.hv-placeholder i{font-size:2rem;opacity:.3}

.hero-float{position:absolute;bottom:16px;left:-10px;z-index:5;background:var(--orange);color:var(--white);border-radius:var(--r2);padding:14px 18px;box-shadow:var(--s4);animation:floatAnim 3s ease-in-out infinite}
.hero-float .val{font-family:var(--font-display);font-size:1.8rem;font-weight:800;line-height:1}
.hero-float .desc{font-size:.72rem;opacity:.85;margin-top:2px}
@keyframes floatAnim{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ── Agrément Band ── */
.agr-band{background:var(--blue-primary);padding:26px 0}
.agr-inner{display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:wrap}
.agr-item{display:flex;align-items:center;gap:12px;color:var(--white);font-family:var(--font-ui);font-size:.82rem}
.agr-item i{font-size:1.4rem;color:rgba(255,255,255,.55)}
.agr-item strong{display:block;font-weight:700;font-size:.9rem}
.agr-item span{opacity:.7;font-size:.75rem}
.agr-sep{width:1px;height:36px;background:rgba(255,255,255,.18)}

/* ── Stats ── */
.stats-section{padding:76px 0;background:var(--gray-50)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.stat-card{background:var(--white);border-radius:var(--r3);padding:32px 24px;text-align:center;box-shadow:var(--s1);transition:var(--ease);overflow:hidden;position:relative}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--blue-primary),var(--green))}
.stat-card:hover{transform:translateY(-5px);box-shadow:var(--s2)}
.st-icon{width:54px;height:54px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:var(--blue-pale);font-size:1.3rem;color:var(--blue-primary)}
.st-num{font-family:var(--font-display);font-size:2.6rem;font-weight:800;color:var(--blue-deep);line-height:1}
.st-sfx{font-size:1.3rem;color:var(--orange)}
.st-label{font-family:var(--font-ui);font-size:.75rem;color:var(--gray-400);margin-top:8px;text-transform:uppercase;letter-spacing:.07em}

/* ── Avantages ── */
.avantages-section{padding:96px 0;background:var(--white)}
.avantages-header{margin-bottom:52px}
.av-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.av-card{border-radius:var(--r3);padding:32px 26px;border:1px solid var(--gray-200);transition:var(--ease);position:relative;overflow:hidden;background:var(--white)}
.av-card:hover{transform:translateY(-6px);box-shadow:var(--s3);border-color:var(--blue-primary)}
.av-card:hover::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--blue-pale) 0%,rgba(255,255,255,0) 55%);pointer-events:none}
.av-pct{font-family:var(--font-display);font-size:2.8rem;font-weight:800;color:var(--blue-primary);line-height:1;margin-bottom:4px}
.av-card.hi .av-pct{color:var(--orange)}
.av-card.gr .av-pct{color:var(--green)}
.av-art{font-family:var(--font-ui);font-size:.68rem;color:var(--gray-400);letter-spacing:.07em;margin-bottom:14px;text-transform:uppercase}
.av-card h3{font-family:var(--font-ui);font-size:.95rem;font-weight:700;color:var(--blue-deep);margin-bottom:9px}
.av-card p{font-size:.85rem;color:var(--gray-400);line-height:1.65}
.av-icon{position:absolute;bottom:16px;right:16px;font-size:2.8rem;color:var(--gray-200)}

/* ── Services ── */
.services-section{padding:96px 0;background:var(--gray-50)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.svc-card{background:var(--white);border-radius:var(--r3);padding:28px 22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--s1);transition:var(--ease);border:1px solid transparent}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--s2);border-color:var(--blue-primary)}
.svc-icon{width:50px;height:50px;border-radius:var(--r2);background:var(--blue-pale);color:var(--blue-primary);display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:var(--ease)}
.svc-card:hover .svc-icon{background:var(--blue-primary);color:var(--white)}
.svc-card h3{font-family:var(--font-ui);font-size:.92rem;font-weight:700;color:var(--blue-deep)}
.svc-card p{font-size:.83rem;color:var(--gray-400);line-height:1.6;flex:1}
.svc-lnk{font-family:var(--font-ui);font-size:.78rem;font-weight:700;color:var(--blue-primary);display:flex;align-items:center;gap:5px;margin-top:auto}
.svc-lnk i{transition:var(--ease)}
.svc-card:hover .svc-lnk i{transform:translateX(4px)}

/* ── Gallery ── */
.gallery-section{padding:96px 0;background:var(--white)}
.gallery-head{text-align:center;margin-bottom:46px}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:250px 250px;gap:14px}
.gal-item{border-radius:var(--r2);overflow:hidden;position:relative;cursor:pointer}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gal-item:hover img{transform:scale(1.06)}
.gal-ov{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,37,64,.8));opacity:0;transition:var(--ease);display:flex;align-items:flex-end;padding:14px}
.gal-item:hover .gal-ov{opacity:1}
.gal-ov p{color:var(--white);font-family:var(--font-ui);font-size:.78rem;font-weight:600}
.gal-item.wide{grid-column:span 2}
.gal-item.tall{grid-row:span 2}
.gal-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:.75rem;text-align:center;padding:10px}

/* ── Simulator ── */
.sim-section{padding:96px 0;background:var(--blue-deep);position:relative;overflow:hidden}
.sim-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 80% at 50% 50%,rgba(27,94,150,.2) 0%,transparent 70%)}
.sim-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.sim-card{background:var(--white);border-radius:var(--r4);padding:38px;box-shadow:var(--s4)}
.sim-card h3{font-family:var(--font-ui);font-size:.95rem;font-weight:700;color:var(--blue-deep);margin-bottom:26px}
.fg{margin-bottom:22px}
.fg label{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-ui);font-size:.78rem;font-weight:600;color:var(--gray-700);margin-bottom:8px}
.fg label span{color:var(--blue-primary);font-size:.82rem}
input[type=range]{width:100%;height:5px;border-radius:3px;background:var(--gray-200);outline:none;cursor:pointer;-webkit-appearance:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--blue-primary);box-shadow:0 2px 8px rgba(27,94,150,.4);cursor:pointer}
select.fg-sel{width:100%;padding:11px 14px;border:2px solid var(--gray-200);border-radius:var(--r1);font-family:var(--font-ui);font-size:.88rem;color:var(--gray-700);background:var(--white);outline:none;cursor:pointer;transition:var(--ease)}
select.fg-sel:focus{border-color:var(--blue-primary)}
.sim-results{background:linear-gradient(135deg,var(--blue-pale),rgba(255,255,255,0));border-radius:var(--r2);padding:22px;margin-top:6px;border:1px solid rgba(27,94,150,.1)}
.res-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px dashed var(--gray-200)}
.res-row:last-child{border:none;padding-top:12px}
.res-row .lbl{font-size:.83rem;color:var(--gray-700)}
.res-row .val{font-family:var(--font-ui);font-weight:700;color:var(--green);font-size:.88rem}
.res-total .lbl{font-weight:700;color:var(--blue-deep);font-size:.92rem}
.res-total .val{font-size:1.15rem;color:var(--orange)}
.sim-cta-btn{width:100%;justify-content:center;margin-top:18px}

/* ── Adhesion ── */
.adh-section{padding:96px 0;background:var(--gray-50)}
.adh-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.steps-list{display:flex;flex-direction:column}
.step-item{display:flex;gap:18px;position:relative;padding-bottom:28px}
.step-item:last-child{padding-bottom:0}
.step-item::before{content:'';position:absolute;left:17px;top:40px;bottom:0;width:2px;background:var(--blue-pale);z-index:0}
.step-item:last-child::before{display:none}
.step-n{width:36px;height:36px;border-radius:50%;background:var(--blue-primary);color:var(--white);font-family:var(--font-ui);font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1;box-shadow:0 4px 12px rgba(27,94,150,.3)}
.step-c{padding-top:5px}
.step-c h4{font-family:var(--font-ui);font-size:.9rem;font-weight:700;color:var(--blue-deep);margin-bottom:5px}
.step-c p{font-size:.82rem;color:var(--gray-400);line-height:1.6}

.adh-form{background:var(--white);border-radius:var(--r4);padding:36px;box-shadow:var(--s2)}
.form-prog{display:flex;gap:6px;margin-bottom:28px}
.prog-s{flex:1;height:4px;border-radius:2px;background:var(--gray-200);transition:var(--ease)}
.prog-s.active{background:var(--orange)}
.prog-s.done{background:var(--green)}
.fstep{display:none}
.fstep.active{display:block}
.fstep-title{font-family:var(--font-ui);font-size:.95rem;font-weight:700;color:var(--blue-deep);margin-bottom:22px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ff{margin-bottom:14px}
.ff.span2{grid-column:span 2}
.ff label{font-family:var(--font-ui);font-size:.75rem;font-weight:700;color:var(--gray-700);display:block;margin-bottom:5px}
.ff input,.ff select,.ff textarea{width:100%;padding:11px 13px;border:2px solid var(--gray-200);border-radius:var(--r1);font-family:var(--font-body);font-size:.88rem;color:var(--gray-700);outline:none;transition:var(--ease)}
.ff input:focus,.ff select:focus,.ff textarea:focus{border-color:var(--blue-primary);box-shadow:0 0 0 3px rgba(27,94,150,.1)}
.ff textarea{resize:vertical;min-height:72px}
.pay-opts{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.pay-opt{display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--gray-200);border-radius:var(--r2);cursor:pointer;transition:var(--ease)}
.pay-opt:has(input:checked){border-color:var(--blue-primary);background:var(--blue-pale)}
.pay-opt input{width:16px;height:16px;accent-color:var(--blue-primary)}
.pay-opt .pi{font-size:1.3rem}
.pay-opt .pn{font-family:var(--font-ui);font-size:.88rem;font-weight:600;color:var(--blue-deep)}
.pay-opt .pnum{font-size:.75rem;color:var(--gray-400)}
.form-nav{display:flex;justify-content:space-between;margin-top:22px;gap:10px}

/* ── Calendar ── */
.cal-section{padding:96px 0;background:var(--white)}
.cal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:46px}
.cal-month{border-radius:var(--r2);overflow:hidden;box-shadow:var(--s1);border:1px solid var(--gray-200);transition:var(--ease)}
.cal-month:hover{box-shadow:var(--s2);transform:translateY(-2px)}
.cal-mhead{background:var(--blue-primary);color:var(--white);padding:11px 14px;font-family:var(--font-ui);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.cal-mhead.hot{background:var(--orange)}
.cal-mbody{padding:12px 14px}
.dl-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid var(--gray-200)}
.dl-item:last-child{border:none}
.dl-d{min-width:32px;height:32px;border-radius:var(--r1);background:var(--blue-pale);color:var(--blue-primary);font-family:var(--font-ui);font-size:.75rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dl-t{font-size:.76rem;color:var(--gray-700);line-height:1.4;padding-top:1px}
.dl-t strong{display:block;font-weight:700;color:var(--blue-deep);font-size:.79rem}

/* ── Testimonials ── */
.test-section{padding:96px 0;background:var(--blue-deep)}
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px}
.test-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r3);padding:28px;backdrop-filter:blur(8px);transition:var(--ease)}
.test-card:hover{background:rgba(255,255,255,.1);transform:translateY(-4px)}
.test-stars{color:var(--gold);font-size:.88rem;margin-bottom:14px;letter-spacing:2px}
.test-txt{color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.75;margin-bottom:22px;font-style:italic}
.test-txt::before{content:'"';color:var(--orange);font-size:1.8rem;line-height:0;vertical-align:-.45rem;margin-right:3px}
.test-auth{display:flex;align-items:center;gap:11px}
.test-av{width:42px;height:42px;border-radius:50%;background:var(--blue-primary);display:flex;align-items:center;justify-content:center;color:var(--white);font-family:var(--font-ui);font-size:.9rem;font-weight:700;overflow:hidden}
.test-av img{width:100%;height:100%;object-fit:cover}
.test-name{font-family:var(--font-ui);font-size:.85rem;font-weight:700;color:var(--white)}
.test-role{font-size:.73rem;color:rgba(255,255,255,.45)}

/* ── Blog ── */
.blog-section{padding:96px 0;background:var(--gray-50)}
.blog-grid{display:grid;grid-template-columns:2fr 1fr;gap:28px;margin-top:46px}
.blog-feat{background:var(--white);border-radius:var(--r3);overflow:hidden;box-shadow:var(--s1);transition:var(--ease)}
.blog-feat:hover{box-shadow:var(--s2)}
.bf-img{height:270px;overflow:hidden;position:relative}
.bf-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.blog-feat:hover .bf-img img{transform:scale(1.04)}
.bf-cat{position:absolute;top:14px;left:14px;background:var(--orange);color:var(--white);padding:4px 11px;border-radius:20px;font-family:var(--font-ui);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.bf-body{padding:26px}
.bf-body h3{font-family:var(--font-display);font-size:1.25rem;color:var(--blue-deep);margin-bottom:11px;line-height:1.35}
.bf-body p{font-size:.88rem;color:var(--gray-400);line-height:1.7}
.bf-meta{display:flex;align-items:center;gap:14px;margin:12px 0;font-size:.75rem;color:var(--gray-400)}
.bf-meta i{color:var(--blue-primary)}
.blog-side{display:flex;flex-direction:column;gap:14px}
.bm-card{background:var(--white);border-radius:var(--r2);padding:16px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--s1);transition:var(--ease)}
.bm-card:hover{box-shadow:var(--s2);transform:translateX(4px)}
.bm-ico{width:40px;height:40px;border-radius:var(--r1);background:var(--blue-pale);color:var(--blue-primary);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}
.bm-card h4{font-family:var(--font-ui);font-size:.82rem;font-weight:700;color:var(--blue-deep);margin-bottom:3px;line-height:1.35}
.bm-card span{font-size:.72rem;color:var(--gray-400)}

/* ── Locations ── */
.loc-section{padding:96px 0;background:var(--white)}
.loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px}
.loc-card{border-radius:var(--r3);overflow:hidden;box-shadow:var(--s1);border:1px solid var(--gray-200);transition:var(--ease)}
.loc-card.hq{grid-column:span 2}
.loc-card:hover{box-shadow:var(--s2);transform:translateY(-4px)}
.loc-map{height:150px;overflow:hidden;background:var(--blue-pale)}
.loc-map iframe{width:100%;height:100%;border:none}
.loc-map-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--blue-primary);font-family:var(--font-ui);font-size:.8rem}
.loc-map-ph i{font-size:1.8rem;opacity:.5}
.loc-body{padding:22px}
.loc-tag{display:inline-block;background:var(--blue-pale);color:var(--blue-primary);font-family:var(--font-ui);font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:3px 9px;border-radius:20px;margin-bottom:9px}
.loc-tag.hq-t{background:var(--orange);color:var(--white)}
.loc-body h3{font-family:var(--font-ui);font-size:.95rem;font-weight:800;color:var(--blue-deep);margin-bottom:11px}
.loc-det{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--gray-700);margin-bottom:7px}
.loc-det i{color:var(--blue-primary);width:13px;flex-shrink:0}
.loc-wa{display:inline-flex;align-items:center;gap:7px;margin-top:12px;background:#25D366;color:var(--white);padding:7px 14px;border-radius:var(--r1);font-family:var(--font-ui);font-size:.78rem;font-weight:700;transition:var(--ease)}
.loc-wa:hover{background:#128C7E;transform:translateY(-2px)}

/* ── CTA ── */
.cta-section{padding:96px 0;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--orange) 0%,#B7410E 100%)}
.cta-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 100% at 80% 50%,rgba(255,255,255,.08) 0%,transparent 70%)}
.cta-dots{position:absolute;inset:0;opacity:.05;background-image:radial-gradient(circle,white 1px,transparent 1px);background-size:22px 22px}
.cta-inner{position:relative;z-index:2;text-align:center}
.cta-inner h2{font-family:var(--font-display);font-size:clamp(1.9rem,4vw,3rem);color:var(--white);margin-bottom:14px}
.cta-inner p{color:rgba(255,255,255,.8);font-size:1rem;margin-bottom:32px}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ── Contact ── */
.contact-section{padding:96px 0;background:var(--gray-50)}
.contact-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:56px}
.ci-info{display:flex;flex-direction:column;gap:22px}
.ci-item{display:flex;gap:14px;align-items:flex-start}
.ci-ico{width:46px;height:46px;border-radius:var(--r2);background:var(--blue-primary);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}
.ci-item h4{font-family:var(--font-ui);font-size:.88rem;font-weight:700;color:var(--blue-deep);margin-bottom:3px}
.ci-item p,.ci-item a{font-size:.85rem;color:var(--gray-700);line-height:1.6}
.ci-item a:hover{color:var(--blue-primary)}
.cf-wrap{background:var(--white);border-radius:var(--r4);padding:36px;box-shadow:var(--s2)}
.cf-wrap h3{font-family:var(--font-ui);font-size:1.05rem;font-weight:800;color:var(--blue-deep);margin-bottom:26px}

/* ── Footer ── */
.footer{background:var(--gray-900);color:rgba(255,255,255,.62);padding:76px 0 0}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:44px;padding-bottom:56px}
.foot-brand .logo{margin-bottom:18px}
.foot-brand .logo img{filter:brightness(0) invert(1)}
.foot-brand p{font-size:.84rem;line-height:1.7;margin-bottom:22px}
.soc-links{display:flex;gap:9px}
.soc-a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.07);color:rgba(255,255,255,.65);display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:var(--ease)}
.soc-a:hover{background:var(--blue-primary);color:var(--white);transform:translateY(-2px)}
.foot-col h4{font-family:var(--font-ui);font-size:.82rem;font-weight:800;color:var(--white);text-transform:uppercase;letter-spacing:.07em;margin-bottom:18px;padding-bottom:9px;border-bottom:2px solid rgba(255,255,255,.07)}
.foot-col ul{display:flex;flex-direction:column;gap:9px}
.foot-col ul li a{font-size:.82rem;color:rgba(255,255,255,.52);transition:var(--ease);display:flex;align-items:center;gap:6px}
.foot-col ul li a:hover{color:var(--orange);padding-left:4px}
.foot-col ul li a i{font-size:.62rem;color:var(--orange)}
.fci{display:flex;gap:9px;margin-bottom:13px;font-size:.83rem}
.fci i{color:var(--orange);margin-top:2px;flex-shrink:0}
.foot-bottom{border-top:1px solid rgba(255,255,255,.06);padding:22px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.foot-bottom p{font-size:.78rem}
.foot-lnks{display:flex;gap:18px}
.foot-lnks a{font-size:.78rem;color:rgba(255,255,255,.38);transition:var(--ease)}
.foot-lnks a:hover{color:var(--orange)}

/* ── FABs ── */
.wa-fab{position:fixed;bottom:26px;right:26px;z-index:999;width:56px;height:56px;border-radius:50%;background:#25D366;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 4px 20px rgba(37,211,102,.5);animation:waPulse 2s ease-in-out infinite;transition:var(--ease)}
.wa-fab:hover{transform:scale(1.1);background:#128C7E}
@keyframes waPulse{0%,100%{box-shadow:0 4px 20px rgba(37,211,102,.5)}50%{box-shadow:0 4px 40px rgba(37,211,102,.8)}}
.top-btn{position:fixed;bottom:92px;right:26px;z-index:998;width:42px;height:42px;border-radius:50%;background:var(--blue-primary);color:var(--white);display:flex;align-items:center;justify-content:center;box-shadow:var(--s2);opacity:0;pointer-events:none;transition:var(--ease)}
.top-btn.vis{opacity:1;pointer-events:all}
.top-btn:hover{background:var(--blue-deep);transform:translateY(-2px)}

/* ── Cookie ── */
.cookie{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:var(--blue-deep);color:rgba(255,255,255,.85);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.82rem;transform:translateY(100%);transition:transform .4s ease}
.cookie.show{transform:translateY(0)}
.cookie p{flex:1;min-width:200px}
.cookie-btns{display:flex;gap:8px}

/* ── Modal ── */
.modal{position:fixed;inset:0;z-index:10000;background:rgba(10,37,64,.72);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:22px;opacity:0;pointer-events:none;transition:var(--ease)}
.modal.open{opacity:1;pointer-events:all}
.modal-box{background:var(--white);border-radius:var(--r4);padding:44px;max-width:460px;width:100%;text-align:center;transform:scale(.88);transition:var(--ease)}
.modal.open .modal-box{transform:scale(1)}
.modal-ico{font-size:2.8rem;margin-bottom:14px}
.modal-box h3{font-family:var(--font-display);font-size:1.45rem;color:var(--blue-deep);margin-bottom:11px}
.modal-box p{color:var(--gray-400);font-size:.88rem;line-height:1.65}

/* ── Responsive ── */
@media(max-width:1100px){
  .av-grid{grid-template-columns:repeat(2,1fr)}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .gal-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:auto}
  .gal-item.wide,.gal-item.tall{grid-column:span 1;grid-row:span 1}
  .gal-item{height:200px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:900px){
  .hero-content{grid-template-columns:1fr}
  .hero-visual{display:none}
  .sim-inner{grid-template-columns:1fr}
  .adh-inner{grid-template-columns:1fr}
  .blog-grid{grid-template-columns:1fr}
  .contact-inner{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .test-grid{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr}
  .loc-card.hq{grid-column:span 1}
  .cal-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .topbar{display:none}
  .nav{display:none}
  .hamburger{display:flex}
  .svc-grid,.av-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .cal-grid{grid-template-columns:repeat(2,1fr)}
  .frow{grid-template-columns:1fr}
  .ff.span2{grid-column:span 1}
}
@media(max-width:480px){
  .container{padding:0 16px}
  .hero{min-height:100svh}
  .hero h1{font-size:1.8rem}
  .hero-stats{flex-wrap:wrap;gap:14px}
  .stats-grid{grid-template-columns:1fr 1fr}
  .adh-form{padding:22px}
  .sim-card{padding:22px}
  .cal-grid{grid-template-columns:1fr}
}
