.container .description-box{gap:40px;}
.container .description-box .sub-box{
    display: flex;
    align-items: flex-start;
    gap: 40px;
}
.container .description-box .sub-box .img{
    width: 270px;
    aspect-ratio: 27/29;
    flex-shrink: 0;
}
@media screen and (max-width: 768px){
    .container .description-box{gap:20px;}
    .container .description-box .sub-box{
        flex-direction: column;
        gap: 30px;
    }
    .container .description-box .sub-box .img{width:100%;}
}

.feature-box{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 60px;
}
.feature-box > div{
    width: 270px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.feature-box h4{
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 14px;
    font-weight: 500;
    line-height: 24px;
    letter-spacing: 1.4px;
}
@media screen and (max-width: 768px){
    .feature-box{
        flex-direction: column;
        gap: 10px;
        align-self: stretch;
        padding:0px 25px;
    }
    .feature-box > div{width:100%;}
}

.video-box{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.video-box .video{
    width: 800px;
    overflow: hidden;
}
.video-box .video video{
    width: 100%;
    height: auto;
    display: block;
    pointer-events: none;
}
.video-box .button-link{
    width: 360px;
    aspect-ratio: 36/5;
    margin: 60px 0px 0px 0px;
}
@media screen and (max-width: 768px){
    .video-box{margin:40px 0px 0px 0px;}
    .video-box .video{width:100%;}
    .video-box .button-link{
        width: calc(100% - 50px);
        aspect-ratio: 27/5;
        margin: 40px 0px 20px 0px;
    }
}

.cuisine-box{
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 60px;
    align-self: stretch;
}
.cuisine-box .description-box{
    display: flex;
    width: 400px;
    flex-direction: column;
    align-items: flex-start;
    gap: 40px;
}
.cuisine-box .img-box{
    width: 580px;
    aspect-ratio: 29/35;
}
.cuisine-box p{
    font-family: "Noto Sans JP";
    font-size: 14px;
    font-weight: 500;
    line-height: 30px;
}
@media screen and (max-width: 768px){
    .cuisine-box{
        flex-direction: column;
        gap:30px;
        padding:0px 25px 10px 25px;
    }
    .cuisine-box .description-box{
        width: 100%;
        gap:30px;
    }
    .cuisine-box .img-box{
        width: 100%;
        aspect-ratio: unset;
    }
}

.link-box{
    display: flex;
    align-items: center;
    gap: 40px;
    margin:0px 0px 20px 0px;
}
.link-box .menu > .button-link,
.link-box .bookatable > .button-link{
    width: 360px;
    height: 70px;
}
@media screen and (max-width: 768px){
    .link-box{margin:0px 0px 30px 0px}
}

.wedding-box{
    display: flex;
    align-items: center;
    align-self: stretch;
    position: relative;
    width: 100%;
    overflow: hidden;
    margin:20px 0px 0px 0px;
}
.wedding-box .img{
    flex: 1 1 auto;
    height: 460px;
    overflow: hidden;
    display: flex;
    justify-content: center;
}
.wedding-box .img img{
    width: 1200px;
    height: 460px;
    max-width: none;
    flex-shrink: 0;
    object-fit: cover;
    object-position: center center;
}
.wedding-box .description-box{
    flex: 0 0 570px;
    margin-right: max(20px, calc((100% - 1040px) / 2));
    margin-left: -110px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    z-index: 1;
}
.wedding-box .description-box h3{
    width: 540px;
    margin-bottom: 20px;
    position: relative;
    z-index: 2;
    align-self: flex-end;
}
.wedding-box .description-box .detail{
    display: flex;
    width: 400px;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-left: 170px;
}
@media screen and (max-width: 768px){
    .wedding-box{
        flex-direction: column;
        gap: 0px;
        margin: 0;
    }
    .wedding-box .img{
        flex: 1 1 auto;
        height: auto;
        overflow: hidden;
        display: flex;
        justify-content: center;
    }
    .wedding-box .img img{
        width: 100%;
        height: auto;
    }
    .wedding-box .description-box{
        flex:1;
        margin:-4px 0px 0px 0px;
        padding:0px 25px;
        gap:10px;
    }
    .wedding-box .description-box h3{
        width: 100%;
        margin:0;
        align-self: auto;
    }
    .wedding-box .description-box .detail{
        width:100%;
        margin: 0;
        gap:10px;
    }

}

.party-box{
    display: flex;
    align-items: center;
    align-self: stretch;
    position: relative;
    width: 100%;
    overflow: hidden;
}
.party-box .description-box{
    flex: 0 0 570px;
    margin-left: max(20px, calc((100% - 1040px) / 2));
    margin-right: -110px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    z-index: 1;
}
.party-box .description-box h3{
    width: 500px;
    margin-bottom: 25px;
    position: relative;
    z-index: 2;
}
.party-box .description-box .detail{
    display: flex;
    width: 400px; /* 570px - (110px + 60px) = 400px (画像左端から正確に60pxの隙間) */
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}
.party-box .img{
    flex: 1 1 auto;
    height: 460px;
    overflow: hidden;
    display: flex;
    justify-content: center;
}
.party-box .img img{
    width: 1200px;
    height: 460px;
    max-width: none;
    flex-shrink: 0;
    object-fit: cover;
    object-position: center center;
}
@media screen and (max-width: 768px){
    .party-box{
        margin:40px 0px 0px 0px;
        flex-direction: column;
    }
    .party-box .description-box{
        order:2;
        flex:1;
        margin:-4px 0px 0px 0px;
        padding:0px 25px;
        gap:10px;
    }
    .party-box .description-box h3{
        width: calc(100% - 26px);
        margin:0 auto;
    }
    .party-box .description-box .detail{
        width:100%;
        margin: 0;
        gap:10px;
    }
    .party-box .img{
        order:1;
        flex: 1 1 auto;
        height: auto;
        overflow: hidden;
        display: flex;
        justify-content: center;
    }
    .party-box .img img{
        width: 100%;
        height: auto;
    }

}

.wedding-box .description-box h4,
.party-box .description-box h4{
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: 1.6px;
}
.wedding-box .description-box p,
.party-box .description-box p{
    font-family: "Noto Sans JP";
    font-size: 14px;
    font-weight: 500;
    line-height: 28px;
}
.wedding-box .link > .button-link{
    width: 220px;
    height: 40px;
    margin-top: 10px;
}
.coming-soon{
    width: 220px;
    height: 40px;
    margin-top: 10px;
}
@media screen and (max-width: 768px){
    .wedding-box .description-box h4,
    .party-box .description-box h4{
        line-height: 26px;
    }
    .wedding-box .description-box p,
    .party-box .description-box p{
        line-height: 30px;
    }
    .coming-soon{
        width:100%;
        height:auto;
        aspect-ratio: 27/5;
        margin-top:20px;
    }
    .link-box{
        flex-direction: column;
        gap: 20px;
        margin: 0px 0px 40px 0px;
        padding: 0px 25px;
    }
    .link-box .menu,
    .link-box .bookatable{
        width: 100%;
    }
    .link-box .menu > .button-link,
    .link-box .bookatable > .button-link{
        width: 100%;
        height: auto;
        aspect-ratio: 27/6;
    }
    .wedding-box .link{
        width: 100%;
    }
    .wedding-box .link > .button-link{
        width: 100%;
        height: auto;
        aspect-ratio: 27/5;
        margin-top: 20px;
    }
}

.archive-box{margin:0px auto}
@media screen and (max-width: 768px){
    .news-box{
        width: calc(100% - 50px);
        margin: auto;
        padding: 0px 0px 20px 0px;
    }
}