@charset "UTF-8";

.mg-0 {
    margin-top: 0 !important;
}

.mg-1 {
    margin-top: 0.5rem !important;
}

.mg-2 {
    margin-top: 0.75rem !important;
}

.mg-3 {
    margin-top: 1rem !important;
}

.mg-4 {
    margin-top: 1.5rem !important;
}

.mg-5 {
    margin-top: 2.25rem !important;
}

.mg-6 {
    margin-top: 3.375rem !important;
}

.mg-7 {
    margin-top: 5.0625rem !important;
}

.mg-8 {
    margin-top: 6.75rem !important;
}

.align-r {
    text-align: right !important;
}

.align-c {
    text-align: center !important;
}

.fs-s {
    font-size: 85%;
}

.fs-l {
    font-size: 120%;
}

ul.list {
    /* margin-top: -0.5rem; */
    width: 70%;
    margin: 20px auto 0;
}

ul.list li {
    margin-top: 0.5rem;
    padding-left: 30px;
    background: url("../imgs/bullet.png") 8px 6px/15px no-repeat;
}

.radius-1 {
    border-radius: 5px;
}

.radius-2 {
    border-radius: 15px;
}

a.link-dark {
    color: #000000;
}

a.link-dark:hover {
    text-decoration: underline;
    color: #004998;
}

a.link-img:hover img {
    opacity: 0.6;
    transition: opacity, 0.1s;
}

*,
::before,
::after {
    box-sizing: border-box;
}

body {
    font-family: "Helvetica Neue", "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
pre,
ul,
li,
img,
dl,
dt,
dd,
blockquote,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
    margin: 0;
    padding: 0;
    font-size: inherit;
    vertical-align: baseline;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
    margin: 0;
    padding: 0;
    vertical-align: middle;
}

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

p,
li,
dt,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
blockquote,
dt,
dd {
    letter-spacing: 0.05rem;
    line-height: 1.8;
}

blockquote {
    font-style: italic;
}

ul {
    list-style-type: none;
}

strong {
    font-style: bold;
}

hr {
    border: 0;
    border-top: 1px solid #000;
    margin: 1rem 0;
}

button,
input,
select,
textarea {
    font: inherit;
    max-width: 100%;
}

input[type=text],
input[type=password],
input[type=tel],
input[type=email],
textarea {
    border: 1px solid #888888;
    padding: 5px 10px;
    border-radius: 5px;
}

input[type=text]:focus,
input[type=password]:focus,
input[type=tel]:focus,
input[type=email]:focus,
textarea:focus {
    background-color: #ffffeb;
}

a {
    text-decoration: underline;
    color: #004998;
}

a:hover {
    text-decoration: none;
    color: #004998;
}

.stack.-s0>*+* {
    margin-top: 0;
}

.stack.-s1>*+* {
    margin-top: 0.5rem;
}

.stack.-s2>*+* {
    margin-top: 0.75rem;
}

.stack.-s3>*+* {
    margin-top: 1rem;
}

.stack.-s4>*+* {
    margin-top: 1.5rem;
}

.stack.-s5>*+* {
    margin-top: 2.25rem;
}

.stack.-s6>*+* {
    margin-top: 3.375rem;
}

.stack.-s7>*+* {
    margin-top: 5.0625rem;
}

.stack.-s8>*+* {
    margin-top: 6.75rem;
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s0>*+* {
        margin-top: 0;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s1>*+* {
        margin-top: 0.5rem;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s2>*+* {
        margin-top: 0.75rem;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s3>*+* {
        margin-top: 1rem;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s4>*+* {
        margin-top: 1.5rem;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s5>*+* {
        margin-top: 2.25rem;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s6>*+* {
        margin-top: 3.375rem;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s7>*+* {
        margin-top: 5.0625rem;
    }
}

@media screen and (max-width: 768px) {
    .stack.-sp\:s8>*+* {
        margin-top: 6.75rem;
    }
}

.box {
    border: 2px solid #666666;
    border-radius: 5px;
}

.box.noborder {
    border: 0;
}

.box.-s0 {
    padding: 0;
}

.box.-s1 {
    padding: 0.5rem;
}

.box.-s2 {
    padding: 0.75rem;
}

.box.-s3 {
    padding: 1rem;
}

.box.-s4 {
    padding: 1.5rem;
}

.box.-s5 {
    padding: 2.25rem;
}

.box.-s6 {
    padding: 3.375rem;
}

.box.-s7 {
    padding: 5.0625rem;
}

.box.-s8 {
    padding: 6.75rem;
}

@media screen and (max-width: 768px) {
    .box.-sp\:s0 {
        padding: 0;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s1 {
        padding: 0.5rem;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s2 {
        padding: 0.75rem;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s3 {
        padding: 1rem;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s4 {
        padding: 1.5rem;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s5 {
        padding: 2.25rem;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s6 {
        padding: 3.375rem;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s7 {
        padding: 5.0625rem;
    }
}

@media screen and (max-width: 768px) {
    .box.-sp\:s8 {
        padding: 6.75rem;
    }
}

.center {
    box-sizing: content-box;
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.center.-narrow {
    max-width: 40rem;
}

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

    .center,
    .center.-narrow {
        max-width: auto;
    }
}

.common-logo {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

@media screen and (max-width: 768px) {
    .common-logo img {
        width: 60vw;
        max-width: 305px;
        height: auto;
    }
}

.site-title {
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
    background-color: #E7F7FA;
}

.site-title.-home {
    padding-top: 3.375rem;
    padding-bottom: 3.375rem;
    background: #E7F7FA url("../imgs/title_bg_pc.svg") 50% 0 no-repeat;
}

.site-title_logo {
    text-align: center;
}

.site-title_desc {
    width: 40rem;
    margin-left: auto;
    margin-right: auto;
    color: #052245;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .site-title {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
        background-image: none;
    }

    .site-title_desc {
        width: auto;
    }
}

.site-footer {
    border-top: 1px solid #999999;
    margin-top: 5.0625rem;
    padding-top: 3.375rem;
    padding-bottom: 3.375rem;
}

.site-footer>*>* {
    text-align: center;
}

@media screen and (max-width: 768px) {
    .footer-logo img {
        width: 60vw;
        max-width: 305px;
        height: auto;
    }
}

.copyright {
    margin-top: 1rem;
    font-size: 80%;
    color: #666666;
}

.main-content {
    margin-top: 3.375rem;
}

dl.list-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

dl.list-form>dt {
    box-sizing: content-box;
    width: 32%;
    flex-shrink: 0;
    border-top: 1px solid #BFBFBF;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    padding-right: 3%;
    font-weight: bold;
}

dl.list-form>dd {
    width: 65%;
    flex-shrink: 0;
    border-top: 1px solid #BFBFBF;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

dl.list-form>dd.dd-radio {
    margin-bottom: -12px;
}

dl.list-form>dt:first-of-type,
dl.list-form>dd:first-of-type {
    border-top: 0;
    padding-top: 0;
}

dl.list-form>dt:last-of-type,
dl.list-form>dd:last-of-type {
    padding-bottom: 0;
}

dl.list-form.-add>dt:first-of-type,
dl.list-form.-add>dd:first-of-type {
    border-top: 1px solid #BFBFBF;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
}

@media screen and (max-width: 768px) {
    dl.list-form>dt {
        width: 100%;
        padding-bottom: 0;
        padding-right: 0;
    }

    dl.list-form>dd {
        width: 100%;
        border-top: 0;
        padding-top: 0.75rem;
    }

    dl.list-form>dd:first-of-type {
        padding-top: 0.75rem;
    }

    dl.list-form.-add>dd:first-of-type {
        border-top: 0;
        margin-top: 0;
        padding-top: 0.75rem;
    }
}

dl.list-form-lower dt {
    border-top: 1px dashed #aaaaaa;
    padding-top: 1.5rem;
    font-weight: normal;
}

dl.list-form-lower dd {
    padding-top: 0.75rem;
    padding-bottom: 1.5rem;
}

dl.list-form-lower.-conf>dt {
    font-weight: bold;
}

dl.list-form-lower>dt:first-of-type {
    border-top: 0;
    padding-top: 0;
}

dl.list-form-lower>dd:last-of-type {
    padding-bottom: 0;
}

@media screen and (max-width: 768px) {
    dl.list-form-lower {
        margin-left: 1.5rem;
    }
}

.required::after {
    content: "必須";
    display: inline-block;
    font-size: 81.25%;
    font-weight: normal;
    line-height: 1;
    margin-left: 0.5rem;
    text-align: center;
    background-color: #E80000;
    color: #ffffff;
    border-radius: 5px;
    padding: 3px 5px;
}

.note {
    font-size: 90%;
    margin-top: 0.75rem;
    color: #555;
}

.varidation-error {
    font-size: 90% !important;
    margin-top: 0.75rem !important;
    color: #E80000 !important;
}

input[type=tel][id=tel_number1]:invalid~.errorMessage {
    display: block;
}

input[type=tel][id=tel_number1]:valid~.errorMessage {
    display: none;
}

input[type=tel][id=tel_number2]:invalid~.errorMessage2 {
    display: block;
}

input[type=tel][id=tel_number2]:valid~.errorMessage2 {
    display: none;
}

input[type=tel][id=office_tel_number]:invalid~.errorMessage3 {
    display: block;
}

input[type=tel][id=office_tel_number]:valid~.errorMessage3 {
    display: none;
}

dd input[type=radio] {
    display: none;
}

dd input[type=radio]+label {
    display: inline-block !important;
    cursor: pointer;
    min-width: 10rem;
    line-height: 1;
    margin-right: 12px;
    margin-bottom: 12px;
    padding: 12px 15px;
    background-color: #d9dcdc;
    text-align: center;
    border-radius: 5px;
    transition: 0.2s;
}

dd input[type=radio]+label.radio_cale {
    min-width: 4rem;
    width: 6rem;
}

dd input[type=radio]+label:hover {
    background-color: #2e965d;
    color: #ffffff;
}

dd input[type=radio]:checked+label {
    background-color: #2e965d;
    color: #ffffff;
}

.error-msg {
    background-color: #ffedf7;
    border-radius: 5px;
    padding: 2.25rem;
}

.error-msg h2 {
    font-size: 120%;
    font-weight: bold;
    color: #E80000;
}

@media screen and (max-width: 768px) {
    .error-msg {
        padding: 2.25rem;
    }
}

.warning-msg {
    margin-top: 3.375rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: #E80000;
    text-align: center;
    border: 2px solid #E80000;
    border-radius: 5px;
    padding: 2.25rem;
}

.warning-msg:empty {
    margin: 0;
    padding: 0;
    border: 0;
}

@media screen and (max-width: 768px) {
    .warning-msg {
        margin-top: 2.25rem;
        font-size: 1.2rem;
        padding: 1.5rem;
    }
}

.input-condition dd select.date {
    width: 3rem;
    margin-right: 1px;
}

.input-condition dd select.year {
    width: 15rem;
}

@media screen and (max-width: 768px) {
    .input-condition dd select.date {
        width: auto;
    }
}

.col-ncslicense {
    width: 65%;
    margin-left: 35%;
    padding-bottom: 1.5rem;
}

.col-ncslicense .hl {
    display: inline-block;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    border: 1px solid #aaaaaa;
    padding: 4px 8px;
    border-radius: 5px;
}

@media screen and (max-width: 768px) {
    .col-ncslicense {
        width: 100%;
        margin-left: 0;
    }
}

.col-course dt {
    border-top: 1px dashed #aaaaaa;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    font-weight: normal;
}

.col-course dd {
    padding-top: 0.75rem;
}

.col-course>dl>dt:first-child {
    border-top: 0;
    margin-top: 0;
    padding-top: 0;
}

.sec-button {
    margin-top: 3.375rem;
    background-color: #EAEAEA;
}

.button_box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    flex-direction: row-reverse;
    margin-top: -1rem;
}

.button_box>* {
    margin: 1rem 1rem 0 1rem;
}

@media screen and (max-width: 768px) {
    .button_box {
        flex-direction: column;
    }

    .sec-button {
        margin-top: 2.25rem;
    }
}

.page-title h2 {
    text-align: center;
    font-size: 150%;
    font-weight: bold;
    color: #052245;
    line-height: 1.5;
}

.login-box_form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-top: -1rem;
}

.login-box_form>dt {
    box-sizing: content-box;
    width: 32%;
    flex-shrink: 0;
    padding-top: 1rem;
    padding-right: 3%;
    font-weight: normal;
    text-align: right;
}

.login-box_form>dd {
    width: 65%;
    flex-shrink: 0;
    padding-top: 1rem;
}

.login-box_button {
    margin-top: 1.5rem;
    margin-left: 35%;
}

.login-box_back {
    margin-top: 2.25rem;
    text-align: center;
}

.reset-pwd {
    margin-top: 2.25rem;
    padding-top: 2.25rem;
    border-top: 1px solid #BFBFBF;
}

.reset-pwd p {
    color: #333333;
    font-size: 90%;
}

.reset-pwd_button {
    margin-top: 1rem;
}

@media screen and (max-width: 768px) {
    .login-box_form {
        display: display;
    }

    .login-box_form>dt {
        width: 100%;
        padding-right: 0;
        text-align: left;
    }

    .login-box_form>dd {
        width: 100%;
        padding-top: 0.5rem;
    }

    .login-box_form input {
        width: 100%;
    }

    .login-box_button {
        margin-top: 2.25rem;
        margin-left: 0;
    }

    .login-box_button button {
        width: 100%;
    }
}

.menu-box_main li {
    margin-top: 1.5rem;
    text-align: center;
}

.menu-box_main li:first-child {
    margin-top: 0;
}

.menu-box_main .btn {
    min-width: 50%;
    padding: 1.2em 3em 1.2em 3em;
}

.menu-box_sub {
    margin-top: 3.375rem;
}

.menu-box_sub li {
    margin-top: 1.5rem;
    text-align: center;
}

.menu-box_sub li:first-child {
    margin-top: 0;
}

.menu-box_sub .btn {
    min-width: 50%;
    padding: 0.6em 2em 0.6em 2em;
}

.application-status {
    display: inline-block;
    padding: 0.2em 0.6em;
    text-align: center;
    color: #e65400;
    font-size: 120%;
    background-color: #f4f2ef;
}

/*モーダルを開くボタン*/
/*モーダル本体の指定 + モーダル外側の背景の指定*/
.modal-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    background: rgba(0, 0, 0, 0.5);
    padding: 40px 20px;
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    transition: 0.3s;
    box-sizing: border-box;
}

/*モーダル本体の擬似要素の指定*/
.modal-container:before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    height: 100%;
}

/*モーダル本体に「active」クラス付与した時のスタイル*/
.modal-container.active {
    opacity: 1;
    visibility: visible;
}

/*モーダル枠の指定*/
.modal-body {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    max-width: 500px;
    width: 90%;
}

/*モーダルを閉じるボタンの指定*/
.modal-close {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    top: -40px;
    right: -40px;
    width: 40px;
    height: 40px;
    font-size: 40px;
    color: #fff;
    cursor: pointer;
}

/*モーダル内のコンテンツの指定*/
.modal-content {
    background: #fff;
    text-align: left;
    padding: 30px;
}

.btn {
    display: inline-block;
    padding: 0.8em 1em 0.8em 1em;
    border-radius: 5px;
    text-align: center;
    background-color: #004998;
    color: #ffffff;
    text-decoration: none;
}

.btn:hover {
    color: #ffffff;
    background-color: #0066d5;
    text-decoration: none;
}

.btn.gray {
    background-color: #9f9f9f;
}

.btn.gray:hover {
    background-color: #b9b9b9;
}

.btn.menu {
    border: 2px solid #004998;
    color: #004998;
    background-color: #edf2f7;
}

.btn.menu:hover {
    background-color: #004998;
    color: #ffffff;
}

.btn.small {
    padding: 0.5em 1em 0.5em 1em;
    font-size: 90%;
}