@charset "UTF-8";
:root{
    --bk:#222;
    --bt:#f59143;
    --lgy:#eee;
    --gy:#666;
    --wh:#fff;
    --base:/*#396c43*/#038944;
    --base02:#c6dcd1;
    --base03:#f7f6f2;
    --or:#e16520;
    --ig:#dec357;
    --s09:.9rem;
    --s1:1rem;
    --s12:1.2rem;
    --s13:1.3rem;
    --s14:1.4rem;
    --s16:1.6rem;
    --s18:1.8rem;
    --s22:2.2rem;
    --s24:2.4rem;
    --s30:3.0rem;
    --s32:3.2rem;
    --fw7:700;
    --bdr:1px solid var(--base);
    --bdr02:2px solid var(--base);
    --bdr03:2px solid var(--wh);
    --bdr04:1px solid var(--bt);
    --bdr05:2px solid var(--bt);
}
a:hover{opacity:.7}
.cpn_wrapper{letter-spacing: 0.1rem;}
[class*="txt_"]{
    color: var(--base);
    font-weight: var(--fw7);
    line-height: 1.4;
    margin: 20px auto;
    width: auto;
}
.txt_h1{font-size: var(--s24);}
.txt_h2{font-size: var(--s22);}
.txt_h3{font-size: var(--s18);}
.txt_h4{font-size: var(--s16);}
.txt_f32{font-size: var(--s32);}
.bold{font-weight:var(--fw7);}
.border01{border-top: var(--bdr);}
.under p {
    border-bottom: var(--bdr02);
    margin: 0 auto;
    padding: 0 0 1rem;
    width: 50%;
}
.bk{color:var(--bk);}
.bt{color:var(--bt);}
.nav01{
    display:flex;
    justify-content: space-around;
    li {
        text-align: center;
        /*width: calc( 100% / 4.2 );1110*/
        width: calc( 100% / 5.2 );
        a{
            display: block;
            color: var(--base);
            border: var(--bdr02);
            border-radius: 8px;
            font-size: var(--s16);
            /*font-size: var(--s18);1110*/
            font-weight: var(--fw7);
            line-height: 1.4;
            /*padding: 1.2rem 1.6rem;1110*/
            padding: 1.2rem 2rem 1.2rem 1.2rem;
            position: relative;
        }
        a:after{
            content: '';
            border-top: var(--bdr02);
            border-left: var(--bdr02);
            height: var(--s12);
            position: absolute;
            bottom: 40%;
            right: 5%;
            -webkit-transform: rotate(225deg) translate(0%, 0%);
            transform: rotate(225deg) translate(0%, 0%);
            width: var(--s12);
        }
        :hover{
            background: #dde9e3;
            opacity: inherit;
        }
    }
}
/*.cmp_text p{
    word-break: auto-phrase;
}*/
.wrap_txt p{text-align: center;}
[class*="btn0"]{
    a{
        border-radius: 8px;
        background-color: var(--base);
        color: var(--wh);
        display: inline-block;
        width:370px;
        padding:1.5rem;
        position: relative;
    }
    a:after{
        content: '';
        border-top: var(--bdr03);
        border-left: var(--bdr03);
        height: var(--s12);
        position: absolute;
        bottom: 40%;
        right: 5%;
        width: var(--s12);
    }
}
.btn01 a:after,.btn04 a:after{
    -webkit-transform: rotate(135deg) translate(0%, 0%);
    transform: rotate(135deg) translate(0%, 0%);
}
.btn02 a:after{
    -webkit-transform: rotate(225deg) translate(0%, 0%);
    transform: rotate(225deg) translate(0%, 0%);
}
.btn03{
    a{
        border-radius: 8px;
        background: var(--wh);
        border:var(--bdr04);
        color: var(--bt);
        font-weight: var(--fw7);
        margin: 1.6rem 0 0;
        text-align: center;
        width: 100%;
    }
    a:after{
        border-top: var(--bdr05);
        border-left: var(--bdr05);
        -webkit-transform: rotate(135deg) translate(0%, 0%);
        transform: rotate(135deg) translate(0%, 0%);
    }
    :hover{
        background: var(--bt);
        color:var(--wh);
    }
    a:hover:after{
        border-top: var(--bdr03);
        border-left: var(--bdr03);
    }
}
.btn04{
    a{
        width:430px;
    }
}
.cpn_wrap{counter-reset:num 0;}
.cpn_box{
    [class*="item_num"]{
        counter-reset:number;
        counter-increment:num;
        background:#fcfade;
        border: var(--bdr02);
        border-radius: 10px;
        margin: 5rem 0 0;
        position: relative;
        padding: 6rem 4rem; 
        .sub_num > p{counter-increment:number;}
        .sub_num > p:before{
            content : "第" counter(number) "弾";
            background: var(--base);
            color:var(--wh);
            font-size: 1.4rem;
            margin-right: 10px;
            padding:1rem 2rem;
        }
        :has(.outside_txt) .base_prod{margin-bottom: 2%;}
        a.outside_icon{
            background-image: url('data:image/svg+xml;utf8,<svg%20xmlns="http://www.w3.org/2000/svg"%20viewBox="0%200%2012%2012"><path%20d="M302.64,421.91v2.61h-8.15v-8.15h2.61m6.44,3.81v-4.71h-4.71m-.9,5.5,5.29-5.3m-10.68,2.66v8.14h8.14"%20transform="translate(-292.04%20-414.97)"%20fill="none"%20stroke="white"%20stroke-miterlimit="10"/></svg>');
            background-position: 7.5rem 2.2rem;
        }
    }
    [class*="item_num"]:before{
        background: var(--wh);
        border: var(--bdr02);
        border-radius: 25px;
        color: var(--base);
        font-size: var(--s22);
        padding: 0.1rem 3.2rem;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        white-space: nowrap;
    }
    .item_num:before{
        content : "No." counter(num) ;
    }
    .item_num_other{
        background: var(--lgy);
        /*border:none;*/
        color:var(--bk);
        .txt_h1{color:var(--bk);}
    }
    .item_num_other:before{
        content : "And more";
        /*color:var(--bk);
        background: var(--lgy);
        border:var(--bdr03);*/
    }
}
.icon01{
    font-size: var(--s22);
    list-style: none;
    margin: 0 auto;
    letter-spacing: 0.15rem;
    li:nth-child(2n){
        margin-top:2rem;
    }
    span{
        background: var(--or);
        color: var(--wh);
        display: inline-block;
        padding: .2rem 2rem;
    }
    .small{
        background: inherit;
        color:inherit;
        font-size: 1.4rem;
        padding:0 .2rem;
        letter-spacing:0;
    }
}
.icon02 {
    font-size:var(--s22);
    font-weight:var(--fw7);
    .bg{
        background:#f44646;
        color: var(--wh);
        display: inline-block;
        padding: .2rem 1.5rem;
    }
   .fs30{
        font-size:var(--s30);
   }
   span.small{
        font-size:1.4rem;
        padding: 0 .2rem;
        letter-spacing: 0;
    }
}
.half {
    display: flex;
    justify-content: center;
    > div{
        max-width: 48%;
        > section{margin-top:0;}
        [class*="txt_"]{
            margin: 0 auto 20px;
            width: auto;
        }
        .bnr_box_1 {
            display: inline-block;
            li {
                Width:100%;
                .clm_list_img,.clm_lst_tag,.clm_list_txtarea{
                    width:100%;
                    .clm_list_txt{
                        height: inherit;
                        text-align: center;
                    }
                }
            }
        }
        +div{
            max-width:47.5%;
            margin-left:3.5rem;
            margin-top:0;   
        }
    }
}
.deco p:after {
    content: '';
    display: block;
    width: 70px;
    height: 7px;
    background: var(--base02);
    margin: .5rem auto 0;
    border-radius: 20px;
}
#coupon figcaption{display:none;}
#hotels .base_prod .hotel li>a .details_box{
    >p.txt:after {
        content: '...続きを読む';
        background: var(--wh);
        border: var(--bdr);
        padding: .4rem;
        font-size: 1.2rem;
        display: block;
        margin: 1rem 0;
        text-align: center;
    }
    >p.txt:hover:after {
        background: var(--base);
        color:var(--wh)
    }
}
#hotels,#plan{
    .base_prod li { background: var(--wh); }
}
#ig{
    background: var(--base03);
    a.icon_ig {
        background-image: url('/content/dam/jretravel/site/common/images/icon/ig_wh.svg');
        background-repeat: no-repeat;
        background-position: 5rem 1.9rem;/*2.5rem 1.9rem*/
        background-size: 16px;
    }
    .text_ctr{
        text-align: center;    
        p{
            background:var(--ig);
            color:var(--wh);
            display: inline-block;
            padding: .5rem 3rem;
            border-radius: 25px;
            width: 20%;
        }
    }
    .text_lft {
        width: 36%;
        p:nth-child(2n){
            padding-left:1rem;
        }
    }
}
@media (max-width:767px){
    [class*="txt_"]{
        span{display: block;}
    }
    .text_ctr{text-align: center;}
    ul.nav01 {
        width:100%;
        flex-wrap: wrap;
        li{
             width: calc( 100% / 2.1 );
             a{            
                font-size: var(--s16);
             }
            a:after{
                height: var(--s09);
                width: var(--s09);
            }
           }
        li:nth-child(n+3){
            margin-top:2rem
        }
    }
    .wrap_txt p{text-align: left;}
    .cpn_box {
        [class*="item_num"] {
            margin:5rem 2rem;
            padding: 3rem 2rem;
            > div > section{margin-top:0;}        
            .cmp-text {width:100%;}
            a.outside_icon {
                background-position: 2.5rem 2.2rem;
            }
        }
        #plan[class*="item_num"]{
            padding: 3rem 2rem 5rem;
        }
    }
    .half {
        display: block;
        > div{
            max-width: 100%;
            padding: 0;
            +div{
                max-width:100%;
                margin-left:0;
                margin-top:0;
            }
        }
    }
    [class*="btn0"]{
        a{
            padding:1.6rem;
            word-break: auto-phrase;
            width:100%;
            span{display: block;}
        }
    }
    .btn03{
        a{
            font-size:var(--s12);
            min-width:100%;
            padding:1.2rem 1rem;
        }
    }
    .icon01{
        font-size: var(--s18);
    }
    #hotels{
        .base_prod {
            margin: 0 auto 14%;
        }
        .swiper-container-horizontal>.swiper-pagination-bullets, .swiper-pagination-custom{bottom: -60px;}
    }
    #ig{
        > div{width:96%;margin:0 2%;}
        a.icon_ig {
            background-position: 4rem 2rem;
        }
        .text_ctr {
            p {width:40%;}
        }
        .text_lft {
            width: 96%;
            font-size: 1.5rem;
        }
    }
    .sp_mt0{margin-top:0 !important;}
    .brsp{display: block;}
}
@media (min-width:768px){
    .brpc{display: block;}
}
.mt0{margin-top:0;}
.mb0{margin-bottom:0;}