@charset "utf-8";
html {
	scroll-behavior: smooth;
}
main{
    position: relative;
    max-width: 1920px;
    margin-inline: auto;
    padding-bottom: 100px;
    font-family: "Yu Gothic", "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
    background-color: #b9e8ff;
    color: #333333;
    text-align: center;
    small{
        display: block;
        font-size: 14px;
        line-height: 1.4;
    }
}
button{
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}
.w1540{
    padding-inline: 10px;
}
.cRed{
    color: #cb3315;
}
@media (min-width: 769px){
    main{
        font-size: 18px;
    }
    .w1236{
        max-width: 1236px;
        margin-inline: auto;
        padding-inline: 10px;
    }
    .w1256{
        width: 1256px;
        margin-inline: auto;
        padding-inline: 10px;
    }
    /* .w1440{
        max-width: 1440px;
        margin-inline: auto;
    } */
    .w1540{
        width: 100%;
        min-width: 1236px;
        max-width: 1540px;
        margin-inline: auto;
        padding-inline: 10px;
        box-sizing: content-box;
    }
}
@media (max-width: 768px){
    main{
        font-size: 16px;
        small{
            font-size: 12px;
        }
    }
    button{
        font-size: 16px;
    }
    .w1540{
        padding-inline: 15px;
    }
}

.btn{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;

    height: 60px;
    padding-inline: 25px;
    border-radius: 9999px;
    font-weight: bold;
    text-align: center;
    line-height: 1.2;
    transition: .2s ease-in-out;

    &::after{
        content: "";
        /* position: absolute;
        top: 50%; */
        right: 13px;
        width: 9px;
        height: 9px;
        border-top: solid 2px #ffffff;
        border-right: solid 2px #ffffff;
        transform: rotate(45deg);
    }
}
.btn.-arrow-down::after{
    transform: rotate(135deg);
}
a.btn{
 color: #ffffff
}
.btn.-color-1{
    background-color: #012b9c;
}
.btn.-color-2{
    background-color: #e13e7f;
}
.btn.-color-3{
    background-color: #29acf1;
}
@media (min-width: 769px){
    .btn:hover{
        transform: translateY(-2px);
        box-shadow: 0px 2px 5px 0px rgba(2, 40, 49, 0.5);
    }
}
@media (max-width: 768px){
    .btn{
        max-width: 420px;
        height: 55px;
        margin-inline: auto;
    }
}

@media (min-width: 769px){
    .fade-in{
        opacity: 0;
    }
    .fade-in.is-visible{
        opacity: 1;
    }
}

.lazy-image-wrap{
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    &::before {
        content: "";
        display: block;
    }
    img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        max-width: 100%;
        height: 100%;
        object-fit: cover;
    }
}
[class*="caption"]{
    position: absolute;
    bottom: 3px;
    right: 8px;
    color: #000000;
    font-size: 14px;
    font-weight: bold;
    text-shadow: 1px 1px 3px #ffffff, -1px -1px 3px #ffffff, -1px 1px 3px #ffffff, 1px -1px 3px #ffffff, 0px 1px 3px #ffffff, 0 -1px 3px #ffffff, -1px 0 3px #ffffff, 1px 0 3px #ffffff;
}

.main-header{
    position: relative;
    width: 100%;
    height: 777px;
    background: url(../images/mv-bg.webp) no-repeat center top / auto;
    overflow: hidden;
}
.main-header-inner{
    padding-top: 30px;
}

.main-title{
    /* color: #012b9c;
    font-size: 80px;
    font-style: italic; */
    position: relative;
    z-index: 1;
    text-align: center;
    transition: opacity 1s ease-in-out;
}
.main-banner-splide{
    margin-top: 50px;
    transition: opacity 1.4s ease-in-out;
    .splide__arrows{
        position: absolute;
        z-index: 1;
        top: 130px;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        justify-content: space-between;
        width: 103%;
    }
    .splide__arrow {
        position: relative;
        transition: .2s ease-in-out;
        svg {
            fill: #e6ebf7;
             transition: .2s ease-in-out;
            /* stroke: #0089dc;
            stroke-width: 2; */
        }
    }
    .splide__arrow--prev {
        transform: scale(-1, 1);
    }
    img{
        transition: .2s ease-in-out;
    }
}
.main-header-btn-wrap{
    transition: opacity 1.8s ease-in-out;
}
.main-header-btn{
    display: flex;
    gap: 10px;
    width: fit-content;
    height: 70px;
    font-size: 20px;
    border: 1px solid #edd574;
}
.main-header-btn.-arrow-down{
    &::after{
        position: relative;
        top: -3px;
        left: 0;
    }
}
.header-ship-image{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    gap: calc( 702 / 1920 * 100vw );
    left: 0;
    transition: opacity 1.2s ease-in-out;
    &::before, &::after{
        content: "";
        /* position: absolute; */
        position: relative;
    }
    &::before{
        content: url(../images/sapphire-princess.webp);
        left: 0;
        top: -57px;
    }
    &::after{
        content: url(../images/diamond-princess.webp);
        right: 0;
        top: 16px;
    }
}
@media (min-width: 769px) and (min-width: 1920px){
    .header-ship-image{
        gap: 702px;
        left: 0;
    }
}
@media (min-width: 769px) and (max-width: 1536px){
    .header-ship-image{
        gap: calc( 800 / 1920 * 100vw );
        &::before{
            left: calc( 50 / 1920 * 100vw );
        }
    }
}
@media (min-width: 769px) and (max-width: 1256px){
    .header-ship-image{
        gap: 550px
    }
}
@media (min-width: 769px){
    .main-header{
        min-width: 1256px;
    }
    .main-banner-splide__slide:hover{
        img{
            filter: brightness(1.2);
        }
    }
    .main-banner-splide{
        .splide__arrow--prev:hover{
            left: -3px;
        }
        .splide__arrow--next:hover{
            right: -3px;
        }
    }
}
@media (max-width: 768px){
    .header-ship-image{
        display: none;
    }
    .main-header{
        height: calc( (870 / 750 * 100vw) + 225px );
        aspect-ratio: 750 / 1236;
        background-color: #0044ce;
        background-image: url(../images/mv-sp.webp);
        background-size: 100%;
    }
    .main-header-inner{
        padding: 7vw 8px 0;
    }
    /* .main-header-btn-wrap{
        width: 90%;
        margin-inline: auto;
    } */
    .main-header-btn{
        width: 100%;
        height: 44px;
        font-size: 15px;
    }
    .main-banner-splide{
        width: calc( 550 / 750 * 100vw );
        margin-inline: auto;
        margin-top:40vw;

        .splide__arrows{
            top: calc( 115 / 750 * 100vw );
            width: calc( 700 / 750 * 100vw );
            max-width: 510px;
        }
    }
}

.princess-nav{
        position: sticky;
    top: 0;
    z-index: 100;
    /* height: 80px; */
    background-color: #f5e8c9;
    box-shadow: 1px 2px 0 0 #f5e8c9;
    &::before{
        position: absolute;
        left: 0;
        top: 0;
        content: url(../images/nav-bg.webp);
    }
    &::after{
        position: absolute;
        right: 0;
        top: 0;
        content: url(../images/nav-bg.webp);
        transform: scale(-1, 1);
    }
    /* ul, li, a{
        height: 100%;
    } */
    ul{
        z-index: 1;
    }
    li{
        flex: auto;
    }
    li:last-of-type{
        .princess-nav-link{
                &::after{
                    display: none;
                }
        }
    }
    .border-bottom{
        display: block;
        width: 100%;
        border-bottom: solid 1px #ffffff;
    }
}

a.princess-nav-link{
    color: #372f01;
}
.princess-nav-link{
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 80px;
    font-weight: bold;
    transition: .2s ease-in-out;
    &::after{
        content: "";
        position: absolute;
        right: 0;
        width: 2px;
        height: 100%;
        background: url(../images/nav-link-line.webp) no-repeat center center / auto;
    }
    span{
        font-size: 0.7em;
    }
}
@media (min-width: 769px){
    a.princess-nav-link:hover{
        color: #012b9c;
        /* text-shadow: 0px 0px 5px rgba(1, 43, 156, .7); */
        text-shadow: 0px 0px 3px rgba(0, 0, 0, .3);
    }
    .princess-nav{
        ul{
            min-width: 1236px;
        }
    }
}
@media (max-width: 768px){
    .princess-nav{
        background: #F5E8C9;
        background: linear-gradient(60deg,rgba(245, 232, 201, 1) 0%, rgba(240, 236, 221, 1) 21%, rgba(245, 232, 201, 1) 100%);
        box-shadow: none;
        &::before, &::after{
            display: none;
        }
        li{
            width: 35%;
        }
        li:nth-child(even){
            .princess-nav-link::after{
                display: none;
            }
        }
        li:last-of-type{
            display: none;
        }
        .border-bottom{
            display: none;
        }
    }
    .princess-nav-link{
        height: 55px;
        gap: 5px;
        font-size: 14px;
        line-height: 1.2;
    }
}

/* =========================
   section
========================= */
section{
    padding-top: 95px;
    scroll-margin-top: 30px;
}
.section-title{
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 40px;
    color: #012b9c;
    font-size: 46px;
    font-family: bold;
     text-shadow: 0px 2px 0px rgba(255, 255, 255, 1);
}
.h2-line-1{
    width: 100%;
    padding-bottom: 15px;
    font-size: 20px;
    background: url(../images/h2-line.webp) no-repeat center bottom / auto;
}
.h2-line-2{
    margin-top: 10px;
    font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
    line-height: 1;
}
.block-title{
    font-size: 36px;
    font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
    text-shadow: 0px 2px 0px rgba(255, 255, 255, 1);
    line-height: 1.4;
}
.tabs{
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin-inline: auto;
}
.tab-btn{
    flex: 1;
    transition: .2s ease-in-out;
}
.tab-btn[aria-selected="true"]{
    cursor: default;
}
.ship-tab-btn{
    flex: 1;
    color: #555555;
    &::before{
        display: block;
    }
    &::after{
        content: "";
        display: block;
        height: 5px;
        width: 0;
        margin-top: 10px;
    }
}
.ship-tab-btn[aria-selected="true"]{
    font-weight: bold;
    &::after{
        width: 100%;
    }
}
.ship-tab-btn.-diamond{
    &::before{
        content: url(../images/diamond-icon-disablet.webp);
    }
    &::after{
        background-color: #0080cc;
    }
}
.ship-tab-btn.-sapphire{
    &::before{
        content: url(../images/sapphire-icon-disablet.webp);
    }
    &::after{
        background-color: #816ac8;
    }
}
.ship-tab-btn[aria-selected="true"].-diamond{
    color: #0080cc;
    &::before{
        content: url(../images/diamond-icon.webp);
    }
}
.ship-tab-btn[aria-selected="true"].-sapphire{
    color: #816ac8;
    &::before{
        content: url(../images/sapphire-icon.webp);
    }
}
.tab-container.-diamond, .ship-tab-panel.-diamond{
    background-color: #81c9f0;
}
.tab-container.-sapphire, .ship-tab-panel.-sapphire{
    background-color: #b8b8ea;
}
.ship-tab-panel{
    padding: 40px 50px 50px;
}
@media (min-width: 769px){
    .ship-tabs{
        padding-inline: 110px;
    }
    .ship-tab-btn{
        font-size: 24px;
    }
    .ship-tab-btn.-diamond:hover{
        color: #0080cc;
        &::before{
            content: url(../images/diamond-icon.webp);
        }
    }
    .ship-tab-btn.-sapphire:hover{
        color: #816ac8;
        &::before{
            content: url(../images/sapphire-icon.webp);
        }
    }
}
@media (max-width: 768px){
    section{
        padding-top: 50px;
        scroll-margin-top: 100px;
    }
    .section-title{
        margin-bottom: 30px;
        font-size: 27px;
    }
    .h2-line-1{
        font-size: 14px;
        background-size: 200px;
    }
    .block-title{
        font-size: 20px;
    }
    .ship-tab-btn {
        &::before {
            transform: scale(0.7);
        }
    }
    .ship-tab-panel {
        padding: 20px 10px 10px;
    }
}


.cabin-accrodion-button-wrap{
    position: relative;
}
@media (min-width: 769px){
    .to-shippage-links{
        width: 100%;
    }
    a.to-ship-detail, a.to-ship-cabin, a.to-ship-campagin{
        flex: 1;
    }
}
@media (max-width: 768px){
    .digital_pamphlet_url, .mail-application {
        font-size: min(calc(25 / 750 * 100vw), 14px);
    }
    .digital_pamphlet_url-small {
        font-size: min(calc(20 / 750 * 100vw), 12px);
    }
    a.to-ship-detail, a.to-ship-cabin, a.to-ship-campagin {
       font-size: min(calc(25 / 750 * 100vw), 14px);
    }
    .to-ship-detail .to-shippage-link-main, .to-ship-cabin .to-shippage-link-main, .to-ship-campagin .to-shippage-link-main {
        font-size: 1.142em;
    }
}
@media (max-width: 500px){
    .button-application_link.-mail {
        padding: 10px;
    }
}


/* =========================
   pickup
========================= */
.bg-scroll {
  background-image: url('../images/main-bg.webp');
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center 0;
}
.pickup-ship-tab-panel{
    .tab-btn.year-tab-btn[aria-selected="true"]{
        color: #ffffff;
    }
}
.year-tab-panel{
    margin-top: 40px;
    background-color: #ffffff;
}
.year-tabs{
    width: fit-content;
    height: 60px;
    background-color: #ffffff;
    border-radius: 9999px;
}
.year-tab-btn{
    width: 300px;
    height: 100%;
    font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
    font-size: 24px;
    border-radius: 9999px;
}
.pickup-ship-tab-panel.-diamond{
    .year-tabs{
        color: #0080cc;
    }
    .year-tab-btn{
        color: #0080cc;
    }
    .year-tab-btn[aria-selected="true"]{
        background-color: #0080cc;
    }
}
.pickup-ship-tab-panel.-sapphire{
    .year-tabs{
        color: #816ac8;
    }
    .year-tab-btn{
        color: #816ac8;
    }
    .year-tab-btn[aria-selected="true"]{
        background-color: #816ac8;
    }
}
.theme-tabs{
    gap: 20px;
    margin-bottom: 40px;
}
.theme-tab-btn{
    flex: 1;
    height: 50px;
    background-color: #ffffff;
    color: #012b9c;
            font-size: 20px;
    border-radius: 9999px;
    border: 1px solid #012b9c;
    line-height: 1.2;
    letter-spacing: 0.08em;
}
.theme-tab-btn[aria-selected="true"]{
    background-color: #012b9c;
    color: #ffffff;
    font-weight: bold;
}
.year-tab-panel{
    padding: 40px 60px;
}

.pickup-list{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(413px, 413px));
    gap: 30px;
    justify-content: center;

    align-items: start;
}
.pickup-item{
    display: flex;
    flex-direction: column;
    height: 100%;
    text-align: left;
}
.pickup-item-image-wrap{
    &::before{
        aspect-ratio: 690 / 460;
    }
}
.-diamond .pickup-item-image-wrap{
    background-color: #d5eaf4;
}
.-sapphire .pickup-item-image-wrap{
    background-color: #dadaf0;
}
.pickup-item-info{
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 40px 25px;
    background-color: #f2f7f9;
}
.pickup-item-title{
    color: #0144a2;
    font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
    font-size: 1.333em;
    font-weight: bold;
    line-height: 1.4;
}
.pickup-item-body{
    flex: 1;
    display: flex;
    flex-direction: column;
}
.pickup-item-date{
    font-size: 1.111em;
    font-weight: bold;
    white-space: nowrap;
}
.pickup-item-price{
    color: #c82315;
    font-weight: bold;
}
.pickup-item-point{
    font-size: 0.888em;
}
.pickup-item-point-title{
    display: flex;
    align-items: center;
    gap: 8px;
    color: #16499e;
    font-weight: bold;
    &::after{
        content: "";
        display: inline-block;
        flex: 1;
        height: 1px;
        background-color: #aaaaaa;
    }
}
.pickup-item-point-desc{
    margin-top: 3px;
}
.pickup-links{
    margin-top: auto;
}
.pickup-btn{
    font-weight: bold;
    &::after{
        position: absolute;
        right: 20px;
    }
}
@media (min-width: 769px) and (max-width: 1555px){
    .pickup-list{
        grid-template-columns: repeat(auto-fit, minmax(calc((100% / 3) - 20px), calc((100% / 3) - 20px)));
        gap: 20px;
    }
    .pickup-item-info{
        padding: 35px 20px;
    }
}
@media (min-width: 769px){
    .theme-tabs{
        width: 710px;
    }
    .pickup-ship-tab-panel.-diamond .year-tab-btn:hover{
        background-color: #0080cc;
        color: #ffffff;
    }
    .pickup-ship-tab-panel.-sapphire .year-tab-btn:hover{
        background-color: #816ac8;
        color: #ffffff;
    }
    .theme-tab-btn:hover{
        background-color: #012b9c;
        color: #ffffff;
    }
}
@media (max-width: 768px){
    .bg-scroll {
        background-image: url('../images/main-bg-sp.webp');
    }
    .pickup-list{
        grid-template-columns: repeat(1, 1fr);
        gap: 30px;
    }
    .year-tabs{
        height: 40px;
    }
    .year-tab-btn{
        width: 150px;
        font-size: 18px;
    }
    .year-tab-panel {
        margin-top: 20px;
        padding: 20px 10px 10px;
    }
    .theme-tabs{
        gap: 5px;
        margin-bottom: 20px;
    }
        .theme-tab-btn{
            height: 44px;
        font-size: 14px;
    }
    .pickup-list{
        gap: 20px;
    }
    .pickup-item-info{
        padding: 20px 15px 15px
    }
}

/* =========================
   plans
========================= */
.plans-tab-container{
    padding: 40px 50px 50px;
}
.plan-tabs{
    gap: 20px;
}
.plan-tab-btn{
    position: relative;
    height: 90px;
    background-color: #0f558f;
    color: #ffffff;
    font-size: 24px;
    font-weight: bold;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    span{
        display: block;
        font-size: 0.75em;
        font-weight: normal;
    }
    strong{
        font-weight: bold;
        font-size: 1.111em;
    }
}
.plan-tab-btn.-plus, .plan-tab-btn.-premier{
    span{
        color: #efe485;
    }
}
.plan-tab-btn[aria-selected="true"]{
    background-color: #efe485;
    color: #0f558f;
    cursor: default;
    span{
        color: #0f558f;
    }
}
.plan-tab-btn.-plus{
    &::before{
        content: "";
        position: absolute;
        right: 10px;
        top: -22px;
        width: 70px;
        aspect-ratio: 1 / 1;
        background: url(../images/recommend-icon.webp) no-repeat center center / 100%;
    }
}
.plans-tab-panels{
    background-color: #ffffff;
}
.plan-tab-panel{
    padding-top: 50px;
}
.plan-desc{
    display: none;
    dl{
        margin-top: 35px;
    }
    dt {
        position: relative;
        height: 32px;
        width: fit-content;
        margin: 0 auto 20px;
        padding-inline: 10px;
        line-height: 32px;
        font-weight: bold;
        color: #ffffff;
        background-color: #093a78;
        z-index: 1;
    }
    dt::before,
    dt::after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0;
        height: 0;
        border-style: solid;
        transform: translateY(-50%);
    }
    dt::before {
        left: -13px;
        border-width: 16px 13px 16px 0;
        border-color: transparent #093a78 transparent transparent;
    }
    dt::after {
        right: -13px;
        border-width: 16px 0 16px 13px;
        border-color: transparent transparent transparent #093a78;
    }
}
.plan-tab-panel.-standard{
    .plan-desc.-standard{
        display: block;
        dd{
            margin-top: -37px;
        }
    }
}
.plan-tab-panel.-plus{
    .plan-desc.-plus{
        display: block;
    }
}
.plan-tab-panel.-premier{
    .plan-desc.-premier{
        display: block;
    }
}
.plan-desc.-standard{
    dt {
        background-color: #1876ac;
        &::before{
            border-color: transparent #1876ac transparent transparent;
        }
        &::after{
            border-color: transparent transparent transparent #1876ac;
        }
    }
}
.plan-desc-title{
    margin-bottom: 15px;
    padding-bottom: 15px;
    font-size: 36px;
    font-weight: bold;
    color: #1876ac;
    border-bottom: 1px solid #1876ac;
    line-height: 1;
}
.plan-ship-tabs{
    margin-top: 40px;
    border-bottom: 1px solid #aaaaaa;
}
.plan-ship-tab-panel{
    margin-top: 40px;
    padding-inline: 60px;
}
.tour-btn{
    position: relative;
    width: 100%;
    max-width: 536px;
    &::after{
        position: absolute;
        right: 30px;
    }
}
@media (min-width: 769px){
    .plan-tab-btn.-plus, .plan-tab-btn.-premier{
        span{
            &::before, &::after{
                content: "";
                background: url(../images/princess-type-button-sub.webp) no-repeat;
                background-size: cover;
                display: inline-block;
                width: 32px;
                height: 9px;
                margin-right: 10px;
            }
            &::after{
                transform: scale(-1, 1);
                margin-left: 10px;
            }
        }
    }
    .plan-tab-btn[aria-selected="true"]{
        span{
            &::before, &::after{
                background-image: url(../images/princess-type-button-sub-on.webp);
            }
        }
    }
    .plan-tab-btn[aria-selected="true"].-plus{
        &::before{
            background-image:  url(../images/recommend-icon-on.webp);
        }
    }
    .plan-tab-btn:hover{
        background-color: #efe485;
        color: #0f558f;
        span{
            color: #0f558f;
            &::before, &::after{
                background-image: url(../images/princess-type-button-sub-on.webp);
            }
        }
    }
    .plan-tab-btn.-plus:hover{
        &::before{
            top: -25px;
            background-image:  url(../images/recommend-icon-on.webp);
        }
    }
    .plan-desc.-standard{
        .plan-image-wrap{
            &::before{
                aspect-ratio: 1236 / 237;
            }
        }
    }
    .plan-desc.-plus{
        .plan-image-wrap{
            &::before{
                aspect-ratio: 1236 / 370;
            }
        }
    }
    .plan-desc.-premier{
        .plan-image-wrap{
            &::before{
                aspect-ratio: 1236 / 464;
            }
        }
    }
}
@media (max-width: 768px){
    .plans-tab-container {
        padding: 15px 10px 10px;
    }
    .plan-tabs {
        gap: 5px;
    }
    .plan-tab-btn{
        height: 80px;
        padding-top: 5px;
        font-size: 14px;
        span{
            margin-top: 3px;
        }
    }
    .plan-tab-btn.-plus{
        &::before{
            top: -10px;
            left: 0;
            right: 0;
            margin: auto;
            width: 70px;
            aspect-ratio: 132 / 34;
            background-image:  url(../images/recommend-icon-sp.webp);
        }
    }
    .plan-tab-btn[aria-selected="true"].-plus{
        &::before{
            background-image:  url(../images/recommend-icon-sp-on.webp);
        }
    }
    .plan-tab-panel {
        padding-top: 20px;
    }
    .plan-desc-title {
        font-size: 22px;
    }
    .plan-desc{
                    max-width: 500px;
            margin-inline: auto;
        padding-inline: 15px;
        p{
            text-align: left;
            font-size: 14px;
        }
        dt{
            height: 26px;
            line-height: 26px;
            font-size: 14px;
            &::before{
                left: -12px;
                border-width: 13px 12px 13px 0;
            }
            &::after{
                right: -12px;
                border-width: 13px 0 13px 12px;
            }
        }
        dd, small{
            max-width: 430px;
            margin-inline: auto;
        }
    }
    .plan-tab-panel.-standard {
        & .plan-desc.-standard {
            dd {
                margin-top: -33px;
            }
        }
    }
    .plan-ship-tab-panel {
        margin-top: 0;
        padding-inline: 10px;
    }

    .plan-desc.-standard{
        .plan-image-wrap{
            &::before{
                aspect-ratio: 590 / 508;
            }
        }
    }
    .plan-desc.-plus{
        .plan-image-wrap{
            &::before{
                aspect-ratio: 590 / 1457;
            }
        }
    }
    .plan-desc.-premier{
        .plan-image-wrap{
            &::before{
                aspect-ratio: 590 / 1905;
            }
        }
    }
}


/* =========================
   services
========================= */
.services-list-wrap{
    padding-block: 55px;
    background-color: #f9f8e2;
}
.services-list-title{
    color: #5f4614;
    font-size: 36px;
    font-weight: bold;
    text-align: center;
    text-shadow: 0px 2px 0px rgba(255, 255, 255, 1);
    span{
        display: block;
        font-size: 0.66em;
    }
}
@media (min-width: 769px){
    .services-list{
        grid-template-columns: 750px 688px;
        grid-template-rows: auto auto; /* 2行 */
        margin-inline: auto;
        width: fit-content;
    }
    .services-list{
        li:first-child .services-image-wrap{
            &::before{
                aspect-ratio: 750 / 340;
            }
        }
        li:nth-child(2) .services-image-wrap{
            &::before{
                aspect-ratio: 688 / 340;
            }
        }
        li:nth-child(3) .services-image-wrap{
            &::before{
                aspect-ratio: 750 / 300;
            }
        }
        .services-image-wrap{
            &::before{
                aspect-ratio: 688 / 300;
            }
        }
    }
}
@media (min-width: 769px) and (max-width: 1660px){
    .services-list{
        grid-template-columns: calc( 750 / 1700 * 100vw ) calc( 688 / 1700 * 100vw );
        position: relative;
        left: -2vw;
    }
}
/* @media (min-width: 769px) and (max-width: 1536px){
    .services-list{
        grid-template-columns: calc( 750 / 1800 * 100vw ) calc( 688 / 1800 * 100vw );
    }
} */
@media (min-width: 769px) and (max-width: 1256px){
    .services-list{
        grid-template-columns: 555px 509px;
    }
}
@media (max-width: 768px){
    .services-list-title {
        font-size: 18px;
        span{
            margin-bottom: 5px;
        }
    }
    .services-list-wrap {
        padding: 30px 0;
    }
    .services-list{
        gap: 20px;
        padding-inline: 0;
    }
    .services-image-wrap{
        &::before{
            aspect-ratio: 700 / 299;
        }
    }
}

/* =========================
   information
========================= */
.information{
    padding-bottom: 120px;
}
.ship-btn{
    gap: 12px;
    width: 100%;
    max-width: 480px;
}
.ship-btn.-diamond{
    background-color: #0080cc;
}
.ship-btn.-sapphire{
    background-color: #735abc;
}
@media (max-width: 768px){
    .information{
        padding-bottom: 50px;
    }
    .ship-btn{
        width: fit-content;
        min-width: 327px;
        align-self: center;
    }
}

/* =========================
   cabins
========================= */
.cabins{
    background-color: #4c6c9b;
    padding-bottom: 95px;
    h2{
        color: #ffffff;
        text-shadow: 0px 2px 0px #494949;
    }
    .h2-line-1 {
        background-image: url(../images/h2-line-white.webp);
    }
}
.guest_room__list{
    display: grid;
    gap: 50px 30px;
}
.guest_room__item {
    scroll-margin-top: 120px;
    .imageContainer__item{
        li{
            position: relative;
        }
    }
}
.guestRoomItem__inner{
        display: flex;
    flex-direction: column;
    height: 100%;
}
.guestRoomItem__heading{
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
    padding-bottom: 20px;
    background: url(/cruise/_ship_common/images/company/line.png) no-repeat center bottom / 440px;
    color: #ffffff;
    font-size: 36px;
    line-height: 1.2;
    font-weight: bold;
}
.guestRoomItem__body{
    flex: 1;
    display: flex;
    flex-direction: column;
    height: 100%;
    /* .caption{
        position: absolute;
        right: 8px;
        bottom: 5px;
        color: #000000;
        font-size: clamp(1.2rem, 0.661rem + 0.45vw, 1.4rem);
        text-shadow: 1px 1px 3px #ffffff, -1px -1px 3px #ffffff, -1px 1px 3px #ffffff, 1px -1px 3px #ffffff, 0px 1px 3px #ffffff, 0 -1px 3px #ffffff, -1px 0 3px #ffffff, 1px 0 3px #ffffff;
        font-weight: 700;
        text-align: right;
    } */
    .text-container{
        flex: 1;
        height: 100%;
        margin-top: 35px;
        padding: 30px  35px;
        background-color: #ffffff;
        text-align: left;
    }
    .link-block a{
        display: block;
    }
}
.guest_room-lazy_image-wrap {
    width: 100%;
    height: 0;
    position: relative;
    padding-bottom: calc(426 / 690 * 100%);
}
.col1_box {
    padding: 30px;
    background-color: #ffffff;
    text-align: left;
}
.col1Box__heading{
    margin-bottom: 5px;
    font-size: 111%;
    font-weight: bold;
    line-height: 1.4;
}
.bullet_style-circle {
    position: relative;
    padding-left: 1em;
    line-height: 1.4;
}
.bullet_style-circle::before {
    content: "";
    position: absolute;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    top: 7px;
    transform: translateY(0);
    background-color: #cac4a3;
}
.cabins-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 80px;
    max-width: 592px;
    margin: clamp(40px, (100vw - 374px) * (80 - 40) / 624 + 40px, 80px) auto 0;
    border-radius: 40px;
    font-family: var(--font-fnoto_sans);
    font-size: clamp(1.6rem, 0.857rem + 1.34vw, 2.4rem);
    line-height: 1.2;
    transition: all 0.3s ease-out;
    z-index: 1;
    font-weight: bold;

    background-color: #E8E6A5;
    color: #333333;
}
.cabins-btn::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 3px;
    display: block;
    width: calc(100% - 8px);
    height: calc(80px - 8px);
    border-width: 1px;
    border-style: solid;
    border-radius: 40px;
}
.cabins-btn::after {
    content: "";
    display: block;
    position: absolute;
    right: 38px;
    width: 11px;
    height: 11px;
    top: 30px;
    transform: rotate(135deg);
    border-top-width: 3px;
    border-right-width: 3px;
    border-top-style: solid;
    border-right-style: solid;
}
.cabins-btn.is-close::after {
    transform: rotate(-45deg);
}
.js-accordion-item{
    display: none;
    scroll-margin-top: 120px;
}
.js-accordion-trigger.is-close::after {
    top: 45%;
}
.close_text{
    display: none;
}
@media (min-width: 769px){
    .guest_room__list{
        grid-template-columns: repeat(2, 1fr);
    }
    .cabins-btn:hover{
        transform: translateY(-2px);
        box-shadow: 0px 2px 5px 0px rgba(2, 40, 49, 0.5);
    }
    .guestRoomItem__body .link-block a:hover{
        text-decoration: underline;
    }
}
@media (max-width: 768px){
    .cabins{
        padding-bottom: 50px;
    }
    .guest_room__list{
        gap: 30px;
                max-width: 600px;
        margin-inline: auto;
    }
    .guest_room__item {
        scroll-margin-top: 130px;
    }
    .guestRoomItem__heading {
        margin-bottom: 20px;
        font-size: 20px;
    }
    .guestRoomItem__body {
        .text-container {
            padding: 25px;
        }
    }
    .cabins-btn{
        height: 60px;
        &::before{
            height: calc(60px - 8px);
        }
        &::after{
            top: 23px;
                    width: 8px;
        height: 8px;
        }
    }
}

.cabins-splide{
    width: 100%;
    aspect-ratio: 690 / 426;
    .splide__pagination{
        position: absolute;
        bottom: -30px;
        right: 0;
        gap: 8px;
    }
    .splide__pagination li{
        .splide__pagination__page{
            width: 20px;
            height: 20px;
            background-color: #ffffff;
            opacity: .5;
        }
        .splide__pagination__page[aria-selected="true"]{
            opacity: 1;
        }
    }
}


/* =========================
   campaign
========================= */
.campaign {
    overflow: hidden;
}
.campaignBd {
    margin: 0 auto;
    padding: 16px 8px 64px;
    width: 100%;
    max-width: 1280px;
    background: #abd1de
}
.campaignWp-container{
    padding-bottom: 100px;
          background: url(../images/campaign_bg.webp) center top repeat
}
.campaignWp{
    padding-top: 130px;
    scroll-margin-top: 60px;
}
.campaignWp:last-child .campaignBd {
    padding-bottom: 40px
}
.campaignMv {
    position: relative;
    margin: 0 auto;
    width: 100%;
    max-width: 1500px
}
.campaignMvInner {
    overflow: hidden;
    padding: 16px;
    background: url(../images/cpn_mv_sp.webp) left bottom / 100% auto no-repeat #f9f8f5;
    box-shadow: 0 5px 10px 0 rgba(0, 0, 0, .2)
}
.campaignMv_hd {
    display: flex;
    justify-content: center
}
.campaignMv_hdttl {
    position: relative;
    min-width: calc(100% - 84px)
}
.campaignMv_hdttl::before, .campaignMv_hdttl::after {
    position: absolute;
    bottom: -5px;
    content: "";
    display: block;
    width: 40px;
    height: 42px
}
.campaignMv_hdttl::before {
    right: calc(100% - 10px);
    background: url(../images/cpninfo_ttl_left.webp) center / 100% auto no-repeat
}
.campaignMv_hdttl::after {
    left: calc(100% - 10px);
    background: url(../images/cpninfo_ttl_right.webp) center / 100% auto no-repeat
}
.campaignMv_hdttlbox {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px 16px;
    width: 100%;
    min-height: 40px;
    text-align: center;
    line-height: 1.3;
    color: #fff;
    letter-spacing: .05em;
    font-family: "Noto Serif JP", serif;
    font-size: 1.6rem;
    font-weight: 700;
    text-shadow: 0 0 6px #000;
    background: linear-gradient(135deg, #193978 0%, #3b87b3 40%, #3b77b3 60%, #193978 100%)
}
.campaignMv_hdttlInfo {
    position: absolute;
    left: 50%;
    top: calc(100% + 4px);
    transform: translate(-50%, 0);
    padding: 2px 8px;
    line-height: 1.3;
    color: #c14e4e;
    font-size: 1.2rem;
    font-weight: 700;
    text-shadow: none;
    border-radius: 50vw;
    background: #fff;
    white-space: nowrap;
    letter-spacing: .05em
}
.campaignMv_fuki {
    position: absolute;
    right: 2px;
    top: 6px;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 55px;
    height: 55px;
    line-height: 1.3;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 500;
    border-radius: 50vw;
    background: linear-gradient(to bottom, #b1954b 0%, #967031 100%);
    transform: rotate(10deg);
    box-shadow: 0 5px 10px 0 rgba(255, 255, 255, .8)
}
.campaignMv_fukiTxt {
    display: flex;
    flex-direction: column;
    align-items: center
}
.campaignMv_txt {
    margin-top: 24px;
    font-size: 1.6rem;
    font-weight: 500;
    text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff
}
.campaignMv_txtBold {
    padding: 0 8px;
    color: #c14e4e;
    font-weight: bold;
    background: linear-gradient(transparent 70%, #f5ec7d 70%)
}
.campaignMv_kome {
    display: flex;
    justify-content: center;
    margin-top: 8px;
    text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff
}
.campaignMv_target {
    margin-top: 16px;
    color: #1a7bb1;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff
}
.campaignMv_target span {
    display: inline-block;
    font-weight: 700
}
.campaignMv_targetComb {
    margin-top: 16px;
    text-align: center
}
.campaignMv_targetComb.js-modal-detail-bt {
    cursor: pointer;
    transition: opacity .2s ease-out
}
.campaignMv_targetComb p {
    display: inline-block;
    padding: 8px 0;
    line-height: 1.8;
    color: #c14e4e;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: center;
    text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff;
    border-top: solid 2px #c14e4e;
    border-bottom: solid 2px #c14e4e
}
.campaignMv_targetComb p span {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    font-size: 1.8rem
}
.campaignMv_targetComb em {
    display: inline-block;
    margin-right: 4px;
    padding: 2px 6px;
    color: #fff;
    font-size: 1.3rem;
    border-radius: 4px;
    background: #c14e4e;
    text-shadow: none
}
.campaignMv_date {
    margin-top: 16px;
    text-align: center
}
.campaignMv_dateList {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    padding: 4px 8px;
    min-width: 300px;
    color: #fff;
    line-height: 1.3;
    background: #a28640
}
.campaignMv_dateList dt {
    font-size: 1.2rem
}
.campaignMv_dateList dt::before {
    content: "-";
    margin-right: 8px
}
.campaignMv_dateList dt::after {
    content: "-";
    margin-left: 8px
}
.campaignMv_dateList dd {
    font-weight: 700
}
.campaignNews {
    padding: 4px;
    border-radius: 4px;
    background: #fff
}
.campaignNewsWp {
    position: relative;
    border: solid 1px #d7ceb8
}
.campaignNewsWp::before, .campaignNewsWp::after, .campaignNewsWpInner::before, .campaignNewsWpInner::after {
    position: absolute;
    content: "";
    width: 8px;
    height: 8px;
    /* background: url(/cruise/princess/diamondprincess/_images/news_bg.png) center / 100% auto no-repeat */
}
.campaignNewsWp::before {
    left: -1px;
    top: -1px
}
.campaignNewsWp::after {
    right: -1px;
    top: -1px;
    transform: rotate(90deg)
}
.campaignNewsWpInner::before {
    left: -1px;
    bottom: -1px;
    transform: rotate(-90deg)
}
.campaignNewsWpInner::after {
    right: -1px;
    bottom: -1px;
    transform: rotate(-180deg)
}
.campaignNewsWpInner {
    padding: 8px 16px
}
.campaignNews_ttl {
    color: #043e76;
    font-size: 2rem;
    font-weight: 600;
    font-family: "Noto Serif JP", serif
}
.campaignNews_list {
    position: relative
}
.campaignNews_bd.is-accordion:not(.is-open) .campaignNews_list::after {
    position: absolute;
    left: 0;
    bottom: -1px;
    z-index: 1;
    content: "";
    display: inline-block;
    width: 100%;
    height: 50px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 60%, rgba(255, 255, 255, 1) 99%)
}
.campaignNews_listItem {
    display: flex;
    padding: 8px 0
}
.campaignNews_listItem:not(:first-child) {
    border-top: dashed 1px #abd1de
}
.campaignNews_listItem dt {
    width: 80px
}
.campaignNews_listItem dd {
    flex: 1
}
.campaignNews_listItem a {
    transition: opacity .2s ease-out
}
.campaignNews_listItem a:hover {
    opacity: .6
}
.campaignNews_more {
    padding-top: 16px;
    text-align: center;
    border-top: solid 1px #baccd2
}
.campaignNews_more .m-ico {
    margin-left: 8px;
    font-size: 2.5rem
}
.campaignNews_more button {
    cursor: pointer;
    color: #043e76;
    font-weight: 700;
    transition: opacity .2s ease-out
}
.campaignNews_bd.is-accordion:not(.is-open) .campaignNews_more {
    padding-top: 0
}
.campaignNews_bd.is-accordion:not(.is-open) .campaignNews_more button {
    margin-top: -16px
}
@media print, screen and (min-width:769px) {
    .campaignBd {
        padding: 80px 36px 120px;
        margin-top: -40px;
    }
    .campaignMvInner {
        padding: 88px 40px 40px;
        border-radius: 40px;
        box-shadow: 0 5px 10px 0 rgba(0, 0, 0, .2);
        background: #fff
    }
    .campaignMvInner::before, .campaignMvInner::after {
        pointer-events: none;
        position: absolute;
        top: 0;
        content: "";
        display: inline-block;
        width: 32%;
        height: 100%
    }
    .campaignMvInner::before {
        left: 0;
        border-radius: 40px 0 0 40px;
        background: url(../images/cpn_mv01.webp) right center / cover no-repeat
    }
    .campaignMvInner::after {
        right: 0;
        border-radius: 0 40px 40px 0;
        background: url(../images/cpn_mv02.webp) left center / cover no-repeat
    }
    .campaignMv_hd {
        position: absolute;
        left: 0;
        top: 0;
        z-index: 1;
        width: 100%
    }
    .campaignMv_hdttl {
        margin-top: -48px;
        min-width: inherit
    }
    .campaignMv_hdttlbox {
        padding: 8px 100px;
        min-height: 91px;
        letter-spacing: .05em;
        font-size: 3.6rem
    }
    .campaignMv_hdttl::before, .campaignMv_hdttl::after {
        bottom: -27px;
        width: 82px;
        height: 87px
    }
    .campaignMv_hdttl::before {
        right: calc(100% - 22px)
    }
    .campaignMv_hdttl::after {
        left: calc(100% - 22px)
    }
    .campaignMv_hdttlInfo {
        top: 0;
        transform: translate(-50%, -50%);
        padding: 4px 16px;
        font-size: 1.8rem
    }
    .campaignMv_fuki {
        right: 32px;
        top: -32px;
        width: 120px;
        height: 120px;
        font-size: 2.6rem
    }
    .campaignMv_txt {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        margin-top: 0;
        font-size: 2.8rem
    }
    .campaignMv_target {
        margin-top: 24px;
        font-size: 2.4rem
    }
    .campaignMv_targetComb {
        margin-top: 24px
    }
    .campaignMv_targetComb.js-modal-detail-bt:hover {
        opacity: .6
    }
    .campaignMv_targetComb p {
        display: inline-flex;
        flex-direction: column;
        padding: 8px 16px;
        font-size: 2.4rem
    }
    .campaignMv_targetComb p span {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        font-size: 2.8rem
    }
    .campaignMv_targetComb em {
        font-size: 2.4rem;
        vertical-align: middle
    }
    .campaignMv_date {
        margin-top: 32px
    }
    .campaignMv_dateList {
        padding: 8px 24px;
        min-width: 350px;
        font-size: 2rem
    }
    .campaignMv_dateList dt {
        font-size: 1.6rem
    }
    .campaignNews {
        padding: 16px
    }
    .campaignNewsWp {
        border-width: 2px
    }
    .campaignNewsWp::before, .campaignNewsWp::after, .campaignNewsWpInner::before, .campaignNewsWpInner::after {
        width: 16px;
        height: 16px
    }
    .campaignNewsWp::before {
        left: -2px;
        top: -2px
    }
    .campaignNewsWp::after {
        right: -2px;
        top: -2px
    }
    .campaignNewsWpInner::before {
        left: -2px;
        bottom: -2px
    }
    .campaignNewsWpInner::after {
        right: -2px;
        bottom: -2px
    }
    .campaignNewsWpInner {
        display: flex;
        padding: 16px 40px
    }
    .campaignNews_ttl {
        width: 100%;
        max-width: 160px;
        padding-top: 6px;
        text-align: center;
        font-size: 2.6rem
    }
    .campaignNews_bd {
        flex: 1;
        margin-left: 32px
    }
    .campaignNews_listItem {
        padding: 16px 8px
    }
    .campaignNews_listItem dt {
        width: 100px
    }
    .campaignNews_listItem a:hover {
        opacity: .6
    }
    .campaignNews_more button:hover {
        opacity: .6
    }
}
@media (max-width: 768px){
    .campaignWp-container{
        padding-bottom: 50px;
    }
    .campaignWp{
        padding-top: 40px;
        scroll-margin-top: 100px;
    }
}
/* @media screen and (min-width:769px) and (max-width:1315px) {
    .campaignMvInner {
        border-radius: 0
    }
} */
/* キャンペーン内容 */
.campaignDetail {
    padding: 8px 8px 16px;
    border-radius: 4px;
    background: #fff
}
.campaignNews+.campaignDetail {
    margin-top: 8px
}
.campaignDetail_ttl {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    color: #043e76;
    font-size: 2rem;
    font-weight: 600;
    font-family: "Noto Serif JP", serif
}
.campaignDetail_ttl::after {
    content: "";
    margin-top: 8px;
    width: 100px;
    height: 9px;
    background: url(../images/ttlbar.webp) center / 100% auto no-repeat
}
.cpnHd-plan {
    position: relative
}
.cpnHd-plan a {
    position: absolute;
    right: -8px;
    top: 50%;
    transform: translate(100%, -50%);
    color: #a28640;
    font-size: 2rem;
    line-height: 1;
    transition: opacity .2s ease-out
}
.campaignDetail_cnt:not(:first-of-type) {
    margin-top: 24px
}
.campaignDetail_cnt:first-of-type {
    margin-top: 8px
}
.campaignDetail_cntTtl {
    font-size: 1.6rem;
    font-weight: 500
}
.campaignDetail_cnthd {
    margin-bottom: 8px
}
.campaignDetail_cnthd .campaignDetail_cntTtl {
    padding-left: 8px;
    line-height: 1.3;
    border-left: solid 3px #043e76;
    text-align: left;
}
.campaignDetail_cntTtl span {
    font-size: 1.2rem
}
.campaignDetail_cntBt {
    margin-top: 8px;
    text-align: center
}
.campaignDetail_cntBt a {
    display: inline-block;
    padding: 4px 16px;
    color: #fff;
    font-weight: 700;
    border-radius: 4px;
    background: linear-gradient(135deg, #1978ae 0%, #093a78 100%);
    transition: opacity .2s ease-out
}
.campaignDetail_cntBt a .m-ico {
    margin: -4px 8px 0 0;
    font-size: 2.5rem;
    line-height: 1
}
.cpntable {
    display: block;
    margin-top: 4px;
    width: 100%;
    border-radius: 4px;
    border: solid 1px #5d7c8f;
    background: #fff;
    overflow: hidden
}
.cpntableBd-row {
    display: flex;
    border-top: solid 1px #5d7c8f
}
.cpntableBd-row_ttl {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45%;
    padding: 4px;
    font-weight: 700
}
.cpntableBd-row_ttl>div {
    width: 100%
}
.cpntableDate {
    margin-bottom: 6px;
    text-align: center;
    font-weight: 700;
    line-height: 1.2
}
.cpntableDate:not(:first-of-type) {
    margin-top: 8px;
    padding-top: 8px;
    border-top: dashed 1px #ccc
}
.cpntableDate_inline {
    display: inline-block
}
.cpntableRooms:not(.-single) {
    margin-top: -4px
}
.cpntableRooms.-single {
    text-align: center
}
.cpntableRooms_item {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin-top: 4px;
    min-height: 40px;
    color: #fff;
    padding: 4px;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1.3;
    font-family: "Noto Serif JP", serif;
    border-radius: 4px;
    background: #1a7bb1
}
.cpntableRooms_item span {
    font-family: "Noto Serif JP", serif
}
.cpntableRooms_item span.fs {
    font-size: 1.2rem
}
.cpntableRooms.-line {
    position: relative;
    margin-top: 0;
    padding-top: 8px
}
.cpntableRooms.-line::before {
    position: absolute;
    left: 8px;
    top: 8px;
    content: "";
    display: inline-block;
    width: calc(100% - 8px);
    height: 1px;
    border-top: dashed 1px #abd1de
}
.cpntableCnt {
    width: 55%;
    display: flex;
    flex-direction: column
}
.cpntableCnt-row {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%
}
.cpntableCnt-item {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px;
    height: 100%;
    border-left: solid 1px #5d7c8f
}
.cpntableCnt-item:not(:first-child) {
    border-top: solid 1px #ccc
}
.cpntableCnt-item_price {
    margin-top: 4px;
    text-align: center;
    line-height: 1.3
}
.cpntableCnt-item_priceB {
    font-size: 1.8rem;
    font-weight: 700
}
.cpntableCnt-item_priceB.-red {
    color: #c14e4e
}
.cpntableHd-item_priceSub {
    font-size: 1.2rem
}
.cpnCorr {
    position: relative;
    transform: translateY(-30%);
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-left: 2px;
    font-size: 1rem;
    width: 1.3rem;
    height: 1.3rem;
    color: #1a7bb1;
    line-height: 1;
    border-radius: 50vw;
    background: #94dbf2
}
.cpntableCnt-item_priceBefore {
    text-decoration: line-through;
    text-decoration-color: rgba(0, 0, 0, .3)
}
.cpntableCnt-item_priceDouble {
    margin-top: 8px;
    padding-top: 8px;
    border-top: dashed 1px #ccc
}
.cpntableCnt-item_ttl+.cpntableCnt-item_priceDouble, .cpntableCnt-item_priceDouble-basic>.cpntableCnt-item_priceDouble:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none
}
.cpntableCnt-item_priceDouble dl {
    line-height: 1.3;
    font-size: 2.2rem;
    border-radius: 4px;
    border: solid 1px #c14e4e
}
.cpntableCnt-item_priceDouble dt {
    padding: 4px 8px;
    line-height: 1;
    text-align: center;
    font-size: 1.2rem;
    font-weight: 500;
    color: #fff;
    background: #c14e4e
}
.cpntableCnt-item_priceDouble dd {
    padding: 4px 8px;
    text-align: center;
    font-size: 1.2rem
}
.cpntableCnt-item_priceDoublenum {
    line-height: 1;
    font-size: 1.6rem;
    font-weight: 700
}
.cpnbts {
    margin: 16px auto 0;
    width: 100%;
    max-width: 530px
}
.cpnbtsList_item:not(:first-child) {
    margin-top: 8px
}
.cpnbtsList_item a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    min-height: 60px;
    line-height: 1.3;
    text-align: center;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
    font-family: "Noto Serif JP", serif;
    text-shadow: 1px 1px 3px #666;
    border-radius: 4px;
    background: linear-gradient(to bottom, #b1944a 0%, #b1944a 50%, #a0843f 51%, #a98d43 100%);
    transition: opacity .2s ease-out
}
.cpnbtsList_item .m-ico {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 3rem
}
.cpnbtsList_item-subtxt {
    font-size: 1.4rem;
    font-family: "Noto Serif JP", serif
}
.campaignDetail_moretxt {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin: 8px 0;
    font-weight: 700;
    text-align: center
}
.campaignDetail_moretxt span {
    font-weight: 700
}
.campaignDetail_moretxt-bracket {
    position: relative;
    margin-right: 8px;
    padding: 0 8px
}
.campaignDetail_moretxt-bracket::before, .campaignDetail_moretxt-bracket::after {
    position: absolute;
    top: 0;
    content: "";
    display: inline-block;
    width: 1px;
    height: 100%;
    background: #000
}
.campaignDetail_moretxt-bracket::before {
    left: 0;
    transform: rotate(-32deg)
}
.campaignDetail_moretxt-bracket::after {
    right: 0;
    transform: rotate(32deg)
}
.campaignDetail_moretxt-line {
    line-height: 1.3
}
.campaignDetail_moretxt-line.-txt {
    color: #043e76;
    font-size: 1.4rem
}
.campaignDetail_moretxt-line.-strong {
    font-size: 2.4rem;
    color: #c14e4e;
    background: linear-gradient(transparent 70%, #f5ec7d 70%)
}
.campaignDetail .kome {
    margin-top: 4px;
    font-size: 1.2rem;
    text-align: left;
}
.campaignDetail .kome .red {
    color: #BC0A0D
}
.cpnPlanBts {
    margin: 16px 16px 0
}
@media screen and (max-width:768px) {
    .cpnPlanBts_item:not(:first-child) {
        margin-top: 8px
    }
    .cpntableCnt-item_price .sp-br {
        display: block
    }
}
.cpnPlanBts_item a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60px;
    line-height: 1.3;
    text-align: center;
    color: #fff;
    padding: 4px 16px 4px 4px;
    font-size: 1.6rem;
    font-weight: 700;
    font-family: "Noto Serif JP", serif;
    text-shadow: 1px 1px 3px #666;
    border-radius: 4px;
    background: linear-gradient(to bottom, #c14e4e 0%, #c14e4e 50%, #b44343 51%, #b44343 100%);
    transition: opacity .2s ease-out
}
.cpnPlanBts_item .m-ico {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2rem;
    font-weight: 400
}
.cpnPlanBts_shop {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 16px;
    text-align: center
}
.cpnPlanBts_shop a {
    font-weight: 700;
    text-decoration: underline;
    line-height: 1;
    transition: opacity .2s ease-out
}
.cpnPlanBts_shop .m-ico {
    margin-right: 4px;
    font-size: 2.5rem
}
@media screen and (max-width:768px) {
    .cpntableHd-row {
        display: none
    }
    .cpntableHd-row+.cpntableBd-row {
        border-top: none
    }
}
@media print, screen and (min-width:769px) {
    .campaignDetail {
        padding: 40px
    }
    .campaignNews+.campaignDetail {
        margin-top: 40px
    }
    .campaignDetail_ttl {
        font-size: 3rem
    }
    .campaignDetail_ttl::after {
        width: 200px;
        height: 19px
    }
    .cpnHd-plan a:hover {
        opacity: .6
    }
    .campaignDetail_cnt:not(:first-of-type) {
        margin-top: 32px
    }
    .campaignDetail_cnt:first-of-type {
        margin-top: 24px
    }
    .campaignDetail_cntTtl {
        font-size: 2.4rem
    }
    .campaignDetail_cntTtl span {
        font-size: 1.8rem
    }
    .campaignDetail_cnthd {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        margin-bottom: 0
    }
    .campaignDetail_cnthd .campaignDetail_cntTtl {
        padding: 4px 0 4px 16px;
        border-width: 5px
    }
    .campaignDetail_cntBt a:hover {
        opacity: .6
    }
    .cpntable {
        margin-top: 8px
    }
    .cpntableHd-row {
        display: flex;
        font-weight: 700
    }
    .cpntableHd-item {
        display: flex;
        justify-content: center;
        align-items: center;
        width: calc(100% / 3);
        text-align: center;
        padding: 8px;
        line-height: 1.3;
        background: #e2edf1;
        letter-spacing: -0.03em;
    }
    .cpntable.-col4 .cpntableHd-item {
        width: calc(100% / 4)
    }
    .cpntableHd-item:not(:first-child) {
        border-left: solid 1px #5d7c8f
    }
    .cpntableHd-item.-join {
        width: calc((100% / 3) * 2)
    }
    .cpntableBd-row_ttl {
        width: calc(100% / 3);
        padding: 8px
    }
    .cpntable.-col4 .cpntableBd-row_ttl {
        width: calc(100% / 4)
    }
    .cpntableDate {
        margin-bottom: 4px
    }
    .cpntableRooms:not(.-single) {
        display: flex;
        flex-wrap: wrap;
        margin: -4px 0 0 -4px
    }
    .cpntableRooms_item {
        margin: 4px 0 0 4px;
        min-height: 54px;
        width: calc(100% / 2 - 4px);
        padding: 4px 8px;
        font-size: 1.4rem
    }
    .cpntableRooms.-s .cpntableRooms_item {
        width: calc(100% / 3 - 4px)
    }
    .cpntable.-col4 .cpntableRooms_item {
        width: calc(100% - 4px)
    }
    .cpntableCnt {
        width: calc((100% / 3) * 2)
    }
    .cpntable.-col4 .cpntableCnt {
        width: calc((100% / 4) * 3)
    }
    .cpntableCnt-row {
        flex-direction: row
    }
    .cpntableCnt-item_ttl {
        display: none
    }
    .cpntableCnt-item_price {
        margin-top: 0
    }
    .cpntableCnt-item_priceB {
        font-size: 2.6rem
    }
    .cpntableHd-item_priceSub {
        font-size: 1.4rem
    }
    .cpnCorr {
        transform: translateY(-80%);
        font-size: 1.2rem;
        width: 1.5rem;
        height: 1.5rem
    }
    .cpntableCnt-item_priceDouble dl {
        display: flex
    }
    .cpntableCnt-item_priceDouble dt {
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 1.6rem;
        width: 140px
    }
    .cpntableCnt-item_priceDouble dd {
        font-size: 1.2rem
    }
    .cpntableCnt-item_priceDoublenum {
        font-size: 2rem
    }
    .cpntableCnt-item_priceDouble-basic {
        display: flex;
        gap: 8px
    }
    .cpntableCnt-item_priceDouble-basic .cpntableCnt-item_priceDouble {
        margin-top: 0;
        padding-top: 0;
        border-top: none
    }
    .cpntableCnt-item_priceDouble-basic dl {
        flex-direction: column
    }
    .cpntableCnt-item_priceDouble-basic dt {
        width: 100%
    }
    .cpnbts {
        margin: 40px auto 0
    }
    .cpnbtsList_item:not(:first-child) {
        margin-top: 16px
    }
    .cpnbtsList_item a {
        min-height: 80px;
        font-size: 2.2rem;
        transition: .2s ease-in-out;
    }
    .cpnbtsList_item a:hover {
        filter: brightness(1.2);
    }
    .cpnbtsList_item-subtxt {
        font-size: 1.8rem
    }
    .campaignDetail_moretxt-bracket {
        margin-right: 16px;
        padding: 0 12px
    }
    .campaignDetail_moretxt-line.-txt {
        color: #043e76;
        font-size: 2.2rem
    }
    .campaignDetail_moretxt-line.-strong {
        font-size: 3rem;
        color: #c14e4e;
        background: linear-gradient(transparent 70%, #f5ec7d 70%)
    }
    .campaignDetail_moretxt {
        margin: 16px 0 0
    }
    .campaignDetail .kome {
        font-size: 1.4rem
    }
    .cpnPlanBts {
        display: flex;
        justify-content: center;
        margin: 24px auto 0;
        max-width: 800px
    }
    .cpnPlanBts_item {
        width: calc(100% / 2 - 8px)
    }
    .cpnPlanBts_item a {
        min-height: 60px;
        font-size: 1.8rem
    }
    .cpnPlanBts_item a:hover {
        opacity: .6
    }
    .cpnPlanBts_item .m-ico {
        position: absolute;
        right: 8px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 2rem;
        font-weight: 400
    }
    .cpnPlanBts_shop {
        margin-top: 24px
    }
    .cpnPlanBts_shop a:hover {
        opacity: .6
    }
}
.cpntableCnt-item_priceTotal {
    display: block;
    padding: 8px;
    color: #fff;
    border-radius: 4px;
    background: #c14e4e
}
.cpntableCnt-item_priceSub em {
    color: #c14e4e;
    font-weight: 700;
    background: linear-gradient(transparent 70%, #f5ec7d 70%)
}
@media screen and (max-width:768px) {
    .cpntableCnt-item_priceTotal {
        width: 135px;
        margin: 0 auto
    }
    .cpntableCnt-item_priceTotal span {
        display: block
    }
}
@media print, screen and (min-width:769px) {
    .cpntableCnt-item_priceTotal {
        font-size: 2.2rem
    }
}
/*  アイコン
-----------------------------------------------------------*/
.m-ico {
    display: inline-flex;
    align-items: center;
    font-style: normal;
    vertical-align: middle;
    font-weight: 400
}

.m-ico:before {
    position: relative;
    top: -1px;
    font-family: 'Material Icons Round';
    content: attr(data-icon);
    font-size: 100%
}

.m-ico.-arrow {
    transform: scale(1.3)
}

@media print, screen and (min-width: 960px) {
    .m-ico.-arrow {
        transform:scale(1.5)
    }
}

/* =========================
   tours
========================= */
.tours-block-title{
    margin-bottom: 30px;
    text-shadow: 0px 2px 0px rgba(255, 255, 255, .7);
}
@media (min-width: 769px){
    .tours-ship-tab-panel{
        padding-bottom: 60px;
    }
}
@media (max-width: 768px){
    .tours-block-title{
        margin-bottom: 20px;
    }
    .tour_category{
        min-width: 120px;
        padding: 5px 10px;
    }
}


.fixed-btn-wrap{
  position: absolute;
  top: 945px;
  right: 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  z-index: 101;
}
.fixed-btn-wrap.is-fixed{
  top: 105px;
}
.fixed-btn{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 110px;
  height: 110px;
  background: #0080CC;
    background: linear-gradient(180deg,rgba(0, 128, 204, 1) 0%, rgba(22, 73, 158, 1) 50%);
  font-size: 14px;
  letter-spacing: -0.05em;
  font-weight: bold;
  text-align: center;
  z-index: 101;
  transition: .2s ease-in-out;
}
a.fixed-btn{
  color: #ffffff;
}
.inquiry-btn{
    background: #E13E7F;
    background: linear-gradient(180deg,rgba(225, 62, 127, 1) 0%, rgba(199, 39, 102, 1) 50%);
}
@media (min-width: 769px){
    .fixed-btn:hover{
        transform: translateY(-2px);
        box-shadow: 0px 2px 5px 0px rgba(2, 40, 49, 0.5);
    }
}
@media (max-width: 768px){
    .fixed-btn-wrap{
        position: fixed;
        bottom: 0;
        left: 0;
        top: auto !important;
        gap: 3px;
        flex-direction: row;
        width: 100%;
        padding: 3px;
        background-color: rgba(0, 128, 204, .5);
    }
    .fixed-btn{
        width: 100%;
        height: 60px;
        font-size: 12px;
        border-radius: 6px;
        line-height: 1.3;
    }
    .button-pagetop{
        bottom: 75px;
    }
}