@charset "utf-8";

/*----------------------------------------------------------
▼ 商品説明動画 (/product/movie)
----------------------------------------------------------*/

.movie-area {
    margin-top: 45px;
}

.section {
    margin-bottom: 30px;
}
.section .section-title {
    display: flex;
    align-items: center;
    height: 63px;
    margin-bottom: 10px;
}
@media (min-width: 768px) {
    .section .section-title {
        height: 55px;
        margin-bottom: 15px;
    }
}

.product-logo {
    display: flex;
}
@media (min-width: 768px) {
    .product-logo {
        width: 317px;
    }
}
.product-logo img {
    max-width: 100%;
    height: auto;
    flex: 1;
}

.main-movie {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: left;
    margin-bottom: 30px;
}
@media (min-width: 768px) {
    .main-movie {
        margin-bottom: 50px;
    }
}

@media (max-width: 767px) {
    .main-movie iframe{
        width: 80vw;
        max-width: 345px;
    }
}

.main-movie-title-block {
    display: flex;
    font-size: 16px;
    font-weight: 700;
    line-height: 20px;
    margin-bottom: 10px;
}
@media (min-width: 768px) {
    .main-movie-title-block {
        width: 640px;
    }
}
.main-movie-title-block .main-movie-title {
    display: flex;
    justify-content: left;
    width: 92vw;
    max-width: 345px;
}

.pc-movie iframe {
    width: 640px;
    height: 360px;
}

@media (min-width: 320px) and (max-width: 374px) {
    .sp-movie-wrap {
        width: calc(290px + (345 - 290) * ((100vw - 321px) / (375 - 321)));
    }
}

@media (min-width: 375px) and (max-width: 767px) {
    .sp-movie-wrap {
        width: 345px;
    }
}

.sp-movie {
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;
    position: relative;
    overflow: hidden;
}

.sp-movie iframe{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

/* slide-area */
.slide-area {
    width: 90vw;
    max-width: 870px;
    position: relative;
    left: 50%;
    transform: translate(-50%); 
}

@media (max-width: 767px) {
    .slide-area {
        width: 90vw;
        max-width: 345px;
    }
}

.slide-container {
    display: block;
}

.slide-block {
    display: flex;
}

.slide-movie-container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

@media (min-width: 768px) {
    .slide-movie-container {
        justify-content: space-between;
        width: 40vw;
        max-width: 410px;
    }
}

.slide-title-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 90vw;
    max-width: 345px;
    margin-bottom: 10px;
    gap: 10px;
}
@media (min-width: 768px) {
    .slide-title-wrap {
        width: 40vw;
        max-width: 410px;
    }
}

.slide-upper-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 20px;
    color: #333333;
}

.slide-lower-title {
    height: 36px;
    font-size: 14px;
    font-weight: 400px;
    line-height: 17.5px;
    letter-spacing: 5%;
    color: #333333;
}

.slide-movie-wrap {
    width: 295px;
    position: relative;
}

@media (min-width: 320px) and (max-width: 374px) {
    .slide-movie-wrap {
        width: calc(240px + (345 - 290) * ((100vw - 321px) / (375 - 321)));
    }
}

@media (min-width: 375px) and (max-width: 767px) {
    .slide-movie-wrap {
        width: calc(295px + (345px - 295px) * ((100vw - 375px) / (768 - 375)));
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .slide-movie-wrap {
        width: calc(295px + (410 - 295) * ((100vw - 768px) / (1024 - 768)));
    }
}

@media (min-width: 1024px) {
    .slide-movie-wrap {
        width: 410px;
    }
}

.slide-movie {
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;
    position: relative;
    overflow: hidden;
}

.slide-movie iframe{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.slideNav-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
}

.slideNav {
  	display:flex;
    justify-content: center;
	align-items: center;
    position: relative;
    width: 100%;
    margin-top: 20px;
}
@media (max-width: 767px) {
    .slideNav {
        display: flex;
        justify-content: space-evenly;
        width: 90vw;
        max-width: 345px;
    }
}

.prev-arrow,
.next-arrow {
    position: absolute;
    top: 69%;
    transform: translateY(-69%);
    cursor: pointer;
}

@media (min-width: 1024px) {
    .prev-arrow,
    .next-arrow {
        top: 66%;
        transform: translateY(-66%);
    }
}

.prev-arrow {
    left: -5px;
}

@media (min-width: 768px) {
    .prev-arrow {
        left: -26px;
    }
}

.next-arrow {
    right: -5px;
}

@media (min-width: 768px) {
    .next-arrow {
        right: -26px;
    }
}

@media (min-width: 768px) {
    .prev-arrow img {
        width: 30px;
        height: 45px;
    }
}

@media (min-width: 768px) {
    .next-arrow img {
        width: 30px;
        height: 45px;
    }
}

.slick-initialized .slick-slide {
    display: flex;
    justify-content: center;
}

.slick-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.slick-dots li button {
    width: 8px;
    height: 8px;
    border-radius: 8px;
    background: #CCCCCC;
    text-indent: -9999px;
    cursor: pointer;
}

.slick-dots li button:hover {
    background: #0077FF;
}

.slick-dots li.slick-active button {
    background: #0077FF;
}

.slick-dots li:last-of-type {
    margin-right: 0;
}

@media (min-width: 768px) {
    /* heroku側とヘッダーの高さと余白を合わせるために追加実施
    ただ、これが正しい修正対応ではないので今後Heroku側で間違っているline-heightの修正によって以下の修正や別の対応が必要になる可能性がある。 */
    header {
        padding: 9px 0 2px;
        position: relative;
        z-index: 4;
    }

    /* heroku側とヘッダーの高さと余白を合わせるために追加実施
    ただ、これが正しい修正対応ではないので今後Heroku側で間違っているline-heightの修正によって以下の修正や別の対応が必要になる可能性がある。 */
    header .logo {
        line-height: 4.5;
    }
}