.aioc_vc_slide .aioc_vc_content_wrapper {
	display: -ms-flexbox;
	display: flex;
	flex-grow: 1;
}
.aioc_vc_slide .aioc_vc_inner_content_wrapper{
	display: -ms-flexbox;
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 20px;
}
/* Zeroes Divi's default module margin-bottom, but not in a vertical Swiper container —
   Swiper sets margin-bottom itself there to space slides. */
.aioc_vertical_carousel .swiper-container:not(.swiper-container-vertical) .aioc_vc_slide {
   margin-bottom: 0 !important;
}
.aioc_vc_slide_wrapper {
	border-style: solid;
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.aioc_vc_image_wrapper {
	line-height: 0;
}
.aioc_vc_image {
	object-fit: cover;
	width: 100%;
	/* height:auto avoids an oversized placeholder image (height:100% needs a defined ancestor). */
	height: auto;
	max-height: 220px;
	aspect-ratio: 16 / 9;
	border-style: solid;
}
.aioc_icon_shape_circle {
	border-radius: 50%;
	padding: 12px;
}
.aioc_icon_shape_square {
	padding: 12px;
}
.aioc_icon_shape_hexagon {
	position: relative;
	z-index: 99;
	margin-left: -40.25%;
	padding: 12px;
	transform: rotate(-30deg);
}
.aioc_icon_hexagon_wrapper {
	display: inline-block;
	position: relative;
}
.aioc_icon_hexagon_wrapper .aioc_icon_hexagon_inner_wrap {
	backface-visibility: hidden;
	transform: rotate(30deg);
}
.aioc_icon_hexagon_wrapper .aioc_icon_hexagon {
	width: 57.735%;
	height: 100%;
	margin: auto;
}
.aioc_icon_hexagon_wrapper .aioc_icon_hexagon:before {
	transform: rotate(60deg) translateZ(0);
}
.aioc_icon_hexagon_wrapper .aioc_icon_hexagon:after,
.aioc_icon_hexagon_wrapper .aioc_icon_hexagon:before {
	position: absolute;
	top: 0;
	right: 21.1325%;
	background-color: inherit;
	width: inherit;
	height: inherit;
	box-sizing: border-box;
	backface-visibility: hidden;
	content: "";
}
.aioc_icon_hexagon_wrapper .aioc_icon_hexagon:after {
	transform: rotate(-60deg) translateZ(0);
}
.aioc_vc_slide_wrapper .et_pb_button{
	display: inline-block;
	text-decoration: none;
}

/* Cube needs a fixed height for its 3D faces; other effects size to content (script.min.js). */
.aioc_vc_layout_classic .swiper-container-cube {
	height: 500px;
}
.aioc_vc_layout_classic .swiper-container-cube .swiper-wrapper {
	height: 100%;
}
.aioc_vc_layout_classic .swiper-container-cube .swiper-slide.aioc_vc_slide {
	height: 100%;
}
.aioc_vc_layout_classic .swiper-slide.aioc_vc_slide {
	height: auto;
}

/* Cube: something in the VB cascade beats Swiper's own visibility:visible override
   (fine on front end) — force it here; 3D rotation still hides non-facing sides. */
.aioc_vc_layout_classic .swiper-container-cube .swiper-slide {
	visibility: visible !important;
}

/* Compact — a custom receding stack, not a Swiper effect. Step/inset geometry
   comes from aioc_get_stack_step() in script.min.js. */
.aioc_vc_stack {
	position: relative;
	cursor: pointer;
}
.aioc_vc_stack .aioc_vc_slide {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	/* Swiper's own width:100% otherwise overrides right, so the card overhangs. */
	width: auto;
	/* auto avoids a feedback loop with Swiper's .swiper-slide{height:100%}. */
	height: auto;
	margin-bottom: 0 !important;
	/* filter, not box-shadow, so it doesn't fight the user's own Box Shadow setting. */
	filter: none;
	transition: top var(--aioc-vc-dur, .45s) cubic-bezier(.4,0,.2,1),
				left var(--aioc-vc-dur, .45s) cubic-bezier(.4,0,.2,1),
				right var(--aioc-vc-dur, .45s) cubic-bezier(.4,0,.2,1),
				filter var(--aioc-vc-dur, .45s) ease;
}
/* Depth-fade opacity lives on the wrapper (styleCard() in script.min.js). */
.aioc_vc_stack .aioc_vc_slide .aioc_vc_slide_wrapper {
	transition: opacity var(--aioc-vc-dur, .45s) ease;
}
.aioc_vc_stack .aioc_vc_slide.aioc_vc_stack_depth_0 {
	filter: drop-shadow(0 16px 20px rgba(15,23,42,.15));
}
.aioc_vc_stack .aioc_vc_slide.aioc_vc_stack_depth_1 {
	filter: drop-shadow(0 6px 8px rgba(15,23,42,.05));
}
/* Keeps arrows above the stack cards, which use z-index up to 50. */
.aioc_vc_layout_compact .aioc_swiper_navigation .swiper-button-next,
.aioc_vc_layout_compact .aioc_swiper_navigation .swiper-button-prev {
	z-index: 60;
}

/* Vertical Inside/Outside arrows: Prev centered on top, Next centered at the bottom. */
.aioc_vertical_carousel .aioc_arrows_vertical_inside .swiper-button-prev,
.aioc_vertical_carousel .aioc_arrows_vertical_inside .swiper-button-next,
.aioc_vertical_carousel .aioc_arrows_vertical_outside .swiper-button-prev,
.aioc_vertical_carousel .aioc_arrows_vertical_outside .swiper-button-next {
	left: 50%;
	right: auto;
}
.aioc_vertical_carousel .aioc_arrows_vertical_inside .swiper-button-prev {
	top: 0;
	bottom: auto;
	transform: translateX(-50%);
}
.aioc_vertical_carousel .aioc_arrows_vertical_inside .swiper-button-next {
	bottom: 0;
	top: auto;
	transform: translateX(-50%);
}
.aioc_vertical_carousel .aioc_arrows_vertical_outside .swiper-button-prev {
	top: 0;
	bottom: auto;
	transform: translateX(-50%) translateY(calc(-100% - 10px));
}
.aioc_vertical_carousel .aioc_arrows_vertical_outside .swiper-button-next {
	bottom: 0;
	top: auto;
	transform: translateX(-50%) translateY(calc(100% + 10px));
}

/* Classic: full-width top image in both directions (Compact's own sizing is untouched). */
.aioc_vc_layout_classic .aioc_vc_image_wrapper {
	width: 100% !important;
}

/* Classic: card depth — purely additive, doesn't touch the user's own border/radius settings. */
.aioc_vc_layout_classic .aioc_vc_slide_wrapper {
	box-shadow: 0 4px 14px rgba(15, 23, 42, .08);
}

/* Compact card is a horizontal row (icon/image left, text right); Classic stays stacked. */
.aioc_vc_layout_compact .aioc_vc_slide_wrapper {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 20px;
}
.aioc_vc_layout_compact .aioc_vc_icon_wrapper,
.aioc_vc_layout_compact .aioc_vc_image_wrapper {
	flex: none;
	margin-bottom: 0;
}
.aioc_vc_layout_compact .aioc_vc_image_wrapper {
	/* Size comes from the Image Width/Height fields (default 56px), not hardcoded here. */
	border-radius: 8px;
	overflow: hidden;
}
.aioc_vc_layout_compact .aioc_vc_image {
	width: 100%;
	height: auto;
	max-height: none;
	aspect-ratio: 1 / 1;
}
.aioc_vc_layout_compact .aioc_vc_content_wrapper {
	min-width: 0;
}
.aioc_vc_layout_compact .aioc_vc_inner_content_wrapper {
	padding: 0;
}
