/* ============================================================
   ETS JAYIM — ESTILOS DEL CALENDARIO LITURGICO
   Version 1.0 · 21 de octubre de 2026

   Esta hoja se carga SOLO en la pagina del calendario. Todo lo
   demas del portal sigue en css/ets-jayim.css.

   Los colores de base no se repiten aqui: se toman del sistema
   del portal. Si cambia el azul del portal, cambia tambien aqui.
   ============================================================ */

.ejcal{
  /* Heredados del sistema del portal */
  --ej-dark:  var(--azul-profundo);
  --ej-blue:  var(--azul-institucional);
  --ej-gold:  var(--dorado);          /* filetes y fondos */
  --ej-gold-txt: var(--dorado-texto); /* dorado para TEXTO sobre fondo claro */
  --ej-white: var(--papel);
  --ej-cream: var(--crema);
  --ej-text:  var(--tinta);
  --ej-text2: var(--tinta-media);
  --ej-text3: var(--tinta-suave);
  --ej-line:  rgba(39,48,92,.09);

  /* Propios del calendario: distinguen los tipos de dia */
  --ejcal-nac:#3a6b8a;--ejcal-nac-bg:#e8f0f4;
  --ejcal-ayuno:#8a5a4a;--ejcal-ayuno-bg:#f3e9e4;
  --ejcal-menor:#a8854a;
  --ejcal-dorado-claro:#e0c389;--ejcal-dorado-tenue:#f0e4cb;
  --ejcal-sombra:0 1px 2px rgba(29,36,72,.06),0 8px 28px rgba(29,36,72,.08);

  font-family:var(--interfaz);
  color:var(--ej-text);-webkit-font-smoothing:antialiased;
}
.ejcal *{box-sizing:border-box;}
.ejcal a{text-decoration:none;color:inherit;}
.ejcal-w{width:min(1072px,calc(100% - 40px));margin:0 auto;}

/* ── BREADCRUMB ── */
.ejcal-bc{
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  background:var(--ej-white);border:1px solid var(--ej-line);
  border-radius:11px;padding:11px 16px;margin-bottom:16px;
  box-shadow:0 1px 2px rgba(29,36,72,.04);
}
.ejcal-bc a,.ejcal-bc span{
  font-family:'Assistant',sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ej-text3);
}
.ejcal-bc a:hover{color:var(--ej-gold-txt);}
.ejcal-bc .act{color:var(--ej-dark);}

/* ── CABECERA ── */
.ejcal-cab{
  position:relative;overflow:hidden;border-radius:14px;
  padding:34px 30px 28px;margin-bottom:16px;
  background:radial-gradient(circle at 14% 18%,rgba(197,160,89,.18),transparent 40%),
             var(--azul-profundo, #27305C);
  border:1px solid rgba(197,160,89,.35);
  box-shadow:var(--ejcal-sombra);
}
.ejcal-cab::before{
  content:"לוּחַ";position:absolute;inset:0;
  display:flex;align-items:center;justify-content:flex-end;
  padding-right:28px;font-family:'Frank Ruhl Libre',serif;
  font-weight:600;font-size:clamp(4rem,12vw,9rem);
  color:rgba(197,160,89,.06);direction:rtl;
  pointer-events:none;white-space:nowrap;
}
.ejcal-cab-in{position:relative;z-index:1;}
.ejcal-kicker{
  display:inline-block;font-family:'Assistant',sans-serif;
  font-size:10px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(197,160,89,.92);
  border:1px solid rgba(197,160,89,.3);background:rgba(255,255,255,.05);
  padding:6px 13px;border-radius:999px;margin-bottom:14px;
}
.ejcal-cab h1{
  font-family:'Frank Ruhl Libre',serif;color:#fff;font-weight:600;
  font-size:clamp(1.9rem,4.2vw,3.2rem);line-height:1.05;margin:0;
}
.ejcal-cab-he{
  display:block;margin-top:10px;
  font-family:'Frank Ruhl Libre',serif;color:var(--ej-gold);
  font-size:clamp(1.05rem,2.4vw,1.5rem);font-style:italic;
}
.ejcal-line{width:64px;height:2px;background:var(--ej-gold);margin-top:18px;}
.ejcal-ciclo{
  margin-top:18px;display:flex;flex-wrap:wrap;gap:10px 22px;
  align-items:center;font-size:12.5px;color:#bcc8d8;letter-spacing:.02em;
}
.ejcal-ciclo b{color:var(--ejcal-dorado-claro);font-weight:600;}
.ejcal-metdots{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px;}
.ejcal-metdot{
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-size:10px;font-weight:600;color:#9fb0c4;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);cursor:default;
}
.ejcal-metdot.leap{color:var(--ejcal-dorado-claro);border-color:rgba(197,160,89,.5);}
.ejcal-metdot.now{
  background:var(--ej-gold);color:var(--ej-dark);
  border-color:var(--ej-gold);
  box-shadow:0 0 0 3px rgba(197,160,89,.25);font-weight:600;
}

/* ── BANNERS SHABAT / MOED ── */
.ejcal-shab-banner{
  margin-bottom:12px;background:var(--ej-white);
  border:1px solid var(--ej-line);border-left:4px solid var(--ej-gold);
  border-radius:11px;padding:14px 18px;
  box-shadow:var(--ejcal-sombra);
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 26px;
}
.ejcal-shab-banner .tag{
  font-family:'Frank Ruhl Libre',serif;color:var(--ej-dark);
  font-size:16px;font-weight:600;
}
.ejcal-shab-banner .it{
  display:flex;align-items:center;gap:7px;
  font-size:13.5px;color:var(--ej-text2);
}
.ejcal-shab-banner .it b{color:var(--ej-dark);font-weight:600;}
.ejcal-moed-banner{
  border-color:var(--ejcal-dorado-claro);
  background:linear-gradient(180deg,#fffdf8,#fdf6e8);
  cursor:pointer;transition:.2s;
}
.ejcal-moed-banner:hover{
  box-shadow:0 6px 20px rgba(197,160,89,.28);
  transform:translateY(-1px);
}
.ejcal-moed-banner .go{
  margin-left:auto;font-size:12.5px;
  color:var(--ej-gold-txt);font-weight:600;white-space:nowrap;
}

/* ── CONTROLES ── */
.ejcal-controls{
  margin:16px 0 10px;display:flex;
  align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;
}
.ejcal-nav{display:flex;align-items:center;gap:8px;}
.ejcal-nav button,.ejcal-gear{
  font-family:'Assistant',sans-serif;font-weight:600;font-size:13px;
  background:var(--ej-white);color:var(--ej-dark);
  border:1px solid var(--ej-line);border-radius:9px;
  padding:9px 14px;cursor:pointer;transition:.18s;
}
.ejcal-nav button:hover,.ejcal-gear:hover{
  background:var(--ej-dark);color:var(--ej-white);
  border-color:var(--ej-dark);
}
.ejcal-monthlabel{
  font-family:'Frank Ruhl Libre',serif;
  font-size:clamp(18px,2.6vw,24px);color:var(--ej-dark);
  font-weight:600;min-width:230px;text-align:center;
}
.ejcal-monthlabel small{
  display:block;font-family:'Frank Ruhl Libre',serif;
  font-style:italic;font-size:14px;color:var(--ej-gold-txt);
  letter-spacing:.03em;
}

/* ── AJUSTES ── */
.ejcal-settings{
  display:none;background:var(--ej-white);
  border:1px solid var(--ej-line);border-radius:12px;
  padding:18px 20px;margin-bottom:14px;
  box-shadow:var(--ejcal-sombra);
}
.ejcal-settings.open{display:block;}
.ejcal-settings h2,
.ejcal-settings h3{
  font-family:'Frank Ruhl Libre',serif;color:var(--ej-dark);
  margin:0 0 4px;font-size:17px;
}
.ejcal-settings p.note{font-size:12px;color:var(--ej-text2);margin:0 0 14px;}
.ejcal-grid-set{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px 18px;}
.ejcal-field label{
  display:block;font-size:11px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;
  color:var(--ej-text2);margin-bottom:5px;
}
.ejcal-field input,.ejcal-field select{
  width:100%;padding:8px 10px;
  border:1px solid var(--ej-line);border-radius:8px;
  font-family:'Assistant';font-size:13px;
  color:var(--ej-text);background:var(--ej-cream);
}
.ejcal-field .hint{font-size:11px;color:var(--ej-text2);margin-top:4px;font-style:italic;}
.ejcal-radline{display:flex;gap:16px;align-items:center;margin-top:4px;}
.ejcal-radline label{
  display:flex;align-items:center;gap:6px;font-size:13px;
  font-weight:500;text-transform:none;letter-spacing:0;
  color:var(--ej-text);cursor:pointer;
}
.ejcal-apply{
  margin-top:16px;background:var(--ej-gold);color:var(--ej-dark);
  border:none;border-radius:9px;padding:10px 22px;
  font-weight:600;font-size:13px;cursor:pointer;font-family:'Assistant';
}
.ejcal-apply:hover{filter:brightness(1.08);}

/* ── GRILLA DEL CALENDARIO ── */
.ejcal-cal{
  background:var(--ej-white);border:1px solid var(--ej-line);
  border-radius:14px;overflow:hidden;box-shadow:var(--ejcal-sombra);
}
.ejcal-dow{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));
  background:var(--ej-dark);
}
.ejcal-dow div{
  padding:11px 6px;text-align:center;
  color:var(--ejcal-dorado-claro);
  font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
}
.ejcal-dow div:last-child{
  color:var(--ej-white);background:rgba(197,160,89,.14);
}
.ejcal-weeks{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.ejcal-cell{
  min-height:104px;min-width:0;
  border-right:1px solid var(--ej-line);
  border-bottom:1px solid var(--ej-line);
  padding:7px 7px 6px;position:relative;
  display:flex;flex-direction:column;gap:3px;
  cursor:pointer;transition:background .15s;background:var(--ej-white);
}
.ejcal-cell:nth-child(7n){border-right:none;}
.ejcal-cell.sat{background:linear-gradient(180deg,#fdfaf2,#faf4e6);}
.ejcal-cell.out{background:var(--ej-cream);opacity:.55;}
.ejcal-cell:hover{background:var(--ejcal-dorado-tenue);}
.ejcal-cell.sel{outline:2px solid var(--ej-gold);outline-offset:-2px;z-index:2;}
.ejcal-cell.today .ejcal-gnum{background:var(--ej-dark);color:var(--ej-white);}
.ejcal-cell.today.sat .ejcal-gnum{background:var(--ej-gold);color:var(--ej-dark);}
.ejcal-daterow{display:flex;justify-content:space-between;align-items:flex-start;}
.ejcal-gnum{
  font-family:'Assistant';font-weight:600;font-size:14px;color:var(--ej-text);
  width:25px;height:25px;display:grid;place-items:center;border-radius:50%;
}
.ejcal-hdate{
  font-family:'Frank Ruhl Libre',serif;font-size:12.5px;
  color:var(--ej-gold-txt);font-weight:600;text-align:right;
  line-height:1.1;padding-top:3px;
}
.ejcal-hdate .hd-day{font-size:14px;}
.ejcal-chips{display:flex;flex-direction:column;gap:2px;margin-top:1px;}
.ejcal-chip{
  font-size:10px;font-weight:600;line-height:1.25;
  padding:1.5px 5px;border-radius:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;
}
.ejcal-chip.moed{background:var(--ej-gold);color:var(--ej-dark);}
.ejcal-chip.menor{
  background:var(--ejcal-dorado-tenue);color:#7a5e25;
  border:1px solid var(--ejcal-dorado-claro);
}
.ejcal-chip.nac{
  background:var(--ejcal-nac-bg);color:var(--ejcal-nac);
  border:1px solid #c2d6e0;
}
.ejcal-chip.ayuno{
  background:var(--ejcal-ayuno-bg);color:var(--ejcal-ayuno);
  border:1px solid #e2cabd;
}
.ejcal-chip.rosh{background:#eef1f6;color:var(--ej-blue);border:1px solid #d8e0ec;}
.ejcal-chip.shab{
  background:transparent;color:var(--ej-text2);
  font-style:italic;font-family:'Frank Ruhl Libre';
  font-size:11.5px;padding-left:0;
}
.ejcal-chip.parsha{
  background:transparent;color:var(--ej-blue);
  font-weight:600;padding-left:0;font-size:10.5px;
}
.ejcal-times{margin-top:auto;display:flex;flex-direction:column;gap:1px;}
.ejcal-tline{
  font-size:10.5px;color:var(--ej-text2);
  display:flex;align-items:center;gap:4px;font-weight:500;
}
.ejcal-tline b{color:var(--ej-dark);font-weight:600;font-variant-numeric:tabular-nums;}
.ejcal-omerbadge{
  position:absolute;bottom:5px;right:6px;
  font-family:'Frank Ruhl Libre',serif;font-style:italic;
  font-size:11px;color:var(--ej-gold-txt);font-weight:600;
}

/* ── PANEL INFERIOR ── */
.ejcal-lower{
  display:grid;grid-template-columns:1.3fr 1fr;
  gap:16px;margin-top:16px;
}
.ejcal-panel{
  background:var(--ej-white);border:1px solid var(--ej-line);
  border-radius:12px;padding:18px 20px;
  box-shadow:var(--ejcal-sombra);
}
.ejcal-panel h2,
.ejcal-panel h3{
  font-family:'Frank Ruhl Libre',serif;color:var(--ej-dark);
  font-size:16px;margin:0 0 12px;
  border-bottom:1px solid var(--ej-line);padding-bottom:8px;
}
.ejcal-legend{
  display:grid;grid-template-columns:1fr 1fr;
  gap:8px 14px;font-size:12px;color:var(--ej-text2);
}
.ejcal-legend span{display:flex;align-items:center;gap:7px;}
.ejcal-sw{width:14px;height:14px;border-radius:4px;flex:none;}
.ejcal-dt-greg{font-family:'Frank Ruhl Libre',serif;font-size:17px;color:var(--ej-dark);}
.ejcal-dt-heb{
  font-family:'Frank Ruhl Libre',serif;
  font-style:italic;font-size:22px;color:var(--ej-gold-txt);margin:3px 0 2px;
}
.ejcal-dt-heb-tr{
  font-family:'Frank Ruhl Libre',serif;font-style:italic;
  color:var(--ej-text2);font-size:14px;
}
.ejcal-dtlist{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:7px;}
.ejcal-dtlist li{font-size:13px;display:flex;align-items:center;gap:8px;}
.ejcal-dtlist li .dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ej-gold);}
.ejcal-empty{color:var(--ej-text2);font-style:italic;font-size:13px;}

/* ── DISCLAIMER ── */
.ejcal-disclaimer{
  margin-top:16px;background:var(--ej-cream);
  border:1px dashed rgba(197,160,89,.4);border-radius:11px;
  padding:15px 18px;font-size:12px;color:var(--ej-text2);line-height:1.6;
}
.ejcal-disclaimer b{color:var(--ej-blue);}
.ejcal-disclaimer .ttl{
  font-family:'Frank Ruhl Libre',serif;color:var(--ej-dark);
  font-size:13.5px;font-weight:600;display:block;margin-bottom:5px;
}

/* ── PIE ── */
.ejcal-foot{
  margin-top:22px;text-align:center;font-size:11px;
  color:var(--ej-text2);line-height:1.6;
  border-top:1px solid var(--ej-line);padding-top:16px;
}

/* ── LOADING ── */
.ejcal-loading{
  /* Ocupa el alto de la grilla ya dibujada (6 semanas): asi el
     calendario no empuja la pagina hacia abajo al aparecer. */
  grid-column:1/-1;box-sizing:border-box;min-height:630px;
  display:flex;align-items:center;justify-content:center;
  text-align:center;padding:60px 20px;
  color:var(--ej-text2);font-style:italic;
  font-family:'Frank Ruhl Libre',serif;font-size:18px;
}

/* ── RESPONSIVE ── */
@media(max-width:760px){
  .ejcal-lower{grid-template-columns:1fr;}
  .ejcal-cell{min-height:84px;}
  .ejcal-loading{min-height:510px;}
}
@media(max-width:640px){
  .ejcal-cal{overflow:hidden;}
  .ejcal-dow div{font-size:8px;padding:6px 1px;letter-spacing:0;}
  .ejcal-cell{min-height:58px;padding:4px 3px;gap:1px;min-width:0;}
  .ejcal-loading{min-height:354px;}
  .ejcal-gnum{width:18px;height:18px;font-size:11px;}
  .ejcal-hdate{font-size:8px;padding-top:0;line-height:1.05;}
  .ejcal-hdate .hd-day{font-size:9px;}
  .ejcal-chips{gap:1px;margin-top:0;}
  .ejcal-chip{font-size:7.5px;padding:1px 2px;white-space:normal;word-break:break-word;line-height:1.12;}
  .ejcal-chip.shab,.ejcal-chip.parsha{font-size:7.5px;}
  .ejcal-times{display:none;}
  .ejcal-omerbadge{font-size:7.5px;bottom:2px;right:3px;}
  .ejcal-controls{flex-direction:column;align-items:stretch;}
  .ejcal-nav{justify-content:center;}
  .ejcal-monthlabel{min-width:0;width:100%;}
  .ejcal-moed-banner .go{margin-left:0;}
}
@media(max-width:400px){
  .ejcal-cell{min-height:52px;}
  .ejcal-loading{min-height:318px;}
  .ejcal-chip{font-size:7px;}
  .ejcal-gnum{width:16px;height:16px;font-size:10px;}
}

/* ===============================================================
   ARMONIA CON EL RESTO DEL PORTAL · 22 de octubre de 2026

   El Luach tenia su propio lenguaje visual: degradado azul, esquinas
   muy redondeadas (9 a 14 px), sombras y una miga de pan propia que
   repetia la linea de orientacion del portal. Aqui se alinea con el
   resto: esquinas de 4 px, sin sombras, sin degradado. La grilla, el
   motor y los calculos no se tocan.
   =============================================================== */

/* La miga propia: el portal ya dice "Calendario > Calendario liturgico" */
.ejcal-bc { display: none; }

/* La cabecera azul: color pleno, sin degradado ni sombra */
.ejcal-cab {
  background: var(--azul-profundo);
  border-radius: 4px;
  box-shadow: none;
}

/* Las esquinas y sombras del mismo sistema que el portal */
.ejcal-shab-banner,
.ejcal-moed-banner,
.ejcal-nav button,
.ejcal-gear,
.ejcal-settings,
.ejcal-apply,
.ejcal-cal,
.ejcal-panel,
.ejcal-disclaimer { border-radius: 4px; box-shadow: none; }

/* Los dias de otro mes estaban al 55 % de opacidad: la fecha hebrea
   quedaba en 2,1:1, ilegible. Se distinguen por el fondo y un tono
   mas suave, pero se siguen leyendo (5,9:1). */
.ejcal-cell.out { opacity: 1; background: #F4F1EA; }
.ejcal-cell.out,
.ejcal-cell.out .ejcal-hdate,
.ejcal-cell.out .ejcal-hdate .hd-day { color: var(--tinta-suave); }

/* ===============================================================
   SIN SALTOS AL CARGAR · 30 de octubre de 2026
   Los avisos de Shabat y del proximo moed, la linea del ciclo y el
   nombre del mes los escribe el motor un instante despues de que
   aparece la pagina. Estas alturas les guardan su lugar desde el
   comienzo, para que el calendario no se desplace hacia abajo
   cuando aparecen. Son las alturas medidas de cada bloque.
   =============================================================== */
#ejcal-shabbatBanner,
#ejcal-moedBanner{min-height:56px;}
.ejcal-ciclo:empty{min-height:84px;}
.ejcal-monthlabel:empty{min-height:60px;}
@media(max-width:760px){
  #ejcal-shabbatBanner,
  #ejcal-moedBanner{min-height:82px;}
  .ejcal-monthlabel:empty{min-height:51px;}
}
@media(max-width:640px){
  .ejcal-ciclo:empty{min-height:141px;}
}
@media(max-width:500px){
  #ejcal-shabbatBanner,
  #ejcal-moedBanner{min-height:109px;}
  .ejcal-ciclo:empty{min-height:188px;}
}
