/* common */

@keyframes fadeInAnime {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.font-weight-500 {
    font-weight: 500;
}

.menu-page-h3 {
    text-align: left;
    box-sizing: border-box;
    padding-bottom: 10px;
    border-bottom: #59423C 2px solid;
    margin-bottom: 40px;
}

@media(max-width:600px) {
    .menu-page-h3 {
        margin-bottom: 30px;
    }
}


/* メニュータイトル共通 */

.menu-section-common {
    margin: 0 auto 48px;
    width: 100%;
    max-width: 1080px;
}

.menu-section-common__title {
    margin-bottom: 40px;
}

.menu-section-common__title h2 {
    margin-bottom: 10px;
}

.menu-section__time {
    font-size: 2.4rem;
}

#menu-dinner,
#menu-takeout,
#menu-wine {
    box-sizing: border-box;
    padding-top: 112px;
}

@media(max-width:1080px) {
    .menu-section-common {
        margin: 0 auto 92px;
        width: 70vw;
    }
    #menu-dinner,
    #menu-takeout,
    #menu-wine {
        padding-top: 68px;
    }
}

@media(max-width:600px) {
    .menu-section-common {
        margin: 0 auto 12px;
        width: 100%;
        box-sizing: border-box;
        padding: 68px 24px 0;
    }
    .menu-section-common__title {
        margin-bottom: 20px;
    }
    .menu-section__time {
        font-size: 2.0rem;
    }
}


/* コースメニューで使う */

.menu-section__course-title {
    box-sizing: border-box;
    padding-bottom: 20px;
    border-bottom: #59423C 1px dotted;
    margin-bottom: 20px;
}

.course-title-h5 {
    font-size: 2.0rem;
    padding-bottom: 10px;
}

.reserve {
    font-size: 1.8rem;
    font-weight: 500;
}


/* ----------------------------------- */


/* メインビジュアル */

.mainvisual-section {
    margin-bottom: 60px;
}

.mainvisual-section__bg {
    width: 100%;
    height: 320px;
    background-image: url(../images/6menu/menu-mainvisual.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.mainvisual-section__filter {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, .3);
    position: relative;
}

.mainvisual-section__filter h1 {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    line-height: 3.0rem;
    color: #fff;
    font-size: 4.5rem;
    font-weight: 400;
}


/* メインビジュアル　スマホ版 */

@media(max-width:600px) {
    .mainvisual-section {
        margin-bottom: 40px;
    }
    .mainvisual-section__filter h1 {
        line-height: 2.4rem;
        font-size: 3.2rem;
    }
}


/* カテゴリー */

.category {
    list-style: none;
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    column-gap: 20px;
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
    font-size: 2.0rem;
    font-weight: 500;
}

.category li {
    max-width: 240px;
    padding: 0 20px;
    box-sizing: border-box;
    border: #59423C 2px solid;
    border-radius: 100px;
    color: #59423C;
    transition: 0.5s;
}

.category li:hover {
    background-color: rgba(89, 66, 60, 1);
    color: #fff;
}

@media(max-width: 1080px) {
    .category {
        margin: 0 auto 12px;
        width: 70vw;
    }
}

@media(max-width: 791px) {
    .category {
        display: grid;
        grid-template-columns: 1fr 1fr;
        row-gap: 20px;
        max-width: 500px;
    }
}

@media(max-width:600px) {
    .category {
        font-size: 1.6rem;
        width: 100%;
        max-width: 400px;
        column-gap: 15px;
        margin: 0 auto;
        box-sizing: border-box;
        padding: 0 24px;
    }
}

@media (max-width:343px) {
    .category {
        grid-template-columns: 1fr;
        max-width: 240px;
    }
}


/* ---------- ランチメニュー ---------- */

#menu-lunch {
    box-sizing: border-box;
    padding-top: 112px;
}


/* 通常メニュー */

.lunch-menu-section__normally {
    margin: 0 auto 100px;
    width: 100%;
    max-width: 1080px;
}

.lunch-menu-section__normally-bg {
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
    padding: 80px;
    background-image: url(../images/6menu/menu-section__bg.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: 0 0;
}


/* ランチセット */

.head-border {
    display: flex;
    align-items: center;
    margin-bottom: 40px;
}

.head-border:before,
.head-border:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #59423C;
}

.head-border:before {
    margin-right: 40px;
}

.head-border:after {
    margin-left: 40px;
}


/* ランチセット flex */

.lunch-menu-section__normally-flex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
    align-items: center;
    margin-bottom: 80px;
}


/* ランチメニュー */

.lunch-menu-section__normally-set {
    margin: 0 auto;
    width: 100%;
    list-style: none;
    display: flex;
    flex-direction: column;
    row-gap: 30px;
}

.lunch-menu-section__normally-set li {
    text-align: left;
}

.lunch-menu-section__normally-set-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.lunch-menu-section__normally-set-flex-min400px {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.lunch-menu-section__normally-discription {
    font-size: 1.4rem;
    margin-top: 10px;
}


/* 本日のメイン */

.today-lunch-menu {
    box-sizing: border-box;
    padding: 40px;
    border: #59423C 1px solid;
    border-radius: 10px;
}

.today-lunch-menu__link:hover {
    opacity: .5;
}

.head-border-short {
    position: relative;
    display: inline-block;
    font-size: 20px;
    padding: 0 50px;
    margin-bottom: 20px;
}

.head-border-short::before,
.head-border-short::after {
    content: "";
    position: absolute;
    top: 50%;
    display: inline-block;
    width: 30px;
    height: 1px;
    background-color: #59423C;
}

.head-border-short::before {
    left: 0;
}

.head-border-short::after {
    right: 0;
}

.today-lunch-menu img {
    margin: 0 auto;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
    margin-bottom: 20px;
}

.today-lunch-menu__p {
    text-align: left;
    margin-bottom: 40px;
}

.today-lunch-menu__p time {
    font-size: 1.4rem;
}


/* 前菜セットとドリンク */

.lunch-menu-section__normally-other-flex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
    align-items: flex-start;
}


/* 前菜セット*/

.lunch-menu-section__normally-appetizer img,
.lunch-menu-section__normally-dessert img {
    box-sizing: border-box;
    margin: 0 auto;
    width: 100%;
    height: auto;
    padding: 0 24px 40px;
}

.lunch-menu-section__normally-contents {
    list-style: none;
    text-align: left;
}

.lunch-menu-section__normally-contents li {
    margin-top: 30px;
}


/* コースメニュー・ドリンク　flex */

.lunch-menu-section__course-drink-flex {
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
}


/* コースメニュー */

.lunch-menu-section__course {
    width: 100%;
    margin: 0 auto;
}

.lunch-menu-section__course-bg {
    width: 100%;
    box-sizing: border-box;
    padding: 40px;
    background-image: url(../images/6menu/course-menu-bg.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: 0 0;
}

.lunch-menu-section__course-menu {
    list-style: none;
    display: flex;
    flex-direction: column;
    row-gap: 10px;
    margin-bottom: 30px;
}

.lunch-menu-section__course-discription {
    text-align: justify;
    margin-bottom: 30px;
}


/* ドリンク */

.lunch-menu-section__drink {
    width: 100%;
    margin: 0 auto;
}

.lunch-menu-section__drink-contents img {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0 auto;
    margin-bottom: 20px;
}

.lunch-menu-section__drink-contents h4 {
    margin-bottom: 20px;
}

.lunch-menu-section__drink-contents p {
    text-align: justify;
}


/* ボタン特別措置 */

.nomal_button_lunch {
    margin: 0 auto;
    display: block;
    padding: 11px 0px;
    max-width: 240px;
    width: 100%;
    color: #2F7B38;
    font-size: 1.8rem;
    background-color: rgba(0, 0, 0, 0);
    border: #2F7B38 solid 2px;
    font-feature-settings: "palt";
}

@media (max-width:1080px) {
    #menu-lunch {
        padding-top: 68px;
    }
    /* 通常メニュー */
    .lunch-menu-section__normally-bg {
        padding: 40px;
        background-image: url(../images/6menu/lunch-set__tab.png);
    }
    /* ランチセット */
    /* ランチセット flex */
    .lunch-menu-section__normally-flex {
        margin: 0 auto 80px;
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 80px;
    }
    /* ランチメニュー */
    /* 前菜セットとドリンク */
    .lunch-menu-section__normally-appetizer img,
    .lunch-menu-section__normally-dessert img {
        padding: 0 24px 20px;
    }
    .lunch-menu-section__normally-other-flex {
        grid-template-columns: 1fr;
        row-gap: 80px;
    }
    /* 前菜セット*/
    .lunch-menu-section__normally-contents li {
        margin-top: 30px;
    }
    /* コースメニュー・ドリンク　flex */
    .lunch-menu-section__course-drink-flex {
        grid-template-columns: 1fr;
        row-gap: 100px;
    }
}

@media (max-width:600px) {
    /* 通常メニュー */
    .head-border {
        margin-bottom: 30px;
    }
    .lunch-menu-section__normally {
        margin: 0 auto 60px;
    }
    .lunch-menu-section__normally-bg {
        padding: 30px 24px;
        background-image: url(../images/6menu/lunch-set-menu__sp.png);
    }
    .today-lunch-menu {
        padding: 30px 24px;
    }
    .lunch-menu-section__normally-flex {
        row-gap: 40px;
        margin: 0 auto 60px;
    }
    .lunch-menu-section__normally-other-flex {
        row-gap: 60px;
    }
    /* コース */
    .lunch-menu-section__course-bg {
        padding: 30px 24px;
    }
    .lunch-menu-section__course-drink-flex {
        grid-template-columns: 1fr;
        row-gap: 60px;
    }
}

@media (max-width:400px) {
    .lunch-menu-section__normally-set-flex-min400px {
        display: block;
    }
    .special {
        text-align: left;
    }
    .price {
        text-align: right;
    }
    .menu-blank:after {
        content: "\A";
        white-space: pre;
    }
}


/* -------- ディナーメニュー -------- */


/* 単品メニュー */

.dinner-section__single {
    margin: 0 auto 100px;
    width: 100%;
}


/* 単品メニューflex */

.dinner-section__single-flex {
    width: 100%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
    align-items: center;
}


/* 単品メニュー内容 */

.dinner-section__single-flex img {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0 auto;
}

.dinner-section__single-discription {
    width: 100%;
    margin: 0 auto;
}

.dinner-section__single-discription h4 {
    margin-bottom: 20px;
    text-align: left;
}

.dinner-section__single-discription p {
    margin-bottom: 40px;
    text-align: justify;
}


/* ディナーコース */

.dinner-secrion__course {
    margin: 0 auto 100px;
}


/* ディナーコース flex */

.dinner-section__course-flex {
    width: 100%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 40px;
    align-items: flex-start;
    list-style: none;
}


/* 背景と内容 共通 */

.dinner-section__bg {
    width: 100%;
    height: 480px;
    /* pc版高さ指定あり */
    box-sizing: border-box;
    padding: 30px 24px;
    background-image: url(../images/6menu/course-menu-bg.png);
    background-position: 0 0;
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.dinner-section__course-menu-margin {
    margin-bottom: 30px;
}


/* ジャルダンコース */

.dinner-section__course-menu-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    row-gap: 10px;
}


/* 残り2つ */

.dinner-section__course-menu-p {
    text-align: justify;
}


/* 記念日プレート */


/* flex */

.dinner-section__anniversary-flex {
    width: 100%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    column-gap: 80px;
}


/* 内容 */

.dinner-section__anniversary-flex img {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0 auto;
}

.dinner-section__anniversary-discription {
    width: 100%;
    margin: 0 auto;
}

.dinner-section__anniversary-discription h4 {
    margin-bottom: 20px;
    text-align: left;
}

.dinner-section__anniversary-discription p {
    text-align: justify;
}

@media(max-width:1080px) {
    /* common */
    /* 単品メニュー */
    /* 単品メニューflex */
    .dinner-section__single-flex {
        grid-template-columns: 1fr;
        row-gap: 30px;
    }
    .dinner-section__single-discription h4 {
        text-align: center;
    }
    /* ディナーコース */
    /* ディナーコース flex */
    .dinner-section__course-flex {
        grid-template-columns: 1fr;
        align-items: center;
        row-gap: 30px;
    }
    /* 背景と内容 共通 */
    .dinner-section__bg {
        height: initial;
        /* pc版高さ指定あり */
        padding: 40px;
    }
    /* 記念日プレート */
    /* flex */
    .dinner-section__anniversary-flex {
        display: flex;
        flex-direction: column-reverse;
        row-gap: 30px;
    }
    .dinner-section__anniversary-discription h4 {
        text-align: center;
    }
}

@media(max-width:600px) {
    .dinner-section__single {
        margin: 0 auto 60px;
    }
    .dinner-section__single-discription p {
        margin-bottom: 20px;
    }
    .dinner-secrion__course {
        margin: 0 auto 60px;
    }
    .dinner-section__bg {
        padding: 30px 24px;
    }
}


/* -------- テイクアウト -------- */

.takeout-section__menu-flex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
    align-items: center;
    margin-bottom: 60px;
}

.takeout-section__menu-flex img {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0 auto;
}

.takeout-section__menu-attention {
    max-width: 920px;
    width: 100%;
    margin: 0 auto;
    border: #59423C 2px solid;
    border-radius: 10px;
    box-sizing: border-box;
    padding: 40px 80px;
}

.takeout-section__menu-attention h4 {
    margin-bottom: 30px;
}

.takeout-section__menu-attention div {
    display: flex;
    flex-direction: column;
    row-gap: 20px;
    text-align: justify;
}

@media(max-width:1080px) {
    .takeout-section__menu-flex {
        grid-template-columns: 1fr;
        margin-bottom: 60px;
        row-gap: 30px;
    }
    .takeout-section__menu-attention {
        padding: 40px;
    }
}

@media(max-width:600px) {
    .takeout-section__menu-flex {
        margin-bottom: 40px;
    }
    .takeout-section__menu-attention {
        padding: 30px 24px;
    }
}


/* ------------ワイン------------*/

#menu-wine {
    margin-bottom: 160px;
}


/* 当店のワインについて */

.wine-section__flex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
    align-items: center;
    max-width: 100%;
    margin: 0 auto 100px;
}

.wine-section__flex img {
    width: 100%;
    margin: 0 auto;
    aspect-ratio: 4 / 3;
}

.wine-section__discription {
    width: 100%;
    margin: 0 auto;
}

.wine-section__discription h4 {
    margin-bottom: 20px;
    text-align: left;
}

.wine-section__discription p {
    text-align: justify;
}

@media(max-width:1080px) {
    #menu-wine {
        margin-bottom: 160px;
    }
    .wine-section__flex {
        display: flex;
        flex-direction: column-reverse;
        row-gap: 30px;
    }
    .wine-section__discription h4 {
        margin-bottom: 20px;
        text-align: center;
    }
}

@media(max-width:600px) {
    #menu-wine {
        margin-bottom: 100px;
    }
    .wine-section__flex {
        margin: 0 auto 60px;
    }
}


/* ハウスワイン */


/* flex */

.wine-section__house-wine-flex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: flex-start;
    column-gap: 80px;
}


/* ワイン 共通 */

.house-wine__wrapper img {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0 auto 20px;
}

.house-wine__contents {
    text-align: left;
    list-style: none;
    display: flex;
    flex-direction: column;
    row-gap: 30px;
}

.house-wine__contents__about {
    margin-bottom: 10px;
}

.house-wine__contents__about-flex {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
}

@media(max-width:1080px) {
    .wine-section__house-wine-flex {
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 80px;
    }
}

@media(max-width:600px) {
    .wine-section__house-wine-flex {
        row-gap: 40px;
    }
}

@media(max-width:540px) {
    .house-wine__contents__about-flex {
        display: block;
        text-align: left;
        margin-bottom: 10px;
    }
}


/* モーダルウィンドウ */

#dinner-menu-ex {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 999999;
}

.dinner-animatedModal-bg {
    height: 100%;
    background-color: rgba(0, 0, 0, .3);
}

.dinner-animatedModal-wrapper {
    box-sizing: border-box;
    width: 100%;
    max-width: 920px;
    height: auto;
    max-height: 70%;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-image: url(../images/modaal/modaal_bg_pc.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    padding: 80px 80px;
    overflow-x: hidden;
}

.dinner-animatedModal-wrapper h3 {
    box-sizing: border-box;
    padding-bottom: 20px;
    border-bottom: #59423C 1px dotted;
    margin-bottom: 30px;
}

.dinner-animatedModal-wrapper p {
    margin-bottom: 30px;
}

.dinner-animatedModal-wrapper img {
    width: 100%;
    max-width: 500px;
    height: auto;
}

@media(max-width:1080px) {
    .dinner-animatedModal-wrapper {
        width: 70vw;
        max-width: 920px;
        height: auto;
        max-height: 70%;
        padding: 40px;
    }
}

@media(max-width:759px) {
    .dinner-animatedModal-wrapper {
        background-image: url(../images/modaal/modaal_bg_tab.png);
    }
}

@media(max-width:600px) {
    .dinner-animatedModal-wrapper {
        box-sizing: border-box;
        width: 90%;
        padding: 30px 24px;
    }
}

@media(max-width:423px) {
    .dinner-animatedModal-wrapper {
        background-image: url(../images/modaal/modaal_bg_sp.png);
    }
}


/* ---------アニメーション--------- */


/* 下から出現 */

.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* ズームイン */

.menu-zoomIn {
    animation-name: zoomInAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

@keyframes zoomInAnime {
    from {
        transform: scale(0.8);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

.fadeUpTrigger,
.zoomInTrigger {
    opacity: 0;
}


/* テキストが流れるように出現 */

.slide-in {
    overflow: hidden;
    display: inline-block;
}

.slide-in_inner {
    display: inline-block;
}

.leftAnime {
    opacity: 0;
}

.slideAnimeLeftRight {
    animation-name: slideTextX100;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes slideTextX100 {
    from {
        transform: translateX(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.slideAnimeRightLeft {
    animation-name: slideTextX-100;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes slideTextX-100 {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}


/* 一時置き 

.attention2024 {
    margin: 3em auto 0;
    max-width: 920px;
    width: 100%;
}

.attention2024-wap {
    border: #59423C 2px solid;
    border-radius: 10px;
    box-sizing: border-box;
    padding: 40px 80px;
}

.attention2024-wap h4 {
    margin-bottom: 1em;
}

.attention2024-span {
    margin-bottom: 0.7em;
}

.attention2024-p {
    text-align: left;
}

.red-bold {
    color: #880000;
    font-weight: 600;
}

@media(max-width:1080px) {
    .attention2024 {
        margin: 2em auto 0;
        width: 70vw;
    }
    .attention2024-wap {
        padding: 40px;
    }
}

@media(max-width:600px) {
    .attention2024 {
        margin: 2em auto 0;
        width: 90%;
    }
    .attention2024-wap {
        width: 100%;
        padding: 30px 24px;
    }
}*/