:root{
  --navy:#000020;
  --blue-900:#00153a;
  --blue-800:#002050;
  --blue-700:#003a75;
  --blue-600:#005090;
  --blue-500:#0070B0;
  --gray-50:#F7F9FC;
  --gray-100:#EFF3F8;
  --gray-200:#DCE5F0;
  --gray-300:#B8C6D9;
  --gray-400:#667085;
  --gray-500:#475467;
  --gray-700:#223046;
  --white:#fff;

  --font-display:'Outfit', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --font-body:'DM Sans', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  --shadow-sm:0 1px 3px rgba(0,0,32,.10);
  --shadow-md:0 10px 30px rgba(0,0,32,.12);
  --shadow-lg:0 18px 60px rgba(0,0,32,.18);

  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:22px;
  --radius-xl:30px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{
  font-family:var(--font-body);
  color:var(--gray-700);
  background:var(--white);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;color:var(--navy)}
.section{padding:110px 0}
.section.alt{background:var(--gray-50)}
.section-label{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);
  font-weight:700;font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--blue-500);margin-bottom:14px
}
.section-label:before{content:"";width:28px;height:2px;background:var(--blue-500);border-radius:2px}
.section-title{font-size:clamp(2rem,3.8vw,3rem);margin-bottom:18px}
.section-subtitle{max-width:760px;color:var(--gray-500);font-size:1.08rem;line-height:1.85}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-display);font-weight:700;font-size:.95rem;
  padding:14px 26px;border-radius:var(--radius-sm);
  border:1.5px solid transparent;cursor:pointer;
  transition:.25s ease;
  user-select:none;
}
.btn-primary{background:var(--blue-600);color:var(--white)}
.btn-primary:hover{background:var(--blue-700);transform:translateY(-1px);box-shadow:0 14px 40px rgba(0,80,144,.18)}
.btn-outline{background:transparent;color:var(--navy);border-color:rgba(0,32,80,.18)}
.btn-outline:hover{border-color:rgba(0,32,80,.35);background:rgba(0,80,144,.04)}

.badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 14px;border-radius:999px;
  font-family:var(--font-display);
  font-size:.85rem;font-weight:600;
  background:rgba(0,112,176,.10);
  border:1px solid rgba(0,112,176,.18);
  color:var(--blue-500);
}

.card{
  background:var(--white);
  border:1px solid var(--gray-200);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  transition:.25s ease;
}
.card:hover{border-color:rgba(0,112,176,.28);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card.pad{padding:34px}
.grid{display:grid;gap:22px}

.navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(0,0,32,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.nav-inner{height:78px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;position:relative}
.nav-logo{display:flex;align-items:center;gap:12px;min-width:200px}
.nav-logo img{height:44px;width:auto}
.navbar .nav-logo img{background:rgba(255,255,255,.92);border-radius:12px;padding:6px}
.nav-logo-text{font-family:var(--font-display);font-weight:800;color:var(--white);line-height:1.2}
.nav-logo-text span{display:block;font-weight:500;font-size:.72rem;color:rgba(255,255,255,.60);letter-spacing:.05em}
.nav-links{display:flex;align-items:center;justify-content:center;gap:6px;list-style:none;min-width:0}
.nav-links a{
  font-family:var(--font-display);
  font-weight:600;
  font-size:.88rem;
  color:rgba(255,255,255,.74);
  padding:8px 12px;border-radius:10px;
  transition:.25s ease
}
.nav-links a:hover,.nav-links a.active{background:rgba(255,255,255,.10);color:var(--white)}
.nav-right{display:flex;align-items:center;gap:10px}

/* Language switch */
.lang-switch{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:40px;padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.86);
  font-family:var(--font-display);
  font-weight:800;
  font-size:.82rem;
  background:rgba(255,255,255,.06);
  transition:.2s ease;
}
.lang-switch:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.26)}
.nav-right{white-space:nowrap}
.nav-phone{
  font-family:var(--font-display);
  font-weight:700;font-size:.9rem;
  color:rgba(255,255,255,.82);
  padding:9px 12px;border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
}
.nav-phone:hover{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.04)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{width:24px;height:2px;background:var(--white);border-radius:2px;transition:.25s ease}

.hero{
  position:relative;min-height:88vh;
  background:linear-gradient(180deg, rgba(0,32,80,.92), rgba(0,0,32,.98));
  display:flex;align-items:center;overflow:hidden
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 50% at 70% 30%, rgba(0,112,176,.22) 0%, transparent 55%),
    radial-gradient(ellipse 60% 60% at 10% 80%, rgba(0,80,144,.25) 0%, transparent 52%);
  z-index:1
}
.hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:68px 68px;
  z-index:1
}
.hero-content{position:relative;z-index:2;padding-top:78px;max-width:760px}
.hero h1{color:var(--white);font-size:clamp(2.4rem,5.2vw,4.2rem);font-weight:900;margin:18px 0 18px}
.hero p{color:rgba(255,255,255,.70);font-size:1.12rem;line-height:1.9;max-width:640px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.hero-slogan{margin-top:26px;padding-top:18px;border-top:1px solid rgba(255,255,255,.10);max-width:520px}
.hero-slogan .l1{color:rgba(255,255,255,.92);font-family:var(--font-display);font-weight:800}
.hero-slogan .l2{color:rgba(255,255,255,.62);margin-top:6px;font-weight:600}

.pills{display:flex;gap:10px;flex-wrap:wrap}
.pill{
  display:inline-flex;align-items:center;
  padding:8px 12px;border-radius:999px;
  border:1px solid var(--gray-200);
  background:var(--white);
  color:var(--gray-500);
  font-family:var(--font-display);
  font-weight:700;
  font-size:.85rem;
}
.pill:hover{border-color:rgba(0,112,176,.30);background:rgba(0,112,176,.04)}

.icon-card{padding:28px}
.icon{
  width:52px;height:52px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,112,176,.10);
  border:1px solid rgba(0,112,176,.18);
  color:var(--blue-500);
  font-size:1.3rem;
  margin-bottom:16px;
}
.icon svg{width:28px;height:28px;display:block}

.list{display:grid;gap:12px;list-style:none}
.list li{display:flex;gap:10px;align-items:flex-start;color:var(--gray-500)}
.list li .dot{width:22px;height:22px;border-radius:50%;background:rgba(0,112,176,.12);display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--blue-500);font-weight:900}

.split{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}

.form-wrap{padding:34px}
.form-tabs{display:flex;gap:4px;background:var(--gray-50);padding:4px;border-radius:12px;margin-bottom:18px;border:1px solid var(--gray-200)}
.form-tab{flex:1;border:none;background:transparent;padding:12px;border-radius:10px;font-family:var(--font-display);font-weight:800;color:var(--gray-400);cursor:pointer}
.form-tab.active{background:var(--white);color:var(--navy);box-shadow:var(--shadow-sm)}
.form-group{margin-bottom:14px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label{display:block;font-family:var(--font-display);font-weight:800;font-size:.84rem;color:var(--gray-500);margin-bottom:6px}
input,select,textarea{
  width:100%;padding:12px 14px;border-radius:12px;
  border:1.5px solid var(--gray-200);
  font-family:var(--font-body);
  font-size:.95rem;
  outline:none;
}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:rgba(0,112,176,.55);box-shadow:0 0 0 3px rgba(0,112,176,.12)}
.form-submit{width:100%}
.form-feedback{display:none;padding:12px 14px;border-radius:12px;margin:12px 0;font-weight:700}
.form-feedback.success{display:block;background:#ECFDF5;border:1px solid #A7F3D0;color:#065F46}
.form-feedback.error{display:block;background:#FEF2F2;border:1px solid #FECACA;color:#991B1B}
.form-honeypot{position:absolute;left:-9999px}

.file-upload{position:relative;border:2px dashed var(--gray-200);border-radius:16px;padding:22px;text-align:center;cursor:pointer;transition:.2s ease;margin-bottom:12px;background:var(--white)}
.file-upload:hover{border-color:rgba(0,112,176,.40);background:rgba(0,112,176,.03)}
.file-upload.has-file{border-color:#10b981;background:rgba(16,185,129,.04)}
.file-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.file-upload .hint{font-size:.8rem;color:var(--gray-400)}
.file-upload .name{font-weight:800;color:#065f46}

.footer{
  background:rgba(0,0,32,.98);
  color:rgba(255,255,255,.70);
  padding:70px 0 0
}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:34px;padding-bottom:44px}
.footer h5{color:rgba(255,255,255,.92);font-family:var(--font-display);font-size:.9rem;margin-bottom:14px}
.footer-links{list-style:none;display:grid;gap:10px}
.footer-links a:hover{color:var(--white)}
.footer-contact{display:grid;gap:10px;font-size:.92rem}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding:18px 0;
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap
}
.small{font-size:.86rem;color:rgba(255,255,255,.55)}
.footer-badges{display:flex;gap:10px;flex-wrap:wrap}
.footer-badge{padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);font-family:var(--font-display);font-weight:700;font-size:.74rem;color:rgba(255,255,255,.62)}

/* Cookie notice (RGPD - cookies techniques) */
.cookiebar{position:fixed;left:16px;right:16px;bottom:16px;z-index:2000;display:none}
.cookiebar .inner{max-width:1100px;margin:0 auto;background:rgba(0,0,32,.94);border:1px solid rgba(255,255,255,.10);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:16px;padding:14px 16px;display:flex;gap:14px;align-items:flex-start;justify-content:space-between;box-shadow:var(--shadow-lg)}
.cookiebar p{color:rgba(255,255,255,.75);font-size:.9rem;line-height:1.5;margin:0}
.cookiebar a{color:rgba(255,255,255,.92);text-decoration:underline}
.cookiebar .actions{display:flex;gap:10px;flex-shrink:0}
.cookiebar .btn-mini{padding:10px 14px;border-radius:12px;font-family:var(--font-display);font-weight:800;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);cursor:pointer}
.cookiebar .btn-mini.primary{background:var(--blue-500);border-color:rgba(0,112,176,.55)}

.reveal{opacity:1;transform:none}
.js-ready .reveal{opacity:0;transform:translateY(18px);transition:.7s cubic-bezier(.16,1,.3,1)}
.js-ready .reveal.visible{opacity:1;transform:none}

@media (max-width: 1024px){
  .split{grid-template-columns:1fr;gap:26px}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 1180px){
  .nav-logo{min-width:170px}
  .nav-links a{font-size:.84rem;padding:8px 10px}
  .btn{padding:13px 18px}
}
@media (max-width: 860px){
  .nav-links{display:none;position:absolute;top:78px;left:0;right:0;background:rgba(0,0,32,.97);flex-direction:column;padding:14px 18px;border-top:1px solid rgba(255,255,255,.06)}
  .nav-links.open{display:flex}
  .nav-toggle{display:flex}
  .nav-logo{min-width:auto}
  .nav-right{gap:8px}
  .lang-switch{display:none}
  .nav-phone{display:none}
}
@media (max-width: 620px){
  .form-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%}
}

.hidden{display:none!important}

.hero .badge{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.86)}

.anchor{position:relative;top:-90px;height:0;}

.turnstile{margin:14px 0 6px}

.lang-item{margin-top:6px}
.lang-link{font-weight:800 !important;color:rgba(255,255,255,.92) !important}
