/* =========================================================
   ZOOMBROC — PAGE À PROPOS
   ========================================================= */

.zb-about-page{
    max-width:1180px;
    margin:0 auto;
    padding:35px 24px 75px;
    color:var(--zb-navy,#0d1832);
}

.zb-about-yellow{
    color:var(--zb-yellow,#ffd24a);
}


/* =========================================================
   HERO
   ========================================================= */

.zb-about-hero{
    position:relative;
    overflow:hidden;
    min-height:360px;
    display:flex;
    align-items:center;
    border-radius:30px;
    padding:50px 55px;
    background:
        radial-gradient(circle at 82% 25%,rgba(22,165,199,.28),transparent 25%),
        radial-gradient(circle at 94% 90%,rgba(32,201,151,.20),transparent 24%),
        linear-gradient(135deg,#0b1730,#12345a);
    box-shadow:0 24px 60px rgba(8,21,47,.15);
}

.zb-about-hero-copy{
    position:relative;
    z-index:2;
    max-width:690px;
}

.zb-about-kicker{
    display:inline-flex;
    align-items:center;
    gap:2px;
    margin-bottom:16px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.82);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
}

.zb-about-hero h1{
    margin:0 0 18px;
    color:#fff;
    font-size:clamp(42px,6vw,68px);
    line-height:.94;
    letter-spacing:-.055em;
    font-weight:950;
}

.zb-about-hero h1 em{
    color:var(--zb-yellow,#ffd24a);
    font-style:normal;
}

.zb-about-hero p{
    max-width:620px;
    margin:0;
    color:rgba(255,255,255,.76);
    font-size:17px;
    line-height:1.7;
}


/* =========================================================
   VISUEL HERO
   ========================================================= */

.zb-about-hero-visual{
    position:absolute;
    right:55px;
    top:50%;
    width:260px;
    height:250px;
    transform:translateY(-50%);
}

.zb-about-orb{
    position:absolute;
    inset:25px;
    border-radius:50%;
    background:
        radial-gradient(
            circle,
            rgba(22,165,199,.30),
            rgba(22,165,199,.05) 62%,
            transparent 72%
        );
}

.zb-about-bubble{
    position:absolute;
    display:grid;
    place-items:center;
    width:68px;
    height:68px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:20px;
    background:rgba(255,255,255,.10);
    box-shadow:0 15px 30px rgba(0,0,0,.16);
    font-size:30px;
    backdrop-filter:blur(8px);
    animation:zbAboutFloat 4.8s ease-in-out infinite;
}

.bubble-one{
    left:15px;
    top:45px;
}

.bubble-two{
    right:20px;
    top:15px;
    animation-delay:-1s;
}

.bubble-three{
    right:45px;
    bottom:25px;
    animation-delay:-2.5s;
}

.bubble-four{
    left:40px;
    bottom:0;
    animation-delay:-3.5s;
}

@keyframes zbAboutFloat{

    0%,100%{
        transform:translate3d(0,0,0) rotate(-3deg);
    }

    50%{
        transform:translate3d(0,-10px,0) rotate(3deg);
    }

}


/* =========================================================
   INTRO
   ========================================================= */

.zb-about-intro{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:20px;
    margin-top:22px;
}

.zb-about-card{
    border:1px solid var(--zb-line,#dfe7ef);
    border-radius:22px;
    background:#fff;
    padding:28px;
    box-shadow:0 10px 28px rgba(8,21,47,.055);
}

.zb-about-card h2{
    margin:0 0 13px;
    font-size:27px;
    line-height:1.1;
    letter-spacing:-.04em;
}

.zb-about-card p{
    margin:0 0 14px;
    color:#40516a;
    font-size:15px;
    line-height:1.75;
}

.zb-about-card p:last-child{
    margin-bottom:0;
}

.zb-about-label{
    display:block;
    margin-bottom:9px;
    color:var(--zb-blue,#16a5c7);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.zb-about-highlight{
    position:relative;
    overflow:hidden;
    background:linear-gradient(135deg,#e9faff,#effbf5);
}

.zb-about-highlight-icon{
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    margin-bottom:15px;
    border-radius:15px;
    background:rgba(255,255,255,.75);
    font-size:25px;
}

.zb-about-highlight strong{
    display:block;
    margin-bottom:10px;
    color:var(--zb-navy,#0d1832);
    font-size:18px;
    line-height:1.45;
}


/* =========================================================
   SECTIONS
   ========================================================= */

.zb-about-section{
    margin-top:52px;
}

.zb-about-section-head{
    margin-bottom:20px;
}

.zb-about-section-head span{
    display:block;
    margin-bottom:7px;
    color:var(--zb-blue,#16a5c7);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.zb-about-section-head h2{
    margin:0 0 8px;
    font-size:30px;
    line-height:1.08;
    letter-spacing:-.04em;
    font-weight:950;
}

.zb-about-section-head p{
    margin:0;
    color:var(--zb-muted,#66758b);
    font-size:14px;
    line-height:1.65;
}


/* =========================================================
   CATÉGORIES
   ========================================================= */

.zb-about-categories{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.zb-about-category{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
    padding:17px;
    border:1px solid var(--zb-line,#dfe7ef);
    border-radius:18px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    box-shadow:0 7px 20px rgba(8,21,47,.04);
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.zb-about-category:hover{
    transform:translateY(-3px);
    border-color:#cbd9e6;
    box-shadow:0 13px 28px rgba(8,21,47,.08);
}

.zb-about-category-icon{
    flex:0 0 48px;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#edf7fb;
    font-size:23px;
}

.zb-about-category strong{
    display:block;
    margin-bottom:4px;
    font-size:15px;
    font-weight:950;
}

.zb-about-category small{
    display:block;
    color:var(--zb-muted,#66758b);
    font-size:12px;
    line-height:1.5;
}


/* =========================================================
   ÉTAPES
   ========================================================= */

.zb-about-steps{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:15px;
}

.zb-about-step{
    position:relative;
    padding:23px;
    border:1px solid var(--zb-line,#dfe7ef);
    border-radius:20px;
    background:#fff;
    box-shadow:0 8px 24px rgba(8,21,47,.045);
}

.zb-about-step-number{
    position:absolute;
    top:17px;
    right:18px;
    color:#dbe5ee;
    font-size:11px;
    font-weight:950;
}

.zb-about-step-icon{
    display:grid;
    place-items:center;
    width:50px;
    height:50px;
    margin-bottom:17px;
    border-radius:15px;
    background:#edf7fb;
    font-size:23px;
}

.zb-about-step h3{
    margin:0 0 9px;
    font-size:17px;
    font-weight:950;
}

.zb-about-step p{
    margin:0;
    color:var(--zb-muted,#66758b);
    font-size:13px;
    line-height:1.7;
}


/* =========================================================
   INFOS
   ========================================================= */

.zb-about-info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.zb-about-info{
    padding:24px;
    border:1px solid var(--zb-line,#dfe7ef);
    border-radius:20px;
    background:#fff;
    box-shadow:0 8px 24px rgba(8,21,47,.045);
}

.zb-about-info-icon{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    margin-bottom:15px;
    border-radius:15px;
    background:#edf7fb;
    font-size:23px;
}

.zb-about-info h3{
    margin:0 0 9px;
    font-size:17px;
    font-weight:950;
}

.zb-about-info p{
    margin:0;
    color:var(--zb-muted,#66758b);
    font-size:13px;
    line-height:1.7;
}


/* =========================================================
   FINAL
   ========================================================= */

.zb-about-final{
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    margin-top:52px;
    padding:34px 38px;
    border-radius:26px;
    background:
        radial-gradient(circle at 90% 30%,rgba(22,165,199,.18),transparent 25%),
        linear-gradient(135deg,#0d1832,#123e63);
    color:#fff;
    box-shadow:0 20px 45px rgba(8,21,47,.14);
}

.zb-about-final-copy{
    position:relative;
    z-index:1;
    max-width:780px;
}

.zb-about-final-kicker{
    display:block;
    margin-bottom:10px;
    color:var(--zb-yellow,#ffd24a);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
}

.zb-about-final h2{
    margin:0 0 14px;
    color:#fff;
    font-size:36px;
    line-height:1;
    letter-spacing:-.045em;
    font-weight:950;
}

.zb-about-final h2 span{
    color:var(--zb-yellow,#ffd24a);
}

.zb-about-final p{
    max-width:760px;
    margin:0 0 12px;
    color:rgba(255,255,255,.72);
    font-size:14px;
    line-height:1.75;
}

.zb-about-final .zb-about-thanks{
    margin-top:16px;
    margin-bottom:0;
    color:var(--zb-yellow,#ffd24a);
    font-weight:900;
}

.zb-about-final-visual{
    position:relative;
    z-index:1;
    flex:0 0 120px;
    width:120px;
    height:120px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.14);
    border-radius:32px;
    background:rgba(255,255,255,.07);
    font-size:58px;
    transform:rotate(5deg);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width:900px){

    .zb-about-hero{
        padding:42px 36px;
    }

    .zb-about-hero-visual{
        right:5px;
        opacity:.40;
    }

    .zb-about-intro{
        grid-template-columns:1fr;
    }

    .zb-about-categories{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .zb-about-steps{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .zb-about-info-grid{
        grid-template-columns:1fr 1fr;
    }

}


@media (max-width:700px){

    .zb-about-page{
        padding:20px 12px 45px;
    }

    .zb-about-hero{
        min-height:0;
        padding:32px 24px;
        border-radius:24px;
    }

    .zb-about-hero h1{
        font-size:42px;
    }

    .zb-about-hero p{
        font-size:15px;
    }

    .zb-about-hero-visual{
        display:none;
    }

    .zb-about-card{
        padding:22px;
    }

    .zb-about-card p{
        font-size:14px;
    }

    .zb-about-section{
        margin-top:40px;
    }

    .zb-about-section-head h2{
        font-size:26px;
    }

    .zb-about-section-head p{
        font-size:13px;
    }

    .zb-about-categories,
    .zb-about-steps,
    .zb-about-info-grid{
        grid-template-columns:1fr;
    }

    .zb-about-category small{
        font-size:11px;
    }

    .zb-about-final{
        margin-top:40px;
        padding:27px 23px;
        border-radius:22px;
    }

    .zb-about-final h2{
        font-size:30px;
    }

    .zb-about-final p{
        font-size:13px;
    }

    .zb-about-final-visual{
        display:none;
    }

}


@media (prefers-reduced-motion:reduce){

    .zb-about-bubble,
    .zb-about-category{
        animation:none!important;
        transition:none!important;
    }

}
