/* =========================================================
   RESOCLUB
   PRAEVICTIS
   Migration DIVI -> PHP
   2026

   Objectif :
   - conserver l'identité actuelle
   - moderniser légèrement
   - ne dépendre d'aucune classe Divi
========================================================= */


/* =========================================================
   0. VARIABLES
========================================================= */

.resoclub-praevictis {

    --pv-purple: #5729d3;
    --pv-purple-deep: #482683;
    --pv-purple-bright: #8300e9;

    --pv-teal: #005450;
    --pv-green: #41b6a0;

    --pv-blue: #dcedff;
    --pv-blue-soft: #edf6ff;

    --pv-ink: #211d28;
    --pv-muted: #706a78;

    --pv-white: #ffffff;
    --pv-border: rgba(72, 38, 131, 0.12);

    --pv-shadow:
        0 25px 70px
        rgba(46, 30, 70, 0.12);

    width: 100%;

    overflow: hidden;

    color: var(--pv-ink);

    background: var(--pv-white);

    font-family:
        "Quicksand",
        Arial,
        sans-serif;
}


/* =========================================================
   RESET LOCAL
========================================================= */

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


.resoclub-praevictis img,
.resoclub-praevictis svg {
    display: block;

    max-width: 100%;
}


.resoclub-praevictis img {
    height: auto;
}


.resoclub-praevictis a {
    text-underline-offset: 4px;
}


/* =========================================================
   CONTAINER
========================================================= */

.resoclub-praevictis .resoclub-container {
    width:
        min(
            calc(100% - 48px),
            var(--rc-container, 1240px)
        );

    margin-inline: auto;
}


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

.resoclub-praevictis-section {
    position: relative;

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


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

.resoclub-praevictis-eyebrow {
    display: flex;

    align-items: center;

    gap: 0.7rem;

    margin:
        0
        0
        1rem;

    color: var(--pv-green);

    font-size: 0.72rem;
    font-weight: 800;

    line-height: 1.2;

    letter-spacing: 0.13em;

    text-transform: uppercase;
}


.resoclub-praevictis-eyebrow::before {
    content: "";

    width: 27px;
    height: 2px;

    flex: 0 0 auto;

    background: currentColor;
}


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

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

    align-items: center;
    justify-content: center;

    gap: 0.8rem;

    min-height: 54px;

    padding:
        0.95rem
        1.8rem;

    border:
        1px solid transparent;

    border-radius: 999px;

    font-family:
        "Work Sans",
        "Montserrat",
        sans-serif;

    font-size: 0.88rem;
    font-weight: 750;

    line-height: 1;

    letter-spacing: 0.045em;

    text-decoration: none;

    text-transform: uppercase;

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


.resoclub-praevictis-button span {
    font-size: 1.1rem;

    transition:
        transform 0.22s ease;
}


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


.resoclub-praevictis-button:hover span,
.resoclub-praevictis-button:focus-visible span {
    transform: translateX(4px);
}


/* primary */

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

    background:
        linear-gradient(
            135deg,
            var(--pv-purple-bright),
            var(--pv-purple)
        );

    box-shadow:
        0 12px 30px
        rgba(87, 41, 211, 0.18);
}


.resoclub-praevictis-button--primary:hover,
.resoclub-praevictis-button--primary:focus-visible {
    color: var(--pv-white);

    background: var(--pv-teal);

    box-shadow:
        0 16px 35px
        rgba(0, 84, 80, 0.18);
}


/* outline */

.resoclub-praevictis-button--outline {
    color: var(--pv-purple);

    border-color:
        rgba(87, 41, 211, 0.3);

    background: transparent;
}


.resoclub-praevictis-button--outline:hover,
.resoclub-praevictis-button--outline:focus-visible {
    color: var(--pv-white);

    border-color: var(--pv-purple);

    background: var(--pv-purple);
}


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

.resoclub-praevictis-hero {
    position: relative;

    padding:
        clamp(2.5rem, 4vw, 4rem)
        0
        clamp(2.5rem, 4vw, 4rem);

    overflow: hidden;

    background:
        #ffffff;
}


/* Texture administrable avec une valeur de secours définie par le template. */

.resoclub-praevictis-hero__background {
    position: absolute;

    inset: 0;

    background-image:
        linear-gradient(
            rgba(255, 255, 255, 0.16),
            rgba(255, 255, 255, 0.16)
        ),
        var(--resoclub-praevictis-hero-background, none);

    background-position: center;

    background-size: cover;

    opacity: 0.92;

    pointer-events: none;
}


/* cercle léger */

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

    position: absolute;

    top: -250px;
    right: -190px;

    width: 640px;
    height: 640px;

    border:
        1px solid
        rgba(87, 41, 211, 0.09);

    border-radius: 50%;

    pointer-events: none;
}


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

.resoclub-praevictis-hero__inner {
    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(430px, 1.1fr);

    align-items: center;

    gap:
        clamp(3rem, 6vw, 6rem);

    min-height: 400px;

    padding:
        clamp(2rem, 3.5vw, 3.5rem);

    border-radius:
        120px
        0
        120px
        0;

    background: var(--pv-blue);
}


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

.resoclub-praevictis-hero__content {
    position: relative;

    z-index: 3;
}


.resoclub-praevictis-hero__content
.resoclub-praevictis-eyebrow {
    color: var(--pv-teal);
}


.resoclub-praevictis-hero h1 {
    margin: 0;

    padding: 0;

    color: var(--pv-purple);

    font-family:
        "Poppins",
        "Quicksand",
        sans-serif;

    font-size:
        clamp(3.4rem, 6vw, 5.8rem);

    font-weight: 650;

    line-height: 0.98;

    letter-spacing: -0.05em;
}


.resoclub-praevictis-hero h2 {
    max-width: 590px;

    margin:
        1.3rem
        0
        0;

    padding: 0;

    color: var(--pv-purple);

    font-family:
        "Poppins",
        "Quicksand",
        sans-serif;

    font-size:
        clamp(1.65rem, 2.4vw, 2.6rem);

    font-weight: 600;

    line-height: 1.2;

    letter-spacing: -0.035em;
}


.resoclub-praevictis-hero__email {
    display: flex;

    align-items: center;

    gap: 0.8rem;

    width: fit-content;
    max-width: 100%;

    margin-top: 1.25rem;

    padding:
        0.7rem
        1rem
        0.7rem
        0.75rem;

    border:
        1px solid
        rgba(87, 41, 211, 0.14);

    border-radius: 999px;

    color: var(--pv-purple-deep);

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

    box-shadow:
        0 10px 28px
        rgba(43, 20, 72, 0.08);

    text-decoration: none;

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


.resoclub-praevictis-hero__email-icon {
    display: inline-flex;

    flex: 0 0 auto;

    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 50%;

    color: var(--pv-white);

    background:
        linear-gradient(
            135deg,
            var(--pv-purple),
            var(--pv-teal)
        );
}


.resoclub-praevictis-hero__email-icon svg {
    width: 19px;
    height: 19px;
}


.resoclub-praevictis-hero__email-copy {
    display: grid;

    min-width: 0;

    gap: 0.08rem;
}


.resoclub-praevictis-hero__email-copy small {
    color: var(--pv-muted);

    font-size: 0.66rem;
    font-weight: 750;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}


.resoclub-praevictis-hero__email-copy strong {
    font-size: 0.88rem;
    font-weight: 750;

    overflow-wrap: anywhere;
}


.resoclub-praevictis-hero__email:hover,
.resoclub-praevictis-hero__email:focus-visible {
    transform: translateY(-2px);

    color: var(--pv-purple-deep);

    border-color:
        rgba(87, 41, 211, 0.28);

    background: var(--pv-white);

    box-shadow:
        0 14px 34px
        rgba(43, 20, 72, 0.13);
}


.resoclub-praevictis-hero
.resoclub-praevictis-button {
    margin-top: 2rem;
}


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

.resoclub-praevictis-hero__visual {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: center;
}


/* halo */

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

    position: absolute;

    width: 75%;
    aspect-ratio: 1;

    border-radius: 50%;

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

    filter: blur(1px);
}


.resoclub-praevictis-hero__visual img {
    position: relative;

    z-index: 2;

    width:
        min(
            100%,
            560px
        );

    border-radius:
        95px
        0
        95px
        0;

    box-shadow:
        50px 50px 100px
        rgba(66, 66, 66, 0.24);

    transition:
        transform 0.4s ease,
        box-shadow 0.4s ease;
}


.resoclub-praevictis-hero__visual:hover img {
    transform:
        translateY(-5px);

    box-shadow:
        55px 60px 110px
        rgba(66, 66, 66, 0.28);
}


/* =========================================================
   2. CITATION / INTRO
========================================================= */

.resoclub-praevictis-intro {
    background: var(--pv-white);
}


.resoclub-praevictis-intro__inner {
    display: grid;

    grid-template-columns:
        minmax(0, 0.95fr)
        minmax(0, 1.05fr);

    align-items: center;

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


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

.resoclub-praevictis-intro__visual {
    position: relative;

    display: block;

    text-decoration: none;
}


.resoclub-praevictis-intro__visual::before {
    content: "";

    position: absolute;

    inset:
        25px
        -22px
        -25px
        22px;

    border-radius:
        70px
        0
        70px
        0;

    background: var(--pv-blue);

    z-index: 0;

    transition:
        transform 0.3s ease;
}


.resoclub-praevictis-intro__visual:hover::before {
    transform:
        translate(
            5px,
            5px
        );
}


.resoclub-praevictis-intro__visual img {
    position: relative;

    z-index: 2;

    width: 100%;

    border-radius:
        70px
        0
        70px
        0;

    box-shadow:
        var(--pv-shadow);
}


/* =========================================================
   CITATION
========================================================= */

.resoclub-praevictis-intro__quote {
    position: relative;

    padding:
        clamp(2rem, 4vw, 3rem);

    border-radius:
        0
        70px
        0
        70px;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            var(--pv-blue-soft)
        );
}


.resoclub-praevictis-intro__quote-mark {
    position: absolute;

    top: -30px;
    left: 24px;

    color:
        rgba(87, 41, 211, 0.12);

    font-family: Georgia, serif;

    font-size: 9rem;
    line-height: 1;
}


.resoclub-praevictis-intro blockquote {
    position: relative;

    z-index: 2;

    margin: 0;

    padding: 0;

    border: 0;
}


.resoclub-praevictis-intro blockquote p {
    margin: 0;

    padding: 0;

    color: var(--pv-purple-deep);

    font-family:
        "Quicksand",
        sans-serif;

    font-size:
        clamp(1.45rem, 2.3vw, 2.15rem);

    font-weight: 600;

    line-height: 1.42;

    letter-spacing: -0.025em;
}


.resoclub-praevictis-intro blockquote footer {
    display: flex;

    flex-direction: column;

    gap: 0.2rem;

    margin-top: 1.8rem;
}


.resoclub-praevictis-intro blockquote strong {
    color: var(--pv-ink);

    font-size: 1rem;
}


.resoclub-praevictis-intro blockquote footer span {
    color: var(--pv-muted);

    font-size: 0.86rem;
}


.resoclub-praevictis-intro__quote
.resoclub-praevictis-button {
    margin-top: 2rem;
}


/* =========================================================
   3. OBJECTIFS
========================================================= */

.resoclub-praevictis-objectives {
    background:
        linear-gradient(
            180deg,
            var(--pv-blue-soft),
            #ffffff
        );
}


.resoclub-praevictis-objectives__inner {
    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(320px, 0.65fr);

    align-items: center;

    gap:
        clamp(4rem, 8vw, 8rem);
}


/* =========================================================
   OBJECTIFS TEXTES
========================================================= */

.resoclub-praevictis-objectives__content h2 {
    margin: 0;

    padding: 0;

    color: var(--pv-purple);

    font-family:
        "Poppins",
        "Quicksand",
        sans-serif;

    font-size:
        clamp(2.6rem, 4.5vw, 4.4rem);

    font-weight: 650;

    line-height: 1.05;

    letter-spacing: -0.05em;
}


.resoclub-praevictis-objectives__lead {
    max-width: 780px;

    margin:
        1.3rem
        0
        0;

    padding: 0;

    color: var(--pv-purple-deep);

    font-size:
        clamp(1.12rem, 1.8vw, 1.45rem);

    font-weight: 650;

    line-height: 1.55;
}


/* =========================================================
   OBJECTIFS LIST
========================================================= */

.resoclub-praevictis-objectives__list {
    display: flex;

    flex-direction: column;

    gap: 1.1rem;

    margin-top: 2.8rem;
}


.resoclub-praevictis-objective {
    display: grid;

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

    gap: 1.15rem;

    align-items: flex-start;

    padding:
        1rem
        0;
}


.resoclub-praevictis-objective__icon {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;

    border-radius: 50%;

    color: var(--pv-purple);

    background:
        rgba(87, 41, 211, 0.09);
}


.resoclub-praevictis-objective:nth-child(2)
.resoclub-praevictis-objective__icon {
    color: var(--pv-green);

    background:
        rgba(65, 182, 160, 0.12);
}


.resoclub-praevictis-objective:nth-child(3)
.resoclub-praevictis-objective__icon {
    color: var(--pv-teal);

    background:
        rgba(0, 84, 80, 0.09);
}


.resoclub-praevictis-objective__icon svg {
    width: 27px;
    height: 27px;
}


.resoclub-praevictis-objective h3 {
    margin: 0;

    padding: 0;

    color: var(--pv-purple);

    font-size: 1.12rem;
    font-weight: 750;

    line-height: 1.3;
}


.resoclub-praevictis-objective p {
    max-width: 690px;

    margin:
        0.45rem
        0
        0;

    padding: 0;

    color: var(--pv-muted);

    font-size: 0.93rem;

    line-height: 1.7;
}


/* =========================================================
   BD STICKY
========================================================= */

.resoclub-praevictis-objectives__visual {
    position: relative;

    margin: 0;

    align-self: start;
}


@media (min-width: 981px) {

    .resoclub-praevictis-objectives__visual {
        position: sticky;

        top: 120px;
    }

}


.resoclub-praevictis-objectives__visual::before {
    content: "";

    position: absolute;

    inset:
        35px
        -28px
        -35px
        28px;

    border-radius:
        50px
        0
        50px
        0;

    background: var(--pv-blue);

    z-index: 0;
}


.resoclub-praevictis-objectives__visual img {
    position: relative;

    z-index: 1;

    width: 100%;

    max-height: 650px;

    object-fit: cover;

    border-radius:
        50px
        0
        50px
        0;

    box-shadow:
        var(--pv-shadow);
}


.resoclub-praevictis-objectives__visual figcaption {
    position: relative;

    z-index: 2;

    max-width: 92%;

    margin:
        1rem
        0
        0;

    color: var(--pv-muted);

    font-size: 0.75rem;

    font-style: italic;

    line-height: 1.55;
}


/* =========================================================
   4. SOUTENIR PRAEVICTIS
========================================================= */

.resoclub-praevictis-support-reasons {
    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            var(--pv-purple-deep),
            var(--pv-purple)
        );
}


/* décoration */

.resoclub-praevictis-support-reasons::before {
    content: "";

    position: absolute;

    top: -300px;
    right: -200px;

    width: 680px;
    height: 680px;

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

    border-radius: 50%;
}


.resoclub-praevictis-support-reasons::after {
    content: "";

    position: absolute;

    left: -220px;
    bottom: -300px;

    width: 570px;
    height: 570px;

    border:
        1px solid
        rgba(65, 182, 160, 0.23);

    border-radius: 50%;
}


.resoclub-praevictis-support-reasons
.resoclub-container {
    position: relative;

    z-index: 2;
}


/* =========================================================
   SECTION TITLE
========================================================= */

.resoclub-praevictis-heading {
    max-width: 750px;

    margin:
        0
        auto
        clamp(2.8rem, 5vw, 4.2rem);

    text-align: center;
}


.resoclub-praevictis-heading
.resoclub-praevictis-eyebrow {
    justify-content: center;

    color: var(--pv-green);
}


.resoclub-praevictis-heading h2 {
    margin: 0;

    padding: 0;

    color: var(--pv-white);

    font-family:
        "Poppins",
        "Quicksand",
        sans-serif;

    font-size:
        clamp(2.5rem, 4.5vw, 4.3rem);

    font-weight: 600;

    line-height: 1.06;

    letter-spacing: -0.045em;
}


/* =========================================================
   5 CARTES
========================================================= */

.resoclub-praevictis-support-reasons__grid {
    display: grid;

    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    gap: 0.8rem;
}


.resoclub-praevictis-support-card {
    display: flex;

    flex-direction: column;

    min-height: 390px;

    padding:
        1.2rem;

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

    border-radius:
        30px
        0
        30px
        0;

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

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);

    transition:
        transform 0.25s ease,
        background-color 0.25s ease,
        box-shadow 0.25s ease;
}


.resoclub-praevictis-support-card:hover {
    transform:
        translateY(-7px);

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

    box-shadow:
        0 20px 50px
        rgba(23, 10, 42, 0.18);
}


/* illustration */

.resoclub-praevictis-support-card__image {
    aspect-ratio: 1;

    overflow: hidden;

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

    border-radius:
        20px
        0
        20px
        0;

    background:
        linear-gradient(
            145deg,
            rgba(65, 182, 160, 0.42),
            rgba(43, 20, 72, 0.94)
        );

    box-shadow:
        inset 0 1px 0
        rgba(255, 255, 255, 0.08);
}


.resoclub-praevictis-support-card__image img {
    width: 100%;
    height: 100%;

    object-fit: contain;

    transition:
        transform 0.45s ease;
}


.resoclub-praevictis-support-card:hover
.resoclub-praevictis-support-card__image img {
    transform:
        scale(1.045);
}


.resoclub-praevictis-support-card h3 {
    margin:
        1.25rem
        0
        0;

    padding: 0;

    color: var(--pv-white);

    font-size: 1rem;
    font-weight: 750;

    line-height: 1.35;
}


.resoclub-praevictis-support-card p {
    margin:
        0.7rem
        0
        0;

    padding: 0;

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

    font-size: 0.81rem;

    line-height: 1.6;
}


/* bouton central */

.resoclub-praevictis-support-reasons__action {
    display: flex;

    justify-content: center;

    margin-top:
        clamp(2.5rem, 5vw, 4rem);
}


.resoclub-praevictis-support-reasons
.resoclub-praevictis-button--primary {
    color: var(--pv-purple);

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


.resoclub-praevictis-support-reasons
.resoclub-praevictis-button--primary:hover {
    color: var(--pv-white);

    background: var(--pv-teal);
}


/* =========================================================
   5. POURQUOI LE SOUTIEN EST ESSENTIEL
========================================================= */

.resoclub-praevictis-why {
    position: relative;

    padding:
        clamp(5rem, 8vw, 8rem)
        0;

    overflow: hidden;

    background: var(--pv-blue);
}


/* gros arrondi décoratif */

.resoclub-praevictis-why__decoration {
    position: absolute;

    width: 650px;
    height: 650px;

    top: -350px;
    left: -300px;

    border:
        1px solid
        rgba(87, 41, 211, 0.09);

    border-radius: 50%;

    pointer-events: none;
}


.resoclub-praevictis-why__inner {
    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(330px, 0.65fr);

    align-items: center;

    gap:
        clamp(4rem, 8vw, 8rem);
}


/* =========================================================
   WHY CONTENT
========================================================= */

.resoclub-praevictis-why__content {
    max-width: 720px;
}


.resoclub-praevictis-why h2 {
    max-width: 650px;

    margin: 0;

    padding: 0;

    color: var(--pv-purple);

    font-family:
        "Poppins",
        "Quicksand",
        sans-serif;

    font-size:
        clamp(2.6rem, 4.5vw, 4.5rem);

    font-weight: 650;

    line-height: 1.04;

    letter-spacing: -0.05em;
}


.resoclub-praevictis-why__points {
    display: flex;

    flex-direction: column;

    gap: 1.4rem;

    margin-top: 2.2rem;
}


.resoclub-praevictis-why__point {
    padding-left: 1.3rem;

    border-left:
        3px solid
        rgba(87, 41, 211, 0.18);
}


.resoclub-praevictis-why__point:nth-child(2) {
    border-color: var(--pv-green);
}


.resoclub-praevictis-why__point:nth-child(3) {
    border-color: var(--pv-teal);
}


.resoclub-praevictis-why__point h3 {
    margin: 0;

    padding: 0;

    color: var(--pv-purple-deep);

    font-size: 1.02rem;
    font-weight: 800;

    line-height: 1.4;
}


.resoclub-praevictis-why__point p {
    margin:
        0.4rem
        0
        0;

    padding: 0;

    color: var(--pv-muted);

    font-size: 0.91rem;

    line-height: 1.7;
}


.resoclub-praevictis-why__france-victimes {
    margin:
        2rem
        0
        0;

    padding:
        1.15rem
        1.3rem;

    border-radius:
        20px
        0
        20px
        0;

    color: var(--pv-purple-deep);

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

    font-size: 0.91rem;

    line-height: 1.6;
}


.resoclub-praevictis-why__conclusion {
    margin:
        1.25rem
        0
        0;

    padding: 0;

    color: var(--pv-purple);

    font-size: 1rem;

    line-height: 1.65;
}


/* =========================================================
   WHY IMAGE BD
========================================================= */

.resoclub-praevictis-why__visual {
    position: relative;

    margin: 0;
}


.resoclub-praevictis-why__visual::before {
    content: "";

    position: absolute;

    inset:
        30px
        -30px
        -30px
        30px;

    border-radius:
        55px
        0
        55px
        0;

    background:
        rgba(87, 41, 211, 0.1);
}


.resoclub-praevictis-why__visual img {
    position: relative;

    z-index: 1;

    width: 100%;

    max-height: 680px;

    object-fit: cover;

    border-radius:
        55px
        0
        55px
        0;

    box-shadow:
        var(--pv-shadow);
}


/* =========================================================
   6. CONTACT
========================================================= */

.resoclub-praevictis-contact {
    position: relative;

    padding:
        clamp(4rem, 6vw, 5.5rem)
        0;

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


.resoclub-praevictis-contact__inner {
    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(280px, 0.9fr)
        minmax(180px, 0.45fr);

    align-items: center;

    gap: 1rem;

    padding:
        clamp(2rem, 4vw, 3rem);

    border-radius:
        60px
        0
        60px
        0;

    background: var(--pv-blue);
}


/* =========================================================
   CONTACT CARDS
========================================================= */

.resoclub-praevictis-contact__message,
.resoclub-praevictis-contact__email {
    display: flex;

    align-items: center;

    gap: 1.2rem;
}


.resoclub-praevictis-contact__message p {
    max-width: 500px;

    margin: 0;

    padding: 0;

    color: var(--pv-purple-deep);

    font-size: 0.95rem;
    font-weight: 600;

    line-height: 1.65;
}


.resoclub-praevictis-contact__icon {
    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 58px;
    height: 58px;

    border-radius: 50%;

    color: var(--pv-purple);

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


.resoclub-praevictis-contact__icon svg {
    width: 27px;
    height: 27px;
}


/* email */

.resoclub-praevictis-contact__email {
    padding:
        1.2rem;

    border-radius:
        28px
        0
        28px
        0;

    color: var(--pv-ink);

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

    text-decoration: none;

    transition:
        transform 0.22s ease,
        background-color 0.22s ease,
        box-shadow 0.22s ease;
}


.resoclub-praevictis-contact__email:hover,
.resoclub-praevictis-contact__email:focus-visible {
    transform:
        translateY(-3px);

    background: var(--pv-white);

    box-shadow:
        0 16px 35px
        rgba(46, 30, 70, 0.09);
}


.resoclub-praevictis-contact__email > div:last-child {
    display: flex;

    flex-direction: column;

    min-width: 0;
}


.resoclub-praevictis-contact__email span {
    color: var(--pv-muted);

    font-size: 0.74rem;
    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.08em;
}


.resoclub-praevictis-contact__email strong {
    margin-top: 0.2rem;

    color: var(--pv-purple);

    font-size: 0.95rem;

    overflow-wrap: anywhere;
}


/* logo */

.resoclub-praevictis-contact__logo {
    display: flex;

    justify-content: flex-end;
}


.resoclub-praevictis-contact__logo img {
    width: min(100%, 210px);

    mix-blend-mode: multiply;
}


/* =========================================================
   DESKTOP MOYEN
========================================================= */

@media (max-width: 1180px) {

    .resoclub-praevictis-hero__inner {
        grid-template-columns:
            minmax(0, 0.95fr)
            minmax(380px, 1.05fr);

        border-radius:
            90px
            0
            90px
            0;
    }

    .resoclub-praevictis-support-reasons__grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }


    .resoclub-praevictis-contact__inner {
        grid-template-columns:
            1fr
            1fr;
    }


    .resoclub-praevictis-contact__logo {
        grid-column:
            1 / -1;

        justify-content: center;
    }


    .resoclub-praevictis-contact__logo img {
        width: 180px;
    }

}


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

@media (max-width: 980px) {

    .resoclub-praevictis .resoclub-container {
        width:
            min(
                calc(100% - 40px),
                var(--rc-container, 1240px)
            );
    }


    /* HERO */

    .resoclub-praevictis-hero {
        padding:
            2.5rem
            0
            3rem;
    }


    .resoclub-praevictis-hero__inner {
        grid-template-columns: 1fr;

        gap: 2rem;

        padding:
            2.5rem;

        border-radius:
            65px
            0
            65px
            0;
    }


    .resoclub-praevictis-hero__content {
        max-width: 720px;
    }


    .resoclub-praevictis-hero__visual img {
        width:
            min(
                90%,
                520px
            );

        border-radius:
            65px
            0
            65px
            0;

        box-shadow:
            30px 35px 75px
            rgba(66, 66, 66, 0.2);
    }


    /* INTRO */

    .resoclub-praevictis-intro__inner {
        grid-template-columns: 1fr;

        gap: 4rem;
    }


    .resoclub-praevictis-intro__visual {
        width:
            min(
                90%,
                650px
            );
    }


    .resoclub-praevictis-intro__quote {
        max-width: 720px;
    }


    /* OBJECTIFS */

    .resoclub-praevictis-objectives__inner {
        grid-template-columns: 1fr;

        gap: 4rem;
    }


    .resoclub-praevictis-objectives__visual {
        width:
            min(
                75%,
                520px
            );

        margin-inline: auto;
    }


    /* WHY */

    .resoclub-praevictis-why__inner {
        grid-template-columns: 1fr;

        gap: 4rem;
    }


    .resoclub-praevictis-why__visual {
        width:
            min(
                75%,
                520px
            );

        margin-inline: auto;
    }

}


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

@media (max-width: 760px) {

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


    .resoclub-praevictis .resoclub-container {
        width:
            min(
                calc(100% - 32px),
                var(--rc-container, 1240px)
            );
    }


    /* HERO */

    .resoclub-praevictis-hero {
        padding:
            2rem
            0
            2.5rem;
    }


    .resoclub-praevictis-hero__inner {
        padding:
            2rem;

        border-radius:
            40px
            0
            40px
            0;
    }


    .resoclub-praevictis-hero h1 {
        font-size:
            clamp(2.7rem, 13vw, 4rem);
    }


    .resoclub-praevictis-hero h2 {
        font-size:
            clamp(1.35rem, 6vw, 1.85rem);
    }


    .resoclub-praevictis-hero__visual img {
        width: 100%;

        border-radius:
            40px
            0
            40px
            0;

        box-shadow:
            20px 24px 55px
            rgba(66, 66, 66, 0.18);
    }


    /* BUTTONS */

    .resoclub-praevictis-button {
        min-height: 50px;

        padding:
            0.9rem
            1.4rem;

        font-size: 0.78rem;
    }


    /* INTRO */

    .resoclub-praevictis-intro__visual {
        width: 100%;
    }


    .resoclub-praevictis-intro__visual::before {
        inset:
            16px
            -12px
            -16px
            12px;

        border-radius:
            40px
            0
            40px
            0;
    }


    .resoclub-praevictis-intro__visual img {
        border-radius:
            40px
            0
            40px
            0;
    }


    .resoclub-praevictis-intro__quote {
        padding:
            1.8rem;

        border-radius:
            0
            40px
            0
            40px;
    }


    .resoclub-praevictis-intro blockquote p {
        font-size:
            clamp(1.25rem, 5.5vw, 1.65rem);
    }


    /* SUPPORT CARDS */

    .resoclub-praevictis-support-reasons__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .resoclub-praevictis-support-card {
        min-height: 0;
    }


    /* OBJECTIVES IMAGES */

    .resoclub-praevictis-objectives__visual,
    .resoclub-praevictis-why__visual {
        width:
            calc(100% - 20px);
    }


    /* CONTACT */

    .resoclub-praevictis-contact__inner {
        grid-template-columns: 1fr;

        padding:
            2rem;

        border-radius:
            40px
            0
            40px
            0;
    }


    .resoclub-praevictis-contact__message,
    .resoclub-praevictis-contact__email {
        align-items: flex-start;
    }


    .resoclub-praevictis-contact__logo {
        grid-column: auto;
    }

}


/* =========================================================
   PETITS MOBILES
========================================================= */

@media (max-width: 520px) {

    .resoclub-praevictis .resoclub-container {
        width:
            calc(100% - 24px);
    }


    .resoclub-praevictis-hero__inner {
        padding:
            1.5rem;

        border-radius:
            28px
            0
            28px
            0;
    }


    .resoclub-praevictis-support-reasons__grid {
        grid-template-columns: 1fr;
    }


    .resoclub-praevictis-support-card {
        display: grid;

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

        column-gap: 1rem;

        align-items: start;
    }


    .resoclub-praevictis-support-card__image {
        grid-row:
            1 / span 2;

        width: 110px;
        height: 110px;
    }


    .resoclub-praevictis-support-card h3 {
        margin-top: 0.3rem;
    }


    .resoclub-praevictis-support-card p {
        margin-top: 0.5rem;
    }


    .resoclub-praevictis-objective {
        grid-template-columns:
            48px
            1fr;

        gap: 0.9rem;
    }


    .resoclub-praevictis-objective__icon {
        width: 46px;
        height: 46px;
    }


    .resoclub-praevictis-objective__icon svg {
        width: 23px;
        height: 23px;
    }


    .resoclub-praevictis-contact__message,
    .resoclub-praevictis-contact__email {
        flex-direction: column;
    }


    .resoclub-praevictis-contact__email {
        width: 100%;
    }

}


/* =========================================================
   ACCESSIBILITÉ
========================================================= */

.resoclub-praevictis a:focus-visible {
    outline:
        3px solid
        rgba(65, 182, 160, 0.5);

    outline-offset: 4px;
}


/* =========================================================
   REDUCED MOTION
========================================================= */

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

    .resoclub-praevictis *,
    .resoclub-praevictis *::before,
    .resoclub-praevictis *::after {
        animation-duration:
            0.01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            0.01ms !important;

        scroll-behavior:
            auto !important;
    }

}
