/* =========================================================
   Manrope — police auto-hébergée (SIL Open Font License 1.1, voir
   assets/fonts/OFL.txt). Auto-hébergée délibérément : servir la police
   depuis Google transmettrait l'adresse IP de chaque visiteur à un tiers,
   ce qui suppose un consentement préalable sous le RGPD.
   Fichiers variables : un seul par sous-ensemble, graisses 400 à 800.
   ========================================================= */
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/manrope-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/manrope-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* =========================================================
   VBMS Tunisie — feuille de styles
   Palette : bleu marine #0F3157 / #0A315A · turquoise #429BAE / #08445D
   Le rouge #E70013 est réservé exclusivement au logo.
   ========================================================= */

:root{
  --navy:        #0F3157;
  --navy-alt:    #0A315A;
  --navy-deep:   #071F3A;
  --navy-ink:    #061729;
  --teal:        #429BAE;
  --teal-deep:   #08445D;
  --teal-soft:   #E8F2F5;

  --paper:       #FFFFFF;
  --mist:        #F5F7FA;
  --mist-2:      #EDF1F6;
  --line:        #E1E7EF;
  --line-soft:   #EFF3F8;
  --muted:       #5A6B80;
  --muted-light: #9FB1C6;

  --wrap: 1320px;
  --r-sm: 8px;
  --r:    14px;
  --r-lg: 22px;

  --shadow-sm: 0 1px 2px rgba(7,31,58,.05), 0 4px 14px rgba(7,31,58,.05);
  --shadow:    0 2px 6px rgba(7,31,58,.06), 0 18px 44px rgba(7,31,58,.09);
  --shadow-lg: 0 30px 70px rgba(7,31,58,.16);

  --ease: cubic-bezier(.22,.68,.28,1);
  --font: "Manrope", "Segoe UI Variable Text", "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--font);
  font-size:clamp(16px, 0.132vw + 15.47px, 18px);
  line-height:1.62;
  color:var(--navy-deep);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; }

h1,h2,h3,h4{
  margin:0;
  font-weight:800;
  letter-spacing:-.022em;
  line-height:1.14;
  color:var(--navy);
}
h1{ font-size:clamp(2.05rem, 1.45rem + 2.4vw, 3.5rem); letter-spacing:-.032em; }
h2{ font-size:clamp(1.6rem, 1.1rem + 1.9vw, 2.65rem); }
h3{ font-size:clamp(1.06rem, .98rem + .35vw, 1.28rem); font-weight:700; }
h4{ font-size:.82rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
p{ margin:0 0 1.05em; }
p:last-child{ margin-bottom:0; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px, 3vw, 44px); }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--navy); color:#fff; padding:12px 20px; border-radius:0 0 var(--r-sm) 0;
}
.skip:focus{ left:0; }

:focus-visible{ outline:2px solid var(--teal); outline-offset:3px; border-radius:4px; }

/* ---------- Révélation au scroll ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
}
.site-header.scrolled{
  border-bottom-color:var(--line);
  box-shadow:0 6px 24px rgba(7,31,58,.06);
  background:rgba(255,255,255,.94);
}
.header-inner{ display:flex; align-items:center; gap:24px; height:76px; }

.brand{ display:flex; align-items:center; flex:0 0 auto; }
.brand-mark{ height:56px; width:auto; transition:opacity .2s var(--ease); }
.brand:hover .brand-mark{ opacity:.82; }

.nav{ display:flex; align-items:center; gap:6px; margin-left:auto; }
.nav a{
  position:relative; padding:9px 14px; border-radius:var(--r-sm);
  font-size:.92rem; font-weight:600; color:var(--navy-deep);
  transition:color .2s var(--ease), background .2s var(--ease);
}
.nav a::after{
  content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px;
  background:var(--teal); transform:scaleX(0); transform-origin:left; border-radius:2px;
  transition:transform .3s var(--ease);
}
.nav a:hover{ color:var(--teal-deep); }
.nav a:hover::after, .nav a.active::after{ transform:scaleX(1); }
.nav a.active{ color:var(--teal-deep); }
.nav .nav-cta{
  background:var(--navy); color:#fff; padding:10px 20px; margin-left:8px; border-radius:100px;
}
.nav .nav-cta::after{ display:none; }
.nav .nav-cta:hover{ background:var(--teal-deep); color:#fff; }

.header-tools{ display:flex; align-items:center; gap:14px; flex:0 0 auto; }
.lang{ display:flex; align-items:center; gap:6px; }
.lang-btn{
  background:none; border:0; cursor:pointer; padding:4px 4px;
  font-size:.78rem; font-weight:700; letter-spacing:.08em; color:var(--muted-light);
  transition:color .2s var(--ease);
}
.lang-btn:hover{ color:var(--teal-deep); }
.lang-btn.is-active{ color:var(--navy); }
.lang-sep{ width:1px; height:12px; background:var(--line); }

.burger{ display:none; width:42px; height:42px; border:1px solid var(--line); background:#fff; border-radius:10px; cursor:pointer; padding:0; position:relative; }
.burger span{
  position:absolute; left:11px; right:11px; height:2px; background:var(--navy); border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s var(--ease);
}
.burger span:nth-child(1){ top:14px; }
.burger span:nth-child(2){ top:20px; }
.burger span:nth-child(3){ top:26px; }
.burger.open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero{ position:relative; overflow:hidden; background:var(--navy-ink); color:#fff; }
.hero-bg{
  position:absolute; inset:0;
  background:
    radial-gradient(900px 520px at 82% 12%, rgba(66,155,174,.30), transparent 62%),
    radial-gradient(760px 620px at 8% 92%, rgba(8,68,93,.75), transparent 60%),
    linear-gradient(148deg, #071F3A 0%, #0F3157 45%, #0A315A 72%, #08445D 100%);
}
.hero-bg::after{
  content:""; position:absolute; inset:0; opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(70% 60% at 50% 40%, #000 30%, transparent 100%);
  -webkit-mask-image:radial-gradient(70% 60% at 50% 40%, #000 30%, transparent 100%);
}
.hero-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(40px,5vw,72px); align-items:center;
  padding-block:clamp(54px, 6vw, 100px);
}
.hero h1{ color:#fff; margin-bottom:22px; }
.eyebrow{
  font-size:.76rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase;
  color:#8FD0DE; margin-bottom:22px;
}
.hero .lead{
  font-size:clamp(1.02rem, .95rem + .35vw, 1.19rem);
  color:rgba(255,255,255,.82); max-width:56ch; margin-bottom:34px;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:44px; }

.hero-marks{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 28px; }
.hero-marks li{ display:flex; align-items:center; gap:10px; font-size:.9rem; color:rgba(255,255,255,.72); }
.hero-marks .dot{ width:6px; height:6px; border-radius:50%; background:var(--teal); flex:0 0 auto; }

.hero-visual{ display:flex; justify-content:center; }
.hero-logo-frame{
  position:relative; width:min(390px, 100%); aspect-ratio:1/1;
  display:grid; place-items:center;
  border-radius:32px;
  background:#fff;
  box-shadow:0 40px 90px rgba(0,0,0,.34), 0 0 0 1px rgba(255,255,255,.5);
}
.hero-logo-frame::before{
  content:""; position:absolute; inset:-14px; border-radius:44px;
  border:1px solid rgba(143,208,222,.28); pointer-events:none;
}
.hero-logo{ width:82%; height:auto; }

/* =========================================================
   BOUTONS
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 30px; border-radius:100px; border:1px solid transparent;
  font-size:.95rem; font-weight:700; letter-spacing:.01em; cursor:pointer;
  transition:transform .2s var(--ease), background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn-primary{ background:var(--teal); color:#03222F; box-shadow:0 10px 26px rgba(66,155,174,.32); }
.btn-primary:hover{ background:#57AFC1; box-shadow:0 16px 34px rgba(66,155,174,.4); }
.btn-accent{ background:#fff; color:var(--navy); box-shadow:0 10px 26px rgba(0,0,0,.22); }
.btn-accent:hover{ background:var(--teal-soft); }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.35); }
.btn-ghost:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.6); }
.btn-block{ width:100%; margin-top:6px; }

/* =========================================================
   SECTIONS
   ========================================================= */
.section{ padding-block:clamp(46px, 5.2vw, 84px); }
.section-alt{ background:var(--mist); }
.section-dark{ background:linear-gradient(155deg, #0A315A 0%, #0F3157 48%, #08445D 100%); color:#fff; }

.sec-head{ max-width:76ch; margin-bottom:clamp(26px, 2.8vw, 44px); }
.kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.74rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:var(--teal-deep); margin-bottom:16px;
}
.kicker::before{ content:""; width:26px; height:2px; background:var(--teal); border-radius:2px; }
.sec-sub{ margin-top:18px; color:var(--muted); font-size:1.03rem; max-width:64ch; }

.section-dark h2, .section-dark h3, .section-dark h4{ color:#fff; }
.section-dark .kicker{ color:#8FD0DE; }
.section-dark .sec-sub{ color:rgba(255,255,255,.76); }

/* ---------- À propos ---------- */
.about-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,72px); align-items:start; }
.about-text p{ color:var(--muted); }
.about-text p:first-child{ color:var(--navy-deep); font-size:1.08rem; }

.pillars{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.pillar{
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:24px 22px; box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.pillar:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:#CDE0E7; }
.pillar-num{ font-size:.72rem; font-weight:800; letter-spacing:.16em; color:var(--teal); display:block; margin-bottom:10px; }
.pillar h3{ font-size:1.02rem; margin-bottom:8px; }
.pillar p{ font-size:.92rem; color:var(--muted); }

/* ---------- Cartes clients ---------- */
.cards-3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:34px 30px; box-shadow:var(--shadow-sm); position:relative; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.card::before{
  content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background:linear-gradient(90deg, var(--teal), var(--navy-alt));
  transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.card:hover::before{ transform:scaleX(1); }
.card-icon{
  width:52px; height:52px; border-radius:14px; display:grid; place-items:center;
  background:var(--teal-soft); color:var(--teal-deep); margin-bottom:20px;
}
.card-icon svg{ width:26px; height:26px; stroke-linecap:round; stroke-linejoin:round; }
.card h3{ margin-bottom:10px; }
.card p{ color:var(--muted); font-size:.95rem; }

.markets{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:clamp(20px, 2.4vw, 30px); }
.market{ background:#fff; border:1px solid var(--line); border-left:3px solid var(--teal); border-radius:var(--r); padding:24px 26px; }
.market h4{ font-size:1.05rem; letter-spacing:-.01em; text-transform:none; margin-bottom:6px; }
.market p{ color:var(--muted); font-size:.93rem; }
.market-flagline{ display:none; }

/* ---------- Domaines ---------- */
.domains{ display:grid; gap:0; border-top:1px solid var(--line); }
.domain{
  display:grid; grid-template-columns:120px minmax(0,1fr); gap:24px; align-items:start;
  padding:clamp(24px, 2.6vw, 32px) 0; border-bottom:1px solid var(--line);
  transition:background .3s var(--ease);
}
.domain:hover{ background:linear-gradient(90deg, rgba(232,242,245,.6), transparent 70%); }
.domain-index{
  font-size:2.4rem; font-weight:800; line-height:1; letter-spacing:-.04em;
  color:transparent; -webkit-text-stroke:1.5px #BFD4DC;
}
.domain-body h3{ margin-bottom:10px; }
.domain-body p{ color:var(--muted); max-width:70ch; }

.cta-band{
  margin-top:clamp(30px, 3.6vw, 46px); padding:clamp(28px,3.2vw,38px) clamp(26px,4vw,48px); border-radius:var(--r-lg);
  background:linear-gradient(140deg, var(--navy) 0%, var(--teal-deep) 100%);
  color:#fff; display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  box-shadow:var(--shadow-lg);
}
.cta-band h3{ color:#fff; margin-bottom:8px; font-size:1.35rem; }
.cta-band p{ color:rgba(255,255,255,.78); font-size:.98rem; max-width:56ch; }

/* ---------- Direction ---------- */
.people{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.people-single{ grid-template-columns:minmax(0,1fr); max-width:880px; }
.people-single .person{ padding:clamp(30px,3.4vw,44px); gap:32px; }
.people-single .person-avatar{ width:92px; height:92px; border-radius:24px; font-size:1.6rem; }

/* ---------- Emplacement photo (portrait 4:5) ---------- */
.person-photo{
  position:relative; flex:0 0 auto; margin:0;
  width:clamp(132px, 15vw, 180px); aspect-ratio:4/5;
  border-radius:20px; overflow:hidden;
  background:linear-gradient(145deg, var(--navy) 0%, var(--teal-deep) 100%);
  box-shadow:0 14px 34px rgba(7,31,58,.18);
}
.person-photo img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:56% 20%;
  transition:transform .5s var(--ease);
}
.person:hover .person-photo img{ transform:scale(1.03); }
.person-photo .person-initials{
  position:absolute; inset:0; display:grid; place-items:center;
  color:#fff; font-weight:800; font-size:2rem; letter-spacing:.05em;
}
/* Photo absente : on retombe sur le monogramme */
.person-photo.no-photo img{ display:none; }
.person-photo:not(.no-photo) .person-initials{ display:none; }
.people-single .person h3{ font-size:1.42rem; }
.people-single .person-desc{ font-size:1rem; }
.person{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:34px 32px;
  display:flex; gap:24px; align-items:flex-start; box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.person:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.person-avatar{
  flex:0 0 auto; width:76px; height:76px; border-radius:20px; display:grid; place-items:center;
  background:linear-gradient(145deg, var(--navy) 0%, var(--teal-deep) 100%); color:#fff;
  font-weight:800; font-size:1.35rem; letter-spacing:.04em;
}
.person h3{ font-size:1.2rem; margin-bottom:4px; }
.person-role{
  font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--teal-deep); margin-bottom:14px;
}
.person-desc{ color:var(--muted); font-size:.95rem; }

/* ---------- Carrières ---------- */
.careers-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(30px,4vw,60px); align-items:start; }
.why{ display:grid; gap:6px; }
.why-item{ padding:22px 0; border-bottom:1px solid var(--line); }
.why-item:first-child{ padding-top:0; }
.why-item:last-child{ border-bottom:0; }
.why-item h3{ margin-bottom:6px; display:flex; align-items:center; gap:12px; }
.why-item h3::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--teal); flex:0 0 auto; }
.why-item p{ color:var(--muted); font-size:.95rem; padding-left:20px; }

/* =========================================================
   FORMULAIRES
   ========================================================= */
/* Piège à robots (Netlify honeypot) — hors écran, jamais visible ni tabulable */
.hp{
  position:absolute !important; left:-9999px; top:auto;
  width:1px; height:1px; overflow:hidden; margin:0;
}

.card-form{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px); box-shadow:var(--shadow);
}
.form-title{ margin-bottom:24px; font-size:1.22rem; }
.field{ margin-bottom:18px; }
.field label, .form label{ display:block; font-size:.83rem; font-weight:700; color:var(--navy); margin-bottom:7px; letter-spacing:.01em; }
.two{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }

input[type=text], input[type=email], select, textarea{
  width:100%; padding:13px 15px; font:inherit; font-size:.95rem; color:var(--navy-deep);
  background:var(--mist); border:1px solid var(--line); border-radius:10px;
  transition:border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}
textarea{ resize:vertical; min-height:104px; }
input:focus, select:focus, textarea:focus{
  outline:none; background:#fff; border-color:var(--teal);
  box-shadow:0 0 0 4px rgba(66,155,174,.16);
}
select{ appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6B80' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px; padding-right:40px;
}
::placeholder{ color:var(--muted-light); }

.file{ position:relative; }
.file input[type=file]{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.file-label{
  display:flex; align-items:center; gap:10px; padding:13px 15px; font-size:.93rem; color:var(--muted);
  background:var(--mist); border:1px dashed #C6D3E2; border-radius:10px; transition:border-color .2s var(--ease), color .2s var(--ease);
}
.file-label::before{ content:"↑"; font-weight:800; color:var(--teal); }
.file:hover .file-label{ border-color:var(--teal); color:var(--navy); }
.file-label.has-file{ border-style:solid; border-color:var(--teal); color:var(--navy); }

.consent{ display:flex; align-items:flex-start; gap:11px; margin:6px 0 20px; }
.consent input{ margin-top:4px; width:16px; height:16px; accent-color:var(--teal-deep); flex:0 0 auto; }
.consent span{ font-size:.85rem; font-weight:500; color:var(--muted); line-height:1.5; }

.err{ display:none; font-size:.78rem; font-weight:600; color:#B3261E; margin-top:6px; }
.field.invalid .err{ display:block; }
.field.invalid input, .field.invalid select, .field.invalid textarea,
.field.invalid .file-label{ border-color:#E39A94; background-color:#FDF4F3; }
.consent.invalid span{ color:#B3261E; }

.form-status{ margin-top:16px; font-size:.9rem; font-weight:600; display:none; }
.form-status.show{ display:block; }
.form-status.ok{ color:var(--teal-deep); }
.form-status.ko{ color:#B3261E; }
.form-status.ko a{ color:inherit; text-decoration:underline; font-weight:700; }
.form-dark .form-status.ko a{ color:#FFB4AB; }

/* Formulaire sur fond sombre */
.form-dark{ background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.16); backdrop-filter:blur(8px); box-shadow:0 30px 70px rgba(0,0,0,.28); }
.form-dark .form-title{ color:#fff; }
.form-dark label{ color:rgba(255,255,255,.9); }
.form-dark input[type=text], .form-dark input[type=email], .form-dark select, .form-dark textarea{
  background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2); color:#fff;
}
.form-dark ::placeholder{ color:rgba(255,255,255,.45); }
.form-dark select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px;
  background-color:rgba(255,255,255,.08);
}
.form-dark select option{ color:var(--navy-deep); background:#fff; }
.form-dark input:focus, .form-dark select:focus, .form-dark textarea:focus{
  background:rgba(255,255,255,.14); border-color:#8FD0DE; box-shadow:0 0 0 4px rgba(143,208,222,.2);
}
.form-dark .consent span{ color:rgba(255,255,255,.72); }
.form-dark .err{ color:#FFB4AB; }
.form-dark .field.invalid input, .form-dark .field.invalid select, .form-dark .field.invalid textarea{
  border-color:#FFB4AB; background-color:rgba(255,180,171,.12);
}
.form-dark .form-status.ok{ color:#8FD0DE; }
.form-dark .form-status.ko{ color:#FFB4AB; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(32px,5vw,70px); align-items:start; }
.info-block{ padding:20px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.info-block:first-child{ padding-top:0; }
.info-block:last-child{ border-bottom:0; }
.info-block h4{ color:#8FD0DE; margin-bottom:8px; }
.info-block p{ color:rgba(255,255,255,.88); font-size:1rem; }
.info-block a{ border-bottom:1px solid rgba(143,208,222,.5); transition:border-color .2s var(--ease), color .2s var(--ease); }
.info-block a:hover{ color:#8FD0DE; border-color:#8FD0DE; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--navy-ink); color:rgba(255,255,255,.62); padding-block:clamp(38px, 4vw, 52px) 28px; }
.footer-inner{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:start; }
/* Version monochrome blanche du logo pour les fonds sombres */
.footer-logo{ height:64px; width:auto; margin-bottom:18px; filter:brightness(0) invert(1); opacity:.9; }
.footer-brand p{ font-size:.93rem; max-width:38ch; }
.footer-nav{ display:grid; gap:10px; align-content:start; }
.footer-nav a{ font-size:.92rem; transition:color .2s var(--ease); }
.footer-nav a:hover{ color:#8FD0DE; }
.footer-meta{ font-size:.88rem; display:grid; gap:8px; }
.footer-meta p{ margin:0; }

/* =========================================================
   PAGES LEGALES
   ========================================================= */
.legal-head{
  background:linear-gradient(150deg, #071F3A 0%, #0F3157 55%, #08445D 100%);
  color:#fff; padding-block:clamp(48px, 6vw, 88px) clamp(36px, 4.4vw, 62px);
}
.legal-head h1{ color:#fff; font-size:clamp(1.9rem, 1.3rem + 2.2vw, 3rem); }
.legal-head .kicker{ color:#8FD0DE; }
.legal-date{ margin-top:16px; font-size:.88rem; color:rgba(255,255,255,.62); }

.legal-body{ padding-block:clamp(40px, 4.6vw, 72px); }
.legal{ max-width:78ch; }
.legal h2{
  font-size:clamp(1.18rem, 1.02rem + .6vw, 1.5rem);
  margin:clamp(32px, 3.4vw, 46px) 0 14px; padding-top:clamp(20px, 2.4vw, 28px);
  border-top:1px solid var(--line);
}
.legal > .legal-note + h2, .legal > h2:first-child{ border-top:0; padding-top:0; margin-top:0; }
.legal h3{ font-size:1.02rem; margin:24px 0 8px; color:var(--teal-deep); }
.legal p, .legal li{ color:var(--muted); }
.legal ul{ margin:0 0 1.05em; padding-left:22px; }
.legal li{ margin-bottom:9px; }
.legal a{ color:var(--teal-deep); text-decoration:underline; text-underline-offset:3px; }
.legal a:hover{ color:var(--navy); }
.legal code{
  font-family:ui-monospace, SFMono-Regular, Consolas, monospace; font-size:.88em;
  background:var(--mist-2); padding:2px 7px; border-radius:6px; color:var(--navy);
}
.legal strong{ color:var(--navy-deep); }

.legal-note{
  background:var(--teal-soft); border-left:3px solid var(--teal);
  border-radius:0 var(--r) var(--r) 0; padding:20px 24px; margin-bottom:34px;
}
.legal-note p{ margin:0; font-size:.94rem; color:var(--teal-deep); }

mark.todo{
  background:#FFF3CD; color:#7A5B00; font-weight:700; font-size:.86em;
  padding:2px 8px; border-radius:6px; white-space:nowrap;
}

.table-scroll{ overflow-x:auto; margin:0 0 1.05em; -webkit-overflow-scrolling:touch; }
.legal-table{ width:100%; min-width:540px; border-collapse:collapse; font-size:.92rem; }
.legal-table th, .legal-table td{
  text-align:left; padding:13px 16px; border-bottom:1px solid var(--line); vertical-align:top;
}
.legal-table th{
  background:var(--mist); color:var(--navy); font-weight:700;
  font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
}
.legal-table td{ color:var(--muted); }

.legal-back{ margin-top:clamp(34px, 4vw, 52px); }
.legal-back a{ font-weight:700; color:var(--teal-deep); }
.legal-back a:hover{ color:var(--navy); }

.footer-legal{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:14px; }
.footer-legal a{ font-size:.85rem; text-decoration:underline; text-underline-offset:3px; }
.footer-legal a:hover{ color:#8FD0DE; }

.consent a{ color:var(--teal-deep); text-decoration:underline; text-underline-offset:2px; }
.form-dark .consent a{ color:#8FD0DE; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1024px){
  .hero-inner{ grid-template-columns:1fr; gap:46px; }
  .hero-visual{ order:-1; }
  .hero-logo-frame{ width:min(280px,70%); }
  .about-grid, .careers-grid, .contact-grid{ grid-template-columns:1fr; }
  .cards-3{ grid-template-columns:1fr 1fr; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
}

@media (max-width:900px){
  .header-inner{ height:68px; }
  .brand-mark{ height:38px; }
  .burger{ display:block; }
  .nav{
    position:fixed; inset:68px 0 auto 0; flex-direction:column; align-items:stretch; gap:2px;
    background:#fff; border-bottom:1px solid var(--line); padding:14px 20px 22px;
    box-shadow:0 24px 50px rgba(7,31,58,.14);
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:transform .3s var(--ease), opacity .25s var(--ease);
    max-height:calc(100dvh - 68px); overflow:auto;
  }
  .nav.open{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ padding:14px 6px; font-size:1rem; border-bottom:1px solid var(--line-soft); border-radius:0; }
  .nav a::after{ display:none; }
  .nav .nav-cta{ margin:14px 0 0; text-align:center; padding:14px; border-bottom:0; }
}

@media (max-width:720px){
  /* Le tableau des bases légales devient une pile de blocs :
     3 colonnes ne tiennent pas sur un téléphone, et un défilement
     horizontal passe inaperçu. */
  .table-scroll{ overflow-x:visible; }
  .legal-table{ min-width:0; display:block; }
  .legal-table thead{ display:none; }
  .legal-table tbody, .legal-table tr, .legal-table td{ display:block; width:100%; }
  .legal-table tr{
    border:1px solid var(--line); border-radius:var(--r);
    padding:6px 16px 12px; margin-bottom:14px; background:#fff;
  }
  .legal-table td{ border:0; padding:10px 0 0; }
  .legal-table td::before{
    content:attr(data-label); display:block; margin-bottom:4px;
    font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    color:var(--teal-deep);
  }

  .section{ padding-block:clamp(40px, 9vw, 54px); }
  .cards-3, .markets, .people, .pillars, .two{ grid-template-columns:1fr; }
  .domain{ grid-template-columns:1fr; gap:10px; padding:26px 0; }
  .domain-index{ font-size:1.6rem; }
  .cta-band{ flex-direction:column; align-items:flex-start; }
  .cta-band .btn{ width:100%; }
  .person{ flex-direction:column; gap:18px; }
  .person-avatar{ width:64px; height:64px; border-radius:16px; font-size:1.15rem; }
  .person-photo{ width:140px; }
  .person-photo .person-initials{ font-size:1.6rem; }
  .hero-actions .btn{ flex:1 1 100%; }
  .hero-marks{ flex-direction:column; gap:10px; }
  .footer-inner{ grid-template-columns:1fr; gap:32px; }
}

@media print{
  .site-header, .burger, .lang, .hero-visual, .form, .cta-band{ display:none !important; }
  body{ color:#000; }
  .section-dark, .hero{ background:#fff !important; color:#000 !important; }
}
