/* programas.css (PRO)
   - No pisa header: todo va scopeado a main.page
   - Fondo más suave/oscuro
   - Cards alineadas (mismo alto)
   - Botón verde/teal bonito
   - Controles (buscar + filtros)
   - ✅ Cards con imagen de fondo + overlay (texto encima)
*/

:root{
  --rc-blue: #007BFF;
  --rc-teal: #2f5d5a;               /* tu verde/teal base */
  --rc-teal-soft: rgba(47,93,90,.16);
  --rc-teal-soft2: rgba(47,93,90,.24);
  --rc-bg: #e9f1f0;                 /* menos luminoso que blanco */
  --rc-panel: rgba(255,255,255,.72);/* panel tipo vidrio */
  --rc-border: rgba(0,0,0,.14);
  --rc-shadow: 0 8px 20px rgba(0,0,0,.14);
  --rc-shadow2: 0 12px 26px rgba(0,0,0,.18);
  --rc-text: #101214;
  --rc-muted: rgba(0,0,0,.70);
}

body{
  background:
    radial-gradient(900px 380px at 15% 0%, rgba(47,93,90,.18), transparent 60%),
    radial-gradient(700px 320px at 90% 10%, rgba(0,123,255,.10), transparent 60%),
    var(--rc-bg);
  color: var(--rc-text);
}

main.page{
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 16px 60px;
}

/* HERO */
main.page .hero{
  background: var(--rc-panel);
  backdrop-filter: blur(10px);
  border: 1px solid var(--rc-border);
  border-radius: 14px;
  box-shadow: var(--rc-shadow);
}

main.page .hero-inner{
  padding: 22px 20px;
}

main.page .kicker{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  background: rgba(47, 93, 90, 0.14);
  border: 1px solid rgba(47, 93, 90, 0.28);
  font-family: monospace;
  font-size: 13px;
  color: #000;
  margin-bottom: 10px;
}

main.page .title{
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.12;
  margin: 0 0 8px;
}

main.page .subtitle{
  margin: 0;
  max-width: 75ch;
  line-height: 1.65;
  color: var(--rc-muted);
}

/* CTA buttons */
main.page .hero-cta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

main.page .btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  border-radius: 12px;
  padding: 10px 14px;
  font-weight: 900;
  border: 1px solid var(--rc-border);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

main.page .btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(0,0,0,.14);
}

/* Botón principal (verde/teal) */
main.page .btn-primary{
  color: #fff;
  border-color: rgba(0,0,0,.12);
  background: linear-gradient(135deg, rgba(47,93,90,1), rgba(47,93,90,.82));
}

main.page .btn-primary:hover{
  background: linear-gradient(135deg, rgba(47,93,90,1), rgba(35,75,72,.92));
}

/* Secundario (neutro) */
main.page .btn-ghost{
  background: rgba(255,255,255,.58);
  color: #000;
}

main.page .btn-ghost:hover{
  background: rgba(255,255,255,.75);
}

/* STRIP */
main.page .strip{
  margin: 14px 0 10px;
}

main.page .strip-inner{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}

main.page .strip-item{
  display: flex;
  gap: 12px;
  padding: 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.70);
  border: 1px solid var(--rc-border);
  box-shadow: 0 6px 14px rgba(0,0,0,.12);
}

main.page .strip-item i{
  color: var(--rc-teal);
  font-size: 18px;
}

main.page .strip-title{
  margin: 0;
  font-weight: 900;
  font-size: 14px;
}

main.page .strip-text{
  margin: 4px 0 0;
  color: var(--rc-muted);
  font-size: 13.5px;
}

/* SECTION HEAD */
main.page .section-head{
  margin: 16px 0 12px;
}

main.page .section-head h2{
  margin: 0 0 6px;
  font-size: 22px;
}

main.page .section-head p{
  margin: 0;
  color: var(--rc-muted);
  line-height: 1.65;
}

/* ===== CONTROLS (search + filters) ===== */
main.page .controls{
  margin: 12px 0 14px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid var(--rc-border);
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(10px);
  box-shadow: 0 8px 18px rgba(0,0,0,.12);

  display: grid;
  grid-template-columns: 1.3fr .9fr .7fr auto;
  gap: 10px;
  align-items: end;
}

main.page .control-label{
  display: block;
  font-weight: 900;
  font-size: 13px;
  margin: 0 0 6px;
  color: rgba(0,0,0,.82);
}

main.page .control-input{
  position: relative;
}

main.page .control-input i{
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(47,93,90,.95);
  font-size: 14px;
  pointer-events: none;
}

main.page input[type="text"],
main.page select{
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.16);
  background: rgba(255,255,255,.85);
  padding: 11px 12px;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
  font-weight: 600;
}

main.page .control-input input[type="text"]{
  padding-left: 36px;
}

main.page input[type="text"]:focus,
main.page select:focus{
  border-color: rgba(47,93,90,.55);
  box-shadow: 0 0 0 4px rgba(47,93,90,.18);
}

main.page .control--reset{
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

main.page .btn-reset{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-radius: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(47,93,90,.35);
  background: rgba(47,93,90,.12);
  color: #000;
  font-weight: 900;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}

main.page .btn-reset:hover{
  transform: translateY(-1px);
  background: rgba(47,93,90,.18);
  box-shadow: 0 10px 18px rgba(0,0,0,.12);
}

main.page .results{
  font-weight: 900;
  color: rgba(0,0,0,.78);
  font-size: 13px;
}

/* ===== GRID CARDS (alineadas) ===== */
main.page .grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  align-items: stretch; /* ✅ iguala alturas */
}

/* ✅ CARD BASE + IMAGEN DE FONDO */
main.page .card{
  position: relative;
  overflow: hidden;

  border-radius: 14px;
  border: 1px solid var(--rc-border);
  box-shadow: var(--rc-shadow);

  padding: 0;

  display: flex;
  flex-direction: column;
  min-height: 260px;

  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, opacity .15s ease;
  opacity: 1;

  /* fallback si no pones imagen */
  background: rgba(255,255,255,.78);
}

/* capa de imagen (JS le pone style="background-image: url(...)" ) */
main.page .card .card-bg{
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  transition: transform .35s ease;
}

/* overlay oscuro para legibilidad */
main.page .card::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,.62) 0%,
    rgba(0,0,0,.52) 45%,
    rgba(0,0,0,.70) 100%
  );
  z-index: 1;
}

/* si NO hay imagen (clase puesta por JS) */
main.page .card.no-bg .card-bg{
  display: none;
}
main.page .card.no-bg::before{
  background: linear-gradient(
    180deg,
    rgba(47,93,90,.28) 0%,
    rgba(0,0,0,.18) 55%,
    rgba(0,0,0,.28) 100%
  );
}

/* contenido encima */
main.page .card .card-content{
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 14px;

  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

main.page .card:hover{
  transform: translateY(-2px);
  box-shadow: var(--rc-shadow2);
  border-color: rgba(47,93,90,.35);
}

main.page .card:hover .card-bg{
  transform: scale(1.08);
}

/* Animación de entrada */
main.page .card.is-hidden{
  display: none;
}

main.page .card.is-fading{
  opacity: 0;
  transform: translateY(4px);
}

/* Top row */
main.page .card-top{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 2px;
}

/* Badge y horas sobre imagen */
main.page .badge{
  background: rgba(47,93,90,.85);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12.5px;
  font-weight: 900;
  color: #fff;
}

main.page .hours{
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12.5px;
  color: rgba(255,255,255,.95);
  white-space: nowrap;
}

/* Texto sobre imagen */
main.page .card-title{
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 1000;
  line-height: 1.25;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}

main.page .card-desc{
  margin: 0 0 12px;
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(255,255,255,.90);
  text-shadow: 0 2px 10px rgba(0,0,0,.35);

  flex: 1; /* ✅ empuja el botón hacia abajo */
}

/* ✅ botón “bonito” verde/teal */
main.page .card-btn{
  margin-top: auto;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 10px;

  text-decoration: none;
  padding: 11px 12px;
  border-radius: 12px;

  color: #fff;
  font-weight: 1000;

  background: linear-gradient(135deg, rgba(47,93,90,1), rgba(47,93,90,.82));
  border: 1px solid rgba(255,255,255,.14);

  box-shadow: 0 10px 18px rgba(0,0,0,.18);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

main.page .card-btn::after{
  content: "→";
  font-weight: 1000;
  opacity: .9;
}

main.page .card-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 16px 26px rgba(0,0,0,.22);
  filter: saturate(1.05);
}

/* RESPONSIVE */
@media (max-width: 980px){
  main.page .grid{ grid-template-columns: repeat(2, 1fr); }
  main.page .strip-inner{ grid-template-columns: 1fr; }
  main.page .controls{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 540px){
  main.page .grid{ grid-template-columns: 1fr; }
  main.page{ padding: 18px 12px 50px; }
  main.page .hero-inner{ padding: 18px 14px; }
  main.page .controls{ grid-template-columns: 1fr; }
  main.page .control--reset{ justify-content: space-between; }
}
