@charset "utf-8";
/*-----------------------------------------------
 * EPISODES（あらすじ）
-------------------------------------------------*/
.episodes {
    overflow: hidden;
}
.episodes .cont-tit-en {
    width: min(calc(511 / var(--vw-min) * 100vw),511px);
    height: min(calc(82 / var(--vw-min) * 100vw),82px);
}
@media screen and (max-width:768px){
    .episodes .cont-tit-en {
        width: calc(409 / var(--vw-min) * 100vw);
        height: calc(66 / var(--vw-min) * 100vw);
    }
}
.episodes .cont-tit-enIn {
    -webkit-mask: url(../img/common/tit/tit_episodes-en.svg)no-repeat center/contain;
    mask: url(../img/common/tit/tit_episodes-en.svg)no-repeat center/contain;
}
.episodes .cont-tit-ja {
    width: min(calc(375 / var(--vw-min) * 100vw),375px);
    height: min(calc(69 / var(--vw-min) * 100vw),69px);
    -webkit-mask: url(../img/common/tit/tit_episodes-ja.svg)no-repeat center/contain;
    mask: url(../img/common/tit/tit_episodes-ja.svg)no-repeat center/contain;
    margin-top: max(calc(-12 / var(--vw-min) * 100vw),-12px);
    margin-left: min(calc(80 / var(--vw-min) * 100vw),80px);
}
@media screen and (max-width:768px){
    .episodes .cont-tit-ja {
        width: calc(375 / var(--vw-min) * 100vw);
        height: calc(69 / var(--vw-min) * 100vw);
        margin-top: calc(-20 / var(--vw-min) * 100vw);
        margin-left: calc(48 / var(--vw-min) * 100vw);
    }
}
.episodes .cont-tit-deco {
    left: min(calc(450 / var(--vw-min) * 100vw),450px);
    bottom: 0;
}
@media screen and (max-width:768px){
    .episodes .cont-tit-deco {
        left: calc(420 / var(--vw-min) * 100vw);
    }
}
/*-----------------------------------------------
 * TAB（各話）
-------------------------------------------------*/
.episodes__tabNav {
    width: min(calc(1040 / var(--vw-min) * 100vw),1040px);
    margin: min(calc(56 / var(--vw-min) * 100vw),56px) auto 0;
}
@media screen and (max-width:768px){
    .episodes__tabNav {
        width: 100%;
        margin-top: calc(64 / var(--vw-min) * 100vw);
        padding: 0 calc(48 / var(--vw-min) * 100vw);
    }
}
.episodes__tabLists {
    width: min(calc(880 / var(--vw-min) * 100vw),880px);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: min(calc(12 / var(--vw-min) * 100vw),12px);
    margin: 0 auto;
}
@media screen and (max-width:768px){
    .episodes__tabLists {
        width: 100%;
        gap: calc(16 / var(--vw-min) * 100vw);
    }
}
.episodes__tabItem {
    width: min(calc(72 / var(--vw-min) * 100vw),72px);
    min-height: min(calc(44 / var(--vw-min) * 100vw),44px);
    display: flex;
    position: relative;
    align-items: stretch;
    justify-content: center;
}
@media screen and (max-width:768px){
    .episodes__tabItem {
        width: calc(104 / var(--vw-min) * 100vw);
        min-height: calc(64 / var(--vw-min) * 100vw);
    }
}
.episodes__tabItem::before,
.episodes__tabLink::before {
    content: "";
    position: absolute;
    inset: 0;
    border: min(calc(1 / var(--vw-min) * 100vw),1px) solid var(--color-gold9B8);
    pointer-events: none;
}
@media screen and (max-width:768px){
    .episodes__tabItem::before,
    .episodes__tabLink::before {
        border-width: calc(2 / var(--vw-min) * 100vw);
    }
}
.episodes__tabItem.is-current {
    background: linear-gradient(135deg,var(--color-redBF2),#681511);
}
.episodes__tabItem.is-current::after {
    content: "";
    width: min(calc(10 / var(--vw-min) * 100vw),10px);
    height: min(calc(10 / var(--vw-min) * 100vw),10px);
    position: absolute;
    right: 0;
    bottom: max(calc(-5 / var(--vw-min) * 100vw),-5px);
    left: 0;
    margin: auto;
    background-color: var(--color-redBF2);
    border-right: min(calc(1 / var(--vw-min) * 100vw),1px) solid var(--color-gold9B8);
    border-bottom: min(calc(1 / var(--vw-min) * 100vw),1px) solid var(--color-gold9B8);
    transform: rotate(45deg);
}
@media screen and (max-width:768px){
    .episodes__tabItem.is-current::after {
        width: calc(12 / var(--vw-min) * 100vw);
        height: calc(12 / var(--vw-min) * 100vw);
        bottom: calc(-6 / var(--vw-min) * 100vw);
        border-width: calc(2 / var(--vw-min) * 100vw);
    }
}
.episodes__tabLink {
    color: #fff;
    width: 100%;
    height: 100%;
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    padding: min(calc(8 / var(--vw-min) * 100vw),8px);
    background-color: rgba(255,255,255,.04);
    text-decoration: none;
    transition: .3s var(--cubic-bezier02);
}
@media screen and (max-width:768px){
    .episodes__tabLink {
        padding: calc(12 / var(--vw-min) * 100vw);
    }
}
.episodes__tabTxt {
    font-size: min(calc(18 / var(--vw-min) * 100vw),18px);
    color: #fff;
    line-height: 1;
    letter-spacing: .06em;
    text-align: center;
    display: flex;
    position: relative;
    z-index: 1;
    align-items: center;
    justify-content: center;
    padding: min(calc(8 / var(--vw-min) * 100vw),8px);
}
@media screen and (max-width:768px){
    .episodes__tabTxt {
        font-size: calc(28 / var(--vw-min) * 100vw);
        padding: calc(12 / var(--vw-min) * 100vw);
    }
    .episodes__tabLink .episodes__tabTxt {
        padding: 0;
    }
}
@media (hover: hover) and (pointer: fine){
    .episodes__tabLink:hover {
        background-color: rgba(155,132,93,.24);
        opacity: 1;
        filter: var(--hover-filter);
    }
}
/*-----------------------------------------------
 * DETAIL
-------------------------------------------------*/
.episodesDetail {
    width: min(calc(1040 / var(--vw-min) * 100vw),1040px);
    margin: min(calc(56 / var(--vw-min) * 100vw),56px) auto 0;
}
@media screen and (max-width:768px){
    .episodesDetail {
        width: calc(100% - calc(96 / var(--vw-min) * 100vw));
        margin-top: calc(72 / var(--vw-min) * 100vw);
    }
}
.episodesDetail__header {
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: min(calc(24 / var(--vw-min) * 100vw),24px);
}
@media screen and (max-width:768px){
    .episodesDetail__header {
        gap: calc(28 / var(--vw-min) * 100vw);
    }
}
.episodesDetail__ep {
    font-size: min(calc(36 / var(--vw-min) * 100vw),36px);
    color: var(--color-gold9B8);
    line-height: 1;
    letter-spacing: .08em;
    flex-shrink: 0;
}
@media screen and (max-width:768px){
    .episodesDetail__ep {
        font-size: calc(46 / var(--vw-min) * 100vw);
    }
}
.episodesDetail__tit {
    font-size: min(calc(22 / var(--vw-min) * 100vw),22px);
    color: #fff;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .08em;
}
@media screen and (max-width:768px){
    .episodesDetail__tit {
        font-size: calc(30 / var(--vw-min) * 100vw);
    }
}
.episodesDetailCont.subCont {
    color: #fff;
    width: 100%;
    margin: 0;
    padding: min(calc(32 / var(--vw-min) * 100vw),32px) 0 0;
}
@media screen and (max-width:768px){
    .episodesDetailCont.subCont {
        padding: calc(40 / var(--vw-min) * 100vw) 0 0;
    }
}
/*-----------------------------------------------
 * 場面カット（複数枚は Swiper）
-------------------------------------------------*/
.episodes__cutSwiper {
    width: 100%;
    min-width: 0;
}
.episodes__cutSwiper.is-single .episodes__swiperPagination {
    display: none;
}
.episodes__cutItem {
    padding: 0 min(calc(2 / var(--vw-min) * 100vw),2px);
}
@media screen and (max-width:768px){
    .episodes__cutItem {
        padding: 0 calc(3 / var(--vw-min) * 100vw);
    }
}
.episodes__cutFrame {
    width: 100%;
    display: block;
    position: relative;
    padding: min(calc(8 / var(--vw-min) * 100vw),8px);
    background-color: #08080b;
    border: min(calc(1 / var(--vw-min) * 100vw),1px) solid var(--color-gold9B8);
}
@media screen and (max-width:768px){
    .episodes__cutFrame {
        padding: calc(10 / var(--vw-min) * 100vw);
        border-width: calc(2 / var(--vw-min) * 100vw);
    }
}
.episodes__cutIn {
    width: 100%;
    overflow: hidden;
    display: block;
}
.episodes__cutFrame img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    display: block;
    object-fit: cover;
    pointer-events: none;
}
/**
 * 場面カット - swiper pager
 */
.swiper-pagination-bullets.swiper-pagination-horizontal.episodes__swiperPagination {
    width: 100%;
    display: flex;
    position: relative;
    top: auto;
    bottom: auto;
    left: auto;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    margin-top: min(calc(8 / var(--vw-min) * 100vw),8px);
    gap: min(calc(6 / var(--vw-min) * 100vw),6px);
    transform: none;
}
@media screen and (max-width:768px){
    .swiper-pagination-bullets.swiper-pagination-horizontal.episodes__swiperPagination {
        flex-wrap: wrap;
        margin-top: calc(10 / var(--vw-min) * 100vw);
        gap: calc(8 / var(--vw-min) * 100vw);
    }
}
.episodes__pagerItem.swiper-pagination-bullet {
    width: auto;
    height: auto;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    display: block;
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    margin: 0!important;
    background: none;
    border: min(calc(2 / var(--vw-min) * 100vw),2px) solid transparent;
    border-radius: 0;
    opacity: .45;
    transition: opacity .3s var(--cubic-bezier02), border-color .3s var(--cubic-bezier02);
}
@media screen and (max-width:768px){
    .episodes__pagerItem.swiper-pagination-bullet {
        width: calc((100% - calc(16 / var(--vw-min) * 100vw)) / 3);
        flex: 0 0 calc((100% - calc(16 / var(--vw-min) * 100vw)) / 3);
        border-width: calc(2 / var(--vw-min) * 100vw);
    }
}
.episodes__pagerItem img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    pointer-events: none;
}
.episodes__pagerItem.swiper-pagination-bullet-active {
    border-color: var(--color-gold9B8);
    opacity: 1;
}
@media (hover: hover) and (pointer: fine){
    .episodes__pagerItem:hover {
        border-color: var(--color-gold9B8);
        opacity: 1;
    }
}
/*-----------------------------------------------
 * あらすじ
-------------------------------------------------*/
.episodesDetailTxtWrap {
    font-size: min(calc(16 / var(--vw-min) * 100vw),16px);
    color: #fff;
    line-height: 2;
    margin-top: min(calc(28 / var(--vw-min) * 100vw),28px);
}
@media screen and (max-width:768px){
    .episodesDetailTxtWrap {
        font-size: calc(24 / var(--vw-min) * 100vw);
        margin-top: calc(36 / var(--vw-min) * 100vw);
    }
}
.episodesDetailTxtWrap p:not(:last-child) {
    margin-bottom: min(calc(16 / var(--vw-min) * 100vw),16px);
}
@media screen and (max-width:768px){
    .episodesDetailTxtWrap p:not(:last-child) {
        margin-bottom: calc(24 / var(--vw-min) * 100vw);
    }
}
.episodesDetailTxtWrap p.center {
    text-align: center;
}
.episodesDetailTxtWrap img {
    max-width: 100%;
    height: auto!important;
    pointer-events: none;
}
.episodes__sep {
    width: 100%;
    height: min(calc(1 / var(--vw-min) * 100vw),1px);
    position: relative;
    margin: min(calc(32 / var(--vw-min) * 100vw),32px) 0 0;
    background: linear-gradient(to right,transparent,var(--color-gold9B8) 15%,var(--color-gold9B8) 85%,transparent);
}
@media screen and (max-width:768px){
    .episodes__sep {
        height: calc(2 / var(--vw-min) * 100vw);
        margin-top: calc(40 / var(--vw-min) * 100vw);
    }
}
.episodes__sep::before,
.episodes__sep::after {
    content: "";
    width: min(calc(7 / var(--vw-min) * 100vw),7px);
    height: min(calc(7 / var(--vw-min) * 100vw),7px);
    position: absolute;
    top: 50%;
    background-color: var(--color-gold9B8);
    transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width:768px){
    .episodes__sep::before,
    .episodes__sep::after {
        width: calc(10 / var(--vw-min) * 100vw);
        height: calc(10 / var(--vw-min) * 100vw);
    }
}
.episodes__sep::before {
    left: 0;
}
.episodes__sep::after {
    right: 0;
}
/*-----------------------------------------------
 * BLOCK（各話スタッフ／キャスト・予告映像）
-------------------------------------------------*/
.episodes__block {
    margin-top: min(calc(32 / var(--vw-min) * 100vw),32px);
}
@media screen and (max-width:768px){
    .episodes__block {
        margin-top: calc(40 / var(--vw-min) * 100vw);
    }
}
.episodes__blockTit {
    font-size: min(calc(17 / var(--vw-min) * 100vw),17px);
    color: var(--color-gold9B8);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .08em;
    display: flex;
    align-items: center;
    gap: min(calc(10 / var(--vw-min) * 100vw),10px);
}
@media screen and (max-width:768px){
    .episodes__blockTit {
        font-size: calc(26 / var(--vw-min) * 100vw);
        gap: calc(14 / var(--vw-min) * 100vw);
    }
}
.episodes__blockTit::before {
    content: "";
    width: min(calc(7 / var(--vw-min) * 100vw),7px);
    height: min(calc(7 / var(--vw-min) * 100vw),7px);
    flex-shrink: 0;
    background-color: var(--color-gold9B8);
    transform: rotate(45deg);
}
@media screen and (max-width:768px){
    .episodes__blockTit::before {
        width: calc(11 / var(--vw-min) * 100vw);
        height: calc(11 / var(--vw-min) * 100vw);
    }
}
.episodes__block > :not(.episodes__blockTit) {
    margin-top: min(calc(16 / var(--vw-min) * 100vw),16px);
}
@media screen and (max-width:768px){
    .episodes__block > :not(.episodes__blockTit) {
        margin-top: calc(20 / var(--vw-min) * 100vw);
    }
}
.episodes__staffGrid {
    display: grid;
    grid-template-columns: 1fr;
    gap: min(calc(12 / var(--vw-min) * 100vw),12px);
    align-items: start;
}
@media screen and (max-width:768px){
    .episodes__staffGrid {
        grid-template-columns: 1fr;
        gap: calc(16 / var(--vw-min) * 100vw);
    }
}
.episodes__staffLists {
    display: flex;
    flex-direction: column;
    gap: min(calc(4 / var(--vw-min) * 100vw),4px);
}
@media screen and (max-width:768px){
    .episodes__staffLists {
        gap: calc(6 / var(--vw-min) * 100vw);
    }
}
.episodes__staffItem {
    font-size: min(calc(16 / var(--vw-min) * 100vw),16px);
    line-height: 1.8;
    display: flex;
    align-items: baseline;
    gap: min(calc(16 / var(--vw-min) * 100vw),16px);
}
@media screen and (max-width:768px){
    .episodes__staffItem {
        font-size: calc(24 / var(--vw-min) * 100vw);
        gap: calc(20 / var(--vw-min) * 100vw);
    }
}
.episodes__staffItem-dt {
    color: var(--color-gold9B8);
    text-align: right;
    min-width: min(calc(112 / var(--vw-min) * 100vw),112px);
}
@media screen and (max-width:768px){
    .episodes__staffItem-dt {
        min-width: calc(160 / var(--vw-min) * 100vw);
    }
}
.episodes__staffItem-dd {
    color: #fff;
}
/*-----------------------------------------------
 * 予告映像
-------------------------------------------------*/
.episodes__movie {
    width: min(calc(560 / var(--vw-min) * 100vw),560px);
    margin: 0;
}
@media screen and (max-width:768px){
    .episodes__movie {
        width: 100%;
    }
}
.episodes__movie .movieArea {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    position: relative;
    margin: 0;
}
.episodes__movie .movieArea::before {
    content: "";
    width: calc(100% - min(calc(8 / var(--vw-min) * 100vw),8px));
    height: calc(100% - min(calc(8 / var(--vw-min) * 100vw),8px));
    display: block;
    position: absolute;
    inset: 0;
    z-index: 4;
    margin: auto;
    border: min(calc(1 / var(--vw-min) * 100vw),1px) solid var(--color-gold9B8);
    pointer-events: none;
}
@media screen and (max-width:768px){
    .episodes__movie .movieArea::before {
        width: calc(100% - calc(18 / var(--vw-min) * 100vw));
        height: calc(100% - calc(18 / var(--vw-min) * 100vw));
        border-width: calc(2 / var(--vw-min) * 100vw);
    }
}
.episodes__movie .movieBtn {
    overflow: hidden;
}
.episodes__movie .linkA__frameWrap {
    z-index: 4;
}
.episodes__movie .js-youtubeThumb {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    inset: 0;
}
.episodes__movie .js-youtubeThumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}
@media (hover: hover) and (pointer: fine){
    .episodes__movie .js-youtubeThumb img {
        transition: .4s var(--cubic-bezier02);
    }
    .episodes__movie .movieArea:hover .js-youtubeThumb img {
        transform: scale(1.05);
    }
}
.episodes .backBtn {
    width: 100%;
    display: flex;
    justify-content: center;
}
