@charset "UTF-8";

/* base ---------------------------------------*/

.thanksdayLp {
	font-family: 'Noto Sans JP', "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro","メイリオ","Meiryo","ＭＳ Ｐゴシック",sans-serif;
	color: #000;
}

.thanksdayLp a:hover{opacity:1;}

.thanksdayLp img{
	max-width: 100%;
	height: auto;
}

/* utility ---------------------------------------*/

.flex{
	display:flex;
	justify-content:space-between;
}

.bg-beige {background: #EFE9DE;}
.bg-yellow{background: #EFE94E}
.bg-gray{background: #F4F4F4;}

.font-num {font-family: 'Poppins', sans-serif;}
.ff-en {font-family: 'Poppins', sans-serif;}

.mt-0{margin-top:0 !important;}
.mb-0{margin-bottom:0 !important;}

.link{
	color: #000;
	text-decoration: underline;
}


.link:hover{
  opacity: 0.8 !important;
}


.link-arrow{
	color: #000;
	position: relative;
	display: inline-block;
	padding-right: 10px;
}

.link-arrow::after{
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	transform: rotate(45deg) translateY(-50%);
	width: 8px;
	height: 8px;
	border-width: 1px 1px 0 0;
	border-style: solid;
	border-color: #000;
}

.link-arrow:hover{
  opacity: 0.8 !important;
}

.link-icon {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
	color: #000;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	transition: opacity 0.3s ease;
}

.link-icon:hover {
	opacity: 0.7 !important;
}

.link-icon img {
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-left: 4px;
	vertical-align: middle;
	font-style: normal;
}

.indent-m1{
	text-indent: -0.5em;
}

.text-center{
	text-align: center;
}

/* layout ---------------------------------------*/

.inner{
	max-width: 800px;
	margin: 0 auto;
}

.inner-lg{
	max-width: 1104px;
	margin: 0 auto;
}


/* common ---------------------------------------*/

.section-head{
	text-align: center;
	margin-bottom: 40px;
}

.section-title {
	text-align: center;
	font-size: 36px;
	font-weight: bold;
	margin-bottom: 2px;
	overflow: hidden;
}

.section-title span{
	display: inline-block;
	transition: all .75s ease;
	opacity: 0;
	transform: translate(0,80px);
}

.section-title span:nth-child(1){transition-delay:0.1s;}
.section-title span:nth-child(2){transition-delay:0.2s;}
.section-title span:nth-child(3){transition-delay:0.3s;}
.section-title span:nth-child(4){transition-delay:0.4s;}
.section-title span:nth-child(5){transition-delay:0.5s;}
.section-title span:nth-child(6){transition-delay:0.6s;}
.section-title span:nth-child(7){transition-delay:0.7s;}
.section-title span:nth-child(8){transition-delay:0.8s;}
.section-title span:nth-child(9){transition-delay:0.9s;}
.section-title span:nth-child(10){transition-delay:1.0s;}
.section-title span:nth-child(11){transition-delay:1.1s;}
.section-title span:nth-child(12){transition-delay:1.2s;}
.section-title span:nth-child(13){transition-delay:1.3s;}
.section-title span:nth-child(14){transition-delay:1.4s;}
.section-title span:nth-child(15){transition-delay:1.5s;}

.is-active .section-title span{
	opacity: 1;
	transform: translate(0,0);
}

.section-title-sub {
	font-size: 13px;
	display: inline-block;
	text-align: center;
	overflow: hidden;
}

.section-title-sub span{
	background: #000;
	color: #fff;
	padding: 0 7px;
	display: block;
	transition: all .75s ease;
	transform: translate(-110%,0);
	transition-delay: 1s;
}

.is-active .section-title-sub span{transform: translate(0,0);}

.lity-close {
	top: 36px;
	right: 36px;
}

/* header ---------------------------------------*/

header {
	position: absolute;
	z-index: 2;
	left: 24px;
	top: 24px;
}

.header-logo{display: block;}


/* kv ---------------------------------------*/

.kv {
	inset: 0;
	position: absolute;
	display: grid;
	place-items: center;
}

.kv-title {
	position: relative;
	/* display: inline-block; */
	/* opacity: 0; */
	transition: all .75s ease;
}

@keyframes kv-person-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}

.kv-wrapper{
	z-index: 1;
	position: relative;
	overflow: hidden;
}

.kv-person-wrapper{
	display: flex;
	width: fit-content;
	gap: 4px;
}
.kv-person-wrapper:not(:first-child){
	margin-top: 4px;
}
.kv-person-wrapper.--to-right .kv-person{
	animation: kv-person-scroll 60s infinite linear reverse;
}

.kv-person{
	display: grid;
	grid-template-columns: repeat(7,192px);
	gap: 4px;
	animation: kv-person-scroll 60s infinite linear;
}

/* KV Image Animation ---------------------------------------*/

.kv-title img {
	animation: kvImageScale 1s ease-in-out;
}

@keyframes kvImageScale {
	0% {
		transform: scale(0.9);
	}
	50% {
		transform: scale(1.1);
	}
	100% {
		transform: scale(1);
	}
}



/* case ---------------------------------------*/

.case {
	padding: 0;
	text-align: center;
	overflow: hidden;
	padding-bottom: 60px;
	margin-bottom: 60px;
	transition: all .75s ease;
	opacity: 0;
}

.case.is-active {opacity: 1;}
.case-mainimage {margin-bottom: 38px;}


.case-slider-wrapper {
	max-width: 1680px;
	margin: 0 auto;
	overflow: hidden;
	position: relative;
}

.case-slider {
	max-width: 1100px;
	margin: 0 auto;
	position: relative;
}

.case-slider-wrapper .slick-list{overflow:visible;}

.case-slider-wrapper .slider .slick-slide {
	transition: all .25s ease;
	opacity: 0.25;
	margin: 0 15px;
}

.case-slider-wrapper .slider .slick-active {opacity: 1;}

.case-slider-wrapper .slider img{
	border: 1px solid #000;
	box-sizing: border-box;
	width: 100%;
}

.case-slider-wrapper .slick-arrow {
	width: 52px;
	height: 52px;
	background: url('../img/icon_slider_arrow.png') no-repeat center center;
	background-size: cover;
	margin-top: 0;
	box-shadow: 0px 0px 5px rgba(0,0,0,0.1);
	border-radius: 50%;
	z-index: 5;
}

.case-slider-wrapper .slick-arrow::before,
.case-slider-wrapper .slick-arrow::after {display: none;}

.case-slider-wrapper .slick-dots {
	display: flex !important;
	justify-content: center;
	list-style: none;
	padding: 0;
	margin: 20px 0 0 0;
	gap: 10px;
}

.case-slider-wrapper .slick-dots li {
	width: 10px;
	height: 10px;
	margin: 0;
}

.case-slider-wrapper .slick-dots li button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 1px solid #000;
	border-radius: 50%;
	background: #000;
	font-size: 0;
	line-height: 0;
	display: block;
	cursor: pointer;
	transition: all .25s ease;
}

.case-slider-wrapper .slick-dots li.slick-active button {
	background: #EFE94E;
}

.case-slider-wrapper .slick-prev {
	transform: scale(-1,1) translate(0,-50%);
	left: 50%;
	margin-left: -190px;
}

.case-slider-wrapper .slick-next {
	right: 50%;
	margin-right: -190px;
}

.case-caption {
	font-size: 12px;
	line-height: 1.5;
	letter-spacing: 0.06em;
	color: #777;
	display: inline-block;
	text-align: left;
}


/* join ---------------------------------------*/

.join {
	padding-block: 0 60px;
}

.join-block {
	background: #fff;
	border-radius: 16px;
	padding: 40px;
	margin-bottom: 24px;
}

.join-block-inner {
	max-width: 580px;
	margin: 0 auto;
}

.join-block-small {
	padding: 25px 40px 20px;
	margin-bottom: 24px;
}

.join-arrow {
	text-align: center;
	display: block;
	margin: 0 auto 20px;
}

.join-arrow::after{
	display: inline-block;
	border-left: 137px solid transparent;
	border-right: 137px solid transparent;
	border-top: 34px solid #EFE94E;
	content: '';
}

.join-block-title {
	text-align: center;
	font-size: 30px;
	font-weight: bold;
	margin-bottom: 16px;
}

.join-block-title-small{
	font-size: 20px;
	margin-bottom: 9px;
}

.join-block-text {
	font-size: 16px;
	line-height: 1.9;
	letter-spacing: 0.08em;
}

.join-block-text a{
	font-weight: bold;
	background: linear-gradient(transparent 0%, #EFE94E 1%, #EFE94E 100%);
	padding: 2px;
	color: #000;
}

.join-block-note {
	text-align: center;
	font-size: 12px;
	margin-top: .5em;
}



.join-block-term {
	text-align: center;
	font-size: 16px;
	line-height: 1.8;
}

.join-block-caption {
	font-size: 12px;
	color: #999;
	text-align: center;
	margin-bottom: 18px;
}

.join-banner {text-align: center;}

.join-banner a{
	display: inline-block;
	transition: all .25s ease;
}

.join-banner a:hover{opacity: 0.7;}

.join-caption {
	color: #999;
	font-size: 11px;
	text-align: left;
	max-width: 600px;
	margin: 0 auto;
}

/* thanks-card ---------------------------------------*/
.thanks-card{
	background: #EFE9DE;
	padding-block: 60px;
	text-align: center;
	overflow: hidden;
}

.thanks-card-lead{
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
	margin-bottom: 20px;
}

.thanks-card-slider-wrapper {
	margin: 0 auto;
	overflow: hidden;
	position: relative;
}

.thanks-card-slider {
	max-width: 1100px;
	margin: 0 auto;
	position: relative;
}

.thanks-card-slider-wrapper .slick-list{overflow:visible;}

.thanks-card-slider-wrapper .thanks-card-list .slick-slide {
	transition: all .25s ease;
	opacity: 1;
	margin: 0 15px;
}

.thanks-card-slider-wrapper .thanks-card-list .slick-active {opacity: 1;}

.thanks-card-slider-wrapper .thanks-card-list img{
	width: 100%;
}

.thanks-card-slider-wrapper .slick-arrow {
	width: 52px;
	height: 52px;
	background: url('../img/icon_slider_arrow.png') no-repeat center center;
	background-size: cover;
	margin-top: 0;
	box-shadow: 0px 0px 5px rgba(0,0,0,0.1);
	border-radius: 50%;
	z-index: 5;
}

.thanks-card-slider-wrapper .slick-arrow::before,
.thanks-card-slider-wrapper .slick-arrow::after {display: none;}

.thanks-card-slider-wrapper .slick-prev {
	transform: scale(-1,1) translate(0,-50%);
	left: 50%;
	margin-left: -190px;
}

.thanks-card-slider-wrapper .slick-next {
	right: 50%;
	margin-right: -190px;
}

.thanks-card-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* article ---------------------------------------*/

.article{
	padding: 0 50px;
	margin-bottom: 60px;
}

.article.article-border{
	border-bottom: 10px solid #efe9de;
}

.article-container {
	background: #EFE9DE;
	padding: 57px 40px;
	border-radius: 20px;
}

.article-container-top {
	margin-bottom: 60px;
}

.article-wrapper {
	max-width: 892px;
	margin: 0 auto;
}

.article-wrapper-text {
	line-height: 1.5;
	/* margin-bottom: 17px; */
}

.article-wrapper-block {
	background: #EFE94E;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 40px 50px;
	margin-bottom: 20px;
}

a.article-wrapper-block{
	transition: all .25s ease;
}

a.article-wrapper-block:hover {
	opacity: 0.8;
}

.article-wrapper-block-summary {
	text-align: center;
	padding: 0 10px;
}

.article-wrapper-block-num {
	margin-bottom: 10px;
	display: inline-block;
}

.article-wrapper-block-title {
	text-align: center;
	font-size: 20px;
	font-weight: bold;
	margin-top: 40px;
	margin-bottom: 35px;
}

.article-wrapper-block-title.first {
	margin-top: 0;
}

.article-wrapper-block-text {
	font-weight: bold;
	line-height: 2;
	font-size: 16px;
}

.article-list {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 62px 0;
	max-width: 892px;
	margin: 35px auto 40px;
}

.article-list-item {
	text-align: center;
	width: 256px;
	max-width: 33%;
	position: relative;
}

.article-list-item a{
	transition: all .25s ease;
}

.article-list-item a:hover{
	opacity: 0.8;
}

.article-list-item.is-new .article-list-image::after{
	content: '';
	position: absolute;
	top: -12px;
	left: -5px;
	display: block;
	width: 36px;
	height: 36px;
	background-image: url(/assets/individual/sustainability/well-being/thanks/img/icon_new.svg);
	background-repeat: no-repeat;
}

.article-list-image {
	margin-bottom: 12px;
	padding: 0;
	position: relative;
}

.article-list-image img{
	width: 100%;
}

.article-list-summary {line-height: 1.7;}

.article-list-name {
	font-weight: bold;
	font-size: 16px;
}

.article-list-number {
	font-weight: bold;
	font-size: 14px;
	text-align: left;
}

.article-list-number span{
	font-weight: bold;
	background: linear-gradient(transparent 0%, #EFE94E 1%, #EFE94E 100%);
	padding: 2px;
}

.article-list-text {
	font-size: 15px;
	text-align: left;
}

.article-row {
	display: flex;
	justify-content: space-between;
	flex-wrap: nowrap;
	width: 100%;
	margin-bottom: 35px;
	gap: 20px;
}

.article-row-item {
	width: 100%;
}

.article-row-image {
	width: 100%;
}

.article-row-caption{
	font-size: 14px;;
}

.article-bottom-text {
	background: #fff;
	padding: 20px 30px;
	font-size: 16px;
	line-height: 2;
	font-weight: 600;
	max-width: 580px;
	margin: 0 auto;
	text-align: center;
	margin-top: 32px;
}

.article-table{
	width: 100%;
	border-collapse: collapse;
	line-height: 1.9;
	margin-bottom: 17px;
}

.article-table th,
.article-table td {
	border: 1px solid #000;
	border-right: none;
	border-left: none;
	padding: 10px;
}

.article-table th{
	width: 120px;
  text-align: left;
}

.article-table td {
}

.article-kv{
	text-align: center;
	margin-bottom: 40px;
}


/* about ---------------------------------------*/

.about {
	padding-block:  60px;
}

.about-block-inner {
	max-width: 580px;
	margin: 0 auto;
}

.about-blocktop {
	background: #EFE94E;
	padding: 60px 50px;
	margin-bottom: 60px;
	border-radius: 16px;
}

.about-block-title {
	text-align: center;
	font-size: 28px;
	font-weight: 600;
	margin-bottom: 15px;
}

.about-block-text {
	font-size: 16px;
	line-height: 2;
	margin-bottom: 15px;
	letter-spacing: 0.03em;
}

.about-block-text:last-child{margin-bottom: 0;}

.about-blockmid {
	background: #fff;
	padding: 60px 50px;
	border-radius: 16px;
	margin-bottom: 60px;
}

.about-blockmid-title {
	font-size: 14px;
	text-align: center;
	margin-bottom: 20px;
	font-weight: normal;
}

.about-blockmid-list {border-top: 2px solid #000;}

.about-blockmid-list > li{
	border-bottom:1px solid #000;
	padding: 16px 0 0;
}

.about-blockmid-list-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: normal;
}

.about-blockmid-list-title.flex-spacebetween{justify-content: space-between;}
.about-blockmid-list-title-num {font-weight: bold;}

.about-blockmid-list-sumary {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.about-blockmid-list-per{
	height: 100%;
	width: calc(100% - 150px);
}

.about-blockmid-list-per-line {
	background: #EFE94E;
	padding: 5px;
	line-height: 1.1;
	font-weight: bold;
	font-size: 18px;
	display: inline-block;
}

.about-blockmid-list-per-line small{
	color: #777;
	font-size: 16px;
}

.about-blockmid-list-number {
	font-size: 46px;
	font-weight: bold;
	display: flex;
	align-items: flex-end;
	line-height: 1;
}

.about-blockmid-list-number b{
	background: linear-gradient(transparent 40%, #EFE94E 41%, #EFE94E 80%, #fff 81%);
	padding: 2px;
}

.about-blockmid-list-number small{
	font-size: 12px;
	color: #777;
	position: relative;
	bottom: 1em;
}

.about-notice {
	font-size: 12px;
	margin-top: 10px;
}

.about-blockbtm {
	background: #fff;
	padding: 60px 50px;
	border-radius: 16px;
}

.about-blockbtm-image {
	margin-bottom: 20px;
	text-align: center;
}

.about-blockbtm-image img{display: inline-block;}

.common-btn {
	text-align: center;
	margin-top: 36px;
}

.common-btn a {
	display: inline-block;
	font-weight: 600;
	font-size: 17px;
	text-align: center;
	position: relative;
	line-height: 1;
}

.common-btn a::after{
	display:block;
	content:'';
	background:rgba(0,0,0,0.2);
	background-size:100%;
	width:100%;
	height:100%;
	position:absolute;
	left: 5px;
	top: 5px;
}

.common-btn a span{
	display: block;
	width: 350px;
	height: 70px;
	padding: 25px 0 0 0;
	background: #000;
	color: #fff;
	position: relative;
	z-index: 2;
	transition: all .25s ease;
}

.common-btn a span::after{
	content: '';
	position:absolute;
	right: 12px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translate(0, -50%) rotate(45deg);
}

.common-btn a:hover span {background: #505050;}

.common-btn + .common-btn-next{margin-top: 36px}


/* bottom cta ---------------------------------------*/

.bottom-cta {
	position: fixed;
	left: 0;
	bottom: 0;
	width: 100%;
	z-index: 1000;
	transition: all .25s ease;
	transform: translate(0,101%);
}

.bottom-cta-bg{
	text-align: center;
	padding: 9px 0 12px;
	background: #EFE94E;
}

.bottom-cta.is-active {transform: translate(0,0);}

.bottom-cta-inner {
	max-width: 1104px;
	margin: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	align-items: end;
	gap: 30px;
}

.bottom-cta-col-02{
	width: 260px;
}

.bottom-cta-lead {
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 3px;
}

.bottom-cta-btn {
	position: relative;
	font-size: 16px;
	display: inline-block;
	font-weight: 500;
	transition: all .25s ease;
	max-width: 100%;
}

.bottom-cta-btn::after{
	display:block;
	content:'';
	background:rgba(0,0,0,0.2);
	background-size:100%;
	width:100%;
	height:100%;
	position:absolute;
	left: 5px;
	top: 5px;
	display: none;
}

.bottom-cta-btn span {
	display: block;
	position: relative;
	width: 480px;
	max-width: 100%;
	height: 64px;
	padding: 18px 0 0 0;
	background: #000;
	color: #fff;
	z-index: 2;
	transition: all .25s ease;
}

.bottom-cta-btn:hover span {background: #505050;}

.bottom-cta-btn span::after{
	content: '';
	position:absolute;
	right: 12px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translate(0, -50%) rotate(45deg);
}

.bottom-cta-btn b{
	color: #EFE94E;
	font-weight: 500;
}

.bottom-cta-event{
	position: relative;
	display: block;
	width: 380px;
	margin: auto 10px 10px auto;
}
.bottom-cta-event a{
	display: inline-block;
	cursor: pointer;
	padding: 18px 18px 24px;
	background: #fff;
	border: 1px solid #000;
	width: 100%;
}
.bottom-cta-event a:hover{
	opacity: 0.7;
}
.bottom-cta-event a::after{
	content: '';
	position: absolute;
	bottom: -8px;
	right: 0;
	left: 0;
	margin: auto;
	width: 0;
	height: 0;
	border-top: 10px solid #000;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 10px solid transparent;
	transform: translateY(-50%);
}
.bottom-cta-event-label{
	font-size: 12px;
	background: #000;
	display: inline-block;
	color: #fff;
	padding: 3px 12px;
	margin-bottom: 8px;
}
.bottom-cta-event-text{
	color: #000;
}
.bottom-cta-event-location{
	font-size: 12px;
}
.bottom-cta-event-close{
	background: #000;
	border: 20px;
	display: block;
	width: 40px;
	height: 40px;
	position: absolute;
	top: 0;
	right: 0;
	cursor: pointer;
}
.bottom-cta-event-close::before,
.bottom-cta-event-close::after{
	content: '';
	position: absolute;
	right: 8px;
	top: 50%;
	width: 24px;
	height: 1px;
	border-top: 1px solid #fff;
}

.bottom-cta-event-close::before{
	transform: translate(0, -50%) rotate(45deg);
}

.bottom-cta-event-close::after{
	transform: translate(0, -50%) rotate(-45deg);
}

/* event ---------------------------------------*/
.event {
	background: #f4f4f4;
	padding: 60px 30px;
}

.event-inner {
	display: flex;
	flex-direction: column;
	gap: 32px;
	align-items: center;
}

.event-main-image {
	width: 100%;
}

.event-main-image img {
	width: 100%;
	height: auto;
	display: block;
}

.event-text{
	margin-block: 16px;
}

.event-text,
.event-term {
	font-size: 15px;
	line-height: 1.5;
	width: 100%;
}

.event-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	justify-content: center;
	width: 100%;
}

.event-list-item {
	flex-shrink: 0;
	aspect-ratio: 253 / 168;
}

.event-list-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.event-line {
	width: 100%;
	height: 1px;
	background: #000;
}

.event-report {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
}

.event-report-link {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
	transition: all 0.25s ease;
	width: calc(50% - 20px);
}

.event-report-link:hover {
	opacity: 0.8 !important;
}

.event-report-image {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
}

.event-report-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.event-report-icon {
	width: 40px;
	aspect-ratio: 1;
	pointer-events: none;
	position: absolute;
	bottom: 8px;
	right: 8px;
}

.event-report-icon img {
	width: 100%;
	height: 100%;
	display: block;
}

.event-report-text {
	font-size: 15px;
	line-height: 1.5;
	color: #53565a;
	margin: 0;
}

/* thanks-intro ---------------------------------------*/
.thanks-intro {
	background: #FFF;
	padding: 60px 30px;
}

.thanks-intro-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	justify-content: space-between;
}

.thanks-intro-lead{
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
	margin-bottom: 20px;
}

.thanks-intro-item {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
	text-decoration: none;
	transition: all 0.25s ease;
}

.thanks-intro-item:hover {
	opacity: 0.8 !important;
}

.thanks-intro-image {
	position: relative;
	width: 100%;
	aspect-ratio: 120 / 82;
	overflow: hidden;
}

.thanks-intro-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.thanks-intro-icon {
	width: 40px;
	aspect-ratio: 1;
	pointer-events: none;
	position: absolute;
	bottom: 8px;
	right: 8px;
}

.thanks-intro-icon img {
	width: 100%;
	height: 100%;
	display: block;
}

.thanks-intro-content {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.thanks-intro-title {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.5;
	color: #53565a;
	margin: 0;
}

.thanks-intro-text {
	font-size: 14px;
	line-height: 1.5;
	color: #53565a;
	margin: 0;
}

/* banner note result ---------------------------------------*/
.banner-note-result {
	background: #EFE9DE;
	padding: 40px 120px;
}

.banner-note-result-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.banner-note-result-title {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
	margin: 0;
}

.banner-note-result-image {
	width: 560px;
	max-width: 100%;
	margin: 0;
	display: block;
	transition: opacity 0.25s ease;
}

.banner-note-result-image:hover {
	opacity: 0.8 !important;
}

.banner-note-result-image img {
	width: 100%;
	height: auto;
	display: block;
}

.banner-note-result-date {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	margin: 0;
}

/* banner note contest ---------------------------------------*/
.banner-note-contest {
	background: #F4F4F4;
	padding: 40px 120px;
}

.banner-note-contest-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

.banner-note-contest-title {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
	margin: 0;
}

.banner-note-contest-image {
	width: 560px;
	max-width: 100%;
	position: relative;
	margin: 0;
	display: block;
	transition: opacity 0.25s ease;
}

.banner-note-contest-image:hover {
	opacity: 0.8 !important;
}

.banner-note-contest-image img {
	width: 100%;
	height: auto;
	display: block;
}

.banner-note-contest-badge {
	position: absolute;
	top: 0;
	left: 0;
	width: 64px;
	height: 64px;
	background: #000;
	color: #FFF;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.9;
	border-radius: 0 0 32px 32px;
	border-top-right-radius: 32px;
}

.banner-note-contest-date {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	margin: 0;
}

/* xmas ---------------------------------------*/
.xmas {
	padding: 0 30px;
	margin: 60px 0 40px;
}
.xmas-lead {
	text-align: center;
	margin-top: -1em;
	font-size: 15px;
	line-height: 1.5;
}

.xmas-wrap-outer {
	margin-top: 20px;
	margin-bottom: 20px;
}

.xmas-wrap {
	display: flex;
	gap: 20px;
	margin: 0 auto;
	flex-wrap: wrap;
	justify-content: center;
}

.xmas-item {
	display: grid;
	gap: 12px;
	width: calc(33% - 10px);
}

.xmas-item button{
	cursor: pointer;
}

.xmas-movie {
	position: relative;
	display: block;
	overflow: hidden;
	transition: opacity 0.25s ease;
}

.xmas-movie:hover {
	opacity: 0.8 !important;
}

.xmas-movie-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.xmas-movie-icon {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px;
	aspect-ratio: 1;
	pointer-events: none;
}

.xmas-movie-icon img {
	width: 100%;
	height: 100%;
	display: block;
}

.xmas-link-icon{
	width: 40px;
	aspect-ratio: 1;
	pointer-events: none;
	position: absolute;
	bottom: 8px;
	right: 8px;
}
.xmas-link-icon img {
	width: 100%;
	height: 100%;
	display: block;
}

.xmas-text {
	margin: 0;
	font-size: 15px;
	color: #53565A;
	line-height: 1.5;
}

/* pc */
@media screen and (min-width: 769px){

	.sp{display: none !important;}
	.spbr{display: none;}

}


/* small pc */
@media screen and (min-width: 769px) and (max-width: 1200px){


}


@media screen and (max-width: 768px){

	/* utility ---------------------------------------*/
	.link-arrow::after{
		margin-top: -2px;
	}

	/* common item */
	.pc{display: none !important;}
	.pcbr{display: none;}


	/* common ---------------------------------------*/

	.section-head{
		text-align: center;
		margin-bottom: 15px;
	}

	.section-title {
		font-size: 28px;
		margin-bottom: 2px;
		line-height: 1.4;
	}

	.section-title span {margin: 0;}

	.section-title-sub {
		font-size: 10px;
		padding: 0 5px;
	}


	/* header ---------------------------------------*/

	header {
		left: 8px;
		top: 8px;
	}

	.header-logo {
		width: 81px;
		height: 81px;
	}


	/* kv ---------------------------------------*/

	.kv {
		height: calc(100vh - 112px);
	}

	.kv-wrapper{
		position: relative;
		overflow: hidden;
	}

	.kv-person-wrapper{
		display: flex;
		width: fit-content;
	}

	.kv-person-wrapper.--to-right .kv-person{
		animation: kv-person-scroll 40s infinite linear reverse;
	}

	.kv-person{
		display: grid;
		grid-template-columns: repeat(6, calc((150.6vw - 20px) / 6));
		gap: 4px;
		animation: kv-person-scroll 40s infinite linear;
	}

	.kv-title {
		/* overflow: hidden; */
		/* display: block; */
		width: 353px;
		height: 353px;
		margin-top: 30px;
	}

	.kv-title img{
		/* position: absolute;
		left: 50%;
		top: 0;
		transform: translate(-50%, 0); */
		/* max-width: 430px; */
		width: 353px;
		height: 353px;
	}

	/* case ---------------------------------------*/

	.case {
		padding: 0;
		padding-bottom: 40px;
		margin-bottom: 40px;
	}

	.case-mainimage {
		margin-bottom: 0;
		overflow: hidden;
	}

	.case-slider-wrapper{
		width:64%;
		margin: 0 auto;
		overflow: visible;
	}

	.case-slider-wrapper .swiper-button-prev {
		left: -40px;
	}

	.case-slider-wrapper .swiper-button-next {
		right: -40px;
	}

	.case-slider-wrapper .slick-list{overflow: visible;}

	.case-slider-wrapper .slider .slick-slide {
		transition: all .25s ease;
		opacity: 0.25;
		margin: 0 4px;
	}

	.case-slider-wrapper .slider .slick-active {
		opacity: 1;
	}

	.case-slider {}

	.case-slider-wrapper .slick-arrow {
		width: 44px;
		height: 44px;
		margin-top: 0;
	}

	.case-slider-wrapper .slick-prev {
		left: -20px;
		margin-left: 0;
	}

	.case-slider-wrapper .slick-next {
		right: -20px;
		margin-right: 0;
	}

	.case-slider-wrapper .slick-dots {
		display: flex !important;
		justify-content: center;
		list-style: none;
		padding: 0;
		margin: 20px 0 0 0;
		gap: 8px;
	}

	.case-slider-wrapper .slick-dots li {
		width: 8px;
		height: 8px;
		padding: 0;
		margin: 0;
	}

	.case-slider-wrapper .slick-dotted.slick-slider {
		margin-bottom: 40px;
	}

	.case-slider-wrapper .slick-dots li::after {
		content: none;
	}

	.case-slider-wrapper .slick-dots li button {
		width: 8px;
		height: 8px;
		padding: 0;
		border: 1px solid #000;
		border-radius: 50%;
		background: #000;
		font-size: 0;
		line-height: 0;
		display: block;
		cursor: pointer;
	}

	.case-slider-thumbnail {
		width: 120%;
		margin: 0 -10%;
		margin-top: 20px;
	}

	.case-slider-thumbnail ul li {
		overflow: hidden;
		height: 27vw;
		position: relative;
		padding: 0 5px;
	}

	.case-slider-thumbnail ul li::after{
		display:block;
		content:'';
		width:100%;
		height: 40px;
		position:absolute;
		left: 0;
		bottom: 0;
		background: linear-gradient(rgba(239,233,222,0),rgba(239,233,222,1));
	}

	.case-slider-thumbnail-nosd ul li::after{
		content: none;
	}

	.case-slider-thumbnail ul li img{border: 1px solid #aaa;}

	.case-caption {
		font-size: 11px;
		padding: 0 30px;
	}


	/* join ---------------------------------------*/

	.join {
		padding: 0 30px 40px;
	}

	.join-block {
		border-radius: 10px;
		padding: 40px 30px 30px;
		margin-bottom: 12px;
	}

	.join-block-small {
		padding: 20px 30px;
		margin-top: 20px;
		margin-bottom: 20px;
	}

	.join-block a{
		background: linear-gradient(transparent 0%, #EFE94E 1%, #EFE94E 100%);
		padding: 2px;
	}

	.join-arrow {margin: 0 auto 5px;}

	.join-arrow::after {
		border-left: 57px solid transparent;
		border-right: 57px solid transparent;
		border-top: 32px solid #EFE94E;
	}

	.join-block-title {
		font-size: 20px;
		margin-bottom: 15px;
		line-height: 1.6;
	}

	.join-block-title-small{
		font-size: 17px;
		margin-bottom: 2px;
	}

	.join-block-text {
		font-size: 13px;
		line-height: 1.9;
		letter-spacing: 0.08em;
	}

	.join-block-note {
		font-size: 11px;
	}

	.join-block-term {
		font-size: 13px;
		line-height: 1.8;
	}

	.join-block-caption {
		font-size: 11px;
		margin-bottom: 15px;
	}

	.join-banner{padding:0 10px;}
	.join-banner a:hover{opacity: 1;}


	/* thanks-card ---------------------------------------*/
	.thanks-card{
		padding-block: 40px 30px;
	}

	.thanks-card-lead{
		font-size: 13px;
		margin-bottom: 16px;
	}

	.thanks-card-slider-wrapper{
		/* width: 64%; */
		width: 75%;
		margin: 0 auto;
		overflow: visible;
	}

	.thanks-card-slider-wrapper .slick-list{overflow: visible;}

	.thanks-card-slider-wrapper .thanks-card-list .slick-slide {
		transition: all .25s ease;
		opacity: 1;
		margin: 0 4px;
	}

	.thanks-card-slider-wrapper .thanks-card-list .slick-active {
		opacity: 1;
	}

	.thanks-card-slider {}

	.thanks-card-slider-wrapper .slick-arrow {
		width: 44px;
		height: 44px;
		margin-top: 0;
	}

	.thanks-card-slider-wrapper .slick-prev {
		left: -20px;
		margin-left: 0;
	}

	.thanks-card-slider-wrapper .slick-next {
		right: -20px;
		margin-right: 0;
	}

	/* article ---------------------------------------*/

	.article{
		padding: 0 30px;
		margin-bottom: 40px;
	}

	.article-container {
		padding: 40px 30px;
		border-radius: 10px;
	}

	.article-container-top {
		margin-bottom: 40px;
	}

	.article-wrapper-text {
		font-size: 13px;
		line-height: 1.5;
		/* margin-bottom: 17px; */
	}

	.article-wrapper-block {
		display: block;
		padding: 20px;
		margin-bottom: 15px;
		text-align: center;
	}

	.article-wrapper-block-image img{
		width: 130px;
		display: inline-block;
	}

	.article-wrapper-block-summary {padding: 0 10px;}
	.article-wrapper-block-num {margin-bottom: 0;}
	.article-wrapper-block-num img{width: 90px;}

	.article-wrapper-block-title {
		font-size: 17px;
		margin-top: 30px;
		margin-bottom: 20px;
		line-height: 1.6;
	}

	.article-wrapper-block-text {
		letter-spacing: 0.05em;
		font-size: 13px;
	}

	.article-list {
		display: block;
		margin: 20px auto 20px;
	}

	.article-list-item {
		text-align: left;
		width: auto;
		max-width: 100%;
		margin-bottom: 28px;
	}

	.article-list-item > a,
	.article-list-item > div {
		display: grid;
		gap: 12px;
	}

	.article-list-image {
		margin-bottom: 0;
		padding: 0;
	}

	.article-list-name {font-size: 14px;}
	.article-list-number {font-size: 11px;}
	.article-list-text {font-size: 13px;}

	.article-row {
		flex-direction: column;
	}

	.article-row-caption{
		font-size: 13px;
	}

	.article-bottom-text {
		max-width: 400px;
		padding: 8px 12px;
		font-size: 11px;
		line-height: 1.5;
		margin-top: 24px;
	}

	.article-table{
	}

	.article-table th,
	.article-table td {
	}

	.article-table th{
		width: 80px;
	}

	.article-table td {
	}

	.article-kv{
		margin-bottom: 18px;
	}


	/* about ---------------------------------------*/

	.about {
		padding:  40px 30px;
	}

	.about-blocktop {
		padding: 40px 30px;
		margin-bottom: 40px;
		border-radius: 10px;
	}

	.about-block-title {
		text-align: center;
		font-size: 16px;
		margin-bottom: 15px;
		line-height: 1.6;
	}

	.about-block-text {
		font-size: 13px;
		margin-bottom: 15px;
	}

	.about-block-text:last-child{margin-bottom: 0;}

	.about-blockmid {
		padding: 38px 30px;
		border-radius: 10px;
		margin-bottom: 40px;
	}

	.about-blockmid-title {
		font-size: 11px;
		margin-bottom: 10px;
		font-weight: normal;
	}

	.about-blockmid-list > li {padding: 10px 0 0;}

	.about-blockmid-list-title {
		gap: 10px;
		font-size: 11px;
		align-items: flex-start;
		min-height: 30px;
	}

	.about-blockmid-list-title-num{font-size: 14px}

	.about-blockmid-list-per{width: calc(100% - 100px);}

	.about-blockmid-list-per-line {
		padding: 3px;
		font-size: 12px;
	}

	.about-blockmid-list-per-line small{font-size: 10px;}
	.about-blockmid-list-number {font-size: 36px;}

	.about-blockmid-list-number b{
		background: linear-gradient(transparent 40%, #EFE94E 41%, #EFE94E 80%, #fff 81%);
		padding: 2px;
	}

	.about-blockmid-list-number small{
		font-size: 10px;
		bottom: 1em;
	}

	.about-notice{font-size: 11px}

	.about-blockbtm {
		padding: 40px 30px;
		border-radius: 10px;
	}

	.about-blockbtm-image {margin-bottom: 15px;}

	.common-btn {
		text-align: center;
		margin-top: 20px;
		font-weight: 500;
	}

	.common-btn a {font-size: 15px;}

	.common-btn a::after{
		left: 4px;
		top: 4px;
	}

	.common-btn a span{
		width: 250px;
		height: 56px;
		padding: 20px 0 0 0;
		font-weight: 500;
	}

	.common-btn a span::after{
		right: 10px;
		width: 6px;
		height: 6px;
	}

	.common-btn a:hover span {background: #000;}


	/* bottom cta ---------------------------------------*/

	.bottom-cta {padding: 0;}

	.bottom-cta-inner {
		gap: 10px;
	}

	.bottom-cta-col-02{
		width: 66px;
	}

	.bottom-cta-col-02 .bottom-cta-lead{
		display: none;
	}

	.bottom-cta-col-02 .bottom-cta-btn span::after{
		display: none;
	}

	.bottom-cta-lead {
		font-size: 13px;
		margin-bottom: 3px;
	}

	.bottom-cta-btn::after{display: block;}

	.bottom-cta-btn span{
		width: 335px;
		max-width: 100%;
		height: 66px;
		padding: 6px 0 0 0;
		font-size: 15px;
		line-height: 1.6;
	}

	.bottom-cta-btn:hover span{background: #000;}

	.bottom-cta-btn span::after{
		right: 10px;
		width: 6px;
		height: 6px;
	}

	.bottom-cta-event{
		width: 95%;
		margin: auto auto 8px;
	}
	.bottom-cta-event a{

		padding: 8px 8px 20px;
	}
	.bottom-cta-event a:hover{
		opacity: 1;
	}
	.bottom-cta-event-row{
    display: flex;
    gap: 8px;
    align-items: center;
		margin-bottom: 4px;
	}
	.bottom-cta-event-label{
		font-size: 10px;
		margin-bottom: 0;
	}
	.bottom-cta-event-text{
	}
	.bottom-cta-event-location{
		font-size: 10px;
	}
	.bottom-cta-event-close{
		width: 30px;
		height: 30px;
	}
	.bottom-cta-event-close::before,
	.bottom-cta-event-close::after{
		right: 3px;
	}

	.bottom-cta-event-close::before{
	}

	.bottom-cta-event-close::after{
	}

		/* project ---------------------------------------*/
	.project {
		padding: 0 30px;
		text-align: center;
	}

	/* event ---------------------------------------*/
	.event {
		padding: 40px 30px;
	}

	.event-inner {
		gap: 32px;
	}

	.event-text,
	.event-term {
		font-size: 13px;
	}
	.event-text{
		margin-block: 8px;
	}

	.event-list {
		gap: 20px;
	}

	.event-list-item {
		width: auto;
		height: auto;
		flex: 1 0 0;
		aspect-ratio: 255 / 169.06;
	}

	.event-report {
		display: grid;
	}

	.event-report-link {
		width:100%;
		flex-direction: row;
		gap: 12px;
	}

	.event-report-image {
		width: 120px;
		height: 71px;
		flex-shrink: 0;
	}

	.event-report-text {
		font-size: 13px;
		flex: 1;
	}

	.event-report-icon {
		width: 20px;
		bottom: 3px;
		right: 4px;
	}

	.event-line {
		width: 315px;
	}

	.event .common-btn a span {
		width: 315px;
	}

	/* thanks-intro ---------------------------------------*/
	.thanks-intro {
		padding: 40px 30px;
	}

	.thanks-intro-list {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.thanks-intro-lead {
		font-size: 13px;
		margin-bottom: 16px;
	}

	.thanks-intro-item {
		width: 100%;
		flex-direction: row;
		gap: 12px;
		padding-bottom: 24px;
	}

	.thanks-intro-image {
		width: 120px;
		height: 82px;
		flex-shrink: 0;
		aspect-ratio: auto;
	}

	.thanks-intro-content {
		flex: 1;
	}

	.thanks-intro-title {
		font-size: 13px;
	}

	.thanks-intro-text {
		font-size: 12px;
	}

	.thanks-intro-icon {
		width: 20px;
		bottom: 3px;
		right: 4px;
	}

	/* banner note result ---------------------------------------*/
	.banner-note-result {
		padding: 40px 30px;
	}

	.banner-note-result-inner {
		gap: 12px;
	}

	.banner-note-result-title {
		font-size: 13px;
	}

	.banner-note-result-image {
		width: 100%;
	}

	.banner-note-result-date {
		font-size: 12px;
	}

	/* banner note contest ---------------------------------------*/
	.banner-note-contest {
		padding: 40px 30px;
	}

	.banner-note-contest-inner {
		gap: 12px;
	}

	.banner-note-contest-title {
		font-size: 13px;
	}

	.banner-note-contest-image {
		width: 100%;
	}

	.banner-note-contest-badge {
		width: 48px;
		height: 48px;
		font-size: 12px;
		border-radius: 0 0 24px 24px;
		border-top-right-radius: 24px;
	}

	.banner-note-contest-date {
		font-size: 12px;
	}

	/* xmas ---------------------------------------*/
	.xmas {
		margin: 40px 0 20px;
		padding: 0 30px;
	}
	.xmas-lead {
		margin-top: 0;
		font-size: 13px;
	}
	.xmas-wrap {
		display: grid;
		gap: 20px;
		
	}
	.xmas-item {
		display: grid;
		grid-auto-flow: column;
		gap: 12px;
		width:100%;
	}
	.xmas-movie {
		flex-shrink: 0;
	}
	.xmas-movie-icon {
		width: calc(28 / 375 * 100vw);
	}
	.xmas-link-icon{
		width: calc(20 / 375 * 100vw);
		bottom: 3px;
		right: 4px;
	}
	.xmas-text {
		margin: 0;
		font-size: 13px;
		flex: 1;
	}
}

/* Hamburger Menu ---------------------------------------*/

/* Hamburger Button */
.hamburger-btn {
	position: fixed;
	top: 0;
	right: 0;
	width: 80px;
	height: 80px;
	background: #EFE94E;
	border: none;
	border-radius: 0 0 0 26.67px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5.33px;
	cursor: pointer;
	z-index: 1000;
	transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
}

.hamburger-btn span {
	width: 26.67px;
	height: 2.67px;
	background: #000;
	display: block;
}

.hamburger-btn:hover {
	opacity: 0.8;
}

.hamburger-btn.hide {
	transform: translateY(-120px);
}

/* Menu Overlay */
.menu-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: #EFE94E;
	z-index: 2000;
	opacity: 0;
	visibility: hidden;
	overflow-y: auto;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.menu-overlay.active {
	opacity: 1;
	visibility: visible;
}

.menu-inner {
	position: relative;
	display: grid;
	place-items: center;
	height: 100vh;
	width: 100vw;
}

/* Close Button */
.menu-close {
	position: absolute;
	top: 24px;
	right: 24px;
	width: 40px;
	height: 40px;
	background: transparent;
	border: none;
	cursor: pointer;
	z-index: 2001;
}

.menu-close span {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 30.64px;
	height: 3.06px;
	background: #000;
}

.menu-close span:first-child {
	transform: translate(-50%, -50%) rotate(45deg);
}

.menu-close span:last-child {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.menu-close:hover {
	opacity: 0.7;
}

/* Menu Navigation */
.menu-nav {
	display: grid;
	gap: 20px;
	width: min(100%, 800px);
}

.menu-top {
	margin-bottom: 20px;
}

.menu-top-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 315px;
	text-decoration: none;
	color: #000;
	font-size: 18px;
	font-weight: bold;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.5;
}

.menu-top-link:hover {
	opacity: 0.7;
}

.menu-arrow {
	flex-shrink: 0;
}

/* Menu List */
.menu-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.menu-section {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	padding: 28px 0;
	border-bottom: 1px dashed #000;
}
.menu-section:first-child {
	padding-top: 0;
}

.menu-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 27px;
	text-decoration: none;
	color: #000;
	font-size: 18px;
	font-weight: 500;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.5;
	white-space: nowrap;
}

.menu-link:hover {
	opacity: 0.7;
}

/* Menu Button */
.menu-button {
	display: flex;
	justify-content: center;
}

.menu-x-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 480px;
	height: 70px;
	background: #000;
	color: #fff;
	text-decoration: none;
	font-size: 15px;
	font-weight: 500;
	font-family: 'Noto Sans JP', sans-serif;
	line-height: 1.9;
	box-shadow: 5px 5px 0px 0px rgba(0, 0, 0, 0.2);
	position: relative;
}

.menu-x-btn:hover {
	opacity: 0.8;
}

.menu-x-btn .x-icon{
	width: 16px;
	height: 16px;
}

.menu-x-btn .arrow {
	position: absolute;
	right: 8.76px;
	top: 50%;
	transform: translateY(-50%);
}

/* SP Styles */
@media screen and (max-width: 768px) {
	.hamburger-btn {
		width: 60px;
		height: 60px;
		top: 0;
		right: 0;
		border-radius: 0 0 0 20px;
		gap: 4px;
	}

	.hamburger-btn span {
		width: 20px;
		height: 2px;
	}

	.menu-inner {
		padding: 45px 30px 45px;
		display: block;
		place-items: unset;
		place-content: center;
	}

	.menu-close {
		top: 22.22px;
		right: 18.22px;
		width: 15.778px;
		height: 15.556px;
	}

	.menu-close span {
		width: 20px;
		height: 2px;
	}

	.menu-top-link {
		font-size: 16px;
	}

	.menu-section {
		grid-template-columns: 1fr;
		padding: 20px 0;
	}

	.menu-link{
		font-size: 16px;
	}

	.menu-nav {
		width: fit-content;
		margin-inline: auto;
	}

	.menu-list {
		width: 315px;
		padding-left: 20px;
	}

	.menu-x-btn {
		height: 57px;
		width: 315px;
		font-size: 13px;
		gap: 14.5px;
		padding: 16px 14px;
		justify-content: unset;
	}
}

/* KV Modal Button ---------------------------------------*/

.kv-modal-btn {
	position: absolute;
	bottom: 42px;
	left: 50%;
	transform: translateX(-50%);
	background: #000;
	color: #fff;
	border: none;
	border-radius: 20px;
	padding: 7px;
	width: 215px;
	height: 40px;
	font-size: 14.539px;
	font-weight: 500;
	font-family: 'Noto Sans JP', sans-serif;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	transition: opacity 0.3s ease;
	z-index: 10;
}

.kv-modal-btn:hover {
	opacity: 0.8;
}

.kv-modal-btn-text {
	line-height: 1.5;
}

.kv-modal-btn-icon {
	position: absolute;
	right:15px;
	width: 8px;
	height: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kv-modal-btn-icon-line {
	position: absolute;
	background: #fff;
}

.kv-modal-btn-icon-line--h {
	width: 8.481px;
	height: 1.212px;
}

.kv-modal-btn-icon-line--v {
	width: 1.212px;
	height: 8.481px;
}

/* Thanksday Modal ---------------------------------------*/

.thanksday-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	pointer-events: none;
}

.thanksday-modal.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.thanksday-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.25);
	cursor: pointer;
}

.thanksday-modal-content {
	position: relative;
	width: 100%;
	z-index: 1;
	max-height: 90vh;
	transform: scale(0.9);
	transition: transform 0.3s ease;
}

.thanksday-modal-content--styled {
	background: #fff;
	border: 1px solid #d9d9d9;
	border-radius: 20px;
	padding: 36px 24px;
	max-width: 432px;
}

.thanksday-modal.is-active .thanksday-modal-content {
	transform: scale(1);
}

.thanksday-modal-close {
	position: absolute;
	top: -23px;
	right: -23px;
	width: 44px;
	height: 44px;
	background: #fff;
	border: 1px solid #000;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.3s ease;
	padding: 0;
}

.thanksday-modal-close:hover {
	opacity: 0.8;
}

.thanksday-modal-close svg {
	display: block;
}

.thanksday-modal-inner {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.thanksday-modal-title {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
	line-height: 1.4;
	margin: 0;
}

.thanksday-modal-body {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.thanksday-modal-text {
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
	margin: 0;
	display: grid;
	gap: 4px;
}

.thanksday-modal-highlight {
	background: #efe94e;
	font-weight: bold;
	padding: 0 4px;
}

.thanksday-modal-note {
	background: #f4f4f4;
	padding: 4px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	margin: 0;
}

/* SP用スタイル */
@media screen and (max-width: 768px) {
	.kv-modal-btn {
		bottom: 30px;
		width: 156px;
		height: 29px;
		font-size: 11px;
		border-radius: 16px;
		padding: 6px;
	}

	.kv-modal-btn-icon {
		width: 7px;
		height: 7px;
		right: 8px;
	}

	.kv-modal-btn-icon-line--h {
		width: 7px;
		height: 1px;
	}

	.kv-modal-btn-icon-line--v {
		width: 1px;
		height: 7px;
	}

	.thanksday-modal-content--styled {
		padding: 20px 12px;
		max-width: 315px;
	}

	.thanksday-modal-title {
		font-size: 16px;
	}

	.thanksday-modal-text {
		font-size: 13px;
	}

	.thanksday-modal-note {
		font-size: 11px;
	}

	/* banner note result ---------------------------------------*/
	.banner-note-result {
		padding: 40px 30px;
	}

	.banner-note-result-title {
		font-size: 13px;
	}

	.banner-note-result-image {
		margin: 12px 0;
	}

	.banner-note-result-date {
		font-size: 12px;
	}

	/* banner note contest ---------------------------------------*/
	.banner-note-contest {
		padding: 40px 30px;
	}

	.banner-note-contest-title {
		font-size: 13px;
	}

	.banner-note-contest-image {
		margin: 12px 0;
	}

	.banner-note-contest-badge {
		width: 48px;
		height: 48px;
		font-size: 12px;
	}

	.banner-note-contest-date {
		font-size: 12px;
	}

	/* xmas ---------------------------------------*/
	.xmas-wrap-outer{
		margin-bottom: 20px;
	}
}

/* episode-illustration ---------------------------------------*/
.episode-illustration {
	background: #EFE9DE;
	padding: 0 30px 60px;
}

.episode-illustration-inner {
	max-width: 800px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.episode-illustration-text {
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
}

.episode-illustration-list {
	display: flex;
	gap: 20px;
	width: 100%;
	max-width: 800px;
	justify-content: center;
}

.episode-illustration-item {
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: relative;
	width: calc(50% - 20px);
}

.episode-illustration-image {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	cursor: pointer;
	border: none;
	background: none;
	padding: 0;
	display: block;
	overflow: hidden;
	transition: opacity 0.3s ease;
}

.episode-illustration-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.episode-illustration-image:hover {
	opacity: 0.8;
}

.episode-illustration-icon {
	position: absolute;
	bottom: 8px;
	right: 8px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.episode-illustration-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.episode-illustration-caption {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
	color: #000;
	text-decoration: none;
	display: inline-block;
	position: relative;
	transition: opacity 0.3s ease;
}

.episode-illustration-caption:hover {
	opacity: 0.7 !important;
}

.episode-illustration-icon-external {
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-left: 4px;
	vertical-align: middle;
	font-style: normal;
}

.episode-illustration-icon-external img {
	width: 100%;
	height: 100%;
	display: block;
}

/* エピソードイラストモーダル用 */
.thanksday-modal-content--episode {
	/* max-width: 700px; */
	width: fit-content;
	padding: 0;
	background: transparent;
	border: none;
}

.thanksday-modal-content--episode .thanksday-modal-inner {
	padding: 0;
}

.thanksday-modal-content--episode .thanksday-modal-inner img {
	display: block;
	aspect-ratio: 1 / 1;
	width: 70vw;
	max-width: 650px;
}

/* SP用スタイル */
@media screen and (max-width: 768px) {
	.episode-illustration {
		padding: 0px 30px 40px;
	}

	.episode-illustration-title {
		font-size: 28px;
	}

	.episode-illustration-text {
		font-size: 13px;
	}

	.episode-illustration-list {
		gap: 12px;
	}

	.episode-illustration-icon {
		width: 20px;
		height: 20px;
	}

	.episode-illustration-item{
		width: calc(50% - 12px);
	}

	.episode-illustration-caption {
		font-size: 13px;
		text-align: left;
	}
	.thanksday-modal-content--episode .thanksday-modal-inner img {
		width: 90vw;
		max-width: 500px;
	}
}


/* media-gallery ---------------------------------------*/
.media-gallery {
	background: #EFE9DE;
	padding: 0 60px 30px;
}

.media-gallery-inner {
	max-width: 800px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.media-gallery-text {
	font-size: 15px;
	line-height: 1.5;
	text-align: center;
	margin: 0 0 20px;
	font-family: 'Noto Sans JP', sans-serif;
}

.media-gallery-list {
	display: flex;
	flex-wrap: wrap;
	gap: 50px 20px;
	width: 100%;
	max-width: 800px;
	justify-content: center;
}

.media-gallery-item {
	width: calc(50% - 10px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	position: relative;
}

.media-gallery-image {
	position: relative;
	width: 100%;
	aspect-ratio: 152 / 192;
	cursor: pointer;
	border: 2px solid #fff;
	background: none;
	padding: 0;
	display: block;
	overflow: hidden;
	transition: opacity 0.3s ease;
}

.media-gallery-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.media-gallery-image:hover {
	opacity: 0.8;
}

.media-gallery-icon {
	position: absolute;
	bottom: 8px;
	right: 8px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.media-gallery-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.media-gallery-caption {
	display: flex;
	flex-direction: column;
	gap: 0;
	text-align: center;
}

.media-gallery-title {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.5;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
	color: #000;
}

.media-gallery-date {
	font-size: 15px;
	line-height: 1.5;
	margin: 0;
	font-family: 'Noto Sans JP', sans-serif;
	color: #000;
}

/* SP用スタイル */
@media screen and (max-width: 768px) {
	.media-gallery {
		padding: 0 40px 30px;
	}

	.media-gallery-text {
		font-size: 13px;
		margin-bottom: 16px;
	}

	.media-gallery-list {
		gap: 30px 10px;
	}

	.media-gallery-item {
		width: calc(50% - 5px);
		gap: 10px;
	}

	.media-gallery-icon {
		width: 20px;
		height: 20px;
	}

	.media-gallery-title {
		font-size: 13px;
	}

	.media-gallery-date {
		font-size: 13px;
	}
}

/* メディアギャラリーモーダル用 */
.thanksday-modal-content--media-gallery {
	max-width: 900px;
	padding: 0;
	background: transparent;
	border: none;
}

.thanksday-modal-content--media-gallery .thanksday-modal-inner {
	padding: 0;
	max-height: 90vh;
	overflow-y: auto;
}

.thanksday-modal-content--media-gallery .thanksday-modal-inner img {
	width: 100%;
	height: auto;
	display: block;
}

/* シーズンエピソードセクション ---------------------------------------*/
.season-episode {
	background: #EFE9DE;
	padding: 0 30px 60px;
}

.season-episode-block {
	display: grid;	
	gap: 20px;
	padding-bottom: 40px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.season-episode-block:not(:last-child) {
	margin-bottom: 40px;
}

.season-episode-content {
	display: grid;
	gap: 8px;
	text-align: center;
}

.season-episode-title {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.4;
	color: #000;
	margin: 0;
}

.season-episode-text {
	font-size: 15px;
	text-align: center;
}

.season-episode-thumbnails {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	justify-content: center;
}

.season-episode-thumbnails-single {
	grid-template-columns: 1fr;
	width: min(100%, 390px);
	margin-inline:auto;
}

.season-episode-thumbnail {
	position: relative;
	width: 100%;
	aspect-ratio: 152 / 104;
	aspect-ratio: auto;
	transition: all 0.25s ease;
	display: block;
	text-decoration: none;
	overflow: hidden;
}
.season-episode-thumbnail:hover {
	opacity: 0.8 !important;
}

.season-episode-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.season-episode-icon {
	width: 40px;
	aspect-ratio: 1;
	pointer-events: none;
	position: absolute;
	bottom: 8px;
	right: 8px;
}

.season-episode-icon img {
	width: 100%;
	height: 100%;
	display: block;
}

/* SP用スタイル */
@media screen and (max-width: 768px) {
	/* シーズンエピソードセクション ---------------------------------------*/
	.season-episode {
		padding: 0 30px 40px;
	}

	.season-episode .section-head {
	}

	.season-episode-block {
		gap: 12px;
		padding-bottom: 16px;
	}

	.season-episode-block:not(:last-child) {
		margin-bottom: 16px;
	}

	.season-episode-content {
		gap:12px;
	}

	.season-episode-title {
		font-size: 16px;
	}

	.season-episode-text {
		font-size: 15px;
		line-height: 1.5;
		color: #000;
		margin: 0;
	}

	.season-episode-thumbnails {
		gap: 12px;
	}

	.season-episode-thumbnails-single {
		grid-template-columns: 1fr;
		width: min(calc(152 / 375 * 100vw), 348px);
	}

	.season-episode-icon {
		width: calc(20 / 375 * 100vw);
		bottom: 3px;
		right: 4px;
	}

	.thanksday-modal-content--media-gallery {
		max-width: 100%;
	}
}