/* =====================================================================
   Site vitrine (pages publiques). S'appuie sur les variables Bootstrap 5.3
   pour rester cohérent en mode clair ET sombre.
   ===================================================================== */

.gradient-text {
    background: linear-gradient(90deg, #0d6efd, #6f42c1 60%, #f472b6);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.hero {
    background:
        radial-gradient(1200px 400px at 110% -10%, rgba(111, 66, 193, .14), transparent 60%),
        radial-gradient(900px 360px at -10% 110%, rgba(13, 110, 253, .14), transparent 60%);
    border-radius: 1.25rem;
}

.section { padding: 3.5rem 0; }
.section-tight { padding: 2.25rem 0; }

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .8rem;
    font-weight: 700;
    color: var(--bs-primary);
}

.feature-card {
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    height: 100%;
    transition: transform .15s ease, box-shadow .15s ease;
    background: var(--bs-body-bg);
}
.feature-card:hover { transform: translateY(-4px); box-shadow: 0 .75rem 1.75rem rgba(0,0,0,.10); }

.feature-ic {
    width: 52px; height: 52px; border-radius: .8rem;
    display: inline-flex; align-items: center; justify-content: center;
}

.gallery-item {
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.12);
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.gallery-item:hover img { transform: scale(1.06); }
.gallery-cap {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: .65rem .8rem; color: #fff; font-size: .85rem; font-weight: 600;
    background: linear-gradient(transparent, rgba(0,0,0,.55));
}

.step-badge {
    width: 34px; height: 34px; border-radius: 50%;
    background: var(--bs-primary); color: #fff; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
}

.stat-num { font-size: 2rem; font-weight: 800; line-height: 1; }

.price-card { border-radius: 1rem; }
.price-card.popular { border: 2px solid var(--bs-primary); }

/* Panneau illustré des pages d'authentification */
.auth-aside {
    background: linear-gradient(150deg, #0d6efd, #6f42c1);
    color: #fff;
    border-radius: 1rem;
    padding: 2.25rem;
}
.auth-aside .list-check li { margin-bottom: .65rem; }
.auth-aside .list-check svg { flex: 0 0 auto; margin-right: .5rem; }

.testimonial { border: 1px solid var(--bs-border-color); border-radius: 1rem; height: 100%; }
.avatar-ring {
    width: 44px; height: 44px; border-radius: 50%;
    background: linear-gradient(135deg, #0d6efd, #6f42c1);
    color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700;
}
