@charset "UTF-8";
/* CSS Document */ :root {
	--brand: #036EB8;
	--att: #B80E03;
	--gray: #F8F8F8;
}
.header__logo__link img.logo01 {
	height: 18px;
	margin-left: 0.75em;
	line-height: 1;
}
.header__logo__link {
	display: block;
	line-height: 1;
}
.is-pc {
	display: block;
}
.is-sp {
	display: none;
}
/*LP独自*/
.header__logo__link2 {
	position: relative;
	top: -5px;
}
main section {
	background: #fff;
	padding: 90px 0;
}
main section img {
	max-width: 100%;
}
main section h2 {
	font-size: clamp(30px, 6vw, 60px);
	text-align: center;
	font-weight: bold;
	margin-bottom: 70px;
}
main section h2 span {
	display: block;
	font-size: clamp(20px,3vw,40px);
}
.container {
	max-width: 1000px;
	margin: auto;
	padding: 0 1em;
}
/*kv
----------------------*/
#kv .kvgrid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 2em;
}
#kv .kvgrid h1 {
	font-weight: bold;
	font-size: clamp(25px,3vw,30px);
	line-height: 1.4;
	margin-top: 1em;
}
#kv .kvgrid h1 span {
	font-size: 20px;
	display: block;
}
#kv .kvgrid img {
	max-width: 100%;
}
#kv .kvgrid .kvleft {
	padding-left: 2em;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
/*cta
----------------------*/
section#cta {
	padding: 0;
}
.btn_cta {
	background: var(--gray);
	padding: 50px 0;
}
.btn_ctainner {
	background: #fff;
	width: auto;
	padding: 40px;
	text-align: center;
}
.btn_ctainner h2 {
	font-size: clamp(20px, 4vw, 40px);
	font-weight: bold;
	color: #000;
	margin-bottom: 0;
}
.btn_ctainner h3 {
	font-size: clamp(40px, 5vw, 100px);
	color: var(--att);
	font-family: din-condensed, sans-serif;
	margin: 10px;
	line-height: 1;
}
.btn_ctainner h3 span {
	font-size: clamp(25px, 5vw, 50px);
}
.btn_ctainner p {
	font-size: clamp(12px, 2.5vw, 25px);
	margin-bottom: 20px;
	letter-spacing: 0.04em;
}
.btn_ctainner .tel {
	color: var(--att);
}
.btn_ctainner a.btn_contact {
	font-weight: bold;
	display: block;
	background: var(--brand);
	color: #fff;
	font-size: clamp(15px, 3vw, 30px);
	width: 624px;
	max-width: 100%;
	margin: auto;
	border-radius: 4px;
	padding: 12px 0;
	line-height: 1.4;
}
.btn_ctainner a.btn_contact span {
	display: block;
	font-size: clamp(12px, 1.8vw, 18px);
}
/*flow1
----------------------*/
#flow1 .grid-flow1 {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
	margin: auto;
	padding: 1em calc(50vw / 10);
	max-width: 1366px;
}
#flow1 h2 {
	color: var(--brand);
	text-align: left;
	line-height: 1.2;
}
#flow1 h2 span {
	margin-bottom: 10px;
	font-size: clamp(15px, 3.5vw, 35px);
	color: #000;
}
/*flow2
----------------------*/
#flow2 {
	background: var(--brand);
	color: #fff;
}
#flow2 h2 {
	color: #fff;
	line-height: 1.2;
}
#flow2 h2 span {
	font-size: clamp(15px, 3.5vw, 35px);
}
ul.check1 li {
    position: relative;
    font-size: clamp(12px, 2.5vw, 25px);
    line-height: 1.4;
    margin: 1em 1em 1em 0em;
    border-bottom: 1px solid #D1D1D1;
    padding: 0.1em 0px 1em 0em;
    font-weight: bold;
    align-items: center;
    display: flex;
}
ul.check1 li:before {
    content: '';
    background: url(../../common/img/icon-check1.svg)no-repeat 0 0;
    background-size: contain;
    width: 58px;
    height: 58px;
    display: inline-block;
    margin-right: 0.5em;
}
ul.check2 li {
	position: relative;
	background: #fff;
	color: #000;
	font-size: clamp(14px, 2.5vw, 25px);
	display: flex;
	align-items: center;
	font-weight: 500;
	margin-bottom: 30px;
	padding-right: 10px;
}
ul.check2 li span {
	color: #fff;
	background: var(--att);
	font-family: din-condensed, sans-serif;
	position: relative;
	display: inline-block;
	line-height: 1;
	margin-right: 28px;
	padding: 18px 20px;
}
ul.check2 li span strong {
	font-size: clamp(22px, 4.5vw, 45px);
}
/*flow3
----------------------*/
#flow3 {
	background: #F7F7F7;
	padding-bottom: 50px;
	position: relative;
}
#flow3 h2 {
	color: var(--brand);
}
/*flow4
----------------------*/
#flow4 {
	position: relative;
	padding: 100px 0;
	text-align: center;
}
#flow4::after {
	content: '';
	background: var(--brand);
	width: 384px;
	height: 54px;
	clip-path: polygon(0 0, 100% 0%, 50% 100%);
	display: block;
	margin: auto;
	top: 0;
	position: absolute;
	left: 0;
	right: 0;
}
#flow4 h2 {
	color: var(--brand);
}
.marker::before {
	content: '';
	background: linear-gradient(transparent 50%, #FFE940 0%);
	display: inline-block;
	width: auto;
	height: 50px;
	position: absolute;
	z-index: -1;
	bottom: 10px;
	left: 0;
	right: 0;
}
#flow4 h2 span.marker {
	color: var(--brand);
	font-size: clamp(20px,5.5vw,60px);
	position: relative;
	display: inline;
	z-index: 1;
	padding: 0 0 0 16px;
}
#flow4 h2 span {
	font-size: clamp(16px,4vw,40px);
	color: #000;
}
#flow4 h3 {
	max-width: 560px;
	width:auto;
	margin: auto;
}
#flow4 h3 span {
    font-size: clamp(15px,6vw,65px);
    background: var(--brand);
    color: #fff;
    padding: 15px 10px 10px;
    line-height: 1;
    display: block;
    margin-bottom: 30px;
    width: auto;
    font-weight: bold;
    font-feature-settings: "palt";
    max-width: 530px;
}
#flow4 h3 strong {
	font-size: clamp(30px,6vw,60px);
	color: var(--brand);
}
#flow4 h3 strong + b {
	font-size: clamp(20px,4vw,45px);
	background: none;
	color: #000;
}
#flow4 p.arrow {
	margin: 2em 0;
}
#flow4 .p-more {
	color: var(--brand);
	font-size: clamp(30px,6vw,60px);
	padding: 0 0 1em;
	font-weight: bold;
}
#flow4 h4 {
	font-size: clamp(20px,3vw,40px);
	margin-top: 1.25em;
}
#flow4 h4 strong {
	padding: 20px 0;
	font-size: clamp(30px,4vw,70px);
	color: var(--att);
	display: block;
}
/*flow5
----------------------*/
#flow5 {
	background: url("../../common/img/flow5bg.png")no-repeat center center;
	text-align: center;
	color: #fff;
}
#flow5 .flowinner h2 {
	font-size: clamp(15px,2vw,30px);
	margin-bottom: 20px;
	line-height: 1.5;
	letter-spacing: 0;
}
#flow5 .flowinner h3 {
	font-size: clamp(20px,4vw,45px);
	font-weight: bold;
	letter-spacing: 0;
	position: relative;
	margin: 20px 0 30px;
	padding: 30px 0 0;
}
#flow5 .flowinner h3::after {
	content: '';
	position: absolute;
	height: 1px;
	background: #fff;
	width: 80%;
	left: 0;
	right: 0;
	margin: auto;
	top: 0;
}
#flow5 .flowinner h4 {
	background: var(--att);
	border-radius: 50px;
	color: #fff;
	padding: 5px 10px;
	font-size: clamp(15px,3vw,30px);
	font-weight: bold;
	margin-bottom: 30px;
}
#flow5 .flowinner {
	max-width: 690px;
	margin: auto
}
/*flow6
----------------------*/
#flow6 {}
#flow6 .flow6head {
	text-align: center;
	border-bottom: 1px solid #D9D9D9;
	padding-bottom: 20px;
}
#flow6 .flow6head h2 {
	color: var(--brand);
	position: relative;
	display: inline;
}
#flow6 .flow6head h2 span {
	font-size: clamp(20px,3vw,40px);
	color: #000;
}
#flow6 .flow6head h2 img {
	position: absolute;
	right: 0;
	top: -40px;
}
#flow6 .flow6grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	grid-gap: 20px;
	    margin: 7em 0 2em;
}
#flow6 .flow6grid dl {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 100%;
    position: relative;
    z-index: 1;
}
#flow6 .flow6grid dl dt {
	font-size: clamp(12px,2vw,20px);
	font-weight: bold;
}
#flow6 .flow6grid dl:nth-child(3) dd {
	margin-top: 0;
}
#flow6 .flow6grid dl dd {
	height: 88px;
	margin-top: 10px;
}
#flow6 .flow6grid dl dd {}
#flow6 h3 {
	font-size: clamp(15px,3vw,30px);
	text-align: center;
	margin-top: 50px;
	margin-bottom: 70px;
	font-weight: bold;
}
#flow6 h3 strong {
	font-size: clamp(20px,4vw,50px);
}
#flow6 .flow6grid dl::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(100px,22vw,238px);
    height: clamp(100px,22vw,238px);
    background-color: #F8F8F8;
    border-radius: 50%;
    z-index: -1;
}
/*flow7
----------------------*/
#flow7 {
	background: var(--brand);
	color: #fff;
}
#flow7 h2 span {
	font-size: clamp(20px,3vw,40px);
}
#flow7 .flow7container {
	max-width: 630px;
	margin: auto;
}
#flow7 .flow7container dl {
	font-weight: bold;
	font-size: clamp(13px,2vw,25px);
	display: flex;
	align-items: center;
	background: #fff;
	border-radius: 5px;
	padding: 15px 20px;
	margin-bottom: 20px;
	position: relative;
}
#flow7 .flow7container dl:last-child {
	margin-bottom: 0;
}
#flow7 .flow7container dl dt {
	flex-shrink: 1;
	line-height: 0.8;
	font-size: clamp(20px,4vw,50px);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-content: center;
	color: var(--brand);
	font-family: din-condensed, sans-serif;
	position: relative;
	padding-right: 15px;
	margin-right: 20px;
}
#flow7 .flow7container dl dt::after {
	content: '';
	width: 1px;
	height: 100%;
	display: block;
	position: absolute;
	right: 0;
	background: #000;
}
#flow7 .flow7container dl dt small {
	font-size: clamp(10px,1.5vw,16px);
	font-weight: normal;
	color: #000;
	display: block;
	margin-bottom: 4px;
}
#flow7 .flow7container dl dd {
	color: #000;
	font-weight: normal;
}
#flow7 .flow7container dl dd strong {
	color: var(--att);
}
/*flow8
----------------------*/
#flow8 {}
#flow8 h2 {
	color: var(--att);
}
#flow8 .flow8grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	grid-gap: 30px;
}
#flow8 .flow8grid dl {

	display: flex;
	flex-direction: column;
	text-align: center;
	justify-content: center;
	align-items: center;
	border-radius: 100%;
	    position: relative;
    z-index: 1;
}
#flow8 .flow8grid dl::before{
	    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(100px,30vw,300px);
    height: clamp(100px,30vw,300px);
	background-color: var(--gray);
    border-radius: 50%;
    z-index: -1;

}
#flow8 .flow8grid dl dt {
	background: var(--brand);
	color: #fff;
	border-radius: 50px;
	padding: 2px 10px 0;
	line-height: 1;
	position: relative;
	margin-bottom: 10px;
	font-size: clamp(10px,2vw,20px);
	font-family: din-condensed, sans-serif;
}
#flow8 .flow8grid dl dt::after {
	content: '';
	background: var(--brand);
	width: 17px;
	height: 10px;
	clip-path: polygon(0 0, 100% 0%, 50% 100%);
	display: block;
	margin: auto;
	top: 18px;
	position: absolute;
	left: 0;
	right: 0;
}
#flow8 .flow8grid dl dd img {
	margin: 10px auto;
}
#flow8 .flow8grid dl dd h4 {
	font-size: clamp(15px,3vw,30px);
	font-feature-settings: "palt";
	font-weight: bold;
}
#flow8 .flow8grid dl dd p {
	font-size: clamp(10px,1.5vw,16px);
	font-feature-settings: "palt";
}
#flow8 .endpoint h2 {
	color: var(--brand);
	line-height: 1.3;
	margin-top: 100px;
    margin-bottom: 30px;
}
#flow8 .endpoint h2 span {
	color: #000;
}
#flow8 .endpoint h4 {
	font-size: clamp(15px,2vw,25px);
	font-weight: bold;
	text-align: center;
	margin-top: 40px;
}
ul.check3 {
	max-width: 440px;
	margin: auto;
}
ul.check3 li {
	position: relative;
	padding-left: 1.6em;
	padding-bottom: 17px;
	margin-bottom: 17px;
	font-size: clamp(13px,2vw,20px);
	font-feature-settings: "palt";
	border-bottom: 1px solid #000;
	line-height: 1.5;
}
ul.check3 li::before {
	content: '';
	background: url("../../common/img/check-cube.svg")no-repeat 0 0;
	background-size: contain;
	width: 24px;
	height: 24px;
	display: block;
	position: absolute;
	left: 0;
	top: 2px;
}
/*
contact---------------------------*/
main section.form{
	padding: 40px 0;
}
.txt01{
	color: var(--att);
	font-weight: bold;
	display: block;
}
#pagehead h1{
	padding: 2em;
	font-size: clamp(20px,2.5vw,30px);
    font-weight: bold;
}
section.form table{
    margin-top: 1.5rem;
    border-collapse: collapse;
    border-top: 1px solid #ccc;
}
section.form table th{
	    border-right: 1px solid #ccc;
    width: 30%;
}
section.form table th, section.form table td {
    border-bottom: 1px solid #ccc;
    padding: 0.8rem;
}
section.form th span{
	background: var(--att);
	color: #fff;
	font-size: 12px;
	padding:2px 3px 0 3px;
	margin-left: 5px;
}
section.form table td input[type="text"] {
    font-size: 1rem;
    padding: 0.5rem;
    width: 100%;
    -webkit-transition: .5s;
    transition: .5s;
    border: 1px solid #666;
	box-sizing: border-box;
}
section.form table td textarea {
    padding: 0.5rem;
    font-size: 1rem;
    width: 97%;
    -webkit-transition: .5s;
    transition: .5s;
    border: 1px solid #666;
}
section.form table td input[type="tel"] {
    width: auto;
	font-size: 1rem;
     padding: 0.5rem;
    -webkit-transition: .5s;
    transition: .5s;
    border: 1px solid #666;
}
section.form .horizontal-item {
    margin: 0 1rem 0 0!important;
}
section.form .formBtn01 input {
    margin: 1.5rem auto 0;
    background: #000;
    align-items: center;
    -webkit-transition: .5s;
    transition: .5s;
    width: 15rem;
    max-width: 95%;
    vertical-align: middle;
    color: #fff;
    text-align: center;
    font-weight: bold;
    border: none;
    padding: 1rem;
    font-size: 1rem;
    display: block;
    cursor: pointer;
}
label.error{
	color: #f00;
	display: block;
}

/*section access
---------------------------------*/
section.access{
}
section.access h2{
	font-size: clamp(17px,2vw,2.5px);
	text-align: left;
}
section.access article{margin: 1em 0 3em;}
section.access article h3{
font-size: clamp(16px,1.8vw,20px);
    font-weight: bold;
    margin-bottom: 1em;
	margin-top: 2em;
    font-feature-settings: "palt";
    line-height: 1.5;
    color: #0c5fa1;
}
section.access article dl{
	border-bottom: 1px solid #ccc;
	padding-bottom: 20px;
	margin-bottom: 20px;
}
section.access article dl dt{
	font-weight: bold;
	margin-bottom: 10px;
}
section.access article dl dd{
	line-height: 1.7;
	font-size: clamp(14px,1.6vw,16px);
	text-align: justify;
}



.ggmap {
	position: relative;
	width: 100%;
	padding-top: 35%; /* = height ÷ width × 100 */
}
.ggmap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
@media(min-width:768px) {
	a[href*="tel"] {
		pointer-events: none;
	}
}
@media screen and (max-width: 1024px) {
	.header__logo__link img.logo01 {
		height: 0.45em;
		margin-left: 0.5em;
	}
}
@media(max-width:768px) {
	.is-pc {
		display: none;
	}
	.is-sp {
		display: inherit;
	}
	.container {
		padding: 0 15px;
	}
	main section {
		padding: 2em 0;
	}
	main section h2 {
		margin-bottom: 0.9em;
	}
	/*kv
	-----------------------------*/
	#kv .kvgrid {
		grid-template-columns: 1fr;
	}
	#kv .kvgrid .kvleft{
		padding: 1em 1em 0;
	}
	#kv .kvgrid h1 {
		line-height: 1.2;
	}
	#kv .kvgrid h1 span{
		margin-bottom: 10px;
	}
	/*cta
	-----------------------------*/
	.btn_ctainner {
		padding: 20px 15px;
	}
	.btn_cta {
		background: var(--gray);
		padding: 30px 20px;
	}
	.btn_ctainner p {
		margin-bottom: 10px;
	}
	/*flow1
	-----------------------------*/
	ul.check1 li:before {
		content: '';
		background: url("../../common/img/icon-check1.svg")no-repeat 0 0;
		background-size: contain;
    width: 5%;
    height: 55%;
    display: inline-block;
    position: absolute;
    bottom: 0;
    left: 0;
    top: 1px;
	}
	ul.check1 li {
		padding-left: 2em;
	}
	#flow1 .grid-flow1{
		grid-template-columns: 1fr;
	}
	/*flow2
	-----------------------------*/
	#flow2 {
		padding: 3em 0;
	}
	#flow2 h2 {
		line-height: 1.5;
	}
	ul.check2 li {
		margin-bottom: 20px;
		line-height: 1.3;
	}
	ul.check2 li span {
		padding: 8px 10px;
		margin-right: 15px;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	/*flow3
	-----------------------------*/
	#flow4{
		padding:50px 0;
	}
	#flow4::after{
		    width: 124px;
    height: 24px;
	}
	#flow4 h2 span.marker{
		padding: 0;
	}
	.marker::before{
		bottom: 4px;
	}
	#flow4 h3 span {
		margin-bottom: 0;
	}
	#flow4 h4 strong{
		padding: 10px 0;
	}
	
	/*flow4
	-----------------------------*/
	#flow5 .flowinner h3 {
    font-size: clamp(20px,4vw,45px);
    font-weight: bold;
    letter-spacing: 0;
    position: relative;
    margin: 10px 0 10px;
    padding: 20px 0 0;
}
	#flow5 .flowinner h4{
		display: inline-block;
	}
	/*flow6
	-----------------------------*/
	#flow6 .flow6head h2{
		display: block;
	}
	#flow6 .flow6head h2 img {
    position: absolute;
    right: 10px;
    top: -41%;
    width: 65px;
	display: block;
}
	#flow6 .flow6head{
		margin-bottom: 20px;
	}
	#flow6 h3 {
		margin: 10px 0;
	}
	#flow6 h3 strong{
		color: var(--att);
		letter-spacing: 0.06em;
	}
	
	#flow6 .flow6grid{
		display: flex;
		flex-direction: column;
		margin-top: 1em;
	}
	#flow6 .flow6grid dl::before {
		width: 200px;
    height: 200px;

}
	#flow6 .flow6grid dl{
		margin: 2.5em 0;
	}
	#flow6 .flow6grid dl dd{
		width: auto;
	}
	#flow6 .flow6grid dl dt{
		font-size: 20px;
	}
	/*flow7
	-----------------------------*/
	#flow7{
		padding:2em 15px;
	}
	#flow7 .flow7container dl {
    padding: 10px;
    margin-bottom: 10px;
    position: relative;
}
	#flow7 .flow7container dl dt{
		    padding-right: 10px;
    margin-right: 14px;
	}
	#flow7 h2 span {
    font-size: clamp(20px,3vw,40px);
    line-height: 1.2;
    margin-bottom: 0.5em;
}
	#flow7 .flow7container dl dd {
line-height: 1.2;
    padding-top: 4px;
}
	/*flow8
	-----------------------------*/
	#flow8 .flow8grid{
		display: flex;
    flex-direction: column;
		grid-gap: 0;
	}
	#flow8 .flow8grid {
    
}
	#flow8 .flow8grid dl{
		margin: 4em 0;
	}
	#flow8 .flow8grid dl::before{
		width: 300px;
		height: 300px;
	}
	#flow8 .flow8grid dl dt{
		font-size: 20px;
	}
	#flow8 .flow8grid dl dd h4 {
    font-size: 25px;
}
	#flow8 .flow8grid dl dd p{
		font-size: 16px;
	}
	
ul.check3 li::before {
	width: 14px;
	height: 14px;

}
	ul.check3 li::before{
		top: 1px;
	}
	#flow8 .endpoint h2 {
    color: var(--brand);
    line-height: 1.3;
    margin-top: 60px;
    margin-bottom: 20px;
}
	
	/*contact*/
	#pagehead h1{
	padding: 2em 1em;
}
	section.form table td input[type="text"]{
		width: 100%;
	}
	section.form table th, section.form table td {
    border-bottom: none;
    padding: 0.8rem 0 0;
    display: block;
    width: 100%;
}
	section.form table th{
		border: none;
		margin-top: 1em;
	}
	section.form table .checkbox-group label{
		display: block;
	}
}