@charset "utf-8";
@media (min-width: 769px){
    .fade-in{
        opacity: 0;
    }
    .fade-in.is-visible{
        opacity: 1;
    }
}

.page-container {
    img {
        max-width: 100%;
        height: auto;
    }
}

.page-container {
	position: relative;
	background: url(../images/bg-image.webp) repeat left top / auto;
	font-size: 1.8rem;
	font-family: "IBM Plex Sans JP", sans-serif;
	button {
		font-family: "IBM Plex Sans JP", sans-serif;
	}
	img {
          max-width: 100%;
  height: auto;
		vertical-align: top;
	}
	small {
		display: block;
	}
}
@media (max-width: 768px) {
	.page-container {
		font-size: 1.6rem;
	}
}

.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;
    }
}

.main-header{
    position: relative;
    width: 100%;
    padding-bottom: 50px;
    background: #0044ce url(../images/mv-bg.webp) no-repeat center top / auto;
    overflow: hidden;
}
.main-header-inner{
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 30px;
}

.main-title{
    /* color: #012b9c;
    font-size: 80px;
    font-style: italic; */
    position: relative;
    z-index: 1;
    margin-bottom: 45px;
    text-align: center;
    transition: opacity 0.8s ease-in-out;
}
.main-banner-splide.is-single{
    visibility: visible;
}
.main-banner-splide{
    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;
        display: block;
    }
}
.main-banner-splide__slide{
    width: 100%;
}
.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;
    }
}
.header-campaign{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: fit-content;
    padding: 30px 40px;
    background-color: rgba(186, 232, 255, .5);
    border-radius: 30px;
    box-shadow: 0 0px 23px rgba(0, 0, 0, 0.5);
    transition: opacity 1s ease-in-out;
}
.header-campaign-title {
    display: grid;
    gap: 4px;
    width: fit-content;
    height: auto;
    padding: 12px 30px 10px;
    background: #383869;
    background: linear-gradient(28deg,rgba(40, 40, 79, 1) 0%, rgba(60, 66, 148, 1) 35%, rgba(54, 54, 98, 1) 71%, rgba(48, 53, 138, 1) 84%, rgba(40, 40, 79, 1) 100%);
    color: #fff9a8;
    -webkit-text-stroke: 5px #1e2a64;
    text-stroke: 5px #1e2a64;
    paint-order: stroke;
    font-size: 27px;
    font-weight: 600;
    clip-path: polygon(100% 0, 97% 50%, 100% 100%, 0% 100%, 3% 50%, 0% 0%);
    line-height: 1.2;
}
.header-campaign-title-line-1{
    color: #fddcca;
    font-size: 0.8em;
}
.header-campaign-text{
    color: #ef60a5;
    font-weight: bold;
    -webkit-text-stroke: 6px #ffffff;
    text-stroke: 6px #ffffff;
    paint-order: stroke;
    font-size: 22px;
    strong{
        font-weight: bold;
    }
    mark{
        background: linear-gradient(transparent 50%, #f9efc5 50%);
        color: #f05f33;
    }
}
.header-campaign-text-line-2{
    font-size: 1.15em;
}
.header-campaign-link{
    width: fit-content;
    font-weight: bold;
    font-size: 25px;
    -webkit-text-stroke: 6px #ffffff;
    text-stroke: 6px #ffffff;
    paint-order: stroke;
    &::after{
        content: "";
        display: block;
        width: 100%;
        height: 2px;
        background-color: #ffffff;
    }
}
@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{
        width: 1236px;
        .splide__arrow--prev:hover{
            left: -3px;
        }
        .splide__arrow--next:hover{
            right: -3px;
        }
    }
    .header-campaign-link:hover{
        color: #d42626;
        &::after{
            background-color: #d42626;
        }
    }
}
@media (max-width: 768px){
    .header-ship-image{
        display: none;
    }
    .main-header{
        height: auto;
        padding-bottom: 30px;
        background-color: #0044ce;
        background-image: url(../images/mv-bg-sp.webp);
        background-size: 100%;
    }
    .main-header-inner{
        padding: 7vw 8px 0;
    }
    .main-title{
        margin-bottom:40vw;
    }
    .main-header-btn{
        width: 100%;
        height: 44px;
        font-size: 15px;
    }
    .main-banner-splide{
        width: calc( 550 / 750 * 100vw );
        margin-inline: auto;

        .splide__arrows{
            top: calc( 115 / 750 * 100vw );
            width: calc( 700 / 750 * 100vw );
            max-width: 510px;
        }
    }
    .header-campaign{
        gap: 10px;
        width: 360px;
        padding: 20px 0 18px;
    }
    .header-campaign-title {
        padding: 10px 25px 10px;
        font-size: 15px;
        clip-path: polygon(100% 0, 96% 50%, 100% 100%, 0% 100%, 4% 50%, 0% 0%)
    }
    .header-campaign-text{
        font-size: 13px;
        -webkit-text-stroke: 4px #ffffff;
        text-stroke: 4px #ffffff;
    }
    .header-campaign-link {
        font-size: 16px;
        -webkit-text-stroke: 4px #ffffff;
        text-stroke: 4px #ffffff;
    }
}

.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;
    }
}

.bg-scroll {
  background-image: url('../images/main-bg.webp');
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center 0;
}
@media (max-width: 768px){
    .bg-scroll {
        background-image: url('../images/main-bg-sp.webp');
    }
}