/********** 메인 공통 **********/
html {scroll-behavior: smooth;}

.more {position: relative; display: flex; align-items: center; gap: 10px; flex-shrink: 0; height: 40px; padding: 0 15px 0 20px; line-height: 40px; font-weight: 600; font-size: 1.8rem; color: var(--main);}
.more::before {content: ""; position: absolute; left: 0; top: 0; width: 40px; height: 40px; background-color: var(--main); opacity: 0.1; transition: all 0.3s;}
.more:hover::before {width: 100%;}
.more i::before {font-weight: 600 !important;}

.inner .swiper-btn a.play {display: none;}
.swiper-pagination-lock {display: block;}
.swiper-button-lock {display: block;}
.swiper-pagination-progressbar {background-color: #e4e4e4;}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {background-color: var(--main);}

.con-box {padding-top: 120px;}
.sec-tit {margin-bottom: 50px; font-size: 4.5rem; color: #444; text-align: center; word-break: keep-all; word-wrap: break-word;}
.sec-tit p {margin-top: 30px; line-height: 1.2; font-size: 2rem; color: #666;}

@media only screen and (max-width: 767px) {
	.sec-tit {font-size: 3.5rem;}
	.sec-tit p {margin-top: 20px; font-size: 1.8rem;}	
}

.con-box .swiper-slide a {position: relative; display: block; border: 1px solid var(--gray-e5); color: #aeaeae;}
.con-box .swiper-slide a img {position: absolute; left: 0; top: 0; width: 100%; height: 100%;}


.cont-wrap .cont {display: none;}
.cont-wrap .cont.active {display: block;}

@media only screen and (max-width: 1023px) {
    .con-box {padding-top: 80px;}
}

div.no-data {width: 100%; padding: 60px 0; border-top: 2px solid var(--main); border-bottom: 1px solid var(--gray-e5);}
div.no-data p {font-size: 2rem; text-align: center;}

/********************* visual ************************/
.main-visual-wrap {position: relative; padding: 130px 0 100px; background: url(../img/main/vi-bg.png) no-repeat center top / contain;}
.main-visual-wrap::before {content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 630px; background: linear-gradient(260deg, rgba(249, 208, 232, 0.10) 0.03%, rgba(254, 236, 216, 0.10) 99.97%);}
.main-visual {position: relative;}
.visual .swiper-slide {width: 100%; height: 630px;}
.visual .swiper-slide a {display: block; width: 100%; height: 100%;}
.visual .swiper-slide a .img-wrap {width: 100%; height: 100%;}
.visual .swiper-slide a img {width: 100%; height: 100%;}

/* .main-visual .swiper-btn {position: absolute; bottom: 40px; left: 50%; z-index: 1; display: flex; gap: 10px; padding: 10px 20px; border-radius: 100px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); transform: translateX(-50%);} */
.main-visual .swiper-btn {display: flex; gap: 10px; width: fit-content; margin: 20px auto 0; padding: 10px 20px; border-radius: 100px; background: rgba(0, 0, 0, 0.3);}
.main-visual .swiper-btn a {display: block; text-align: center;}
/* .main-visual .swiper-btn a i {font-size: 1.7rem;} */
.main-visual .swiper-btn .swiper-pagination {position: relative; bottom: unset; display: flex; align-items: center; gap: 4px;}
.main-visual .swiper-btn .swiper-pagination span {position: relative; width: 15px; height: 15px; margin: 0; background-color: transparent; opacity: .5;}
.main-visual .swiper-btn .swiper-pagination span::after {content: ""; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border-radius: 100%; background-color: #fff; transform: translate(-50%, -50%);}
.main-visual .swiper-btn .swiper-pagination span.swiper-pagination-bullet-active {border: 3px solid #fff; background-color: transparent; opacity: 1;}
.main-visual .swiper-btn .swiper-pagination span.swiper-pagination-bullet-active::after {display: none;}
.main-visual .swiper-btn .swiper-paging {display: flex; align-items: center; gap: 4px; color: #fff;}
.main-visual .swiper-btn .swiper-paging a:not(.stop , .play) {font-size: 15px;}
.main-visual .swiper-btn a.swiper-button-disabled i {opacity: 0.4;}

@media only screen and (max-width: 1200px) {
	/* .visual .swiper-slide {height: 560px;} */
	.visual .swiper-slide {height: 40vw;}
	.main-visual-wrap::before {height: 35vw;}
}
@media only screen and (max-width: 1023px) {
	.main-visual-wrap {padding: 80px 0 40px;}
}
@media only screen and (max-width: 767px) {
	.main-visual .swiper-btn {bottom: 20px; padding: 6px 12px;}

}

/********************* sec01 ************************/
.concert {position: relative; padding-bottom: 120px; background: linear-gradient(0deg, rgba(194, 93, 153, 0.10) 0%, rgba(157, 198, 233, 0.10) 100%); overflow: hidden;}
.concert::before {content: ""; position: absolute; left: 0; top: 0; z-index: -1; width: 100%; height: 100%; background: url(../img/main/sec1-bg.png) no-repeat left top / contain;}
.concert .tab {display: flex; gap: 10px; width: 100%; max-width: 500px; margin: 0 auto 20px; font-size: 2.2rem; color: var(--main);}
.concert .tab li {flex: 1;}
.concert .tab a {display: block; line-height: 40px; background-color: #fff; text-align: center; transition: all 0.3s; white-space: nowrap;}
.concert .tab a.active {font-weight: 400; color: #fff; background-color: var(--main);}

.concert div.no-data {display: flex; align-items: center; justify-content: center; height: 560px;}
.concert .cont {}
.concert .cont .swiper {margin-bottom: 30px; padding-right: 7px;}
.concert .cont-wrap .swiper-slide a {position: relative; height: 560px; border-radius: 10px;}
.concert .cont-wrap .swiper-slide a::before {content: ""; position: absolute; left: 0; top: 0; z-index: 1; width: 100%; height: 100%; border-radius: 10px; background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.3) 90%); opacity: 0; transition: all .8s;}
.concert .cont-wrap .swiper-slide a:hover::before {opacity: 0.4;}
.concert .cont-wrap .swiper-slide a img {border-radius: 10px;}
.concert .cont-wrap .swiper-slide .tag1 {position: absolute; right: -7px; top: 20px; z-index: 1;}
.concert .cont-wrap .swiper-slide .tag1::before {content: ""; position: absolute; right: 0; bottom: -7px; width: 7px; height: 7px;}
.concert .cont-wrap .swiper-slide .now .tag1::before {background: url(../img/main/concert-tag01.png) no-repeat center / contain;}
.concert .cont-wrap .swiper-slide .done .tag1::before {background: url(../img/main/concert-tag02.png) no-repeat center / contain;}
.concert .cont-wrap .swiper-slide .soon .tag1::before {background: url(../img/main/concert-tag03.png) no-repeat center / contain;}
.concert .swiper-btn { display: flex; align-items: center; width: 100%;}
.concert .swiper-btn .swiper-pagination {position: relative; margin-right: 40px;}
.concert .swiper-btn .nav-btn {flex-shrink: 0; display: block; width: 40px; height: 40px; line-height: 40px; color: #fff; text-align: center; border-radius: 100%; background-color: var(--main);}
.concert .swiper-btn a {margin-right: 10px;}
.concert .swiper-btn a.swiper-button-disabled {opacity: .7;}
.concert .swiper-btn a:last-child {margin: 0;}
.concert .swiper-btn .more {display: block; width: 40px; padding: 0; border-radius: 100%; font-weight: 600; font-size: 0; color: #fff; background-color: var(--main); text-align: center;}
.concert .swiper-btn .more::before {display: none;}
.concert .swiper-btn .more i {font-size: 2.2rem; transition: all .3s;}
.concert .swiper-btn .more:hover i {transform: rotateZ(180deg);}
.concert .hover {position: absolute; bottom: -100%; left: 0; z-index: 1; width: 100%; padding: 20px; border: 1px solid var(--gray-e5); background-color: #fff; border-radius: 0 0 10px 10px; transition: all 0.4s;}
.concert .hover p {margin-bottom: 20px; line-height: 1.4; font-weight: 600; font-size: 2.2rem; color: #222; word-wrap: break-word; word-break: keep-all;}
.concert .hover span {display: block; text-align: end;}
.concert .cont-wrap .swiper-slide a:hover .hover {bottom: 0;}

@media only screen and (max-width: 767px) {
	.concert {padding-bottom: 80px;}
	.concert div.no-data {height: 240px;}

	/* .main-content {overflow: hidden;} */
	/* .concert .cont .swiper {padding-right: 0; overflow: visible; overflow-y: hidden;} */

	.concert .cont-wrap .swiper-slide a {height: auto;}
	.concert .cont-wrap .swiper-slide a img {position: relative; height: 500px; border-radius: 10px 10px 0 0;}

	.concert .hover {position: relative; bottom: 0; border: 0; border-top: 1px solid var(--gray-e5);}
	.concert .cont-wrap .swiper-slide a:hover .hover {bottom: unset;}
}


/********************* sec02 & 03 ************************/
.info {background: url(../img/main/sec2-bg.png) no-repeat center top / 1025px auto;}
.info .sec-tit {margin-bottom: 65px;}
.info .wrap {display: flex; gap: 50px;}
.info div.no-data {border-top: 1px solid var(--gray-e5);}

@media only screen and (max-width: 1400px) {
	.info .wrap {flex-flow: column wrap;}
}

/********************* sec02 ************************/
.notice { width: calc(100% - 730px);}
.notice .tab {display: flex; gap: 30px; width: 100%; padding-bottom: 30px; margin-bottom: 40px; border-bottom: 2px solid var(--main);}
.notice .tab a {font-weight: 500; font-size: 2.2rem; color: #666;}
.notice .tab a.active {font-weight: 600; color: var(--main);}
.notice .more {position: absolute; right: 0; top: -100px; width: 110px;}
.notice .cont {position: relative;}
.notice-list li + li {margin-top: 10px;}
.notice-list li a {display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 25px; border: 2px solid #f7f7f7; color: #444; background-color: #f7f7f7; transition: all .3s;}
.notice-list li em {font-weight: 500; font-size: 2rem;}
.notice-list li span {color: #888; white-space: nowrap;}
.notice-list li a:hover {border: 2px solid var(--main); color: var(--main); background-color: var(--light2-main);}
.notice-list li a:hover span {color: var(--main);}

@media only screen and (max-width: 1400px) {
	.notice {width: 100%;}
}
@media only screen and (max-width: 767px) {
	.notice .tab {gap: 30px; padding-bottom: 20px; margin-bottom: 30px;}
	.notice .tab a {font-size: 2rem;}
	.notice-list li a {padding: 15px; gap: 20px;}
	.notice-list li em {font-size: 1.8rem;}
}
@media only screen and (max-width: 500px) {
	.notice-list li a {flex-flow: column wrap; align-items: flex-start;}
	.notice-list li span {align-self: flex-end;}
	.notice .more {position: relative; top: unset; margin-top: 20px; margin-left: auto;}
}

/********************* sec03 ************************/
.insta {width: 680px;}
.insta .top {display: flex; justify-content: space-between; align-items: center; width: 100%; padding-bottom: 17px; margin-bottom: 40px; border-bottom: 2px solid var(--main);}
.insta .top .tit {font-weight: 600; font-size: 2.2rem; color: var(--main);}
.insta .top ul {display: flex; gap: 10px;}
.insta .top a {display: block; width: 35px; height: 35px; border-radius: 100%; font-size: 0;}
.insta .top li:first-child a {background: url(../img/main/sns-insta.svg) no-repeat center / contain;}
.insta .top li:nth-child(2) a {background: url(../img/main/sns-insta2.png) no-repeat center / contain;}
.insta .top li:last-child a {background: url(../img/main/sns-insta3.png) no-repeat center / contain;}
.swiper-insta {width: 100%;}
.swiper-insta .swiper-slide a {height: 350px; transition: border .3s;}
.swiper-insta .swiper-slide a:hover {border: 2px solid var(--main);}
.insta-wrap .swiper-btn {display: flex; align-items: center; height: 30px; margin-top: 30px;}
.insta-wrap .swiper-btn .rg {display: flex; align-items: center; gap: 20px;}
.insta-wrap .swiper-btn > div {position: relative;}
.insta-wrap .swiper-btn .swiper-pagination1 {margin-right: 40px;}
.insta-wrap .swiper-btn .swiper-pagination2 {display: flex; align-items: center; gap: 5px; font-weight: 600; font-size: 1.8rem; color: #666;}
.insta-wrap .swiper-btn .swiper-pagination2 .swiper-pagination-current {display: inline-block; margin-right: 15px; font-size: 2.2rem; color: var(--main);}
.insta-wrap .nav-btn {color: var(--main);}
.insta-wrap .nav-btn i::before {font-size: 2.9rem; font-weight: 500 !important;}
.insta-wrap .nav-btn.swiper-button-disabled i::before {opacity: .5;}

@media only screen and (max-width: 1400px) {
	.insta {width: 100%;}
}

/********************* sec04 ************************/
.space .top {display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 20px;}
.space .sec-tit {display: flex; align-items: flex-end; gap: 30px; margin-bottom: 0;}
.space .sec-tit p {margin: 0;}
.space .bottom {display: flex; gap: 10px;}
.space .bottom > li {position: relative; width: 150px; height: 620px; padding: 100px 60px; color: #fff; transition: all .3s;}
.space .bottom > li:not(.active) {cursor: pointer;}
.space .bottom > li:first-child {background: url(../img/main/space-img1.png) no-repeat center / cover;}
.space .bottom > li:nth-child(2) {background: url(../img/main/space-img2.png) no-repeat center / cover;}
.space .bottom > li:nth-child(3) {background: url(../img/content/sub04/sub0403-poster.jpeg) no-repeat center / cover;}
.space .bottom > li:last-child {background: url(../img/main/space-img4.png) no-repeat center / cover;}
.space .bottom > li::before {content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: linear-gradient(0deg, rgba(74, 53, 80, 0.70) 0%, rgba(74, 53, 80, 0.70) 100%), url(<path-to-image>) 50% / cover no-repeat;}
.space .bottom > li.active::before {background: linear-gradient(270deg, rgba(175, 80, 80, 0.00) 1.03%, rgba(164, 90, 116, 0.50) 23.3%, rgba(159, 94, 130, 0.68) 43.59%, #AC658F 63.4%) 0px -75.5px / 121.336% 150.887% no-repeat;}
.space .bottom > li.active {flex: 1;}
.space .bottom > li:not(.active) span {font-weight: 600; font-size: 2.6rem; writing-mode: vertical-rl;}
.space .bottom > li.active span {display: inline-block; margin-bottom: 40px; padding-bottom: 10px; border-bottom: 1px solid #fff; font-size: 2rem;}
.space .bottom .txt-box {display: none; opacity: 0; transition: all .3s;}
.space .bottom .active .txt-box {display: block; opacity: 1;}
.space .bottom > li strong {display: block; margin-bottom: 20px; font-size: 4rem;}
.space .bottom > li p {margin-bottom: 50px; line-height: 1.3; font-weight: 300; font-size: 2rem;}
.space .space-info {display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-bottom: 120px;}
.space .space-info li {position: relative; font-weight: 300;}
.space .space-info li + li {padding-left: 20px;}
.space .space-info li::before {content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 8px; background-color: rgba(255, 255, 255, 0.5); transform: translateY(-50%);}
.space .space-info li:first-child:before {display: none;}
.space .bottom > li a {display: flex; align-items: center; width: fit-content; padding: 10px 15px; border: 1px solid #fff;}
.space .bottom > li a i {margin-left: 20px; font-size: 12px;}
.space .bottom > li a i::before {font-weight: 600 !important;}

@media only screen and (max-width: 1340px) {
	.space .bottom > li strong {line-height: 1.2; word-wrap: break-word; word-break: keep-all;}
	.space .bottom > li p {word-wrap: break-word; word-break: keep-all;}
	.space .bottom > li p br {display: none;}
	.space .space-info li {word-wrap: break-word; word-break: keep-all;}
}
@media only screen and (max-width: 1200px) {
	.space .bottom {flex-flow: column wrap; width: 100%;}
	.space .bottom > li {width: 100%; height: auto; padding: 40px 30px;}
	.space .bottom > li:not(.active) span {display: inline-block; writing-mode: unset;}
	.space .bottom .txt-box {display: block;}
	.space .bottom > li.active .txt-box {height: fit-content;}
	.space .bottom > li:not(.active) .txt-box {height: 0; overflow: hidden;}
}
@media only screen and (max-width: 767px) {
	.space .top {flex-flow: column wrap; align-items: flex-start; gap: 20px;}
	.space .sec-tit {flex-flow: column wrap; align-items: flex-start; gap: 20px;}
	.space .more {align-self: flex-end;}
	.space .bottom > li:not(.active) {padding: 30px;}
	.space .bottom > li strong {font-size: 3.5rem;}
	.space .bottom > li p {line-height: 1.5; font-size: 1.8rem;}
	.space .bottom > li:not(.active) span {font-size: 2.2rem;}
}

/********************* sec04 ************************/
.banner-wrap {display: flex; gap: 40px;}
.banner-slide::before {content: ""; position: absolute; right: 0; top: 0; z-index: 2; width: 30px; height: 100%; background: linear-gradient(270deg, rgba(255,255,255,1) 10%, rgba(255,255,255,0) 100%);}
.banner .swiper-slide {width: 280px;}
.banner .swiper-slide a {display: block; width: 280px; height: 40px; border: none; filter: grayscale(100%); transition: all .3s;}
.banner .swiper-slide a:hover {filter: grayscale(0);}
.banner .swiper-slide a img {left: 50%; width: auto; height: 40px; transform: translateX(-50%);}

.banner .swiper-btn {display: flex; align-items: center; gap: 10px;}
.banner .swiper-btn .swiper-pagination {position: relative; margin-right: 40px;}
.banner .swiper-btn a {flex-shrink: 0; display: block; width: 40px; height: 40px; line-height: 40px; color: #fff; text-align: center; border-radius: 100%; background-color: var(--main);}
.banner .swiper-btn a.swiper-button-disabled {opacity: .7;}

@media only screen and (max-width: 500px) {
	.banner-wrap {flex-flow: column wrap; gap: 40px;}
	.banner-slide {width: 100%;}
	.banner .swiper-btn {order: 1; justify-content: center; width: 100%; }
	.banner .swiper-slide {width: 100%;}
	.banner .swiper-slide a {width: unset;}
}