@charset "utf-8";

.mainbody {
    line-height: 1.77777;
    color: #3B4043;
    font-size: 1.8rem;
}

@media (max-width: 767px) {
    .mainbody {
        font-size: 1.4rem;
    }
}

.block {
    margin-bottom: 5rem;
}

/*
--------------------------------------------------
見出し
--------------------------------------------------
*/
.head-lv2 {
    position: relative;
    padding: .8rem 1rem 1rem calc(9.6 / 3.4 * 1em);
    margin-bottom: 2rem;
    background: url("../img/bg-heading.svg") no-repeat calc(6.1 / 3.4 * 1em) 50% / calc(2 / 3.4 * 1em) auto;
    border: .4rem solid #87C6D1;
    border-radius: 3.5rem;
    line-height: 1.29411;
    color: #004BB1;
    font-weight: 700;
    font-size: 3.4rem;
}

@media (max-width: 767px) {
    .head-lv2 {
        font-size: 2rem;
    }
}

.head-lv2::before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: calc(6.3 / 3.4 * 1em);
    margin: auto 0;
    background: linear-gradient(0deg, #87C6D1 50%, #A1D2DB 50%);
    border-radius: 3.1rem 0 0 3.1rem;
}

.head-lv2::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto 0;
}

.plan .head-lv2::after {
    left: calc((6.3 / 3.4 * 1em - 4 / 3.4 * 1em) / 2 + (.5 / 3.4 * 1em));
    width: calc(4 / 3.4 * 1em);
    background: url("../img/icon-plan.svg") no-repeat 0 50% / 100%;
}

.training .head-lv2::after {
    left: calc((6.3 / 3.4 * 1em - 3.8 / 3.4 * 1em) / 2);
    width: calc(3.8 / 3.4 * 1em);
    background: url("../img/icon-training.svg") no-repeat 0 50% / 100%;
}

.casestudies .head-lv2::after {
    left: calc((6.3 / 3.4 * 1em - 3.6 / 3.4 * 1em) / 2 + (.5 / 3.4 * 1em));
    width: calc(3.6 / 3.4 * 1em);
    background: url("../img/icon-casestudies.svg") no-repeat 0 50% / 100%;
}

.faq .head-lv2::after {
    left: calc((6.3 / 3.4 * 1em - 4.4 / 3.4 * 1em) / 2);
    width: calc(4.4 / 3.4 * 1em);
    background: url("../img/icon-faq.svg") no-repeat 0 50% / 100%;
}

.head-lv3 {
    margin-top: 3rem;
    margin-bottom: 3rem;
    padding-left: 1rem;
    border-left: .9rem solid #2098A6;
    line-height: 1.35714;
    font-weight: 700;
    font-size: 2.8rem;
    overflow: hidden;
}

@media (max-width: 767px) {
    .head-lv3 {
        margin-top: 2.5rem;
        margin-bottom: 1.5rem;
        font-size: 1.8rem;
    }
}

.head-lv4 {
    margin-top: 3.5rem;
    margin-bottom: 1.5rem;
    line-height: 1.66666;
    font-weight: 700;
    font-size: 2.4rem;
    text-align: center;
}

@media (max-width: 767px) {
    .head-lv4 {
        margin-top: 2.5rem;
        margin-bottom: 1.5rem;
        font-size: 1.6rem;
    }
}

.head-lv5 {
    margin-top: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    font-weight: 700;
    font-size: 2rem;
    border-bottom: 1px solid #2098A6;
}

@media (max-width: 767px) {
    .head-lv5 {
        font-size: 1.4rem;
    }
}

.head-lv6 {
    margin-top: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    font-weight: 700;
    font-size: 2rem;
}

@media (max-width: 767px) {
    .head-lv6 {
        font-size: 1.4rem;
    }
}

/*
--------------------------------------------------
ページ内リンク
--------------------------------------------------
*/
.nav {
    display: flex;
    flex-wrap: wrap;
    margin: 4rem 0 8rem;
}

.nav>li {
    display: flex;
    margin-right: 3rem;
}

.nav>li>a {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 6.4rem;
    padding: .7rem 4rem .9rem 2rem;
    background: #87C6D1 url("../img/icon-arrow-down.svg") no-repeat right 1.5rem top 50% / 1.2rem auto;
    line-height: 1.33333;
    color: #FFF;
    text-align: center;
    transition: opacity 300ms;
}

.nav>li>a:hover {
    opacity: .7;
}

@media (max-width: 767px) {
    .nav {
        display: block;
        margin: 2rem 1.2rem 3rem;
    }

    .nav>li {
        margin-right: 0;
    }

    .nav>li>a {
        min-height: 5.5rem;
        padding-top: .3rem;
        padding-bottom: .4rem;
    }

    .nav>li>a:hover {
        opacity: 1;
    }
}

.nav[data-column="3"]>li {
    width: calc((100% - 3rem * 2) / 3);
}

.nav[data-column="3"]>li:nth-child(3n) {
    margin-right: 0;
}

.nav[data-column="3"]>li:nth-child(n + 4) {
    margin-top: 2rem;
}

@media (max-width: 767px) {
    .nav[data-column="3"]>li {
        width: 100%;
    }

    .nav[data-column="3"]>li:nth-child(n + 4),
    .nav[data-column="3"]>li {
        margin-top: 1.2rem;
    }
}

.nav[data-column="2"]>li {
    width: calc((100% - 3rem) / 2);
}

.nav[data-column="2"]>li:nth-child(2n) {
    margin-right: 0;
}

.nav[data-column="2"]>li:nth-child(n + 3) {
    margin-top: 2rem;
}

@media (max-width: 767px) {
    .nav[data-column="2"]>li {
        width: 100%;
    }

    .nav[data-column="2"]>li:nth-child(n + 4),
    .nav[data-column="2"]>li {
        margin-top: 1.2rem;
    }
}

/*
--------------------------------------------------
リンクアイコン
--------------------------------------------------
*/

.link-icon,
.link-external,
.link-pdf,
.link-word {
    display: inline-block;
    padding-left: 2rem;
    background: url("../img/icon-arrow-link.svg") no-repeat 0 .6rem / 1.6rem;
}

.link-icon:hover,
.link-external:hover,
.link-pdf:hover,
.link-word:hover {
    text-decoration: underline;
}

.link-external::after {
    content: "";
    display: inline-block;
    vertical-align: 0;
    width: 1.9rem;
    height: 1.4rem;
    margin-left: .5em;
    background: url("../img/icon-external.svg") no-repeat 0 0 / 100%;
}

.link-pdf::after {
    content: "";
    display: inline-block;
    vertical-align: -.38888em;
    width: 1.7rem;
    height: 2.2rem;
    margin-left: .3em;
    background: url("../img/icon-pdf.png") no-repeat 0 0 / 100%;
}

.link-word::after {
    content: "";
    display: inline-block;
    vertical-align: -.38888em;
    width: 2.8rem;
    height: 2.6rem;
    margin-left: .2em;
    background: url("../img/icon-word.png") no-repeat 0 0 / 100%;
}

@media (max-width: 767px) {

    .link-icon,
    .link-external,
    .link-pdf,
    .link-word {
        padding-left: 1.6rem;
        background-position: 0 .7rem;
        background-size: 1.2rem;
    }
}

.link-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 31.5rem;
    padding: .4rem 3rem .6rem;
    background: #87C6D1 url("../img/icon-arrow-white.svg") no-repeat right 1.4rem top 50% / 1rem auto;
    border-radius: 1.8rem;
    line-height: 1.44444;
    color: #FFF;
    font-weight: 700;
    transition: opacity 300ms;
}

.link-button:hover {
    opacity: .7;
}

.link-button-column {
    display: flex;
    flex-wrap: wrap;
    margin: -.5rem;
}

.link-button-column .link-button {
    margin: .5rem;
}

@media (max-width: 767px) {
    .link-button {
        display: inline-block;
        text-align: center;
    }

    .link-button-column {
        display: block;
        text-align: center;
    }
}

/*
--------------------------------------------------
テーブル
--------------------------------------------------
*/
.table {
    width: 100%;
    border: 1px solid #707070;
    border-collapse: collapse;
}

.table.fixed {
    table-layout: fixed;
}

.table th,
.table td {
    border: 1px solid #707070;
}

.table th {
    padding: .5rem 1.5rem;
}

.table td {
    padding: 1rem 1.5rem;
    border: 1px solid #707070;
}

.table thead th {
    background: #A1D2DB;
    text-align: center;
}

.table tbody th {
    background: #D2EBEF;
}

.table-notice {
    margin-top: 1rem;
    font-size: 1.4rem;
}

@media (max-width: 767px) {
    .table-notice {
        margin-top: 1rem;
        font-size: 1.2rem;
    }
}

.table .center {
    text-align: center;
}

.table .nowrap {
    white-space: nowrap;
}

.table .w10 {
    width: 10%;
}

.table .w20 {
    width: 20%;
}

.table .w30 {
    width: 30%;
}

.table .w40 {
    width: 40%;
}

.table .w50 {
    width: 50%;
}

.table .w60 {
    width: 60%;
}

.table .w70 {
    width: 70%;
}

.table .w80 {
    width: 80%;
}

.table .w90 {
    width: 90%;
}

@media (max-width: 767px) {
    .faq-body table {
        font-size: 1.2rem;
    }
}

/* ** 追加　**　*/
table.table-program tbody td.under_dashed {
    border-bottom: 1px dashed #707070 !important;
}

table.table-program tbody td.under_dotted {
    border-bottom: 1px dotted #707070 !important;
}

table.table-program tbody td.top_dashed {
    border-top: 1px dashed #707070 !important;
}

table.table-program tbody td.top_dotted {
    border-top: 1px dotted #707070 !important;
}

/* ** 追加終わり** */

/*
--------------------------------------------------
アコーディオン
--------------------------------------------------
*/
.accordion {
    position: relative;
    height: calc(1.77777em * 3 + 3.5rem);
    padding-bottom: 3.5rem;
    overflow: hidden;
    cursor: pointer;
    transition: opacity 300ms;
}

.accordion:hover {
    opacity: .5;
}

.accordion::before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 75%);
}

.accordion::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    width: 0;
    height: 0;
    border-width: 3rem 2rem 0 2rem;
    border-style: solid;
    border-color: #87C6D1 transparent;
}

.accordion[data-open="true"] {
    height: auto;
    padding-bottom: 0;
    overflow: auto;
    cursor: auto;
}

.accordion[data-open="true"]:hover {
    opacity: 1;
}

.accordion[data-open="true"]::before,
.accordion[data-open="true"]::after {
    display: none;
}

/*
--------------------------------------------------
枠線つきボックス
--------------------------------------------------
*/
.box {
    margin: 0 3rem;
    padding: 2.5rem 5rem;
    border: 1px solid #707070;
}

@media (max-width: 767px) {
    .box {
        margin: 0 1rem;
        padding: 1.5rem 2.5rem;
    }
}

/*
--------------------------------------------------
検索
--------------------------------------------------
*/
@media (max-width: 767px) {
    .search-window {
        position: absolute;
        top: 0;
        left: -87.6vw;
        z-index: 10000;
        width: 87.6vw;
        padding: 0;
        background: #FFF;
        border: 0;
        transition: left 300ms;
    }

    [data-search-open="true"] .search-window {
        left: 0;
    }

    [data-menu-open="true"] .search-window {
        z-index: 100;
    }

    .search-window-inner {
        display: none;
        padding: 2rem 2rem 4rem;
    }

    [data-search-open="true"] .search-window-inner {
        display: block;
    }
}

.search-window-switch {
    display: none;
}

@media (max-width: 767px) {
    .search-window-switch {
        display: block;
        position: absolute;
        top: 23.8rem;
        right: -4rem;
        width: 4rem;
        padding: 2.4rem 1.8rem 2.4rem .6rem;
        background: #2098A6 url("../img/icon-search-select-switch-off.svg") no-repeat right .5rem top 50% / .8rem auto;
        border-radius: 0 .7rem .7rem 0;
        line-height: 1.1;
        color: #fff;
        font-weight: 700;
        font-size: 1.6rem;
        cursor: pointer;
    }

    [data-search-open="true"] .search-window-switch {
        padding: 2.4rem .6rem 2.4rem 1.8rem;
        background-image: url("../img/icon-search-select-switch-on.svg");
        background-position: left .5rem top 50%;
    }
}

.search-select {
    margin: 0 0 3rem;
    padding: 1.5rem 2.5rem 2rem 2rem;
    border: 1px solid #707070;
}

.search-select h3 {
    margin-bottom: 4rem;
}

@media (max-width: 767px) {
    .search-select {
        margin: 0 0 2.3rem;
        padding: 0;
        border: 0;
    }

    .search-select h3 {
        display: none;
    }
}

.search-select-block {
    display: flex;
}

.search-select-block:not(:last-child) {
    margin-bottom: 1rem;
}

@media (max-width: 767px) {
    .search-select-block {
        display: block;
    }

    .search-select-block:not(:last-child) {
        margin-bottom: 1.6rem;
    }
}

.search-select-title {
    flex: 0 0 auto;
    width: 7em;
}

@media (max-width: 767px) {
    .search-select-title {
        width: auto;
        margin-bottom: .5rem;
        font-weight: 700;
        font-size: 1.6rem;
        text-align: center;
    }
}

.search-select-list {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.search-select-list[data-type="level"] {
    display: block;
}

.search-select-list .clocmip {
    display: flex;
}

.search-select-list .jna,
.search-select-list .management {
    display: flex;
    justify-content: space-between;
}

.search-select-list[data-type="type"] {
    flex-wrap: wrap;
}

.search-select-item {
    display: flex;
    flex: 1 1 auto;
    margin: 0 .5rem 1rem;
}

.search-select-list[data-type="class"] .search-select-item {
    width: 186px;
    flex: 0 0 auto;
}

.search-select-list[data-type="level"] .search-select-item {
    flex: 0 0 auto;
}

@media (max-width: 767px) {
    .search-select-list {
        flex-wrap: wrap;
    }

    .search-select-list .clocmip,
    .search-select-list .jna,
    .search-select-list .management {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .search-select-item {
        display: flex;
        flex: 0 0 auto;
        width: calc(50% - .25rem);
        margin: 0 0 .25rem;
    }

    .search-select-list[data-type="class"] .search-select-item {
        width: calc(50% - .25rem);
    }

    .search-select-list .jna .search-select-item:first-child {
        width: 100%;
    }
}

.search-select-item input[type="checkbox"] {
    display: none;
}

.search-select-item label {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: .5rem;
    border: 1px solid #CCC;
    border-radius: .6rem;
    line-height: 1.2857;
    font-size: 1.4rem;
    text-align: center;
    cursor: pointer;
    transition: opacity 100ms, background-color 100ms;
}

.search-select-item :checked+label {
    background: #004BB1;
    border-color: #004BB1;
    color: #fff;
}

.search-select-item label:hover {
    opacity: .7;
}

@media (max-width: 767px) {
    .search-select-item label {
        padding: .5rem 0;
        font-size: 1.2rem;
    }
}

.search-keyword {
    margin: 0 0 3.6rem;
    padding: 2.5rem 2rem;
    border: 1px solid #707070;
}

.search-keyword form {
    display: flex;
}

.search-keyword label {
    margin-right: 3rem;
}

.search-keyword-input {
    display: flex;
}

.search-keyword input[type="text"] {
    -webkit-appearance: none;
    width: 362px;
    margin-right: 1rem;
    padding: 0 1rem;
    border: 1px solid #CCC;
    background: #F5F5F5;
    border-radius: .6rem;
}

.search-keyword input[type="submit"] {
    -webkit-appearance: none;
    padding: 0 1rem;
    background: #004BB1;
    border: 0;
    border-radius: .6rem;
    color: #FFF;
    font-weight: bold;
    cursor: pointer;
    transition: opacity 300ms;
}

.search-keyword input[type="submit"]:hover {
    opacity: .7;
}

@media (max-width: 767px) {
    .search-keyword {
        margin: 0;
        padding: 0;
        border: 0;
    }

    .search-keyword form {
        display: block;
    }

    .search-keyword label {
        display: block;
        margin-right: 0;
        margin-bottom: .5rem;
        font-weight: 700;
        font-size: 1.6rem;
        text-align: center;
    }

    .search-keyword-input {
        justify-content: space-between;
    }

    .search-keyword input[type="text"] {
        width: calc(100% - 8rem);
        font-size: 16px;
    }

    .search-keyword input[type="submit"] {
        width: 6.8rem;
        padding: 1rem 0;
        line-height: 1;
        font-size: 1.4rem;
        text-align: center;
    }

    .search-keyword input[type="submit"]:hover {
        opacity: 1;
    }
}

.search-result {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -.75rem;
}

.search-result-item {
    display: none;
    position: relative;
    width: calc((100% - 1.5rem * 4) / 4);
    margin: .75rem;
    padding: 1.5rem 1.5rem 5.8rem;
    border: 1px solid #707070;
    line-height: 1.2857;
    font-size: 1.4rem;
    text-align: center;
}

.search-result-item.js_selected {
    display: block;
}

.search-result-item .training-number {
    margin-bottom: 2rem;
}

.search-result-item .training-title {
    margin-bottom: 2rem;
}

.search-result-item .training-order {
    margin-bottom: 1.3rem;
}

.search-result-item .training-session {
    margin-bottom: 2rem;
}

.search-result-item .training-detail {
    position: absolute;
    right: 0;
    bottom: 1.8rem;
    left: 0;
    margin: 0 auto;
}

.search-result-item .training-detail a {
    display: block;
    width: 220px;
    margin: 0 auto;
    padding: 1rem 0 1.2rem;
    background: #004BB1;
    border-radius: 2rem;
    color: #FFF;
    font-weight: bold;
    transition: opacity 300ms;
}

.search-result-item .training-detail.explan a {
    background: #FF944F;
}

.search-result-item .training-detail.explan a.jnatg {
    background: #1CAC52;
}

.search-result-item .training-detail.explan a.jnatpu {
    background: #9979ce;
}

.search-result-item .training-detail.explan a.jnatpi {
    background: #F84D5A;
}

.search-result-item .training-detail.explan a.jnared {
    background: #C64B47;
}

.search-result-item .training-detail a:hover {
    opacity: .7;
}

@media (max-width: 767px) {
    .search-result {
        justify-content: space-between;
        margin: 0;
    }

    .search-result-item {
        width: calc((100% - 1rem) / 2);
        margin: 0;
        padding: 1.5rem 1rem 5.8rem;
    }

    .search-result-item:nth-child(n + 3) {
        margin-top: 1rem;
    }

    .search-result-item .training-detail a {
        width: calc(100% - 3rem);
    }

    .explan .search-result-item {
        margin-top: 1rem;
    }
}

.search-result-item .training-detail .link-disable {
    display: block;
    width: 220px;
    margin: 0 auto;
    padding: 1rem 0 1.2rem;
    background: #7d7d7d;
    border-radius: 2rem;
    color: #FFF;
    font-weight: bold;
    transition: opacity 300ms;
}

@media (max-width: 767px) {
    .search-result-item .training-detail .link-disable {
        width: calc(100% - 3rem);
    }
}

/*
--------------------------------------------------
よくあるご質問
--------------------------------------------------
*/
.faq-block {
    margin: 0 1.2rem 5rem;
    border-top: 1px solid #EFECEC;
}

.faq-item {
    padding: 1.2rem 0;
    border-bottom: 1px solid #EFECEC;
}

.faq-head {
    position: relative;
    padding: .7rem 6rem .9rem 5.5rem;
    background: url("../img/icon-faq-question.svg") no-repeat left center / 4.5rem 4.8rem;
    cursor: pointer;
}

.faq-head span {
    position: absolute;
    top: 0;
    right: 1.3rem;
    bottom: 0;
    width: 2.4rem;
    height: 2.4rem;
    margin: auto 0;
}

.faq-head span::before,
.faq-head span::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 2.4rem;
    height: .4rem;
    margin: auto;
    background: #2098A6;
    border-radius: .2rem;
    transition: width 300ms, transform 300ms;
}

.faq-head span::before {
    transform: rotate(-90deg);
}

[data-faq-open="true"] .faq-head span::before {
    transform: rotate(0deg);
}

[data-faq-open="true"] .faq-head span::after {
    width: 0;
    transform: rotate(90deg);
}

.faq-body {
    display: none;
}

.faq-body-inner {
    margin-top: 1.2rem;
    padding: .7rem 0 .9rem 5.5rem;
    background: url("../img/icon-faq-answer.svg") no-repeat left top / 4.5rem 4.8rem;
}

/*
--------------------------------------------------
お知らせ
--------------------------------------------------
*/
.news-item {
    display: flex;
    margin: 0 3rem;
    padding: 2.6rem 0;
    border-bottom: 1px solid #707070;
}

.news-item:only-child {
    border-bottom: 0;
}

.news-date {
    flex: 0 0 auto;
    width: 166px;
    line-height: 2;
    font-weight: bold;
    font-size: 1.8rem;
}

.news-text {
    flex: 0 1 auto;
}

@media (max-width: 767px) {
    .news-item {
        display: block;
        margin: 0 1rem;
        padding: 1.5rem .8rem;
    }

    .news-date {
        width: auto;
        font-size: 1.2rem;
    }
}

/*
--------------------------------------------------
float
--------------------------------------------------
*/
.float-block {
    overflow: hidden;
}

.float-block .float-left {
    float: left;
    margin: .7rem 2rem .7rem 0;
}

.float-block .float-right {
    float: right;
    margin: .7rem 0 .7rem 2rem;
}

.float-block .float-left img,
.float-block .float-right img {
    max-width: 100%;
}

@media (min-width: 768px) {
    .float-block .pc-w10 {
        width: 10%;
    }

    .float-block .pc-w20 {
        width: 20%;
    }

    .float-block .pc-w30 {
        width: 30%;
    }

    .float-block .pc-w40 {
        width: 40%;
    }

    .float-block .pc-w50 {
        width: 50%;
    }

    .float-block .pc-w60 {
        width: 60%;
    }

    .float-block .pc-w70 {
        width: 70%;
    }

    .float-block .pc-w80 {
        width: 80%;
    }

    .float-block .pc-w90 {
        width: 90%;
    }
}

@media (max-width: 767px) {
    .float-block .sp-w10 {
        width: 10%;
    }

    .float-block .sp-w20 {
        width: 20%;
    }

    .float-block .sp-w30 {
        width: 30%;
    }

    .float-block .sp-w40 {
        width: 40%;
    }

    .float-block .sp-w50 {
        width: 50%;
    }

    .float-block .sp-w60 {
        width: 60%;
    }

    .float-block .sp-w70 {
        width: 70%;
    }

    .float-block .sp-w80 {
        width: 80%;
    }

    .float-block .sp-w90 {
        width: 90%;
    }
}

/*
--------------------------------------------------
〇〇の声
--------------------------------------------------
*/
.voice {
    padding: 0 0 0 6.8rem;
    background: url("../img/icon-voice.svg") no-repeat 0 .7rem / 5.8rem;
}

/*
--------------------------------------------------
ぶら下がりインデント

▽パターン1 ※入れ子にしたり、テキスト内にいろいろな要素が入る場合
<div class="indent">
    <div class="indent-left">左側のテキスト</div>
    <div class="indent-right">右側のテキスト</div>
</div>

▽パターン2 ※左右ともにテキストだけの場合
<p class="indent"><span>左側のテキスト</span><span>右側のテキスト</span></p>

--------------------------------------------------
*/
.indent {
    display: flex;
}

.indent-left,
.indent span:nth-child(1) {
    flex: 0 0 auto;
}

.indent-pc {
    display: flex;
}

.indent-pc-left,
.indent-pc span:nth-child(1) {
    flex: 0 0 auto;
}

@media (max-width: 767px) {
    .indent-pc {
        display: block;
    }
}

table .indent {
    display: block;
}

/*
--------------------------------------------------
下余白
--------------------------------------------------
*/
.mb0 {
    margin-bottom: 0 !important;
}

.mb10 {
    margin-bottom: calc(10 / 18 * 1em);
}

.mb15 {
    margin-bottom: calc(15 / 18 * 1em);
}

.mb20 {
    margin-bottom: calc(20 / 18 * 1em);
}

.mb25 {
    margin-bottom: calc(25 / 18 * 1em);
}

.mb30 {
    margin-bottom: calc(30 / 18 * 1em);
}

.mb35 {
    margin-bottom: calc(35 / 18 * 1em);
}

.mb40 {
    margin-bottom: calc(40 / 18 * 1em);
}

.mb45 {
    margin-bottom: calc(45 / 18 * 1em);
}

.mb50 {
    margin-bottom: calc(50 / 18 * 1em);
}

.mb55 {
    margin-bottom: calc(55 / 18 * 1em);
}

.mb60 {
    margin-bottom: calc(60 / 18 * 1em);
}

.mb65 {
    margin-bottom: calc(65 / 18 * 1em);
}

.mb70 {
    margin-bottom: calc(70 / 18 * 1em);
}

.mb75 {
    margin-bottom: calc(75 / 18 * 1em);
}

.mb80 {
    margin-bottom: calc(80 / 18 * 1em);
}

.mb85 {
    margin-bottom: calc(85 / 18 * 1em);
}

.mb90 {
    margin-bottom: calc(90 / 18 * 1em);
}

.mb95 {
    margin-bottom: calc(95 / 18 * 1em);
}

.mb100 {
    margin-bottom: calc(100 / 18 * 1em);
}

/*
--------------------------------------------------
左余白
--------------------------------------------------
*/
.ml0 {
    margin-left: 0 !important;
}

.ml10 {
    margin-left: calc(10 / 18 * 1em);
}

.ml15 {
    margin-left: calc(15 / 18 * 1em);
}

.ml20 {
    margin-left: calc(20 / 18 * 1em);
}

.ml25 {
    margin-left: calc(25 / 18 * 1em);
}

.ml30 {
    margin-left: calc(30 / 18 * 1em);
}

/*
.mb35 { margin-bottom: calc(35 / 18 * 1em); }
.mb40 { margin-bottom: calc(40 / 18 * 1em); }
.mb45 { margin-bottom: calc(45 / 18 * 1em); }
.mb50 { margin-bottom: calc(50 / 18 * 1em); }
.mb55 { margin-bottom: calc(55 / 18 * 1em); }
.mb60 { margin-bottom: calc(60 / 18 * 1em); }
.mb65 { margin-bottom: calc(65 / 18 * 1em); }
.mb70 { margin-bottom: calc(70 / 18 * 1em); }
.mb75 { margin-bottom: calc(75 / 18 * 1em); }
.mb80 { margin-bottom: calc(80 / 18 * 1em); }
.mb85 { margin-bottom: calc(85 / 18 * 1em); }
.mb90 { margin-bottom: calc(90 / 18 * 1em); }
.mb95 { margin-bottom: calc(95 / 18 * 1em); }
.mb100 { margin-bottom:calc(100 / 18 * 1em); }
*/
/*
--------------------------------------------------
文字サイズ
--------------------------------------------------
*/
.text-large {
    font-size: 140%;
}

.text-small {
    font-size: 90%;
}

.text-right {
    text-align: right;
}

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

.text-left {
    text-align: left;
}

/*
--------------------------------------------------
NEWアイコン
--------------------------------------------------
*/
.icon-new {
    display: inline-block;
    padding: .4rem 1rem .6rem;
    background: #2098A6;
    border-radius: .5rem;
    line-height: 1;
    color: #FFF;
    font-weight: 700;
    font-size: 1.8rem;
}

@media (max-width: 767px) {
    .icon-new {
        font-size: 1.2rem;
    }
}

/*
--------------------------------------------------
ページ専用 / 研修の活用情報
--------------------------------------------------
*/
.casestudies .table th[colspan="2"] {
    background: #A1D2DB;
    text-align: center;
}

/*
--------------------------------------------------
ページ専用 / 研修 詳細
--------------------------------------------------
*/
.training-detail .table-main {
    margin-bottom: 5rem;
}

.training-detail .table-main tbody th {
    white-space: nowrap;
}

.training-detail .table-main.ex_plan tbody th {
    background-color: #FFEADD;
}

.training-detail .table-main.ex_plan.jnatg tbody th {
    background-color: #E1F8EA;
}

.training-detail .table-main.ex_plan.jnatpu tbody th {
    background-color: #f0ebf8;
}

.training-detail .table-main.ex_plan.jnatpi tbody th {
    background-color: #FCA6AC;
}

@media (max-width: 767px) {
    .training-detail .table-main tbody th {
        padding: .5rem .75rem;
        text-align: center;
    }
}

.training-detail .table-program thead th {
    padding: .5rem .75rem;
    white-space: nowrap;
}

.training-detail .table-program.ex_plan thead th {
    background: #FFB789;
}

.training-detail .table-program.ex_plan.jnatg thead th {
    background: #7ED59E;
}

.training-detail .table-program.ex_plan.jnatpu thead th {
    background: #ccbde7;
}

.training-detail .table-program.ex_plan.jnatpi thead th {
    background: #FCA6AC;
}

.training-detail .table-program.ex_plan tbody th {
    background: #FFEADD;
}

.training-detail .table-program.ex_plan.jnatg tbody th {
    background: #E1F8EA;
}

.training-detail .table-program.ex_plan.jnatpu tbody th {
    background: #f0ebf8;
}

.training-detail .table-program.ex_plan.jnatpi tbody th {
    background: #FBE9EA;
}

.training-detail .table-program tbody .chap {
    padding: .5rem .75rem;
    white-space: nowrap;
    text-align: center;
    width: 6rem;
}

.training-detail .table-program tbody .time {
    width: 8rem;
}

.training-detail .table-program tbody .inst {
    width: 40%;
}

/*
.training-detail .table-program tbody .cont {
    width: ;
}
.training-detail .table-program.ex_plan tbody .cont {
    width: ;
}
*/
.training-detail .table-program.ex_plan.jnatpu tbody .cont {
    width: 50%;
}

.training-detail .table-program tbody .time {
    padding: .5rem .75rem;
    white-space: nowrap;
    text-align: center;
}

.training-detail .table-program+.table-notice {
    margin-bottom: 5rem;
}

@media (max-width: 767px) {
    .training-detail .table-program {
        font-size: 1.2rem;
    }

    /*    .training-detail .table-program tbody .cont {
        width: 50%;
    }
*/
}

/** SP時縦並び変形  **/
@media (max-width: 767px) {
    .transform4row thead {
        display: none;
    }

    .transform4row tbody th,
    .transform4row tbody td,
    .training-detail .table-program.ex_plan.transform4row tbody .cont {
        display: block;
        width: 100%;
    }

    .transform4row tbody th,
    .transform4row tbody td {
        border-bottom: none;
        text-align: center;
    }

    .transform4row tbody td:last-child {
        border-bottom: 1px solid #707070;
    }

    .transform4row th::before,
    .transform4row td::before {
        content: attr(table-label);
        font-weight: bold;
        font-size: 1.3rem;
        margin-bottom: .7rem;
        width: 100%;
    }
}

/*
--------------------------------------------------
追加CSS
--------------------------------------------------
*/
/* ** 2022/04/19 ** */
.mail_contact input[type="text"] {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.8rem;
    color: #222;
    width: auto;
    border: none;
}

/* ** おわり  ** */
/* ** 2022/04/25 ** */
.imgflex_container {
    display: flex;
    align-items: flex-start;
    margin-bottom: 20px;
}

.flex_reverse {
    flex-direction: row-reverse;
}

.imgflex_container .imgflex_imgitem {
    flex: 0 1 auto;
    padding: 0 0 0 20px;
    text-align: center;
}

.flex_reverse .imgflex_imgitem {
    padding: 0 20px 0 0;
    text-align: center;
}

.imgflex_imgitem img {
    border: solid 1px #c0c0c0;
}

.imgflex_container .imgflex_item {
    flex: 0 1 auto;
    min-width: 0;
}

.bllinkb_spct a {
    color: white;
    background: #004BB1;
    border-radius: 2rem;
    color: white;
    padding: 5px 30px;
    margin: 30px auto;
}

p.bllinkb_spct a:hover {
    opacity: .7;
}

@media (max-width: 767px) {
    .imgflex_container {
        display: block;
    }

    .imgflex_container .imgflex_imgitem {
        padding: 20px 0;
    }

    p.bllinkb_spct {
        text-align: center;
    }

    p.bllinkb_spct a {
        display: block;
        margin: 10px auto;
    }
}

/* ** おわり  ** */
/* ** 2022/4/27 ** */
img.cnter_org100 {
    width: auto;
    margin: 20px auto;
}

img.cnter_org100:hover {
    opacity: .7;
}

/* ** おわり  ** */
/* *** 20220412追加 *** */
.contact__flex {
    display: flex;
}

.contact__flex dt h5 {
    font-weight: bold;
}

.contact__flex dt {
    flex: 0 0 145px;
    margin: 0 1rem 0 0;
}

.contact__flex dd {
    width: calc(100% - 145px);
}

.contact__fflex {
    display: flex;
    flex-wrap: wrap;
}

.contact__fflex dt.extable {
    flex: 0 0 60px;
}

.contact__fflex dd {
    flex-shrink: 1;
    width: calc(100% - 93px);
}

@media screen and (max-width: 767px) {
    .contact__flex {
        display: block;
        margin-bottom: 2rem;
    }

    .contact__flex dd {
        margin-left: 1rem;
    }

    .contact__flex dd {
        width: 100%;
    }

    .contact__fflex dt {
        flex: 0 0 45px;
    }

    .contact__fflex dd {
        flex-shrink: 1;
        width: calc(100% - (45px + 2rem));
    }
}

.contact__fflex input {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 1.8rem;
}

.contact__fflex input[type="text"] {
    color: #222;
    width: 9rem;
    border: none;
}

.contact__fflex input[type="button"] {
    border: none;
    background-color: #87c6d1;
    color: white;
    margin-left: 0.5rem;
    padding-bottom: 2px;
    width: 60px;
}

.contact__fflex input[type="button"]:hover {
    opacity: .6;
    cursor: pointer;
}

.telhref {
    color: #222;
    cursor: default;
}

/* ** おわり  ** */
/****  20220314追加  ****/
.btn-window {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 87.6vw;
    padding: 0;
    border: 0;
}

#ptop_btn {
    display: block;
    position: fixed;
    top: 40rem;
    width: 4rem;
    padding: 2.4rem 1.8rem 2.4rem .6rem;
    background-color: rgba(0, 75, 177, 0.7);
    line-break: normal;
    border-radius: 0 .7rem .7rem 0;
    line-height: 1.1;
    color: #FFF;
    font-weight: 700;
    font-size: 1.6rem;
    cursor: pointer;
    z-index: 9999;
}

@media (max-width: 767px) {
    .btn-window {
        position: absolute;
        top: 0;
        left: -87.6vw;
        z-index: 9999;
        width: 87.6vw;
        padding: 0;
        border: 0;
    }

    #ptop_btn {
        display: block;
        position: absolute;
        right: -4rem;
        top: 40rem;
        width: 4rem;
        padding: 2.4rem 1.8rem 2.4rem .6rem;
        background-color: rgba(0, 75, 177, 0.7);
        line-break: normal;
        border-radius: 0 .7rem .7rem 0;
        line-height: 1.1;
        color: #FFF;
        font-weight: 700;
        font-size: 1.6rem;
        cursor: pointer;
        z-index: 9999;
    }
}

/****　追加終 ****/
/****  20220706追加  ****/
.movie_flex {
    display: flex;
    justify-content: space-between;
}

.movie_flex h5 {
    font-weight: bold;
}

.movie_flex li {
    flex: 0 0 49%;
    margin: 15px 0;
    background-color: #D2EBEF;
}

.movie_flex li div {
    position: relative;
    max-width: 100%;
    padding-top: 56.25%;
    margin-bottom: 32px;
}

.movie_flex li div iframe {
    border: none;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
}

@media (max-width: 676px) {
    .movie_flex {
        flex-wrap: wrap;
    }

    .movie_flex li {
        flex: 0 0 100%;
    }
}

/****　追加終 ****/
/****  20220815追加  ****/
.oly_fl {
    display: flex;
    flex-wrap: wrap;
}

.oly_fl span:first-child {
    flex: 0 0 250px;
}

/****　追加終 ****/
table.mdt td {
    padding: 1rem .6rem;
}

/****　追加終 ****/
/****  20221206追加  ****/
.search_year {
    display: flex;
    margin-top: 3rem;
    margin-bottom: 3rem;
    line-height: 1.35714;
    font-weight: 700;
    font-size: 2.8rem;
    text-align: center;
}

.search_year .year_item {
    flex: 0 1 50%;
    color: #586168;
    padding: 1rem 0;
    border-bottom: 2.2px solid #FAE288;
}

.search_year .year_item a {
    color: #586168;
    width: 100%;
}

.search_year .year_item:hover {
    opacity: .7;
}

.index_year .year_item:hover {
    background-color: #FAE288;
    opacity: 1;
}

.search_year .year_item.active {
    background-color: #FAE288;
    color: #586168;

}

@media (max-width: 767px) {
    .search_year {
        margin-top: 2.5rem;
        margin-bottom: 1.5rem;
        font-size: 1.8rem;
    }
}

.price_w span {
    width: 100%;
    max-width: 20rem;
}

/****　追加終 ****/

/****　20230324追加 絞り込み検索対応****/
.search-select-list[data-type="level"] .search-select-item:nth-child(3) {
    margin-right: 700px;
}

@media (max-width: 767px) {
    .search-select-list[data-type="level"] .search-select-item:nth-child(3) {
        margin-right: 0px;
    }

    .search-select-list[data-type="level"] .search-select-item:nth-child(4) {
        width: 100%;
    }
}

/****　202401202追加 絞り込み検索対応****/

.search2024 .search-select-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.search2024 .search-select-list[data-type="level"] .search-select-item:nth-child(2) {
    margin-right: 700px;
}

.search2024 .search-select-list[data-type="level"] .search-select-item:nth-child(3) {
    margin-right: 0px;
}

.training .search-block .note {
    margin-top: -24px;
    margin-bottom: 30px;
    text-align: right;
}

.search-block .search-result .search-result-item .training-title span {
    display: block;
}

.table-program .flexspan {
    width: 40px;
}

.table-program .flexone {
    flex: 1;
}

@media (max-width: 767px) {
    .search2024 .search-select-list {
        justify-content: space-between;
    }

    .search2024 .search-select-list[data-type="level"] .search-select-item:nth-child(2) {
        margin-right: 0px;
    }

    .search2024 .search-select-list[data-type="level"] .search-select-item:nth-child(4) {
        width: calc(50% - .25rem);
    }

    .training .search-block .note {
        margin-top: 20px;
        margin-bottom: 30px;
        text-align: left;
    }

    .table-program .flexspan {
        width: 7vw;
    }
}

/**** 20241126追加 研修申し込みはこちらボタンの非活性 ****/

.training-detail .bllinkb_spct span {
    color: white;
    background: #7d7d7d;
    border-radius: 2rem;
    padding: 5px 30px;
    margin: 30px auto;
}


/*20250409*/
.training-detail .table-main tbody th {
    width: 0;
}

/* 20250603 */
img.practice_skills_proficiency_stage {
    width: 75%;
    margin: 0 auto;
    display: block;
}

@media (max-width: 767px) {
    img.practice_skills_proficiency_stage {
        width: 100%;
        margin: 0 auto;
        display: block;
    }
}