/* cursos.css — catálogo (filtros/buscador) y páginas de detalle de curso */

/* ---------- Barra de filtros ---------- */
.cz-toolbar{ max-width:1100px; margin:0 auto 30px; padding:0 20px; display:flex; flex-direction:column; gap:16px; }
.cz-search{ position:relative; }
.cz-search input{
  width:100%; padding:14px 16px 14px 46px; border:1.5px solid var(--pg-line); border-radius:14px;
  font-family:inherit; font-size:15.5px; color:var(--pg-ink); background:#fff; transition:border-color .2s, box-shadow .2s;
}
.cz-search input:focus{ outline:none; border-color:var(--pg-blue); box-shadow:0 0 0 3px rgba(37,99,235,.15); }
.cz-search::before{ content:"🔍"; position:absolute; left:16px; top:50%; transform:translateY(-50%); font-size:16px; opacity:.6; }
.cz-filters{ display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
.cz-filter-group{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.cz-filter-label{ font-size:12.5px; font-weight:800; color:#94a3b8; letter-spacing:.06em; text-transform:uppercase; margin-right:2px; }
.cz-chip{
  border:1.5px solid var(--pg-line); background:#fff; color:var(--pg-muted);
  padding:8px 16px; border-radius:999px; font-family:inherit; font-size:13.5px; font-weight:700; cursor:pointer;
  transition:all .18s ease;
}
.cz-chip:hover{ border-color:#bfdbfe; color:var(--pg-blue); }
.cz-chip--on{ background:linear-gradient(120deg,var(--pg-blue),var(--pg-blue2)); border-color:transparent; color:#fff; box-shadow:0 6px 16px rgba(37,99,235,.3); }
.cz-count{ font-size:14px; color:var(--pg-muted); }
.cz-count b{ color:var(--pg-ink); }

/* ---------- Grid del catálogo ---------- */
.cz-grid{ max-width:1100px; margin:0 auto; padding:0 20px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.cz-card{
  display:flex; flex-direction:column; background:#fff; border:1px solid var(--pg-line);
  border-radius:18px; overflow:hidden; box-shadow:var(--pg-shadow);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cz-card:hover{ transform:translateY(-5px); box-shadow:0 20px 44px rgba(29,78,216,.16); border-color:#bfdbfe; }
.cz-card-img{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.cz-card-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.cz-card:hover .cz-card-img img{ transform:scale(1.05); }
.cz-card-badge{ position:absolute; top:12px; left:12px; background:rgba(15,23,42,.78); color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.06em; padding:5px 10px; border-radius:999px; backdrop-filter:blur(4px); }
.cz-card-body{ padding:20px; display:flex; flex-direction:column; flex:1; }
.cz-card-name{ font-family:'Nunito Sans',sans-serif; font-size:18px; font-weight:800; color:var(--pg-ink); margin:0 0 8px; }
.cz-card-desc{ font-size:14px; line-height:1.55; color:var(--pg-muted); margin:0 0 14px; flex:1; }
.cz-card-meta{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.cz-meta-pill{ display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:#475569; background:#f1f5f9; padding:5px 10px; border-radius:8px; }
.cz-card-actions{ display:flex; gap:8px; }
.cz-card-actions .pg-btn{ padding:10px 16px; font-size:13.5px; flex:1; justify-content:center; }
.pg-btn--solid{ background:linear-gradient(120deg,var(--pg-blue),var(--pg-blue2)); color:#fff; box-shadow:0 8px 20px rgba(37,99,235,.28); }
.pg-btn--solid:hover{ transform:translateY(-2px); box-shadow:0 14px 28px rgba(37,99,235,.4); }
.cz-empty{ display:none; text-align:center; color:var(--pg-muted); padding:50px 20px; font-size:16px; }

/* ---------- Detalle de curso ---------- */
.cz-hero-meta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }
.cz-hero-meta .cz-tag{ background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); color:#fff; font-size:12.5px; font-weight:700; padding:6px 13px; border-radius:999px; }
.cz-layout{ max-width:1100px; margin:0 auto; padding:56px 20px; display:grid; grid-template-columns:1fr 320px; gap:34px; align-items:start; }
.cz-main > section{ margin-bottom:38px; }
.cz-main h2{ font-family:'Nunito Sans',sans-serif; font-size:22px; color:var(--pg-ink); margin:0 0 16px; }
.cz-temario{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.cz-temario li{ display:flex; gap:12px; align-items:flex-start; font-size:15px; color:#334155; line-height:1.5; }
.cz-temario li::before{ content:"✓"; flex-shrink:0; width:24px; height:24px; border-radius:50%; background:#dcfce7; color:#16a34a; font-weight:900; display:flex; align-items:center; justify-content:center; font-size:13px; }
.cz-two{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.cz-box{ background:#fff; border:1px solid var(--pg-line); border-radius:14px; padding:20px 22px; box-shadow:var(--pg-shadow); }
.cz-box h3{ font-size:15px; color:var(--pg-blue); margin:0 0 12px; }
.cz-box ul{ margin:0; padding-left:18px; color:#475569; font-size:14.5px; line-height:1.7; }
.cz-box p{ margin:0; color:#475569; font-size:14.5px; line-height:1.6; }

/* Tarjeta lateral (sticky) */
.cz-aside{ position:sticky; top:110px; background:#fff; border:1px solid var(--pg-line); border-radius:18px; padding:24px; box-shadow:0 14px 36px rgba(15,23,42,.10); }
.cz-aside-img{ border-radius:12px; overflow:hidden; aspect-ratio:16/10; margin-bottom:16px; }
.cz-aside-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.cz-aside-row{ display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px dashed var(--pg-line); font-size:14px; }
.cz-aside-row:last-of-type{ border-bottom:0; }
.cz-aside-row span{ color:#94a3b8; font-weight:600; }
.cz-aside-row b{ color:var(--pg-ink); }
.cz-aside .pg-btn{ width:100%; justify-content:center; margin-top:16px; }

/* ---------- FAQ desplegable ---------- */
.cz-faq{ max-width:820px; margin:0 auto; display:grid; gap:12px; }
.cz-faq-item{ background:#fff; border:1px solid var(--pg-line); border-radius:14px; overflow:hidden; }
.cz-faq-q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:18px 22px; font-family:inherit; font-size:15.5px; font-weight:700; color:var(--pg-ink); display:flex; justify-content:space-between; align-items:center; gap:14px; }
.cz-faq-q::after{ content:"+"; font-size:22px; color:var(--pg-blue); flex-shrink:0; transition:transform .2s ease; }
.cz-faq-item.open .cz-faq-q::after{ transform:rotate(45deg); }
.cz-faq-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.cz-faq-item.open .cz-faq-a{ max-height:400px; }
.cz-faq-a p{ margin:0; padding:0 22px 20px; color:var(--pg-muted); font-size:14.5px; line-height:1.65; }

/* ---------- Cursos relacionados ---------- */
.cz-rel{ max-width:1100px; margin:0 auto; padding:0 20px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.cz-rel a{ display:flex; gap:12px; align-items:center; background:#fff; border:1px solid var(--pg-line); border-radius:14px; padding:12px; text-decoration:none; transition:transform .2s, box-shadow .2s, border-color .2s; }
.cz-rel a:hover{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(29,78,216,.14); border-color:#bfdbfe; }
.cz-rel img{ width:64px; height:64px; border-radius:10px; object-fit:cover; flex-shrink:0; }
.cz-rel b{ color:var(--pg-ink); font-size:14.5px; display:block; }
.cz-rel span{ color:var(--pg-muted); font-size:12.5px; }

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .cz-grid, .cz-rel{ grid-template-columns:repeat(2,1fr); }
  .cz-layout{ grid-template-columns:1fr; }
  .cz-aside{ position:static; }
}
@media (max-width:600px){
  .cz-grid, .cz-rel{ grid-template-columns:1fr; }
  .cz-two{ grid-template-columns:1fr; }
}
