/* Widgets Elementor de capacitaciones. Selectores aislados para no interferir con el theme. */
.my-store-course-widget {
	--msc-ink: #14212b;
	--msc-muted: #657681;
	--msc-line: #d8e3df;
	--msc-paper: #fff;
	--msc-soft: #f4f8f7;
	--msc-brand: #174c68;
	--msc-accent: #d67a2d;
	--msc-success: #1b7b5a;
	--msc-radius: 18px;
	--msc-card-gap: 10px;
	color: var(--msc-ink);
	font-family: Inter, "Segoe UI", Arial, sans-serif;
}
.my-store-course-widget *, .my-store-course-widget *::before, .my-store-course-widget *::after { box-sizing: border-box; }
.my-store-course-widget-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:0 0 20px; }
.my-store-course-widget-title { margin:0; color:var(--msc-ink); font:700 clamp(24px,3vw,34px)/1.12 Sora,Inter,sans-serif; letter-spacing:-.035em; }
.my-store-course-widget-heading p { max-width:60ch; margin:7px 0 0; color:var(--msc-muted); font-size:15px; line-height:1.58; }
.my-store-course-widget-count { flex:0 0 auto; padding:7px 10px; border:1px solid #cbdcd5; border-radius:7px; background:#f8fbfa; color:var(--msc-brand); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }

.my-store-course-calendar-shell { overflow:hidden; border:1px solid var(--msc-line); border-radius:var(--msc-radius); background:var(--msc-paper); box-shadow:0 14px 35px rgba(20,33,43,.07); }
.my-store-course-calendar-toolbar { display:grid; grid-template-columns:42px 1fr 42px; align-items:center; padding:16px 18px; border-bottom:1px solid var(--msc-line); background:#fbfdfc; }
.my-store-course-calendar-toolbar h3 { margin:0; color:var(--msc-ink); font:700 18px/1.2 Sora,Inter,sans-serif; letter-spacing:-.02em; text-align:center; text-transform:capitalize; }
.my-store-course-calendar .my-store-course-month-button { display:grid; width:34px; height:34px; place-items:center; padding:0; border:1px solid var(--msc-line); border-radius:8px; background:var(--msc-calendar-nav-bg,#fff); color:var(--msc-calendar-nav-arrow,var(--msc-brand)); font-size:25px; line-height:1; cursor:pointer; transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease; }
.my-store-course-calendar .my-store-course-month-button:last-child { justify-self:end; }
.my-store-course-calendar .my-store-course-month-button:hover { border-color:var(--msc-calendar-nav-hover-bg,var(--msc-brand)); background:var(--msc-calendar-nav-hover-bg,var(--msc-brand)); color:var(--msc-calendar-nav-hover-arrow,#fff); transform:translateY(-1px); }
.my-store-course-calendar .my-store-course-month-button:focus-visible, .my-store-course-calendar .my-store-course-calendar-day:focus-visible, .my-store-course-agenda-item:focus-visible { outline:3px solid rgba(23,76,104,.24); outline-offset:3px; }
.my-store-course-calendar-weekdays, .my-store-course-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; padding:0 16px; }
.my-store-course-calendar-weekdays { padding-top:14px; }
.my-store-course-calendar-weekdays span { color:#71818a; font-size:11px; font-weight:800; letter-spacing:.055em; text-align:center; text-transform:uppercase; }
.my-store-course-calendar-grid { padding-top:9px; padding-bottom:16px; }
.my-store-course-calendar-blank { min-height:74px; border-radius:10px; }
.my-store-course-calendar .my-store-course-calendar-day { position:relative; display:grid; min-height:74px; place-items:start; padding:10px; border:1px solid #e7eeeb; border-radius:10px; background:#fff; color:var(--msc-ink); font:700 14px/1 Inter,sans-serif; text-align:left; cursor:pointer; transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.my-store-course-calendar .my-store-course-calendar-day:not(.has-events):hover { border-color:var(--msc-calendar-empty-hover-border,#abc3b9); background:var(--msc-calendar-empty-hover-bg,#f8fbfa); color:var(--msc-calendar-empty-hover-text,var(--msc-ink)); transform:translateY(-1px); }
.my-store-course-calendar .my-store-course-calendar-day.is-today { box-shadow:inset 0 0 0 1px var(--msc-accent); }
.my-store-course-calendar .my-store-course-calendar-day.has-events { border-color:var(--msc-calendar-available-border,#9ab7c5); background:var(--msc-calendar-available-bg,#f1f7f8); color:var(--msc-calendar-available-text,var(--msc-brand)); }
.my-store-course-calendar .my-store-course-calendar-day.has-events:hover { border-color:var(--msc-calendar-available-hover-border,#6e9eae); background:var(--msc-calendar-available-hover-bg,#e3f0f2); color:var(--msc-calendar-available-hover-text,var(--msc-brand)); }
.my-store-course-calendar .my-store-course-calendar-day.is-selected { border-color:var(--msc-brand); background:var(--msc-brand); color:#fff; box-shadow:0 8px 18px rgba(23,76,104,.18); }
.my-store-course-calendar .my-store-course-calendar-day i { position:absolute; right:9px; bottom:9px; display:grid; width:19px; height:19px; place-items:center; border-radius:5px; background:var(--msc-calendar-count-bg,var(--msc-accent)); color:var(--msc-calendar-count-text,#fff); font:800 10px/1 Inter,sans-serif; font-style:normal; }
.my-store-course-calendar .my-store-course-calendar-day.is-selected i { background:#fff; color:var(--msc-brand); }
.my-store-course-calendar-tooltip { position:fixed; z-index:9999; width:min(292px,calc(100vw - 24px)); padding:12px; border:1px solid #cbdcd5; border-radius:12px; background:#fff; box-shadow:0 15px 32px rgba(20,33,43,.16); color:var(--msc-ink); opacity:0; pointer-events:none; transform:translate(-50%,-100%) translateY(-5px); transition:opacity .16s ease,transform .16s ease; }
.my-store-course-calendar-tooltip.is-visible { opacity:1; transform:translate(-50%,-100%); }
.my-store-course-calendar-tooltip.is-below { transform:translate(-50%,0) translateY(5px); }
.my-store-course-calendar-tooltip.is-below.is-visible { transform:translate(-50%,0); }
.my-store-course-calendar-tooltip-count { display:block; margin-bottom:8px; color:var(--msc-brand); font-size:10px; font-weight:800; letter-spacing:.075em; text-transform:uppercase; }
.my-store-course-calendar-tooltip-list { display:grid; gap:8px; }
.my-store-course-calendar-tooltip-item { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px; align-items:center; padding-left:9px; border-left:2px solid var(--msc-accent); }
.my-store-course-calendar-tooltip-item img { box-sizing:border-box; width:28px; height:28px; border:1px solid #c0c0c0; border-radius:5px; object-fit:contain; background:#c0c0c0; }
.my-store-course-calendar-tooltip-item > span { display:grid; min-width:0; gap:3px; }
.my-store-course-calendar-tooltip-item strong { font-size:12px; line-height:1.32; }
.my-store-course-calendar-tooltip-item small, .my-store-course-calendar-tooltip-more { color:var(--msc-muted); font-size:11px; line-height:1.3; }
.my-store-course-calendar-tooltip-more { display:block; margin-top:8px; font-weight:700; }
.my-store-course-calendar-details { min-height:88px; padding:14px 16px 16px; border-top:1px solid var(--msc-line); background:var(--msc-soft); }
.my-store-course-calendar-details > p { margin:10px 0; color:var(--msc-muted); font-size:14px; text-align:center; }
.my-store-course-calendar-event { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:10px 12px; border:1px solid #dce8e3; border-radius:10px; background:#fff; color:var(--msc-ink); text-decoration:none; transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.my-store-course-calendar-event.has-logo { grid-template-columns:72px minmax(0,1fr) auto; }
.my-store-course-calendar-event + .my-store-course-calendar-event { margin-top:var(--msc-card-gap); }
.my-store-course-calendar-event { animation:msc-course-detail-reveal .48s cubic-bezier(.22,.8,.25,1) both; animation-delay:calc(100ms + (var(--msc-detail-index,0) * 85ms)); }
.my-store-course-calendar-event:hover { border-color:#9ab7c5; box-shadow:0 7px 16px rgba(20,33,43,.08); transform:translateY(-1px); color:var(--msc-ink); }
.my-store-course-calendar-event-logo { display:grid; width:72px; height:72px; place-items:center; overflow:hidden; border:1px solid #dce8e3; border-radius:10px; background:#fff; }
.my-store-course-calendar-event-logo img { width:100%; height:100%; object-fit:contain; }
.my-store-course-calendar-event-copy { display:grid; min-width:0; gap:3px; }
.my-store-course-calendar-event-mode, .my-store-course-status { width:max-content; padding:5px 7px; border-radius:6px; background:#e7f0ed; color:var(--msc-success); font-size:10px; font-weight:800; letter-spacing:.055em; text-transform:uppercase; white-space:nowrap; }
.my-store-course-calendar-event-copy strong { min-width:0; color:var(--msc-ink); font-size:14px; overflow-wrap:anywhere; }
.my-store-course-calendar-event-copy small { color:var(--msc-muted); font-size:12px; }
.my-store-course-calendar-event-action { align-self:center; display:flex; min-width:128px; min-height:52px; align-items:center; justify-content:center; gap:7px; padding:10px 16px; border-radius:9px; background:var(--msc-brand); color:#fff; font-size:12px; font-style:normal; font-weight:800; line-height:1.15; text-align:center; white-space:nowrap; box-shadow:0 6px 15px rgba(23,76,104,.2); animation:msc-course-action-pulse 1.9s ease-in-out infinite; }
.my-store-course-calendar-event-action b { font-size:18px; line-height:1; }
.my-store-course-calendar-event:hover .my-store-course-calendar-event-action { background:#103d55; animation-play-state:paused; transform:translateX(2px); }

.my-store-course-agenda { container-type:inline-size; }
.my-store-course-agenda-list { border-top:1px solid var(--msc-agenda-line,var(--msc-line)); }
.my-store-course-agenda-group { display:grid; gap:var(--msc-card-gap); padding:22px 0 4px; }
.my-store-course-agenda-group + .my-store-course-agenda-group { margin-top:12px; border-top:1px solid var(--msc-agenda-line,var(--msc-line)); }
.my-store-course-agenda-group-title { margin:0; color:var(--msc-agenda-heading,var(--msc-muted)); font:800 11px/1.2 Inter,sans-serif; letter-spacing:.09em; text-transform:uppercase; }
.my-store-course-agenda-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; padding:13px; border:1px solid var(--msc-agenda-card-border,#e2eae7); border-radius:calc(var(--msc-radius) - 5px); color:var(--msc-ink); text-decoration:none; transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.my-store-course-agenda-item.has-logo { grid-template-columns:72px minmax(0,1fr) auto; }
.my-store-course-agenda-item:hover { border-color:var(--msc-agenda-hover-border,#cbdcd5); background:var(--msc-agenda-hover-bg,#fbfdfc); box-shadow:0 8px 18px rgba(20,33,43,.06); color:var(--msc-ink); transform:translateX(3px); }
.my-store-course-agenda-logo { display:grid; width:72px; height:72px; place-items:center; overflow:hidden; border:1px solid #dbe7e2; border-radius:12px; background:#fff; box-shadow:0 5px 12px rgba(20,33,43,.07); transition:background .18s ease,border-radius .18s ease,border-color .18s ease; }
.my-store-course-agenda-item:hover .my-store-course-agenda-logo { border-color:#c0c0c0; border-radius:5px; background:#c0c0c0; }
.my-store-course-agenda-logo img { width:100%; height:100%; object-fit:contain; }
.my-store-course-agenda-copy { display:grid; min-width:0; gap:3px; }
.my-store-course-agenda-copy strong { color:var(--msc-ink); font-size:15px; line-height:1.3; overflow-wrap:anywhere; }
.my-store-course-agenda-copy > span:last-child, .my-store-course-agenda-meta { color:var(--msc-muted); font-size:12px; line-height:1.3; }
.my-store-course-agenda-course-badges { display:flex; flex-wrap:wrap; gap:5px; margin-top:3px; }
.my-store-course-agenda-course-badge { display:inline-flex; align-items:center; min-height:21px; padding:3px 7px; border-radius:5px; font-size:9px; font-weight:800; letter-spacing:.045em; line-height:1; text-transform:uppercase; }
.my-store-course-agenda-modality { background:var(--msc-agenda-modality-bg,#e7f2ee); color:var(--msc-agenda-modality-text,#187454); }
.my-store-course-agenda-capacity { background:var(--msc-agenda-capacity-bg,#e8f1f5); color:var(--msc-agenda-capacity-text,#174c68); }
.my-store-course-agenda-tail { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.my-store-course-agenda-date { color:var(--msc-muted); font-size:11px; font-weight:700; line-height:1.2; text-align:right; white-space:nowrap; }
.my-store-course-agenda-group-week .my-store-course-agenda-item { border-color:var(--msc-week-card-border,#c5d9d2); background:var(--msc-week-card-bg,#f5faf8); }
.my-store-course-agenda-group-week .my-store-course-agenda-item:hover { border-color:var(--msc-agenda-hover-border,#cbdcd5); background:var(--msc-agenda-hover-bg,#fbfdfc); }
.my-store-course-agenda-group-week .my-store-course-status { background:var(--msc-week-badge-bg,#dff2e8); color:var(--msc-week-badge-text,var(--msc-success)); }
.my-store-course-agenda-group-future .my-store-course-agenda-item { border-color:var(--msc-future-card-border,#e2eae7); background:var(--msc-future-card-bg,#fff); }
.my-store-course-agenda-group-future .my-store-course-status { background:var(--msc-future-badge-bg,#fbecd9); color:var(--msc-future-badge-text,#9a571e); }
.my-store-course-agenda-group-past .my-store-course-agenda-item { border-color:var(--msc-past-card-border,#e2e6e5); background:var(--msc-past-card-bg,#f7f8f8); opacity:.66; }
.my-store-course-agenda-group-past .my-store-course-status { background:var(--msc-past-badge-bg,#edf0ef); color:var(--msc-past-badge-text,#637077); }
.my-store-course-empty { padding:24px; border:1px dashed var(--msc-line); border-radius:12px; color:var(--msc-muted); font-size:14px; text-align:center; }

/* En escritorio el calendario acompaña la navegación de la agenda lateral,
 * pero se detiene al final de su contenedor compartido. */
@media (min-width:601px) {
	/* Algunas columnas Elementor centran sus hijos. El calendario debe usar todo
	 * el ancho real de la columna, no solamente el ancho de su contenido. */
	.elementor-widget-equiparbol-course-calendar { align-self:flex-start; width:100%; max-width:none; }
	.elementor-widget-equiparbol-course-calendar > .elementor-widget-container { width:100%; }
	.elementor-widget-equiparbol-course-calendar .my-store-course-calendar { position:sticky; top:24px; }
}

/* Elementor considera móvil hasta 767px. El ajuste de altura debe cubrir
 * también la vista móvil del editor, que puede renderizarse sobre 600px. */
@media (max-width:767px) {
	/* Elementor aplica height:100% a los contenedores de widgets dentro de un contenedor flex.
	 * En móvil las columnas se apilan y esa altura heredada dejaba una zona vacía bajo la agenda. */
	.e-con:has(> .elementor-widget-equiparbol-upcoming-courses) { --container-widget-height:auto !important; --container-widget-align-self:stretch !important; }
	.elementor-widget-equiparbol-upcoming-courses { --container-widget-height:auto; --container-widget-align-self:stretch; align-self:stretch !important; width:100% !important; height:auto !important; }
	.elementor-widget-equiparbol-upcoming-courses > .elementor-widget-container,
	.elementor-widget-equiparbol-upcoming-courses .my-store-course-agenda,
	.elementor-widget-equiparbol-upcoming-courses .my-store-course-agenda-list { width:100% !important; height:auto !important; min-height:0 !important; }
}

@media (max-width:600px) {
	/* Evita que los grids internos distribuyan el alto libre entre las filas. */
	.my-store-course-agenda-group,
	.my-store-course-agenda-item,
	.my-store-course-agenda-copy { align-content:start; }
	.my-store-course-widget-heading { align-items:flex-start; flex-direction:column; gap:12px; }
	.my-store-course-calendar-toolbar { padding:13px; }
	.my-store-course-calendar-weekdays, .my-store-course-calendar-grid { gap:4px; padding-left:8px; padding-right:8px; }
	.my-store-course-calendar-weekdays { padding-top:10px; }
	.my-store-course-calendar-weekdays span { font-size:9px; }
	.my-store-course-calendar-grid { padding-bottom:10px; }
	.my-store-course-calendar-blank, .my-store-course-calendar-day { min-height:48px; }
	.my-store-course-calendar-day { padding:7px; font-size:12px; }
	.my-store-course-calendar-day i { right:5px; bottom:5px; width:15px; height:15px; border-radius:4px; font-size:8px; }
	.my-store-course-calendar-details { padding:10px; }
	.my-store-course-calendar-event, .my-store-course-calendar-event.has-logo { grid-template-columns:minmax(0,1fr) auto; gap:7px; }
	.my-store-course-calendar-event-logo { display:none; }
	.my-store-course-calendar-event-action { grid-column:2; min-width:94px; padding:9px 10px; font-size:10px; }
	.my-store-course-calendar-event-action b { font-size:15px; }
	.my-store-course-calendar-tooltip { display:none; }
}
@container (max-width:540px) {
	.my-store-course-agenda .my-store-course-widget-heading { align-items:flex-start; flex-direction:column; gap:12px; }
	.my-store-course-agenda .my-store-course-agenda-item { grid-template-columns:minmax(0,1fr); gap:8px; padding:11px 4px; }
	.my-store-course-agenda .my-store-course-agenda-item.has-logo { grid-template-columns:58px minmax(0,1fr); gap:11px; }
	.my-store-course-agenda .my-store-course-agenda-logo { width:58px; height:58px; border-radius:10px; }
	.my-store-course-agenda .my-store-course-agenda-tail { grid-column:1; justify-content:flex-start; }
	.my-store-course-agenda .my-store-course-agenda-item.has-logo .my-store-course-agenda-tail { grid-column:2; }
	.my-store-course-agenda .my-store-course-agenda-date { text-align:left; }
	.my-store-course-agenda .my-store-course-agenda-copy strong { font-size:14px; }
}
@media (prefers-reduced-motion:no-preference) { .my-store-course-calendar-shell, .my-store-course-agenda-item { animation:msc-course-enter .42s ease both; } .my-store-course-agenda-item:nth-child(3n+2) { animation-delay:.04s; } .my-store-course-agenda-item:nth-child(3n) { animation-delay:.08s; } }
@keyframes msc-course-enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes msc-course-detail-reveal { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes msc-course-action-pulse { 0%,100% { box-shadow:0 4px 10px rgba(23,76,104,.18); } 50% { box-shadow:0 5px 16px rgba(23,76,104,.38); } }
@media (prefers-reduced-motion:reduce) { .my-store-course-widget *, .my-store-course-widget *::before, .my-store-course-widget *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; } }
