@charset "UTF-8";
/* 1. 공통 기본 스타일 */
:root { 
	--main-color: #4dc3ff;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: 'Pretendard', sans-serif;
	overflow-x: hidden;
	background-color: #fff;
}

a {
	text-decoration: none;
	color: inherit;
}



.main-wrapper {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* 2. 입체 캐러셀 배너 스타일 */
.exhibit-banner-section {
	position: relative;
	width: 100%;
	height: 500px;
	margin: 40px 0 80px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.banner-container {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	perspective: 1200px;
}

.banner-track {
	position: relative;
	width: 420px;
	height: 450px;
	transform-style: preserve-3d;
	margin: 0 auto;
	list-style: none;
}

.exhibit-banner-card {
	position: absolute;
	width: 100%;
	height: 100%;
	border-radius: 20px;
	overflow: hidden;
	transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.6s;
	opacity: 0;
	z-index: 0;
	pointer-events: none;
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
	background: #eee;
}

.exhibit-banner-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.exhibit-banner-card.active {
	opacity: 1;
	z-index: 10;
	transform: translateX(0) scale(1.1);
	pointer-events: auto;
}

.exhibit-banner-card.prev {
	opacity: 0.5;
	z-index: 5;
	transform: translateX(-105%) scale(0.85) rotateY(10deg);
}

.exhibit-banner-card.next {
	opacity: 0.5;
	z-index: 5;
	transform: translateX(105%) scale(0.85) rotateY(-10deg);
}

.banner-overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 40px 30px;
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
	color: white;
	opacity: 0;
	transition: opacity 0.4s;
}

.exhibit-banner-card.active .banner-overlay {
	opacity: 1;
}

.banner-overlay h3 {
	font-size: 24px;
	margin-bottom: 5px;
}

.banner-overlay p {
	font-size: 14px;
	opacity: 0.8;
}

.slide-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	font-size: 50px;
	cursor: pointer;
	z-index: 100;
	transition: 0.3s;
	color: #333;
}

.btn-l {
	left: -10px;
}

.btn-r {
	right: -10px;
}

.indicator-dots {
	display: flex;
	gap: 8px;
	margin-top: 20px;
}

.dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #ddd;
	cursor: pointer;
	transition: 0.3s;
}

.dot.active {
	background: var(--main-color);
	width: 22px;
	border-radius: 10px;
}

/* 3. 추천 콘텐츠 슬라이더 및 블러 (PopUp 스타일 적용) */
.recommend-section {
	position: relative;
	width: 100%;
	margin-bottom: 80px;
	border-radius: 25px;
	padding: 0;
}

.recommend-container {
	position: relative;
	width: 100%;
	padding: 0 ;
}

.recommend-view {
	width: 100%;
	overflow: hidden;
	min-height: 340px;
}

.content-list.horizontal {
	display: flex;
	gap: 15px;
	transition: transform 0.5s ease;
	padding: 0px;
	list-style: none;
}

.content-card {
	flex: 0 0 220px;
	cursor: pointer;
	transition: 0.3s;
}

.content-card:hover {
	transform: translateY(-5px);
}

.card-img-wrap {
	width: 100%;
	height: 300px;
	border-radius: 15px;
	overflow: hidden;
	position: relative;
	margin-bottom: 15px;
	border: 1px solid #eee;
	background: #fff;
}

.card-img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.recommend-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: #fff;
	border: 1px solid #eee;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	cursor: pointer;
	z-index: 110;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	transition: 0.2s;
}

.rec-prev {
	left: -5px;
}

.rec-next {
	right: -5px;
}

.blur-container {
	filter: blur(15px);
	pointer-events: none;
	user-select: none;
	opacity: 0.4;
}

.cta-overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -40%);
	z-index: 120;
	background: rgba(255, 255, 255, 0.98);
	padding: 50px 70px;
	border-radius: 30px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
	text-align: center;
	width: 90%;
	max-width: 520px;
	border: 1px solid #eee;
}

.cta-overlay h3 {
	font-size: 26px;
	font-weight: bold;
	margin-bottom: 15px;
	color: #111;
}

.cta-overlay p {
	font-size: 16px;
	color: #666;
	margin-bottom: 30px;
	line-height: 1.6;
}

.cta-btn {
	display: inline-block;
	background-color: var(--main-color);
	color: white;
	padding: 16px 40px;
	border-radius: 15px;
	font-weight: bold;
	font-size: 16px;
}

/* 4. 공통 섹션 (HOT & 오픈 예정) */
.section-title {
	font-size: 26px;
	font-weight: bold;
	margin: 80px 0 30px;
	text-align: center;
}

.hot-grid-container {
	display: grid;
	grid-template-columns: 1.3fr 2fr;
	gap: 15px;
	height: 600px;
	margin-bottom: 80px;
}

.hot-main {
	border-radius: 18px;
	overflow: hidden;
	position: relative;
	cursor: pointer;
}

.hot-main img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hot-sub-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 12px;
}

.sub-card {
	border-radius: 12px;
	overflow: hidden;
	cursor: pointer;
}

.sub-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.d-day {
	position: absolute;
	top: 12px;
	left: 12px;
	background: #00d2ff;
	color: white;
	padding: 5px 12px;
	border-radius: 8px;
	font-weight: bold;
	font-size: 12px;
}


/* 오픈 예정: 버튼 슬라이더 (popup 전용) */
.upcoming-container{
  position: relative;
  width: 100%;
  padding: 0;          /* 잘림 방지 */
  overflow: visible;   /* 버튼 바깥 배치 시 필요 */
}

.upcoming-view{
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
}

/* 스크롤바 숨김 */
.upcoming-view::-webkit-scrollbar{ height: 0; }
.upcoming-view{ scrollbar-width: none; }

/* (선택) 버튼을 카드 밖으로 빼고 싶으면 */
.upcoming-container .rec-prev { left: -60px; }
.upcoming-container .rec-next { right: -60px; }

/* 버튼이 이미지 중앙쯤 오게 */
.upcoming-container .recommend-btn { top: 180px; }
