/**
 * DORA Design System - Cards Unifiées
 * Version: 2.0
 *
 * 3 variantes de cards au lieu de 12+:
 * - .card         : Card standard blanche
 * - .card-glass   : Card glassmorphism
 * - .card-premium : Card premium avec gradient
 *
 * Éléments: .card-header, .card-body, .card-footer, .card-image
 * Variantes: .card-hover (avec effet hover), .card-bordered
 */

/* ========================================
   CARD BASE
   ======================================== */
.card {
    background: var(--color-neutral-50);
    border-radius: var(--radius-3xl);
    padding: var(--space-8);
    border: 1px solid var(--color-neutral-200);
    box-shadow: var(--shadow-sm);
    transition: all var(--duration-moderate) var(--ease-in-out);
    position: relative;
    overflow: hidden;
}

/* ========================================
   CARD STANDARD - Fond blanc/clair
   ======================================== */
.card-elevated {
    background: var(--color-white);
    box-shadow: var(--shadow-md);
}

.card-hover:hover,
.card-elevated:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-neutral-300);
}

.card-bordered {
    border: 1px solid var(--color-neutral-300);
    box-shadow: none;
}

/* ========================================
   CARD GLASS - Glassmorphism
   Pour utilisation sur fond coloré/gradient
   ======================================== */
.card-glass {
    background: var(--glass-bg-light);
    backdrop-filter: var(--glass-blur-lg);
    -webkit-backdrop-filter: var(--glass-blur-lg);
    border-radius: var(--radius-3xl);
    padding: var(--space-8);
    border: 1px solid var(--glass-border-visible);
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
    transition: all var(--duration-slow) var(--ease-in-out);
}

.card-glass:hover {
    transform: translateY(-8px) scale(1.01);
    background: var(--glass-bg-medium);
    box-shadow:
        0 16px 48px rgba(0, 0, 0, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    border-color: var(--glass-border-strong);
}

.card-glass .card-title {
    color: var(--color-white);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.card-glass .card-body,
.card-glass p {
    color: var(--text-on-dark-secondary);
}

.card-glass .card-subtitle {
    color: var(--text-on-dark-muted);
}

/* Glass sur fond clair */
.card-glass-light {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: var(--glass-blur-md);
    -webkit-backdrop-filter: var(--glass-blur-md);
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.card-glass-light .card-title {
    color: var(--color-neutral-900);
    text-shadow: none;
}

.card-glass-light .card-body {
    color: var(--color-neutral-700);
}

/* ========================================
   CARD PREMIUM - Gradient coloré
   Pour services/produits premium
   ======================================== */
.card-premium {
    background: var(--gradient-primary);
    border-radius: var(--radius-3xl);
    padding: var(--space-10);
    border: none;
    position: relative;
    overflow: hidden;
    box-shadow: var(--shadow-primary);
    transition: all var(--duration-slow) var(--ease-in-out);
}

.card-premium::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.1) 0%,
        transparent 50%,
        rgba(0, 0, 0, 0.1) 100%
    );
    pointer-events: none;
}

.card-premium:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: 0 20px 60px rgba(39, 76, 119, 0.45);
}

.card-premium .card-title {
    color: var(--color-white);
    font-size: var(--text-2xl);
}

.card-premium .card-body,
.card-premium p {
    color: var(--text-on-dark-secondary);
}

/* Variante accent (violet) */
.card-premium-accent {
    background: linear-gradient(135deg, var(--color-accent-600) 0%, var(--color-accent-500) 100%);
    box-shadow: var(--shadow-accent);
}

.card-premium-accent:hover {
    box-shadow: 0 20px 60px rgba(94, 61, 124, 0.45);
}

/* ========================================
   CARD ÉLÉMENTS
   ======================================== */
.card-header {
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-neutral-100);
}

.card-glass .card-header,
.card-premium .card-header {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.card-body {
    color: var(--color-neutral-600);
    line-height: var(--leading-relaxed);
}

.card-footer {
    margin-top: var(--space-6);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-neutral-100);
}

.card-glass .card-footer,
.card-premium .card-footer {
    border-top-color: rgba(255, 255, 255, 0.1);
}

.card-title {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: var(--font-bold);
    color: var(--color-neutral-900);
    margin-bottom: var(--space-2);
    line-height: var(--leading-tight);
}

.card-subtitle {
    font-size: var(--text-sm);
    color: var(--color-neutral-500);
    margin-bottom: var(--space-4);
}

.card-image {
    width: calc(100% + var(--space-16));
    margin: calc(var(--space-8) * -1) calc(var(--space-8) * -1) var(--space-6);
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: var(--radius-3xl) var(--radius-3xl) 0 0;
}

/* Image en haut (card avec image) */
.card-with-image {
    padding-top: 0;
}

.card-with-image .card-image {
    margin-top: 0;
    margin-bottom: var(--space-6);
}

/* ========================================
   CARD ICON
   ======================================== */
.card-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-2xl);
    background: var(--gradient-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-4);
    font-size: var(--text-2xl);
    color: var(--color-white);
    box-shadow: var(--shadow-md);
}

.card-icon-lg {
    width: 80px;
    height: 80px;
    font-size: var(--text-3xl);
}

.card-icon-sm {
    width: 48px;
    height: 48px;
    font-size: var(--text-xl);
    border-radius: var(--radius-xl);
}

/* Icon sur card glass */
.card-glass .card-icon {
    background: var(--glass-bg-medium);
    backdrop-filter: var(--glass-blur-sm);
    border: 1px solid var(--glass-border-visible);
}

/* ========================================
   CARD BADGE
   ======================================== */
.card-badge {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
}

.card-badge-primary {
    background: var(--color-primary-100);
    color: var(--color-primary-700);
}

.card-badge-cta {
    background: var(--gradient-cta);
    color: var(--color-white);
}

.card-badge-success {
    background: var(--color-success-100);
    color: var(--color-success-700);
}

.card-badge-warning {
    background: var(--color-warning-100);
    color: var(--color-warning-700);
}

/* Badge "Recommandé" en haut */
.card-recommended {
    border: 2px solid var(--color-warning-500);
}

.card-recommended::after {
    content: 'RECOMMANDÉ';
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, var(--color-warning-500) 0%, var(--color-cta-500) 100%);
    color: var(--color-white);
    padding: var(--space-1) var(--space-4);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    letter-spacing: var(--tracking-wide);
    white-space: nowrap;
}

/* ========================================
   CARD LISTE (pour features/benefits)
   ======================================== */
.card-list {
    list-style: none;
    padding: 0;
    margin: var(--space-4) 0;
}

.card-list li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    color: var(--color-neutral-700);
}

.card-list li i {
    color: var(--color-success-500);
    margin-top: 0.2em;
    flex-shrink: 0;
}

.card-glass .card-list li,
.card-premium .card-list li {
    color: var(--text-on-dark-secondary);
}

.card-glass .card-list li i,
.card-premium .card-list li i {
    color: var(--color-success-400);
}

/* ========================================
   CARD GRID
   ======================================== */
.card-grid {
    display: grid;
    gap: var(--space-6);
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.card-grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.card-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.card-grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

/* ========================================
   CARD SERVICE (pour page services)
   ======================================== */
.card-service {
    text-align: center;
    padding: var(--space-10);
}

.card-service .card-icon {
    margin: 0 auto var(--space-6);
    width: 80px;
    height: 80px;
    font-size: var(--text-3xl);
}

.card-service .card-title {
    font-size: var(--text-xl);
    margin-bottom: var(--space-3);
}

.card-service .card-body {
    margin-bottom: var(--space-6);
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 1024px) {
    .card-grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .card-grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .card {
        padding: var(--space-6);
        border-radius: var(--radius-2xl);
    }

    .card-premium {
        padding: var(--space-8);
    }

    .card-grid,
    .card-grid-2,
    .card-grid-3,
    .card-grid-4 {
        grid-template-columns: 1fr;
    }

    .card-image {
        width: calc(100% + var(--space-12));
        margin: calc(var(--space-6) * -1) calc(var(--space-6) * -1) var(--space-4);
        border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
    }

    .card-service {
        padding: var(--space-6);
    }

    .card-service .card-icon {
        width: 64px;
        height: 64px;
        font-size: var(--text-2xl);
    }
}

/* ========================================
   LEGACY COMPATIBILITY
   Classes pour migration progressive
   ======================================== */

/* Ancien .blog-card */
.blog-card {
    background: var(--color-white);
    border-radius: var(--radius-2xl);
    padding: var(--space-6);
    border: 1px solid var(--color-neutral-200);
    box-shadow: var(--shadow-sm);
    transition: all var(--duration-moderate) var(--ease-in-out);
    overflow: hidden;
}

.blog-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}

/* Ancien .document-card */
.document-card {
    background: var(--color-white);
    border-radius: var(--radius-3xl);
    padding: var(--space-10);
    border: 1px solid var(--color-neutral-200);
    box-shadow: var(--shadow-md);
    transition: all var(--duration-moderate) var(--ease-in-out);
}

.document-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-xl);
}

/* Ancien .video-card */
.video-card {
    background: var(--glass-bg-light);
    backdrop-filter: var(--glass-blur-lg);
    border-radius: var(--radius-3xl);
    border: 1px solid var(--glass-border-visible);
    overflow: hidden;
    transition: all var(--duration-moderate) var(--ease-in-out);
}

.video-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
}

/* Ancien .usecase-card */
.usecase-card {
    background: var(--color-white);
    border-radius: var(--radius-3xl);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all var(--duration-moderate) var(--ease-in-out);
}

.usecase-card:hover {
    transform: translateY(-8px) scale(1.01);
    box-shadow: 0 15px 50px rgba(39, 76, 119, 0.2);
}

/* Anciennes sections strategy/deliverables -> card-premium */
.strategy,
.deliverables {
    background: var(--gradient-primary);
    border-radius: var(--radius-3xl);
    padding: var(--space-10);
    border: 1px solid var(--glass-border-visible);
    position: relative;
    overflow: hidden;
}

.strategy::before,
.deliverables::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.05) 0%,
        transparent 100%
    );
    pointer-events: none;
}
