/* ===================================================== */
/* Q-CORE CONSULTING */
/* STYLE COMPLET */
/* ===================================================== */


/* ===================================================== */
/* VARIABLES */
/* ===================================================== */

:root {

    --black: #111111;

    --gold: #C5A24A;

    --gold-dark: #A88A39;

    --bg: #F8F4EC;

    --white: #FFFDF9;

    --grey: #77736C;

    --line: rgba(17, 17, 17, .11);

}


/* ===================================================== */
/* RESET */
/* ===================================================== */

* {
    margin: 0;
    padding: 0;

    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {
    margin: 0;

    background: var(--bg);

    color: var(--black);

    font-family:
        "Helvetica Neue",
        Helvetica,
        Arial,
        sans-serif;

    overflow-x: hidden;
}


img {
    max-width: 100%;
}


a {
    color: inherit;
}


button,
input,
textarea,
select {
    font-family: inherit;
}


/* ===================================================== */
/* GLOBAL */
/* ===================================================== */

.section-inner {
    width: 86%;

    max-width: 1500px;

    margin: auto;
}


.eyebrow {
    margin: 0;

    color: var(--gold-dark);

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 5px;
}


/* ===================================================== */
/* REVEAL */
/* ===================================================== */

.reveal {
    opacity: 0;

    transform: translateY(35px);

    transition:
        opacity .9s ease,
        transform .9s cubic-bezier(.22, .61, .36, 1);
}


.reveal.active {
    opacity: 1;

    transform: translateY(0);
}



/* ===================================================== */
/* 01 — HERO */
/* ===================================================== */

.hero {
    width: 100%;

    height: 100vh;

    min-height: 720px;

    position: relative;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    background:
        radial-gradient(
            circle at 50% 45%,
            rgba(197,162,74,.05),
            transparent 34%
        ),
        var(--bg);

    overflow: hidden;
}


/* LOGO */

.hero-logo-wrap {
    width: 175px;
    height: 175px;

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;
}


.hero-logo-wrap::before {
    content: "";

    width: 230px;
    height: 230px;

    position: absolute;

    border-radius: 50%;

    border: 1px solid rgba(197,162,74,.12);

    opacity: 0;

    transform: scale(.7);

    transition:
        opacity 1.2s ease,
        transform 1.2s ease;
}


.hero-logo-wrap::after {
    content: "";

    width: 300px;
    height: 300px;

    position: absolute;

    border-radius: 50%;

    border: 1px solid rgba(197,162,74,.07);

    opacity: 0;

    transform: scale(.7);

    transition:
        opacity 1.4s ease,
        transform 1.4s ease;
}


.hero-logo-wrap.power-on::before,
.hero-logo-wrap.power-on::after {
    opacity: 1;

    transform: scale(1);
}


.hero-logo {
    width: 155px;

    position: relative;

    z-index: 3;

    opacity: 0;

    transform: scale(.85);

    transition:
        opacity 1s ease,
        transform 1.3s cubic-bezier(.22,.61,.36,1),
        filter 1s ease;
}


.hero-logo.visible {
    opacity: 1;

    transform: scale(1);
}


.hero-logo.power-on {
    filter:
        drop-shadow(0 10px 35px rgba(197,162,74,.18));
}


/* BRAND */

.hero-brand {
    margin-top: 35px;

    text-align: center;

    opacity: 0;

    transform: translateY(20px);

    transition:
        opacity 1s ease,
        transform 1s ease;
}


.hero-brand.visible {
    opacity: 1;

    transform: translateY(0);
}


.hero-brand h1 {
    margin: 0;

    font-size: clamp(22px, 2.4vw, 34px);

    font-weight: 500;

    letter-spacing: 8px;
}


.gold-line {
    width: 75px;
    height: 1px;

    margin: 20px auto;

    background: var(--gold);
}


.hero-brand > p {
    margin: 0;

    color: var(--grey);

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 5px;
}


.hero-brand > p span {
    margin: 0 12px;

    color: var(--gold);
}


/* HERO CTA */

.hero-contact-btn {
    width: fit-content;

    min-width: 270px;
    height: 60px;

    margin: 32px auto 0;

    padding: 0 9px 0 27px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 28px;

    border:
        1px solid rgba(197,162,74,.75);

    border-radius: 100px;

    background:
        rgba(255,255,255,.10);

    color: var(--black);

    text-decoration: none;

    transition:
        transform .4s ease,
        color .4s ease,
        background .4s ease,
        box-shadow .4s ease;
}


.hero-contact-btn span {
    font-size: 8px;

    font-weight: 600;

    letter-spacing: 3px;
}


.hero-contact-btn i {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: var(--gold);

    color: var(--white);

    font-size: 18px;

    font-style: normal;

    transition:
        background .4s ease,
        transform .4s ease;
}


.hero-contact-btn:hover {
    background: var(--gold);

    color: white;

    transform: translateY(-4px);

    box-shadow:
        0 15px 35px rgba(197,162,74,.16);
}


.hero-contact-btn:hover i {
    background: var(--black);

    transform:
        translateX(3px)
        rotate(-25deg);
}


/* SCROLL */

.scroll-indicator {
    position: absolute;

    bottom: 32px;

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 6px;

    color: var(--grey);

    text-decoration: none;

    opacity: 0;

    transition: opacity 1s ease;
}


.scroll-indicator.visible {
    opacity: 1;
}


.scroll-indicator span {
    font-size: 7px;

    letter-spacing: 4px;
}


.arrow {
    color: var(--gold);

    font-size: 20px;

    animation:
        scrollArrow 1.7s ease-in-out infinite;
}


@keyframes scrollArrow {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(7px);
    }

}



/* ===================================================== */
/* 02 — POSITIONNEMENT */
/* ===================================================== */

.positioning {
    min-height: 100vh;

    position: relative;

    display: flex;

    align-items: center;

    padding: 120px 0;

    overflow: hidden;
}


.positioning-background {
    position: absolute;

    inset: 0;

    pointer-events: none;
}


.positioning-q {
    position: absolute;

    width: clamp(500px, 50vw, 900px);

    right: -8%;

    top: 48%;

    transform: translateY(-50%);

    opacity: .026;

    filter:
        grayscale(1)
        brightness(.5);
}


/* HEARTBEAT */

.heartbeat {
    position: absolute;

    top: 67%;

    width: 68%;
    height: 250px;

    transform: translateY(-50%);

    overflow: visible;

    z-index: 4;

    pointer-events: none;
}


.heartbeat-left {
    left: 27%;
}


.heartbeat-right {
    right: -15%;
}


.heartbeat-line {
    fill: none;

    stroke: var(--gold);

    vector-effect: non-scaling-stroke;

    stroke-linecap: round;

    stroke-linejoin: round;
}


.heartbeat-main {
    stroke-width: 1.2;

    opacity: .32;
}


.heartbeat-soft {
    stroke-width: .65;

    opacity: .11;
}


/* DOTS */

.promise-dot {
    position: absolute;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: var(--gold);

    opacity: .35;
}


.promise-dot-1 {
    left: 19%;
    top: 24%;
}


.promise-dot-2 {
    left: 74%;
    top: 19%;
}


.promise-dot-3 {
    right: 13%;
    top: 52%;
}


.promise-dot-4 {
    left: 22%;
    bottom: 19%;
}


.promise-dot-5 {
    right: 27%;
    bottom: 13%;
}


/* CONTENT */

.positioning-content {
    position: relative;

    z-index: 5;
}


.positioning-title {
    max-width: 1100px;

    margin: 30px 0 0;

    font-size:
        clamp(65px, 8vw, 135px);

    font-weight: 400;

    line-height: .9;

    letter-spacing: -7px;
}


.positioning-title span {
    color: var(--gold-dark);
}


.positioning-text {
    max-width: 610px;

    margin: 45px 0 0;

    color: var(--grey);

    font-size: 15px;

    line-height: 1.8;
}



/* ===================================================== */
/* 03 — EXPERTISE */
/* ===================================================== */

.expertise {
    min-height: 100vh;

    padding: 130px 7%;

    background:
        rgba(255,253,249,.45);
}


.expertise-heading {
    max-width: 1500px;

    margin: 0 auto 75px;
}


.expertise-heading h2 {
    margin-top: 25px;

    font-size:
        clamp(55px, 5vw, 85px);

    font-weight: 400;

    line-height: .96;

    letter-spacing: -4px;
}


.expertise-heading h2 span {
    color: var(--gold-dark);
}


.expertise-grid {
    max-width: 1500px;

    margin: auto;

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    border-top: 1px solid var(--line);

    border-bottom:
        1px solid var(--line);
}


.expertise-card {
    min-height: 410px;

    position: relative;

    padding:
        45px 35px
        38px;

    border-right:
        1px solid var(--line);

    transition:
        transform .4s ease,
        background .4s ease;
}


.expertise-card:last-child {
    border-right: 0;
}


.expertise-card:hover {
    background:
        rgba(255,255,255,.45);

    transform:
        translateY(-8px);
}


.expertise-icon {
    width: 55px;
    height: 55px;

    margin-bottom: 55px;
}


.expertise-icon svg {
    width: 100%;
    height: 100%;

    fill: none;

    stroke: var(--gold-dark);

    stroke-width: 1.5;

    stroke-linecap: round;

    stroke-linejoin: round;
}


.expertise-number {
    display: block;

    margin-bottom: 18px;

    color: var(--gold);

    font-size: 8px;

    letter-spacing: 4px;
}


.expertise-card h3 {
    margin: 0 0 20px;

    font-size: 34px;

    font-weight: 400;

    line-height: 1;
}


.expertise-card p {
    max-width: 240px;

    color: var(--grey);

    font-size: 12px;

    line-height: 1.65;
}



/* ===================================================== */
/* 04 — METHOD */
/* ===================================================== */

.method {
    min-height: 100vh;

    padding: 130px 7%;

    position: relative;
}


.method-container {
    max-width: 1500px;

    margin: auto;
}


.method-title {
    margin-top: 25px;

    font-size:
        clamp(60px, 6.2vw, 105px);

    font-weight: 400;

    line-height: .92;

    letter-spacing: -5px;
}


.method-title span {
    color: var(--gold-dark);
}


.method-intro {
    max-width: 500px;

    margin: 35px 0 0;

    color: var(--grey);

    font-size: 14px;

    line-height: 1.8;
}


.method-flow {
    margin-top: 110px;

    position: relative;

    display: grid;

    grid-template-columns:
        repeat(4,1fr);

    gap: 45px;
}


.method-line {
    position: absolute;

    left: 8%;
    right: 8%;

    top: 46px;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(197,162,74,.65),
            rgba(197,162,74,.65),
            transparent
        );
}


.method-step {
    position: relative;

    z-index: 2;

    text-align: center;
}


.method-icon {
    width: 92px;
    height: 92px;

    margin: 0 auto 30px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: var(--bg);

    border:
        1px solid rgba(197,162,74,.5);

    transition:
        transform .4s ease,
        background .4s ease;
}


.method-step:hover .method-icon {
    transform: scale(1.13);

    background: var(--white);
}


.method-icon svg {
    width: 42px;
    height: 42px;

    fill: none;

    stroke: var(--gold-dark);

    stroke-width: 1.5;

    stroke-linecap: round;

    stroke-linejoin: round;
}


.method-step h3 {
    margin-bottom: 12px;

    font-size: 24px;

    font-weight: 400;
}


.method-step p {
    max-width: 220px;

    margin: auto;

    color: var(--grey);

    font-size: 11px;

    line-height: 1.6;
}



/* ===================================================== */
/* 05 — DATA */
/* ===================================================== */

.data-section {
    min-height: 100vh;
    position: relative;
    padding: 120px 4% 90px;
    overflow: hidden;
    background: rgba(255,253,249,.4);
}


/* ===================================================== */
/* TITRE */
/* ===================================================== */

.data-heading {
    max-width: 1500px;
    margin: auto;
    text-align: center;
}


.data-heading h2 {
    margin-top: 23px;

    font-size:
        clamp(55px, 6vw, 100px);

    font-weight: 400;

    line-height: .94;

    letter-spacing: -5px;
}


.data-heading h2 span {
    display: block;

    color: var(--gold-dark);
}


.data-intro {
    max-width: 900px;

    margin: 28px auto 0;

    color: var(--grey);

    font-size: 15px;

    line-height: 1.8;

    text-align: center;
}


/* ===================================================== */
/* SCÈNE */
/* ===================================================== */

.data-scene {
    width: 100%;

    max-width: 1250px;

    height: 500px;

    margin: 65px auto 0;

    position: relative;

    display: grid;

    /*
       QUALITÉ
       petite zone de vague
       Q/DATA
       petite zone de vague
       PERFORMANCE
    */

    grid-template-columns:
        300px
        130px
        290px
        130px
        300px;

    align-items: center;

    justify-content: center;

    gap: 0;
}


/* ===================================================== */
/* CARTES BLANCHES */
/* ===================================================== */

.data-side {
    width: 300px;

    min-height: 390px;

    position: relative;

    z-index: 20;

    padding: 46px 30px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    background:
        rgba(255,255,255,.97);

    border:
        1px solid rgba(255,255,255,.95);

    border-radius: 28px;

    box-shadow:
        0 28px 70px
        rgba(17,17,17,.075);

    text-align: center;

    overflow: hidden;

    transition:
        transform .45s cubic-bezier(.2,.8,.2,1),
        box-shadow .45s ease,
        background .45s ease;
}


/* QUALITÉ */

.data-quality {
    justify-self: end;
}


/* PERFORMANCE */

.data-performance {
    justify-self: start;

    text-align: center;
}


/* HOVER */

.data-side:hover {
    transform:
        translateY(-7px)
        scale(1.025);

    background: #FFFFFF;

    box-shadow:
        0 36px 90px
        rgba(17,17,17,.11);
}


/* ===================================================== */
/* CONTENU DES CARTES */
/* ===================================================== */

.side-number {
    display: block;

    margin-bottom: 18px;

    color: var(--gold);

    font-size: 9px;

    letter-spacing: 5px;
}


.data-side h3 {
    width: 100%;

    margin: 0;

    color: var(--black);

    font-size: 27px;

    font-weight: 400;

    line-height: 1.1;

    letter-spacing: 3px;

    text-align: center;

    white-space: nowrap;
}


/* ===================================================== */
/* PETITE LIGNE DORÉE */
/* ===================================================== */

.side-line {
    width: 48px;

    height: 1px;

    flex: 0 0 1px;

    margin: 27px auto;

    background: var(--gold);
}


/* ===================================================== */
/* TEXTE PRINCIPAL */
/* ===================================================== */

.data-side > p {
    width: 100%;

    max-width: 225px;

    margin: 0 auto;

    color: var(--black);

    font-size: 14px;

    line-height: 1.65;

    text-align: center;
}


/* ===================================================== */
/* LISTES */
/* ===================================================== */

.data-side ul {
    width: 100%;

    margin: 28px 0 0;

    padding: 0;

    list-style: none;
}


.data-side li {
    width: 100%;

    margin: 14px 0;

    padding: 0;

    color: var(--grey);

    font-size: 12px;

    line-height: 1.5;

    text-align: center;
}


.data-side li::before {
    content: "•";

    position: static;

    display: inline-block;

    margin-right: 8px;

    color: var(--gold);

    background: none;

    font-size: 13px;
}


/* PERFORMANCE CENTRÉE */

.data-performance .side-line {
    margin-left: auto;

    margin-right: auto;
}


.data-performance li {
    padding-left: 0;

    padding-right: 0;
}


.data-performance li::before {
    position: static;
}


/* ===================================================== */
/* VAGUES */
/* ===================================================== */

.data-network {
    width: 100%;

    height: 320px;

    position: relative;

    z-index: 5;

    overflow: visible;

    pointer-events: none;
}


.data-network svg {
    width: 100%;

    height: 100%;

    display: block;

    overflow: visible;
}


/* ===================================================== */
/* TRAITS DES VAGUES */
/* ===================================================== */

.data-wave {
    fill: none;

    stroke: var(--gold);

    stroke-width: 1.15;

    stroke-linecap: round;

    stroke-linejoin: round;

    stroke-dasharray: none !important;

    stroke-dashoffset: 0 !important;

    opacity: .34;

    vector-effect:
        non-scaling-stroke;
}


/* PAS DE MAILLAGE */

.mesh-line {
    display: none !important;
}


/* PAS DE GROS POINTS */

.data-node {
    display: none !important;
}


/* ===================================================== */
/* VAGUE GAUCHE */
/* Q → QUALITÉ */
/* ===================================================== */

.data-quality + .data-network {
    transform-origin: right center;

    animation:
        qWaveLeft
        3s
        ease-out
        infinite;
}


@keyframes qWaveLeft {

    0%,
    5% {
        clip-path:
            inset(0 0 0 100%);

        opacity: 0;
    }


    10% {
        clip-path:
            inset(0 0 0 94%);

        opacity: .55;
    }


    20% {
        clip-path:
            inset(0 0 0 72%);

        opacity: .9;
    }


    36% {
        clip-path:
            inset(0 0 0 43%);

        opacity: .72;
    }


    52% {
        clip-path:
            inset(0 0 0 15%);

        opacity: .5;
    }


    64% {
        clip-path:
            inset(0 0 0 0);

        opacity: .32;
    }


    78% {
        clip-path:
            inset(0 0 0 0);

        opacity: 0;
    }


    100% {
        clip-path:
            inset(0 0 0 100%);

        opacity: 0;
    }

}


/* ===================================================== */
/* VAGUE DROITE */
/* Q → PERFORMANCE */
/* ===================================================== */

.data-core + .data-network {
    transform-origin: left center;

    animation:
        qWaveRight
        3s
        ease-out
        infinite;
}


@keyframes qWaveRight {

    0%,
    5% {
        clip-path:
            inset(0 100% 0 0);

        opacity: 0;
    }


    10% {
        clip-path:
            inset(0 94% 0 0);

        opacity: .55;
    }


    20% {
        clip-path:
            inset(0 72% 0 0);

        opacity: .9;
    }


    36% {
        clip-path:
            inset(0 43% 0 0);

        opacity: .72;
    }


    52% {
        clip-path:
            inset(0 15% 0 0);

        opacity: .5;
    }


    64% {
        clip-path:
            inset(0 0 0 0);

        opacity: .32;
    }


    78% {
        clip-path:
            inset(0 0 0 0);

        opacity: 0;
    }


    100% {
        clip-path:
            inset(0 100% 0 0);

        opacity: 0;
    }

}


/* ===================================================== */
/* Q / DATA CENTRAL */
/* ===================================================== */

.data-core {
    width: 290px;

    height: 290px;

    position: relative;

    z-index: 30;

    display: flex;

    align-items: center;

    justify-content: center;
}


/* ===================================================== */
/* CERCLES AUTOUR DU Q */
/* ===================================================== */

.data-core-ring {
    position: absolute;

    left: 50%;

    top: 50%;

    border-radius: 50%;

    border:
        1px solid
        rgba(197,162,74,.30);

    pointer-events: none;

    opacity: 0;

    animation:
        qDataPulse
        3s
        ease-out
        infinite;
}


.data-core-ring-1 {
    width: 220px;

    height: 220px;

    animation-delay: 0s;
}


.data-core-ring-2 {
    width: 255px;

    height: 255px;

    animation-delay: .10s;
}


.data-core-ring-3 {
    width: 290px;

    height: 290px;

    animation-delay: .20s;
}


/* ===================================================== */
/* PULSATION DES CERCLES */
/* ===================================================== */

@keyframes qDataPulse {

    0% {
        transform:
            translate(-50%, -50%)
            scale(.78);

        opacity: 0;
    }


    7% {
        opacity: .8;
    }


    20% {
        opacity: .4;
    }


    50% {
        transform:
            translate(-50%, -50%)
            scale(1.20);

        opacity: 0;
    }


    100% {
        transform:
            translate(-50%, -50%)
            scale(1.20);

        opacity: 0;
    }

}


/* ===================================================== */
/* CERCLE CENTRAL */
/* ===================================================== */

.data-core-circle {
    width: 225px;

    height: 225px;

    position: relative;

    z-index: 5;

    border-radius: 50%;

    background: #FFFDF9;

    border:
        1px solid
        rgba(197,162,74,.72);

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    box-shadow:
        0 22px 65px
        rgba(17,17,17,.06);

    animation:
        qDataCircleBeat
        3s
        ease-in-out
        infinite;
}


/* ===================================================== */
/* BATTEMENT DU CERCLE */
/* ===================================================== */

@keyframes qDataCircleBeat {

    0%,
    100% {
        transform: scale(1);
    }


    7% {
        transform: scale(1.035);
    }


    12% {
        transform: scale(1);
    }


    17% {
        transform: scale(1.018);
    }


    23% {
        transform: scale(1);
    }

}


/* ===================================================== */
/* VRAI LOGO Q */
/* ===================================================== */

.data-core-logo {
    width: 94px;

    height: auto;

    object-fit: contain;

    animation:
        qDataLogoBeat
        3s
        ease-in-out
        infinite;
}


/* ===================================================== */
/* BATTEMENT DU LOGO */
/* ===================================================== */

@keyframes qDataLogoBeat {

    0%,
    100% {
        transform: scale(1);
    }


    7% {
        transform: scale(1.10);
    }


    13% {
        transform: scale(1);
    }


    18% {
        transform: scale(1.05);
    }


    24% {
        transform: scale(1);
    }

}


/* ===================================================== */
/* LIGNE SOUS LE Q */
/* ===================================================== */

.data-core-divider {
    width: 45px;

    height: 1px;

    margin:
        15px 0 11px;

    background: var(--gold);
}


/* ===================================================== */
/* DATA PLUS GRAND */
/* ===================================================== */

.data-core-word {
    color: var(--gold-dark);

    font-size: 17px;

    font-weight: 600;

    line-height: 1;

    letter-spacing: 8px;
}


/* ===================================================== */
/* RÉSULTATS */
/* ===================================================== */

.data-results {
    max-width: 1250px;

    margin: 55px auto 0;

    padding-top: 35px;

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    border-top:
        1px solid var(--line);
}


.data-result {
    display: flex;

    gap: 18px;

    padding:
        0 28px;

    border-right:
        1px solid var(--line);
}


.data-result:first-child {
    padding-left: 0;
}


.data-result:last-child {
    padding-right: 0;

    border-right: 0;
}


/* ===================================================== */
/* ICÔNES RÉSULTATS */
/* ===================================================== */

.data-result-icon {
    width: 38px;

    height: 38px;

    flex:
        0 0 38px;
}


.data-result-icon svg {
    width: 100%;

    height: 100%;

    fill: none;

    stroke:
        var(--gold-dark);

    stroke-width: 1.3;

    stroke-linecap: round;

    stroke-linejoin: round;
}


/* ===================================================== */
/* TEXTE RÉSULTATS */
/* ===================================================== */

.data-result h4 {
    margin-bottom: 6px;

    font-size: 13px;

    font-weight: 500;
}


.data-result p {
    color: var(--grey);

    font-size: 9px;

    line-height: 1.5;
}


/* ===================================================== */
/* TABLETTE */
/* ===================================================== */

@media (max-width: 1250px) {

    .data-scene {
        width: 100%;

        grid-template-columns:
            265px
            85px
            240px
            85px
            265px;
    }


    .data-side {
        width: 265px;

        padding:
            40px 24px;
    }


    .data-side h3 {
        font-size: 23px;

        letter-spacing: 2px;
    }


    .data-core {
        width: 240px;

        height: 240px;
    }


    .data-core-circle {
        width: 190px;

        height: 190px;
    }


    .data-core-logo {
        width: 78px;
    }


    .data-core-word {
        font-size: 14px;

        letter-spacing: 6px;
    }

}


/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width: 850px) {

    .data-section {
        padding:
            90px 22px;
    }


    .data-scene {
        width: 100%;

        height: auto;

        margin-top: 55px;

        display: flex;

        flex-direction: column;

        align-items: center;

        gap: 45px;
    }


    .data-side {
        width:
            min(400px, 100%);

        min-height: 340px;
    }


    .data-quality {
        order: 1;
    }


    .data-core {
        width: 260px;

        height: 260px;

        order: 2;

        margin: auto;
    }


    .data-performance {
        order: 3;
    }


    /* PAS DE VAGUES SUR MOBILE */

    .data-network {
        display: none;
    }


    .data-core-circle {
        width: 205px;

        height: 205px;
    }


    .data-results {
        grid-template-columns:
            repeat(2, 1fr);

        gap: 30px;
    }


    .data-result {
        padding: 0;

        border-right: 0;
    }

}


/* ===================================================== */
/* PETIT MOBILE */
/* ===================================================== */

@media (max-width: 600px) {

    .data-heading h2 {
        font-size: 49px;

        letter-spacing: -3px;
    }


    .data-results {
        grid-template-columns: 1fr;
    }

}
/* ===================================================== */
/* 06 — EXPERIENCE */
/* ===================================================== */

.experience-section {
    min-height: 100vh;

    position: relative;

    padding:
        120px 7%
        75px;

    overflow: hidden;
}


.experience-inner {
    max-width: 1500px;

    margin: auto;

    position: relative;

    display: grid;

    grid-template-columns:
        .9fr 1.1fr;

    gap: 120px;

    align-items: center;
}


.experience-index {
    display: block;

    margin-bottom: 16px;

    color: var(--gold);

    font-size: 9px;

    letter-spacing: 6px;
}


.experience-number-wrap {
    margin-top: 35px;

    display: flex;

    align-items: flex-start;
}


.experience-plus {
    margin-top: 14px;

    color: var(--gold);

    font-size: 35px;

    font-weight: 300;
}


.experience-number {
    font-size:
        clamp(110px, 12vw, 190px);

    font-weight: 300;

    line-height: .8;

    letter-spacing: -12px;
}


.experience-years {
    margin-top: 20px;

    font-size: 9px;

    letter-spacing: 5px;
}


.experience-small-line {
    width: 60px;
    height: 1px;

    margin: 30px 0;

    background: var(--gold);
}


.experience-main h2 {
    font-size:
        clamp(45px, 4vw, 70px);

    font-weight: 400;

    line-height: .96;

    letter-spacing: -3px;
}


.experience-main h2 span {
    color: var(--gold-dark);
}


/* SKILLS */

.experience-skills {
    border-top:
        1px solid var(--line);
}


.skill-item {
    min-height: 135px;

    padding:
        25px 0;

    display: grid;

    grid-template-columns:
        60px 1fr;

    gap: 25px;

    align-items: center;

    border-bottom:
        1px solid var(--line);
}


.skill-icon {
    width: 52px;
    height: 52px;
}


.skill-icon svg {
    width: 100%;
    height: 100%;

    fill: none;

    stroke: var(--gold-dark);

    stroke-width: 1.35;

    stroke-linecap: round;

    stroke-linejoin: round;
}


.skill-number {
    color: var(--gold);

    font-size: 7px;

    letter-spacing: 3px;
}


.skill-item h3 {
    margin: 7px 0;

    font-size: 22px;

    font-weight: 400;
}


.skill-item p {
    max-width: 520px;

    color: var(--grey);

    font-size: 11px;

    line-height: 1.6;
}


/* DECORATION */

.experience-decoration {
    position: absolute;

    width: 570px;
    height: 570px;

    left: -230px;

    top: 50%;

    transform:
        translateY(-50%);

    pointer-events: none;

    opacity: .35;
}


.experience-circle {
    position: absolute;

    border-radius: 50%;

    border:
        1px solid rgba(197,162,74,.12);
}


.circle-one {
    inset: 0;
}


.circle-two {
    inset: 70px;
}


.circle-three {
    inset: 145px;
}


.experience-decoration-logo {
    width: 190px;

    position: absolute;

    left: 50%;
    top: 50%;

    transform:
        translate(-50%,-50%);

    opacity: .06;

    filter:
        grayscale(1);
}


/* QUOTE */

.experience-quote {
    max-width: 1500px;

    margin:
        90px auto 0;

    padding-top: 35px;

    border-top:
        1px solid var(--line);

    display: flex;

    gap: 18px;

    align-items: flex-start;
}


.quote-symbol {
    color: var(--gold);

    font-size: 45px;

    line-height: .8;
}


.experience-quote p {
    max-width: 950px;

    font-size:
        clamp(20px, 2vw, 32px);

    font-weight: 300;

    line-height: 1.4;
}



/* ===================================================== */
/* 07 — PRESENCE */
/* ===================================================== */

.presence-section {
    min-height: 100vh;

    padding:
        120px 5% 85px;

    overflow: hidden;

    background:
        rgba(255,253,249,.38);
}


.presence-container {
    max-width: 1650px;

    margin: auto;

    display: grid;

    grid-template-columns:
        .72fr 1.28fr;

    gap: 60px;

    align-items: center;
}


/* ===================================================== */
/* 07 — PRESENCE — TEXTES GAUCHE PLUS GRANDS */
/* ===================================================== */


/* NUMÉRO 07 */

.presence-number {
    display: block;

    margin-bottom: 17px;

    color: var(--gold);

    font-size: 10px;

    letter-spacing: 6px;
}


/* TITRE PRINCIPAL */

.presence-title {
    margin-top: 24px;

    font-size:
        clamp(58px, 5vw, 88px);

    font-weight: 400;

    line-height: .94;

    letter-spacing: -4px;
}


.presence-title span {
    color: var(--gold-dark);
}


/* TEXTE SOUS LE TITRE */

.presence-intro {
    margin-top: 28px;

    color: var(--grey);

    font-size: 16px;

    line-height: 1.7;
}


/* ===================================================== */
/* LISTE DES PAYS */
/* ===================================================== */

.presence-locations {
    margin-top: 55px;

    border-top:
        1px solid var(--line);
}


/* CHAQUE LIGNE */

.mini-location {
    min-height: 105px;

    display: grid;

    grid-template-columns:
        42px
        20px
        1fr;

    gap: 18px;

    align-items: center;

    border-bottom:
        1px solid var(--line);
}


/* ===================================================== */
/* 01 / 02 / 03 */
/* ===================================================== */

.mini-location-index {
    color: var(--gold);

    font-size: 9px;

    font-weight: 500;

    letter-spacing: 3px;
}


/* ===================================================== */
/* POINT DORÉ */
/* ===================================================== */

.mini-location-dot {
    width: 8px;

    height: 8px;

    border-radius: 50%;

    background: var(--gold);
}


/* ===================================================== */
/* FRANCE / MAROC / INTERNATIONAL */
/* ===================================================== */

.mini-location h3 {
    margin-bottom: 7px;

    color: var(--black);

    font-size: 17px;

    font-weight: 600;

    line-height: 1.1;

    letter-spacing: 3px;
}


/* ===================================================== */
/* PROXIMITÉ & ACCOMPAGNEMENT ETC. */
/* ===================================================== */

.mini-location p {
    color: var(--grey);

    font-size: 12px;

    line-height: 1.5;
}


/* ===================================================== */
/* LANGUES */
/* ===================================================== */

.presence-languages {
    margin-top: 38px;

    display: flex;

    align-items: center;

    gap: 16px;

    color: var(--gold-dark);

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 3px;
}


/* PETITS POINTS ENTRE LES LANGUES */

.presence-languages i {
    width: 5px;

    height: 5px;

    flex: 0 0 5px;

    border-radius: 50%;

    background: var(--gold);
}


/* ARABE */

.arabic-language {
    font-size: 14px;

    letter-spacing: 0;
}


/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width: 600px) {

    .presence-intro {
        font-size: 14px;
    }


    .mini-location {
        min-height: 92px;

        grid-template-columns:
            34px
            15px
            1fr;

        gap: 12px;
    }


    .mini-location-index {
        font-size: 8px;
    }


    .mini-location-dot {
        width: 7px;

        height: 7px;
    }


    .mini-location h3 {
        font-size: 15px;

        letter-spacing: 2px;
    }


    .mini-location p {
        font-size: 11px;
    }


    .presence-languages {
        gap: 10px;

        font-size: 8px;

        letter-spacing: 2px;
    }


    .arabic-language {
        font-size: 12px;
    }

}
/* MAP */

.presence-map-real {
    width: 100%;
}


.map-canvas {
    width: 100%;

    max-width: 1000px;

    margin-left: auto;

    position: relative;

    line-height: 0;
}


.map-image {
    width: 100%;

    display: block;

    position: relative;

    z-index: 1;

    opacity: .63;

    filter:
        grayscale(1)
        brightness(1.08)
        contrast(.85);

    mix-blend-mode: multiply;
}


.map-connections {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 3;

    pointer-events: none;
}


.map-route-real {
    fill: none;

    stroke: var(--gold);

    stroke-width: 1.15;

    stroke-dasharray:
        6 8;

    stroke-linecap: round;

    opacity: .5;

    animation:
        mapRouteMove 10s linear infinite;
}


@keyframes mapRouteMove {

    to {
        stroke-dashoffset: -140;
    }

}


/* MAP POINTS */

.map-point {
    position: absolute;

    z-index: 5;
}


.point-france {
    left: 45.9%;
    top: 36.5%;
}


.point-maroc {
    left: 43.6%;
    top: 45%;
}


.map-point-core {
    width: 8px;
    height: 8px;

    position: absolute;

    left: -4px;
    top: -4px;

    border-radius: 50%;

    background: var(--gold);

    box-shadow:
        0 0 0 4px
        rgba(197,162,74,.12);
}


.map-point-pulse {
    width: 25px;
    height: 25px;

    position: absolute;

    left: -12.5px;
    top: -12.5px;

    border-radius: 50%;

    border:
        1px solid rgba(197,162,74,.55);

    animation:
        pointPulse 2.4s ease-out infinite;
}


@keyframes pointPulse {

    0% {
        transform: scale(.5);
        opacity: .7;
    }

    100% {
        transform: scale(1.8);
        opacity: 0;
    }

}


.map-point-label {
    position: absolute;

    left: 13px;

    top: -4px;

    color: var(--black);

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 2px;

    line-height: 1;
}


.international-point {
    width: 6px;
    height: 6px;

    position: absolute;

    z-index: 5;

    border-radius: 50%;

    background: var(--gold);

    transform:
        translate(-50%,-50%);
}


.point-america {
    left: 17.5%;
    top: 42%;
}


.point-southamerica {
    left: 28.5%;
    top: 77%;
}


.point-africa {
    left: 51%;
    top: 69%;
}


.point-middleeast {
    left: 68%;
    top: 49%;
}


.point-asia {
    left: 88%;
    top: 38%;
}


.point-australia {
    left: 90%;
    top: 74%;
}


/* CAPTION */

.map-caption-real {
    max-width: 950px;

    margin:
        15px 0 0 auto;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 18px;
}


.map-caption-real span {
    width: 80px;
    height: 1px;

    background:
        rgba(197,162,74,.5);
}


.map-caption-real p {
    margin: 0;

    color: var(--gold-dark);

    font-size: 7px;

    font-weight: 600;

    letter-spacing: 4px;

    white-space: nowrap;
}



/* ===================================================== */
/* 08 — CONTACT */
/* ===================================================== */

.contact-form-section {
    min-height: 100vh;

    position: relative;

    padding:
        130px 7%
        30px;

    overflow: hidden;

    background: var(--bg);
}


.contact-form-decoration {
    position: absolute;

    width: 760px;
    height: 760px;

    left: -280px;
    bottom: -250px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    border:
        1px solid rgba(197,162,74,.08);

    pointer-events: none;
}


.contact-form-decoration::before {
    content: "";

    width: 570px;
    height: 570px;

    position: absolute;

    border-radius: 50%;

    border:
        1px solid rgba(197,162,74,.08);
}


.contact-form-decoration img {
    width: 310px;

    opacity: .025;

    filter: grayscale(1);
}


.contact-form-container {
    width: 100%;

    max-width: 1500px;

    margin: auto;

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        .9fr 1.1fr;

    gap: 120px;

    align-items: start;
}


/* CONTACT LEFT */

.contact-form-intro {
    padding-top: 10px;
}


.contact-form-number {
    display: block;

    margin-bottom: 18px;

    color: var(--gold);

    font-size: 9px;

    letter-spacing: 6px;
}


.contact-form-title {
    margin-top: 25px;

    font-size:
        clamp(65px, 6.3vw, 110px);

    font-weight: 400;

    line-height: .91;

    letter-spacing: -6px;
}


.contact-form-title span {
    color: var(--gold-dark);
}


.contact-form-text {
    max-width: 470px;

    margin-top: 38px;

    color: var(--grey);

    font-size: 14px;

    line-height: 1.8;
}


/* LINKEDIN */

.contact-linkedin {
    width: 100%;

    max-width: 450px;

    margin-top: 50px;

    padding:
        18px 5px;

    display: grid;

    grid-template-columns:
        48px 1fr 35px;

    gap: 17px;

    align-items: center;

    border-top:
        1px solid var(--line);

    border-bottom:
        1px solid var(--line);

    color: var(--black);

    text-decoration: none;

    transition:
        padding .4s ease,
        border-color .4s ease;
}


.contact-linkedin:hover {
    padding-left: 20px;

    border-color: var(--gold);
}


.linkedin-icon {
    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: var(--black);

    color: white;

    font-size: 14px;

    font-weight: 600;
}


.linkedin-text {
    display: flex;

    flex-direction: column;

    gap: 5px;
}


.linkedin-text span {
    color: var(--gold-dark);

    font-size: 7px;

    font-weight: 600;

    letter-spacing: 3px;
}


.linkedin-text strong {
    font-size: 16px;

    font-weight: 400;
}


.contact-linkedin i {
    justify-self: end;

    color: var(--gold-dark);

    font-size: 21px;

    font-style: normal;

    transition:
        transform .35s ease;
}


.contact-linkedin:hover i {
    transform:
        translate(3px,-3px);
}


.contact-form-signature {
    margin-top: 42px;

    display: flex;

    align-items: center;

    gap: 15px;
}


.contact-form-signature > span {
    width: 55px;
    height: 1px;

    background: var(--gold);
}


.contact-form-signature p {
    margin: 0;

    color: var(--gold-dark);

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 4px;
}


/* CONTACT CARD */

.contact-form-card {
    padding:
        45px 50px;

    background:
        rgba(255,253,249,.66);

    border:
        1px solid rgba(17,17,17,.08);

    box-shadow:
        0 35px 90px
        rgba(17,17,17,.045);

    backdrop-filter: blur(10px);
}


.contact-card-top {
    margin-bottom: 35px;

    padding-bottom: 25px;

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    border-bottom:
        1px solid var(--line);
}


.contact-card-top > div > span {
    color: var(--gold-dark);

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 4px;
}


.contact-card-top p {
    margin-top: 8px;

    color: var(--grey);

    font-size: 10px;

    line-height: 1.5;
}


.contact-card-dot {
    width: 8px;
    height: 8px;

    margin-top: 3px;

    border-radius: 50%;

    background: var(--gold);
}


/* FORM */

.qcore-contact-form {
    display: flex;

    flex-direction: column;

    gap: 30px;
}


.contact-form-row {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 28px;
}


.form-field {
    display: flex;

    flex-direction: column;

    gap: 10px;
}


.form-field label {
    color: var(--gold-dark);

    font-size: 8px;

    font-weight: 600;

    letter-spacing: 3px;
}


.form-field input,
.form-field textarea,
.form-field select {
    width: 100%;

    padding:
        12px 0 14px;

    border: none;

    border-bottom:
        1px solid rgba(17,17,17,.2);

    border-radius: 0;

    outline: none;

    background: transparent;

    color: var(--black);

    font-size: 14px;

    transition:
        border-color .3s ease;
}


.form-field textarea {
    min-height: 135px;

    resize: vertical;

    line-height: 1.6;
}


.form-field select {
    cursor: pointer;

    appearance: none;

    background-image:
        linear-gradient(
            45deg,
            transparent 50%,
            var(--gold-dark) 50%
        ),
        linear-gradient(
            135deg,
            var(--gold-dark) 50%,
            transparent 50%
        );

    background-position:
        calc(100% - 14px) 50%,
        calc(100% - 9px) 50%;

    background-size:
        5px 5px,
        5px 5px;

    background-repeat: no-repeat;
}


.form-field input::placeholder,
.form-field textarea::placeholder {
    color:
        rgba(17,17,17,.35);
}


.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus {
    border-color: var(--gold);
}


/* SUBMIT */

.contact-submit {
    width: 100%;

    height: 66px;

    margin-top: 5px;

    padding:
        0 10px
        0 29px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    border: 0;

    border-radius: 100px;

    background: var(--black);

    color: white;

    cursor: pointer;

    transition:
        transform .4s ease,
        background .4s ease,
        box-shadow .4s ease;
}


.contact-submit span {
    font-size: 9px;

    font-weight: 600;

    letter-spacing: 4px;
}


.contact-submit i {
    width: 46px;
    height: 46px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: var(--gold);

    color: white;

    font-size: 20px;

    font-style: normal;

    transition:
        transform .4s ease,
        background .4s ease;
}


.contact-submit:hover {
    background: var(--gold);

    transform:
        translateY(-3px);

    box-shadow:
        0 15px 35px
        rgba(197,162,74,.16);
}


.contact-submit:hover i {
    background: var(--black);

    transform:
        rotate(-25deg);
}


.contact-form-status {
    min-height: 16px;

    margin:
        -10px 0 0;

    text-align: center;

    color: var(--gold-dark);

    font-size: 10px;

    line-height: 1.5;
}


.contact-form-note {
    margin:
        -10px 0 0;

    text-align: center;

    color: var(--grey);

    font-size: 8px;

    line-height: 1.5;
}


/* FOOTER */

.contact-form-footer {
    width: 100%;

    max-width: 1500px;

    margin:
        90px auto 0;

    padding-top: 25px;

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        1fr auto 1fr;

    gap: 30px;

    align-items: center;

    border-top:
        1px solid var(--line);

    color: var(--grey);

    font-size: 8px;

    letter-spacing: 2px;
}


.footer-brand {
    display: flex;

    align-items: center;

    gap: 12px;

    color: var(--black);

    text-decoration: none;
}


.footer-brand img {
    width: 34px;
    height: 34px;

    object-fit: contain;
}


.footer-brand span {
    font-weight: 600;

    letter-spacing: 3px;
}


.contact-form-footer p {
    text-align: center;
}


.contact-form-footer > span {
    justify-self: end;
}



/* ===================================================== */
/* TABLET */
/* ===================================================== */

@media (max-width: 1150px) {

    .expertise-grid {
        grid-template-columns:
            repeat(2,1fr);
    }


    .expertise-card:nth-child(2) {
        border-right: 0;
    }


    .expertise-card:nth-child(1),
    .expertise-card:nth-child(2) {
        border-bottom:
            1px solid var(--line);
    }


    .data-scene {
        grid-template-columns:
            180px 1fr
            180px
            1fr 180px;
    }


    .experience-inner {
        grid-template-columns: 1fr;

        gap: 70px;
    }


    .experience-decoration {
        display: none;
    }


    .presence-container {
        grid-template-columns: 1fr;

        gap: 70px;
    }


    .presence-map-real {
        max-width: 1000px;

        margin: auto;
    }


    .contact-form-container {
        grid-template-columns: 1fr;

        gap: 75px;
    }


    .contact-form-intro {
        max-width: 800px;
    }

}



/* ===================================================== */
/* MOBILE / SMALL TABLET */
/* ===================================================== */

@media (max-width: 850px) {

    .hero {
        min-height: 680px;
    }


    .hero-logo-wrap {
        width: 140px;
        height: 140px;
    }


    .hero-logo {
        width: 125px;
    }


    .hero-brand h1 {
        font-size: 20px;

        letter-spacing: 5px;
    }


    .hero-brand > p {
        letter-spacing: 3px;
    }


    .positioning {
        padding:
            100px 0;
    }


    .positioning-title {
        font-size: 64px;

        letter-spacing: -4px;
    }


    .heartbeat {
        top: 69%;

        width: 85%;
    }


    .expertise {
        padding:
            95px 25px;
    }


    .expertise-grid {
        grid-template-columns: 1fr;
    }


    .expertise-card {
        min-height: 320px;

        border-right: 0;

        border-bottom:
            1px solid var(--line);
    }


    .method {
        padding:
            95px 25px;
    }


    .method-flow {
        grid-template-columns:
            repeat(2,1fr);

        row-gap: 65px;
    }


    .method-line {
        display: none;
    }


    .data-section {
        padding:
            90px 22px;
    }


    .data-scene {
        min-height: auto;

        grid-template-columns: 1fr;

        gap: 45px;

        margin-top: 55px;
    }


    .data-network {
        display: none;
    }


    .data-core {
        margin: auto;
    }


    .data-quality,
    .data-performance {
        text-align: center;
    }


    .data-quality .side-line,
    .data-performance .side-line {
        margin:
            18px auto;
    }


    .data-side li,
    .data-performance li {
        width: fit-content;

        margin:
            10px auto;

        padding-left: 14px;

        padding-right: 0;
    }


    .data-performance li::before {
        left: 0;

        right: auto;
    }


    .data-results {
        grid-template-columns:
            repeat(2,1fr);

        gap: 30px;
    }


    .data-result {
        border-right: 0;

        padding: 0;
    }


    .experience-section {
        padding:
            95px 25px 65px;
    }


    .presence-section {
        padding:
            95px 22px 70px;
    }


    .contact-form-section {
        min-height: auto;

        padding:
            95px 22px 30px;
    }


    .contact-form-card {
        padding:
            35px 28px;
    }


    .contact-form-footer {
        grid-template-columns: 1fr;

        gap: 18px;
    }


    .contact-form-footer p {
        text-align: left;
    }


    .contact-form-footer > span {
        justify-self: start;
    }

}



/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width: 600px) {

    .hero-brand h1 {
        font-size: 17px;

        letter-spacing: 4px;
    }


    .hero-brand > p {
        font-size: 6px;

        letter-spacing: 2px;
    }


    .hero-brand > p span {
        margin: 0 5px;
    }


    .hero-contact-btn {
        min-width: 245px;

        height: 55px;

        margin-top: 27px;
    }


    .hero-contact-btn span {
        font-size: 7px;

        letter-spacing: 2.4px;
    }


    .hero-contact-btn i {
        width: 39px;
        height: 39px;

        flex-basis: 39px;
    }


    .positioning-title {
        font-size: 52px;

        letter-spacing: -3px;
    }


    .positioning-text {
        font-size: 13px;
    }


    .expertise-heading h2 {
        font-size: 48px;

        letter-spacing: -3px;
    }


    .method-title {
        font-size: 52px;

        letter-spacing: -3px;
    }


    .method-flow {
        grid-template-columns: 1fr;
    }


    .data-heading h2 {
        font-size: 49px;

        letter-spacing: -3px;
    }


    .data-results {
        grid-template-columns: 1fr;
    }


    .experience-number {
        font-size: 125px;
    }


    .experience-main h2 {
        font-size: 45px;
    }


    .skill-item {
        grid-template-columns:
            50px 1fr;

        gap: 18px;
    }


    .presence-title {
        font-size: 55px;

        letter-spacing: -3px;
    }


    .presence-languages {
        gap: 9px;

        font-size: 7px;
    }


    .map-caption-real p {
        font-size: 6px;

        letter-spacing: 2px;
    }


    .map-caption-real span {
        width: 30px;
    }


    .map-point-label {
        font-size: 6px;

        letter-spacing: 1px;
    }


    .contact-form-title {
        font-size: 58px;

        letter-spacing: -4px;
    }


    .contact-form-row {
        grid-template-columns: 1fr;

        gap: 30px;
    }


    .contact-linkedin {
        max-width: 100%;
    }


    .contact-form-card {
        padding:
            30px 21px;
    }


    .contact-submit span {
        font-size: 7px;

        letter-spacing: 2.5px;
    }

}



/* ===================================================== */
/* REDUCED MOTION */
/* ===================================================== */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }


    *,
    *::before,
    *::after {
        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            .01ms !important;
    }

}
/* ===================================================== */
/* HERO — CERCLES LOGO PLUS VISIBLES */
/* ===================================================== */

.hero-logo-wrap::before {
    border-color: rgba(197, 162, 74, .38) !important;
}

.hero-logo-wrap::after {
    border-color: rgba(197, 162, 74, .22) !important;
}

.hero-logo.power-on {
    filter:
        drop-shadow(0 0 14px rgba(197, 162, 74, .20))
        drop-shadow(0 0 35px rgba(197, 162, 74, .10)) !important;
}
/* ===================================================== */
/* HERO — LOGO PLUS GRAND + CONTENU PLUS BAS */
/* ===================================================== */


/* LOGO Q PLUS GRAND */

.hero-logo-wrap {
    width: 240px !important;
    height: 240px !important;
}


.hero-logo {
    width: 220px !important;
}


/* CERCLE 1 */

.hero-logo-wrap::before {
    width: 315px !important;
    height: 315px !important;

    border-color: rgba(197, 162, 74, .48) !important;

    animation:
        qcorePulse 2.4s ease-out infinite !important;
}


/* CERCLE 2 */

.hero-logo-wrap::after {
    width: 400px !important;
    height: 400px !important;

    border-color: rgba(197, 162, 74, .30) !important;

    animation:
        qcorePulse 2.4s ease-out .75s infinite !important;
}


/* ===================================================== */
/* DESCENDRE Q-CORE CONSULTING + TOUT CE QUI EST DESSOUS */
/* ===================================================== */

.hero-brand {
    margin-top: 75px !important;
}


/* Q-CORE CONSULTING */

.hero-brand h1 {
    margin-top: 0 !important;
}


/* BOUTON */

.hero-contact-btn {
    margin-top: 32px !important;
}


/* SCROLL DOWN PLUS BAS */

.scroll-indicator {
    bottom: 18px !important;
}


/* ===================================================== */
/* PULSATION */
/* ===================================================== */

@keyframes qcorePulse {

    0% {
        transform: scale(.70);
        opacity: 0;
    }

    15% {
        opacity: .9;
    }

    45% {
        opacity: .55;
    }

    100% {
        transform: scale(1.35);
        opacity: 0;
    }

}


/* LE Q RESPIRE LÉGÈREMENT */

.hero-logo.power-on {
    animation:
        qLogoBeat 2.4s ease-in-out infinite !important;
}


@keyframes qLogoBeat {

    0%,
    100% {
        transform: scale(1);
    }

    12% {
        transform: scale(1.035);
    }

    22% {
        transform: scale(1);
    }

    30% {
        transform: scale(1.018);
    }

    40% {
        transform: scale(1);
    }

}


/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width: 700px) {

    .hero-logo-wrap {
        width: 185px !important;
        height: 185px !important;
    }


    .hero-logo {
        width: 170px !important;
    }


    .hero-logo-wrap::before {
        width: 240px !important;
        height: 240px !important;
    }


    .hero-logo-wrap::after {
        width: 305px !important;
        height: 305px !important;
    }


    .hero-brand {
        margin-top: 55px !important;
    }

}
/* ===================================================== */
/* HERO — GRAND LOGO + TEXTE PLUS BAS */
/* ===================================================== */


/* CONTENEUR DU LOGO */

.hero-logo-wrap {
    width: 310px !important;
    height: 310px !important;
}


/* VRAI LOGO Q — BEAUCOUP PLUS GRAND */

.hero-logo {
    width: 285px !important;
}


/* ===================================================== */
/* CERCLES DE BATTEMENT */
/* ===================================================== */

.hero-logo-wrap::before {
    width: 390px !important;
    height: 390px !important;

    border-color: rgba(197, 162, 74, .48) !important;

    animation:
        qcorePulse 2.4s ease-out infinite !important;
}


.hero-logo-wrap::after {
    width: 500px !important;
    height: 500px !important;

    border-color: rgba(197, 162, 74, .28) !important;

    animation:
        qcorePulse 2.4s ease-out .75s infinite !important;
}


/* ===================================================== */
/* DESCENDRE LE TEXTE */
/* ===================================================== */

.hero-brand {
    margin-top: 115px !important;
}


/* Q-CORE CONSULTING */

.hero-brand h1 {
    margin: 0 !important;
}


/* LIGNE DOREE */

.hero-brand .gold-line {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}


/* BOUTON CONTACT */

.hero-contact-btn {
    margin-top: 32px !important;
}


/* SCROLL DOWN TOUT EN BAS */

.scroll-indicator {
    bottom: 12px !important;
}


/* ===================================================== */
/* ANIMATION DES ONDES */
/* ===================================================== */

@keyframes qcorePulse {

    0% {
        transform: scale(.68);
        opacity: 0;
    }

    12% {
        opacity: .9;
    }

    42% {
        opacity: .55;
    }

    100% {
        transform: scale(1.35);
        opacity: 0;
    }

}


/* ===================================================== */
/* PETIT BATTEMENT DU Q */
/* ===================================================== */

.hero-logo.power-on {
    animation:
        qLogoBeat 2.4s ease-in-out infinite !important;

    filter:
        drop-shadow(
            0 0 15px
            rgba(197, 162, 74, .20)
        ) !important;
}


@keyframes qLogoBeat {

    0%,
    100% {
        transform: scale(1);
    }

    12% {
        transform: scale(1.035);
    }

    20% {
        transform: scale(1);
    }

    29% {
        transform: scale(1.02);
    }

    38% {
        transform: scale(1);
    }

}


/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width: 700px) {

    .hero-logo-wrap {
        width: 220px !important;
        height: 220px !important;
    }


    .hero-logo {
        width: 205px !important;
    }


    .hero-logo-wrap::before {
        width: 285px !important;
        height: 285px !important;
    }


    .hero-logo-wrap::after {
        width: 360px !important;
        height: 360px !important;
    }


    .hero-brand {
        margin-top: 75px !important;
    }

}
/* ===================================================== */
/* SECTION 02 — ECG EN MOUVEMENT GAUCHE → DROITE */
/* ===================================================== */

.heartbeat {
    overflow: visible !important;

    animation:
        heartbeatMove 4.5s linear infinite !important;

    will-change: transform;
}


/* Le signal se déplace horizontalement */

@keyframes heartbeatMove {

    0% {
        transform:
            translateY(-50%)
            translateX(-130px);
    }

    100% {
        transform:
            translateY(-50%)
            translateX(130px);
    }

}


/* ===================================================== */
/* LE TRAIT ECG SEMBLE AUSSI SE DESSINER */
/* ===================================================== */

.heartbeat-main {
    stroke-dasharray: 16 8;

    animation:
        heartbeatFlow 1.1s linear infinite;
}


.heartbeat-soft {
    stroke-dasharray: 9 12;

    animation:
        heartbeatFlowSoft 1.6s linear infinite;
}


/* Mouvement du trait vers la droite */

@keyframes heartbeatFlow {

    from {
        stroke-dashoffset: 48;
    }

    to {
        stroke-dashoffset: 0;
    }

}


@keyframes heartbeatFlowSoft {

    from {
        stroke-dashoffset: 42;
    }

    to {
        stroke-dashoffset: 0;
    }

}
/* ===================================================== */
/* SECTION 02 — ECG QUI SE DESSINE COMME UN BATTEMENT */
/* ===================================================== */

/* Les SVG restent exactement à leur position actuelle */

.heartbeat {
    overflow: visible !important;
}


/* TRAIT PRINCIPAL */

.heartbeat-main {
    stroke-dasharray: 1400;
    stroke-dashoffset: 1400;

    animation:
        heartbeatDraw 4.5s ease-in-out infinite !important;
}


/* DEUXIEME TRAIT PLUS DISCRET */

.heartbeat-soft {
    stroke-dasharray: 1400;
    stroke-dashoffset: 1400;

    animation:
        heartbeatDrawSoft 4.5s ease-in-out .12s infinite !important;
}


/* ===================================================== */
/* APPARITION DU BATTEMENT */
/* ===================================================== */

@keyframes heartbeatDraw {

    /* invisible */

    0% {
        stroke-dashoffset: 1400;
        opacity: 0;
    }


    /* apparition */

    5% {
        opacity: .15;
    }


    /* le tracé avance de gauche à droite */

    45% {
        stroke-dashoffset: 0;
        opacity: .55;
    }


    /* petit temps où le battement reste visible */

    65% {
        stroke-dashoffset: 0;
        opacity: .55;
    }


    /* disparition */

    82% {
        stroke-dashoffset: 0;
        opacity: 0;
    }


    /* pause avant le prochain battement */

    100% {
        stroke-dashoffset: 1400;
        opacity: 0;
    }

}


/* ===================================================== */
/* LIGNE SECONDAIRE */
/* ===================================================== */

@keyframes heartbeatDrawSoft {

    0% {
        stroke-dashoffset: 1400;
        opacity: 0;
    }

    7% {
        opacity: .05;
    }

    47% {
        stroke-dashoffset: 0;
        opacity: .20;
    }

    65% {
        stroke-dashoffset: 0;
        opacity: .20;
    }

    82% {
        opacity: 0;
    }

    100% {
        stroke-dashoffset: 1400;
        opacity: 0;
    }

}
/* ===================================================== */
/* SECTION 03 — ICONES EXPERTISE PLUS GRANDES */
/* ===================================================== */

.expertise-icon {
    width: 82px !important;
    height: 82px !important;
    margin-bottom: 28px !important;
}

/* Si les icônes sont en SVG */
.expertise-icon svg {
    width: 58px !important;
    height: 58px !important;
}

/* Si les icônes sont des images */
.expertise-icon img {
    width: 58px !important;
    height: 58px !important;
    object-fit: contain;
}


/* MOBILE */

@media (max-width: 700px) {

    .expertise-icon {
        width: 70px !important;
        height: 70px !important;
    }

    .expertise-icon svg,
    .expertise-icon img {
        width: 48px !important;
        height: 48px !important;
    }
}
/* ===================================================== */
/* SECTION 03 — EXPERTISE TOUT CENTRÉ */
/* ===================================================== */

.expertise-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;
}


/* ICÔNE CENTRÉE */

.expertise-icon {
    width: 90px !important;
    height: 90px !important;

    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 28px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}


/* TAILLE DU DESSIN */

.expertise-icon svg,
.expertise-icon img {
    width: 62px !important;
    height: 62px !important;
    object-fit: contain;
}


/* TITRE : QUALITÉ / AUDIT / PERFORMANCE... */

.expertise-card h3 {
    width: 100% !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* TEXTE */

.expertise-card p {
    width: 100% !important;
    max-width: 280px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}


/* SI TU AS UNE PETITE LIGNE DÉCORATIVE */

.expertise-card .card-line,
.expertise-card .expertise-line {
    margin-left: auto !important;
    margin-right: auto !important;
}


/* MOBILE */

@media (max-width: 700px) {

    .expertise-icon {
        width: 78px !important;
        height: 78px !important;
    }

    .expertise-icon svg,
    .expertise-icon img {
        width: 54px !important;
        height: 54px !important;
    }
}
/* ===================================================== */
/* SECTION 03 — ICONES BEAUCOUP PLUS GRANDES */
/* ===================================================== */

.expertise-icon {
    width: 130px !important;
    height: 130px !important;

    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 30px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}


/* DESSIN DE L'ICÔNE */

.expertise-icon svg,
.expertise-icon img {
    width: 95px !important;
    height: 95px !important;
    object-fit: contain;
}


/* MOBILE */

@media (max-width: 700px) {

    .expertise-icon {
        width: 105px !important;
        height: 105px !important;
    }

    .expertise-icon svg,
    .expertise-icon img {
        width: 78px !important;
        height: 78px !important;
    }
}
/* ===================================================== */
/* SECTION 03 — HOVER PREMIUM */
/* ===================================================== */

.expertise-card {
    position: relative;
    overflow: hidden;

    transition:
        transform .45s cubic-bezier(.2,.8,.2,1),
        background-color .45s ease,
        box-shadow .45s ease;

    border-radius: 4px;
}


/* PASSAGE DE LA SOURIS */

.expertise-card:hover {
    background: #FFFDF9 !important;

    transform: scale(1.045) translateY(-8px);

    box-shadow:
        0 25px 60px rgba(17, 17, 17, .08);

    z-index: 10;
}


/* ===================================================== */
/* ICÔNE */
/* ===================================================== */

.expertise-icon {
    transition:
        transform .45s cubic-bezier(.2,.8,.2,1),
        background-color .45s ease;
}


.expertise-card:hover .expertise-icon {
    transform: scale(1.18);
}


/* LE DESSIN À L'INTÉRIEUR */

.expertise-icon svg,
.expertise-icon img {
    transition:
        transform .45s cubic-bezier(.2,.8,.2,1);
}


.expertise-card:hover .expertise-icon svg,
.expertise-card:hover .expertise-icon img {
    transform: scale(1.08);
}


/* ===================================================== */
/* TITRE */
/* ===================================================== */

.expertise-card h3 {
    transition:
        transform .4s ease,
        color .4s ease;
}


.expertise-card:hover h3 {
    transform: translateY(3px);
    color: #C5A24A;
}


/* ===================================================== */
/* TEXTE */
/* ===================================================== */

.expertise-card p {
    transition:
        transform .4s ease,
        color .4s ease;
}


.expertise-card:hover p {
    transform: translateY(3px);
    color: #111111;
}


/* ===================================================== */
/* PETIT ÉCLAT BLANC AU SURVOL */
/* ===================================================== */

.expertise-card::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        radial-gradient(
            circle at 50% 35%,
            rgba(255,255,255,.95) 0%,
            rgba(255,255,255,.55) 35%,
            rgba(255,255,255,0) 70%
        );

    opacity: 0;
    pointer-events: none;

    transition: opacity .45s ease;
}


.expertise-card:hover::before {
    opacity: 1;
}


/* GARDE LE CONTENU DEVANT L'EFFET */

.expertise-card > * {
    position: relative;
    z-index: 2;
}
/* ========================================================= */
/* SECTION 05 — DATA / BLOCS BLANCS + VAGUES VIVANTES */
/* ========================================================= */


/* PLUS D'ESPACE DANS LA SECTION */

#data {
    position: relative;
    overflow: hidden;
}


/* ========================================================= */
/* TITRE PLUS GRAND ET PLUS CENTRÉ */
/* ========================================================= */

#data .section-title,
#data h2 {
    text-align: center !important;
    font-size: clamp(52px, 5vw, 82px) !important;
    line-height: 1.02 !important;
    letter-spacing: -3px !important;

    max-width: 1000px;
    margin-left: auto !important;
    margin-right: auto !important;
}


#data .section-subtitle {
    max-width: 820px !important;

    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 25px !important;

    text-align: center !important;

    font-size: 19px !important;
    line-height: 1.7 !important;
}


/* ========================================================= */
/* PARTIE QUALITÉ / DATA / PERFORMANCE */
/* ========================================================= */

#data .data-content,
#data .data-grid,
#data .data-main {
    position: relative;

    width: min(1180px, 92%);
    margin: 90px auto 0 !important;

    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;

    gap: 65px !important;

    z-index: 5;
}


/* ========================================================= */
/* BLOCS TEXTE BLANCS */
/* ========================================================= */

#data .data-left,
#data .data-right,
#data .quality-block,
#data .performance-block {

    background: rgba(255, 255, 255, .88) !important;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    padding: 45px 40px !important;

    border-radius: 24px !important;

    border: 1px solid rgba(255, 255, 255, .9);

    box-shadow:
        0 18px 60px rgba(17, 17, 17, .06);

    text-align: center !important;

    transition:
        transform .5s cubic-bezier(.2,.8,.2,1),
        box-shadow .5s ease,
        background .5s ease;
}


/* HOVER */

#data .data-left:hover,
#data .data-right:hover,
#data .quality-block:hover,
#data .performance-block:hover {

    transform: translateY(-10px) scale(1.025);

    background: #ffffff !important;

    box-shadow:
        0 30px 80px rgba(17,17,17,.10);
}


/* ========================================================= */
/* TITRES QUALITÉ / PERFORMANCE */
/* ========================================================= */

#data .data-left h3,
#data .data-right h3,
#data .quality-block h3,
#data .performance-block h3 {

    font-size: 31px !important;
    font-weight: 500 !important;

    letter-spacing: 3px !important;

    text-align: center !important;

    margin-bottom: 20px !important;
}


/* TEXTE SOUS LES TITRES */

#data .data-left p,
#data .data-right p,
#data .quality-block p,
#data .performance-block p {

    font-size: 16px !important;
    line-height: 1.7 !important;

    max-width: 330px;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}


/* ========================================================= */
/* LISTES DANS LES BLOCS */
/* ========================================================= */

#data .data-left li,
#data .data-right li,
#data .quality-block li,
#data .performance-block li {

    font-size: 16px !important;

    text-align: center !important;

    margin: 13px 0 !important;

    list-style: none !important;
}


/* PETIT POINT DORÉ DEVANT CHAQUE ÉLÉMENT */

#data .data-left li::before,
#data .data-right li::before,
#data .quality-block li::before,
#data .performance-block li::before {

    content: "•";

    color: #C5A24A;

    margin-right: 8px;
}


/* ========================================================= */
/* Q CENTRAL / DATA */
/* ========================================================= */

#data .data-center {
    position: relative;

    z-index: 10;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}


/* Q PLUS PRÉSENT */

#data .data-center img {
    width: 150px !important;
    height: auto !important;

    transition: transform .5s ease;
}


#data .data-center:hover img {
    transform: scale(1.08);
}


/* TEXTE DATA */

#data .data-center .data-label,
#data .data-center span {

    margin-top: 18px;

    font-size: 14px !important;

    font-weight: 600;

    letter-spacing: 5px;

    color: #C5A24A;
}


/* ========================================================= */
/* VAGUES — MOUVEMENT VIVANT */
/* ========================================================= */

#data svg,
#data .data-waves,
#data .data-wave {

    overflow: visible !important;
}


/*
Le SVG lui-même ne se déplace presque pas.
On anime surtout les lignes pour donner l'impression
que l'énergie circule de QUALITÉ vers PERFORMANCE.
*/

#data svg path {

    stroke-dasharray: 20 12;

    animation:
        dataWaveFlow 3.5s linear infinite;

    will-change: stroke-dashoffset;
}


/* Certaines vagues légèrement différentes */

#data svg path:nth-child(2n) {

    animation-duration: 4.8s;

    opacity: .55;
}


#data svg path:nth-child(3n) {

    animation-duration: 6s;

    opacity: .30;
}


/* CIRCULATION DU TRAIT */

@keyframes dataWaveFlow {

    from {
        stroke-dashoffset: 0;
    }

    to {
        stroke-dashoffset: -100;
    }

}


/* ========================================================= */
/* RESPIRATION DES VAGUES */
/* ========================================================= */

#data .data-waves,
#data .data-wave {

    animation:
        dataWaveBreath 6s ease-in-out infinite;
}


@keyframes dataWaveBreath {

    0%,
    100% {
        transform: scaleY(1);
        opacity: .55;
    }

    50% {
        transform: scaleY(1.08);
        opacity: .9;
    }

}


/* ========================================================= */
/* BLOCS DU BAS : RÉSULTATS */
/* ========================================================= */

#data .data-results,
#data .data-outcomes {

    width: min(1000px, 90%);

    margin: 75px auto 0 !important;

    display: grid !important;

    grid-template-columns: repeat(4, 1fr);

    gap: 16px;

    position: relative;

    z-index: 5;
}


#data .data-results > *,
#data .data-outcomes > * {

    background: rgba(255,255,255,.75);

    padding: 24px 18px;

    border-radius: 18px;

    text-align: center;

    font-size: 13px !important;

    letter-spacing: 1px;

    border: 1px solid rgba(255,255,255,.9);

    transition:
        transform .4s ease,
        background .4s ease;
}


#data .data-results > *:hover,
#data .data-outcomes > *:hover {

    transform: translateY(-6px);

    background: #ffffff;
}


/* ========================================================= */
/* MOBILE */
/* ========================================================= */

@media (max-width: 800px) {

    #data .section-title,
    #data h2 {

        font-size: 46px !important;

        letter-spacing: -2px !important;
    }


    #data .data-content,
    #data .data-grid,
    #data .data-main {

        grid-template-columns: 1fr !important;

        gap: 35px !important;

        margin-top: 60px !important;
    }


    #data .data-center {

        order: 2;
    }


    #data .data-left,
    #data .quality-block {

        order: 1;
    }


    #data .data-right,
    #data .performance-block {

        order: 3;
    }


    #data .data-results,
    #data .data-outcomes {

        grid-template-columns: 1fr 1fr;
    }

}
/* ===================================================== */
/* SECTION 07 — ICONES FRANCE / MAROC / INTERNATIONAL */
/* ===================================================== */

.mini-location {
    display: grid !important;

    grid-template-columns:
        42px
        58px
        1fr !important;

    align-items: center !important;

    column-gap: 16px !important;
}


/* CONTENEUR DE L'ICONE */

.country-icon {
    width: 50px;
    height: 50px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.55);

    border:
        1px solid
        rgba(197, 162, 74, 0.30);

    transition:
        transform .35s ease,
        border-color .35s ease,
        background .35s ease,
        box-shadow .35s ease;
}


/* SVG */

.country-icon svg {
    width: 30px;
    height: 30px;

    fill: none;

    stroke: #C5A24A;

    stroke-width: 1.7;

    stroke-linecap: round;

    stroke-linejoin: round;

    transition:
        transform .35s ease;
}


/* FRANCE + MAROC */

.country-icon:not(.country-icon-globe) svg {
    fill:
        rgba(197, 162, 74, 0.08);
}


/* SURVOL */

.mini-location:hover .country-icon {
    transform:
        translateY(-2px)
        scale(1.08);

    background:
        rgba(255, 255, 255, 0.90);

    border-color:
        rgba(197, 162, 74, 0.65);

    box-shadow:
        0 10px 30px
        rgba(17, 17, 17, 0.06);
}


.mini-location:hover .country-icon svg {
    transform:
        scale(1.08);
}


/* GLOBE */

.country-icon-globe svg {
    width: 31px;
    height: 31px;

    fill: none;
}


/* MOBILE */

@media (max-width: 600px) {

    .mini-location {
        grid-template-columns:
            34px
            48px
            1fr !important;

        column-gap: 12px !important;
    }


    .country-icon {
        width: 42px;
        height: 42px;
    }


    .country-icon svg {
        width: 26px;
        height: 26px;
    }

}
/* ===================================================== */
/* ICONES CARTES — VERSION FINE & PREMIUM */
/* ===================================================== */

.country-map-icon {
    width: 50px;
    height: 50px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}


.country-map-icon img {
    width: 34px;
    height: 34px;

    object-fit: contain;

    opacity: 0.72;

    /* Doré Q-Core plus discret */
    filter:
        sepia(1)
        saturate(1.6)
        hue-rotate(355deg)
        brightness(.82);

    transition:
        transform .35s ease,
        opacity .35s ease;
}


/* FRANCE légèrement plus petite */

.mini-location:nth-child(1) .country-map-icon img {
    width: 31px;
    height: 31px;
}


/* MAROC : silhouette plus haute donc on équilibre */

.mini-location:nth-child(2) .country-map-icon img {
    width: 28px;
    height: 35px;
}


/* HOVER TRÈS LÉGER */

.mini-location:hover .country-map-icon {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;

    transform: none;
}


.mini-location:hover .country-map-icon img {
    transform: scale(1.08);
    opacity: 1;
}


.mini-location:hover .country-map-icon img {
    transform: scale(1.08);
}


.country-map-icon img {
    transition: transform .35s ease;
}
/* ===================================================== */
/* SECTION 07 — ICONES DRAPEAUX + GLOBE */
/* ===================================================== */

.mini-location {
    display: grid !important;
    grid-template-columns: 42px 62px 1fr !important;
    align-items: center !important;
    column-gap: 18px !important;
}


/* CERCLE IDENTIQUE POUR LES 3 */

.country-icon-circle {
    width: 62px;
    height: 62px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    border:
        1px solid
        rgba(197, 162, 74, 0.45);

    background: transparent;

    box-sizing: border-box;

    transition:
        transform .35s ease,
        border-color .35s ease,
        background .35s ease;
}


/* ICONES IDENTIQUES */

.country-line-icon {
    width: 34px;
    height: 34px;

    fill: none;

    stroke: #C5A24A;

    stroke-width: 1.35;

    stroke-linecap: round;
    stroke-linejoin: round;

    opacity: .9;

    transition:
        transform .35s ease,
        opacity .35s ease;
}


/* ÉTOILE MAROC */

.morocco-star {
    stroke-width: 1.2;
}


/* HOVER */

.mini-location:hover .country-icon-circle {
    transform: translateY(-2px);

    border-color:
        rgba(197, 162, 74, .85);

    background:
        rgba(255,255,255,.45);
}


.mini-location:hover .country-line-icon {
    transform: scale(1.08);
    opacity: 1;
}


/* MOBILE */

@media (max-width: 600px) {

    .mini-location {
        grid-template-columns:
            32px
            52px
            1fr !important;

        column-gap: 13px !important;
    }

    .country-icon-circle {
        width: 52px;
        height: 52px;
    }

    .country-line-icon {
        width: 29px;
        height: 29px;
    }

}
/* ===================================================== */
/* SECTION 07 — DRAPEAUX Q-CORE */
/* ===================================================== */


/* ALIGNEMENT */

.mini-location {
    display: grid !important;
    grid-template-columns: 42px 64px 1fr !important;
    align-items: center !important;
    column-gap: 18px !important;
}


/* CERCLE COMMUN */

.country-icon-circle {
    width: 62px;
    height: 62px;

    display: flex;
    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    border:
        1px solid
        rgba(197, 162, 74, .40);

    border-radius: 50%;

    background:
        rgba(255, 255, 255, .20);

    transition:
        transform .35s ease,
        border-color .35s ease,
        background .35s ease;
}


/* ===================================================== */
/* DRAPEAUX */
/* ===================================================== */

.real-country-flag {
    width: 40px;
    height: 30px;

    display: block;

    overflow: visible;
}


/* BASE */

.flag-base {
    fill: #FFFDF8;
}


/* FRANCE — OR */

.flag-gold {
    fill: #C5A24A;
}


/* FRANCE — BLANC */

.flag-white {
    fill: #FFFDF8;
}


/* FRANCE — OR CLAIR */

.flag-gold-soft {
    fill: rgba(197, 162, 74, .28);
}


/* CONTOUR DRAPEAUX */

.flag-outline {
    fill: none;

    stroke: #C5A24A;

    stroke-width: 1;
}


/* ===================================================== */
/* MAROC */
/* ===================================================== */

.morocco-flag-background {
    fill: rgba(197, 162, 74, .22);
}


/* PENTAGRAMME MAROCAIN */

.morocco-pentagram {
    fill: none;

    stroke: #C5A24A;

    stroke-width: 1.8;

    stroke-linecap: round;

    stroke-linejoin: round;
}


/* ===================================================== */
/* INTERNATIONAL */
/* ===================================================== */

.international-globe {
    width: 34px;
    height: 34px;

    display: block;

    fill: none;

    stroke: #C5A24A;

    stroke-width: 1.35;

    stroke-linecap: round;

    stroke-linejoin: round;

    opacity: .90;
}


/* ===================================================== */
/* TEXTE */
/* ===================================================== */

.mini-location-content h3 {
    margin: 0 0 7px;

    color: #111111;

    font-size: 18px;

    font-weight: 600;

    letter-spacing: 3px;
}


.mini-location-content p {
    margin: 0;

    color: #686868;

    font-size: 13px;

    line-height: 1.5;
}


/* ===================================================== */
/* HOVER */
/* ===================================================== */

.mini-location:hover .country-icon-circle {
    transform:
        translateY(-2px)
        scale(1.04);

    border-color:
        rgba(197, 162, 74, .80);

    background:
        rgba(255, 255, 255, .60);
}


.mini-location:hover .real-country-flag,
.mini-location:hover .international-globe {
    transform: scale(1.06);
}


/* ANIMATION DOUCE */

.real-country-flag,
.international-globe {
    transition:
        transform .35s ease;
}


/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width: 600px) {

    .mini-location {
        grid-template-columns:
            32px
            54px
            1fr !important;

        column-gap: 13px !important;
    }


    .country-icon-circle {
        width: 52px;
        height: 52px;
    }


    .real-country-flag {
        width: 34px;
        height: 26px;
    }


    .international-globe {
        width: 29px;
        height: 29px;
    }

}
/* ===================================================== */
/* SECTION 07 — ICONES PAYS */
/* ===================================================== */

.country-icon-circle {
    width: 62px;
    height: 62px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    border:
        1px solid
        rgba(197, 162, 74, 0.45);

    background: transparent;

    box-sizing: border-box;
}


.country-flag-icon {
    width: 36px;
    height: auto;

    display: block;

    object-fit: contain;

    opacity: .9;

    transition:
        transform .35s ease,
        opacity .35s ease;
}


.international-globe {
    width: 34px;
    height: 34px;

    fill: none;

    stroke: #C5A24A;

    stroke-width: 1.35;

    stroke-linecap: round;

    stroke-linejoin: round;

    opacity: .9;

    transition:
        transform .35s ease,
        opacity .35s ease;
}


.mini-location:hover .country-flag-icon,
.mini-location:hover .international-globe {
    transform: scale(1.08);
    opacity: 1;
}
/* ===================================================== */
/* SECTION 08 — ENQUÊTES Q-CORE */
/* ===================================================== */

.investigation-section {
    padding: 150px 6%;
    background: #111111;
    color: #F8F4EC;
}

.investigation-container {
    width: 100%;
    max-width: 1350px;
    margin: 0 auto;
}


/* ===================================================== */
/* HEADING */
/* ===================================================== */

.investigation-number {
    display: inline-block;

    margin-bottom: 18px;

    color: #C5A24A;

    font-size: 11px;

    letter-spacing: 4px;
}

.investigation-heading .eyebrow {
    color: rgba(248, 244, 236, .52);
}

.investigation-heading h2 {
    max-width: 850px;

    margin: 22px 0 28px;

    color: #F8F4EC;

    font-size: clamp(46px, 6vw, 88px);

    font-weight: 400;

    line-height: .98;

    letter-spacing: -3px;
}

.investigation-heading h2 span {
    color: #C5A24A;
}

.investigation-intro {
    max-width: 760px;

    color: rgba(248, 244, 236, .68);

    font-size: 17px;

    line-height: 1.8;
}


/* ===================================================== */
/* CASE */
/* ===================================================== */

.investigation-case {
    margin-top: 90px;

    border:
        1px solid
        rgba(197, 162, 74, .26);

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.025),
            rgba(197,162,74,.025)
        );
}

.investigation-case-top {
    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 20px 28px;

    border-bottom:
        1px solid
        rgba(197, 162, 74, .18);
}

.case-status {
    color: #C5A24A;

    font-size: 10px;

    letter-spacing: 3px;
}

.case-id {
    color: rgba(248, 244, 236, .42);

    font-size: 10px;

    letter-spacing: 3px;
}


/* ===================================================== */
/* CASE CONTENT */
/* ===================================================== */

.investigation-case-content {
    display: grid;

    grid-template-columns: 1.1fr .9fr;

    min-height: 560px;
}

.investigation-case-main {
    padding: 65px;
}

.case-kicker {
    margin-bottom: 20px;

    color: #C5A24A;

    font-size: 10px;

    letter-spacing: 3px;
}

.investigation-case-main h3 {
    margin: 0 0 30px;

    color: #F8F4EC;

    font-size: clamp(42px, 5vw, 72px);

    font-weight: 400;

    line-height: 1;

    letter-spacing: -2px;
}

.investigation-case-main h3 span {
    color: #C5A24A;
}

.investigation-case-main > p {
    max-width: 560px;

    color: rgba(248,244,236,.65);

    font-size: 16px;

    line-height: 1.8;
}

.case-question {
    margin-top: 25px;

    color: #F8F4EC !important;

    font-size: 22px !important;
}


/* ===================================================== */
/* BUTTON */
/* ===================================================== */

.investigation-button {
    display: inline-flex;
    align-items: center;
    gap: 20px;

    margin-top: 35px;

    padding: 18px 26px;

    border:
        1px solid
        rgba(197,162,74,.58);

    color: #F8F4EC;

    text-decoration: none;

    font-size: 11px;

    letter-spacing: 2.5px;

    transition:
        background .35s ease,
        color .35s ease,
        transform .35s ease;
}

.investigation-button:hover {
    background: #C5A24A;

    color: #111111;

    transform: translateY(-2px);
}


/* ===================================================== */
/* FILE VISUAL */
/* ===================================================== */

.investigation-case-visual {
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 60px;

    background:
        rgba(255,255,255,.018);
}

.case-file {
    width: 340px;
    min-height: 430px;

    padding: 28px;

    border:
        1px solid
        rgba(197,162,74,.52);

    background: #151515;

    box-shadow:
        0 35px 90px
        rgba(0,0,0,.35);

    transform: rotate(2deg);
}

.case-file-header {
    display: flex;
    justify-content: space-between;

    padding-bottom: 18px;

    border-bottom:
        1px solid
        rgba(197,162,74,.25);

    color: #C5A24A;

    font-size: 8px;

    letter-spacing: 2px;
}

.case-file-body {
    padding: 65px 0;
}

.case-file-body p {
    color:
        rgba(248,244,236,.4);

    font-size: 9px;

    letter-spacing: 3px;
}

.case-file-body strong {
    display: block;

    margin: 15px 0;

    color: #C5A24A;

    font-size: 80px;

    font-weight: 300;

    letter-spacing: -5px;
}

.case-file-body span {
    color:
        rgba(248,244,236,.7);

    font-size: 10px;

    letter-spacing: 3px;
}

.case-file-line {
    width: 100%;
    height: 1px;

    background:
        rgba(197,162,74,.25);
}

.case-file-footer {
    display: flex;
    justify-content: space-between;

    padding-top: 25px;

    font-size: 9px;

    letter-spacing: 2px;
}

.case-file-footer span {
    color:
        rgba(248,244,236,.4);
}

.case-file-footer strong {
    color: #C5A24A;
}


/* ===================================================== */
/* STEPS */
/* ===================================================== */

.investigation-steps {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    margin-top: 70px;

    border-top:
        1px solid
        rgba(197,162,74,.18);

    border-bottom:
        1px solid
        rgba(197,162,74,.18);
}

.investigation-steps article {
    padding: 38px 28px;

    border-right:
        1px solid
        rgba(197,162,74,.14);
}

.investigation-steps article:last-child {
    border-right: 0;
}

.investigation-step-number {
    color: #C5A24A;

    font-size: 9px;

    letter-spacing: 2px;
}

.investigation-steps h4 {
    margin: 15px 0 12px;

    color: #F8F4EC;

    font-size: 15px;

    letter-spacing: 3px;
}

.investigation-steps p {
    color:
        rgba(248,244,236,.48);

    font-size: 13px;

    line-height: 1.6;
}


/* ===================================================== */
/* SIGNATURE */
/* ===================================================== */

.investigation-signature {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 25px;

    margin-top: 75px;

    text-align: center;
}

.investigation-signature > span {
    width: 80px;
    height: 1px;

    background:
        rgba(197,162,74,.42);
}

.investigation-signature p {
    margin: 0;

    color:
        rgba(248,244,236,.60);

    font-size: 14px;

    letter-spacing: .5px;
}

.investigation-signature strong {
    color: #C5A24A;

    font-weight: 500;
}


/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width: 900px) {

    .investigation-section {
        padding: 110px 7%;
    }

    .investigation-case-content {
        grid-template-columns: 1fr;
    }

    .investigation-case-main {
        padding: 45px 30px;
    }

    .investigation-case-visual {
        padding: 40px 25px 60px;
    }

    .investigation-steps {
        grid-template-columns: 1fr 1fr;
    }

    .investigation-steps article:nth-child(2) {
        border-right: 0;
    }

}

@media (max-width: 600px) {

    .investigation-heading h2 {
        letter-spacing: -2px;
    }

    .investigation-case-top {
        padding: 17px;
    }

    .investigation-case-main {
        padding: 36px 22px;
    }

    .case-file {
        width: 100%;
        max-width: 310px;
    }

    .investigation-steps {
        grid-template-columns: 1fr;
    }

    .investigation-steps article {
        border-right: 0;

        border-bottom:
            1px solid
            rgba(197,162,74,.14);
    }

    .investigation-signature > span {
        display: none;
    }

}
/* ===================================================== */
/* PAGE ENQUÊTES */
/* ===================================================== */

.investigation-page-body {
    margin: 0;
    background: #111111;
    color: #F8F4EC;
}


/* NAV */

.investigation-nav {
    position: absolute;
    top: 0;
    left: 0;

    z-index: 20;

    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    box-sizing: border-box;

    padding: 28px 5%;
}

.investigation-logo-link {
    display: flex;
    align-items: center;

    gap: 14px;

    color: #F8F4EC;

    text-decoration: none;

    font-size: 10px;

    letter-spacing: 2.5px;
}

.investigation-logo-link img {
    width: 38px;
}

.back-home {
    color:
        rgba(248,244,236,.62);

    text-decoration: none;

    font-size: 9px;

    letter-spacing: 2px;
}


/* ===================================================== */
/* GENERAL */
/* ===================================================== */

.case-page-container {
    width: 90%;
    max-width: 1250px;

    margin: 0 auto;
}

.case-page-eyebrow {
    color: #C5A24A;

    font-size: 10px;

    letter-spacing: 3px;
}

.case-page-eyebrow.dark {
    color: #92762F;
}

.case-section-number {
    display: block;

    margin-bottom: 20px;

    color: #C5A24A;

    font-size: 10px;

    letter-spacing: 3px;
}


/* ===================================================== */
/* HERO */
/* ===================================================== */

.case-hero {
    min-height: 100vh;

    display: flex;
    align-items: center;

    padding: 150px 0 100px;

    box-sizing: border-box;

    background:
        radial-gradient(
            circle at 70% 40%,
            rgba(197,162,74,.10),
            transparent 38%
        ),
        #111111;
}

.case-hero-meta {
    display: flex;
    justify-content: space-between;

    margin-bottom: 80px;

    color:
        rgba(248,244,236,.40);

    font-size: 9px;

    letter-spacing: 3px;
}

.case-open {
    color: #C5A24A;
}

.case-hero h1 {
    margin: 30px 0;

    color: #F8F4EC;

    font-size:
        clamp(55px, 8vw, 112px);

    font-weight: 400;

    line-height: .9;

    letter-spacing: -5px;
}

.case-hero h1 span {
    color: #C5A24A;
}

.case-hero-intro {
    max-width: 650px;

    color:
        rgba(248,244,236,.62);

    font-size: 18px;

    line-height: 1.8;
}

.case-mission-line {
    display: flex;
    align-items: center;

    gap: 20px;

    margin-top: 55px;
}

.case-mission-line span {
    width: 80px;
    height: 1px;

    background: #C5A24A;
}

.case-mission-line p {
    color:
        rgba(248,244,236,.60);

    font-size: 13px;
}


/* ===================================================== */
/* SECTIONS */
/* ===================================================== */

.case-section {
    padding: 130px 0;
}

.light-case-section,
.evidence-section,
.hypothesis-section {
    background: #F8F4EC;

    color: #111111;
}

.dark-case-section,
.mission-section {
    background: #151515;

    color: #F8F4EC;
}

.case-text-grid {
    display: grid;

    grid-template-columns:
        .8fr
        1.2fr;

    gap: 100px;
}

.case-text-grid h2,
.hypothesis-layout h2 {
    margin: 0;

    font-size:
        clamp(45px, 6vw, 80px);

    font-weight: 400;

    letter-spacing: -3px;
}

.case-text-grid p {
    margin:
        0
        0
        22px;

    color: #666;

    font-size: 16px;

    line-height: 1.8;
}

.case-important {
    color: #111111 !important;

    font-size: 21px !important;
}


/* ===================================================== */
/* TIMELINE */
/* ===================================================== */

.case-section-title {
    margin:
        20px
        0
        60px;

    color: #F8F4EC;

    font-size:
        clamp(40px, 5vw, 70px);

    font-weight: 400;

    letter-spacing: -2px;
}

.dark-title {
    color: #111111;
}

.case-timeline {
    display: grid;

    grid-template-columns:
        repeat(5,1fr);

    border-top:
        1px solid
        rgba(197,162,74,.28);
}

.case-timeline article {
    padding:
        35px
        25px;

    border-right:
        1px solid
        rgba(197,162,74,.15);
}

.timeline-time {
    color: #C5A24A;

    font-size: 9px;

    letter-spacing: 2px;
}

.case-timeline h3 {
    margin:
        18px
        0
        12px;

    font-size: 14px;

    letter-spacing: 1px;
}

.case-timeline p {
    color:
        rgba(248,244,236,.48);

    font-size: 12px;

    line-height: 1.6;
}


/* ===================================================== */
/* EVIDENCE */
/* ===================================================== */

.evidence-grid {
    display: grid;

    grid-template-columns:
        repeat(4,1fr);

    gap: 18px;
}

.evidence-card {
    min-height: 280px;

    display: flex;
    flex-direction: column;

    padding: 28px;

    border:
        1px solid
        rgba(17,17,17,.13);

    background: #FFFDF8;
}

.evidence-number {
    color: #C5A24A;

    font-size: 9px;

    letter-spacing: 2px;
}

.evidence-card h3 {
    margin:
        30px
        0
        15px;

    font-size: 20px;

    font-weight: 500;
}

.evidence-card p {
    color: #777;

    font-size: 13px;

    line-height: 1.7;
}

.evidence-button {
    margin-top: auto;

    padding: 14px 0;

    border: 0;

    border-top:
        1px solid
        rgba(197,162,74,.32);

    background: transparent;

    color: #111111;

    text-align: left;

    font-size: 9px;

    letter-spacing: 2px;

    cursor: pointer;
}


/* ===================================================== */
/* MISSION */
/* ===================================================== */

.mission-grid {
    display: grid;

    grid-template-columns:
        repeat(4,1fr);

    margin-top: 60px;
}

.mission-grid article {
    min-height: 200px;

    padding: 30px;

    border:
        1px solid
        rgba(197,162,74,.16);
}

.mission-grid span {
    color: #C5A24A;

    font-size: 10px;
}

.mission-grid p {
    margin-top: 45px;

    color:
        rgba(248,244,236,.75);

    font-size: 16px;

    line-height: 1.6;
}


/* ===================================================== */
/* HYPOTHESIS */
/* ===================================================== */

.hypothesis-layout {
    display: grid;

    grid-template-columns:
        .85fr
        1.15fr;

    gap: 100px;
}

.hypothesis-layout > div > p {
    max-width: 450px;

    margin-top: 25px;

    color: #777;

    line-height: 1.8;
}


/* FORM */

.investigation-field {
    margin-bottom: 30px;
}

.investigation-field label {
    display: block;

    margin-bottom: 10px;

    color: #92762F;

    font-size: 9px;

    letter-spacing: 2px;
}

.investigation-field input,
.investigation-field textarea {
    width: 100%;

    box-sizing: border-box;

    border: 0;

    border-bottom:
        1px solid
        rgba(17,17,17,.28);

    background: transparent;

    padding:
        10px
        0;

    color: #111111;

    font-family: inherit;

    font-size: 15px;

    outline: none;
}

.investigation-field textarea {
    resize: vertical;
}

.submit-investigation {
    display: inline-flex;
    align-items: center;

    gap: 30px;

    margin-top: 15px;

    padding:
        18px
        25px;

    border:
        1px solid
        #C5A24A;

    background: transparent;

    color: #111111;

    font-size: 10px;

    letter-spacing: 2px;

    cursor: pointer;

    transition:
        background .3s ease,
        color .3s ease;
}

.submit-investigation:hover {
    background: #C5A24A;

    color: #111111;
}


/* ===================================================== */
/* REVELATION */
/* ===================================================== */

.case-reveal-section {
    padding:
        150px
        0;

    text-align: center;

    background: #111111;
}

.case-reveal-section h2 {
    margin:
        25px
        0;

    color: #F8F4EC;

    font-size:
        clamp(45px,6vw,85px);

    font-weight: 400;

    line-height: 1;

    letter-spacing: -3px;
}

.case-reveal-section h2 span {
    color: #C5A24A;
}

.case-reveal-section > div > p {
    color:
        rgba(248,244,236,.50);
}


/* ===================================================== */
/* FOOTER */
/* ===================================================== */

.investigation-footer {
    padding: 55px 5%;

    text-align: center;

    border-top:
        1px solid
        rgba(197,162,74,.15);

    background: #111111;
}

.investigation-footer img {
    width: 55px;
}

.investigation-footer p {
    color: #F8F4EC;

    font-size: 11px;

    letter-spacing: 3px;
}

.investigation-footer span {
    color:
        rgba(248,244,236,.35);

    font-size: 10px;
}


/* ===================================================== */
/* RESPONSIVE */
/* ===================================================== */

@media (max-width: 900px) {

    .case-text-grid,
    .hypothesis-layout {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .case-timeline {
        grid-template-columns: 1fr;
    }

    .case-timeline article {
        border-right: 0;

        border-bottom:
            1px solid
            rgba(197,162,74,.15);
    }

    .evidence-grid,
    .mission-grid {
        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 600px) {

    .investigation-nav {
        padding:
            20px
            5%;
    }

    .investigation-logo-link span {
        display: none;
    }

    .case-hero {
        padding-top: 130px;
    }

    .case-hero-meta {
        margin-bottom: 55px;
    }

    .case-hero h1 {
        letter-spacing: -3px;
    }

    .case-section {
        padding:
            90px
            0;
    }

    .evidence-grid,
    .mission-grid {
        grid-template-columns: 1fr;
    }

}
/* ===================================================== */
/* HERO — BOUTON ENQUÊTES */
/* ===================================================== */

.hero-investigation-btn {
    display: inline-flex;
    align-items: center;
    gap: 16px;

    margin-top: 14px;
    margin-left: 14px;

    padding: 16px 22px;

    border: 1px solid rgba(197, 162, 74, .55);

    background: transparent;

    color: #111111;

    text-decoration: none;

    font-size: 10px;
    letter-spacing: 2.2px;

    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease,
        border-color .3s ease;
}

.hero-investigation-btn:hover {
    background: #C5A24A;
    border-color: #C5A24A;

    color: #111111;

    transform: translateY(-2px);
}

.hero-investigation-btn span {
    transition: transform .3s ease;
}

.hero-investigation-btn:hover span {
    transform: translateX(4px);
}

@media (max-width: 700px) {

    .hero-investigation-btn {
        margin-left: 0;
        margin-top: 12px;
    }

}
/* =========================================================
   SECTION 01 — HERO
========================================================= */

.hero {
    position: relative;

    width: 100%;
    min-height: 100vh;

    overflow: hidden;

    background: #F8F4EC;
}


/* =========================================================
   CONTENU CENTRAL
========================================================= */

.hero-content {
    position: absolute;

    top: 46%;
    left: 50%;

    width: 100%;

    transform: translate(-50%, -50%);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;

    z-index: 10;
}


/* =========================================================
   LOGO
========================================================= */

.hero-logo-wrap {
    position: relative;

    width: 310px;
    height: 310px;

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: center;

    z-index: 5;
}


.hero-logo {
    position: relative;

    width: 285px;
    height: auto;

    display: block;

    margin: 0 auto;

    object-fit: contain;

    z-index: 5;

    animation:
        heroLogoBeat
        2.8s
        ease-in-out
        infinite;
}


/* =========================================================
   BATTEMENT DU LOGO
========================================================= */

@keyframes heroLogoBeat {

    0%,
    100% {
        transform: scale(1);
    }

    8% {
        transform: scale(1.025);
    }

    14% {
        transform: scale(1);
    }

    20% {
        transform: scale(1.015);
    }

    27% {
        transform: scale(1);
    }

}


/* =========================================================
   CERCLES AUTOUR DU LOGO
========================================================= */

.hero-ring {
    position: absolute;

    top: 46%;
    left: 50%;

    border-radius: 50%;

    border:
        1px solid
        rgba(197, 162, 74, .22);

    pointer-events: none;

    z-index: 1;
}


.hero-ring-1 {
    width: 390px;
    height: 390px;

    animation:
        heroRingPulse1
        2.8s
        ease-out
        infinite;
}


.hero-ring-2 {
    width: 500px;
    height: 500px;

    animation:
        heroRingPulse2
        2.8s
        ease-out
        .20s
        infinite;
}


@keyframes heroRingPulse1 {

    0% {
        transform:
            translate(-50%, -50%)
            scale(.82);

        opacity: .55;
    }

    65% {
        opacity: .18;
    }

    100% {
        transform:
            translate(-50%, -50%)
            scale(1.35);

        opacity: 0;
    }

}


@keyframes heroRingPulse2 {

    0% {
        transform:
            translate(-50%, -50%)
            scale(.80);

        opacity: .40;
    }

    65% {
        opacity: .12;
    }

    100% {
        transform:
            translate(-50%, -50%)
            scale(1.28);

        opacity: 0;
    }

}


/* =========================================================
   Q-CORE CONSULTING
========================================================= */

.hero-brand {
    width: 100%;

    margin-top: 115px;

    margin-left: auto;
    margin-right: auto;

    text-align: center;
}


.hero-brand h1 {
    margin: 0;

    color: #111111;

    text-align: center;

    font-size:
        clamp(32px, 3.1vw, 58px);

    font-weight: 400;

    line-height: 1.1;

    letter-spacing: 9px;
}


/* =========================================================
   LIGNE DORÉE
========================================================= */

.hero-brand .gold-line {
    width: 92px;
    height: 1px;

    margin:
        30px
        auto
        24px;

    background: #C5A24A;
}


/* =========================================================
   QUALITY • AUDIT • CERTIFICATION
========================================================= */

.hero-brand p {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 16px;

    margin: 0;

    color: #77736B;

    font-size: 8px;
    font-weight: 500;

    letter-spacing: 4px;
}


.hero-brand p span {
    margin: 0 3px;

    color: #C5A24A;

    font-size: 9px;

    letter-spacing: 0;
}


/* =========================================================
   BOUTONS À DROITE
========================================================= */

.hero-side-buttons {
    position: absolute;

    top: 55%;

    /*
       Plus la valeur est négative,
       plus les boutons sortent vers la droite.
    */

    right: -165px;

    z-index: 30;

    display: flex;
    flex-direction: column;
    align-items: stretch;

    gap: 14px;

    transform: translateY(-50%);
}


/* =========================================================
   BOUTONS — STYLE COMMUN
========================================================= */

.hero-side-buttons .hero-contact-btn {
    position: relative;

    width: 420px;
    height: 76px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin: 0;

    padding:
        8px
        10px
        8px
        34px;

    box-sizing: border-box;

    border:
        1px solid
        rgba(197, 162, 74, .78);

    border-radius: 50px;

    background:
        rgba(248, 244, 236, .82);

    color: #111111;

    text-decoration: none;

    transition:
        transform .35s ease,
        background .35s ease,
        border-color .35s ease,
        box-shadow .35s ease;
}


/* =========================================================
   TEXTE DES BOUTONS
========================================================= */

.hero-side-buttons
.hero-contact-btn > span {

    color: #111111;

    font-size: 9px;
    font-weight: 600;

    letter-spacing: 3px;

    white-space: nowrap;
}


/* =========================================================
   CERCLE DORÉ DES BOUTONS
========================================================= */

.hero-side-buttons
.hero-contact-btn > i {

    flex: 0 0 auto;

    width: 56px;
    height: 56px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #C5A24A;

    color: #FFFFFF;

    font-style: normal;

    font-size: 22px;

    line-height: 1;

    transition:
        transform .35s ease;
}


/* =========================================================
   HOVER BOUTONS
========================================================= */

.hero-side-buttons
.hero-contact-btn:hover {

    transform: translateX(-10px);

    background: #FFFDF9;

    border-color: #C5A24A;

    box-shadow:
        0 15px 40px
        rgba(17,17,17,.06);
}


.hero-side-buttons
.hero-contact-btn:hover > i {

    transform: scale(1.06);
}


/* =========================================================
   SCROLL DOWN
========================================================= */

.hero-scroll-down {
    position: absolute;

    left: 50%;
    bottom: 18px;

    z-index: 40;

    transform: translateX(-50%);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 9px;

    color: #8D867C;

    text-decoration: none;

    transition:
        color .3s ease;
}


.hero-scroll-down span {

    color: #8D867C;

    text-decoration: none;

    font-size: 8px;
    font-weight: 500;

    letter-spacing: 5px;
}


.hero-scroll-down i {

    display: block;

    color: #C5A24A;

    font-style: normal;

    font-size: 18px;

    line-height: 1;

    animation:
        heroScrollBounce
        1.8s
        ease-in-out
        infinite;
}


.hero-scroll-down:hover span {

    color: #C5A24A;
}


@keyframes heroScrollBounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(6px);
    }

}


/* =========================================================
   TABLETTE
========================================================= */

@media (max-width: 1200px) {

    .hero-side-buttons {

        right: -145px;
    }


    .hero-side-buttons
    .hero-contact-btn {

        width: 390px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 900px) {

    .hero {

        min-height: 100svh;

        overflow: hidden;
    }


    /* =============================================
       CONTENU CENTRAL
    ============================================= */

    .hero-content {

        position: absolute;

        top: 37%;
        left: 50%;

        width: 100%;

        transform:
            translate(-50%, -50%);

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        text-align: center;
    }


    /* =============================================
       LOGO MOBILE
    ============================================= */

    .hero-logo-wrap {

        width: 205px;
        height: 205px;

        margin: 0 auto;
    }


    .hero-logo {

        width: 190px;

        margin: 0 auto;
    }


    /* =============================================
       CERCLES MOBILE
    ============================================= */

    .hero-ring {

        top: 37%;
        left: 50%;
    }


    .hero-ring-1 {

        width: 280px;
        height: 280px;
    }


    .hero-ring-2 {

        width: 355px;
        height: 355px;
    }


    /* =============================================
       MARQUE MOBILE
    ============================================= */

    .hero-brand {

        width: 100%;

        margin-top: 62px;

        text-align: center;
    }


    .hero-brand h1 {

        margin: 0 auto;

        padding:
            0
            15px;

        color: #111111;

        font-size:
            clamp(24px, 7vw, 34px);

        line-height: 1.15;

        letter-spacing: 4px;

        text-align: center;
    }


    .hero-brand .gold-line {

        width: 65px;

        margin:
            22px
            auto
            18px;
    }


    /* =============================================
       QUALITY / AUDIT / CERTIFICATION MOBILE
    ============================================= */

    .hero-brand p {

        display: flex;
        align-items: center;
        justify-content: center;

        flex-wrap: nowrap;

        gap: 7px;

        width: 100%;

        padding:
            0
            12px;

        color: #77736B;

        font-size: 6px;

        letter-spacing: 1.8px;

        white-space: nowrap;
    }


    .hero-brand p span {

        margin: 0 1px;

        font-size: 7px;
    }


    /* =============================================
       BOUTONS MOBILE
    ============================================= */

    .hero-side-buttons {

        position: absolute;

        top: auto;

        left: 50%;
        right: auto;

        bottom: 72px;

        width:
            min(88%, 355px);

        display: flex;
        flex-direction: column;
        align-items: stretch;

        gap: 10px;

        transform:
            translateX(-50%);
    }


    .hero-side-buttons
    .hero-contact-btn {

        width: 100%;
        height: 58px;

        margin: 0;

        padding:
            6px
            7px
            6px
            22px;

        transform: none;
    }


    .hero-side-buttons
    .hero-contact-btn > span {

        font-size: 7px;

        letter-spacing: 1.8px;
    }


    .hero-side-buttons
    .hero-contact-btn > i {

        width: 46px;
        height: 46px;

        font-size: 18px;
    }


    .hero-side-buttons
    .hero-contact-btn:hover {

        transform: none;
    }


    /* =============================================
       SCROLL DOWN MOBILE
    ============================================= */

    .hero-scroll-down {

        left: 50%;

        bottom: 14px;

        transform:
            translateX(-50%);
    }


    .hero-scroll-down span {

        font-size: 6px;

        letter-spacing: 3px;
    }

}


/* =========================================================
   PETITS TÉLÉPHONES
========================================================= */

@media (max-width: 520px) {

    .hero-content {

        top: 34%;
    }


    .hero-logo-wrap {

        width: 175px;
        height: 175px;
    }


    .hero-logo {

        width: 160px;
    }


    .hero-ring {

        top: 34%;
    }


    .hero-ring-1 {

        width: 240px;
        height: 240px;
    }


    .hero-ring-2 {

        width: 310px;
        height: 310px;
    }


    .hero-brand {

        margin-top: 48px;
    }


    .hero-brand h1 {

        padding:
            0
            12px;

        font-size: 21px;

        letter-spacing: 3px;
    }


    .hero-brand .gold-line {

        width: 55px;

        margin:
            18px
            auto
            15px;
    }


    .hero-brand p {

        gap: 5px;

        padding:
            0
            8px;

        font-size: 5.3px;

        letter-spacing: 1.3px;
    }


    .hero-brand p span {

        margin: 0;

        font-size: 6px;
    }


    .hero-side-buttons {

        width: 88%;

        bottom: 65px;

        gap: 8px;
    }


    .hero-side-buttons
    .hero-contact-btn {

        height: 52px;

        padding:
            5px
            6px
            5px
            18px;
    }


    .hero-side-buttons
    .hero-contact-btn > span {

        font-size: 6.5px;

        letter-spacing: 1.5px;
    }


    .hero-side-buttons
    .hero-contact-btn > i {

        width: 40px;
        height: 40px;

        font-size: 16px;
    }


    .hero-scroll-down {

        bottom: 10px;
    }

}

.hero-scroll-down {
    position: absolute;

    left: 50%;
    bottom: 18px;

    z-index: 40;

    transform: translateX(-50%);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 9px;

    color: #8D867C;

    text-decoration: none;

    transition:
        color .3s ease;
}


.hero-scroll-down span {
    color: #8D867C;

    text-decoration: none;

    font-size: 8px;
    font-weight: 500;

    letter-spacing: 5px;
}


.hero-scroll-down i {
    display: block;

    color: #C5A24A;

    font-style: normal;

    font-size: 18px;

    line-height: 1;

    animation:
        heroScrollBounce
        1.8s
        ease-in-out
        infinite;
}


.hero-scroll-down:hover span {
    color: #C5A24A;
}


@keyframes heroScrollBounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(6px);
    }
}


/* =========================================================
   TABLETTE
========================================================= */

@media (max-width: 1200px) {

    .hero-side-buttons {
        right: -100px;
    }

    .hero-side-buttons
    .hero-contact-btn {
        width: 360px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 900px) {

    .hero {
        min-height: 100svh;
    }


    .hero-content {
        top: 40%;
    }


    .hero-logo-wrap {
        width: 220px;
        height: 220px;
    }


    .hero-logo {
        width: 205px;
    }


    .hero-ring-1 {
        width: 300px;
        height: 300px;
    }


    .hero-ring-2 {
        width: 390px;
        height: 390px;
    }


    .hero-brand {
        margin-top: 75px;
    }


    .hero-brand h1 {
        padding:
            0
            20px;

        font-size:
            clamp(25px, 7vw, 38px);

        letter-spacing: 5px;
    }


    .hero-brand p {
        gap: 13px;

        padding:
            0
            20px;

        font-size: 7px;

        letter-spacing: 3px;
    }


    /* Les boutons reviennent sous le contenu
       sur téléphone */

    .hero-side-buttons {
        top: auto;
        right: auto;
        left: 50%;
        bottom: 80px;

        width:
            min(90%, 355px);

        gap: 10px;

        transform:
            translateX(-50%);
    }


    .hero-side-buttons
    .hero-contact-btn {
        width: 100%;
        height: 62px;

        padding:
            7px
            7px
            7px
            24px;
    }


    .hero-side-buttons
    .hero-contact-btn > span {
        font-size: 8px;

        letter-spacing: 2px;
    }


    .hero-side-buttons
    .hero-contact-btn > i {
        width: 48px;
        height: 48px;

        font-size: 19px;
    }


    .hero-side-buttons
    .hero-contact-btn:hover {
        transform: none;
    }


    .hero-scroll-down {
        bottom: 15px;
    }

}


/* =========================================================
   PETITS ÉCRANS
========================================================= */

@media (max-width: 520px) {

    .hero-brand h1 {
        font-size: 25px;

        letter-spacing: 3px;
    }


    .hero-brand p {
        gap: 8px;

        font-size: 6px;

        letter-spacing: 2px;
    }


    .hero-brand .gold-line {
        margin:
            22px
            auto
            18px;
    }


    .hero-side-buttons {
        width: 88%;
    }

}