/* ============================================
   "JE SUIS UN PRO" PAGE (content v1.4)
   Builds on the landing components in home.css
   (hero, sections, section headers, FAQ).
   ============================================ */

/* Sections sit flush against each other: their backgrounds carry the rhythm. */
.wp-block-post-content > .section {
    margin-block-start: 0;
}

/* --- Hero --- */
.pro-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: var(--space-3xl) 0;
    text-align: left;
}

/* Soft brand-coloured glows behind the hero content. */
.pro-hero::before,
.pro-hero::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: 36rem;
    height: 36rem;
    border-radius: 50%;
    pointer-events: none;
}

.pro-hero::before {
    top: -16rem;
    right: -10rem;
    background: radial-gradient(circle, rgba(240, 100, 38, 0.16) 0%, transparent 65%);
}

.pro-hero::after {
    bottom: -22rem;
    left: -14rem;
    background: radial-gradient(circle, rgba(71, 101, 167, 0.2) 0%, transparent 65%);
}

.pro-hero .wp-block-columns.pro-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    margin: 0;
}

.pro-hero__grid > .wp-block-column {
    align-self: center;
}

.pro-hero .section-eyebrow {
    max-width: none;
    margin: 0;
    font-size: var(--font-size-xs);
    color: var(--color-blue-600);
}

.pro-hero h1 {
    margin: var(--space-md) 0 var(--space-lg);
    text-wrap: balance;
    font-size: clamp(2rem, 4.6vw, 3.25rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.hero .pro-hero__lead {
    max-width: 36rem;
    margin: 0 0 var(--space-xl);
    text-wrap: pretty;
    font-size: clamp(1.0625rem, 1.6vw, 1.1875rem);
    line-height: 1.6;
}

.pro-hero__lead strong {
    color: var(--color-blue);
}

.pro-hero .wp-block-buttons {
    gap: var(--space-md);
}

.pro-hero__media {
    position: relative;
}

.pro-hero__media .wp-block-image {
    margin: 0;
}

.pro-hero__media img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    object-position: 40% center;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
}

/* Offer badge pinned over the photo's bottom-left corner. */
.hero .pro-hero__badge {
    position: absolute;
    bottom: var(--space-xl);
    left: calc(-1 * var(--space-xl));
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: var(--space-md);
    max-width: 16rem;
    margin: 0;
    padding: var(--space-md) var(--space-lg) var(--space-md) var(--space-md);
    border-radius: var(--radius-lg);
    background-color: var(--color-white);
    box-shadow: var(--shadow-lg);
    font-size: var(--font-size-sm);
    line-height: 1.35;
    color: var(--color-gray-700);
}

.pro-hero__badge::before {
    content: '';
    grid-row: span 2;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--radius-full);
    background: var(--color-orange)
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M12 8v13M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5'/%3E%3C/svg%3E")
        center / 1.375rem no-repeat;
}

.pro-hero__badge strong {
    font-size: var(--font-size-xl);
    line-height: 1.2;
    color: var(--color-blue);
}

@media (max-width: 781px) {
    .pro-hero {
        padding-top: var(--space-2xl);
    }

    .pro-hero .wp-block-columns.pro-hero__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .hero .pro-hero__badge {
        bottom: var(--space-md);
        left: var(--space-md);
    }
}

@media (max-width: 639px) {
    /* Full-width buttons: the main label is too long to sit beside another. */
    .pro-hero .wp-block-button {
        flex: 1 1 100%;
    }

    .pro-hero .wp-block-button__link {
        width: 100%;
    }
}

/* --- Benefits --- */
.wp-block-list.benefit-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
    max-width: 1040px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.benefit-grid li {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    margin: 0;
    padding: var(--space-lg);
    border: 1px solid var(--color-blue-100);
    border-radius: var(--radius-lg);
    background-color: var(--color-blue-50);
    font-size: var(--font-size-lg);
    font-weight: 600;
    line-height: 1.4;
    color: var(--color-blue);
}

.benefit-grid li::before {
    content: '';
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--radius-md);
    background: var(--color-white)
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f06426' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
        center / 1.25rem no-repeat;
    box-shadow: var(--shadow-sm);
}

@media (max-width: 1023px) {
    .wp-block-list.benefit-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 639px) {
    .wp-block-list.benefit-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-md);
    }

    .benefit-grid li {
        padding: var(--space-md);
        font-size: var(--font-size-base);
    }
}

/* --- Offer & pricing --- */
/* The "Voir les tarifs" anchor target clears the sticky header. */
.pro-offer {
    scroll-margin-top: 4.5rem;
}

.pro-offer .wp-block-columns.pro-offer__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 5vw, 4.5rem);
    margin: 0;
}

.pro-offer__grid > .wp-block-column {
    align-self: center;
}

.pro-offer__promo {
    padding: var(--space-lg);
    border-radius: var(--radius-xl);
    background-color: var(--color-white);
    box-shadow: var(--shadow-md);
    text-align: center;
}

.pro-offer__promo .wp-block-image {
    margin: 0;
}

.pro-offer__promo img {
    border-radius: var(--radius-md);
}

.pro-offer__promo .pro-offer__promo-text {
    margin: var(--space-md) auto 0;
    max-width: 30rem;
    text-wrap: balance;
    font-size: var(--font-size-xl);
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-blue);
}

/* Bold at 20px counts as large text, so the brand orange keeps AA contrast on white. */
.pro-offer__promo-text strong {
    white-space: nowrap;
    font-weight: 700;
    color: var(--color-orange);
}

.pro-offer__pricing > * {
    margin: 0;
}

.pro-offer__pricing .section-title {
    margin-top: var(--space-sm);
    text-align: left;
    font-size: clamp(1.625rem, 3vw, 2.25rem);
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.pro-offer__pricing .pro-offer__note {
    margin-top: var(--space-xs);
    color: var(--color-gray-700);
}

.wp-block-list.price-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
    margin-top: var(--space-lg);
    padding: 0;
    list-style: none;
}

.price-list li {
    margin: 0;
    padding: var(--space-lg);
    border: 1px solid var(--color-blue-100);
    border-radius: var(--radius-lg);
    background-color: var(--color-white);
    box-shadow: var(--shadow-sm);
    font-size: var(--font-size-lg);
    font-weight: 500;
    color: var(--color-gray-700);
}

.price-list strong {
    margin-right: 0.15em;
    font-size: clamp(2rem, 4vw, 2.5rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--color-blue);
}

.pro-offer__pricing .pro-offer__referral {
    position: relative;
    margin-top: var(--space-lg);
    padding: var(--space-md) var(--space-lg) var(--space-md) 4.25rem;
    border: 2px dashed rgba(240, 100, 38, 0.45);
    border-radius: var(--radius-lg);
    background-color: var(--color-white);
    line-height: 1.5;
    color: var(--color-gray-700);
}

.pro-offer__referral::before {
    content: '';
    position: absolute;
    top: var(--space-md);
    left: var(--space-md);
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--radius-full);
    background: var(--color-orange)
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M19 8v6M22 11h-6'/%3E%3C/svg%3E")
        center / 1.125rem no-repeat;
}

.pro-offer__referral strong {
    color: var(--color-blue);
}

/* Side by side, the price cards get too narrow for "350 € / an" on one line. */
@media (max-width: 1023px) {
    .wp-block-list.price-list {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 781px) {
    .pro-offer .wp-block-columns.pro-offer__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* --- Join call to action --- */
.pro-join__card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 4rem);
    border-radius: var(--radius-xl);
    background: linear-gradient(135deg, var(--color-blue) 0%, var(--color-blue-800) 100%);
    box-shadow: var(--shadow-lg);
    text-align: center;
    color: var(--color-white);
}

.pro-join__card::before,
.pro-join__card::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: 28rem;
    height: 28rem;
    border-radius: 50%;
    pointer-events: none;
}

.pro-join__card::before {
    top: -14rem;
    right: -8rem;
    background: radial-gradient(circle, rgba(240, 100, 38, 0.35) 0%, transparent 65%);
}

.pro-join__card::after {
    bottom: -16rem;
    left: -10rem;
    background: radial-gradient(circle, rgba(175, 199, 232, 0.25) 0%, transparent 65%);
}

.pro-join__card > * {
    margin: 0 auto;
}

.pro-join__card h2 {
    max-width: 40rem;
    text-wrap: balance;
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
    line-height: 1.15;
    color: var(--color-white);
}

.pro-join__card > p {
    max-width: 34rem;
    margin-top: var(--space-md);
    text-wrap: pretty;
    font-size: var(--font-size-lg);
    color: var(--color-blue-300);
}

.pro-join__card .wp-block-buttons {
    justify-content: center;
    margin-top: var(--space-xl);
}

/* --- Steps after sign-up --- */
.wp-block-list.steps-list {
    counter-reset: step;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-lg);
    max-width: 1080px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.steps-list li {
    counter-increment: step;
    position: relative;
    margin: 0;
    font-size: var(--font-size-lg);
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-blue);
}

.steps-list li::before {
    content: counter(step);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: var(--space-md);
    border-radius: var(--radius-full);
    background-color: var(--color-orange);
    box-shadow: 0 0 0 6px rgba(240, 100, 38, 0.15);
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-white);
}

/* Dashed connector from each step's number to the next one. */
.steps-list li:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 1.5rem;
    left: calc(3rem + var(--space-md));
    right: calc(var(--space-md) - var(--space-lg));
    border-top: 2px dashed var(--color-blue-300);
}

@media (max-width: 899px) {
    .wp-block-list.steps-list {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-xl);
        max-width: 32rem;
    }

    .steps-list li {
        display: grid;
        grid-template-columns: 3rem 1fr;
        align-items: center;
        column-gap: var(--space-lg);
    }

    .steps-list li::before {
        margin: 0;
    }

    .steps-list li:not(:last-child)::after {
        top: calc(3rem + var(--space-sm));
        bottom: calc(-1 * var(--space-xl) + var(--space-sm));
        left: calc(1.5rem - 1px);
        right: auto;
        border-top: 0;
        border-left: 2px dashed var(--color-blue-300);
    }
}
