@charset "utf-8";*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{font-family: "m-plus-1p", sans-serif;margin:0;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin:0;padding:0;list-style:none}ol ol,ol ul,ul ol,ul ul{margin:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.featherlight-sample{display:none}#law td{background:#fff;border:solid 1px #999}ol{margin-bottom:1rem}.clearfix:after{content:"";clear:both;display:block}

.mp4 {font-family: "m-plus-1p", sans-serif;font-weight: 400;font-style: normal;}
.mp5 {font-family: "m-plus-1p", sans-serif;font-weight: 500;font-style: normal;}
.mp7 {font-family: "m-plus-1p", sans-serif;font-weight: 700;font-style: normal;}
.mp8 {font-family: "m-plus-1p", sans-serif;font-weight: 800;font-style: normal;}
.mp9 {font-family: "m-plus-1p", sans-serif;font-weight: 900;font-style: normal;}
.inter-<uniquifier> {
    font-family: "Inter", sans-serif;
    font-optical-sizing: auto;
    font-weight: <weight>;
    font-style: normal;
    font-variation-settings: "slnt" 0;}
.noto-sans jp-<uniquifier> {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: <weight>;
    font-style: normal;}
footer {
    background: #fff;
    text-align: center;
    padding: 10px;}
footer ul {
    width: 90%;
    max-width: 400px;
    margin: 5vw auto 3vw;}
footer ul li {
    font-size: 20px;
    font-weight: bold;
    display: inline-block;
    margin: 0 7px;}
footer ul li a { color: #222;}
footer .cName p {
    font-size: 40px;
    font-weight: 900;}
header {
    position: fixed;
    z-index: 10;
    width: 100%;
    top: 28px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;}
header h1 {
    margin: 0 0 0 3%;
    width: 30%;
    max-width: 386px;
    font-size: 0;}
header h1 img { width: 100%;}
header nav {
    width: 60%;
    display: flex;
    justify-content: flex-end;
    margin: 0 3% 0 auto;}
header nav ul {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;}
header nav ul li {
    width: calc(100% / 4);
    text-align: center;}
header nav ul li a,
header nav ul li span {
    width: 90%;
    display: block;
    height: 60px;
    line-height: 60px;
    font-weight: bold;
    font-size: min(2vw,25px);
    color: #fff;}
.login span { background-color: #202020;}
.regist span { background-color: #094fa4;}
header.on {
    top: 0px;
    height: 40px;
    background-color: #ffffffd6;
    padding: 5px;
    transition: .35s;}
header.on * { transition: .35s;}
header.on h1 { width: 15%;}
header.on nav { width: 70%;}
header.on nav ul { width: 80%;}
header.on nav ul li a,
header.on nav ul li span {
    width: 90%;
    display: block;
    height: 30px;
    line-height: 30px;
    font-weight: bold;
    font-size: min(2vw,15px);
    color: #000;}
header.on .login span,
header.on .regist span { color: #fff;}
.mv,
.sub {
    background-image: url(/files/77870955-9611-4003-a9c4-5659634b4c8d.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 0;
    padding-bottom: 100vh;
    position: relative;}
.mv div {
    position: absolute;
    top: 50%;
    left: 10%;
    transform: translateY(-50%) translateX(0%);
    width: 90%;
    max-width: 776px;}
.mv div img { width: 100%;}
.first {
    position: relative;
    z-index: 100;
    margin: -71px 0 0;}
.first p {
    background-color: #094fa4;
    font-size: 34px;
    font-weight: bold;
    line-height: 50px;
    padding: 21px 21px 21px 100px;
    width: 100%;
    max-width: 767px;
    color: #fff;
    position: relative;}
.first p:after {
    content: "";
    background-image: url(/files/851d571c-57ca-4efa-b3e6-285f9d81c375.png);
    background-repeat: no-repeat;
    width: 20px;
    height: 34px;
    display: block;
    position: absolute;
    top: 50%;
    left: 95%;
    transform: translateY(-50%) translateX(-50%);}
.sct1 {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 49px 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;}
.sct1 .txt { width: 55%;}
.sct1 .img { width: 45%;}
.sct1 .img img { width: 100%;}
.sct1 h2 { font-size: min(5vw,50px);}
.sct1 h2 small {
    display: block;
    font-size: 20px;
    color: #094fa4;}
.sct1 h2 span { color: #094fa4;}
.sct1txt1 {
    font-size: min(2.5vw,24px);
    font-weight: bold;
    line-height: 2.0833;}
.sct1txt2 {
    font-size: min(2vw,15px);
    font-weight: bold;}
.sct1txt3 {
    margin: 0;
    display: block;
    color: #fff;
    max-width: 500px;}
.sct1txt3 span {
    font-size: min(2.1vw,20px);
    background-color: #094fa4;
    display: inline-block;
    font-weight: bold;
    color: #fff;
    padding: 1vw;
    margin: 3px auto;}
.sct1txt4 {
    font-size: min(2vw,15px);
    font-weight: bold;}
.sct2 {
    position: relative;
    width: 100%;
    display: flex;}
.sct2 .concept {
    position: absolute;
    top: 30%;
    left: 30vw;
    z-index: 1;
    width: 22.304%;}
.sct2 .concept img { width: 100%;}
.sct2 .img { width: calc(100% / 2);}
.sct2 .img img { width: 100%;}
.sct2 .txt {
    width: calc(100% / 2);
    padding: 0 0 0 2%;
    position: relative;}
.sct2 .txt .ttl h2 {
    font-size: min(5vw,50px);}
.sct2 .txt .ttl h2 small {
    display: block;
    font-size: 20px;
    color: #094fa4;}
.sct2 .txt .ttl h2 span {
    color: #094fa4;}
.sct2 .txt .ttl p {
    font-size: min(2.5vw,24px);
    font-weight: bold;
    line-height: 2.0833;}
.sct2 .txt .txt_ {
    background-color: #fff;
    border-left: solid 10px #094fa4;
    padding: 5vw 3vw 3vw;
    margin: 0 0 0 -15vw;
    line-height: 1.75;
    font-size: min(2.5vw,24px);}
.sct2 .txt .txt_ h3 {
    font-size: min(2.5vw,24px);
    font-weight: bold;
    line-height: 2.0833;}
.sct2 .txt .txt_ p { margin: 0;}
.sct3 {
    position: relative;
    width: 100%;
    display: flex;
    margin: 5vw auto;}
.sct3 .concept {
    position: absolute;
    top: 14%;
    left: 50vw;
    z-index: 1;
    width: 22.304%;}
.sct3 .concept img { width: 100%;}
.sct3 .img { width: calc(100% / 2);}
.sct3 .img img { width: 100%;}
.sct3 .txt {
    width: calc(100% / 2);
    padding: 0 0 0 2%;
    position: relative;}
.sct3 .txt .txt_ {
    background-color: #fff;
    border-right: solid 10px #094fa4;
    padding: 5vw 3vw 3vw;
    margin: 15vw -15vw 0 0;
    line-height: 1.75;
    font-size: min(2.5vw,24px);}
.sct3 .txt .txt_ h3 {
    font-size: min(2.5vw,24px);
    font-weight: bold;
    line-height: 2.0833;}
.sct3 .txt .txt_ p { margin: 0;}
.sct3 .img:first-child { display:none;}
.sct2.sct4 .concept { top: 25%;}
.sct2.sct4 .txt .txt_ { margin: 15vw 0 0 -15vw;}
.mv.btm {
    background-image: url(/files/77870955-9611-4003-a9c4-5659634b4c8d.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 100%;
    height: 0;
    padding-bottom: 100vh;
    position: relative;
    margin: 7vw auto 0;}
.mv.btm div {
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translateY(-50%) translateX(0%);
    width: 90%;
    max-width: 776px;}
.mv div img { width: 100%;}
.mv p {
    position: absolute;
    top: 50%;
    right: 5%;
    transform: translateY(-50%) translateX(0%);
    width: 90%;
    max-width: 350px;}
.mv p span { color: #fff;}
.mv p span:first-child {
    width: 90%;
    display: block;
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-weight: bold;
    font-size: min(2vw,25px);
    background-color: #094fa4;}
.mv p span:last-child { font-size: min(1.5vw,18px);}

.Login,
.Regist {
    opacity: 0;
    position: fixed;
    z-index: -100;
    transition: 0.5s;}
.Login.on,
.Regist.on {
    opacity: 1;
    position: fixed;
    z-index: 110;
    width: 100%;
    height: 100vh;}
.Login.on .close,
.Regist.on .close {
    position: absolute;
    background-color: #00000061;
    width: 100%;
    height: 100%;}
.Login.on .close:after,
.Regist.on .close:after {
    content: "×";
    position: absolute;
    top: 14px;
    right: 14px;
    background-color: #fff;
    line-height: 1.1;
    font-size: 20px;
    font-weight: bold;
    border-radius: 50%;
    width: 25px;
    height: 25px;
    text-align: center;
    cursor: pointer;}
.Login.on .box,
.Regist.on .box {
    width: 90%;
    max-width: 500px;
    max-height: 80vh;
    margin: 0 auto;
    overflow-y: scroll;
    background-color: #ffffffd1;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    padding: 21px;}
.Login.on .box::-webkit-scrollbar,
.Regist.on .box::-webkit-scrollbar { display: none;}
.Login.on .box h2,
.Regist.on .box h2 {
    text-align: center;
    display: block;}
.Login.on .box p,
.Regist.on .box p {
    text-align: left;
    margin: 14px 0 0;}
.Login.on .box .fbox input,
.Regist.on .box .fbox input {
    width: 100%;
    border: solid 2px #ccc;
    padding: 7px 14px;}
.Login.on .box .submit div button,
.Regist.on .box .submit div button,
.Login.on .box .submit div input,
.Regist.on .box .submit div input {
    background-color: #094fa4;
    width: 90%;
    display: block;
    height: 60px;
    line-height: 60px;
    font-weight: bold;
    font-size: 20px;
    color: #fff;
    margin: 14px auto 0;
    border: none;}
.fbox .birth {
    display: flex;
    align-items: flex-end;}
.fbox .birth select[name="birthYear"] {
    width: calc(40% - 30px);
    border: solid 2px #ccc;
    padding: 7px 14px;}
.fbox .birth select[name="birthMonth"] {
    width: calc(30% - 30px);
    border: solid 2px #ccc;
    padding: 7px 14px;}
.fbox .birth select[name="birthDay"] {
    width: calc(30% - 30px);
    border: solid 2px #ccc;
    padding: 7px 14px;}
.fbox .birth div {
    width: 15px;
    text-align: center;
    font-size: 15px;
    margin: 0 7px;}


.sub_ {
    width: 90%;
    max-width: 600px;
    max-height: 80vh;
    overflow-y: scroll;
    margin: 0 auto;
    background-color: #ffffffd1;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    padding: 21px;}
.sub_::-webkit-scrollbar{ display: none;}
.sub_ .inner h2 {
    text-align: center;
    display: block;}
.sub_ .inner p { text-align: center;}
.sub_ .inner .fbox p {
    text-align: left;
    margin: 14px 0 0;}
.sub_ .inner .fbox p small { color: #f00;}
.sub_ .inner .fbox input {
    width: 100%;
    border: solid 2px #ccc;
    padding: 7px 14px;}
.sub_ .inner .fbox textarea {
    width: 100%;
    border: solid 2px #ccc;
    padding: 7px 14px;
    min-height: 100px;}
.sub_ .inner .submit div button {
    background-color: #094fa4;
    width: 90%;
    display: block;
    height: 60px;
    line-height: 60px;
    font-weight: bold;
    font-size: 20px;
    color: #fff;
    margin: 14px auto 0;
    border: none;}
.prev {
    width: 150px;
    height: 50px;
    display: block;
    position: absolute;
    top: 105%;
    text-align: center;
    left: 0;
    right: 0;
    margin: 0 auto;}
.prev a {
    width: 150px;
    height: 30px;
    background-color: #000;
    border-radius: 5px;
    line-height: 30px;
    font-size: 15px;
    font-weight: bold;
    display: block;
    color: #fff;}
















@media screen and (max-width:767px) {
	header {
	    top: 10px;
	    height: 40px;}
	header.on h1 { width: 30%;}
	header nav { margin: auto;}
	header.on nav ul { width: 100%;}
	header nav ul li a {
	    height: 30px;
	    line-height: 30px;}
	.mv div { left: 5%;}
	.first p {
	    font-size: 20px;
	    line-height: 40px;
	    padding: 21px;}
	.sct1 {
	    padding: 25px 0;
	    display: block;}
	.sct1 .txt { width: 100%;}
	.sct1 h2 { font-size: min(7vw,50px);}
	.sct1 h2 small { font-size: 4vw;}
	.sct1txt1 {
	    font-size: min(5vw,24px);
	    line-height: 1.8;}
	.sct1txt2 { font-size: min(4vw,20px);}
	.sct1txt3 span { font-size: min(4vw,20px);}
	.sct1txt4 { font-size: min(4vw,20px);}
	.sct1txt2 br,
	.sct1txt4 br { display: none;}
	.sct1 .img { width: 100%;}
	.sct2 { display: block;}
	.sct2 .img {
	    width: 100%;
	    height: 140px;
	    overflow: hidden;
	    position: relative;}
	.sct2 .img img {
	    width: 100%;
	    position: absolute;
	    top: 50%;
	    left: 50%;
	    transform: translateY(-50%) translateX(-50%);}
	.sct2 .concept {
	    top: 5%;
	    left: 5vw;
	    width: 30%;}
	.sct2 .txt {
	    width: 100%;
	    margin: 5% auto 0 0;}
	.sct2 .txt .ttl h2 { font-size: min(7vw,50px);}
	.sct2 .txt .ttl h2 small { font-size: 4vw;}
	.sct2 .txt .ttl p {
	    font-size: min(5vw,24px);
	    line-height: 1.8;}
	.sct2 .txt .txt_ {
	    background-color: #fff;
	    border-left: solid 10px #094fa4;
	    padding: 3vw;
	    margin: 0 0 0 0;
	    line-height: 1.75;
	    font-size: min(2.5vw,24px);}
	.sct2 .txt .txt_ h3,
	.sct3 .txt .txt_ h3 { font-size: min(4vw,20px);}
	.sct2 .txt .txt_ p,
	.sct3 .txt .txt_ p { font-size: min(4vw,20px);}
	.sct1txt2 br,
	.sct1txt4 br { display: none;}
	.sct3 { display: block;}
	.sct3 .img:first-child { display:block;}
	.sct3 .img:last-child { display:none;}
	.sct3 .img {
	    width: 100%;
	    height: 140px;
	    overflow: hidden;
	    position: relative;}
	.sct3 .img img {
	    width: 100%;
	    position: absolute;
	    top: 50%;
	    left: 50%;
	    transform: translateY(-50%) translateX(-50%);}
	.sct3 .concept {
	    top: 5%;
	    left: 5vw;
	    width: 30%;}
	.sct3 .txt {
	    width: 100%;
	    margin: 5% auto 0 0;}
	.sct3 .txt .ttl h2 { font-size: min(7vw,50px);}
	.sct3 .txt .ttl h2 small { font-size: 4vw;}
	.sct3 .txt .ttl p {
	    font-size: min(5vw,24px);
	    line-height: 1.8;}
	.sct3 .txt .txt_ {
	    background-color: #fff;
	    border-left: solid 10px #094fa4;
	    border-right: none;
	    padding: 3vw;
	    margin: 0 0 0 0;
	    line-height: 1.75;
	    font-size: min(2.5vw,24px);}
	.sct2.sct4 .concept { top: 5%;}
	.sct2.sct4 .txt .txt_ { margin: 0 0 0 0;}
	.mv.btm {
	    margin: 7vw auto;
	    padding-top: 7vw;
	    padding-bottom: 70vh;}
	.mv.btm div {
	    position: relative;
	    top: 0;
	    left: 0;
	    transform: initial;
	    width: 90%;
	    max-width: 776px;
	    margin: 0 auto;}
	.mv p {
	    position: relative;
	    top: 0;
	    right: 0;
	    transform: initial;
	    width: 90%;
	    max-width: 460px;
	    margin: 4vw auto;}
	.mv p span:first-child {
	    width: 100%;
	    font-size: min(6vw,25px);}
	.mv p span:last-child {
	    font-size: min(2.8vw,18px);
	    display: block;
	    width: 100%;
	    text-align: center;
	    margin: 14px auto;}
	footer .cName p { font-size: 30px;}
}