*{
    padding:0px;
    margin:0px;
}
body{
    font-family: "Noto Sans JP";
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    font-size:15px;
    letter-spacing:0;
    color:#000;
    background: #FFFFFF;
}
a{
    text-emphasis:none;
    color:#000;
}
a:hover{opacity:0.6;transition: .4s;}
img{
    display:inline-block;
    vertical-align:bottom;
    width:100%;
}
.pc-br{display:block;}
.sp-br{display:none;}

header{background: #4D7A57;}
h1{
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 1.8px;
    text-align: center;
    padding:10px 0px;
    color: #FFF;
}
.main{
    width:100%;
    max-width: 800px;
    margin:auto;
}
.contents{
    display: flex;
    padding: 40px 0px;
    gap: 30px;
    flex-direction: column;
    align-items: center;
    align-self: stretch;
    max-width: 800px;
    margin:auto;
}

h2{
    color:#5B7D89;
    text-align: center;
    font-size:26px;
    font-weight:500;
    line-height:42px;
    letter-spacing:0;
}
p{
    color:#000;
    font-size: 15px;
    font-weight: 400;
    line-height:24px;
    letter-spacing:1.2px;
}
.cast{
    display: flex;
    padding: 0px 40px 10px 40px;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    align-self: stretch;
}
.catch{
    display: flex;
    align-items: center;
    align-self: stretch;
    margin:auto;
}
.catch .img{width: 170px;}
.catch .text h2{
    text-align:left;
    color: #C30D23;
    font-size: 27px;
    font-weight: 600;
    line-height: normal;
}
.catch .text h2 > span{
    padding:0px 0px 0px 10px;
}
.detail{
    display: flex;
    padding: 40px;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    background: #D00320;
}
.detail h2{
    color: #FFF;
    font-size: 28px;
    font-weight: 600;
    line-height: normal;
}
.detail p{
    color: #FFF;
    font-size: 15px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 1.2px;
}
.story-box{
    display: flex;
    padding: 40px;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    align-self: stretch;
    background-image: url(./images/bg_sky.jpg);
    background-repeat: no-repeat;
    background-size:cover;
    background-position:center center;
}
.story-box h2{
    color: #000;
    text-align: center;
    font-size: 28px;
    font-weight: 600;
    line-height: normal;
    width:100%;
}
.staff-box{
    display: flex;
    padding: 30px 40px 20px 40px;
    flex-direction: column;
    align-items: center;
}
.youtube{
    width:100%;
    height:auto;
    aspect-ratio: 16/9;
}
.youtube iframe{
    width:100%;
    aspect-ratio:16/9;
}
.staff-box p{
    color: #000;
    text-align: center;
    font-size: 14px;
    font-weight: 400;
    line-height: 21px;
    padding:10px 0px 40px 0px;
}
footer{
    background: #000;
    display:flex;
    padding: 40px 0px;
    flex-direction: column;
    align-items: center;
    align-self: stretch;
    gap:20px;
}
footer h2{
    font-size: 16px;
    font-weight: 500;
    color:#FFF;
    line-height:normal;
}
footer a{
    display: block;
    width:380px;
    margin:auto;
    padding:0px;
}
footer p{
    color:#FFF;
    text-align:center;
    font-size:12px;
    font-weight:400;
    line-height:normal;
}

@media screen and (max-width: 768px){
    .pc-br{display:none;}
    .sp-br{display:block;}
    body{
        font-family: "Noto Sans JP";
    }
    header{padding:10px;}
    h1{
        font-size: 14px;
        font-weight: 500;
        line-height: 20px;
        padding:0;
    }
    .contents{
        padding:30px 0px;
        gap:20px;
    }
    h2{
        font-size:16px;
        font-weight: 500;
        line-height:26px;
    }
    p{
        font-size:14px;
        font-weight: 400;
        line-height:24px;
    }
    .cast{
        padding:0px 20px 10px 20px;
        gap:20px;
    }
    .catch{
        flex-direction: column;
    }
    .catch .text{
        padding:20px 0px 0px 0px;
    }
    .catch .text h2{
        font-size: 22px;
        font-weight: 600;
        line-height: 32px;
    }
    .catch .text h2 > span{padding:0;}
    .detail{
        padding: 30px 20px;
        gap: 20px;
    }
    .detail h2{
        color: #FFF;
        font-size: 22px;
        font-weight: 600;
        line-height: 32px;
        text-align:left;
        width:100%;
    }
    .detail p{
        font-size: 14px;
        font-weight: 400;
        line-height: 24px;
    }
    .story-box{
        padding: 30px 20px;
        gap: 20px;
    }
    .story-box h2{
        font-size: 22px;
        font-weight: 600;
        line-height: normal;
    }
    .staff-box{padding:20px;}
    .staff-box p{
        font-size: 11px;
        font-weight: 400;
        line-height: 21px;
        padding:10px 0px 30px 0px;
    }
    .youtube{
        position: relative;
    }
    .youtube iframe{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
    }
    footer{
        padding:20px;
        gap:20px
    }
    footer h2{font-size:13px}
    footer > a{
        width:260px;
        padding:0px;
    }
    footer > p{
        font-size: 10px;
        font-weight:400;
    }
}