/**
 * ArgentoIA Motion — lightweight CSS effects.
 */

.aim-route { color: inherit; padding-block: clamp(24px, 4vw, 48px); border-block: 1px solid currentColor; }
.aim-route h2 { margin-block: 0 12px; font-size: clamp(1.5rem, 3vw, 2.625rem); }
.aim-route p { max-width: 65ch; }
.aim-route__track { position: relative; height: 2px; margin: 40px 22px 30px; background: color-mix(in srgb, currentColor 25%, transparent); }
.aim-route__fill { position: absolute; inset: 0; background: currentColor; transform-origin: left center; }
.aim-route__marker { position: absolute; inset: 50% auto auto 0; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid currentColor; border-radius: 50%; background: var(--aim-route-background, Canvas); color: inherit; translate: -50% -50%; }
.aim-route__steps { display: flex; justify-content: space-between; gap: 16px; padding-inline: 22px; margin: 0; list-style-position: inside; }
.aim-route__steps li { min-width: 0; overflow-wrap: anywhere; }
.aim-route[data-aim-axis="vertical"] .aim-route__body { display:grid; grid-template-columns:42px minmax(0,1fr); gap:24px; min-height:240px; }
.aim-route[data-aim-axis="vertical"] .aim-route__track { height:auto; width:2px; margin:20px; }
.aim-route[data-aim-axis="vertical"] .aim-route__fill { transform-origin:center top; }
.aim-route[data-aim-axis="vertical"] .aim-route__steps { flex-direction:column; padding:0; margin:0; gap:28px; }
.aim-route__steps [aria-current="step"] { text-decoration:underline; text-underline-offset:5px; }
.aim-sequence-target { translate:var(--aim-sequence-x,0px) var(--aim-sequence-y,0px); opacity:var(--aim-sequence-opacity,1); }
.aim-sequence-target:focus-within { translate:none!important; opacity:1!important; }
[data-aim-focus-state] { transition:translate 180ms ease-out, opacity 180ms ease-out; }
[data-aim-focus-state="dim"] { opacity:var(--aim-focus-dim,.72); }
[data-aim-focus-state="active"] { translate:var(--aim-focus-x,0px) var(--aim-focus-y,-6px); }
.aim-panels { color:inherit; min-width:0; }
.aim-panels h2 { margin-block:0 12px; }
.aim-panels__controls { display:flex; align-items:center; justify-content:flex-end; gap:18px; margin-block:20px; }
.aim-panels__controls[hidden] { display:none; }
.aim-panels__controls button { border:1px solid currentColor; color:inherit; background:transparent; padding:10px 16px; cursor:pointer; font:inherit; }
.aim-panels__controls button:disabled { opacity:.45; cursor:default; }
.aim-panels :focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.aim-panels__viewport { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding:6px 6px 20px; overscroll-behavior-x:contain; }
.aim-panels__panel { position:relative; flex:0 0 min(75vw,440px); scroll-snap-align:start; border:1px solid currentColor; padding:32px; min-width:0; overflow-wrap:anywhere; }
.aim-panels__panel h3 { margin-block:18px 12px; }
.aim-panels__number { font-size:2em; }
.aim-panels[data-aim-axis="vertical"] .aim-panels__viewport { display:block; overflow-x:hidden; overflow-y:auto; max-height:65vh; scroll-snap-type:y mandatory; }
.aim-panels[data-aim-axis="vertical"] .aim-panels__panel { min-height:260px; margin-block-end:24px; }
@media (max-width: 600px) { .aim-route__steps { flex-direction: column; gap: 8px; } }

[data-motion="aim-hover-scale"],
.aim-motion-hover-scale {
	--aim-motion-scale: 1.04;
	--aim-motion-duration: 280ms;
	--aim-motion-ease: ease-out;
	scale: 1;
	transition-property: scale;
	transition-duration: var(--aim-motion-duration);
	transition-timing-function: var(--aim-motion-ease);
}

@media (hover: hover) and (pointer: fine) {
	[data-motion="aim-hover-scale"]:hover,
	.aim-motion-hover-scale:hover {
		scale: var(--aim-motion-scale);
	}
}

[data-motion="aim-hover-scale"]:focus-visible,
[data-motion="aim-hover-scale"]:focus-within,
.aim-motion-hover-scale:focus-visible,
.aim-motion-hover-scale:focus-within {
	scale: var(--aim-motion-scale);
}

@media (prefers-reduced-motion: reduce) {
	.aim-sequence-target, [data-aim-focus-state] { translate:none!important; opacity:1!important; transition:none!important; }
	.aim-panels__viewport { scroll-behavior:auto; }
	[data-motion="aim-hover-scale"],
	.aim-motion-hover-scale {
		transition-duration: 0ms !important;
		scale: 1 !important;
	}
}

.elementor-widget-loop-carousel[data-motion="aim-carousel-accessibility"] .elementor-swiper-button {
	display: flex;
	align-items: center;
	justify-content: center;
	top: 50%;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	line-height: 1;
	transform: translateY(-50%);
}
.elementor-widget-loop-carousel[data-motion="aim-carousel-accessibility"] .elementor-swiper-button-prev { right: auto; left: 12px; }
.elementor-widget-loop-carousel[data-motion="aim-carousel-accessibility"] .elementor-swiper-button-next { right: 12px; left: auto; }
.elementor-widget-loop-carousel[data-motion="aim-carousel-accessibility"] .elementor-swiper-button :is(i, svg) { display: block; margin: 0; }

.aim-panels[data-aim-mode="steps"] .aim-panels__viewport { display: block; overflow: hidden; }
.aim-panels[data-aim-mode="steps"] .aim-panels__panel { width: 100%; min-height: 220px; }
.aim-panels[data-aim-mode="guided"] .aim-panels__viewport { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; overflow: visible; }
.aim-panels[data-aim-mode="guided"] .aim-panels__panel { min-width: 0; width: auto; }
.aim-panels__practice { min-height: 44px; margin-block: 14px; padding: 10px 16px; border: 1px solid currentColor; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.aim-panels__fallback { margin-block: 12px; }
.aim-panels__fallback ol { padding-inline-start: 24px; }

.aim-guided-practice { grid-column: 1 / -1; min-width: 0; padding: clamp(22px, 3vw, 40px); border: 1px solid currentColor; background: color-mix(in srgb, currentColor 5%, transparent); }
.aim-guided-practice[hidden] { display: none !important; }
.aim-guided-practice__status { margin: 0 0 10px; font-size: .9em; }
.aim-guided-practice__steps { margin-block: 20px; padding-inline-start: 1.5em; }
.aim-guided-practice__step { min-height: 2em; }
.aim-guided-practice__completion { margin-block: 20px; font-size: 1.15em; }
.aim-guided-practice__progress { height: 5px; margin-block: 12px 22px; overflow: hidden; background: color-mix(in srgb, currentColor 16%, transparent); transform-origin: left center; }
.aim-guided-practice__progress-fill { display: block; width: 100%; height: 100%; background: currentColor; transform: scaleX(.333); transform-origin: left center; transition: transform 240ms ease-out; }
.aim-guided-practice__controls { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.aim-guided-practice__button { min-height: 44px; padding: 10px 16px; border: 1px solid currentColor; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.aim-guided-practice__button[data-guided-action="next"], .aim-guided-practice__button[data-guided-action="finish"] { background: color-mix(in srgb, currentColor 14%, Canvas); }
.aim-guided-practice__button:disabled { opacity: .45; cursor: default; }
@media (prefers-reduced-motion: reduce) { .aim-guided-practice__progress-fill { transition: none; } }
