/* Expanding Cards 样式 */
.expanding-cards-wrapper {
	position: relative;
	width: 100%;
	margin-bottom: 5em;
	overflow: visible;
	max-width: 100vw;
	box-sizing: border-box;
}

.expanding-cards-container {
	display: flex;
	width: 75%;
	max-width: 1000px;
	margin: 2em auto;
	height: 50vh;
	gap: 5px;
	box-sizing: border-box;
	position: relative;
}

.panel {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	height: 100%;
	border-radius: 30px;
	color: white;
	cursor: pointer;
	flex: 0.5;
	margin: 4px;
	position: relative;
	transition: all 500ms ease-in-out;
	overflow: hidden;
}

.panel blockquote {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80%;
	max-width: 400px;
	font-size: 20px;
	font-style: italic;
	color: white;
	text-align: center;
	margin: 0 0 8px 0;
	line-height: 1.3;
	opacity: 0;
	transition: opacity 0.3s ease-in-out 0.3s;
	text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8);
	quotes: """ """ "'" "'";
	z-index: 2;
}

.panel blockquote:before {
	content: open-quote;
	font-size: 32px;
	color: #f39c12;
	vertical-align: top;
}

.panel blockquote:after {
	content: close-quote;
	font-size: 32px;
	color: #f39c12;
	vertical-align: top;
}

.panel cite {
	position: absolute;
	bottom: 30%;
	left: 50%;
	transform: translateX(-50%);
	font-size: 16px;
	color: rgba(255, 255, 255, 0.9);
	font-weight: bold;
	font-style: normal;
	opacity: 0;
	transition: opacity 0.3s ease-in-out 0.4s;
	text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.8);
	z-index: 3;
}

.panel.active {
	flex: 5;
}

.panel.active blockquote {
	opacity: 0.75;
}

.panel.active cite {
	opacity: 0.75;
}

/* PC端竖屏布局优化 */
@media screen and (max-width: 1024px) and (orientation: portrait) {
	.expanding-cards-container {
		width: 75vw;
		height: 65vh;
		flex-direction: column;
		gap: 10px;
		margin: 1.5em auto;
		max-width: 600px;
	}
	
	.panel {
		border-radius: 25px;
		margin: 4px;
		flex: 1;
		min-height: 120px;
		max-height: none;
	}
	
	.panel blockquote {
		width: 85%;
		font-size: 18px;
		line-height: 1.3;
		top: 45%;
		max-width: 85%;
		padding: 0 10px;
	}
	
	.panel blockquote:before,
	.panel blockquote:after {
		font-size: 24px;
	}
	
	.panel cite {
		font-size: 13px;
		bottom: 25%;
		max-width: 80%;
	}
	
	.panel.active {
		flex: 3;
	}
}

/* 统一小屏幕样式 - 940px以下所有设备 */
@media screen and (max-width: 940px) {
	.expanding-cards-wrapper {
		margin-bottom: 3em;
		overflow: visible;
		max-width: 100vw;
		box-sizing: border-box;
	}
	
	.expanding-cards-container {
		width: 78vw;
		height: 40vh;
		flex-direction: column;
		gap: 4px;
		margin: 1.2em auto;
		margin-bottom: 2.5em;
		max-width: calc(100vw - 50px);
		box-sizing: border-box;
		position: relative;
		overflow: visible;
		transition: all 0.3s ease-in-out;
	}
	
	/* 当有活动卡片时的展开状态 */
	.expanding-cards-container.expanded {
		height: 50vh !important;
		margin-bottom: 3.5em !important;
	}
	
	.panel {
		border-radius: 15px;
		margin: 1px;
		flex: 1;
		min-height: 68px;
		max-height: 68px;
		box-sizing: border-box;
		flex-shrink: 0;
		position: relative;
	}
	
	.panel blockquote {
		width: 85%;
		font-size: 13px;
		line-height: 1.2;
		top: 45%;
		max-width: 85%;
		padding: 0 5px;
		box-sizing: border-box;
	}
	
	.panel blockquote:before,
	.panel blockquote:after {
		font-size: 18px;
	}
	
	.panel cite {
		font-size: 10px;
		bottom: 20%;
		max-width: 80%;
	}
	
	.panel.active {
		flex: 1.9;
		max-height: none !important;
		min-height: 185px;
	}
}

/* 中等屏幕特殊优化 (481-940px) */
@media screen and (min-width: 481px) and (max-width: 940px) {
	.expanding-cards-container {
		width: 75vw !important;
		height: 38vh !important;
		max-width: calc(100vw - 60px) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding: 0 !important;
		gap: 4px !important;
		position: relative;
	}
	
	.expanding-cards-container.expanded {
		height: 48vh !important;
		margin-bottom: 3em !important;
	}
	
	.panel {
		margin: 1px 0 !important;
		min-height: 65px !important;
		max-height: 65px !important;
		border-radius: 14px !important;
		position: relative;
	}
	
	.panel blockquote {
		font-size: 13px !important;
		line-height: 1.2 !important;
		padding: 0 4px !important;
	}
	
	.panel blockquote:before,
	.panel blockquote:after {
		font-size: 17px !important;
	}
	
	.panel cite {
		font-size: 10px !important;
		bottom: 20% !important;
	}
	
	.panel.active {
		flex: 1.8 !important;
		min-height: 180px !important;
	}
}



/* 竖屏自动布局优化 - 只适用于未被其他规则覆盖的情况 */
@media (max-aspect-ratio: 1/2) and (min-width: 941px) {
	.expanding-cards-container {
		width: 90vw;
		height: 50vh;
		flex-direction: column;
		gap: 6px;
		margin: 1.5em auto;
		margin-bottom: 4em;
		max-height: 500px;
	}
	
	.panel {
		border-radius: 20px;
		margin: 3px;
		flex: 1;
		min-height: 100px;
		max-height: none;
	}
	
	.panel blockquote {
		width: 85%;
		font-size: 16px;
		line-height: 1.3;
		top: 45%;
		max-width: 85%;
		padding: 0 8px;
	}
	
	.panel blockquote:before,
	.panel blockquote:after {
		font-size: 22px;
	}
	
	.panel cite {
		font-size: 12px;
		bottom: 25%;
		max-width: 80%;
	}
	
	.panel.active {
		flex: 3;
	}
}

/* 移动端特殊优化 (480px以下) */
@media (max-width: 480px) {
	.expanding-cards-container {
		width: 75vw !important;
		height: 36vh !important;
		gap: 3px !important;
		margin: 1em auto !important;
		margin-bottom: 2em !important;
		max-width: calc(100vw - 50px) !important;
		position: relative;
	}
	
	.expanding-cards-container.expanded {
		height: 46vh !important;
		margin-bottom: 3em !important;
	}
	
	.panel {
		min-height: 60px !important;
		max-height: 60px !important;
		border-radius: 12px !important;
		margin: 1px !important;
		position: relative;
	}
	
	.panel blockquote {
		font-size: 12px !important;
		line-height: 1.1 !important;
		padding: 0 4px !important;
	}
	
	.panel blockquote:before,
	.panel blockquote:after {
		font-size: 16px !important;
	}
	
	.panel cite {
		font-size: 9px !important;
		bottom: 18% !important;
	}
	
	.panel.active {
		flex: 1.7 !important;
		min-height: 170px !important;
	}
}

/* 超小屏幕优化 */
@media (max-width: 360px) {
	.expanding-cards-wrapper {
		margin-bottom: 6em;
	}
	
	.expanding-cards-container {
		height: 28vh !important;
		gap: 3px;
		margin-bottom: 4em !important;
		max-height: 270px !important;
		width: 80vw !important;
		max-width: calc(100vw - 40px) !important;
	}
	
	.panel {
		min-height: 40px;
		max-height: 40px;
		margin: 2px;
		border-radius: 12px;
	}
	
	.panel blockquote {
		font-size: 11px;
		line-height: 1.1;
		top: 42%;
		padding: 0 3px;
	}
	
	.panel cite {
		font-size: 9px;
		bottom: 18%;
	}
}
