.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
html,body{overflow-x:clip}
.site-header{background:linear-gradient(180deg,rgba(3,21,37,.95),rgba(3,21,37,.58) 68%,transparent)}
.main-nav{font-size:.98rem;text-transform:uppercase}
.main-nav>a,.nav-group{position:relative;padding:.7rem .25rem}
.main-nav>a:not(.nav-cta)::after,.nav-group::after{content:"";position:absolute;left:.25rem;right:.25rem;bottom:.3rem;height:2px;background:var(--sky);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.main-nav>a:hover::after,.main-nav>a:focus-visible::after,.nav-group:hover::after,.nav-group:focus-within::after{transform:scaleX(1)}
.main-nav>a:hover,.main-nav>a:focus-visible,.nav-group:hover>a,.nav-group:focus-within>a{color:var(--sky)}
.nav-cta:hover,.nav-cta:focus-visible{background:#ff3546;box-shadow:0 0 0 4px rgba(237,28,46,.18)}
.nav-group{display:flex;align-items:center;gap:.3rem}
.submenu-toggle{display:inline-grid;place-items:center;width:24px;height:24px;margin:0;border:0;background:none;color:inherit;line-height:1;cursor:pointer;transform:translateY(-1px)}
.submenu{position:absolute;display:none;top:calc(100% - .1rem);right:0;width:330px;background:#fff;color:var(--ink);border-radius:3px;padding:.5rem;box-shadow:0 20px 55px rgba(0,0,0,.34);border-top:3px solid var(--blue)}
.nav-group:hover .submenu,.nav-group:focus-within .submenu{display:grid}
.submenu a{padding:.7rem .8rem;border-bottom:1px solid #e2ebf2;transition:.18s}
.submenu a:hover,.submenu a:focus-visible{background:#eaf5ff;color:#005fc5;padding-left:1rem}
.submenu a:last-child{border:0}
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,3vw,3.5rem);padding-top:40px;padding-bottom:40px}
.hero h1{font-size:clamp(3.9rem,6.6vw,7.35rem);max-width:760px}
.hero-copy{position:relative;z-index:3}
.hero-visual{min-height:650px;overflow:visible;isolation:isolate}
.island-map{inset:-9% -22% auto auto;width:145%;max-width:none;height:auto;aspect-ratio:3/2;object-fit:contain;opacity:.7;mix-blend-mode:normal;filter:saturate(1.06);z-index:0}
.vehicle-track{position:absolute;inset:auto -9% 6% 0;height:68%;display:flex;align-items:flex-end;justify-content:flex-end;animation:float 4s ease-in-out infinite;z-index:1}
.hero-van{width:112%;height:100%;max-width:none;object-fit:contain;object-position:right bottom;transform:none;filter:drop-shadow(0 32px 28px rgba(0,0,0,.48))}
.route-label-a{left:11%;top:28%;z-index:2}.route-label-b{right:2%;top:18%;z-index:2}
.sector-marquee{width:100%;margin-left:0}
@media(max-width:1100px){.main-nav{gap:17px}.brand{width:220px}.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero h1{font-size:clamp(3.7rem,6.5vw,6.2rem)}}
@media(max-width:980px){.main-nav{text-transform:uppercase}.main-nav>a,.nav-group{padding:.75rem}.main-nav>a:not(.nav-cta)::after,.nav-group::after{display:none}.nav-group{display:block}.submenu-toggle{position:absolute;right:.65rem;top:.72rem}.submenu{position:static;width:100%;margin-top:.45rem}.hero{grid-template-columns:1fr;padding-top:96px}.hero h1{max-width:820px}.hero-visual{min-height:500px;margin-top:0}.vehicle-track{inset:auto -2% 0 7%;height:92%}.hero-van{width:108%;max-width:760px}.island-map{inset:-5% -6% auto auto;width:min(108%,760px)}}
@media(max-width:640px){.site-header{background:rgba(3,21,37,.96)}.hero{padding-top:92px;padding-bottom:32px;gap:1.5rem}.hero h1{font-size:clamp(3.35rem,15vw,4.35rem);line-height:.96}.hero-visual{min-height:320px;margin-top:0;overflow:hidden}.island-map{inset:-4% auto auto -3%;width:106%;opacity:.58}.vehicle-track{inset:auto 0 2% 7%;height:74%;overflow:visible}.hero-van{width:108%;height:100%;object-fit:contain;object-position:center bottom}.route-label-a{left:4%;top:23%}.route-label-b{right:3%;top:12%}}
.hero h1{line-height:.91}.hero-actions{margin-top:2.1rem}
.submenu-toggle svg{display:block;width:16px;height:16px;overflow:visible}.submenu-toggle path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.footer-brand{display:grid;justify-items:start;align-content:start;gap:.8rem}.footer-brand .footer-logo{width:min(100%,320px);height:auto;object-fit:contain}.footer-brand p{margin:0}
.funding{align-items:center;gap:2rem}.funding-logos{display:flex;align-items:center;gap:1rem;flex:0 0 auto}.funding-logos a{display:block}.funding .region-logo{width:150px;height:72px;object-fit:contain;background:#fff;border-radius:3px;padding:.45rem}.funding .eu-logo{width:210px;height:72px;object-fit:contain;background:#fff;border-radius:3px;padding:.45rem}.funding>p{max-width:640px;margin:0;font-size:.82rem;line-height:1.5;color:#c4d2dc}
.back-to-top{position:fixed;right:22px;bottom:22px;z-index:90;width:52px;height:52px;padding:0;border:0;border-radius:50%;background:rgba(3,21,37,.92);color:var(--sky);box-shadow:0 12px 35px rgba(0,0,0,.38);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:.25s}.back-to-top.visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover,.back-to-top:focus-visible{background:#062944;box-shadow:0 0 0 4px rgba(72,199,255,.18),0 12px 35px rgba(0,0,0,.38)}.back-progress,.back-arrow{position:absolute;inset:0;width:100%;height:100%}.back-track,.back-value{fill:none;stroke-width:2}.back-track{stroke:rgba(72,199,255,.2)}.back-value{stroke:var(--sky);stroke-linecap:round;stroke-dasharray:132;stroke-dashoffset:calc(132 - 132 * var(--scroll-progress,0));transform:rotate(-90deg);transform-origin:50% 50%}.back-arrow{inset:14px;width:24px;height:24px}.back-arrow path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:641px) and (max-width:980px){.hero{gap:1rem}.hero h1{line-height:.94}.hero-actions{margin-top:2rem}.hero-visual{min-height:390px}.island-map{width:min(78%,560px);right:8%}.vehicle-track{inset:auto 8% 6% 24%;height:64%}.route-label-a{left:12%;top:24%}.route-label-b{right:8%;top:12%}}
@media(max-width:760px){.funding{align-items:flex-start}.funding-logos{width:100%;flex-wrap:wrap}.funding .region-logo,.funding .eu-logo{height:68px}.back-to-top{right:14px;bottom:14px}}

.cookie-settings{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.cookie-settings:hover,.cookie-settings:focus-visible{color:var(--sky)}
.cookie-banner{position:fixed;left:50%;bottom:22px;z-index:120;width:min(920px,calc(100% - 32px));transform:translateX(-50%);padding:1.5rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;background:#031525;color:#fff;border:1px solid rgba(72,199,255,.42);border-top:3px solid var(--sky);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.cookie-banner[hidden]{display:none}.cookie-banner h2{margin:.15rem 0 .55rem;font-family:var(--display);font-size:2rem;text-transform:uppercase}.cookie-banner p{margin:0;max-width:650px;color:#c4d2dc;line-height:1.55}.cookie-banner a{display:inline-block;margin-top:.65rem;color:var(--sky);text-decoration:underline}.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.cookie-actions .button{min-width:145px}
@media(max-width:760px){.cookie-banner{bottom:10px;padding:1.2rem;grid-template-columns:1fr;gap:1rem}.cookie-actions{justify-content:stretch}.cookie-actions .button{flex:1 1 140px}}

/* Ajustements demandés le 23/09 : typographie, alignements et médias. */
.brand{width:clamp(190px,18vw,250px);flex:0 0 auto}
.brand img{image-rendering:auto;object-fit:contain}
.brand-btob{text-transform:none;white-space:nowrap}
.pillar p,.reason p,.page-hero>p,.story-copy p,.commitment-grid p,.legal-copy p,.service-detail-copy>p:not(.eyebrow),.large-copy,.detail-section p,.detail-section li,.mini-card-grid p{text-align:justify;hyphens:none;text-wrap:pretty}
.island-map{mask-image:none;-webkit-mask-image:none}
.reasons{align-items:center}
.reasons .section-heading{text-align:center;align-self:center}
.reason p{font-size:1.05rem;line-height:1.75}
.trust-intro{max-width:1180px;margin-inline:auto;text-align:center}
.trust h2{text-wrap:balance}
.sector-track article{width:320px;min-height:230px;padding:1.4rem;align-content:center;justify-items:center;gap:.85rem;text-align:center}
.sector-track article img{width:58px;height:58px;object-fit:contain;filter:brightness(0) invert(1);opacity:.96}
.sector-track strong{font-size:1.45rem;text-wrap:balance}
.sector-track span{font-size:1rem;line-height:1.55;text-wrap:balance}
.trade-page-hero{text-align:center}
.trade-page-hero h1{max-width:none;text-wrap:balance}
.trade-page-hero h1 span{display:block}
.trade-page-hero>p{max-width:900px;margin:2rem auto 0!important;font-size:1.2rem!important;line-height:1.75}
.story-copy p{font-size:1.22rem;line-height:1.75}
.commitment-grid p{line-height:1.7}
.service-detail-hero{align-items:center}
.service-detail-copy>p:not(.eyebrow){line-height:1.75}
.service-hero-media{width:100%;height:min(62vh,620px);overflow:hidden;border-radius:3px}
.service-hero-media img{width:100%;height:100%;object-fit:cover}
.service-title-prefix,.service-title-suffix{display:block}
.service-title-suffix{margin-top:.18em;font-size:.58em;line-height:1.08;letter-spacing:-.02em;text-transform:none}
.large-copy{font-size:1.2rem;line-height:1.75}
.detail-section p,.detail-section li,.mini-card-grid p{font-size:1.05rem;line-height:1.7}
.service-detail-hero--tournee-programmee .service-hero-media img{object-position:center center;transform:none}
.gallery-card[href$="/tournee-programmee"] h2{font-size:clamp(1.9rem,3.25vw,3.45rem);line-height:1;text-wrap:balance}
.service-detail-hero--tournee-programmee h1{font-size:clamp(2.9rem,5.4vw,5.8rem)}

@media(max-width:980px){
  .trade-page-hero{text-align:center}
  .service-hero-media{height:420px}
  .sector-track article{width:280px;min-height:220px}
}
@media(max-width:640px){
  .brand{width:190px}
  .hero h1{font-size:clamp(3.2rem,14vw,4.15rem)}
  .reasons .section-heading{text-align:left}
  .trust-intro{text-align:left}
  .sector-track article{width:250px;min-height:215px}
  .service-hero-media{height:320px}
  .service-title-suffix{font-size:.62em}
  .gallery-card[href$="/tournee-programmee"] h2{font-size:2.15rem}
  .pillar p,.reason p,.page-hero>p,.story-copy p,.commitment-grid p,.legal-copy p,.service-detail-copy>p:not(.eyebrow),.large-copy,.detail-section p,.detail-section li,.mini-card-grid p{text-align:left}
}

/* Pages légales : lecture, navigation et impression. */
.legal-copy{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:clamp(3rem,6vw,6rem) 0;display:grid;gap:1.25rem}
.legal-copy article{scroll-margin-top:110px;padding:clamp(1.5rem,3vw,2.5rem);background:#fff;border:1px solid #dce7ef;border-left:4px solid var(--blue);box-shadow:0 14px 40px rgba(3,21,37,.07)}
.legal-copy h2{margin:0 0 1.1rem;font-family:var(--display);font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05;text-transform:uppercase;color:var(--ink)}
.legal-copy h3{margin:1.7rem 0 .55rem;font-size:1.15rem;color:var(--blue)}
.legal-copy p{max-width:none;margin:.8rem 0;line-height:1.75;color:#3f4d59}
.legal-copy a{color:#006bc7;text-decoration-thickness:1px;text-underline-offset:3px}
.legal-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem 2rem;margin:1.2rem 0;padding:1.2rem 1.4rem;background:#f3f8fc;border-radius:3px;color:#344653}
.legal-toc{display:flex;flex-wrap:wrap;gap:.55rem;padding:1.25rem;background:#031525;border-top:3px solid var(--sky);box-shadow:0 14px 40px rgba(3,21,37,.16)}
.legal-toc .eyebrow{flex:0 0 100%;margin:0 0 .2rem;color:var(--sky);text-align:left}
.legal-toc a{padding:.55rem .75rem;background:rgba(255,255,255,.08);color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.14);transition:.18s}
.legal-toc a:hover,.legal-toc a:focus-visible{background:var(--sky);border-color:var(--sky);color:#031525}
.legal-toc--articles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.legal-toc--articles .eyebrow{grid-column:1/-1}
.legal-article p:first-of-type{margin-top:0}
.cookie-settings-inline{margin-top:1rem;color:var(--ink);border-color:#9ab2c4}
.form-privacy{margin:1rem 0 0;font-size:.86rem;line-height:1.55;color:#60717e}
.form-privacy a{color:#006bc7;text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.legal-copy{width:min(100% - 24px,1120px);padding:2.5rem 0}.legal-copy article{padding:1.25rem}.legal-details,.legal-toc--articles{grid-template-columns:1fr}.legal-toc a{width:100%}.legal-copy h2{font-size:1.85rem}}
@media print{.site-header,.site-footer,.cookie-banner,.back-to-top,.legal-toc{display:none!important}.page-hero{min-height:0;padding:2rem 0;background:#fff!important;color:#000!important}.legal-copy{width:100%;padding:0}.legal-copy article{break-inside:avoid;box-shadow:none;border:0;border-top:1px solid #bbb;padding:1.25rem 0}.legal-copy p{color:#000}}
