/* Shared refinement. Loaded after the existing page styles. */
.site-header,
.site-header.site-header--transparent {
    position: relative;
    inset: auto;
    background: transparent;
    border-bottom: 1px solid rgba(255,255,255,.14);
    box-shadow: none;
    backdrop-filter: none;
}
body { background: #fff; }
body:has(.site-header) { background-image: linear-gradient(#101f43, #101f43); background-size: 100% var(--header-height); background-repeat: no-repeat; }
.site-header__logo { margin: 0; }
.site-header { flex-shrink: 0; }
body[data-page="maintenance"] { background-color:#f4f7fb; }
body[data-page="maintenance"] .site-header { width:100%; }
body[data-page="maintenance"] .site-nav__dropdown { background:#fff; }
.site-header__inner { gap: 1.5rem; }
.site-header__actions { display: flex; }
.site-header__cta { display: inline-flex; }
.site-header .site-nav__list { justify-content: center; gap: .2rem; }
.site-header .site-nav__item:first-child { margin-left: 0; }
.site-header .site-nav__link { font-size: .78rem; padding-inline: .45rem; }
.site-header .site-nav { justify-content: center; }
.site-header :focus-visible { outline-color: #fff; outline-offset: 4px; }
.site-nav__dropdown :focus-visible { outline-color: var(--color-primary); }
.mobile-nav__header { background: #101f43; }
.mobile-nav__header .mobile-nav__close { color: #fff; }
/* The header occupies normal document space; only its background is shared with the hero. */
body[data-page="home"] .home-hero { margin-top: calc(-1 * var(--header-height)); }
main > :is(.about-hero,.activities-hero,.solutions-hero,.partners-hero,.realisations-hero,.news-hero,.contact-hero,.candidature-hero,.page-hero) {
    background: radial-gradient(ellipse at 85% 20%, #254d89 0, transparent 55%), linear-gradient(140deg,#101f43,#142958);
    color: #fff;
    border-bottom: 0;
    padding-block: clamp(3rem,6vw,5rem);
}
main > :is(.about-hero,.activities-hero,.solutions-hero,.partners-hero,.realisations-hero,.news-hero,.contact-hero,.candidature-hero,.page-hero) :is(h1,[class$="__title"]) { color: #fff; }
main > :is(.about-hero,.activities-hero,.solutions-hero,.partners-hero,.realisations-hero,.news-hero,.contact-hero,.candidature-hero,.page-hero) :is([class$="__lead"],[class$="__text"],.page-hero__description,.breadcrumb__link,.breadcrumb__current,.breadcrumb__item) { color: #dce5f5; }
main > :is(.about-hero,.activities-hero,.solutions-hero,.partners-hero,.realisations-hero,.news-hero,.contact-hero,.candidature-hero,.page-hero) [class$="__eyebrow"] { color: #ffaaa5; }
h1,h2 { text-wrap: balance; }
.section__description { max-width: 65ch; }
.btn { line-height: 1.25; }
.site-footer__tagline { max-width: 35ch; }
.equipment-partner-link { padding:2rem; background:var(--color-surface); border:1px solid var(--color-border); border-radius:1rem; align-self:center; }
.equipment-partner-link p { margin:1rem 0 1.5rem; color:var(--color-text-secondary); }
.equipment-partner-link { min-width:0; }
.equipment-partner-link .btn { white-space:normal; max-width:100%; }
.partners-intro__grid > * { min-width:0; }
main > :is(.about-hero,.activities-hero,.solutions-hero,.partners-hero,.realisations-hero,.news-hero,.contact-hero,.candidature-hero,.page-hero) :is([class*="__lead"],[class*="__text"],.page-hero__description) { color:#dce5f5; }
main > :is(.about-hero,.activities-hero,.solutions-hero,.partners-hero,.realisations-hero,.news-hero,.contact-hero,.candidature-hero,.page-hero) :is([class*="__eyebrow"],.section__eyebrow) { color:#ffaaa5; }
.about-hero__signature { background:#ffffff0d; border:1px solid #ffffff30; border-left:3px solid var(--color-accent); }
.about-hero__signature span { color:#dce5f5; }
.realisations-method .btn { margin-top:1.5rem; }
.realisations-method p { margin-top:1rem; max-width:65ch; }
@media (min-width: 1360px) {
    .site-header__inner { display: grid; grid-template-columns: 170px minmax(0,1fr) 170px; }
    .site-header__actions { justify-content: flex-end; }
    .site-header .site-nav { display: flex; }
    .site-header .menu-toggle { display: none; }
}
@media (max-width: 1359px) {
    .site-header .site-nav { display: none; }
    .site-header .menu-toggle { display: flex; }
    .site-header__actions { margin-left: auto; }
}
@media (max-width: 400px) {
    .site-header__inner { gap: .5rem; }
    .site-header__logo-img { max-width: 8rem; }
    .site-header__actions { gap: .4rem; }
    .site-header__cta { padding-inline: .65rem; }
}
@media (prefers-reduced-motion: reduce) {
    .btn { transition: none; }
}
