/* ── Bloc « Modèles de CV à télécharger » (partials/cv_templates.php) ── */
.cvt { --cvt-navy: #003A60; --cvt-green: #00C16E; --cvt-muted: #5A7085; --cvt-line: #E2E8EF; font-family: 'Archivo', system-ui, sans-serif; }
.cvt__head { text-align: center; max-width: 680px; margin: 0 auto 28px; }
.cvt__title { font-size: 28px; font-weight: 800; line-height: 1.2; color: var(--cvt-navy); margin: 0 0 10px; }
.cvt__intro { font-size: 16px; line-height: 1.65; color: var(--cvt-muted); margin: 0; }
.cvt__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cvt__card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cvt-line); border-radius: 8px; overflow: hidden; }
.cvt__preview { display: block; background: #EEF3F8; border-bottom: 1px solid var(--cvt-line); }
.cvt__preview img { display: block; width: 100%; height: auto; transition: opacity .15s; }
.cvt__preview:hover img { opacity: .9; }
.cvt__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 18px; flex: 1; }
.cvt__name { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 17px; font-weight: 800; color: var(--cvt-navy); }
.cvt__tag { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 2px 8px; border-radius: 100px; background: #EAF9F1; color: #00804A; }
.cvt__tag--alt { background: #EAF1F7; color: var(--cvt-navy); }
.cvt__desc { font-size: 14px; line-height: 1.55; color: var(--cvt-muted); margin: 0; flex: 1; }
.cvt__btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 4px;
    padding: 11px 16px; border-radius: 8px; background: var(--cvt-green); color: #fff; font-size: 14px; font-weight: 700; text-decoration: none;
}
.cvt__btn:hover { background: #00A85F; color: #fff; }
.cvt__note { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 18px 0 0; font-size: 13px; color: var(--cvt-muted); text-align: center; }

/* Version tableau de bord : en-tête aligné à gauche, plus compacte */
.cvt--compact .cvt__head { text-align: left; margin: 0 0 16px; max-width: none; }
.cvt--compact .cvt__title { font-size: 18px; }
.cvt--compact .cvt__intro { font-size: 14px; }
.cvt--compact .cvt__grid { gap: 12px; }
.cvt--compact .cvt__note { justify-content: flex-start; text-align: left; }

/* La grille s'adapte à la largeur disponible (carte du tableau de bord ou page pleine) */
.cvt { container-type: inline-size; }
@container (max-width: 640px) {
    .cvt__grid { grid-template-columns: minmax(0, 1fr); max-width: 380px; margin: 0 auto; }
    .cvt--compact .cvt__grid { margin: 0; }
}

/* Tableau de bord : une ligne par modèle (vignette à gauche), pour ne pas allonger la page */
.cvt--compact .cvt__grid { grid-template-columns: minmax(0, 1fr); max-width: none; margin: 0; }
.cvt--compact .cvt__card { flex-direction: row; }
.cvt--compact .cvt__preview { flex: 0 0 96px; border-bottom: 0; border-right: 1px solid var(--cvt-line); }
.cvt--compact .cvt__preview img { height: 100%; object-fit: cover; object-position: top; }
.cvt--compact .cvt__body { padding: 12px 14px; gap: 6px; }
.cvt--compact .cvt__name { font-size: 15px; }
.cvt--compact .cvt__desc { font-size: 13px; }
.cvt--compact .cvt__btn { align-self: flex-start; padding: 8px 12px; font-size: 13px; }
