/*
 * xiy · Calendario escolar del Preescolar (plugin independiente)
 * Todo el CSS vive bajo #xiy-cal para no tocar el header, el footer ni el resto del sitio.
 * Colores de la web (amarillo #F7D039 y azul #1F386D) y tipografía del sitio: lee las variables
 * que VamTam genera desde el kit de Elementor; si no existen, usa Catamaran (la de Skole).
 * --u escala con el ancho de la ventana (16 a 22 px). Contenido limitado a 1280 px.
 */

/* ===== Integración con el tema ===== */
body.xiy-cal-page #sub-header,
body.xiy-cal-page .page-header{display:none}
body.xiy-cal-page #main,
body.xiy-cal-page #main-content{padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0}
/* #main sube 40 px bajo el header para que se vea su remate decorativo */
body.xiy-cal-page #main{margin-top:-40px}
body.xiy-cal-page .elementor-location-header,
body.xiy-cal-page [data-elementor-type="header"]{position:relative;z-index:20}

/* ===== Base ===== */
#xiy-cal{
  --u:clamp(16px,0.5vw + 11px,22px);
  --bg:#FBF8F2;--tint:#E9EFF8;--white:#FFFFFF;
  --navy:#1F386D;--ink:#1F386D;--ink-soft:#4A5E82;
  --on-navy:#F8F5EF;--on-navy-soft:#B9C6DE;
  --orange:#F7D039;--line:#D7DEEA;
  --display:var(--vamtam-h2-font-family,'Catamaran',sans-serif);
  --sans:var(--vamtam-primary-font-font-family,'Catamaran',sans-serif);
  color-scheme:light;box-sizing:border-box;position:relative;width:100%;margin:0;overflow-x:clip;
  background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:calc(var(--u)*1.2);line-height:1.55;-webkit-font-smoothing:antialiased}
#xiy-cal *,#xiy-cal *::before,#xiy-cal *::after{box-sizing:inherit}
#xiy-cal h1,#xiy-cal h2,#xiy-cal h3{font-family:var(--display);margin:0;line-height:1.05;letter-spacing:-0.015em;color:inherit;text-transform:none;text-wrap:balance}
#xiy-cal h1{font-family:var(--vamtam-h1-font-family,var(--display));font-weight:var(--vamtam-h1-font-weight,900)}
#xiy-cal h2{font-weight:var(--vamtam-h2-font-weight,800)}
#xiy-cal h3{font-family:var(--vamtam-h3-font-family,var(--display));font-weight:var(--vamtam-h3-font-weight,800)}
#xiy-cal p{margin:0 0 1em}
#xiy-cal p,#xiy-cal dt,#xiy-cal dd,#xiy-cal li,#xiy-cal span{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit}
#xiy-cal a{color:inherit}
#xiy-cal button{font-family:var(--sans);text-transform:none;letter-spacing:normal;min-height:0}
#xiy-cal :focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:6px}
#xiy-cal .wrap{width:min(1280px,100% - clamp(32px,6vw,96px));margin-inline:auto}
/*
 * xiy · Calendario escolar del Preescolar
 * Usa los tokens, la tipografía del sitio y el contenedor de 1280 px de landing.css (#xiy-cal).
 */

/* ===== Encabezado y pestañas ===== */
#xiy-cal .cal-hero{padding:calc(clamp(calc(var(--u)*1.5),4vw,calc(var(--u)*3)) + 40px) 0 0;background:var(--bg)}
#xiy-cal .cal-kicker{font-size:calc(var(--u)*1);color:var(--ink-soft);margin:0 0 calc(var(--u)*.6)}
#xiy-cal .cal-hero h1{font-size:clamp(calc(var(--u)*2.1),2.6vw + calc(var(--u)*.8),calc(var(--u)*4));color:var(--navy);margin:0 0 calc(var(--u)*.6)}
#xiy-cal .cal-intro{font-size:calc(var(--u)*1.1);color:var(--ink-soft);max-width:52ch;margin:0 0 calc(var(--u)*1.75)}

#xiy-cal .cal-tabs{display:flex;gap:calc(var(--u)*.6);flex-wrap:wrap;position:relative;z-index:1;margin-bottom:calc(var(--u)*-1.5)}
#xiy-cal .cal-tab{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*1.1);line-height:1.2;color:var(--navy);background:var(--white);border:2px solid var(--navy);border-radius:999px;padding:calc(var(--u)*.85) calc(var(--u)*1.6);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s}
#xiy-cal .cal-tab:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--navy)}
#xiy-cal .cal-tab[aria-selected="true"]{background:var(--orange);border-color:var(--orange);box-shadow:4px 4px 0 var(--navy);transform:translate(-2px,-2px)}
#xiy-cal .cal-tab:focus-visible{outline:3px solid var(--navy);outline-offset:3px}

/* ===== Panel de cada sede ===== */
#xiy-cal .cal-panel{background:var(--tint);padding:calc(var(--u)*3.25) 0 clamp(calc(var(--u)*3),6vw,calc(var(--u)*5))}
#xiy-cal .cal-panel:focus{outline:none}
#xiy-cal.js .cal-panel[hidden]{display:none}

#xiy-cal .cal-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:calc(var(--u)*1.25);align-items:end;margin-bottom:calc(var(--u)*1.25)}
#xiy-cal .cal-head h2{font-size:clamp(calc(var(--u)*1.8),1.8vw + calc(var(--u)*.8),calc(var(--u)*2.8));color:var(--navy);margin:0 0 calc(var(--u)*.3)}
#xiy-cal .cal-head p{margin:0;color:var(--ink-soft)}

#xiy-cal .cal-next{background:var(--navy);color:var(--on-navy);border-radius:20px;padding:calc(var(--u)*.9) calc(var(--u)*1.2);min-width:min(100%,calc(var(--u)*20));max-width:calc(var(--u)*26)}
#xiy-cal .cal-next[hidden]{display:none}
#xiy-cal .cal-next p{margin:0}
#xiy-cal .cal-next-label{font-size:calc(var(--u)*.85);color:var(--on-navy-soft)}
#xiy-cal .cal-next-date{font-weight:700;color:var(--orange);font-size:calc(var(--u)*1.05)}
#xiy-cal .cal-next-txt{font-size:calc(var(--u)*1.05);line-height:1.35}

/* Filtros e imprimir */
#xiy-cal .cal-tools{display:flex;justify-content:space-between;align-items:center;gap:calc(var(--u)*.8);flex-wrap:wrap;margin-bottom:calc(var(--u)*.8)}
#xiy-cal .cal-filter{display:flex;gap:calc(var(--u)*.45);flex-wrap:wrap}
#xiy-cal .cal-chip,#xiy-cal .cal-print{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*.92);line-height:1.2;color:var(--navy);background:var(--white);border:2px solid var(--line);border-radius:999px;padding:calc(var(--u)*.45) calc(var(--u)*.9);cursor:pointer;transition:border-color .15s,background .15s}
#xiy-cal .cal-chip span{font-weight:600;opacity:.6;margin-left:.15em}
#xiy-cal .cal-chip:hover,#xiy-cal .cal-print:hover{border-color:var(--navy)}
#xiy-cal .cal-chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
#xiy-cal .cal-chip[aria-pressed="true"] span{opacity:.8}
#xiy-cal .cal-print{background:transparent;border-color:var(--navy)}
#xiy-cal .cal-chip:focus-visible,#xiy-cal .cal-print:focus-visible{outline:3px solid var(--navy);outline-offset:2px}

/* Barra de meses: desplazable en móvil */
#xiy-cal .cal-months{display:flex;gap:calc(var(--u)*.3);overflow-x:auto;scrollbar-width:none;padding:calc(var(--u)*.2) 0;margin:0 0 calc(var(--u)*1)}
#xiy-cal .cal-months::-webkit-scrollbar{display:none}
#xiy-cal .cal-months a{flex:none;text-decoration:none;font-weight:700;font-size:calc(var(--u)*.92);color:var(--navy);border-radius:999px;padding:calc(var(--u)*.35) calc(var(--u)*.8);border:2px solid transparent}
#xiy-cal .cal-months a:hover{border-color:var(--navy)}
#xiy-cal .cal-months a[aria-current="true"]{background:var(--orange)}
#xiy-cal .cal-months a.is-off{opacity:.35;pointer-events:none}

/* ===== Meses ===== */
#xiy-cal .cal-grid{display:grid;grid-template-columns:1fr;gap:calc(var(--u)*1);align-items:start}
@media (min-width:860px){#xiy-cal .cal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){#xiy-cal .cal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
#xiy-cal .cal-month{background:var(--white);border:2px solid var(--line);border-radius:24px;padding:calc(var(--u)*1.1) calc(var(--u)*1.2) calc(var(--u)*.6)}
#xiy-cal .cal-month[hidden]{display:none}
#xiy-cal .cal-month h3{font-size:calc(var(--u)*1.6);color:var(--navy);margin:0 0 calc(var(--u)*.5)}
#xiy-cal .cal-month h3 span{font-family:var(--sans);font-weight:600;font-size:.55em;color:var(--ink-soft);letter-spacing:0}
#xiy-cal .cal-month.is-past{opacity:.6}

#xiy-cal .cal-list{list-style:none;margin:0;padding:0}
#xiy-cal .cal-ev{display:grid;grid-template-columns:calc(var(--u)*4.4) minmax(0,1fr);gap:calc(var(--u)*.8);align-items:start;padding:calc(var(--u)*.7) 0;border-top:2px solid var(--line);margin:0}
#xiy-cal .cal-ev:first-child{border-top:0}
#xiy-cal .cal-ev[hidden]{display:none}
#xiy-cal .cal-date{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--tint);border-radius:14px;padding:calc(var(--u)*.4) calc(var(--u)*.2);min-height:calc(var(--u)*3.4)}
#xiy-cal .cal-date .dn{font-family:var(--vamtam-h3-font-family,var(--display));font-weight:var(--vamtam-h3-font-weight,800);font-size:calc(var(--u)*1.35);line-height:1.05;color:var(--navy);white-space:nowrap}
#xiy-cal .cal-date .dw{font-size:calc(var(--u)*.78);line-height:1.2;color:var(--ink-soft);white-space:nowrap}
#xiy-cal .cal-ev.t-libre .cal-date{background:var(--navy)}
#xiy-cal .cal-ev.t-libre .cal-date .dn{color:var(--orange)}
#xiy-cal .cal-ev.t-libre .cal-date .dw{color:var(--on-navy-soft)}
#xiy-cal .cal-txt{margin:0;font-weight:700;line-height:1.35;color:var(--navy)}
#xiy-cal .cal-nota{margin:calc(var(--u)*.15) 0 0;font-size:calc(var(--u)*.92);line-height:1.4;color:var(--ink-soft)}
#xiy-cal .cal-tag{display:inline-block;margin-top:calc(var(--u)*.35);font-size:calc(var(--u)*.78);font-weight:700;line-height:1.3;border-radius:999px;padding:calc(var(--u)*.12) calc(var(--u)*.6);color:var(--navy);background:var(--tint)}
#xiy-cal .t-libre .cal-tag,#xiy-cal .cal-chip.t-libre[aria-pressed="true"]{background:var(--navy);color:var(--on-navy)}
#xiy-cal .t-familias .cal-tag{background:var(--orange)}
#xiy-cal .t-academico .cal-tag{background:transparent;box-shadow:inset 0 0 0 2px var(--navy)}

/* Pasado, hoy y próximo */
#xiy-cal .cal-ev.is-past{opacity:.5}
#xiy-cal .cal-ev.is-next,#xiy-cal .cal-ev.is-today{position:relative}
#xiy-cal .cal-ev.is-next .cal-date,#xiy-cal .cal-ev.is-today .cal-date{box-shadow:0 0 0 3px var(--orange)}
#xiy-cal .cal-ev.is-next .cal-txt::after,#xiy-cal .cal-ev.is-today .cal-txt::after{content:"Next";display:inline-block;margin-left:.5em;font-size:.72em;font-weight:700;vertical-align:.12em;background:var(--orange);color:var(--navy);border-radius:999px;padding:.05em .55em}
#xiy-cal .cal-ev.is-today .cal-txt::after{content:"Today"}

#xiy-cal .cal-empty{background:var(--white);border-radius:20px;padding:calc(var(--u)*1.25);font-weight:700;color:var(--navy);margin:0}
#xiy-cal .cal-empty[hidden]{display:none}

#xiy-cal .cal-foot{background:var(--bg);padding:calc(var(--u)*2) 0}
#xiy-cal .cal-foot p{margin:0;color:var(--ink-soft);max-width:70ch;font-size:calc(var(--u)*.98)}

/* ===== Móvil ===== */
@media (max-width:700px){
#xiy-cal .cal-tabs{display:grid;grid-template-columns:1fr 1fr}
#xiy-cal .cal-tab{padding:calc(var(--u)*.75) calc(var(--u)*.6);font-size:calc(var(--u)*1)}
#xiy-cal .cal-top{grid-template-columns:1fr;align-items:start}
#xiy-cal .cal-next{max-width:none}
#xiy-cal .cal-print{display:none}
#xiy-cal .cal-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(clamp(32px,6vw,96px) / -2);padding:0 calc(clamp(32px,6vw,96px) / 2)}
#xiy-cal .cal-filter::-webkit-scrollbar{display:none}
#xiy-cal .cal-chip{flex:none}
#xiy-cal .cal-month{border-radius:20px;padding:calc(var(--u)*.9) calc(var(--u)*.9) calc(var(--u)*.4)}
#xiy-cal .cal-ev{grid-template-columns:calc(var(--u)*3.9) minmax(0,1fr);gap:calc(var(--u)*.65)}
}

/* ===== Impresión: solo la sede abierta, sin el header ni el footer del sitio ===== */
@media print{
	.elementor-location-header,.elementor-location-footer,#main-footer,.footer-wrapper,[data-elementor-type="header"],[data-elementor-type="footer"]{display:none!important}
	body.xiy-cal-page #main{margin-top:0!important}
	#xiy-cal .cal-tabs,#xiy-cal .cal-tools,#xiy-cal .cal-months,#xiy-cal .cal-next,#xiy-cal .cal-intro{display:none!important}
	#xiy-cal .cal-hero{padding-top:0}
	#xiy-cal .cal-panel{background:#fff;padding-top:12px}
	#xiy-cal .cal-grid{grid-template-columns:repeat(2,1fr)!important}
	#xiy-cal .cal-month{break-inside:avoid;opacity:1!important}
	#xiy-cal .cal-ev{opacity:1!important}
	#xiy-cal .cal-ev .cal-txt::after{content:none!important}
	#xiy-cal *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}


@media (max-width:700px){
#xiy-cal .cal-months{margin-left:calc(clamp(32px,6vw,96px) / -2);margin-right:calc(clamp(32px,6vw,96px) / -2);padding-left:calc(clamp(32px,6vw,96px) / 2);padding-right:calc(clamp(32px,6vw,96px) / 2)}
}

/* Meses pasados plegados */
#xiy-cal .cal-month.is-collapsed{padding-bottom:calc(var(--u)*1)}
#xiy-cal .cal-month.is-collapsed .cal-list{display:none}
#xiy-cal .cal-month.is-collapsed h3{margin-bottom:calc(var(--u)*.35)}
#xiy-cal .cal-more{font-family:var(--sans);font-weight:700;font-size:calc(var(--u)*.9);color:var(--navy);background:none;border:0;padding:0;margin:0 0 calc(var(--u)*.4);cursor:pointer;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:.2em;text-underline-offset:.15em}
#xiy-cal .cal-more:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
@media print{#xiy-cal .cal-more{display:none!important}#xiy-cal .cal-month.is-collapsed .cal-list{display:block!important}}

/* Pestañas con nombre y ubicación del campus */
#xiy-cal .cal-tab{display:inline-flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.1em}
#xiy-cal .cal-tab-place{font-weight:600;font-size:.78em;opacity:.75}
#xiy-cal .cal-contact{display:flex;flex-wrap:wrap;gap:.3em 1.2em;margin-top:calc(var(--u)*.4)!important;font-size:calc(var(--u)*.95)}
#xiy-cal .cal-contact a{color:var(--navy);font-weight:700;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:.18em;text-underline-offset:.15em}
#xiy-cal .cal-foot a{color:var(--navy);font-weight:700}
@media (max-width:700px){#xiy-cal .cal-tab{align-items:center;text-align:center}}

/* ===== Tipografía más liviana ===== */
#xiy-cal{font-size:calc(var(--u)*1.02);line-height:1.5}
#xiy-cal .cal-hero h1{font-size:clamp(calc(var(--u)*1.8),1.9vw + calc(var(--u)*.7),calc(var(--u)*3))}
#xiy-cal .cal-kicker{font-size:calc(var(--u)*.88)}
#xiy-cal .cal-intro{font-size:calc(var(--u)*.98);margin-bottom:calc(var(--u)*1.4)}
#xiy-cal .cal-tab{font-size:calc(var(--u)*.95);padding:calc(var(--u)*.65) calc(var(--u)*1.3)}
#xiy-cal .cal-head h2{font-size:clamp(calc(var(--u)*1.45),1.2vw + calc(var(--u)*.75),calc(var(--u)*2.1))}
#xiy-cal .cal-head p{font-size:calc(var(--u)*.95)}
#xiy-cal .cal-contact{font-size:calc(var(--u)*.88)}
#xiy-cal .cal-next{padding:calc(var(--u)*.75) calc(var(--u)*1)}
#xiy-cal .cal-next-label{font-size:calc(var(--u)*.78)}
#xiy-cal .cal-next-date,#xiy-cal .cal-next-txt{font-size:calc(var(--u)*.95)}
#xiy-cal .cal-chip,#xiy-cal .cal-print{font-size:calc(var(--u)*.82);padding:calc(var(--u)*.38) calc(var(--u)*.8)}
#xiy-cal .cal-months a{font-size:calc(var(--u)*.82);font-weight:600;padding:calc(var(--u)*.3) calc(var(--u)*.7)}
#xiy-cal .cal-month{padding:calc(var(--u)*.95) calc(var(--u)*1.05) calc(var(--u)*.45);border-radius:20px}
#xiy-cal .cal-month h3{font-size:calc(var(--u)*1.25)}
#xiy-cal .cal-ev{grid-template-columns:calc(var(--u)*3.6) minmax(0,1fr);gap:calc(var(--u)*.7);padding:calc(var(--u)*.55) 0;border-top-width:1px}
#xiy-cal .cal-date{min-height:calc(var(--u)*2.8);border-radius:12px;padding:calc(var(--u)*.3) calc(var(--u)*.15)}
#xiy-cal .cal-date .dn{font-size:calc(var(--u)*1.1)}
#xiy-cal .cal-date .dw{font-size:calc(var(--u)*.7)}
#xiy-cal .cal-txt{font-size:calc(var(--u)*.95);font-weight:600;line-height:1.35}
#xiy-cal .cal-nota{font-size:calc(var(--u)*.82)}
#xiy-cal .cal-tag{font-size:calc(var(--u)*.7);margin-top:calc(var(--u)*.3)}
#xiy-cal .cal-ev.is-next .cal-txt::after,#xiy-cal .cal-ev.is-today .cal-txt::after{font-size:.78em}
#xiy-cal .cal-more{font-size:calc(var(--u)*.82)}
#xiy-cal .cal-foot p{font-size:calc(var(--u)*.88)}
@media (max-width:700px){
#xiy-cal .cal-tab{font-size:calc(var(--u)*.88);padding:calc(var(--u)*.6) calc(var(--u)*.5)}
#xiy-cal .cal-ev{grid-template-columns:calc(var(--u)*3.3) minmax(0,1fr)}
}
