@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 400;
    src: local("Noto Sans CJK JP"),
        + local("Noto Sans JP"),
        url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format('woff2'),
        url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format('woff'),
        url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format('opentype');
}

/*共通設定*/

html {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

body {
    font-family: 'NotoSansCJKjp', 'Noto Sans JP', sans-serif;
    color: #000000;
    letter-spacing: 0;
    line-height: 1.6;
    /*行間*/
    font-size: 12px;
    margin: 0;
    font-weight: 400;
}

/*border-boxを全ての要素に適用*/
*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

p {
    text-align: left;
}

h3,
h2,
h4,
p,
dl,
ul {
    margin: 0;
}

button {
    padding: 0;
    border: none;
}

img {
    width: 100%;
    height: auto;
    margin: 0;
}

li:not(.has-list-style li):not(.news_detail li) {
    list-style-type: none;
}

table {
    border-collapse: collapse;
    /*tr間の余白をなくす*/
}

a {
    text-decoration: none;
}

.no-padding {
    padding: 0;
}

.br_span {
    display: inline-block;
    /*改行*/
}

.bold {
    font-weight: bold;
}

.text-box {
    border: 1px solid #A7036B;
    padding: 20px;
    margin-top: 10px;
    width: fit-content;
}

.text-box p:not(.link) {
    color: #000;
}

.wrapper {
    margin-top: 72px;
}

/*タイトル2*/
h2.section-title {
    text-align: center;
    padding: 20px 0 25px;
    border-bottom: solid 2px #a7036b;
}

h2.section-title .en {
    /* 英字 */
    display: block;
    font-family: "Noto Serif", "Times New Roman", serif;
    font-size: 38px;
    color: #E4B3D2;
    margin-bottom: 2px;
    font-weight: 400;
    line-height: 1;
}

h2.section-title .jp {
    /* 日本語 */
    display: block;
    font-size: 15px;
    letter-spacing: 0.1em;
    font-weight: 400;
}

/*タイトル3*/

h3.section-title {
    text-align: left;
    padding-top: 25px;
    width: 270px;
}


h3.section-title .en {
    /* 英字 */
    display: block;
    font-family: "Noto Serif", "Times New Roman", serif;
    font-size: 66px;
    color: #E4B3D2;
    margin-bottom: 2px;
    font-weight: 300;
    line-height: 1;
}


h3.section-title .jp {
    /* 日本語 */
    display: block;
    font-size: 16px;
    letter-spacing: 0.1em;
    font-weight: 500;
    opacity: 0.8;
}

/*SP⇔PC画像設定*/
img.pc,
.pc {
    display: none;
}

img.sp,
.sp {
    display: block;
}

.eye_catch {
    margin: 0;
    width: 100%;
}

/*pcとspで表示の切替*/
.pc-nav {
    display: none;
}

/*ヘッダー sp*/
header {
    width: 100%;
    height: 72px;
    padding: 0;
    background-color: white;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3;
    display: flex;
    align-items: center;
}

header h1 {
    margin: 10px;
    z-index: 3;
}

header h1 a {
    display: flex;
    align-items: center;
}

header h1 img {
    height: auto;
    max-height: 52px;
    /* 最大高さだけ制限 */
    width: auto;
    max-width: 100%;
    display: block;
}

header h1 span {
    font-size: 10px;
    color: #333;
    line-height: 1.2;
    margin-left: 1.3em;
}

header nav .current {
    border-bottom: 1px solid #A7036B;
}

header nav a {
    color: #000000;
    font-size: 12px;
    line-height: 1;
    padding: 5px 0;
}

/*ヘッダーメニュー sp*/
.sp-nav {
    z-index: 2;
    position: fixed;
    top: 72px;
    left: 0;
    width: 100%;
    height: calc(100% - 72px);
    /*top:60px;の分*/
    display: block;
    background: rgba(0, 0, 0, .7);
    visibility: hidden;
    transition: all .2s ease-in-out;

    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

#hamburger {
    position: relative;
    display: block;
    width: 24px;
    height: 17px;
    margin: auto 16px auto auto;
    text-align: center;

    z-index: 3;
}

#hamburger span {
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    width: 100%;
    height: 1px;
    background-color: #000;
    transform: translateY(-50%);
}

#hamburger::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #000;
}

#hamburger::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #000;
}

.sp-nav ul {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: auto;
    background-color: white;
    margin: 0;
}

.sp-nav li:not(:last-child) {
    margin: 0;
    padding: 0 0 20px;
}

.sp-nav li:last-child {
    margin: 0;
    padding: 0;
}

.sp-nav li a {
    display: block;
    color: black;
    text-decoration: none;
    text-align: left;
    display: block;
    width: fit-content;
}

.toggle {
    visibility: visible;
}

/*ヘッダーメニュー sp 閉じるボタン*/
#hamburger .close {
    position: relative;
}

.close::before {
    top: 7px !important;
    transform: rotate(45deg);
}

.close span {
    opacity: 0;
}

.close::after {
    top: 7px;
    transform: rotate(-45deg);
}

/*footer*/
.site-footer {
    border-top: 2px solid #A7036B;
    /* ピンクライン */
    padding: 20px 20px 30px;
}

.footer-inner {
    display: flex;
    flex-direction: column;
    /* SP：縦並び */
    align-items: center;
    gap: 10px;
}

.footer-logo img {
    height: 27px;
    width: auto;
}

.footer-copy {
    font-size: 10px;
    text-align: center;
}

/*2カラム*/

.pc-column {
    display: flex;
    flex-direction: column;
}

/*トップページ　共通*/

.info-list {
    padding: 0 20px 0;
    margin: 0 0 50px;
}

.info-text,
.info-figure,
.news_detail .info-list p {
    padding-top: 25px;
    margin: 0;
}

.has-padding-top-10 {
    padding-top: 10px;
}

.has-padding-top-25 {
    padding-top: 25px;
}

.has-padding-top-5 {
    padding-top: 5px;
}

/*トップページ　業務内容*/

.mission {
    display: flex;
    flex-direction: column;
    /* 縦並び */
    gap: 0;
    align-items: center;
    /* 三角画像を中央寄せ */
}

.mission_text {
    width: 100%;
    max-width: 509px;
}

.mission_figure {
    max-width: 299px;
    width: 90%;
}

.mission_text img,
.mission_figure img {
    width: 100%;
    height: auto;
    display: block;
}

/*トップページ　認定内容*/
.has-list-style {
    padding-left: 1rem;
}

/*dlのデザイン*/
.dl-hasColor dt {
    color: #A7036B;
    margin-top: 25px;
    font-size: 14px;
}

.hasColor {
    color: #A7036B;
    padding-top: 10px;
}

.dl-hasColor dt::before,
.hasColor::before {
    content: "■";
}

.hasColor::before {
    padding-right: 2px;
}

.dl-hasColor dd {
    margin: 0;
    padding-left: 13px;
}

/*newsのデザイン*/

.news-list .info-text {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
}

.news-list time {
    padding-right: 25px;
    width: 120px;
}

.news-title {
    width: calc(100% - 120px);
}

.link {
    color: #A7036B;
    font-weight: bold;
    display: block;
    padding-top: 10px;
}

.link::before {
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    padding-right: 3px;
}

/*ERTIFICATION*/

.width-38 {
    width: 38px;
    display: inline-block;
}

/*table共通デザイン*/
.Resp_table td,
.application_table3 td {
    padding: 0;
    background-color: white;
    font-size: 13px;
    min-height: 45px;
    text-align: left;
    box-sizing: border-box;
    border: 1px solid #A7036B;
}

.Resp_table th,
.application_table3 th {
    border: 1px solid #A7036B;
    background-color: #FDEDF1;
    box-sizing: border-box;
    height: 45px;
    font-size: 13px;
    text-align: center;
    font-weight: bold;
    padding: 0;
}

.application_table3 th {
    height: 41px;
}

.application_table3 td {
    padding: 9px;
    vertical-align: top;
    vertical-align: middle;
}

/*テーブル sp*/
.Resp_table:not(.introduction .Resp_table):not(.application_table2),
.application_table3 {
    padding: 10px 0 0;
}

.Resp_table h3 {
    margin-bottom: .4em;
}

.Resp_table table,
.application_table3 table {
    width: 100%;
    background-color: white;
    margin-top: 10px;
}

.application_table3 .table-scroll {
    overflow-x: auto;
}

.application_table3 table {
    min-width: 250px;
}

.Resp_table thead {
    display: none;
}

.Resp_table tr {
    display: block;
}

.Resp_table tr:not(:last-child) {
    margin-bottom: 20px;
}

.Resp_table td {
    display: flex;
    align-items: center;
    border-bottom: 0;
    position: relative;
    vertical-align: middle;
    padding: 9px 8px 9px 92px;
}

.application_table3 td {
    /*未定*/
    padding: 9px 8px;
}

.Resp_table td:last-child {
    border-bottom: 1px solid #A7036B;
}

.Resp_table td:before {
    position: absolute;
    left: 0;
    top: 0;
    content: attr(data-label);
    display: flex;
    text-align: left;
    height: 100%;
    width: 82px;
    min-width: 82px;
    border-right: 1px solid #A7036B;
    background-color: #FDEDF1;
    font-size: 13px;
    box-sizing: border-box;
    padding: 9px 8px;
    align-items: center;
    justify-content: center;
}

.Resp_table span.padding_buttom_1em {
    display: inline-block;
}


/*共通パーツ*/
.info-img-container {
    text-align: center;
}

.info-img {
    margin-top: 25px;
    width: 100%;
    max-width: 800px;
    /*border: 1px solid #e4e4e4bd;*/
}

.wp-block-image:not(.wp-block-column .wp-block-image) {
    margin: 0;
    padding-top: 25px;
    width: 100%;
    max-width: 800px;
}

/*受講・受験申込から結果通知までの流れ*/
.flow {
    margin: 0;
}

.flow-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    align-items: start;
}

/*トレーニングスケジュール table*/

.application_table3 th:nth-child(1) {
    width: 23%;
    min-width: 40px;
}

.application_table3 th:nth-child(2) {
    width: 30%;

}

.application_table3 th:nth-child(3) {
    width: 47%;
}

/* 左右カラム */
.flow-block {
    padding: 12px 0;
}

.flow-title {
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    color: #b4005a;
    /* 画像のピンク寄せ */
}

/*
.flow-text {
  margin: 0;
  line-height: 1.8;
  font-size: 14px;
}

.flow-note {
  display: inline-block;
  font-size: 14px;
}*/

/* 「こちら」リンク */
.flow-link,
.download {
    text-decoration: underline;
    color: #000;
}

/* 中央：Step + 縦線 */
.flow-center {
    display: none;
}

.flow-steps {
    position: relative;
    text-align: center;
}

.flow-step {
    display: inline-block;
    font-weight: 700;
    font-size: 16px;
    color: #b4005a;
    background-color: white;
}

/* 縦線（中央） */
/* モバイルは縦線を消す */
.flow-line {
    display: none;
}

/* --- 罫線っぽい区切り（画像の点線風） --- */
.flow-left .flow-block,
.flow-right .flow-block:not(:last-child) {
    border-bottom: 2px dashed #b4005a;
    padding-top: 16px;
}

.flow-step-sp {
    display: block;
}

.application_table1.Resp_table .date {
    padding-left: 3em;
}

.application_table1.Resp_table .fee {
    padding-right: 0.8em;
}

/*※つきリスト*/
.flow-note {
    line-height: 1.8;
}

.flow-note a {
    color: #000;
    padding-left: 1em;
    text-decoration: underline;
}

/*投稿ページ*/
.news_detail h3 {
    font-size: 25px;
    line-height: 1.3;
    padding: 0.25em 20px 1rem;
    margin: 0;
    border-bottom: 1px solid #F1F1F1;
}

.news_detail .news_info {
    padding: 1rem 20px 0;
}

.news_info .date {
    font-size: 13px;
    display: block;
    clear: both;
    padding-right: 2px;
}

.category,
.tag {
    display: inline-block;
    text-align: center;
    font-weight: normal;
    margin-right: 0.4em;
}

.wp-block-list,
.wp-block-table {
    padding-top: 25px;
    margin: 0;
}

.wp-block-table td,
.wp-block-table th {
    padding: 9px;
    border: 1px solid #A7036B;
}

.wp-block-table th {
    background-color: #FDEDF1;
}

/*お問い合わせ*/
.contact .contact_wrap {
    width: fit-content;
    margin: 0 auto;
}

.wpcf7 {
    padding-top: 10px;
}

/* =========================
   SP：認証制度紹介の子メニュー
========================= */
.sp-has-submenu .sp-details {
    width: 100%;
}

.sp-has-submenu .sp-summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0;
    color: #000;
    font-size: 12px;
    line-height: 1;
    width: 100%;
}

.sp-has-submenu .sp-summary::-webkit-details-marker {
    display: none;
}

.sp-summary i {
    margin-left: auto;
    font-size: 11px;
}

.sp-has-submenu .sp-submenu {
    list-style: none;
    margin: 20px 0 0;
    padding: 0 0 0 16px;
}

.sp-has-submenu .sp-submenu li {
    padding: 0 0 20px !important;
}

.sp-has-submenu .sp-submenu li:last-child {
    padding: 0 !important;
}

.sp-has-submenu .sp-submenu a {
    display: block;
    text-decoration: none;
    text-align: left;
    width: fit-content;
    padding: 0;
}

.wtm-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin: 25px auto 0;
    padding: 5px 30px;
    box-sizing: border-box;

    background: #A40465;
    border: 2px solid #494949;
    border-radius: 16px;

    color: #fff;
    text-decoration: none;
    text-align: center;
    font-size: 16px;
    line-height: 1.35;
}

.wtm-button:hover {
    opacity: 0.92;
}

.wtm-button:active {
    transform: translateY(1px);
}

/* 959px以上に適用されるCSS（PC用） */
@media screen and (min-width: 959px) {

    /*header*/
    .sp-nav,
    #hamburger {
        display: none;
    }

    /*footer*/
    .footer-inner {
        flex-direction: row;
        /* 横並び */
        justify-content: space-between;
    }

    .footer-copy {
        text-align: left;
    }

    .wrapper {
        margin-top: 0;
    }

    /*ヘッダー pc*/
    header {
        padding: 0;
        display: flex;
        justify-content: space-between;
        box-sizing: border-box;
        position: relative;
        z-index: 100;
    }

    .pc-nav {
        display: flex;
        justify-content: space-between;
        width: 55%;
        align-items: center;
    }

    header h1 {
        margin: 10px 0;
    }

    /* =========================
       PC：認証制度紹介 ドロップダウン
    ========================= */
    .pc-nav .nav-item.has-submenu {
        position: relative;
        display: inline-flex;
        align-items: center;
        height: 100%;
    }

    .pc-nav .submenu-toggle {
        background: transparent;
        border: 0;
        padding: 8px;
        font: inherit;
        color: #000;
        font-size: 12px;
        line-height: 1;
        cursor: pointer;
    }

    .pc-nav .submenu-toggle.current {
        border-bottom: 1px solid #A7036B;
    }

    .pc-nav .submenu {
        position: absolute;
        top: calc(100% + 5px);
        left: 0;
        min-width: 195px;
        background: #e9e9e9;
        padding: 10px 12px;
        border-radius: 0;
        display: none;
        z-index: 1000;
        box-sizing: border-box;
    }

    .pc-nav .submenu a {
        display: block;
        padding: 0;
        text-decoration: none;
        line-height: 1.6;
    }

    .pc-nav .submenu a:not(:last-child) {
        padding-bottom: 8px;
    }

    .pc-nav .submenu a:hover {
        opacity: 0.6;
    }

    .pc-nav .has-submenu.is-open .submenu {
        display: block;
    }

    .arrow {
        padding-left: 2px;
    }

    .sp-has-submenu .sp-submenu a {
        line-height: 1.6;
    }

    /*2カラム　トップ*/
    .pc-column {
        flex-direction: row;
        justify-content: space-between;
    }

    .pc-column.profile .info-figure {
        width: 40%;
        min-width: 260px;
        padding-left: 25px;
    }

    .pc-column.profile dl {
        width: 60%;
    }

    .pc-column.profile .info-text {
        width: 60%;
        padding-right: 25px;
    }

    .certification {
        gap: 25px;
    }

    /*2カラム　認証制度の紹介（認証制度構築の目的）*/
    .pc-column.introduction1_img2 .info-figure {
        width: 60%;
    }

    .pc-column.introduction1_img2 .note {
        width: 40%;
        min-width: 260px;
        padding-left: 25px;
        padding-top: 89px;
    }

    /*SP⇔PC画像設定*/
    img.sp,
    .sp {
        display: none;
    }

    img.pc,
    .pc {
        display: block;
    }

    /*トップページ　共通*/
    .info-list {
        padding: 0 40px 0;
    }

    /*トップページ　業務内容*/
    .mission {
        flex-direction: row;
        /* 横並び */
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
    }

    /* 左（文章画像）は残り幅 */
    .mission_text {
        flex: 1 1 auto;
    }

    /* 右（三角画像）は固定幅に */
    .mission_figure {
        flex: 0 0 299px;
        transform: translateY(-87px);
        /* +なら下、-なら上 */
    }

    /*テーブル pc*/
    .Resp_table,
    .application_table3 {
        width: 73.2%;
        max-width: 1000px;
    }

    .Resp_table th:nth-child(1) {
        width: 20%;
    }

    .Resp_table th:nth-child(2) {
        width: 40%;
        min-height: 45px;
    }

    .Resp_table th:nth-child(3) {
        width: 40%;
    }

    .introduction .Resp_table1 th:nth-child(2) {
        width: 35%;
        min-height: 45px;
    }

    .introduction .Resp_table2 th:nth-child(1) {
        width: 25%;
    }

    .introduction .Resp_table2 th:nth-child(2) {
        width: 15%;
        min-height: 45px;
    }

    .introduction .Resp_table2 th:nth-child(3) {
        width: 60%;
    }

    .introduction .Resp_table3 th:nth-child(2) {
        width: 80%;
        min-height: 45px;
    }

    .Resp_table:not(.Resp_table3) th {
        border: 1px solid #A7036B;
        background-color: #FDEDF1;
        height: 41px;
        font-size: 13px;
        text-align: center;
        font-weight: bold;
    }

    .Resp_table:not(.Resp_table3) thead {
        display: table-header-group;
    }

    .Resp_table:not(.Resp_table3) tr {
        display: table-row;
    }

    .Resp_table tr:not(:last-child) {
        margin-bottom: 0;
    }

    .Resp_table:not(.Resp_table3) td {
        display: table-cell;
        border: 1px solid #A7036B;
        padding: 9px;
    }

    .Resp_table:not(.Resp_table3) td:before {
        display: none;
    }

    .Resp_table3 td:before {
        width: 20%;
    }

    .Resp_table3 td {
        padding-left: calc(20% + 8px);
    }

    /*共通パーツ*/
    .info-img {
        width: 70%;
        min-width: 750px;
    }

    /*トレーニング日程等受講案内 table*/
    .application_table1.Resp_table {
        width: 100%;
        max-width: 900px;
    }

    .application_table1.Resp_table th:nth-child(1) {
        width: 26%;
    }

    .application_table1.Resp_table th:nth-child(2) {
        width: 26%;
    }

    .application_table1.Resp_table th:nth-child(3) {
        width: 26%;
    }

    .application_table1.Resp_table th:nth-child(4) {
        width: 10%;
    }

    .application_table1.Resp_table th:nth-child(5) {
        width: 12%;
    }


    /*トレーニングセンタ紹介 table*/
    .application_table2.Resp_table {
        width: 100%;
        max-width: 800px;
    }

    .application_table2.Resp_table th:nth-child(1) {
        width: 36%;
    }

    .application_table2.Resp_table th:nth-child(2) {
        width: 32%;
    }

    .application_table2.Resp_table th:nth-child(3) {
        width: 32%;
    }

    /*トレーニングスケジュール table*/

    .application_table3 th:nth-child(1) {
        width: 20%;
    }

    .application_table3 th:nth-child(2) {
        width: 30%;

    }

    .application_table3 th:nth-child(3) {
        width: 50%;
    }

    /*受講・受験申込から結果通知までの流れ*/
    .flow-left .flow-title {
        text-align: right;
    }

    .flow-grid {
        grid-template-columns: 1fr 120px 1fr;
        gap: 24px;
        max-width: 800px;
    }

    /* PCでは中央Stepは通常位置 */
    .flow-center {
        position: relative;
        display: block;
        order: 0;
    }

    /* 縦線（中央） */
    .flow-line {
        display: block;
        position: absolute;
        top: 6px;
        bottom: 6px;
        left: 50%;
        width: 3px;
        transform: translateX(-50%);
        background: #b4005a;
        border-radius: 2px;
        z-index: -1;
    }

    .flow-step {
        display: block;
        text-align: center;
        background-color: white;
    }

    /*
    .flow-steps .flow-step:nth-child(1) {
        margin-bottom: 29px;

    }
*/
    .flow-steps {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 43px;
        /* ← ここで間隔を一括調整 */
        margin-top: 12px;
        position: relative;
        min-height: 100%;
    }

    .flow-right .flow-block:first-child {
        margin-top: 64px;
    }

    .flow-right .flow-block:nth-child(3) {
        margin-top: 26px;
    }

    .flow-left .flow-block:nth-child(2) {
        margin-top: 36px;
    }

    .flow-left .flow-block:nth-child(3) {
        margin-top: 20px;
    }

    .flow-left .flow-block:last-child {
        border-bottom: none;
    }

    .flow-step-sp {
        display: none;
    }

    .text-right {
        text-align: right;
    }

    /*投稿ページ*/
    .news_info .date {
        display: inline-block;
    }

    .news_detail h3 {
        padding: 0.25em 40px 1rem;
    }

    .news_detail .news_info {
        padding: 1rem 40px 0;
    }
}

/* 1440px以上に適用されるCSS（デスクトップPC用） */
@media screen and (min-width: 1440px) {

    /*共通*/
    .container {
        max-width: 900px;
        margin: 0 auto 0;
    }

}