/* Illumi UI - Учебен свят. Brand: accent #4545DA, violet #66346E, green #28713E, sky #68A5D1. */
:root {
	--iu-accent: #4545DA;
	--iu-violet: #66346E;
	--iu-green: #28713E;
	--iu-sky: #68A5D1;
	--iu-ink: #161616;
	--iu-muted: #727272;
	--iu-soft: #F3E6F9;
	--iu-grad: linear-gradient(120deg, #4545DA 0%, #66346E 55%, #28713E 100%);
	--iu-ease: cubic-bezier(.2, .8, .2, 1);
}
.iu-i { width: 1em; height: 1em; flex: none; fill: none !important; stroke: currentColor !important; }
.iu-i * { fill: none !important; stroke: currentColor !important; } /* plugins set svg fill globally */
/* the font shorthand resets font-feature-settings: keep the site's non-Bulgarian Raleway glyphs (see illumi-seo.php) */
.usl, .usl *, .umm, .umm * { font-feature-settings: "locl" 0 !important; }

/* ============ Locations: [uchebensviat_lokacii] ============ */
.usl { position: relative; font-family: Roboto, sans-serif; }
.usl-r { position: absolute; opacity: 0; pointer-events: none; }
.usl-tabs {
	position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 0;
	padding: 6px; margin: 0 0 18px; border-radius: 999px;
	background: var(--iu-soft); box-shadow: inset 0 0 0 1px rgba(102, 52, 110, .08);
}
.usl-tab {
	position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; padding: 0 14px; margin: 0; border-radius: 999px; cursor: pointer;
	font: 700 15px/1.2 Raleway, sans-serif; color: #34495E; transition: color .35s var(--iu-ease);
	-webkit-tap-highlight-color: transparent; user-select: none;
}
.usl-tab .iu-i { font-size: 17px; opacity: .8; }
.usl-tab:hover { color: var(--iu-accent); }
.usl-glider {
	position: absolute; top: 6px; bottom: 6px; left: 6px; width: calc(50% - 6px); border-radius: 999px;
	background: linear-gradient(120deg, #4545DA, #66346E); box-shadow: 0 10px 24px -8px rgba(69, 69, 218, .65);
	transition: transform .5s var(--iu-ease);
}
.usl-r2:checked ~ .usl-tabs .usl-glider { transform: translateX(100%); }
.usl-r1:checked ~ .usl-tabs .usl-t1,
.usl-r2:checked ~ .usl-tabs .usl-t2 { color: #fff; }
.usl-r1:focus-visible ~ .usl-tabs .usl-t1,
.usl-r2:focus-visible ~ .usl-tabs .usl-t2 { outline: 2px solid var(--iu-accent); outline-offset: 3px; }
.usl-new {
	font: 700 10px/1 Roboto, sans-serif; font-style: normal; letter-spacing: .08em; text-transform: uppercase;
	padding: 5px 8px; border-radius: 999px; background: var(--iu-green); color: #fff;
	transition: background .35s, color .35s;
}
.usl-r2:checked ~ .usl-tabs .usl-new { background: #fff; color: var(--iu-green); }

.usl-stage {
	position: relative; height: 600px; border-radius: 26px; overflow: hidden; isolation: isolate;
	background: #e8e6f3; box-shadow: 0 30px 60px -24px rgba(40, 40, 120, .45), 0 0 0 1px rgba(69, 69, 218, .08);
}
.usl-stage::after { /* gradient frame */
	content: ""; position: absolute; inset: 0; z-index: 3; border-radius: inherit; pointer-events: none; padding: 3px;
	background: var(--iu-grad);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
}
.usl-map {
	position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: scale(1.06);
	transition: opacity .7s var(--iu-ease), transform 1.1s var(--iu-ease), visibility 0s linear .7s;
}
.usl-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: saturate(.9) contrast(1.03); }
.usl-r1:checked ~ .usl-stage .usl-m1,
.usl-r2:checked ~ .usl-stage .usl-m2 { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; z-index: 1; }

.usl-pulse {
	position: absolute; left: 50%; top: 50%; width: 26px; height: 26px; margin: -13px 0 0 -13px; border-radius: 50%;
	border: 3px solid var(--iu-accent); opacity: 0; pointer-events: none;
}
.usl-r1:checked ~ .usl-stage .usl-m1 .usl-pulse,
.usl-r2:checked ~ .usl-stage .usl-m2 .usl-pulse { animation: usl-ping 1.9s cubic-bezier(0, 0, .2, 1) .6s 4; }
@keyframes usl-ping {
	0% { opacity: .95; transform: scale(.5); }
	100% { opacity: 0; transform: scale(3.4); }
}

.usl-card {
	position: absolute; left: 22px; bottom: 22px; z-index: 2; width: min(360px, calc(100% - 44px));
	display: flex; flex-direction: column; gap: 6px; padding: 20px 22px 22px; border-radius: 20px;
	background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: blur(16px) saturate(1.5); backdrop-filter: blur(16px) saturate(1.5);
	box-shadow: 0 24px 48px -18px rgba(22, 22, 60, .45), inset 0 0 0 1px rgba(255, 255, 255, .7);
	opacity: 0; visibility: hidden; transform: translateY(18px);
	transition: opacity .45s var(--iu-ease), transform .6s var(--iu-ease), visibility 0s linear .45s;
}
.usl-r1:checked ~ .usl-stage .usl-c1,
.usl-r2:checked ~ .usl-stage .usl-c2 { opacity: 1; visibility: visible; transform: none; transition-delay: .2s, .2s, 0s; }
.usl-kick { font: 700 11px/1 Roboto, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--iu-accent); }
.usl-kick b { color: var(--iu-green); font-weight: 700; }
.usl-title { font: 700 24px/1.15 Raleway, sans-serif; color: var(--iu-ink); }
.usl-addr { font: 500 15px/1.4 Roboto, sans-serif; color: #34495E; }
.usl-note { font: 400 13px/1.4 Roboto, sans-serif; color: var(--iu-muted); }
.usl-actions { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.usl-btn {
	display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px;
	font: 700 14px/1 Raleway, sans-serif; text-decoration: none !important; transition: transform .25s var(--iu-ease), box-shadow .25s, background .25s;
}
.usl-btn .iu-i { font-size: 16px; }
.usl-go { background: linear-gradient(120deg, #4545DA, #66346E); color: #fff !important; box-shadow: 0 10px 20px -8px rgba(69, 69, 218, .7); }
.usl-call { background: #fff; color: var(--iu-accent) !important; box-shadow: inset 0 0 0 1.5px rgba(69, 69, 218, .35); }
.usl-btn:hover { transform: translateY(-2px); }
.usl-go:hover { box-shadow: 0 14px 26px -8px rgba(69, 69, 218, .8); }
.usl-call:hover { background: #F5F5FF; }

@media (max-width: 1024px) { .usl-stage { height: 480px; } }
@media (max-width: 767px) {
	.usl { margin-bottom: 56px; } /* the footer's curved top overlaps the last section */
	.usl-tabs { margin: 0 12px 14px; }
	.usl-tab { font-size: 14px; gap: 6px; padding: 0 8px; }
	.usl-tab .iu-i { display: none; }
	.usl-stage { height: 470px; border-radius: 22px; margin: 0 12px; }
	.usl-card { left: 12px; right: 12px; bottom: 12px; width: auto; padding: 16px 18px 18px; }
	.usl-title { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	.usl-map, .usl-card, .usl-glider { transition: none; }
	.usl-pulse { animation: none !important; }
}

/* ============ Mega menu: [uchebensviat_menu] (desktop only) ============ */
.umm { display: none; }
.umm-host:not(:has(.umm)) { display: none !important; } /* empty while the menu is not live */
@media (min-width: 1025px) {
	/* the panel is positioned against the whole header row, not the nav column */
	.elementor-37 .elementor-element-e81fcb9 { position: relative; z-index: 60; }
	.elementor-37 .elementor-element-e81fcb9 > .e-con-inner,
	.elementor-37 .elementor-element-372bc66,
	.elementor-37 .elementor-element-372bc66 > .e-con-inner,
	.elementor-37 .umm-host,
	.elementor-37 .umm-host > .elementor-widget-container { position: static !important; }

	.umm { display: block; font-family: Roboto, sans-serif; }
	.umm-list { display: flex; align-items: center; justify-content: flex-end; gap: 2px; margin: 0; padding: 0; list-style: none; }
	.umm-item { position: static; margin: 0; }
	.umm-link {
		position: relative; display: flex; align-items: center; gap: 5px; padding: 14px 11px;
		font: 700 14.5px/1 Raleway, sans-serif; color: var(--iu-ink); text-decoration: none !important; white-space: nowrap;
		transition: color .25s;
	}
	.umm-link .iu-i { font-size: 15px; opacity: .55; transition: transform .35s var(--iu-ease), opacity .25s; }
	.umm-link::after {
		content: ""; position: absolute; left: 11px; right: 11px; bottom: 6px; height: 3px; border-radius: 3px;
		background: var(--iu-grad); transform: scaleX(0); transform-origin: center; transition: transform .4s var(--iu-ease);
	}
	.umm-item:hover > .umm-link, .umm-item:focus-within > .umm-link, .umm-item.is-current > .umm-link { color: var(--iu-accent); }
	.umm-item:hover > .umm-link::after, .umm-item:focus-within > .umm-link::after, .umm-item.is-current > .umm-link::after { transform: scaleX(1); }
	.umm-item:hover > .umm-link .iu-i, .umm-item:focus-within > .umm-link .iu-i { transform: rotate(180deg); opacity: 1; }

	/* panel */
	.umm-panel {
		position: absolute; top: calc(100% + 10px); left: 50%; z-index: 5;
		width: min(1180px, calc(100vw - 48px)); border-radius: 26px;
		border-top: 4px solid transparent; background: linear-gradient(#fff, #fff) padding-box, var(--iu-grad) border-box; /* brand line that follows the corners */
		box-shadow: 0 50px 90px -30px rgba(25, 25, 80, .45), 0 0 0 1px rgba(69, 69, 218, .07);
		opacity: 0; visibility: hidden; transform: translate(-50%, 14px);
		clip-path: inset(0 0 100% 0 round 26px);
		transition: opacity .2s ease .12s, transform .3s var(--iu-ease) .12s, clip-path .35s var(--iu-ease) .12s, visibility 0s linear .47s;
	}
	.umm-panel::before { /* hover bridge between the menu and the panel */
		content: ""; position: absolute; left: 0; right: 0; top: -44px; height: 44px;
	}
	.umm-item:hover > .umm-panel, .umm-item:focus-within > .umm-panel {
		opacity: 1; visibility: visible; transform: translate(-50%, 0); clip-path: inset(-60px -70px -150px -70px round 26px);
		transition: opacity .25s ease .07s, transform .45s var(--iu-ease) .07s, clip-path .6s var(--iu-ease) .07s, visibility 0s linear .07s;
	}
	/* switching between items: hide the previous panel at once */
	.umm-list:has(.umm-has:hover) .umm-has:not(:hover) > .umm-panel { transition: none; opacity: 0; visibility: hidden; }

	.umm-in { display: grid; grid-template-columns: 1fr 330px; gap: 26px; padding: 30px 30px 26px; }
	.umm-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 6px 14px; }
	.umm-kick { display: flex; align-items: center; gap: 12px; font: 700 12px/1 Roboto, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--tone); }
	.umm-kick i { font-style: normal; letter-spacing: .02em; text-transform: none; font-weight: 500; color: var(--iu-muted); padding: 5px 9px; border-radius: 999px; background: var(--tone-bg); }
	.umm-all { display: inline-flex; align-items: center; gap: 6px; font: 700 13px/1 Raleway, sans-serif; color: var(--tone) !important; text-decoration: none !important; }
	.umm-all .iu-i { transition: transform .3s var(--iu-ease); }
	.umm-all:hover .iu-i { transform: translateX(4px); }

	.umm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; margin: 0; padding: 0; list-style: none; }
	.umm-grid.umm-f { flex: 1; gap: 14px; }
	.umm-grid.umm-f3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.umm-grid > li { margin: 0; opacity: 0; transform: translateY(10px); transition: opacity .2s, transform .2s; }
	.umm-item:hover .umm-grid > li, .umm-item:focus-within .umm-grid > li {
		opacity: 1; transform: none; transition: opacity .45s ease calc(.12s + var(--i) * .045s), transform .55s var(--iu-ease) calc(.12s + var(--i) * .045s);
	}
	.umm-card {
		position: relative; display: grid; grid-template-columns: 48px 1fr 18px; align-items: center; gap: 14px;
		padding: 13px 14px; border-radius: 16px; color: var(--iu-ink) !important; text-decoration: none !important;
		transition: background .3s, box-shadow .3s, transform .3s var(--iu-ease);
	}
	.umm-ico {
		display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px;
		background: var(--tone-bg); color: var(--tone); font-size: 22px;
		transition: background .35s, color .35s, transform .45s var(--iu-ease), box-shadow .35s;
	}
	.umm-glyph { font: 800 17px/1 Montserrat, Raleway, sans-serif; letter-spacing: .02em; }
	.umm-txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
	.umm-t { font: 700 15px/1.3 Raleway, sans-serif; color: var(--iu-ink); transition: color .25s; }
	.umm-d { font: 400 13px/1.4 Roboto, sans-serif; color: var(--iu-muted); }
	.umm-card > .iu-i { font-size: 18px; color: var(--tone); opacity: 0; transform: translateX(-8px); transition: opacity .3s, transform .35s var(--iu-ease); }
	.umm-card:hover, .umm-card:focus-visible { background: var(--tone-bg); box-shadow: 0 12px 26px -16px var(--tone-shadow); outline: none; }
	.umm-card:hover .umm-ico, .umm-card:focus-visible .umm-ico { background: var(--tone-grad); color: #fff; transform: rotate(-7deg) scale(1.07); box-shadow: 0 10px 20px -8px var(--tone-shadow); }
	.umm-card:hover .umm-t { color: var(--tone); }
	.umm-card:hover > .iu-i, .umm-card:focus-visible > .iu-i { opacity: 1; transform: none; }
	.umm-card.is-current .umm-t { color: var(--tone); }
	.umm-card.is-current::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 3px; background: var(--tone-grad); }

	/* roomy panels (2-3 items): feature tiles */
	.umm-main { display: flex; flex-direction: column; }
	.umm-feat {
		position: relative; display: flex; flex-direction: column; height: 100%; border-radius: 22px; overflow: hidden;
		background: linear-gradient(170deg, var(--tone-bg) 0%, #fff 78%); box-shadow: inset 0 0 0 1px rgba(22, 22, 60, .06);
		transition: transform .45s var(--iu-ease), box-shadow .45s;
	}
	.umm-feat::after { /* light sweep on hover */
		content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
		background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .7) 48%, transparent 66%); transform: translateX(-60%);
		transition: transform .9s var(--iu-ease), opacity .3s;
	}
	.umm-feat:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(22, 22, 60, .04), 0 22px 40px -22px var(--tone-shadow); }
	.umm-feat:hover::after { opacity: 1; transform: translateX(60%); }
	.umm-feat-a { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 24px 24px 18px; color: var(--iu-ink) !important; text-decoration: none !important; }
	.umm-feat .umm-ico { width: 60px; height: 60px; border-radius: 18px; font-size: 26px; margin-bottom: 10px; background: #fff; box-shadow: 0 10px 22px -14px var(--tone-shadow); }
	.umm-feat .umm-glyph { font-size: 21px; }
	.umm-feat .umm-t { font-size: 18px; }
	.umm-feat .umm-d { font-size: 14px; }
	.umm-feat:hover .umm-ico { background: var(--tone-grad); color: #fff; transform: rotate(-7deg) scale(1.07); }
	.umm-feat:hover .umm-t, .umm-feat.is-current .umm-t { color: var(--tone); }
	.umm-more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 12px; font: 700 13px/1 Raleway, sans-serif; color: var(--tone); }
	.umm-more .iu-i { transition: transform .3s var(--iu-ease); }
	.umm-feat:hover .umm-more .iu-i { transform: translateX(5px); }
	.umm-subs { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; padding: 0 24px 22px; }
	.umm-subs a {
		padding: 8px 13px; border-radius: 999px; background: #fff; border: 1px solid rgba(22, 22, 60, .14) !important;
		font: 600 13px/1 Roboto, sans-serif; color: #34495E !important; text-decoration: none !important; transition: background .25s, color .25s, box-shadow .25s;
	}
	.umm-subs a:hover { background: var(--tone-grad); color: #fff !important; border-color: transparent !important; }

	/* promo */
	.umm-promo {
		position: relative; display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 22px; border-radius: 22px; overflow: hidden;
		background: var(--tone-grad); color: #fff; isolation: isolate;
	}
	.umm-promo::before { /* soft light */
		content: ""; position: absolute; z-index: -1; width: 260px; height: 260px; right: -90px; top: -110px; border-radius: 50%;
		background: radial-gradient(circle, rgba(255, 255, 255, .35), rgba(255, 255, 255, 0) 70%);
	}
	.umm-badge {
		align-self: flex-start; padding: 7px 11px; border-radius: 999px; background: rgba(255, 255, 255, .18);
		box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); font: 700 11px/1 Roboto, sans-serif; letter-spacing: .1em; text-transform: uppercase;
	}
	.umm-pt { font: 700 20px/1.2 Raleway, sans-serif; color: #fff; }
	.umm-pd { font: 400 14px/1.45 Roboto, sans-serif; color: rgba(255, 255, 255, .88); }
	.umm-art {
		display: block; height: 128px; margin: 4px 0 2px; border-radius: 16px; background: #fff; overflow: hidden;
		box-shadow: 0 16px 30px -18px rgba(0, 0, 0, .55);
	}
	.umm-art img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.2s var(--iu-ease); }
	.umm-item:hover .umm-art img { transform: scale(1.1); }
	.umm-cta {
		display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 6px; padding: 13px 18px; border-radius: 999px;
		background: #fff; color: var(--tone) !important; font: 700 14px/1 Raleway, sans-serif; text-decoration: none !important;
		box-shadow: 0 12px 24px -12px rgba(0, 0, 0, .5); transition: transform .3s var(--iu-ease), box-shadow .3s;
	}
	.umm-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 28px -12px rgba(0, 0, 0, .55); }
	.umm-cta .iu-i { transition: transform .3s var(--iu-ease); }
	.umm-cta:hover .iu-i { transform: translateX(4px); }

	.umm-foot {
		display: flex; align-items: center; gap: 26px; padding: 14px 36px; border-radius: 0 0 26px 26px;
		background: #FAF7FC; border-top: 1px solid rgba(102, 52, 110, .08); font: 500 13px/1 Roboto, sans-serif; color: #34495E;
	}
	.umm-foot span, .umm-foot a { display: inline-flex; align-items: center; gap: 8px; color: #34495E !important; text-decoration: none !important; }
	.umm-foot .iu-i { font-size: 15px; color: var(--tone); }
	.umm-foot i { font-style: normal; color: var(--iu-muted); }
	.umm-foot a:hover { color: var(--tone) !important; }

	/* tones */
	.umm-violet { --tone: #66346E; --tone-bg: #F6EDF8; --tone-grad: linear-gradient(135deg, #66346E, #4545DA); --tone-shadow: rgba(102, 52, 110, .55); }
	.umm-blue { --tone: #4545DA; --tone-bg: #EEEEFC; --tone-grad: linear-gradient(135deg, #4545DA, #68A5D1); --tone-shadow: rgba(69, 69, 218, .55); }
	.umm-sky { --tone: #2F7DB5; --tone-bg: #EAF3FA; --tone-grad: linear-gradient(135deg, #68A5D1, #4545DA); --tone-shadow: rgba(47, 125, 181, .55); }
	.umm-green { --tone: #28713E; --tone-bg: #EAF4EE; --tone-grad: linear-gradient(135deg, #28713E, #4545DA); --tone-shadow: rgba(40, 113, 62, .55); }

	/* page veil under the open panel */
	.umm-veil {
		position: absolute; left: 0; right: 0; top: 100%; height: 100vh; z-index: 4; pointer-events: none;
		background: rgba(24, 22, 52, .28); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
		opacity: 0; visibility: hidden; transition: opacity .35s ease .1s, visibility 0s linear .45s;
	}
	.umm:has(.umm-has:hover) .umm-veil, .umm:has(.umm-has:focus-within) .umm-veil { opacity: 1; visibility: visible; transition: opacity .35s ease .07s, visibility 0s; }
}
@media (min-width: 1025px) and (max-width: 1300px) {
	.umm-link { padding: 14px 8px; font-size: 13.5px; }
	.umm-link::after { left: 8px; right: 8px; }
	.umm-in { grid-template-columns: 1fr 290px; }
}
@media (prefers-reduced-motion: reduce) {
	.umm-panel, .umm-grid > li, .umm-veil { transition: none !important; }
}
