@layer alg-wps-base, alg-wps-settings;
@layer alg-wps-base {
.wp-block-alg-alg-div.alg-wps--div {
	box-sizing: border-box;
}

.wp-block-alg-alg-div.alg-wps--div *,
.wp-block-alg-alg-div.alg-wps--div *::before,
.wp-block-alg-alg-div.alg-wps--div *::after {
	box-sizing: border-box;
}

.alg-wps--div--has-link {
	color: inherit;
	cursor: pointer;
	text-decoration: none;
}

.alg-wps--div--has-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.alg-wps--div__dynamic-content {
	display: inline-block;
}

.alg-wps--div--aos[data-alg-aos] {
	opacity: 0;
	transition-property: opacity, transform;
	transition-duration: var(--alg-aos-duration, 650ms);
	transition-delay: var(--alg-aos-delay, 0ms);
	transition-timing-function: var(--alg-aos-easing, ease-out);
	will-change: opacity, transform;
}

.alg-wps--div--aos[data-alg-aos="fade"] {
	transform: none;
}

.alg-wps--div--aos[data-alg-aos="fade-up"] {
	transform: translate3d(0, 28px, 0);
}

.alg-wps--div--aos[data-alg-aos="fade-down"] {
	transform: translate3d(0, -28px, 0);
}

.alg-wps--div--aos[data-alg-aos="fade-left"] {
	transform: translate3d(28px, 0, 0);
}

.alg-wps--div--aos[data-alg-aos="fade-right"] {
	transform: translate3d(-28px, 0, 0);
}

.alg-wps--div--aos[data-alg-aos="zoom-in"] {
	transform: scale(.94);
}

.alg-wps--div--aos.is-in-view {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.alg-wps--div--aos[data-alg-aos] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

.alg-wps--text,
.alg-wps--media {
	box-sizing: border-box;
}
/* Reserve configured/intrinsic media dimensions before external assets load.
 * The variables are internal first-paint hints only; normal custom width/height
 * declarations override these zero-specificity defaults without !important. */
:where(.alg-wps--media__item) {
	box-sizing: border-box;
	display: block;
	max-width: 100%;
	width: var(--alg-wps-critical-media-width, auto);
	height: var(--alg-wps-critical-media-height, auto);
	aspect-ratio: var(--alg-wps-critical-media-aspect-ratio, auto);
}
:where(img.alg-wps--media__item, video.alg-wps--media__item) {
	object-fit: contain;
}
.alg-wps--media__file {
	display: inline-flex;
	align-items: center;
	gap: .35em;
}

/* Utility class for ALG Text conditional pricing states. */

/* ALG CSS Counters */
.alg-wps--css-counter-target {
	counter-increment: alg-wps-css-counter;
}

.alg-wps--css-counter-target > .alg--css-counters {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.alg-wps--css-counter-target > .alg--css-counters::before {
	content: attr(data-alg-wps-css-counter-text);
}

/* Backward compatibility for cached markup created before output templates. */
.alg-wps--css-counter-target > .alg--css-counters:not([data-alg-wps-css-counter-text])::before {
	content: attr(data-alg-wps-css-counter-index);
}

.alg-wps--css-counter-target > .alg--css-counters[data-alg-wps-css-counter-output="current_total"]:not([data-alg-wps-css-counter-text])::before {
	content: attr(data-alg-wps-css-counter-index) "/" attr(data-alg-wps-css-counter-total);
}

.alg-wps--css-counter-target > .alg--css-counters:not([data-alg-wps-css-counter-index]):not([data-alg-wps-css-counter-text])::before {
	content: counter(alg-wps-css-counter);
}

.alg-wps--media__caption {
	display: block;
	margin-top: 0.5em;
}

/* Shared icon system: ALG Text prefix/suffix icons and standalone ALG Icon. */
.alg-wps--icon,
.alg-wps--icon-element,
.alg-wps--text-icon {
	box-sizing: border-box;
}

.alg-wps--icon {
	line-height: 1;
	text-decoration: none;
}

.alg-wps--icon--has-link {
	cursor: pointer;
}

.alg-wps--icon-element {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	line-height: 1;
}
:where(.alg-wps--icon-element) {
	font-size: var(--alg-wps-critical-icon-size, 1em);
	width: var(--alg-wps-critical-icon-width, auto);
	height: var(--alg-wps-critical-icon-height, auto);
	overflow: hidden;
}

.alg-wps--icon-element .dashicons,
.alg-wps--icon-element [class*="fa-"],
.alg-wps--icon-element [class^="fa-"],
.alg-wps--icon-element [class*="flaticon"],
.alg-wps--icon-element [class*="icon-"] {
	font-size: 1em;
	width: 1em;
	height: 1em;
	line-height: 1;
}

.alg-wps--icon-element img,
.alg-wps--icon-element svg {
	display: block;
	width: 1em;
	height: 1em;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	fill: currentColor;
}

/* Image-based Direct Text prefix/suffix icons use the <img> itself as the
 * icon root. A wrapper is retained only when Hover Media needs two layers. */
img.alg-wps--icon-element.is-media {
	display: inline-block;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	line-height: 1;
}

.alg-wps--text-icon {
	white-space: nowrap;
}

/* Shared Hover Media engine for image-based media, icons, markers, and future visual slots. */
:where(.alg-wps--hover-media-swap) {
	position: relative;
	display: inline-grid;
	vertical-align: inherit;
}

:where(.alg-wps--media__hover-swap) {
	display: grid;
	width: fit-content;
	max-width: 100%;
}

:where(.alg-wps--hover-media-swap > *) {
	grid-area: 1 / 1;
}

:where(.alg-wps--hover-media-swap > :first-child),
:where(.alg-wps--hover-media__primary),
:where(.alg-wps--hover-media__alternate) {
	transition-property: opacity;
	transition-duration: var(--alg-wps-hover-media-duration, 180ms);
	transition-timing-function: var(--alg-wps-hover-media-timing, ease);
}

:where(.alg-wps--hover-media__alternate) {
	opacity: 0;
	pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
	:where(.alg-wps--hover-media-swap:hover > :first-child),
	:where(.alg-wps--hover-media-swap:hover > .alg-wps--hover-media__primary) {
		opacity: 0;
	}

	:where(.alg-wps--hover-media-swap:hover > .alg-wps--hover-media__alternate) {
		opacity: 1;
	}
}

:where(.alg-wps--hover-media-swap.is-hover-media-unavailable > :first-child),
:where(.alg-wps--hover-media-swap.is-hover-media-unavailable > .alg-wps--hover-media__primary),
:where(.alg-wps--hover-media-swap.is-hover-media-unavailable:hover > :first-child),
:where(.alg-wps--hover-media-swap.is-hover-media-unavailable:hover > .alg-wps--hover-media__primary) {
	opacity: 1;
}

:where(.alg-wps--hover-media-swap.is-hover-media-unavailable > .alg-wps--hover-media__alternate) {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	:where(.alg-wps--hover-media-swap > *) {
		transition-duration: 0s;
	}
}


}
