/* main */
.main-visual,
.main-visual .item {height:880px; position:relative; overflow:hidden; background:#000; color: #fff;}
.main-visual .item img {position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:5s linear; transform:scale(1.15);}
.main-visual .item video {position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.main-visual .caption {max-width:1580px; padding:0 30px; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); width:100%; z-index:30;}
.main-visual .caption .mv-cap-inner {gap:70px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; width:100%;}
.main-visual .caption .mv-cap-inner > * {transition:.8s; opacity:0; transform:translateX(20px);}
.main-visual .caption .mv-cap-body {gap:40px; display:flex; flex-direction:column; align-items:flex-start; width:100%;}
.main-visual .caption .mv-cap-title-stack {gap:20px; display:flex; flex-direction:column; align-items:flex-start; width:100%;}
.main-visual .caption .mv-cap-kicker {font-size:40px; font-weight:600; line-height:1.25; letter-spacing:-0.03em;}
.main-visual .caption .mv-cap-title {font-size:100px; font-weight:800; line-height:1.2; letter-spacing:-0.03em;}
.main-visual .caption .mv-cap-sub {display:flex; flex-direction:column; align-items:flex-start; width:100%;}
.main-visual .caption .mv-cap-sub p {font-size:24px; font-weight:600; line-height:1.5em; letter-spacing:-0.03em;}
.main-visual .caption .mv-cap-period {gap:26px; display:flex; flex-wrap:wrap; align-items:center; width:100%;}
.main-visual .caption .mv-cap-period-badge {min-width:136px; height:60px; padding:15px 27px 15px 28px; font-size:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:9px; background:#e6571d; font-weight:700; line-height:1.25; letter-spacing:-0.03em;}
.main-visual .caption .mv-cap-period-dates {font-size:36px; font-weight:700; line-height:1.11; letter-spacing:-0.03em;}

.main-visual .active .item img {transform:scale(1);}
.main-visual .active .caption .mv-cap-inner > * {opacity:1; transform:translateX(0);}
.main-visual .active .caption .mv-cap-inner > *:nth-child(1) {transition-delay:0.1s;}
.main-visual .active .caption .mv-cap-inner > *:nth-child(2) {transition-delay:0.28s;}

.main-visual .controls {justify-content:center; position:absolute; bottom:var(--space-40); left:50%; width:100%; max-width:1780px; padding:0 var(--contain-padding); display:flex; align-items:center; gap:var(--space-30); -webkit-transform:translateX(-50%); transform:translateX(-50%); z-index:30;}
.main-visual .controls .slide-btn {position:absolute; width:29px; height:55px; top:50%; transform:translateY(-50%); z-index:90; border:0; font-size:0; line-height:0; background-color:transparent; background-position:50% 50%; background-repeat:no-repeat; background-size:contain;}
.main-visual .controls .slide-prev {left:35px; background-image:url("/images/main/mv_prev.png");}
.main-visual .controls .slick-next {right:35px; background-image:url("/images/main/mv_next.png");}

@media (max-width:1600px) {
	.main-visual,
	.main-visual .item {height:700px;}
	.main-visual .caption {max-width:1260px;}
	.main-visual .caption .mv-cap-inner {gap:50px;}
	.main-visual .caption .mv-cap-body {gap:30px;}
	.main-visual .caption .mv-cap-title-stack {gap:15px;}
	.main-visual .caption .mv-cap-kicker {font-size:30px;}
	.main-visual .caption .mv-cap-title {font-size:70px;}
	.main-visual .caption .mv-cap-sub p {font-size:20px;}
	.main-visual .caption .mv-cap-period {gap:20px;}
	.main-visual .caption .mv-cap-period-badge {min-width:136px; height:54px; padding:15px 27px 15px 28px; font-size:20px;}
	.main-visual .caption .mv-cap-period-dates {font-size:30px;}

	.main-visual .slick-arrow {width: 20px; height: 33px;}
	.main-visual .slick-prev {left:20px;}
	.main-visual .slick-next {right:20px;}
}

@media (max-width:1024px) {
	.main-visual,
	.main-visual .item {height:600px;}
	.main-visual .caption {padding: 0 50px;}
	.main-visual .caption .mv-cap-inner {gap:40px;}
	.main-visual .caption .mv-cap-body {gap:20px;}
	.main-visual .caption .mv-cap-title-stack {gap:15px;}
	.main-visual .caption .mv-cap-kicker {font-size:25px;}
	.main-visual .caption .mv-cap-title {font-size:60px;}
	.main-visual .caption .mv-cap-sub p {font-size:18px;}
	.main-visual .caption .mv-cap-period {gap:15px;}
	.main-visual .caption .mv-cap-period-badge {min-width: auto; height: auto; padding: 10px 20px; font-size: 16px;}
	.main-visual .caption .mv-cap-period-dates {font-size:24px;}

	.main-visual .slick-arrow {width:18px; height: 30px;}
	.main-visual .slick-prev {left:15px;}
	.main-visual .slick-next {right:15px;}
}


@media (max-width:700px) {
	.main-visual,
	.main-visual .item {height:700px;}
	.main-visual .caption {padding:0 30px;}
	.main-visual .caption .mv-cap-inner {gap:30px;}
	.main-visual .caption .mv-cap-body {gap:20px;}
	.main-visual .caption .mv-cap-title-stack {gap:15px;}
	.main-visual .caption .mv-cap-kicker {font-size:20px;}
	.main-visual .caption .mv-cap-title {font-size:40px;}
	.main-visual .caption .mv-cap-sub p {font-size:16px;}
	.main-visual .caption .mv-cap-sub p br {display: none;}
	.main-visual .caption .mv-cap-period {gap:15px;}
	.main-visual .caption .mv-cap-period-badge {padding: 10px 15px; font-size: 14px;}
	.main-visual .caption .mv-cap-period-dates {font-size:18px;}

	.main-visual .slick-arrow {width:10px; height:24px;}
	.main-visual .slick-prev {left:10px;}
	.main-visual .slick-next {right:10px;}
}