@charset "utf-8";

/*----------------------------------------
	全体
----------------------------------------*/
html{
	font-family:'游ゴシック体', 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
	font-size:62.5%;
	color: #000;
	-webkit-text-size-adjust:100%;
	line-height:1.5;
	font-weight: 500;
}
body{ font-size:1.4rem; font-size: 1.4em; }
li{ list-style:none; }
img{
	height: auto;
	vertical-align: bottom; 
}
a{
	color:#fff;
	transition: all .4s;
}
a:hover{
	opacity: 0.6;
	transition: all .4s;
}
a img:hover{ opacity: .7;}
.op{ transition: all .4s;}
.op:hover{
	filter: alpha(opacity=70);
	-moz-opacity:070;
	opacity:0.70;
	transition: all .4s;
}
.clear{ clear: both; }
.max_respon{ max-width: 100%;}

.blue{ background: #083B6D}
.skyblue{ background: #7ECEF4}
.gray{ background: #e6e7e7}
.dark_gray{ background: #434343}
.beige{ background: #E5DDCB}
.white{ background: #fff}


/*----------------------------------------
	text
----------------------------------------*/
p{ line-height: 2; }

.text_bold{ font-weight: bold; }

.center{ text-align:center; }
.text_left{ text-align:left; }
.text_right{ text-align:right; }

.text_gray{ color: #a6a6a6; }
.text_red{ color: #e60012; }
.text_black{ color: #000; }

.lh_14{ line-height: 1.4 !important; }
.lh_15{ line-height: 1.5 !important; }
.lh_16{ line-height: 1.6 !important; }
.lh_18{ line-height: 1.8 !important; }
.ls_-1{ letter-spacing: -1px; }
.ls_03{letter-spacing: 0.3rem; }
@media print, screen and (min-width: 770px){
	.text_12{ font-size:1.2rem !important; }
	.text_13{ font-size:1.3rem !important; }
	.text_14{ font-size:1.4rem !important; }
	.text_16{ font-size:1.6rem !important; }
	.text_18{ font-size:1.8rem !important; }
	.text_20{ font-size:2rem !important; }
	.text_21{ font-size:2.1rem !important; }
	.text_22{ font-size:2.2rem !important; }
	.text_24{ font-size:2.4rem !important; }
	.text_26{ font-size:2.6rem !important; }
	.text_28{ font-size:2.8rem !important; }
	.text_36{ font-size:3.6rem !important; }
}/*END*/
@media screen and (max-width: 599px){
	.text_12{ font-size:1.2rem !important; }
	.text_13{ font-size:1.3rem !important; }
	.text_14{ font-size: 1.3rem !important; }
	.text_16{ font-size: 1.4rem !important; }
	.text_18{ font-size: 1.6rem !important; }
	.text_20{ font-size: 1.7rem !important; }
	.text_21{ font-size: 1.8rem !important; }
	.text_22{ font-size: 1.8rem !important; }
	.text_24{ font-size: 1.8rem !important; }
	.text_26{ font-size: 1.9rem !important; }
	.text_28{ font-size: 2rem !important; }
	.text_36{ font-size: 2.2rem !important; }
}/*END*/



/*----------------------------------------
	header
----------------------------------------*/
.sd-trigger{
	position: fixed;
	top: 0;
	right: 0;
	width: 16%;
	cursor: pointer;
	background: #fff;
	z-index: 7;
}
#sd{
	box-sizing: border-box;
	background: #fff;
}
#sd li a{
	display: block;
	text-decoration: none;
	padding: 20px 2% 20px 4%;
	color:#000;
	border-bottom: 1px solid #ccc;
}
#sd li a:hover{color: #14557a;}

@media print, screen and (min-width: 750px){
	.sd-trigger{
		left: calc(50% + 150px);
		right: auto;
		max-width: 100px;
	}
	.sp_mv{display: none;}
	.pc_mv{
		width: 100%;
		display: block;
		margin-left: auto;
		margin-right: auto;
	}
}/*END*/
@media screen and (max-width: 769px){
	.sd-trigger{max-width: 25%;	}
	.pc_mv{	display: none;}
	.sp_mv{	width: 100%;}
}/*END*/



/*----------------------------------------
	layout
----------------------------------------*/
:root{
	--lp_w: 500px;
	--side_w: clamp(460px, calc(100vw - 780px), 780px);
	--col_gap: 70px;
	--nav_w: 60px;
	--nav_gap: 50px;

	--stage_w: calc(var(--side_w) + var(--col_gap) + var(--lp_w) + var(--nav_gap) + var(--nav_w));
	--stage_l: max(3vw, calc(50vw - var(--stage_w) / 2));
}

@media screen and (max-width: 1279px){
	:root{
		--stage_w: calc(var(--lp_w) + var(--nav_gap) + var(--nav_w));
	}
}

#container,
.overflow{
	overflow: hidden;
}
.main_frame{
	width: 100%;
	position: relative;
	box-sizing: border-box;
	max-width: 750px;
	margin-left: auto;
	margin-right: auto;
}
.lp_frame{
	width:84%;
	margin-right: auto;
	margin-left: auto;
	box-sizing: border-box;
}
.lp_frame_f{
	width:90%;
	margin-right: auto;
	margin-left: auto;
	box-sizing: border-box;
}
.bg_logo {
	position: fixed;
	max-width: 320px;
	width: 18%;
	top: 10%;
	left: 5%;
}
@media screen and (max-width: 1000px) {
	.bg_logo {display: none;}
}
/* .ribbon_l{
	position: fixed;
    top: 0;
    left: 0;
    background: url(../images/background-rbn.jpg) center top repeat-y;
    background-size: 100%;
    height: 100vh;
    width: 4.5%;
    max-width: 50px;
    box-shadow: 0 0 8px 0px rgb(0 0 0 / 20%);
    z-index: 1;
}
.ribbon_r{
	position: fixed;
    top: 0;
    right: 0;
    background: url(../images/background-rbn.jpg) center top repeat-y;
    background-size: 100%;
    height: 100vh;
    width: 4.5%;
    max-width: 50px;
    box-shadow: 0 0 8px 0px rgb(0 0 0 / 20%);
    z-index: 1;
} */
#frame{
	position: relative;
	z-index: 2;
	box-shadow: 0 0 30px 0px rgb(0 0 0 / 30%);
	max-width: var(--lp_w);
	margin-left: auto;
	margin-right: calc(var(--stage_l) + var(--nav_gap) + var(--nav_w));
}
@media screen and (max-width: 999px) {
	#frame{
		max-width: 500px;
		margin-left: auto;
		margin-right: auto;
	}
}
@media screen and (min-width: 750px){
	.lp_frame{
		width: 84%;
		margin-right: auto;
		margin-left: auto;
	}
	.check .lp_frame{
		width: 90%;
		margin-right: auto;
		margin-left: auto;
	}
}
@media screen and (max-width: 749px){
	#frame{
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
}
@media print, screen and (min-width: 770px){
	.sp_only{display: none !important;}
	.btn_hover{
		position: relative;
		display: block;
	}
	.btn_hover:hover{animation:btn_hover 0.5s ease-in;}
	@keyframes btn_hover{
		0% {
			top: 0;
		}
		40% {
			top: -5px;
		}
		100% {
			top: 0;
		}
	}
}
@media print, screen and (min-width: 600px){
	.sp_br{ display: none;}
}

@media screen and (max-width: 769px){
	.pc_only{ display: none !important;}
}

/* ===========================
　　　背景アニメーション
=========================== */
#bk {
	position: relative;

	--before-image: url('../images/bg_img01.jpg');
	--after-image: url('../images/bg_img01.jpg');

	--before-opacity: 1;
	--after-opacity: 0;
}

#bk::before,
#bk::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background-size: cover;
	background-position: bottom;
	background-repeat: no-repeat;
	will-change: opacity;
	transition: opacity 0.8s ease;
	pointer-events: none;
}


/* 現在の背景 */
#bk::before {
	background-image: var(--before-image);
	opacity: var(--before-opacity);
}

/* 次の背景 */
#bk::after {
	background-image: var(--after-image);
	opacity: var(--after-opacity);
}




/*----------------------------------------
	youtube
----------------------------------------*/
.youtube_position {
	position: absolute;
	width: 90%;
	bottom: 31%;
	right: 0;
}
#content02 .youtube_position {bottom: 32%;}
#content03 .youtube_position {bottom: 31%;}
.youtube_frame{
	position: relative;
	overflow: hidden;
	width: 100%;
	height: auto;
	aspect-ratio: 560/315;
	min-width: 0;
	min-height: 0;
	text-align: center;
}
.youtube_frame iframe{
	width: 100%;
	height: 100%;
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate3d(-50%, -50%, 0);
	-ms-transform: translate3d(-50%, -50%, 0);
	transform: translate3d(-50%, -50%, 0);
}
.youtube_frame iframe:not(:target){
	left: 0\9;
	top: 0\9;
}
.youtube_frame iframe{
	left: 0\9;
	top: 0\9;
}
@media all and (-ms-high-contrast: none) {
	.youtube_frame iframe{
		left: 50%\9 !important;
		top: 50%\9 !important;
	}
}
.youtube_frame{ z-index: 2; }/*chrome対策*/


/*----------------------------------------
	map
----------------------------------------*/
/* .map{
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100%;
	padding: 65% 0 0;
	text-align: center;
}
.map iframe{
	width: 100%;
	height: 100%;
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate3d(-50%, -50%, 0);
	-ms-transform: translate3d(-50%, -50%, 0);
	transform: translate3d(-50%, -50%, 0);
}
.map iframe:not(:target){
	left: 0\9;
	top: 0\9;
}
.map iframe{
	left: 0\9;
	top: 0\9;
}
@media all and (-ms-high-contrast: none) {
	.map iframe{
		left: 50%\9 !important;
		top: 50%\9 !important;
	}
}
.map{ z-index: 2; }
@media screen and (max-width: 1049px){
	.map{ padding: 80% 0 0; }
} */
.map {
    position: absolute;
    overflow: hidden;
    width: 76%;
    height: 28%;
    top: 65%;
    left: 50%;
    transform: translateX(-50%);
}
.map iframe{
	width: 100%;
	height: 100%;
	border: none;
	display: block;
	object-fit: contain;
}/*END*/

/*----------------------------------------
	contact
----------------------------------------*/
.contact{
	width: 100%;
	line-height: 1.8;
	box-sizing: border-box;
	color: #000;
}
.contact label,
.contact label span{
	color: #000;
}
.contact th,
.contact td{
	text-align: left;
	box-sizing: border-box;
}
.contact th{padding-bottom: 5px;}
.contact td{padding-bottom: 20px;}
.contact td p{line-height: 1.2;}
.kind label{
	box-sizing: border-box;
	padding-top: 8px;
	padding-bottom: 8px;
	padding-left:50px !important;
}
.kind label:before{
	left: 13px !important;
}
.kind.check input[type="checkbox"]:checked + label:after {
	left: 19px !important;
}
.r_kind label{
	box-sizing: border-box;
	padding-left:45px !important;
	margin-bottom: 20px !important;
}
.schedule_form input{
	float: left;
	width: 40%;
}
.schedule_form select{
	float: left;
	width: 28%;
	margin-left: 2%;
}
.schedule_form input,
.schedule_form select{
	border: 1px solid #dcdcdc !important;
	background: #fff !important;
}
.hissu:after,
.nini:after{
	display: inline-block;
	border-radius: 5px;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1;
	vertical-align: 5px;
	margin-left: 10px;
	padding: 6px;
}
.hissu:after{
	content: "必須";
	background: #d95a5a;
	color: #fff;
}
.nini:after{
	content: "任意";
	border: 1px solid #e4e4e4;
	background: #e4e4e4;
	color: #000;
}
.privacy_check_link {color: #000;}

/*error*/
td .error{
	color: #e60012;
	padding-top: 10px;
}
.privacy .error{
	display: block;
	background: #ffcdd3;
	color: #e60012;
	text-align: center;
	margin-top: 10px;
	padding: 5px 14px;
}
td.error{
	display: block;
	background:#ffcdd3;
	margin-bottom: 15px;
	padding: 8px;
}
@media print, screen and (min-width: 770px){
	.contact th{font-size: 2rem;}
	.contact td{font-size: 1.8rem;}
}/*END*/
@media screen and (max-width: 769px){
	.contact th{
		font-size: 1.5rem;
		padding-bottom: 4px;
	}
	.contact td{
		font-size: 1.4rem;
		padding-bottom: 15px;
	}
	.privacy .error,
	td .error{
		font-size: 1.4rem;
	}
	.privacy .hissu:after,
	th.hissu:after,
	th.nini:after{
		padding: 3px 6px;
		font-size: 1.2rem;
		vertical-align: 1px;
		margin-left: 6px;
	}
	.kind label{
		padding-top: 10px;
		padding-bottom: 10px;
	}
	.privacy{font-size: 1.4rem !important;}

}/*END*/


/*----------------------------------------
	フォーム
----------------------------------------*/
select, textarea, input[type="tel"], input[type="email"], input[type="text"] {
    padding: 20px 15px;
    background: #fff;
    border: none;
    box-sizing: border-box;
    font-family: '游ゴシック体', 'Yu Gothic', YuGothic, 'メイリオ', Meiryo, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ＭＳ ゴシック', sans-serif;
    -webkit-appearance: none;
    font-size: 1.7rem;
    color: #000;
}
select:focus{ outline:none; }
textarea:focus,
input[type="tel"]:focus,
input[type="email"]:focus,
input[type="text"]:focus{
	outline:none;
	border: 1px solid #ccc;
}
select{width: 100%;}
.form1{ width: 250px; }
.form2{ width: 350px; }
.form_all{ width: 100%; }
:focus{ outline: none; }
.form_box_flex{
	display: flex;
	justify-content: space-between;
}
.box_heaf{
	width: auto;
	float: left;
	display: flex;
}
.m_r10{margin-right: 4%;}
.telbox{width:28%;}
.telbox_sen {
	width: 10%;
    text-align: center;
    padding-top: 13px;
}
.select_ttl{
	width: 100%;
	padding: 20px 10px 10px 0;
	font-size: 2.2rem;
}
.media_pb{padding-bottom: 15px !important;}
@media screen and (max-width: 769px){
	select,
	textarea,
	input[type="tel"],
	input[type="email"],
	input[type="text"]{
		padding: 10px 10px;
		font-size: 1.6rem;
	}
	select:focus{ outline:none; }
	textarea:focus,
	input[type="tel"]:focus,
	input[type="email"]:focus,
	input[type="text"]:focus{
		border: 1px solid #867b5b;
	}
	.form1{ width: 150px; }
	.form2{ width: 100%; }
}/*END*/

/*form 追加*/
.form_none{display: none;}
.form_block{display: table-row;}
.bg_form{background: #dfeafc;}
.form_submit a {
	display: block;
	width: 80%;
	margin-inline: auto;
}

/*select　矢印*/
.select_arrow {position: relative;}
.select_arrow::after {
	display: block;
	content: "";
	position: absolute;
	width: 10px;
	height: 10px;
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
	transform: translateY(-75%) rotate(45deg);
	top: 50%;
	right: 15px;
}
.error .select_arrow::after {top: 25%;}


/*----------------------------------------
	radio checkbox
----------------------------------------*/
.radio input[type="radio"],
.check input[type="checkbox"]{
	position: absolute;
	height: 1px;
	width: 1px;
	clip: rect(0, 0, 0, 0);
}
.radio label,
.check label{
	display: inline-block;
	position: relative;
	cursor: pointer;
	padding-left: 40px;
	line-height: 2;
	margin-right: 35px;
	margin-bottom: 10px;
	background: #fff;
	width: 100%;
	box-sizing: border-box;
}
.radio label {
	display: inline;
	padding: 9px 19px 9px 40px;
}
.radio label:before,
.check label:before{
	position: absolute;
	content: "";
	top: 50%;
	left: 0;
	width: 22px;
	height: 22px;
	margin-top: -13px;
	background: #fff;
	border:2px solid #dcdcdc;
	border-radius: 50%;
}
.radio label:before{margin-top: -13px;}
.check label:before{ border-radius: 0; }
.radio label:before{ border-radius: 50%; }
.radio label,
.check label{
	margin-left: 0\9;
	padding: 11px\9;
}
.radio label:not(:target),
.check label:not(:target){
	margin-left: 10px\9;
	padding: 11px 0 11px 25px\9;
}
.radio label:before,
.check label:before{
	display: none\9;
}
.radio label:not(:target):before,
.check label:not(:target):before{
	display: inline-block\9;
}
.radio input[type="radio"]:checked + label:after{
	position: absolute;
	content: "";
	top: 50%;
	left: 3px;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	border-radius: 50%;
	background: #7fcef4;
}
.check input[type="checkbox"]:checked + label:after {
	content: "";
	position: absolute;
	top: 50%;
	box-sizing: border-box;
	display: block;
	left: 4px;
	width: 15px;
	height: 9px;
	margin-top: -6px;
	border-left: 4px solid #7fcef4;
	border-bottom: 4px solid #7fcef4;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
.check input[type="checkbox"]:checked + label:before{
	background: #fff;
}
.radio_style label{
	padding-bottom: 5px;
}
.medhia_check label{
	padding-left: 40px;
	margin-right: 30px;
}
.privacy label{
	box-sizing: border-box;
	padding-top: 8px;
	padding-bottom: 8px;
	padding-left:50px !important;
}
.privacy label:before{
	left: 13px !important;
}
.privacy.check input[type="checkbox"]:checked + label:after {
	left: 19px !important;
}
.privacy_link {color: #000;}
.pb_0 {padding-bottom: 12px!important;}
.priv-text {
	height: 300px;
	overflow-y: scroll;
	border: none;
	background: #fff;
	font-size: 1.3rem;
	line-height: 1.8;
	padding: 10px;
	box-sizing: border-box;
}
.priv-ttl {
	font-size: 1.8rem;
	padding-bottom: 10px;
	padding-top: 10px;
}

/* 追加 */
@media screen and (max-width: 450px){
	.radio label {
		padding: 9px 19px 9px 30px;
		margin-right: 0px;
	}
}

/*----------------------------------------
	footer
---------------------------------------*/
.copyright{
	background: #fff; 
	text-align: center;
	padding-top: 50px;
	padding-bottom: 15px;
	line-height: 1.4;
}
.sp_menu{
	width: 100%;
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	box-sizing: border-box;
	z-index: 10;
}
.sp_menu a{display: block;}
.sp_menu ul{
	display: flex;
	width: 100%;
	max-width: var(--lp_w);
	margin-left: auto;
	margin-right: calc(var(--stage_l) + var(--nav_gap) + var(--nav_w));
}
@media screen and (max-width: 749px){
	.sp_menu ul{max-width: 749px;}
}/*END*/

@media screen and (max-width: 999px) {
	.sp_menu ul{
		margin-right: auto;
	}
}


/*----------------------------------------
	header
----------------------------------------*/
header{position: relative;}
.drawer{
	position: fixed;
	background: rgba(0, 0, 0, 0.8);
	top: 0;
	right: 0;
	width: 100%;
	height: 100vh;
	color: #d0c077;
	display: flex;
	justify-content: center;
	visibility: hidden;
	opacity: 0;
	transform: translateX(100%);
	transition: 0.5s ease-in-out;
	z-index: 50;
}
.drawer ul{
	text-align: center;
	padding-top: 60px;
}
.drawer ul li{
	line-height: 1.6;
	position: relative;
	transform: translateX(-150px);
	transition: transform 0.5s ease;
}
.drawer ul li:nth-child(2){ transition-delay: 0.15s; }
.drawer ul li:nth-child(3){ transition-delay: 0.25s; }
.drawer ul li:nth-child(4){ transition-delay: 0.35s; }
.drawer ul li:nth-child(5){ transition-delay: 0.45s; }
.drawer ul li:nth-child(6){ transition-delay: 0.55s; }
.drawer ul li:nth-child(7){ transition-delay: 0.65s; }
.drawer ul li:nth-child(8){ transition-delay: 0.4s; }
.drawer ul li:nth-child(9){ transition-delay: 0.45s; }
.drawer ul li:nth-child(10){ transition-delay: 0.5s; }
.drawer ul li:nth-child(11){ transition-delay: 0.55s; }
.drawer ul li:nth-child(12){ transition-delay: 0.6s; }
.drawer ul li a{
	display: inline-block;
	font-size: 1.6rem;
	color: #fff;
	text-decoration: none;
	padding: 10px;
}
.drawer ul li a:hover{
	animation: drawer 1.4s;
	color: #C1C1C1;
}
@keyframes drawer{
	0%{
		filter: none;
	}
	30%{
		filter: blur(0.8px);
	}
	100%{
		filter: none;
	}
}
.open .drawer{
	visibility: visible;
	opacity: 1;
	transform: translateX(0);
}
.open .drawer ul li{
	transform: translateX(0);
}
.head_lp .drawer_close{
	position: absolute;
	right: 15px;
	top: 15px;
	width: 40px;
	height: 40px;
	cursor: pointer;
}
.head_lp .drawer_close span{
	display: inline-block;
	position: absolute;
	left: 0;
	top: 50%;
	background: #fff;
	height: 2px;
	width: 100%;
	transition: all 0.4s;
}
.head_lp .drawer_close span:nth-child(1){transform: rotate(45deg);}
.head_lp .drawer_close span:nth-child(2){transform: rotate(-45deg);}
.head_lp .drawer_close:hover span{background: #bd0d23;}
@media screen and (max-width: 768px){
	.head_lp .drawer_close{
		width: 30px;
		height: 30px;
	}
	.drawer ul li a{font-size: 1.6rem;}
}/*END*/


.btn_menu_works{
	display: none;
	background: #00a0e9;
	/* border-radius: 50%; */
	width: 50px;
	height: 50px;
	position: fixed;
	right: calc(50% - 240px);
	top: 10px;
	z-index: 51;
	cursor: pointer;
	transition: all .5s;
}
.btn_menu_works span{
	background: #fff;
	position: absolute;
	right: 10px;
	height: 2px;
	transition: all 0.4s;
}
.btn_menu_works span:nth-child(1){
	width: 60%;
	top: 20px;
}
.btn_menu_works span:nth-child(2){
	width: 40%;
	top: 28px;
}
.open .btn_menu_works {
	background: transparent;
}
.open .btn_menu_works span:nth-child(1){
	width: 60%;
	transform: rotate(45deg);
	top: 20px;
}
.open .btn_menu_works span:nth-child(2){
	width: 60%;
	transform: rotate(-45deg);
	top: 20px;
}
@media screen and (max-width: 749px){
	.btn_menu_works{
		display: block;
		width: 45px;
		height: 45px;
		right: 10px;
		top: 13px;
	}
	.btn_menu_works span{right: 9px;}
	.btn_menu_works span:nth-child(1){top: 18px;}
	.btn_menu_works span:nth-child(2){top: 26px;}
}/*END*/



/*----------------------------------------
	btn
----------------------------------------*/
.rela{position: relative;}
.btn {
    display: block;
    width: 83%;
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0%);
}
.btn._01 {bottom: 4%;}
.btn._02 {bottom: 3%;}
.btn._03 { bottom: 4.5%;}
.contents_btn {
	position: absolute;
	display: block;
	width: 75%;
	left: 50%;
	transform: translateX(-50%);
	top: 9%;
	z-index: 10;
}


/*----------------------------------------
	カレント表示ナビゲーション
----------------------------------------*/
.target_nav {
	position: fixed;
	z-index: 49;
	top: 50%;
	right: var(--stage_l);
	transform: translateY(-50%);
}

/* ナビ全体 */
.header__list {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;

	margin: 0;
	padding: 0;

	list-style: none;
}

/* 各項目 */
.header__item {
	position: relative;
}

/* リンク */
.header__link {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 50px;
	height: 24px;

	color: #fff;
	text-decoration: none;
	font-family: "Playfair Display", serif;
	font-size: 2.0rem;
	font-style: italic;
}

/* 楕円 */
.header__link::before {
	content: "";
	position: absolute;
	top: 62%;
	left: 50%;
	width: 60px;
	height: 36px;
	transform: translate(-50%, -50%);
	border: 2px solid #fff;
	border-radius: 20px;
	opacity: 0;
	transition: opacity 0.3s ease;
}

/* 現在地 */
.header__link.is-active::before {
	opacity: 1;
}
@media screen and (max-width: 999px) {
	.target_nav {
		position: fixed;
		z-index: 49;
		top: 50%;
		right: 50%;
		transform: translate(calc(-50% + 370px), -50%);
	}
}
@media screen and (max-width: 749px){
	.target_nav {
		display: none!important;
	}
}/*END*/

@media screen and (max-width: 599px){
	.target_nav {
		display: none!important;
	}
}
/*----------------------------------------
	datepicker
----------------------------------------*/
#ui-datepicker-div {
	max-width: 100%;
	width: 420px;
}
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default,
.ui-button,
html .ui-button.ui-state-disabled:hover,
html .ui-button.ui-state-disabled:active {
	padding: 15px;
}
.ui-datepicker .ui-datepicker-header {
	padding: 8px 0;
}
@media screen and (max-width: 440px) {
	#ui-datepicker-div {width: 340px;}
} /*END*/



/*----------------------------------------
	文字飾り配置
----------------------------------------*/
.deco01,
.deco02 {
	max-width: 290px;
	width: 100%;
	position: absolute;
}
.deco01 {
	bottom: 34%;
	right: -18%;
}
.deco02 {
	top: 39.5%;
	left: -20%;
}
@media screen and (max-width: 749px) {
	.deco01,
	.deco02 {
		max-width: 380px;
	}
	.deco01 {
		bottom: 34.5%;
		right: -12%;
	}
	.deco02 {
		left: -11%;
	}
} /*END*/
@media screen and (max-width: 599px) {
	.deco01 {
		bottom: 33%;
		right: -143px;
	}
	.deco02 {
		top: 39%;
		left: -125px;
	}
} /*END*/
@media screen and (max-width: 500px) {
	.deco01,
	.deco02 {
		max-width: 290px;
	}
	.deco01 {
		bottom: 33%;
		right: -143px;
	}
	.deco02 {
		top: 39%;
		left: -125px;
	}
} /*END*/
/*----------------------------------------
	formボタン
----------------------------------------*/
/* 3つのボタン ベーススタイル */
.form_submit a {
    display: block;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.form_submit a:hover {
    text-decoration: none;
}
.btn_back, .btn_check, .btn_send {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100%; 
    height: 70px;
    max-width: 380px;
    padding: 26px 20px;
    font-size: 1.6rem;
    font-weight: bold;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: 6px;
    text-decoration: none; 
    box-sizing: border-box;
}
/* 戻るボタンは少し小さく幅60% */
.btn_back {
    height: 60px;
    width: 70% !important;
}
/* 確認・送信ボタンは文字を大きく */
.btn_check, .btn_send {
    font-size: 2.0rem;
}
/* 文字の基準設定 */
.btn_back span, .btn_check span, .btn_send span {
    position: relative;
    display: inline-block;
}
/* 矢印共通スタイル */
.btn_back span::after, .btn_check span::after, .btn_send span::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 12px;
    height: 12px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transition: all 0.3s ease;
}
.btn_check span::after, .btn_send span::after {
    right: -24px; 
    transform: translateY(-50%) rotate(45deg); 
}
.btn_back span::after {
    left: -24px;
    transform: translateY(-50%) rotate(-135deg); 
}
/* --- カラー設定 --- */
.btn_back {
    background-color: #9c9c9c;
    color: #fff;
	font-family:'游ゴシック体', 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
}
.btn_check {
    background-color: #000;
    color: #fff;
	font-family:'游ゴシック体', 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
}
.btn_send {
    background-color: #000;
    color: #fff;
	font-family:'游ゴシック体', 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
}
a.btn_back:hover,a.btn_check:hover,a.btn_send:hover{
    color: #fff;
    opacity: 0.7;
}
@media screen and (max-width: 599px){
    .btn_back, .btn_check, .btn_send {
        padding: 20px 10px;
    }
}/*END*/
/*----------------------------------------
	MV
----------------------------------------*/
.mv_logo {
	position: absolute;
	top: 0;
	width: 100%;
}
.mv_logo.num01 {
	z-index: 1;
}
.mv_logo.num02 {
	z-index: 2;
}
/*----------------------------------------
	intro
----------------------------------------*/
.intro_ab {
	position: absolute;
}
.intro_ab.num01 {
	top: 5.7%;
	left: 0;
	width: 90%;
}
.intro_ab.num02 {
	bottom: 0;
}
/*----------------------------------------
	maigo
----------------------------------------*/
.maigo_ab {
	position: absolute;
	top: 0;
}
/*----------------------------------------
	essence
----------------------------------------*/
.essence_ab {
	position: absolute;
	top: 0;
}
.essence_ab.num01 {
	position: absolute;
	top: 76%;
	width: 100%;
}
.essence_ab_inner.num01 {
	position: absolute;
	width: 50%;
	left: 7%;
}
.essence_ab_inner.num02 {
	position: absolute;
	width: 35%;
	right: 4%;
}
/*----------------------------------------
	recipe
----------------------------------------*/
.recipe_ab {
	position: absolute;
	top: 0;
}
/*----------------------------------------
	sozai
----------------------------------------*/
.sozai_ab {
	position: absolute;
	top: 0;
}
.sozai_02 {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 75%;
}
.sozai_ab.num01 {
	position: absolute;
	top: 59%;
	left: 3%;
	width: 78%;
}
.sozai_ab.num02 {
	position: absolute;
	top: auto;
	bottom: 0;
	right: 0%;
	width: 46%;
}
/*----------------------------------------
	nakaniwa
----------------------------------------*/
.nakaniwa_ab {
	position: absolute;
	top: 0;
}
.nakaniwa_ab.num01 {
	position: absolute;
	top: 66%;
	width: 100%;
}
.nakaniwa_ab.num02 {
	position: absolute;
	top: auto;
	bottom: 0%;
	right: 5%;
	width: 35%;
}
.nakaniwa_ab_inner.num01 {
	position: absolute;
	left: 0;
	width: 50%;
}
.nakaniwa_ab_inner.num02 {
	position: absolute;
	right: 0;
	width: 40%;
}
/*----------------------------------------
	okomori
----------------------------------------*/
.okomori_ab {
	position: absolute;
	top: 0;
}
.okomori_ab.num01 {
	position: absolute;
	top: 63%;
	left: 0;
	width: 85%;
}
/*----------------------------------------
	kanyo
----------------------------------------*/
.kanyo_ab {
	position: absolute;
	top: 0;
}
.kanyo_ab.num01 {
	position: absolute;
	top: 59%;
	left: 3%;
	width: 75%;
}
.kanyo_ab.num02 {
	position: absolute;
	top: 78%;
	right: 3%;
	width: 45%;
}
/*----------------------------------------
	kitchen
----------------------------------------*/
.kitchen_ab {
	position: absolute;
	top: 0;
}
.kitchen_ab.num01 {
	position: absolute;
	top: 59%;
	left: 0;
	width: 82%;
}
.kitchen_ab.num02 {
	position: absolute;
	top: 76%;
	left: 0;
	width: 36%;
}
.kitchen_ab.num03 {
	position: absolute;
	top: 78.5%;
	right: 7%;
	width: 41%;
}
/*----------------------------------------
	denim&korekara
----------------------------------------*/
.denim_ab {
	position: absolute;
	top: 0;
}
.korekara_ab {
	position: absolute;
}
.korekara_ab.num01 {
	top: 0;
	right: 0;
	width: 87%;
}
.korekara_ab.num02 {
	top: 30%;
	left: 0;
	width: 50%;
}
.korekara_ab.num03 {
	bottom: 0;
}
.playfair-display {
  font-family: "Playfair Display", serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
}
.shippori-mincho-regular {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

/*----------------------------------------
	PC時の背景
----------------------------------------*/
.fixed_logo {
	position: fixed;
	top: 3%;
	left: var(--stage_l);
	max-width: 236px;
	width: 100%;
}
.pc_bg_grid {
	position: fixed;
	top: 25%;
	left: var(--stage_l);
	width: var(--side_w);
	max-width: 1300px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	grid-template-rows: auto auto;
	gap: 30px;
	align-items: start;
	z-index: 50;
}
.pc_ttl {
	grid-column: 1;
	grid-row: 1;
	height: 100%;
	width: 100%;
	display: flex;
	justify-content:center;
	align-items: center;
}
.pc_ttl img {
	max-width: 350px;

}
.icon_flex {
	grid-column: 1;
	grid-row: 2;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: end;
}
.icon_flex-inner {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	gap: 40px;
	padding-bottom: 10%;
}
.icon_flex-inner a {
	max-width: 40px;
	width: 100%;
}
.btn_flex {
	grid-column: 2;
	grid-row: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5%;
}
.btn_flex a {
	max-width: 220px;
	width: 100%;
}

@media screen and (max-width: 1279px) {

	.pc_bg_grid {
		position: fixed;

		/* 上下に余白を確保 */
		top: 20px;
		bottom: 20px;

		left: 3%;
		right: 3%;

		width: auto;
		max-width: none;

		/* 1列 */
		grid-template-columns: minmax(0, 1fr);

		/* 高さを画面内に収める */
		grid-template-rows:
			auto
			minmax(0, 1fr)
			auto
			auto;

		gap: 15px;
	}


	/* タイトル */
	.pc_ttl {
		grid-column: 1;
		grid-row: 1;

		height: auto;
		min-height: 0;
	}

	.pc_ttl img {
		max-width: 280px;
	}


	/* スライダー */
	.concept-slider {
		grid-column: 1;
		grid-row: 2;

		width: 100%;
		min-width: 0;
		min-height: 0;
	}


	/* SNS */
	.icon_flex {
		grid-column: 1;
		grid-row: 3;

		height: auto;
	}

	.icon_flex-inner {
		padding-bottom: 0;
	}


	/* ボタン */
	.btn_flex {
		grid-column: 1;
		grid-row: 4;

		height: auto;
	}

}

/* ========================================
   Slider
======================================== */

.concept-slider {
	grid-column: 2;
	grid-row: 1;

	width: 100%;
	min-width: 0;

	position: relative;
	z-index: 51;
}


/* ========================================
   タイトル
======================================== */

.slider-titles {
  position: relative;
  height: 20px;
  margin-bottom: 20px;
}

.slider-title {
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;

  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);

  transition:
    opacity 0.45s ease,
    transform 0.45s ease,
    visibility 0.45s;
}

.slider-title.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.slider-title p {
  margin: 0;
}

.slider-title-en {
	font-family: "Playfair Display", serif;
	font-style: italic;
	font-size: 18px;
	letter-spacing: 0.02em;
	color: #fff;
}

.slider-title-ja {
	font-family: "Shippori Mincho", serif;
	font-size: 18px;
	font-weight: 500;
	color: #fff;
}


/* ========================================
   メイン画像
======================================== */

.slider-main {
	width: 100%;
	position: relative;

	overflow: hidden;

	aspect-ratio: 16 / 10;

	background: #eee;
}

.slider-track {
	position: relative;

	width: 100%;
	height: 100%;
}

.slide {
	position: absolute;
	inset: 0;

	display: block;

	width: 100%;
	height: 100%;

	opacity: 0;
	visibility: hidden;

	transition:
		opacity 0.6s ease,
		visibility 0.6s;
}

.slide.is-active {
	opacity: 1;
	visibility: visible;

	z-index: 1;
}

.slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}


/* ホバーで画像拡大 */

.slide.is-active:hover,
.slide img:hover {
	opacity: 1;
}

.slide.is-active:hover img {
	transform: scale(1.06);
}


/* ========================================
   矢印
======================================== */
.button-wrap {
	display: flex;
	position: relative;
	justify-content: flex-end;
	width: 100%;
	gap: 20px;

}
.slider-arrow {

  width: 55px;
  height: 55px;
  background: transparent;

  border: 0;

  cursor: pointer;

  z-index: 10;

  transition:
    transform 0.3s ease,
    opacity 0.5s ease;
}

.slider-arrow:hover {
  opacity: 0.5;
}


/* 左 */

.slider-prev {
  right: 75px;
}


/* 右 */

.slider-next {
  right: 15px;
}


/* 矢印の線 */

.slider-arrow span {
  position: absolute;

  top: 50%;

  width: 13px;
  height: 13px;

  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}



.slider-prev span {
  transform:
    translate(-35%, -50%)
    rotate(-135deg);
}


.slider-next span {
  transform:
    translate(-65%, -50%)
    rotate(45deg);
}


/* ========================================
   サムネイル
======================================== */

.slider-thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-top: 10px;
}


.slider-thumb {
  position: relative;

  width: 100%;
  aspect-ratio: 1.6 / 1;

  padding: 0;

  border: 0;

  background: transparent;

  overflow: hidden;

  cursor: pointer;
}


/* サムネイル画像 */

.slider-thumb img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  filter: brightness(0.75);

  transition: filter 0.4s ease;
}


/* ホバー */

/* .slider-thumb:hover img {
  transform: scale(1.08);
  filter: brightness(1);
} */


/* 現在選択中 */

/* .slider-thumb.is-active img {
  filter: brightness(1);
  transform: scale(1.02);
} */


/* アクティブの白い枠 */

/* .slider-thumb::after {
  content: "";

  position: absolute;
  inset: 0;

  border: 2px solid transparent;

  transition: border-color 0.3s ease;

  pointer-events: none;
}

.slider-thumb.is-active::after {
  border-color: #fff;
} */

.slider-thumb.is-active img {
  filter: brightness(1);
}


@media screen and (max-width: 1279px) {

	.pc_bg_grid {
		display: none;
	}
}
@media screen and (max-width: 999px) {
	.fixed_logo {
		display: none;
	}
}
/*----------------------------------------
	アニメーション
----------------------------------------*/

.blur_anime {
	opacity: 0;
}
.active.blur_anime {
	animation: imgBlur_anime 2.0s cubic-bezier(.25,.46,.45,.94) forwards;
}

@keyframes imgBlur_anime {
	0% {
		opacity: 0;
		filter: blur(40px);
		transform: scale(1.08);
	}

	30% {
		opacity: 1;
	}

	70% {
		filter: blur(0);
		transform: scale(1);
		opacity: 1;
	}

	100% {
		filter: blur(0);
		transform: scale(1);
		opacity: 1;
	}
}
.fade_dn{
	opacity: 0;
}
.active.fade_dn{
	animation: fade_dn 2.5s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
	opacity: 0;
}
@keyframes fade_dn{
	0% {
    opacity: 0;
    transform: translateY(-40px);
}
60% {
    opacity: 0.8;
}
100% {
    opacity: 1;
    transform: translateY(0);
}
}
/* .image-reveal {
    overflow: hidden;
    clip-path: circle(0% at 50% 50%);
    transition: clip-path 1.5s ease-out;
} */

/* active時 */
/* .active.image-reveal {
  clip-path: circle(150% at 50% 50%);
} */

.slant_fade,
.mask_scroll{
	-webkit-mask-image: linear-gradient(155deg, #000 var(--slant01), transparent var(--slant02));
	mask-image: linear-gradient(155deg, #000 var(--slant01), transparent var(--slant02));
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	opacity: 0;
}

.active.slant_fade,
.active.mask_scroll{
	animation: slant_fade 3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards var(--animation_d, 0s);
}

.slant_fade .js-parallax{
	opacity: 1;
}

@property --slant01{
	syntax: "<percentage>";
	initial-value: -45%;
	inherits: false;
}

@property --slant02{
	syntax: "<percentage>";
	initial-value: 0%;
	inherits: false;
}

@keyframes slant_fade{
	0%{
		opacity: 0;
		--slant01: -45%;
		--slant02: 0%;
	}
	100%{
		opacity: 1;
		--slant01: 100%;
		--slant02: 145%;
	}
}

.mask_scroll{
	mask-image: linear-gradient(155deg, #000 var(--slant01), transparent var(--slant02));
	-webkit-mask-image: linear-gradient(155deg, #000 var(--slant01), transparent var(--slant02));
	mask-size: 100% 100%;
	-webkit-mask-size: 100% 100%;
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;

	opacity: 0;
	transition: opacity 1.2s var(--transition_d,0s);
}
.active.mask_scroll{
	animation: slant_fade 3.1s cubic-bezier(0.22, 0.61, 0.36, 1) forwards var(--animation_d , 0s);
    opacity: 1;
}
@property --mask_linear01 {
	syntax: "<percentage>";
	initial-value: 40%;
	inherits: false;
}
@property --mask_linear02 {
	syntax: "<percentage>";
	initial-value: 60%;
	inherits: false;
}
@keyframes mask_anime{
	0%{
		--mask_linear01: 40%;
		--mask_linear02: 60%;
	}
	100%{
		--mask_linear01: -20%;
		--mask_linear02: 0%;
	}
}

.mekure_anime {
  overflow: hidden;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 1.5s ease-out;
}
.active.mekure_anime {
  animation: reveal 2.5s ease forwards;
}

@keyframes reveal {
  to {
    clip-path: inset(0 0 0 0);
  }
}
.fade_lt{
	opacity: 0;
}
.active.fade_lt{
	animation: fade_lt 2s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}
.active .fade_lt{
	animation: fade_lt 2s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}
@keyframes fade_lt{
	0% {
    opacity: 0;
    transform: translateX(-40px);
}
60% {
    opacity: 0.8;
}
100% {
    opacity: 1;
    transform: translateX(0);
}
}
.fade_rt{
	opacity: 0;
}
.active.fade_rt{
	animation: fade_rt 2s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}
.active .fade_rt{
	animation: fade_rt 2s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}
@keyframes fade_rt{
	0% {
    opacity: 0;
    transform: translateX(40px);
	}
	60% {
			opacity: 0.8;
	}
	100% {
			opacity: 1;
			transform: translateX(0);
	}
}
.clip_l {
	-webkit-clip-path: inset(0 100% 0 0);
	clip-path: inset(0 100% 0 0);
	transition: 2s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.active.clip_l{
	-webkit-clip-path: inset(0);
	clip-path: inset(0);
}

.js-parallax{
	opacity: 0;
	transition: opacity 1.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.js-parallax.active{
	opacity: 1;
}
/*----------------------------------------
	アニメーション ディレイ関連
----------------------------------------*/
.a01{
	animation-delay: 0.2s !important;
	--animation_d: 0.2s;
}
.a02{
	animation-delay: 0.4s !important;
	--animation_d: 0.4s;
}
.a03{
	animation-delay: 0.6s !important;
	--animation_d: 0.6s;
}
.a04{
	animation-delay: 0.8s !important;
	--animation_d: 0.8s;
}
.a05{
	animation-delay: 1s !important;
	--animation_d: 1s;
}
.a06{
	animation-delay: 1.2s !important;
	--animation_d: 1.2s;
}
.a07{
	animation-delay: 1.4s !important;
	--animation_d: 1.4s;
}
.t0{
	transition-delay: 0s !important;
	--transition_d: 0s;
}
.t01{
	transition-delay: 0.2s !important;
	--transition_d: 0.2s;
}
.t02{
	transition-delay: 0.4s !important;
	--transition_d: 0.4s;
}
.t03{
	transition-delay: 0.6s !important;
	--transition_d: 0.6s;
}
.t04{
	transition-delay: 0.8s !important;
	--transition_d: 0.8s;
}
.t05{
	transition-delay: 1s !important;
	--transition_d: 1s;
}
.t06{
	transition-delay: 1.2s !important;
	--transition_d: 1.2s;
}
.t07{
	transition-delay: 1.4s !important;
	--transition_d: 1.4s;
}