/* ELECTROVIGIA - Homepage: secciones modulares dentro de .card (ver estilos/app.css) */

.home-section { margin-bottom: var(--space-6); }
.home-section .section-header {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-4);
}
.home-section .section-header h2 {
    display: flex; align-items: center; gap: var(--space-2);
    font-size: 1.2rem; margin: 0; color: var(--azul-osc);
}
.home-section .section-header h2 i { color: var(--azul); }
.section-link { display: flex; align-items: center; gap: var(--space-1); color: var(--azul); font-weight: 600; font-size: 0.9rem; }
.section-link:hover { color: var(--azul-osc); text-decoration: none; }

/* ---- Podcast grid ---- */
.podcast-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 320px)); gap: var(--space-4); }
.podcast-card { background: var(--gris); border: 1px solid var(--borde); border-radius: var(--radius-lg); overflow: hidden; transition: border-color var(--transition-fast); }
.podcast-card:hover { border-color: var(--azul); }
.podcast-image { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.podcast-image img { width: 100%; height: 100%; object-fit: cover; }
.podcast-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0.35); opacity: 0; transition: opacity var(--transition-fast); }
.podcast-card:hover .podcast-play { opacity: 1; }
.play-btn { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: var(--azul); border: none; border-radius: 50%; color: #fff; text-decoration: none; }
.podcast-content { padding: var(--space-4); }
.podcast-category { display: inline-block; padding: 2px var(--space-2); background: var(--gradient-primary); color: #fff; border-radius: var(--radius-full); font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: var(--space-2); }
.podcast-title a, .publication-title a { color: var(--texto); text-decoration: none; font-size: 1.02rem; font-weight: 600; line-height: 1.3; display: block; margin-bottom: var(--space-2); }
.podcast-title a:hover, .publication-title a:hover { color: var(--azul); }
.podcast-description, .publication-abstract { color: var(--muted); font-size: 0.9rem; line-height: 1.5; margin-bottom: var(--space-3); }
.podcast-meta { display: flex; align-items: center; gap: var(--space-3); font-size: 0.8rem; color: var(--muted); }
.podcast-meta span { display: flex; align-items: center; gap: 4px; }

/* ---- Publications grid ---- */
.publications-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-4); }
.publication-card { background: var(--gris); border: 1px solid var(--borde); border-radius: var(--radius-lg); padding: var(--space-4); }
.publication-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-2); font-size: 0.8rem; color: var(--muted); }
.publication-type { padding: 2px var(--space-2); border-radius: var(--radius-full); background: #e3efff; color: var(--azul); font-weight: 600; }
.publication-authors { display: flex; align-items: center; gap: 4px; color: var(--muted); font-size: 0.85rem; margin-bottom: var(--space-2); }
.publication-actions { display: flex; gap: var(--space-2); }

/* ---- Libros ---- */
.books-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 220px)); gap: var(--space-4); }
.book-card { background: var(--gris); border: 1px solid var(--borde); border-radius: var(--radius-lg); overflow: hidden; }
.book-cover { display: block; aspect-ratio: 3/4; overflow: hidden; background: #fff; }
.book-cover img { width: 100%; height: 100%; object-fit: cover; }
.book-cover-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--gris); color: var(--borde); font-size: 3rem; }
.book-content { padding: var(--space-4); }
.book-title-sm a { color: var(--texto); text-decoration: none; font-weight: 600; font-size: 0.95rem; line-height: 1.35; display: block; margin-bottom: var(--space-2); }
.book-title-sm a:hover { color: var(--azul); }
.book-authors { color: var(--muted); font-size: 0.8rem; margin-bottom: var(--space-3); }

/* ---- Empty state ---- */
.empty-state { text-align: center; padding: var(--space-8) var(--space-4); color: var(--muted); }
.empty-state i { font-size: 2.5rem; margin-bottom: var(--space-3); color: var(--borde); }
.empty-state h4 { color: var(--texto); margin-bottom: var(--space-2); }

/* ---- Accesos rápidos ---- */
.access-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-4); }
.access-card { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4); background: var(--gris); border: 1px solid var(--borde); border-radius: var(--radius-lg); text-decoration: none; color: var(--texto); position: relative; transition: border-color var(--transition-fast); }
.access-card:hover { border-color: var(--azul); text-decoration: none; }
.access-icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: var(--gradient-primary); border-radius: var(--radius-md); font-size: 1.2rem; color: #fff; flex-shrink: 0; }
.access-content h3 { font-size: 1rem; margin-bottom: 2px; color: var(--texto); }
.access-content p { color: var(--muted); font-size: 0.82rem; margin: 0; }
.access-external { position: absolute; top: var(--space-3); right: var(--space-3); color: var(--muted); font-size: 0.8rem; }

/* ---- Newsletter (formulario compacto) ---- */
.newsletter-form-inline { display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; margin-top: var(--space-3); }
.newsletter-form-inline input[type="email"] { flex: 1; min-width: 220px; }
.newsletter-form-inline .checkbox-label { display: flex; align-items: center; gap: var(--space-2); width: 100%; font-size: 0.8rem; color: var(--muted); }
.newsletter-form-inline .checkbox-label a { color: var(--azul); }
