:root{
    --blue:#0a328a;
    --blue-2:#0b58cf;
    --gold:#f8b112;
    --cream:#f4f1e8;
    --white:#ffffff;
    --ink:#1e2d52;
    --muted:#5b6888;
    --line:#dcd4c5;
    --shadow:0 16px 34px rgba(10,50,138,.085);
    --serif:'DM Serif Display', Georgia, serif;
    --sans:'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.45}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.page-shell{width:min(1300px, calc(100% - 52px));margin:0 auto}
.site-header{background:rgba(255,255,255,.94);border-bottom:1px solid rgba(10,50,138,.08)}
.header-shell{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:6px 0}
.brand img{width:275px;max-width:34vw;min-width:220px}
.header-right{display:flex;align-items:center;gap:18px}
.main-nav{display:flex;align-items:center;gap:20px;font-size:14px;font-weight:800;color:var(--blue);white-space:nowrap}
.main-nav a,.lang-switch a{position:relative;padding:6px 0}
.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}
.main-nav a:hover::after,.main-nav a.active::after{transform:scaleX(1)}
.nav-highlight{color:var(--blue-2)}
.lang-switch{display:flex;align-items:center;gap:6px;border-left:1px solid rgba(10,50,138,.14);padding-left:16px}
.lang-switch a{font-size:12px;font-weight:800;color:#6a7898;padding:5px 7px;border-radius:8px}
.lang-switch a.active{background:#fff2cf;color:var(--blue)}
.cover-page{padding:4px 0 0}
.hero-cover{display:grid;grid-template-columns:minmax(430px, 1fr) minmax(420px, 520px);align-items:center;gap:34px;min-height:calc(100vh - 190px)}
.eyebrow{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:800;color:var(--blue-2);margin-bottom:8px}
.eyebrow::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--gold)}
h1{font-family:var(--serif);font-size:clamp(50px, 4.8vw, 72px);line-height:.94;font-weight:400;color:var(--blue);letter-spacing:-.03em;margin-bottom:10px}
h1 span{color:var(--gold)}
.blue-mark{width:76px;height:4px;border-radius:999px;background:var(--blue-2);margin:12px 0 14px}
.lead{font-size:clamp(15.5px,1.02vw,17px);color:#37466b;max-width:690px;margin-bottom:9px}
.lead strong{color:var(--blue-2)}
.lead-strong{font-size:clamp(16px,1.08vw,18px)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}
.btn{min-height:43px;padding:0 18px;border-radius:14px;font-size:15px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;border:2px solid transparent;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 20px 38px rgba(10,50,138,.13)}
.btn-primary{background:var(--blue);color:#fff}
.btn-outline{background:#fff;color:var(--blue);border-color:#b7c7ea}
.btn-gold{background:var(--gold);color:#10224b}
.hero-visual{position:relative;border-radius:28px;overflow:hidden;box-shadow:0 24px 52px rgba(10,50,138,.12);min-height:370px;background:#e7ecf6}
.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.photo-bubble{position:absolute;background:rgba(255,255,255,.92);border:1px solid rgba(10,50,138,.08);border-radius:20px;box-shadow:0 16px 40px rgba(10,50,138,.10);color:var(--blue)}
.top-bubble{top:20px;right:20px;padding:14px 16px;font-family:var(--serif);font-size:22px;line-height:1;max-width:220px}
.top-bubble strong{font-weight:400}
.bottom-bubble{left:20px;right:20px;bottom:18px;padding:14px 16px}
.bottom-bubble strong{display:block;font-size:16px;color:var(--blue);margin-bottom:4px}
.bottom-bubble span{display:block;font-size:13px;color:#2b467f;line-height:1.35}
.quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px;margin-bottom:8px}
.quick-card{background:#fff;border:1px solid rgba(10,50,138,.08);border-radius:20px;padding:15px 18px 13px;box-shadow:var(--shadow);min-height:88px;transition:transform .18s ease,box-shadow .18s ease}
.quick-card:hover{transform:translateY(-2px);box-shadow:0 20px 40px rgba(10,50,138,.10)}
.quick-card h2{font-size:19px;line-height:1.2;color:var(--blue);margin-bottom:6px;font-weight:800}
.quick-card p{font-size:14px;line-height:1.38;color:#556684;font-weight:500}
.site-footer{display:none}
@media (max-width:1280px){
    .page-shell{width:min(1220px, calc(100% - 44px))}
    .brand img{width:280px}
    .main-nav{gap:16px;font-size:13px}
    .header-right{gap:12px}
    .hero-cover{grid-template-columns:minmax(410px,1fr) minmax(410px,500px);gap:30px}
    h1{font-size:clamp(48px,4.6vw,70px)}
}
@media (max-width:1080px){
    .header-shell{align-items:flex-start;flex-direction:column;gap:10px}
    .header-right{width:100%;justify-content:space-between;align-items:flex-start}
    .main-nav{overflow:auto;padding-bottom:4px}
    .brand img{width:310px;max-width:78vw}
    .hero-cover{grid-template-columns:1fr;min-height:auto}
    .hero-visual{min-height:400px}
    .quick-links{grid-template-columns:1fr}
}
@media (max-width:680px){
    .page-shell{width:calc(100% - 28px)}
    .header-right{flex-direction:column}
    .lang-switch{border-left:0;padding-left:0}
    h1{font-size:clamp(42px,12vw,62px)}
    .lead,.lead-strong{font-size:16px}
    .btn{width:100%}
    .hero-actions{flex-direction:column}
    .top-bubble{font-size:19px;max-width:190px;padding:12px 14px}
    .bottom-bubble{left:14px;right:14px;bottom:14px}
}

/* v12 – architecture classique et ajustement anti-scroll */
@media (min-width: 1180px){
    .quick-links{margin-top:4px}
    .quick-card h2{margin-bottom:4px}
    .quick-card p{line-height:1.34}
}


/* Pages intérieures – services / à propos */
.inner-page{
    padding:48px 0 70px;
    background:
        radial-gradient(circle at 88% 18%, rgba(248,177,18,.10), transparent 30%),
        var(--cream);
}
.inner-hero{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
    gap:42px;
    align-items:start;
    padding-top:20px;
}
.inner-hero h1{
    font-size:clamp(46px,4.8vw,76px);
    max-width:900px;
}
.inner-lead{
    margin-top:22px;
    font-size:clamp(18px,1.35vw,22px);
    line-height:1.55;
    color:#37466b;
    max-width:920px;
}
.inner-text{
    margin-top:18px;
    font-size:18px;
    line-height:1.65;
    color:#4a5878;
    max-width:860px;
}
.service-note{
    background:#fff;
    border:1px solid rgba(10,50,138,.08);
    border-radius:24px;
    padding:28px;
    box-shadow:var(--shadow);
    color:var(--blue);
}
.service-note strong{
    display:block;
    font-size:22px;
    margin-bottom:16px;
}
.service-note ol{
    padding-left:22px;
    display:grid;
    gap:12px;
    color:#4a5878;
    font-weight:600;
}
.service-grid{
    margin-top:40px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}
.service-card{
    background:#fff;
    border:1px solid rgba(10,50,138,.08);
    border-radius:22px;
    padding:24px 24px 22px;
    box-shadow:var(--shadow);
    min-height:190px;
}
.service-card h2{
    color:var(--blue);
    font-size:21px;
    line-height:1.2;
    margin-bottom:12px;
}
.service-card p{
    color:#556684;
    font-size:15px;
    line-height:1.55;
}
.about-logo-card{
    background:#fff;
    border:1px solid rgba(10,50,138,.08);
    border-radius:28px;
    padding:34px;
    box-shadow:var(--shadow);
}
.about-logo-card img{
    width:100%;
    max-width:420px;
    margin:auto;
}
.about-cards{
    margin-top:40px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
@media(max-width:1180px){
    .service-grid{grid-template-columns:repeat(2,1fr)}
    .inner-hero{grid-template-columns:1fr}
    .about-logo-card{max-width:520px}
}
@media(max-width:720px){
    .inner-page{padding-top:28px}
    .service-grid,.about-cards{grid-template-columns:1fr}
    .service-card{min-height:auto}
}



/* Services v5 – vrai logo, sobre, lisible */
.ecosystem-band{
    margin-top:34px;
    background:
        radial-gradient(circle at 88% 10%, rgba(248,177,18,.22), transparent 26%),
        linear-gradient(135deg,#fff 0%,#fffaf0 42%,#eef5ff 100%);
    border:1px solid rgba(10,50,138,.08);
    border-radius:28px;
    box-shadow:var(--shadow);
    padding:32px 34px;
    display:grid;
    grid-template-columns:1fr 210px;
    gap:28px;
    align-items:center;
}
.ecosystem-band .mini-label{
    display:inline-block;
    color:var(--blue-2);
    font-size:12px;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
    margin-bottom:10px;
}
.ecosystem-band h2{
    color:var(--blue);
    font-size:34px;
    line-height:1.1;
    margin-bottom:12px;
}
.ecosystem-band p{
    color:#435273;
    font-size:17px;
    line-height:1.65;
    max-width:960px;
}
.ecosystem-band img{
    width:190px;
    justify-self:end;
}

.picto-strip.logo-strip{
    margin-top:28px;
    background:#fff;
    border:1px solid rgba(10,50,138,.08);
    border-radius:30px;
    box-shadow:var(--shadow);
    padding:26px 28px 30px;
}
.picto-strip h2{
    color:var(--blue);
    font-size:22px;
    margin-bottom:18px;
}
.logo-tile-list{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:14px;
}
.logo-tile{
    min-height:138px;
    border-radius:24px;
    padding:18px 14px 16px;
    background:
        radial-gradient(circle at 18% 20%, rgba(248,177,18,.20), transparent 34%),
        linear-gradient(180deg,#fffdf8 0%,#f8f3e9 100%);
    border:1px solid rgba(10,50,138,.08);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:8px;
    transition:transform .18s ease, box-shadow .18s ease;
}
.logo-tile:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 34px rgba(10,50,138,.10);
}
.logo-tile img{
    width:54px;
    height:54px;
    object-fit:contain;
    margin-bottom:2px;
}
.logo-tile span{
    display:inline-flex;
    padding:4px 10px;
    border-radius:999px;
    background:#fff2cf;
    color:#70510a;
    font-size:10px;
    line-height:1;
    font-weight:800;
    letter-spacing:.08em;
}
.logo-tile strong{
    color:var(--blue);
    font-size:14px;
    line-height:1.24;
    max-width:140px;
}

.service-card-clean{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 94% 6%, rgba(248,177,18,.13), transparent 18%),
        #fff;
}
.service-card-clean::after{
    content:"";
    position:absolute;
    right:-28px;
    top:-28px;
    width:104px;
    height:104px;
    border-radius:50%;
    background:rgba(248,177,18,.10);
}
.service-card-top{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
}
.service-card-top img{
    width:54px;
    height:54px;
    object-fit:contain;
}
.service-card-top span{
    display:inline-flex;
    padding:5px 11px;
    border-radius:999px;
    background:#fff2cf;
    color:#70510a;
    font-size:10px;
    line-height:1;
    font-weight:800;
    letter-spacing:.08em;
}
.service-card-clean h2,
.service-card-clean p,
.service-card-top{
    position:relative;
    z-index:2;
}
@media(max-width:1180px){
    .ecosystem-band{grid-template-columns:1fr}
    .ecosystem-band img{justify-self:start;width:170px}
    .logo-tile-list{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:720px){
    .ecosystem-band{padding:24px}
    .ecosystem-band h2{font-size:28px}
    .logo-tile-list{grid-template-columns:repeat(2,1fr)}
}
