/* =========================
   BASE
========================= */
.cnc-wrap{
  max-width:1320px;
  margin:0 auto;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* =========================
   SECCIÓN FILTROS
   Zona visualmente diferenciada
========================= */
.cnc-filters-section {
  background: #F1F6F3;
  border-radius: 20px;
  padding: 0 32px 32px;
  margin-bottom: 0;
}

/* Cabecera de la sección filtros */
.cnc-filters-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 0 0;
  margin-bottom: 0;
}

.cnc-filters-header-label {
  text-transform: uppercase;
  color: #91A3A3;
  font-size: 10px;
  font-weight: 300;
  letter-spacing: 0.08em;
}

.cnc-filters{
  border-top:1px solid #BCCCC4;
  margin-top: 16px;
}

.cnc-row{
  padding:22px 0 18px;
  border-bottom:1px solid #BCCCC4;
}

.cnc-row-label{
  text-transform:uppercase;
  margin-bottom:10px;
  color:#91A3A3;
  font-size:10px;
  font-weight:300;
  line-height:normal;
}

/* =========================
   FILTROS
========================= */

.cnc-wrap .cnc-row .cnc-row-options-inner{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0, 1fr)) max-content !important;
  column-gap:34px !important;
  row-gap:18px !important;
  align-items:start !important;
  width:100% !important;
}

/* Items */
.cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt{
  text-decoration:none !important;
  color:inherit !important;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size:14px !important;
  font-style:normal !important;
  font-weight:300 !important;
  line-height:1.2 !important;
  min-width:0 !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  justify-self:start !important;
  width:fit-content !important;

  border-radius:100px !important;
  background:transparent !important;
  box-sizing:border-box !important;

  transition:background .2s ease, color .2s ease !important;
}

/* Activo */
.cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt.is-active{
  background:#57B6B2 !important;
  color:#FFF !important;
  text-decoration:none !important;
  padding:6px 14px !important;
}

/* "Todos" en última columna siempre */
.cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt.cnc-all{
  grid-column:6 / 7 !important;
  justify-self:end !important;
  text-align:center !important;
  white-space:nowrap !important;
}

/* Si "Todos" es el activo, que siga alineado a la derecha */
.cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt.cnc-all.is-active{
  justify-self:end !important;
}

/* ENTORNO: 7 opciones + Todos */
.cnc-wrap .cnc-row.cnc-tax-cnc_entorno .cnc-row-options-inner{
  display:grid !important;
  grid-template-columns:repeat(5, minmax(0, 1fr)) max-content !important;
  column-gap:34px !important;
  row-gap:18px !important;
  align-items:start !important;
  width:100% !important;
}

.cnc-wrap .cnc-row.cnc-tax-cnc_entorno .cnc-row-options-inner .cnc-opt.cnc-all{
  grid-column:6/7 !important;
  justify-self:end !important;
  text-align:center !important;
  white-space:nowrap !important;
}

  .cnc-wrap .cnc-row.cnc-tax-cnc_localizacion .cnc-row-options-inner{
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
    column-gap:20px !important;
    row-gap:18px !important;
  }

/* AÑO: 11 años + Todos */
.cnc-wrap .cnc-row.cnc-tax-cnc_anio .cnc-row-options-inner{
  display:grid !important;
  grid-template-columns:repeat(11, minmax(0, 1fr)) max-content !important;
  column-gap:34px !important;
  row-gap:18px !important;
  align-items:start !important;
  width:100% !important;
}

.cnc-wrap .cnc-row.cnc-tax-cnc_anio .cnc-row-options-inner .cnc-opt.cnc-all{
  grid-column:12 / 13 !important;
  justify-self:end !important;
  text-align:center !important;
  white-space:nowrap !important;
}

/* Responsive */
@media (max-width:1100px){
  .cnc-wrap .cnc-row .cnc-row-options-inner{
    grid-template-columns:repeat(3, minmax(0, 1fr)) max-content !important;
  }

  .cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt.cnc-all{
    grid-column:4 / 5 !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_entorno .cnc-row-options-inner{
    grid-template-columns:repeat(3, minmax(0, 1fr)) max-content !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_entorno .cnc-row-options-inner .cnc-opt.cnc-all{
    grid-column:4 / 5 !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_anio .cnc-row-options-inner{
    grid-template-columns:repeat(5, minmax(0, 1fr)) max-content !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_anio .cnc-row-options-inner .cnc-opt.cnc-all{
    grid-column:6/7 !important;
  }
}

@media (max-width:820px){

  .cnc-wrap .cnc-row .cnc-row-options-inner{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    column-gap:20px !important;
    row-gap:18px !important;
  }

  .cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt{
    width:100% !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
    word-break:normal !important;
    hyphens:none !important;
  }

  .cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt.cnc-all{
    grid-column:2/3 !important;
    justify-self:end !important;
    white-space:nowrap !important;
    width:auto !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_entorno .cnc-row-options-inner{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    column-gap:20px !important;
    row-gap:18px !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_entorno .cnc-row-options-inner .cnc-opt.cnc-all{
    grid-column:3/4 !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_localizacion .cnc-row-options-inner{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    column-gap:20px !important;
    row-gap:18px !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_localizacion .cnc-row-options-inner .cnc-opt.cnc-all{
    grid-column:3/4 !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_anio .cnc-row-options-inner{
    grid-template-columns:repeat(5, minmax(0, 1fr)) max-content !important;
    column-gap:20px !important;
    row-gap:18px !important;
  }

  .cnc-wrap .cnc-row.cnc-tax-cnc_anio .cnc-row-options-inner .cnc-opt.cnc-all{
    grid-column:6/7 !important;
  }
}

/* =========================
   RESULTADOS
========================= */
.cnc-results{
  padding-top:80px;
}

.cnc-table{
  border-top:1px solid #000;
}

.cnc-tr{
  display:grid;
  grid-template-columns:120px 2.9fr 1.6fr 1.4fr 130px;
  gap:56px;
  padding:0;
  border-bottom:1px solid #000;
  align-items:baseline;
}

.cnc-tr .cnc-td {
  padding-top: 25px !important;
  padding-bottom: 25px !important;
}

.cnc-code{
  color:#000;
  font-family:Inter;
  font-size:10px;
  font-weight:300;
  line-height:normal;
}

.cnc-title{
  color:#000;
  font-family:Inter;
  font-size:16px;
  font-weight:300;
  line-height:normal;
}

.cnc-title-link{
  color:inherit;
  text-decoration:none;
}

.cnc-title-link:hover{
  text-decoration:underline;
  text-underline-offset:7px;
  text-decoration-thickness:2px;
}

.cnc-cat,
.cnc-cat em{
  color:#000;
  font-family:Lora;
  font-size:14px;
  font-style:italic;
  font-weight:400;
  line-height:normal;
}

.cnc-loc,
.cnc-loc em{
  color:#000;
  font-family:Lora;
  font-size:14px;
  font-style:italic;
  font-weight:400;
  line-height:normal;
}

.cnc-entorno{
  color:#000;
  font-family:Inter;
  font-size:14px;
  font-weight:400;
  line-height:normal;
}

.cnc-year{
  color:#000;
  font-family:Lora;
  font-size:14px;
  font-style:italic;
  font-weight:400;
  line-height:normal;
}

.cnc-empty{
  padding:22px 0;
  opacity:.7;
}

/* =========================
   ACORDEÓN — desktop y móvil
========================= */

/* El label se vuelve clicable visualmente */
.cnc-row-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  margin-bottom: 0;
  padding-bottom: 0;
  user-select: none;
}

.cnc-row-toggle {
  font-size: 20px;
  font-weight: 300;
  line-height: 1;
  color: #91A3A3;
  transition: transform 0.2s ease;
}

/* Opciones ocultas por defecto */
.cnc-is-mobile .cnc-row .cnc-row-options {
  display: none;
  padding-top: 14px;
}

/* Cuando el acordeón está abierto */
.cnc-is-mobile .cnc-row.cnc-open .cnc-row-options {
  display: block;
}

/* En móvil menos padding lateral */
@media (max-width: 820px) {
  .cnc-filters-toggle {
    display: none;
  }

  .cnc-filters-section {
    padding: 0 16px 24px;
    border-radius: 4px;
  }

  .cnc-filters-collapsed .cnc-filters-body {
    max-height: 2000px !important;
    opacity: 1 !important;
  }
}

/* =========================
   RESULTADOS MÓVIL
========================= */
@media (max-width: 820px) {
  .cnc-tr {
    grid-template-columns: 110px 1fr !important;
    grid-template-rows: auto auto;
    gap: 10px 16px !important;
    padding: 14px 0 !important;
  }
  .cnc-td.cnc-code {
    grid-column: 1 / 2;
    grid-row: 1;
    align-self: baseline;
    padding: 0 !important;
    margin: 0 !important;
  }
  .cnc-td.cnc-title {
    grid-column: 2 / 3;
    grid-row: 1;
    align-self: baseline;
    font-size: 18px !important;
    text-align: left !important;
    padding: 0 !important;
    margin-bottom: 10px !important;
  }
  .cnc-td.cnc-meta {
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 8px;
    grid-column: 1 / 3;
    grid-row: 2;
    margin: 0 !important;
    padding: 0 !important;
  }
  .cnc-meta .cnc-cat,
  .cnc-meta .cnc-entorno,
  .cnc-meta .cnc-loc,
  .cnc-meta .cnc-year {
    display: block !important;
    font-size: 12px !important;
    text-align: left !important;
    justify-self: unset !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .cnc-meta .cnc-entorno::before,
  .cnc-meta .cnc-loc::before,
  .cnc-meta .cnc-year::before {
    content: none;
  }

  .cnc-meta .cnc-cat {
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left !important;
  }

  .cnc-meta .cnc-entorno {
    display: none !important;
  }

  .cnc-meta .cnc-loc {
    flex: 0 0 auto;
    white-space: nowrap;
    text-align: right !important;
  }
  .cnc-meta .cnc-year {
    flex: 0 0 auto;
    white-space: nowrap;
    text-align: right !important;
  }

  .cnc-wrap .cnc-row .cnc-row-options-inner .cnc-opt.is-active {
    white-space: nowrap !important;
  }
}


/* =========================
   RESULTADOS DESKTOP - cnc-meta
========================= */
.cnc-td.cnc-meta {
  display: contents;
}

.cnc-meta .cnc-cat {
  color: #000;
  font-family: Lora;
  font-size: 14px;
  font-style: italic;
  font-weight: 400;
  line-height: normal;
}

.cnc-meta .cnc-entorno {
  color: #000;
  font-family: Inter;
  font-size: 14px;
  font-weight: 400;
  line-height: normal;
}

.cnc-meta .cnc-loc,
.cnc-meta .cnc-loc em {
  color: #000;
  font-family: Lora;
  font-size: 14px;
  font-style: italic;
  font-weight: 400;
  line-height: normal;
}

.cnc-meta .cnc-year {
  color: #000;
  font-family: Lora;
  font-size: 14px;
  font-style: italic;
  font-weight: 400;
  line-height: normal;
  text-align: left;
  justify-self: end;
}

/* ── Imagen destacada al hover ── */
.cnc-tr {
  position: relative;
}

.cnc-hover-img {
  display: none;
}

/* Fondo dinámico en el wrap */
.cnc-wrap {
  position: relative;
}

.cnc-wrap::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: var(--bg-hover);
  background-size: 30%;
  background-repeat: no-repeat;
  background-position: center center;
  opacity: 0;
  transition: opacity .4s ease;
  z-index: 0;
  pointer-events: none;
}

.cnc-wrap.cnc-has-hover::before {
  opacity: 1;
}

/* ── Botón limpiar filtros ── */
.cnc-filters {
  position: relative;
}

.cnc-btn-limpiar {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px !important;
  border: none;
  border-radius: 100px;
  background: #CCD65F;
  cursor: pointer;
  transition: opacity .2s ease;
  position: absolute;
  right: 0;
  bottom: -30px;
  transform: translateY(50%);
  z-index: 1;
  margin-top: 15px!important;

  color: #FFF!important;
  font-family: Inter !important;
  font-size: 14px !important;
  font-style: normal!important;
  font-weight: 300!important;
  line-height: normal!important;
}

.cnc-btn-limpiar:hover {
  opacity: 0.8;
}

/* =========================
   SAFARI FIXES
========================= */
@media (min-width: 821px) {
  .cnc-wrap .cnc-row.cnc-tax-cnc_anio .cnc-row-options-inner {
    column-gap: 14px !important;
  }
}

@supports (-webkit-touch-callout: none) {

  @media (min-width: 821px) {

    .cnc-tr {
      grid-template-columns: 120px 2.9fr 3.2fr !important;
      align-items: start !important;
    }

    .cnc-td.cnc-meta {
      display: flex !important;
      flex-direction: row !important;
      gap: 40px !important;
      grid-column: 3 !important;
      padding-top: 25px !important;
      padding-bottom: 25px !important;
      align-items: baseline !important;
    }

    .cnc-meta .cnc-cat  { flex: 1.6 1 0; min-width: 0; }
    .cnc-meta .cnc-loc  { flex: 1.4 1 0; min-width: 0; }
    .cnc-meta .cnc-year {
      flex: 0 0 auto;
      text-align: right;
      white-space: nowrap;
    }
  }
}