@charset "UTF-8";
/* CSS Document */

:root {
	--main-color:#5592E5;
	--background-color:#2C63AF;
	--background-color2:#E0EDFD;
	--text-color:#000000;
	--sub-color:#AAAAAA;
}

body, ul, li, button, h1, h2, p{
	padding: 0;
	margin: 0;
}

body{
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	letter-spacing: 0.08em;
	color:var(--text-color);
	font-size:16px;
	line-height: 1.75;
}



/* mobile */
/* ============================================ */
@media screen and (min-width: 768.2px) {
	.sp-only {
		display: none !important;
	}
}

@media screen and (max-width: 768px) {
	.pc-only {
		display: none !important;
	}
}


/* Headings */
/* ============================================ */
h1, h2{font-weight: 700; letter-spacing: 0.08em;}
h1{
	font-size: 36px;
	line-height: 1.5;
}
h2{
	font-size: 24px;
	line-height: 1.5;
	margin-bottom:32px;
	border-bottom: 3px solid var(--text-color);
}


@media screen and (max-width: 768px) {
	h1{font-size: calc(36px * 0.8); }
	h2{font-size: calc(24px * 0.8); }
}


/* Fonts */
/* ============================================ */

p{
	font-weight: 400;
	font-size:16px;
	line-height: 1.75;
	letter-spacing: 0.08em;
}


/* Anchor */
/* ============================================ */
a{
	text-decoration: none;
	color:var(--text-color);
	line-height: 1.75;
	transition : all .5s;
}
@media (any-hover: hover) {
	a:hover{color:var(--main-color);}
	a img:hover{opacity: .7;}
}


/* Arrow */
/* ============================================ */
.arrow::before{
	content: "";
	display: inline-block;
	background: url("../images/common/icon_arrow.svg") no-repeat;
	width:6px;
	height:9px;
	position:relative;
	top:-1px;
	right:7px;
}



/* Button */
/* ============================================ */

button{
	display: block;
	background: #FFF;
	border:none;
}

p + button {
	margin-top: 32px;
}

.blue-button a{
	background: var(--main-color);
	color:#FFF;
	min-width: 196px;
    height: 60px;
    padding: 0 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
	position: relative;
}
.pdf a::before{
	content:"";
	display: inline-block;
	background: url("../images/under/pdf.svg")no-repeat;
	width:23px;
	height:28px;
	position: absolute;
	top:15px;
	left:17px;
}

.blue-button a:hover{opacity: .7;}

@media screen and (max-width: 768px) {
	.blue-button, .blue-button a{width:calc(100% - 30px);}
}


/* Lists */
/* ============================================ */

ul, li{
	list-style: none;
	letter-spacing: 0.08em;
}

ul.list:not(:last-child),
.single .content-main > div ul {
	margin-bottom: 32px;
}

ul.list li,
.single .content-main > div ul li{
	padding-left: 1.2em;
    text-indent: -1.2em;
}
ul.list li:not(:last-child),
.single .content-main > div ul li:not(:last-child){margin-bottom:3px;}
ul.list li::before,
.single .content-main > div ul li::before{
	content: "";
	display:inline-block;
	width:8px;
	height:8px;
	background: var(--main-color);
	border-radius: 50%;
    position: relative;
    top: -2px;
    margin-right: 10px;
}

ul.list-second{
	margin:10px 0 20px 0px;
    display: grid;
    grid-template-columns: repeat(auto-fit, 250px);
    gap: 10px;
}
ul.list-second li{font-size: 14px;}
ul.list-second li::before{
	content: "";
	display:inline-block;
	width:8px;
	height:1px;
	background: var(--sub-color);
    position: relative;
    top: -5px;
    margin-right: 8px;
}



/* Header */
/* ============================================ */
.header-inner{
	width: 100%;
	height: 80px;
    display: flex;
    justify-content: space-between;
    align-items: center;
	font-weight: 700;
	background: #FFF;
    position: fixed;
    z-index: 999;
}
.header-title{
	font-size:24px;
	padding-left: 30px;
    font-weight: 700;
}
@media screen and (max-width: 1024px) {
	.header-title{
		font-size:18px;
		padding-left: 20px;
	}
}
@media screen and (max-width: 768px) {
	.header-inner{display: block;}
	.header-title{
		font-size:16px;
		padding: 23px 0 23px 20px;
	}
}



/* HeaderNav */
/* ============================================ */
.h-nav{padding-right: 30px;}
.h-nav, .h-nav ul{
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.h-nav ul li:not(:last-child){margin-right: 16px;}
.h-nav ul li a{display: flex;}

.h-nav ul a.current {
	color:var(--main-color);
}
@media screen and (max-width: 1024px) {
	.h-nav{padding-right: 20px;}
	.h-nav ul li{font-size:13px;}
	.h-nav ul li:not(:last-child){margin-right: 10px;}
}
@media screen and (max-width: 768px) {
	.h-nav{
		width: calc(100% - 40px);
    	height: 0;
    	display: block;
    	padding: 0 20px;
		position: relative;
    	z-index: 2;
    	background: #FFF;
		overflow: hidden;
		transition: height .45s ease-in-out;
	}
	.h-nav ul{display: block;}
	.h-nav ul li{font-size:16px;}
	.h-nav ul li:not(:last-child){margin-right: 0px;}
	.h-nav ul li a{
		display: block;
    	padding: 20px 0;
    	border-top: 1px dotted var(--sub-color);
	}
}


/* ハンバーガーメニュー ボタン */
.menu{
	display: none;
	width:20px;
	height:14px;
	padding: 10px;
    box-sizing: content-box;
	cursor: pointer;
}

.menu span{
	width: 100%;
  	height: 2px;
  	background-color:var(--main-color);
  	position: relative;
  	transition: ease .4s;
  	display: block;
}
.menu span:nth-child(1) {
  top: 0;
}
.menu span:nth-child(2) {
  margin: 5px 0;
}
.menu span:nth-child(3) {
  bottom: 0;
}
@media screen and (max-width: 768px) {
	.menu{
		display: block;
		position: fixed;
		right:20px;
		top: 23px;
	}
}

/* ハンバーガーメニュー　オープン時 */
.h-nav.active {
	height: calc(100dvh - 75px);
}
.menu.active span:nth-child(1) {
  top: 5px;
  transform: rotate(45deg);
}
.menu.active span:nth-child(2) {
  background-color: transparent;
}
.menu.active span:nth-child(3) {
  top: -9px;
  transform: rotate(-45deg);
}


/* Content */
/* ============================================ */

content{
	padding: 60px 0 0px;
	display: block;
	position: relative;
}
.content-inner{
	max-width:1120px;
	margin: 0 auto;
	padding-bottom:120px;
}



/* page to top */
.totop{
	width: 40px;
    height: 40px;
	display: none;
	position: fixed;
	bottom:15px;
	right:20px;
}

@media screen and (max-width: 1119px) {
	content{padding: 60px 20px 0px;}
}

@media screen and (max-width: 768px) {
	.content-inner{
		max-width:100%;
	}
}



/* Footer */
/* ============================================ */
footer{
	background-color:var(--background-color);
}

.footer-inner{
	max-width:1120px;
	margin: 0 auto;
	padding: 60px 0 100px;
	display: grid;
	gap: 32px;
	grid-template-columns: 1fr 1.5fr;
	color:#FFF;
}
.footer-title{font-weight: 700;}
.footer-title + p{
	font-size:14px;
	margin-top:32px;
}

.footer-nav ul{
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.footer-nav ul li:not(:last-child){margin-right: 16px;}
.footer-nav ul li a{
	display: flex;
	color:#FFF;
	font-weight: 700;
	white-space: nowrap;
}
.footer-nav ul li a:hover{opacity: .7;}
.footer-nav ul li a img{
	filter: brightness(0) saturate(100%) invert(92%) sepia(100%) saturate(0%) hue-rotate(202deg) brightness(106%) contrast(106%);
}
.footer-nav ul:last-of-type{
	margin:23px 0;
}
.footer-nav ul:last-of-type li a{
	font-size:14px;
	font-weight: 400;
}

.footer-nav button{
	margin-left: auto;
}
.footer-nav button a{
	width: 256px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
	position:relative;
}
.footer-nav button a::before{
	content:"";
	display: inline-block;
	background: url("../images/common/icon_arrow.svg") no-repeat;
	width:6px;
	height:9px;
	position: absolute;
    left: 30px;
}

.footer-nav address {
	margin-top: 23px;
	text-align: right;
	font-size: 10px;
	font-style: normal;
}

@media screen and (max-width: 1119px) {
	.footer-inner{padding: 60px 20px 100px;}
	
	.footer-nav ul li a{font-size:14px;}
}
@media screen and (max-width: 1024px) {
	.footer-nav ul li:not(:last-child){margin-right: 10px;}
	.footer-nav ul li a{font-size:13px;}
	.footer-nav ul:last-of-type li a{font-size:13px;}
}
@media screen and (max-width: 768px) {
	.footer-inner{
		display: block;
		gap: 60px;
	}
	
	.footer-nav ul:last-of-type{
		margin:60px 0 30px;
		justify-content: flex-start;
	}
	
	.footer-nav ul:first-child{display: none;}
	.footer-nav ul:last-of-type li a{font-size:14px;}
	.footer-nav button, .footer-nav button a{width:100%;}

	.footer-nav address {
		margin-top: 30px;
		text-align: left;
	}
}


/*reCAPTCHAのバッジを非表示に*/
.grecaptcha-badge { 
   visibility: hidden; 
}