/* ==========================================================================
   GEKO Group — Site vitrine (one-pager)
   Feuille de style de production. Rendu fidèle à la référence de design.
   ========================================================================== */

*{box-sizing:border-box;}
body{margin:0;background:#fff;font-family:'Jost',sans-serif;color:#0B1B2B;}
html{scroll-behavior:smooth;}
section[id]{scroll-margin-top:76px;}
::selection{background:#1E6FD9;color:#fff;}

/* Accessibilité : masqué visuellement mais lisible par lecteur d'écran */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #1E6FD9;outline-offset:3px;}

/* Header */
.header{position:fixed;top:0;left:0;right:0;z-index:40;background:#fff;border-bottom:1px solid #E4EBF3;}
.header-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:15px 48px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.brand img{width:44px;height:44px;display:block;}
.brand span{font-weight:600;font-size:22px;letter-spacing:.09em;color:#033067;}

/* Burger + menu */
.burger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.burger span{display:block;width:26px;height:2px;background:#0B1B2B;transition:transform .35s ease, opacity .25s ease;}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.menu-panel{position:fixed;top:0;right:0;bottom:0;width:min(380px,86vw);background:#0B1B2B;z-index:60;padding:110px 44px 44px;transform:translateX(100%);transition:transform .45s cubic-bezier(.5,0,.2,1);display:flex;flex-direction:column;gap:6px;}
.menu-panel.open{transform:translateX(0);}
.menu-panel a{font-family:'Jost',sans-serif;color:#EAF1FB;text-decoration:none;font-size:26px;font-weight:300;letter-spacing:.01em;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);transition:color .2s, padding-left .25s;}
.menu-panel a:hover{color:#6FA3E0;padding-left:8px;}
.menu-foot{margin-top:auto;font-family:'Jost',sans-serif;font-size:14px;color:#7E93AB;font-weight:300;line-height:1.9;}
.menu-foot a{color:inherit;text-decoration:none;}
.menu-scrim{position:fixed;inset:0;background:rgba(6,14,24,.5);backdrop-filter:blur(2px);z-index:55;opacity:0;pointer-events:none;transition:opacity .4s ease;}
.menu-scrim.open{opacity:1;pointer-events:auto;}

/* Hero */
.hero{position:relative;height:100vh;min-height:640px;overflow:hidden;background:#001a2e;}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.hero-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,20,45,.22) 0%,rgba(3,20,45,.06) 42%,rgba(3,20,45,.42) 100%);}
.hero-cta{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;padding:0 40px 74px;}
.btn-g{border:1px solid rgba(255,255,255,.65);color:#fff;font-size:14px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;padding:20px 58px;border-radius:3px;text-decoration:none;background:rgba(3,20,45,.18);backdrop-filter:blur(2px);transition:all .3s ease;}
.btn-g:hover{background:#fff;color:#033067;border-color:#fff;}

/* Intro */
.intro{background:#fff;border-bottom:1px solid #E4EBF3;overflow:hidden;}
.intro-inner{max-width:1320px;margin:0 auto;padding:100px 48px;display:grid;grid-template-columns:auto 1fr;gap:56px;}
.intro-left{border-left:3px solid #1E6FD9;padding-left:34px;}
.eyebrow{font-size:18px;letter-spacing:.24em;text-transform:uppercase;color:#1E6FD9;font-weight:600;}
.intro-left h2{font-size:56px;font-weight:600;letter-spacing:-.03em;color:#0B1B2B;margin:18px 0 0;line-height:1.0;}
.intro-since{font-size:18px;letter-spacing:.24em;text-transform:uppercase;color:#9AAABB;font-weight:600;margin-top:24px;}
.intro-right{display:flex;align-items:center;}
.intro-right p{font-size:30px;line-height:1.5;color:#2E3A48;font-weight:300;margin:0;}

/* Équipe */
.team{background:radial-gradient(120% 90% at 50% 0%,#0F2C4C 0%,#0A1E33 60%,#071624 100%);}
.team-inner{max-width:1320px;margin:0 auto;padding:100px 48px;}
.team-head{text-align:center;margin-bottom:56px;}
.team-head .eyebrow{color:#6FA3E0;}
.team-head h2{font-size:42px;font-weight:600;letter-spacing:-.02em;color:#fff;margin:14px 0 0;}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1040px;margin:0 auto;}
.tm{text-align:center;transition:transform .4s ease;}
.tm:hover{transform:scale(1.07);position:relative;z-index:2;}
.tm .photo{position:relative;border-radius:8px;overflow:hidden;background:#12283f;aspect-ratio:3/4;box-shadow:0 18px 44px rgba(0,0,0,.35);transition:box-shadow .4s ease;}
.tm:hover .photo{box-shadow:0 26px 60px rgba(3,48,103,.24);}
.tm .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:filter .45s ease;}
.tm .tint{position:absolute;inset:0;background:#1E6FD9;mix-blend-mode:soft-light;opacity:.28;pointer-events:none;}
.tm .li{position:absolute;left:50%;bottom:18px;transform:translate(-50%,12px);opacity:0;transition:opacity .4s ease, transform .4s ease;display:inline-flex;align-items:center;gap:9px;background:rgba(9,20,38,.82);backdrop-filter:blur(4px);padding:10px 18px;border-radius:100px;text-decoration:none;}
.tm .li span{color:#fff;font-size:13px;font-weight:500;letter-spacing:.02em;}
.tm:hover .li,.tm:focus-within .li{opacity:1;transform:translate(-50%,0);}
.tm .name{font-weight:600;font-size:25px;color:#fff;margin-top:22px;}
.tm .role{font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#8FB8E6;margin-top:9px;}

/* Bande respirante */
.breather{background:#F4F7FB;}
.breather-inner{height:200px;display:flex;align-items:center;justify-content:center;}
.breather-inner img{width:46px;height:46px;object-fit:contain;opacity:.9;}

/* Vision */
.vision{position:relative;background:#0A1E33;overflow:hidden;}
.vision-bg{position:absolute;inset:0;background-image:url('assets/vision-bg.png');background-size:cover;background-position:center;}
.vision-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,38,.62),rgba(8,20,38,.42) 50%,rgba(8,20,38,.72));}
.vision-inner{max-width:1120px;margin:0 auto;padding:150px 48px;position:relative;text-align:center;}
.vision-inner .eyebrow{color:#E8C98A;letter-spacing:.28em;position:relative;}
.vision-inner p{position:relative;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:46px;line-height:1.2;letter-spacing:-.02em;color:#fff;max-width:940px;margin:28px auto 0;text-shadow:0 2px 30px rgba(0,0,0,.4);}

/* Entreprises */
.brands{background:#EEF3F9;border-top:1px solid #E4EBF3;border-bottom:1px solid #E4EBF3;}
.brands-inner{max-width:1320px;margin:0 auto;padding:100px 48px;}
.brands-head{text-align:center;margin-bottom:16px;}
.brands-head h2{font-size:42px;font-weight:600;letter-spacing:-.02em;color:#0B1B2B;margin:14px 0 0;}
.ent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px;}
.card{background:#fff;border:1px solid #E1E9F3;border-radius:6px;overflow:hidden;position:relative;transition:transform .35s ease, box-shadow .35s ease;}
.card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(3,48,103,.14);}
.card > a.card-link{position:absolute;inset:0;z-index:4;}
.media{position:relative;overflow:hidden;height:180px;display:flex;align-items:center;justify-content:center;}
.media .lg{transition:opacity .5s ease;position:relative;z-index:1;object-fit:contain;}
.media .clip{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;}
.card:hover .clip{opacity:1;}
.card:hover .lg{opacity:0;}
.card-body{padding:26px 28px 30px;}
.card-body .cname{font-weight:600;font-size:19px;color:#033067;}
.card-body .csector{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#9AAABB;margin:10px 0 14px;}
.card-body p{font-size:14.5px;line-height:1.6;color:#5C6B7E;font-weight:300;margin:0;}

/* Symbole */
.symbole{background:radial-gradient(120% 100% at 50% 0%,#12283f 0%,#0A1B2E 55%,#071322 100%);}
.symbole-inner{max-width:1120px;margin:0 auto;padding:120px 48px;text-align:center;}
.symbole-inner .eyebrow{color:#E8C98A;letter-spacing:.32em;font-size:17px;}
.symbole-inner p{font-family:'Newsreader',serif;font-weight:300;font-size:32px;line-height:1.5;color:#F1F5FA;max-width:840px;margin:0 auto;}
.s3-glowwrap{animation:s3-glow 4.5s ease-in-out 2s infinite;display:flex;justify-content:center;margin:40px 0 36px;}
.s3-gek{animation:s3-regen 2s cubic-bezier(.5,0,.2,1) both;width:150px;height:150px;object-fit:contain;filter:brightness(0) invert(1);}
@keyframes s3-regen{0%{clip-path:inset(0 0 100% 0);opacity:.2;}100%{clip-path:inset(0 0 0 0);opacity:1;}}
@keyframes s3-glow{0%,100%{filter:drop-shadow(0 0 0 rgba(232,201,138,0)) brightness(0) invert(1);}50%{filter:drop-shadow(0 0 26px rgba(232,201,138,.55)) brightness(0) invert(1);}}

/* Contact */
.contact{background:#EEF3F9;}
.contact-inner{max-width:1320px;margin:0 auto;padding:84px 48px;display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center;}
.contact-inner h2{font-size:36px;font-weight:600;letter-spacing:-.02em;color:#0B1B2B;margin:16px 0 22px;line-height:1.12;}
.contact-coords{font-size:15.5px;color:#33475C;line-height:2.1;font-weight:300;}
.contact-coords a{color:inherit;text-decoration:none;}
.contact-coords a:hover{color:#1E6FD9;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:26px;}
.field label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#6E7E90;margin-bottom:7px;display:block;}
.field input, .field textarea{font-family:'Jost',sans-serif;font-size:16px;font-weight:300;width:100%;padding:11px 2px;border:none;border-bottom:1px solid #B9CADF;outline:none;background:transparent;color:#0B1B2B;}
.field textarea{min-height:60px;resize:none;}
.btn-p{font-family:'Jost',sans-serif;font-weight:600;font-size:15px;border:none;border-radius:4px;padding:15px 40px;cursor:pointer;background:#033067;color:#fff;transition:all .3s ease;}
.btn-p:hover{background:#0A4C8C;}
.form-status{font-size:14px;font-weight:300;color:#2E3A48;margin-top:16px;min-height:20px;}

/* Page Mentions légales */
.legal{background:#fff;}
.legal-inner{max-width:900px;margin:0 auto;padding:140px 48px 90px;}
.legal-inner h1{font-size:42px;font-weight:600;letter-spacing:-.02em;color:#0B1B2B;margin:0 0 8px;}
.legal-inner .legal-sub{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:#9AAABB;font-weight:600;margin-bottom:48px;}
.legal-block{border-top:1px solid #E4EBF3;padding:34px 0;}
.legal-block h2{font-size:20px;font-weight:600;letter-spacing:.02em;color:#033067;margin:0 0 14px;}
.legal-block p{font-size:16px;line-height:1.75;color:#33475C;font-weight:300;margin:0 0 10px;}
.legal-block p strong{font-weight:600;color:#0B1B2B;}
.legal-block a{color:#1E6FD9;text-decoration:none;}
.legal-block a:hover{text-decoration:underline;}
.legal-block ul{margin:0;padding-left:0;list-style:none;font-size:16px;line-height:1.9;color:#33475C;font-weight:300;}
.legal-block ul li strong{font-weight:600;color:#0B1B2B;}
.legal-back{display:inline-block;margin-top:40px;font-size:14px;letter-spacing:.06em;color:#1E6FD9;text-decoration:none;}
.legal-back:hover{text-decoration:underline;}
@media (max-width:900px){
  .legal-inner{padding:120px 26px 70px;}
  .legal-inner h1{font-size:34px;}
}

/* Footer */
.footer{background:#0B1B2B;color:#7E93AB;}
.footer-inner{max-width:1320px;margin:0 auto;padding:22px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.footer-brand{display:flex;align-items:center;gap:11px;}
.footer-brand .dot{width:30px;height:30px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;}
.footer-brand .dot img{width:30px;height:30px;}
.footer-brand span{font-weight:600;font-size:15px;color:#fff;letter-spacing:.06em;}
.footer-nav{display:flex;align-items:center;gap:22px;font-size:13.5px;font-weight:300;flex-wrap:wrap;justify-content:center;}
.footer-nav a{color:#8093A6;text-decoration:none;}
.footer-nav a:hover{color:#EAF1FB;}
.footer-legal{font-size:12.5px;color:#5F7590;}
.footer-legal a{color:#5F7590;text-decoration:none;}

/* ---------- RESPONSIVE / MOBILE ---------- */
@media (max-width:900px){
  .intro-inner{grid-template-columns:1fr;gap:30px;padding:64px 26px;}
  .intro-left h2{font-size:44px;}
  .intro-right p{font-size:23px;}
  .team-inner,.brands-inner,.symbole-inner,.vision-inner{padding-left:26px;padding-right:26px;}
  .team-grid{grid-template-columns:1fr;gap:20px;max-width:420px;}
  .vision-inner p{font-size:32px;}
  .contact-inner{grid-template-columns:1fr;gap:34px;padding:60px 26px;}
  .header-inner{padding:14px 24px;}
}
@media (max-width:720px){
  .ent-grid{grid-template-columns:1fr;gap:18px;}
  .form-row{grid-template-columns:1fr;}
  .footer-inner{flex-direction:column;text-align:center;gap:16px;}
  .symbole-inner p{font-size:26px;}
  .vision-inner{padding-top:110px;padding-bottom:110px;}
}

/* ---------- ACCESSIBILITÉ : mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  .tm:hover{transform:none;}
  .s3-gek{filter:brightness(0) invert(1);}
}
