/* iLemon 2026 — compléments au CSS de page : accessibilité, navigation mobile, sélecteur de langue. */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{font-family:'Satoshi',Arial,sans-serif;color:#101820;-webkit-font-smoothing:antialiased}
img,video{max-width:100%}
img[width][height]{height:auto}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* lien d'évitement */
.skip{position:absolute;left:16px;top:-80px;z-index:300;background:#101820;color:#fff;padding:12px 18px;border-radius:12px;font-weight:700;transition:top .2s}
.skip:focus{top:16px;color:#fff}

/* focus visible (jamais de jaune sur blanc) */
:focus-visible{outline:3px solid #425563;outline-offset:3px;border-radius:4px}
.hero-w :focus-visible,.m-menu :focus-visible{outline-color:#FEDB00}
a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}

/* sélecteur de langue */
.lang-sw{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:700;letter-spacing:.1em}
.lang-sw a{padding:7px 9px;border-radius:9px;color:#425563}
.lang-sw a::after{display:none}
.lang-sw a:hover{background:#ECEFF0;color:#101820}
.lang-sw a[aria-current]{background:#101820;color:#fff}
.hero-w header .lang-sw a{color:#fff}
.hero-w header .lang-sw a:hover{background:rgba(255,255,255,.18)}
.hero-w header .lang-sw a[aria-current]{background:#FEDB00;color:#101820}
@media (max-width:720px){header .lang-sw{display:none}}

/* menu mobile */
.ac-burger[aria-expanded="true"]{background:#101820!important;border-color:#101820!important}
.ac-burger[aria-expanded="true"] svg{stroke:#fff}
.m-menu{position:fixed;inset:0;z-index:200;background:#fff;display:flex;flex-direction:column;padding:28px clamp(20px,6vw,40px) 40px;overflow-y:auto}
.m-menu[hidden]{display:none!important}
.m-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px}
.m-top img{height:40px;width:auto;display:block}
.m-close{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;background:#101820;border:0;border-radius:14px;cursor:pointer}
.m-close svg{stroke:#fff}
.m-menu nav{display:flex;flex-direction:column;gap:6px}
.m-menu nav a{font-family:'Nevo',Arial,sans-serif;font-weight:700;letter-spacing:-.03em;font-size:34px;line-height:1.15;padding:10px 0;color:#101820;border-bottom:1px solid #D3DADF}
.m-menu nav a[aria-current]{background:linear-gradient(#FEDB00,#FEDB00) 0 62%/100% 38% no-repeat}
.m-menu nav a.m-cta{margin-top:22px;border:0;display:inline-flex;align-self:flex-start;align-items:center;gap:12px;padding:16px 24px;border-radius:14px;background:#425563;color:#fff;font-family:'Satoshi',Arial,sans-serif;font-size:18px;letter-spacing:0}
.m-lang{margin-top:auto;padding-top:36px;display:flex;gap:8px}
.m-lang a{padding:10px 16px;border-radius:12px;border:1.5px solid #D3DADF;font-weight:700;letter-spacing:.08em;color:#425563}
.m-lang a[aria-current]{background:#101820;border-color:#101820;color:#fff}
body.m-open{overflow:hidden}

/* formulaire */
#cform input,#cform textarea{font:inherit}
#cform input:focus,#cform textarea:focus{outline:3px solid #425563;outline-offset:2px}
#cform [data-err]{margin:0;padding:14px 16px;border-radius:14px;background:#ECEFF0;color:#101820;font-weight:500}
#cform button[type=submit][disabled]{opacity:.6;cursor:wait}
.rc-f{cursor:pointer}

/* largeur maximale du contenu : les fonds restent pleine largeur, le texte et les visuels se plafonnent
   et se centrent sur grand écran (27 pouces et plus). Le gabarit d'origine règle ses marges latérales
   par « clamp(20px, 4.4vw, 64px) » : on le complète sans toucher au HTML. */
:root{--content-max:1320px}
[style*="4.4vw, 64px)"]{
  padding-left:max(clamp(20px,4.4vw,64px),calc((100% - var(--content-max))/2))!important;
  padding-right:max(clamp(20px,4.4vw,64px),calc((100% - var(--content-max))/2))!important}
/* blocs de texte déjà plafonnés (accroche du diaporama d'accueil, page 404) : on décale seulement
   le bord gauche et on ajoute ce décalage à leur largeur maximale. */
.hs-body[style*="4.4vw, 64px)"]{
  padding-right:clamp(20px,4.4vw,64px)!important;
  max-width:calc(1040px + max(0px,(100% - var(--content-max))/2 - clamp(20px,4.4vw,64px)))!important}
section[style*="max-width: 980px"][style*="4.4vw, 64px)"]{
  padding-right:clamp(20px,4.4vw,64px)!important;
  max-width:calc(980px + max(0px,(100% - var(--content-max))/2 - clamp(20px,4.4vw,64px)))!important}

/* images : jamais de débordement */
figure{margin:0}

@media print{.m-menu,.ac-burger,.lang-sw,.skip{display:none!important}}

/* pastilles logo des cartes réalisations : même hauteur optique pour tous les clients */
.rc-card .ac-logo{height:44px!important;padding:0 14px!important}
.rc-card .ac-logo img{width:auto!important;height:auto!important;max-height:22px;max-width:92px}
.rc-card[data-case^="spie"] .ac-logo img{max-height:26px;max-width:70px}
.rc-card[data-case^="opmobility"] .ac-logo img{max-height:28px;max-width:112px}

/* film de présentation : lien discret (accueil) + fenêtre superposée */
.pv-line{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
.pv-open{display:inline-flex;align-items:center;gap:12px;padding:0;border:0;background:none;cursor:pointer;font:inherit;font-weight:700;font-size:17px;color:#101820}
.pv-open .pv-ico{width:44px;height:44px;border-radius:50%;background:#FEDB00;color:#101820;display:inline-flex;align-items:center;justify-content:center;flex:none;transition:transform .2s ease}
.pv-open .pv-ico svg{margin-left:2px}
.pv-open:hover .pv-ico{transform:scale(1.08)}
.pv-open .pv-lbl{background:linear-gradient(#FEDB00,#FEDB00) 0 92%/0 34% no-repeat;transition:background-size .25s ease}
.pv-open:hover .pv-lbl,.pv-open:focus-visible .pv-lbl{background-size:100% 34%}
.pv-dur{font-weight:500;color:#425563}
.pv-note{font-size:14px;color:#425563}
.pv-dlg{width:min(1200px,94vw);max-width:none;max-height:92vh;padding:0;border:0;border-radius:clamp(12px,1.6vw,22px);background:#101820;overflow:visible;color:#fff}
.pv-dlg::backdrop{background:rgba(16,24,32,.82)}
.pv-box{position:relative;border-radius:inherit;overflow:hidden;aspect-ratio:16/9}
.pv-box video{display:block;width:100%;height:100%;object-fit:contain;background:#101820}
.pv-x{position:absolute;right:12px;top:12px;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:rgba(16,24,32,.7);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.pv-x:hover{background:#101820}
.pv-dlg :focus-visible{outline-color:#FEDB00}
body.pv-on{overflow:hidden}
@media (prefers-reduced-motion:reduce){.pv-open .pv-ico,.pv-open .pv-lbl{transition:none}}

@media (min-width:720px){.nw{white-space:nowrap}}
