:root{
  --ink:#101826;
  --navy:#111827;
  --navy-2:#0b1220;
  --slate:#667085;
  --line:#e7eaf0;
  --soft:#f5f7fa;
  --ithaque-blue:#2f73c8;
  --ithaque-blue-dark:#245a99;
  --ithaque-blue-light:#dbe9f8;
  --ithaque-blue-soft:#eef5fc;
  --blue-2:#79a9dc;
  --accent:#eef5fc;
  --white:#fff;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{font-family:'Inter',sans-serif;color:var(--ink);background:#fff} a{transition:.2s ease}.tracking{letter-spacing:.12em}.xsmall{font-size:.72rem}
.topbar{background:#070d17}.topbar-link{color:rgba(255,255,255,.72);text-decoration:none}.topbar-link:hover{color:#fff}
#mainNav{background:rgba(15,23,42,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08);transition:.25s}.brand-logo{width:220px;max-height:58px;object-fit:contain;object-position:left center}.navbar{min-height:82px}.navbar-nav .nav-link{color:rgba(255,255,255,.72);font-weight:500;padding:.7rem .85rem!important}.navbar-nav .nav-link:hover,.navbar-nav .nav-link.active{color:#fff}.btn-brand{background:linear-gradient(135deg,var(--ithaque-blue),#5b92cf);border:none;color:#142033;font-weight:700;box-shadow:0 8px 24px rgba(47,115,200,.16)}.btn-brand:hover{background:linear-gradient(135deg,#4382c8,var(--ithaque-blue-dark));color:#fff;transform:translateY(-1px)}
.hero{min-height:calc(100vh - 118px);position:relative;overflow:hidden;background:radial-gradient(circle at 90% 20%,rgba(47,115,200,.16),transparent 30%),linear-gradient(145deg,#0a101b 0%,#111b2c 55%,#0b1220 100%);padding:90px 0}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent)}.hero-orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.35}.hero-orb-1{width:430px;height:430px;background:radial-gradient(circle,var(--blue-2),transparent 68%);right:-160px;top:-100px}.hero-orb-2{width:320px;height:320px;background:radial-gradient(circle,#4a6078,transparent 68%);left:-140px;bottom:-100px}.eyebrow{display:inline-flex;align-items:center;gap:.65rem;color:#d7e1eb;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:700}.eyebrow span{width:34px;height:1px;background:var(--ithaque-blue)}.hero h1{line-height:1.02;letter-spacing:-.055em}.hero h1 span{color:var(--ithaque-blue)}.hero-copy{max-width:700px;font-size:1.16rem;line-height:1.75}.hero-proof>div{display:flex;align-items:center;gap:.6rem;color:rgba(255,255,255,.7);font-size:.9rem}.hero-proof i{color:var(--ithaque-blue);font-size:1.1rem}.hero-panel{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.5);border-radius:24px;padding:2rem;box-shadow:0 30px 80px rgba(0,0,0,.28);position:relative}.hero-panel:before{content:"";position:absolute;top:18px;right:18px;width:62px;height:62px;border-top:1px solid #c7dbef;border-right:1px solid #c7dbef;border-radius:0 14px 0 0}.hero-panel-icon{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--navy);color:var(--ithaque-blue);font-size:1.65rem;margin-bottom:1.5rem}.mini-service{display:flex;align-items:center;gap:.85rem;padding:.88rem 0;border-top:1px solid var(--line);font-weight:600;color:#344054}.mini-service i{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--accent);color:#34495e}.scroll-indicator{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.65);font-size:1.3rem;animation:bob 1.8s ease-in-out infinite}@keyframes bob{50%{transform:translate(-50%,8px)}}
.section{padding:105px 0}.section-light{background:#fff}.section-dark{background:linear-gradient(160deg,#0a101a,#121b2b)}.section-kicker{display:block;text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.75rem;color:#2f73c8;margin-bottom:1rem}.section-kicker-light{color:#86b0dc}.section-title{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.045em;line-height:1.08;font-weight:800;margin-bottom:1.35rem}.section-intro{font-size:1.18rem;line-height:1.8;color:#344054}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:20px;overflow:hidden}.stat-card{padding:1.7rem;background:#fff;border-right:1px solid var(--line)}.stat-card:last-child{border-right:0}.stat-card span{display:block;color:#9aabbd;font-size:.78rem;font-weight:800;letter-spacing:.14em;margin-bottom:.6rem}.stat-card strong{display:block;font-size:1.08rem}.stat-card small{color:var(--slate)}
.service-card{height:100%;padding:2rem;border:1px solid rgba(255,255,255,.09);border-radius:20px;background:rgba(255,255,255,.045);transition:.25s}.service-card:hover{transform:translateY(-5px);background:rgba(255,255,255,.07);border-color:rgba(47,115,200,.45)}.service-icon{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:rgba(47,115,200,.16);color:var(--ithaque-blue);font-size:1.45rem;margin-bottom:1.4rem}.service-card h3{color:#fff;font-size:1.18rem;font-weight:700}.service-card p{color:rgba(255,255,255,.55);line-height:1.7;min-height:84px}.service-card a{color:#9ec3ea;text-decoration:none;font-weight:600;font-size:.9rem}.service-card a:hover{color:#fff}
.method-visual{height:480px;position:relative;display:grid;place-items:center}.method-ring{position:absolute;border:1px solid #d8e0e9;border-radius:50%}.ring-1{width:180px;height:180px}.ring-2{width:300px;height:300px;border-style:dashed}.ring-3{width:420px;height:420px}.method-center{width:150px;height:150px;background:var(--navy);color:#fff;border-radius:50%;display:flex;flex-direction:column;gap:.4rem;align-items:center;justify-content:center;text-align:center;z-index:2;box-shadow:0 18px 50px rgba(16,24,38,.18);font-weight:700}.method-center i{font-size:2rem;color:var(--ithaque-blue)}.method-tag{position:absolute;background:#fff;border:1px solid var(--line);box-shadow:0 8px 26px rgba(20,35,55,.08);padding:.65rem 1rem;border-radius:999px;font-weight:700;font-size:.84rem}.tag-1{top:25px;left:42%}.tag-2{right:10px;top:45%}.tag-3{bottom:25px;left:36%}.tag-4{left:15px;top:48%}.method-step{display:flex;gap:1.1rem;padding:1.3rem 0;border-top:1px solid var(--line)}.method-step>span{flex:0 0 38px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--accent);font-weight:800;color:#2f73c8}.method-step h3{font-size:1.05rem;font-weight:700;margin:.15rem 0 .35rem}.method-step p{margin:0;color:var(--slate);line-height:1.65}
.commitment-section{background:linear-gradient(135deg,#152238,#0a111d)}.commitment-card{height:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:1.5rem}.commitment-card i{font-size:1.55rem;color:var(--ithaque-blue)}.commitment-card h3{color:#fff;font-size:1.05rem;margin:1rem 0 .5rem}.commitment-card p{color:rgba(255,255,255,.55);font-size:.92rem;line-height:1.6;margin:0}.group-strip{background:#eef3f7;border-top:1px solid #dde5ec;border-bottom:1px solid #dde5ec}
.contact-section{background:#f8fafc}.contact-info{display:flex;gap:1rem;margin:1.3rem 0}.contact-info>i{width:44px;height:44px;border-radius:12px;background:#eef5fc;display:grid;place-items:center;color:#2f73c8}.contact-info strong,.contact-info span,.contact-info a{display:block}.contact-info span,.contact-info a{color:var(--slate);text-decoration:none;margin-top:.15rem}.contact-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:2rem;box-shadow:0 20px 50px rgba(24,39,58,.07)}.form-control,.form-select{min-height:50px;border-color:#d9e0e7;border-radius:11px}.form-control:focus,.form-select:focus{border-color:#2f73c8;box-shadow:0 0 0 .25rem rgba(47,115,200,.16)}textarea.form-control{min-height:140px}
footer{background:#070d16;color:#fff}.footer-logo{width:210px}.footer-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:#dbe9f8;margin-bottom:1rem}footer a{display:block;color:rgba(255,255,255,.56);text-decoration:none;margin:.55rem 0;font-size:.9rem}footer a:hover{color:#fff}.back-to-top{position:fixed;right:22px;bottom:22px;width:44px;height:44px;border-radius:12px;border:0;background:#182437;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.2);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s;z-index:1040}.back-to-top.show{opacity:1;visibility:visible;transform:none}
@media (max-width:991.98px){.navbar-collapse{padding:1rem 0 1.4rem}.hero{min-height:auto;padding:70px 0 95px}.hero h1{font-size:3.5rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card:nth-child(2){border-right:0}.stat-card:nth-child(-n+2){border-bottom:1px solid var(--line)}.method-visual{height:400px;transform:scale(.85)}.section{padding:80px 0}}
@media (max-width:575.98px){.brand-logo{width:180px}.navbar{min-height:74px}.hero{padding-top:55px}.hero h1{font-size:2.8rem}.hero-panel{padding:1.4rem}.hero-proof{gap:1rem!important}.stats-grid{grid-template-columns:1fr}.stat-card{border-right:0!important;border-bottom:1px solid var(--line)}.stat-card:last-child{border-bottom:0}.section{padding:68px 0}.section-title{font-size:2.25rem}.method-visual{height:310px;transform:scale(.68);margin:-25px 0}.contact-card{padding:1.25rem}}


/* === Rappels de la couleur ITHAQUE === */
::selection{background:rgba(47,115,200,.24);color:var(--ink)}
a:not(.btn):focus-visible,button:focus-visible,.form-control:focus-visible,.form-select:focus-visible{outline:2px solid var(--ithaque-blue);outline-offset:2px}
.navbar-nav .nav-link{position:relative}
.navbar-nav .nav-link:after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.28rem;height:2px;background:var(--ithaque-blue);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.navbar-nav .nav-link:hover:after,.navbar-nav .nav-link.active:after{transform:scaleX(1)}
.section-kicker{color:var(--ithaque-blue)}
.section-kicker-light{color:#8eb9e5}
.hero-panel-icon,.service-icon,.method-center i,.commitment-card i,.hero-proof i{color:var(--ithaque-blue)}
.mini-service i,.method-step>span,.contact-info>i{background:var(--ithaque-blue-soft);color:var(--ithaque-blue)}
.service-card:hover{border-color:rgba(47,115,200,.45);box-shadow:0 14px 40px rgba(0,0,0,.12)}
.service-card a:hover{color:#fff;text-decoration-color:var(--ithaque-blue)}
.contact-info a:hover,footer a:hover{color:var(--ithaque-blue-light)}
.form-control:focus,.form-select:focus{border-color:var(--ithaque-blue);box-shadow:0 0 0 .25rem rgba(47,115,200,.16)}
.back-to-top:hover{background:var(--ithaque-blue)}

/* ============================================
   EXPERTISE - VISUEL AGENT
============================================ */

.expertise-image-wrapper {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    min-height: 560px;
    background: var(--navy);
    box-shadow: 0 30px 70px rgba(10, 24, 45, 0.16);
}

.expertise-image {
    width: 100%;
    height: 100%;
    min-height: 560px;
    object-fit: cover;
    object-position: 62% center;
    display: block;
    transition: transform 0.7s ease;
}

.expertise-image-wrapper:hover .expertise-image {
    transform: scale(1.025);
}


/* Légère teinte pour raccorder la photo à l'identité ITHAQUE */

.expertise-image-wrapper::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            180deg,
            transparent 55%,
            rgba(10, 24, 45, 0.35) 100%
        );
    pointer-events: none;
}


/* Cartouche sur l'image */

.expertise-image-badge {
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 28px;
    z-index: 2;

    display: flex;
    align-items: center;
    gap: 15px;

    padding: 18px 20px;

    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    border-radius: 16px;

    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.14);
}

.expertise-image-badge i {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    flex-shrink: 0;

    color: #fff;
    font-size: 1.15rem;

    background: var(--ithaque-blue);
    border-radius: 12px;
}

.expertise-image-badge strong {
    display: block;
    color: var(--navy);
    font-size: 0.98rem;
}

.expertise-image-badge span {
    display: block;
    margin-top: 2px;
    color: #677487;
    font-size: 0.82rem;
}


/* Points expertise */

.expertise-point {
    height: 100%;
    display: flex;
    gap: 14px;
    align-items: flex-start;

    padding: 17px;

    background: #fff;
    border: 1px solid #e7edf4;
    border-radius: 14px;

    transition:
        border-color 0.25s ease,
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.expertise-point:hover {
    transform: translateY(-3px);
    border-color: rgba(47, 115, 200, 0.45);
    box-shadow: 0 10px 25px rgba(10, 24, 45, 0.07);
}

.expertise-point i {
    color: var(--ithaque-blue);
    font-size: 1.25rem;
    line-height: 1;
    margin-top: 3px;
}

.expertise-point strong {
    display: block;
    color: var(--navy);
    font-size: 0.92rem;
}

.expertise-point span {
    display: block;
    margin-top: 3px;
    color: #7a8594;
    font-size: 0.78rem;
    line-height: 1.35;
}


/* Responsive */

@media (max-width: 991.98px) {

    .expertise-image-wrapper,
    .expertise-image {
        min-height: 480px;
    }

}

@media (max-width: 575.98px) {

    .expertise-image-wrapper {
        min-height: 430px;
        border-radius: 20px;
    }

    .expertise-image {
        min-height: 430px;
    }

    .expertise-image-badge {
        left: 18px;
        right: 18px;
        bottom: 18px;
        padding: 14px;
    }

    .expertise-image-badge span {
        font-size: 0.75rem;
    }

}

/* ============================================
   NOTRE METHODE - VISUEL ANIMÉ
============================================ */

.method-visual {
    position: relative;
    width: 100%;
    max-width: 520px;
    height: 520px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Anneaux */

.method-orbit {
    position: absolute;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.orbit-outer {
    width: 420px;
    height: 420px;
    border: 3px solid rgba(47, 115, 200, 0.22);
    box-shadow: 0 0 0 1px rgba(47, 115, 200, 0.04) inset;
    animation: orbitRotateSlow 28s linear infinite;
}

.orbit-middle {
    width: 290px;
    height: 290px;
    border: 5px dashed rgba(47, 115, 200, 0.22);
    animation: orbitRotateReverse 22s linear infinite;
}

.orbit-inner {
    width: 170px;
    height: 170px;
    border: 3px solid rgba(16, 27, 44, 0.18);
    background: radial-gradient(circle, rgba(47,115,200,0.06) 0%, rgba(47,115,200,0.02) 55%, transparent 75%);
    animation: pulseRing 4.5s ease-in-out infinite;
}

/* Noyau central */

.method-core {
    position: relative;
    z-index: 3;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: linear-gradient(180deg, #111d31 0%, #0b1525 100%);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow:
        0 18px 40px rgba(10, 24, 45, 0.18),
        0 0 0 10px rgba(47, 115, 200, 0.06);
    animation: coreBreath 4s ease-in-out infinite;
}

.method-core::before {
    content: "";
    position: absolute;
    inset: -14px;
    border-radius: 50%;
    border: 1px solid rgba(47, 115, 200, 0.20);
}

.method-core-icon {
    font-size: 1.6rem;
    color: var(--ithaque-blue);
    line-height: 1;
    margin-bottom: 10px;
}

.method-core-text {
    text-align: center;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.25;
}

/* Étiquettes */

.orbit-label {
    position: absolute;
    z-index: 4;
    background: #fff;
    color: var(--navy);
    border: 1px solid #dbe4ef;
    border-radius: 999px;
    padding: 12px 18px;
    font-weight: 600;
    font-size: 0.95rem;
    box-shadow: 0 10px 24px rgba(10, 24, 45, 0.06);
    white-space: nowrap;
}

.orbit-label-top {
    top: 42px;
    left: 50%;
    transform: translateX(-50%);
    animation: floatY 4.5s ease-in-out infinite;
}

.orbit-label-right {
    top: 50%;
    right: -8px;
    transform: translateY(-50%);
    animation: floatX 4.8s ease-in-out infinite;
}

.orbit-label-bottom {
    bottom: 42px;
    left: 50%;
    transform: translateX(-50%);
    animation: floatY 5s ease-in-out infinite;
}

.orbit-label-left {
    top: 50%;
    left: -8px;
    transform: translateY(-50%);
    animation: floatX 5.2s ease-in-out infinite;
}

/* Petits points d’ancrage décoratifs */

.orbit-label-top::after,
.orbit-label-right::after,
.orbit-label-bottom::after,
.orbit-label-left::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    background: var(--ithaque-blue);
    border-radius: 50%;
    box-shadow: 0 0 0 8px rgba(47, 115, 200, 0.10);
}

.orbit-label-top::after {
    left: 50%;
    bottom: -18px;
    transform: translateX(-50%);
}

.orbit-label-right::after {
    left: -18px;
    top: 50%;
    transform: translateY(-50%);
}

.orbit-label-bottom::after {
    left: 50%;
    top: -18px;
    transform: translateX(-50%);
}

.orbit-label-left::after {
    right: -18px;
    top: 50%;
    transform: translateY(-50%);
}

/* Animations */

@keyframes orbitRotateSlow {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes orbitRotateReverse {
    from {
        transform: translate(-50%, -50%) rotate(360deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(0deg);
    }
}

@keyframes pulseRing {
    0%, 100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
    50% {
        transform: translate(-50%, -50%) scale(1.03);
        opacity: 0.9;
    }
}

@keyframes coreBreath {
    0%, 100% {
        transform: scale(1);
        box-shadow:
            0 18px 40px rgba(10, 24, 45, 0.18),
            0 0 0 10px rgba(47, 115, 200, 0.06);
    }
    50% {
        transform: scale(1.02);
        box-shadow:
            0 22px 48px rgba(10, 24, 45, 0.22),
            0 0 0 16px rgba(47, 115, 200, 0.09);
    }
}

@keyframes floatY {
    0%, 100% {
        margin-top: 0;
    }
    50% {
        margin-top: -6px;
    }
}

@keyframes floatX {
    0%, 100% {
        margin-left: 0;
    }
    50% {
        margin-left: 6px;
    }
}

/* Responsive */

@media (max-width: 1199.98px) {
    .method-visual {
        max-width: 470px;
        height: 470px;
    }

    .orbit-outer {
        width: 380px;
        height: 380px;
    }

    .orbit-middle {
        width: 260px;
        height: 260px;
    }

    .orbit-inner {
        width: 155px;
        height: 155px;
    }
}

@media (max-width: 991.98px) {
    .method-visual {
        margin-bottom: 40px;
    }
}

@media (max-width: 575.98px) {
    .method-visual {
        max-width: 320px;
        height: 320px;
    }

    .orbit-outer {
        width: 280px;
        height: 280px;
    }

    .orbit-middle {
        width: 200px;
        height: 200px;
    }

    .orbit-inner {
        width: 125px;
        height: 125px;
    }

    .method-core {
        width: 120px;
        height: 120px;
    }

    .method-core-text {
        font-size: 0.9rem;
    }

    .orbit-label {
        font-size: 0.8rem;
        padding: 9px 13px;
    }

    .orbit-label-top {
        top: 18px;
    }

    .orbit-label-bottom {
        bottom: 18px;
    }

    .orbit-label-left {
        left: -2px;
    }

    .orbit-label-right {
        right: -2px;
    }
}

/* Accessibilité : réduction des animations si demandé */

@media (prefers-reduced-motion: reduce) {
    .orbit-outer,
    .orbit-middle,
    .orbit-inner,
    .method-core,
    .orbit-label-top,
    .orbit-label-right,
    .orbit-label-bottom,
    .orbit-label-left {
        animation: none !important;
    }
}