/*
 * ============================================================
 *  AFIANZAR DESCARGAS — Frontend CSS
 *  Versión: 1.0.0
 *
 *  Personaliza este archivo libremente.
 *  Las variables CSS en :root son el punto de partida.
 * ============================================================
 */

/* ── Variables de marca ─────────────────────────────────── */
:root {
    /* Colores Afianzar */
    --afz-orange:        #F07B00;
    --afz-orange-dark:   #D46700;
    --afz-orange-light:  #FFF3E6;
    --afz-navy:          #1A2A4A;
    --afz-navy-dark:     #0F1A30;
    --afz-navy-light:    #243660;

    /* Grises */
    --afz-gray-100:      #F7F9FC;
    --afz-gray-200:      #EEF1F7;
    --afz-gray-300:      #D9DFE9;
    --afz-gray-500:      #8896AE;
    --afz-gray-700:      #4A5568;
    --afz-gray-900:      #1A202C;

    /* Colores por tipo de archivo */
    --afz-color-pdf:     #E53E3E;
    --afz-color-word:    #2B5CE6;
    --afz-color-excel:   #217346;
    --afz-color-ppt:     #D24726;

    /* Layout */
    --afz-cols-xl:       5;
    --afz-cols-lg:       4;
    --afz-cols-md:       3;
    --afz-cols-sm:       2;
    --afz-cols-xs:       1;
    --afz-gap:           20px;
    --afz-card-radius:   14px;

    /* Tipografía */
    --afz-font:          -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --afz-font-size:     14px;

    /* Sombra de tarjeta */
    --afz-shadow:        0 2px 12px rgba(26, 42, 74, .09);
    --afz-shadow-hover:  0 8px 30px rgba(26, 42, 74, .18);

    /* Transición */
    --afz-transition:    0.25s ease;
}

/* ── Galería wrapper ─────────────────────────────────────── */
.afz-gallery {
    font-family: var(--afz-font);
    font-size: var(--afz-font-size);
    color: var(--afz-gray-900);
}

/* ── Grid responsive ─────────────────────────────────────── */
.afz-gallery__grid {
    display: grid;
    grid-template-columns: repeat(var(--afz-cols-xl), 1fr);
    gap: var(--afz-gap);
}

@media (max-width: 1280px) {
    .afz-gallery__grid { grid-template-columns: repeat(var(--afz-cols-lg), 1fr); }
}
@media (max-width: 1024px) {
    .afz-gallery__grid { grid-template-columns: repeat(var(--afz-cols-md), 1fr); }
}
@media (max-width: 640px) {
    .afz-gallery__grid { grid-template-columns: repeat(var(--afz-cols-sm), 1fr); }
}
@media (max-width: 400px) {
    .afz-gallery__grid { grid-template-columns: repeat(var(--afz-cols-xs), 1fr); }
}

/* ── Tarjeta ─────────────────────────────────────────────── */
.afz-card {
    background: #fff;
    border-radius: var(--afz-card-radius);
    box-shadow: var(--afz-shadow);
    border: 1px solid var(--afz-gray-200);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform var(--afz-transition), box-shadow var(--afz-transition);
}

.afz-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--afz-shadow-hover);
}

/* ── Ícono ───────────────────────────────────────────────── */
.afz-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 20px 16px;
    background: var(--afz-gray-100);
}

.afz-card__icon svg {
    width: 58px;
    height: 58px;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,.18));
}

/* ── Cuerpo ──────────────────────────────────────────────── */
.afz-card__body {
    padding: 14px 16px 10px;
    flex: 1;
}

.afz-card__name {
    font-size: 13px;
    font-weight: 600;
    color: var(--afz-navy);
    margin: 0 0 10px;
    line-height: 1.4;

    /* Limitar a 2 líneas con ellipsis */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.afz-card__meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.afz-card__meta-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    color: var(--afz-gray-500);
}

.afz-card__meta-item svg {
    flex-shrink: 0;
    opacity: .7;
}

/* ── Footer / Botones ────────────────────────────────────── */
.afz-card__footer {
    padding: 12px 16px 16px;
    display: flex;
    gap: 8px;
}

.afz-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none !important;
    cursor: pointer;
    transition: background var(--afz-transition), opacity var(--afz-transition);
    flex: 1;
    border: none;
}


/* Botón Descargar */
.afz-card__btn--download {
    background: var(--afz-orange);
    color: #fff !important;
}
.afz-card__btn--download:hover {
    background: var(--afz-orange-dark);
    color: #fff !important;
}

/* Botón único ancho completo */
.afz-card__btn--full {
    flex: 1;
}

/* ── Estado vacío ────────────────────────────────────────── */
.afz-gallery__empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--afz-gray-500);
}

.afz-gallery__empty-icon {
    width: 80px;
    height: 80px;
    margin-bottom: 16px;
    opacity: .6;
}

.afz-gallery__empty p {
    font-size: 16px;
}
