/*
 * IMAGE – Design moderne
 * Colors come from the Elementor kit variables so back-office color changes still apply.
 * Every rule is scoped to body.img-modern, which is only present outside the editor.
 */

:root {
	--img-primary: var(--e-global-color-primary, #273f94);
	--img-accent: var(--e-global-color-secondary, #f9a626);
	--img-navy: #011633;
	--img-surface: var(--e-global-color-db6ac0a, #f3f5fc);
	--img-radius-sm: 10px;
	--img-radius: 16px;
	--img-radius-lg: 24px;
	--img-shadow-sm: 0 1px 2px rgba(1, 22, 51, .06), 0 2px 8px rgba(1, 22, 51, .04);
	--img-shadow: 0 2px 4px rgba(1, 22, 51, .04), 0 12px 32px rgba(1, 22, 51, .08);
	--img-shadow-lg: 0 4px 8px rgba(1, 22, 51, .05), 0 24px 48px rgba(1, 22, 51, .14);
	--img-ease: cubic-bezier(.22, .61, .36, 1);
	--img-speed: .25s;
	--img-header-offset: 81px;
}

/* ---------- Global polish ---------- */

html:has(body.img-modern) {
	scroll-behavior: smooth;
}

body.img-modern {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

body.img-modern h1,
body.img-modern h2,
body.img-modern .elementor-heading-title {
	letter-spacing: -.015em;
	text-wrap: balance;
}

body.img-modern p {
	text-wrap: pretty;
}

body.img-modern ::selection {
	background: var(--img-accent);
	color: #fff;
}

body.img-modern a,
body.img-modern button {
	transition: color var(--img-speed) var(--img-ease), background-color var(--img-speed) var(--img-ease), border-color var(--img-speed) var(--img-ease), box-shadow var(--img-speed) var(--img-ease), transform var(--img-speed) var(--img-ease);
}

body.img-modern a:focus-visible,
body.img-modern button:focus-visible,
body.img-modern input:focus-visible,
body.img-modern select:focus-visible,
body.img-modern textarea:focus-visible,
body.img-modern [tabindex]:focus-visible {
	outline: 3px solid var(--img-accent);
	outline-offset: 3px;
	border-radius: 6px;
}

/* ---------- Buttons ---------- */

body.img-modern .elementor-button,
body.img-modern .elementskit-btn,
body.img-modern .ekit-mail-submit,
body.img-modern .elementor-field-type-submit button,
body.img-modern .metform-btn,
body.img-modern input[type="submit"] {
	border-radius: var(--img-radius-sm) !important;
	background-image: linear-gradient(135deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, 0) 60%);
	box-shadow: 0 6px 18px -6px color-mix(in srgb, var(--img-accent) 70%, transparent);
	letter-spacing: .04em;
	transition: transform var(--img-speed) var(--img-ease), box-shadow var(--img-speed) var(--img-ease), filter var(--img-speed) var(--img-ease);
}

body.img-modern .elementor-button:hover,
body.img-modern .elementskit-btn:hover,
body.img-modern .ekit-mail-submit:hover,
body.img-modern .elementor-field-type-submit button:hover,
body.img-modern .metform-btn:hover,
body.img-modern input[type="submit"]:hover {
	transform: translateY(-2px);
	filter: brightness(1.05);
	box-shadow: 0 12px 24px -8px color-mix(in srgb, var(--img-accent) 80%, transparent);
}

body.img-modern .elementor-button:active,
body.img-modern .elementskit-btn:active,
body.img-modern input[type="submit"]:active {
	transform: translateY(0);
}

/* The newsletter field is visually joined to its button. */
body.img-modern .ekit-mail-submit {
	border-radius: 0 var(--img-radius-sm) var(--img-radius-sm) 0 !important;
	box-shadow: none;
}

body.img-modern .ekit-mail-submit:hover {
	transform: none;
}

/* ---------- Header ---------- */

body.img-modern #masthead {
	z-index: 999;
	transition: box-shadow var(--img-speed) var(--img-ease), background-color var(--img-speed) var(--img-ease);
}

@media (min-width: 1025px) {
	/* Negative top lets the contact row scroll away while the navigation row stays pinned. */
	body.img-modern #masthead {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--img-header-offset));
		background: rgba(255, 255, 255, .86);
		-webkit-backdrop-filter: saturate(180%) blur(14px);
		backdrop-filter: saturate(180%) blur(14px);
	}

	body.img-modern #masthead .elementor-section,
	body.img-modern #masthead .elementor-section > .elementor-background-overlay {
		background-color: transparent;
	}

	body.img-modern.img-scrolled #masthead {
		box-shadow: 0 8px 24px -12px rgba(1, 22, 51, .18);
	}

	body.img-modern #masthead .elementskit-navbar-nav > li > a {
		position: relative;
	}

	body.img-modern #masthead .elementskit-navbar-nav > li > a::before {
		content: "";
		position: absolute;
		left: 0;
		bottom: -6px;
		width: 18px;
		height: 2px;
		border-radius: 2px;
		background: var(--img-accent);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform var(--img-speed) var(--img-ease);
	}

	body.img-modern #masthead .elementskit-navbar-nav > li:hover > a::before,
	body.img-modern #masthead .elementskit-navbar-nav > li.current-menu-item > a::before,
	body.img-modern #masthead .elementskit-navbar-nav > li.current-menu-ancestor > a::before {
		transform: scaleX(1);
	}
}

body.img-modern .elementskit-navbar-nav .elementskit-submenu-panel {
	border-radius: var(--img-radius) !important;
	box-shadow: var(--img-shadow-lg) !important;
	overflow: hidden;
	border: 1px solid rgba(1, 22, 51, .06) !important;
}

body.img-modern .elementskit-navbar-nav .elementskit-submenu-panel > li > a {
	transition: color var(--img-speed) var(--img-ease), padding-left var(--img-speed) var(--img-ease), background-color var(--img-speed) var(--img-ease) !important;
}

@media (min-width: 1025px) {
	body.img-modern .elementskit-navbar-nav .elementskit-submenu-panel > li > a:hover {
		padding-left: 32px !important;
		background-color: var(--img-surface) !important;
	}
}

/* ---------- Home hero ---------- */

body.img-modern .elementor-element.elementor-element-25018122:not(.elementor-motion-effects-element-type-background) {
	background-image:
		linear-gradient(90deg, transparent 70%, #fff 70%),
		radial-gradient(ellipse 60% 70% at 12% 18%, color-mix(in srgb, var(--img-primary) 55%, transparent), transparent 70%),
		radial-gradient(ellipse 45% 50% at 62% 92%, color-mix(in srgb, var(--img-accent) 22%, transparent), transparent 70%),
		linear-gradient(var(--img-navy), var(--img-navy));
}

body.img-modern .elementor-element-25018122 .elementor-widget-image img {
	box-shadow: 0 30px 60px -20px rgba(1, 22, 51, .45);
}

/* ---------- Cards: course columns, info boxes, counters, blog posts ---------- */

body.img-modern .elementor-element-42af9114 > .elementor-element-populated,
body.img-modern .elementor-element-18808a2 > .elementor-element-populated,
body.img-modern .elementor-element-5324815 > .elementor-element-populated {
	border-radius: var(--img-radius) !important;
	box-shadow: var(--img-shadow) !important;
	overflow: hidden;
	transition: transform .35s var(--img-ease), box-shadow .35s var(--img-ease) !important;
}

body.img-modern .elementor-element-42af9114 > .elementor-element-populated:hover,
body.img-modern .elementor-element-18808a2 > .elementor-element-populated:hover,
body.img-modern .elementor-element-5324815 > .elementor-element-populated:hover {
	transform: translateY(-6px);
	box-shadow: var(--img-shadow-lg) !important;
}

body.img-modern .elementor-element-42af9114 .elementor-widget-image,
body.img-modern .elementor-element-18808a2 .elementor-widget-image,
body.img-modern .elementor-element-5324815 .elementor-widget-image,
body.img-modern .elementskit-entry-thumb,
body.img-modern .elementor-image-gallery .gallery-icon {
	overflow: hidden;
}

body.img-modern .elementor-element-42af9114 .elementor-widget-image img,
body.img-modern .elementor-element-18808a2 .elementor-widget-image img,
body.img-modern .elementor-element-5324815 .elementor-widget-image img,
body.img-modern .elementskit-entry-thumb img,
body.img-modern .elementor-image-gallery .gallery-icon img {
	transition: transform .6s var(--img-ease);
}

body.img-modern .elementor-element-42af9114:hover .elementor-widget-image img,
body.img-modern .elementor-element-18808a2:hover .elementor-widget-image img,
body.img-modern .elementor-element-5324815:hover .elementor-widget-image img,
body.img-modern .elementskit-post-image-card:hover .elementskit-entry-thumb img,
body.img-modern .elementor-image-gallery .gallery-icon:hover img {
	transform: scale(1.06);
}

body.img-modern .elementskit-infobox {
	transition: transform var(--img-speed) var(--img-ease);
}

body.img-modern .elementskit-infobox .elementskit-info-box-icon {
	transition: transform .35s var(--img-ease), box-shadow .35s var(--img-ease);
}

body.img-modern .elementskit-infobox:hover .elementskit-info-box-icon {
	transform: translateY(-4px) rotate(-4deg);
	box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--img-accent) 60%, transparent);
}

body.img-modern .elementskit-funfact {
	background-color: rgba(255, 255, 255, .7);
	box-shadow: var(--img-shadow-sm);
	transition: transform .35s var(--img-ease), box-shadow .35s var(--img-ease), background-color .35s var(--img-ease);
}

body.img-modern .elementskit-funfact:hover {
	transform: translateY(-6px);
	background-color: #fff;
	box-shadow: var(--img-shadow-lg);
}

body.img-modern .elementskit-funfact .number-percentage-wraper {
	font-variant-numeric: tabular-nums;
}

body.img-modern .elementskit-post-image-card,
body.img-modern .elementskit-blog-block-post,
body.img-modern .elementskit-post-card {
	border-radius: var(--img-radius) !important;
	overflow: hidden;
	box-shadow: var(--img-shadow) !important;
	transition: transform .35s var(--img-ease), box-shadow .35s var(--img-ease);
}

body.img-modern .elementskit-post-image-card:hover,
body.img-modern .elementskit-blog-block-post:hover,
body.img-modern .elementskit-post-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--img-shadow-lg) !important;
}

body.img-modern .elementskit-post-image-card .elementskit-entry-thumb {
	border-radius: 0 !important;
}

body.img-modern .elementor-image-gallery .gallery-icon {
	border-radius: var(--img-radius-sm);
}

/* Icon list check marks get a soft pill behind them. */
body.img-modern .elementor-icon-list-item > .elementor-icon-list-icon,
body.img-modern .elementor-icon-list-item > a > .elementor-icon-list-icon {
	transition: transform var(--img-speed) var(--img-ease);
}

body.img-modern .elementor-icon-list-item:hover > .elementor-icon-list-icon,
body.img-modern .elementor-icon-list-item:hover > a > .elementor-icon-list-icon {
	transform: translateX(3px);
}

/* ---------- Floating avatars of the call-to-action ---------- */

@keyframes img-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

body.img-modern .elementor-element-70818890 .elementor-absolute.elementor-widget-image img {
	animation: img-float 6s ease-in-out infinite;
	box-shadow: var(--img-shadow);
}

body.img-modern .elementor-element-70818890 .elementor-absolute.elementor-widget-image:nth-child(2n) img {
	animation-duration: 7.5s;
	animation-delay: -2s;
}

body.img-modern .elementor-element-70818890 .elementor-absolute.elementor-widget-image:nth-child(3n) img {
	animation-duration: 8.5s;
	animation-delay: -4s;
}

/* ---------- Forms ---------- */

body.img-modern .elementor-field-textual,
body.img-modern .mf-input,
body.img-modern .ekit_form_control,
body.img-modern .elementor-widget-container input[type="text"],
body.img-modern .elementor-widget-container input[type="email"],
body.img-modern .elementor-widget-container input[type="tel"],
body.img-modern .elementor-widget-container textarea,
body.img-modern .elementor-widget-container select {
	border-radius: var(--img-radius-sm) !important;
	transition: border-color var(--img-speed) var(--img-ease), box-shadow var(--img-speed) var(--img-ease) !important;
}

body.img-modern .ekit_form_control {
	border-radius: var(--img-radius-sm) 0 0 var(--img-radius-sm) !important;
}

body.img-modern .elementor-field-textual:focus,
body.img-modern .mf-input:focus,
body.img-modern .ekit_form_control:focus,
body.img-modern .elementor-widget-container input:focus,
body.img-modern .elementor-widget-container textarea:focus,
body.img-modern .elementor-widget-container select:focus {
	border-color: var(--img-accent) !important;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--img-accent) 22%, transparent) !important;
	outline: none;
}

/* ---------- Footer ---------- */

body.img-modern .elementor-element-1e505a16 > .elementor-element-populated {
	border-radius: var(--img-radius-lg) !important;
	box-shadow: var(--img-shadow-lg) !important;
}

body.img-modern .elementor-186 .elementor-icon-list-item a:hover .elementor-icon-list-text,
body.img-modern .elementor-186 .elementor-nav-menu a:hover {
	color: var(--img-accent) !important;
}

body.img-modern .elementor-186 .elementor-nav-menu--main .elementor-item {
	transition: color var(--img-speed) var(--img-ease), padding-left var(--img-speed) var(--img-ease);
}

body.img-modern .elementor-186 .elementor-nav-menu--main .elementor-item:hover {
	padding-left: 4px;
}

/* ---------- Reveal on scroll (only when JS has run) ---------- */

html.img-js body.img-modern [data-elementor-type="wp-page"] > .elementor-element:not(:first-child),
html.img-js body.img-modern [data-elementor-type="wp-post"].elementor-186 > .elementor-element:first-child {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .7s var(--img-ease), transform .7s var(--img-ease);
}

html.img-js body.img-modern .elementor > .elementor-element.img-in {
	opacity: 1;
	transform: none;
}

/* ---------- Scrollbar ---------- */

@supports (scrollbar-color: auto) {
	html:has(body.img-modern) {
		scrollbar-color: color-mix(in srgb, var(--img-primary) 55%, #fff) transparent;
	}
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
	html:has(body.img-modern) {
		scroll-behavior: auto;
	}

	body.img-modern *,
	body.img-modern *::before,
	body.img-modern *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	html.img-js body.img-modern .elementor > .elementor-element {
		opacity: 1 !important;
		transform: none !important;
	}
}
