/**
 * Card Component - Glassmorphism Card avec contenu
 * BEM Methodology
 */

/* Block: card */
.card {
    position: relative;
    width: 100%;
    max-width: 1070px;
    margin: 0 auto;
}

/* Element: card__container - Uses CodePen glass structure */
.card__container.glass-container {
    /* Container styling - glass layers are separate elements */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    /* GPU compositing layer: découple backdrop-filter du canvas WebGL fixe */
    will-change: transform;
    isolation: isolate;
}

/* Glass content */
.card__container .glass-content {
    padding: 50px 60px;
}

/* Hover effect on container */
.card__container:hover {
    box-shadow: 0px 8px 30px -2px rgba(0, 0, 0, 0.25);
}

/* Element: card__content */
.card__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    min-height: 300px;
}

/* Element: card__text */
.card__text {
    font-family: var(--font-primary, sans-serif);
    font-size: 22px;
    font-weight: 400;
    line-height: 30px;
    color: var(--color-black);
    margin-bottom: 0;
    flex: 1;
    overflow-y: auto;
    max-height: 200px;
    padding-right: 20px; /* Espace pour la scrollbar */
    overscroll-behavior: contain;
}

/* Custom scrollbar - Firefox */
/*.card__text {*/
/*    scrollbar-width: thin;*/
/*    scrollbar-color: #E0051C  rgba(215, 215, 215, 0.50);;*/
/*}*/

/* Custom scrollbar - Webkit browsers (Chrome, Safari, Edge) */
.card__text::-webkit-scrollbar {
    width: 2px;
}

.card__text::-webkit-scrollbar-track {
    background:  rgba(215, 215, 215, 0.50);
    padding: 0;
}

.card__text::-webkit-scrollbar-thumb {
    background: var(--color-primary);
    border-radius: 1px;
}

.card__text::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary-darker);
}



/* No-scroll variant: content expands freely, no height limit */
.card--no-scroll .card__text {
    overflow-y: visible;
    max-height: none;
    padding-right: 0;
    overscroll-behavior: auto;
}

/* Paragraphs in card text */
.card__text p {
    margin-bottom: 15px;
}

.card__text p:last-child {
    margin-bottom: 0;
}

/* Element: card__footer */
.card__footer {
    margin-top: 30px;
    display: flex;
    align-items: center;
    justify-content: flex-end; /* Aligné à droite */
    flex-shrink: 0; /* Ne se réduit pas */
    width: 100%;
}

/* Element: card__line - Decorative lines */
.card__line {
    position: absolute;
    top: 0;
    width: 2px;
    height: 100%;
    z-index: 1;
    display: none; /* Cachées par défaut selon le design */
}



/* Show lines only when explicitly enabled */
.card--with-lines .card__line {
    display: block;
}

/* ========================================
   VARIANT: Border Card
   ======================================== */

/* Modifier: card--border */
.card--border .card__container {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 1px solid #717171;
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
}

/* ========================================
   VARIANT: Glass Card (Enhanced glassmorphism)
   ======================================== */

/* Modifier: card--glass */
.card--glass .card__container .glass-content {
    background: linear-gradient(171.13deg, rgba(52, 52, 52, 0.3) 6.47%, rgba(177, 177, 177, 0.3) 98.59%);
}

/* ========================================
   VARIANT: Without decorative lines
   ======================================== */

/* Hide lines when not needed */
.card:not(.card--with-lines) .card__line {
    display: none;
}

/* ========================================
   Responsive - Tablet
   ======================================== */

@media (max-width: 1024px) {
    .card__container {
        padding: 40px 50px;
    }

    .card__text {
        font-size: 20px;
        line-height: 28px;
    }

    .card__link {
        font-size: var(--font-size-base);
        padding: 10px 35px;
    }

}

/* ========================================
   Responsive - Mobile
   ======================================== */

@media (max-width: 768px) {
    .card__container {
        padding: 30px 25px;
        border-radius: 20px;
    }

    .card__text {
        font-size: 18px;
        line-height: 26px;
    }

    .card__text p {
        margin-bottom: 12px;
    }

    .card__footer {
        margin-top: 25px;
    }

    .card__link {
        font-size: var(--font-size-base);
        padding: 10px 30px;
        border-radius: 30px;
    }

    .card__line {
        display: none; /* Hide decorative lines on mobile */
    }
}

/* ========================================
   Responsive - Small Mobile
   ======================================== */

@media (max-width: 480px) {
    .card__container {
        padding: 25px 20px;
    }

    .card__text {
        font-size: var(--font-size-base);
        line-height: 24px;
    }

    .card__footer {
        margin-top: 20px;
    }

    .card__link {
        font-size: 15px;
        padding: 8px 25px;
        width: 100%;
        text-align: center;
    }
}
