/* Widget "cards" */
.karnak-cards-grid {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
}

.karnak-card {
    background:     var(--card-bg, #ffffff);
    border:         1px solid var(--card-border, #e5e7eb);
    border-radius:  var(--card-radius, 8px);
    box-shadow:     var(--card-shadow);
    overflow:       hidden;
    display:        flex;
    flex-direction: column;
    /* El padding va acá (envuelve TODO: imagen incluida, no solo el texto) en
       vez de en .karnak-card-body como antes — quedaba la imagen siempre
       pegada a los bordes de la card sin importar cuánto padding se pusiera
       (bug reportado 2026-09-05). El mismo valor se reusa como gap para
       separar imagen/header del cuerpo de texto. */
    padding:        var(--card-padding, 20px);
    gap:            var(--card-padding, 20px);
    transition:     background .2s ease, box-shadow .2s ease, border-color .2s ease;
    text-align:     var(--card-align, left);
}
.karnak-card:hover {
    background: var(--card-bg-hover, var(--card-bg, #ffffff));
    box-shadow: var(--card-shadow-hover, var(--card-shadow));
}

/* ── Imagen ──────────────────────────────────────────────────── */
.karnak-card-image {
    overflow:    hidden;
    flex-shrink: 0;
}
.karnak-card-image img {
    width:         100%;
    height:        100%;
    object-fit:    cover;
    display:       block;
    border-radius: var(--card-image-radius, 0);
}

/* ── Cuerpo ──────────────────────────────────────────────────── */
.karnak-card-body {
    display:        flex;
    flex-direction: column;
    gap:            8px;
    flex:           1;
}

/* ── Tipografías ─────────────────────────────────────────────── */
.karnak-card-title {
    margin:      0;
    color:       var(--card-title-color, #111827);
    font-family: var(--card-title-font, inherit);
    font-size:   var(--card-title-size, 20px);
    font-weight: var(--card-title-weight, 600);
    line-height: 1.3;
}
.karnak-card-subtitle {
    margin:      0;
    color:       var(--card-subtitle-color, #6b7280);
    font-size:   var(--card-subtitle-size, 14px);
    font-weight: var(--card-subtitle-weight, 400);
    line-height: 1.4;
}
.karnak-card-text {
    margin:      0;
    color:       var(--card-text-color, #374151);
    font-size:   var(--card-text-size, 15px);
    line-height: 1.6;
    flex:        1;
}

/* ── Botón ───────────────────────────────────────────────────── */
.karnak-card-btn {
    display:         inline-block;
    align-self:      flex-start;
    margin-top:      4px;
    padding:         8px 20px;
    background:      var(--card-btn-bg, #6366f1);
    color:           var(--card-btn-color, #ffffff);
    font-size:       var(--card-btn-size, 14px);
    font-weight:     var(--card-btn-weight, 600);
    border-radius:   var(--card-btn-radius, 6px);
    text-decoration: none;
    transition:      background .2s ease, color .2s ease;
}
.karnak-card-btn:hover {
    background: var(--card-btn-bg-hover, #4f46e5);
    color:      var(--card-btn-color-hover, #ffffff);
}
.karnak-cards-grid[style*="--card-align:center"] .karnak-card-btn,
.karnak-cards-swiper[style*="--card-align:center"] .karnak-card-btn {
    align-self: center;
}

/* ── Diseño 1 (vertical por defecto) ────────────────────────── */
.karnak-card-design-1 .karnak-card-image {
    aspect-ratio: 16 / 9;
}

/* ── Diseño 2 (overlay) ─────────────────────────────────────── */
.karnak-card-design-2 .karnak-card-image-overlay {
    position:     relative;
    aspect-ratio: 4 / 3;
}
.karnak-card-design-2 .karnak-card-overlay {
    position:   absolute;
    bottom:     0; left: 0; right: 0;
    padding:    16px;
    background: linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 100%);
}
.karnak-card-design-2 .karnak-card-overlay .karnak-card-title,
.karnak-card-design-2 .karnak-card-overlay .karnak-card-subtitle {
    color: #fff;
}

/* ── Diseño 3 (imagen izquierda) ────────────────────────────── */
.karnak-card-design-3 {
    flex-direction: row;
    align-items:    stretch;
}
.karnak-card-design-3 .karnak-card-image {
    flex:       0 0 40%;
    min-height: 180px;
}
.karnak-card-design-3 .karnak-card-image img {
    height: 100%;
}
/* Diseño 3 es una fila horizontal (imagen 40% + texto), pensada para ocupar el
   ancho completo — dentro de .karnak-cards-grid (grid-template-columns:
   repeat(N,1fr), ver arriba) quedaba encajada en 1 sola columna del grid,
   achicada a 1/3 (o menos) del ancho real y con las columnas 2 y 3 vacías al
   lado. Forzarla a ocupar todas las columnas de su fila la deja apilada de a
   una, ancho completo, sin importar cuántas columnas tenga configuradas el
   grid. Reportado 2026-09-04.*/
.karnak-cards-grid .karnak-card-design-3 {
    grid-column: 1 / -1;
}

/* ── Diseño 4 (avatar + título en fila, texto abajo) ────────── */
.karnak-card-header {
    /* Sin padding propio: el padding de .karnak-card (arriba) ya envuelve todo
       el header (evita el doble padding que había antes). */
    display:     flex;
    gap:         12px;
    align-items: center;
}
.karnak-card-design-4 .karnak-card-image {
    flex:          0 0 56px;
    width:         56px;
    height:        56px;
    border-radius: 50%;
    overflow:      hidden;
}
.karnak-card-design-4 .karnak-card-image img {
    width:         100%;
    height:        100%;
    border-radius: 50%;
}
.karnak-card-header-text {
    flex:      1;
    min-width: 0;
}
.karnak-card-header-text .karnak-card-title {
    font-size: var(--card-title-size, 16px);
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 767px) {
    .karnak-card-design-3 {
        flex-direction: column;
    }
    .karnak-card-design-3 .karnak-card-image {
        flex:   none;
        height: 200px;
    }
}
