@charset "utf-8";
/* =========================================================================================================================================== */
/* CSS変数                                                                                                                                      */
/* =========================================================================================================================================== */
:root {
    --font-YuGothic    :  "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;


    --font-weight-regular : 400;
    --font-weight-bold    : 700;
    --font-weight-black   : 900;
    
    --font-size-normal    : 16px;

    --font-weight-regular : 400;
    --font-weight-bold    : 700;
    --font-weight-black   : 900;

    --width-100           : calc(100% - 50px);
    --content-width-1     : 1540px;
    --content-width-2     : 1200px;
    --content-width-3     : 1100px;
    --content-width-4     : 1000px;
    --content-width-5     : 900px;
    --content-width-6     : 960px;

    --color-black1        : #000000;
    --color-black2        : #222222;
    --color-gray1         : #999999;
    --color-gray2         : #c8c8c8;
    --color-gray3         : #f5f5f5;
    --color-gray4         : #dfe1e1;
    --color-gray5         : #d9d9d9;
    --color-gray6         : #737373;
    /* <!-- 23.02.08 ここから --> */
    --color-gray7         : #e0e0e0;
    /* <!-- 23.02.08 ここまで --> */
    --color-red1          : #ff0000;
    --color-blue1         : #0093c9;
    --color-blue2         : #97bfd5;
    --color-blue3         : #0054b2;
    --color-green1        : #099733;
    --color-green2        : #f3faf4;
    --color-green3        : #00963f;
    --color-white         : #ffffff;


    --zindex-header       : 100;
    --zindex-gnavi        : 200;

    --header-height       : 153px;

    --background-gradient1: linear-gradient(90deg, #6237bd 0%, #0668d2 15%, #0081d3 50%, #00a4c7 77%, #00be87 100%);

}
@media (max-width: 1023px){
    :root {
        --font-size-normal    : 14px;

        --header-height       : 84px;
    }    
}


/* =========================================================================================================================================== */
/* サイト共通デザイン　                                                                                                                             */
/* =========================================================================================================================================== */
* {
    box-sizing: border-box;
}


/* ------------------------------------------------------------- */
/* 切り替え                                                        */
/* ------------------------------------------------------------- */
.pc_only   { display: block;  }
.pc_none   { display: none;   }
.pc_inline { display: inline; }
.sp_only   { display: none;   }
.sp_none   { display: block; }
@media (max-width: 1023px) {
    .pc_only   { display: none;  }
    .pc_none   { display: block; }
    .pc_inline { display: none;  }
    .sp_only   { display: none;  }
    .sp_none   { display: block; }
}
@media (max-width: 767px) {
    .pc_only   { display: none;  }
    .pc_none   { display: block; }
    .pc_inline { display: none;  }
    .sp_only   { display: block; }
    .sp_none   { display: none;  }
}


/* ------------------------------------------------------------- */
/* 全体                                                           */
/* ------------------------------------------------------------- */
html {
    font-size: 62.5%;
    overflow-y:scroll;
}
body{
    position: relative;
    margin: 0;
    font-family: var(--font-YuGothic);
    font-size: var(--font-size-normal);
    font-size: 1.6rem; 
    font-weight: var(--font-weight-regular);
    line-height: 1.75;
    color: var(--color-black1);
    overflow-x: hidden;
}


/* ------------------------------------------------------------- */
/* 装飾                                                           */
/* ------------------------------------------------------------- */
@media all {
    .mb-10  { margin-bottom:  10px !important; }
    .mb-20  { margin-bottom:  20px !important; }
    .mb-30  { margin-bottom:  30px !important; }
    .mb-40  { margin-bottom:  40px !important; }
    .mb-50  { margin-bottom:  50px !important; }
    .mb-60  { margin-bottom:  60px !important; }
    .mb-70  { margin-bottom:  70px !important; }
    .mb-80  { margin-bottom:  80px !important; }
    .mb-90  { margin-bottom:  90px !important; }
    .mb-100 { margin-bottom: 100px !important; }


    /* text-align */
    .ta-left   { text-align: left !important;   }
    .ta-center { text-align: center !important; }
    .ta-right  { text-align: right !important;  }
}
@media (max-width: 767px) {
   
}

sup {
    vertical-align: super;
    font-size: 10px;
}

sub {
    vertical-align: sub;
    font-size: 10px;
}

/* ------------------------------------------------------------- */
/* 画像                                                           */
/* ------------------------------------------------------------- */
img {
    width: 100%;
    height: auto;
    vertical-align: bottom;
}


/* ------------------------------------------------------------- */
/* リンク　                                                        */
/* ------------------------------------------------------------- */
a {
    text-decoration: none;
    color: var(--color-black1);
}
a:hover,
a:hover img {
    opacity: 0.7;
}


/* ------------------------------------------------------------- */
/* 文章                                                           */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    p.type1 {
        font-size: 16px;
        line-height: 22px;
    }
}
@media (max-width: 1023px) {
    p.type1 {
        font-size: 14px;
        line-height: 20px;
    }
}


/* TYPE2 */
@media all {
    p.type2 {
        font-size: 16px;
        line-height: 24px;
    }
}
@media (max-width: 1023px) {
    p.type2 {
        font-size: 14px;
        line-height: 20px;
    }
}


/* TYPE3 */
@media all {
    p.type3 {
        font-size: 18px;
        line-height: 28px;
    }
}
@media (max-width: 1023px) {
    p.type3 {
        font-size: 14px;
        line-height: 20px;
    }
}


/* TYPE4 */
@media all {
    p.type4 {
        font-size: 16px;
        line-height: 24px;
        padding-bottom: 24px;
    }
}
@media (max-width: 1023px) {
    p.type4 {
        font-size: 14px;
        line-height: 20px;
    }
}


/* ------------------------------------------------------------- */
/* H1                                                            */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .h1_type1 h1 {
        width: 100%;
    }
    .h1_type1 .sub {
        text-shadow: 0 0 8px rgb(59 88 132 / 75%);
        font-size: 26px;
        font-weight: var(--font-weight-bold);
        color: var(--color-white);
        line-height: 32px;
        padding-bottom: 10px;
        text-align: center;
    }
    .h1_type1 h1 {
        text-shadow: 0 0 8px rgb(59 88 132 / 75%);
        font-size: 42px;
        text-align: center;
        font-weight: var(--font-weight-bold);
        color: var(--color-white);
        line-height: 50px;
    }
}
@media (max-width: 1023px){
    .h1_type1 .sub {
        font-size: 18px;
        line-height: 26px;
        padding-bottom: 7px;
    }
    .h1_type1 h1 {
        font-size: 27px;
        line-height: 36px;
    }
}


/* ------------------------------------------------------------- */
/* H2                                                            */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .h2_type1 {
        font-size: 36px;
        line-height: 44px;
        font-weight: var(--font-weight-bold);
        padding-bottom: 25px
    }
    .h2_type1 .en {
        font-size: 18px;
        font-weight: var(--font-weight-regular);
        line-height: 18px;
    }
}
@media (max-width: 1023px) {
    .h2_type1 {
        font-size: 26px;
        line-height: 32px;
    }
    .h2_type1 .en {
        font-size: 16px;
        line-height: 16px;
    }
}


/* TYPE2 */
@media all {
    .h2_type2 {
        border-radius: 9px;
        padding: 16px 33px;
        font-size: 18px;
        line-height: 26px;
        font-weight: var(--font-weight-bold);
        color: var(--color-white);
        background-color: var(--color-black2);
    }
}


/* TYPE3 */
@media all {
    .h2_type3 {
        border-radius: 9px;
        padding: 11px 33px;
        font-size: 20px;
        line-height: 25px;
        font-weight: var(--font-weight-bold);
        color: var(--color-white);
        background-color: var(--color-black2);
        text-align: center;
        margin-bottom: 50px;
    }
}
@media (max-width: 1023px) {
    .h2_type3 {
        line-height: 22px;
        padding: 8px 18px;
        font-size: 17px;
        margin-bottom: 40px;
    }
}


/* TYPE4 */
@media all {
    .h2_type4 {
        font-size: 22px;
        line-height: 30px;
        font-weight: var(--font-weight-bold);
        padding-bottom: 18px;
    }
}
@media (max-width: 1023px) {
    .h2_type4 {
        font-size: 18px;
        line-height: 24px;
        padding-bottom: 12px;
    }
}


/* TYPE5 */
@media all {
    h2.type5 {
        line-height: 22px;
        font-weight: var(--font-weight-bold);
        padding-bottom: 2px;
    }
}
@media (max-width: 1023px) {
    h2.type5 {
        font-size: 14px;
        line-height: 20px;
    }
}


/* TYPE6 */
@media all {
    .h2_type6 {
        border-radius: 9px;
        padding: 9px 33px;
        font-size: 22px;
        line-height: 30px;
        font-weight: var(--font-weight-bold);
        color: var(--color-white);
        background-color: var(--color-black2);
        text-align: center;
        margin-bottom: 40px;
        display: flex;
        justify-content: center;
        counter-set: cnt 0;
    }
    
    .h2_type6 span {
        display: block;
        text-align: left;
        position: relative;
        counter-increment: cnt 1;
        padding-left: 1.2em;
    }
    
    .h2_type6 span::before {
        content: counter(cnt)".";
        position: absolute;
        left: 0;
    }
    .h2_type6.none span::before {
        content: none;
    }
}
@media (max-width: 1023px) {
    .h2_type6 {
        font-size: 18px;
        line-height: 26px;
        padding: 9px 15px;
    }
}

/* ------------------------------------------------------------- */
/* H3                                                            */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .h3_type1 {
        width: 100%;
        height: 43px;
        display: flex;
        justify-content: center;
        align-items: center;
        background: var(--background-gradient1);
        font-size: 22px;
        font-weight: var(--font-weight-bold);
        color: var(--color-white);
        margin-bottom: 18px;
    }
}
@media (max-width: 1023px) {
    .h3_type1 {
        font-size: 18px;
    }
}


/* TYPE2 */
@media all {
    .h3_type2 {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: center;
    }
    .h3_type2::before {
        content: "";
        background-image: url('../img/icon_ink.png');
        display: block;
        width: 15px;
        height: 23px;
        background-size: contain;
        margin-right: 14px;
    }
    .h3_type2 h3 {
        font-size: 18px;
        line-height: 18px;
        font-weight: var(--font-weight-bold);
    }
    .h3_type2 .sub {
        font-size: 14px;
        line-height: 18px;
        padding-left: 13px;
    }


    .h3_type2_content {
        padding-left: 29px;
        padding-bottom: 35px;
    }
}
@media (max-width: 767px) {
    .h3_type2::before {
        width: 10px;
        height: 15px;
        margin-right: 11px;
    }
    .h3_type2 h3 {
        font-size: 16px;
        width: calc(100% - 21px);
    }
    .h3_type2 .sub {
        padding-left: 21px;
        padding-top: 5px;
    }
}


/* TYPE3 */
@media all {
    .h3_type3 {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: center;
        border-bottom: solid 2px var(--color-black1);
        padding-bottom: 15px;
    }
    .h3_type3::before {
        content: "";
        background-image: url('../img/icon_ink.png');
        display: block;
        width: 15px;
        height: 23px;
        background-size: contain;
        margin-right: 14px;
    }
    .h3_type3 h3 {
        font-size: 18px;
        line-height: 18px;
        font-weight: var(--font-weight-bold);
    }
}
@media (max-width: 767px) {
    .h3_type3 {
        padding-bottom: 10px;
    }
    .h3_type3::before {
        width: 10px;
        height: 15px;
        margin-right: 11px;
    }
    .h3_type3 h3 {
        font-size: 16px;
        width: calc(100% - 21px);
    }
}


/* ------------------------------------------------------------- */
/* H4                                                            */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .h4_type1 {
        width: 100%;
        height: 35px;
        display: flex;
        justify-content: center;
        align-items: center;
        background: var(--background-gradient1);
        font-weight: var(--font-weight-bold);
        color: var(--color-white);
        margin-bottom: 25px;
    }
}


/* TYPE2 */
@media all {
    .h4_type2 {
        font-size: 20px;
        line-height: 1;
        text-align: center;
        font-weight: var(--font-weight-bold);
        padding-bottom: 13px;
    }
}
@media (max-width: 767px) {
    .h4_type2 {
        font-size: 18px;
        padding-bottom: 8px;
    }
}

/* TYPE4 */
@media all {
    .h4_type4 {
        font-size: 20px;
        font-weight: var(--font-weight-bold);
        padding-bottom: 5px;
        border-bottom: solid 2px;
        margin-bottom: 20px;
    }
}
@media (max-width: 1023px) {
    .h4_type4 {
        font-size: 16px;
    }
}

/* TYPE5 */
@media all {
    .h4_type5 {
        font-size: 20px;
        font-weight: var(--font-weight-bold);
        margin-bottom: 10px;
    }
}
@media (max-width: 1023px) {
    .h4_type5 {
        font-size: 16px;
    }
}


/* ------------------------------------------------------------- */
/* ボタン　                                                        */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .btn_type1 a {
        display: flex;
        width: 161px;
        height: 33px;
        justify-content: center;
        align-items: center;
        border-radius: 15px;
        background-color: var(--color-gray1);
        color: var(--color-white);
        font-size: 14px;
        font-weight: var(--font-weight-bold);
    }
    .btn_type1 a::before {
        content: ">";
        font-size: 11px;
        padding-right: 6px;
        display: block;
        line-height: 14px;
    }
}
@media (max-width: 1023px) {
    .btn_type1 a {
        width: 117px;
        height: 27px;
        border-radius: 6px;
    }
    .btn_type1 a::before {
        content: none;
    }
}


/* TYPE2 */
@media all {
    .btn_type2 a {
        width: 194px;
        height: 46px;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 14px;
        border: solid 1px var(--color-black1);
        font-weight: var(--font-weight-bold);
        font-size: 14px;
        margin: 0 auto;
    }
    .btn_type2 a::before {
        content: ">";
        font-size: 12px;
        padding-right: 9px;
        font-weight: var(--font-weight-regular);
    }
}
@media (max-width: 767px) {
    .btn_type2 a {
        width: 191px;
        height: 40px;
        border-radius: 9px;
    }
}


/* ------------------------------------------------------------- */
/* リスト　                                                        */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    ul.type1 {
        font-size: 16px;
        line-height: 28px;
        padding-left: 24px;
    }
    ul.type1 li {
        position: relative;
        padding-left: 16px;
    }
    ul.type1 li::before {
        content: "・";
        position: absolute;
        left: 0;
    }
}
@media (max-width: 767px) {
    ul.type1 {
        font-size: 14px;
        line-height: 18px;
        padding-left: 19px;
    }

    ul.type1 li {
        padding-bottom: 8px;
        padding-left: 14px;
    }
}


/* TYPE2 */
@media all {
    ul.type2 {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    ul.type2 li.type1 {
        width: calc((100% - 50px) / 2);
        padding-bottom: 47px;
        overflow: hidden;
    }
    ul.type2 li.type1 figure {
        margin-left: 20px;
        float: right;
        padding: 20px 19px;
        background-color: var(--color-gray3);
        border-radius: 7px;
    }
    ul.type2 li.type1 .img1 { width: 180px; }
    ul.type2 li.type1 .img2 { width: 180px; }
    ul.type2 li.type1 .img3 { width: 250px; }
    ul.type2 li.type1 .img4 { width: 250px; }


    ul.type2 li.type2 {
        width: calc((100% - 34px) / 2);
    }
    ul.type2 li.type2 .h4_type1 {
        margin-bottom: 6px;
    }
    ul.type2 li.type2 figure {
        width: 100%;
        padding: 20px;
        background-color: var(--color-gray3);
        border-radius: 7px;
        text-align: center;
        height: calc(100% - 46px);
    }
    ul.type2 li.type2 figure img {
        max-width: 240px;
    }
    ul.type2 li.type2 figcaption {
        font-size: 16px;
        line-height: 20px;
        text-align: left;
        padding-bottom: 20px;
    }
}
@media (max-width: 1023px) {
    ul.type2 {
        display: block;
    }
    ul.type2 li.type1 {
        width: 100%;
        max-width: 525px;
        margin: 0 auto;
        padding-bottom: 35px;
    }

    ul.type2 li.type2 {
        width: 100%;
        max-width: 525px;
        padding-bottom: 35px;
        margin: 0 auto;
    }
    ul.type2 li.type2 figure {
        border-radius: 4px;
    }
}
@media (max-width: 767px) {
    ul.type2 li.type1 {
        display: flex;
        flex-wrap: wrap;
    }
    ul.type2 li.type1 figure {
        order: 1;
        margin: 0 auto;
        margin-top: 20px;
    }
    /* <!-- 23.02.03 ここから --> */
    ul.type2 li.type1 .img1 { width: 244px; }
    ul.type2 li.type1 .img2 { width: 244px; }
    ul.type2 li.type1 .img3 { width: 344px; }
    ul.type2 li.type1 .img4 { width: 344px; }
    /* <!-- 23.02.03 ここまで --> */
}


/* TYPE3 */
@media all {
    ul.type3 {
        display: grid;
        grid-template-columns: auto auto;
    }
    ul.type3 li {
        line-height: 30px;
    }
    ul.type3 li::before {
        content: "● ";
        font-size: 10px;
    }
}
@media (max-width: 767px) {
    ul.type3 {
        display: block;
    }
}


/* TYPE4 */
@media all {
    ul.type4 {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    ul.type4::after {
        content: "";
        width: calc((100% - 68px) / 3);
    }
    ul.type4 li {
        width: calc((100% - 68px) / 3);
        padding-bottom: 34px;
    }
    ul.type4 li h4 {
        margin-bottom: 6px;
    }
    ul.type4 li figure {
        background-color: var(--color-gray3);
        border-radius: 7px;
        text-align: center;
        padding: 20px 0;
    }
    ul.type4 li figure img {
        width: var(--width-100);
        max-width: 240px;
    }
}
@media (max-width: 1023px) {
    ul.type4::after {
        width: calc((100% - 34pxx) / 2);
    }
    ul.type4 li {
        width: calc((100% - 34px) / 2);
    }
}
@media (max-width: 767px) {
    ul.type4 {
        display: block;
    }
    ul.type4 li {
        width: 100%;
        max-width: 344px;
        margin: 0 auto;
    }
}


/* TYPE5 */
@media all {
    ul.type5 {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    ul.type5 > li {
        width: 100%;
    }
    ul.type5 .type5_sub {
        padding-top: 10px;
    }
    ul.type5 .type5_sub ul {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        max-width: 580px;
        margin: 0 auto;
    }
    ul.type5 .type5_sub ul::after {
        content: "";
        width: 100px;
    }
    ul.type5 .type5_sub ul li:nth-of-type(3n)   { width: 100px; }
    ul.type5 .type5_sub ul li:nth-of-type(3n+1) { width: 240px; }
    ul.type5 .type5_sub ul li:nth-of-type(3n+2) { width: 240px; }
    ul.type5 .type5_sub ul li {
        width: 165px;
        line-height: 34px;
        font-size: 18px;
        position: relative;
        padding-left: 16px;
    }
    ul.type5 .type5_sub ul li::before {
        content: "● ";
        font-size: 10px;
        position: absolute;
        left: 0;
    }
}
@media (max-width: 1023px) {
    ul.type5 .type5_sub ul {
        display: block;
    }
    ul.type5 .type5_sub ul li {
        margin: 0 auto;
    }
    ul.type5 .type5_sub ul li:nth-of-type(3n)   { width: 165px; }
    ul.type5 .type5_sub ul li:nth-of-type(3n+1) { width: 165px; }
    ul.type5 .type5_sub ul li:nth-of-type(3n+2) { width: 165px; }
}
@media (max-width: 767px) {
    ul.type5 > li {
        width: 100%;
        max-width: 534px;
        margin: 0 auto;
        padding-bottom: 24px;
    }
    ul.type5 {
        display: block;
    }
    ul.type5 .type5_sub {
        padding-top: 16px;
        padding-bottom: 15px;
    }
    ul.type5 .type5_sub ul li {
        font-size: 15px;
        line-height: 28px;
    }
    ul.type5 .type5_sub ul li::before {
        font-size: 8px;
    }
}


/* TYPE6 */
@media all {
    ul.type6 li {
        line-height: 24px;
        padding-bottom: 10px;
        padding-left: 14px;
        position: relative;
    }
    ul.type6 li::before {
        content: "●";
        font-size: 8px;
        position: absolute;
        left: 0;
    }
}
@media (max-width: 1023px) {
    ul.type6 li {
        font-size: 14px;
        line-height: 22px;
    }
}


/* TYPE7 */
@media all {
    ul.type7 {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        counter-reset: num 0;
    }

    
    ul.type7 li {
        width: calc((100% - (64px * 3)) / 4);
        margin-right: 64px;
        counter-increment: num;
        position: relative;
        padding-bottom: 20px;
    }
    ul.type7 li:last-child {
        margin-right: 0;
    }
    ul.type7 li::after {
        content: "";
        background-image: url('../img/ico_list_type7.png');
        display: block;
        width: 23px;
        height: 31px;
        background-size: contain;
        position: absolute;
        right: -46px;
        top: 108px;
    }
    ul.type7 li:last-child::after {
        content: none;
    }


    ul.type7 li h4::before {
        content: counter(num);
        display: flex;
        justify-content: center;
        align-items: center;
        width: 19px;
        height: 19px;
        font-size: 14px;
        border: solid 1px var(--color-white);
        margin-right: 9px;
    }
    ul.type7 li h4 {
        width: 100%;
        height: 30px;
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: var(--color-blue1);
        color: var(--color-white);
        font-weight: var(--font-weight-bold);
        margin-bottom: 8px;
    }
    

    ul.type7 li figure {
        padding-bottom: 12px;
    }


    ul.type7 li p {
        line-height: 20px;
        padding-bottom: 5px;
    }
    ul.type7 li p.note {
        font-size: 14px;
        line-height: 18px;
        padding-left: 1em;
        position: relative;
    }
    ul.type7 li p.note::before {
        content: "※";
        position: absolute;
        left: 0;
    }
}
@media (max-width: 767px) {
    ul.type7 {
        display: block;
    }
    ul.type7 li {
        width: 227px;
        margin: 0 auto;
        margin-bottom: 37px;
        padding-bottom: 10px;
    }
    ul.type7 li:last-child {
        margin-right: auto;
    }
    ul.type7 li::after {
        transform: rotate(90deg);
        bottom: -26px;
        top: auto;
        left: 0;
        right: 0;
        margin: auto;
    }
}


/* TYPE8 */
@media all {
    ul.type8 > li {
        padding: 20px 25px;
        border-radius: 7px;
    }
    ul.type8 > li:nth-child(odd) {
        background-color: var(--color-gray3);
    }
    ul.type8 li .links li {
        line-height: 22px;
        position: relative;
        padding-left: 18px;
    }
    ul.type8 li .links li::before {
        content: ">";
        font-size: 10px;
        font-weight: var(--font-weight-bold);
        position: absolute;
        left: 3px;
    }
    ul.type8 li .links li a {
        color: var(--color-blue3);
        word-break: break-all;
    }
}
@media (max-width: 1023px) {
    ul.type8 > li {
        padding: 15px 17px;
        border-radius: 4px;
    }
    ul.type8 li .links li {
        line-height: 20px;
        font-size: 14px;
    }
}


/* <!-- 23.02.08 ここから --> */
/* TYPE9 */
@media all {
    ul.type9 > li {
        padding: 20px 25px;
        border-radius: 7px;
    }
    ul.type9 > li:nth-child(odd) {
        padding: 17px 22px;
        border: solid 3px var(--color-gray7);
    }
    ul.type9 li .links li {
        line-height: 22px;
        position: relative;
        padding-left: 15px;
    }
    ul.type9 li .links li::before {
        content: ">";
        font-size: 10px;
        font-weight: var(--font-weight-bold);
        position: absolute;
        left: 3px;
    }
    ul.type9 li .links li a {
        color: var(--color-blue3);
        word-break: break-all;
    }
}
@media (max-width: 1023px) {
    ul.type9 > li {
        padding: 15px 17px;
        border-radius: 4px;
    }
    ul.type9 li .links li {
        line-height: 20px;
        font-size: 14px;
    }
}
/* <!-- 23.02.08 ここまで --> */


/* TYPE10 */
@media all {
    ul.type10 li {
        position: relative;
        padding-left: 1.5em;
        padding-bottom: 10px;
    }
    
    ul.type10 > li::before {
        content: "■";
        display: block;
        position: absolute;
        left: 0;
        font-size: 16px;
        line-height: 24px;
    }
    
    ul.type10 li p {
        font-size: 16px;
        line-height: 24px;
        padding-bottom: 5px;
        font-weight: var(--font-weight-bold);
    }
    
    ul.type10 li p small {
        font-size: 14px;
        font-weight: var(--font-weight-regular);
    }
    
    ul.type10 .child li {
        position: relative;
        padding-left: 1.5em;
        font-size: 16px;
        line-height: 24px;
        padding-bottom: 5px;
    }
    
    ul.type10 .child li::before {
        content: "⇒";
        position: absolute;
        display: block;
        left: 0;
    }
}
@media (max-width: 1023px) {
    ul.type10 > li::before {
        font-size: 14px;
        line-height: 20px;
    }
    
    ul.type10 li p {
        font-size: 14px;
        line-height: 20px;
    }
    
    ul.type10 .child li {
        font-size: 14px;
        line-height: 20px;
    }
}

/* TYPE11 */
@media all {
    ul.type11 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 40px;
    }
    
    ul.type11 .typ1 li {
        font-size: 16px;
        line-height: 22px;
        padding-left: 75px;
        position: relative;
        counter-increment: cnt 1;
        padding-bottom: 8px;
    }
    
    ul.type11 .typ1 li::before {
        content: "POINT";
        font-size: 14px;
        position: absolute;
        left: 0;
    }
    
    ul.type11 .typ1 {
        counter-set: cnt 0;
    }
    
    ul.type11 .typ1 li::after {
        content: counter(cnt);
        position: absolute;
        left: 48px;
        top: -1px;
        font-size: 22px;
        font-weight: var(--font-weight-bold);
    }
    
    ul.type11 .typ2 li {
        padding-left: 20px;
        margin-bottom: 10px;
        position: relative;
    }
    
    ul.type11 .typ2 li::before {
        content: "";
        display: block;
        width: 4px;
        height: 100%;
        background-color: var(--color-black2);
        position: absolute;
        left: 0;
    }
}
@media (max-width: 1023px) {
    ul.type11 {
        grid-template-columns: 100%;
        row-gap: 20px;
    }
    
    ul.type11 .typ1 li {
        font-size: 13px;
        line-height: 20px;
        padding-left: 61px;
    }
    
    ul.type11 .typ1 li::before {
        font-size: 12px;
    }
    
    ul.type11 .typ1 li::after {
        font-size: 18px;
        left: 40px;
    }
    
    ul.type11 .typ2 li {
        font-size: 14px;
        line-height: 20px;
    }
}

/* ------------------------------------------------------------- */
/* リンク　                                                        */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .links_type1 {
        display: grid;
        grid-template-columns: auto 1fr;
        column-gap: 10px;
    }
    
    .links_type1 .title {
        font-size: 16px;
        font-weight: var(--font-weight-bold);
        line-height: 19px;
    }
    
    .links_type1 ul li {
        line-height: 22px;
        padding-bottom: 18px;
    }
    
    .links_type1 ul li p {
        font-size: 16px;
        line-height: 19px;
        padding-bottom: 1px;
    }
    
    .links_type1 ul li a {
        font-size: 14px;
        line-height: 22px;
        display: inline-block;
        position: relative;
        padding-left: 17px;
        color: var(--color-blue1);
        word-break: break-all;
    }
    
    .links_type1 ul li a::before {
        content: ">";
        font-size: 10px;
        position: absolute;
        left: 0;
        color: var(--color-black1);
    }
}
@media (max-width: 1023px) { 
    .links_type1 {
        grid-template-columns: 100%;
    }
    
    .links_type1 .title {
        padding-bottom: 10px;
        font-size: 14px;
    }
    
    .links_type1 ul li {
        line-height: 20px;
        padding-bottom: 13px;
    }
    
    .links_type1 ul li p {
        font-size: 14px;
    }
    
    
    .links_type1 ul li a {
        line-height: 20px;
    }
}

/* TYPE2 */
@media all {
    .links_type2 {
        font-size: 14px;
        line-height: 22px;
        display: inline-block;
        position: relative;
        padding-left: 17px;
        color: var(--color-blue1);
        word-break: break-all;
    }

    .links_type2::before {
        content: ">";
        font-size: 10px;
        position: absolute;
        left: 0;
        color: var(--color-black1);
    }
}


/* ------------------------------------------------------------- */
/* テーブル                                                        */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    table.type1 tr {
        border: solid 1px var(--color-gray5);
    }
    table.type1 tr th {
        width: 211px;
        height: 96px;
        font-size: 14px;
        line-height: 22px;
        font-weight: var(--font-weight-bold);
        background-color: var(--color-blue1);
        color: var(--color-white);
        vertical-align: middle;
    }
    table.type1 tr td {
        vertical-align: middle;
        padding: 16px;
        padding-right: 25px;
        font-size: 16px;
        line-height: 22px;
    }
    table.type1 tr td a {
        color: var(--color-blue3);
        word-break: break-all;
    }
}
@media (max-width: 1023px) {
    table.type1 tr th {
        width: 160px;
    }
}
@media (max-width: 767px) {
    table.type1 tr th {
        display: flex;
        width: 100%;
        height: 37px;
        text-align: left;
        align-items: center;
        padding-left: 13px;
        font-size: 14px;
    }
    table.type1 tr td {
        display: block;
    }
    table.type1 tr th br {
        display: none;
    }
    table.type1 tr td {
        padding: 16px;
        font-size: 14px;
        line-height: 20px;
    }
}


/* TYPE2 */
@media all {
    table.type2 {
        width: 100%;
    }
    table.type2 tr {
        height: 55px;
    }
    table.type2 tr th {
        border: solid 1px var(--color-gray5);
        background-color: var(--color-blue1);
        vertical-align: middle;
        text-align: center;
        color: var(--color-white);
        font-size: 14px;
        font-weight: var(--font-weight-bold);
    }
    table.type2 tr td {
        border: solid 1px var(--color-gray5);
        vertical-align: middle;
        text-align: center;
    }
}
@media (max-width: 1023px) {
    table.type2 tr th {
        font-size: 12px;
        line-height: 16px;
    }
    table.type2 tr td {
        font-size: 14px;
    }
}


/* TYPE3 */
@media all {
    table.type3 {
        width: 100%;
        border-left: solid 1px var(--color-gray5);
        border-top: solid 1px var(--color-gray5);
        counter-set: cnt-th cnt-td 0;
    }

    table.type3 thead {
        background-color: var(--color-green1);
        color: var(--color-white);
        font-size: 16px;
        font-weight: var(--font-weight-bold);
    }

    table.type3 thead th {
        border-right: solid 1px var(--color-gray5);
        border-bottom: solid 1px var(--color-gray5);
        padding: 7px 0;
    }

    table.type3 thead th:first-child {
        width: 461px;
    }

    table.type3 tbody th {
        text-align: left;
        border-right: solid 1px var(--color-gray5);
        border-bottom: solid 1px var(--color-gray5);
        padding: 13px 20px;
        padding-left: 59px;
        position: relative;
        font-size: 16px;
        font-weight: var(--font-weight-bold);
        vertical-align: middle;
        counter-increment: cnt-th 1;
        line-height: 21px;
    }

    table.type3 tbody th::before {
        content: counter(cnt-th)".";
        display: block;
        position: absolute;
        color: var(--color-blue3);
        left: 24px;
        background-image: url(../img/arrow-right.svg);
        background-size: 7px;
        background-repeat: no-repeat;
        background-position-y: 5px;
        padding-left: 16px;
    }

    table.type3 tbody th a {
        color: var(--color-blue3);
    }
    
    table.type3 tbody td {
        border-right: solid 1px var(--color-gray5);
        border-bottom: solid 1px var(--color-gray5);
        counter-increment: cnt-td;
        padding: 13px 20px;
        padding-left: 42px;
        font-size: 16px;
        line-height: 21px;
        position: relative;
    }

    table.type3 tbody td::before {
        content: counter(cnt-td);
        display: block;
        position: absolute;
        color: var(--color-black1);
        font-size: 14px;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        border: solid 1px var(--color-black1);
        left: 20px;
        text-align: center;
        line-height: 16px;
        transform: translate(0, 1px);
    }
}
@media (max-width: 1023px) {
    table.type3 thead th:first-child {
        width: 160px;
    }
    
    table.type3 tbody th {
        padding: 10px;
        padding-left: 25px;
        font-size: 14px;
        line-height: 18px;
    }
    
    table.type3 tbody th::before {
        padding-left: 8px;
        background-size: 5px;
        background-position-y: 6px;
        left: 3px;
    }
    
    table.type3 tbody td {
        font-size: 14px;
        line-height: 18px;
        padding: 10px;
        padding-left: 26px;
    }
    
    table.type3 tbody td::before {
        width: 14px;
        height: 14px;
        font-size: 12px;
        line-height: 14px;
        left: 6px;
    }
}


/* ------------------------------------------------------------- */
/* BOX                                                           */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .boxes_type1 {
        max-width: var(--content-width-2);
        margin: 0 auto;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .boxes_type1 .col1 {
        width: 100%;
        max-width: calc(100% - 513px);
    }
    .boxes_type1 .col2 {
        width: 100%;
        max-width: 488px;
    }
    .boxes_type1 .box {
        width: 100%;
        background-color: var(--color-gray3);
        border-radius: 15px;
        padding-top: 38px;
        padding-bottom: 33px;
    }
    /* <!-- 23.02.03 ここから --> */
    .boxes_type1 .box.type1 {
        padding-left: 50px;
        padding-right: 50px;
        height: 100%;
        padding-bottom: 14px;
    }
    /* <!-- 23.02.03 ここまで --> */
    .boxes_type1 .box.type2 {
        padding-left: 46px;
        padding-right: 41px;
        display: grid;
        grid-template-columns: 210px 1fr;
    }
    /* <!-- 23.02.03 ここから --> */
    .boxes_type1 .box.type1 p {
        padding-bottom: 13px;
    }
    /* <!-- 23.02.03 ここまで --> */
    .boxes_type1 .box.type1 figure {
        max-width: 314px;
        margin: 0 auto;
        padding-bottom: 10px;
    }
    .boxes_type1 .button a {
        width: 196px;
        height: 48px;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 14px;
        border: solid 1px var(--color-black1);
        background-color: var(--color-white);
        font-size: 14px;
        font-weight: var(--font-weight-bold);
        margin: 0 auto;
    }
    .boxes_type1 .button a::before {
        content: ">";
        font-size: 12px;
        padding-right: 7px;
        font-weight: var(--font-weight-regular);
    }
    .boxes_type1 .box.type2 .h3_type1 {
        grid-column: 1/3;
    }
    .boxes_type1 .box.type2 p {
        grid-column: 1/2;
        min-height: 97px;
    }
    .boxes_type1 .box.type2 .button {
        grid-column: 1/2;
    }
    .boxes_type1 .box.type2 figure {
        grid-column: 2/3;
        grid-row: 2/4;
    }
    .boxes_type1 .box.type2 .button a {
        margin-left: 0;
    }
    .boxes_type1 .col2 article:first-child {
        margin-bottom: 25px;
    }
}
@media (max-width: 1051px) {
    .boxes_type1 .col1,
    .boxes_type1 .col2 {
        width: calc((100% - 25px) / 2);
        max-width: unset;
    }
    .boxes_type1 .box {
        padding-top: 27px;
        padding-bottom: 27px;
    }
    .boxes_type1 .box.type1,
    .boxes_type1 .box.type2 {
        padding-left: 30px;
        padding-right: 30px;
    }
}
@media (max-width: 767px) {
    .boxes_type1 .col1,
    .boxes_type1 .col2 {
        width: 100%;
    }
    .boxes_type1 .box.type1 {
        height: auto;
        margin-bottom: 18px;
        border-radius: 10px;
    }
    .boxes_type1 .box.type1 {
        border-radius: 10px;
    }
    .boxes_type1 .box.type2 p {
        min-height: unset;
        padding-bottom: 25px;
    }
    .boxes_type1 .col2 article:first-child {
        margin-bottom: 18px;
    }
    /* <!-- 23.02.03 ここから --> */
    .boxes_type1 .box.type2 figure img {
        margin-left: auto;
        display: block;
    }
    .boxes_type1 .box.type2:nth-child(1) figure img {
        max-width: 192px;
    }
    .boxes_type1 .box.type2:nth-child(2) figure img {
        max-width: 175px;
    }
    /* <!-- 23.02.03 ここまで --> */
    .boxes_type1 .button a {
        width: 124px;
        height: 30px;
        border-radius: 7px;
    }
}
@media (max-width: 424px) {
    .boxes_type1 .box.type2 {
        display: block;
    }
    .boxes_type1 .box.type2 figure {
        grid-column: 1/2;
    }
    .boxes_type1 .box.type2 figure img {
        margin: 0 auto;
        padding-bottom: 20px;
    }
}


/* TYPE2 */
@media all {
    .boxes_type2 {
        max-width: 423px;
        margin: 0 auto;
        border: solid 2px var(--color-gray6);
        background-color: var(--color-gray3);
        padding: 27px 10px;
        display: flex;
        justify-content: center;
    }
    .boxes_type2 ul li {
        line-height: 32px;
        font-size: 20px;
        position: relative;
        padding-left: 13px;
    }
    .boxes_type2 ul li::before {
        content: "●";
        font-size: 10px;
        position: absolute;
        left: 0;
    }
}


/* TYPE3 */
@media all {
    .boxes_type3 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        column-gap: 34px;
    }
    
    .boxes_type3 .box {
        background-color: var(--color-gray3);
        border: solid 2px var(--color-green3);
        border-radius: 10px;
        padding: 23px 0 28px;
    }
    
    .boxes_type3 .box .title {
        display: flex;
        justify-content: center;
        align-items: center;
        column-gap: 10px;
        font-size: 16px;
        font-weight: var(--font-weight-bold);
        color: var(--color-green1);
        padding-bottom: 10px;
    }
    
    .boxes_type3 .box .title img {
        height: 23px;
        width: auto;
    }
    
    .boxes_type3 .box .text {
        text-align: center;
        font-weight: var(--font-weight-bold);
        font-size: 20px;
        padding-bottom: 7px;
    }
    
    .boxes_type3 .button a {
        width: 196px;
        height: 48px;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 14px;
        background-color: var(--color-green3);
        color: var(--color-white);
        font-size: 14px;
        font-weight: var(--font-weight-bold);
        margin: 0 auto;
    }
    .boxes_type3 .button a::before {
        content: ">";
        font-size: 12px;
        padding-right: 7px;
        font-weight: var(--font-weight-regular);
    }
}
@media (max-width: 1023px) {
    .boxes_type3 {
        grid-template-columns: 100%;
        row-gap: 30px;
    }
    
    .boxes_type3 .box .title {
        font-size: 16px;
    }
    
    .boxes_type3 .box .text {
        font-size: 17px;
    }
}


/* TYPE4 */
@media all {
    .boxes_type4 {
        display: flex;
        justify-content: center;
        padding-bottom: 50px;
    }
    
    .boxes_type4 ul {
        border: solid 2px var(--color-green1);
        background-color: var(--color-green2);
        PADDING: 21px 35px;
        font-size: 18px;
        line-height: 32px;
        font-weight: var(
        --font-weight-bold);
        counter-set: cnt 0;
    }
    
    .boxes_type4 ul li {
        counter-increment: cnt 1;
        position: relative;
        padding-left: 24px;
    }
    
    .boxes_type4 ul li::before {
        content: counter(cnt);
        display: block;
        position: absolute;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        border: solid 1px;
        line-height: 18px;
        text-align: center;
        left: 0;
        top: 5px;
    }
}
@media (max-width: 1023px) {
    .boxes_type4 {
        padding-bottom: 40px;
    }
    
    .boxes_type4 ul {
        padding: 17px 20px;
        font-size: 16px;
        line-height: 28px;
    }
    
    .boxes_type4 ul li::before {
        width: 16px;
        height: 16px;
        line-height: 16px;
    }
}


/* TYPE5 */
@media all {
    .boxes_type5 {
        border: solid 2px var(--color-gray5);
        padding: 20px;
        font-size: 16px;
    }
}
@media (max-width: 1023px) {
    .boxes_type5 {
        padding: 15px;
        font-size: 14px;
    }
}

/* ------------------------------------------------------------- */
/* 投稿                                                           */
/* ------------------------------------------------------------- */
/* TYPE1 */
@media all {
    .posts_type1 {
        border-top: solid 1px var(--color-gray4);
    }
    
    .posts_type1 article {
        border-bottom: solid 1px var(--color-gray4);
    }
    .posts_type1 article a {
        display: flex;
        justify-content: flex-start;
        flex-wrap: wrap;
        padding: 0 34px;
        padding-top: 21px;
        padding-bottom: 23px;
    }
    

    .posts_type1 article a .date {
        font-size: 14px;
        line-height: 24px;
        font-weight: var(--font-weight-bold);
    }


    .posts_type1 article a .title {
        font-size: 16px;
        line-height: 24px;
        margin-left: 40px;
        position: relative;
        padding-left: 18px;
        flex: 1 0 0%;
    }
    .posts_type1 article a .title::before {
        content: ">";
        font-size: 12px;
        position: absolute;
        left: 0;
        top: -1px;
    }
}
@media (max-width: 1023px){
    .posts_type1 article a {
        padding: 0;
        padding-top: 16px;
        padding-bottom: 16px;
    }
    .posts_type1 article a .date {
        width: 100%;
        line-height: 14px;
        padding-bottom: 7px;
    }
    .posts_type1 article a .title {
        width: 100%;
        margin: 0;
        padding: 0;
        font-size: 14px;
        line-height: 20px;
    }
}


/* TPYE2 */
@media all {
    .posts_type2 article a {
        display: block;
        padding: 25px;
        border-radius: 7px;
        padding-bottom: 17px;
    }
    .posts_type2 article:nth-child(odd) a {
        background-color: var(--color-gray3);
    }
    .posts_type2 article a .date {
        font-size: 14px;
        line-height: 1;
        font-weight: var(--font-weight-bold);
        padding-bottom: 5px;
    }
    .posts_type2 article a .title {
        position: relative;
        font-size: 16px;
        line-height: 24px;
        padding-left: 15px;
    }
    .posts_type2 article a .title::before {
        content: ">";
        font-size: 12px;
        position: absolute;
        left: 1px;
        top: 5px;
        line-height: 1;
    }
}
@media (max-width: 1023px) {
    .posts_type2 article a {
        padding: 16px;
        border-radius: 4px;
    }
    .posts_type2 article a .title {
        font-size: 14px;
        line-height: 20px;
        padding: 0;
    }
    .posts_type2 article a .title::before {
        content: none;
    }
}


/* ------------------------------------------------------------- */
/* ページメニュー　                                                  */
/* ------------------------------------------------------------- */
@media all {
    .page-menu-inner {
        width: var(--width-100);
        max-width: var(--content-width-2);
        margin: 0 auto;
        padding-bottom: 52px;
    }
    .page-menu ul {
        background-color: var(--color-gray3);
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        min-height: 56px;
        flex-wrap: wrap;
        padding: 10px;
    }
    .page-menu ul li {
        padding: 4.75px 15px;
    }
    .page-menu ul li a {
        color: var(--color-blue3);
        font-size: 14px;
        font-weight: var(--font-weight-bold);
        display: block;
        padding-left: 12px;
        position: relative;
    }
    .page-menu ul li a::before {
        content: ">";
        font-size: 8px;
        position: absolute;
        left: 0;
        top: 5px;
    }
}
@media (max-width: 767px) {
    .page-menu-inner {
        padding-bottom: 34px;
    }
    .page-menu ul {
        display: block;
    }
    .page-menu ul li {
        max-width: 300px;
        margin: 0 auto;
    }
}


/* =========================================================================================================================================== */
/* トップページ                                                                                                                                   */
/* =========================================================================================================================================== */
@media all {
    /* 大判インクジェットについて */
    #page-top #about {
        padding-top: 55px;
    }
    #page-top .about-inner {
        width: var(--width-100);
        margin: 0 auto;
    }
    #page-top #about p.type3 {
        width: 100%;
        max-width: var(--content-width-4);
        margin: 0 auto;
        padding-bottom: 30px;
    }
    #page-top #about .boxes_type1 .box.type1 .button {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    #page-top #about .boxes_type1 .box.type1 .button a {
        margin: 0 5px;
        margin-bottom: 10px;
        width: calc((100% - 40px) / 4);
    }

    /* ニュース */
    #page-top #news {
        padding-top: 70px;
        padding-bottom: 86px;
        position: relative;
    }
    
    #page-top .news-inner {
        position: relative;
        width: var(--width-100);
        max-width: var(--content-width-4);
        margin: 0 auto;
    }
    
    #page-top #news .button a {
        position: absolute;
        right: 0;
        top: 0;
    }
}
@media (max-width: 1100px) {
    /* 大判インクジェットについて */
    #page-top #about .boxes_type1 .box.type1 .button a {
        width: calc((100% - 20px) / 2);
    }
}
@media (max-width: 1023px) {
    /* 大判インクジェットについて */
    #page-top #about .h2 {
        font-size: 20px;
        line-height: 26px;
        padding-bottom: 8px;
    }
    #page-top #about p.type3 {
        padding-bottom: 22px;
    }


    /* ニュース */
    #page-top #news .h2_type1 {
        padding-bottom: 18px;
    }
    #page-top #news .button a {
        position: unset;
        margin: 0 auto;
        margin-bottom: 21px;
    }
}
@media (max-width: 767px) {
    /* 大判インクジェットについて */
    #page-top #about .boxes_type1 .box.type1 .button a {
        width: calc((100% - 40px) / 4);
    }
}
@media (max-width: 560px) {
    /* 大判インクジェットについて */
    #page-top #about .boxes_type1 .box.type1 .button a {
        width: calc((100% - 20px) / 2);
    }
}