@charset "UTF-8";

/*
@media ( max-width: 767px ){
　スマホレイアウト、VW指定
}
@media ( min-width: 768px ){
　タブレット・PC（1140px）レイアウト
　min(1.5385vw, 20px)　⇒　min(タブレット、PC）
}
*/

/* =Reset
-------------------------------------------------------------- */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;word-wrap:break-word;overflow-wrap:break-word;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {display: block;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:normal;}
li{list-style:none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:inherit;}
q:before,q:after{content:'';}
abbr,acronym{border:0;font-variant:normal;}
sup{vertical-align:super;}
sub{vertical-align:text-bottom;}
input,textarea,select,button{font-family:inherit;font-size:inherit;font-weight:inherit;}
legend{color:#000;}
img {vertical-align:top;}
input[type="radio"],input[type="checkbox"] {vertical-align: -2px;}
label {cursor: pointer;}


/* =Common
-------------------------------------------------------------- */
body {
	text-align: center;
	line-height: 1;
	-webkit-text-size-adjust: 100%;
}
img {
	max-width: 100%;
	height: auto;
}
input[type="submit"], input[type="reset"] {
	appearance: none;
	cursor: pointer;
}
@font-face {
	font-family: 'Noto Sans JP';
	src: local(''), url('font/NotoSansJP.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

/* =Styles 
-------------------------------------------------------------- */
body {
	font-family: 'Noto Sans JP', "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "sans-serif";
	font-weight: 500;
	color: var(--black);
	background: #fff;
	position: relative;
}
a {
	text-decoration: none;
	color: var(--black);
}
.container {
}
.sup {
	font-size: 60%;
}
@media ( min-width: 1060px ){
	.sptab {
		display: none !important;
	}
}
@media ( min-width: 768px ){
	body {
		font-size: min(16px, calc(16 / var(--width) * 100vw));
	}
	.sp {
		display: none !important;
	}
	.inner {
		max-width: min(1100px, calc(1100 / var(--width) * 100vw));
		padding: 0 min(30px, calc(30 / var(--width) * 100vw));
		margin-inline: auto;
	}
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}
@media ( max-width: 1200px ){
	.pc {
		display: none !important;
	}
}
@media ( max-width: 767px ){
	body {
		font-size: 4.2667vw;
		letter-spacing: 0;
	}
	.pc,
	.pctab {
		display: none !important;
	}
	.inner {
		padding: 0 5.3333vw;
	}
}

:root {
	--width: 1440;
	--black: #022F5B;
	--orange: #F06B1E;
	--yellow: #FFDD34;
	--gray: #6F6F6F;
	
}

@media ( min-width: 768px ){
}
@media ( max-width: 767px ){
}


/* = index
-------------------------------------------------------------- */
/* header */
.header {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	box-sizing: border-box;
	z-index: 100;
	background: #fff;
	display: flex;
	align-items: center;
}
.header .menu ul {
	text-align: left;
	display: flex;
	align-items: center;
}
.header .menu ul li a {
	white-space: nowrap;
	transition-duration: .3s;
	font-weight: 700;
	letter-spacing: 0.06em;
}
.header .dl_btn {
	position: absolute;
}
.header .dl_btn a {
	display: block;
	border-radius: 50%;
	background: linear-gradient(90deg, #FAAC3F 28%, #FFDD34 100%);
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.6;
	position: relative;
	transition: box-shadow .4s;
}
.header .dl_btn a span {
	position: absolute;
	width: 100%;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
}
@media (hover: hover) {
	.header .menu ul li a:hover {
		color: #FAAC3F;
	}
	.header .dl_btn a:hover,
	.fv .cta_box li a:hover,
	.fixed_btns .cta_box li a:hover {
        box-shadow: none;
    }
}
/* fv */
.fv {
	position: relative;
    overflow: hidden;
	z-index: 1;
}
.fv .text_img {
	text-align: left;
	position: relative;
}
.fv .text_img img {
	width: 100%;
}
.fv .cta_box,
.fixed_btns .cta_box {
	position: relative;
    width: 100%;
    display: block;
}
.fv .cta_box ul li,
.fixed_btns .cta_box ul li {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.fv .cta_box ul li a,
.fixed_btns .cta_box ul li a {
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 700;
	letter-spacing: 0.06em;
	position: relative;
	transition: box-shadow .4s;
}
.fv .cta_box ul li.download a,
.fixed_btns .cta_box ul li.download a {
	background: linear-gradient(90deg, #FAAC3F 28%, #FFDD34 100%);
	color: #fff;
}
.fv .cta_box ul li.inquiry a,
.fixed_btns .cta_box ul li.inquiry a {
	background: linear-gradient(90deg, #DAF3FF 28%, #ffffff 100%);
}
.fv .cta_box ul li a::after,
.fixed_btns .cta_box ul li a::after {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
}
.fv .cta_box ul li.download a::before,
.fixed_btns .cta_box ul li.download a::before {
	content: "";
	position: absolute;
}
.fv .cta_box ul li span {
	display: inline-block;
	color: #fff;
	background: var(--black);
	font-weight: 700;
	letter-spacing: 0.06em;
	position: relative;
}
.fv .cta_box ul li span::after {
	content: "";
	background: var(--black);
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}
/* footer */
.footer {
	background: var(--black);
	color: #fff;
	font-weight: 700;
	position: relative;
}
.footer .pagetop {
	position: absolute;
}
@media ( min-width: 768px ){
	/*header*/
	#gnav.menu {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: static !important;
        width: auto !important;
        height: auto !important;
    }
    body.fixed {
        position: static !important;
        top: auto !important;
        width: auto !important;
    }	
	.menu-trigger {
		display: none;
	}
	.header {
		top: min(52px, calc(52 / var(--width) * 100vw));
		width: min(1100px, calc(1100 / var(--width) * 100vw));
		padding: min(10px, calc(10 / var(--width) * 100vw)) min(175px, calc(175 / var(--width) * 100vw)) min(10px, calc(10 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		margin: 0 0 min(50px, calc(50 / var(--width) * 100vw));
	}
	.header .menu {
		display: block !important;
		position: static;
		width: auto;
		height: auto;
		padding: 0;
		margin: 0 0 0 min(316px, calc(316 / var(--width) * 100vw));
	}	
	.header .menu ul {
		gap: 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.header .menu ul li a {
		font-size: min(14px, calc(14 / var(--width) * 100vw));
	}
	.header .dl_btn {
		right: min(15px, calc(15 / var(--width) * 100vw));
	}
	.header .dl_btn a {
		width: min(130px, calc(130 / var(--width) * 100vw));
		height: min(130px, calc(130 / var(--width) * 100vw));
		font-size: min(14px, calc(14 / var(--width) * 100vw));
		box-shadow: max(-10px, calc(-10 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) rgba(0, 0, 0, 0.12);
	}
	/* fv */
	.fv {
		padding: min(10px, calc(10 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) 0;
	}
	.fv::before {
		content: "";
		background: url("img/fv_bg2.png") no-repeat 0 0 / contain;
		width: min(1511px, calc(1511 / var(--width) * 100vw));
		height: min(1140px, calc(1140 / var(--width) * 100vw));
		position: absolute;
		top: max(-290px, calc(-290 / var(--width) * 100vw));
		left: 0;
	}
	@media ( max-width: 1600px ){
		.fv::before {
			left: max(-200px, calc(-200 / var(--width) * 100vw));
		}
	}
	.fv_in {
		display: flow-root;
		background: url("img/fv_bg.svg") no-repeat 100% 0 / cover;
		padding: min(170px, calc(170 / var(--width) * 100vw)) 0 0;
	}
	.fv .text_img {
		width: min(1137px, calc(1137 / var(--width) * 100vw));
		margin: 0 0 max(-80px, calc(-80 / var(--width) * 100vw));
	}
	.fv .cta_box {
		background: url("img/fv_cta_bg.svg") no-repeat center 0 / cover;
		padding: min(110px, calc(110 / var(--width) * 100vw)) 0 min(50px, calc(50 / var(--width) * 100vw));
		margin: 0 max(-20px, calc(-20 / var(--width) * 100vw));
	}
	.fv .cta_box ul,
	.fixed_btns .cta_box ul {
		display: flex;
		gap: 0 min(50px, calc(50 / var(--width) * 100vw));
	}
	.fv .cta_box ul li a,
	.fixed_btns .cta_box ul li a {
		width: min(525px, calc(525 / var(--width) * 100vw));
		height: min(70px, calc(70 / var(--width) * 100vw));
		font-size: min(24px, calc(24 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		box-shadow: max(-10px, calc(-10 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) rgba(0, 0, 0, 0.31);
	}
	.fv .cta_box ul li a::after,
	.fixed_btns .cta_box ul li a::after {
		right: min(27px, calc(27 / var(--width) * 100vw));
		width: min(10px, calc(10 / var(--width) * 100vw));
		height: min(10px, calc(10 / var(--width) * 100vw));
	}
	.fv .cta_box ul li.download a::after,
	.fixed_btns .cta_box ul li.download a::after {
		border-top: min(3px, calc(3 / var(--width) * 100vw)) solid #fff;
		border-right: min(3px, calc(3 / var(--width) * 100vw)) solid #fff;
	}
	.fv .cta_box ul li.inquiry a::after,
	.fixed_btns .cta_box ul li.inquiry a::after {
		border-top: min(3px, calc(3 / var(--width) * 100vw)) solid var(--black);
		border-right: min(3px, calc(3 / var(--width) * 100vw)) solid var(--black);
	}
	.fv .cta_box ul li.download a::before,
	.fixed_btns .cta_box ul li.download a::before {
		background: url("img/fv_btn_img.png") no-repeat 0 0 / contain;
		width: min(163px, calc(163 / var(--width) * 100vw));
		height: min(129px, calc(129 / var(--width) * 100vw));
		top: max(-25px, calc(-25 / var(--width) * 100vw));
		left: max(-35px, calc(-35 / var(--width) * 100vw));
	}
	.fv .cta_box ul li span {
		padding: min(9px, calc(9 / var(--width) * 100vw)) min(16px, calc(16 / var(--width) * 100vw)) min(10px, calc(10 / var(--width) * 100vw)); 
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		border-radius: min(20px, calc(20 / var(--width) * 100vw));
		margin: 0 0 min(14px, calc(14 / var(--width) * 100vw));
	}
	.fv .cta_box ul li span::after {
		width: min(9px, calc(9 / var(--width) * 100vw));
		height: min(9px, calc(9 / var(--width) * 100vw));
		bottom: max(-8px, calc(-8 / var(--width) * 100vw));
	}
	/* footer */
	.footer {
		padding: min(60px, calc(60 / var(--width) * 100vw)) 0 min(160px, calc(160 / var(--width) * 100vw));
		font-size: 12px;
	}
	.footer .pagetop {
		width: min(45px, calc(45 / var(--width) * 100vw));
		height: min(45px, calc(45 / var(--width) * 100vw));
		top: max(-22.5px, calc(-22.5 / var(--width) * 100vw));
		right: min(60px, calc(60 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	/* header */
	.menu-trigger,
	.menu-trigger span {
		display: inline-block;
		transition: all .3s;
		box-sizing: border-box;
	}
	.menu-trigger {
		position: absolute;
		width: 5.8667vw;
		height: 3.7333vw;
		background: none;
		border: none;
		appearance: none;
		cursor: pointer;
		z-index: 999;
	}
	.menu-trigger span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 0.5333vw;
		background-color: var(--black);
	}
	.menu-trigger span:nth-of-type(1) {
		top: 0;
	}
	.menu-trigger span:nth-of-type(2) {
		top: 1.6vw;
	}
	.menu-trigger span:nth-of-type(3) {
		bottom: 0;
	}
	.menu-trigger.active span:nth-of-type(1) {
		transform: translateY(1.6vw) rotate(-45deg);
	}
	.menu-trigger.active span:nth-of-type(2) {
		opacity: 0;
	}
	.menu-trigger.active span:nth-of-type(3) {
		transform: translateY(-1.6vw) rotate(45deg);
	}
	.header .menu{
        display: none;
        position: fixed;
        width: 112%;
        height: 112vh;
        background: #fff;
        top: -6vh;
        right: -6%;
        padding: 22vw 8vw;
        z-index: 998;
		box-sizing: border-box;
	}
	body.open .header .menu{
		display: block;
	}
	body.open{
		overflow: hidden;
	}	
	.header .menu ul {
		display: block;
		text-align: center;
	}
    .header .menu ul li a {
        display: block;
		background: linear-gradient(90deg, #1793CF 25%, #015BBE 100%);
		-webkit-background-clip:text;
		-webkit-text-fill-color: transparent;
        font-size: 5.3333vw;
        font-weight: 700;
        line-height: 3.0;
        letter-spacing: 0.05em;
    }
	.header {
		top: 5.3333vw;
		width: 89.3333vw;
		padding: 2.4vw;
		border-radius: 1.3333vw;
		margin: 0 0 7.2vw;
	}	
	.header .logo {
		width: 32vw;
		padding: 0 0 0 22.9333vw;
	}
	.header .dl_btn {
		right: 1.6vw;
	}
	.header .dl_btn a {
		width: 21.3333vw;
		height: 21.3333vw;
		font-size: 3.2vw;
		box-shadow: -2.6667vw 2.1333vw 5.3333vw rgba(0, 0, 0, 0.12);
		letter-spacing: 0;
	}
	/* fv */
	.fv {
		background: url("img/fv_bg_sp.png") no-repeat 0 0 / 100% auto;
		padding: 5.3333vw 0 0;
	}
	.fv .text_img {
		padding: 23.2vw 0 0;
		margin: 0 0 4vw;
	}
	.fv .cta_box {
		background: url("img/fv_cta_bg_sp.svg") no-repeat 0 0 / 100% auto;
		padding: 10.6667vw 0 4.8vw;
		margin: 0 0 8vw;
	}
	.fv .cta_box ul li {
		margin: 0 0 5.3333vw;
	}
	.fv .cta_box ul li a,
	.fixed_btns .cta_box ul li a {
		width: 84vw;
		height: 13.3333vw;
		font-size: 6.4vw;
		border-radius: 1.3333vw;
		box-shadow: -2.6667vw 2.1333vw 5.3333vw rgba(0, 0, 0, 0.31);
	}
	.fv .cta_box ul li a::after,
	.fixed_btns .cta_box ul li a::after {
		right: 5.0667vw;
		width: 1.6vw;
		height: 1.6vw;
	}
	.fv .cta_box ul li.download a::after,
	.fixed_btns .cta_box ul li.download a::after {
		border-top: 0.5333vw solid #fff;
		border-right: 0.5333vw solid #fff;
	}
	.fv .cta_box ul li.inquiry a::after,
	.fixed_btns .cta_box ul li.inquiry a::after {
		border-top: 0.5333vw solid var(--black);
		border-right: 0.5333vw solid var(--black);
	}
	.fv .cta_box ul li.download a::before,
	.fixed_btns .cta_box ul li.download a::before {
		background: url("img/fv_btn_img_sp.png") no-repeat 0 0 / contain;
		width: 22vw;
		height: 17.4667vw;
		top: -1.6667vw;
		left: -8.3333vw;
	}
	.fv .cta_box ul li span {
		padding: 2.4vw 4.2667vw 2.6667vw;
		font-size: 3.7333vw;
		border-radius: 5.3333vw;
		margin: 0 0 3.7333vw;
	}
	.fv .cta_box ul li span::after {
		width: 2.4vw;
		height: 2.4vw;
		bottom: -2.1333vw;
	}
	/* footer */
	.footer {
		padding: 8vw 0 18vw;
		font-size: 3.2vw;
	}
	.footer .pagetop {
		width: 10vw;
		height: 10vw;
		top: -5vw;
		right: 5vw;
	}
}

/* .service */
.introduction {
	position: relative;
}
.introduction::before {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}
.introduction .inner {
	position: relative;
	z-index: 2;
}
.sec_title {
	font-weight: 700;
	line-height: 1.5;
}
.sec_title.title {
	line-height: 1.3;
}
.sec_title p span {
	color: var(--orange);
}
.problem .problem_list {
	display: flex;
}
h3.title {
	font-weight: 700;
	line-height: 1.3;
}
h3.title p span {
	color: var(--orange);
}
.title .slash {
	display: inline-block;
	position: relative;
}
.title .slash::before,
.title .slash::after {
	content: '';
	position: absolute;
	width: 1px;
	background: var(--black);
}
.title .slash::before {
	left: 0;
	transform: rotate(-30deg);
}
.title .slash::after {
	right: 0;
	transform: rotate(30deg);
}
.descript h3.title {
	color: #fff;
}
.descript h3.title .slash::before,
.descript h3.title .slash::after {
	background: #fff;
}
.grad_text2 {
	background: linear-gradient(90deg, #FAAC3F 15%, #FFDD34 100%);
	-webkit-background-clip:text;
	-webkit-text-fill-color: transparent;
}
.descript .text_box {
	color: #fff;
	line-height: 1.6;
}
.feature {
	background: #f5f2f2;
	position: relative;
}
.feature::before {
	content: "";
	width: 100%;
	position: absolute;
	left: 0;
}
.feature_box {
    background: linear-gradient(90deg, #1793CF 28%, #015BBE 100%);
}
.feature_box dl {
    background: #fff;
}
.feature_box dl dt {
    background: linear-gradient(90deg, #1793CF 28%, #015BBE 100%);
	color: #fff;
	font-weight: 700;
	position: relative;
}
.feature_box dl dt::before {
	content: "";
	position: absolute;
}
.feature_box dl dd .text {
	line-height: 1.6;
}
.feature_box dl dd .text .line {
	background: linear-gradient(transparent 60%, #fff599 60%);
}
.feature_box dl dd .img_box img {
	width: 100%;
}
.feature_box dl dd .note {
	color: var(--gray);
	font-size: 10px;
	margin: 1em 0 0;
}
.feature_box dl dd .text_box {
	display: flex;
}
.feature_box dl dd .text_box .text {
	text-align: left;
}
.feature_box dl dd .text_box .text span {
	text-align: left;
	color: var(--orange);
}
.feature_box dl dd .future .lead {
	display: inline-block;
	font-weight: 700;
	position: relative;
}
.feature_box dl dd .future .lead::after {
	content: "";
	background: linear-gradient(90deg, #1793CF 25%, #015BBE 100%);
	width: 100%;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
}
.feature_box dl dd .future .lead span {
	background: var(--orange);
	-webkit-background-clip:text;
	-webkit-text-fill-color: transparent;
}
.feature_box dl dd .future .img_box_wrap {
	background: #fff;
	box-sizing: border-box;
	position: relative;
}
.feature_box dl dd .future .img_box_wrap::after {
	content: "";
	position: absolute;
}
.solution {
	position: relative;
	background: #fff;
}
.solution::before {
	content: "";
	width: 100%;
	position: absolute;
	left: 0;
}
.solution .img_box:last-of-type {
	margin: 0 auto;
}
.solution .img_box img {
	width: 100%;
}
@media ( min-width: 768px ){
	/* .service */
	.introduction {
		padding: min(70px, calc(70 / var(--width) * 100vw)) 0 0;
	}
	.introduction::before {
		background: url("img/problem_bg.png") no-repeat 0 0 / contain;
		width: min(1402px, calc(1402 / var(--width) * 100vw));
		height: min(1384px, calc(1384 / var(--width) * 100vw));
		top: min(280px, calc(280 / var(--width) * 100vw));
	}
	.sec_title {
		font-size: min(40px, calc(40 / var(--width) * 100vw));
		margin: 0 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.problem .problem_list {
		gap: 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.problem .problem_list li {
		width: min(346px, calc(346 / var(--width) * 100vw));
	}
	h3.title {
		font-size: min(40px, calc(40 / var(--width) * 100vw));
		margin: 0 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.title .slash {
		font-size: min(24px, calc(24 / var(--width) * 100vw));
		margin: 0 0 min(20px, calc(20 / var(--width) * 100vw));
		padding: 0 min(10px, calc(10 / var(--width) * 100vw));
	}
	.title .slash::before,
	.title .slash::after {
		top: min(4px, calc(4 / var(--width) * 100vw));
		height: min(28px, calc(28 / var(--width) * 100vw));
	}
	.descript {
		padding: 0 0 min(150px, calc(150 / var(--width) * 100vw));
	}
	.descript .img_box {
		width: min(840px, calc(840 / var(--width) * 100vw));
		margin: 0 auto min(35px, calc(35 / var(--width) * 100vw));
	}
	.descript .text_box {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
	}
	.feature {
		padding: 0 0 min(50px, calc(50 / var(--width) * 100vw));
	}
	.feature::before {
		background: url("img/feature_bg_top.png") no-repeat center 0 / 100% auto;
		height: min(4444px, calc(4444 / var(--width) * 100vw));
		top: max(-80px, calc(-80 / var(--width) * 100vw));
	}
	.feature_box {
		padding: min(3px, calc(3 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		margin: 0 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.feature_box dl {
		border-radius: min(3px, calc(3 / var(--width) * 100vw));
		padding: min(17px, calc(17 / var(--width) * 100vw)) min(17px, calc(17 / var(--width) * 100vw)) min(50px, calc(50 / var(--width) * 100vw));
	}
	.feature_box:nth-child(2) dl {
		padding: min(17px, calc(17 / var(--width) * 100vw)) min(17px, calc(17 / var(--width) * 100vw)) 0;
	}
	.feature_box:nth-child(3) dl {
		padding: min(17px, calc(17 / var(--width) * 100vw)) min(17px, calc(17 / var(--width) * 100vw)) min(10px, calc(10 / var(--width) * 100vw));
	}
	.feature_box dl dt {
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		font-size: min(32px, calc(32 / var(--width) * 100vw));
		padding: min(22px, calc(22 / var(--width) * 100vw)) 0;
		margin: 0 0 min(45px, calc(45 / var(--width) * 100vw));
	}
	.feature_box dl dt::before {
		width: min(105px, calc(105 / var(--width) * 100vw));
		height: min(92px, calc(92 / var(--width) * 100vw));
		top: max(-8px, calc(-8 / var(--width) * 100vw));
		left: min(10px, calc(10 / var(--width) * 100vw));
	}
	.feature_box:nth-child(1) dl dt::before {
		background: url("img/num1.png") no-repeat 0 0 / contain;
	}
	.feature_box:nth-child(2) dl dt::before {
		background: url("img/num2.png") no-repeat 0 0 / contain;
	}
	.feature_box:nth-child(3) dl dt::before {
		background: url("img/num3.png") no-repeat 0 0 / contain;
	}
	.feature_box dl dd {
		padding: 0 min(43px, calc(43 / var(--width) * 100vw));
	}
	.feature_box dl dd .text {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
	}
	.feature_box:nth-child(1) dl dd .img_box {
		margin: min(36px, calc(36 / var(--width) * 100vw)) auto 0;
	}
	.feature_box dl dd .note {
		font-size: min(10px, calc(10 / var(--width) * 100vw));
	}
	.feature_box dl dd .text_box {
		flex-direction: row-reverse;
		justify-content: space-between;
	}
	.feature_box:nth-child(3) dl dd .text_box {
		gap: 0 min(55px, calc(55 / var(--width) * 100vw));
	}
	.feature_box:nth-child(2) dl dd .text_box .img_box {
		flex: 0 0 min(394px, calc(394 / var(--width) * 100vw));
		margin: 0 max(-40px, calc(-40 / var(--width) * 100vw)) 0 0;
	}
	.feature_box:nth-child(3) dl dd .text_box .img_box {
		flex: 0 0 min(456px, calc(456 / var(--width) * 100vw));
		margin: max(-40px, calc(-40 / var(--width) * 100vw)) max(-40px, calc(-40 / var(--width) * 100vw)) 0 0;
	}
	.feature_box dl dd .future {
		padding: min(145px, calc(145 / var(--width) * 100vw)) 0 min(50px, calc(50 / var(--width) * 100vw));
		background: url("img/fearure2_bg.png") no-repeat center min(45px, calc(45 / var(--width) * 100vw)) / cover;
		margin: 0 max(-60px, calc(-60 / var(--width) * 100vw));
	}
	.feature_box dl dd .future .lead {
		font-size: min(28px, calc(28 / var(--width) * 100vw));
		padding: 0 0 min(12px, calc(12 / var(--width) * 100vw));
		margin: 0 0 min(25px, calc(25 / var(--width) * 100vw));
	}
	.feature_box dl dd .future .img_box_wrap {
		width: min(996px, calc(996 / var(--width) * 100vw));
		margin: min(38px, calc(38 / var(--width) * 100vw)) auto 0;
		padding: min(46px, calc(46 / var(--width) * 100vw)) min(50px, calc(50 / var(--width) * 100vw)) min(43px, calc(43 / var(--width) * 100vw));
		box-shadow: inset 1px 1px min(20px, calc(20 / var(--width) * 100vw)) rgba(90,92,117,0.25);
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
	}
	.feature_box dl dd .future .img_box_wrap::after {
		background: url("img/fearure2_img04a.png") no-repeat 0 0 / contain;
		width: min(151px, calc(151 / var(--width) * 100vw));
		height: min(124px, calc(124 / var(--width) * 100vw));
		top: min(-25px, calc(-25 / var(--width) * 100vw));
		left: min(-5px, calc(-5 / var(--width) * 100vw));
	}
	.solution {
		padding: 0 0 min(50px, calc(50 / var(--width) * 100vw));
	}
	.solution::before {
		background: url("img/solution_bg.png") no-repeat center 0 / 100% auto;
		height: min(831px, calc(831 / var(--width) * 100vw));
		top: max(-600px, calc(-600 / var(--width) * 100vw));
	}
	.solution .img_box:last-of-type {
		width: min(999px, calc(999 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	/* .service */
	.introduction {
		padding: 8vw 0 0;
	}
	.introduction::before {
		background: url("img/problem_bg_sp.png") no-repeat center 0 / 100% auto;
		width: 100%;
		height: 654.9333vw;
		top: 118vw;
	}
	.sec_title {
		font-size: 8.6667vw;
		margin: 0 0 8vw;
		font-feature-settings: "palt";
	}
	.problem .problem_list {
		flex-direction: column;
	}
	.problem .problem_list li {
		width: 100%;
	}
	.problem .problem_list li:nth-child(1) {
		margin: 0 0 -9vw;
	}
	.problem .problem_list li:nth-child(2) {
		margin: 0 0 -4vw;
	}
	h3.title {
		font-size: 8.6667vw;
		margin: 0 0 8vw;
		font-feature-settings: "palt";
	}
	.title .slash {
		font-size: 6.4vw;
		margin: 0 0 2.6667vw;
		padding: 0 2.6667vw;
	}
	.title .slash::before,
	.title .slash::after {
		bottom: 0;
		height: 7.4667vw;
	}
	.descript {
		padding: 0 0 15vw;
	}
	.descript h3.title {
		font-size: 8vw;
		margin: 0 -5.3333vw;
	}
	.descript .img_box {
		width: 100%;
		margin: 0 0 5.3333vw;
	}
	.descript .text_box {
		font-size: 4.2667vw;
		text-align: left;
	}
	.feature {
		padding: 0 0 min(50px, calc(50 / var(--width) * 100vw));
	}
	.feature::before {
		background: url("img/feature_bg_top_sp.png") no-repeat center 0 / 100% auto;
		width: 100%;
		height: 220.5333vw;
		top: -8.6667vw;
	}
	.feature_box {
		padding: 0.8vw;
		border-radius: 4.8vw;
		margin: 0 0 13.3333vw;
	}
	.feature_box dl {
		border-radius: 3.4667vw;
		padding: 1.3333vw;
	}
	.feature_box dl dt {
		border-radius: 2.6667vw;
		font-size: 5.3333vw;
		line-height: 1.5;
		padding: 6.3333vw 0 3.3333vw;
		margin: 0 0 5.3333vw;
	}
	.feature_box dl dt::before {
		width: 18.1333vw;
		height: 15.7333vw;
		top: -35%;
		left: 50%;
		transform: translateX(-50%);
	}
	.feature_box:nth-child(1) dl dt::before {
		background: url("img/num1_sp.png") no-repeat 0 0 / contain;
	}
	.feature_box:nth-child(2) dl dt::before {
		background: url("img/num2_sp.png") no-repeat 0 0 / contain;
	}
	.feature_box:nth-child(3) dl dt::before {
		background: url("img/num3_sp.png") no-repeat 0 0 / contain;
	}
	.feature_box dl dd {
		padding: 0 4vw 5.3333vw;
	}
	.feature_box:nth-child(2) dl dd {
		padding: 0 4vw;
	}
	.feature_box dl dd .text {
		text-align: left;
		font-size: 4.2667vw;
		line-height: 1.6;
		font-feature-settings: "palt";
	}
	.feature_box:nth-child(1) dl dd .img_box {
		margin: 5.3333vw 0 7.4667vw;
	}
	.feature_box:nth-child(2) dl dd .img_box.ib1 {
		margin: -4vw 0;
	}
	.feature_box:nth-child(2) dl dd .img_box.ib2 {
		margin: 5.3333vw 0;
	}
	.feature_box:nth-child(2) dl dd .img_box.ib3 {
		margin: 5.3333vw -5.3333vw 0;
	}
	.feature_box dl dd .note {
		font-size: 2.6667vw;
		line-height: 1.6;
		text-align: left;
		text-indent: -1.75em;
		padding-left: 1.75em;
	}
	.feature_box dl dd .text_box {
		flex-direction: column;
	}	
	.feature_box:nth-child(3) dl dd .text_box .img_box {
		margin: 0 0 -4vw;
	}
	.feature_box dl dd .future {
		padding: 17.3333vw 0 5.3333vw;
		background: url("img/fearure2_bg_sp.png") no-repeat center 8vw / cover;
		margin: 0 -5.3333vw -1.3333vw;
		border-radius: 0 0 4vw 4vw;
	}
	.feature_box dl dd .future .lead {
		font-size: 6.4vw;
		line-height: 1.6;
		padding: 0 0 4vw;
		margin: 0 0 6.6667vw;
	}
	.feature_box dl dd .text.ta_c {
		text-align: center;
	}
	.feature_box dl dd .future .img_box_wrap {
		width: 79.4667vw;
		margin: 8vw auto 0;
		padding: 5.3333vw;
		box-shadow: inset 1px 1px min(20px, calc(20 / var(--width) * 100vw)) rgba(90,92,117,0.25);
		border-radius: 1.3333vw;
	}
	.feature_box dl dd .future .img_box_wrap .img_box {
		width: 82.9333vw;
		margin: -6.6667vw 0 -4vw -11.6667vw;
	}
	.solution {
		padding: 0 0 8vw;
	}
	.solution::before {
		background: url("img/solution_bg_sp.png") no-repeat center bottom / 100% auto;
		height: 133.3333vw;
		top: -133vw;
	}
	.solution .img_box:last-of-type {
		margin: 5.3333vw 0 0;
	}	
}

/* .cta_area */
.cta_area {
	overflow: hidden;
}
.cta_area .inner {
	position: relative;
}
.cta_area .inner::before {
	content: "";
	position: absolute;
}
.cta_area .inner::after {
	content: "";
	position: absolute;
}
.cta_area dl dt {
	display: inline-block;
	background: var(--black);
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.05em;
}
.cta_area dl dt span {
	color: var(--yellow);
}
.cta_area dl dd p {
	display: inline-block;
	color: #fff;
	text-align: left;
	line-height: 1.6;
}
.cta_area  a.download {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
    letter-spacing: 0.06em;
    position: relative;
    transition: box-shadow .4s;
    background: linear-gradient(90deg, #FAAC3F 28%, #FFDD34 100%);
    color: #fff;
	margin: 0 auto;
}
.cta_area  a.download::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
@media (hover: hover) {
    .cta_area  a.download:hover {
        box-shadow: none;
    }
}
@media ( min-width: 768px ){
	.cta_area {
		background: url("img/cta_bg.png") no-repeat center 0 / cover;
		padding: min(145px, calc(145 / var(--width) * 100vw)) 0 min(128px, calc(128 / var(--width) * 100vw));
	}
	.cta_area .inner::before {
		background: url("img/cta_bg_a.png") no-repeat 0 0 / contain;
		width: min(407px, calc(407 / var(--width) * 100vw));
		height: min(295px, calc(295 / var(--width) * 100vw));
		top: min(28px, calc(28 / var(--width) * 100vw));
		left: max(-120px, calc(-120 / var(--width) * 100vw));
	}
	.cta_area .inner::after {
		background: url("img/cta_bg_b.png") no-repeat 0 0 / contain;
		width: min(284px, calc(284 / var(--width) * 100vw));
		height: min(211px, calc(211 / var(--width) * 100vw));
		bottom: max(-150px, calc(-150 / var(--width) * 100vw));
		right: max(-140px, calc(-140 / var(--width) * 100vw));
	}
	.cta_area dl {
		padding: 0 0 0 min(150px, calc(150 / var(--width) * 100vw));
	}
	.cta_area dl dt {
		font-size: min(40px, calc(40 / var(--width) * 100vw));
		padding: min(8px, calc(8 / var(--width) * 100vw)) min(13px, calc(13 / var(--width) * 100vw)) min(12px, calc(12 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		margin: 0 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.cta_area dl dd p {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		padding: 0 0 min(48px, calc(48 / var(--width) * 100vw)) min(120px, calc(120 / var(--width) * 100vw));
	}
	.cta_area  a.download {
		width: min(525px, calc(525 / var(--width) * 100vw));
		height: min(70px, calc(70 / var(--width) * 100vw));
		font-size: min(24px, calc(24 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		box-shadow: max(-10px, calc(-10 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) rgba(0, 0, 0, 0.31);
		background: linear-gradient(90deg, #FAAC3F 28%, #FFDD34 100%);
	}
	.cta_area  a.download::after {
		width: min(10px, calc(10 / var(--width) * 100vw));
		height: min(10px, calc(10 / var(--width) * 100vw));
		border-top: min(3px, calc(3 / var(--width) * 100vw)) solid #fff;
		border-right: min(3px, calc(3 / var(--width) * 100vw)) solid #fff;
		right: min(27px, calc(27 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	.cta_area {
		background: url("img/cta_bg_sp.svg") no-repeat center 0 / cover;
		padding: 13.3333vw 0;
	}
	.cta_area dl dt {
		font-size: 7.3333vw;
		line-height: 1.2;
		padding: 2.6667vw 4vw;
		font-feature-settings: "palt";
		border-radius: 1.3333vw;
	}
	.cta_area dl dd .img_box {
		width: 92.5333vw;
		margin: -9.0667vw 0 0;
	}
	.cta_area dl dd p {
		font-size: 4.2667vw;
		margin: 0 0 5.3333vw;
	}
	.cta_area  a.download {
		width: 84vw;
		height: 13.3333vw;
		font-size: 5.3333vw;
		border-radius: 1.3333vw;
		box-shadow: -2.6667vw 2.1333vw 5.3333vw rgba(0, 0, 0, 0.31);
	}
	.cta_area  a.download::after {
        width: 1.6vw;
        height: 1.6vw;
		border-top: 0.5333vw solid #fff;
		border-right: 0.5333vw solid #fff;
        right: 5.0667vw;
	}
}

/* .feature_list */
.feature_list .list_box {
	background: linear-gradient(90deg, #1793CF 25%, #015BBE 100%);
	display: flex;
	flex-wrap: wrap;
}
.feature_list .list_box li {
	background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
	font-weight: 700;
}
.feature_list .list_box li .sub {
	display: inline-block;
	vertical-align: text-bottom;
}
.feature_list .notes {
	text-align: left;
	color: var(--gray);
	line-height: 1.6;
}
.feature_list .notes li + li {
	margin: 0.5em 0 0;
}
/* .trust */
.trust {
	position: relative;
	overflow: hidden;
}
.trust .inner {
	position: relative;
	z-index: 2;
}
.trust::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}
.trust .sec_title {
	display: inline-block;
	position: relative;
}
.trust .sec_title::after {
	content: "";
	position: absolute;
}
.trust .text_box p {
	line-height: 1.6;
	letter-spacing: 0.05em;
}
.trust .text_box p + p {
	margin: 1.5em 0 0;
}
/* .use_case */
.use_case_list li {
	background: linear-gradient(90deg, #1793CF 25%, #015BBE 100%);
	box-sizing: border-box;
}
.use_case_list li dl {
	background: #fff;
}
.use_case_list li dl dt {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-weight: 700;
	line-height: 1.4;
	position: relative;
}
.use_case_list li dl dt::after {
	content: "";
	background: #fff;
	width: 100%;
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	position: absolute;
	left: 0;
}
.use_case_list li dl dd {
	background: linear-gradient(90deg, #1793CF 25%, #015BBE 100%);
}
.use_case_list li dl dd .text1 {
	background: #B1F5FF;
	font-weight: 700;
}
.use_case_list li dl dd .text2 {
	color: #fff;
	font-weight: 700;
	line-height: 1.4;
}
.use_case_list li dl dd .text2 span {
	font-feature-settings: "palt";
}
.use_case_list li dl dd .img_box img {
	width: auto;
}
@media ( min-width: 768px ){
	/* .feature_list */
	.feature_list {
		padding: min(100px, calc(100 / var(--width) * 100vw)) 0 min(80px, calc(80 / var(--width) * 100vw));
	}
	.feature_list .list_box {
		padding: min(20px, calc(20 / var(--width) * 100vw));
		gap: min(7px, calc(7 / var(--width) * 100vw));
		margin: 0 0 min(20px, calc(20 / var(--width) * 100vw));
	}
	.feature_list .list_box li {
		width: min(259px, calc(259 / var(--width) * 100vw));
		height: min(46px, calc(46 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
	}
	.feature_list .list_box li .sub {
		font-size: min(10px, calc(10 / var(--width) * 100vw));
		padding: 0 0 0 min(3px, calc(3 / var(--width) * 100vw));
	}
	.feature_list .notes {
		font-size: 10px;
	}
	/* .trust */
	.trust {
		padding: min(180px, calc(180 / var(--width) * 100vw)) 0 min(300px, calc(300 / var(--width) * 100vw));
	}
	.trust::before {
		background: url("img/trust_bg.png") no-repeat 0 0 / contain;
		width: min(1621px, calc(1621 / var(--width) * 100vw));
		height: min(917px, calc(917 / var(--width) * 100vw));
	}
	.trust .sec_title::after {
		background: url("img/trust_img.png") no-repeat 0 0 / contain;
		width: min(134px, calc(134 / var(--width) * 100vw));
		height: min(153px, calc(153 / var(--width) * 100vw));
		top: max(-70px, calc(-70 / var(--width) * 100vw));
		right: max(-175px, calc(-175 / var(--width) * 100vw));
	}
	.trust .text_box p {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
	}
	/* .use_case */
	.use_case {
		padding: 0 0 min(100px, calc(100 / var(--width) * 100vw));
	}
	.use_case_list {
		display: flex;
		justify-content: space-between;
	}
	.use_case_list li {
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		padding: min(3px, calc(3 / var(--width) * 100vw));
		width: min(346px, calc(346 / var(--width) * 100vw));
	}
	.use_case_list li dl {
		border-radius: min(3px, calc(3 / var(--width) * 100vw));
	}
	.use_case_list li dl dt {
		height: min(82px, calc(82 / var(--width) * 100vw));
	}
	.use_case_list li dl dt::after {
		height: min(24px, calc(24 / var(--width) * 100vw));
		bottom: max(-23.5px, calc(-23.5 / var(--width) * 100vw));
	}
	.use_case_list li dl dd {
		padding: min(45px, calc(45 / var(--width) * 100vw)) min(13px, calc(13 / var(--width) * 100vw)) min(10px, calc(10 / var(--width) * 100vw));
	}
	.use_case_list li dl dd .text1 {
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		padding: min(10px, calc(10 / var(--width) * 100vw)) 0 min(11px, calc(11 / var(--width) * 100vw));
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		margin: 0 0 min(15px, calc(15 / var(--width) * 100vw));
	}
	.use_case_list li dl dd .text2 {
		font-size: min(20px, calc(20 / var(--width) * 100vw));
		margin: 0 0 min(20px, calc(20 / var(--width) * 100vw));
	}
	.use_case_list li dl dd .img_box img {
		height: min(233px, calc(233 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	/* .feature_list */
	.feature_list {
		padding: 12vw 0 0;
	}
	.feature_list .list_box {
		padding: 1.8667vw;
		gap: 1.3333vw;
		margin: 0 0 2.6667vw;
		border-radius: 1.3333vw;
	}
	.feature_list .list_box li {
		width: 27.4667vw;
		height: 17.0667vw;
		border-radius: 1.3333vw;
		line-height: 1.5;
	}
	.feature_list .list_box li .sub {
		font-size: 2.6667vw;
		padding: 0 0 0 0.8vw;
	}
	.feature_list .notes {
		font-size: 2.6667vw;
	}
	.feature_list .notes li {
		text-indent: -1.75em;
		padding-left: 1.75em;
	}
	/* .trust */
	.trust {
		padding: 29.3333vw 0 ;
	}
	.trust::before {
		background: url("img/trust_bg_sp.png") no-repeat 0 -2vw / 100% auto;
		width: 100%;
		height: 411.4667vw;
	}
	.trust .sec_title {
		font-size: 8vw;
		line-height: 1.4;
		margin: 0 0 6vw;
	}
	.trust .sec_title::after {
		background: url("img/trust_img_sp.png") no-repeat 0 0 / contain;
		width: 24vw;
		height: 29.7333vw;
		top: -18vw;
		right: -9.3333vw;
	}
	.trust .text_box p {
		font-size: 4vw;
		text-align: left;
		font-feature-settings: "palt";
	}
	.trust .text_box p + p {
		margin: 0.75em 0 0;
	}	
	/* .use_case */
	.use_case {
		padding: 0 0 min(100px, calc(100 / var(--width) * 100vw));
	}
	.use_case_list {
	}
	.use_case_list li {
		border-radius: 1.3333vw;
		padding: 0.8vw;
		margin: 0 0 2.6667vw;
	}
	.use_case_list li dl {
		border-radius: 0.8vw;
	}
	.use_case_list li dl dt {
		height: 21.3333vw;
	}
	.use_case_list li dl dt::after {
		height: 6.9333vw;
		bottom: -6.85vw;;
	}
	.use_case_list li dl dd {
		padding: 12vw 2.1333vw 2.6667vw;
	}
	.use_case_list li dl dd .text1 {
		border-radius: 1.3333vw;
		padding: 2.6667vw 0;
		font-size: 4.8vw;
		margin: 0 0 2.6667vw;
	}
	.use_case_list li dl dd .text2 {
		font-size: 5.3333vw;
		margin: 0 0 5.3333vw;
	}
	.use_case_list li dl dd .img_box img {
		height: 62.1333vw;
	}
}

/* .flow */
.flow {
	position: relative;
	overflow: hidden;
}
.flow::before {
	content: "";
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}
.flow .step li {
	background: #fff;
	box-sizing: border-box;
	position: relative;
}
.flow .step li::before {
	content: "";
	position: absolute;
}
.flow .step li::after {
	content: "";
	position: absolute;
	z-index: 1;
}
.flow .step li:last-child::after {
	display: none;
}
.flow .step li dl dt {
	font-weight: 700;
}
.flow .step li dl dd p {
	line-height: 1.5;
}
/* .faq */
.faq {
	background: #f5f2f2;
}
.faq .faq_list dl {
	text-align: left;
	background: #fff;
	position: relative;
}
.faq .faq_list dl::before,
.faq .faq_list dl::after {
	content: '';
	display: inline-block;
	background: var(--black);
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: transform 0.3s;
}
.faq .faq_list dl::after {
	transform-origin: center center;
	transform: translateY(-50%) rotate(90deg);
}
.faq .faq_list dl.active::after {
	transform: translateY(-50%) rotate(180deg);
}
.faq .faq_list dl dt {
	font-weight: 700;
	cursor: pointer;
	position: relative;
}
.faq .faq_list dl dt::before {
	content: "";
	position: absolute;
}
.faq .faq_list dl dd {
	display: none;
}
@media ( min-width: 768px ){
	/* .flow */
	.flow {
		padding: min(90px, calc(90 / var(--width) * 100vw)) 0 min(150px, calc(150 / var(--width) * 100vw));
	}
	.flow::before {
		background: url("img/step_bg.png") no-repeat center 0 / 100% auto;
		height: min(4444px, calc(4444 / var(--width) * 100vw));
	}
	.flow .lead {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		margin: 0 0 min(55px, calc(55 / var(--width) * 100vw));
	}
	.flow .step {
		display: flex;
		justify-content: space-between;
	}
	.flow .step li {
		width: min(346px, calc(346 / var(--width) * 100vw));
		padding: min(50px, calc(50 / var(--width) * 100vw)) min(10px, calc(10 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
	}
	.flow .step li::before {
		width: min(78px, calc(78 / var(--width) * 100vw));
		height: min(68px, calc(68 / var(--width) * 100vw));
		top: max(-30px, calc(-30 / var(--width) * 100vw));
		left: 50%;
		transform: translateX(-50%);
	}
	.flow .step li:nth-child(1)::before {
		background: url("img/step1.png") no-repeat 0 0 / contain;
	}
	.flow .step li:nth-child(2)::before {
		background: url("img/step2.png") no-repeat 0 0 / contain;
	}
	.flow .step li:nth-child(3)::before {
		background: url("img/step3.png") no-repeat 0 0 / contain;
	}
	.flow .step li::after {
		background: url("img/step_arw.png") no-repeat 0 0 / contain;
		width: min(60px, calc(60 / var(--width) * 100vw));
		height: min(29px, calc(29 / var(--width) * 100vw));
		top: 50%;
		right: max(-49px, calc(-49 / var(--width) * 100vw));
		transform: translateY(-50%);
	}
	.flow .step li dl dt {
		font-size: min(24px, calc(24 / var(--width) * 100vw));
		margin: 0 0 min(20px, calc(20 / var(--width) * 100vw));
	}
	.flow .step li:last-child dl dt {
		white-space: nowrap;
		font-feature-settings: "palt";
	}
	.flow .step li dl dd {
		padding: 0 min(20px, calc(20 / var(--width) * 100vw));
	}
	.flow .step li dl dd .img_box {
		margin: 0 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.flow .step li dl dd p {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
	}
	/* .faq */
	.faq {
		padding: 0 0 min(135px, calc(135 / var(--width) * 100vw));
	}
	.faq .lead {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		margin: 0 0 min(50px, calc(50 / var(--width) * 100vw));
	}
	.faq .faq_list {
		padding: 0 min(133px, calc(133 / var(--width) * 100vw));
	}
	.faq .faq_list dl {
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		margin: 0 0 min(15px, calc(15 / var(--width) * 100vw));
	}
	.faq .faq_list dl::before,
	.faq .faq_list dl::after {
		width: min(14px, calc(14 / var(--width) * 100vw));
		height: min(2px, calc(2 / var(--width) * 100vw));
		right: min(25px, calc(25 / var(--width) * 100vw));
	}
	.faq .faq_list dl dt {
		font-size: min(20px, calc(20 / var(--width) * 100vw));
		padding: min(20px, calc(20 / var(--width) * 100vw)) min(60px, calc(60 / var(--width) * 100vw));
	}
	.faq .faq_list dl dt::before {
		background: url("img/faq_q.png") no-repeat 0 0 / contain;
		width: min(33px, calc(33 / var(--width) * 100vw));
		height: min(46px, calc(46 / var(--width) * 100vw));
		top: min(10px, calc(10 / var(--width) * 100vw));
		left: min(20px, calc(20 / var(--width) * 100vw));
	}
	.faq .faq_list dl dd {
		font-size: min(14px, calc(14 / var(--width) * 100vw));
		line-height: 1.43;
		padding: 0 min(60px, calc(60 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	/* .flow */
	.flow {
		padding: 13.3333vw 0 8vw;
	}
	.flow::before {
		background: url("img/step_bg_sp.png") no-repeat center 0 / 100% auto;
		height: 880vw;
	}
	.flow .lead {
		font-size: 4.8vw;
		margin: 0 0 9.6vw;
	}
	.flow .step li {
		padding: 6.6667vw 0 5.3333vw;
		margin: 0 0 4.5333vw;
		border-radius: 1.3333vw;
	}
	.flow .step li::before {
		width: 20.8vw;
		height: 18.1333vw;
		top: -1.6vw;
		left: -1.6vw;
	}
	.flow .step li:nth-child(1)::before {
		background: url("img/step1_sp.png") no-repeat 0 0 / contain;
	}
	.flow .step li:nth-child(2)::before {
		background: url("img/step2_sp.png") no-repeat 0 0 / contain;
	}
	.flow .step li:nth-child(3)::before {
		background: url("img/step3_sp.png") no-repeat 0 0 / contain;
	}
	.flow .step li::after {
		background: url("img/step_arw_sp.png") no-repeat 0 0 / contain;
		width: 7.7333vw;
		height: 10.9333vw;
		bottom: -7.4667vw;
		left: 50%;
		transform: translateX(-50%);
	}
	.flow .step li dl dt {
		font-size: 6.4vw;
		line-height: 1.4;
		margin: 0 0 4.8vw;
	}
	.flow .step li dl dd .img_box {
		width: 52vw;
		margin: 0 auto 4vw;
	}
	.flow .step li dl dd p {
		font-size: 4.2667vw;
	}
	/* .faq */
	.faq {
		padding: 0 0 13.3333vw;
	}
	.faq .lead {
		font-size: 4.2667vw;
		line-height: 1.5;
		margin: 0 0 8vw;
	}
	.faq .faq_list {
	}
	.faq .faq_list dl {
		border-radius: 1.3333vw;
		margin: 0 0 3.7333vw;
	}
	.faq .faq_list dl::before,
	.faq .faq_list dl::after {
		width: 3.7333vw;
		height: 0.5333vw;
		right: 6.6667vw;
	}
	.faq .faq_list dl dt {
		font-size: 5.3333vw;
		line-height: 1.2;
		padding: 5.3333vw 16vw 5.3333vw 13.3333vw;
	}
	.faq .faq_list dl dt::before {
		background: url("img/faq_q_sp.png") no-repeat 0 0 / contain;
		width: 8.5333vw;
		height: 12vw;
		top: 6.4vw;
		left: 2.6667vw;
	}
	.faq .faq_list dl dd {
		font-size: 4.2667vw;
		line-height: 1.25;
		padding: 0 13.3333vw 5.3333vw 5.3333vw;
	}	
}

/* download_form */
.download_form_wrap {
	background: #f5f2f2;
	position: relative;
}
.download_form_wrap::after {
	content: "";
	width: 100%;
	position: absolute;
	left: 0;
}
.download_form {
	background: #fff;
	box-sizing: border-box;
}
.download_form .sec_title {
	font-weight: 700;
	letter-spacing: 0.05em;
}
.download_form .lead {
	line-height: 1.5;
}
.download_form .slide_box .text {
	text-align: left;
	line-height: 1.5;
}
.download_form .slide_box .bdr_box {
	text-align: left;
	border: 1px solid var(--black);
	background: #F3F4F6;
}
.download_form .slide_box .bdr_box dd {
	font-weight: 700;
	position: relative;
}
.download_form .slide_box .bdr_box dd + dd {
	margin: 0.5em 0 0;
}
.download_form .slide_box .bdr_box dd::before {
	content: '';
	background-color: var(--black);
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%) rotate(30deg);
}
.splide__pagination {
    bottom: -1.5em;
    padding: 0 1em;
}
.splide__pagination__page.is-active {
    background: var(--black);
    transform: scale(1.0);
}
.download_form .form > dl {
    display: block;
}
.download_form .form .personal_info .text {
	text-align: left;
}
.download_form .form .personal_info .note {
	text-align: left;
}
.download_form #send_btn::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	filter: grayscale(0%);
	transition: filter 0.5s ease;
}
.download_form #send_btn:disabled::before {
	filter: grayscale(100%);
}
.other_services .title {
	display: block;
	font-weight: 700;
}
.other_services a.btn {
	display: inline-block;
	font-weight: 700;
	border: 1px solid var(--black);
	box-sizing: border-box;
	background: linear-gradient(90deg, #DAF3FF 28%, #ffffff 100%);
	position: relative;
	transition: all 0.3s;
}
.other_services a.btn::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
.other_services a.btn span {
	display: inline-block;
	background: linear-gradient(90deg, #1793CF 28%, #015BBE 100%);
	color: #fff;
}
@media (hover: hover) {
	.other_services a.btn:hover {
		box-shadow: none;
	}
}
@media ( min-width: 768px ){
	/* download_form */
	.download_form_wrap {
		padding: 0 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.download_form_wrap::after {
		background: url("img/step_bg_btm.png") no-repeat bottom center / 100% auto;
		height: min(100px, calc(100 / var(--width) * 100vw));
		bottom: max(-98px, calc(-98 / var(--width) * 100vw));
	}
	.download_form {
		width: min(1300px, calc(1300 / var(--width) * 100vw));
		border-radius: min(20px, calc(20 / var(--width) * 100vw)) min(200px, calc(200 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw));
		box-shadow: inset 1px 1px min(20px, calc(20 / var(--width) * 100vw)) rgba(90,92,117,0.25);
		padding: min(70px, calc(70 / var(--width) * 100vw)) min(100px, calc(100 / var(--width) * 100vw));
		margin: 0 min(30px, calc(30 / var(--width) * 100vw)) min(100px, calc(100 / var(--width) * 100vw));
		margin-inline: auto;
	}
	.download_form .sec_title {
		font-size: min(40px, calc(40 / var(--width) * 100vw));
		margin: 0 0 min(30px, calc(30 / var(--width) * 100vw));
	}
	.download_form .lead {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		margin: 0 0 min(50px, calc(50 / var(--width) * 100vw));
	}
	.download_form .sec_in {
		display: flex;
		justify-content: space-between;
		gap: 0 min(25px, calc(25 / var(--width) * 100vw));
	}
	.download_form .slide_box {
		flex: 0 0 min(525px, calc(525 / var(--width) * 100vw));
	}
	.download_form .slide_box .text {
		margin: min(45px, calc(45 / var(--width) * 100vw)) 0 min(25px, calc(25 / var(--width) * 100vw));
	}
	.download_form .slide_box .bdr_box {
		padding: min(20px, calc(20 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
	}
	.download_form .slide_box .bdr_box dt.grad_text {
		font-size: min(24px, calc(24 / var(--width) * 100vw));
		margin: 0 0 min(16px, calc(16 / var(--width) * 100vw));
	}
	.download_form .slide_box .bdr_box dd {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
		padding: 0 0 0 min(20px, calc(20 / var(--width) * 100vw));
	}
	.download_form .slide_box .bdr_box dd::before {
		width: min(9px, calc(9 / var(--width) * 100vw));
		height: min(15px, calc(15 / var(--width) * 100vw));
	}
	.download_form .form_box {
		flex: 0 0 min(525px, calc(525 / var(--width) * 100vw));
		border: min(2px, calc(2 / var(--width) * 100vw)) solid #1793CF;
		box-sizing: border-box;
		border-radius: min(3px, calc(3 / var(--width) * 100vw));
		overflow: hidden;
		padding: min(32px, calc(32 / var(--width) * 100vw)) min(32px, calc(32 / var(--width) * 100vw)) 0;
	}
	.download_form .form > dl {
		margin: 0 0 min(20px, calc(20 / var(--width) * 100vw));
	}
	.download_form .form > dl > dt {
		margin: 0 0 min(7px, calc(7 / var(--width) * 100vw));
	}
	.download_form .form .personal_info .privacy_box {
		height: min(110px, calc(110 / var(--width) * 100vw));
	}
	.download_form #send_btn {
		width: min(424px, calc(424 / var(--width) * 100vw));
	}
	.download_form #send_btn::before {
		background: url("img/free.png") no-repeat 0 0 / contain;
		width: min(58px, calc(58 / var(--width) * 100vw));
		height: min(42px, calc(42 / var(--width) * 100vw));
		left: min(10px, calc(10 / var(--width) * 100vw));
	}
	.other_services .title {
		font-size: min(20px, calc(20 / var(--width) * 100vw));
		margin: 0 0 min(20px, calc(20 / var(--width) * 100vw));
	}
	.other_services a.btn {
		font-size: min(20px, calc(20 / var(--width) * 100vw));
		border-radius: min(5px, calc(5 / var(--width) * 100vw));
		padding: min(12px, calc(12 / var(--width) * 100vw)) min(45px, calc(45 / var(--width) * 100vw));
		box-shadow: max(-10px, calc(-10 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) rgba(0, 0, 0, 0.14);
	}
	.other_services a.btn::after {
		right: min(20px, calc(20 / var(--width) * 100vw));
		width: min(10px, calc(10 / var(--width) * 100vw));
		height: min(10px, calc(10 / var(--width) * 100vw));
		border-top: min(3px, calc(3 / var(--width) * 100vw)) solid var(--black);
		border-right: min(3px, calc(3 / var(--width) * 100vw)) solid var(--black);
	}
	.other_services a.btn span {
		font-size: min(24px, calc(24 / var(--width) * 100vw));
		padding: min(7px, calc(7 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) min(9px, calc(9 / var(--width) * 100vw));
		border-radius: min(20px, calc(20 / var(--width) * 100vw));
		margin: 0 0 min(10px, calc(10 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	/* download_form */
	.download_form_wrap {
		padding: 0 0 16vw;
	}
	.download_form {
		border-radius: 2.6667vw 24vw 2.6667vw 2.6667vw;
		box-shadow: inset 1px 1px 2.6667vw rgba(90,92,7,0.25);
		padding: 9vw 4.8vw 5.3333vw;
		margin: 0 5.3333vw 13.3333vw;
	}
	.download_form .sec_title {
		font-size: 8vw;
		margin: 0 0 5.3333vw;
	}
	.download_form .lead {
		font-size: 4.2667vw;
		margin: 0 0 5.3333vw;
	}
	.download_form .slide_box {
	}
	.download_form .slide_box .text {
		margin: 10.6667vw 0 5.3333vw;
	}
	.download_form .slide_box .bdr_box {
		padding: 5.3333vw;
		border-radius: 1.3333vw;
		margin: 0 0 8vw;
	}
	.download_form .slide_box .bdr_box dt.grad_text {
		font-size: 6vw;
		line-height: 1.3;
		margin: 0 0 5.3333vw;
	}
	.download_form .slide_box .bdr_box dd {
		font-size: 4vw; 
		padding: 0 0 0 4vw;
		font-feature-settings: "palt";
	}
	.download_form .slide_box .bdr_box dd::before {
		width: 1.8667vw;
		height: 2.6667vw;
	}
	.download_form .form_wrap {
		background: linear-gradient(90deg, #1793CF 28%, #015BBE 100%);
        padding: 0.5333vw;
        border-radius: 1.3333vw;
	}	
	.download_form .form_wrap .form_in {
		background: #fff;
        border-radius: 0.8vw;
        padding: 5.3333vw 4vw 0;
	}
	.download_form .form > dl {
		margin: 0 0 6.9333vw;
	}
	.download_form .form > dl > dt {
		margin: 0 0 1.8667vw;
	}
    .download_form .check li label {
        width: 45vw;
    }	
	.download_form .form .personal_info .privacy_box {
		height: 39.4667vw;
	}
	.download_form .form .agreement {
        margin: 0;
    }
	.download_form #send_btn {
		width: 61.3333vw;
		padding: 0 0 0 7vw;
		font-size: 4.3333vw;
	}
	.download_form #send_btn::before {
		background: url("img/free_sp.png") no-repeat 0 0 / contain;
		width: 15.3333vw;
		height: 10.9333vw;
		left: 1.3333vw;
	}
	.other_services .title {
		font-size: 5.3333vw;
		margin: 0 0 4vw;
	}
	.other_services a.btn {
		display: block;
		font-size: 5.3333vw;
		border-radius: 1.3333vw;
		padding: 2.6667vw 0;
		box-shadow: -2.6667vw 2.1333vw 5.3333vw rgba(0, 0, 0, 0.14);
	}
	.other_services a.btn::after {
		right: 2.6667vw;
		width: 2.6667vw;
		height: 2.6667vw;
		border-top: 0.8vw solid var(--black);
		border-right: 0.8vw solid var(--black);
	}
	.other_services a.btn span {
		font-size: 6.4vw;
		line-height: 1.3;
		padding: 4vw 4.8vw;
		border-radius: 26.6667vw;
		margin: 0 0 2.6667vw;
	}
}

/* company */
.company .detail dl {
	text-align: left;
	letter-spacing: 0.04em;
}
.company .detail dl dt {
    background: linear-gradient(90deg, #1793CF 25%, #015BBE 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 700;
}
.company .detail dl dd {
	line-height: 1.7;
}
.company .detail dl dd .note {
	color: var(--gray);
}
/* group */
.group .project dl dt {
	color: #fff;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
}
.group .project dl:nth-child(1) dt {
	background: #1793CF;
}
.group .project dl:nth-child(2) dt {
	background: #148BCD;
}
.group .project dl:nth-child(3) dt {
	background: #0A72C5;
}
.group .project dl:nth-child(4) dt {
	background: #0361C0;
}
.group .project dl:nth-child(5) dt {
	background: #015CBE;
}
.group .project dl dd {
	text-align: left;
	font-weight: 700;
	line-height: 1.5;
}
.group .project dl dd span {
	color: var(--orange);
	font-weight: 700;
}
@media ( min-width: 768px ){
	/* company */
	.company {
		padding: min(180px, calc(180 / var(--width) * 100vw)) 0 min(150px, calc(150 / var(--width) * 100vw));
	}
	.company .detail {
		padding: 0 min(85px, calc(85 / var(--width) * 100vw));
	}
	.company .detail dl {
		display: flex;
		margin: 0 0 min(40px, calc(40 / var(--width) * 100vw));
	}
	.company .detail dl dt {
		flex: 0 0 min(130px, calc(130 / var(--width) * 100vw));
		font-size: min(18px, calc(18 / var(--width) * 100vw));
	}
	.company .detail dl dd .note {
		font-size: min(10px, calc(10 / var(--width) * 100vw));
	}
	/* group */
	.group {
		padding: 0 0 min(100px, calc(100 / var(--width) * 100vw));
	}
	.group .logo {
		width: min(295px, calc(295 / var(--width) * 100vw));
		padding: 0 0 min(18px, calc(18 / var(--width) * 100vw));
		position: relative;
		margin: 0 auto min(67px, calc(67 / var(--width) * 100vw));
	}
	.group .logo::after {
		content: "";
		background: url("img/company_line.png") no-repeat center 0 / contain;
		width: min(890px, calc(890 / var(--width) * 100vw));
		height: min(67px, calc(67 / var(--width) * 100vw));
		position: absolute;
		bottom: max(-67px, calc(-67 / var(--width) * 100vw));
		left: 50%;
		transform: translateX(-50%);
	}
	.group .project {
		display: flex;
		justify-content: space-between;
	}
	.group .project dl {
		width: min(212px, calc(212 / var(--width) * 100vw));
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
	}
	.group .project dl dt {
		border-radius: min(5px, calc(5 / var(--width) * 100vw)) min(5px, calc(5 / var(--width) * 100vw)) 0 0;
		font-size: min(20px, calc(20 / var(--width) * 100vw));
		padding: min(7px, calc(7 / var(--width) * 100vw)) 0 min(6px, calc(6 / var(--width) * 100vw));
	}
	.group .project dl dd {
		font-size: min(14px, calc(14 / var(--width) * 100vw));
		padding: min(15px, calc(15 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw));
		border-radius: 0 0 min(5px, calc(5 / var(--width) * 100vw)) min(5px, calc(5 / var(--width) * 100vw));
		flex-grow: 1;
	}
	.group .project dl:nth-child(1) dd {
		border: min(2px, calc(2 / var(--width) * 100vw)) solid #1793CF;
	}
	.group .project dl:nth-child(2) dd {
		border: min(2px, calc(2 / var(--width) * 100vw)) solid #148BCD;
	}
	.group .project dl:nth-child(3) dd {
		border: min(2px, calc(2 / var(--width) * 100vw)) solid #0A72C5;
	}
	.group .project dl:nth-child(4) dd {
		border: min(2px, calc(2 / var(--width) * 100vw)) solid #0361C0;
	}
	.group .project dl:nth-child(5) dd {
		border: min(2px, calc(2 / var(--width) * 100vw)) solid #015CBE;
	}
	.group .project dl dd span {
		font-size: min(18px, calc(18 / var(--width) * 100vw));
	}
}
@media ( max-width: 767px ){
	/* company */
	.company {
		padding: 18.6667vw 0;
		position: relative;
	}
	.company::before {
		content: "";
		background: url("img/company_bg_top_sp.png") no-repeat bottom center / 100% auto;
		width: 100%;
		height: 6.6667vw;
		position: absolute;
		top: -6vw;
		left: 0;
	}
	.company .detail dl {
		margin: 0 0 8vw;
	}
	.company .detail dl dt {
		font-size: 4.8vw;
		margin: 0 0 2.6667vw;
	}
	.company .detail dl dd {
		font-size: 3.8vw ;
	}
	.company .detail dl dd .note {
		display: block;
		font-size: 2.6667vw;
	}
	.company .detail dl dd .palt {
		font-feature-settings: "palt";
		white-space: nowrap;
	}
	/* group */
	.group {
		padding: 0 0 13.3333vw;
	}
	.group .logo {
		width: 60vw;
		margin: 0 auto 5.3333vw;
	}
	.group .project dl {
		display: flex;
		align-items: stretch;
		margin: 0 0 2.6667vw;
	}
	.group .project dl dt {
		display: flex;
		align-items: center;
		text-align: left;
		flex: 0 0 40vw;
		padding: 0 2.6667vw;
		border-radius: 1.3333vw 0 0 1.3333vw;
		font-size: 4.2667vw;
		box-sizing: border-box;
		font-feature-settings: "palt";
	}
	.group .project dl dd {
		font-size: 3.2vw;
		padding: 4vw 0 4vw 2.6667vw;
		border-radius: 0 1.3333vw 1.3333vw 0;
		width: 100%;
	}
	.group .project dl:nth-child(1) dd {
		border: 0.5333vw solid #1793CF;
	}
	.group .project dl:nth-child(2) dd {
		border: 0.5333vw solid #148BCD;
	}
	.group .project dl:nth-child(3) dd {
		border: 0.5333vw solid #0A72C5;
	}
	.group .project dl:nth-child(4) dd {
		border: 0.5333vw solid #0361C0;
	}
	.group .project dl:nth-child(5) dd {
		border: 0.5333vw solid #015CBE;
	}
	.group .project dl dd span {
		font-size: 4.2667vw;
	}
}

/* = contact
-------------------------------------------------------------- */
/* form */
.form_container {
	background: #F5F2F2;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	margin: 0;
}
.form_content {
	flex: 1;
}
.form_container .header {
	display: block;
	margin: 0;
}
.form_content .sec_title {
	font-weight: 700;
	letter-spacing: 0.05em;
}
.form_content .lead {
	line-height: 1.5;
}
.form_content .lead.bold {
	font-weight: 700;
	margin: 0 0 1em;
}
.grad_text {
	background: linear-gradient(90deg, #1793CF 25%, #015BBE 100%);
	-webkit-background-clip:text;
	-webkit-text-fill-color: transparent;
	font-weight: 700;
}
.form_content .grad_text {
	letter-spacing: 0.05em;
}
.form_content .form_wrap {
	max-width: 800px;
	box-sizing: border-box;
	margin: 0 auto;
	background: linear-gradient(90deg, #1793CF 28%, #015BBE 100%);
}
.form_content .form_wrap .form_in {
	background: #fff;
}
.form > dl > dt {
	display: flex;
	align-items: flex-start;
}
.form dl dt .required,
.form dl dt .any {
	background: var(--black);
	color: #fff;
	font-weight: 700;
}
.form dl dt .required {
	background: #B91C1C;
}
.form > dl > dt p {
	display: inline-block;
	text-align: left;
	font-weight: 700;
	line-height: 1.14;
}
.form > dl > dd {
	width: 100%;
}
.form dd input:not([type="checkbox"]),
.form dd textarea {
	width: 100%;
	border: 1px solid #DCDCDC;
	box-sizing: border-box;
	cursor: pointer;
	text-align: left;
	outline: none;
	transition: border-color 0.3s;
}
::placeholder {
	color: var(--gray);
}
.form dd input:not([type="checkbox"]):required:invalid {
	background: #FFEAEA
}
.form .error_msg {
	text-align: left;
	color: #B91C1C;
	display: block;
}
.form .personal_info .text {
	font-weight: 700;
}
.form .personal_info .privacy_box {
	overflow-y: scroll;
	scroll-timeline: --scroll-check block; /* スクロールをタイムラインとして定義 */
	box-sizing: border-box;
	border: 1px solid #DCDCDC;
}
.form .personal_info .privacy_box .privacy_list {
	text-align: left;
	line-height: 1.7;
}
.form .personal_info .privacy_box .privacy_list dd {
	margin: 0 0 0.8em;
}
.form .agreement {
	text-align: left;
}
#agree {
	display: none;
}
.agreement label {
	display: flex;
	align-items: center;
	background: #EFEFEF;
	cursor: pointer;
	user-select: none;
}
.agreement:has(#agree:checked) label {
	background: var(--black);
}
.agreement:has(#agree:checked) .label_text {
	color: #fff;
}
#agree_check .dummy_input {
	position: relative;
	display: inline-block;
	border: none;
	background: #fff;
	transition: all 0.3s;
	flex-shrink: 0; /* 枠が潰れないように固定 */
}
#agree:checked + .dummy_input {
	background: #fff;
}
#agree_check .dummy_input::after {
	content: "";
	position: absolute;
	border: solid var(--black);
	transform: rotate(45deg);
	opacity: 0;
	transition: opacity 0.3s;
}
#agree:checked + .dummy_input::after {
	opacity: 1;
}
/* スクロールが終わる前（disabled）のスタイル */
#agree:disabled ~ .label_text,
#agree:disabled ~ .dummy_input {
	opacity: 0.5;
	cursor: not-allowed;
}
#agree:disabled + .dummy_input {
	background: #fff;
}
.form .btn {
	background: linear-gradient(90deg, #1793CF 28%, #015BBE 100%);
}
#send_btn,
#submit_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	margin: 0 auto;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(90deg, #FAAC3F 28%, #FFDD34 100%);
	border: none;
	cursor: pointer;
	transition: all 0.3s;
}
@media (hover: hover) {
	#send_btn:hover,
	#submit_btn:hover {
		box-shadow: none;
	}
}
#send_btn::after,
#submit_btn::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	transition: transform 0.3s;
}
#send_btn:disabled::after {
	border-color: #fff;
}
#send_btn:disabled {
	background: #A7A39C;
	color: #fff;
	cursor: not-allowed;
	transform: none;
}
.check {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}
.check input[type="checkbox"],
.check .dummy_input {
	display: none;
}
.check li label {
	box-sizing: border-box;
	border: 1px solid var(--black);
	background-color: #fff;
	color: var(--black);
	line-height: 1.2;
	cursor: pointer;
	transition: all 0.3s ease;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
}
.check li label::before {
	content: "";
	border-radius: 50%;
	background: #DCE0E4;
	transition: all 0.3s;
	flex-shrink: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.check li label::after {
	content: "";
	position: absolute;
	top: 50%;
	border: solid #fff;
	transform: translateY(-65%) rotate(45deg);
	transition: all 0.3s;
}
@media (hover: hover) {
	.check li label:hover {
		background-color: var(--black);
		color: #fff;
	}
	.check li label:hover::before {
		background-color: #fff;
	}
	.check li label:hover::after {
		border-color: var(--black);
	}
}
.check li label:has(input:checked) {
	background-color: var(--black);
	color: #fff;
}
.check li label:has(input:checked)::before {
	background-color: #fff;
}
.check li label:has(input:checked)::after {
	border-color: var(--black);
}
.check li label .label_text span {
	display: block;
}

/* confirm */
.confirm .form dd p {
	text-align: left;
	line-height: 1.3;
}
.confirm .note_box {
	display: inline-block;
	color: var(--orange);
	line-height: 1.7;
	border: 1px solid var(--orange);
}
.confirm .btn_wrap {
	display: flex;
	justify-content: center;
}
.confirm #submit_btn {
	margin: 0;
}
#back_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	font-weight: 700;
	color: var(--black);
	background: linear-gradient(90deg, #DAF3FF 28%, #ffffff 100%);
	border: none;
	cursor: pointer;
	transition: all 0.3s;
}
@media (hover: hover) {
	#back_btn:hover {
		box-shadow: none;
	}
}
#back_btn::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
	transition: transform 0.3s;
}
/* thanks */
.btn.top a {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	margin: 0 auto;
	box-sizing: border-box;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--black);
	background: linear-gradient(90deg, #DAF3FF 28%, #ffffff 100%);
	border: 1px solid var(--black);
	cursor: pointer;
	transition: all 0.3s;
}
.btn.top a::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	transition: transform 0.3s;
}
@media (hover: hover) {
	.btn.top a:hover {
		box-shadow: none;
	}
}
@media ( min-width: 768px ){
	/* form */
	.form_content {
		padding: 0 min(30px, calc(30 / var(--width) * 100vw)) min(100px, calc(100 / var(--width) * 100vw));
	}
	.form_container .header_bg {
		background: url("img/form_header_bg.svg") no-repeat center bottom / cover;
		padding: 50px 0 180px;
		margin: 0 0 24px;
	}
	.form_container .header {
		padding: min(10px, calc(10 / var(--width) * 100vw)) 0;
	}
	.form_content .sec_title {
		font-size: 40px;
		margin: 0 0 40px;
	}
	.form_content .lead {
		font-size: 18px;
		margin: 0 0 50px;
	}
	.form_content .grad_text {
		font-size: 28px;
		margin: 0 0 30px;
	}
	.form_content .form_wrap {
		padding: 3px;
		border-radius: 5px;
	}
	.form_content .form_wrap .form_in {
		border-radius: 3px;
		padding: 43px 32px 0;
	}
	.form > dl {
		display: flex;
		margin: 0 0 20px;
	}
	.form > dl > dt {
		flex: 0 0 180px;
		gap: 0 5px;
	}
	.form dl dt .required,
	.form dl dt .any {
		font-size: 10px;
		padding: 5px;
		border-radius: 8px;
	}
	.form > dl > dt p {
		font-size: 14px;
		line-height: 1.14;
	}
	.form > dl > dt p .comment {
		font-size: 10px;
	}
	.form dd input:not([type="checkbox"]),
	.form dd textarea {
		border-radius: 5px;
		padding: 5px 12px;
		font-size: 12px;
	}
	.form dd input:not([type="checkbox"]) {
		height: 32px;
	}
	.form dd textarea {
		height: 200px;
		padding: 12px;
	}
	.form dd input:not([type="checkbox"]):focus,
	.form dd textarea:focus {
		border: 2px solid #1793CF;
	}
	.form dd input:not([type="checkbox"]):required:invalid {
		border: 2px solid #FFEAEA;
	}
	.form .error_msg {
		padding: 8px 0 0;
		font-size: 10px;
	}
	.form .personal_info {
		padding: 20px 0 0;
	}
	.form .personal_info .text {
		margin: 0 0 20px;
	}
	.form .personal_info .privacy_box {
		height: 200px;
		padding: 15px 12px;
		border-radius: 5px;
		margin: 0 0 15px;
	}
	.form .personal_info .privacy_box::-webkit-scrollbar {
		width: 15px;
	}
	.form .personal_info .privacy_box::-webkit-scrollbar-track {
		background: #efefef;
	}
	.form .personal_info .privacy_box::-webkit-scrollbar-thumb {
		background: var(--black);
		border-radius: 0 5px 5px 0;
	}	
	.form .personal_info .privacy_box .privacy_list {
		font-size: 14px;
	}
	.form .personal_info .note {
		font-size: 14px;
		margin: 0 0 20px;
	}
	.form .agreement {
		font-size: 14px;
		padding: 5px;
		margin: 0 0 23px;
	}
	.agreement label {
		padding: 5px;
	}
	#agree_check .dummy_input {
		width: 24px;
		height: 24px;
		margin: 0 11px 0 0;
	}
	#agree_check .dummy_input::after {
		top: 3px;
		left: 8px;
		width: 6px;
		height: 11px;
		border-width: 0 3px 3px 0;
	}
	.form .btn {
		margin: 0 -32px;
		padding: 26px 0;
	}
	#send_btn,
	#submit_btn {
		width: 424px;
		height: 48px;
		font-size: 18px;
		border-radius: 8px;
		box-shadow: max(-10px, calc(-10 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) rgba(0, 0, 0, 0.31);
	}
	#send_btn::after,
	#submit_btn::after {
		width: 10px;
		height: 10px;
		border-top: 3px solid #fff;
		border-right: 3px solid #fff;
		right: 16px;
	}
	.check {
		gap: 10px;
	}
	.check li label {
		width: 176px;
		height: 37px;
		border-radius: 19px;
		font-size: 12px;
	}
	.check li label::before {
		width: 17px;
		height: 17px;
		left: 10px;
	}
	.check li label::after {
		left: 16px;
		width: 3px;
		height: 6px;
		border-width: 0 3px 3px 0;
	}
	.check li label .label_text span {
		font-size: 10px;
	}

	/* confirm */
	.confirm .form > dl > dt {
		flex: 0 0 200px;
	}
	.confirm .form > dl:last-of-type {
		margin: 0 0 40px;
	}
	.confirm .note_box {
		padding: 19px 20px;
		border-radius: 5px;
		margin: 10px 0 50px;
	}
	.confirm .btn_wrap {
		gap: 0 30px;
	}
	#back_btn {
		width: 246px;
		height: 48px;
		font-size: 18px;
		border-radius: 8px;
		box-shadow: max(-10px, calc(-10 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) rgba(0, 0, 0, 0.31);
	}
	#back_btn::after {
		width: 10px;
		height: 10px;
		border-top: 3px solid var(--black);
		border-left: 3px solid var(--black);
		left: 16px;
	}
	/* thanks */
	.btn.top a {
		width: 300px;
		height: 60px;
		font-size: 20px;
		border-radius: 5px;
		box-shadow: max(-10px, calc(-10 / var(--width) * 100vw)) min(8px, calc(8 / var(--width) * 100vw)) min(20px, calc(20 / var(--width) * 100vw)) rgba(0, 0, 0, 0.14);
	}
	.btn.top a::after {
		width: 10px;
		height: 10px;
		border-top: 3px solid var(--black);
		border-right: 3px solid var(--black);
		right: 16px;
	}
}
@media ( max-width: 767px ){
	/* form */
	.form_content {
		padding: 0 5.3333vw 13.3333vw;
	}
	.form_container .header_bg {
		background: url("img/form_header_bg_sp.png") no-repeat center bottom / 100% auto;
		padding: 4.5333vw 0 25.8667vw;
		margin: 0 0 8vw;
	}
	.form_container .header {
		padding: 2.4vw 0;
	}
	.form_content .sec_title {
		font-size: 7vw;
		margin: 0 0 8vw;
	}
	.form_content .lead {
		font-size: 4.2667vw;
		margin: 0 0 7.4667vw;
	}
	.form_content .grad_text {
		font-size: 5.3333vw;
		margin: 0 0 30px;
	}
	.form_content .form_wrap {
		padding: 0.5333vw;
		border-radius: 1.3333vw;
	}
	.form_content .form_wrap .form_in {
		border-radius: 0.8vw;
		padding: 7.4667vw 4vw 0;
	}
	.form > dl {
		margin: 0 0 6.9333vw;
	}
	.form > dl > dt {
		gap: 0 1.3333vw;
		margin: 0 0 1.8667vw;
	}
	.form dl dt .required,
	.form dl dt .any {
		font-size: 2.6667vw;
		padding: 0.8vw 1.3333vw;
		border-radius: 2.1333vw;
	}
	.form > dl > dt p {
		font-size: 3.7333vw;
		line-height: 1.14;
	}
	.form > dl > dt p .comment {
		font-size: 2.6667vw;
	}
	.form dd input:not([type="checkbox"]),
	.form dd textarea {
		border-radius: 1.3333vw;
		padding: 2.1333vw 3.2vw;
		font-size: 3.2vw;
	}
	.form dd input:not([type="checkbox"]) {
		height: 8.5333vw;
	}
	.form dd textarea {
		height: 53.3333vw;
		padding: 3.2vw;
	}
	.form dd input:not([type="checkbox"]):focus,
	.form dd textarea:focus {
		border: 0.5333vw solid #1793CF;
	}
	.form dd input:not([type="checkbox"]):required:invalid {
		border: 0.5333vw solid #FFEAEA;
	}
	.form .error_msg {
		padding: 2.1333vw 0 0;
		font-size: 2.6667vw;
	}
	.form .personal_info .text {
		font-size: 4.2667vw;
		line-height: 1.2;
		margin: 0 0 4vw;
	}
	.form .personal_info .privacy_box {
		height: 39.4667vw;
		padding: 2.1333vw 2.4vw;
		border-radius: 1.3333vw;
		margin: 0 0 2.4vw;
	}
	.form .personal_info .privacy_box::-webkit-scrollbar {
		width: 4vw;
	}
	.form .personal_info .privacy_box::-webkit-scrollbar-track {
		background: #efefef;
	}
	.form .personal_info .privacy_box::-webkit-scrollbar-thumb {
		background: var(--black);
		border-radius: 0 1.3333vw 1.3333vw 0;
	}	
	.form .personal_info .privacy_box .privacy_list {
		font-size: 3.2vw;
	}
	.form .personal_info .note {
		font-size: 3.2vw;
		line-height: 1.2;
		margin: 0 0 4vw;
	}
	.form .agreement {
		font-size: 3.2vw;
		margin: 0 0 10.6667vw;
	}
	.agreement label {
		padding: 1.3333vw;
	}
	#agree_check .dummy_input {
		width: 6.4vw;
		height: 6.4vw;
		margin: 0 2.6667vw 0 0;
	}
	#agree_check .dummy_input::after {
		top: 1.6vw;
		left: 2.1333vw;
		width: 1.0667vw;
		height: 1.8667vw;
		border-width: 0 0.5333vw 0.5333vw 0;
	}
	.form .btn {
		margin: 0 -4vw;
		padding: 4vw 0;
	}
	#send_btn,
	#submit_btn {
		width: 61.3333vw;
		height: 12.8vw;
		font-size: 4.8vw;
		border-radius: 2.1333vw;
		box-shadow: -2.6667vw 2.1333vw 5.3333vw rgba(0, 0, 0, 0.31); 
	}
	#send_btn {
		padding: 0 4vw 0 0;
	}
	#send_btn::after,
	#submit_btn::after {
		width: 2.6667vw;
		height: 2.6667vw;
		border-top: 0.8vw solid #fff;
		border-right: 0.8vw solid #fff;
		right: 3.7333vw;
	}
	.check {
		gap: 2.6667vw;
	}
	.check li label {
		width: 38.8vw;
		height: 10.1333vw;
		border-radius: 26.6667vw;
		font-size: 3.2vw;
		padding: 0 0 0 1.3333vw;
	}
	.check li label::before {
		width: 4.5333vw;
		height: 4.5333vw;
		left: 1.6667vw;
	}
	.check li label::after {
		left: 3.2667vw;
		width: 0.8vw;
		height: 1.6vw;
		border-width: 0 0.5333vw 0.5333vw 0;
	}
	.check li label .label_text span {
		font-size: 2.6667vw;
	}
	/* confirm */
	.confirm .form > dl:last-of-type {
		margin: 0 0 10.6667vw;
	}
	.confirm .note_box {
		display: block;
		padding: 4vw;
		border-radius: 1.3333vw;
		margin: 0 0 8vw;
	}
	.confirm .btn_wrap {
		gap: 0 2.6667vw;
	}
	#back_btn {
		width: 25.0667vw;
		height: 12.8vw;
		font-size: 4.8vw;
		border-radius: 2.1333vw;
		box-shadow: -2.6667vw 2.1333vw 5.3333vw rgba(0, 0, 0, 0.31);
	}
	#back_btn::after {
		width: 2.6667vw;
		height: 2.6667vw;
		border-top: 0.8vw solid var(--black);
		border-left: 0.8vw solid var(--black);
		left: 3.7333vw;
	}
	.confirm .btn_wrap #submit_btn {
		width: 51.7333vw;
		height: 12.8vw;
	}
	/* thanks */
	.btn.top a {
		width: 61.3333vw;
		height: 13.3333vw;
		font-size: 5.3333vw;
		border-radius: 1.3333vw;
		box-shadow: -2.6667vw 2.1333vw 5.3333vw rgba(0, 0, 0, 0.14);
	}
	.btn.top a::after {
		width: 2.6667vw;
		height: 2.6667vw;
		border-top: 0.8vw solid var(--black);
		border-right: 0.8vw solid var(--black);
		right: 3.7333vw;
	}
}


#fixed_btns {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 100;
    transition: opacity .3s, visibility .3s;
    opacity: 0;
    visibility: hidden;
    background: linear-gradient(-90deg, #1793CF 25%, #015BBE 100%);
}
#fixed_btns.on {
    opacity: 1;
    visibility: visible;
}
@media ( min-width: 768px ){
    #fixed_btns {
        padding: min(20px, calc(20 / var(--width) * 100vw)) 0 min(15px, calc(15 / var(--width) * 100vw));
    }
}
@media ( max-width: 767px ){
	#fixed_btns {
		padding: 2vw 0 1.5vw;
	}
    #fixed_btns .cta_box ul {
    	display: flex;
    	justify-content: space-between;
    }
    #fixed_btns .cta_box ul li {
    	width: 48.5%;
    }
    #fixed_btns .cta_box ul li a {
    	width: 100%;
    	font-size: 3.1vw;
    	height: 9.333vw;
    }
    .fixed_btns .cta_box ul li.download a::before {
    	width: 15.4vw;
    	height: 12.226vw;
    	top: -1vw;
    	left: -7vw;
    }
}