/*
 * Club BPS — estilos del addon SPPB cbps_calendario. Todo cuelga de .cbps-cal.
 * 12 meses en grilla: 4 columnas en escritorio, 3 en notebooks, 2 en tablet y 1 en mobile.
 * Cierre y horario especial no dependen sólo del color: el cierre es un relleno rojo sólido (número en
 * blanco) y el horario especial un relleno suave con borde (número en violeta), así se distinguen
 * también en escala de grises. "Hoy" es un anillo exterior propio (no un relleno), para que se vea
 * igual sobre un día común, uno de cierre o uno de horario especial. Cada celda lleva su aria-label.
 * Usa los tokens del sitio (--card-*, --radius-*, --ease-out…, BLOQUE 1 de custom-club) con
 * fallback, para que el addon se vea bien aunque se cargue sin el CSS global.
 */
.cbps-cal,:where(.cbps-cal) *,:where(.cbps-cal) *::before,:where(.cbps-cal) *::after{box-sizing:border-box}
.cbps-cal{--cal-azul:#03255B;--cal-rojo:#B00D1E;--cal-rojo-bg:#FBE3E5;--cal-violeta:#5A3590;--cal-violeta-bg:#F1EAFA;
  max-width:1280px;margin:0 auto;font-family:'Roboto',system-ui,-apple-system,sans-serif;color:#1A1D24}
.cbps-cal p{margin:0 0 12px}
.cbps-cal__explicacion{font-size:17px;line-height:1.6;margin:0 0 20px;padding:16px 20px;border-radius:var(--card-radius,12px);background:#F2F6FB;color:#1A1D24;text-wrap:pretty}
.cbps-cal__explicacion a{color:var(--cal-azul);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
.cbps-cal__explicacion a:hover{color:#1957A4}
.cbps-cal__error,.cbps-cal__cargando{color:#5f6470}

.cbps-cal__barra{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;margin:8px 0 18px}
.cbps-cal__anio{display:inline-flex;align-items:center;gap:10px;font-size:24px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--cal-azul)}
.cbps-cal__nav{width:44px;height:44px;border-radius:50%;border:1.5px solid #DDE3EC;background:#fff;color:var(--cal-azul);font-size:22px;line-height:1;cursor:pointer;transition:border-color var(--dur-quick,.16s) ease,background-color var(--dur-quick,.16s) ease,transform var(--dur-quick,.16s) ease}
.cbps-cal__nav:hover:not([disabled]){border-color:var(--cal-azul);background:#F2F6FB}
.cbps-cal__nav:active:not([disabled]){transform:scale(var(--press,.98))}
.cbps-cal__nav[disabled]{opacity:.35;cursor:default}
.cbps-cal__nav:focus-visible{outline:3px solid #1957A4;outline-offset:2px}
.cbps-cal__leyenda{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:0;padding:0;font-size:14px;color:#444A55}
.cbps-cal__leyenda li{display:inline-flex;align-items:center;gap:7px}
.cbps-cal__chip{display:inline-block;width:24px;height:24px;border-radius:6px;flex:none}
.cbps-cal__chip.is-cerrado{background:var(--cal-rojo);color:#fff}
.cbps-cal__chip.is-especial{background:var(--cal-violeta-bg);color:var(--cal-violeta);border:1.5px solid var(--cal-violeta)}
.cbps-cal__chip.is-hoy{background:#fff;outline:2px solid var(--cal-azul);outline-offset:1px;margin:3px}

.cbps-cal__meses{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.cbps-cal__mes{width:100%;border-collapse:separate;border-spacing:3px;background:#fff;border:0;border-radius:var(--card-radius,12px);padding:8px;box-shadow:var(--card-edge,0 0 0 1px rgba(3,37,91,.07)),var(--card-rest,0 2px 8px rgba(3,37,91,.06));table-layout:fixed;font-variant-numeric:tabular-nums}
.cbps-cal__mes caption{caption-side:top;text-align:left;font-weight:700;font-size:15px;color:var(--cal-azul);padding:2px 4px 8px}
.cbps-cal__mes th{font-size:12px;font-weight:600;color:#6b7280;text-align:center;padding:2px 0}
.cbps-cal__mes td{text-align:center;padding:0;height:30px;font-size:13px;position:relative;border-radius:6px}
.cbps-cal__dia.is-cerrado{background:var(--cal-rojo);color:#fff;font-weight:700}
.cbps-cal__dia.is-especial{background:var(--cal-violeta-bg);color:var(--cal-violeta);font-weight:700;box-shadow:inset 0 0 0 1.5px var(--cal-violeta)}
/* Hoy: anillo exterior azul (outline), independiente del relleno de la celda. */
.cbps-cal__dia.is-hoy{outline:2px solid var(--cal-azul);outline-offset:1px;z-index:1;font-weight:800}

.cbps-cal__titulo-lista{font-size:var(--fs-section,26px);font-weight:800;letter-spacing:-.015em;color:var(--cal-azul);margin:44px 0 16px}
.cbps-cal__titulo-lista::after{content:'';display:block;width:var(--rule-short-w,48px);height:3px;margin-top:12px;border-radius:2px;background:var(--tricolor,var(--cal-azul))}
.cbps-cal__lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
/* Fecha de la lista: sin franja lateral de 4 px. El tipo ya se dice en texto
   ("Club cerrado" / "Horario especial") y con un marcador del mismo color y
   forma que el chip de la leyenda, así lista, grilla y leyenda hablan igual. */
.cbps-cal__item{position:relative;display:grid;grid-template-columns:190px 1fr;gap:2px 12px;padding:11px 14px 11px 36px;border-radius:var(--radius-lg,8px) var(--radius-lg,8px) var(--radius-lg,8px) 2px;background:#FAFBFD;box-shadow:var(--card-edge,0 0 0 1px rgba(3,37,91,.07))}
.cbps-cal__item::before{content:'';position:absolute;left:14px;top:15px;width:12px;height:12px;border-radius:3px}
.cbps-cal__item.is-cerrado::before{background:var(--cal-rojo)}
.cbps-cal__item.is-especial::before{background:var(--cal-violeta-bg);box-shadow:inset 0 0 0 1.5px var(--cal-violeta)}
.cbps-cal__fecha{font-weight:700;color:var(--cal-azul)}
.cbps-cal__nombre{color:#1A1D24}
.cbps-cal__obs{color:#6b7280;font-size:13px}
.cbps-cal__tipo{grid-column:2;font-size:13px;color:#444A55}
.cbps-cal__item.is-cerrado .cbps-cal__tipo{color:var(--cal-rojo);font-weight:700}
.cbps-cal__tipo a{color:var(--cal-violeta);font-weight:700}

@media(max-width:1199.98px){.cbps-cal__meses{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:991.98px){.cbps-cal__meses{grid-template-columns:repeat(2,minmax(0,1fr))}.cbps-cal__lista{grid-template-columns:1fr}}
@media(max-width:575.98px){
  .cbps-cal{padding:0 12px}
  .cbps-cal__meses{grid-template-columns:1fr}
  .cbps-cal__item{grid-template-columns:1fr}
  .cbps-cal__tipo{grid-column:1}
  .cbps-cal__mes td{height:36px;font-size:14px}
}
