/**
 * Modern Accordion Widget Styles
 * 
 * Modern accordion with GSAP animations and animated icons
 *
 * @package Serenity_CTA_Elements
 */

/* ================= ACCORDION WRAPPER ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-wrapper {
	width: 100%;
	position: relative;
	display: block;
}

.elementor-widget-serenity_modern_accordion {
	overflow: visible !important;
}

.elementor-widget-serenity_modern_accordion .elementor-widget-container {
	overflow: visible !important;
}

/* ================= ACCORDION ITEM ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-item {
	position: relative;
	overflow: visible;
	margin-bottom: 0;
	display: block;
	width: 100%;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item:not(:last-child) {
	margin-bottom: 10px;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-header {
	background-color: #e8e8e8;
}

/* ================= ACCORDION HEADER ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	user-select: none;
	transition: all 0.3s ease;
	position: relative;
	z-index: 2;
	width: 100%;
	min-height: 50px;
	padding: 15px 20px;
	background-color: #f5f5f5;
	border-radius: 8px;
	gap: 15px;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-header:hover {
	opacity: 0.9;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-header.icon-left {
	flex-direction: row;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-header.icon-right {
	flex-direction: row;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-header.icon-right .serenity-accordion-icon {
	order: 2;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-header.icon-right .serenity-accordion-title {
	order: 1;
}

/* ================= ACCORDION TITLE ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-title {
	flex: 1;
	margin: 0;
	padding: 0;
	transition: color 0.3s ease;
	display: block;
	line-height: 1.4;
}

/* ================= ACCORDION ICON ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 1;
	width: 32px;
	height: 32px;
	min-width: 32px;
	font-size: 16px;
	position: relative;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon i,
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon svg {
	display: block;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon img {
	display: block;
	object-fit: contain;
}

/* Animated Arrow Icon */
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon {
	--color: currentColor;
	--duration: 0.3s;
	--ripple-duration: 0.4s;
	--direction: 1;
	width: 32px;
	height: 32px;
	padding: 0;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	outline: none;
	position: relative;
	border: none;
	background: none;
	cursor: pointer;
	-webkit-appearance: none;
	-webkit-tap-highlight-color: transparent;
	transform: rotate(0deg);
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon:before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	transform: scale(0.25);
	opacity: 0;
	border-radius: 50%;
	background: var(--color);
	pointer-events: none;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line,
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line:before,
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line:after {
	width: 24px;
	height: 2px;
	border-radius: 1px;
	background: var(--color);
	position: relative;
	display: block;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line {
	margin: 15px 4px;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line:before,
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line:after {
	content: '';
	width: 13px;
	position: absolute;
	transform-origin: 1px 1px;
	left: 8px;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line:before {
	top: -8px;
	transform: rotate(135deg);
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon .arrow-line:after {
	top: 8px;
	transform: rotate(-135deg);
}

/* Animation States - Initial (Plus) */
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon.animation:before {
	animation: arrow-ripple var(--ripple-duration) ease-out;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon.animation .arrow-line {
	--c: calc(45deg * var(--direction, 1));
	--c-to: 0deg;
	animation: arrow-rotate var(--duration) ease-in forwards;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon.animation .arrow-line:before,
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon.animation .arrow-line:after {
	--x-from: 3px;
	--x-to: 0;
	--y-from: calc(-3px * var(--direction, 1));
	--y-to: 0;
	--r-from: calc(90deg * var(--direction, 1));
	--r-to: calc(135deg * var(--direction, 1));
	animation: arrow-cross var(--duration) ease-in forwards;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon.arrow-icon.animation .arrow-line:after {
	--y-from: calc(3px * var(--direction, 1));
	--r-from: calc(-90deg * var(--direction, 1));
	--r-to: calc(-135deg * var(--direction, 1));
}

/* Active State (Plus to Arrow) */
.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon.arrow-icon.animation .arrow-line {
	--c: 0deg;
	--c-to: calc(-45deg * var(--direction, 1));
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon.arrow-icon.animation .arrow-line:before,
.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon.arrow-icon.animation .arrow-line:after {
	--x-from: 0;
	--x-to: 3px;
	--y-from: 0;
	--y-to: calc(-3px * var(--direction, 1));
	--r-from: calc(135deg * var(--direction, 1));
	--r-to: calc(90deg * var(--direction, 1));
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon.arrow-icon.animation .arrow-line:after {
	--y-to: calc(3px * var(--direction, 1));
	--r-from: calc(-135deg * var(--direction, 1));
	--r-to: calc(-90deg * var(--direction, 1));
}

/* Keyframes */
@keyframes arrow-rotate {
	from {
		transform: rotate(var(--c, 0deg));
	}
	to {
		transform: rotate(var(--c-to, 0deg));
	}
}

@keyframes arrow-cross {
	from {
		transform: translate(var(--x-from, 0), var(--y-from, 0)) rotate(var(--r-from, 0deg));
	}
	to {
		transform: translate(var(--x-to, 0), var(--y-to, 0)) rotate(var(--r-to, 0deg));
	}
}

@keyframes arrow-ripple {
	25% {
		opacity: 0.08;
	}
	100% {
		transform: scale(1.6);
		opacity: 0;
	}
}

/* Regular Icon Fallback */
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon:not(.arrow-icon) {
	transition: all 0.3s ease;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-icon:not(.arrow-icon) i,
.elementor-widget-serenity_modern_accordion .serenity-accordion-icon:not(.arrow-icon) svg {
	transition: all 0.3s ease;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon:not(.arrow-icon) {
	transform-origin: center;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon:not(.arrow-icon).rotate {
	transform: rotate(180deg);
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon:not(.arrow-icon).flip {
	transform: scaleY(-1);
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon:not(.arrow-icon).scale {
	transform: scale(1.2);
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-icon:not(.arrow-icon).slide {
	transform: translateY(5px);
}

/* ================= ACCORDION CONTENT WRAPPER ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-content-wrapper {
	overflow: hidden;
	position: relative;
	height: 0;
	transition: height 0.5s ease;
	max-height: 0;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-content-wrapper {
	height: auto;
	max-height: none;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-content {
	overflow: hidden;
	opacity: 0;
	transition: opacity 0.3s ease 0.1s;
	display: block;
	width: 100%;
	padding: 20px;
	background-color: #ffffff;
	border-radius: 0 0 8px 8px;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-item.active .serenity-accordion-content {
	opacity: 1;
}

/* ================= ACCORDION CONTENT ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-content p:last-child {
	margin-bottom: 0;
}

/* ================= ACCESSIBILITY ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-header:focus {
	outline: 2px solid #2271b1;
	outline-offset: 2px;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-header:focus:not(:focus-visible) {
	outline: none;
}

/* ================= RESPONSIVE ================= */
@media (max-width: 768px) {
	.elementor-widget-serenity_modern_accordion .serenity-accordion-header {
		flex-wrap: wrap;
	}

	.elementor-widget-serenity_modern_accordion .serenity-accordion-title {
		font-size: 0.9em;
	}

	.elementor-widget-serenity_modern_accordion .serenity-accordion-icon {
		font-size: 0.9em;
	}
}

/* ================= SMOOTH SCROLLING ================= */
.elementor-widget-serenity_modern_accordion .serenity-accordion-content-wrapper {
	will-change: height;
}

.elementor-widget-serenity_modern_accordion .serenity-accordion-content {
	will-change: opacity;
}
