/* ===================================================== */
/* BRAND COLOURS */
/* ===================================================== */

:root{
  --caz-blue: #003679;
  --caz-blue-soft: rgba(0,54,121,.10);
  --caz-blue-mid: rgba(0,54,121,.45);

  --caz-orange: #FF9600;
  --caz-orange-dark: #e08500;

  --caz-text: #222;
  --caz-muted: #555;
  --caz-border: #eee;
  --caz-bg-soft: #fafafa;
  --caz-shadow: 0 10px 30px rgba(0,0,0,0.04);
}

/* ===================================================== */
/* WRAPPER */
/* ===================================================== */

.caz-wrapper{
  max-width:1200px;
  margin:0 auto;
  padding:0 16px;
}

/* ===================================================== */
/* GRID BASE */
/* ===================================================== */

.caz-list{
  display:grid;
  grid-template-columns:1fr;
  gap:18px 32px;
  list-style:none;
  padding:0;
  margin:0;
}

@media (min-width:900px){
  .caz-list{
    grid-template-columns:1fr 1fr;
  }
}

/* ===================================================== */
/* BUSCADOR */
/* ===================================================== */

.caz-top{ margin-bottom:25px; }

.caz-search-wrap{
  display:flex;
  gap:10px;
}

.caz-search-input{
  flex:1;
  height:48px;
  border-radius:14px;
  border:1px solid #ddd;
  padding:0 15px;
  font-size:15px;
  outline:none;
  background:#fff;
}

.caz-search-input:focus{
  border-color:var(--caz-blue);
  box-shadow:0 0 0 3px var(--caz-blue-soft);
}

.caz-clear{
  width:48px;
  height:48px;
  border-radius:14px;
  border:1px solid #ddd;
  background:#fff;
  font-size:20px;
  cursor:pointer;
}

/* ===================================================== */
/* ITEM BASE */
/* ===================================================== */

.caz-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px;
  border:1px solid var(--caz-border);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--caz-shadow);
}

/* ===================================================== */
/* MAIN LINK */
/* ===================================================== */

.caz-main{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  flex:1;
  min-width:0;
  color:inherit;
}

/* Evita que el enlace pinte raro en Safari al click */
.caz-main:focus{ outline:none; }
.caz-main:focus-visible{
  box-shadow:0 0 0 3px var(--caz-blue-soft);
  border-radius:16px;
}

/* ===================================================== */
/* THUMB */
/* ===================================================== */

.caz-thumb{
  width:70px;
  height:70px;
  border-radius:16px;
  overflow:hidden;
  background:#f2f2f2;
  flex-shrink:0;
}

.caz-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.caz-placeholder{
  width:100%;
  height:100%;
  background:linear-gradient(135deg,#e6e6e6,#f7f7f7);
}

/* ===================================================== */
/* TITLE */
/* ===================================================== */

.caz-title{
  font-weight:700;
  font-size:16px;
  color:var(--caz-text);
  line-height:1.3;
  white-space:normal;
}

/* ===================================================== */
/* BUTTONS (BASE) */
/* ===================================================== */

.caz-buttons{
  display:flex;
  gap:10px;
  flex-shrink:0;
  justify-content:flex-end;
}

.caz-btn{
  padding:8px 14px;
  border-radius:12px;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  line-height:1;
  text-align:center;
  border:1px solid transparent;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .05s ease;
}

.caz-btn:active{ transform:translateY(1px); }

/* Iconos PRO */
.caz-btn::before{
  content:"";
  width:16px;
  height:16px;
  background:currentColor;
  opacity:.9;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain;
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
  flex:0 0 16px;
}

/* Info icon */
.caz-btn.ghost::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 7.2a1.2 1.2 0 1 1 0-2.4 1.2 1.2 0 0 1 0 2.4ZM13.2 18h-2.4v-7.2h2.4V18Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 7.2a1.2 1.2 0 1 1 0-2.4 1.2 1.2 0 0 1 0 2.4ZM13.2 18h-2.4v-7.2h2.4V18Z'/%3E%3C/svg%3E");
}

/* Pen icon */
.caz-btn.solid::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 17.25V21h3.75L17.8 9.95l-3.75-3.75L3 17.25Zm18.7-11.2a1 1 0 0 0 0-1.4l-1.35-1.35a1 1 0 0 0-1.4 0l-1.1 1.1 3.75 3.75 1.1-1.1Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 17.25V21h3.75L17.8 9.95l-3.75-3.75L3 17.25Zm18.7-11.2a1 1 0 0 0 0-1.4l-1.35-1.35a1 1 0 0 0-1.4 0l-1.1 1.1 3.75 3.75 1.1-1.1Z'/%3E%3C/svg%3E");
}

/* Secondary (blue) */
.caz-btn.ghost{
  background:#eef1ff;
  color:var(--caz-blue);
  border-color:rgba(0,54,121,.12);
}

.caz-btn.ghost:hover{
  background:#e5eaff;
  border-color:rgba(0,54,121,.18);
}

/* Primary (orange) */
.caz-btn.solid{
  background:var(--caz-orange);
  color:#fff;
}

.caz-btn.solid:hover{
  background:var(--caz-orange-dark);
}

/* ===================================================== */
/* MOBILE */
/* ===================================================== */

@media (max-width:768px){
  .caz-item{
    flex-direction:column;
    align-items:flex-start;
  }

  .caz-buttons{
    width:100%;
    justify-content:stretch;
  }

  .caz-btn{
    width:100%;
  }
}

/* ===================================================== */
/* SENCE VERSION */
/* ===================================================== */

.caz-item.is-sence .caz-thumb{ display:none; }

.caz-sence-left{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.caz-sence-meta{
  display:flex;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  background:var(--caz-bg-soft);
  border:1px solid var(--caz-border);
  width:fit-content;
}

.caz-sence-label{
  font-size:12px;
  font-weight:800;
  color:#666;
  text-transform:uppercase;
}

.caz-sence-value{
  font-size:14px;
  font-weight:800;
  color:var(--caz-blue);
  font-family:monospace;
}

/* ===================================================== */
/* COMPACT LAYOUT */
/* ===================================================== */

.caz-list.is-compact .caz-buttons{
  flex-direction:column;
  align-items:stretch;
  gap:10px;
}

.caz-list.is-compact .caz-btn{ width:160px; }

.caz-list.is-compact .caz-item,
.caz-list.is-compact .caz-main{
  align-items:flex-start;
}

@media (max-width:768px){
  .caz-list.is-compact .caz-btn{ width:100%; }
}

/* ===================================================== */
/* BIG LAYOUT (DIPLOMADOS COMO "PROXIMOS" GRANDES) */
/* ===================================================== */

.caz-list.is-big{
  grid-template-columns:1fr;
  gap:22px;
}

@media (min-width:700px){
  .caz-list.is-big{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (min-width:1100px){
  .caz-list.is-big{
    grid-template-columns:repeat(3,1fr);
  }
}

.caz-list.is-big .caz-item{
  flex-direction:column;
  align-items:stretch;
  gap:14px;
  border-radius:24px;
  height:100%;
}

.caz-list.is-big .caz-main{
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}

.caz-list.is-big .caz-thumb{
  width:100%;
  height:200px;
  border-radius:18px;
}

.caz-list.is-big .caz-title{
  font-size:18px;
  line-height:1.2;
}

.caz-big-excerpt{
  display:block;
  font-size:14px;
  line-height:1.5;
  color:var(--caz-muted);
  opacity:.9;
}

.caz-list.is-big .caz-buttons{
  margin-top:auto;
  justify-content:stretch;
}

.caz-list.is-big .caz-btn{
  width:100%;
}

/* ===================================================== */
/* CARDS LAYOUT (DIPLOMADOS - LEAD + LISTA) */
/* ===================================================== */

.caz-list.is-cards{
  grid-template-columns:1fr;
  gap:22px;
}

@media (min-width:700px){
  .caz-list.is-cards{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (min-width:1100px){
  .caz-list.is-cards{
    grid-template-columns:repeat(3,1fr);
  }
}

.caz-list.is-cards .caz-item{
  flex-direction:column;
  align-items:stretch;
  gap:14px;
  border-radius:24px;
  height:100%;
}

.caz-list.is-cards .caz-main{
  flex-direction:column;
  gap:12px;
}

.caz-list.is-cards .caz-thumb{
  width:100%;
  height:180px;
  border-radius:18px;
}

.caz-list.is-cards .caz-buttons{
  margin-top:auto;
  justify-content:stretch;
}

.caz-list.is-cards .caz-btn{
  width:100%;
}

/* ===================================================== */
/* EXCERPT - DIPLOMADOS (cards) */
/* ===================================================== */

.caz-excerpt{
  margin-top:10px;
  font-size:14px;
  line-height:1.55;
  color:var(--caz-muted);
}

.caz-list.is-cards .caz-excerpt{
  background:var(--caz-bg-soft);
  border:1px solid var(--caz-border);
  border-radius:14px;
  padding:12px;
}

/* lista real (tu HTML usa UL/LI) */
.caz-ex-list{
  list-style:none;
  padding:0;
  margin:8px 0 0 0;
}

.caz-ex-item{ margin:6px 0; }

.caz-ex-item strong{
  font-weight:800;
  color:var(--caz-text);
}

/* Esto evita que el inner "pegue" al borde en algunos temas */
.caz-ex-box-inner{
  display:block;
}

/* PRICE */
.caz-ex-item.is-price{
  background:#fff4e6;
  border:1px solid rgba(255,150,0,.35);
  border-radius:12px;
  color:var(--caz-orange);
  font-weight:900;
  padding:10px 12px;
}

/* ALERT */
.caz-ex-item.is-alert{
  background:#fff5f5;
  border:1px solid rgba(180,35,24,.18);
  border-radius:12px;
  color:#b42318;
  font-weight:900;
  padding:10px 12px;
}

/* ===================================================== */
/* EXCERPT - HOME (proximos_cursos_mes) */
/* ===================================================== */

.caz-home-excerpt{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:var(--caz-bg-soft);
  border:1px solid var(--caz-border);
}

.caz-home-line{
  display:flex;
  gap:6px;
  line-height:1.4;
}

.caz-home-line::before{
  content:"•";
  color:var(--caz-blue);
  font-weight:700;
}

.caz-home-line strong{ font-weight:800; }

/* ===================================================== */
/* NO RESULTS */
/* ===================================================== */

.caz-noresults{
  margin-top:14px;
  padding:12px 14px;
  border-radius:14px;
  background:var(--caz-bg-soft);
  border:1px solid var(--caz-border);
  color:#666;
}

/* ===================================================== */
/* LEGACY tp-cursos__excerpt */
/* ===================================================== */

.tp-cursos__excerpt{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:var(--caz-bg-soft);
  border:1px solid var(--caz-border);
  font-size:14px;
  line-height:1.45;
  color:#444;
  white-space:pre-line;
}

/* ===================================================== */
/* HOTFIX: forzar estilos del plugin sobre el tema */
/* ===================================================== */

/* Asegura que el wrapper no colapse */
.caz-wrapper{ display:block !important; }

/* Lista siempre como grilla */
.caz-list{
  display:grid !important;
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
  gap:18px 32px !important;
}

/* Breakpoints de grilla base */
@media (min-width:900px){
  .caz-list{ grid-template-columns:1fr 1fr !important; }
}

/* Layout BIG (los diplomados como cards grandes) */
.caz-list.is-big{
  grid-template-columns:1fr !important;
  gap:22px !important;
}
@media (min-width:700px){
  .caz-list.is-big{ grid-template-columns:repeat(2,1fr) !important; }
}
@media (min-width:1100px){
  .caz-list.is-big{ grid-template-columns:repeat(3,1fr) !important; }
}

/* Cada item vuelve a ser "card" */
.caz-item{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  padding:18px !important;
  border:1px solid var(--caz-border) !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:var(--caz-shadow) !important;
  list-style:none !important;
}

/* BIG: card vertical */
.caz-list.is-big .caz-item{
  flex-direction:column !important;
  align-items:stretch !important;
  gap:14px !important;
  border-radius:24px !important;
  height:100% !important;
}

.caz-main{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  text-decoration:none !important;
  flex:1 !important;
  min-width:0 !important;
  color:inherit !important;
}

.caz-list.is-big .caz-main{
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:12px !important;
}

.caz-thumb{
  width:70px !important;
  height:70px !important;
  border-radius:16px !important;
  overflow:hidden !important;
  background:#f2f2f2 !important;
  flex-shrink:0 !important;
}
.caz-list.is-big .caz-thumb{
  width:100% !important;
  height:200px !important;
  border-radius:18px !important;
}

.caz-thumb img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

.caz-title{
  font-weight:700 !important;
  font-size:16px !important;
  color:var(--caz-text) !important;
  line-height:1.3 !important;
  white-space:normal !important;
}
.caz-list.is-big .caz-title{
  font-size:18px !important;
  line-height:1.2 !important;
}

/* Botones vuelven a verse como botones */
.caz-buttons{
  display:flex !important;
  gap:10px !important;
  flex-shrink:0 !important;
  justify-content:flex-end !important;
}
.caz-list.is-big .caz-buttons{
  margin-top:auto !important;
  justify-content:stretch !important;
}
.caz-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  padding:8px 14px !important;
  border-radius:12px !important;
  font-size:13px !important;
  font-weight:700 !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  border:1px solid transparent !important;
}
.caz-list.is-big .caz-btn{ width:100% !important; }

/* Quita bullets de la lista del excerpt por si el tema mete estilos */
.caz-ex-list{
  list-style:none !important;
  padding:0 !important;
  margin:8px 0 0 0 !important;
}

/* =====================================================
   CAZ - FIX MOBILE SOLO SENCE
   No toca desktop, no toca otros post types
===================================================== */

@media (max-width: 767px){

  /* El item SENCE debe poder respirar */
  .caz-list .caz-item.is-sence{
    padding: 14px 14px !important;
  }

  /* Layout SENCE: apilar y evitar columnas raras heredadas */
  .caz-list .caz-item.is-sence .caz-main{
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  /* Columna izquierda debe ocupar todo el ancho */
  .caz-list .caz-item.is-sence .caz-sence-left{
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Titulo sin "letra por linea" */
  .caz-list .caz-item.is-sence .caz-title{
    display: block !important;
    width: 100% !important;

    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;

    word-break: normal !important;
    overflow-wrap: break-word !important;

    line-height: 1.25 !important;
  }

  /* Bloque Codigo Sence: en fila, no en columna ultra estrecha */
  .caz-list .caz-item.is-sence .caz-sence-meta{
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;

    padding: 10px 12px !important;
    border-radius: 14px !important;
  }

  .caz-list .caz-item.is-sence .caz-sence-label{
    white-space: nowrap !important;
    word-break: normal !important;
  }

  .caz-list .caz-item.is-sence .caz-sence-value{
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  /* Boton Inscribirse: full width */
  .caz-list .caz-item.is-sence .caz-buttons{
    width: 100% !important;
  }

  .caz-list .caz-item.is-sence .caz-buttons .caz-btn{
    width: 100% !important;
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 46px !important;
  }
}

/* =====================================================
   FIX MOBILE - SOLO SENCE (no toca desktop)
===================================================== */

@media (max-width: 768px){

  /* SENCE: el contenedor principal debe apilar */
  .caz-item.is-sence .caz-main{
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  /* Asegura que el bloque izquierdo use todo el ancho */
  .caz-item.is-sence .caz-sence-left{
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Titulo sin quiebre feo */
  .caz-item.is-sence .caz-title{
    display: block !important;
    width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    line-height: 1.25 !important;
  }

  /* Meta: nunca fit-content en mobile */
  .caz-item.is-sence .caz-sence-meta{
    width: 100% !important;
    max-width: 100% !important;
    justify-content: space-between !important;
  }

  .caz-item.is-sence .caz-sence-label{
    white-space: nowrap !important;
  }

  .caz-item.is-sence .caz-sence-value{
    white-space: nowrap !important;
  }

  /* Boton: full width */
  .caz-item.is-sence .caz-buttons{
    width: 100% !important;
    justify-content: stretch !important;
  }

  .caz-item.is-sence .caz-buttons .caz-btn{
    width: 100% !important;
    min-height: 46px !important;
  }
}

/* =====================================================
   OVERRIDE: SOLO ESTE BLOQUE EN 4 COLUMNAS (layout big)
   (necesita wrapper .caz-wrapper.caz-cols-4)
===================================================== */

.caz-wrapper.caz-cols-4 .caz-list.is-big{
  grid-template-columns: 1fr !important;
}

@media (min-width:700px){
  .caz-wrapper.caz-cols-4 .caz-list.is-big{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width:1100px){
  .caz-wrapper.caz-cols-4 .caz-list.is-big{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width:640px){
  .caz-wrapper.caz-cols-4 .caz-list.is-big{
    grid-template-columns: 1fr !important;
  }
}