@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}


/* 変数
============================================================================================================ */
:root {
	--color-base: #0a0a14;
	--color-theme: #01bdb3;
	--color-theme-rgb: 1,189,179;
	--color-gray: #efefef;
	--base-width: 120rem;
	--base-large-width: 127.2rem;
	--base-min-width: 1000px;
	--pc-base-padding: 3rem;
	--sp-base-padding: calc(30 / 375 * 100vw);
	--sp-base-padding-20: calc(20 / 375 * 100vw);
	--font-family-jp: 'Noto Sans JP', sans-serif;
	--font-family-en: 'Reem Kufi Fun', var(--font-family-jp);
	--font-weight: 500;
	--font-weight-bold: 700;
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
	--svg-transition-duration: 0.6s;
	--svg-transition-duration2: 0.9s;
	--svg-transition-timing-in: cubic-bezier(.19,.16,.61,.39);
	--svg-transition-timing-out: cubic-bezier(0.61, 1, 0.88, 1);
}


/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
body {
	background-color: #fff;
	font-size: 1.4rem;
	line-height: 2;
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	letter-spacing: .05em;

	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-feature-settings: "palt";
	font-style: normal;
	text-size-adjust: none;
}
@media screen and (min-width: 768px), print {
	html {
		font-size: min(calc(10px - (1400px - 100vw) * .00666), 62.5%);
		font-size: clamp(calc(1000 / 1400 * 10px), calc(10px - (1400px - 100vw) * (10 / 1400)), 62.5%);
	}
}
@media screen and (max-width: 767px) {
	body {
		font-size: 1.3rem;
	}
}

*,
*::before,
*::after {
	box-sizing: border-box;
}
:where(address,caption,cite,code,dfn,em,th,var) {
	font-style: normal;
	font-weight: var(--font-weight);
}
:where(img) {
	max-width: 100%;
	height: auto;
}
:where(iframe) {
	max-width: 100%;
	vertical-align: middle;
}
:where(sup) {
	vertical-align: super;
	font-size: 60%;
}
:where(table) {
	border-collapse: collapse;
	border-spacing: 0;
	line-height: inherit;
}
:where(a[href]) {
	color: var(--color-base);
	text-decoration: underline;
	outline: none;
}
:where(a[href]._a_reverse,._a_reverse a[href]) {
	text-decoration: none;
}
@media (hover) {
	:where(a[href]:hover) {
		text-decoration: none;
	}
	:where(a[href]._a_reverse,._a_reverse a[href]):hover {
		text-decoration: underline;
	}
}

:where(label) {
	cursor: pointer;
}
:where(input, select, textarea, button) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	border-radius: 0;
	vertical-align: middle;
	font-family: inherit;
	font-feature-settings: inherit;
	outline: none;
	font-size: 100%;
}
::placeholder {
	color: #ccc;
}
:where(button) {
	cursor: pointer;
}

.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}

#top {
	display: block;
}

/* slick
============================================================================================================ */
.slick-list,.slick-slider,.slick-track{position:relative;display:block}.slick-slider{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{overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-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{top:0;left:0;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-slide,.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-initialized .slick-slide,.slick-slide img{display:block}.slick-arrow.slick-hidden,.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}

/* 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;
	}
}

/* transition
============================================================================================================ */
@media (hover) {
	:where(body.init) :where(a,button,._basic_trs),
	:where(body.init) :where(a,button,._basic_trs)::before,
	:where(body.init) :where(a,button,._basic_trs)::after {
		transition: color var(--transition), background var(--transition), border var(--transition), opacity var(--transition), text-decoration-color .2s ease-in-out;
	}
	:where(body.init a svg) {
		transition: fill var(--transition);
	}
}

/* color
============================================================================================================ */
._c_black {
	color: #000 !important;
}
._c_base {
	color: var(--color-base) !important;
}
._c_theme {
	color: var(--color-theme) !important;
}
._c_white {
	color: #fff !important;
}
._bg_white {
	background-color: #fff !important;
}
._bg_gray {
	background-color: var(--color-gray) !important;
}

/* font
============================================================================================================ */
._ff_en {
	font-family: var(--font-family-en);
	font-weight: 400;
	letter-spacing: 0.05em;
}
._fwn {
	font-weight: var(--font-weight);
}
._fwr {
	font-weight: 400;
}
._fwm {
	font-weight: 500;
}
._fwb {
	font-weight: var(--font-weight);
}
._wsnw {
	white-space: nowrap;
}
@media screen and (min-width: 768px), print {
	._pc_wsnw {
		white-space: nowrap;
	}
}
@media screen and (max-width: 767px) {
	._sp_wsnw {
		white-space: nowrap;
	}
}
._fz_l {
	font-size: 1.8rem;
	line-height: calc(34 / 18);
}
@media screen and (max-width: 767px) {
	._fz_l {
		line-height: calc(32 / 18);
	}
}

/* display
============================================================================================================ */
._db {
	display: block;
}
._dib {
	display: inline-block;
}
._dfcc {
	display: flex !important;
	justify-content: center;
	align-items: center;
}
@media screen and (min-width: 768px), print {
	._pc_dib {
		display: inline-block;
	}
	._pc_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}
@media screen and (max-width: 767px) {
	._sp_dib {
		display: inline-block;
	}
	._sp_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}

/* object-fit
============================================================================================================ */
img._of {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
img._of.-abs {
	position: absolute;
	top: 0;
	left: 0;
}
img._of.-bg {
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
img._of.-top {
	object-position: 50% 0;
}
img._of.-bottom {
	object-position: 50% 100%;
}
img._of.-right {
	object-position: 100%;
}
img._of.-left {
	object-position: 0;
}
@media screen and (min-width: 768px), print {
	img._of.-pc_none {
		object-fit: none;
	}
	img._of.-pc_top {
		object-position: 50% 0 ;
	}
	img._of.-pc_bottom {
		object-position: 50% 100%;
	}
	img._pc_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._pc_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._pc_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._pc_of.-top {
		object-position: 50% 0 ;
	}
	img._pc_of.-none {
		object-fit: none;
	}
}
@media screen and (max-width: 767px) {
	img._of.-sp_top {
		object-position: 50% 0 ;
	}
	img._of.-sp_bottom {
		object-position: 50% 100%;
	}
	img._sp_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._sp_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._sp_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._sp_of.-top {
		object-position: 50% 0 ;
	}
}

/* hover
============================================================================================================ */
@media (hover) {
	body.init a ._hv_op {
		transition: opacity var(--transition);
	}
	a._hv_op:hover,
	a:hover ._hv_op,
	button._hv_op:hover,
	._hv_op a:hover {
		opacity: 0.7;
	}
	a._hv_op.-a20:hover,
	a:hover ._hv_op.-a20,
	._hv_op.-a20 a:hover {
		opacity: 0.8;
	}
	a._hv_op.-a10:hover,
	a:hover ._hv_op.-a10,
	._hv_op.-a10 a:hover {
		opacity: 0.9;
	}
	a._hv_op.-a50:hover,
	a:hover ._hv_op.-a50,
	._hv_op.-a50 a: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;
}
._hv_zoom.-static > * {
	position: relative;
}
@media (hover) {
	body.init a[href]._hv_zoom > *,
	body.init a[href] ._hv_zoom > * {
		transition: transform 0.5s, opacity .3s;
	}
	a[href]:hover ._hv_zoom.-s > * {
		transform: scale(1.03);
	}
	a[href]:hover ._hv_zoom.-l > * {
		transform: scale(1.1);
	}
	a[href]:hover._hv_zoom > *,
	a[href]:hover ._hv_zoom > * {
		transform: scale(1.05);
	}
}

/* target
============================================================================================================ */
a._target {
	display: block;
	position: relative;
	width: 1px;
	top: -8rem;
}
a._target.-pt {
	top: -11rem;
}
a._target.-abs {
	position: absolute;
}
@media screen and (max-width: 767px) {
	a._target {
		top: -6rem;
	}
	a._target.-pt {
		top: -8rem;
	}
}


/* w
============================================================================================================ */
._w {
	position: relative;
}
@media screen and (min-width: 768px), print {
	._w {
		width: var(--base-width);
		max-width: calc(100% - var(--pc-base-padding) * 2);
		margin-inline: auto;
	}
	._w.-m {
		width: 110rem;
	}
	._w.-l {
		width: var(--base-large-width);
	}
	._mw {
		min-width: var(--base-min-width);
	}
}
@media screen and (max-width: 767px) {
}


/* spパディング
============================================================================================================ */
@media screen and (max-width: 767px) {
	._sp_pd {
		padding-inline: var(--sp-base-padding) !important;
	}
	._sp_pd-20 {
		padding-inline: var(--sp-base-padding-20) !important;
	}
	._sp_mg {
		margin-inline: var(--sp-base-padding) !important;
	}
	._sp_full {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_l {
		margin-left: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_r {
		margin-right: calc(var(--sp-base-padding) * -1) !important;
	}
}

/* header
============================================================================================================ */
#header {
	position: sticky;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background-color: var(--color-base);
	color: #fff;
	z-index: 500;
}
@media screen and (min-width: 768px), print {
	#header {
		display: flex;
		justify-content: space-between;
		height: 8.1rem;
		border-bottom: 1px solid rgba(var(--color-theme-rgb),.3);
	}
	#header .logo {
		padding: 0 2.5%;
	}
	#header .logo a {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 100%;
		padding-top: .5rem;
	}
	#header .logo a img {
		width: 16rem;
	}
	#header nav,
	#header .hnav,
	#header nav ul {
		display: flex;
		align-items: center;
		font-size: 1.4rem;
		line-height: 1.6;
	}
	#header nav li {
		position: relative;
	}
	#header nav a {
		position: relative;
		display: flex;
		align-items: center;
		height: 8rem;
		color: #fff;
		text-decoration: none;
		font-weight: 500;
	}
	#header .gnav li + li::before {
		content: "";
		position: absolute;
		left: 0;
		top: 50%;
		height: 1em;
		border-left: 1px solid #fff;
		transform: translateY(-50%);
		pointer-events: none;
	}
	#header .gnav a {
		overflow: hidden;
		padding: 0 1.2em;
		text-align: center;
		letter-spacing: 0.05em;
	}
	#header .gnav a::after {
		content: "";
		position: absolute;
		bottom: 0;
		right: 1.2em;
		left: 1.2em;
		border-bottom: .4rem solid var(--color-theme);
		transform: translateY(.5rem);
	}
	@media (hover) {
		#header .gnav a::after {
			transition: transform .2s;
		}
		#header .gnav a:hover::after {
			transform: translateY(0);
		}
	}
	#header nav .hnav,
	#header nav .hnav ul + ul {
		border-left: 1px solid rgba(var(--color-theme-rgb),.3);
	}
	#header nav .hnav {
		margin-left: 1.2em;
	}
	#header .lang {
		padding: .5rem 3rem 0;
	}
	#header .lang li + li {
		position: relative;
		padding-left: 1em;
	}
	#header .lang li + li::before {
		content: "/";
		position: absolute;
		top: 50%;
		left: 0;
		width: 1em;
		text-align: center;
		transform: translateY(-50%);
	}
	#header .lang .current {
		display: inline-block;
		height: auto;
		border-bottom: 1px solid #fff;
		font-weight: 700;
	}
	@media (hover) {
		#header .lang a[href]:hover {
			opacity: 0.5;
		}
	}

	#header .contact a {
		justify-content: center;
		width: 14rem;
		padding-top: .5rem;
		font-weight: 700;
	}
	#header .contact a::before {
		content: "";
		position: absolute;
		top: 50%;
		right: 1.5rem;
		width: .8rem;
		height: .8rem;
		border-top: .2rem solid var(--color-theme);
		border-right: .2rem solid var(--color-theme);
		transform-origin: 100% 0;
		transform: rotate(45deg);
	}
	@media (hover) {
		#header .contact a[href]:hover {
			background-color: rgba(var(--color-theme-rgb),.2);
		}
	}
}
@media print {
	#header {
		position: relative;
	}
}
@media screen and (max-width: 767px) {
	#header {
		height: 6.1rem;
	}
	#header .logo {
		position: relative;
		display: flex;
		border-bottom: 1px solid rgba(var(--color-theme-rgb),.3);
		z-index: 20;
	}
	#header .logo a {
		display: flex;
		align-items: center;
		height: 6rem;
		padding: .5rem calc(20 / 375 * 100vw) 0;
	}
	#header .logo a img {
		width: calc(200 / 750 * 100vw);
	}

	/* nav_btn */
	#header .nav_btn {
		position: absolute;
		right: 0;
		top: 0;
		width: 6.1rem;
		height: 6rem;
		border-left: 1px solid rgba(var(--color-theme-rgb),.3);
		z-index: 100;
	}
	#header .nav_btn a {
		overflow: hidden;
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		height: 100%;
		color: rgba(255,255,255,0);
		font-size: 1rem;
		text-decoration-line: none;
	}
	#header .nav_btn a::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		margin: auto;
		width: 2.2rem;
		height: 2.2rem;
		background-image: linear-gradient(to right, var(--color-theme) .2rem, transparent .2rem), linear-gradient(to right, var(--color-theme) .2rem, transparent .2rem), linear-gradient(to right, var(--color-theme) .2rem, transparent .2rem);
		background-repeat: repeat-x;
		background-position: 0 0, 0 50%, 0 100%;
		background-size: 1rem .2rem;
	}
	#header .nav_btn a > * {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
	}
	#header .nav_btn a > *::before,
	#header .nav_btn a > *::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 2.2rem;
		margin-top: -.1rem;
		margin-left: -1.1rem;
		border-top: .2rem solid var(--color-theme);
		transform: scaleX(calc(2 / 22));
	}
	#header .nav_btn a > *::after {
		transform: rotate(90deg) scaleX(calc(2 / 22));
	}
	body.init #header .nav_btn a::before,
	body.init #header .nav_btn a > *,
	body.init #header .nav_btn a > *::before,
	body.init #header .nav_btn a > *::after {
		transition: transform var(--transition), opacity var(--transition), border var(--transition);
	}

	/* nav_btn open */
	#header.open .nav_btn a::before,
	#header.open .nav_btn a > * {
		transform: rotate(45deg);
	}
	#header.open .nav_btn a::before {
		opacity: 0;
	}
	#header.open .nav_btn a > *::before {
		transform: scaleX(1);
	}
	#header.open .nav_btn a > *::after {
		transform: rotate(90deg) scaleX(1);
	}

	/* gnav */
	#header .gnav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background-color: rgba(10,10,20,.9);
		transform: scale(1.1);
		opacity: 0;
		pointer-events: none;
		z-index: 10;
	}
	#header.trs .gnav {
		transition: transform var(--transition),  opacity var(--transition);
	}
	/* open */
	#header.open .gnav {
		transform: scale(1);
		opacity: 1;
		pointer-events: auto;
	}
	#header .gnav li {
		width: 100%;
	}
	#header .gnav a {
		display: block;
		padding: 0.5em;
		color: #fff;
		color: var(--color-theme);
		text-decoration: none;
		text-align: center;
		font-size: 1.8rem;
		font-weight: 700;
	}

	/* hnav */
	#header .hnav {
		position: absolute;
		top: 0;
		right: 6rem;
		display: flex;
		font-size: 1.2rem;
		z-index: 100;
	}
	#header .lang {
		display: flex;
		align-items: center;
	}
	#header .lang li + li {
		position: relative;
		padding-left: 1em;
	}
	#header .lang li + li::before {
		content: "/";
		position: absolute;
		top: 50%;
		left: 0;
		width: 1em;
		text-align: center;
		transform: translateY(-50%);
	}
	#header .lang a {
		display: flex;
		align-items: center;
		height: 6rem;
	}
	#header .lang a[href] {
		color: #fff;
		text-decoration: none;
	}
	#header .lang a:not([href]) {
		color: var(--color-theme);
		font-weight: 700;
	}
	#header .contact {
		padding: 0 1rem;
	}
	#header .contact a {
		display: flex;
		align-items: center;
		height: 6rem;
		padding: 0 1rem;
		color: #fff;
		text-decoration: none;
	}
}

/* footer
============================================================================================================ */
#footer {
	position: relative;
	padding: 13rem 0 2rem;
	background-color: var(--color-base);
	color: #fff;
	text-align: center;
	z-index: 2;
}
#footer .move_logo_wrap {
	display: block;
	margin: 0 auto 6rem;
}
#footer .sns {
	display: flex;
	justify-content: center;
	gap: 4rem;
	margin-top: 6rem;
}
#footer .sns li {
	width: 3rem;
}
#footer .fnav {
	display: flex;
	justify-content: center;
	margin-bottom: 5rem;
	font-size: 1.3rem;
	text-align: center;
}
#footer .fnav li + li {
	position: relative;
	margin-left: 1.2em;
	padding-left: 1.2em;
}
#footer .fnav li + li::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	height: 1em;
	margin-top: -.5em;
	border-left: 1px solid #fff;
}
#footer .fnav a {
	color: #fff;
}
#footer small {
	display: block;
	margin-top: 3rem;
	font-size: 1.4rem;
	line-height: 1.2;
}
@media screen and (min-width: 768px), print {
}
@media screen and (max-width: 767px) {
	#footer {
		padding-top: 22rem;
	}
	#footer .logo {
		margin-bottom: 4rem;
	}
	#footer .logo img {
		width: 80%;
	}
	#footer .move_logo_wrap {
		position: absolute;
		top: 14rem;
		left: calc(50% - 74rem / 2);
		transform: translateY(-50%) scale(.4);
	}
	#footer .sns {
		gap: 2rem;
		margin-top: 6.4rem;
	}
	#footer .fnav {
		margin-bottom: 3rem;
		font-size: 1.1rem;
	}
	#footer small {
		margin-top: 3rem;
		font-size: 1.2rem;
	}
}

/* container
============================================================================================================ */
#container {
	padding-top: 8rem;
}
@media screen and (max-width: 767px) {
	#container {
		padding-top: 6rem;
	}
}


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

	パーツ

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

/* move_logo
============================================================================================================ */
.move_logo_wrap {
	position: relative;
	width: 74rem;
	height: 20rem;
	margin-bottom: 5rem;
	transform: scale(var(--fs-rate));
}
.move_logo {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 740px;
	height: 200px;
	transform: translate(-50%, -50%);
}
.move_logo svg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	user-select: none;
}
.move_logo svg path {
	opacity: 0;
	fill: none;
}
.move_logo svg path.move {
	transition: stroke-dasharray var(--svg-transition-duration) var(--svg-transition-timing-in), stroke-dashoffset var(--svg-transition-duration) var(--svg-transition-timing-in);
	opacity: 1;
}
.move_logo .main_svg_white path {
	stroke: #fff;
	fill: rgba(1,189,179,0);
}
.move_logo .main_svg_white .-fill.fill,
.move_logo .main_svg_white .-fill:has(+.fill) {
	transition: fill .5s linear, stroke .5s linear;
	stroke: rgba(255,255,255,0);
	fill: rgba(1,189,179,.8);
	opacity: 1;
}
.move_logo .main_svg_white .-line:not(.-fill).fill {
	transition: stroke .5s linear;
	stroke: rgba(255,255,255,0);
}
.move_logo .main_svg_green {
	stroke: #01bdb3;
}
.move_logo .main_svg_green path.move {
	transition-timing-function: var(--svg-transition-timing-out);
	transition-duration: var(--svg-transition-duration2);
}
.move_logo .dot {
	position: absolute;
	width: 0.8rem;
	height: 0.8rem;
	border-radius: 100%;
	background-color: #fff;
	offset-distance: 0%;
	opacity: 0;
	z-index: 3;
}
.move_logo .dot.move {
	transition: motion-offset var(--svg-transition-duration) var(--svg-transition-timing-in), offset-distance var(--svg-transition-duration) var(--svg-transition-timing-in), opacity .3s linear;
	opacity: 1;
}
.move_logo .dot.after {
	background-color: #01bdb3;
	transition: motion-offset var(--svg-transition-duration2) var(--svg-transition-timing-out), offset-distance var(--svg-transition-duration2) var(--svg-transition-timing-out), opacity .2s linear, transform .2s ease-in;
}
.move_logo .dot.hide {
	transform: scale(0);
}
.move_logo .main_svg_white path.engine.move {
	transition: stroke-dasharray .7s var(--svg-transition-timing-out), stroke-dashoffset .7s var(--svg-transition-timing-out), fill .5s .4s var(--svg-transition-timing-out), stroke .5s .4s var(--svg-transition-timing-out);
	fill: rgba(1,189,179,.8);
	stroke: #01bdb3;
	opacity: 1;
}


/* page_title
============================================================================================================ */
.page_title {
	position: relative;
	padding-top: 1.5rem;
	padding-bottom: 5rem;
	line-height: 1.3;
	letter-spacing: 0.05em;
	z-index: 3;
}
.page_title:not(.-no-bg)::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: calc(50% - 10rem);
	height: 31rem;
	background: url(../img/page_title_bg.png) no-repeat 0;
	background-size: auto 100%;
}
.page_title .en {
	font-size: 7.6rem;
	line-height: 1;
	letter-spacing: 0.02em;
}
.page_title .title {
	margin-top: 2rem;
	font-size: 1.8rem;
	font-weight: 700;
}
.page_title .title::after {
	content: "";
	display: block;
	width: 4rem;
	margin-top: 3rem;
	border-top: .4rem solid var(--color-theme);
}
.page_title.-center {
	text-align: center;
}
.page_title.-center .title::after {
	margin-inline: auto;
}
@media screen and (min-width: 768px), print {
	.page_title.-hfix {
		min-height: 33rem;
	}
	.page_title ._w {
		width: 130rem;
	}
}
@media screen and (max-width: 767px) {
	.page_title {
		padding-bottom: 3rem;
	}
	.page_title.-hfix {
		min-height: 20rem;
	}
	.page_title::before {
		left: calc(50% - 5rem);
		height: 20rem;
	}
	.page_title .en {
		font-size: 4.8rem;
	}
	.-page--privacy .page_title .en {
		white-space: nowrap;
		font-size: 4rem;
		letter-spacing: 0;
	}
	.page_title .title {
		margin-top: 1.5rem;
		font-size: 1.5rem;
	}
	.page_title .title::after {
		width: 3rem;
		margin-top: 2rem;
		border-top-width: 0.3rem;
	}
}

/* breadcrumbs
============================================================================================================ */
.breadcrumbs {
	padding-bottom: 5rem;
	font-size: 1.2rem;
	line-height: 1.4;
	letter-spacing: 0;
}
.breadcrumbs li {
	position: relative;
	padding-right: 20px;
}
.breadcrumbs ol li::after {
	content: "";
	position: absolute;
	right: .5em;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 1px solid var(--color-base);
	border-right: 1px solid var(--color-base);
	transform-origin: 100% 0;
	transform: scaleY(.7) rotate(45deg);
}
.breadcrumbs ol li:last-child {
	margin-right: 0;
	padding-right: 0;
}
.breadcrumbs ol li:last-child::after {
	content: none;
}
.breadcrumbs a {
	color: var(--color-base);
}
@media screen and (min-width: 768px), print {
	.breadcrumbs ol {
		display: flex;
	}
}
@media screen and (max-width: 767px) {
	.breadcrumbs {
		margin: 0 calc(var(--sp-base-padding) * -1) 2rem;
		padding: 0 calc(var(--sp-base-padding) * 1) 1rem;
		font-size: 1.1rem;
		overflow-x: auto;
	}
	.breadcrumbs ol {
		display: table;
		white-space: nowrap;
	}
	.breadcrumbs ol li {
		display: table-cell;
		white-space: nowrap;
	}
}


/* title
============================================================================================================ */
.l_title {
	margin-bottom: 4rem;
	font-size: 6rem;
	text-align: center;
	line-height: 1;
}
@media screen and (min-width: 768px), print {
	.l_title.-pc_tal {
		text-align: left;
	}
}
@media screen and (max-width: 767px) {
	.l_title {
		margin-bottom: 3rem;
		font-size: 4.8rem;
		line-height: 1.2;
	}
}

.ms_title {
	margin-bottom: 3rem;
	font-size: 2rem;
}
@media screen and (max-width: 767px) {
	.ms_title {
		margin-bottom: 2rem;
		font-size: 1.8rem;
	}
}

.lead_txt {
	margin-bottom: 6rem;
	font-weight: 800;
	font-size: 2rem;
	line-height: 2;
	text-align: center;
	letter-spacing: 0.08em;
}
@media screen and (min-width: 768px), print {
	.lead_txt.-pc_tal {
		text-align: left;
	}
}
@media screen and (max-width: 767px) {
	.lead_txt {
		font-size: 1.7rem;
		line-height: 1.8;
		margin-bottom: 4rem;
	}
}
.lead_link {
	margin-top: -3rem;
	text-align: center;
	letter-spacing: 0.08em;
}
@media screen and (max-width: 767px) {
	.lead_link {
		margin-top: -2rem;
	}
}

/* box_btn
============================================================================================================ */
.box_btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
	width: 24rem;
	height: 5.4rem;
	padding-right: 1rem;
	color: var(--color-theme);
	border: 1px solid var(--color-theme);
	border-radius: 100px;
	text-decoration: none;
	font-weight: 700;
	line-height: 1.3;
}
.box_btn.-arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2rem;
	width: .8rem;
	height: .8rem;
	border-top: 2px solid;
	border-right: 2px solid;
	transform-origin: 100% 0;
	transform: rotate(45deg);
	transition: none;
}
.box_btn.-arrow-l::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 2rem;
	width: .8rem;
	height: .8rem;
	border-top: 2px solid;
	border-left: 2px solid;
	transform-origin: 0 0;
	transform: rotate(-45deg);
	transition: none;
}
.box_btn.-blank::before {
	content: "";
	position: absolute;
	top: calc(50% - .5rem);
	right: 2rem;
	width: 1.1rem;
	height: 1.1rem;
	background: url(../img/ico-arrow.svg) no-repeat 50%;
	background-size: 100%;
}
.box_btn._ff_en {
	font-size: 2rem;
	font-weight: 400;
}
.box_btn.-w1 {
	width: 32rem;
}
.box_btn.-coming {
	color: #aaa;
	border-color: #aaa;
}
.box_btn:where(.-white) {
	background-color: #fff;
}
.box_btn:where(.-white-border) {
	background-color: #fff;
	border-color: #fff;
}
@media (hover) {
	.box_btn[href]:hover {
		background-color: rgba(var(--color-theme-rgb),1);
		color: #fff;
	}
	.box_btn[href].-hv_op:hover {
		background-color: rgba(var(--color-theme-rgb),.5);
	}
	.box_btn[href].-blank::after {
		content: "";
		position: absolute;
		top: calc(50% - .5rem);
		right: 2rem;
		width: 1.1rem;
		height: 1.1rem;
		background: url(../img/ico-arrow.svg) no-repeat 50%;
		background-size: 100%;
		filter: brightness(0) invert(1);
		opacity: 0;
	}
	.box_btn[href].-blank:hover::after {
		opacity: 1;
	}
}
@media screen and (max-width: 767px) {
	.box_btn {
		height: 4rem;
	}
	.box_btn.-w1 {
		width: 24rem;
	}
	.box_btn.-arrow::after {
		right: 1.5rem;
		transform: rotate(45deg) scale(.8);
	}
	.box_btn._ff_en {
		font-size: 1.5rem;
	}
}

/* bdb_link_box
============================================================================================================ */
.bdb_link_box {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0 auto;
	width: 18rem;
	height: 5rem;
	color: var(--color-base);
	border-bottom: 1px solid var(--color-base);
	text-decoration: none;
	font-weight: 700;
}
.bdb_link_box::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: .8rem;
	height: .8rem;
	border-top: 2px solid var(--color-theme);
	border-right: 2px solid var(--color-theme);
	transform-origin: 100% 0;
	transform: rotate(45deg);
	transition: none;
}
@media (hover) {
	.bdb_link_box:hover {
		color: var(--color-theme);
	}
}
@media screen and (max-width: 767px) {
	.bdb_link_box {
		width: 16rem;
		height: 4rem;
	}
}

/* base_section
============================================================================================================ */
.base_section {
	position: relative;
	padding: 12rem 0;
	background-color: #fff;
	z-index: 2;
}
@media screen and (min-width: 768px), print {
}
@media screen and (max-width: 767px) {
	.base_section {
		padding: 8rem 0;
	}
}


/* try_section
============================================================================================================ */
.try_section {
	clip-path: inset(0);
}
.try_section.-border-top {
	border-top: 1px solid #e5e5e5;
}
.try_section .bg {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
}
.try_section .bg > * {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 130.2rem;
	transform: translate(-50%, -50%);
}
.try_contents .ico {
	margin-bottom: 2rem;
	text-align: center;
}
.try_contents .ico img {
	width: 7rem;
}
.try_contents h3 {
	margin-bottom: 2.5rem;
	text-align: center;
	font-size: 3.4rem;
	line-height: 1;
}
.try_contents h3::after {
	content: "";
	display: block;
	width: 2rem;
	margin: 1rem auto 0;
	border-top: 2px solid var(--color-theme);
}
@media screen and (min-width: 768px), print {
	.try_contents {
		display: flex;
		justify-content: center;
		gap: calc((100% - 32rem * 3) / 2);
		margin-top: 10rem;
	}
	.try_contents > * {
		position: relative;
		width: 32rem;
		/* padding-bottom: 9rem; */
	}
	/* .try_contents .more {
		position: absolute;
		bottom: 0;
		right: 0;
		left: 0;
	} */
	.try_contents .more {
		margin-top: 3rem;
	}
}
@media screen and (max-width: 767px) {
	.try_section .bg {
		position: absolute;
	}
	.try_section .bg > * {
		width: 100rem;
		transform: translate(-50%) rotate(90deg);
	}
	.try_contents {
		margin-top: 6rem;
	}
	.try_contents > * {
		margin-top: 5rem;
	}
	.try_contents .ico img {
		width: 6.4rem;
	}
	.try_contents h3 {
		margin-bottom: 2rem;
		font-size: 3rem;
	}
	.try_contents .more {
		margin-top: 2rem;
	}
}

/* _base_pb
============================================================================================================ */
._base_pb {
	padding-bottom: 14rem;
}
@media screen and (max-width: 767px) {
	._base_pb {
		padding-bottom: 10rem;
	}
}


/* column_contents
============================================================================================================ */
@media screen and (min-width: 768px), print {
	.column_contents {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		flex-direction: row-reverse;
	}
	.column_contents .column_main {
		width: 88rem;
	}
	.column_contents .column_side {
		width: 20rem;
	}
}
.column_side {
	position: relative;
	z-index: 3;
}
.column_side dt {
	margin-bottom: 2rem;
	font-size: 2.6rem;
	line-height: 1.6;
}
.column_side ul a {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 5.5rem;
	padding: 1rem 0;
	color: var(--color-base);
	border-bottom: 1px solid #e5e5e5;
	text-decoration: none;
	font-weight: 700;
	font-size: 1.6rem;
}
.column_side ul a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: .8rem;
	height: .8rem;
	border-top: 2px solid var(--color-theme);
	border-right: 2px solid var(--color-theme);
	transform-origin: 100% 0;
	transform: rotate(45deg);
	transition: none;
}
.column_side ul a.active {
	color: var(--color-theme);
}
@media (hover) {
	.column_side ul a:hover {
		color: var(--color-theme);
	}
}
@media screen and (max-width: 767px) {
	.column_side {
		margin-top: 8rem;
	}
	.column_side ul a {
		width: auto;
		height: 4rem;
	}
}


/* news_list_block
============================================================================================================ */
.news_list_block {
	border-top: 1px solid #e5e5e5;
}
.news_list_block article {
	border-bottom: 1px solid #e5e5e5;
}
.news_list_block article a {
	display: block;
	padding: 3.5rem 0;
	line-height: 1.8;
	text-decoration: none;
}
.news_list_block article a header {
	display: flex;
	align-items: center;
	line-height: 1.8;
}
.news_list_block article a time {
	padding-top: 0.1rem;
}
.news_list_block article a .cat {
	margin-left: 1.3em;
}
.news_list_block article a .title {
	font-size: 1.6rem;
	line-height: 1.8;
	text-decoration: underline;
}
@media (hover) {
	.news_list_block article a:hover .title {
		text-decoration: none;
	}
}
@media screen and (min-width: 768px), print {
	.news_list_block article a {
		display: flex;
		align-items: start;
	}
	.news_list_block article header {
		width: 18rem;
		margin-top: 0.2rem;
		margin-right: 2rem;
		flex-shrink: 0;
		border-right: 2px solid var(--color-theme);
	}
}
@media screen and (max-width: 767px) {
	.news_list_block article a {
		padding: 2rem 0;
	}
	.news_list_block article header {
		margin-bottom: 1rem;
		padding-left: 1rem;
		border-left: .2rem solid var(--color-theme);
		line-height: 1.4;
	}
	.news_list_block article a .title {
		font-size: 1.5rem;
		line-height: 1.5;
		padding-left: 1.2rem;
	}
}


/* .wp-pagenavi
============================================================================================================ */
.wp-pagenavi {
	position: relative;
	margin-top: 8rem;
	text-align: center;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
	font-size: 1.8rem;
	line-height: 1.2;
	font-family: var(--font-family-en);
	font-weight: 400;
}
.wp-pagenavi > * {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 6rem;
	height: 4rem;
	border-radius: 2rem;
}
.wp-pagenavi a {
	background-color: #cccccc;
	color: #fff;
	text-decoration: none;
}
.wp-pagenavi .extend {
	width: auto;
	padding: 0 10px;
	color: var(--color-base);
}
.wp-pagenavi .current {
	background-color: var(--color-theme);
	color: #fff;
}
.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
	overflow: hidden;
	justify-content: start;
	background-color: transparent !important;
	text-indent: -999em;
}
.wp-pagenavi .previouspostslink::before,
.wp-pagenavi .nextpostslink::before {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(50% - 0.7rem);
	width: 1.4rem;
	height: 1.4rem;
	border-top: .1rem solid var(--color-base);
	border-right: .1rem solid var(--color-base);
	transform-origin: 100% 0;
	transform: rotate(45deg);
}
.wp-pagenavi .previouspostslink {
	transform: scaleX(-1);
}
@media (hover) {
	.wp-pagenavi a:hover {
		background-color: var(--color-theme);
		color: #fff;
	}
	.wp-pagenavi .previouspostslink:hover,
	.wp-pagenavi .nextpostslink:hover {
		opacity: 0.5;
	}
}
@media screen and (min-width: 768px), print {
	.column_main .wp-pagenavi {
		width: var(--base-width);
		margin-left: calc(88rem - var(--base-width));
	}
}
@media screen and (max-width: 767px) {
	.wp-pagenavi {
		gap: 0.6rem;
		margin-top: 5rem;
		font-size: 1.4rem;
	}
	.wp-pagenavi > * {
		width: 4rem;
		height: 3rem;
	}
	.wp-pagenavi .extend {
		display: none;
	}
}


/* 詳細
============================================================================================================ */
.entry_header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 6rem;
	padding-bottom: 4rem;
	border-bottom: 1px solid #e5e5e5;
	font-size: 1.4rem;
	line-height: 1.4;
	font-weight: var(--font-weight);
}
.entry_header h1 {
	width: 100%;
	margin-bottom: 15px;
	font-size: 3rem;
	line-height: 1.6;
	letter-spacing: 0.1em;
}
.entry_header h1 ~ * {
	margin-right: 2em;
	margin-top: 1rem;
}
.entry_header h1 ~ *:last-child {
	margin-right: 0;
	border-right: 2px solid var(--color-theme);
	padding-right: 2em;
}
.entry_header time {
	font-size: 110%;
}
.entry_header .cat {
	margin-right: 0.5em;
}
.entry_header .cat a {
	color: var(--color-base);
}
@media screen and (max-width: 767px) {
	.entry_header {
		margin-bottom: 3rem;
		padding-bottom: 2rem;
		font-size: 1.3rem;
	}
	.entry_header h1 {
		margin-bottom: 1rem;
		font-size: 2.4rem;
		line-height: 1.5;
	}
}

.entry_body.-has-bdb {
	margin-bottom: 12rem;
	padding-bottom: 12rem;
	border-bottom: 1px solid #e5e5e5;
}
@media screen and (max-width: 767px) {
	.entry_body.-has-bdb {
		margin-bottom: 8rem;
		padding-bottom: 6rem;
	}
}

.same_category_entry {
	margin-top: 12rem;
}
@media screen and (max-width: 767px) {
	.same_category_entry {
		margin-top: 6rem;
	}
}

.posted_author {
	margin-top: 12rem;
}
.posted_author .author {
	position: relative;
	padding: 3rem;
	border: 1px solid var(--color-theme);
}
.posted_author .author h2 {
	position: absolute;
	right: 0;
	left: 0;
	top: 0;
	text-align: center;
	color: var(--color-theme);
	font-size: 1.4rem;
	line-height: 1.5;
	transform: translateY(-50%);
}
.posted_author .author h2 > span {
	display: inline-block;
	padding: 0 2em;
	background-color: #fff;
}
.posted_author .ph {
	position: relative;
}
.posted_author .ph img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.posted_author .name {
	margin-bottom: .8em;
	font-size: 1.6rem;
	line-height: 1.5;
	font-weight: 700;
}
.posted_author .entry_body {
	margin: 0;
	font-size: 1.2rem;
	line-height: 1.8;
}
@media screen and (min-width: 768px), print {
	.posted_author .author {
		display: flex;
	}
	.posted_author .ph {
		flex-shrink: 0;
		width: 16rem;
		height: 16rem;
		margin-right: 4rem;
	}
	.posted_author .content {
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}
@media screen and (max-width: 767px) {
	.posted_author {
		margin-top: 6rem;
	}
	.posted_author .author {
		padding: 20px;
	}
	.posted_author .ph {
		position: absolute;
		top: 20px;
		left: 20px;
		width: 80px;
		height: 80px;
	}
	.posted_author .ph + .content {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}
	.posted_author .ph + .content::before {
		content: "";
		width: 80px;
		height: 80px;
		margin-right: 20px;
		flex-shrink: 0;
	}
	.posted_author .name {
		margin-bottom: 0;
		font-size: 1.5rem;
	}
	.posted_author .entry_body {
		margin-top: 15px;
	}
}

.recommend_entry {
	margin-top: 12rem;
}
.recommend_entry .article_list a .ph {
	margin-bottom: 1.5rem;
	aspect-ratio: 260 / 154;
}
.recommend_entry .article_list a .ph.-no-img {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #e5e5e5;
}
.recommend_entry .article_list a .ph.-no-img img {
	width: 80%;
}
.recommend_entry .article_list a .title {
	color: var(--color-base);
}
@media (hover) {
	.recommend_entry .article_list a:hover .title {
		text-decoration: none;
	}
}
@media screen and (min-width: 768px), print {
	.recommend_entry .article_list {
		display: flex;
		gap: 5rem;
	}
	.recommend_entry .article_list > * {
		width: calc((100% - 5rem * 2) / 3);
	}
}
@media screen and (max-width: 767px) {
	.recommend_entry {
		margin-top: 6rem;
	}
	.recommend_entry .article_list > * + * {
		margin-top: 30px;
	}
	.recommend_entry .article_list a .ph {
		margin-bottom: 10px;
	}
}



.entry_pager {
	margin-top: 12rem;
	padding-top: 3rem;
	display: flex;
	border-top: 1px solid #e5e5e5;
}
.entry_pager li {
	max-width: 40%;
}
.entry_pager .next {
	margin-left: auto;
}
.entry_pager a {
	display: block;
	text-decoration: none;
	font-weight: 700;
}
.entry_pager a .dt {
	position: relative;
	display: block;
	margin-bottom: 1rem;
	color: var(--color-theme);
}
.entry_pager .prev .dt {
	padding-left: 2rem;
}
.entry_pager .prev .dt::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 1.2rem;
	height: 1.2rem;
	border-top: 2px solid;
	border-left: 2px solid;
	transform-origin: 0 0;
	transform: rotate(-45deg);
}
.entry_pager .next .dt {
	padding-right: 2rem;
	text-align: right;
}
.entry_pager .next .dt::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 1.2rem;
	height: 1.2rem;
	border-top: 2px solid;
	border-right: 2px solid;
	transform-origin: 100% 0;
	transform: rotate(45deg);
}
@media screen and (min-width: 768px), print {
	.entry_pager a .title {
		display: block;
		overflow: hidden;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		margin-top: 0.3em;
		color: var(--color-base);
		text-decoration: underline;
	}
	@media (hover) {
		.entry_pager a:hover .title {
			text-decoration: none;
		}
	}
}
@media screen and (max-width: 767px) {
	.entry_pager {
		margin-top: 6rem;
		padding-top: 2rem;
	}
	.entry_pager a .title {
		display: none;
	}
}


/* フォーム
============================================================================================================ */
.contact_contents {
	font-size: 1.8rem;
}
.contact_contents .contact_head {
	margin-bottom: 7rem;
	font-weight: 700;
}
.contact_contents .notes {
	margin: 8rem 0 7rem;
	text-align: center;
	font-size: 1.4rem;
	line-height: 2;
}

.form_item dt {
	position: relative;
	font-weight: 700;
}
.form_item .hissu {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 5rem;
	height: 2.6rem;
	background-color: #ffb43c;
	border-radius: 100px;
	color: #fff;
	font-size: 1.2rem;
	line-height: 1.4;
}
.form_item .hissu.--en {
	width: 7.5rem;
	flex-shrink: 0;
}
.form_item {
	margin-bottom: 6rem;
}
.mw_wp_form_confirm .form_item .address_input > * {
	display: inline;
}
.mw_wp_form_confirm .form_item .address_input .zip {
	display: block;
}
.form_contents .privacy {
	display: flex;
	justify-content: center;
}
.form_contents .privacy > span {
	position: relative;
	padding: 6px 20px;
	border: 1px solid #b2b2b2;
	border-radius: 4px;
}
.mw_wp_form_confirm .privacy {
	display: none;
}
.mw_wp_form_confirm .non_confirm {
	display: none;
}
@media screen and (min-width: 768px), print {
	.form_item {
		display: flex;
		align-items: start;
		justify-content: space-between;
	}
	.form_item dt {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 22rem;
		height: 6rem;
	}
	html[lang="en"] .form_item dt {
		width: 26rem;
	}
	.form_item dd {
		width: 78rem;
	}
	.form_item.form_check {
		margin-bottom: 3rem;
		justify-content: center;
		align-items: center;
		gap: 3rem;
	}
	.form_item.form_check dt {
		width: 31rem;
		font-size: 1.6rem;
	}
	.form_item.form_check dd {
		width: auto;
	}
}
@media screen and (max-width: 767px) {
	.contact_contents {
		font-size: 1.6rem;
	}
	.contact_contents .contact_head {
		margin-bottom: 4rem;
	}
	.contact_contents .notes {
		margin: 5rem 0 4rem;
		text-align: left;
		font-size: 1.4rem;
		line-height: 2;
	}
	.form_item dt {
		display: flex;
		align-items: center;
		margin-bottom: 1rem;
	}
	.form_item .hissu {
		margin-left: 1em;
	}
	.form_item {
		margin-bottom: 3rem;
	}
	.form_item.form_check {
		text-align: center;
	}
	.form_item.form_check dt {
		justify-content: center;
	}
	.form_item.form_check dd label {
		height: 4rem;
	}
}

form input[type=text],
form input[type=email],
form input[type=tel],
form input[type=number],
form textarea,
form select {
	width: 100%;
	height: 6rem;
	padding: 0 1em;
	background-color: #fff;
	border: 1px solid #b2b2b2;
	border-radius: 0;
	color: var(--color-base);
	font-size: 1.8rem;
}
form textarea {
	width: 100%;
	height: 22rem;
	padding-top: 0.8em;
	padding-bottom: 0.8em;
}
form select {
	width: auto;
	padding: 0 30px 0 1em;
	background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%229%22%20height%3D%226%22%20viewBox%3D%220%200%209%206%22%3E%3Cpath%20d%3D%22M8.995%2C.297L4.5%2C5.704%2C.005%2C.296H8.995Z%22%20fill%3D%22%23333%22%2F%3E%3C%2Fsvg%3E');
	background-repeat: no-repeat;
	background-position: calc(100% - 10px);
}
form select::-ms-expand {
	display: none;
}
form input[type=text],
form input[type=email],
form input[type=tel],
form input[type=number],
form select,
form textarea {
	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 select:focus,
form textarea:focus {
	border-color: #66afe9;
	outline: 0;
	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 select:disabled,
form textarea:disabled {
	background-color: #ddd;
	opacity: .5;
}
form ::-webkit-input-placeholder {
	color: #a6a6a6;
}
form :-ms-input-placeholder {
	color: #a6a6a6;
}
form ::-moz-placeholder {
	color: #a6a6a6;
}
form input[type=checkbox],
form input[type=radio] {
	position: absolute;
	width: 2rem;
	height: 2rem;
}
form label {
	position: relative;
	display: flex;
	align-items: center;
	height: 6rem;
}
form label input[type=radio] + span {
	position: relative;
	padding-left: 3rem;
}
form label input[type=radio] + span::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	margin-top: -1rem;
	width: 2rem;
	height: 2rem;
	background-color: #fff;
	border: 1px solid #b2b2b2;
	border-radius: 100%;
}
form label input[type=radio] + span::after {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 1rem;
	height: 1rem;
	margin-top: -.5rem;
	margin-left: .5rem;
	background-color: var(--color-theme);
	border-radius: 100%;
	opacity: 0;
	transition: opacity .1s;
}
form label input[type=radio]:checked + span::after {
	opacity: 1;
}
form label input[type=checkbox] + span {
	position: relative;
	padding-left: 3rem;
}
form label input[type=checkbox] + span::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	margin-top: -1rem;
	width: 2rem;
	height: 2rem;
	background-color: #fff;
	border: 1px solid #b2b2b2;
}
form label input[type=checkbox] + span::after {
	content: "";
	position: absolute;
	left: 7px;
	top: calc(50% - 8px);
	width: 7px;
	height: 14px;
	border-right: 3px solid var(--color-theme);
	border-bottom: 3px solid var(--color-theme);
	opacity: 0;
	transition: opacity .1s;
	transform: rotate(45deg);
}
form label input[type=checkbox]:checked + span::after {
	opacity: 1;
}
@media screen and (max-width: 767px) {
	form input[type=text],
	form input[type=email],
	form input[type=tel],
	form input[type=number],
	form textarea,
	form select {
		height: 5rem;
		font-size: 1.6rem;
	}
	form textarea {
		height: 15rem;
	}
}
form .wpcf7-list-item {
	margin: 0;
}
form .submit {
	margin-top: 8rem;
	text-align: center;
}
form .submit input {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
	width: 28rem;
	height: 6rem;
	color: var(--color-theme);
	border: 1px solid var(--color-theme);
	border-radius: 100px;
	text-decoration: none;
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
}
form .submit input:disabled {
	border-color: #ccc;
	color: #ccc;
}
@media (hover) {
	.init form .submit input {
		transition: color var(--transition), background var(--transition), border var(--transition), opacity var(--transition), text-decoration-color .2s ease-in-out;
	}
	form .submit input:not(:disabled):hover {
		background-color: var(--color-theme);
		color: #fff;
	}
}
@media screen and (max-width: 767px) {
	form .submit {
		margin-top: 5rem;
	}
	form .submit input {
		width: 100%;
	}
}


.contact_fin {
	padding-bottom: 18rem;
	background-color: var(--color-theme);
}
.contact_fin .page_title .title::after {
	border-color: #fff;
}
.contact_fin .page_title::before {
	filter: brightness(.5);
}
.contact_fin_contents {
	text-align: center;
	font-size: 2rem;
	line-height: 2;
	font-weight: 700;
}
.contact_fin_contents .en {
	margin-bottom: 3rem;
	color: #fff;
	font-size: 9rem;
	line-height: 1;
}
.contact_fin_contents .btn {
	margin-top: 7rem;
	font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
	.contact_fin {
		padding-bottom: 10rem;
	}
	.contact_fin_contents {
		margin-top: 4rem;
		font-size: 1.6rem;
	}
	.contact_fin_contents .en {
		font-size: 5rem;
	}
	.contact_fin_contents .btn {
		margin-top: 5rem;
	}
}



/* API
============================================================================================================ */
.api_contents {
	padding-bottom: 6rem;
}
.api_contents .lead {
	margin-bottom: 9rem;
	text-align: center;
	font-size: 2rem;
}
.api_contents .lead .l {
	margin-bottom: 1em;
	font-size: 3.6rem;
	line-height: calc(62 / 36);
	font-weight: 700;
}
.api_contents .data {
	border-bottom: 1px solid #e5e5e5;
	font-size: 2rem;
}
.api_contents .data h2 {
	padding: 2rem;
	background-color: #F2F2F2;
	text-align: center;
	font-weight: var(--font-weight);
	border-bottom: .2rem solid var(--color-theme);
}
.api_contents .data ul {
	display: flex;
	text-align: center;
	padding: 6rem 0;
}
.api_contents .data li {
	width: 25%;
}
@media screen and (min-width: 768px), print {
	.price_contents .plans {
		display: flex;
		justify-content: space-between;
	}
	.price_contents .plans section {
		width: calc(406 / 1272 * 100%);
	}
	.price_contents .plans section .summary {
		min-height: calc(28 / 16 * 3em);
	}
}
@media screen and (max-width: 767px) {
	.api_contents {
		padding-bottom: 5rem;
	}
	.api_contents .lead {
		margin-bottom: 6rem;
		font-size: 1.6rem;
	}
	.api_contents .lead .l {
		margin-bottom: 1em;
		font-size: 2.2rem;
	}
	.api_contents .data {
		font-size: 1.6rem;
	}
	.api_contents .data h2 {
		padding: 1.5rem;
	}
	.api_contents .data ul {
		flex-wrap: wrap;
		padding: 3rem 0;
		gap: 1rem 0;
	}
	.api_contents .data li {
		width: 50%;
	}
}
.api_image {
	padding-block: 9rem;
	background-image: url(../img/api/api_bg.png);
	background-repeat: no-repeat;
	background-position: 50%;
	text-align: center;
}
@media screen and (max-width: 767px) {
	.api_image {
		padding-block: 4rem;
		background-image: url(../img/api/api_bg_sp.png);
		background-size: cover;
	}
}


/* 料金
============================================================================================================ */
.price_contents .lead {
	margin-bottom: 9rem;
	text-align: center;
	font-size: 1.6rem;
}
.price_contents .lead .l {
	margin-bottom: 1em;
	font-size: 2rem;
	line-height: 2;
}
.price_contents .plans section {
	position: relative;
	padding: 4.5rem 4.5rem 4rem;
	border: 1px solid #e5e5e5;
	font-size: 1.6rem;
	line-height: calc(28 / 16);
}
.price_contents .plans section.osusume::before {
	content: "";
	position: absolute;
	top: -1px;
	right: -1px;
	left: -1px;
	bottom: -1px;
	border: 3px solid var(--color-theme);
	pointer-events: none;
}
.price_contents .plans section .badge {
	position: absolute;
	top: calc(-3.8rem / 2 - 1px);
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 15rem;
	height: 3.8rem;
	margin-inline: auto;
	background-color: #fff;
	border: 2px solid var(--color-theme);
	border-radius: 100px;
	font-size: 1.4rem;
	color: var(--color-theme);
	z-index: 3;
}
.price_contents .plans section header {
	margin-bottom: 2rem;
	text-align: center;
}
.price_contents .plans section header .ico {
	margin-bottom: 1.5rem;
}
.price_contents .plans section header .price {
	font-size: 2.2rem;
	font-weight: 700;
}
.price_contents .plans section header .price .num {
	margin-left: 0.1em;
	font-size: 3.7rem;
	font-weight: 700;
	line-height: 1;
	vertical-align: -.1em;
}
.price_contents .plans section ul {
	margin-top: 1.8em;
}
.price_contents .plans section li {
	position: relative;
	margin-top: 0.8em;
	padding-left: 2em;
	font-size: 1.5rem;
}
.price_contents .plans section li::before {
	content: "■";
	position: absolute;
	top: 0;
	left: 0;
	color: var(--color-theme);
}
@media screen and (min-width: 768px), print {
	.price_contents .plans {
		display: flex;
		justify-content: space-between;
	}
	.price_contents .plans section {
		width: calc(406 / 1272 * 100%);
	}
	.price_contents .plans section .summary {
		min-height: calc(28 / 16 * 3em);
	}
}
@media screen and (max-width: 767px) {
	.price_contents .lead {
		margin-bottom: 5rem;
		font-size: 1.4rem;
	}
	.price_contents .lead .l {
		font-size: 1.7rem;
		line-height: 2;
	}
	.price_contents .plans section {
		margin-top: 4rem;
		padding: 4rem 2.5rem 3rem;
		font-size: 1.4rem;
	}
	.price_contents .plans section ul {
		margin-top: 1.8em;
	}
	.price_contents .plans section li {
		margin-top: 0.5em;
		font-size: 1.3rem;
	}
}

.flow_contents {
	padding-top: 12rem;
	padding-bottom: 18rem;
	background-image: url(../img/price/flow_bg.png);
	background-repeat: no-repeat;
	background-position: 50%;
}
.flow_contents section {
	position: relative;
}
.flow_contents section .num {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	width: 40%;
	margin-inline: auto;
	background-color: #fff;
	font-size: 3.6rem;
	color: var(--color-theme);
	text-align: center;
	line-height: 1;
	z-index: 3;
}
.flow_contents section .num span {
	display: block;
	transform: translateY(-50%);
}
.flow_contents section h3 {
	margin-bottom: 1.5rem;
	font-size: 2rem;
	text-align: center;
}
.flow_contents section .content {
	overflow: hidden;
	position: relative;
	height: 100%;
	padding: 0.2rem;
	background-color: var(--color-theme);
	clip-path: polygon(0 0, calc(100% - 2rem) 0, 100% 2rem, 100% 100%, 2rem 100%, 0 calc(100% - 2rem));
	z-index: 2;
}
.flow_contents section .content > * {
	height: 100%;
	padding: 4rem 2rem 4rem;
	background-color: #fff;
	clip-path: polygon(0 0, calc(100% - 1.9rem) 0, 100% 1.9rem, 100% 100%, 1.9rem 100%, 0 calc(100% - 1.9rem));
}
@media screen and (min-width: 768px), print {
	.flow_contents .flow {
		display: flex;
		justify-content: space-between;
		margin-top: 7rem;
		font-size: 1.5rem;
	}
	.flow_contents .flow section {
		width: calc(292 / 1272 * 100%);
	}
}
@media screen and (max-width: 767px) {
	.flow_contents {
		padding-top: 6rem;
		padding-bottom: 8rem;
		background-image: url(../img/price/flow_bg_sp.png);
		background-size: cover;
	}
	.flow_contents .flow {
		margin-top: 2rem;
	}
	.flow_contents .flow section + section {
		margin-top: 4rem;
	}
	.flow_contents section h3 {
		font-size: 1.8rem;
	}
	.flow_contents section .content > * {
		padding: 3rem 2rem 3rem;
	}
}


/* プライバシーポリシー
============================================================================================================ */
@media screen and (max-width: 767px) {
	.privacy_contents {
		display: flex;
		flex-direction: column-reverse;
	}
	.privacy_contents .column_side {
		margin: 0 0 7rem;
	}
	.privacy_contents .column_side dt {
		display: none;
		margin-bottom: 1rem;
		font-size: 2rem;
	}
	.privacy_contents .column_side ul {
		display: flex;
		gap: 3rem;
	}
	.privacy_contents .column_side li {
		width: 100%;
	}
	.privacy_contents .column_side ul a {
		height: 3rem;
		font-size: 1.2rem;
	}
	.privacy_contents .column_side ul a.active::after {
		transform-origin: 50%;
		transform: rotate(135deg);
		margin-top: -.5rem;
	}
}

.privacy_contents {
	line-height: calc(32 / 14);
}
.privacy_contents h2 {
	margin-bottom: 4rem;
	font-size: 2.4rem;
	line-height: 1.5;
}
.privacy_contents h2 ~ h2 {
	margin-top: 8rem;
}
.privacy_contents .item_main {
	margin-bottom: 8rem;
}
.privacy_contents .item_box .item_list:not(:first-child) {
	margin-top: 8rem;
}
.privacy_contents .item_box .item_ttl,
.privacy_contents .sec_table .sec_tll {
	position: relative;
	margin-bottom: 3rem;
	padding-left: 2rem;
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.6;
}
.privacy_contents .item_box .item_ttl::before,
.privacy_contents .sec_table .sec_tll::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	border-left: 2px solid var(--color-theme);
}
.privacy_contents .item_box .item_txt + .item_txt {
	margin-top: 2em;
}
.privacy_contents .item_box a {
	color: var(--color-theme);
}

.privacy_contents .subitem_txt {
	display: flex;
	align-items: flex-start;
	gap: 0 0.4rem;
}
.privacy_contents .subitem_list > .subitem_box {
	margin-top: 0;
	padding-left: 1.6rem;
	margin-bottom: 1.5rem;
}
@media screen and (max-width: 767px) {
	.privacy_contents {
		line-height: 2;
	}
	.privacy_contents h2 {
		margin-bottom: 3rem;
		font-size: 2rem;
	}
	.privacy_contents .item_main {
		margin-bottom: 5rem;
	}
	.privacy_contents .item_box .item_list:not(:first-child) {
		margin-top: 5rem;
	}
	.privacy_contents .item_box .item_ttl,
	.privacy_contents .sec_table .sec_tll {
		margin-bottom: 2rem;
		font-size: 1.6rem;
	}
}

.privacy_contents .table_box {
	display: flex;
	border: 1px solid #ccc;
	border-bottom: none;
	background-color: #F2F2F2;
	line-height: 1.7;
}
.privacy_contents .table_box:last-of-type {
    border-bottom: 1px solid #ccc
}
.privacy_contents .table_contents,
.privacy_contents .table_ttl {
	padding: 1.4rem
}
@media screen and (max-width: 767px) {
	.privacy_contents .table_contents,
	.privacy_contents .table_ttl {
		padding: 1rem 0.5rem
	}
}

.privacy_contents .table_ttl {
	width: 20%;
	background-color: #F2F2F2
}

@media screen and (max-width: 767px) {
	.privacy_contents .table_ttl {
		width:25%
	}
}

.privacy_contents .table_contents {
	width: 80%;
	border-left: 1px solid #ccc;
	background-color: #fff
}

@media screen and (max-width: 767px) {
	.privacy_contents .table_contents {
		width:75%
	}
}

.privacy_contents .table_item {
	display: flex;
	align-items: flex-start;
	gap: 0 0.4rem
}
.privacy_contents .table_inner {
	display: flex
}

.privacy_contents .table_box a {
	color: var(--color-theme);
}

