:root {
	--scrollbar: 0rem;
	--c_white: #ffffff;
	--c_primary: #0069d3;
	--c_accent: #d52c53;
	--c_txt: #222222;
	--c_txt_pale: #808080;
	--bg_primary_pale: #e7f2fa;
	--bg_gray: #f4f4f4;
	--grad_primary_dark: #0051d3;
	--grad_primary_pale: #1cbed3;
	--f_notoSans: Noto Sans JP, sans-serif;
	--f_montserrat: Montserrat, sans-serif;
	--f_barlow: Barlow, sans-serif;
}

* {
	max-width: 100%;
	height: auto;
	font-family: var(--f_notoSans);
	line-height: 1.5;
	letter-spacing: 0;
	font-weight: 400;
	word-break: break-all;
	color: var(--c_txt);
	margin: 0;
	padding: 0;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
*::before, *::after {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	font-weight: inherit;
	color: inherit;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
* > a, * > span, * > label, * > mark, * > em, * > strong, * > var, * > sup {
	font-family: inherit;
	font-style: inherit;
	font-size: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	font-weight: inherit;
	text-align: inherit;
	color: inherit;
}
*:focus {
	outline: auto;
	outline-color: var(--c_txt);
}

html, body {
	min-width: calc(136.6rem - var(--scrollbar));
	scrollbar-gutter: stable;
}
@media only screen and (max-width: 768px) {
	html, body {
		min-width: auto;
	}
}

html {
	height: 100%;
	font-size: 62.5%;
}
@media only screen and (max-width: 374px) {
	html {
		font-size: 2.6vw;
	}
}

body {
	font-size: 1.6rem;
	position: relative;
}
@media only screen and (max-width: 768px) {
	body {
		font-size: 1.4rem;
	}
}

p {
	text-align: justify;
}

li {
	list-style-type: none;
}

img {
	width: auto;
	border: none;
	display: block;
}

a {
	text-decoration: none;
	display: block;
	outline: none;
}
.cfix:after {
	content: "";
	display: block;
	clear: both;
}

.hidden {
	overflow-y: hidden !important;
}

var {
	font-size: 1em;
}
var sup {
	font-size: .75em;
}

picture {
	display: block;
}

/* base style**************************************************************************************/
.section-ttl-wrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	position: relative;
	padding-bottom: 2rem;
}
@media only screen and (max-width: 768px) {
	.section-ttl-wrap {
		padding-bottom: 1rem;
	}
}
.section-ttl-wrap::before {
	content: "";
	width: 6rem;
	height: 0;
	border-bottom: .3rem solid var(--c_primary);
	position: absolute;
	top: 100%;
	left: 50%;
	translate: -50% 0;
}
.section-ttl-wrap .section-ttl {
	text-align: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: reverse;
	-ms-flex-flow: column-reverse;
	flex-flow: column-reverse;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
@media only screen and (max-width: 768px) {
	.section-ttl-wrap .section-ttl {
		gap: 1rem;
	}
}
.section-ttl-wrap .section-ttl span {
	letter-spacing: .05em;
}
.section-ttl-wrap .section-ttl span.en {
	font-family: var(--f_montserrat);
	font-weight: 500;
	font-optical-sizing: auto;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--c_primary);
}
@media only screen and (max-width: 768px) {
	.section-ttl-wrap .section-ttl span.en {
		font-size: 1.4rem;
	}
}
.section-ttl-wrap .section-ttl span.main {
	font-size: 3.6rem;
	font-weight: 700;
}
@media only screen and (max-width: 768px) {
	.section-ttl-wrap .section-ttl span.main {
		font-size: 2rem;
	}
}
.section-ttl-wrap.txt-c-white .section-ttl span {
	color: var(--c_white);
}
.section-ttl-wrap.txt-c-white::before {
	border-color: var(--c_white);
}

.btn-wrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: stretch;
	-ms-flex-align: stretch;
	align-items: stretch;
}

.btn {
	min-width: 34.4rem;
	font-size: 1.6rem;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
@media only screen and (max-width: 768px) {
	.btn {
		width: 100%;
		max-width: 34.4rem;
		min-width: auto;
	}
}
.btn.btn-arrow {
	font-weight: 700;
	border-radius: .5rem;
	padding: 1em 3rem;
	position: relative;
	overflow: hidden;
	-webkit-transition: all .3s;
	transition: all .3s;
}
.btn.btn-arrow span {
	position: relative;
	z-index: 1;
}
@media only screen and (min-width: 769px) {
	.btn.btn-arrow span {
		-webkit-transition: all .3s;
		transition: all .3s;
	}
}
.btn.btn-arrow span.icon-arrow {
	width: 1rem;
	height: 1rem;
	text-indent: 100%;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	overflow: hidden;
}
.btn.btn-arrow span.icon-arrow::before, .btn.btn-arrow span.icon-arrow::after {
	content: "";
	display: block;
	background: var(--c_white);
	border-radius: 100vw;
	position: absolute;
	top: 0;
	right: 0;
}
@media only screen and (min-width: 769px) {
	.btn.btn-arrow span.icon-arrow::before, .btn.btn-arrow span.icon-arrow::after {
		-webkit-transition: all .3s;
		transition: all .3s;
	}
}
.btn.btn-arrow span.icon-arrow::before {
	width: 100%;
	height: .2rem;
}
.btn.btn-arrow span.icon-arrow::after {
	width: .2rem;
	height: 100%;
}
.btn.btn-arrow span.icon-arrow.arrow-right {
	right: 2rem;
	rotate: 45deg;
}
.btn.btn-arrow span.icon-arrow.arrow-left {
	left: 2rem;
	rotate: -135deg;
}
.btn.btn-arrow.bg-primary {
	border: .1rem solid var(--c_primary);
}
@media only screen and (min-width: 769px) {
	.btn.btn-arrow.bg-primary.hov-action:hover, .btn.btn-arrow.bg-primary.hov-action:focus-within {
		background: var(--c_white);
		color: var(--c_primary);
	}
	.btn.btn-arrow.bg-primary.hov-action:hover span, .btn.btn-arrow.bg-primary.hov-action:focus-within span {
		color: var(--c_primary);
	}
	.btn.btn-arrow.bg-primary.hov-action:hover span.icon-arrow::before, .btn.btn-arrow.bg-primary.hov-action:hover span.icon-arrow::after, .btn.btn-arrow.bg-primary.hov-action:focus-within span.icon-arrow::before, .btn.btn-arrow.bg-primary.hov-action:focus-within span.icon-arrow::after {
		background: var(--c_primary);
	}
}

.btn-cta {
	font-size: 1.6rem;
	font-weight: 500;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 1.2rem;
	padding: 1.5em 1rem;
}
.btn-cta.icon::before {
	content: "";
	width: 2.2rem;
	height: 1.6rem;
	display: block;
}
.btn-cta.icon-download::before, .btn-cta.icon-contact::before {
	background: var(--c_white);
}
@media only screen and (min-width: 769px) {
	.btn-cta.icon-download::before, .btn-cta.icon-contact::before {
		-webkit-transition: all .3s;
		transition: all .3s;
	}
}
.btn-cta.icon-download::before {
	-webkit-mask: url(../img/icon_download_white.svg) no-repeat center/contain;
	mask: url(../img/icon_download_white.svg) no-repeat center/contain;
}
@media only screen and (min-width: 769px) {
	.btn-cta.icon-download.hov-action:hover::before {
		background: var(--c_accent);
	}
}
.btn-cta.icon-contact::before {
	-webkit-mask: url(../img/icon_contact_white.svg) no-repeat center/contain;
	mask: url(../img/icon_contact_white.svg) no-repeat center/contain;
}
@media only screen and (min-width: 769px) {
	.btn-cta.icon-contact.hov-action:hover::before {
		background: var(--c_primary);
	}
}

.img-blank-set:empty {
	height: 100%;
	position: relative;
}
.img-blank-set:empty::before {
	content: "";
	width: 100%;
	height: 100%;
	background: url(../img/header_logo@2x.png) no-repeat center/50%;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	scale: 1;
	opacity: .7;
	-webkit-transition: all .3s;
	transition: all .3s;
}

.hov-box {
	-webkit-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
	box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
	-webkit-transition: all .3s;
	transition: all .3s;
}
.hov-box .hov-scale {
	scale: 1;
	-webkit-transition: all .3s;
	transition: all .3s;
}
.hov-box .hov-hidden {
	overflow: hidden;
}
@media only screen and (min-width: 769px) {
	.hov-box:hover, .hov-box:focus-within {
		-webkit-box-shadow: 0 0 2rem 0 rgb(0, 0, 0);
		box-shadow: 0 0 2rem 0 rgb(0, 0, 0);
	}
	.hov-box:hover .hov-scale, .hov-box:focus-within .hov-scale {
		scale: 1.1;
	}
	.hov-box:hover .img-blank-set::before, .hov-box:focus-within .img-blank-set::before {
		scale: 1.1;
	}
	.hov-box:hover .btn.hov-parent.btn-arrow, .hov-box:focus-within .btn.hov-parent.btn-arrow {
		color: var(--c_white);
	}
	.hov-box:hover .btn.hov-parent.btn-arrow::before, .hov-box:focus-within .btn.hov-parent.btn-arrow::before {
		width: 100%;
	}
	.hov-box:hover .btn.hov-parent.btn-arrow.arrow-right .icon-arrow::before, .hov-box:focus-within .btn.hov-parent.btn-arrow.arrow-right .icon-arrow::before {
		left: 50%;
	}
	.hov-box:hover .btn.hov-parent.btn-arrow.arrow-right .icon-arrow::after, .hov-box:focus-within .btn.hov-parent.btn-arrow.arrow-right .icon-arrow::after {
		width: .75em;
		left: .5em;
	}
}

.bg-primary *, .bg-accent * {
	color: var(--c_white);
}

@media only screen and (min-width: 769px) {
	a.bg-primary, a.bg-accent {
		-webkit-transition: all .3s;
		transition: all .3s;
	}
}
@media only screen and (min-width: 769px) {
	a.bg-primary.hov-action:hover, a.bg-accent.hov-action:hover {
		background: var(--c_white);
	}
}
@media only screen and (min-width: 769px) {
	a.bg-primary *, a.bg-accent * {
		-webkit-transition: all .3s;
		transition: all .3s;
	}
}
a.bg-primary {
	border: .1rem solid var(--c_primary);
}
@media only screen and (min-width: 769px) {
	a.bg-primary.hov-action:hover * {
		color: var(--c_primary);
	}
}
a.bg-accent {
	border: .1rem solid var(--c_accent);
}
@media only screen and (min-width: 769px) {
	a.bg-accent.hov-action:hover * {
		color: var(--c_accent);
	}
}

/**/
aside.cta-wrap {
	padding: 10rem 1rem;
	position: relative;
}
aside.cta-wrap::before, aside.cta-wrap::after {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	display: block;
}
aside.cta-wrap::before {
	background: url(../img/cta_bg@2x.png) no-repeat center/cover;
	opacity: .5;
}
aside.cta-wrap::after {
	background: var(--c_txt);
	opacity: .85;
}
aside.cta-wrap > .wrapper {
	max-width: 112.8rem;
	margin: auto;
	position: relative;
	z-index: 1;
}
aside.cta-wrap > .wrapper .cta-flex-wrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-flow: wrap;
	flex-flow: wrap;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: stretch;
	-ms-flex-align: stretch;
	align-items: stretch;
	gap: 2.5rem;
	margin-top: 7rem;
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item {
	width: 100%;
	max-width: 55rem;
	border-radius: .5rem;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-flow: column;
	flex-flow: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 1.6rem;
	padding: 5rem 1rem;
}
@media only screen and (max-width: 768px) {
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item {
		padding: 2rem 1rem;
	}
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .cta-ttl-icon {
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: .1em;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-flow: column;
	flex-flow: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 1.6rem;
}
@media only screen and (max-width: 768px) {
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .cta-ttl-icon {
		font-size: 1.6rem;
	}
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .cta-ttl-icon::before {
	content: "";
	width: 4rem;
	height: 3.1rem;
	background: var(--c_white);
	display: block;
}
@media only screen and (min-width: 769px) {
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .cta-ttl-icon::before {
		-webkit-transition: all .3s;
		transition: all .3s;
	}
}
@media only screen and (max-width: 768px) {
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .cta-ttl-icon::before {
		width: 2.2rem;
		height: 1.6rem;
	}
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .cta-ttl-icon.icon-download::before {
	-webkit-mask: url(../img/icon_download_white.svg) no-repeat center/contain;
	mask: url(../img/icon_download_white.svg) no-repeat center/contain;
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .cta-ttl-icon.icon-contact::before {
	-webkit-mask: url(../img/icon_contact_white.svg) no-repeat center/contain;
	mask: url(../img/icon_contact_white.svg) no-repeat center/contain;
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .btn-wrap .btn {
	min-width: 23rem;
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.4;
	background: var(--c_white);
	border-radius: 100vw;
	padding: .578993em 3rem;
}
@media only screen and (max-width: 768px) {
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item .btn-wrap .btn {
		font-size: 1.4rem;
	}
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-primary {
	border: .1rem solid var(--c_primary);
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-primary .btn-wrap .btn span {
	color: var(--c_primary);
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-primary .btn-wrap .btn .icon-arrow::before, aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-primary .btn-wrap .btn .icon-arrow::after {
	background: var(--c_primary);
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-accent {
	border: .1rem solid var(--c_accent);
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-accent .btn-wrap .btn span {
	color: var(--c_accent);
}
aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-accent .btn-wrap .btn .icon-arrow::before, aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.bg-accent .btn-wrap .btn .icon-arrow::after {
	background: var(--c_accent);
}
@media only screen and (min-width: 769px) {
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action {
		-webkit-transition: all .3s;
		transition: all .3s;
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover {
		background: var(--c_white);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-primary .cta-ttl-icon::before {
		background: var(--c_primary);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-primary .btn-wrap .btn {
		background: var(--c_primary);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-primary .btn-wrap .btn span {
		color: var(--c_white);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-primary .btn-wrap .btn .icon-arrow::before, aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-primary .btn-wrap .btn .icon-arrow::after {
		background: var(--c_white);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-accent .cta-ttl-icon::before {
		background: var(--c_accent);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-accent .btn-wrap .btn {
		background: var(--c_accent);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-accent .btn-wrap .btn span {
		color: var(--c_white);
	}
	aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-accent .btn-wrap .btn .icon-arrow::before, aside.cta-wrap > .wrapper .cta-flex-wrap .cta-item.hov-action:hover.bg-accent .btn-wrap .btn .icon-arrow::after {
		background: var(--c_white);
	}
}

/**/
.bg-primary {
	background: var(--c_primary);
}
.bg-primary * {
	color: var(--c_white);
}

.bg-accent {
	background: var(--c_accent);
}

.bg-primary-pale {
	background: var(--bg_primary_pale);
}

.bg-base {
	background: var(--bg_base);
}

.bg-white {
	background: var(--c_white);
}

.txt-c-primary {
	color: var(--c_primary);
}

.txt-c-accent {
	color: var(--c_accent);
}

@media only screen and (min-width: 769px) {
	.pc-hide {
		display: none;
	}
}

@media only screen and (max-width: 768px) {
	.sp-hide {
		display: none;
	}
}

.word-break span {
	display: inline-block;
}

/* base style end */
.js-anime-parent .js-anime-obj {
	-webkit-transform-origin: 50% 100%;
	transform-origin: 50% 100%;
	translate: 0 2.5rem;
	opacity: 0;
	-webkit-transition: all 1s ease-out;
	transition: all 1s ease-out;
}
.js-anime-parent .js-anime-obj.action {
	translate: 0 0;
	opacity: 1;
}
