


/* ----------------------------------------
変数定義 ここから
デザインデータ幅( 1388px )に対しての比率で定義
---------------------------------------- */
:root {
    /* font-size */
    --font_size-large: min( calc( 20 * 100vw / 1388 ), 20px );
    --font_size-normal: min( calc( 16 * 100vw / 1388 ), 16px );
    --font_size-small: min( calc( 14 * 100vw / 1388 ), 14px );
    --font_size-ex_small: min( max( calc( 12 * 100vw / 1388 ), 10px ), 12px );
    
    --font_size-title: min( calc( 40 * 100vw / 1388 ), 40px );
    --font_size-lead: min( calc( 30 * 100vw / 1388 ), 30px );
    --font_size-text: var( --font_size-normal );
    --font_size-caption: var( --font_size-ex_small );
    
    /* width */
    --contents_area_width: 100%;
    --contents_area_maxwidth: min( calc( 1388 * 100vw / 1388 ), 1388px );
    --information_area_width: 100%;
    --information_area_maxwidth-pc: min( calc( 1200 * 100vw / 1388 ), 1200px );
}
@media screen and (max-width: 768px) {
    :root {
        /* font-size */
        --font_size-large: calc( 16 * 100vw / 375 );
        --font_size-normal: calc( 14 * 100vw / 375 );
        --font_size-small: max( calc( 12 * 100vw / 375 ), 10px );
        --font_size-ex_small: max( calc( 12 * 100vw / 375 ), 10px );
        
        --font_size-title: calc( 40 * 100vw / 375 );
        --font_size-lead: calc( 20 * 100vw / 375 );
        
        /* width */
        --contents_area_width: 100%;
        --contents_area_maxwidth: 100%;
        --information_area_width: 100%;
    }
}
:root {
}
@media screen and (max-width: 768px) {
    :root {
    }
}
/* ----------------------------------------
変数定義 ここまで
---------------------------------------- */





/* .noto-serif-jp
----------------------------------------*/
.noto-serif-jp-l {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
}
.noto-serif-jp-r {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
.noto-serif-jp-m {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
}
.noto-serif-jp-b {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}



/* .noto-sans-jp
----------------------------------------*/
.noto-sans-jp-l {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
}
.noto-sans-jp-r {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
.noto-sans-jp-m {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
}
.noto-sans-jp-b {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}



/* .box-shadow-inset
----------------------------------------*/
.is-act .l-header__btns__btn.pcObj {
}
.is-act .l-header__btns__btn.spObj {
}
@media screen and (max-width: 768px) {
    .is-act .l-header__btns__btn.pcObj {
        display: none;
    }
    .is-act .l-header__btns__btn.spObj {
    }
}



/* .box-shadow-inset
----------------------------------------*/
.box-shadow-inset {
    box-shadow: 0px 10px 10px #707070 inset;
    box-shadow: 0px 15px 15px #aaa inset;
}



/* .l-container.bg_img
----------------------------------------*/
.l-container.bg_img {
    background-image: url( '../img/common/bg_img-japanesepaper.webp' );
    background-position: top center;
    background-repeat: repeat-y;
    background-size: 100%;
}
.l-container.bg_img.-v2 {
    background-image: url( '../img/common/bg_img-japanesepaper_v2.webp' );
    background-image: url( '../img/common/bg_img-japanesepaper.webp' );
}
.dummy-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc( clamp(59.2px, 5.331vw, 88.8px) + min(2.017vw, 33.6px) );
    background-image: url( '../img/common/bg_img-japanesepaper_v2.webp' );
    background-position: top center;
    background-repeat: repeat-y;
    background-size: 100%;
    z-index: 1;
}



/* .l-header__btns__btn
----------------------------------------*/
.l-header__btns__btn:not( .l-header__btns__btn--sub ) {
    background-color: #004165;
}



/* .l-content
----------------------------------------*/
.l-content {
    background-color: transparent;
}



/* .l-footer
----------------------------------------*/
.l-footer {
    background-color: #fff;
}



/* .c-breadcrumbs
----------------------------------------*/
.c-breadcrumbs {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
}



/* .c-cta
----------------------------------------*/
.c-cta {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-style: normal;
    background-color: rgba( 238, 238, 238, 0.5 );
    background-color: rgba( 238, 238, 238, 1 );
    mix-blend-mode: multiply;
}
.c-cta .c-button {
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-style: normal;
}





/* _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

下層ページ　右十字装飾ブロック
.p-cross_decoration
ここから

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ */

/* ========================================
全体コンテナ .p-cross_decoration
======================================== */

/* 
全体コンテナ
.p-cross_decoration
----------------------------------------*/
.p-cross_decoration {
    --cdc-inner-maxwidth-pc: min( calc( 1300 * 100vw / 1388 ), 1300px );
    --cdc-inner-maxwidth-sp: 100%;
    --cdc-inner-inner_wrap-width-pc: 48.257%;
    --cdc-inner-inner_wrap-width-sp: 100%;
    --cdc-inner-padding-left-pc: min( calc( 40 * 100vw / 1388 ), 40px );
    --cdc-inner-padding-right-pc: 0;
    --cdc-inner-padding-left-sp: min( calc( 20 * 100vw / 375 ), 20px );
    --cdc-inner-padding-right-sp: min( calc( 20 * 100vw / 375 ), 20px );
}
.p-cross_decoration {
    position: relative;
    width: 100%;
    margin: 0;
    padding: min( calc( 50 * 100vw / 1388 ), 50px ) 0 min( calc( 100 * 100vw / 1388 ), 100px );
}
@media screen and (max-width: 768px) {
    .p-cross_decoration {
        padding: 0 0 calc( 50 * 100vw / 375 );
    }
}



/* ========================================
タイトル部分 .p-cross_decoration-title
======================================== */

/* 
タイトル部分　コンテナ
.p-cross_decoration-title
----------------------------------------*/
.p-cross_decoration-title {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
}
.p-cross_decoration-title::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: -webkit-linear-gradient(left, #ccc, #ccc 65%, transparent 85%, transparent);
    background: -o-linear-gradient(left, #ccc, #ccc 65%, transparent 85%, transparent);
    background: linear-gradient(to right, #ccc, #ccc 65%, transparent 85%, transparent);
}
@media screen and (max-width: 768px) {
    .access_type-title {
    }
    .access_type-title::before {
    }
}

/* 
タイトル部分　内部コンテナ
.p-cross_decoration-title-inner
----------------------------------------*/
.p-cross_decoration-title-inner {
    position: relative;
    width: 100%;
    max-width: min( calc( 1188 * 100vw / 1388 ), 1188px );
    max-width: var( --cdc-inner-maxwidth-pc );
    margin: 0 auto;
    padding-top: min( calc( 60 * 100vw / 1388 ), 60px );
    padding-left: var( --cdc-inner-padding-left-pc );
    padding-right: var( --cdc-inner-padding-right-pc );
    padding-bottom: var( --cdc-inner-padding-left-pc );
}
.p-cross_decoration-title-inner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: -webkit-linear-gradient(bottom, #ccc, #ccc 70%, transparent);
    background: -o-linear-gradient(bottom, #ccc, #ccc 70%, transparent);
    background: linear-gradient(to top, #ccc, #ccc 70%, transparent);
}
@media screen and (max-width: 768px) {
    .p-cross_decoration-title-inner {
        position: relative;
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        padding-top: min( calc( 40 * 100vw / 375 ), 40px );
        padding-left: var( --cdc-inner-padding-left-sp );
        padding-right: var( --cdc-inner-padding-right-sp );
        padding-bottom: var( --cdc-inner-padding-left-sp );
    }
    .p-cross_decoration-title-inner::before {
    }
}

/* 
タイトル部分　h2
.p-cross_decoration-title h2
----------------------------------------*/
.p-cross_decoration-title h2 {
    font-size: var( --font_size-lead );
    font-weight: 700;
    line-height: 1;
    line-height: 1.5;
}
.p-cross_decoration-title h2 .text-large {
    font-size: min( calc( 45 * 100vw / 1388 ), 45px ); /* イレギュラー */
}
@media screen and (max-width: 768px) {
    .p-cross_decoration-title h2 {
        font-size: var( --font_size-lead ); /*デザイン上*/
        font-size: min( calc( 19 * 100vw / 375 ), 19px ); /* イレギュラー */
        text-align: center;
    }
    .p-cross_decoration-title h2 .text-large {
        font-size: min( calc( 30 * 100vw / 375 ), 30px ); /* イレギュラー */
    }
}



/* ========================================
コンテンツ部分 .p-cross_decoration-contents
======================================== */

/* 
コンテンツ部分　コンテナ
.p-cross_decoration-contents
----------------------------------------*/
.access_type-contents {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
}
@media screen and (max-width: 768px) {
    .access_type-contents {
    }
}

/* 
コンテンツ部分　内部コンテナ
.p-cross_decoration-contents
----------------------------------------*/
.p-cross_decoration-contents-inner {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
    width: 100%;
    max-width: var( --cdc-inner-maxwidth-pc );
    margin: 0 auto;
    padding-top: var( --cdc-inner-padding-left-pc );
    padding-left: var( --cdc-inner-padding-left-pc );
    padding-right: var( --cdc-inner-padding-right-pc );
    padding-bottom: min( calc( 40 * 100vw / 1388 ), 40px );
}
.p-cross_decoration-contents-inner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: -webkit-linear-gradient(#ccc, #ccc 70%, transparent);
    background: -o-linear-gradient(#ccc, #ccc 70%, transparent);
    background: linear-gradient(#ccc, #ccc 70%, transparent);
}
@media screen and (max-width: 768px) {
    .p-cross_decoration-contents-inner {
        justify-content: flex-start;
        align-items: flex-start;
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
        padding-top: var( --cdc-inner-padding-left-sp );
        padding-left: var( --cdc-inner-padding-left-sp );
        padding-right: var( --cdc-inner-padding-right-sp );
        padding-bottom: 0;
    }
    .p-cross_decoration-contents-inner::before {
    }
}

/* 
コンテンツ部分　内部コンテナ　インナーボックス
.p-cross_decoration-contents-inner-inner_wrap
----------------------------------------*/
.p-cross_decoration-contents-inner-inner_wrap {
    position: relative;
    width: var( --cdc-inner-inner_wrap-width-pc );
}
@media screen and (max-width: 768px) {
    .p-cross_decoration-contents-inner-inner_wrap {
        width: var( --cdc-inner-inner_wrap-width-sp );
    }
}

.p-cross_decoration figure {
    margin: 0;
}
.p-cross_decoration picture {
    display: inline-block;
}
.p-cross_decoration figcaption {
    font-size: var( --font_size-caption );
}
.p-cross_decoration-contents-inner p {
    position: relative;
    margin-bottom: min( calc( 35 * 100vw / 1388 ), 35px );
    font-size: var( --font_size-small );
}
@media screen and (max-width: 768px) {
    .p-cross_decoration-contents-inner p {
        margin-bottom: calc( 35 * 100vw / 375 );
        font-size: var( --font_size-normal );
    }
}

/* _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

下層ページ　右十字装飾ブロック
.p-cross_decoration
ここまで

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ */



.l-footer__logo {
}
.l-footer__logo__wrapper {
}
.l-footer__logo__wrapper.funenkosya .l-footer__logo__img {
    height: min(4.267vw, 19.2px); /* テンプレートデフォルト */
    height: min(6.4005vw, 28.8px); /* 150% */
}
@media screen and (min-width: 769px) {
    .l-footer__logo {
        max-width: min(57.637vw, 960px);
        max-width: min(80vw, 1248px);
    }
    .l-footer__logo__wrapper {
    }
    .l-footer__logo__wrapper.funenkosya .l-footer__logo__img {
        height: min(2.161vw, 36px);
    }
}



@media screen and (max-width: 768px) {
    .l-header__nav__menu__item {
        border-bottom: 1px solid #ccc;
    }
}



.l-header .new {
    color: #aa0000 !important;
    font-size: 10px;
    position: absolute;
    bottom: 3px;
    width: 100%;
    text-align: center;
}
@media screen and (max-width: 768px) {
    .l-header .new {
        bottom: 14px;
        left: 12rem;
        text-align: left;
    }
}
