:root{--navy:#0B2E6B;--cyan:#00B4E6;--ink:#10243e;--muted:#617086;--bg:#f5f9fd;--white:#fff;--line:#dfeaf4;--shadow:0 14px 36px #0b2e6b14}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#fff}a{text-decoration:none;color:inherit}.container{width:min(1180px,92%);margin:auto}.topbar{background:var(--navy);color:#fff;padding:9px 0;font-size:14px}.nav{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 4px 18px #0b2e6b14}.navin{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:10px 0}.brand{display:flex;align-items:center;gap:12px;font-weight:800}.brand img{width:84px;height:62px;object-fit:contain}.menu{display:flex;align-items:center;gap:17px;font-weight:650;font-size:15px}.menu a:not(.btn):hover{color:var(--cyan)}.btn{display:inline-block;background:var(--cyan);color:#fff;padding:12px 18px;border-radius:12px;font-weight:800;border:0;cursor:pointer}.btn.dark{background:var(--navy)}.btn.outline{background:transparent;border:1px solid #ffffff80}.hero{min-height:650px;display:grid;align-items:center;background:linear-gradient(90deg,rgba(4,31,68,.94),rgba(4,31,68,.58)),url('../img/736715324_1329279882741574_2482854050659092847_n.jpg') center/cover;color:#fff}.hero h1{font-size:clamp(34px,4.5vw,58px);line-height:1.08;max-width:920px;margin:0 0 22px;text-wrap:balance}.hero p{font-size:20px;max-width:800px;line-height:1.6}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-eyebrow{color:#7fe6ff!important}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-55px;position:relative}.stat{background:#fff;padding:25px;border-radius:20px;box-shadow:0 16px 40px #0b2e6b1c;text-align:center}.stat b{font-size:30px;color:var(--navy)}section{padding:84px 0}.soft-section,.services-section,.team-section{background:var(--bg)}.section-head{max-width:790px;margin-bottom:36px}.eyebrow{font-weight:800;color:var(--cyan);text-transform:uppercase;letter-spacing:.12em;font-size:13px}.section-head h2,.about-layout h2,.president-copy h2{font-size:clamp(28px,3vw,42px);line-height:1.15;margin:8px 0 12px;text-wrap:balance}.services-section .section-head{max-width:980px}.services-section .section-head h2{max-width:980px}.section-head p,.about-layout p,.president-copy p{color:var(--muted);line-height:1.75;font-size:17px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 30px #0b2e6b0c}.card img{width:100%;height:230px;object-fit:cover}.card-body{padding:22px}.tag{display:inline-block;background:#e8f8fd;color:#08799a;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.card h3{margin:12px 0 10px;font-size:23px}.meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:14px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 10px 30px #0b2e6b0c;transition:.25s}.service-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px #0b2e6b18}.service-icon,.about-icon,.team-avatar{width:56px;height:56px;display:grid;place-items:center;border-radius:15px;background:#e8f8fd;color:var(--cyan);margin-bottom:18px}.icon-svg{width:29px;height:29px;color:var(--cyan)}.service-card h3{margin:0 0 10px;color:var(--navy);font-size:21px}.service-card p{margin:0;color:var(--muted);line-height:1.65}.service-price{display:inline-block;margin-top:14px;color:var(--navy);font-weight:800}.services-cta{margin-top:32px;background:linear-gradient(135deg,var(--navy),#07598c);color:#fff;border-radius:22px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:25px}.services-cta h3{font-size:26px;margin:0 0 6px}.services-cta p{margin:0;opacity:.9}.about-layout{display:grid;grid-template-columns:1.4fr .6fr;gap:46px;align-items:center}.about-card{background:var(--bg);border:1px solid var(--line);padding:30px;border-radius:24px}.about-card h3{font-size:26px;margin:0 0 10px;color:var(--navy)}.about-card p{font-size:16px}.text-link{color:var(--navy);font-weight:800}.president-section{background:#fff}.president-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:center}.president-photo-wrap{position:relative}.president-photo-wrap:before{content:"";position:absolute;inset:28px -18px -18px 28px;border-radius:28px;background:linear-gradient(135deg,var(--cyan),var(--navy));z-index:0}.president-photo{position:relative;z-index:1;width:100%;max-height:600px;object-fit:cover;border-radius:28px;box-shadow:var(--shadow)}.president-copy p{font-size:18px}.signature{margin-top:24px;border-left:4px solid var(--cyan);padding-left:16px;display:flex;flex-direction:column}.signature b{font-size:21px;color:var(--navy)}.signature span{color:var(--muted);margin-top:4px}.org-chart-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow);margin-bottom:28px}.org-chart-card img{width:100%;display:block;border-radius:16px}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.team-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;gap:14px;align-items:center}.team-card .team-avatar{width:46px;height:46px;min-width:46px;margin:0;border-radius:50%}.team-card .icon-svg{width:23px;height:23px}.team-card h3{font-size:16px;margin:0 0 4px;color:var(--navy)}.team-card p{margin:0;color:var(--muted);font-size:13px}.gallery{columns:3 280px;column-gap:16px}.gallery figure{margin:0 0 16px;break-inside:avoid;overflow:hidden;border-radius:18px;position:relative}.gallery img{width:100%;display:block;transition:.3s}.gallery figure:hover img{transform:scale(1.03)}.band{background:linear-gradient(135deg,var(--navy),#07598c);color:#fff}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}input,select,textarea{padding:13px 14px;border:1px solid #ccd9e6;border-radius:11px;font:inherit}textarea{min-height:120px}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.footer{background:#071d38;color:#dce9f4;padding:55px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer img{width:110px}.footer-bottom{margin-top:30px;border-top:1px solid #ffffff22;padding-top:20px}.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;background:#e8f8ed;color:#166b33}.menu-btn{display:none}@media(max-width:1000px){.menu{gap:12px;font-size:14px}.team-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.menu-btn{display:block}.menu{display:none;position:absolute;top:82px;left:4%;right:4%;background:#fff;padding:20px;border-radius:16px;box-shadow:0 10px 30px #0002;flex-direction:column;align-items:flex-start}.menu.open{display:flex}.stats,.grid3,.news-grid,.contact-layout,.footer-grid,.about-layout,.president-layout{grid-template-columns:1fr 1fr}.services-grid{grid-template-columns:1fr 1fr}.team-grid{grid-template-columns:repeat(2,1fr)}.services-cta{align-items:flex-start;flex-direction:column}.hero{min-height:570px}.formgrid{grid-template-columns:1fr}.president-layout{grid-template-columns:1fr}.president-photo{max-height:520px}.president-photo-wrap{max-width:560px}}@media(max-width:560px){.stats,.grid3,.news-grid,.contact-layout,.footer-grid,.about-layout,.services-grid,.team-grid{grid-template-columns:1fr}.stats{margin-top:-30px}.brand span{display:none}.hero h1{font-size:42px}section{padding:60px 0}.president-photo-wrap:before{inset:18px -10px -10px 18px}.team-card{padding:15px}}

/* Sous-menu À propos */
.dropdown{position:relative}.dropdown-toggle{display:flex;align-items:center;gap:5px}.dropdown-menu{display:none;position:absolute;top:100%;left:-18px;min-width:205px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px;box-shadow:var(--shadow)}.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{display:block}.dropdown-menu a{display:block;padding:10px 12px;border-radius:9px;white-space:nowrap}.dropdown-menu a:hover{background:#e8f8fd;color:var(--navy)!important}
/* Contact : deux formulaires */
.contact-info{display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:22px 26px;margin-bottom:28px;line-height:1.7}.dual-forms{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-card{border:1px solid var(--line);border-radius:22px;padding:28px;background:#fff;box-shadow:0 10px 30px #0b2e6b0c}.form-card h3{font-size:25px;color:var(--navy);margin:0 0 6px}.form-card>p{color:var(--muted);margin:0 0 22px;line-height:1.6}.form-icon{width:54px;height:54px;display:grid;place-items:center;background:#e8f8fd;border-radius:15px;margin-bottom:17px}.form-icon .icon-svg{color:var(--cyan)}
@media(max-width:850px){.dropdown{width:100%}.dropdown-toggle{justify-content:space-between}.dropdown-menu{position:static;display:block;box-shadow:none;border:0;border-left:2px solid var(--cyan);border-radius:0;margin:5px 0 0 8px;padding:3px 0 3px 10px}.dual-forms{grid-template-columns:1fr}.contact-info{align-items:flex-start;flex-direction:column}}

/* Animations ASI */
@keyframes asiFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes asiFadeIn{from{opacity:0}to{opacity:1}}
@keyframes asiFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.hero .hero-eyebrow{animation:asiFadeUp .6s ease-out both}
.hero h1{animation:asiFadeUp .75s .08s ease-out both}
.hero p{animation:asiFadeUp .8s .16s ease-out both}
.hero-actions{animation:asiFadeUp .85s .24s ease-out both}
.stat{transition:transform .28s ease,box-shadow .28s ease}.stat:hover{transform:translateY(-6px);box-shadow:0 20px 45px #0b2e6b24}
.service-icon,.form-icon,.about-icon{transition:transform .3s ease,background .3s ease}.service-card:hover .service-icon,.form-card:hover .form-icon,.about-card:hover .about-icon{transform:translateY(-3px) scale(1.06)}
.btn{transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px #00b4e633;filter:brightness(1.03)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
.reveal.delay-1{transition-delay:.06s}.reveal.delay-2{transition-delay:.12s}.reveal.delay-3{transition-delay:.18s}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
@media(max-width:850px){.hero h1{font-size:clamp(34px,8vw,48px)}.section-head h2,.about-layout h2,.president-copy h2{font-size:clamp(27px,6vw,38px)}}
@media(max-width:560px){.hero h1{font-size:36px;line-height:1.1}.section-head h2,.about-layout h2,.president-copy h2{font-size:30px;line-height:1.18}}

/* === Correctifs affichage V4 - production === */
/* Empêche les SVG des services de prendre la taille du conteneur/page */
.service-card svg,
.service-card .service-icon svg,
.service-icon > svg{
  width:30px !important;
  height:30px !important;
  max-width:30px !important;
  max-height:30px !important;
  min-width:30px;
  min-height:30px;
  display:block;
  flex:0 0 30px;
  color:var(--cyan);
  fill:none;
}
.service-icon{
  width:58px !important;
  height:58px !important;
  min-width:58px;
  min-height:58px;
  overflow:hidden;
}

/* Titres plus élégants et moins envahissants */
.hero h1{
  font-size:clamp(34px,4vw,52px);
  line-height:1.07;
  max-width:780px;
  letter-spacing:-.025em;
}
.services-section .section-head,
.services-section .section-head h2{
  max-width:760px;
}
.section-head h2,
.about-layout h2,
.president-copy h2{
  font-size:clamp(28px,2.7vw,38px);
  line-height:1.16;
  letter-spacing:-.018em;
}

/* Navigation : plus nette sur les écrans intermédiaires */
.navin{gap:18px}
.menu{gap:14px;font-size:14px}
.brand img{width:72px;height:54px}

/* Cartes services : proportions stables */
.services-grid{align-items:stretch}
.service-card{
  min-width:0;
  padding:24px;
  overflow:hidden;
}
.service-card h3{font-size:20px;line-height:1.25}
.service-card p{font-size:15px;line-height:1.65}

/* Animations plus fluides, sans agrandir les éléments */
.reveal{
  opacity:0;
  transform:translate3d(0,22px,0);
  transition:opacity .62s cubic-bezier(.2,.65,.3,1),transform .62s cubic-bezier(.2,.65,.3,1);
  will-change:opacity,transform;
}
.reveal.visible{opacity:1;transform:translate3d(0,0,0)}
.service-card,.card,.stat,.form-card,.team-card{
  transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s ease,border-color .28s ease;
}
.service-card:hover,.card:hover,.form-card:hover,.team-card:hover{
  transform:translateY(-4px);
}

/* Le menu mobile s'active plus tôt pour éviter qu'il soit tassé */
@media(max-width:1050px){
  .menu-btn{display:block}
  .menu{
    display:none;
    position:absolute;
    top:74px;
    left:4%;right:4%;
    background:#fff;
    padding:20px;
    border-radius:16px;
    box-shadow:0 14px 36px #0b2e6b24;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
  .menu.open{display:flex}
  .menu>a,.menu>.dropdown{width:100%}
  .menu a{padding:8px 4px}
  .dropdown{width:100%}
  .dropdown-toggle{justify-content:space-between}
  .dropdown-menu{
    position:static;
    display:block;
    box-shadow:none;
    border:0;
    border-left:2px solid var(--cyan);
    border-radius:0;
    margin:4px 0 0 8px;
    padding:3px 0 3px 10px;
  }
}

@media(max-width:850px){
  .hero{min-height:540px}
  .hero h1{font-size:clamp(34px,7vw,46px);max-width:680px}
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
  .container{width:min(94%,1180px)}
  .topbar{font-size:12px;padding:7px 0}
  .navin{padding:8px 0}
  .brand img{width:64px;height:48px}
  .hero{min-height:520px}
  .hero h1{font-size:34px;line-height:1.08}
  .hero p{font-size:16px;line-height:1.55}
  .section-head h2,.about-layout h2,.president-copy h2{font-size:28px}
  .services-grid{grid-template-columns:1fr}
  .service-card{padding:21px}
  .service-icon{width:52px !important;height:52px !important;min-width:52px;min-height:52px}
  .service-card svg,.service-card .service-icon svg,.service-icon > svg{width:27px !important;height:27px !important;max-width:27px !important;max-height:27px !important;min-width:27px;min-height:27px}
}

/* === ASI : stabilité mobile === */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
img,svg,video,iframe{max-width:100%;}

@media (max-width:768px){
  html{scroll-behavior:auto;}
  body{overflow-x:hidden;}
  .container{width:92%;max-width:100%;}

  /* Évite les effets de déplacement sur téléphone */
  .reveal,.reveal.visible{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .hero .hero-eyebrow,
  .hero h1,
  .hero p,
  .hero-actions{
    animation:none !important;
    transform:none !important;
  }
  .service-card,
  .service-card:hover,
  .stat,
  .stat:hover,
  .btn,
  .btn:hover,
  .gallery img,
  .gallery figure:hover img,
  .service-icon,
  .service-card:hover .service-icon,
  .form-icon,
  .form-card:hover .form-icon,
  .about-icon,
  .about-card:hover .about-icon{
    transform:none !important;
  }

  /* Mise en page mobile plus stable */
  .navin{gap:10px;}
  .menu{max-height:calc(100vh - 100px);overflow-y:auto;overflow-x:hidden;}
  .hero{min-height:auto;padding:64px 0 86px;}
  .hero h1{font-size:clamp(31px,9vw,40px);line-height:1.08;max-width:100%;}
  .hero p{font-size:16px;line-height:1.55;max-width:100%;}
  .hero-actions{gap:10px;}
  .hero-actions .btn{width:100%;text-align:center;}

  .stats{margin-top:-28px;gap:10px;}
  .stat{padding:18px 12px;}
  .stat b{font-size:24px;}

  section{padding:54px 0;}
  .section-head{max-width:100%;margin-bottom:26px;}
  .section-head h2,.about-layout h2,.president-copy h2{font-size:29px;line-height:1.15;}
  .section-head p,.about-layout p,.president-copy p{font-size:16px;}

  .service-card,.card,.form-card,.about-card,.org-chart-card{overflow:hidden;}
  .services-cta{padding:22px 20px;}
  .contact-info{padding:20px;}
  .form-card{padding:22px 18px;}

  .president-photo-wrap:before{display:none;}
  .president-photo{max-height:none;height:auto;}

  .footer{overflow:hidden;}
}

@media (max-width:420px){
  .container{width:90%;}
  .topbar{font-size:11px;line-height:1.4;padding:7px 0;}
  .brand img{width:58px;height:44px;}
  .hero{padding-top:50px;padding-bottom:76px;}
  .hero h1{font-size:32px;}
  .stats{margin-top:-22px;}
  .stat b{font-size:22px;}
  .btn{padding:11px 14px;}
}

/* === ASI : correction formulaires Contact / Partenariat === */
.dual-forms{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  width:100%;
  max-width:100%;
  align-items:start;
}
.form-card{
  min-width:0;
  width:100%;
  max-width:100%;
}
.formgrid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  max-width:100%;
}
.field{
  min-width:0;
}
input,select,textarea{
  width:100%;
  min-width:0;
  max-width:100%;
}

@media (max-width:1000px){
  .dual-forms{grid-template-columns:1fr;}
}

@media (max-width:560px){
  .formgrid{grid-template-columns:1fr;}
  .field.full{grid-column:auto;}
}
