/*
 Theme Name: Congreso APDP
 Theme URI: https://congreso.asocpdp.es
 Description: Micrositio del Congreso de la Asociación de Profesores de Derecho Penal. Child theme de Hello Elementor.
 Author: Mario
 Template: hello-elementor
 Version: 1.0.0
 Text Domain: congreso-apdp
*/

/* ============================================
   Design System APDP - Variables globales
   Misma paleta que la web principal
   ============================================ */
:root {
  /* Colores principales */
  --apdp-primary: #A02237;
  --apdp-primary-dark: #7A1A2A;
  --apdp-primary-light: #C4354F;
  --apdp-secondary: #202C39;
  --apdp-secondary-light: #2D3E4F;
  --apdp-accent: #B388EB;
  --apdp-accent-light: #D4B8F5;

  /* Neutros */
  --apdp-white: #FFFFFF;
  --apdp-gray-50: #F8F9FA;
  --apdp-gray-100: #F1F3F5;
  --apdp-gray-200: #E9ECEF;
  --apdp-gray-300: #DEE2E6;
  --apdp-gray-500: #ADB5BD;
  --apdp-gray-700: #495057;
  --apdp-gray-900: #212529;

  /* Tipografía (Adobe Fonts / Typekit) */
  --apdp-font-heading: 'freight-display-pro', Georgia, serif;
  --apdp-font-body: 'freight-neo-pro', -apple-system, sans-serif;

  /* Espaciado base */
  --apdp-spacing-xs: 0.5rem;
  --apdp-spacing-sm: 1rem;
  --apdp-spacing-md: 1.5rem;
  --apdp-spacing-lg: 2.5rem;
  --apdp-spacing-xl: 4rem;
}

/* ============================================
   Estilos base del child theme
   ============================================ */
body {
  font-family: var(--apdp-font-body);
  color: var(--apdp-gray-900);
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--apdp-font-heading);
  color: var(--apdp-secondary);
  font-weight: 700;
}

a {
  color: var(--apdp-primary);
  transition: color 0.2s ease;
}

a:hover {
  color: var(--apdp-primary-dark);
}

/* ============================================
   Componentes reutilizables
   Para usar con clases CSS en Elementor
   ============================================ */

/* Card de congreso (para el archive) */
.congreso-card {
  background: var(--apdp-white);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(32, 44, 57, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.congreso-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(32, 44, 57, 0.12);
}

.congreso-card__body {
  padding: var(--apdp-spacing-md);
}

.congreso-card__edicion {
  display: inline-block;
  background: var(--apdp-primary);
  color: var(--apdp-white);
  font-family: var(--apdp-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 0.75rem;
  border-radius: 4px;
  margin-bottom: var(--apdp-spacing-xs);
}

.congreso-card__titulo {
  font-family: var(--apdp-font-heading);
  font-size: 1.25rem;
  color: var(--apdp-secondary);
  margin-bottom: var(--apdp-spacing-xs);
}

.congreso-card__meta {
  font-size: 0.9rem;
  color: var(--apdp-gray-700);
}

/* Badge para estado del congreso */
.congreso-badge--proximo {
  background: var(--apdp-accent);
  color: var(--apdp-white);
}

.congreso-badge--pasado {
  background: var(--apdp-gray-300);
  color: var(--apdp-gray-700);
}

/* Secciones del programa */
.programa-dia {
  border-left: 4px solid var(--apdp-primary);
  padding-left: var(--apdp-spacing-md);
  margin-bottom: var(--apdp-spacing-lg);
}

.programa-dia__titulo {
  font-family: var(--apdp-font-heading);
  font-size: 1.5rem;
  color: var(--apdp-primary);
  margin-bottom: var(--apdp-spacing-sm);
}

.programa-bloque {
  padding: var(--apdp-spacing-sm) 0;
  border-bottom: 1px solid var(--apdp-gray-200);
}

.programa-bloque:last-child {
  border-bottom: none;
}

.programa-bloque__hora {
  font-weight: 600;
  color: var(--apdp-primary);
  font-size: 0.9rem;
}

.programa-bloque__titulo {
  font-family: var(--apdp-font-heading);
  font-weight: 700;
  color: var(--apdp-secondary);
}

/* Tabla de comités */
.comite-tabla {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.comite-tabla th {
  background: var(--apdp-secondary);
  color: var(--apdp-white);
  font-family: var(--apdp-font-body);
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.75rem 1rem;
  text-align: left;
}

.comite-tabla th:first-child {
  border-radius: 6px 0 0 0;
}

.comite-tabla th:last-child {
  border-radius: 0 6px 0 0;
}

.comite-tabla td {
  padding: 0.65rem 1rem;
  border-bottom: 1px solid var(--apdp-gray-200);
  font-size: 0.95rem;
}

.comite-tabla tbody tr:hover {
  background: var(--apdp-gray-50);
}

/* CTA / Botones */
.apdp-btn {
  display: inline-block;
  font-family: var(--apdp-font-body);
  font-weight: 600;
  padding: 0.75rem 1.75rem;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
  border: none;
  font-size: 1rem;
}

.apdp-btn--primary {
  background: var(--apdp-primary);
  color: var(--apdp-white);
}

.apdp-btn--primary:hover {
  background: var(--apdp-primary-dark);
  color: var(--apdp-white);
}

.apdp-btn--outline {
  background: transparent;
  color: var(--apdp-primary);
  border: 2px solid var(--apdp-primary);
}

.apdp-btn--outline:hover {
  background: var(--apdp-primary);
  color: var(--apdp-white);
}

/* Sección de inscripción */
.inscripcion-box {
  background: var(--apdp-gray-50);
  border: 1px solid var(--apdp-gray-200);
  border-left: 4px solid var(--apdp-accent);
  border-radius: 0 8px 8px 0;
  padding: var(--apdp-spacing-md);
}

/* Fechas clave */
.fechas-clave__item {
  display: flex;
  align-items: flex-start;
  gap: var(--apdp-spacing-sm);
  padding: var(--apdp-spacing-sm) 0;
  border-bottom: 1px solid var(--apdp-gray-200);
}

.fechas-clave__fecha {
  font-weight: 700;
  color: var(--apdp-primary);
  white-space: nowrap;
  min-width: 140px;
}
