@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;
}
.heisei-kaku-gothic {
	font-family: "heisei-kaku-gothic-std", sans-serif;
	font-weight: 300;
	font-style: normal;
}
.heisei-kaku-gothic-bold {
	font-family: "heisei-kaku-gothic-std", sans-serif;
	font-weight: 700;
	font-style: normal;
}
.sol-pro-bold {
	font-family: "sol-pro", sans-serif;
	font-weight: 700;
	font-style: normal;
}
.sol-pro-black {
	font-family: "sol-pro", sans-serif;
	font-weight: 900;
	font-style: normal;
}

/* =Styles 
-------------------------------------------------------------- */
body {
	font-family: "heisei-kaku-gothic-std", sans-serif;
	font-weight: 400;
	color: var(--navy);
	background: #fff;
	font-feature-settings: "palt";
}
a {
	text-decoration: none;
	color: var(--navy);
}
@media ( min-width: 1060px ){
	.sptab {
		display: none !important;
	}
}
@media ( min-width: 768px ){
	body {
		font-size: min(1.4286vw, 16px);
	}
	.sp {
		display: none !important;
	}
	.inner {
		max-width: 1120px;
		padding: 0 min(4vw, 80px);
		margin-inline: auto;
	}
}
@media ( max-width: 767px ){
	body {
		font-size: 3.9801vw;
	}
	.pc,
	.pctab {
		display: none !important;
	}
	.inner {
		padding: 0 4.9751vw;
	}
}

:root {
	--navy: #0F5BA3;
	--navy2: #0B60AF;
}

/* header */
.header {
	position: fixed;
	top: 30px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 997;
}
.header .menu ul li a {
	font-family: "sol-pro", sans-serif;
	font-weight: 700;
	letter-spacing: 0.1em;
	white-space: nowrap;
	transition: background-color 0.3s ease;
}
@media (hover: hover) {
	.header .menu ul li a:hover {
		color: #fff;
		background: var(--navy2);
	}
}
@media ( min-width: 768px ){
	/* header */
	.header .menu ul {
		display: flex;
		justify-content: center;
		background: rgba(255,255,255,0.5);
		padding: 11px 10px 15px;
		border-radius: 30px;
	}
	.header .menu ul li a {
		color: #01336E;
		background: transparent;
		font-size: 12px;
		padding: 6px 12px;
		border-radius: 15px;
	}
}
@media ( max-width: 767px ){
	body.fixed { position: fixed; width: 100%; }
	/* header */
	.header {
		top: 0;
		left: 0;
		transform: translateX(-0%);
		width: 100%;
	}	
	.gnav_sp {
		opacity: 0;
		position: fixed;
		width: 100%;
		height: 100vh;
		height: 100dvh;
		z-index: 998;
		background: #F4F6F5;
		top: 0;
		left: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		transition: opacity 0.3s ease-in, visibility 0.3s ease-in;
		pointer-events: none;
	}
	.gnav_sp.active {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;		
	}
	.gnav_sp ul {
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
	.gnav_sp ul li a {
		display: block;
		color: var(--navy2);
		font-size: 5.9701vw;
		padding: 2.4876vw 0;
		margin: 2.4876vw 0;
		transition: opacity 1.8s ease;
	}
	.header .menu ul li a {
		transition: opacity 1.8s ease;
	}
	.gnav_sp ul li a,
	.gnav_sp .cta .btn {
		opacity: 0;
	}
	.gnav_sp .cta .btn {
		transform: translate3d(0, 30%, 0);
		transition: opacity 1.2s ease, transform .7s ease;
	}
	.gnav_sp ul li a.show,
	.gnav_sp .cta .btn.show {
		opacity: 1;
	}
	.gnav_sp .cta .btn.show {
		transform: translate3d(0, 0, 0);
	}
	.gnav_sp .cta {
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		bottom: 4.9751vw;
	}
	.gnav_sp .cta a.btn {
		font-size: 3.9801vw;
		width: 90.0498vw;
		height: 14.9254vw;
	}
	.menu-trigger .circle {
		position: fixed;
		width: 3.9801vw;
		height: 3.9801vw;
		border-radius: 50%;
		background-color: #fff;
		cursor: pointer;
		transition: transform 0.3s ease;
		z-index: 998;
		right: 4.9751vw;
		top: 4.9751vw;
		opacity: 1;
		box-shadow: 0 0 4.9751vw 0 rgba(0, 0, 0, 0.2);
	}
	.menu-trigger.active .circle {
		opacity: 0;
	}
	.menu-trigger .bar {
		position: fixed;
		background-color: var(--navy2);
		transform: translate(-50%, -50%) scale(0);
		transition: transform 0.3s ease;
		transform-origin: center;
		opacity: 0;
		z-index: 999;
		width: 4.9751vw;
		height: 0.995vw;
		right: 2vw;
		top: 7vw;
	}
	.menu-trigger .bar1 {
		transform: translate(-50%, -50%) rotate(45deg) scale(0);
	}
	.menu-trigger .bar2 {
		transform: translate(-50%, -50%) rotate(-45deg) scale(0);
	}
	.menu-trigger.active .bar {
		opacity: 1;
	}	
	.menu-trigger.active .bar1 {
		transform: translate(-50%, -50%) rotate(45deg) scale(1);
	}	
	.menu-trigger.active .bar2 {
		transform: translate(-50%, -50%) rotate(-45deg) scale(1);
	}
}

/* fv */
.fv::before, .fv img, .fv .logo, .fv .title span, .fv .text_box p, .fv .cta a.btn {
	will-change: transform, opacity;
}
.fv-bg {
	position: fixed;
	top: 50%;
	left: 50%;
	width: 100vmax;
	height: 100vmax;
	background-image: url("img/mv.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	transform: translate(-50%, -50%) scale(var(--fv-scale, 0));
	opacity: var(--fv-opacity, 0);
	z-index: -1;
	pointer-events: none;
	will-change: transform, opacity;
}
.fv {
	width: 100%;
	height: 100vh;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}
.fv .content {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.fv .content .text_box {
	color: #fff;
}
.fv .content .text_box .title {
	font-weight: 700;
	line-height: 1.4;
}
.fv .content .text_box p {
	font-weight: 700;
	line-height: 1.4;
}
.fv .cta {
	position: absolute;
}
@media ( min-width: 768px ){
	/* fv */
	.fv .content .logo {
		margin: 0 auto min(2.6786vw, 30px);
	}
	.fv .content .text_box .title {
		font-size: min(3.5714vw, 40px);
		margin: 0 0 min(2.6786vw, 30px);
	}
	.fv .content .text_box p {
		font-size: min(1.2281vw, 14px);
	}
	.fv .cta {
		right: min(2.6786vw, 30px);
		bottom: min(2.6786vw, 30px);
	}
	.fv .cta a.btn {
		font-size: min(1.25vw, 14px);
		width: min(17.8571vw, 200px);
		height: min(4.4643vw, 50px);
	}
}
@media ( max-width: 767px ){
	/* fv */
	.fv {
		height: calc(var(--vh, 1vh) * 100);
	}
	.fv .content .logo {
		width: 27.8607vw;
		margin: 0 auto 7.4627vw;
	}
	.fv .content .logo img {
		width: 100%;
		height: auto;
	}
	.fv .content .text_box .title {
		font-size: 7.9602vw;
		margin: 0 0 4.9751vw;
	}
	.fv .content .text_box p {
		font-size: 3.4826vw;
	}
	.fv .cta {
		right: 2.4876vw;
		bottom: 2.4876vw;
	}
	.fv .cta a.btn {
		font-size: 3.4826vw;
		width: 49.7512vw;
		height: 12.4378vw;
	}
}

/* common */
.cta a.btn {
	position: relative;
	display: flex;
	align-items: center;
	background: var(--navy2);
	font-family: "sol-pro", sans-serif;
	font-weight: 700;
	color: #fff;
	letter-spacing: 0.1em;
	box-sizing: border-box;
}
.cta a.btn::after {
	content: "";
	background: #fff;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: transform 0.3s ease;
}
.cta a.btn::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.sec_title {
	font-family: "sol-pro", sans-serif;
	font-weight: 900;
	letter-spacing: 0.05em;
}
.sec_title span {
	font-family: "heisei-kaku-gothic-std", sans-serif;
	display: block;
	font-weight: 700;
	margin: 0.5em 0 0;
}
.fade-in {
	opacity: 0;
	transform: translateY(60px);
	transition: all 0.6s ease-out;
}
.fade-in.inview {
	opacity: 1;
	transform: translateY(0);
}
.js-fadeUp {
	opacity: 0;
	transform: translateY(60px);
	transition: opacity .4s, transform .4s;
}
.js-fadeUp.is-inview {
	opacity: 1;
	transform: translateY(0);
	transition-delay: .4s;
}
@media ( min-width: 768px ){
	/* common */
	.cta a.btn {
		border-radius: min(0.8929vw, 10px);
		padding: 0 0 0 min(1.3393vw, 15px);
	}
	.cta a.btn::after {
		width: min(0.8929vw, 10px);
		height: min(1.0714vw, 12px);
		right: min(1.3393vw, 15px);
	}
	.cta a.btn::before {
		border-right: 1px dashed #6996BF;
		width: 1px;
		height: min(2.8571vw, 32px);
		right: min(3.8393vw, 43px);
	}
	@media (hover: hover) {
		.cta a.btn:hover::after {
			transform: translateX(min(0.7143vw, 8px)) translateY(-50%);
		}
		.cta a.btn:hover::before {
			display: none;
		}
	}
	.sec_title {
		line-height: 1.3;
		font-size: min(3.5714vw, 40px);
		margin: 0 0 min(4.4643vw, 50px);
	}
	.sec_title span {
		font-size: min(1.4286vw, 16px);
	}
	
}
@media ( max-width: 767px ){
	/* common */
	.cta a.btn {
		border-radius: 2.4876vw;
		padding: 0 0 0 3.7313vw;
	}
	.cta a.btn::after {
		width: 2.4876vw;
		height: 2.9851vw;
		right: 3.7313vw;
	}
	.cta a.btn::before {
		border-right: 0.2488vw dashed #6996BF;
		width: 0.2488vw;
		height: 7.9602vw;
		right: 10.6965vw;
	}
	.sec_title {
		line-height: 1.4;
		font-size: 7.9602vw;
		margin: 0 0 9.9502vw;
	}
	.sec_title span {
		font-size: 3.9801vw;
	}
}

/* message */
.message {
	position: relative;
	z-index: 1;
	color: #fff;
}
.message .lead {
	font-weight: 700;
}
.message .text {
	text-align: left;
	font-weight: 300;
	line-height: 2.29;
	letter-spacing: 0.03em;
	margin-inline: auto;
}
@media ( min-width: 768px ){
	/* message */
	.message {
		padding: min(11.6071vw, 130px) 0;
	}
	.message .lead {
		font-size: min(2.1429vw, 24px);
		margin: 0 0 min(4.0179vw, 45px);
	}
	.message .text {
		width: min(71.4286vw, 800px);
	}
}
@media ( max-width: 767px ){
	/* message */
	.message {
		padding: 24.8756vw 0 12.4378vw;
	}
	.message .lead {
		font-size: 5.9701vw;
		margin: 0 0 9.9502vw;
		line-height: 1.4;
	}
}

/* feature */
.feature {
	color: #fff;
}
.feature .sec_in .content {
	text-align: left;
}
.feature .sec_in .content .point:first-child {
	padding-top: 0;
}
.feature .sec_in .content .point:last-child {
	padding-bottom: 0;
	border-bottom: none;
}
.feature .sec_in .content .point dt {
	font-family: "sol-pro", sans-serif;
	font-weight: 900;
	letter-spacing: 0.1em;
	display: flex;
	align-items: center;
}
.feature .sec_in .content .point dt .num {
	margin: 0 0.5em 0 0;
}
.feature .sec_in .content .point:nth-child(1) dt .num {
	margin: 0 0.75em 0 0;
}
.feature .sec_in .content .point dd {
	letter-spacing: 0.03em;
	line-height: 1.4;
}
.feature .sec_in .content .point dd p {
	font-weight: 700;
	margin: 0 0 0.5em;
}
.feature .sec_in .content .point dd span {
	display: block;
	font-weight: 300;
}
@media ( min-width: 768px ){
	/* feature */
	.feature {
		padding: min(6.6964vw, 75px) 0;
	}
	.feature .sec_in {
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
	}
	.feature .sec_in .img_box {
		flex: 0 0 min(36.6964vw, 411px);
	}
	.feature .sec_in .img_box img {
		width: 100%;
	}
	.feature .sec_in .content .point {
		display: flex;
		align-items: center;
		gap: 0 min(4.0179vw, 45px);
		padding-top: min(4.4643vw, 50px);
		padding-bottom: min(4.4643vw, 50px);
		border-bottom: 1px solid rgba(255,255,255,0.1);
	}
	.feature .sec_in .content .point dt {
		font-size: 12px;
	}
	.feature .sec_in .content .point dt .num {
		font-size: min(1.7857vw, 20px);
	}
	.feature .sec_in .content .point dd p {
		font-size: min(1.7857vw, 20px);
	}
	.feature .sec_in .content .point dd span {
		font-size: 14px;
	}
}
@media ( max-width: 767px ){
	/* feature */
	.feature {
		padding: 12.4378vw 0;
	}
	.feature .sec_in .img_box {
		margin: 0 auto 12.4378vw;
	}
	.feature .sec_in .content .point {
		padding-top: 7.4627vw;
		padding-bottom: 7.4627vw;
		border-bottom: 0.2488vw solid rgba(255,255,255,0.1);
	}
	.feature .sec_in .content .point dt {
		font-size: 2.9851vw;
		margin: 0 0 2.2321vw;
	}
	.feature .sec_in .content .point dt .num {
		font-size: 2.9851vw;
	}
	.feature .sec_in .content .point dd p {
		font-feature-settings: "palt";
		font-size: 5.9701vw;
	}
	.feature .sec_in .content .point dd span {
		font-size: 3.4826vw;
	}
}

/* service */
.service {
	color: #fff;
}
.service li.sec_in > dl > dt {
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-weight: 700;
	line-height: 1.5;
}
.service li.sec_in > dl > dt .en {
	font-family: "sol-pro", sans-serif;
	font-weight: 900;
	display: block;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.service li.sec_in > dl > dd {
	background: #fff;
	color: var(--navy);
	box-sizing: border-box;
}
.service li.sec_in > dl > dd .title {
	text-align: left;
	font-weight: 700;
}
.service li.sec_in > dl > dd .text {
	text-align: left;
	font-weight: 300;
	line-height: 1.8;
}
.service li.sec_in > dl > dd .card_wrap {
	display: flex;
	flex-wrap: wrap;
}
.service li.sec_in > dl > dd .card_wrap dl {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: var(--navy);
	box-sizing: border-box;
	letter-spacing: 0.03em;
}
.service li.sec_in > dl > dd .card_wrap dl dt {
	color: #fff;
	font-weight: 700;
	line-height: 1.4;
}
.service li.sec_in > dl > dd .card_wrap dl dd {
	color: #9AB3CA;
	font-weight: 300;
	line-height: 1.6;
}
.service li.sec_in:nth-child(2) > dl > dd {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.service li.sec_in > dl > dd ul {
	text-align: left;
	margin: 1em 0 0;
}
.service li.sec_in > dl > dd ul li {
	font-weight: 300;
	line-height: 2.1;
}
@media ( min-width: 768px ){
	/* service */
	.stack-cards {
		position: relative;
		height: 200vh; /* 2枚 × 100vh */
		list-style: none;
		margin: 0;
		padding: 0;
	}
	.stack-cards__item {
		position: sticky;
		top: 90px; /* 止めたい位置 */
		transform-origin: center top;
		will-change: transform;
	}
	.stack-cards__item:last-child {
		top: 120px; /* 止めたい位置 */
	}
	.service {
		padding: min(6.6964vw, 75px) 0;
	}
	.service li.sec_in:first-child {
		margin: 0 0 min(9.8214vw, 110px);
	}
	.service li.sec_in > dl {
		display: flex;
		justify-content: space-between;
	}
	.service li.sec_in > dl > dt {
		flex: 1 1 auto;
		gap: min(0.8929vw, 10px) 0;
		text-align: left;
		font-size: min(2.1429vw, 24px);
		border-radius: min(1.7857vw, 20px) 0 0 min(1.7857vw, 20px);
		padding: 0 0 0 min(3.125vw, 50px);	
	}
	.service li.sec_in:nth-child(1) > dl > dt {
		background: url("img/our_service01.svg") no-repeat center / cover;
	}
	.service li.sec_in:nth-child(2) > dl > dt {
		background: url("img/our_service02.svg") no-repeat center / cover;
	}
	.service li.sec_in > dl > dt .en {
		font-size: 10px;
	}
	.service li.sec_in > dl > dd {
		flex: 0 0 min(56.6964vw, 635px);
		border-radius: 0 min(1.7857vw, 20px) min(1.7857vw, 20px) 0;
		padding: min(3.5714vw, 40px) min(4.4643vw, 50px) min(3.5714vw, 40px) min(3.5714vw, 40px);
	}
	.service li.sec_in > dl > dd .title {
		font-size: min(1.6071vw, 18px);
		margin: 0 0 min(2.2321vw, 25px);
	}
	.service li.sec_in > dl > dd .text {
		font-size: min(1.25vw, 14px);
	}
	.service li.sec_in > dl > dd .card_wrap {
		gap: min(0.8929vw, 10px);
		margin: min(2.4107vw, 27px) 0 0;
	}
	.service li.sec_in > dl > dd .card_wrap dl {
		border-radius: min(0.8929vw, 10px);
		width: min(15.625vw, 175px);
		padding: min(1.25vw, 14px) min(0.4464vw, 5px);
	}
	.service li.sec_in > dl > dd .card_wrap dl dt {
		margin: 0 0 0.3em;
		font-size: min(1.25vw, 14px);
	}
	.service li.sec_in > dl > dd .card_wrap dl dd {
		font-size: min(1.0714vw, 12px);
	}
	.service li.sec_in:nth-child(2) > dl > dd {
		height: min(53.5714vw, 600px);
	}
	.service li.sec_in > dl > dd ul li {
		font-size: min(1.25vw, 14px);
	}
}
@media ( max-width: 767px ){
	/* service */
	.service {
		padding: 24.8756vw 0 12.4378vw;
	}
	.service li.sec_in:first-child {
		margin: 0 0 4.9751vw;
	}
	.service li.sec_in > dl > dt {
		height: 64.3532vw;
		box-sizing: border-box;
		gap: 2.4876vw 0;
		font-size: 5.4726vw;
		border-radius: 4.9751vw 4.9751vw 0 0;
	}
	.service li.sec_in:nth-child(1) > dl > dt {
		background: url("img/our_service01_sp.svg") no-repeat center / cover;
	}
	.service li.sec_in:nth-child(2) > dl > dt {
		background: url("img/our_service02_sp.svg") no-repeat center / cover;
	}
	.service li.sec_in > dl > dt .en {
		font-size: 2.4876vw;
	}
	.service li.sec_in > dl > dd {
		border-radius: 0 0 4.9751vw 4.9751vw;
		padding: 9.9502vw 4.9751vw 12.4378vw;
	}
	.service li.sec_in > dl > dd .title {
		font-size: 3.9801vw;
		line-height: 1.6;
		margin: 0 0 2.4876vw
	}
	.service li.sec_in > dl > dd .text {
		font-size: 3.4826vw;
	}
	.service li.sec_in > dl > dd .card_wrap {
		gap: 1.99vw;
		margin: 4.9751vw 0 0;
	}
	.service li.sec_in > dl > dd .card_wrap dl {
		border-radius: 2.4876vw;
		width: 39.0547vw;
		padding: 3.4826vw 1.2438vw;
	}
	.service li.sec_in > dl > dd .card_wrap dl dt {
		margin: 0 0 0.5em;
		font-size: 2.9851vw;
	}
	.service li.sec_in > dl > dd .card_wrap dl dd {
		font-size: 2.4876vw;
	}
	.service li.sec_in > dl > dd ul li {
		font-size: 3.4826vw;
	}
}

/* case */
.case {
	background: var(--navy);
	color: #fff;
}
.case ul li {
	position: relative;
	border-right: 1px dashed #6D9DCB;
}
.case ul li:last-child {
	border-right: none;
}
.case dl dt .cat {
	display: inline-block;
	color: var(--navy2);
	font-weight: 700;
	letter-spacing: 0.1em;
	background: #fff;
}
.case dl dt p {
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.03em;
}
.case dl dt p span {
	display: block;
}
.case dl dd {
	text-align: left;
	font-weight: 300;
	line-height: 1.8;
	letter-spacing: 0.03em;
}
.case dl dd .client {
	display: block;
	color: #6C96BD;
	margin: 0.25em 0 0;
}
@media ( min-width: 768px ){
	/* case */
	.case {
		padding: min(6.6964vw, 75px) 0;
	}
	.case .sec_in {
		margin: 0 max(-3.5714vw, -40px);
	}
	.case dl {
		padding: 0 min(3.5714vw, 40px) min(0.8929vw, 10px);
	}
	.case dl dt .cat {
		font-size: min(1.0714vw, 12px);
		padding: min(0.5357vw, 6px) min(0.9375vw, 10.5px) min(0.625vw, 7px);
		border-radius: min(0.4464vw, 5px);
		margin: 0 0 min(1.7857vw, 10px);
	}
	.case dl dt p {
		margin: 0 0 min(2.6786vw, 30px);
	}
	.case dl dt p span {
		margin: 0.1em 0 0;
		font-size: min(3.9286vw, 44px);
	}
	.case li:last-child dl dt p span {
		margin: 0.3em 0 0;
		font-size: min(2.8571vw, 32px);
	}
	.case dl dd {
		font-size: min(1.25vw, 14px);
	}	
}
@media ( max-width: 767px ){
	/* case */
	.case {
		padding: 24.8756vw 0;
	}
	.case .sec_in {
		margin: 0 -4.9751vw;
	}
	.case dl {
		padding: 0 4.9751vw;
	}
	.case dl dt .cat {
		font-size: 2.9851vw;
		padding: 1.4925vw 2.4876vw;
		border-radius: 1.2438vw;
		margin: 0 0 3.7313vw;
	}
	.case dl dt p {
		margin: 0 0 7.4627vw;
	}
	.case dl dt p span {
		font-size: 10.9453vw;
	}
	.case li.last dl dt p span {
		font-size: 7.3333vw;
	}
	.case dl dd {
		font-size: 3.4826vw;
	}
}

/* problem */
.problem {
	background: #fff;
}
.problem .title {
	font-weight: 700;
	letter-spacing: 0.03em;
	background: #fff;
}
.problem .balloon {
	position: relative;
	background: #CFDEED;
	color: var(--navy);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.03em;
	box-sizing: border-box;
}
.problem .balloon::after {
	content: "";
	background: #CFDEED;
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	position: absolute;
}
.problem .splide_ticker02 .balloon {
	direction: ltr;
}
.problem .lead {
	display: inline-block;
	font-weight: 700;
	line-height: 1.4;
}
.problem .lead span {
	display: block;
	margin: 0 0 0.5em;
}
.problem .lead a {
	position: relative;
	display: inline-block;
	padding: 0 1em 0 0;
}
.problem .lead a::after {
	content: "";
	background: var(--navy);
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}
@media ( min-width: 768px ){
	/* problem */
	.problem {
		padding: min(5.3571vw, 60px) 0;
	}
	.problem .title {
		font-size: min(2.8571vw, 32px);
		margin: 0 0 min(3.5714vw, 40px);
	}
	.problem .splide_ticker01 .splide__track {
		padding: 0 0 min(3.5714vw, 40px);
	}
	.problem .splide_ticker02 .splide__track {
		padding: 0 0 min(6.25vw, 70px);
	}
	.problem .balloon {
		padding: min(2.6786vw, 30px) min(0.8929vw, 10px);
		border-radius: min(0.8929vw, 10px);
		font-size: min(1.25vw, 14px);
		height: min(10.7143vw, 120px);
		box-shadow: 0 min(0.8929vw, 10px) min(2.6786vw, 30px) 0px rgba(0, 0, 0, 0.1);
	}
	.problem .balloon::after {
		width: min(1.6964vw, 19px);
		height: min(1.5179vw, 17px);
		bottom: max(-1.4286vw, -16px);
		right: min(1.7857vw, 20px);
		box-shadow: 0 min(0.8929vw, 10px) min(2.6786vw, 30px) 0px rgba(0, 0, 0, 0.1);
	}
	.problem .lead span {
		font-size: min(1.6071vw, 18px);
	}
	.problem .lead a {
		font-size: min(2.8571vw, 32px);
	}
	.problem .lead a::after {
		width: min(1.7857vw, 20px);
		height: min(2.1429vw, 24px);
	}
}
@media ( max-width: 767px ){
	/* problem */
	.problem {
		padding: 12.4378vw 0;
	}
	.problem .title {
		font-size: 5.9701vw;
		margin: 0 0 7.4627vw;
	}
	.problem .splide_ticker01 .splide__track {
		padding: 0 0 8.209vw;
	}
	.problem .splide_ticker02 .splide__track {
		padding: 0 0 10.6965vw;
	}
	.problem .balloon {
		padding: 7.4627vw 2.4876vw;
		border-radius: 2.4876vw;
		font-size: 3.4826vw;
		height: 29.8507vw;
		box-shadow: 0 2.4876vw 7.4627vw 0px rgba(0, 0, 0, 0.1);
	}
	.problem .balloon::after {
		width: 4.7264vw;
		height: 4.2289vw;
		bottom: -3.9801vw;
		right: 4.9751vw;
		box-shadow: 0 2.4876vw 7.4627vw 0px rgba(0, 0, 0, 0.1);
	}
	.problem .lead span {
		font-size: 4.4776vw;
	}
	.problem .lead a {
		font-size: 7.9602vw;
	}
	.problem .lead a::after {
		width: 4.9751vw;
		height: 5.9701vw;
	}
}

/* footer */
.footer {
	background: var(--navy);
	color: #fff;
}
.footer .company {
	color: #fff;
	text-align: left;
}
.footer .company dt {
	font-weight: 700;
	margin: 0 0 1em;
}
.footer .company dt span {
	display: inline-block;
	padding: 0 0 0 1em;
}
.footer .company dd {
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.03em;
}
.footer .company a {
	color: #fff;
}
@media (hover: hover) {
	.footer .company a:hover {
		text-decoration: underline;
	}
}
.footer .copy {
	color: #999;
	font-weight: 300;
	letter-spacing: 0.05em;
}
@media ( min-width: 768px ){
	/* footer */
	.footer {
		padding: min(7.1429vw, 80px) 0;
	}
	.footer .inner {
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
	}
	.footer .company {
		width: min(61.1607vw, 685px);
	}
	.footer .company dt span {
		font-size: 10px;
	}
	.footer .company dd {
		font-size: 12px;
	}
	.footer .copy {
		text-align: right;
		font-size: 10px;
	}
}
@media ( max-width: 767px ){
	/* footer */
	.footer {
		padding: 12.4378vw 0;
	}
	.footer .company dt span {
		font-size: 2.4876vw;
	}
	.footer .company dd {
		font-size: 2.9851vw;
	}
	.footer .copy {
		text-align: left;
		margin: 9.9502vw 0 0;
		font-size: 2.4876vw;
	}
}




