@charset "utf-8";

/* ==================================================================
    ■コンポーネント一覧
     サイトによって使わない指定が多いので随時削除・変更すること。
=================================================================== */

/* --------------------------------
   □ bg
-------------------------------- */

.bg_gray{
    background-color: #F7F6F4 !important;
}

.bg_white{
    background-color: #fff !important;
}

/* --------------------------------
   □ clearfix
-------------------------------- */

.clearfix:after{
    content: "";
    display: block;
    clear: both;
}

/* --------------------------------
   □ パンくずナビ
-------------------------------- */

ol#breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap:0 2em;
    padding: 40px 0;
}
ol#breadcrumbs li {
    font-size: 1.3rem;
    color: #818181;
}

ol#breadcrumbs li a{
    position: relative;
    display: inline-block;
    color: #222;
}
ol#breadcrumbs li a:before{
    position: absolute;
    top: 0.8em;
    right: -1.8em;
    content: "";
    width: 1em;
    border: 1px solid #D1D1D1;
    transform: rotate(125deg)
}


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

        ol#breadcrumbs {
            width: 96%;
            padding: 14px 0 24px 0;
        }
        
    }

/*
link
-------------------------------- */
    a.instagram{
        display: inline-flex;
        align-items: center;
        gap: 0 16px;
        color: #333;
        &:before{
            content: "";
            display: inline-block;
            width: 42px;
            height: 42px;
            background: url("../images/common/icon/instagram.svg") no-repeat center center / 100% auto;
        }
    }
    
    

/* --------------------------------
   □ ボタンスタイル
-------------------------------- */
.buttonStyle{
    text-align: center;
}
.buttonStyle._left{
    text-align: left;

    button,
    a,
    > span{
        text-align: center;
    }
}

input[type=submit],
.buttonStyle button,
.buttonStyle a,
.buttonStyle > span{
    position: relative;
    display:inline-block;
    box-sizing: border-box;
    
    max-width: 100%;
    padding:12px 23px;
    color:#fff;
    background:#000;
    border: 0;
    text-decoration:none;
    border-radius:4px;
    transition: 0.3s;
    cursor: pointer;
}

    input[type=submit]:hover,
    .buttonStyle button:hover,
    .buttonStyle a:hover{
        background:#444;
        text-decoration: none;
    }

    .buttonStyle.arrow a span{
        position: relative;
        padding-right: 23px;
    }

    .buttonStyle.arrow button span:before,
    .buttonStyle.arrow a span:before,
    .buttonStyle.arrow > span > span:before{
        position: absolute;
        content: "";
        top: 50%;
        right: 6%;
        width: 6px;
        height: 6px;
        margin-top: -3px;
        border-top: 1px solid #fff;
        border-right: 1px solid #fff;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
        transition: 0.3s;
    }

    .buttonStyle.arrow.downward {
        button span:before,
        a span:before,
        > span > span:before{
            -webkit-transform: rotate(134deg);
            transform: rotate(134deg);
        }

        &.open {
            button span:before,
            a span:before,
            > span > span:before{
                -webkit-transform: rotate(-43deg);
                transform: rotate(-43deg);
            }
        }
    }


    .buttonStyle.arrow.prev {
        a span{
            padding-left: 23px;
            padding-right: 0;
        }
        
        button span:before,
        a span:before,
        > span > span:before{
            right: inherit;
            left: 6%;
            -webkit-transform: rotate(-135deg);
            transform: rotate(-135deg);
        }
    }

    .buttonStyle.arrow button:hover span:before,
    .buttonStyle.arrow a:hover span:before,
    a:hover .buttonStyle.arrow > span > span:before{
        right: 4%;
    }

.buttonStyle.inBlock button span ,
.buttonStyle.inBlock a span{
    display: block;
    padding-right: 0;
}


.buttonStyle.translucent button ,
.buttonStyle.translucent a,
.buttonStyle.translucent > span{
    color:#fff;
    background:rgba(238, 238, 238, 0.15);
    border:1px solid #fff;
}

.buttonStyle.white button ,
.buttonStyle.white a{
    color:#333;
    background:#fff;
}

.buttonStyle.white button:hover ,
.buttonStyle.white a:hover{
    color:#fff;
    background-color: #000;
}
    .buttonStyle.white.arrow button span:before,
    .buttonStyle.white.arrow a span:before,
    .buttonStyle.white.arrow > span > span:before{
        border-top-color: #333;
        border-right-color: #333;
    }
    .buttonStyle.white.arrow button:hover span:before,
    .buttonStyle.white.arrow a:hover span:before,
    .buttonStyle.white.arrow > span:hover > span:before{
        border-top-color: #fff;
        border-right-color: #fff;
    }

.buttonStyle.gray button ,
.buttonStyle.gray a{
    color:#fff;
    background:#999;
    border-radius:0;
}

.buttonStyle.gray button:hover ,
.buttonStyle.gray a:hover{
    background-color: #aaa;
}


.buttonStyle.mail button span,
.buttonStyle.mail a span{
    background:url("../images/common/icon/mail.svg") 0 50% no-repeat;
    background-size:auto 0.8em;
    padding-left:23px;
}

.buttonStyle.red button ,
.buttonStyle.red a{
    color:#fff;
    background:#E03B21;
    border-radius:0;
}

.buttonStyle.red button:hover ,
.buttonStyle.red a:hover{
    background-color: #C9341F;
}

.buttonStyle.yellow button ,
.buttonStyle.yellow a{
    color:#fff;
    background:#ecad00;
    border-radius:0;
}

.buttonStyle.yellow button:hover ,
.buttonStyle.yellow a:hover{
    background-color: #D69B03;
}

.buttonStyle.black button.disabled{
    opacity: 0.5;
    background: #666!important;
    cursor: default;
}

.buttonStyle.single{
    text-align: center;

    a{
        width: 600px;
        font-size: 2.2rem;
    }

    &.font_m{
        a{
            font-size: 1.6rem;
        }
    }
}
* + .buttonStyle.single{
    margin-top: 34px;
}

.buttonStyle.single 
.buttonStyle.single.mail a span{
    padding-left: 50px;
}

.buttonStyle.rounded a{
    border-radius:80px;
}
.buttonStyle.rounded4 a{
    border-radius:4px!important;
}

.buttonStyle.nStyle{
    --color: #fff;
    --color-hover: #0c1276;
    --text-color: #0c1276;
    --text-color-hover: #fff;
    --border-color: #0c1276;
    --border-color-hover: #0c1276;
    --arrow-color: #0c1276;
    --arrow-color-hover: #fff;

    button, a, > span{
        padding:12px 23px;
        color:var(--text-color);
        background:var(--color);
        border: 1px solid var(--border-color);
        text-decoration:none;
        border-radius:80px;

        > span{
            i{
                display: block;
                width: fit-content;
                margin-inline: auto;
                font-style: normal;
            }
        }
    }

    button:hover,
    a:hover:not(.nolink),
    > span:hover{
        color:var(--text-color-hover);
        background:var(--color-hover);
        border: 1px solid var(--border-color-hover);
    }

    &.arrow{
        button, a, > span{
            span:before{
                right: 3%;
                border-top-color: var(--arrow-color);
                border-right-color: var(--arrow-color);
            }
        }

        button:hover,
        a:hover:not(.nolink),
        > span:hover{
            span:before{
                border-top-color: var(--arrow-color-hover);
                border-right-color: var(--arrow-color-hover);
            }
        }
    }

}

.buttonStyle.nStyle.blue{
    --color: #0c1276;
    --color-hover: #fff;
    --text-color: #fff;
    --text-color-hover: #0c1276;
    --border-color: #0c1276;
    --border-color-hover: #0c1276;
    --arrow-color: #fff;
    --arrow-color-hover: #0c1276;
}

.buttonStyle.nStyle.white{
    --color: #fff;
    --color-hover: #272727;
    --text-color: #272727;
    --text-color-hover: #fff;
    --border-color: #272727;
    --border-color-hover: #272727;
    --arrow-color: #272727;
    --arrow-color-hover: #fff;
}

.buttonStyle.nStyle.orange{
    --color: #FF6638;
    --color-hover: #d84d22;
    --text-color: #fff;
    --text-color-hover: #fff;
    --border-color: #FF6638;
    --border-color-hover: #FF6638;
    --arrow-color: #fff;
    --arrow-color-hover: #fff;

    span{
        i{
            color: #F8E976;
        }
    }
}

.buttonStyle.nStyle.green{
    --color: #32C71F;
    --color-hover: #259D15;
    --text-color: #fff;
    --text-color-hover: #fff;
    --border-color: #32C71F;
    --border-color-hover: #259D15;
    --arrow-color: #fff;
    --arrow-color-hover: #fff;

    span{
        i{
            color: #F8E976;
        }
    }
}

.buttonStyle.orange.gradation button ,
.buttonStyle.orange.gradation a{
    background-image: linear-gradient(180deg, rgba(241, 145, 49, 1) 48%, rgba(238, 117, 26, 1) 49%);
}

.buttonStyle.nStyle a.nolink{
    pointer-events: none;
    cursor: default;
    opacity: 0.5;

}

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

    .buttonStyle button,
    .buttonStyle a{
        padding:8px 18px;
        font-size:1.5rem;
        border-radius:80px;
    }
    .buttonStyle.sp_font_s button,
    .buttonStyle.sp_font_s a{
        font-size:1.3rem;
    }

    .buttonStyle.slim button,
    .buttonStyle.slim a{
        padding:6px 18px;
    }
    .buttonStyle.slim button span,
    .buttonStyle.slim a span{
        line-height: 1.4;
    }
    
    .buttonStyle.single a{
        width: 100%;
        font-size: 1.8rem;
        line-height: 1.6;
    }
    .buttonStyle.single.mail a span{
        padding-left: 30px;
    }

    .buttonStyle._sp_center{
        text-align: center;
    
        button,
        a,
        > span{
            text-align: center;
        }
    }
    

}

/* --------------------------------
   □ テーブルスタイル
-------------------------------- */

.tableWrapper{
    overflow-x: auto;

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

table.tableStyle{
    max-width: 1000px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    border-top: 1px solid #ccc;

    &.allCenter{
        th,td{
            text-align: center;
        }
    }
}
table.tableStyle thead{
    tr{
        th{
            padding: 20px 30px;
            border: 1px solid #fff;
            background: #110284;
            color: #fff;
        }
    }
}

table.tableStyle tbody{
    tr{
        th,td{
            padding: 20px 30px;
            border: 1px solid #E4E4E4;
        }
        th{
            color: #333;
            background: #CCCCCC;
            color: #fff;
        }

        &.c_blue{
            td{
                color: #110284;
            }
        }
    }
}


/* SP用
----------- */
@media only screen and
(max-width : 767px) {

    table.tableStyle tr th,
    table.tableStyle tr td{
        padding: 10px 16px;
    }
 
}

table.lineStyle tbody{
    tr{
        th,td{
            padding: 20px 30px;
            border-bottom: 1px solid #E4E4E4;
        }
        th{
            color: #333;
            background: #CCCCCC;
            color: #fff;
        }

        &.c_blue{
            td{
                color: #110284;
            }
        }
    }
}


/* =================================
   ■ 共通指定
================================== */

/* --------------------------------
   □ 共通クラス
-------------------------------- */

/* ◇ text
-------------------------------- */
/* 明朝の指定 */
.mincho{
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

/* margin0 */
p.none{ margin-bottom:0;}
/* 段落 */
p.indent{ text-indent:1em;}
/* 備考 */
p.remarks{ text-indent:-1em; padding-left:1em;}

/* 右寄せ */
.f_right{float:right;}
/* 左寄せ */
.f_left{float:left;}

/* text中央寄せ */
.text-center,
.text-center p{ text-align:center;}
.text-center img{ margin: 0 auto;}

/* text右寄せ */
.text-right,
.text-right p{ text-align:right;}
/* text左寄せ */
.text-left,
.text-left p{ text-align:left;}

/* clear */
.clear{
    clear:both;
}

/* リンク */
a.black{
    color: #333;
}
a.black:hover{
    color: #999;
}
a.line{
    text-decoration: underline;
}

/* 色 */
.c_red{
    color: #C3271F!important;
}

.c_blue{
    color: #110284!important;
}

/* text
-------------------------------- */
.text{

    &._ss{
        font-size:1.2rem;
        line-height: 1.8;
    }

    &._s{   
        font-size:1.5rem;
        line-height: 1.8;
    }

    &._m{
        font-size:1.8rem;
        line-height: 1.5;
    }

    &._fukidashi{
        background: url(../images/common/fukidashi.svg) no-repeat center center;
    }

    & + .text{
        margin-top: 1.8em;
    }

}

/* 変換
-------------------------------- */
.ime-disabled{
    ime-mode:disabled;
}
.ime-active{
    ime-mode:active;
}

/* 文字隠
-------------------------------- */
.texthidden{
    text-indent: -1000em;
    text-decoration:none;
    font-size:1px;
    overflow: hidden;
}

/* MAC用IE only \*//*/
.texthidden  {overflow: inherit;}
/* end */

/* ◇ sideBox
-------------------------------- */

.sideBox{
    position: relative;
    display: flex;
    justify-content: space-between;
    gap:0 60px;
}

.sideBox .lead{
    width: calc(36.580992229% - 60px);
    flex-shrink: 0;
}
.sideBox .details{
    flex-grow: 1;
}

/* SP用
----------- */
@media only screen and
(max-width : 767px) {

    .sideBox{
        display: block;
    }

    .sideBox .lead{
        width: auto;
        margin-bottom: 18px;
    }

    .sideBox .details{
        margin-top: 0;
    }


}

/* ◇ sideImage
-------------------------------- */

.sideImage{
    display: flex;
    flex-direction: row;
    flex-wrap: nowwrap;
    gap:0 30px;

    > .explain{
        flex-grow: 1;
    }

    > .image{
        flex-shrink: 0;
    }
}


/* ◇ sideImageBox
-------------------------------- */

.sideImageBox{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap:0 105px;

    &.gap40{
        gap:0 40px;
    }
}


.sideImageBox .explain{
    width: 57.247557003%;
    flex-shrink: 0;
}

.sideImageBox .image img{
    display: block;
    margin-left: auto;

    & + span.image{
        display: block;
        margin-right: 37px;
        margin-top: 37px;
    }
}

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

.sideImageBox.reverse .image img{

}

@media only screen and
(max-width : 767px) {
    
.sideImageBox{
    display: block;
}


.sideImageBox .explain{
    width: auto;
}

.sideImageBox .image img,
.sideImageBox.reverse .image img{
    max-width: 100%;
    width: auto;
    margin-right: 0;
    margin-left: 0;
}

.sideImageBox.reverse{
}

.sideImageBox .explain + .image,
.sideImageBox .image + .explain{
    margin-top: 24px;
}
    

}


/* ◇ pageNavigation
-------------------------------- */
.pageNavigation li + li{
    margin-top: 29px;
}

.pageNavigation li a{
    position: relative;
    display: block;
    padding-bottom: 12px;
    font-size:1.8rem;
    font-weight: 700;
    color: #000000;
    text-decoration: none;
    border-bottom: 2px solid #E8E8E8
}
.pageNavigation li a .en{
    display: block;
    font-size:3.6rem;
    font-weight: 500;
    line-height: 1;
    color: #0077BE;
    letter-spacing: -1px;
    margin-bottom: 7px;
}
.pageNavigation li a:before{
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 44px;
    height: 2px;
    background: #2B2B2B;
}
.pageNavigation li a:after{
    content: "";
    position: absolute;
    right: 5%;
    top: 50%;
    width: 30px;
    height: 22px;
    background:url("../images/common/icon/arrow.svg") 0 0 no-repeat;
    background-size: 100% auto;
    transform: translateY(-50%);
    transition: .5s;
}
.pageNavigation li a:hover:after{
    right: 3%;
}


@media only screen and
(max-width : 767px) {
    
    .pageNavigation li + li{
        margin-top: 12px;
    }

    .pageNavigation li a{
        padding-bottom: 8px;
        font-size:1.4rem;
    }
    .pageNavigation li a .en{
        display: block;
        font-size:2.0rem;
        letter-spacing: -1px;
        margin-bottom: 7px;
    }

    .pageNavigation li a:after{
        width: 20px;
    }
    .pageNavigation li a:hover:after{
        right: 5%;
    }

    
    
}

/* ◇ pager
-------------------------------- */
* + .pager{
    margin-top: 81px;
}

.pager ul.page-numbers{
    display: flex;
    justify-content: center;
    gap:10px 20px;
}

.pager ul.page-numbers li .page-numbers{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 46px;
    height: 46px;
    border-radius: 8px;
    border: 1px solid #666666;
    color: #666666;
    text-decoration: none;
    transition: .2s;
}
.pager ul.page-numbers li .page-numbers:hover{
    transform: translateY(-5px);
}
.pager ul.page-numbers li .current{
    background: #E1EFF5;
}
.pager ul.page-numbers li .dots{
    border: 0;
}
.pager ul.page-numbers li .dots:hover{
    transform: translateY(0);
}

.pager ul.page-numbers li .page-numbers.next,
.pager ul.page-numbers li .page-numbers.prev{
    position: relative;
    overflow: hidden;
    text-indent: -200%;
}

.pager ul.page-numbers li .page-numbers.next:before,
.pager ul.page-numbers li .page-numbers.prev:before {
        position: absolute;
        top: 50%;
        left: 50%;
        content: '';
        width: 6px;
        height: 6px;
        color: #666666;
        border-top: solid 1px #666666;
        border-right: solid 1px #666666;
        transform: rotate(45deg) translateX(-70%) translateY(15%);
    }

    .pager ul.page-numbers li .page-numbers.prev:before {
        transform: scale(-1, 1) rotate(45deg) translateX(-5%) translateY(-60%);
    }



/* ◇ boxItems スライダー用
-------------------------------- */
.boxItems{
    overflow: hidden;
    transition: 0.5s;
}
    .boxItems > li{
        visibility:hidden;
    }

    .boxItems.slick-initialized{
        overflow: inherit;
        height: auto!important;
        background: none;
    }
    .boxItems.slick-initialized > li{
        visibility:inherit;
    }

    .boxItems .slick-list{
        margin-top: -15px;
        margin-left: -15px;
        margin-right: -15px;
        padding:15px;
    }

    .boxItems > li,
    .boxItems .slick-slide{
        border-radius: 4px;
        box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);
        width: 390px;
        margin: 0 15px;
        box-sizing: border-box;
    }


    .boxItems li.boxLink > a{
        display: block;
        color: #333;
        background: #fff;
        text-decoration: none;
        transition: 0.5s;
        border-radius: 4px;
    }
    .boxItems li.boxLink > a:hover{
        background: #efefef;
    }
    .boxItems li.boxLink > a:hover figure p.image img{
        transform: scale(1.1);
    }

    .boxItems li.boxLink figure{
        margin: 0;
        padding: 0;
    }
    .boxItems li.boxLink figure p.image{
        overflow: hidden;
        margin-bottom: 0;
        border-radius: 4px 4px 0 0;
    }
    .boxItems li.boxLink figure p.image img{
        width: 100%;
        transition: 0.5s;
    }
    .boxItems li.boxLink figure figcaption{
        padding: 31px 26px;
    }
    .boxItems li.boxLink figure figcaption dl dt{
        font-size: 1.8rem;
        font-weight: 700;
    }
    
    .boxItems li.boxLink figure figcaption dl dt + dd{
        margin-top: 14px;
    }

    .boxItems li.boxLink figure figcaption dl dd{
        font-size: 1.3rem;
    }

    .boxItems li.boxLink .more{
        position: relative;
        display: flex;
        justify-content: flex-end;
        align-items: center;
        text-align: right;
        font-size: 1.3rem;
        margin-top: 8px;
        padding-right: 44px;
        width: 100%;
        min-height: 28px;
        color: #36A8D5;
        
        --ar-right: 13px;
    }

    .boxItems li.boxLink .more:before,
    .boxItems li.boxLink .more:after{
        position: absolute;
        top: 50%;
        
        content: '';
        transition: .5s;
    }
    .boxItems li.boxLink .more:before {
        right: 0;
        margin-top: -14px;
        
        width: 28px;
        height: 28px;
        border-radius: 50%;
        border: 1px solid #0EB7FA;
    }
    .boxItems li.boxLink .more:after {
        right: var(--ar-right);
        margin-top: -2px;
        
        width: 5px;
        height: 5px;
        
        border: 0;
        border-top: solid 1px #0EB7FA;
        border-right: solid 1px #0EB7FA;
        transform: rotate(45deg);
    }

    .boxItems li.boxLink a:hover .more:before {
        right: -4px;
    }
    .boxItems li.boxLink a:hover .more:after {
        right: calc(var(--ar-right) - 4px);
    }

.boxItems .slick-prev,
.boxItems .slick-next {
    width: 60px;
    height: 60px;
    background: #fff;
    border-radius: 100%;
    z-index: 5;
    transition: 0.5s;
    filter: drop-shadow(0px 4px 3px rgba(0,0,0,0.1));
}
.boxItems .slick-prev.slick-disabled,
.boxItems .slick-next.slick-disabled {
    background: rgba(201,212,222,1);
}


    .boxItems .slick-prev:before,
    .boxItems .slick-next:before {
        position: absolute;
        top: 50%;
        left: 50%;
        content: '';
        width: 12px;
        height: 12px;
        color: #333;
        border-top: solid 2px #0EB7FA;
        border-right: solid 2px #0EB7FA;
        transform: rotate(45deg) translateX(-70%) translateY(15%);
        opacity: 1;
    }

    .boxItems .slick-prev:before {
        transform: scale(-1, 1) rotate(45deg) translateX(-5%) translateY(-60%);
    }

    .boxItems .slick-next {
        right: -30px;
    }
    .boxItems .slick-next:hover
    {
        right: -35px;
        background: #fff;
    }
    .boxItems .slick-next.slick-disabled:hover {
        right: -30px;
        background: rgba(201,212,222,1);
    }
    
    .boxItems .slick-prev {
        left: -30px;
    }
    .boxItems .slick-prev:hover
    {
        left: -35px;
        background: #fff;
    }
    .boxItems .slick-prev.slick-disabled:hover
    {
        left: -30px;
    background: rgba(201,212,222,1);
    }

/* ◇ tabInterface
-------------------------------- */
.tabInterface{
    .tab{
        display: flex;
        justify-content: space-between;
        align-items: stretch;
        gap: 20px;
        @media only screen and
        (max-width : 767px) {
            gap: 0px;
        }

        > li{
            width: calc(50% - 10px);
            @media only screen and
            (max-width : 767px) {
                width: 50%;
            }

            a{
                display: block;
                border-radius: 20px 20px 0 0;
                padding: 24px 20px;
                font-size: 1.8rem;
                background: #C9C8D1;
                color: #fff;
                text-align: center;
                text-decoration: none;

                @media only screen and
                (max-width : 767px) {
                    font-size: 1.5rem;
                    padding: 8px 4px;
                }
            }
            
            &.active{
                > a{
                    background: #110284;
                    color: #fff;
                }
            }
        }
    }
}

.tabContent{
    padding: 36px;
    background: #F7F6F4;
    border-radius: 0 0 16px 16px;
    @media only screen and
    (max-width : 767px) {
        padding: 4vw;
    }
}


/* ◇ leadTitleBox
-------------------------------- */
.leadTitleBox{
    margin-bottom: 100px;

    @media only screen and
    (max-width : 767px) {
        margin-bottom: 50px;
    }

    .leadBox.flexbox{

        .explain{
            @media only screen and
            (max-width : 767px) {
                margin-bottom: 6vw;
            }
        }
    }
}

/* ◇ leadBox
-------------------------------- */
.leadBox.flexbox{
    width: calc(100% + (50vw - 50%));
    flex-wrap: nowrap;

    .explain{
        width: 50%;
        padding-right: 50px;

        @media (max-width : 767px) {
            width: revert;
            padding-right: var(--wrap-space);
        }

        .image{
            width: 85%;
            img{
                width: 100%;
            }

            &.left_over,
            &.right_over{
                @media only screen and
                (max-width : 767px) {
                    width: 100%;
                }
            }
        }
    }

    > .image{
        max-width: 50%;
        width: 85%;

        @media (max-width : 767px) {
            box-sizing: border-box;
            max-width: 100%;
            width: auto;
            padding-left: 10%;
        }

        img{
            width: 100%;
            height: auto;
            border-radius: 40px 0 0 40px;
        }
        &.space{
            padding-right: 5vw;
            img{
                border-radius: 40px;
            }
        }
    }

    &.reverse{
        margin-left: calc((50vw - 50%) * -1);

        > .image{
            img{
                border-radius: 0 40px 40px 0;
            }
            &.space{
                padding-left: 5vw;
            }
        }

        .explain{
            padding-left: 5vw;
            @media only screen and
            (max-width : 767px) {
                padding-right: 0;
            }
        }
    }

    &.sp_reverse{
        .image{
            padding-right: 5vw;
            @media (max-width : 767px) {
                margin-bottom: 5vw;
            }
        }
    }
    
}


/* --------------------------------
conceptBox
-------------------------------- */ 
.conceptBox{
    .point{
        flex-wrap: nowrap;
        gap: 0 7.5%;

        &.leadBox{
            gap: 0;

        }

        .explain{

            .title{
                font-size: 2.0rem;
                > .en{
                    font-size: 1.8rem;
                    line-height: 1;
                    display: block;
                    color: #110184;
                    margin-bottom: .8em;
                }
            }
        }

        &.normal > .image{
            max-width: 400px;

            &.round{
                overflow: hidden;
                img{
                    border-radius: 40px;
                }
                
            }
            
            small{
                display:block;
                font-size:1.2rem;
                color:#4E4E4E;
                text-align:right;
            }

            img{
                width: 100%;
            }
        }

        .image{
            position: relative;
        }
        &.point1{
            .image{
                @media (max-width : 767px) {
                    right: -14vw;
                }
                small{
                    @media (max-width : 767px) {
                        margin-right:14vw;
                    }
                }
            }
        }
        &.point3{
            .image{
                @media (max-width : 767px) {
                    left: -14vw;
                }
                small{
                    @media (max-width : 767px) {
                        text-align:left;
                        margin-left:14vw;
                    }
                }
            }
        }
    

        & + .point{
            margin-top: 50px;
        }
    }

}


/* ◇ price
-------------------------------- */

.priceBox{
    dl.price{
        position: relative;
        border-radius: 11px;
        border: 2px solid #7B7777;
    
        > dt{
            font-size: 1.8rem;
            font-weight: 700;
            color:#fff;
            background: #7B7777;
            padding: 8px 0 6px 0;
            text-align: center;
            border-radius: 7px 7px 0 0;
    
            > span{
                font-size: 114%;
            }
        }
    
        > dd{
            padding: 12px 2px;
            color: #383838;
            text-align: center;
            p.price{
                margin: 0;
                text-align: center;
                .label{
                    font-weight: 700;
                }
                .value{
                    font-size: 4rem;
                    line-height: 1.1;
    
                    .unit{
                        font-size: 3rem;
                    }
                }
                .tax{
                    font-size: 1.2rem;

                    &._right{
                        @media only screen and
                        (max-width : 767px) {
                            display: block;
                            text-align: right;
                            margin-left: auto;
                            margin-right: 1em;
                        }
                    }
                }
            }
    
            p.onePrice{
                font-size: 1.3rem;
                text-align: center;
                margin: 0;
                color: #222;
                .value{
                    font-weight: 700;
                    font-size: 1.4rem;
                    color: #DD5434;
                    .unit{
                        font-weight: 400;
                        font-size: 1.3rem;
                        color: #222;
                    }
                }
                .tax{
                    font-size: 1.2rem;
                }
            }
        }
    
        &.gradation{
            border: 2px solid transparent;
    
            &::before{
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                border-radius: 11px;
                border: 2px solid transparent;
                background: linear-gradient(135deg,rgb(238, 52, 247) 0%,rgb(143, 51, 248) 70%,rgb(61, 64, 203) 100%) border-box border-box;
                -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
                -webkit-mask-composite: destination-out;
                mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
                mask-composite: exclude;
              }
              >dt{
                border-radius: 11px 11px 0 0;
              }
        }
    
        &.application{
            border-color: #DD5434;
            >dt{
                background-color: #DD5434;
            }
            >dd{
                .limited{
                    font-size: 2.0rem;
                    text-align: center;
                    margin: 0;
                }
                .value{
                    color: #DD5434;
                }
    
                .label{
                    position: relative;
                    font-size: 2.0rem;
                    font-weight: 700;
                    padding-right: 40px;
                    vertical-align: 0.2em;
    
                    &:after {
                        content: "";
                        display: block;
                        width: 12px;
                        height: 12px;
                        margin: auto;
                        border-right: 1px solid #403f40;
                        border-bottom: 1px solid #403f40;
                        position: absolute;
                        right: 18px;
                        bottom: 24%;
                        transform: rotate(-45deg);
                        transition: .5s;
                    }
                }
            }
    
        }
    
        &.poplar{
            position: relative;
    
            &::after{
                position: absolute;
                top: -8px;
                left: -16px;
                content: "";
                width: 72px;
                height: 72px;
                background: url("../images/top/no1.svg") 0 0 no-repeat;
                background-size:100% auto;
                        
                @media (max-width : 767px) {
                    width: 64px;
                    height: 64px;
                }
            }
        }
    
        &.costperformance{
            position: relative;
    
            &::after{
                position: absolute;
                top: -8px;
                left: -16px;
                content: "";
                width: 72px;
                height: 72px;
                background: url("../images/top/cospa.svg") 0 0 no-repeat;
                background-size:100% auto;
    
                        
                @media (max-width : 767px) {
                    width: 64px;
                    height: 64px;
                }
            }
        }
    }

    &.lactChild > dl.price.application{
        margin-top: 30px;
        width: 800px;
        max-width: 100%;
        margin-inline: auto;
    }

}    

/* ◇ locationBox
-------------------------------- */
.locationBox{

    .leadBox{
        .explain{
            @media (max-width : 767px) {
                margin-bottom: 40px;
            }
        }
        .image{
            padding: 0 5vw 0 0;
        }
    }

    .pref{
        margin-top: 50px;
        .title{
            font-size: 2.0rem;
            padding-left: 11px;
            padding-bottom: 13px;
            border-bottom: 1px solid #919191;
        }

        & + .pref{
            margin-top: 60px;
        }
    }

    .locationList
    {
        max-width: 1000px;
        margin-inline: auto;

        > dt{
            position: relative;
            line-height: 1.2;
            padding: 30px 50px 30px 0;
            cursor: pointer;

            &:first-child{
                border-top: 0;
            }
        }
        
        > dd {
            display: none;
            margin: 0;
            position: relative;
            padding: 0 20px 22px 0px;

            p{
                margin: 0;

                & +p{
                   margin-top: 8px; 
                }

                &.access{
                    display: flex;
                }
            }

            .flexbox{
                gap: 40px;
            }

            .phone {
                color: #333;
            }

            .map {
                width: 40%;
                iframe{
                    max-width: 100%;
                    height: 250px;
                }
            }
        }

        .toggle {
            display: inline-block;
            width: 20px;
            height: 20px;
            position: absolute;
            right: 20px;
            top: 30px;
            @media (max-width : 767px) {
                width: 14px;
                height: 14px;
            }
        }
        .toggle::before, .toggle::after {
            content: "";
            width: 100%;
            height: 2px;
            background: #333;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            transition: .2s;
        }
        .toggle::before {
            transform: translate(-50%, -50%) rotate(90deg);
            -webkit-transform: translate(-50%, -50%) rotate(90deg);
            -ms-transform: translate(-50%, -50%) rotate(90deg);
        }
        > dt.open .toggle::before {
            transform: translate(-50%, -50%) rotate(0deg);
            -webkit-transform: translate(-50%, -50%) rotate(0deg);
            -ms-transform: translate(-50%, -50%) rotate(0deg);
        }
    }

}


/* ◇ faqBox
-------------------------------- */

.faqBox{
    .qaList{

        > dt{
            position: relative;
            line-height: 1.2;
            padding: 30px 50px 30px 50px;
            cursor: pointer;
            border-top: 1px solid #919191;

            @media (max-width : 767px) {
                padding: 30px 50px 30px 34px;
            }

            &:first-child{
                border-top: 0;
            }
        }

        .qa_t {
            position: absolute;
            top: 24px;
            left: 22px;
            font-size: 2.0rem;
            font-weight: 700;
            color: #0B1E3B;
            @media (max-width : 767px) {
                left: 5px;
            }
        }
        .qa_t.-q {
            margin-right: 7px;
        }
        .qa_t.-a {
            display: none;
        }
        
        > dd {
            display: none;
            margin: 0;
            position: relative;
            padding: 0 20px 22px 0px;

            p{
                padding-left: 24px;
                margin: 0;
            }
        }

        .toggle {
            display: inline-block;
            width: 20px;
            height: 20px;
            position: absolute;
            right: 20px;
            top: 30px;

            @media (max-width : 767px) {
                width: 14px;
                height: 14px;
            }
        }
        .toggle::before, .toggle::after {
            content: "";
            width: 100%;
            height: 2px;
            background: #333;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            transition: .2s;
        }
        .toggle::before {
            transform: translate(-50%, -50%) rotate(90deg);
            -webkit-transform: translate(-50%, -50%) rotate(90deg);
            -ms-transform: translate(-50%, -50%) rotate(90deg);
        }
        > dt.open .toggle::before {
            transform: translate(-50%, -50%) rotate(0deg);
            -webkit-transform: translate(-50%, -50%) rotate(0deg);
            -ms-transform: translate(-50%, -50%) rotate(0deg);
        }
    }
}

/* ◇ flowBox
-------------------------------- */
.flowBox{
    
    ul.flowList{
        margin-left: auto;
        margin-right: auto;
        max-width: 1000px;

        li{
            position: relative;
            &::before{
                content: "";
                position: absolute;
                left: 50%;
                bottom: -38px;
                display: inline-block;
                vertical-align: middle;
                color: #333;
                line-height: 1;
                width: 1em;
                height: 1em;
                border: 3px solid #110284;
                border-left: 0;
                border-bottom: 0;
                box-sizing: border-box;
                transform: translateY(-25%) rotate(135deg);
            }
            
            &:last-child::before{
                display: none;
            }

            .action{
                position: relative;
                z-index: 1;
                text-align: center;
                line-height: 1.2;
                margin-bottom: -0.7em;
                font-size: 2.4rem;
                font-weight: 700;
                color: #E8E5DE;

                @media only screen and
                (max-width : 767px) {
                    font-size: 2.0rem;
                    margin-bottom: -0.4em;
                }
            }

            > .flexbox{
                border-radius: 40px;

                display: flex;
                flex-wrap: nowrap;
                align-items: stretch;
                justify-content: space-between;
                gap: 36px;
                background: #fff;
                padding: 36px;

                @media only screen and
                (max-width : 767px) {
                    flex-direction: column;
                    gap: 20px;
                    padding: 7vw 4vw 4vw 4vw;
                }
                
                .box{
                    flex-grow: 1;
                }

                .image{
                    flex-shrink: 0;
                    width: 300px;
                    margin: 0;
                    img{
                        border-radius: 20px;

                        @media only screen and
                        (max-width : 767px) {
                            width: 100%;
                        }
                    }
                }
            }

            & + li{
                margin-top: 64px;
            }
        }
    }
}

.bg_white{
    .flowBox{
        ul.flowList{
            > li{
                .flexbox{
                    background: #F7F6F4;
                }
            }
        }
    }
}

/* ◇ check
-------------------------------- */
.check{
    > li{
        position: relative;
        padding-left: 28px;
        background: url(../images/common/icon/check.svg) no-repeat 0 0.8em;
        background-size: 1em auto;

        & + li{
            margin-top: 8px;
        }
    }

    &.gray_wrap{
        > li{
            background-color: #F7F6F4;
            background-position: 20px 0.6em;
            border-radius: 24px;
            padding: 5px 8px 5px 42px;
            line-height: 1.3;
        }
    }
}
/* ◇ tagsList
-------------------------------- */
.tagsList{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap:4px 13px;
}

.tagsList > span,
.tagsList > li{
    display: inline-block;
    padding: 4px 11px;
    line-height: 1.1;
    color: #fff;
    background: #8B8B8B;
    font-size: 1.3rem;
    text-align: center;
}

.tagsList > li.active{
    background: #BFB690;
}


.tagsList a,
.tagsList a:hover{
    color: #fff;
    text-decoration: none;
    transition: .5s;
}
.tagsList a:hover{
    opacity: 0.8;
}
/* ◇ disc
-------------------------------- */

ul.disc li{
    list-style-type:disc;
    margin-left:2em;
}

*:first-child + html ul.disc li{
    display:list-item;
    vertical-align:top;
    position:relative;
    top:-0.3em;
    margin-top:0.3em;
}


/* ◇ 番号付きリスト
-------------------------------- */

ol.decimal > li{
    list-style-type:decimal;
    margin-left:2em;
}

*:first-child + html ol.decimal li{
    display:list-item;
    vertical-align:top;
    position:relative;
    top:-0.3em;
    margin-top:0.3em;
}
/* ◇ 番号付きリスト
-------------------------------- */

ul.numbers > li{
    padding-left: 1.5em;
    text-indent: -1.5em;
}

/* 送信フォーム
-------------------------------- */
.submitArea{
    margin:15px 0;
    text-align:center;
}

.submitArea img,
.submitArea input{
    vertical-align:baseline;
}

/* エラー ----------------------- */
.warning{
    color:#FF0000;
    font-size:92%;
    display:none;
}

/* バナー一覧
-------------------------------- */
.publicity ul li{
    margin-bottom:5px;
}

/* 広告バナー
-------------------------------- */
.abs{
    margin:0;
}

/* ◇ 簡易マウスオーバー
-------------------------------- */
.mouse-over a,
.mouse-over img{
    transition: 0.5s;
}

.mouse-over a:hover img,
.mouse-over:hover img{
    filter:alpha(opacity=70);
    -ms-filter: "alpha(opacity=70)";
    opacity: 0.6; 
}

/* ◇ タグ嵩張らないように
-------------------------------- */
.hiddentags{
    overflow:hidden;
    height:1px;
}


/* アイコン
-------------------------------- */
a._blank,
a > ._blank{
    display: inline-block;
    padding-right: 22px;
    background: url("../images/common/icon/blank.svg") 100% 50% no-repeat;
}

/* ◇ .image
-------------------------------- */
.image{

    &.left_over{
        position: relative;
        text-align: left;
        @media only screen and
        (max-width : 767px) {
            left: calc((var(--wrap-space) + 1vw) * -1);
        }
    }

    &.right_over{
        position: relative;
        text-align: right;
        @media only screen and
        (max-width : 767px) {
            right: calc((var(--wrap-space) + 1vw) * -1);
        }
    }
}


/* ◇ .frame
-------------------------------- */
.frame{
    overflow: hidden;
    border: 1px solid #110284;
    width: fit-content;
    border-radius: 16px;
    padding: 40px;

    @media only screen and
    (max-width : 767px) {
        padding: 20px;
    }
}

/* ◇ .pseudoTable
-------------------------------- */
.pseudoTable{
    display: table;
}
.pseudoTable > *{
    display: table-cell;
    vertical-align: middle;
}

dl.pseudoTable{
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid #4E4E4E;
    border-radius: 8px;

    > *{
        text-align: center;
        width: 50%;
    }

    > dt{
        display: flex;
        align-items: center;
        justify-content: center;
        background: #4E4E4E;
        color: #fff;
        padding: 10px;
    }
    > dd{
        padding: 10px;

        > em{
            font-size: 2.0rem;
        }
    }
    
    &._blue{
        border-color: #110284;
        > dt{
            background: #110284;
        }
        > dd{
            color: #110284;
        }
    }

    & + *{
        margin-top: 1.5em;
    }
}


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

    .pseudoTable.sp_noTable{
        display: block;
    }
    .pseudoTable.sp_noTable > *{
        display: block;
    }

}

/* ◇ .flexbox
-------------------------------- */
.flexbox{
    display:flex;
    flex-wrap: wrap;
    align-items: center;
}

.flexbox.nowrap{
    flex-wrap: nowrap;
}
.flexbox.jc-center{
    justify-content: center;
}
.flexbox.jc-around{
    justify-content: space-around;
}
.flexbox.jc-between{
    justify-content: space-between;
}
.flexbox.jc-start{
    justify-content: flex-start;
}
.flexbox.jc-end{
    justify-content: flex-end;
}
.flexbox.end{
    align-items: flex-end;
}
.flexbox.start{
    align-items: flex-start;
}
.flexbox.stretch{
    align-items: stretch;
}
.flexbox.column{
    flex-direction: column;
}
.flexbox.col_reverse{
    flex-direction: column-reverse;
}
.flexbox.reverse{
    flex-direction: row-reverse;
}
.flexbox .no_shrink{
    flex-shrink: 0;
}

.flexbox.col2{
    gap:4%;
}
.flexbox.col2 > *{
    width: 48%;
}
.flexbox.col3{
    gap:24px 3%;
}
.flexbox.col3 > *{
    width: 31%;
    text-align: center;
}
.flexbox > p{
    margin-bottom: 0;
}

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

    .flexbox.sp_no_flex{
        display:block;
    }

    .flexbox.col2.sp_no_flex > *,
    .flexbox.col3.sp_no_flex > *,
    .flexbox.col4.sp_no_flex > * {
        width: auto;
    }
    .flexbox.sp_column {
        flex-direction: column;
        align-items: center;
    }
        .flexbox.sp_column >* {
            width: 100%!important;
        }
    .flexbox.sp_row {
        flex-direction: row;
    }
    .flexbox.sp_reverse {
        flex-direction: column-reverse;
    }
    
    .flexbox.col2.sp_no_flex > * + *{
        margin-top: 8vw;
    }

    .flexbox.col3.sp_no_flex > * + *{
        margin-top: 8vw;
    }

}

/* ◇ .grid_box
-------------------------------- */
.grid_box {
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px 1.02675585284%
}
.grid_box.col2 {
    grid-template-columns: 1fr 1fr;
    gap: 40px 32px;
}
.grid_box.col3 {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px 32px;
}

.grid_box.col6 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
    gap: 20px 20px;
}

.grid_box.gap20 {
    gap: 20px 20px;
}

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

    .grid_box.sp_col1 {
        grid-template-columns: 1fr;
    }
    .grid_box.sp_col2 {
        grid-template-columns: 1fr 1fr;
    }   
}


/*--------------------------------------------------
YouTube遅延読み込み用スタイル
----------------------------------------------------*/
.youtube-placeholder {
    position: relative;
    width: 100%;
    max-width: 560px;
    aspect-ratio: 16 / 9;
    background: #000;
    cursor: pointer;
    margin: 0 auto;
}

.youtube-thumbnail {
    position: relative;
    width: 100%;
    height: 100%;
}

.youtube-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

.youtube-placeholder:hover .play-button {
    opacity: 1;
}

.play-button svg {
    width: 68px;
    height: 48px;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}

@media (max-width: 767px) {
    .youtube-placeholder {
        max-width: 100%;
    }

    .play-button svg {
        width: 48px;
        height: 34px;
    }
}