/* =========================================================
   RESOCLUB
   PAGE D'ACCUEIL
   Refonte 2026

   IMPORTANT :
   Ce fichier reprend les variables déjà définies
   dans header-footer.css :
   --rc-violet
   --rc-violet-dark
   --rc-turquoise
   --rc-turquoise-dark
   --rc-ink
   --rc-muted
   --rc-border
   --rc-surface
   --rc-white
   --rc-container
========================================================= */


/* =========================================================
   BASE
========================================================= */

.resoclub-home {
    width: 100%;
    overflow: hidden;
}


.resoclub-home *,
.resoclub-home *::before,
.resoclub-home *::after {
    box-sizing: border-box;
}


.resoclub-home img {
    display: block;
    max-width: 100%;
}


/* =========================================================
   ÉLÉMENTS GÉNÉRAUX
========================================================= */

.resoclub-home-section {
    position: relative;

    padding:
        clamp(4.5rem, 7vw, 7.5rem)
        0;
}


/* =========================================================
   EYEBROW
========================================================= */

.resoclub-home-eyebrow {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap:
        0.45rem;

    margin:
        0
        0
        1rem;

    color:
        var(--rc-turquoise);

    font-size:
        0.76rem;

    font-weight:
        800;

    line-height:
        1.4;

    letter-spacing:
        0.15em;

    text-transform:
        uppercase;
}


.resoclub-home-eyebrow span {
    opacity: 0.65;
}


/* =========================================================
   TITRES DE SECTION
========================================================= */

.resoclub-home-section__heading {
    max-width:
        780px;

    margin-bottom:
        3rem;
}


.resoclub-home-section__heading h2 {
    margin: 0;

    color:
        var(--rc-ink);

    font-size:
        clamp(
            2rem,
            4vw,
            3.7rem
        );

    font-weight:
        500;

    line-height:
        1.07;

    letter-spacing:
        -0.035em;
}


.resoclub-home-section__heading > p:last-child {
    max-width:
        720px;

    margin:
        1.25rem
        0
        0;

    color:
        var(--rc-muted);

    font-size:
        1.05rem;

    line-height:
        1.75;
}


.resoclub-home-section__heading--center {
    margin-inline: auto;

    text-align: center;
}


.resoclub-home-section__heading--center
.resoclub-home-eyebrow {
    justify-content: center;
}


.resoclub-home-section__heading--row {
    display: flex;

    align-items:
        flex-end;

    justify-content:
        space-between;

    gap:
        3rem;

    max-width:
        none;
}


/* =========================================================
   ACTIONS / BOUTONS
========================================================= */

.resoclub-home-actions {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap:
        1rem;

    margin-top:
        2rem;
}


.resoclub-home-button {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap:
        1rem;

    min-height:
        58px;

    padding:
        0.85rem
        1.8rem;

    border:
        1px solid
        transparent;

    border-radius:
        999px;

    text-decoration:
        none;

    font-size:
        0.98rem;

    font-weight:
        750;

    line-height:
        1;

    transition:
        transform 0.18s ease,
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}


.resoclub-home-button:hover,
.resoclub-home-button:focus-visible {
    transform:
        translateY(-2px);
}


/* bouton principal */

.resoclub-home-button--primary {
    color:
        var(--rc-violet);

    background:
        var(--rc-white);

    border-color:
        var(--rc-white);
}


.resoclub-home-button--primary:hover,
.resoclub-home-button--primary:focus-visible {
    color:
        var(--rc-violet-dark);

    background:
        #f8f4fb;
}


/* bouton transparent */

.resoclub-home-button--ghost {
    color:
        var(--rc-white);

    background:
        transparent;

    border-color:
        rgba(
            255,
            255,
            255,
            0.6
        );
}


.resoclub-home-button--ghost:hover,
.resoclub-home-button--ghost:focus-visible {
    color:
        var(--rc-white);

    border-color:
        var(--rc-white);

    background:
        rgba(
            255,
            255,
            255,
            0.08
        );
}


/* =========================================================
   LIENS TEXTE
========================================================= */

.resoclub-home-text-link {
    display: inline-flex;

    align-items: center;

    gap:
        0.45rem;

    color:
        var(--rc-violet);

    text-decoration:
        none;

    font-size:
        0.92rem;

    font-weight:
        800;
}


.resoclub-home-text-link:hover,
.resoclub-home-text-link:focus-visible {
    text-decoration:
        underline;

    text-underline-offset:
        4px;
}


/* =========================================================
   1. HERO
========================================================= */

.resoclub-home-hero {
    position: relative;

    min-height:
        700px;

    color:
        var(--rc-white);

    background:
        radial-gradient(
            circle at 67% 45%,
            rgba(142, 109, 224, 0.55) 0%,
            rgba(142, 109, 224, 0.2) 31%,
            transparent 54%
        ),
        linear-gradient(
            115deg,
            #42106f 0%,
            var(--rc-violet) 48%,
            #6d61c5 100%
        );

    overflow: hidden;
}


/*
 * Courbe décorative discrète derrière la photo
 */

.resoclub-home-hero::before {
    content: "";

    position: absolute;

    top:
        -27%;

    right:
        -9%;

    width:
        53vw;

    height:
        120%;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.24
        );

    border-radius:
        50%;

    pointer-events:
        none;
}


/*
 * Halo clair inférieur
 */

.resoclub-home-hero::after {
    content: "";

    position: absolute;

    right:
        -5%;

    bottom:
        -55%;

    width:
        58vw;

    height:
        75%;

    border-radius:
        50%;

    background:
        radial-gradient(
            ellipse at center,
            rgba(
                255,
                255,
                255,
                0.42
            ),
            rgba(
                255,
                255,
                255,
                0.08
            ) 47%,
            transparent 70%
        );

    pointer-events:
        none;
}


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

.resoclub-home-hero__inner {
    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(440px, 0.95fr);

    align-items: center;

    gap:
        clamp(
            2rem,
            4vw,
            5rem
        );

    min-height:
        700px;

    padding:
        4.8rem
        0
        3rem;
}


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

.resoclub-home-hero__content {
    position: relative;

    z-index: 3;

    max-width:
        720px;
}


.resoclub-home-hero
.resoclub-home-eyebrow {
    color:
        var(--rc-turquoise);
}


.resoclub-home-hero h1 {
    max-width:
        760px;

    margin: 0;

    color:
        var(--rc-white);

    font-size:
        clamp(
            2.75rem,
            3vw,
            3.75rem
        );

    font-weight:
        400;

    line-height:
        0.98;

    letter-spacing:
        -0.047em;

    text-shadow:
        0 2px 4px
        rgba(20, 7, 31, 0.52),
        0 8px 24px
        rgba(20, 7, 31, 0.28);
}


.resoclub-home-hero__title-line {
    display: block;

    white-space: nowrap;
}


.resoclub-home-hero__title-line--primary > span {
    display: inline;
}


.resoclub-home-hero__title-line--primary > span + span::before {
    content: " ";
}


.resoclub-home-hero__lead {
    max-width:
        670px;

    margin:
        1.55rem
        0
        0;

    color:
        rgba(
            255,
            255,
            255,
            0.82
        );

    font-size:
        clamp(
            1rem,
            1.4vw,
            1.18rem
        );

    line-height:
        1.7;
}


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

.resoclub-home-hero__visual {
    position: absolute;

    z-index: 1;

    top: 0;
    right: -4%;
    bottom: 0;

    width:
        43%;

    min-width:
        500px;
}


/*
 * Cadre organique de la photo
 */

.resoclub-home-hero__visual::before {
    content: "";

    position: absolute;

    z-index: 0;

    inset:
        6%
        -6%
        2%
        -8%;

    border:
        2px solid
        rgba(
            255,
            255,
            255,
            0.22
        );

    border-radius:
        58% 0 0 55%
        /
        46% 0 0 54%;

    transform:
        rotate(-4deg);

    pointer-events:
        none;
}


.resoclub-home-hero__image {
    position: absolute;

    top: 0;
    right: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    object-position:
        center;

    clip-path:
        ellipse(
            78% 68%
            at
            76% 47%
        );
}


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

.resoclub-home-hero__image-placeholder {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            135deg,
            rgba(
                255,
                255,
                255,
                0.08
            ),
            rgba(
                255,
                255,
                255,
                0.02
            )
        );
}


/* =========================================================
   2. ACCÈS RAPIDES
========================================================= */

.resoclub-home-quick-access {
    position: relative;

    z-index: 5;

    margin-top:
        -1px;

    padding:
        0
        0
        4.8rem;

    background:
        var(--rc-white);
}


.resoclub-home-quick-access__grid {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            1fr
        );

    border:
        1px solid
        var(--rc-border);

    background:
        var(--rc-white);

    box-shadow:
        0 16px 45px
        rgba(
            56,
            35,
            68,
            0.07
        );
}


.resoclub-home-quick-card {
    position: relative;

    display: flex;

    flex-direction:
        column;

    min-height:
        220px;

    padding:
        1.8rem;

    border-right:
        1px solid
        var(--rc-border);

    color:
        var(--rc-ink);

    background:
        var(--rc-white);

    text-decoration:
        none;

    transition:
        background 0.18s ease,
        transform 0.18s ease;
}


.resoclub-home-quick-card:last-child {
    border-right: 0;
}


.resoclub-home-quick-card:hover,
.resoclub-home-quick-card:focus-visible {
    background:
        var(--rc-surface);
}


.resoclub-home-quick-card__number {
    color:
        var(--rc-turquoise);

    font-size:
        1.1rem;

    font-weight:
        900;

    letter-spacing:
        0.08em;
}


.resoclub-home-quick-card h2 {
    margin:
        2.2rem
        0
        0.7rem;

    color:
        var(--rc-violet);

    font-size:
        1.15rem;

    font-weight:
        800;

    line-height:
        1.25;
}


.resoclub-home-quick-card p {
    margin: 0;

    color:
        var(--rc-muted);

    font-size:
        0.88rem;

    line-height:
        1.6;
}


.resoclub-home-quick-card__arrow {
    margin-top:
        auto;

    padding-top:
        1.4rem;

    color:
        var(--rc-violet);

    font-size:
        1.15rem;

    font-weight:
        800;
}


/* =========================================================
   3. COMPRENDRE L'ENJEU
========================================================= */

.resoclub-home-context {
    background:
        var(--rc-white);
}


.resoclub-home-context__grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            1fr
        );

    gap:
        1.25rem;
}


.resoclub-home-context-stat {
    position: relative;

    min-height:
        320px;

    padding:
        2rem;

    border:
        1px solid
        var(--rc-border);

    background:
        var(--rc-white);
}


.resoclub-home-context-stat::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width:
        72px;

    height:
        3px;

    background:
        var(--rc-turquoise);
}


.resoclub-home-context-stat__value {
    display: block;

    margin-bottom:
        2.2rem;

    color:
        var(--rc-violet);

    font-size:
        clamp(
            2.8rem,
            5vw,
            4.8rem
        );

    font-weight:
        500;

    line-height:
        0.95;

    letter-spacing:
        -0.045em;
}


.resoclub-home-context-stat h3 {
    margin:
        0
        0
        0.8rem;

    color:
        var(--rc-ink);

    font-size:
        1rem;

    line-height:
        1.5;
}


.resoclub-home-context-stat > p {
    margin:
        0
        0
        1.7rem;

    color:
        var(--rc-muted);

    font-size:
        0.87rem;

    line-height:
        1.6;
}


.resoclub-home-source-link {
    display: inline-block;

    margin-top:
        auto;

    color:
        var(--rc-violet);

    text-decoration:
        none;

    font-size:
        0.7rem;

    font-weight:
        700;

    line-height:
        1.4;
}


.resoclub-home-source-link:hover,
.resoclub-home-source-link:focus-visible {
    text-decoration:
        underline;

    text-underline-offset:
        3px;
}


/* =========================================================
   4. MISSIONS
========================================================= */

.resoclub-home-missions {
    background:
        var(--rc-surface);
}


.resoclub-home-missions__grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            1fr
        );

    gap:
        3.2rem;
}


.resoclub-home-mission {
    position: relative;

    padding-top:
        1.5rem;

    border-top:
        2px solid
        var(--rc-violet);
}


.resoclub-home-mission__number {
    display: block;

    color:
        var(--rc-turquoise);

    font-size:
        1.1rem;

    font-weight:
        900;

    letter-spacing:
        0.08em;
}


.resoclub-home-mission h3 {
    margin:
        1.4rem
        0
        0.8rem;

    color:
        var(--rc-violet);

    font-size:
        1.65rem;

    font-weight:
        700;
}


.resoclub-home-mission p {
    margin: 0;

    color:
        var(--rc-muted);

    font-size:
        0.95rem;

    line-height:
        1.75;
}


/* =========================================================
   5. PARCOURS VICTIME
========================================================= */

.resoclub-home-victim-path {
    background:
        var(--rc-white);
}


.resoclub-home-victim-path__grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            1fr
        );

    gap:
        1.25rem;
}


.resoclub-home-path-card {
    display: flex;

    flex-direction:
        column;

    min-height:
        330px;

    padding:
        2rem;

    border:
        1px solid
        var(--rc-border);

    color:
        var(--rc-ink);

    background:
        var(--rc-white);

    text-decoration:
        none;

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


.resoclub-home-path-card:hover,
.resoclub-home-path-card:focus-visible {
    transform:
        translateY(-4px);

    border-color:
        rgba(
            92,
            45,
            130,
            0.26
        );

    box-shadow:
        0 18px 45px
        rgba(
            56,
            35,
            68,
            0.08
        );
}


.resoclub-home-path-card > span {
    color:
        var(--rc-turquoise);

    font-size:
        0.72rem;

    font-weight:
        800;
}


.resoclub-home-path-card h3 {
    margin:
        2.2rem
        0
        0.9rem;

    color:
        var(--rc-violet);

    font-size:
        1.35rem;

    line-height:
        1.25;
}


.resoclub-home-path-card p {
    margin:
        0
        0
        2rem;

    color:
        var(--rc-muted);

    font-size:
        0.9rem;

    line-height:
        1.7;
}


.resoclub-home-path-card strong {
    margin-top:
        auto;

    color:
        var(--rc-violet);

    font-size:
        0.84rem;
}


/* carte centrale */

.resoclub-home-path-card--featured {
    color:
        var(--rc-white);

    border-color:
        var(--rc-violet);

    background:
        var(--rc-violet);
}


.resoclub-home-path-card--featured > span,
.resoclub-home-path-card--featured h3,
.resoclub-home-path-card--featured strong {
    color:
        var(--rc-white);
}


.resoclub-home-path-card--featured p {
    color:
        rgba(
            255,
            255,
            255,
            0.74
        );
}


/* =========================================================
   6. AMINA
========================================================= */

.resoclub-home-amina {
    background:
        var(--rc-surface);
}


.resoclub-home-amina__inner {
    display: grid;

    grid-template-columns:
        minmax(360px, 0.85fr)
        minmax(0, 1.15fr);

    align-items: stretch;

    gap:
        clamp(
            3rem,
            7vw,
            7rem
        );
}


.resoclub-home-amina__visual {
    position: relative;

    min-height:
        530px;
}


.resoclub-home-amina__visual::before {
    content: "";

    position: absolute;

    top:
        -18px;

    left:
        -18px;

    width:
        45%;

    height:
        45%;

    border-top:
        3px solid
        var(--rc-turquoise);

    border-left:
        3px solid
        var(--rc-turquoise);

    pointer-events:
        none;
}


.resoclub-home-amina__visual img {
    width: 100%;
    height: 100%;

    min-height:
        530px;

    object-fit:
        cover;
}


.resoclub-home-amina__photo-placeholder {
    width: 100%;
    height: 100%;

    min-height:
        530px;

    background:
        linear-gradient(
            135deg,
            rgba(
                92,
                45,
                130,
                0.13
            ),
            rgba(
                53,
                169,
                154,
                0.12
            )
        );
}


.resoclub-home-amina__content {
    display: flex;

    flex-direction:
        column;

    justify-content:
        center;

    max-width:
        700px;
}


.resoclub-home-amina__content h2 {
    margin: 0;

    color:
        var(--rc-ink);

    font-size:
        clamp(
            2.1rem,
            4vw,
            3.8rem
        );

    font-weight:
        500;

    line-height:
        1.08;

    letter-spacing:
        -0.035em;
}


.resoclub-home-amina__content > p:not(.resoclub-home-eyebrow) {
    margin:
        1.25rem
        0
        0;

    color:
        var(--rc-muted);

    font-size:
        1rem;

    line-height:
        1.78;
}


.resoclub-home-amina__content
.resoclub-home-text-link {
    margin-top:
        2rem;
}


.resoclub-home-founder__intro {
    color:
        var(--rc-ink);

    font-size:
        1.08rem;

    font-weight:
        600;

    line-height:
        1.7;
}


.resoclub-home-founder__quote {
    margin:
        1.4rem
        0
        0;

    padding:
        1.25rem
        1.5rem;

    border-left:
        3px solid
        var(--rc-turquoise);

    background:
        var(--rc-white);
}


.resoclub-home-founder__quote > p {
    margin: 0;

    color:
        var(--rc-ink);

    font-size:
        0.94rem;

    font-style:
        italic;

    line-height:
        1.75;
}


.resoclub-home-founder__quote footer {
    display: flex;

    flex-direction:
        column;

    gap:
        0.2rem;

    margin-top:
        1rem;
}


.resoclub-home-founder__quote footer strong {
    color:
        var(--rc-violet);
}


.resoclub-home-founder__quote footer span {
    color:
        var(--rc-muted);

    font-size:
        0.82rem;

    line-height:
        1.5;
}


.resoclub-home-founder__funding {
    padding-top:
        1rem;

    border-top:
        1px solid
        var(--rc-border);
}


.resoclub-home-founder__actions {
    display: flex;

    flex-wrap:
        wrap;

    align-items:
        center;

    gap:
        1rem;

    margin-top:
        1.5rem;
}


.resoclub-home-founder__actions
.resoclub-home-text-link {
    margin-top: 0;
}


.resoclub-home-founder__membership {
    color:
        var(--rc-white);

    border-color:
        var(--rc-violet);

    background:
        var(--rc-violet);
}


.resoclub-home-founder__membership:hover,
.resoclub-home-founder__membership:focus-visible {
    color:
        var(--rc-white);

    border-color:
        var(--rc-violet-dark);

    background:
        var(--rc-violet-dark);
}


/* =========================================================
   7. IMPACT RESOCLUB
========================================================= */

.resoclub-home-impact {
    color:
        var(--rc-white);

    background:
        linear-gradient(
            120deg,
            var(--rc-violet-dark),
            var(--rc-violet)
        );
}


.resoclub-home-impact
.resoclub-home-eyebrow {
    color:
        var(--rc-turquoise);
}


.resoclub-home-impact
.resoclub-home-section__heading h2 {
    color:
        var(--rc-white);
}


.resoclub-home-impact__grid {
    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(
                260px,
                1fr
            )
        );

    gap:
        1px;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.18
        );

    background:
        rgba(
            255,
            255,
            255,
            0.18
        );
}


.resoclub-home-impact-stat {
    min-height:
        260px;

    padding:
        2.2rem;

    background:
        var(--rc-violet);
}


.resoclub-home-impact-stat strong {
    display: block;

    margin-bottom:
        1.5rem;

    color:
        var(--rc-white);

    font-size:
        clamp(
            3.1rem,
            6vw,
            5.5rem
        );

    font-weight:
        400;

    line-height:
        0.9;

    letter-spacing:
        -0.05em;
}


.resoclub-home-impact-stat h3 {
    margin:
        0
        0
        0.6rem;

    color:
        var(--rc-white);

    font-size:
        1.15rem;
}


.resoclub-home-impact-stat p {
    margin: 0;

    color:
        rgba(
            255,
            255,
            255,
            0.7
        );

    font-size:
        0.85rem;

    line-height:
        1.55;
}


/* =========================================================
   8. NOS ACTIONS
========================================================= */

.resoclub-home-actions-section {
    background:
        var(--rc-white);
}


.resoclub-home-actions-section__grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            1fr
        );

    gap:
        1.25rem;
}


.resoclub-home-action-card {
    display: flex;

    flex-direction:
        column;

    min-height:
        310px;

    padding:
        2rem;

    border:
        1px solid
        var(--rc-border);

    color:
        var(--rc-ink);

    background:
        var(--rc-white);

    text-decoration:
        none;

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


.resoclub-home-action-card:hover,
.resoclub-home-action-card:focus-visible {
    transform:
        translateY(-4px);

    border-color:
        rgba(
            92,
            45,
            130,
            0.25
        );

    box-shadow:
        0 18px 40px
        rgba(
            56,
            35,
            68,
            0.08
        );
}


.resoclub-home-action-card > span {
    color:
        var(--rc-turquoise);

    font-size:
        0.72rem;

    font-weight:
        850;
}


.resoclub-home-action-card h3 {
    margin:
        2rem
        0
        0.8rem;

    color:
        var(--rc-violet);

    font-size:
        1.4rem;
}


.resoclub-home-action-card p {
    margin:
        0
        0
        2rem;

    color:
        var(--rc-muted);

    font-size:
        0.91rem;

    line-height:
        1.7;
}


.resoclub-home-action-card strong {
    margin-top:
        auto;

    color:
        var(--rc-violet);

    font-size:
        0.84rem;
}


/* =========================================================
   9. ACTUALITÉS
========================================================= */

.resoclub-home-news {
    background:
        var(--rc-surface);
}


.resoclub-home-news__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(320px, 0.75fr);

    grid-template-rows:
        1fr
        1fr;

    gap:
        1.25rem;
}


.resoclub-home-news-card {
    display: grid;

    grid-template-columns:
        155px
        1fr;

    min-width: 0;

    overflow: hidden;

    border:
        1px solid
        var(--rc-border);

    background:
        var(--rc-white);
}


.resoclub-home-news-card--featured {
    grid-row:
        1 / span 2;

    display: flex;

    flex-direction:
        column;
}


.resoclub-home-news-card__image {
    display: block;

    min-height:
        100%;

    overflow: hidden;
}


.resoclub-home-news-card--featured
.resoclub-home-news-card__image {
    min-height: 0;

    aspect-ratio:
        16 / 9;
}


.resoclub-home-news-card__image img {
    width: 100%;
    height: 100%;

    object-fit:
        cover;

    transition:
        transform
        0.35s ease;
}


.resoclub-home-news-card:hover
.resoclub-home-news-card__image img {
    transform:
        scale(1.025);
}


.resoclub-home-news-card__content {
    padding:
        1.35rem;
}


.resoclub-home-news-card--featured
.resoclub-home-news-card__content {
    padding:
        2rem;
}


.resoclub-home-news-card__date {
    margin:
        0
        0
        0.7rem;

    color:
        var(--rc-turquoise);

    font-size:
        0.72rem;

    font-weight:
        850;

    letter-spacing:
        0.07em;

    text-transform:
        uppercase;
}


.resoclub-home-news-card h3 {
    margin: 0;

    font-size:
        1.1rem;

    line-height:
        1.3;
}


.resoclub-home-news-card--featured h3 {
    font-size:
        clamp(
            1.5rem,
            2.8vw,
            2.35rem
        );
}


.resoclub-home-news-card h3 a {
    color:
        var(--rc-ink);

    text-decoration:
        none;
}


.resoclub-home-news-card h3 a:hover,
.resoclub-home-news-card h3 a:focus-visible {
    color:
        var(--rc-violet);
}


.resoclub-home-news-card__content
> p:not(.resoclub-home-news-card__date) {
    margin:
        0.8rem
        0
        1rem;

    color:
        var(--rc-muted);

    font-size:
        0.88rem;

    line-height:
        1.65;
}


/* =========================================================
   10. PRAEVICTIS
========================================================= */

.resoclub-home-praevictis {
    background:
        var(--rc-white);
}


.resoclub-home-praevictis__inner {
    position: relative;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(300px, 0.75fr);

    align-items: stretch;

    min-height:
        460px;

    border:
        1px solid
        rgba(
            53,
            169,
            154,
            0.28
        );

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            rgba(
                53,
                169,
                154,
                0.08
            ),
            rgba(
                255,
                255,
                255,
                1
            ) 60%
        );
}


.resoclub-home-praevictis__content {
    padding:
        clamp(
            2.5rem,
            5vw,
            5rem
        );
}


.resoclub-home-praevictis__content h2 {
    max-width:
        680px;

    margin: 0;

    color:
        var(--rc-ink);

    font-size:
        clamp(
            2rem,
            4vw,
            3.6rem
        );

    font-weight:
        500;

    line-height:
        1.08;

    letter-spacing:
        -0.035em;
}


.resoclub-home-praevictis__content > p:not(.resoclub-home-eyebrow) {
    max-width:
        650px;

    margin:
        1.3rem
        0
        0;

    color:
        var(--rc-muted);

    font-size:
        1rem;

    line-height:
        1.75;
}


.resoclub-home-praevictis__contact a {
    color:
        var(--rc-violet);

    font-weight:
        800;

    overflow-wrap:
        anywhere;
}


.resoclub-home-praevictis__contact a:hover,
.resoclub-home-praevictis__contact a:focus-visible {
    color:
        var(--rc-violet-dark);

    text-decoration:
        underline;

    text-underline-offset:
        4px;
}


/*
 * Dans cette section,
 * le bouton principal est turquoise.
 */

.resoclub-home-praevictis
.resoclub-home-button--primary {
    color:
        var(--rc-white);

    border-color:
        var(--rc-turquoise);

    background:
        var(--rc-turquoise);
}


.resoclub-home-praevictis
.resoclub-home-button--primary:hover {
    background:
        var(--rc-turquoise-dark);
}


/* =========================================================
   VISUEL PRAEVICTIS
========================================================= */

.resoclub-home-praevictis__visual {
    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    min-height:
        100%;

    background:
        linear-gradient(
            145deg,
            var(--rc-turquoise),
            #65c4b7
        );

    overflow: hidden;
}


.resoclub-home-praevictis__visual::before,
.resoclub-home-praevictis__visual::after {
    content: "";

    position: absolute;

    width:
        330px;

    height:
        330px;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.28
        );

    border-radius:
        50%;
}


.resoclub-home-praevictis__visual::before {
    top:
        -110px;

    right:
        -70px;
}


.resoclub-home-praevictis__visual::after {
    bottom:
        -160px;

    left:
        -90px;
}


.resoclub-home-praevictis__visual span {
    position: relative;

    z-index: 2;

    color:
        var(--rc-white);

    font-size:
        clamp(
            1.6rem,
            3.5vw,
            3rem
        );

    font-weight:
        500;

    letter-spacing:
        0.05em;
}


.resoclub-home-praevictis__logo {
    position: relative;

    z-index: 2;

    display: block;

    width: auto;
    max-width: 76%;

    max-height:
        330px;

    padding:
        clamp(1rem, 2vw, 1.5rem);

    border-radius:
        14px;

    object-fit:
        contain;

    background:
        rgba(255, 255, 255, 0.96);

    box-shadow:
        0 18px 45px
        rgba(33, 28, 40, 0.16);
}


/* =========================================================
   11. INSTAGRAM
========================================================= */

.resoclub-home-instagram {
    background:
        var(--rc-surface);
}


.resoclub-home-instagram__feed {
    width: 100%;
}


/*
 * Le plugin Instagram pourra injecter
 * sa propre grille.
 *
 * On évite volontairement de forcer
 * trop de styles ici.
 */

.resoclub-home-instagram__feed img {
    max-width:
        100%;
}


/* =========================================================
   RESPONSIVE
   TITRE DU HERO
========================================================= */

@media
(max-width: 1400px) {

    .resoclub-home-hero__title-line--primary > span {
        display: block;
    }


    .resoclub-home-hero__title-line--primary > span + span::before {
        content: none;
    }

}


/* =========================================================
   RESPONSIVE
   GRAND TABLETTE
========================================================= */

@media
(max-width: 1180px) {

    .resoclub-home-hero {
        min-height:
            650px;
    }


    .resoclub-home-hero__inner {
        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(360px, 0.8fr);

        min-height:
            650px;
    }


    .resoclub-home-hero__visual {
        width:
            43%;

        min-width:
            410px;

        right:
            -3%;
    }


    .resoclub-home-hero h1 {
        font-size:
            clamp(
                2.6rem,
                3.8vw,
                3.4rem
            );
    }


    .resoclub-home-quick-card {
        padding:
            1.5rem;
    }

}


/* =========================================================
   TABLETTE
========================================================= */

@media
(max-width: 980px) {

    /* HERO */

    .resoclub-home-hero {
        min-height: auto;
    }


    .resoclub-home-hero::before,
    .resoclub-home-hero::after {
        display: none;
    }


    .resoclub-home-hero__inner {
        display: flex;

        flex-direction:
            column;

        align-items:
            stretch;

        min-height: 0;

        padding:
            4rem
            0
            0;
    }


    .resoclub-home-hero__content {
        max-width:
            760px;

        padding-bottom:
            3.5rem;
    }


    .resoclub-home-hero__visual {
        position: relative;

        top: auto;
        right: auto;
        bottom: auto;

        width: 100%;

        min-width: 0;

        height:
            460px;
    }


    .resoclub-home-hero__image {
        position: relative;

        width: 100%;
        height: 100%;

        clip-path:
            ellipse(
                82% 72%
                at
                62% 62%
            );
    }


    .resoclub-home-hero__visual::before {
        inset:
            4%
            0
            -7%
            6%;

        border-radius:
            48%;
    }


    /* quick access */

    .resoclub-home-quick-access__grid {
        grid-template-columns:
            repeat(
                2,
                1fr
            );
    }


    .resoclub-home-quick-card {
        border-bottom:
            1px solid
            var(--rc-border);
    }


    .resoclub-home-quick-card:nth-child(2n) {
        border-right: 0;
    }


    /* context */

    .resoclub-home-context__grid {
        grid-template-columns:
            1fr;
    }


    .resoclub-home-context-stat {
        min-height: 0;
    }


    /* missions */

    .resoclub-home-missions__grid {
        grid-template-columns:
            1fr;
    }


    /* victime */

    .resoclub-home-victim-path__grid {
        grid-template-columns:
            1fr;
    }


    .resoclub-home-path-card {
        min-height: 0;
    }


    /* Amina */

    .resoclub-home-amina__inner {
        grid-template-columns:
            1fr;
    }


    .resoclub-home-amina__visual {
        max-width:
            640px;

        min-height:
            420px;
    }


    .resoclub-home-amina__visual img,
    .resoclub-home-amina__photo-placeholder {
        min-height:
            420px;
    }


    /* actions */

    .resoclub-home-actions-section__grid {
        grid-template-columns:
            1fr;
    }


    .resoclub-home-action-card {
        min-height: 0;
    }


    /* actualités */

    .resoclub-home-news__grid {
        grid-template-columns:
            1fr;

        grid-template-rows:
            auto;
    }


    .resoclub-home-news-card--featured {
        grid-row: auto;
    }


    /* Praevictis */

    .resoclub-home-praevictis__inner {
        grid-template-columns:
            1fr;
    }


    .resoclub-home-praevictis__visual {
        min-height:
            280px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media
(max-width: 720px) {

    .resoclub-home-section {
        padding:
            4rem
            0;
    }


    .resoclub-home-section__heading {
        margin-bottom:
            2rem;
    }


    .resoclub-home-section__heading--row {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            1rem;
    }


    /* HERO */

    .resoclub-home-hero__inner {
        padding-top:
            3rem;
    }


    .resoclub-home-hero h1 {
        font-size:
            clamp(
                2.15rem,
                9vw,
                3.2rem
            );

        line-height:
            1;
    }


    .resoclub-home-hero__lead {
        font-size:
            0.98rem;
    }


    .resoclub-home-actions {
        align-items:
            stretch;

        flex-direction:
            column;

        width:
            100%;
    }


    .resoclub-home-button {
        width:
            100%;

        min-height:
            54px;
    }


    .resoclub-home-hero__visual {
        height:
            350px;
    }


    /* quick access */

    .resoclub-home-quick-access {
        padding-bottom:
            3.5rem;
    }


    .resoclub-home-quick-access__grid {
        grid-template-columns:
            1fr;
    }


    .resoclub-home-quick-card {
        min-height:
            190px;

        border-right: 0;
    }


    /* impact */

    .resoclub-home-impact__grid {
        grid-template-columns:
            1fr;
    }


    .resoclub-home-impact-stat {
        min-height:
            220px;
    }


    /* news */

    .resoclub-home-news-card {
        display: flex;

        flex-direction:
            column;
    }


    .resoclub-home-news-card:not(
        .resoclub-home-news-card--featured
    )
    .resoclub-home-news-card__image {
        min-height: 0;

        aspect-ratio:
            16 / 9;
    }


    /* Amina */

    .resoclub-home-amina__visual {
        min-height:
            350px;
    }


    .resoclub-home-amina__visual img,
    .resoclub-home-amina__photo-placeholder {
        min-height:
            350px;
    }


    /* Praevictis */

    .resoclub-home-praevictis__content {
        padding:
            2rem;
    }

}


/* =========================================================
   PETIT MOBILE
========================================================= */

@media
(max-width: 480px) {

    .resoclub-home-eyebrow {
        font-size:
            0.65rem;

        letter-spacing:
            0.11em;
    }


    .resoclub-home-hero__visual {
        height:
            300px;
    }


    .resoclub-home-quick-card {
        padding:
            1.4rem;
    }


    .resoclub-home-context-stat,
    .resoclub-home-path-card,
    .resoclub-home-action-card,
    .resoclub-home-impact-stat {
        padding:
            1.5rem;
    }


    .resoclub-home-context-stat__value {
        font-size:
            3rem;
    }


    .resoclub-home-impact-stat strong {
        font-size:
            3.6rem;
    }

}


/* =========================================================
   ACCESSIBILITÉ
   RÉDUCTION DES ANIMATIONS
========================================================= */

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

    .resoclub-home *,
    .resoclub-home *::before,
    .resoclub-home *::after {
        transition-duration:
            0.01ms !important;

        animation-duration:
            0.01ms !important;
    }

}
