@charset "utf-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,p,blockquote,th,td,main,figure{margin:0;padding:0}table{font-size:100%;font-family:inherit}fieldset,img{border:0}img,svg,video{vertical-align:middle}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:400}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:''}abbr,acronym{border:0}select,input,textarea{font-size:100%}header,footer,nav,main,section,article,figure,aside,picture{display:block}

/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
}
body {
	background-color: #fff;
	font-size: 1rem;
	line-height: 1.8;
	color: #000;
	word-wrap: break-word;
	overflow-wrap: break-word;

	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	font-feature-settings: "palt";
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
img {
	max-width: 100%;
	height: auto;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
	line-height: 1.8;
}
a[href] {
	color: #000;
	text-decoration: underline;
	outline: none;
}
a[href]:hover {
	text-decoration: none;
}
a[href].a_reverse,
.a_reverse a[href] {
	text-decoration: none;
}
@media screen and (min-width: 768px) {
	a[href].a_reverse:hover,
	.a_reverse a[href]:hover {
		text-decoration: underline;
	}
}

label {
	cursor: pointer;
}
input, select, textarea, button {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	max-width: 100%;
	margin: 0;
	border-radius: 0;
	vertical-align: middle;
	font-family: inherit;
	outline: none;
	font-size: 100%;
}
::-webkit-input-placeholder {
	color: #ccc;
}
:-ms-input-placeholder {
	color: #ccc;
}
::-moz-placeholder {
	color: #ccc;
}
select::-ms-expand {
	display: none;
}

button {
	cursor: pointer;
}
iframe {
	max-width: 100%;
	vertical-align: middle;
}

.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}
@media screen and (min-width: 768px), print {
}
@media screen and (max-width: 767px) {
}

/* slick
============================================================================================================ */
 .slick-slider {position: relative;display: block;box-sizing: border-box;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;-webkit-touch-callout: none;-khtml-user-select: none;-ms-touch-action: pan-y;touch-action: pan-y;-webkit-tap-highlight-color: transparent;}.slick-list {position: relative;display: block;overflow: hidden;margin: 0;padding: 0;}.slick-list:focus {outline: none;}.slick-list.dragging {cursor: pointer;cursor: hand;}.slick-slider .slick-track, .slick-slider .slick-list {-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);transform: translate3d(0, 0, 0);}.slick-track {position: relative;top: 0;left: 0;display: block;}.slick-track:before, .slick-track:after {display: table;content: '';}.slick-track:after {clear: both;}.slick-loading .slick-track {visibility: hidden;}.slick-slide {display: none;float: left;height: 100%;min-height: 1px;}[dir='rtl'] .slick-slide {float: right;}.slick-slide img {display: block;}.slick-slide.slick-loading img {display: none;}.slick-slide.dragging img {pointer-events: none;}.slick-initialized .slick-slide {display: block;}.slick-loading .slick-slide {visibility: hidden;}.slick-vertical .slick-slide {display: block;height: auto;border: 1px solid transparent;}.slick-arrow.slick-hidden {display: none;}

/* pc / sp
============================================================================================================ */
@media screen and (min-width: 768px), print {
	.sp {
		display: none !important;
	}
	.pc_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
	.pc_hidden {
		position: relative;
		overflow: hidden;
		display: block;
		height: 0;
	}
}
@media screen and (max-width: 767px) {
	.pc {
		display: none !important;
	}
	.sp_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
}
@media screen and (min-width: 371px) {
	.sps {
		display: none !important;
	}
}
@media screen and (max-width: 370px) {
	.sps_non {
		display: none !important;
	}
}

/* transition
============================================================================================================ */
@media screen and (min-width: 768px) {
	.init a[href],
	.init a[href]::before,
	.init a[href]::after,
	.init button,
	.init button::before,
	.init button::after,
	.init .basic_trs,
	.init .basic_trs::before,
	.init .basic_trs::after,
	.init .basic_trs *,
	.init .basic_trs *::before,
	.init .basic_trs *::after {
		transition: color 0.2s ease-in-out, background 0.2s ease-in-out, border 0.2s ease-in-out, opacity 0.2s ease-in-out;
	}
	.init a svg {
		transition: fill 0.2s ease-in-out;
	}
}


/* font family
============================================================================================================ */
.ff_en {
	font-family: 'Poppins', sans-serif;
	font-weight: 400;
}
.ff_num {
	font-family: europa, sans-serif;
	font-weight: 300;
	font-style: italic;
}

/* font
============================================================================================================ */
.fwb {
	font-weight: 700;
}
.fwm {
	font-weight: 500;
}
.fwn {
	font-weight: 400;
}
.fwl {
	font-weight: 300;
}
.fsi {
	font-style: italic;
}
.fzl {
	font-size: 2rem;
	line-height: 2.1;
}
@media screen and (max-width: 767px) {
	.fzl {
		font-size: 1.5rem;
		line-height: 2;
	}
}

/* display
============================================================================================================ */
.db {
	display: block;
}
.dib {
	display: inline-block;
}

/* object-fit
============================================================================================================ */
img.of {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
img.of.bg {
	pointer-events: none;
	user-select: none;
	z-index: -1;
}

/* hover
============================================================================================================ */
@media screen and (min-width: 768px), print {
	a.hv_wh,
	button.hv_wh,
	a .hv_wh,
	.hv_wh a {
		position: relative;
		display: inline-block;
		vertical-align: middle;
		overflow: hidden;
	}
	a.hv_wh::after,
	button.hv_wh::after,
	a .hv_wh::after,
	.hv_wh a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		background-color: rgba(255,255,255,0);
		z-index: 3;
	}
	.init a.hv_wh::after,
	.init button.hv_wh::after,
	.init a .hv_wh::after,
	.init .hv_wh a::after {
		transition: background 0.2s;
	}
	a[href].hv_wh:hover::after,
	button.hv_wh:hover::after,
	a[href]:hover .hv_wh::after,
	.hv_wh a[href]:hover::after {
		background-color: rgba(255,255,255,0.3);
	}
	a[href].hv_wh.a20:hover::after,
	button.hv_wh.a20:hover::after,
	a[href]:hover .hv_wh.a20::after,
	.hv_wh.a20 a[href]:hover::after {
		background-color: rgba(255,255,255,0.2);
	}
	a[href].hv_wh.a10:hover::after,
	button.hv_wh.a10:hover::after,
	a[href]:hover .hv_wh.a10::after,
	.hv_wh.a10 a[href]:hover::after {
		background-color: rgba(255,255,255,0.1);
	}

	.init a[href] .hv_op {
		transition: opacity 0.2s;
	}
	a[href].hv_op:hover,
	a[href]:hover .hv_op,
	button.hv_op:hover,
	.hv_op a[href]:hover {
		opacity: 0.7;
	}
	a[href].hv_op.a20:hover,
	a[href]:hover .hv_op.a20,
	.hv_op.a20 a[href]:hover {
		opacity: 0.8;
	}
	a[href].hv_op.a10:hover,
	a[href]:hover .hv_op.a10,
	.hv_op.a10 a[href]:hover {
		opacity: 0.9;
	}
	a[href].hv_op.a50:hover,
	a[href]:hover .hv_op.a50,
	.hv_op.a50 a[href]:hover {
		opacity: 0.5;
	}
}

.hv_zoom {
	position: relative;
	display: block;
	overflow: hidden;
}
.hv_zoom > * {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: cover;
}
@media screen and (min-width: 768px), print {
	.init a[href].hv_zoom > *,
	.init a[href] .hv_zoom > * {
		transition: transform 0.6s, opacity .3s;
	}
	a[href]:hover .hv_zoom.s > * {
		transform: scale(1.03);
	}
	a[href]:hover.hv_zoom > *,
	a[href]:hover .hv_zoom > * {
		transform: scale(1.05);
	}
}


/* target
============================================================================================================ */
.target {
	display: block;
	position: relative;
	width: 1px;
	top: -80px;
}
.target.pt {
	top: -120px;
}
@media screen and (max-width: 767px) {
	.target {
		top: -60px;
	}
	.target.pt {
		top: -90px;
	}
}



/* w
============================================================================================================ */
.w,
.xw {
	position: relative;
}
@media screen and (min-width: 768px), print {
	.w {
		max-width: 1160px;
		margin: 0 auto;
		padding-left: 30px;
		padding-right: 30px;
	}
	.xw {
		max-width: 1360px;
		margin: 0 auto;
		padding-left: 30px;
		padding-right: 30px;
	}
	.mw {
		min-width: 768px;
	}
}
@media screen and (max-width: 767px) {
}


/* spパディング
============================================================================================================ */
@media screen and (max-width: 767px) {
	.sp_pd {
		padding-left: 30px !important;
		padding-right: 30px !important;
	}
	.sp_full {
		margin-left: -5.3vw !important;
		margin-right: -5.3vw !important;
	}
	.sp_full_l {
		margin-left: -5.3vw !important;
	}
	.sp_full_r {
		margin-right: -5.3vw !important;
	}
	.sp_mg {
		margin-left: 5.3vw !important;
		margin-right: 5.3vw !important;
	}
}


/* header
============================================================================================================ */
#header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background-color: #fff;
	z-index: 1000;
}
@media print {
	#header {
		position: absolute;
	}
}
@media screen and (min-width: 768px), print {
	#header {
		top: 0;
		right: 0;
		left: 0;
		display: flex;
		justify-content: space-between;
		align-items: center;
		height: 100px;
		padding: 0 15px 0 15px;
		/* padding-left: clamp(30px, calc((100vw - 1180px) * .05 + 30px), 50px);
		padding-right: clamp(30px, calc((100vw - 1180px) * .05 + 30px), 40px); */
	}
	#header nav ul {
		position: relative;
		display: flex;
		align-items: center;
	}
	#header nav a {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		height: 46px;
		padding: 0 1em;
		/* padding: clamp(0.8em, calc((100vw - 1180px) * .05 + 0.8em), 1em); */
		text-align: center;
		text-decoration: none;
		font-size: 1.4rem;
		line-height: 1.5;
		font-weight: 500;
		color: #000;
	}
	#header nav li:not(.contact) a > span {
		position: relative;
		padding: 8px 0;
	}
	#header nav li:not(.contact) a > span::after {
		content: "";
		position: absolute;
		right: 0;
		left: 0;
		bottom: 0;
		border-top: 2px solid;
		transform: translateY(3px);
		opacity: 0;
	}
	.init #header nav li:not(.contact) a > span::after {
		transition: transform .2s ease-in-out, opacity .2s ease-in-out;
	}
	#header nav li:not(.contact) a:hover > span::after,
	#header nav li:not(.contact) a.current > span::after {
		transform: translateY(0);
		opacity: 1;
	}
	#header nav .contact {
		margin-left: 20px;
	}
	#header nav .contact a {
		width: 180px;
		padding: 0 10px 0 0;
		border: 2px solid #000;
		background-color: #000;
		border-radius: 100px;
		color: #fff;
	}
	#header nav .contact a::after {
		content: "";
		position: absolute;
		bottom: 48%;
		right: 14px;
		width: 16px;
		height: 7px;
		border-bottom: 1px solid #fff;
		border-right: 2px solid #fff;
		transform-origin: 100% 100%;
		transform: skewX(45deg);
	}
	#header nav .contact a:hover {
		background-color: #efefef;
		color: #000;
	}
	#header nav .contact a:hover::after {
		border-color: #000;
	}
}
@media screen and (min-width: 768px) and (max-width: 920px) {
	#header nav a {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		height: 46px;
		padding: 0 6px;
		/* padding: 0 1em; */
		/* padding: clamp(.8em, calc((100vw - 1180px) * .05 + .8em), 1em); */
		text-align: center;
		text-decoration: none;
		font-size: 1rem;
		line-height: 1.5;
		font-weight: 500;
		color: #000;
	}
	#header nav .contact a {
		width: 135px;
		padding: 0 10px 0 0;
		border: 2px solid #000;
		background-color: #000;
		border-radius: 100px;
		color: #fff;
	}
}
@media screen and (min-width: 768px) {
	.init #header {
		transition: height .5s;
	}
	.head-min #header {
		height: 80px;
	}
}
@media screen and (max-width: 767px) {
	#header {
		height: 60px;
	}
	#header .logo {
		position: relative;
		display: flex;
		z-index: 3;
	}
	#header .logo a {
		display: flex;
		align-items: center;
		height: 60px;
		padding: 0 5.3vw;
	}
	#header .logo a img {
		width: 75px;
	}

	/* nav_btn */
	#header .nav_btn {
		position: absolute;
		right: 0;
		top: 0;
		width: 60px;
		height: 60px;
		z-index: 1000;
	}
	#header .nav_btn a {
		position: relative;
		display: block;
		height: 60px;
	}
	#header .nav_btn::before,
	#header .nav_btn a::before,
	#header .nav_btn a::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 26px;
		margin-top: -1px;
		margin-left: -13px;
		border-top: 2px solid #28283c;
		pointer-events: none;
	}
	.init #header .nav_btn::before,
	.init #header .nav_btn a::before,
	.init #header .nav_btn a::after {
		transition: all 0.3s ease-in-out;
	}
	#header .nav_btn::before {
		transform-origin: 0;
		transform: scaleX(.7);
	}
	#header .nav_btn a::before {
		transform: translateY(-9px);
	}
	#header .nav_btn a::after {
		transform: translateY(9px);
	}

	/* nav_btn open */
	#header.open .nav_btn::before,
	#header.open .nav_btn a::before,
	#header.open .nav_btn a::after {
		border-color: #fff;
	}
	#header.open .nav_btn::before {
		opacity: 0;
	}
	#header.open .nav_btn a::before {
		transform: translateY(0) rotate(45deg);
	}
	#header.open .nav_btn a::after {
		transform: translateY(0) rotate(-45deg);
	}

	/* nav */
	#header nav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: rgba(26,26,26,.95);
		overflow-y: scroll;
		-webkit-overflow-scrolling: touch;
		opacity: 0;
		pointer-events: none;
		transform: scale(1.05);
		z-index: 999;
	}
	.init #header nav {
		transition: transform 0.3s ease-in-out, opacity .3s;
	}
	/* open */
	#header.open nav {
		opacity: 1;
		pointer-events: all;
		transform: scale(1);
	}

	#header nav a {
		position: relative;
		display: block;
		padding: 5px 0;
		text-align: center;
		color: #fff;
		font-size: 1.8rem;
		font-weight: 700;
		letter-spacing: 0.1em;
		text-decoration: none;
	}
	#header nav .contact {
		margin-top: 20px;
	}
	#header nav .contact a {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 295px;
		height: 53px;
		background-color: #000;
		border-radius: 100px;
		font-size: 1.5rem;
	}
	#header nav .contact a::after {
		content: "";
		position: absolute;
		bottom: 48%;
		right: 20px;
		width: 16px;
		height: 5px;
		border-bottom: 1px solid #fff;
		border-right: 2px solid #fff;
		transform-origin: 100% 100%;
		transform: skewX(45deg);
	}
	#header nav .tel {
		margin-top: 40px;
	}
	#header nav .tel a {
		padding-right: 30px;
		font-size: 1rem;
	}
	#header nav .tel .ff_num {
		margin-left: 5px;
		font-size: 2.1rem;
		font-weight: 400;
		vertical-align: middle;
		letter-spacing: 0.1em;
	}
}


/* footer
============================================================================================================ */
#footer {
	position: relative;
	padding: 50px 0 20px;
	background-color: #000000;
	color: #fff;
}
#footer .notes {
	font-size: 1.4rem;
	line-height: 1.8;
}
#footer .notes li {
	position: relative;
	padding-left: 2.2em;
}
#footer .notes li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}
#footer .logo {
	margin: 120px 0 90px;
	text-align: center;
}
#footer .contact {
	text-align: center;
	font-weight: 500;
	font-size: 2.2rem;
}
#footer .contact dt {
	font-size: 1.6rem;
	margin-bottom: 20px;
}
#footer .contact a {
	color: #fff;
	text-decoration: none;
}
#footer .contact .ff_num {
	margin-left: 25px;
	font-size: 5rem;
	line-height: 1;
	vertical-align: middle;
}
#footer .company {
	margin-top: 40px;
	text-align: center;
}
@media screen and (min-width: 768px), print {
	#footer .notes {
		display: table;
		margin: 0 auto;
	}
}
@media screen and (max-width: 767px) {
	#footer {
		padding: 30px 0 20px;
	}
	#footer .notes {
		font-size: 1.2rem;
	}
	#footer .logo {
		margin: 40px 0;
		text-align: center;
	}
	#footer .logo img {
		width: 150px;
	}
	#footer .contact {
		font-size: 1.2rem;
	}
	#footer .contact dt {
		font-size: 1.5rem;
		margin-bottom: 10px;
	}
	#footer .contact .ff_num {
		margin-left: 5px;
		font-size: 3.4rem;
	}
	#footer .company {
		margin-top: 20px;
	}
	#footer .company svg {
		width: 60px;
		height: auto;
	}
}


/* pagetop
------------------------------------------------------------- */
#pagetop {
	position: fixed;
	overflow: hidden;
	bottom: 30px;
	right: 30px;
	width: 60px;
	height: 60px;
	padding-top: 28px;
	border: 2px solid #fff;
	background-color: rgba(0,0,0,.8);
	border-radius: 60px;
	color: #fff;
	text-align: center;
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	pointer-events: none;
	opacity: 0;
	z-index: 98;
}
#pagetop::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	margin-top: -14px;
	border-top: 1px solid #fff;
	border-left: 1px solid #fff;
	transform-origin: 0 0;
	transform: rotate(45deg);
}
.init #pagetop {
	transition: opacity 0.3s, background .2s, border .2s, bottom .5s;
}
#pagetop.show {
	opacity: 1;
	pointer-events: auto;
}
@media print {
	#pagetop {
		display: none;
	}
}
@media screen and (min-width: 768px) {
	#pagetop:hover {
		background-color: rgba(60,60,60,.8);
	}
}
@media screen and (max-width: 767px) {
	#pagetop {
		bottom: 70px;
		right: 10px;
		transform-origin: 100% 100%;
		transform: scale(.8);
	}
	.hide-fix-btn #pagetop {
		bottom: 10px;
	}
}


/* small
------------------------------------------------------------- */
#footer small {
	display: block;
	margin-top: 40px;
	text-align: center;
	font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
	#footer small {
		margin-top: 20px;
		font-size: 1rem;
	}
}

/* fix_btn
------------------------------------------------------------- */
.fix_btn {
	position: fixed;
	z-index: 500;
}
.fix_btn a {
	position: relative;
	display: block;
	background-color: #000;
	color: #fff;
	text-decoration: none;
	font-weight: 500;
}
@media screen and (min-width: 768px), print {
	.fix_btn {
		right: 0;
		top: 50%;
		transform: translateY(-50%);
	}
	.init .fix_btn {
		transition: transform .5s;
	}
	.fix_btn a {
		padding: 25px 18px 50px;
		-ms-writing-mode: tb-rl;
		writing-mode: vertical-rl;
		font-size: 1.4rem;
		line-height: 1;
	}
	.fix_btn a::before {
		content: "";
		position: absolute;
		bottom: 25px;
		right: 50%;
		width: 8px;
		height: 8px;
		margin-right: -4px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		transform-origin: 100% 0;
		transform: rotate(45deg);
	}
	.fix_btn a:hover {
		opacity: 0.7;
	}
	.hide-fix-btn .fix_btn {
		transform: translateY(-50%) translateX(110%);
	}
}
@media screen and (max-width: 767px) {
	.fix_btn {
		bottom: 0;
		right: 0;
		left: 0;
		display: flex;
	}
	.init .fix_btn {
		transition: transform .5s;
	}
	.fix_btn > * {
		width: 50%;
	}
	.fix_btn > * + * {
		border-left: 1px solid #fff;
	}
	.fix_btn a {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 60px;
		border-top: 1px solid #fff;
		font-size: 1.2rem;
		line-height: 1.3;
		font-weight: 700;
	}
	.fix_btn a.tel {
		font-size: 1rem;
	}
	.fix_btn a.tel .ff_num {
		display: block;
		margin-top: 3px;
		font-size: 2rem;
		font-weight: 400;
		line-height: 1;
	}

	.hide-fix-btn .fix_btn {
		transform: translateY(110%);
	}
}



/* container
============================================================================================================ */
#container {
	position: relative;
	padding-top: 100px;
	font-size: 1.6rem;
	line-height: 1.875;
}
@media screen and (max-width: 767px) {
	#container {
		padding-top: 60px;
		font-size: 1.3rem;
	}
}


/* ===================================================================================================================

	parts

=================================================================================================================== */

/* bg_glay
============================================================================================================ */
.bg_glay {
	background-color: #e9ebee;
}

/* white_box
============================================================================================================ */
.white_box {
	background-color: #fff;
	border-radius: 30px;
}
@media screen and (max-width: 767px) {
	.white_box {
		border-radius: 15px;
	}
}

/* pd_section
============================================================================================================ */
.pd_section {
	padding: 110px 0 120px;
}
.pd_section.has_bdt {
	border-top: 1px solid #d8dce0;
}
@media screen and (max-width: 767px) {
	.pd_section {
		padding: 50px 0 60px;
	}
}

/* en_title
============================================================================================================ */
.en_title {
	position: relative;
	margin-bottom: 60px;
	text-align: center;
	z-index: 2;
}
.en_title h2,
.en_title h3 {
	font-size: 3.8rem;
	line-height: 1.2;
	letter-spacing: 0.1em;
}
.en_title .ff_en {
	margin-top: 10px;
	font-size: 2.2rem;
}
.en_title::after {
	content: "";
	display: block;
	width: 0;
	height: 40px;
	margin: 30px auto 0;
	border-left: 1px solid #282828;
}
.en_title.-mb_negative {
	margin-bottom: -20px;
}
@media screen and (max-width: 767px) {
	.en_title {
		margin-bottom: 30px;
	}
	.en_title h2,
	.en_title h3 {
		font-size: 2.8rem;
	}
	.en_title .ff_en {
		margin-top: 3px;
		font-size: 1.5rem;
	}
	.en_title::after {
		height: 30px;
		margin-top: 20px;
	}
	.en_title.-mb_negative {
		margin-bottom: -15px;
	}
}

/* box_btn
============================================================================================================ */
a.box_btn,
button.box_btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 380px;
	max-width: 100%;
	height: 70px;
	margin: 0 auto;
	padding: 0 10px 0 0;
	background-color: #000;
	border: 2px solid #000;
	border-radius: 100px;
	color: #fff;
	font-weight: 700;
	font-size: 1.6rem;
	text-decoration: none;
}
a.box_btn::after,
button.box_btn::after {
	content: "";
	position: absolute;
	bottom: 48%;
	right: 30px;
	width: 20px;
	height: 7px;
	border-bottom: 1px solid #fff;
	border-right: 2px solid #fff;
	transform-origin: 100% 100%;
	transform: skewX(45deg);
}
@media screen and (min-width: 768px), print {
	a.box_btn:hover,
	button.box_btn:hover {
		background-color: #efefef;
		color: #000;
	}
	a.box_btn:hover::after,
	button.box_btn:hover::after {
		border-color: #000;
	}
}
@media screen and (max-width: 767px) {
	a.box_btn,
	button.box_btn {
		font-size: 1.4rem;
	}
}

.showroom_bnr{
	margin-top: 90px;
	text-align: center;
}
.showroom_bnr-wrap{
	margin-bottom: 50px;
}

.showroom_bnr img{
	border: 10px solid #e9ebee;
	border-radius: 30px;
}
@media screen and (max-width: 767px) {
	.showroom_bnr{
		margin-top: 30px;
	}
	.showroom_bnr img{
		border-width: 8px;
		border-radius: 20px;
	}

}

/* blank_link
============================================================================================================ */
a.blank_link {
	position: relative;
	padding-right: 20px;
	margin-right: 0.5em;
}
a.blank_link::before,
a.blank_link::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 12px;
	height: 10px;
	margin-top: -6px;
	background-color: #fff;
	border: 1px solid;
}
a.blank_link::before {
	transform: translate(-3px, 3px);
}

/* slide_arrow
============================================================================================================ */
.slide_arrow {
	position: absolute;
	width: 70px;
	height: 70px;
	background-color: #000;
	border-radius: 100%;
}
.slide_arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 25px;
	width: 20px;
	height: 20px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform-origin: 100% 0;
	transform: rotate(45deg);
}
.slide_arrow.l {
	transform: rotate(180deg);
}
@media screen and (max-width: 767px) {
	.slide_arrow {
		width: 50px;
		height: 50px;
	}
	.slide_arrow::before {
		right: 18px;
		width: 15px;
		height: 15px;
		border-width: 2px 2px 0 0;
	}
}


/* ===================================================================================================================

	contents

=================================================================================================================== */

/* main_block
============================================================================================================ */
.main_block {
	position: relative;
	margin-bottom: 100px;
	z-index: 1;
}
.main_block .title h1 {
	width: 505px;
	text-align: justify;
	text-align-last: justify;
	font-size: 3.5rem;
	font-weight: 700;
	line-height: 1;
}
.main_block .title img {
	display: block;
	margin-top: 50px;
}
.main_block .img {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 40px;
	z-index: -1;
}
.main_block .img img {
	border-radius: 30px 0 0 30px;
}
.main_block .scroll {
	position: absolute;
	left: 40px;
	bottom: 0;
	width: 40px;
	height: 120px;
	color: #000;
	text-align: center;
	text-decoration: none;
	font-size: 1.4rem;
	z-index: 5;
}
.main_block .scroll .txt {
	position: absolute;
	bottom: 50px;
	right: 50%;
	white-space: nowrap;
	transform-origin: 100%;
	transform: rotate(90deg);
}
.main_block .scroll .line {
	overflow: hidden;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 50px;
}
.main_block .scroll .line::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	height: 100%;
	border-left: 1px solid #000;
	margin-left: -1px;
	-webkit-animation: scroll 1.5s ease-in-out infinite;
	animation: scroll 1.5s ease-in-out infinite;
}
@keyframes -webkit-animation {
	0% {
		top: -102%;
	}
	25% {
		top: 0;
	}
	70% {
		top: 0;
	}
	100% {
		top: 130%;
	}
}
@keyframes scroll {
	0% {
		top: -102%;
	}
	25% {
		top: 0;
	}
	70% {
		top: 0;
	}
	100% {
		top: 130%;
	}
}
@media screen and (min-width: 768px), print {
	.main_block {
		height: calc(100vh - 100px);
		max-height: 800px;
		min-height: 600px;
	}
	.main_block .xw {
		position: relative;
		top: 50%;
		padding-bottom: 120px;
		transform: translateY(-50%);
	}
	.main_block .img {
		width: calc(50% + 550px);
		max-width: calc(100% - 130px);
	}
}
@media screen and (max-width: 767px) {
	.main_block {
		height: calc(100vh - 120px);
		min-height: 500px;
		max-height: 620px;
		margin-bottom: 50px;
		padding: 35px 0 0 8vw;
	}
	.main_block .title h1 {
		width: 250px;
		text-align: justify;
		text-align-last: justify;
		font-size: 1.75rem;
		line-height: 1;
	}
	.main_block .title img {
		margin-top: 15px;
	}
	.main_block .img {
		top: 120px;
		bottom: 80px;
		left: 10.6vw;
	}
	.main_block .img img {
		border-radius: 15px 0 0 15px;
	}
	.main_block .scroll {
		left: 0;
		width: 10.6vw;
		height: 120px;
		font-size: 1.1rem;
	}
	.main_block .scroll .txt {
		bottom: 40px;
	}
	.main_block .scroll .line {
		height: 40px;
	}
}

.main_block .check {
	position: absolute;
	right: 0;
	bottom: 0;
	white-space: nowrap;
}
.main_block .check a {
	position: relative;
	display: block;
	width: 350px;
	padding: 10px;
	font-size: 1.4rem;
	line-height: 1.5;
	font-weight: 500;
	text-decoration: none;
	background-color: #eceef0;
}
.main_block .check .ico {
	position: absolute;
	top: -20px;
	left: -25px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 64px;
	height: 64px;
	background-color: #000;
	border-radius: 100%;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1;
	z-index: 4;
}
.main_block .check .check_img {
	position: absolute;
	top: 12px;
	left: 44px;
	z-index: 3;
}
.main_block .check dl {
	margin-left: 120px;
}
.main_block .check dt {
	padding-top: 5px;
	line-height: 1.5;
}
.main_block .check dd {
	font-size: 2.2rem;
}
.main_block .check .price {
	position: relative;
	margin-top: 8px;
	padding: 10px 0 10px 120px;
	background-color: #fff;
	font-size: 1.6rem;
	line-height: 1.3;
	font-weight: 500;
}
.main_block .check .price::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	border-style: solid;
	border-width: 0 0 15px 15px;
	border-color: transparent transparent #000 transparent;
}
.main_block .check .price .ff_num {
	font-size: 3.8rem;
	line-height: 1;
}
@media screen and (max-width: 767px) {
	.main_block .check {
		bottom: 20px;
	}
	.main_block .check a {
		width: 265px;
		padding: 7px;
		font-size: 1.2rem;
	}
	.main_block .check .ico {
		transform: scale(.75);
	}
	.main_block .check .check_img {
		top: 10px;
		left: 28px;
		width: 48px;
	}
	.main_block .check dl {
		margin-left: 88px;
	}
	.main_block .check dt {
		padding-top: 5px;
	}
	.main_block .check dd {
		font-size: 1.7rem;
	}
	.main_block .check .price {
		padding: 8px 0 8px 88px;
		font-size: 1.3rem;
	}
	.main_block .check .price::after {
		border-width: 0 0 12px 12px;
	}
	.main_block .check .price .ff_num {
		font-size: 2.9rem;
	}
}

/* main_lead
============================================================================================================ */
.main_lead {
	padding: 100px 0 120px;
	text-align: center;
	font-size: 2rem;
	line-height: 2;
}
.main_lead .logo {
	margin-bottom: 50px;
}
.main_lead .logo::after {
	content: "";
	display: block;
	width: 0;
	height: 40px;
	margin: 60px auto 0;
	border-left: 1px solid #282828;
}
.main_lead h1 {
	margin-bottom: 30px;
	font-size: 3.6rem;
	font-weight: 500;
	line-height: 1.5;
}
@media screen and (min-width: 768px), print {
}
@media screen and (max-width: 767px) {
	.main_lead {
		padding: 50px 0 80px;
		font-size: 1.5rem;
	}
	.main_lead .logo {
		margin-bottom: 20px;
	}
	.main_lead .logo img {
		width: 150px;
	}
	.main_lead .logo::after {
		height: 30px;
		margin-top: 30px;
	}
	.main_lead h1 {
		margin-bottom: 15px;
		font-size: 2.1rem;
	}
}

/* worries_section
============================================================================================================ */
.worries_section {
	margin-bottom: 100px;
	text-align: center;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.worries_section{
		margin-bottom: 100px!important;
	}
	.types_section .milli .w section {
		width: 428px;
	}
}
.worries_section > div {
	padding: 70px 40px 100px;
	border-radius: 30px;
}
.worries_section h2 {
	margin-bottom: 60px;
	font-size: 3rem;
	line-height: 1.5;
}
.worries_section ul {
	display: flex;
}
.worries_section ul li {
	width: 20%;
	line-height: 1.75;
	font-weight: 500;
}
.worries_section ul span {
	display: block;
}
.worries_section ul .ico {
	display: inline-block;
	margin-bottom: 15px;
	background-color: #fff;
	border-radius: 100%;
}
.worries_section .lead {
	margin: 50px 0;
	font-size: 3rem;
	line-height: 1.73;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.worries_section .lead span {
	background: linear-gradient(180deg, rgba(255,255,255,0) 77%, rgba(255,255,255,1) 77%);
}
@media screen and (max-width: 767px) {
	.worries_section > div {
		padding: 35px 0 50px;
		border-radius: 20px;
	}
	.worries_section h2 {
		margin-bottom: 30px;
		font-size: 2rem;
	}
	.worries_section ul {
		flex-wrap: wrap;
		justify-content: center;
	}
	.worries_section ul li {
		width: 32%;
		margin-bottom: 15px;
		font-size: 1.2rem;
	}
	.worries_section ul .ico {
		max-width: 80px;
		margin-bottom: 10px;
	}
	.worries_section .lead {
		margin: 15px 0 30px;
		font-size: 1.8rem;
		letter-spacing: 0;
	}
}

/* about_section
============================================================================================================ */
.about_section {
	position: relative;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
}
.about_section::before {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: -2px;
	height: 426px;
	background: url(../images/option_bg.svg) no-repeat 50%;
	background-size: 1600px;
	z-index: -1;
}
.about_section .en_title {
	margin-bottom: 30px;
}
.about_section .en_title::after {
	content: none;
}
.about_section .ph ~ p + p {
	margin-top: 2.5em;
}
@media screen and (min-width: 768px), print {
	.about_section > .w {
		min-height: 520px;
	}
	.about_section > .w > * {
		width: 580px;
	}
	.about_section .en_title {
		top: -10px;
	}
	.about_section .ph {
		position: absolute;
		top: 0;
		right: 30px;
		width: auto;
		margin: 0;
	}
	.about_section .ph img {
		border-radius: 30px;
	}
}
@media screen and (min-width: 768px) and (max-width: 820px) {
	.about_section > .w > * {
		width: 348px;
	}
}

@media screen and (max-width: 767px) {
	.about_section {
		font-size: 1.5rem;
	}
	.about_section::before {
		background-size: 160vw;
		background-position: 50% 100%;
	}
	.about_section .ph {
		margin-bottom: 1.5em;
	}
	.about_section .ph img {
		border-radius: 20px;
	}
	.about_section .ph ~ p + p {
		margin-top: 1.5em;
	}
}

/* showroom_section
============================================================================================================ */
.showroom_section {
	position: relative;
}
.showroom_section header {
	position: absolute;
	top: 60px;
	right: 0;
	left: 0;
	z-index: 10;
}
.showroom_section header > div {
	display: flex;
	justify-content: center;
	width: 320px;
	height: 260px;
	padding-top: 40px;
	background: rgba(0,0,0,.8);
	color: #fff;
}
.showroom_section header h2 {
	font-size: 3.8rem;
	line-height: 1.2;
	letter-spacing: 0.1em;
}
.showroom_section header .ff_en {
	margin-top: 10px;
	font-size: 2.2rem;
}
@media screen and (max-width: 767px) {
	.showroom_section {
	}
	.showroom_section header {
		top: 20px;
	}
	.showroom_section header > div {
		display: table;
		width: auto;
		height: auto;
		padding: 25px 25px 40px;
	}
	.showroom_section header h2 {
		font-size: 2.6rem;
	}
	.showroom_section header .ff_en {
		margin-top: 8px;
		font-size: 1.4rem;
	}
}

.showroom_section .main_image {
	overflow: hidden;
	position: relative;
	height: 800px;
	margin-bottom: 120px;
}
.showroom_section .main_image .image {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}
.showroom_section .main_image .image.show {
	z-index: 2;
}
.showroom_section .main_image .image.hide {
	z-index: 3;
}
.showroom_section .main_image .image .img {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}
.showroom_section .main_image .image .img > div,
.showroom_section .main_image .image .img picture {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}
.showroom_section .main_image .image .img picture:nth-child(2) {
	transform: translateY(-100%);
}
.showroom_section .main_image .image .img picture:nth-child(3) {
	transform: translateY(100%);
}
.showroom_section .main_image .image .img picture:nth-child(4) {
	transform: translateX(100%);
}
.showroom_section .main_image .image .img picture:nth-child(5) {
	transform: translateX(-100%);
}
.showroom_section .main_image .image.show .img > div {
	transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1);
}
.showroom_section .main_image .image.hide .img > div {
	transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1), opacity 0.6s .3s ease-in;
	opacity: 0;
}
.showroom_section .main_image .image p {
	position: absolute;
	bottom: 90px;
	right: 0;
	left: 0;
	font-size: 3.5rem;
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.1em;
	transition: opacity .5s;
	z-index: 6;
}
.showroom_section .main_image .image p span {
	display: block;
	overflow: hidden;
}
.showroom_section .main_image .image p span span {
	display: block;
	transform: translateX(-110%);
}
.showroom_section .main_image .image.hide p {
	opacity: 0;
}
.showroom_section .main_image .image.show p span span {
	transition: transform 1s .3s cubic-bezier(.19,1,.22,1);
	transform: translateX(0);
}
.showroom_section .main_image .line {
	position: absolute;
	z-index: 5;
}
@media screen and (max-width: 767px) {
	.showroom_section .main_image {
		height: 120vw;
		margin-bottom: 40px;
	}
	.showroom_section .main_image .image p {
		bottom: 40px;
		font-size: 2rem;
	}
}
@media screen and (min-width: 768px) {
	.showroom_section .main_image .image .img1 {
		clip-path: polygon(0% 0%, 33.33% 0%, 33.33% 50%, 0% 50%);
	}
	.showroom_section .main_image .image .img2 {
		clip-path: polygon(33.33% 0%, 66.66% 0%, 66.66% 50%, 33.33% 50%);
	}
	.showroom_section .main_image .image .img3 {
		clip-path: polygon(66.66% 0%, 100% 0%, 100% 50%, 66.66% 50%);
	}
	.showroom_section .main_image .image .img4 {
		clip-path: polygon(0% 50%, 33.33% 50%, 33.33% 100%, 0% 100%);
	}
	.showroom_section .main_image .image .img5 {
		clip-path: polygon(33.33% 50%, 66.66% 50%, 66.66% 100%, 33.33% 100%);
	}
	.showroom_section .main_image .image .img6 {
		clip-path: polygon(66.66% 50%, 100% 50%, 100% 100%, 66.66% 100%);
	}
	.showroom_section .main_image .image .img1 > div,
	.showroom_section .main_image .image .img3 > div {
		transform: translate(-33.33%, 0);
	}
	.showroom_section .main_image .image.hide .img1 > div,
	.showroom_section .main_image .image.hide .img3 > div {
		transform: translate(33.33%, 0);
	}
	.showroom_section .main_image .image .img2 > div {
		transform: translate(0, 50%);
	}
	.showroom_section .main_image .image.hide .img2 > div {
		transform: translate(0, -50%);
	}
	.showroom_section .main_image .image .img4 > div,
	.showroom_section .main_image .image .img6 > div {
		transform: translate(0, -50%);
	}
	.showroom_section .main_image .image.hide .img4 > div,
	.showroom_section .main_image .image.hide .img6 > div {
		transform: translate(0, 50%);
	}
	.showroom_section .main_image .image .img5 > div {
		transform: translate(33.33%, 0);
	}
	.showroom_section .main_image .image.hide .img5 > div {
		transform: translate(-33.33%, 0);
	}
	.showroom_section .main_image .image.show > div > div {
		transform: translate(0,0);
	}

	.showroom_section .main_image .line1,
	.showroom_section .main_image .line2 {
		top: 0;
		bottom: 0;
		border-left: 1px solid #fff;
	}
	.showroom_section .main_image .line1 {
		left: 33.33%;
	}
	.showroom_section .main_image .line2 {
		left: 66.66%;
	}
	.showroom_section .main_image .line3 {
		left: 0;
		right: 0;
		top: 50%;
		border-top: 1px solid #fff;
	}
}
@media screen and (max-width: 767px) {
	.showroom_section .main_image .image .img1 {
		clip-path: polygon(0% 0%, 50% 0%, 50% 33.33%, 0% 33.33%);
	}
	.showroom_section .main_image .image .img2 {
		clip-path: polygon(50% 0%, 100% 0%, 100% 33.33%, 50% 33.33%);
	}
	.showroom_section .main_image .image .img3 {
		clip-path: polygon(0% 33.33%, 50% 33.33%, 50% 66.66%, 0% 66.66%);
	}
	.showroom_section .main_image .image .img4 {
		clip-path: polygon(50% 33.33%, 100% 33.33%, 100% 66.66%, 50% 66.66%);
	}
	.showroom_section .main_image .image .img5 {
		clip-path: polygon(0% 66.66%, 50% 66.66%, 50% 100%, 0% 100%);
	}
	.showroom_section .main_image .image .img6 {
		clip-path: polygon(50% 66.66%, 100% 66.66%, 100% 100%, 50% 100%);
	}
	.showroom_section .main_image .image .img1 > div,
	.showroom_section .main_image .image .img5 > div {
		transform: translate(0, -33.33%);
	}
	.showroom_section .main_image .image.hide .img1 > div,
	.showroom_section .main_image .image.hide .img5 > div {
		transform: translate(0, 33.33%);
	}
	.showroom_section .main_image .image .img3 > div {
		transform: translate(50%, 0);
	}
	.showroom_section .main_image .image.hide .img3 > div {
		transform: translate(-50%, 0);
	}
	.showroom_section .main_image .image .img2 > div,
	.showroom_section .main_image .image .img6 > div {
		transform: translate(-50%, 0);
	}
	.showroom_section .main_image .image.hide .img2 > div,
	.showroom_section .main_image .image.hide .img6 > div {
		transform: translate(50%, 0);
	}
	.showroom_section .main_image .image .img4 > div {
		transform: translate(0, 33.33%);
	}
	.showroom_section .main_image .image.hide .img4 > div {
		transform: translate(0, -33.33%);
	}
	.showroom_section .main_image .image.show > div > div {
		transform: translate(0,0);
	}

	.showroom_section .main_image .line1,
	.showroom_section .main_image .line2 {
		left: 0;
		right: 0;
		border-top: 1px solid #fff;
	}
	.showroom_section .main_image .line1 {
		top: 33.33%;
	}
	.showroom_section .main_image .line2 {
		top: 66.66%;
	}
	.showroom_section .main_image .line3 {
		top: 0;
		bottom: 0;
		left: 50%;
		border-left: 1px solid #fff;
	}
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.showroom_section .contents {
		justify-content: space-around!important;
		margin-bottom: 50px!important;
	}
}
.showroom_section .contents section {
	padding: 50px 0;
	background-color: #e9ebee;
	border-radius: 30px;
	text-align: center;
	font-size: 1.8rem;
}
.showroom_section .contents h3 {
	margin-bottom: 20px;
	font-size: 3rem;
	line-height: 1.6;
}
.showroom_section .contents .ico {
	width: 90px;
	margin: 30px auto;
	background-color: #fff;
	border-radius: 100%;
}
.showroom_section .contents .lead {
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1.75;
}
.showroom_section .contents .lead span {
	background: linear-gradient(180deg, rgba(255,255,255,0) 77%, rgba(255,255,255,1) 77%);
}
@media screen and (min-width: 768px), print {
	.showroom_section .contents {
		display: flex;
		justify-content: space-between;
	}
	.showroom_section .contents section {
		width: 500px;
	}
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.showroom_section .contents section {
		width: 328px!important;
	}
}
@media screen and (max-width: 767px) {
	.showroom_section .contents section {
		margin-bottom: 20px;
		padding: 30px 10px;
		border-radius: 20px;
		font-size: 1.4rem;
	}
	.showroom_section .contents h3 {
		margin-bottom: 15px;
		font-size: 2rem;
	}
	.showroom_section .contents .ico {
		width: 60px;
		margin: 15px auto;
	}
	.showroom_section .contents .lead {
		font-size: 1.8rem;
	}
}
.showroom_section .btn {
	margin-top: 100px;
}
.showroom_section .notes {
	margin-top: 20px;
	text-align: center;
}
@media screen and (max-width: 767px) {
	.showroom_section .btn {
		margin-top: 40px;
	}
}

.showroom_section .map {
	margin-top: 120px;
	padding: 120px 0 100px;
	background-color: #000;
	color: #fff;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 500;
}
.showroom_section .map .gmap {
	-webkit-filter: grayscale(1);
	filter: grayscale(1);
}
.showroom_section .map h3 {
	margin: 40px 0 10px;
	font-size: 2.2rem;
}
.showroom_section .map a {
	color: #fff;
}
.showroom_section .map .time {
	margin-top: 10px;
	font-size: 1.4rem;
}
.showroom_section .map .access {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 6px;
	font-size: 1.4rem;
}
.showroom_section .map .access li {
	position: relative;
	margin: 0 .5em;
	padding-left: 1.1em;
}
.showroom_section .map .access li::before {
	content: "●";
	position: absolute;
	top: 0;
	left: 0;
}
.showroom_section .map .notes {
	font-size: 1.3rem;
}
@media screen and (max-width: 767px) {
	.showroom_section .map {
		margin-top: 50px;
		padding: 5.3vw 0 50px;
		font-size: 1.4rem;
		font-weight: 500;
	}
	.showroom_section .map iframe {
		height: 70vw;
	}
	.showroom_section .map h3 {
		margin: 20px 0 10px;
		font-size: 1.8rem;
	}
	.showroom_section .map .time {
		margin-top: 12px;
		font-size: 1.3rem;
	}
	.showroom_section .map .access {
		font-size: 1.3rem;
	}
	.showroom_section .map .notes {
		font-size: 1.2rem;
		line-height: 1.6;
	}
}

/* types_section
============================================================================================================ */
.types_section {
	padding-bottom: 0;
}
.types_section .white_box {
	padding: 100px 0 80px;
}
.types_section .spec {
	margin-top: 25px;
	border-top: 4px solid #000;
}
.types_section .spec dl {
	display: flex;
	padding: 20px 0;
	border-bottom: 1px solid #000;
	font-size: 1.4rem;
}
.types_section .spec dl dt {
	width: 3.4em;
	flex-shrink: 0;
}
.lineup-sec{
	margin-top: 80px;
}
.lineup-h{
	font-family: 'Poppins', sans-serif;
	font-style: italic;
	font-size: 6rem;
	text-align: center;
	font-weight: 300;
	margin-top: -156px;
}
.lineup-name {
	margin: 30px 0;
	text-align: center;
}
.lineup-lead{
	font-size: 3.4rem;
	font-weight: bold;
	text-align: center;
	margin-top: 0.5em;
	margin-bottom: 1em;
}
.types_section .milli {
	text-align: center;
}
.types_section .milli h3 {
	margin-bottom: 20px;
	font-size: 2.8rem;
	line-height: 1.5;
}
.types_section .milli h3 img {
	margin-left: 8px;
	vertical-align: -4px;
}
.types_section .milli .w {
	margin-top: 50px;
	text-align: left;
}
.types_section .milli .img {
	text-align: center;
}
.types_section .milli h4 {
	margin: 10px 0 20px;
	text-align: center;
}

@media screen and (max-width: 767px) {
   
}
/* @media screen and (min-width: 768px) and (max-width: 920px) {
	.types_section .lineup section {
		max-width: 288px!important;
	}
} */

@media screen and (min-width: 768px), print {

	.types_section .spec .size dd {
		min-height: 3.75em;
		width: 60%;
	}
	.types_section .lineup {
		display: flex;
		justify-content: space-between;
	}
	.types_section .lineup section {
		max-width: 338px;
		width: 100%;
	}
	.types_section .lineup section .img {
		margin: 0 -15px;
	}
	.types_section .milli .w {
		display: flex;
		justify-content: space-between;
	}
	.types_section .milli .w section {
		width: 500px;
	}
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.types_section .lineup section {
		max-width: 205px!important;
		width: 100%;
	}
}
@media screen and (max-width: 767px) {
	.lineup-h{
		font-size: 4rem;
		margin-top: -7.5rem;
	}
	.lineup-lead{
		font-size: 1.2rem;
	}
	.types_section .white_box {
		padding: 40px 8vw 50px;
	}
	.types_section .spec {
		margin-top: 15px;
		border-top-width: 2px;
	}
	.types_section .spec dl {
		padding: 10px 0;
		font-size: 1.2rem;
	}
	.types_section .lineup section + section {
		margin-top: 40px;
	}
	.lineup-name {
		margin: 20px 0;
	}
	.types_section .lineup section .img img {
		width: 100%;
	}
	.types_section .milli {
		margin-top: 50px;
	}
	.types_section .milli h3 {
		font-size: 2rem;
	}
	.types_section .milli .w {
		margin-top: 40px;
	}
	.types_section .milli section + section {
		margin-top: 40px;
	}
	.types_section .milli .img img {
		width: 100%;
	}
	.types_section .milli h4 {
		margin: 10px 0 15px;
	}
}

/* features_section
============================================================================================================ */
.features_section .contents section {
	position: relative;
}
.features_section .contents section .num {
	position: absolute;
	top: 30px;
	left: 30px;
	padding-left: 20px;
	z-index: 3;
}
.features_section .contents section .num.cw {
	color: #fff;
}
.features_section .contents section .num .f {
	position: absolute;
	top: 0;
	left: 0;
	transform-origin: 0 0;
	transform: rotate(90deg) translateY(-100%);
	font-size: 1.4rem;
	line-height: 1;
}
.features_section .contents section .num .n {
	font-size: 8.2rem;
	line-height: 0.8;
}
.features_section .contents section .img {
	position: relative;
	margin-bottom: 40px;
}
.features_section .contents section .img::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid #d8dce0;
}
.features_section .contents section h3 {
	margin-bottom: 15px;
	font-size: 2.4rem;
	line-height: 1.6;
}
@media screen and (min-width: 768px), print {
	.features_section .contents {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.features_section .contents section {
		width: 46%;
		margin-bottom: 20px!important;
	}
	.features_section .contents section:nth-child(n + 3) {
		margin-top: 80px;
	}
}
@media screen and (max-width: 767px) {
	.features_section .contents section + section {
		margin-top: 40px;
	}
	.features_section .contents section .num {
		top: 20px;
		left: 20px;
		transform-origin: 0 0;
		transform: scale(.8);
	}
	.features_section .contents section .img {
		margin-bottom: 15px;
	}
	.features_section .contents section h3 {
		margin-bottom: 10px;
		font-size: 1.8rem;
	}
}

/* movie_block
============================================================================================================ */
.movie_block {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 700px;
	font-weight: 500;
	font-size: 3.4rem;
	line-height: 1.4;
	color: #fff;
	text-align: center;
	z-index: 2;
}
.movie_block .ff_en {
	margin-bottom: 20px;
	font-size: 10.4rem;
	line-height: 1;
}
.movie_block .movie {
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}
.movie_block .movie::after {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #000;
	opacity: 0.5;
}
.movie_block .movie iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	min-height: 100%;
	min-width: 100%;
	max-width: none;
	height: 56.25vw; /* 16:9 の高さなので 56.25% (= 9 ÷ 16) */
	width: 177.77777778vh; /* 16:9 の幅なので 177.77% (= 16 ÷ 9) */
	transform: translate(-50%, -50%);
}
@media screen and (max-width: 767px) {
	.movie_block {
		height: 300px;
		font-size: 2.2rem;
	}
	.movie_block .ff_en {
		margin-bottom: 8px;
		font-size: 6rem;
	}
}

/* lineup_section
============================================================================================================ */
.lineup_section .main {
	margin-bottom: 30px;
}
.lineup_section .price_area dl + dl {
	margin-top: 60px;
}
.lineup_section .price_area dt {
	position: relative;
	margin-bottom: 10px;
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 1.5;
}
.lineup_section .price_area dt a {
	position: absolute;
	right: 40px;
	top: 0.4em;
	font-size: 1.4rem;
	font-weight: 500;
	z-index: 2;
}
.lineup_section .price_area dd {
	font-weight: 500;
}
.lineup_section .price_area dd .s {
	display: block;
	font-size: 1.4rem;
}
.lineup_section .price_area .price {
	display: block;
	white-space: nowrap;
	position: relative;
	margin-right: 20px;
	margin-bottom: 15px;
	padding: 0 0 10px;
	font-size: 3rem;
	text-align: center;
	line-height: 1;
	background: linear-gradient(180deg, rgba(216,220,224,0) 77%, rgba(216,220,224,1) 77%);
}
.lineup_section .price_area .price .ff_num {
	margin-right: 10px;
	font-size: 7.6rem;
	line-height: .8;
}
.lineup_section h3,
.lineup_section .pc_title {
	margin-bottom: 40px;
	padding-bottom: 20px;
	border-bottom: 5px solid;
}
.lineup_section h3 img,
.lineup_section .pc_title img {
	width: 120px;
}
.lineup_section .spec {
	font-weight: 500;
	font-size: 1.5rem;
	line-height: 1.8;
}
.lineup_section .spec dt {
	margin-bottom: 15px;
	font-size: 2rem;
	line-height: 1.2;
}
.lineup_section .slide_arrow {
	top: 50%;
	margin-top: -35px;
}
.lineup_section .slide_arrow.r {
	right: 20px;
}
.lineup_section .slide_arrow.l {
	left: 20px;
}
@media screen and (min-width: 768px), print {
	.lineup_section .slide {
		width: 1000px;
		margin: 0 auto;
	}
	.lineup_section .lineup_item .main {
		display: flex;
		justify-content: space-between;
	}
	.lineup_section .lineup_item .price_area {
		width: 400px;
	}
	.lineup_section .lineup_item .spec {
		display: flex;
	}
	.lineup_section .lineup_item .spec > * + * {
		margin-left: 40px;
		padding-left: 40px;
		border-left: 1px solid #282828;
	}
}
@media screen and (max-width: 767px) {
	.lineup_section .lineup_item {
		padding: 0 7vw;
	}
	.lineup_section .lineup_item .main .img {
		width: 70%;
		margin: 0 auto 10px;
	}
	.lineup_section .price_area dl + dl {
		margin-top: 30px;
	}
	.lineup_section .price_area dt {
		font-size: 1.8rem;
	}
	.lineup_section .price_area dt a {
		right: 0;
		top: 0.2em;
		font-size: 1.3rem;
	}
	.lineup_section .price_area dd .s {
		font-size: 1.1rem;
	}
	.lineup_section .price_area .price {
		margin-right: 0;
		margin-bottom: 10px;
		padding: 0 0 8px;
		font-size: 2rem;
	}
	.lineup_section .price_area .price .ff_num {
		margin-right: 10px;
		font-size: 5.4rem;
		line-height: .8;
	}
	.lineup_section h3 {
		margin-bottom: 20px;
		padding-bottom: 15px;
		border-bottom-width: 3px;
	}
	.lineup_section h3 img {
		width: 80px;
	}
	.lineup_section .spec {
		padding-top: 15px;
		border-top: 1px solid #282828;
		font-size: 1.2rem;
	}
	.lineup_section .spec > * + * {
		margin-top: 15px;
	}
	.lineup_section .spec dl {
		display: flex;
	}
	.lineup_section .spec dt {
		flex-shrink: 0;
		margin-right: 1em;
		padding-top: 0.2em;
		margin-bottom: 0;
		font-size: 1.3rem;
	}
	.lineup_section .slide_arrow {
		top: calc(80vw * .7 / 2);
		margin-top: -25px;
	}
	.lineup_section .slide_arrow.r {
		right: 5vw;
	}
	.lineup_section .slide_arrow.l {
		left: 5vw;
	}
}

/* plan_section
============================================================================================================ */
.plan_section .white_box {
	padding: 90px 0 100px;
	text-align: center;
}
.plan_section .lead {
	margin-bottom: 30px;
	font-size: 3rem;
	line-height: 1.7;
	font-weight: 700;
	letter-spacing: 0.05em;
}
.plan_section .lead span {
	background: linear-gradient(180deg, rgba(233,235,238,0) 77%, rgba(233,235,238,1) 77%);
}
@media screen and (max-width: 767px) {
	.plan_section .white_box {
		padding: 40px 0;
	}
	.plan_section .lead {
		margin-bottom: 20px;
		font-size: 2rem;
	}
}

/* campaign_section
============================================================================================================ */
.campaign_section{
	margin-bottom: 50px;
}
.campaign_section .white_box {
	padding: 90px 0 100px;
	text-align: center;
	
}
.campaign_section .lead {
	margin-bottom: 30px;
	font-size: 3.4rem;
	line-height: 1.7;
	font-weight: 700;
	letter-spacing: 0.05em;
}
.campaign_section .lead span {
	background: linear-gradient(180deg, rgba(233,235,238,0) 77%, #fff500 77%);
}
@media screen and (max-width: 767px) {
	.campaign_section .white_box {
		padding: 40px 0;
	}
	.campaign_section .lead {
		margin-bottom: 20px;
		font-size: 2rem;
	}
}

.campaign-btn_section {
	margin-bottom: 10px;
	text-align: center;
}
.campaign-btn_section > div {
	margin-top: 50px;
	padding: 50px 40px 52px;
	border-radius: 30px;
}

@media screen and (max-width: 767px) {
	.campaign-btn_section > div {
		padding: 35px 0 50px;
		border-radius: 20px;
	}
	.campaign-btn_section h2 {
		margin-bottom: 30px;
		font-size: 2rem;
	}
}

.campaign-btn_section  a.box_btn{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 380px;
	max-width: 100%;
	height: 70px;
	margin: 0 auto;
	padding: 0 10px 0 0;
	background-color: #fff500;
	border: 2px solid #fff500;
	border-radius: 100px;
	color: #000;
	font-weight: 700;
	font-size: 1.6rem;
	text-decoration: none;
}
.campaign-btn_section  a.box_btn::after {
	content: "";
	position: absolute;
	bottom: 48%;
	right: 30px;
	width: 20px;
	height: 7px;
	border-bottom: 1px solid #000;
	border-right: 2px solid #000;
	transform-origin: 100% 100%;
	transform: skewX(45deg);
}
@media screen and (min-width: 768px), print {
	.campaign-btn_section  a.box_btn:hover {
		background-color: #000;
		border-color: #000;
		color: #efefef;
	}
	.campaign-btn_section  a.box_btn:hover::after{
		border-color: #efefef;
	}
}
@media screen and (max-width: 767px) {
	.campaign-btn_section  a.box_btn {
		font-size: 1.4rem;
	}
}

/* lease_section
============================================================================================================ */
.lease_section {
	margin-top: 50px;
	font-size: 2.4rem;
	line-height: 1.8;
	font-weight: 500;
}
.lease_section > div {
	padding: 90px 0 100px;
	background-color: #f0f0f0;
	border-radius: 30px;
}
.lease_section .en_title {
	margin-bottom: 30px;
}
.lease_section .en_title::after {
	content: none;
}
.lease_section .merit {
	margin-top: 40px;
}
.lease_section .merit li {
	position: relative;
	margin: 0 10px 20px;
	padding: 10px 40px 10px 75px;
	background-color: #fff;
	border: 1px solid #282828;
	font-size: 1.8rem;
}
.lease_section .merit li .check {
	position: absolute;
	top: 50%;
	left: 28px;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	background-color: #d8dce0;
	border-radius: 100%;
}
.lease_section .merit li .check::after {
	content: "";
	position: absolute;
	width: 20px;
	height: 10px;
	bottom: 50%;
	left: 50%;
	margin-bottom: -3px;
	border-left: 2px solid #000;
	border-bottom: 2px solid #000;
	transform-origin: 0 100%;
	transform: rotate(-45deg);
}
.lease_section .ex {
	display: table;
	margin: 40px auto 20px;
	font-weight: 500;
	font-size: 2.8rem;
	line-height: 1.3;
}
.lease_section .ex .line {
	display: block;
	margin-bottom: 10px;
	padding-bottom: 5px;
	background: linear-gradient(180deg, rgba(216,220,224,0) 77%, rgba(216,220,224,1) 77%);
}
.lease_section .ex .ff_num {
	margin: 0 10px;
	font-size: 6rem;
	line-height: 1;
}
.lease_section .ex .notes {
	display: block;
	text-align: right;
	font-size: 1.4rem;
}
.lease_section .btn {
	margin-top: 40px;
}
@media screen and (min-width: 768px), print {
	.lease_section .merit ul {
		display: flex;
		justify-content: center;
	}
}
@media screen and (max-width: 767px) {
	.lease_section {
		margin-top: 30px;
		font-size: 1.5rem;
	}
	.lease_section > div {
		padding: 40px 0;
		border-radius: 20px;
	}
	.lease_section .en_title {
		margin-bottom: 20px;
	}
	.lease_section .en_title h3 {
		font-size: 2.5rem;
	}
	.lease_section .merit {
		margin-top: 20px;
	}
	.lease_section .merit li {
		position: relative;
		margin: 0 0 10px;
		padding: 10px 20px 10px 45px;
		border: 1px solid #282828;
		font-size: 1.4rem;
		line-height: 1.5;
		text-align: left;
	}
	.lease_section .merit li .check {
		left: 12px;
		transform-origin: 0;
		transform: scale(.8);
	}
	.lease_section .ex {
		display: block;
		margin-top: 30px;
		margin-bottom: 10px;
		font-size: 1.8rem;
	}
	.lease_section .ex .ff_num {
		margin: 0 5px;
		font-size: 5rem;
	}
	.lease_section .ex .notes {
		font-size: 1.2rem;
	}
	.lease_section .btn {
		margin-top: 30px;
	}
}

/* spec_section
============================================================================================================ */
.spec_section {
	position: relative;
	/* z-index: 1; */
}
.spec_section .contents {
	display: flex;
	flex-wrap: wrap;
	font-size: 1.4rem;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
	.spec_section .contents {
		display: grid;
		gap: 10px 30px;
		-ms-grid-columns: 1fr 1fr;
		grid-template-columns: 1fr 1fr;
		max-width: 800px;
		margin: 0 auto;
		width: 100%;
	}
	section {
		margin: 0!important;
	}
}


.spec_section .contents .ph {
	overflow: hidden;
	position: relative;
	margin-bottom: 20px;
	border: 20px solid #f5f5f5;
	border-radius: 100%;
}
.spec_section .contents h3 {
	text-align: center;
	margin-bottom: 15px;
	font-size: 2rem;
	line-height: 1.5;
	font-weight: 500;
}
@media screen and (min-width: 768px), print {
	.spec_section .contents section {
		width: 300px;
		margin-left: 100px;
	}
	.spec_section .contents section:nth-child(3n + 1) {
		margin-left: 0;
	}
	.spec_section .contents section:nth-child(n + 4) {
		margin-top: 70px;
	}
	.spec_section .contents .ph ~ * {
		margin-left: 10px;
		margin-right: 10px;
	}
}
@media screen and (max-width: 767px) {
	.spec_section {
		position: relative;
		z-index: 3;
	}
	.spec_section .contents {
		justify-content: space-between;
		font-size: 1.3rem;
	}
	.spec_section .contents section {
		width: calc(50% - 10px);
	}
	.spec_section .contents section:nth-child(n + 3) {
		margin-top: 40px;
	}
	.spec_section .contents .ph {
		margin-bottom: 15px;
		border-width: 8px;
	}
	.spec_section .contents .ph img {
		width: 100%;
	}
	.spec_section .contents h3 {
		margin-bottom: 10px;
		font-size: 1.6rem;
	}
}
@media screen and (min-width: 768px) and (max-width: 920px) {
	.spec_section .contents {
		display: grid;
		gap: 10px 30px;
		-ms-grid-columns: 1fr 1fr;
		grid-template-columns: 1fr 1fr;

	}
	.spec_section .contents section{
		margin-left: 0;
	}
	.spec_section .contents section:nth-child(3n + 1) {
		margin-left: 0;
	}
	.spec_section .contents section:nth-child(n + 4) {
		margin-top: 0px;
	}
	.spec_section .contents .ph ~ * {
		margin-left: 10px;
		margin-right: 10px;
	}
}

/* option_section
============================================================================================================ */
.option_section {
	position: relative;
}
.option_section::before {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: 0;
	height: 426px;
	background: url(../images/option_bg.svg) no-repeat 50%;
	background-size: 1600px;
	z-index: -1;
}
.option_section .lead_block {
	text-align: center;
}
.option_section .lead_block .lead {
	margin-bottom: 20px;
	font-size: 3.4rem;
	line-height: 1.5;
	font-weight: 700;
}
.option_section .contents {
	margin-top: 90px;
}
.option_section .contents section {
	display: flex;
	justify-content: space-between;
	font-size: 1.4rem;
	line-height: 1.7;
}
.option_section .contents section .img {
	position: relative;
}
@media screen and (min-width: 768px) and (max-width: 920px) {
	.option_section .contents section {
		display: block;
	}
	.option_section .contents section .img {
		position: relative;
		margin-bottom: 10px;
	}
	.option_section .contents section .img + *{
		width: 100%!important;
	}
}
.option_section .contents section .img img {
	border-radius: 15px;
}
.option_section .contents section .img.comming::after {
	content: "Coming Soon";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: rgba(40,40,40,.4);
	border-radius: 15px;
	color: #fff;
	font-size: 2.4rem;
	line-height: 1;
	z-index: 3;
}
.option_section .contents section .img + * {
	width: calc(100% - 280px);
}
.option_section .contents section h3 {
	margin-bottom: 15px;
	font-size: 1.8rem;
	line-height: 1.6;
	font-weight: 500;
}
.option_section .contents section .color {
	margin-top: 20px;
}
.option_section .btn {
	margin-top: 100px;
}
@media screen and (min-width: 768px), print {
	.option_section .contents {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.option_section .contents section {
		width: 46%;
		margin-bottom: 20px;
	}
	.option_section .contents section:nth-child(n + 3) {
		margin-top: 100px;
	}
}
@media screen and (max-width: 767px) {
	.option_section {
		padding-top: 30px;
	}
	.option_section::before {
		background-size: 160vw;
		background-position: 50% 100%;
	}
	.option_section .lead_block {
		text-align: left;
	}
	.option_section .lead_block .lead {
		margin-bottom: 15px;
		font-size: 2.2rem;
		text-align: center;
	}
	.option_section .contents {
		margin-top: 40px;
	}
	.option_section .contents section {
		font-size: 1.2rem;
		line-height: 1.6;
	}
	.option_section .contents section + section {
		margin-top: 30px;
	}
	.option_section .contents section .img {
		width: calc(40%);
	}
	.option_section .contents section .img + * {
		width: calc(60% - 20px);
	}
	.option_section .contents section .img img {
		border-radius: 10px;
	}
	.option_section .contents section .img.comming::after {
		border-radius: 10px;
		font-size: 1.6rem;
	}
	.option_section .contents section h3 {
		margin-bottom: 10px;
		font-size: 1.5rem;
	}
	.option_section .contents section .color {
		margin-top: 10px;
		max-width: 120px;
	}
	.option_section .btn {
		margin-top: 50px;
	}
}

/* flowing_image
============================================================================================================ */
.flowing_image {
	overflow: hidden;
	position: relative;
}
.flowing_image > * {
	width: 10000px;
	display: flex;
}
.flowing_image ul {
	display: flex;
	-webkit-animation: 60s linear 0s infinite flowing_image;
	animation: 60s linear 0s infinite flowing_image;
}
@-webkit-keyframes flowing_image {
	from { -webkit-transform: translateX(0); }
	to { -webkit-transform: translateX(-50%); }
}
@keyframes flowing_image {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media screen and (max-width: 767px) {
	.flowing_image img {
		width: 500px;
	}
	.flowing_image ul {
		animation-duration: 30s;
	}
}

/* flow_section
============================================================================================================ */
.flow_section .white_box {
	padding: 100px 0;
}
.flow_section section {
	position: relative;
	text-align: center;
	font-size: 1.4rem;
}
.flow_section section + section {
	padding-top: 140px;
}
.flow_section section + section::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 40px;
	width: 40px;
	height: 40px;
	border-left: 1px solid #000;
	border-bottom: 1px solid #000;
	transform-origin: 0 100%;
	transform: rotate(-45deg);
}
.flow_section .num {
	display: flex;
	justify-content: center;
	margin-bottom: 30px;
}
.flow_section .num > * {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	width: 180px;
	height: 180px;
	border-radius: 100px;
}
.flow_section .num .flow {
	padding: 0 10px 10px 0;
	background-color: #f0f0f0;
}
.flow_section .num .flow .n {
	display: block;
	font-size: 5rem;
	line-height: 1;
}
.flow_section .num .ico {
	position: relative;
	margin-left: -40px;
	background-color: #fff;
	border: 10px solid #e5e5e5;
	z-index: 2;
}
.flow_section h3 {
	margin-bottom: 15px;
	font-size: 2.2rem;
	line-height: 1.6;
}
.flow_section .btn {
	margin-top: 90px;
}
@media screen and (max-width: 767px) {
	.flow_section .white_box {
		padding: 40px 0 50px;
	}
	.flow_section section {
		text-align: left;
		font-size: 1.3rem;
	}
	.flow_section section + section {
		padding-top: 60px;
	}
	.flow_section section + section::before {
		top: 15px;
		width: 20px;
		height: 20px;
	}
	.flow_section .num {
		margin-bottom: 20px;
	}
	.flow_section .num > * {
		width: 120px;
		height: 120px;
	}
	.flow_section .num .flow {
		padding-right: 0;
		padding-bottom: 5px;
	}
	.flow_section .num .ico {
		margin-left: -20px;
		border-width: 5px;
	}
	.flow_section .num .ico img {
		width: 60px;
	}
	.flow_section h3 {
		margin-bottom: 10px;
		font-size: 1.8rem;
		text-align: center;
	}
	.flow_section .btn {
		margin-top: 50px;
	}
}


/* contact_section
============================================================================================================ */
.contact_section .contact_head {
	text-align: center;
	letter-spacing: 0.06em;
}
.contact_section .contact_head .lead {
	margin-bottom: 20px;
	font-size: 2.8rem;
	line-height: 1.5;
	font-weight: 700;
	letter-spacing: 0.06em;
}
.contact_section .contact_head .notes {
	font-size: 1.5rem;
}
.contact_section .form_contents {
	margin-top: 60px;
}
.contact_section .form_head {
	margin-bottom: 40px;
	padding: 20px;
	background-color: #f0f0f0;
	text-align: center;
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.6;
}
.contact_section .form_contents dt {
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.6;
}
.contact_section .form_contents dt .hissu {
	margin-left: 0.8em;
	font-weight: 400;
	font-size: 1.4rem;
}
.contact_section .form_contents dt .hissu::before {
	content: "［ ";
}
.contact_section .form_contents dt .hissu::after {
	content: " ］";
}
.contact_section .form_contents dt .s {
	display: block;
	font-weight: 400;
	font-size: 1.4rem;
}
.contact_section .form_contents .ex {
	margin-bottom: 15px;
	font-size: 1.4rem;
}
@media screen and (min-width: 768px), print {
	.contact_section .form_contents {
		max-width: 1000px;
		margin-left: auto;
		margin-right: auto;
	}
	.contact_section .form_contents dl {
		display: flex;
		margin-bottom: 40px;
	}
	.contact_section .form_contents dt {
		width: 310px;
	}
	.contact_section .form_contents.input dt {
		padding-top: 14px;
	}
	.contact_section .form_contents dd {
		width: calc(100% - 310px);
	}
	.contact_section .form_contents .ex {
		padding-top: 10px;
	}
}
@media screen and (max-width: 767px) {
	.contact_section .contact_head .lead {
		margin-bottom: 15px;
		font-size: 2rem;
		letter-spacing: 0;
	}
	.contact_section .contact_head .notes {
		margin-top: 5px;
		font-size: 1.2rem;
		line-height: 1.6;
	}
	.contact_section .form_contents {
		margin-top: 40px;
	}
	.contact_section .form_head {
		margin-bottom: 30px;
		font-size: 1.4rem;
	}
	.contact_section .form_contents dl {
		margin-bottom: 20px;
	}
	.contact_section .form_contents dt {
		margin-bottom: 5px;
		font-size: 1.6rem;
	}
	.contact_section .form_contents dt .hissu {
		font-size: 1.3rem;
	}
	.contact_section .form_contents dt .s {
		margin-top: 3px;
		font-size: 1.3rem;
	}
	.contact_section .form_contents .ex {
		margin-bottom: 10px;
		font-size: 1.2rem;
	}
	.contact_section .form_contents.confirm dd {
		min-height: 3em;
		font-size: 1.5rem;
		padding: 10px 15px;
		background-color: #f6f6f6;
	}
}

.contact_section .form_contents .privacy {
	font-size: 1.4rem;
}
.contact_section .form_contents .privacy .label {
	display: flex;
	justify-content: center;
	margin-top: 90px;
	font-weight: 500;
	font-size: 1.8rem;
	line-height: 1.6;
}
.contact_section .form_contents .privacy .label .hissu {
	margin-left: 0.3em;
	font-weight: 400;
	font-size: 1.4rem;
}
.contact_section .form_contents .privacy .err {
	text-align: center;
}
@media screen and (min-width: 768px), print {
	.contact_section .form_contents .privacy {
		margin-left: 310px;
	}
	.contact_section .form_contents .privacy .label {
		width: 380px;
	}
	.contact_section .form_contents .privacy .err {
		width: 380px;
	}
}
@media screen and (max-width: 767px) {
	.contact_section .form_contents .privacy {
		margin-top: 40px;
		font-size: 1.3rem;
	}
	.contact_section .form_contents .privacy .label {
		margin-top: 30px;
	}
	.contact_section .form_contents .privacy .label .hissu {
		font-size: 1.3rem;
	}
}

.contact_section .form_contents .form_btn {
	margin-top: 100px;
}
.contact_section .form_contents .form_btn .box_btn:disabled {
	pointer-events: none;
	opacity: 0.2;
}
.contact_section .form_contents .form_btn .box_btn.back {
	border-color: #efefef;
	background-color: #efefef;
	color: #000;
}
.contact_section .form_contents .form_btn .box_btn.back::after {
	right: auto;
	left: 30px;
	border-color: #000;
	border-right-width: 0;
	border-left: 2px solid #000;
	transform-origin: 0 100%;
	transform: skewX(-45deg);
}
@media screen and (min-width: 768px), print {
	.contact_section .form_contents .form_btn {
		margin-left: 310px;
	}
	.contact_section .form_contents .form_btn .box_btn {
		margin: 0;
	}
	.contact_section .form_contents .form_btn .box_btn.back {
		width: 240px;
		padding-left: 20px;
	}
	.contact_section .form_contents .form_btn .box_btn.back:hover {
		border-color: #000;
	}
	.contact_section .form_contents .form_btn.confirm {
		display: flex;
		justify-content: center;
		flex-direction: row-reverse;
		margin-left: 0;
	}
	.contact_section .form_contents .form_btn.confirm .box_btn {
		margin: 0 10px;
	}
}
@media screen and (max-width: 767px) {
	.contact_section .form_contents .form_btn {
		margin-top: 50px;
	}
	.contact_section .form_contents .form_btn .box_btn.back {
		margin-top: 20px;
		height: 55px;
		border: 1px solid #000;
	}
}

.contact_section .form_error {
	margin-bottom: 40px;
	padding: 30px;
	border: 2px solid #dd0000;
	color: #dd0000;
	font-size: 1.7rem;
}
.contact_section .form_error ul {
	margin-top: 20px;
	font-weight: 700;
}
.contact_section .err {
	margin-top: 8px;
}
.contact_section .err strong {
	display: inline-block;
	padding: 1px 10px 2px;
	background-color: #dd0000;
	border-radius: 4px;
	color: #fff;
	font-size: 1.6rem;
}
@media screen and (min-width: 768px), print {
	.contact_section .form_error {
		text-align: center;
	}
	.contact_section .form_error ul {
		display: flex;
		flex-direction: column;
		align-items: center;
	}
}
@media screen and (max-width: 767px) {
	.contact_section .form_error {
		margin-bottom: 30px;
		padding: 20px;
		font-size: 1.4rem;
	}
	.contact_section .err strong {
		padding: 2px 10px 2px;
		font-size: 1.3rem;
	}
}

.contact_section .form_fin {
	margin-bottom: 40px;
	padding: 60px 0;
	background-color: #f0f0f0;
	text-align: center;
	font-size: 1.8rem;
	line-height: 1.6;
	letter-spacing: 0.05em;
}
.contact_section .form_fin p + p {
	margin-top: 1.5em;
}
.contact_section .form_fin .lead {
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.6;
}
.contact_section .form_fin .time {
	font-size: 1.6rem;
}
@media screen and (max-width: 767px) {
	.contact_section .form_fin {
		padding: 30px 0;
		font-size: 1.4rem;
		line-height: 1.7;
	}
	.contact_section .form_fin .lead {
		font-weight: 700;
		font-size: 1.8rem;
		line-height: 1.6;
		letter-spacing: 0;
	}
	.contact_section .form_fin .time {
		font-size: 1.3rem;
	}
}

form input[type=text],
form input[type=email],
form input[type=tel],
form input[type=number],
form input[type=url],
form textarea,
form select {
	width: 100%;
	height: 60px;
	padding: 0 1em;
	background-color: #fff;
	border: 1px solid #5d5d5d;
	font-size: 1.6rem;
}
form textarea {
	width: 100%;
	height: 170px;
	padding-top: 0.8em;
	padding-bottom: 0.8em;
}
form select {
	width: auto;
	padding: 0 40px 0 1em;
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAUCAYAAADPym6aAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDM1MiwgMjAyMC8wMS8zMC0xNTo1MDozOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REY4QjQ4RTRBRjc3MTFFQUFBQUQ5RUZEQ0IxODA3RTkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REY4QjQ4RTNBRjc3MTFFQUFBQUQ5RUZEQ0IxODA3RTkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzcxOUMwMEM0QkFCMTFFQTgwNzZGNzJFNEFBQkRFRDgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzcxOUMwMEQ0QkFCMTFFQTgwNzZGNzJFNEFBQkRFRDgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7I7BWeAAAA6UlEQVR42mL8//8/w3AATAzDBIx6ZLABFnSB5ORkGFMJiJ8D8XcyzdYC4utA/H/u3LkDFiOaQHwUiNcDMScZ5joD8WkgngbEjAOVtJSBeB8QSwCxOxmeAXliExBzAXEGEE8cKI+AktMVJD4pnkH2BAj8AuIDA+WRb0DsD8R7SPQMNk9EAvG6gSy1SPXMgHqCUPEL88xuAp4ZcE8QU4+APBOAxzODwhPEVoi4PLNvsHiClJodm2csBosnSG2iYPMMCPweaE+Q09ZC98yvweAJchuNMM9sBeIoIF47GBqNjKMdq1GP0AYABBgANtdG3naEDO8AAAAASUVORK5CYII=) no-repeat 100%;
	-webkit-background-size: 25px;
	background-size: 25px;
}
form select::-ms-expand {
	display: none;
}
form input[type=text],
form input[type=email],
form input[type=tel],
form input[type=number],
form input[type=url],
form select,
form textarea {
	-webkit-transition: -webkit-box-shadow .2s, border .2s;
	-o-transition: box-shadow .2s, border .2s;
	transition: box-shadow .2s, border .2s;
}
form input[type=text]:focus,
form input[type=email]:focus,
form input[type=tel]:focus,
form input[type=number]:focus,
form input[type=url]:focus,
form select:focus,
form textarea:focus {
	border-color: #66afe9;
	outline: 0;
	-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,0.8);
	box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,0.8);
}
form input[type=text]:disabled,
form input[type=email]:disabled,
form input[type=tel]:disabled,
form input[type=number]:disabled,
form input[type=url]:disabled,
form select:disabled,
form textarea:disabled {
	background-color: #ddd;
	opacity: .5;
}
form ::-webkit-input-placeholder {
	color: #ccc;
}
form :-ms-input-placeholder {
	color: #ccc;
}
form ::-moz-placeholder {
	color: #ccc;
}
form input[type=checkbox],
form input[type=radio] {
	visibility: hidden;
	position: absolute;
}
form label {
	display: block;
	position: relative;
	padding: 9px 0 9px 36px;
}
form label input[type=radio] + .check {
	content: "";
	position: absolute;
	left: 0;
	top: 12px;
	width: 26px;
	height: 26px;
	background-color: #fff;
	border: 1px solid #000;
	border-radius: 100%;
}
form label input[type=radio] + .check:after {
	content: "";
	position: absolute;
	top: 4px;
	right: 4px;
	left: 4px;
	bottom: 4px;
	background-color: #64d2be;
	opacity: 0;
	transition: opacity .2s;
	border-radius: 100%;
}
form label input[type=radio]:checked + .check:after {
	opacity: 1;
}
form label input[type=checkbox] + .check {
	content: "";
	position: absolute;
	left: 0;
	top: 12px;
	width: 26px;
	height: 26px;
	background-color: #fff;
	border: 1px solid #000;
}
form label input[type=checkbox] + .check:after {
	content: "";
	position: absolute;
	left: 9px;
	top: 1px;
	width: 9px;
	height: 17px;
	border-right: 3px solid #64d2be;
	border-bottom: 3px solid #64d2be;
	opacity: 0;
	transition: opacity .1s;
	transform: rotate(45deg);
}
form label input[type=checkbox]:checked + .check:after {
	opacity: 1;
}
@media screen and (min-width: 768px), print {
	form .label_inline li {
		display: inline-block;
		padding-right: 30px;
		padding-top: 5px;
	}
}
@media screen and (max-width: 767px) {
	form input[type=text],
	form input[type=email],
	form input[type=tel],
	form input[type=number],
	form input[type=url],
	form select {
		height: 44px;
	}
	form label {
		display: block;
		position: relative;
		padding: 6px 0 6px 36px;
		font-size: 1.5rem;
	}
	form label input[type=radio] + .check {
		top: 8px;
	}
	form label input[type=checkbox] + .check {
		top: 6px;
	}
}



/* privacymodal
============================================================================================================ */
#modalbg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background-color: #000;
	opacity: 0;
	pointer-events: none;
	z-index: 1009;
}
#modalbg.show {
	transition: opacity .3s;
	height: 100%;
	pointer-events: all;
	opacity: 0.5;
}
#privacymodal {
	position: fixed;
	top: -99999em;
	left: calc(50% - 400px);
	right: calc(50% - 400px);
	background-color: #fff;
	font-size: 1.5rem;
	opacity: 0;
	pointer-events: none;
	z-index: 1010;
}
#privacymodal.show {
	transition: opacity .3s;
	top: 60px;
	bottom: 60px;
	pointer-events: all;
	opacity: 1;
}
#privacymodal .contents {
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	height: 100%;
	padding: 40px;
}
#privacymodal p + p {
	margin-top: 1.5em;
}
#privacymodal .title {
	text-align: center;
	font-weight: 700;
	font-size: 1.6rem;
}
#privacymodal .title ~ .title {
	margin-top: 3em;
}
#privacymodal dl {
	margin-top: 2em;
}
#privacymodal dt {
	position: relative;
	padding-left: 0.8em;
}
#privacymodal dt::before {
	content: "-";
	position: absolute;
	top: 0;
	left: 0;
}
#privacymodal .close_btn {
	width: 240px;
	height: 50px;
	margin-top: 40px;
	padding: 0;
}
#privacymodal .close_btn::after {
	content: none;
}
@media screen and (max-width: 767px) {
	#privacymodal {
		left: 4vw;
		right: 4vw;
	}
	#privacymodal.show {
		top: 10vw;
		bottom: 10vw;
	}
	#privacymodal .contents {
		padding: 20px;
		font-size: 1.3rem;
	}
	#privacymodal .title {
		font-size: 1.5rem;
	}
	#privacymodal .close_btn {
		width: 200px;
		height: 50px;
	}
}
#privacymodal .close {
	position: absolute;
	top: -25px;
	right: -25px;
	width: 50px;
	height: 50px;
	background-color: #000;
	border: 2px solid #fff;
	border-radius: 100%;
	z-index: 3;
}
#privacymodal .close::before,
#privacymodal .close::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 10px;
	left: 10px;
	margin-top: -1px;
	border-top: 2px solid #fff;
	transform: rotate(45deg);
}
#privacymodal .close::after {
	transform: rotate(-45deg);
}
@media screen and (max-width: 767px) {
	#privacymodal .close {
		right: -15px;
		width: 40px;
		height: 40px;
	}
}

/* faq
============================================================================================================ */
.faq_g:not(:last-child){
	margin-bottom: 60px;
}
.faq_g_h{
	margin-bottom: 1em;
}
.faq_list{
	display: grid;
	gap: 20px;
}

.faq_c{
	border-radius: 10px;
	background: #fff;
}
.faq_c_q,
.faq_c_a{
	display: flex;
}
.faq_c_q .label,
.faq_c_a .label{
	width: 4em;
	display: block;
}
.faq_c_q .label02,
.faq_c_a .label02{
	flex: 1;
}
.faq_c_q{
}
.faq_c_q button,
.faq_c_a_in{
	padding: 20px;
	border: none;
	outline: none;
	appearance: none;
	display: flex;
	width: 100%;
	text-align: left;
	margin: 0;
	padding-right: 50px;
	position: relative;
	background: none;
}
.faq_c_q button{
	font-weight: bold;
	color: #000;
}

.faq_c_q button:after{
	content:"add";
	display: block;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	font-family: 'Material Icons Outlined';
	line-height: 1;
	-webkit-font-feature-settings: 'liga';
	-webkit-font-smoothing: antialiased;
	z-index: 1;
	right: 10px;
	font-size: 30px;
	font-weight: normal;
}
.faq_c_q button.is-active:after{
	content:"remove";
}
.u-folding-target{
	display: none;
}
@media screen and (max-width: 767px) {
	.faq_c_q .label,
	.faq_c_a .label{
		width: 2em;
	}

	.faq_c_q button,
	.faq_c_a_in{
		padding: 20px;
		padding-right: 40px;
	}
	.faq_c_q button:after{
		right: 10px;
		font-size: 26px;
	}

}

/* ul / ol
============================================================================================================ */
.dot_li > li {
	position: relative;
	padding-left: 1em;
}
.dot_li > li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}
.num_li {
	margin-left: 1.2em;
	list-style: decimal;
}
.alphabet_li {
	margin-left: 1.8em;
	list-style: lower-latin;
}

.mt_li > li + li {
	margin-top: 0.8em;
}

