@charset "utf-8";


/* ----------------------------------------------------------------------
	selection
---------------------------------------------------------------------- */

::selection { background: var(--color-navy); color: var(--color-white); }
::-moz-selection { background: var(--color-navy); color: var(--color-white); }


/* ----------------------------------------------------------------------
	root
---------------------------------------------------------------------- */

:root {
    --font-gothic: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    --font-mincho: "游明朝体", YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
    --font-en: "Roboto", sans-serif;

    --color-white: #fff;
	--color-sky-blue: #edf4f9;
	--color-white-light-blue: #e0ebf5;
	--color-white-blue: #d6e3ed;
	--color-light-blue: #5baff5;
    --color-blue: #005ead;
	--color-light-yellow: #fcdf98;
    --color-yellow: #f7b100;
	--color-red: #db2e3b;
	--color-blue-green: #00a99d;
	--color-orange: #f48c3d;
	--color-purple: #684487;
    --color-green: #7a994a;
	--color-navy: #202a8b;
    
    --color-white-gray: #f8f8f8;
    --color-light-gray: #ddd;
    --color-gray: #999;
    --color-dark-gray: #545454;
    --color-black: #333;
    
    --color-text: var(--color-black);
    --color-border: var(--color-light-gray);
}


/* ----------------------------------------------------------------------
	html,body
---------------------------------------------------------------------- */

html { font-size: 62.5%; }

body {
	font-family: var(--font-gothic);
	color: var(--color-text);
	font-size: 1.6rem;
    text-align: left;
	line-height: 1.6;
    letter-spacing: .05em;
    font-optical-sizing: auto;
    font-feature-settings: "palt" 1;
	-webkit-text-size-adjust: none;
}

@media screen and (max-width: 990px) {
	
}


/* ----------------------------------------------------------------------
	anchor
---------------------------------------------------------------------- */

a { -webkit-tap-highlight-color: rgba(0,0,0,0.3); transition: 0.3s; }
a:link { color: var(--color-text); text-decoration: underline; }
a:visited { color: var(--color-text); text-decoration: underline; }
a:hover { color: var(--color-light-blue); text-decoration: none; }
a:active { color: var(--color-light-blue); text-decoration: none; }
a:focus { outline: none; }
a img { transition: 0.3s; }
a:hover img { opacity: 0.8; }


/* ----------------------------------------------------------------------
	img
---------------------------------------------------------------------- */

img {
    max-width: 100%;
    height: auto;
}

.fix-img { width: 100%; }

.no-img { border: 1px solid var(--color-border); }

.circle-img { border-radius: 50%; }

.radius10 { border-radius: 10px; }
.radius20 { border-radius: 20px; }
.radius-circle { border-radius: 50%; }


/* ----------------------------------------------------------------------
	background
---------------------------------------------------------------------- */

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

.bg-sky-blue { background:  var(--color-sky-blue); }

.bg-white-light-blue { background:  var(--color-white-light-blue); }

@media screen and (max-width: 990px) {

}


/* ----------------------------------------------------------------------
	tel
---------------------------------------------------------------------- */

.tel-num {
    font-size: 1.8rem;
    line-height: 1.4;
}

.tel-num a {
    color: var(--color-text);
    font-size: 2.8rem;
    text-decoration: none;
}

@media screen and (max-width: 990px) {
    .tel-num a { text-decoration: underline; }
}


.contact-tel { padding: 0 0 8px; }

.contact-tel dt {
	font-size: 2.4rem;
	font-weight: bold;
}

.contact-tel dt a {
	color: var(--color-text);
	font-size: 3.4rem;
	text-decoration: none;
}

.contact-tel--white dt a { color: var(--color-white); }


@media screen and (max-width: 990px) {
	.contact-tel { padding: 0; }

	.contact-tel dt { font-size: 2rem; }

	.contact-tel dt a { font-size: 2.8rem; }
}


/* ----------------------------------------------------------------------
	btn
---------------------------------------------------------------------- */

/* btn-default */
.btn-default a {
    position: relative;
    background: var(--color-blue);
	color: var(--color-white);
	font-size: 1.8rem;
	font-weight: bold;
    text-align: center;
    text-decoration: none;
    padding: 15px 30px;
    width: 320px;
    display: inline-block;
    border-radius: 1000px;
}

.btn-default a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    background: url("../img/icon_a_default.svg") center center no-repeat;
    background-size: 8px 15px;
    width: 8px;
    height: 15px;
    display: block;
}

.btn-default--light-blue a { background: var(--color-light-blue); }

.btn-default--green a { background: var(--color-green); }

.btn-default a:hover { opacity: 0.8; }

@media screen and (max-width: 990px) {
   .btn-default a {
		font-size: 1.6rem;
		width: 100%;
	}
}


/* btn-sub */
.btn-sub a { 
    position: relative;
    text-decoration: none;
    padding: 2px 0 2px 10px;
    display: inline-block;
}

.btn-sub a::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 0;
    background: url("../img/icon_a_sub_black.svg") center center no-repeat;
    background-size: 6px 12px;
    width: 6px;
    height: 12px;
    display: block;
}


/* btn-contact */
.btn-contact a {
	background: var(--color-green);
    color: var(--color-white);
	font-size: 1.8rem;
	font-weight: bold;
    text-align: center;
    text-decoration: none;
    line-height: 54px;
    height: 54px;
    display: block;
    border-radius: 1000px;
}

.btn-contact  a:hover { opacity: 0.8; }

.btn-contact  a span { position: relative; }

.btn-contact  a span { padding-left: 40px; }

.btn-contact a span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: block;
}

.btn-contact a span::before {
    background: url("../img/icon_contact.svg") center center no-repeat;
    background-size: 32px 24px;
    width: 32px;
    height: 24px;
}

@media screen and (max-width: 990px) {
	.btn-contact a { font-size: 1.6rem; }
}


/* link-blank */
.link-blank { padding-right: 18px!important; }
.link-blank::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(calc(-50% + 2px));
	background: url("../img/icon_blank.svg") right center no-repeat;
	background-size: 14px 12px;
    width: 14px;
    height: 12px;
    display: block;
}

a.link-tel {
    color: var(--color-black);
    text-decoration: none;
}

@media screen and (max-width: 990px) {
    a.link-tel { text-decoration: underline; }
}


/* ----------------------------------------------------------------------
	txt
---------------------------------------------------------------------- */

.fs10 { font-size: 1rem; }
.fs12 { font-size: 1.2rem; }
.fs14 { font-size: 1.4rem; }
.fs16 { font-size: 1.6rem; }
.fs18 { font-size: 1.8rem }
.fs20 { font-size: 2rem; }
.fs22 { font-size: 2.2rem; }
.fs24 { font-size: 2.4rem; }
.fs26 { font-size: 2.6rem; }
.fs28 { font-size: 2.8rem; }
.fs30 { font-size: 3rem; }

.text-block p,
.text-block ul,
.text-block dl {
	line-height: 2;
	margin: 0 0 1em;
}

.text-block p:last-child,
.text-block ul:last-child,
.text-block dl:last-child { margin: 0; }

.font-en {
    font-family: var(--font-en);
    font-weight: bold;
    letter-spacing: .05em;
}

.font-mincho {
    font-family: var(--font-mincho);
    letter-spacing: .1em;
}

.left { text-align: left !important; }
.center { text-align: center !important; }
.right { text-align: right !important; }

.bold { font-weight: bold; }

.block { display: block; }

.color-blue { color: var(--color-blue); }
.color-red { color: var(--color-red); }
.color-orange { color: var(--color-orange); }
.color-purple { color: var(--color-purple); }
.color-blue-green { color: var(--color-blue-green); }
.color-yellow { color: var(--color-yellow); }

.marker {
    background: linear-gradient(transparent 50%, var(--color-yellow)  50%);
    padding: 0 0 0.16em;
}

ul.indent li { 
    text-indent: -1em;
    margin: 0 0 0.4em 1em;
}
ul.indent li:last-child { margin-bottom: 0; }

@media screen and (max-width: 990px) {
    .sp-none { display: none; }
    
    .sp-block { display: block; }
    
    .sp-inline-block { display: inline-block; }
}


/* ----------------------------------------------------------------------
	wrapper
---------------------------------------------------------------------- */

#wrapper {
    width: 100%;
    min-width: 1240px;
}

#home #wrapper,
#strength #wrapper { overflow: hidden; }

@media screen and (max-width: 990px) {
    #wrapper { min-width: inherit; }
}


/* ----------------------------------------------------------------------
	header
---------------------------------------------------------------------- */

.l-header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
	transition: .4s;
}

.l-header:hover,
.l-header.fixed,
.under .l-header { background: var(--color-navy); }

.l-header-inner {
    position: relative;
    height: 120px;
    transition: .4s;
}

.l-header.fixed .l-header-inner { height: 90px; }

 .l-header-logo {
     position: absolute;
     top: 50%;
     left: 50px;
	 transform: translateY(-50%);
     z-index: 1;
	 line-height: 1;
	 transition: .4s;
}

.l-header-logo img { line-height: 1; }

.l-header.fixed .l-header-logo img { width: 160px; }

@media screen and (max-width: 990px) {
	.l-header { position: absolute; }
	
	.l-header:hover,
	.l-header.fixed { background: none; }
	
	.under .l-header { background: var(--color-navy); }
	
	.l-header-logo { left: 20px; }
	
	.l-header-logo img {
		width: auto;
		height: 40px;
	}
	
	.l-header-inner,
	.l-header.fixed .l-header-inner { height: 60px; }
}


/* l-header-nav */
.l-header-nav {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    transition: .4s;
}

.l-header-nav nav > ul {
    display: flex;
    gap: min(2.142vw, 30px);
}

.l-header-nav nav > ul > li { position: relative; }

.l-header-nav nav > ul > li > a,
.l-header-nav nav > ul > li > span {
    color: var(--color-white);
	font-size: min(1.285vw, 1.8rem);
	font-weight: bold;
    text-decoration: none;
    line-height: 50px;
    height: 50px;
    display: block;
    cursor: pointer;
}

.l-header-nav nav > ul > li > a:hover,
.l-header-nav nav > ul > li > span:hover { color: var(--color-white); }

.l-header-nav nav > ul > li > a:before,
.l-header-nav nav > ul > li > a:after,
.l-header-nav nav > ul > li > span:before,
.l-header-nav nav > ul > li > span:after {
    content: "";
    position: absolute;
    bottom: 0;
	background: var(--color-white);
    width: 0;
    height: 1px;
    display: inline-block;
    transition: all 0.6s ease 0s;
}

.l-header-nav nav > ul > li > a:after,
.l-header-nav nav > ul > li > span:after { left: 50%; }

.l-header-nav nav > ul > li > a:before,
.l-header-nav nav > ul > li > span:before { right: 50%; }

.l-header-nav nav > ul > li > a:hover:after,
.l-header-nav nav > ul > li > a:hover:before,
.l-header-nav nav > ul > li > span:hover:after,
.l-header-nav nav > ul > li > span:hover:before { width: 50%; }

.l-header-nav nav ul li ul {
    position: absolute;
    top: 50px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-white);
    width: 320px;
    border-radius: 10px;
    box-shadow: 0 0 8px rgba(0,0,0,0.1);
    display: none;
}

.l-header-nav nav ul li ul li { border-bottom: 1px solid var(--color-border); }
.l-header-nav nav ul li ul li:last-child { border: none; }

.l-header-nav nav ul li ul li a {
    position: relative;
    text-decoration: none;
    padding: 16px 38px 16px 20px;
    display: block;
}

.l-header-nav nav ul li ul li a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    background: url("../img/icon_a_default_blue.svg") center center no-repeat;
    background-size: 8px 15px;
    width: 8px;
    height: 15px;
    display: block;
}

@media screen and (max-width: 1400px) {

}

/* l-header-btn-contact */
.l-header-btn-contact {
    position: absolute;
    top: 50%;
    right: 50px;
    transform: translateY(-50%);
	width: 200px;
}

@media screen and (max-width: 990px) {
    .l-header-nav,
   	.l-header-btn-contact { display: none; }
}




/* ----------------------------------------------------------------------
	l-content
---------------------------------------------------------------------- */

.l-content {}

.l-content-inner {
    margin: 0 auto;
    max-width: 1100px;
}

.l-content-inner--small { max-width: 800px; }

@media screen and (max-width: 990px) {
    .l-content-inner { margin: 0 8vw; }
}


/* ----------------------------------------------------------------------
	f-contact
---------------------------------------------------------------------- */

.f-contact { position: relative; }

#home .f-contact-wrap { margin-top: -150px; }

#contact  .f-contact { display: none; }

.f-contact::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: -1;
	background: var(--color-navy);
	width: 100%;
	height: 50%;
}

.f-contact-inner {
	background: url("../img/f_contact_bg.svg") right center no-repeat var(--color-blue);
	background-size: 340px 414px;
	color: var(--color-white);
	margin: 0 auto;
    max-width: 1100px;
	height: 300px;
	padding:  0 100px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.page-ttl.f-contact-ttl { margin: 0; }

.f-contact-txt {
	font-size: 1.8rem;
	margin: 0 0 1em;
}

.f-contact-column {
	width: 680px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.f-contact-btn { width: 320px; }

@media screen and (max-width: 990px) {
	.f-contact { padding:  0 8vw; }

	#home .f-contact-wrap { margin-top: 0; }

	.contact .f-contact { display: none; }
	
	.f-contact-inner {
		background: url("../img/f_contact_bg.svg") right top -15px no-repeat var(--color-blue);
		background-size: 44vw auto;
		height: auto;
		padding:  8vw;
		display: block;
	}

	.page-ttl.f-contact-ttl { margin: 0 0 1em; }

	.f-contact-txt {
		font-size: 1.6rem;
		margin: 0 0 0.8em;
	}

	.f-contact-column {
		width: auto;
		display: block;

	}

	.f-contact-btn {
		margin-top: 20px;
		width: auto;
	}
}


/* ----------------------------------------------------------------------
	footer
---------------------------------------------------------------------- */

.l-footer {
	background: var(--color-navy);
	color: var(--color-white);
}

.l-footer-inner {
    position: relative;
    margin: 0 auto;
	padding: 100px 0;
    max-width: 1100px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.l-footer-logo { margin: 0 0 30px; }

.l-footer-nav {
	width: 760px;
	display: flex;
	justify-content: space-between;
}

.l-footer-nav-block dl { margin: 0 0 1.4em; }
.l-footer-nav-block dl:last-child { margin: 0; }

.l-footer-nav dl a { text-decoration: none; }

.l-footer-nav dl dt { margin: 0 0 0.4em; }

.l-footer-nav dl dt a {
	color: var(--color-light-blue);
	font-size: 1.8rem;
}

.l-footer-nav dl dt a:hover { color: var(--color-green); }

.l-footer-nav dl dd a {
	color: var(--color-white);
	padding: 4px 0;
	display: inline-block;
}

.l-footer-nav dl dd a:hover { color: var(--color-light-blue); }

.l-footer-btm {
	background: var(--color-black);
	padding: 30px 0;
}

.l-footer-btm-inner {
	margin: 0 auto;
	max-width: 1100px;
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
	align-items: center;
}

.l-footer-link a {
	color: var(--color-white);
	font-size: 1.4rem; 
	text-decoration: none;
}

.l-footer-link a:hover { text-decoration: underline; }

.l-footer-copy { font-size: 1.2rem; }
 
@media screen and (max-width: 990px) {
	.l-footer-inner {
		padding: 60px 8vw;
		display: block;
	}

	.l-footer-block { margin: 0 0 70px; }

	.l-footer-logo {
		text-align: center;
		margin: 0 0 30px;
	}

	.l-footer-address { text-align: center; }

	.l-footer-nav {
		width: auto;
		display: block;
	}

	.l-footer-nav-block dl { margin: 0 0 2em; }
	.l-footer-nav-block { margin: 0 0 2em; }

	.l-footer-nav dl { margin: 0 0 2em; }
	.l-footer-nav dl:last-child { margin: 0; }
	
	.l-footer-nav dl dd ul li { margin: 0 0 0.4em; }
	.l-footer-nav dl dd ul li:last-child { margin: 0; }
	
	.l-footer-btm { padding: 25px 8vw 15px; }

	.l-footer-btm-inner { display: block; }

	.l-footer-copy {
		font-size: 1.2rem;
		margin-top: 1.4em;
	}
}


/* pagetop */
.l-pagetop {
	position: fixed;
	right: 30px;
	bottom: 30px;
	z-index: 100;
    display: none;
}

.-l-pagetop:hover img { opacity: 0.8; }

@media screen and (max-width: 990px) {
    .l-pagetop {
        right: 20px;
        bottom: 20px;
    }
    
    .l-pagetop img { width: 40px; }
}


/* ----------------------------------------------------------------------
	l-low-service
---------------------------------------------------------------------- */

.l-flow-service {
	position: relative;
	height: 540px;
}

.l-flow-service::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	background: url("../../img/flow-service/chart.svg");
	background-size: 1100px 540px;
	width: 1100px;
	height: 540px;
	display: block;
}

.l-flow-service-step-num {
	position: absolute;
	background: var(--color-white);
	font-size: 3rem;
	text-align: center;
	line-height: 58px;
	padding-left: 2px;
	width: 60px;
	height: 60px;
	border-radius: 50%;
}

.l-flow-service-step-box { position: absolute; }

.l-flow-service-step-ttl {
	margin: 0 0 0.8em;
	font-weight: bold;
	display: flex;
	align-items: center;
	gap: 0 10px;
}

.l-flow-service-step-ttl__en {
	font-size: 1.4rem;
	padding: 4px 0 2px;
}

.l-flow-service-step-ttl__ja { font-size: 2rem; }

.l-flow-service-step-txt p {
	line-height: 1.8;
	margin: 0 0 0.6em;
}

.l-flow-service-step-txt p:last-child { margin: 0; }

.l-flow-service-step-contact {
	margin-top: 0.6em;
	display: flex;
	gap: 0 15px;
}

.l-flow-service-step-ph {
	position: absolute;
	z-index: -2;
}

.l-flow-service-step-ph img { border-radius: 50%; }


/* l-flow-service-step--01 */
.l-flow-service-step--01 .l-flow-service-step-box {
	top: 0;
	left: 0;
}

.l-flow-service-step--01 .l-flow-service-step-num {
	top: 156px;
	left: 20px;
	color: var(--color-blue);
	border: 2px solid var(--color-blue);
}

.l-flow-service-step--01 .l-flow-service-step-ttl { color: var(--color-blue); }

.l-flow-service-step--01 .l-flow-service-step-ttl__en {
	border-top: 1px solid var(--color-blue);
	border-bottom: 1px solid var(--color-blue);
}


/* l-flow-service-step--02 */
.l-flow-service-step--02 .l-flow-service-step-box {
	top: 5px;
	left: 600px;
}

.l-flow-service-step--02 .l-flow-service-step-num {
	top: 7px;
	left: 497px;
	color: var(--color-red);
	border: 2px solid var(--color-red);
}

.l-flow-service-step--02 .l-flow-service-step-ttl { color: var(--color-red); }

.l-flow-service-step--02 .l-flow-service-step-ttl__en {
	border-top: 1px solid var(--color-red);
	border-bottom: 1px solid var(--color-red);
}

.l-flow-service-step--02 .l-flow-service-step-ph {
	top: 15px;
	left: 386px;
}


/* l-flow-service-step--03 */
.l-flow-service-step--03 .l-flow-service-step-box {
	top: 250px;
	left: 60px;
}

.l-flow-service-step--03 .l-flow-service-step-num {
	top: 295px;
	left: 370px;
	color: var(--color-blue-green);
	border: 2px solid var(--color-blue-green);
}

.l-flow-service-step--03 .l-flow-service-step-ttl { color: var(--color-blue-green); }

.l-flow-service-step--03 .l-flow-service-step-ttl__en {
	border-top: 1px solid var(--color-blue-green);
	border-bottom: 1px solid var(--color-blue-green);
}

.l-flow-service-step--03 .l-flow-service-step-ph {
	top: 185px;
	left: 386px;
}


/* l-flow-service-step--04 */
.l-flow-service-step--04 .l-flow-service-step-box {
	top: 190px;
	left: 768px;
}

.l-flow-service-step--04 .l-flow-service-step-num {
	top: 185px;
	left: 675px;
	color: var(--color-orange);
	border: 2px solid var(--color-orange);
}

.l-flow-service-step--04 .l-flow-service-step-ttl { color: var(--color-orange); }

.l-flow-service-step--04 .l-flow-service-step-ttl__en {
	border-top: 1px solid var(--color-orange);
	border-bottom: 1px solid var(--color-orange);
}

.l-flow-service-step--04 .l-flow-service-step-ph {
	top: 185px;
	left: 556px;
}

/* l-flow-service-step--05 */
.l-flow-service-step--05 .l-flow-service-step-box {
	top: 434px;
	left: 224px;
}

.l-flow-service-step--05 .l-flow-service-step-num {
	top: 468px;
	left: 546px;
	color: var(--color-purple);
	border: 2px solid var(--color-purple);
}

.l-flow-service-step--05 .l-flow-service-step-ttl { color: var(--color-purple); }

.l-flow-service-step--05 .l-flow-service-step-ttl__en {
	border-top: 1px solid var(--color-purple);
	border-bottom: 1px solid var(--color-purple);
}

.l-flow-service-step--05 .l-flow-service-step-ph {
	top: 355px;
	left: 556px;
}


/* l-flow-service-step--last */
.l-flow-service-step--last .l-flow-service-step-box {
	top: 420px;
	left: 796px;
}

.l-flow-service-step-last {
	position: absolute;
	top: 314px;
	left: 900px;
	background: var(--color-red);
	color: var(--color-white);
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.4;
	text-align: center;
	padding: 7px 0 0;
	width: 150px;
	height: 80px;
	border-radius: 10px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.l-flow-service-step-last__en { font-size: 2.4rem; }

.l-flow-service-step--last .l-flow-service-step-ttl {
	color: var(--color-green);
	margin: 0 0 0.2em;
}


@media screen and (max-width: 990px) {
	.l-flow-service {
		position: relative;
		height: auto;
	}

	.l-flow-service::before { content: none; }

	.l-flow-service-inner { position: relative; }

	.l-flow-service-inner::before {
		content: "";
		position: absolute;
		top: 0;
		left: 20px;
		z-index: -1;
		background: var(--color-white-light-blue);
		width: 20px;
		height: 100%;
		display: block;
	}

	.l-flow-service-step {
		display: flex;
		gap: 0 15px;
	}

	.l-flow-service-step-num { position: static; }

	.l-flow-service-step-block {
		margin: 0 0 30px;
		width: calc(100% - 60px - 15px);
	}

	.l-flow-service-step-box { position: static; }

	 .l-flow-service-step-ttl { padding-top: 15px; }
	 
	.l-flow-service-step-ttl__ja { font-size: 1.8rem; }

	.l-flow-service-step-contact { display: block; }
	
	.l-flow-service-step-contact p { margin: 0 0 0.6em; }

	.l-flow-service-step-ph {
		position: static;
		text-align: center;
		margin-top: 20px;
	}
	
	.l-flow-service-step-last {
		position: static;
		width: 100%;
	}
	
	.l-flow-service-step--last .l-flow-service-step-block {
		width: 100%;
		margin: 30px 0 0;
	}
	.l-flow-service-step--last .l-flow-service-step-ttl {
		text-align: center;
		padding-top: 0;
		display: block;
	}
}


/* ----------------------------------------------------------------------
	faq
---------------------------------------------------------------------- */

.l-faq__q {
    position: relative;
    padding: 16px 30px 22px 0;
    cursor: pointer;
    transition: .4s;
}

.l-faq__box { border-bottom: 1px solid var(--color-border);  }

.l-faq__q.on { color: var(--color-red); }
.l-faq__q:hover { color: var(--color-yellow); }

.l-faq__box:first-child .l-faq__q { border-top: 1px solid var(--color-border);  }

.l-faq__q dl { display: flex; }

.l-faq__q dl dt {
    color: var(--color-red);
    font-size: 3.6rem;
    font-weight: 200;
    line-height: 1;
    width: 40px;
}

.l-faq__q dl dd {
    padding-top: 7px;
    width: calc(100% - 40px);
}

.l-faq__q .icon-plus {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.l-faq__a {
    padding: 0 0 20px 40px;
    display: none;
}

@media screen and (max-width: 990px) {
    .l-faq__q { padding: 12px 30px 16px 0; }

    .l-faq__q dl dt {
        font-size: 3rem;
        width: 35px;
    }
    
    .l-faq__q dl dd { padding-top: 5px; }
}


/* ----------------------------------------------------------------------
	heading
---------------------------------------------------------------------- */

/* page-ttl */
.page-ttl {
	font-weight: bold;
    line-height: 1.4;
    margin: 0 0 2.6em;
}

.page-ttl--center { text-align: center; }

.page-ttl--pt { padding: 200px 0 0; }

.page-ttl--white .page-ttl__ja { color: var(--color-white); }

.page-ttl__en {
	position: relative;
    color: var(--color-light-blue); 
    font-size: 1.8rem;
    font-weight: bold;
	padding:  0 0 0.6em;
	margin: 0 0 1em;
}

.page-ttl__en::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	background: var(--color-light-blue);
	width: 20px;
	height: 1px;
	display: block;
}

.page-ttl--center .page-ttl__en::before{
	left: 50%;
	transform: translateX(-50%);
}

.page-ttl__ja { font-size: 2.4rem; }

@media screen and (max-width: 990px) {
	.page-ttl--pt { padding: 100px 0 0; }
}


/* page-s-ttl */
.page-s-ttl {
    position: relative;
    background: url("../img/ttl_bg.svg") center top no-repeat;
    background-size: 60px 54px;
    text-align: center;
    padding: 64px 0 0;
    margin: 0 0 1.6em;
}

.page-s-ttl__ja {
    font-size: 2.4rem;
    font-weight: normal;
    margin: 0 0 0.2em;
}

.page-s-ttl__en {
    color: var(--color-red);
    font-size: 1.8rem;
}

@media screen and (max-width: 990px) {
    .page-s-ttl { margin: 0 0 1.6em; }
    
    .page-s-ttl--short { margin: 0 0 0.8em; }

    .page-s-ttl__ja { font-size: 2rem; }
    
    .page-s-ttl--cc { margin: 0 0 2.2em; }
    .page-s-ttl--cc .page-s-ttl__en {
        bottom: -70px;
        font-size: 5rem;
    }
}


/* ----------------------------------------------------------------------
	icon
---------------------------------------------------------------------- */

/* icon-plus */
.icon-plus {
    position: relative;
    width: 18px;
    height: 18px;
    display: block;
}

.icon-plus:before,
.icon-plus:after {
    content: "";
    position: absolute;
    top: 8px;
    left: 0;
    background: var(--color-blue);
    width: 18px;
    height: 1px;
    display: block;
    transition: 0.2s;
}

.icon-plus--white:before,
.icon-plus--white:after { background: var(--color-white); }

.icon-plus:before { transform: rotate(90deg); }

.on .icon-plus:before { transform: rotate(0); }

@media screen and (max-width: 990px) {
    .icon-plus--large {
        width: 18px;
        height: 18px;
    }

    .icon-plus--large::before,
    .icon-plus--large::after {
        top: 8px;
        width: 18px;
        height: 1px;
    }
}


.icon-decimal li {
    margin-left: 1.5em;
	margin-bottom: 0.6em;
    list-style: decimal;
}

.icon-decimal li:last-child { margin-bottom: 0; }


/* icon-indent */
.icon-indent li {
    text-indent: -1em;
    margin-left: 1em;
}

.icon-indent li::before { content: "・"; }

.icon-indent-space li { margin-bottom: 0.6em; }
.icon-indent-space li:last-child { margin-bottom: 0; }


/* ----------------------------------------------------------------------
	modal
---------------------------------------------------------------------- */

.l-modal-box {
    position: relative;
    text-align: left;
    border-radius: 10px;
    padding: 60px 50px 60px;
}

.modal-hours { max-width: 600px; }

.l-modal-box__close {
	position: absolute;
	top: 30px;
	right: 30px;
    width: 40px;
    height: 40px;
    display: block;
    transition: 0.7s;
    cursor: pointer;
}

.l-modal-box__close:hover { opacity: 0.6; }

.l-modal-box__close:before,
.l-modal-box__close:after {
	content: "";
	position: absolute;
	top: 50%; 
	right: 0;
    background: var(--color-dark-gray);
	width: 40px;
	height: 2px;
    display: block;
    transform: rotate(-45deg);
}

.l-modal-box__close:before { transform: rotate(45deg); }

.l-modal-bg {
	position: fixed;
	top: 0;
	left: 0;
	background: rgba(0,0,0,0.8);
	width: 100%;
	height: 100%;
	display: block;
}

@media screen and (max-width: 990px) {
    .l-modal-box { padding: 60px 20px 20px; }

    .l-modal-box__close {
        top: 15px;
        right: 15px;
    }
}


/* ----------------------------------------------------------------------
	local-nav
---------------------------------------------------------------------- */

.local-nav {
	margin: 0 0 120px;
	display: flex;
	justify-content: center;
	gap: 0 40px;
}

.local-nav li {
	width: calc((100%  - 120px) / 4);
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}

.local-nav li a {
	position: relative;
	text-decoration: none;
	padding: 15px 30px 15px 0;
	display: block;
}

.local-nav li a::before {
	content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: rotate(90deg) translateX(-50%);
	transform-origin: left top;
    background: url("../img/icon_a_default_blue.svg") center center no-repeat;
    background-size: 8px 15px;
    width: 8px;
    height: 15px;
    display: block;
}

@media screen and (max-width: 990px) {
	.local-nav {
		margin: 0 0 80px;
		display: block;
	}
	
	.local-nav li {
		border-top: none;
		width: 100%;
	}
	
	.local-nav li:first-child { border-top: 1px solid var(--color-border); }
}

/* ----------------------------------------------------------------------
	table
---------------------------------------------------------------------- */

.tbl {
    position: relative;
    width: 100%;
    border-top: 1px solid var(--color-border);
}

.tbl tr { border-bottom: 1px solid var(--color-border); }

.tbl th,
.tbl td {
	text-align: left;
	padding: 20px 0;
}

.tbl th {
    color: var(--color-blue);
    width: 20%;
    padding-right: 20px;
}

.tbl td { padding-left: 20px; }


@media screen and (max-width: 990px) {
	.tbl { display: block; }

    .tbl tbody,
    .tbl tr {
        width: 100%!important;
        display: block;
    }

	.tbl th,
	.tbl td {
        padding: 20px 0;
        display: block;
        width: 100%;
    }

    .tbl th { padding-bottom: 0.6em; }
    .tbl td { padding-top: 0; }
}


/* ----------------------------------------------------------------------
	list
---------------------------------------------------------------------- */

/* icon-list */
.icon-list li,
.icon-list dl dt {
    position: relative;
    padding-left: 18px;
}

.icon-list li::before,
.icon-list dl dt::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
    background: var(--color-blue);
    width: 14px;
    height: 14px;
    border-radius: 50%;
}

.icon-list--yellow li::before,
.icon-list--yellow dl dt::before { background: var(--color-yellow); }

.icon-list dl { margin: 0 0 0.8em; }
.icon-list li { margin: 0 0 0.4em; }

.icon-list dl:last-child,
.icon-list li:last-child { margin: 0; }

@media screen and (max-width: 990px) {

}


/* list-style */
.list-style { margin-bottom: 0.8em; }
.list-style:last-child { margin-bottom: 0; }
.list-style > li {
	margin-left: 2em;
	margin-bottom: 0.6em;
	list-style: decimal;
}

.list-style li:last-child { margin-bottom: 0; }

.list-style--latin > li { list-style: lower-latin; }
.list-style--katakana > li {
    padding-left: 5px;
    list-style: katakana;
}

@media screen and (max-width: 990px) {
}


/* ----------------------------------------------------------------------
	target
---------------------------------------------------------------------- */

.target-block {
    margin-top: -120px;
    padding-top: 120px;
}

@media screen and (max-width: 990px) {
    .target-block {
        margin-top: -80px;
        padding-top: 80px;
    }
}


/* ----------------------------------------------------------------------
	column
---------------------------------------------------------------------- */

.l-column02,
.l-column03 {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 60px 0;
}

.l-column02--reserve { flex-direction: row-reverse; }

.l-column02--center { align-items: center; }

.l-column02--con-center {
    margin: 0 auto;
    max-width: 1100px;
}

.l-column02__inner { width: 520px; }

.l-column03__inner { width: calc((100% - 110px) / 3); }

@media screen and (max-width: 990px) {
    .l-column02,
    .l-column03 {  gap: 40px 0;}
    
    .l-column02__inner,
    .l-column03__inner { width: 100%; }
}


/* ----------------------------------------------------------------------
    l-blog
---------------------------------------------------------------------- */

.l-blog {
	display: flex;
	justify-content: space-between;
    flex-wrap: wrap;
    gap: 60px;
}

.l-blog-content { width: 800px; }

.l-blog-list li { margin: 0 0 20px; }
.l-blog-list li:last-child { margin: 0; }

.l-blog-list li a {
    position: relative;
    background: var(--color-white);
    text-decoration: none;
    padding: 30px 80px 30px 30px;
    display: block;
    border-radius: 10px;
}

.l-blog-list li a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
    background: url("../img/icon_a_default.svg") 10px center var(--color-dark-gray) no-repeat;
    background-size: 6px 12px;
    width: 24px;
    height: 24px;
    border-radius: 100%;
    display: block;
    transition: 0.2s;
}

.l-blog-list li a dl {
    display: flex;
    align-items: center;
    gap: 0 20px;
}

.l-blog-list li a dl dt { color: var(--color-gray); }

.l-blog-article__header {
	padding: 0 0 0.8em;
	margin: 0 0 1.4em;
	border-bottom: 1px solid var(--color-border);
}

.l-blog-article__date {
	color: var(--color-gray);
	margin: 0 0 0.2em;
}

.l-blog-article__ttl {
    font-size: 1.8rem;
    font-weight: 400;
}

.l-blog-article__body p { margin: 0 0 1em; }
.l-blog-article__body p:last-child { margin: 0; }

.l-blog-sidebar { width: 230px; }

.l-blog-sidebar__box {
	padding: 0 0 40px;
	margin: 0 0 40px;
	border-bottom: 1px solid var(--color-border);
}

.l-blog-sidebar__ttl {
	color: var(--color-blue);
	font-size: 2.6rem;
	font-weight: normal;
	margin: 0 0 0.2em;
}

.l-blog-sidebar__list li { margin: 0 0 0.6em; }
.l-blog-sidebar__list li:last-child { margin: 0; }

@media screen and (max-width: 990px) {
	.l-blog-content { width: 100%; }
    
    .l-blog-list li a { padding: 20px 60px 20px 20px; }

    .l-blog-list li a::before { right: 20px; }

    .l-blog-list li a dl { display: block; }

	.l-blog-article__ttl { font-size: 1.6rem; }

	.l-blog-sidebar { width: 100%; }
}


/* ----------------------------------------------------------------------
    l-sticky
---------------------------------------------------------------------- */

.l-sticky {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.l-sticky-sideber {
    position: sticky;
    top: 140px;
    left: 0;
    width: 200px;
}

.l-sticky-content { width: 800px; }

@media screen and (max-width: 1150px) {
    .l-sticky { display: block; }

    .l-sticky-sideber {
        position: static;
        width: auto;
    }

    .l-sticky-content { width: auto; }
}


.l-sticky-local-nav { margin: 0 0 120px; }

.l-sticky-local-nav li { position: relative; }

.l-sticky-local-nav li a {
    position: relative;
    font-weight: bold;
    text-decoration: none;
    padding: 15px 40px 15px 0;
    display: block;
}

.l-sticky-local-nav li a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 11px;
    transform: translateY(-50%);
    background: url("../img/icon_a_default_blue.svg") center center no-repeat;
    background-size: 8px 15px;
    width: 8px;
    height: 15px
}

.l-sticky-local-nav li::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    border-top: 1px solid var(--color-border);
    display: block;
}

.l-sticky-local-nav li::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 30px;
    border-top: 1px solid var(--color-blue);
    display: block;
}

@media screen and (max-width: 1150px) {
    .l-sticky-local-nav {
        margin: 0 0 80px;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    
    .l-sticky-local-nav li { width: calc((100% - 20px) / 2); }
    
    .l-sticky-local-nav li a { padding: 15px 30px 15px 0; }
    
    .l-sticky-local-nav li a::before {
        right: 4px;
        transform: rotate(90deg);
    }
    
    .l-sticky-local-nav li::after { width: 20px; }
}



/* ----------------------------------------------------------------------
    slider
---------------------------------------------------------------------- */

.l-slider__wrap { overflow: hidden; }

.l-slider {
	display: flex;
	margin: 0;
	padding: 0;
	width: max-content;
}

.l-slider__ph img {
	display: block;
	width: 100%;
}


/* ----------------------------------------------------------------------
    abimation
---------------------------------------------------------------------- */

/* updown */
.updown {
    animation: move-y 1s infinite alternate ease-in-out;
    display: inline-block; 
}

@keyframes move-y {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(15px);
  }
}





