/* Responsive and editorial refinements, shared across all pages. */
/* Reading comfort: scoped to editorial content, never to brand lockups. */
.detail-body p,.download-card p,.principle p{font-size:16px;line-height:1.7}
.detail-body p{max-width:62ch}
.hero-lede,.inner-hero-lede{font-size:17px;line-height:1.7;max-width:60ch}
.contact-copy>p:not(.eyebrow){max-width:60ch;line-height:1.7}
.contact-form label{font-size:14px;line-height:1.5}
.contact-label{font-size:12px;line-height:1.5;letter-spacing:.08em}
.contact-form textarea{line-height:1.6;min-height:120px;resize:vertical}
.hero h1,.inner-hero h1,h2,.overview-card h3{text-wrap:balance}
.overview-card p,.detail-body p,.inner-hero-lede{overflow-wrap:break-word}
@media(hover:none){.home-overview .overview-card:hover{transform:none;box-shadow:none}}
.service-outcome .outcome-mark{font-size:20px;line-height:1.3;letter-spacing:.04em;max-width:100%;overflow-wrap:break-word}
.proof-brand-top{flex-wrap:wrap;gap:12px}
.proof-brand-top i{font-size:13px;line-height:1.4;letter-spacing:.04em;max-width:100%}
.skip-link{position:fixed;top:12px;left:12px;z-index:1000;padding:12px 20px;background:#0a2745;color:#fff;border-radius:6px;transform:translateY(-180%)}
.skip-link:focus{transform:none}
main:focus{outline:none}
.hero-bottom,.hero-bottom span:first-child{color:#526478;font-size:12px}
.alpha-brand i{color:#c7e5f5}
.sage-brand small{color:#435e6b}
.acronis-brand small{color:#365e7a}
.inner-hero h1 em{font-style:normal;color:#0b67a4}
.footer-nav a,.text-link{min-height:44px;display:inline-flex;align-items:center}
.back-top{width:44px;height:44px;flex-shrink:0}
.contact-form input,.contact-form textarea{border-bottom-color:#758796}
.download-card .download-file-info{font-size:13px;color:#526478;margin:14px 0 0}
.download-card{grid-template-columns:34% minmax(0,1fr);min-height:250px}
.download-thumb{height:100%;min-height:250px;max-height:310px}
.download-actions{flex-wrap:wrap;gap:8px 14px;padding-top:14px}
.download-card-body{min-width:0}
.topline a{display:inline-flex;align-items:center;min-height:24px}
@media(min-width:681px) and (max-width:980px){.download-card{grid-template-columns:180px minmax(0,1fr)}.download-thumb{max-height:280px}}
@media(max-width:680px){.topline-inner>a{display:none}.download-card{grid-template-columns:minmax(0,1fr)}.download-thumb{height:210px;min-height:210px}.download-actions .text-link{justify-content:center}}
.download-card .text-link{white-space:normal}
/* Keep content available even before a scroll animation is triggered. */
.js .reveal{opacity:1}
@media(max-width:1100px){html:not(.js) .menu-toggle{display:none}html:not(.js) .nav-wrap{flex-wrap:wrap}html:not(.js) .main-nav{display:flex;position:static;width:100%;max-height:none;box-shadow:none}}
@media(max-width:680px){.footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:4px 18px}.hero-proof{justify-content:flex-start}.hero-proof>div{flex:1 1 110px}.hero h1{overflow-wrap:break-word}.service-hero-label{text-align:left}.company-facts small{overflow-wrap:anywhere}}
/* Consistent service lists, including Conseil & intégration. */
.service-detail-section .detail-body ul{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;list-style:none;margin:0;padding:0}
.service-detail-section .detail-body li{position:relative;margin:0;padding-left:20px;font-size:16px;line-height:1.65;color:#172c40}
.service-detail-section .detail-body li::before{content:'';position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:#126caf}
/* Short homepage previews; full content lives on dedicated pages. */
.overview-heading{max-width:660px;margin-bottom:36px}
.overview-heading>p:last-child{color:#596773;line-height:1.7;margin-top:18px}
.overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.overview-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:30px;border:1px solid #dce4eb;border-radius:18px;background:#fff;text-decoration:none;color:#172c40;position:relative;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.overview-card:before{content:'';width:36px;height:3px;background:#126caf;border-radius:3px;margin-bottom:24px}
.overview-label{color:#12649e;font-size:12px;font-weight:700;letter-spacing:.06em}
.overview-card h3{font-size:24px;line-height:1.25;letter-spacing:-.025em;margin:18px 0 14px;max-width:280px}
.overview-card p{font-size:16px;line-height:1.65;color:#546270;margin:0 0 26px}
.overview-link{margin-top:auto;font-size:14px;font-weight:700;color:#0b609b;display:flex;align-items:center;gap:12px}
.overview-link:after{content:'↗';font-size:20px;transition:transform .25s}
.overview-card:hover{border-color:#81accb;box-shadow:0 14px 30px #183e6410;transform:translateY(-4px)}
.overview-card:hover .overview-link:after{transform:translate(2px,-2px)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #126caf;outline-offset:5px}
.home-overview{border-top:1px solid #e8edf1}
@media(max-width:1100px){.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.overview-grid{grid-template-columns:minmax(0,1fr);gap:16px}.overview-card{padding:26px}.overview-card h3{max-width:none;font-size:23px}}
/* Choreographed MPA transitions: the navigation remains an independent layer. */
@view-transition{navigation:auto}
.site-header{view-transition-name:alpha-navigation}
.topline{view-transition-name:alpha-topline}
main{view-transition-name:alpha-content}
main h1{view-transition-name:alpha-title}
.hero-lede,.inner-hero-lede{view-transition-name:alpha-introduction}
.main-nav a.active:not(.nav-cta){text-decoration:none!important}
.main-nav a.active:not(.nav-cta)::after{content:'';display:block;height:2px;background:#126caf;border-radius:2px;position:absolute;left:0;right:0;bottom:2px;view-transition-name:alpha-indicator}
.main-nav a:not(.nav-cta){position:relative}
@media(prefers-reduced-motion:no-preference){
 ::view-transition-group(*){animation-duration:.35s;animation-timing-function:cubic-bezier(.22,1,.36,1)}
 ::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
 ::view-transition-old(alpha-navigation),::view-transition-old(alpha-topline){animation:none;opacity:0}
 ::view-transition-new(alpha-navigation),::view-transition-new(alpha-topline){animation:none}
 ::view-transition-old(alpha-content),::view-transition-old(alpha-title),::view-transition-old(alpha-introduction){animation:alpha-exit .24s ease both}
 ::view-transition-new(alpha-content){animation:alpha-enter .35s cubic-bezier(.22,1,.36,1) both}
 ::view-transition-new(alpha-title){animation:alpha-enter .35s cubic-bezier(.22,1,.36,1) both}
 ::view-transition-new(alpha-introduction){animation:alpha-enter .35s cubic-bezier(.22,1,.36,1) both}
 ::view-transition-old(alpha-indicator),::view-transition-new(alpha-indicator){animation:none;mix-blend-mode:normal}
 @keyframes alpha-exit{to{opacity:0;transform:translateY(-6px)}}
 @keyframes alpha-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
 /* Entrance fallback also gives direct visits a deliberate rhythm. */
 .hero h1,.inner-hero h1{animation:alpha-enter .35s cubic-bezier(.22,1,.36,1) both}
 .hero-lede,.inner-hero-lede{animation:alpha-enter .35s cubic-bezier(.22,1,.36,1) both}
 .hero-actions,.inner-hero-index,.hero-visual{animation:alpha-enter .35s cubic-bezier(.22,1,.36,1) both}
}
/* Hero entrance is handled above, not by a second scroll animation. */
.js .hero .reveal,.js .inner-hero .reveal{opacity:1;transform:none;transition:none}
@media(max-width:1100px){.main-nav a.active:not(.nav-cta)::after{left:12px;right:auto;width:28px;view-transition-name:none}}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.overview-card,.overview-link:after{transition:none}.overview-card:hover{transform:none}.js .reveal{opacity:1;transform:none}}
.hero-inner{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px}
.hero{min-height:0;padding:72px 0 40px}
.hero h1{font-size:clamp(38px,4.3vw,62px);line-height:1.1;letter-spacing:-.045em}
h2{font-size:clamp(30px,3.4vw,46px);line-height:1.15}
.inner-hero h1{font-size:clamp(30px,3.2vw,44px);line-height:1.2;letter-spacing:-.03em;max-width:650px}
.brand .brand-logo-block{background:#0a2745;border:1px solid #0a2745;padding:9px 14px 10px;box-shadow:none;line-height:1;text-align:center}
.brand .brand-logo-block strong{font-family:Georgia,"Times New Roman",serif;font-size:30px;font-weight:400;letter-spacing:.03em;color:#fff}
.brand .brand-logo-block small{font-family:Arial,sans-serif;font-size:9px;letter-spacing:.2em;color:#fff;margin-top:5px}
.hero-logo-lockup{background:#0a2745;padding:12px 16px;text-align:center}
.hero-logo-lockup strong{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:#fff}
.hero-logo-lockup span{color:#fff}
.hero-proof{margin-top:32px;flex-wrap:wrap}.hero-bottom{margin-top:36px}
.service-hero-panel{height:auto;min-height:0;transform:none;padding:28px}
.service-hero-copy{margin-top:30px}.service-hero-copy strong{font-size:25px;line-height:1.3}
.service-hero-foot{position:static;margin-top:28px;gap:12px;flex-wrap:wrap;font-size:12px}
.service-hero-label,.eyebrow,.hero-trust span,.detail-kicker,.download-type{font-size:12px}
.service-hero-list div,.hero-proof span,.hero-trust,.client-name small,.company-facts small,.footer-bottom,.form-note{font-size:14px}
.service-icon{width:auto;height:auto;font-size:12px;min-height:30px}.service-index{color:#596a75}
.service-featured .service-index{color:#c4d2dc}
.service-hero-panel:before,.proof-brand-card:before,.proof-brand-card:after,.hero-grid,.contact-orb,.service-cta:after{display:none}
.proof-brand-card{min-height:0;transform:none;padding:28px}.proof-brand-lockup{margin-top:40px}.proof-brand-bottom{position:static;margin-top:28px;flex-wrap:wrap;gap:12px;font-size:12px}
.section{padding-block:76px}.principle-row{margin-top:48px}.principle-section .principle-row{margin-top:0}
.form-note,.contact-form input::placeholder,.contact-form textarea::placeholder,.footer-bottom{color:#626262}
.contact-details strong{overflow-wrap:anywhere}.contact-form input,.contact-form textarea{font-size:16px}
.footer-nav{flex-wrap:wrap;gap:16px}.footer-top{gap:24px}.nav-wrap{gap:24px}.brand{flex-shrink:0}
.main-nav a{white-space:nowrap}.main-nav a.active:not(.nav-cta){color:#0b67a4!important;background:transparent;border:0;border-radius:0;box-shadow:none;text-decoration:underline;text-underline-offset:8px;padding:10px 0!important}
.nav-cta:hover{background:#084d7d;color:#fff;border-color:#084d7d}
.main-nav a.active:not(.nav-cta){font-weight:700}
.detail-intro,.download-intro{row-gap:24px}.detail-intro>.eyebrow,.download-intro>.eyebrow{grid-column:1/-1;margin-bottom:0}
.service-hero-top,.service-hero-list,.contact-grid,.proof-grid,.clients-layout{min-width:0}
.company-facts strong,.client-name strong{overflow-wrap:break-word}
.download-hero-mark small{color:#626262}.download-thumb img{object-fit:contain}.download-thumb{background:#f4f4f4}
@media(max-width:1100px){
 .menu-toggle{display:flex;flex-direction:column;gap:6px;min-width:44px;min-height:44px;align-items:center;justify-content:center;cursor:pointer}
 .menu-toggle span{display:block;width:24px;height:2px;background:#151515}
 .main-nav{display:none;position:absolute;top:100%;left:16px;right:16px;padding:16px;background:#fff;border:1px solid #ddd;box-shadow:0 16px 32px #0001;border-radius:8px;gap:0;align-items:stretch;flex-direction:column;max-height:75vh;overflow:auto}
 .main-nav.open{display:flex}.main-nav a:not(.nav-cta),.main-nav .nav-download{color:#333!important;padding:12px!important;text-align:left;margin:0}
 .main-nav a:not(.nav-cta):hover{color:#0b67a4!important;background:#f4f6f8}
 .main-nav .nav-cta{background:#0b67a4;color:#fff!important;margin-top:8px;padding:12px;text-align:center}
 .main-nav a.active:not(.nav-cta){color:#0b67a4!important}
 .hero-inner,.detail-intro,.download-intro{grid-template-columns:minmax(0,1fr)}
 .hero-visual{min-height:0}.hero-copy{max-width:720px}.service-hero-panel{width:100%}
 .detail-row{grid-template-columns:40px minmax(0,1fr);gap:20px}.detail-title,.detail-brand-mark,.detail-body{grid-column:2}.detail-brand-mark{height:auto;min-height:100px}
 .detail-intro>.eyebrow,.download-intro>.eyebrow{grid-column:1/-1}.footer-top{flex-wrap:wrap}
}
@media(max-width:680px){
 .section{padding-block:52px}.hero{padding-top:44px}.hero-inner{gap:32px}.hero h1{font-size:36px}.inner-hero{padding:48px 0}.inner-hero h1{font-size:30px;line-height:1.2}
 .hero-proof{gap:20px}.hero-actions,.teaser-actions{flex-wrap:wrap}.button{min-height:44px}.service-hero-top{flex-wrap:wrap}.service-hero-copy strong{font-size:23px}
 .proof-brand-lockup strong{font-size:36px}.proof-brand-lockup span{letter-spacing:.12em}.company-profile-grid,.clients-layout{gap:28px}
 .brand-logo-block strong{font-size:26px}.brand-logo-block small{font-size:9px}.hero-logo-lockup span{font-size:11px}
 .hero-trust,.hero-trust span,.hero-proof span{font-size:13px}.teaser-card.offset{transform:none}.detail-body li{font-size:14px}
}
