.aigg-elementor-characters {
	width: 100%;
}

.aigg-elementor-characters__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.aigg-elementor-characters--ltr .aigg-elementor-characters__grid {
	direction: ltr;
}

.aigg-elementor-characters--rtl .aigg-elementor-characters__grid {
	direction: rtl;
}

.aigg-elementor-card {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	min-height: 100%;
	border: 1px solid #d7ded9;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(21, 30, 26, 0.1);
	overflow: hidden;
	transform: translateY(0) scale(1);
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.aigg-elementor-card::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
	background: linear-gradient(115deg, transparent 0%, transparent 36%, rgba(255, 255, 255, 0.4) 46%, transparent 58%, transparent 100%);
	transform: translateX(-140%);
	transition: transform 520ms ease;
}

.aigg-elementor-card:hover,
.aigg-elementor-card:focus-within {
	border-color: #9fb8ad;
	box-shadow: 0 18px 40px rgba(18, 29, 24, 0.16);
	transform: translateY(-4px) scale(1.015);
}

.aigg-elementor-card:hover::before,
.aigg-elementor-card:focus-within::before {
	transform: translateX(140%);
}

.aigg-elementor-card--hidden {
	display: none;
}

.aigg-elementor-card__click-target {
	position: absolute;
	inset: 0;
	z-index: 6;
	display: block;
	border-radius: inherit;
	text-decoration: none;
}

.aigg-elementor-card__click-target:focus-visible {
	outline: 3px solid #235640;
	outline-offset: -3px;
}

.aigg-elementor-card__media {
	position: relative;
	aspect-ratio: 4 / 5;
	background: #edf2ef;
	overflow: hidden;
}

.aigg-elementor-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(12, 20, 17, 0.04) 0%, rgba(12, 20, 17, 0.22) 100%);
	pointer-events: none;
	transition: background 220ms ease;
}

.aigg-elementor-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform 320ms ease, filter 320ms ease;
}

.aigg-elementor-card:hover .aigg-elementor-card__image,
.aigg-elementor-card:focus-within .aigg-elementor-card__image {
	filter: saturate(1.08) contrast(1.04);
	transform: scale(1.045);
}

.aigg-elementor-card__media--coming-soon .aigg-elementor-card__image {
	filter: grayscale(1);
	opacity: 0.58;
}

.aigg-elementor-card:hover .aigg-elementor-card__media--coming-soon .aigg-elementor-card__image,
.aigg-elementor-card:focus-within .aigg-elementor-card__media--coming-soon .aigg-elementor-card__image {
	filter: grayscale(1);
	opacity: 0.58;
}

.aigg-elementor-card__media-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: rgba(18, 24, 22, 0.32);
	pointer-events: none;
}
.aigg-elementor-card__image-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #53615a;
	font-size: 14px;
}

.aigg-elementor-card__particles {
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
	overflow: hidden;
}

.aigg-elementor-card__particles span {
	position: absolute;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 0 14px rgba(255, 255, 255, 0.9);
	opacity: 0;
	transform: translate3d(0, 0, 0) scale(0.6);
}

.aigg-elementor-card__particles span:nth-child(1) { left: 18%; top: 42%; --aigg-particle-x: -18px; }
.aigg-elementor-card__particles span:nth-child(2) { left: 28%; top: 68%; width: 5px; height: 5px; background: #7bdcb5; --aigg-particle-x: 14px; }
.aigg-elementor-card__particles span:nth-child(3) { left: 48%; top: 36%; width: 6px; height: 6px; background: #f4d35e; --aigg-particle-x: -8px; }
.aigg-elementor-card__particles span:nth-child(4) { left: 68%; top: 56%; width: 8px; height: 8px; background: #8ecae6; --aigg-particle-x: 18px; }
.aigg-elementor-card__particles span:nth-child(5) { left: 78%; top: 32%; width: 4px; height: 4px; --aigg-particle-x: -14px; }
.aigg-elementor-card__particles span:nth-child(6) { left: 38%; top: 78%; width: 5px; height: 5px; background: #ffaf87; --aigg-particle-x: 10px; }
.aigg-elementor-card__particles span:nth-child(7) { left: 84%; top: 72%; width: 6px; height: 6px; background: #7bdcb5; --aigg-particle-x: -22px; }
.aigg-elementor-card__particles span:nth-child(8) { left: 12%; top: 24%; width: 4px; height: 4px; background: #8ecae6; --aigg-particle-x: 20px; }

.aigg-elementor-card:hover .aigg-elementor-card__particles span,
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span {
	animation: aigg-elementor-particle-rise 820ms ease-out both;
}

.aigg-elementor-card:hover .aigg-elementor-card__particles span:nth-child(2),
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span:nth-child(2) { animation-delay: 45ms; }
.aigg-elementor-card:hover .aigg-elementor-card__particles span:nth-child(3),
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span:nth-child(3) { animation-delay: 90ms; }
.aigg-elementor-card:hover .aigg-elementor-card__particles span:nth-child(4),
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span:nth-child(4) { animation-delay: 135ms; }
.aigg-elementor-card:hover .aigg-elementor-card__particles span:nth-child(5),
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span:nth-child(5) { animation-delay: 180ms; }
.aigg-elementor-card:hover .aigg-elementor-card__particles span:nth-child(6),
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span:nth-child(6) { animation-delay: 225ms; }
.aigg-elementor-card:hover .aigg-elementor-card__particles span:nth-child(7),
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span:nth-child(7) { animation-delay: 270ms; }
.aigg-elementor-card:hover .aigg-elementor-card__particles span:nth-child(8),
.aigg-elementor-card:focus-within .aigg-elementor-card__particles span:nth-child(8) { animation-delay: 315ms; }

@keyframes aigg-elementor-particle-rise {
	0% { opacity: 0; transform: translate3d(0, 10px, 0) scale(0.45); }
	24% { opacity: 0.9; }
	100% { opacity: 0; transform: translate3d(var(--aigg-particle-x, 10px), -42px, 0) scale(1.25); }
}

.aigg-elementor-card__body {
	display: flex;
	position: relative;
	z-index: 2;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 16px;
}

.aigg-elementor-card__id {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
	color: #235640;
	word-break: break-word;
}

.aigg-elementor-card__description {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: #303634;
}


.aigg-elementor-characters__notice {
	padding: 14px 16px;
	border: 1px solid #cfd8d2;
	border-radius: 8px;
	background: #f5f8f6;
	color: #1d1f1f;
	font-size: 15px;
	line-height: 1.6;
}

.aigg-elementor-characters__sentinel {
	height: 1px;
}

@media (max-width: 767px) {
	.aigg-elementor-characters__grid {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aigg-elementor-card,
	.aigg-elementor-card::before,
	.aigg-elementor-card__image {
		transition: none;
	}

	.aigg-elementor-card:hover,
	.aigg-elementor-card:focus-within,
	.aigg-elementor-card:hover .aigg-elementor-card__image,
	.aigg-elementor-card:focus-within .aigg-elementor-card__image {
		transform: none;
	}

	.aigg-elementor-card:hover .aigg-elementor-card__particles span,
	.aigg-elementor-card:focus-within .aigg-elementor-card__particles span {
		animation: none;
	}
}
.aigg-elementor-characters--ratio-4-5 .aigg-elementor-card__media { aspect-ratio: 4 / 5; }
.aigg-elementor-characters--ratio-3-4 .aigg-elementor-card__media { aspect-ratio: 3 / 4; }
.aigg-elementor-characters--ratio-1-1 .aigg-elementor-card__media { aspect-ratio: 1 / 1; }
.aigg-elementor-characters--ratio-16-9 .aigg-elementor-card__media { aspect-ratio: 16 / 9; }

.aigg-elementor-card--media-only .aigg-elementor-card__media {
	flex: 1 1 auto;
	height: 100%;
	min-height: 100%;
	aspect-ratio: auto;
}

.aigg-elementor-characters--no-hover .aigg-elementor-card,
.aigg-elementor-characters--no-hover .aigg-elementor-card::before,
.aigg-elementor-characters--no-hover .aigg-elementor-card__image {
	transition: none;
}

.aigg-elementor-characters--no-hover .aigg-elementor-card:hover,
.aigg-elementor-characters--no-hover .aigg-elementor-card:focus-within,
.aigg-elementor-characters--no-hover .aigg-elementor-card:hover .aigg-elementor-card__image,
.aigg-elementor-characters--no-hover .aigg-elementor-card:focus-within .aigg-elementor-card__image {
	border-color: #d7ded9;
	box-shadow: 0 10px 24px rgba(21, 30, 26, 0.1);
	filter: none;
	transform: none;
}

.aigg-elementor-characters--no-hover .aigg-elementor-card:hover::before,
.aigg-elementor-characters--no-hover .aigg-elementor-card:focus-within::before {
	transform: translateX(-140%);
}

.aigg-elementor-characters--no-particles .aigg-elementor-card__particles {
	display: none;
}

.aigg-elementor-card__badge {
	--aigg-badge-offset-x: 10px;
	--aigg-badge-offset-y: 10px;
	position: absolute;
	top: var(--aigg-badge-offset-y);
	left: var(--aigg-badge-offset-x);
	z-index: 5;
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 4px 8px;
	border-radius: 8px;
	background: rgba(29, 31, 31, 0.78);
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	box-shadow: 0 8px 18px rgba(12, 20, 17, 0.18);
}

.aigg-badge-position-top-left .aigg-elementor-card__badge {
	top: var(--aigg-badge-offset-y);
	right: auto;
	bottom: auto;
	left: var(--aigg-badge-offset-x);
}

.aigg-badge-position-top-right .aigg-elementor-card__badge {
	top: var(--aigg-badge-offset-y);
	right: var(--aigg-badge-offset-x);
	bottom: auto;
	left: auto;
}

.aigg-badge-position-bottom-left .aigg-elementor-card__badge {
	top: auto;
	right: auto;
	bottom: var(--aigg-badge-offset-y);
	left: var(--aigg-badge-offset-x);
}

.aigg-badge-position-bottom-right .aigg-elementor-card__badge {
	top: auto;
	right: var(--aigg-badge-offset-x);
	bottom: var(--aigg-badge-offset-y);
	left: auto;
}

.aigg-elementor-characters__upgrade-link {
	display: inline-flex;
	margin-inline-start: 8px;
	color: #235640;
	font-weight: 700;
	text-decoration: underline;
}

.aigg-elementor-card--filtered {
	display: none !important;
}

.aigg-taxonomy-filter {
	--aigg-filter-align: flex-start;
	--aigg-filter-gap: 10px;
	--aigg-filter-icon-gap: 6px;
	display: flex;
	width: 100%;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--aigg-filter-gap);
	justify-content: var(--aigg-filter-align);
}

.aigg-taxonomy-filter__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--aigg-filter-icon-gap);
	min-height: 36px;
	padding: 8px 14px;
	border: 1px solid #cfd8d2;
	border-radius: 8px;
	background: #ffffff;
	color: #1f2a25;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.aigg-taxonomy-filter--pills .aigg-taxonomy-filter__item {
	border-radius: 999px;
}


.aigg-taxonomy-filter__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	color: currentColor;
	flex: 0 0 auto;
}

.aigg-taxonomy-filter__icon svg,
.aigg-taxonomy-filter__icon i {
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.aigg-taxonomy-filter__icon img {
	display: block;
	width: 1em;
	height: 1em;
	object-fit: contain;
}

.aigg-taxonomy-filter__label {
	display: inline-flex;
	align-items: center;
}

.aigg-taxonomy-filter__item:hover,
.aigg-taxonomy-filter__item:focus-visible {
	border-color: #8eaaa0;
	background: #eef5f1;
	color: #123529;
	outline: none;
	box-shadow: 0 8px 18px rgba(21, 30, 26, 0.1);
}

.aigg-taxonomy-filter__item.is-active {
	border-color: #235640;
	background: #235640;
	color: #ffffff;
}

.aigg-elementor-carousel {
	position: relative;
	width: 100%;
	--aigg-carousel-gap: 20px;
	--aigg-carousel-slides-per-view: 1;
	--aigg-carousel-arrow-size: 40px;
	--aigg-carousel-arrow-offset: 8px;
	--aigg-carousel-dot-size: 10px;
}

.aigg-carousel__swiper {
	overflow: hidden;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}

.aigg-carousel__swiper.is-dragging,
.aigg-elementor-carousel.is-dragging .aigg-carousel__swiper {
	cursor: grabbing;
}

.aigg-carousel__swiper .swiper-wrapper {
	display: flex;
	align-items: stretch;
	gap: var(--aigg-carousel-gap);
	transition: transform 320ms ease;
	will-change: transform;
	cursor: grab;
}

.aigg-carousel__swiper .swiper-slide {
	flex: 0 0 calc((100% - (var(--aigg-carousel-gap) * (var(--aigg-carousel-slides-per-view) - 1))) / var(--aigg-carousel-slides-per-view));
	width: calc((100% - (var(--aigg-carousel-gap) * (var(--aigg-carousel-slides-per-view) - 1))) / var(--aigg-carousel-slides-per-view));
	min-width: 0;
	height: auto;
}

.aigg-carousel-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: 8px;
	border: 1px solid #d7ded9;
	background: #ffffff;
	box-shadow: 0 10px 24px rgba(21, 30, 26, 0.1);
	overflow: hidden;
	isolation: isolate;
}

.aigg-carousel-card__media {
	position: relative;
	aspect-ratio: 4 / 5;
	background: #edf2ef;
	overflow: hidden;
}

.aigg-elementor-carousel--ratio-4-5 .aigg-carousel-card__media { aspect-ratio: 4 / 5; }
.aigg-elementor-carousel--ratio-3-4 .aigg-carousel-card__media { aspect-ratio: 3 / 4; }
.aigg-elementor-carousel--ratio-1-1 .aigg-carousel-card__media { aspect-ratio: 1 / 1; }
.aigg-elementor-carousel--ratio-16-9 .aigg-carousel-card__media { aspect-ratio: 16 / 9; }

.aigg-carousel-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(12, 20, 17, 0.04) 0%, rgba(12, 20, 17, 0.22) 100%);
	pointer-events: none;
	transition: background 220ms ease;
}

.aigg-carousel-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform 320ms ease, filter 320ms ease;
	user-drag: none;
	-webkit-user-drag: none;
	user-select: none;
	-webkit-user-select: none;
	pointer-events: none;
}

.aigg-elementor-carousel:not(.aigg-elementor-carousel--no-hover) .aigg-carousel-card:hover .aigg-carousel-card__image,
.aigg-elementor-carousel:not(.aigg-elementor-carousel--no-hover) .aigg-carousel-card:focus-within .aigg-carousel-card__image {
	filter: saturate(1.08) contrast(1.04);
	transform: scale(1.045);
}

.aigg-carousel-card__media--coming-soon .aigg-carousel-card__image {
	filter: grayscale(1);
	opacity: 0.58;
}

.aigg-elementor-carousel:not(.aigg-elementor-carousel--no-hover) .aigg-carousel-card__media--coming-soon:hover .aigg-carousel-card__image,
.aigg-elementor-carousel:not(.aigg-elementor-carousel--no-hover) .aigg-carousel-card__media--coming-soon:focus-within .aigg-carousel-card__image {
	filter: grayscale(1);
	opacity: 0.58;
}

.aigg-carousel-card__media-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: rgba(18, 24, 22, 0.32);
	pointer-events: none;
}

.aigg-carousel-card__image-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #53615a;
	font-size: 14px;
}

.aigg-carousel-card__body {
	position: relative;
	z-index: 2;
	padding: 16px;
}

.aigg-carousel-card__title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: #1f2a25;
}

.aigg-carousel-card__particles {
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
	overflow: hidden;
}

.aigg-carousel-card__particles span {
	position: absolute;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 0 14px rgba(255, 255, 255, 0.9);
	opacity: 0;
	transform: translate3d(0, 0, 0) scale(0.6);
}

.aigg-carousel-card__particles span:nth-child(1) { left: 18%; top: 42%; --aigg-particle-x: -18px; }
.aigg-carousel-card__particles span:nth-child(2) { left: 28%; top: 68%; width: 5px; height: 5px; background: #7bdcb5; --aigg-particle-x: 14px; }
.aigg-carousel-card__particles span:nth-child(3) { left: 48%; top: 36%; width: 6px; height: 6px; background: #f4d35e; --aigg-particle-x: -8px; }
.aigg-carousel-card__particles span:nth-child(4) { left: 68%; top: 56%; width: 8px; height: 8px; background: #8ecae6; --aigg-particle-x: 18px; }
.aigg-carousel-card__particles span:nth-child(5) { left: 78%; top: 32%; width: 4px; height: 4px; --aigg-particle-x: -14px; }
.aigg-carousel-card__particles span:nth-child(6) { left: 38%; top: 78%; width: 5px; height: 5px; background: #ffaf87; --aigg-particle-x: 10px; }
.aigg-carousel-card__particles span:nth-child(7) { left: 84%; top: 72%; width: 6px; height: 6px; background: #7bdcb5; --aigg-particle-x: -22px; }
.aigg-carousel-card__particles span:nth-child(8) { left: 12%; top: 24%; width: 4px; height: 4px; background: #8ecae6; --aigg-particle-x: 20px; }

.aigg-elementor-carousel:not(.aigg-elementor-carousel--no-particles) .aigg-carousel-card:hover .aigg-carousel-card__particles span,
.aigg-elementor-carousel:not(.aigg-elementor-carousel--no-particles) .aigg-carousel-card:focus-within .aigg-carousel-card__particles span {
	animation: aigg-elementor-particle-rise 820ms ease-out both;
}

.aigg-elementor-carousel--no-particles .aigg-carousel-card__particles {
	display: none;
}

.aigg-carousel-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	padding: 6px 10px;
	border-radius: 999px;
	background: #1f2a25;
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.1;
}

.aigg-carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 6;
	width: var(--aigg-carousel-arrow-size);
	height: var(--aigg-carousel-arrow-size);
	border: 0;
	border-radius: 999px;
	background: rgba(31, 42, 37, 0.82);
	color: #ffffff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	line-height: 1;
	font-size: 18px;
	transition: opacity 180ms ease, background 180ms ease, transform 180ms ease;
}

.aigg-carousel__arrow-icon {
	display: block;
	width: 0.7em;
	height: 0.7em;
	border-top: 0.16em solid currentColor;
	border-right: 0.16em solid currentColor;
	box-sizing: border-box;
	flex: 0 0 auto;
}

.aigg-carousel__arrow--prev .aigg-carousel__arrow-icon {
	transform: translateX(1px) rotate(-135deg);
}

.aigg-carousel__arrow--next .aigg-carousel__arrow-icon {
	transform: translateX(-1px) rotate(45deg);
}

.aigg-carousel__arrow:disabled {
	opacity: 0.45;
	cursor: default;
}

.aigg-elementor-carousel--arrows-inside .aigg-carousel__arrow--prev { left: var(--aigg-carousel-arrow-offset); }
.aigg-elementor-carousel--arrows-inside .aigg-carousel__arrow--next { right: var(--aigg-carousel-arrow-offset); }
.aigg-elementor-carousel--arrows-outside .aigg-carousel__arrow--prev { left: calc(var(--aigg-carousel-arrow-offset) * -1); }
.aigg-elementor-carousel--arrows-outside .aigg-carousel__arrow--next { right: calc(var(--aigg-carousel-arrow-offset) * -1); }

.aigg-carousel__pagination {
	position: relative;
	z-index: 7;
	margin-top: 14px;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--aigg-carousel-dot-size);
	pointer-events: auto;
}

.aigg-elementor-carousel .swiper-pagination-bullet {
	display: inline-block;
	appearance: none;
	-webkit-appearance: none;
	width: var(--aigg-carousel-dot-size);
	height: var(--aigg-carousel-dot-size);
	min-width: var(--aigg-carousel-dot-size);
	min-height: var(--aigg-carousel-dot-size);
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #c0cac4;
	opacity: 1;
	cursor: pointer;
	box-sizing: border-box;
	flex: 0 0 auto;
	pointer-events: auto;
}

.aigg-elementor-carousel .swiper-pagination-bullet-active {
	background: #235640;
}
