/* =========================================
   DISSERTA — PAGE À PROPOS
========================================= */

.about-page {
    width: 100%;
    min-width: 0;
    color: #292746;
}

.about-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr);
    align-items: center;
    gap: 25px;
    min-height: 370px;
    padding: 42px;
    overflow: hidden;
    border-radius: 27px;
    background:
        radial-gradient(circle at 5% 100%, rgba(142, 122, 255, .25), transparent 35%),
        linear-gradient(125deg, #211c52, #4c3caa 65%, #7667eb);
    color: #fff;
}

.about-hero-content {
    position: relative;
    z-index: 2;
}

.about-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding: 9px 13px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 30px;
    background: rgba(255,255,255,.1);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}

.about-hero h1 {
    max-width: 610px;
    margin: 0 0 18px;
    color: #fff;
    font-family: 'Manrope', sans-serif;
    font-size: clamp(29px, 3.5vw, 43px);
    font-weight: 800;
    line-height: 1.23;
    letter-spacing: -1.2px;
}

.about-hero h1 span {
    display: block;
    color: #cfc7ff;
}

.about-hero-content > p {
    max-width: 560px;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-size: 13px;
    line-height: 1.9;
}

.about-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
    margin-top: 25px;
}

.about-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 45px;
    padding: 12px 16px;
    border-radius: 12px;
    background: #fff;
    color: #5140bb;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.about-outline-button {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 0;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.about-hero-illustration {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 270px;
}

.about-orbit {
    position: absolute;
    width: 240px;
    height: 240px;
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 50%;
}

.about-orbit-one {
    transform: rotate(-20deg) scaleY(.75);
}

.about-orbit-two {
    width: 190px;
    height: 190px;
    border-style: dashed;
    transform: rotate(35deg) scaleY(.7);
}

.about-main-book {
    position: relative;
    z-index: 2;
    display: flex;
    width: 155px;
    height: 190px;
    padding: 9px;
    border: 1px solid rgba(255,255,255,.6);
    border-radius: 9px 17px 17px 9px;
    background: linear-gradient(145deg, #fff, #e5e0ff);
    box-shadow: 14px 18px 0 rgba(22,16,70,.25);
    transform: rotate(-7deg);
}

.about-book-spine {
    width: 9px;
    border-right: 1px solid #d3ccfa;
    border-radius: 5px 0 0 5px;
    background: #c7bfff;
}

.about-book-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 12px;
    color: #6350d5;
}

.about-book-content > i {
    font-size: 37px;
}

.about-book-content > span {
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 2px;
}

.about-book-line {
    width: 85%;
    height: 4px;
    border-radius: 5px;
    background: #c9c2f5;
}

.about-book-line.short {
    width: 55%;
}

.about-floating-card {
    position: absolute;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 13px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 10px 30px rgba(25,17,75,.18);
    color: #34304f;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.about-card-top {
    top: 25px;
    right: 0;
}

.about-card-top i {
    color: #e7a32b;
    font-size: 17px;
}

.about-card-bottom {
    bottom: 18px;
    left: 0;
}

.about-card-bottom i {
    color: #35a77d;
    font-size: 17px;
}

.about-decoration {
    position: absolute;
    color: #fff;
    font-size: 30px;
}

.about-decoration-one {
    top: 30px;
    left: 10px;
}

.about-decoration-two {
    right: 20px;
    bottom: 22px;
    font-size: 39px;
}

/* Statistiques */

.about-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin: 22px 0 45px;
}

.about-stat {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 21px;
    border: 1px solid #eeeef5;
    border-radius: 18px;
    background: #fff;
}

.about-stat-icon {
    display: flex;
    flex: 0 0 47px;
    align-items: center;
    justify-content: center;
    width: 47px;
    height: 47px;
    border-radius: 15px;
    font-size: 19px;
}

.about-stat-icon.purple {
    background: #f0edff;
    color: #6856e8;
}

.about-stat-icon.orange {
    background: #fff0e6;
    color: #e78a48;
}

.about-stat-icon.green {
    background: #e4f8ef;
    color: #36a57a;
}

.about-stat > div:last-child {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.about-stat strong {
    color: #292746;
    font-size: 23px;
    font-weight: 900;
}

.about-stat span {
    color: #81839a;
    font-size: 11px;
}

/* Sections générales */

.about-section {
    margin: 55px 0;
}

.about-introduction {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: 45px;
}

.about-section-illustration {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 290px;
    border: 1px solid #eeebff;
    border-radius: 26px;
    background: linear-gradient(145deg, #f4f1ff, #fff);
}

.about-idea-circle {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 180px;
    height: 180px;
    border: 1px solid #ddd7ff;
    border-radius: 50%;
    background: rgba(255,255,255,.7);
    box-shadow: 0 0 0 20px rgba(225,220,255,.25);
}

.about-idea-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    border-radius: 30px;
    background: linear-gradient(135deg, #6856e8, #9385ff);
    box-shadow: 0 15px 35px rgba(104,86,232,.25);
    color: #fff;
    font-size: 42px;
    transform: rotate(-7deg);
}

.about-idea-bubble {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 4px solid #fff;
    border-radius: 15px;
    background: #fff0e6;
    color: #e78a48;
    box-shadow: 0 5px 20px rgba(40,30,90,.1);
}

.bubble-one {
    top: 0;
    right: 4px;
}

.bubble-two {
    bottom: 8px;
    left: -5px;
    background: #e4f8ef;
    color: #36a57a;
}

.bubble-three {
    right: -12px;
    bottom: 20px;
    background: #e9e5ff;
    color: #6856e8;
}

.about-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: #7665e8;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.about-section-text h2,
.about-centered-heading h2 {
    margin: 0 0 17px;
    color: #292746;
    font-family: 'Manrope', sans-serif;
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 800;
    line-height: 1.35;
}

.about-section-text p {
    margin: 0 0 14px;
    color: #73758c;
    font-size: 13px;
    line-height: 1.95;
}

/* Mission */

.about-mission {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(180px, .8fr);
    align-items: center;
    gap: 25px;
    padding: 35px;
    overflow: hidden;
    border-radius: 25px;
    background: linear-gradient(125deg, #292354, #5140bb 70%, #7667eb);
    color: #fff;
}

.about-eyebrow.light {
    color: #d2caff;
}

.about-mission-content h2 {
    max-width: 510px;
    margin: 0 0 15px;
    color: #fff;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.35;
}

.about-mission-content > p {
    max-width: 570px;
    margin: 0;
    color: rgba(255,255,255,.77);
    font-size: 12px;
    line-height: 1.9;
}

.about-mission-points {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 22px;
}

.about-mission-points > div {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 12px;
}

.about-mission-points i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255,255,255,.16);
    color: #c9ffdf;
    font-size: 10px;
}

.about-mission-art {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
}

.about-mission-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 155px;
    height: 155px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    box-shadow: 0 0 0 20px rgba(255,255,255,.04);
    color: #fff;
    font-size: 65px;
}

.mission-star {
    position: absolute;
    color: #e7dcff;
    font-size: 30px;
}

.star-a {
    top: 10px;
    right: 30px;
}

.star-b {
    bottom: 18px;
    left: 25px;
    font-size: 40px;
}

.star-c {
    top: 25px;
    left: 20px;
    font-size: 19px;
}

/* Avantages */

.about-centered-heading {
    max-width: 650px;
    margin: 0 auto 30px;
    text-align: center;
}

.about-centered-heading h2 {
    margin-bottom: 12px;
}

.about-centered-heading > p {
    margin: 0;
    color: #81839a;
    font-size: 12px;
    line-height: 1.8;
}

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

.about-benefit-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 25px 22px;
    border: 1px solid #eeeef5;
    border-radius: 20px;
    background: #fff;
    transition: transform .2s, box-shadow .2s;
}

.about-benefit-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 35px rgba(35,30,80,.07);
}

.about-benefit-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    margin-bottom: 20px;
    border-radius: 16px;
    font-size: 21px;
}

.about-benefit-icon.violet {
    background: #f0edff;
    color: #6856e8;
}

.about-benefit-icon.peach {
    background: #fff0e6;
    color: #e78a48;
}

.about-benefit-icon.mint {
    background: #e4f8ef;
    color: #36a57a;
}

.about-benefit-card h3 {
    margin: 0 0 11px;
    color: #292746;
    font-size: 15px;
    font-weight: 800;
}

.about-benefit-card p {
    flex: 1;
    margin: 0 0 20px;
    color: #7a7c92;
    font-size: 12px;
    line-height: 1.9;
}

.about-benefit-card > a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #6856e8;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

/* Étapes */

.about-how-section {
    margin: 60px 0;
    padding: 35px 25px;
    border: 1px solid #eeeef5;
    border-radius: 25px;
    background: #faf9ff;
}

.about-steps {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr) 30px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.about-step {
    position: relative;
    height: 100%;
    padding: 24px 18px;
    border: 1px solid #eeebff;
    border-radius: 18px;
    background: #fff;
    text-align: center;
}

.about-step-number {
    position: absolute;
    top: 13px;
    right: 15px;
    color: #d9d4fb;
    font-size: 18px;
    font-weight: 900;
}

.about-step-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    margin: 10px auto 17px;
    border-radius: 17px;
    background: #f0edff;
    color: #6856e8;
    font-size: 21px;
}

.about-step h3 {
    margin: 0 0 9px;
    color: #292746;
    font-size: 15px;
    font-weight: 800;
}

.about-step p {
    margin: 0;
    color: #81839a;
    font-size: 11px;
    line-height: 1.8;
}

.about-step-connector {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #a59af0;
    font-size: 16px;
}

/* Appel à l'action */

.about-final-cta {
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 45px 0 20px;
    padding: 27px;
    border: 1px solid #e9e5ff;
    border-radius: 23px;
    background: linear-gradient(120deg, #f5f2ff, #fff);
}

.about-final-cta-icon {
    display: flex;
    flex: 0 0 58px;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: #e5dfff;
    color: #6856e8;
    font-size: 25px;
}

.about-final-cta-text {
    flex: 1;
    min-width: 0;
}

.about-final-cta-text > span {
    display: block;
    margin-bottom: 6px;
    color: #7665e8;
    font-size: 10px;
    font-weight: 800;
}

.about-final-cta-text h2 {
    margin: 0 0 7px;
    color: #292746;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.5;
}

.about-final-cta-text p {
    margin: 0;
    color: #81839a;
    font-size: 11px;
    line-height: 1.8;
}

.about-final-cta-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    min-width: 175px;
}

.about-cta-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 13px 15px;
    border-radius: 12px;
    background: #6856e8;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.about-cta-secondary {
    padding: 8px;
    color: #6856e8;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

/* Responsive tablette */

@media (max-width: 1050px) {
    .about-hero {
        padding: 30px;
        grid-template-columns: minmax(0, 1.1fr) minmax(180px, .9fr);
    }

    .about-hero-illustration {
        transform: scale(.9);
    }

    .about-stat {
        padding: 16px;
    }

    .about-introduction {
        gap: 25px;
    }

    .about-benefit-card {
        padding: 20px 17px;
    }

    .about-final-cta {
        flex-wrap: wrap;
    }
}

/* Responsive mobile */

@media (max-width: 760px) {
    .about-hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        padding: 27px 21px;
        border-radius: 22px;
    }

    .about-hero h1 {
        font-size: 30px;
        letter-spacing: -.6px;
    }

    .about-hero-content > p {
        font-size: 12px;
    }

    .about-hero-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .about-hero-illustration {
        min-height: 220px;
        transform: scale(.9);
    }

    .about-card-top {
        right: 3%;
    }

    .about-card-bottom {
        left: 2%;
    }

    .about-stats {
        grid-template-columns: 1fr;
        gap: 10px;
        margin: 17px 0 35px;
    }

    .about-stat {
        padding: 15px;
    }

    .about-stat strong {
        font-size: 21px;
    }

    .about-introduction {
        grid-template-columns: minmax(0, 1fr);
        gap: 25px;
        margin: 40px 0;
    }

    .about-section-illustration {
        min-height: 240px;
    }

    .about-section-text h2,
    .about-centered-heading h2 {
        font-size: 25px;
    }

    .about-section-text p {
        font-size: 12px;
    }

    .about-mission {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        padding: 25px 21px;
    }

    .about-mission-content h2 {
        font-size: 25px;
    }

    .about-mission-content > p {
        font-size: 12px;
    }

    .about-mission-art {
        min-height: 180px;
    }

    .about-mission-circle {
        width: 125px;
        height: 125px;
        font-size: 52px;
    }

    .about-benefits-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .about-benefit-card {
        padding: 23px;
    }

    .about-how-section {
        margin: 40px 0;
        padding: 27px 16px;
    }

    .about-steps {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .about-step {
        padding: 22px 18px;
    }

    .about-step-connector {
        transform: rotate(90deg);
        padding: 3px;
    }

    .about-final-cta {
        align-items: flex-start;
        flex-direction: column;
        gap: 15px;
        margin-top: 35px;
        padding: 23px 19px;
    }

    .about-final-cta-text h2 {
        font-size: 19px;
    }

    .about-final-cta-actions {
        width: 100%;
        min-width: 0;
    }
}