/**
Theme Name: OPUS Patrimoine
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: opus-patrimoine
Template: astra
*/

/* ==================================================
   OPUS PATRIMOINE - FICHE CGP
================================================== */

:root {

    --c-dark-green: #0C231C;
    --c-emerald: #1B4D3E;

    --c-gold: #C5A059;
    --c-gold-hover: #D8B46C;
    --c-gold-light: #E8D3A7;

    --c-ivory-bg: #FAF9F6;
    --c-card-bg: #FFFFFF;

    --c-border-subtle: #E2E8F0;

    --c-text-dark: #0C231C;
    --c-text-body: #2C3E35;
    --c-text-muted: #64748B;
}


/* ==================================================
   NEUTRALISATION DU CONTAINER ASTRA
   UNIQUEMENT SUR LES FICHES CGP
================================================== */

.single-gestionnaire-patrimo .site-content,
.single-gestionnaire-patrimo .ast-container,
.single-gestionnaire-patrimo .content-area,
.single-gestionnaire-patrimo .site-main {

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* ==================================================
   PAGE
================================================== */

.opus-cgp-page {

    width: 100%;

    background: var(--c-ivory-bg);

    color: var(--c-text-body);

    font-family:
        Inter,
        "Helvetica Neue",
        Arial,
        sans-serif;
}

.opus-cgp-profile {
    margin: 0;
}


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

.opus-cgp-hero {

    max-width: 1180px;

    margin: 0 auto;

    padding:
        70px
        45px
        35px;

    background: var(--c-ivory-bg);
}


/* PARTIE HAUTE */

.opus-cgp-hero-main {

    display: grid;

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

    gap: 70px;

    align-items: center;
}


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

.opus-cgp-photo-column {
    text-align: center;
}


.opus-cgp-photo-frame {

    width: 240px;
    height: 315px;

    margin: 0;

    overflow: hidden;

    background: #FFFFFF;

    border:
        2px
        solid
        var(--c-gold);

    border-radius: 4px;

    box-shadow:
        0 8px 24px
        rgba(12, 35, 28, 0.08);
}


.opus-cgp-photo {

    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    object-position:
        center
        top;
}


/* ==================================================
   IDENTITE
================================================== */

.opus-cgp-main-info {

    max-width: 720px;
}


.opus-cgp-eyebrow {

    margin:
        0
        0
        14px;

    color: var(--c-gold);

    font-size: 12px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.17em;
}


.opus-cgp-h1 {

    margin:
        0
        0
        10px;

    color: var(--c-dark-green);

    font-family:
        "Cormorant Garamond",
        Georgia,
        serif;

    font-size:
        clamp(
            54px,
            5vw,
            76px
        );

    font-weight: 600;

    line-height: 0.98;
}


.opus-cgp-cabinet {

    margin:
        0
        0
        25px;

    color: var(--c-dark-green);

    font-size: 20px;

    font-weight: 600;
}


/* ==================================================
   CTA PRINCIPAL
================================================== */

.opus-cgp-primary-cta {

    display: inline-block;

    padding:
        16px
        25px;

    background:
        var(--c-dark-green);

    border-radius: 2px;

    color: #FFFFFF !important;

    font-size: 14px;

    font-weight: 700;

    text-decoration: none;

    transition:
        all
        0.25s
        ease-in-out;
}


.opus-cgp-primary-cta:hover {

    background:
        var(--c-emerald);

    color: #FFFFFF !important;
}


/* ==================================================
   ZONE D'INTERVENTION
================================================== */

.opus-cgp-zone-badge {

    display: flex;

    align-items: center;

    gap: 10px;

    width: fit-content;

    max-width: 100%;

    margin-top: 24px;

    padding:
        11px
        15px;

    background:
        rgba(
            197,
            160,
            89,
            0.12
        );

    border:
        1px
        solid
        rgba(
            197,
            160,
            89,
            0.65
        );

    border-radius: 3px;

    color:
        var(--c-dark-green);

    font-size: 14px;

    line-height: 1.45;
}


.opus-cgp-zone-badge svg {

    width: 18px;
    height: 18px;

    flex-shrink: 0;

    fill:
        var(--c-gold);
}


/* ==================================================
   SPECIALITES
================================================== */

.opus-cgp-specialities {

    margin-top: 35px;

    padding-top: 0px;

      display: grid;

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

    gap: 18px;
}


.opus-cgp-speciality {

    display: flex;

    justify-content: center;

    align-items: center;

    min-height: 44px;

    padding:
        10px
        18px;

    background:
        transparent;

    border:
        1px
        solid
        rgba(
            197,
            160,
            89,
            0.75
        );

    border-radius: 3px;

    color:
        var(--c-dark-green);

    font-size: 14px;

    font-weight: 500;

    text-align: center;

    transition:
        all
        0.25s
        ease-in-out;
}


.opus-cgp-speciality:hover {

    background:
        rgba(
            197,
            160,
            89,
            0.08
        );
}


/* ==================================================
   LABELS DE SECTIONS
================================================== */

.opus-cgp-section-label {

    margin:
        0
        0
        22px;

    color:
        var(--c-gold);

    font-size: 11px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.15em;
}


/* ==================================================
   A PROPOS
================================================== */

.opus-cgp-about {

    max-width: 1180px;

    margin: 0 auto;

    padding:
        65px
        45px
        70px;

    background:
        var(--c-card-bg);

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


.opus-cgp-bio {

    max-width: 850px;

    color:
        var(--c-text-body);

    font-size: 16px;

    line-height: 1.75;
}


.opus-cgp-bio p {

    margin:
        0
        0
        20px;
}


.opus-cgp-bio p:last-child {

    margin-bottom: 0;
}


/* ==================================================
   INFORMATIONS PROFESSIONNELLES
================================================== */

.opus-cgp-professional {

    max-width: 1180px;

    margin: 0 auto;

    padding:
        35px
        45px
        55px;

    background:
        var(--c-card-bg);

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


.opus-cgp-info-grid {

    display: grid;

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

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


.opus-cgp-info-item {

    display: grid;

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

    gap: 13px;

    align-items: center;

    min-height: 75px;

    padding:
        13px
        22px
        13px
        0;

    border-bottom:
        1px
        solid
        var(--c-border-subtle);
}


.opus-cgp-info-item:nth-child(odd) {

    border-right:
        1px
        solid
        var(--c-border-subtle);
}


.opus-cgp-info-item:nth-child(even) {

    padding-left: 28px;
}


/* ICÔNES */

.opus-cgp-info-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 30px;
    height: 30px;

    color:
        var(--c-gold);

    font-size: 21px;

    font-weight: 500;
}


.opus-cgp-linkedin-icon {

    font-size: 16px;

    font-weight: 700;
}


/* LIBELLÉS */

.opus-cgp-info-item span {

    display: block;

    margin-bottom: 3px;

    color:
        var(--c-dark-green);

    font-size: 12px;

    font-weight: 700;

    line-height: 1.3;
}


/* VALEURS */

.opus-cgp-info-item strong,
.opus-cgp-info-item a {

    display: inline-block;

    color:
        var(--c-text-body);

    font-size: 13px;

    font-weight: 400;

    line-height: 1.45;
}


.opus-cgp-info-item a {

    color:
        var(--c-emerald);

    text-decoration: underline;

    text-decoration-thickness: 1px;

    text-underline-offset: 3px;

    transition:
        all
        0.25s
        ease-in-out;
}


.opus-cgp-info-item a:hover {

    color:
        var(--c-gold);
}


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

.opus-cgp-final-cta {

    padding:
        55px
        max(
            30px,
            calc(
                (100vw - 1090px)
                / 2
            )
        );

    display: flex;

    align-items: center;

    justify-content:
        space-between;

    gap: 60px;

    background:
        var(--c-dark-green);
}


.opus-cgp-final-copy {

    max-width: 700px;
}


.opus-cgp-final-label {

    display: block;

    margin-bottom: 9px;

    color:
        var(--c-gold-light);

    font-size: 11px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.15em;
}


.opus-cgp-final-cta h2 {

    margin:
        0
        0
        10px;

    color: #FFFFFF;

    font-family:
        "Cormorant Garamond",
        Georgia,
        serif;

    font-size:
        clamp(
            32px,
            3vw,
            42px
        );

    font-weight: 600;

    line-height: 1.1;
}


.opus-cgp-final-cta p {

    margin: 0;

    color: #FFFFFF;

    font-size: 14px;

    line-height: 1.6;
}


.opus-cgp-gold-cta {

    display: inline-block;

    flex-shrink: 0;

    padding:
        16px
        23px;

    background:
        var(--c-gold);

    border-radius: 2px;

    color:
        var(--c-dark-green) !important;

    font-size: 14px;

    font-weight: 700;

    text-decoration: none;

    transition:
        all
        0.25s
        ease-in-out;
}


.opus-cgp-gold-cta:hover {

    background:
        var(--c-gold-hover);
}


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

@media (max-width: 900px) {

    .opus-cgp-hero-main {

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

        gap: 45px;
    }


    .opus-cgp-photo-frame {

        width: 210px;

        height: 285px;
    }


    .opus-cgp-specialities {

        gap: 10px;
    }

}


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

@media (max-width: 700px) {

    .opus-cgp-hero {

        padding:
            45px
            22px
            30px;
    }


    .opus-cgp-hero-main {

        grid-template-columns: 1fr;

        gap: 35px;
    }


    .opus-cgp-photo-frame {

        width: 210px;

        height: 285px;

        margin:
            0
            auto;
    }


    .opus-cgp-main-info {

        text-align: center;
    }


    .opus-cgp-h1 {

        font-size: 48px;
    }


    .opus-cgp-zone-badge {

        margin:
            22px
            auto
            0;

        text-align: left;
    }


    .opus-cgp-specialities {

        grid-template-columns: 1fr;

        margin-top: 30px;
    }


    .opus-cgp-about {

        padding:
            50px
            22px;
    }


    .opus-cgp-professional {

        padding:
            35px
            22px
            50px;
    }


    .opus-cgp-info-grid {

        grid-template-columns: 1fr;
    }


    .opus-cgp-info-item,
    .opus-cgp-info-item:nth-child(even) {

        padding:
            15px
            0;

        border-right: none;
    }


    .opus-cgp-final-cta {

        padding:
            50px
            22px;

        flex-direction: column;

        align-items: flex-start;
    }

}

/* ==================================================
   OPUS PATRIMOINE - ANNUAIRE CGP
================================================== */

.opus-directory-page {
    width: 100%;
    background: #FAF9F6;
    color: #2C3E35;
    font-family: Inter, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- EN-TÊTE ---------- */

.opus-directory-header {
    max-width: 1180px;
    margin: 0 auto;
    padding: 70px 45px 50px;
    text-align: center;
}

.opus-directory-eyebrow {
    margin: 0 0 12px;
    color: #C5A059;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.17em;
}

.opus-directory-header h1 {
    max-width: 850px;
    margin: 0 auto 18px;
    color: #0C231C;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(42px, 5vw, 62px);
    font-weight: 600;
    line-height: 1.05;
}

.opus-directory-intro {
    max-width: 650px;
    margin: 0 auto;
    color: #64748B;
    font-size: 16px;
    line-height: 1.65;
}


/* ---------- GRILLE ---------- */

.opus-directory-grid {
    max-width: 1180px;
    margin: 0 auto;
    padding: 10px 45px 80px;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    align-items: stretch;
}


/* ---------- CARTE CGP ---------- */

.opus-directory-card {
    margin: 0;
    overflow: hidden;

    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 3px;

    box-shadow: 0 6px 22px rgba(12, 35, 28, 0.06);

    transition:
        transform 0.25s ease-in-out,
        box-shadow 0.25s ease-in-out;
}

.opus-directory-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(12, 35, 28, 0.10);
}

.opus-directory-card-link {
    display: flex;
    flex-direction: column;
    height: 100%;

    color: inherit !important;
    text-decoration: none !important;
}


/* ---------- PHOTO ---------- */

.opus-directory-photo-wrap {
    width: 100%;
    height: 280px;
    overflow: hidden;

    background: #F2F1ED;
    border-bottom: 2px solid #C5A059;
}

.opus-directory-photo {
    display: block;

    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;

    object-fit: cover;
    object-position: center top;
}


/* ---------- CONTENU ---------- */

.opus-directory-card-content {
    display: flex;
    flex-direction: column;
    flex-grow: 1;

    padding: 25px 25px 27px;
}


/* Prénom + Nom */

.opus-directory-card-content h2 {
    margin: 0 0 5px;

    color: #0C231C;

    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.05;
}


/* Cabinet */

.opus-directory-cabinet {
    margin: 0 0 18px;

    color: #C5A059;

    font-size: 13px;
    font-weight: 600;
}


/* Zone d'intervention */

.opus-directory-location {
    display: flex;
    align-items: flex-start;
    gap: 8px;

    margin: 0 0 18px;

    color: #0C231C;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
}

.opus-directory-pin {
    flex-shrink: 0;

    color: #C5A059;

    font-size: 9px;
    line-height: 1.8;
}


/* Présentation courte */

.opus-directory-short-description {
    margin: 0 0 23px;

    color: #2C3E35;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.65;
}


/* Voir la fiche */

.opus-directory-view {
    display: inline-block;

    width: fit-content;
    margin-top: auto;
    padding-top: 8px;

    color: #0C231C;

    border-bottom: 1px solid #C5A059;

    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;

    transition: color 0.25s ease-in-out;
}

.opus-directory-card:hover .opus-directory-view {
    color: #C5A059;
}


/* ---------- TABLETTE ---------- */

@media (max-width: 900px) {

    .opus-directory-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 25px;
    }

}


/* ---------- MOBILE ---------- */

@media (max-width: 650px) {

    .opus-directory-header {
        padding: 50px 22px 40px;
    }

    .opus-directory-header h1 {
        font-size: 42px;
    }

    .opus-directory-grid {
        grid-template-columns: 1fr;
        padding: 10px 22px 60px;
    }

    .opus-directory-photo-wrap {
        height: 300px;
    }

}