﻿:root { --title-font: "Exo", sans-serif; --body-font: "Fira Sans", sans-serif; }
*,*::before,*::after { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-padding-top:100px; }
body { margin:0; overflow-wrap:break-word; }
img { max-width:100%; height:auto; }
iframe { width:100%; max-width:100%; }
a,button,input,select,textarea { touch-action:manipulation; }
:focus-visible { outline:3px solid #125fa2 !important; outline-offset:4px; }
.footer-wrapper :focus-visible { outline-color:#fff !important; }
.skip-link { position:fixed; z-index:100000; left:12px; top:12px; padding:12px 20px; background:#fff; color:#12244a; transform:translateY(-180%); }
.skip-link:focus { transform:none; }
main:focus { outline:none; }
.preloader { display:none !important; }
.mobile-menu-open { overflow:hidden; }
.hero-intro { padding:clamp(40px,6vw,88px) 0; background:#0b2545; color:#fff; }
.hero-intro .container { max-width:1200px; }
.hero-intro h1 { color:#fff; max-width:850px; font-size:clamp(30px,4.3vw,56px); line-height:1.15; }
.hero-intro p { color:#edf2fa; max-width:760px; font-size:18px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.hero-actions .secondary-link { color:#fff; text-decoration:underline; padding:14px; }
.vs-hero-carousel h2 { margin:0; }
.vs-hero-carousel { overflow:hidden; }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 24px; padding:20px; background:#0b1730; }
.footer-legal a,.footer-legal button { color:#fff; font:inherit; text-decoration:underline; background:none; border:0; min-height:44px; padding:8px; }
.mobile-cta { display:none; }
.contact-box__form label { display:block; font-weight:600; color:#14213b; margin-bottom:8px; }
.contact-box__form input,.contact-box__form select,.contact-box__form textarea { width:100%; border:1px solid #64748b; color:#15223a; background:#fff; padding:12px; }
.contact-box__form textarea { min-height:160px; }
.contact-box__form [aria-invalid="true"],.contact-box__form .input-validation-error { border:2px solid #a21425; }
.field-error,.validation-summary-errors,.form-feedback:not(:empty) { color:#9f1424; font-weight:500; }
.field-error { display:block; margin-top:6px; }
.form-feedback p { color:inherit; }
.form-feedback:empty,.validation-summary-valid { display:none; }
.form-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-captcha { padding:20px; background:#f6f8fb; border:1px solid #d2dbe6; border-radius:6px; }
.contact-captcha__challenge { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:14px; }
.contact-captcha__challenge img { flex-shrink:0; width:180px; height:50px; border:1px solid #c4cfdd; border-radius:4px; background:#fff; }
.contact-captcha__refresh { min-height:44px; padding:10px 14px; border:1px solid #a8b8cc; border-radius:4px; color:#15345b; background:#fff; font:inherit; cursor:pointer; }
.contact-captcha__refresh:hover { background:#eaf0f7; }
.contact-captcha__refresh:disabled { opacity:.6; cursor:wait; }
.contact-captcha [data-captcha-input] { max-width:240px; margin-bottom:8px; letter-spacing:.16em; }
.contact-captcha p { margin:8px 0 0; font-size:14px; line-height:1.6; color:#526176; }
.contact-captcha__status:empty { display:none; }
[data-submit]:disabled { opacity:.65; cursor:wait; }
.map-placeholder { padding:32px; background:#edf2f8; border:1px solid #b9c7d8; border-radius:8px; }
.consent-banner { position:fixed; z-index:10000; bottom:0; left:0; right:0; max-height:65dvh; overflow:auto; padding:20px max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); background:#fff; color:#14213b; box-shadow:0 -4px 25px #0003; display:flex; flex-wrap:wrap; align-items:center; gap:20px; }
.consent-banner>div:first-child { flex:1 1 480px; }
.consent-banner p { margin:4px 0; color:#26364c; }
.consent-pending { padding-bottom:calc(var(--consent-height,200px) + 16px) !important; }
input,textarea,select { scroll-margin-bottom:calc(var(--consent-height,0px) + 40px); }
.consent-actions { display:flex; flex-wrap:wrap; gap:10px; }
.consent-actions button { min-height:44px; padding:10px 16px; color:#fff; background:#15345b; border:1px solid #15345b; border-radius:4px; font:inherit; cursor:pointer; }
.consent-actions button:nth-child(2) { background:#fff; color:#15345b; }
dialog { width:min(600px,calc(100% - 32px)); max-height:85dvh; overflow:auto; border:1px solid #a1afc2; border-radius:10px; padding:24px; color:#14213b; }
dialog::backdrop { background:#07182dbb; }
.consent-option { display:flex; align-items:center; gap:12px; margin:20px 0; }
.consent-option input[type="checkbox"] { display:inline-block; appearance:auto; opacity:1; visibility:visible; position:static; width:24px; height:24px; margin:0; }
.legal-content { max-width:900px; }
.rich-content { min-width:0; overflow-wrap:anywhere; }
.rich-content table { display:block; max-width:100%; overflow-x:auto; }
.rich-content iframe,.rich-content video { max-width:100%; }
.legal-content h2 { font-size:26px; margin-top:32px; }
.draft-notice { border-left:4px solid #a65c00; background:#fff3df; color:#603400; padding:16px; }
.standalone { font:17px/1.6 "Segoe UI",Arial,sans-serif; background:#edf2f8; color:#14213b; }
.error-panel { width:min(700px,calc(100% - 40px)); margin:12vh auto; padding:32px; background:#fff; border-radius:12px; }
.standalone .vs-btn { display:inline-block; padding:14px 20px; background:#15345b; color:#fff; border-radius:4px; }
.entry-page { position:relative; isolation:isolate; min-height:100svh; background:#081b33; color:#fff; font:400 16px/1.65 "Fira Sans",sans-serif; -webkit-font-smoothing:antialiased; }
.entry-page::before { content:""; position:fixed; inset:0; z-index:-2; pointer-events:none; background:linear-gradient(180deg,#06162bc2 0%,#0a2343bd 55%,#06162bf0 100%),url("/Content/entry-background.webp") center / cover no-repeat; }
.entry-page::after { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; background-image:radial-gradient(ellipse at 12% 18%,#509ddf2b,transparent 48%),radial-gradient(ellipse at 90% 72%,#ffe9820d,transparent 42%),linear-gradient(#a5c9ed09 1px,transparent 1px),linear-gradient(90deg,#a5c9ed09 1px,transparent 1px); background-size:auto,auto,80px 80px,80px 80px; }
.entry-main { position:relative; width:min(1176px,100%); margin:auto; padding:40px 28px 28px; }
.entry-heading { max-width:900px; margin-inline:auto; text-align:center; }
.entry-eyebrow { display:inline-flex; align-items:center; margin:0 0 14px; padding:6px 14px; border:1px solid #ffffff2b; border-radius:30px; background:#ffffff08; font-size:12px; font-weight:500; letter-spacing:.16em; color:#d9e4f2; }
.entry-eyebrow span { padding:0 9px; color:#ffe982; }
.entry-main h1 { margin:0 0 20px; font:600 clamp(32px,4vw,52px)/1.13 "Exo",sans-serif; letter-spacing:-.025em; color:#fff; }
.entry-main h1 span { display:block; }
.entry-lead { margin:0 auto; max-width:760px; color:#dce6f3; font-size:17px; line-height:1.65; }
.entry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:30px 0 26px; }
.entry-card { position:relative; display:flex; flex-direction:column; min-width:0; border:1px solid #fff; border-radius:14px; padding:30px; background:#fff; color:#14213b; box-shadow:0 16px 44px #0000002b; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.entry-card:hover { transform:translateY(-4px); border-color:#ffe982; box-shadow:0 16px 42px #0003; }
.entry-card:has(.entry-card-link:focus-visible) { outline:3px solid #ffe982; outline-offset:5px; }
.entry-brand { position:relative; height:84px; margin-bottom:24px; overflow:hidden; --logo-scale:1; }
.entry-brand img { position:absolute; display:block; left:50%; top:50%; width:calc(var(--logo-width) * var(--logo-scale)); height:calc(var(--logo-height) * var(--logo-scale)); max-width:none; transform:translate(calc(var(--logo-x) * var(--logo-scale)),calc(var(--logo-y) * var(--logo-scale))); }
.entry-brand-operatif { --logo-width:250.746px; --logo-height:97.433px; --logo-x:-124.657px; --logo-y:-40.478px; }
.entry-brand-operator { --logo-width:275.410px; --logo-height:107.016px; --logo-x:-137.705px; --logo-y:-46.033px; }
.entry-card h2 { margin:0 0 14px; text-align:center; font:600 clamp(22px,2vw,26px)/1.3 "Exo",sans-serif; letter-spacing:-.015em; }
.entry-card-link { color:#14213b; text-decoration:none; }
.entry-card-link::after { content:""; position:absolute; inset:0; z-index:1; border-radius:inherit; cursor:pointer; }
.entry-card-link:focus-visible { outline:none !important; }
.entry-card-description { margin:0 auto 28px; max-width:46ch; text-align:center; color:#526176; line-height:1.7; min-height:3.4em; }
.entry-card-actions { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:stretch; margin-top:auto; }
.entry-primary,.entry-quote { display:flex; align-items:center; justify-content:center; gap:12px; min-height:50px; padding:12px 17px; border-radius:6px; font:500 15px/1.35 "Fira Sans",sans-serif; text-decoration:none; transition:background-color .2s ease,border-color .2s ease; }
.entry-primary { color:#fff; background:#15345b; border:1px solid #15345b; }
.entry-card:hover .entry-primary { background:#0b2545; }
.entry-quote { position:relative; z-index:2; color:#15345b; border:1px solid #bcc9d9; background:#fff; }
.entry-quote:hover { background:#f0f4f9; border-color:#15345b; }
.entry-primary svg { flex-shrink:0; }
.entry-primary svg { transition:transform .2s ease; }
.entry-card:hover .entry-primary svg { transform:translateX(3px); }
.entry-main>.footer-legal { border-radius:8px; background:transparent; border-top:1px solid #ffffff26; padding:14px 0 0; gap:8px 26px; }
.entry-main>.footer-legal a,.entry-main>.footer-legal button { color:#c8d6e7; text-decoration:none; font-size:13px; }
.entry-main>.footer-legal a:hover,.entry-main>.footer-legal button:hover { color:#fff; text-decoration:underline; }
.header-layout1 .menu-top .col { min-width:0; }
.header-logo .logo { display:block !important; width:100%; max-width:490px; height:auto; }
.vs-menu-wrapper .mobile-logo img { width:240px; max-width:100%; height:auto; }
.vs-menu-wrapper .vs-mean-expand { border:0; min-width:44px; min-height:44px; cursor:pointer; }
.main-menu>ul>li:focus-within>.sub-menu { opacity:1; visibility:visible; transform:none; }
.wow { visibility:visible !important; }
@media(max-width:767px) {
  body:has(.mobile-cta) { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .mobile-cta { display:block; position:fixed; z-index:900; bottom:0; left:0; right:0; padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); background:#fff; box-shadow:0 -2px 12px #0002; }
  .mobile-cta a { display:block; text-align:center; width:100%; }
  .consent-pending .mobile-cta,.mobile-menu-open .mobile-cta,body:has(dialog[open]) .mobile-cta,body:has(#contact-form) .mobile-cta { display:none; }
  .scrollToTop { bottom:calc(94px + env(safe-area-inset-bottom)); right:16px; }
  .header-info { max-width:100%; }
  .header-info_link { font-size:15px; }
  .header-logo .logo { max-width:220px; }
  .breadcumb-title { font-size:32px; overflow-wrap:anywhere; }
  .breadcumb-wrapper { padding:48px 0; }
  .contact-box { padding:24px 18px; }
  .entry-grid { grid-template-columns:1fr; }
  .entry-main { padding:28px 20px 24px; }
  .entry-page::before { background-position:65% center; }
  .entry-grid { gap:18px; margin-top:26px; }
  .entry-card { padding:24px; }
  .entry-brand { height:68px; margin-bottom:20px; --logo-scale:.875; }

  .entry-card-description { min-height:0; margin-bottom:24px; }
  .entry-card h2 { display:flex; align-items:center; justify-content:center; min-height:2.6em; }
  .entry-main h1 { font-size:clamp(30px,5.8vw,42px); }
  .entry-lead { font-size:16px; }
  .entry-desktop-break { display:none; }
  .entry-primary,.entry-quote { font-size:14px; padding:12px; gap:8px; }
  .hero-actions .vs-btn { width:100%; text-align:center; }
  .consent-banner { gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
  .vs-hero-carousel .ls-layer { transition:none !important; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .wow { opacity:1 !important; transform:none !important; }
}
