
:root{
 --purple:#541585; --purple-dark:#35104f; --purple-deep:#260e38;
 --gold:#d3ae38; --ink:#231f20; --ivory:#f8f4ec; --sand:#efe6d8;
 --white:#fff; --muted:#6f6872; --line:rgba(84,21,133,.16);
 --serif:"EB Garamond","Noto Serif",Georgia,serif;
 --sans:Inter,"Avenir Next",Montserrat,Arial,sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.6}
a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}
header{position:sticky;top:0;z-index:50;background:rgba(248,244,236,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(84,21,133,.08)}
.nav{height:84px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand img{width:156px;display:block}.menu{display:flex;gap:26px;align-items:center;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.menu a{padding:31px 0;position:relative}.menu a:after{content:"";position:absolute;left:0;right:100%;bottom:24px;height:2px;background:var(--gold);transition:.25s}.menu a:hover:after{right:0}.contact-pill{border:1px solid var(--purple);color:var(--purple);padding:11px 17px!important;border-radius:999px}.contact-pill:after{display:none!important}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.18em;font-weight:800;color:var(--gold);display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:28px;height:1px;background:currentColor}
h1,h2,h3{font-family:var(--serif);color:var(--purple);line-height:.98;margin:0}.hero{min-height:calc(100vh - 84px);display:grid;grid-template-columns:1.08fr .92fr;align-items:stretch;overflow:hidden}.hero-copy{padding:90px max(6vw,56px) 80px max(6vw,56px);display:flex;flex-direction:column;justify-content:center}.hero h1{font-size:clamp(64px,7vw,110px);letter-spacing:-.045em;max-width:780px}.hero-lead{font-size:20px;max-width:650px;color:#4d4650;margin:28px 0 34px}.cta-row{display:flex;flex-wrap:wrap;gap:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:15px 22px;font-weight:800;font-size:14px;transition:.2s}.btn-primary{background:var(--purple);color:white}.btn-secondary{border:1px solid rgba(84,21,133,.3);color:var(--purple);background:rgba(255,255,255,.35)}.btn:hover{transform:translateY(-1px)}
.hero-art{position:relative;min-height:640px;background:#d8c8ba;overflow:hidden}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.86) contrast(.98)}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,244,236,.18),transparent 35%),linear-gradient(0deg,rgba(38,14,56,.38),transparent 45%)}.hero-stamp{position:absolute;right:28px;bottom:26px;z-index:2;background:rgba(248,244,236,.9);padding:14px 18px;border-radius:4px;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--purple)}
section{padding:120px 0}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:64px}.section-head h2{font-size:clamp(48px,5vw,76px);letter-spacing:-.035em}.section-head p{margin:0;color:var(--muted);font-size:18px;max-width:600px}
.diagnostic{display:grid;grid-template-columns:1fr 1fr;gap:44px;padding:52px;border:1px solid var(--line);background:rgba(255,255,255,.45);border-radius:28px;margin-bottom:42px}.diagnostic p{margin:0;font-size:17px;color:#4e4850}.diag-label{font-family:var(--serif);font-size:30px;line-height:1.1;color:var(--purple)}
.bento{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:auto auto;gap:18px}.tile{background:white;border:1px solid rgba(84,21,133,.09);border-radius:24px;padding:36px;position:relative;overflow:hidden}.tile h3{font-size:38px;margin-bottom:16px}.vision{grid-row:1/3;background:var(--purple);color:white;min-height:390px;display:flex;flex-direction:column;justify-content:flex-end}.vision h3,.vision .quote{color:white}.vision:before{content:"✦";position:absolute;right:32px;top:14px;font-size:120px;color:rgba(211,174,56,.18)}.quote{font-family:var(--serif);font-size:32px;line-height:1.15}.mission p{font-size:16px;margin:0;color:#514a53}.values{background:var(--sand)}.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.chip{border:1px solid rgba(84,21,133,.26);border-radius:999px;padding:8px 13px;font-size:12px;font-weight:800;color:var(--purple);background:rgba(255,255,255,.6)}
.governance{background:#fff}.leaders{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:24px}.leader{display:grid;grid-template-columns:220px 1fr;background:var(--ivory);border-radius:24px;overflow:hidden;min-height:300px}.leader img{width:100%;height:100%;object-fit:cover}.leader-info{padding:30px;display:flex;flex-direction:column;justify-content:flex-end}.leader-info h3{font-size:34px}.role{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:900;margin:8px 0 14px}.expertise{font-size:14px;color:#5a535d}
.gov-strip{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;background:var(--purple);color:white;border-radius:22px;overflow:hidden}.gov-intro,.gov-item{padding:28px}.gov-intro{background:var(--purple-dark)}.gov-intro strong{font-family:var(--serif);font-size:28px}.gov-item{border-left:1px solid rgba(255,255,255,.12)}.gov-item b{color:var(--gold);display:block;margin-bottom:8px}.agility{margin-top:18px;padding:22px 28px;border-radius:18px;background:#f1e8f4;color:#4c4051;font-size:14px}.agility b{color:var(--purple)}
.pillars{background:var(--ivory)}.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative}.pillar{background:white;border-radius:26px;overflow:hidden;border:1px solid rgba(84,21,133,.08);display:flex;flex-direction:column}.pillar-img{height:230px;overflow:hidden}.pillar-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.82)}.pillar-body{padding:30px 30px 34px}.num{font-family:var(--serif);font-size:52px;color:rgba(84,21,133,.16);line-height:1}.pillar h3{font-family:var(--sans);font-size:18px;line-height:1.25;letter-spacing:.06em;color:var(--gold);text-transform:uppercase;margin:7px 0 14px}.pillar strong{display:block;color:var(--purple);font-size:18px;margin-bottom:12px}.pillar p{margin:0;color:#5c555d;font-size:14px}.autonomy{margin:38px auto 0;width:max-content;max-width:90%;padding:14px 30px;border-radius:999px;background:var(--purple);color:white;font-weight:900;letter-spacing:.18em;text-transform:uppercase;font-size:12px;position:relative}.autonomy:before{content:"";position:absolute;left:50%;top:-38px;width:1px;height:38px;background:var(--gold)}
.approach{background:var(--purple-deep);color:white}.approach .section-head h2{color:white}.approach .section-head p{color:#d6cddd}.orbit-wrap{display:grid;grid-template-columns:1fr .9fr;gap:70px;align-items:center}.orbit{height:560px;position:relative}.orbit-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:190px;height:190px;border-radius:50%;display:grid;place-items:center;text-align:center;border:1px solid rgba(211,174,56,.65);color:white;font-family:var(--serif);font-size:28px;background:radial-gradient(circle at 30% 30%,rgba(84,21,133,.9),rgba(38,14,56,.95))}.ring{position:absolute;border:1px solid rgba(255,255,255,.16);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.ring.r1{width:390px;height:390px}.ring.r2{width:520px;height:520px;border-style:dashed}.orb{position:absolute;width:144px;height:144px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:16px;background:var(--ivory);color:var(--purple);box-shadow:0 16px 40px rgba(0,0,0,.18)}.orb b{font-size:18px;letter-spacing:.05em}.orb span{font-size:10px;margin-top:4px;color:#62566a}.o1{left:50%;top:0;transform:translateX(-50%)}.o2{left:14px;bottom:36px}.o3{right:14px;bottom:36px}.approach-list{display:grid;gap:14px}.approach-card{border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:24px;background:rgba(255,255,255,.04)}.approach-card b{font-size:18px;color:var(--gold)}.approach-card p{margin:8px 0 0;color:#d3cad8;font-size:14px}.flow{margin-top:58px;border-top:1px solid rgba(255,255,255,.12);padding-top:26px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#d9cedf}.flow span:after{content:"→";color:var(--gold);margin-left:10px}.flow span:last-child:after{display:none}
.initiatives{background:white}.initiative-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.initiative{border-top:3px solid var(--gold);padding:28px 26px 34px;background:var(--ivory);border-radius:0 0 22px 22px}.initiative .idx{font-size:11px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}.initiative h3{font-family:var(--sans);font-size:20px;line-height:1.3;margin:12px 0;color:var(--purple)}.initiative strong{display:block;font-family:var(--serif);font-size:23px;line-height:1.2;margin-bottom:13px}.initiative p{font-size:14px;color:#5b555d;margin:0}.impact{margin-top:60px;background:var(--purple);color:white;border-radius:30px;padding:62px;display:grid;grid-template-columns:.65fr 1.35fr;gap:50px;align-items:center;position:relative;overflow:hidden}.impact:after{content:"";position:absolute;width:330px;height:330px;border:1px solid rgba(211,174,56,.35);border-radius:50%;right:-100px;top:-160px}.impact small{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-weight:900}.impact-number{font-family:var(--serif);font-size:96px;line-height:.9;color:white}.impact h3{color:white;font-size:34px;margin-bottom:12px}.impact p{color:#ddd3e3;margin:0;font-size:14px}
footer{background:var(--purple-deep);color:white;padding:88px 0 28px}.footer-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.footer-brand img{width:180px;filter:none;margin-bottom:24px}.footer-brand p{color:#cfc4d7;max-width:450px}.contact-list{margin-top:30px;display:grid;gap:8px;color:#eee6f2;font-size:14px}.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}.field input,.field textarea{width:100%;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:white;border-radius:12px;padding:14px 15px;font:inherit;outline:none}.field textarea{height:130px;resize:vertical}.submit{grid-column:1/-1;justify-self:start;border:0;background:var(--gold);color:var(--purple-deep);cursor:pointer}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:60px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#baaec3}.legal{display:flex;gap:18px;flex-wrap:wrap}
@media(max-width:980px){.menu{display:none}.hero{grid-template-columns:1fr}.hero-art{min-height:500px}.section-head,.diagnostic,.orbit-wrap,.footer-grid{grid-template-columns:1fr}.leaders{grid-template-columns:1fr}.pillar-grid,.initiative-grid{grid-template-columns:1fr}.gov-strip{grid-template-columns:1fr 1fr}.gov-item{border-left:0;border-top:1px solid rgba(255,255,255,.12)}.impact{grid-template-columns:1fr}.orbit{height:500px}}
@media(max-width:650px){.wrap{width:min(100% - 30px,1180px)}.nav{height:72px}.brand img{width:130px}.hero-copy{padding:68px 24px 50px}.hero h1{font-size:54px}.hero-lead{font-size:17px}.hero-art{min-height:420px}.section-head{gap:20px}.section-head h2{font-size:48px}section{padding:86px 0}.diagnostic{padding:30px;grid-template-columns:1fr}.bento{grid-template-columns:1fr;grid-template-rows:auto}.vision{grid-row:auto;min-height:320px}.leaders{gap:14px}.leader{grid-template-columns:1fr}.leader img{height:320px}.gov-strip{grid-template-columns:1fr}.pillar-img{height:250px}.orbit{height:430px}.ring.r1{width:290px;height:290px}.ring.r2{width:390px;height:390px}.orb{width:112px;height:112px}.o2{left:0;bottom:48px}.o3{right:0;bottom:48px}.impact{padding:38px 28px}.impact-number{font-size:70px}.form{grid-template-columns:1fr}.field.full,.submit{grid-column:1}.footer-bottom{flex-direction:column}}

/* ===== ITINERIS MOTION SYSTEM ===== */
body{overflow-x:hidden}
.motion-progress{position:fixed;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold),#fff2a8,var(--gold));z-index:120;box-shadow:0 0 14px rgba(211,174,56,.45)}
header{transition:transform .35s ease,background .35s ease,box-shadow .35s ease}
header.scrolled{background:rgba(248,244,236,.88);box-shadow:0 12px 35px rgba(38,14,56,.07)}
.reveal{opacity:0;transform:translateY(42px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}
.reveal-left{opacity:0;transform:translateX(-48px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal-right{opacity:0;transform:translateX(48px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible,.reveal-left.is-visible,.reveal-right.is-visible{opacity:1;transform:none}
.stagger > *{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.stagger.is-visible > *{opacity:1;transform:none}
.stagger.is-visible > *:nth-child(1){transition-delay:.04s}
.stagger.is-visible > *:nth-child(2){transition-delay:.12s}
.stagger.is-visible > *:nth-child(3){transition-delay:.20s}
.stagger.is-visible > *:nth-child(4){transition-delay:.28s}
.stagger.is-visible > *:nth-child(5){transition-delay:.36s}
.stagger.is-visible > *:nth-child(6){transition-delay:.44s}

.hero-copy .eyebrow,.hero-copy h1,.hero-copy .hero-lead,.hero-copy .cta-row{opacity:0;transform:translateY(28px);animation:heroRise .85s cubic-bezier(.2,.7,.2,1) forwards}
.hero-copy h1{animation-delay:.12s}.hero-copy .hero-lead{animation-delay:.24s}.hero-copy .cta-row{animation-delay:.36s}
.hero-art{clip-path:inset(0 100% 0 0);animation:heroReveal 1.15s .12s cubic-bezier(.22,.8,.2,1) forwards}
.hero-art img{transform:scale(1.07);animation:heroZoom 1.8s .1s cubic-bezier(.22,.8,.2,1) forwards;will-change:transform}
@keyframes heroRise{to{opacity:1;transform:none}}
@keyframes heroReveal{to{clip-path:inset(0 0 0 0)}}
@keyframes heroZoom{to{transform:scale(1)}}

.btn{position:relative;overflow:hidden;transform:translateZ(0);transition:transform .28s ease,box-shadow .28s ease,background .28s ease}
.btn:before{content:"";position:absolute;inset:-2px;transform:translateX(-120%) skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transition:transform .6s ease;pointer-events:none}
.btn:hover:before{transform:translateX(120%) skewX(-18deg)}
.btn:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 14px 30px rgba(38,14,56,.13)}

.tile,.leader,.pillar,.initiative,.approach-card{transition:transform .38s cubic-bezier(.2,.7,.2,1),box-shadow .38s ease,border-color .38s ease}
.tile:hover,.leader:hover,.pillar:hover,.initiative:hover,.approach-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px rgba(38,14,56,.10);border-color:rgba(211,174,56,.38)}
.pillar-img img,.leader img{transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s ease}
.pillar:hover .pillar-img img,.leader:hover img{transform:scale(1.055);filter:saturate(.96)}

.ring.r1{animation:spin 22s linear infinite}
.ring.r2{animation:spinReverse 34s linear infinite}
.orb{animation:floatOrb 5s ease-in-out infinite}
.o2{animation-delay:-1.4s}.o3{animation-delay:-2.7s}
.orbit-center{box-shadow:0 0 0 0 rgba(211,174,56,.20);animation:centerPulse 3.2s ease-in-out infinite}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes spinReverse{to{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes floatOrb{0%,100%{margin-top:0}50%{margin-top:-10px}}
@keyframes centerPulse{0%,100%{box-shadow:0 0 0 0 rgba(211,174,56,.12)}50%{box-shadow:0 0 0 18px rgba(211,174,56,0)}}

.impact:before{content:"";position:absolute;inset:-70% -30%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.12) 50%,transparent 58%);transform:translateX(-55%);animation:impactSheen 7s ease-in-out infinite;pointer-events:none}
@keyframes impactSheen{0%,55%{transform:translateX(-55%)}80%,100%{transform:translateX(55%)}}
.impact-number{font-variant-numeric:tabular-nums}

.eyebrow:before{transform-origin:left center;animation:eyeline 1.4s ease both}
@keyframes eyeline{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .reveal,.reveal-left,.reveal-right,.stagger>*{opacity:1!important;transform:none!important}
}



/* ===== ITINERIS EDITORIAL IMAGES V1 ===== */

/* Diagnostic éditorial */
.diagnostic{
    padding:0;
    gap:0;
    grid-template-columns:.95fr 1.05fr;
    overflow:hidden;
    background:#fff;
    min-height:430px;
    box-shadow:0 24px 70px rgba(38,14,56,.07);
}

.diag-visual{
    position:relative;
    min-height:430px;
    overflow:hidden;
    background:var(--purple-deep);
}

.diag-visual::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg,transparent 40%,rgba(38,14,56,.82) 100%),
        linear-gradient(90deg,rgba(84,21,133,.12),transparent 55%);
    pointer-events:none;
}

.diag-visual img{
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    object-fit:cover;
    filter:saturate(.90) contrast(.98);
    transform:scale(1.015);
    transition:
        transform 1.1s cubic-bezier(.2,.7,.2,1),
        filter .7s ease;
}

.diagnostic:hover .diag-visual img{
    transform:scale(1.065);
    filter:saturate(1.02) contrast(1);
}

.diag-visual .diag-label{
    position:absolute;
    z-index:2;
    left:38px;
    right:30px;
    bottom:34px;
    color:#fff;
    font-size:34px;
    text-shadow:0 3px 20px rgba(0,0,0,.18);
}

.diag-copy{
    padding:52px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

/* Initiatives avec visuels */
.initiative{
    padding:0;
    border-radius:22px;
    overflow:hidden;
    border-top:3px solid var(--gold);
    box-shadow:0 12px 38px rgba(38,14,56,.055);
}

.initiative-img{
    height:225px;
    overflow:hidden;
    position:relative;
    background:var(--purple-deep);
}

.initiative-img::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        180deg,
        rgba(84,21,133,.04) 40%,
        rgba(38,14,56,.24) 100%
    );
    transition:opacity .45s ease;
    pointer-events:none;
}

.initiative-img img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(1.015);
    filter:saturate(.90) contrast(.98);
    transition:
        transform .9s cubic-bezier(.2,.7,.2,1),
        filter .55s ease;
}

.initiative:hover .initiative-img img{
    transform:scale(1.075);
    filter:saturate(1.03) contrast(1);
}

.initiative:hover .initiative-img::after{
    opacity:.45;
}

.initiative > .idx{
    margin:26px 26px 0;
}

.initiative > h3{
    margin:11px 26px 12px;
}

.initiative > strong{
    margin:0 26px 13px;
}

.initiative > p{
    margin:0 26px 34px;
}

/* Responsive */
@media(max-width:980px){
    .diagnostic{
        grid-template-columns:1fr;
    }

    .diag-visual{
        min-height:380px;
    }

    .diag-copy{
        padding:42px;
    }

    .initiative-img{
        height:320px;
    }
}

@media(max-width:650px){
    .diag-visual{
        min-height:290px;
    }

    .diag-visual .diag-label{
        left:24px;
        right:22px;
        bottom:24px;
        font-size:28px;
    }

    .diag-copy{
        padding:30px;
    }

    .initiative-img{
        height:235px;
    }
}


/* ===== ITINERIS THEME SWITCH V1 ===== */

/* Bouton Contact premium */
.contact-pill{
    transition:
        background .32s ease,
        color .32s ease,
        border-color .32s ease,
        box-shadow .32s ease,
        transform .32s ease !important;
}

.contact-pill:hover,
.contact-pill:focus-visible{
    background:var(--purple);
    border-color:var(--purple);
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 10px 28px rgba(84,21,133,.22);
}

/* Toggle clair / sombre */
.theme-toggle{
    width:42px;
    height:42px;
    flex:0 0 42px;
    border-radius:50%;
    border:1px solid rgba(84,21,133,.22);
    background:rgba(255,255,255,.55);
    color:var(--purple);
    display:grid;
    place-items:center;
    padding:0;
    cursor:pointer;
    font:inherit;
    transition:
        background .3s ease,
        color .3s ease,
        border-color .3s ease,
        transform .3s ease,
        box-shadow .3s ease;
}

.theme-toggle:hover{
    transform:rotate(8deg) scale(1.06);
    background:var(--purple);
    color:#fff;
    border-color:var(--purple);
    box-shadow:0 10px 26px rgba(84,21,133,.18);
}

.theme-toggle-icon{
    display:block;
    font-size:19px;
    line-height:1;
    transform:translateY(-1px);
}

/* Transition entre les thèmes */
body,
header,
.tile,
.leader,
.pillar,
.initiative,
.diagnostic,
.agility,
.hero-stamp,
.btn-secondary{
    transition:
        background-color .38s ease,
        color .38s ease,
        border-color .38s ease;
}

/* ================= DARK MODE ================= */

body.it-dark{
    --ivory:#160e1c;
    --sand:#24172c;
    --ink:#f4eef6;
    --muted:#c5bacb;
    --line:rgba(255,255,255,.12);

    background:#160e1c;
    color:#f4eef6;
}

body.it-dark header{
    background:rgba(22,14,28,.94);
    border-bottom-color:rgba(255,255,255,.09);
    box-shadow:0 12px 35px rgba(0,0,0,.12);
}

body.it-dark header.scrolled{
    background:rgba(22,14,28,.90);
    box-shadow:0 15px 42px rgba(0,0,0,.22);
}

body.it-dark .brand{
    background:#fff;
    border-radius:10px;
    padding:4px 8px;
}

body.it-dark .menu > a:not(.contact-pill){
    color:#f4eef6;
}

body.it-dark .contact-pill{
    color:var(--gold);
    border-color:var(--gold);
}

body.it-dark .contact-pill:hover,
body.it-dark .contact-pill:focus-visible{
    background:var(--purple);
    color:#fff;
    border-color:var(--purple);
}

body.it-dark .theme-toggle{
    background:rgba(255,255,255,.07);
    border-color:rgba(255,255,255,.18);
    color:var(--gold);
}

body.it-dark .governance,
body.it-dark .initiatives{
    background:#130b19;
}

body.it-dark .tile,
body.it-dark .pillar,
body.it-dark .initiative{
    background:#211529;
    border-color:rgba(255,255,255,.08);
}

body.it-dark .values{
    background:#2a1b33;
}

body.it-dark .leader{
    background:#201428;
}

body.it-dark .diagnostic{
    background:#201428;
    border-color:rgba(255,255,255,.1);
}

body.it-dark .agility{
    background:#2a1a34;
    color:#d8ccdc;
}

body.it-dark .agility b{
    color:var(--gold);
}

body.it-dark .hero-lead,
body.it-dark .diagnostic p,
body.it-dark .mission p,
body.it-dark .expertise,
body.it-dark .pillar p,
body.it-dark .initiative p{
    color:#cfc4d4;
}

body.it-dark .hero h1,
body.it-dark .section-head h2,
body.it-dark .tile:not(.vision) h3,
body.it-dark .leader-info h3{
    color:#f5eef8;
}

body.it-dark .section-head p{
    color:#beb2c5;
}

body.it-dark .btn-secondary{
    color:#f4eef6;
    border-color:rgba(255,255,255,.25);
    background:rgba(255,255,255,.06);
}

body.it-dark .hero-stamp{
    background:rgba(22,14,28,.88);
    color:#fff;
}

body.it-dark .chip{
    background:rgba(255,255,255,.06);
    border-color:rgba(211,174,56,.34);
    color:#e2c55e;
}

body.it-dark .orb{
    color:#fff;
}

body.it-dark .orb span{
    color:#c8bdcd;
}

@media(max-width:980px){
    .theme-toggle{
        margin-left:auto;
    }
}


/* ===== ITINERIS MOBILE NAV V1 ===== */

.menu-toggle{
    display:none;
    width:44px;
    height:44px;
    padding:10px;
    border:0;
    background:transparent;
    cursor:pointer;
    position:relative;
    z-index:1002;
}

.menu-toggle span{
    display:block;
    height:2px;
    width:23px;
    margin:5px auto;
    background:var(--purple);
    border-radius:10px;
    transition:transform .3s ease, opacity .3s ease, background .3s ease;
}

.menu-toggle.is-active span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
}

.menu-toggle.is-active span:nth-child(2){
    opacity:0;
}

.menu-toggle.is-active span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
}

body.it-dark .menu-toggle span{
    background:#fff;
}

@media(max-width:980px){

    .nav{
        position:relative;
    }

    .menu-toggle{
        display:block;
        margin-left:auto;
    }

    .menu{
        display:flex !important;
        position:absolute;
        top:calc(100% + 12px);
        left:0;
        right:0;
        flex-direction:column;
        align-items:stretch;
        gap:4px;
        padding:16px;
        background:rgba(248,244,236,.98);
        border:1px solid rgba(84,21,133,.10);
        border-radius:18px;
        box-shadow:0 24px 60px rgba(38,14,56,.14);

        opacity:0;
        visibility:hidden;
        transform:translateY(-10px);
        pointer-events:none;

        transition:
            opacity .28s ease,
            transform .28s ease,
            visibility .28s ease;
    }

    .menu.is-open{
        opacity:1;
        visibility:visible;
        transform:none;
        pointer-events:auto;
    }

    .menu a{
        display:block;
        margin:0 !important;
        padding:13px 15px;
        border-radius:11px;
    }

    .menu a:not(.contact-pill):hover{
        background:rgba(84,21,133,.07);
    }

    .menu .contact-pill{
        text-align:center;
        margin-top:5px !important;
    }

    body.it-dark .menu{
        background:rgba(28,17,35,.98);
        border-color:rgba(255,255,255,.10);
    }

    body.it-dark .menu a:not(.contact-pill):hover{
        background:rgba(255,255,255,.07);
    }
}

@media(max-width:650px){

    .brand img{
        max-width:125px;
    }

    .nav{
        min-height:68px;
    }

    .menu{
        left:-2px;
        right:-2px;
    }
}


/* ===== ITINERIS CONTACT FORM V1 ===== */

.it-contact-form .field input,
.it-contact-form .field textarea{
    width:100%;
}

.it-contact-form textarea{
    min-height:150px;
    resize:vertical;
}

.it-contact-form input:focus,
.it-contact-form textarea:focus{
    outline:none;
    border-color:var(--gold);
    box-shadow:0 0 0 3px rgba(211,174,56,.13);
}

.it-contact-form input.is-error,
.it-contact-form textarea.is-error{
    border-color:#c74242;
}

.it-honeypot{
    position:absolute !important;
    left:-99999px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
}

.it-form-footer{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
}

.it-submit{
    min-width:175px;
}

.it-submit:disabled{
    opacity:.65;
    cursor:not-allowed;
    transform:none !important;
}

.it-form-status{
    min-height:24px;
    font-size:14px;
    font-weight:700;
}

.it-form-status.is-success{
    color:#4f8b55;
}

.it-form-status.is-error{
    color:#c75a5a;
}

body.it-dark .it-contact-form input,
body.it-dark .it-contact-form textarea{
    background:rgba(255,255,255,.06);
    color:#fff;
    border-color:rgba(255,255,255,.14);
}

body.it-dark .it-contact-form input::placeholder,
body.it-dark .it-contact-form textarea::placeholder{
    color:rgba(255,255,255,.48);
}

body.it-dark .it-form-status.is-success{
    color:#8fd49b;
}

body.it-dark .it-form-status.is-error{
    color:#ff9b9b;
}

@media(max-width:650px){
    .it-form-footer{
        align-items:stretch;
        flex-direction:column;
    }

    .it-submit{
        width:100%;
    }

    .it-form-status{
        text-align:center;
    }
}
/* Bouton formulaire ITINERIS */
.it-contact-form .it-submit,
.it-contact-form .submit{
    background:#541585;
    color:#fff;
    border:1px solid #541585;
    box-shadow:0 10px 28px rgba(84,21,133,.18);
    transition:
        background .3s ease,
        color .3s ease,
        border-color .3s ease,
        transform .3s ease,
        box-shadow .3s ease;
}

.it-contact-form .it-submit:hover,
.it-contact-form .it-submit:focus-visible,
.it-contact-form .submit:hover,
.it-contact-form .submit:focus-visible{
    background:#D3AE38;
    color:#2a1735;
    border-color:#D3AE38;
    transform:translateY(-2px);
    box-shadow:0 14px 32px rgba(211,174,56,.22);
}

.it-contact-form .it-submit:disabled,
.it-contact-form .submit:disabled{
    opacity:.65;
    transform:none;
    cursor:not-allowed;
}
