/* Compatibility overrides, kept separate from the inherited multipage stylesheet. */
#cursor { display: none; }
@media (hover: hover) and (pointer: fine) {
    html.has-custom-cursor #cursor { display: flex; }
}
.word-blur-reveal__word { transition-delay: var(--word-delay, 0ms); }
.bubble-up-button__fill {
    -webkit-clip-path: ellipse(0% 0% at 50% 100%);
    transition: -webkit-clip-path 520ms cubic-bezier(.22,1,.36,1), clip-path 520ms cubic-bezier(.22,1,.36,1);
}
.bubble-up-button.is-bubble-filled .bubble-up-button__fill { -webkit-clip-path: ellipse(120% 120% at 50% 100%); }
.bubble-up-button.is-bubble-draining .bubble-up-button__fill { -webkit-clip-path: ellipse(120% 120% at 50% -120%); }
.bubble-up-button.is-bubble-resetting .bubble-up-button__fill { -webkit-clip-path: ellipse(0% 0% at 50% 100%); transition: none; }
.service .card .nt-service-title { color: var(--colorTitle); margin-bottom:20px; font-size:22px; font-weight:500; transition:.5s; }
.service .card:hover .nt-service-title,
.service .card.is-touch-active .nt-service-title,
.service .card:active .nt-service-title {
    color: var(--colorWhite);
    background: transparent;
}
body.hero-light .service {
    position: relative;
    isolation: isolate;
    z-index: 20;
}
body.hero-light .service + .text-message { z-index: 5; }
body.hero-light .service .card .nt-service-title { margin-bottom:14px; font-size:21px; line-height:1.18; }
.text-message h2 .solution-action-character {
    filter:blur(0); transform:translateY(0) scale(1); transform-origin:50% 70%;
    transition:opacity 420ms cubic-bezier(.22,1,.36,1),filter 340ms cubic-bezier(.22,1,.36,1),transform 620ms cubic-bezier(.16,1.18,.32,1);
    transition-delay:var(--solution-enter-delay,0ms);
}
.text-message h2 [data-solution-action-current].is-leaving .solution-action-character {
    filter:blur(12px); transform:translateY(-.2em) scale(.82); transition-duration:220ms,180ms,260ms; transition-delay:var(--solution-exit-delay,0ms);
}
.text-message h2 [data-solution-action-current].is-entering .solution-action-character { filter:blur(12px); transform:translateY(.55em) scale(.2); }
@media (hover:none), (pointer:coarse) {
    body.hero-light .service .card.is-touch-active .nt-service-title { color:var(--colorWhite); }
}
@media (max-width:991px) {
    body.hero-light .service .card,
    body.hero-light .service .card .text-star,
    body.hero-light .service .card .nt-service-title { text-align:left; }
    body.hero-light .service .card .nt-service-title {
        display:block;
        width:100%;
        margin:0 0 14px;
        padding:0;
        border-radius:0;
        background:transparent;
    }
    body.hero-light .service .card-consulting:hover { background:#28337a; }
    body.hero-light .service .card-web:hover { background:#332958; }
    body.hero-light .service .card-app-mobile:hover { background:#0a64ca; }
    body.hero-light .service .card-archivage:hover { background:#fa7fc3; }
    body.hero-light .service .card-marketing:hover { background:var(--secondaryColor); }
    body.hero-light .service .card-branding:hover { background:var(--purpleColor); }
    .text-message h2 .solution-action-word {
        margin-right:.04em;
        margin-left:.04em;
        transition:none;
    }

    .menu-responsive {
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        gap: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .menu-responsive .items,
    .menu-responsive .items .list-items,
    .mobile-products-dropdown,
    .mobile-products-dropdown details {
        width: 100%;
    }

    .menu-responsive .items .list-items .item,
    .mobile-products-dropdown__trigger {
        font-size: clamp(24px, 7vw, 34px);
        line-height: 1.18;
    }

    .mobile-products-dropdown__trigger {
        display: flex;
        width: 100%;
        min-height: 48px;
        align-items: center;
        justify-content: space-between;
        padding: 6px 0;
    }

    .mobile-products-dropdown__menu {
        width: 100%;
        box-sizing: border-box;
    }

    .menu-responsive .items .list-items .item .mobile-products-dropdown__menu a {
        min-height: 48px;
        font-size: 16px;
        line-height: 1.3;
    }

    .mobile-menu-contact {
        margin-top: 20px;
    }

    .menu-responsive .mobile-menu-contact .list-items .item {
        font-size: 16px;
        line-height: 1.4;
        letter-spacing: 0;
    }

    .menu-responsive .mobile-menu-contact .list-items .item a {
        overflow-wrap: anywhere;
    }

    .menu-responsive .network {
        flex: 0 0 auto;
        padding-bottom: env(safe-area-inset-bottom);
    }
}
@media (prefers-reduced-motion:reduce) {
    .text-message h2 .solution-action-character { filter:none; transform:none; transition:none; }
}

.entreprise-proof__intro { max-width:680px; margin:0 0 30px; font-size:clamp(1rem,1.6vw,1.35rem); line-height:1.55; color:#34343b; font-weight:400; }
.all-services .block-item-service h4 { font-weight:400; }
.all-services .block-item-service .block-img { position:relative; isolation:isolate; background:#eef2f8; }
.all-services .block-item-service .block-img::after {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 76% 16%, rgba(255,255,255,.42), transparent 40%),
        linear-gradient(132deg, rgba(40,35,95,.16), transparent 48%, rgba(9,157,219,.14));
    mix-blend-mode:screen;
    opacity:.72;
}
.all-services .block-item-service .block-img img { filter:saturate(.98) contrast(1.04) brightness(1.03); transition:filter .45s ease,transform .6s cubic-bezier(.22,1,.36,1); }
.all-services .block-item-service .block-img:hover img { filter:saturate(1.06) contrast(1.06) brightness(1.06); transform:scale(1.025); }
.all-services .block-item-service .block-img--phone { background:linear-gradient(145deg,#eef5f9,#dfe8f2); }
.all-services .block-item-service .block-img--phone img { object-fit:contain; padding:12px; }
.banner-service h1 { font-size:clamp(2.35rem,4.8vw,4.6rem); font-weight:400; line-height:1.02; letter-spacing:-.05em; }
@media (max-width:767px) {
    .entreprise-hero__media img { transform:scale(.82); transform-origin:center 38%; object-position:58% center; }
    .entreprise-hero__content .container { padding-right:20px; padding-left:20px; }
    .entreprise-hero h1 { max-width:350px; margin:0; font-size:clamp(22px,7.8vw,30px); font-weight:400; line-height:1.08; letter-spacing:-.042em; text-align:left; }
    .entreprise-proof { min-height:0; padding:72px 0 88px; border-radius:0 0 48px 48px; }
    .entreprise-proof .container { padding-right:20px; padding-left:20px; }
    .entreprise-proof__intro { width:100%; max-width:350px; margin:0 0 28px; font-size:clamp(18px,5.2vw,22px); line-height:1.35; letter-spacing:-.02em; text-align:left; }
    .entreprise-proof .about-statement { width:100%; max-width:350px; margin:0; font-size:clamp(18px,5.2vw,22px); line-height:1.35; letter-spacing:-.02em; text-align:left; }
    .entreprise-page .text-message { padding:72px 20px; }
    .entreprise-page .text-message .container-fluid { padding-right:0; padding-left:0; }
    .entreprise-page .text-message .text-center { text-align:center; }
    .entreprise-page .text-message h2 { width:min(100%,350px); max-width:none; margin:0 auto; font-size:clamp(30px,8.3vw,35px); line-height:1.08; text-align:center; text-wrap:balance; }
    .entreprise-page .origin-footer-shell { padding-right:0; padding-left:0; }
    .entreprise-page .origin-footer__content { padding-right:20px; padding-left:20px; }
    .banner-service h1 { font-size:clamp(2rem,9vw,3rem); font-weight:400; line-height:1.06; letter-spacing:-.045em; }
}

@media (max-width:576px) {
    /* Services: preserve the desktop/tablet layering while fitting the mobile grid. */
    body.hero-light .all-services + .partenaires {
        position:relative;
        z-index:3;
        margin-top:-72px;
        padding-top:128px;
        border-radius:32px 32px 0 0;
    }

    body.hero-light .text-message h2 .text-hover + .content-video {
        width:56px;
        height:56px;
        margin:0 0 0 10px;
        vertical-align:middle;
    }

    body.hero-light .block-contact-us + .origin-footer-shell {
        margin-top:0;
        padding-top:72px;
    }

    .origin-footer__content { grid-template-columns:minmax(0, .7fr) minmax(0, 1fr); gap:38px 24px; }
    .origin-footer__brand-column { grid-column:1 / -1; grid-row:1; }
    footer.origin-footer .origin-footer__navigation { grid-column:1; grid-row:2; justify-self:start; }
    .origin-footer__connect { grid-column:2; grid-row:2; min-width:0; justify-self:end; }
    .origin-footer__qr-link { padding:6px; border-radius:16px; }
    .origin-footer__qr-link img { width:116px; height:116px; border-radius:11px; }
    .origin-footer__connect .origin-footer__social { gap:7px; margin-top:12px; }
    footer.origin-footer .origin-footer__connect .origin-footer__social a { width:30px; height:30px; }
}
