﻿@charset 'utf-8';

/*==================================================*/

html,
body {
    margin: 0;
    padding: 0;
    font-family: "ヒラギノ角ゴ Pro W3", "Noto Sans JP", "メイリオ", sans-serif;;
    font-size: 16px;
    line-height: 1.4;
}

body {
    width: 100%;
}

.container {
}

.mobile-on {
    display: none;
}

img {
	display: block;
    max-width: 100%;
}

.center {
	text-align: center;
}

a.btn {
	background-color: #006fcf;
	color: #fff;
	display: inline-block;
	border-radius: 8px;
	width: 20rem;
	font-size: 1.375rem;
	padding: .4rem 0;
    transition: opacity .3s;
	text-align: center;
	margin: 0 auto;
}

a.btn:hover {
	opacity: .8;
}

a.btn img {
	display: block;
	width: 2rem;
	height: auto;
	margin: 0 auto;
}

@media screen and (max-width: 1277px) {
    .mobile-off-m {
        display: none;
    }
	html,
	body {
	    font-size: 15px;
	}
}

@media screen and (max-width: 600px) {
    .mobile-off {
        display: none;
    }

    .mobile-on {
        display: block;
    }

	html,
	body {
	    font-size: 14px;
	}

    a.btn {
    	width: 50%;
    	font-size: calc(1.375rem * 0.7);
    	padding: .4rem;
    }
    
    a.btn:hover {
    	opacity: .8;
    }
    
    a.btn img {
    	display: block;
    	width: 2rem;
    	height: auto;
    	margin: 0 auto;
    }
}

/*==================================================*/

header {
    width: 100%;
    background-color: #00175a;
    padding: 0px 18px;
    display: flex;
    justify-content: space-between;
}

header a, header img {
    display: block;
}

header h1 {
    padding: 16px 0;
}

header h1 .mobile-off {
    width: 266px;
    height: auto;
}

header .nav {
    display: flex;
    align-items: center;
}

header .nav .login {
    width: 60.5px;
    height: auto;
    margin-right: 1em;
}

header .nav .register {
    width: 138px;
    height: auto;
}

@media screen and (max-width: 1277px) {
    header {
        padding: 0px 9px;
    }

    header h1 {
        padding: 8px 0;
    }

    header h1 .mobile-off {
        width: 216px;
    }

    header .nav .login {
        width: auto;
        height: 38px;
        margin-right: 1em;
    }
    
    header .nav .register {
        width: auto;
        height: 34px;
    }
}

@media screen and (max-width: 600px) {
    header {
        padding: 0px 9px;
    }

    header h1 {
        padding: 8px 0;
    }

    header h1 .mobile-on {
        width: auto;
        height: 40px;
    }

    header .nav .login {
        width: auto;
        height: 34px;
        margin-right: 0.6em;
    }
    
    header .nav .register {
        width: auto;
        height: 30px;
    }
}

/*==================================================*/

footer {
    background-color: #00175a;
    color: #fff;
    padding: 2rem;
}

footer .nav .pc {
    display: flex;
    justify-content: center;
    gap: 3rem;
}

footer .nav .sp {
    display: none;
}

footer .nav .pc div {
    display: flex;
    gap: 1rem;
    flex-direction: column;
}

footer .nav .pc span.title {
    display: inline-block;
    font-size: 1.25rem;
    line-height: 1.875rem;
    font-weight: bold;
}

footer .bottom {
    display: flex;
    justify-content: center;

    padding-top: 3.5rem;
    font-size: .75rem;
    line-height: 1.25rem;
}

footer .bottom div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    font-size: .75rem;
    line-height: 1.25rem;
}

footer .bottom div .terms {
    text-align: center;
}

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

@media screen and (max-width: 700px) {
    footer {
        padding: 1rem .5rem;
    }

    footer .nav .pc {
        display: none;
    }

    footer .nav .sp {
        display: block;
    }

    footer .nav .sp .acc {
        border-bottom: 1px solid #fff;
    }

    footer .nav .sp span.title {
        display: flex;
        gap: 1rem;
        align-items: center;
        padding: .5rem;
        cursor: pointer;
        justify-content: space-between;
    }

    footer .nav .sp span.title div:nth-of-type(1) {
        font-size: 1rem;
        line-height: 1.5rem;
        font-weight: bold;
        display: inline-block;
        vertical-align: bottom;
    }

    footer .nav .sp span.title div:nth-of-type(2) {
        transform: rotate(90deg);
        transition: transform .3s;
        width: 20px;
        height: 20px;
    }

    footer .nav .sp .acc.on span.title div:nth-of-type(2) {
        transform: rotate(180deg);
    }

    footer .nav .sp div.list {
        display: none;
    }

    footer .nav .sp .acc.on div.list {
        display: flex;
        gap: 1rem;
        flex-direction: column;
        margin: .5rem 1rem 1rem;
    }
}

/*==================================================*/

.contents {
    width: 100%;
}

.contents .container {
    width: 1250px;
    margin: 0 auto;
}

.contents .container section {
    width: 100%;
}

.contents .container section .block {
    width: 1000px;
    margin: 0 auto;
}

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

    .contents .container {
        width: 100%;
    }
    
    .contents .container section {
        width: 100%;
    }
    
    .contents .container section .block {
        width: 96%;
    }
}

@media screen and (max-width: 600px) {
    
    .contents .container section .block {
        width: 98%;
    }

}

/*==================================================*/

h2 {
    color: #00175a;
    font-weight: bold;
    font-size: 1.56rem;
	margin-bottom: .4rem;
}

h3 {
    color: #00175a;
    font-weight: bold;
    font-size: 2.18rem;
	margin-bottom: 4.375rem;
}

section.part1 {
	text-align: center;
	padding: 4.68rem .5rem 5.31rem;
}

section.part1 img.logo {
	width: 113px;
	height: auto;
	margin: 0 auto 1.875rem;
}

section.part1 p.t01 {
	margin-bottom: 4.375rem;
}

section.part1 p.t02 {
	font-size: 1.375rem;
	font-weight: bold;
	margin-bottom: 1.875rem;
}

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

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

    h2 {
        font-size: calc(1.56rem * 0.7);
    	margin-bottom: calc(.4rem * 0.7);
    }
    
    h3 {
        font-size: calc(2.18rem * 0.8);
    	margin-bottom: calc(4.375rem * 0.7);
    }
    
    section.part1 {
    	padding: calc(4.68rem * 0.7) .5rem calc(5.31rem * 0.7);
    }
    
    section.part1 img.logo {
    	width: calc(113px * 0.8);
    }
    
    section.part1 p.t01 {
    	margin-bottom: calc(4.375rem * 0.7);
    }
    
    section.part1 p.t02 {
    	font-size: calc(1.375rem * 0.8);
    	margin-bottom: calc(1.875rem * 0.7);
    }

}

/*==================================================*/

section.part2 img {
	margin-bottom: 6.25rem;
}

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

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

/*==================================================*/

h4 {
	color: #00175a;
	font-size: 1.687rem;
	text-align: center;
	padding-bottom: 1rem;
	border-bottom: 2px solid #00175a;
	margin-bottom: 1.875rem;
}

.col3 {
	display: flex;
	justify-content: space-around;
	margin-bottom: 2.625rem;
}

.col3 > div {
	width: 29%;
	text-align: center;
}

.col3 > div img {
	width: 3.75rem;
	margin: 0 auto 1rem;
}

.col3 > div > p {
	font-size: 1rem;
}

img.relation {
	width: 835px;
	margin: 0 auto 2rem;
	max-width: 90%;
}

div.gray {
	background-color: #f5f6f7;
	padding: 2.81rem 1.56rem;
	margin-bottom: 3.5rem;
}

div.gray .title {
	font-size: 1.68rem;
	color: #00175a;
	font-weight: bold;
	text-align: center;
	margin-bottom: 2rem;
}

section.part3 {
	padding-bottom: 5.93rem;
}

section.part3 div.gray .col3 {
	margin-bottom: 0;
}

section.part3 div.gray .col3 div div {
	font-size: 1.125rem;
	color: #00175a;
	font-weight: bold;
	margin-bottom: 1.3125rem;
}

section.part3 div.gray .col3 div div span {
	font-size: 1.3125rem;
}

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

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

    h4 {
    	font-size: calc(1.687rem * 0.8);
    	padding-bottom: calc(1rem * 0.7);
    	margin-bottom: calc(1.875rem * 0.7);
    }
    
    .col3 {
    	display: block;
    	margin-bottom: calc(2.625rem * 0.9);
    }
    
    .col3 > div {
    	width: 100%;
    	margin-bottom: calc(2.625rem * 0.7);
    }
    
    .col3 > div img {
    	width: calc(3.75rem * 0.9);
    	margin: 0 auto 1rem;
    }
    
    .col3 > div p {
    	font-size: calc(1rem * 1.0);
        width: 80%;
        margin-left: auto;
        margin-right: auto;
    }
    
    img.relation {
    	width: auto;
    	max-width: 90%;
    }
    
    div.gray {
    	padding: calc(2.81rem * 0.7) calc(1.56rem * 0.7);
    	margin-bottom: calc(3.5rem * 0.7);
    }
    
    div.gray .title {
    	font-size: calc(1.68rem * 0.8);
    	margin-bottom: calc(2rem * 0.8);
    }
    
    section.part3 {
    	padding-bottom: calc(5.93rem * 0.7);
    }
    
    section.part3 div.gray .col3 div div {
    	font-size: 1.125rem;
    	margin-bottom: 1.3125rem;
    }
    
    section.part3 div.gray .col3 div div span {
    	font-size: 1.3125rem;
    }

}

/*==================================================*/

section.part4 {
	text-align: center;
	margin-bottom: 6.68rem;
}

section.part4 h4 + p {
	margin-bottom: 2.43rem;
}

section.part4 h5 {
	font-size: 1.5rem;
	font-weight: bold;
	margin-bottom: 4.28rem;
}

section.part4 .block > img {
	margin-bottom: 4.06rem;
}

section.part4 h6 {
	font-size: 1.68rem;
	color: #00175a;
	font-weight: bold;
	margin-bottom: 4.46rem;
}

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

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

    section.part4 {
    	margin-bottom: calc(6.68rem * 0.7);
    }
    
    section.part4 h4 + p {
    	margin-bottom: calc(2.43rem * 0.7);
    }
    
    section.part4 h5 {
    	font-size: calc(1.5rem * 0.8);
    	margin-bottom: calc(4.28rem * 0.7);
    }
    
    section.part4 .block > img {
        width: 80%;
        margin: 0 auto calc(4.06rem * 0.7);
    }
    
    section.part4 h6 {
    	font-size: calc(1.68rem * 0.7);
    	margin-bottom: calc(4.46rem * 0.7);
    }

}

/*==================================================*/

section.part5 {
	text-align: center;
	padding-bottom: 7.03125rem;
}

section.part5 .box-header {
	color: #00175a;
	font-weight: bold;
	font-size: 1.562rem;
	margin-bottom: 1rem;
}

section.part5 .box {
	width: 100%;
	margin-bottom: 3.31rem;
}

section.part5 .box .title {
	background-color: #00175a;
	color: #fff;
	font-size: 1.4375rem;
	font-weight: bold;
	padding: 1.31rem;
	margin-bottom: 1.25rem;
}

section.part5 .box .box-inner {
	background-color: #f5f6f7;
	padding: 0 3.125rem 1.5rem;
}

section.part5 .box .box-inner .sec1 {
	display: flex;
	justify-content: center;
	padding: 1.56rem 0;
}

section.part5 .box .box-inner .sec1 div:nth-of-type(1) {
	margin: 0 1rem;
}

section.part5 .box .box-inner .sec1 div:nth-of-type(1) img {
	width: 195px;
	height: auto;
}

section.part5 .box .box-inner .sec1 div:nth-of-type(2) {
	margin: 0 1rem;
	width: 27.3125rem;
	text-align: left;
}
section.part5 .box .box-inner .sec1 div:nth-of-type(2) .t01 {
	color: #006fcf;
	font-size: 1.25rem;
	font-weight: bold;
	margin-bottom: .4rem;
}

section.part5 .box .box-inner .sec1 div:nth-of-type(2) .t02 {
}

section.part5 .box .box-inner .sec2 {
	background-color: #fff;
	padding-bottom: 1.5rem;
	margin-bottom: .5rem;
}

section.part5 .box .box-inner .sec2 img {
	width: 80%;
	margin: 0 auto .8rem;
}

section.part5 .box .box-inner .sec2 .t03 {
	font-size: 1rem;
	font-weight: bold;
}

section.part5 .box .box-inner .sec3 {
	font-size: .8rem;
	text-align: right;
}

section.part5 .col3 {
	margin-bottom: 4.875rem;
}

section.part5 .col3 > div {
	width: 26%;
}

section.part5 .col3 div div {
	font-size: 1.25rem;
	color: #006fcf;
	font-weight: bold;
	margin-bottom: 1.3125rem;
}

section.part5 .col3 img {
	width: 195px;
	max-width: 195px;
	height: auto;
}

section.part5 a.btn {
	padding: .8rem 0;
}

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

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

    section.part5 {
    	padding-bottom: calc(7.03125rem * 0.7);
    }
    
    section.part5 .box-header {
    	font-size: calc(1.562rem * 0.8);
    	margin-bottom: calc(1rem * 0.7);
    }
    
    section.part5 .box {
    	margin-bottom: calc(3.31rem * 0.7);
    }
    
    section.part5 .box .title {
    	font-size: calc(1.4375rem * 0.8);
    	padding: 1.31rem;
    	margin-bottom: calc(1.25rem * 0.7);
    }
    
    section.part5 .box .box-inner {
    	padding: 0 .5rem 1rem;
    }
    
    section.part5 .box .box-inner .sec1 {
    	display: block;
    	padding: calc(1.56rem * 0.7) 0.5rem;
    }
    
    section.part5 .box .box-inner .sec1 div:nth-of-type(1) {
    	margin: 0;
    }
    
    section.part5 .box .box-inner .sec1 div:nth-of-type(1) img {
    	width: calc(195px * 0.7);
    	height: auto;
        margin: 0 auto 1rem;
    }
    
    section.part5 .box .box-inner .sec1 div:nth-of-type(2) {
    	margin: 0;
    	width: 100%;
    	text-align: center;
    }
    section.part5 .box .box-inner .sec1 div:nth-of-type(2) .t01 {
    	color: #006fcf;
    	font-size: calc(1.25rem * 0.9);
    	margin-bottom: .4rem;
    }
    
    section.part5 .box .box-inner .sec1 div:nth-of-type(2) .t02 {
    }
    
    section.part5 .box .box-inner .sec2 {
    	background-color: #fff;
    	padding: 1rem 0.4rem;
    	margin-bottom: .5rem;
    }
    
    section.part5 .box .box-inner .sec2 img {
    	width: 90%;
    	margin: 0 auto 1rem;
    }
    
    section.part5 .box .box-inner .sec2 .t03 {
    	font-size: calc(1rem * 0.9);
        width: 90%;
        margin: 0 auto;
    	font-weight: bold;
    }
    
    section.part5 .box .box-inner .sec3 {
    	font-size: .8rem;
    	text-align: right;
    }
    
    section.part5 .col3 {
    	margin-bottom: calc(4.875rem * 0.7);
    }
    
    section.part5 .col3 > div {
    	width: 100%;
    }
    
    section.part5 .col3 div div {
    	font-size: 1.25rem;
    	margin-bottom: calc(1.3125rem * 0.7);
    }
    
    section.part5 .col3 img {
    	width: calc(195px * 0.9);
    	max-width: 195px;
    }
    
    section.part5 a.btn {
    	padding: .8rem 3rem;
    }

}

/*==================================================*/
/*電話セクション*/
.tel {
    background-color: #f5f6f7;
    padding: 50px;
}
.tel .tel_message {
    font-size: 1.68rem;
    color: #00175a;
    font-weight: bold;
    margin-bottom: 20px;
}

.tel a {
    font-size: 1.68rem;
    color: #000;
    text-decoration: none;
    pointer-events: none;
    cursor: default;
}

.tel p {
    padding-top: 5px;
}

@media screen and (max-width: 600px) {
    .tel {
        background-color: #f5f6f7;
        padding: 30px 15px;
    }
    .tel .tel_message {
        font-size: calc(1.68rem * 0.8);
        margin-bottom: 10px;
    }

    .tel a {
        font-size: calc(1.68rem * 0.8);
        color: #006fcf;
        text-decoration: underline;
        transition: all .2s;
        pointer-events:auto;
        cursor: pointer;
    }
    .tel a:hover {
        opacity:.7;
    }

.tel p {
    padding-top: 5px;
}
}


