:root {
    --color-bg: #F1B71A;
    --color-orange: #E95504;
    --color-brown: #882B00;
    --font-family: "Noto Sans JP",
        "Hiragino Kaku Gothic StdN",
        "ヒラギノ角ゴ StdN",
        "Helvetica Neue",
        Arial,
        "Hiragino Sans",
        Meiryo,
        sans-serif;
    --font-secondary: "Epilogue",
        sans-serif;
}

/* Reset box-model
   ========================================================================== */
* {
    box-sizing: border-box;
}

::before,
::after {
    box-sizing: inherit;
}

/* Document
   ========================================================================== */
html {
    font-size: 62.5%;
    line-height: 1.15;
    /* 1 */
    -webkit-text-size-adjust: 100%;
    /* 2 */
    -webkit-tap-highlight-color: transparent;
    /* 3*/
    scroll-behavior: smooth;
    scroll-padding-top: 8rem;
}

/* Vertical rhythm
   ========================================================================== */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
    margin: 0;
}

/* Headings
   ========================================================================== */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    margin: 0;
}

/* Lists (enumeration)
   ========================================================================== */
ul,
ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Lists (definition)
   ========================================================================== */
dt {
    font-weight: bold;
}

dd {
    margin-left: 0;
}

/* Grouping content
   ========================================================================== */
hr {
    box-sizing: content-box;
    /* 1 */
    height: 0;
    /* 1 */
    overflow: visible;
    /* 2 */
    border: 0;
    border-top: 1px solid;
    margin: 0;
    clear: both;
    color: inherit;
}

pre {
    font-family: monospace, monospace;
    /* 1 */
    font-size: inherit;
    /* 2 */
}

address {
    font-style: inherit;
}

/* Text-level semantics
   ========================================================================== */
a {
    background-color: transparent;
    text-decoration: none;
    color: var(--accent-blue);
    transition: all .2s ease;
}

a[href^="tel:"] {
    pointer-events: none;
    text-decoration: none;
    color: #000;

    @media (max-width: 480px) {
        pointer-events: all;
        color: var(--accent-blue);
        text-decoration: underline;
    }
}

abbr[title] {
    border-bottom: none;
    /* 1 */
    text-decoration: underline;
    /* 2 */
    text-decoration: underline dotted;
}

b,
strong {
    font-weight: bolder;
}

code,
kbd,
samp {
    font-family: monospace, monospace;
    font-size: inherit;
}

small {
    font-size: 80%;
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

br {
    &.sp {
        display: none;

        @media (max-width: 768px) {
            display: block;
        }
    }

    &.pc {
        display: block;

        @media (max-width: 767px) {
            display: none;
        }
    }
}

.is-pc {
    @media (max-width: 768px) {
        display: none !important;
    }
}

/* Embedded content
   ========================================================================== */
img {
    border-style: none;
    vertical-align: bottom;
    max-width: 100%;
}

embed,
object,
iframe {
    border: 0;
    vertical-align: bottom;
}

/* Interactive
   ========================================================================== */
details {
    display: block;
}

summary {
    display: list-item;
}

/* Table
   ========================================================================== */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

caption {
    text-align: left;
}

td,
th {
    vertical-align: top;
    padding: 0;
}

th {
    text-align: left;
    font-weight: bold;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--font-family);
    font-size: 1.6rem;
    background-color: var(--color-bg);

    &.is_loading {
        overflow: hidden;

        .js-scroll-in,
        .txt01,
        .txt02,
        #curry dl dt {
            transition: none !important;
            opacity: 0 !important;
        }
    }
}

/* Loading Screen
   ========================================================================== */
.loading_screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: var(--color-bg);
    background-image:
        radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.45) 0%, transparent 40%),
        radial-gradient(circle at 80% 80%, rgba(255, 235, 150, 0.5) 0%, transparent 45%),
        radial-gradient(circle at 50% 50%, rgba(255, 248, 220, 0.3) 0%, transparent 60%);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    opacity: 1;
    visibility: visible;
    transition: opacity .6s cubic-bezier(0.16, 1, 0.3, 1), visibility .6s ease;

    &.is_loaded,
    &.is-loaded {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    .loading_inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 3rem 2rem;
        max-width: 48rem;
        width: 90%;
        animation: loadingFloat 2.5s ease-in-out infinite alternate;
    }

    .loading_logo {
        max-width: 18rem;
        width: 45vw;
        margin-bottom: 2.5rem;

        img {
            width: 100%;
            height: auto;
            display: block;
            filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.08));
        }
    }

    .loading_ttl {
        max-width: 32rem;
        width: 78vw;
        margin-bottom: 3.5rem;

        img {
            width: 100%;
            height: auto;
            display: block;
            filter: drop-shadow(0 4px 12px rgba(136, 43, 0, 0.15));
        }
    }

    .loading_indicator {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;

        .loading_bar {
            width: 20rem;
            max-width: 70vw;
            height: .5rem;
            background: rgba(136, 43, 0, 0.15);
            border-radius: 1rem;
            overflow: hidden;
            position: relative;
            margin-bottom: 1.2rem;
            box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);

            .loading_progress {
                position: absolute;
                top: 0;
                left: 0;
                height: 100%;
                width: 0%;
                background: linear-gradient(90deg, #a94619, var(--color-brown));
                border-radius: 1rem;
                transition: width .25s ease-out;
            }
        }

        .loading_text {
            font-family: var(--font-secondary);
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--color-brown);
            letter-spacing: .2em;
            text-transform: uppercase;
        }
    }
}

@keyframes loadingFloat {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-6px);
    }
}

/* Pokapoka Steam Animations (Light Bubbles & Twinkles) */
@keyframes pokapoka-fuwan {
    0% {
        transform: scale(.7);
        opacity: 0;
        filter: blur(12px);
    }

    50% {
        transform: scale(1);
        opacity: 0.98;
        filter: blur(5px);
    }

    100% {
        transform: scale(1.3);
        opacity: 0;
        filter: blur(16px);
    }
}

@keyframes pokapoka-twinkle {

    0%,
    100% {
        opacity: 0;
    }

    50% {
        opacity: .85;
    }
}

/* Scroll Guide Line Animation */
@keyframes scroll-line-move {
    0% {
        transform: translateY(-100%);
        opacity: 0;
    }

    30% {
        opacity: 1;
    }

    70% {
        opacity: 1;
    }

    100% {
        transform: translateY(120%);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {

    .pokapoka__steam i,
    .pokapoka__steam b {
        animation: none;
        opacity: .5;
    }

    .main_scroll_bar::after {
        animation: none;
        top: 30%;
    }

    .pokapoka__steam i {
        filter: blur(6px);
    }

    .txt01,
    .txt02,
    #curry dl dt,
    .js-scroll-in {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ==========================================================================
   Scroll-triggered In-View Animations Utility
   ========================================================================== */
.js-scroll-in:not(.txt01):not(.txt02):not(dt) {
    opacity: 0;
    transform: translateY(3.5rem);
    transition: opacity 0.85s cubic-bezier(0.2, 0.9, 0.3, 1.1),
        transform 0.85s cubic-bezier(0.2, 0.9, 0.3, 1.1);
    will-change: opacity, transform;

    &.is-inview {
        opacity: 1;
        transform: translateY(0);
    }
}

.inner {
    margin: 0 auto;
    max-width: 1440px;
    width: 90%;
}

header {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    height: 70px;
    background-color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    z-index: 100;
    box-sizing: border-box;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);

    h1 {
        margin: 0;
        height: 100%;
        display: flex;
        align-items: center;

        img {
            height: 40px;
            width: auto;
        }
    }

    .nav_toggle {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 28px;
        height: 20px;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: 101;
        touch-action: manipulation;

        .nav_toggle_bar {
            display: block;
            width: 100%;
            height: 2.5px;
            background-color: var(--color-brown, #5a2312);
            border-radius: 2px;
            transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
            transform-origin: center;
        }

        &.is-active {
            .nav_toggle_bar:nth-child(1) {
                transform: translateY(8.75px) rotate(45deg);
            }

            .nav_toggle_bar:nth-child(2) {
                opacity: 0;
                transform: scaleX(0);
            }

            .nav_toggle_bar:nth-child(3) {
                transform: translateY(-8.75px) rotate(-45deg);
            }
        }
    }
}

.nav_backdrop {
    position: fixed;
    top: 70px;
    left: 0;
    width: 100%;
    height: calc(100vh - 70px);
    background: rgba(0, 0, 0, 0.45);
    z-index: 98;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;

    &.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

.global_nav {
    position: fixed;
    top: 70px;
    right: 0;
    width: 440px;
    max-width: 90vw;
    height: calc(100vh - 70px);
    background-color: var(--color-orange, #ea5504);
    z-index: 99;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    visibility: hidden;
    box-shadow: -4px 0 25px rgba(0, 0, 0, 0.15);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.35s ease;

    &.is-open {
        transform: translateX(0);
        visibility: visible;
    }

    .nav_inner {
        padding: 4.5rem 3.5rem 6rem;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .nav_ttl {
        width: 100%;
        text-align: center;
        margin-bottom: 3.5rem;

        img {
            max-width: 28rem;
            width: 82%;
            height: auto;
            display: inline-block;
        }
    }

    .nav_list {
        width: 100%;
        list-style: none;
        padding: 0;
        margin: 0;

        li {
            border-bottom: 1px solid rgba(255, 255, 255, 0.85);

            a {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 1.6rem 0.5rem;
                color: #fff;
                font-size: 1.7rem;
                font-weight: 700;
                text-decoration: none;
                transition: background-color 0.2s ease, padding 0.2s ease;

                &:hover {
                    background-color: rgba(255, 255, 255, 0.08);
                    padding-left: 1rem;
                    padding-right: 0.5rem;

                    .nav_arrow {
                        transform: translateX(4px);
                    }
                }

                span {
                    line-height: 1.4;
                }

                .nav_arrow {
                    width: 1.6rem;
                    height: 1.5rem;
                    flex-shrink: 0;
                    margin-left: 1.5rem;
                    transition: transform 0.2s ease;
                }
            }
        }
    }

    @media (max-width: 768px) {
        width: 100%;
        max-width: 100%;
        box-shadow: none;

        .nav_inner {
            padding: 3.5rem 2.5rem 5rem;
        }

        .nav_ttl {
            margin-bottom: 2.8rem;

            img {
                max-width: 25rem;
                width: 80%;
            }
        }

        .nav_list {
            li {
                a {
                    padding: 1.45rem 0.4rem;
                    font-size: 1.6rem;
                }
            }
        }
    }
}

section {
    text-align: center;

    &#main {
        width: 100%;

        .main_video_wrap {
            position: relative;
            width: 100%;
            overflow: hidden;

            video {
                display: block;
                width: 100%;
                height: auto;
            }

            .main_scroll {
                position: absolute;
                bottom: clamp(1.6rem, 3vw, 2.8rem);
                left: 50%;
                transform: translate(-50%, 15px);
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                text-decoration: none;
                cursor: pointer;
                z-index: 5;
                opacity: 0;
                visibility: hidden;
                pointer-events: none;
                transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0.8s ease;

                /* PC環境: 動画が一画面よりも高さがある場合でも、ユーザーの表示画面の高さ（ビューポート下部付近）で見える位置に収める */
                @media (min-width: 769px) {
                    bottom: auto;
                    top: min(calc(100vh - 7rem - 9.5rem), calc(100% - 8.5rem));
                    top: min(calc(100svh - 7rem - 9.5rem), calc(100% - 8.5rem));
                }

                @media (max-width: 768px) {
                    bottom: 0.8rem;
                }

                &.is-visible {
                    opacity: 1;
                    visibility: visible;
                    pointer-events: auto;
                    transform: translate(-50%, 0);
                }

                &:hover {
                    opacity: 0.9;

                    .main_scroll_bar {
                        transform: scaleY(1.08);
                    }
                }

                .main_scroll_text {
                    font-family: var(--font-secondary);
                    font-size: clamp(1.1rem, 1.3vw, 1.4rem);
                    font-weight: 700;
                    letter-spacing: 0.28em;
                    text-indent: 0.28em;
                    color: #ffffff;
                    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.75), 0 0 3px rgba(0, 0, 0, 0.9);
                    margin-bottom: 0.8rem;
                    line-height: 1;
                    user-select: none;

                    @media (max-width: 768px) {
                        font-size: 0.95rem;
                        letter-spacing: 0.22em;
                        text-indent: 0.22em;
                        margin-bottom: 0.45rem;
                    }
                }

                .main_scroll_bar {
                    position: relative;
                    width: 2px;
                    height: clamp(3.2rem, 4.2vw, 5.2rem);
                    background: rgba(255, 255, 255, 0.35);
                    border-radius: 2px;
                    overflow: hidden;
                    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
                    transition: transform 0.2s ease;

                    @media (max-width: 768px) {
                        height: 2.2rem;
                        width: 1.5px;
                    }

                    &::after {
                        content: '';
                        position: absolute;
                        top: 0;
                        left: 0;
                        width: 100%;
                        height: 60%;
                        background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #ffffff 80%, #ffffff 100%);
                        border-radius: 2px;
                        box-shadow: 0 0 6px #ffffff;
                        animation: scroll-line-move 1.8s cubic-bezier(0.65, 0, 0.35, 1) infinite;
                    }
                }
            }
        }

        p {
            display: block;
            padding: 4rem 1rem;
            line-height: 0;
            white-space: nowrap;
            color: #fff;
            font-size: clamp(1.8rem, calc(1.237rem + 1.502vw), 3.4rem);
            font-weight: 700;
            background: var(--color-brown);

            @media (max-width: 768px) {
                padding: 2rem 1rem;
            }

            strong {
                font-size: clamp(2.6rem, calc(1.896rem + 1.878vw), 4.6rem);
                font-weight: 700;
            }

            .day_of_week {
                display: inline-block;
                font-feature-settings: "palt";
                margin-left: -0.1em;
                margin-right: -0.1em;
                vertical-align: baseline;
                font-size: clamp(1.8rem, calc(1.237rem + 1.502vw), 3.4rem);
            }

            span {
                font-size: clamp(2.2rem, calc(1.496rem + 1.878vw), 4.2rem);
            }
        }
    }

    &#curry {
        position: relative;
        overflow: hidden;
        top: -.1rem;
        background: url(../img/fv.webp) no-repeat top center / 100%;

        @media (max-width: 768px) {
            background-size: 133.5% auto;
        }

        /* ===== ぽかぽか背景（光の玉・キラキラレイヤー） ===== */
        .pokapoka__steam {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: clamp(48rem, 50vw, 85rem);
            z-index: 1;
            pointer-events: none;
            overflow: hidden;

            @media (max-width: 768px) {
                height: clamp(32rem, 75vw, 52rem);
            }

            /* 光の玉 */
            i {
                position: absolute;
                left: var(--x);
                top: var(--y);
                width: var(--s);
                aspect-ratio: 1;
                border-radius: 50%;
                background: radial-gradient(circle,
                        rgba(255, 252, 200, .92) 0%,
                        rgba(255, 235, 125, .65) 42%,
                        rgba(255, 220, 100, .2) 68%,
                        rgba(255, 215, 90, 0) 78%);
                mix-blend-mode: screen;
                opacity: 0;
                will-change: transform, opacity, filter;
                animation: pokapoka-fuwan var(--d) cubic-bezier(.45, 0, .55, 1) var(--dl) infinite;

                @media (max-width: 768px) {
                    width: calc(var(--s) * 0.7);

                    &.is-pc {
                        display: none;
                    }
                }
            }

            /* 小さなキラキラ */
            b {
                position: absolute;
                left: var(--x);
                top: var(--y);
                width: 5px;
                height: 5px;
                border-radius: 50%;
                background: #fff8d6;
                filter: blur(1px);
                opacity: 0;
                animation: pokapoka-twinkle var(--d) ease-in-out var(--dl) infinite;

                @media (max-width: 768px) {
                    width: 4px;
                    height: 4px;
                }
            }
        }

        .inner {
            position: relative;
            z-index: 2;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            padding-top: 35vw;

            @media (max-width: 768px) {
                flex-direction: column;
                align-items: center;
                padding-top: 52vw;
            }

            .txt01 {
                position: absolute;
                top: 10rem;
                right: calc(50% + max(18rem, 13.5vw));
                max-width: 28rem;
                width: 20vw;
                opacity: 0;
                transform: translateY(3rem) rotate(-4deg) scale(0.9);
                transition: opacity 0.95s cubic-bezier(0.2, 0.9, 0.3, 1.15) 0.4s,
                    transform 0.95s cubic-bezier(0.2, 0.9, 0.3, 1.15) 0.4s;
                will-change: opacity, transform;

                &.is-inview {
                    opacity: 1;
                    transform: translateY(0) rotate(0) scale(1);
                }

                img {
                    width: 100%;
                    height: auto;
                }

                @media (max-width: 768px) {
                    top: clamp(1.5rem, 3.5vw, 3rem);
                    right: calc(50% + clamp(5.5rem, 15vw, 12rem));
                    max-width: 18rem;
                    width: 24vw;
                }
            }

            .txt02 {
                position: absolute;
                top: 2.7rem;
                left: calc(50% + max(25rem, 18vw));
                max-width: 13.5rem;
                width: 10vw;
                opacity: 0;
                transform: translateY(3rem) rotate(4deg) scale(0.9);
                transition: opacity 0.95s cubic-bezier(0.2, 0.9, 0.3, 1.15) 0.65s,
                    transform 0.95s cubic-bezier(0.2, 0.9, 0.3, 1.15) 0.65s;
                will-change: opacity, transform;

                &.is-inview {
                    opacity: 1;
                    transform: translateY(0) rotate(0) scale(1);
                }

                img {
                    width: 100%;
                    height: auto;
                }

                @media (max-width: 768px) {
                    top: clamp(1rem, 2.5vw, 2.5rem);
                    left: calc(50% + clamp(8.5rem, 21vw, 17rem));
                    max-width: 5rem;
                    width: 18vw;
                }
            }
        }

        dl {
            width: 100%;

            @media (max-width: 768px) {
                margin-bottom: 6rem;
                order: 1;
            }

            dt {
                position: relative;
                z-index: 2;
                margin-bottom: -10rem;
                opacity: 0;
                transform: translateY(4rem) scale(0.92);
                transition: opacity 0.95s cubic-bezier(0.2, 0.9, 0.3, 1.1) 0.05s,
                    transform 0.95s cubic-bezier(0.2, 0.9, 0.3, 1.1) 0.05s;
                will-change: opacity, transform;

                &.is-inview {
                    opacity: 1;
                    transform: translateY(0) scale(1);
                }

                @media (max-width: 768px) {
                    margin-bottom: -8vw;
                }

                img {
                    max-width: 88rem;
                    width: 90%;
                }
            }

            dd {
                img {
                    max-width: 120rem;
                    width: 100%;
                }
            }
        }

        .contents {
            padding: 8rem 0 0;
            max-width: 82rem;
            width: 58%;

            @media (max-width: 768px) {
                display: contents;
                margin-top: 6rem;
            }

            p {
                display: block;
                margin-bottom: 7rem;
                line-height: 1.6;
                text-align: left;
                color: var(--color-brown);
                font-size: clamp(1.8rem, calc(1.096rem + 1.878vw), 3.8rem);
                font-weight: 700;

                @media (max-width: 768px) {
                    order: 2;
                    width: 100%;
                    max-width: 38rem;
                    margin: 0 auto 3.5rem;
                    text-align: center;
                    font-size: clamp(1.8rem, 3.8vw, 2rem);
                    line-height: 2;
                }
            }

            a {
                position: relative;
                display: block;
                background: var(--color-brown);
                padding: 3rem 0;
                line-height: 1.4;
                color: #fff;
                font-size: clamp(1.8rem, calc(1.096rem + 1.878vw), 3.8rem);
                font-weight: 700;
                border: .2rem solid #fff;
                border-radius: 10rem;
                text-align: center;
                transition: background-color .2s ease;

                &::after {
                    position: absolute;
                    margin: auto;
                    content: "";
                    width: 4.5rem;
                    height: 4.1rem;
                    background: url(../img/icon_arrow.svg) no-repeat 0 0 / 100%;
                    top: 0;
                    right: 6rem;
                    bottom: 0;
                }

                &:hover {
                    background: #a94619;
                }

                @media (max-width: 768px) {
                    order: 4;
                    width: 100%;
                    max-width: 36rem;
                    margin: 0 auto 5rem;
                    padding: 1.8rem 4.5rem 1.8rem 2rem;
                    font-size: clamp(1.5rem, 4.2vw, 1.9rem);
                    border: 2px solid #fff;

                    &::after {
                        width: 2.2rem;
                        height: 2rem;
                        right: 2rem;
                    }
                }
            }
        }

        .img {
            max-width: 56rem;
            width: 40%;
            align-self: flex-end;

            img {
                width: 100%;
                height: auto;
                display: block;
            }

            @media (max-width: 768px) {
                order: 3;
                width: 100%;
                max-width: 28rem;
                align-self: center;
                margin: 0 auto;
            }
        }
    }

    &#cm {
        h2 {
            margin-bottom: 8rem;

            @media (max-width: 768px) {
                margin-bottom: 6rem;
            }
        }

        .cm {
            margin-bottom: 8rem;

            .cm_link {
                display: inline-block;
                max-width: 96rem;
                width: 100%;
                cursor: pointer;

                .cm_thumb {
                    position: relative;
                    width: 100%;
                    aspect-ratio: 16 / 9;
                    background-color: #000;
                    border-radius: 2rem;
                    overflow: hidden;
                    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .15);

                    img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        transition: transform .3s ease, filter .3s ease;
                    }

                    .cm_play_btn {
                        position: absolute;
                        top: 50%;
                        left: 50%;
                        transform: translate(-50%, -50%);
                        width: 8rem;
                        height: 8rem;
                        background-color: rgba(233, 85, 4, .9);
                        border: .3rem solid #fff;
                        border-radius: 50%;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        box-shadow: 0 .4rem 1.5rem rgba(0, 0, 0, .3);
                        transition: transform .3s ease, background-color .3s ease;

                        &::after {
                            content: "";
                            display: block;
                            margin-left: .6rem;
                            width: 0;
                            height: 0;
                            border-style: solid;
                            border-width: 1.4rem 0 1.4rem 2.4rem;
                            border-color: transparent transparent transparent #fff;
                        }
                    }
                }

                &:hover {
                    .cm_thumb img {
                        transform: scale(1.03);
                        filter: brightness(1.05);
                    }

                    .cm_play_btn {
                        transform: translate(-50%, -50%) scale(1.12);
                        background-color: var(--color-orange);
                    }
                }
            }
        }
    }

    &#topping {
        padding-bottom: 5rem;

        h2 {
            margin-bottom: 6rem;
        }

        .item_slider_container {
            width: 100%;
            margin-bottom: 2rem;
        }

        .item {
            display: flex;
            flex-wrap: nowrap;
            justify-content: space-between;
            gap: 3rem;
            margin-bottom: 2rem;
            width: 100%;

            li,
            .item_slide {
                flex: 1 1 0;
                min-width: 0;
                max-width: 43rem;
                width: calc((100% - 6rem) / 3);
                container-type: inline-size;

                figure {
                    img {
                        width: 100%;
                        height: auto;
                        display: block;
                    }
                }

                h3 {
                    margin-bottom: .5rem;

                    img {
                        width: 100%;
                        height: auto;
                        display: block;
                    }
                }

                dl {
                    padding-left: 5.5%;
                    color: var(--color-brown);
                    text-align: left;
                    font-size: clamp(1.2rem, 5.2cqw, 3.8rem);
                    white-space: nowrap;

                    @media (max-width: 768px) {
                        padding-left: 0;
                    }

                    dt {
                        display: flex;
                        align-items: center;
                        margin-bottom: .5rem;
                        font-weight: 700;
                        white-space: nowrap;

                        figure {
                            display: inline-flex;
                            align-items: center;
                            margin-right: clamp(.2rem, 1.2cqw, .6rem);
                            max-width: clamp(2.4rem, 11cqw, 6rem);
                            width: 11cqw;
                            flex-shrink: 0;
                        }

                        strong {
                            font-size: clamp(1.6rem, 7.8cqw, 4.6rem);
                            font-weight: 600;

                            span {
                                display: inline-block;
                                font-feature-settings: "palt";
                                margin-left: -0.1em;
                                margin-right: -0.1em;
                                vertical-align: baseline;
                            }
                        }
                    }

                    dd {
                        font-family: var(--font-secondary);
                        font-weight: 600;
                        white-space: nowrap;
                        font-size: clamp(1.1rem, 4.8cqw, 2.6rem);

                        strong {
                            font-size: clamp(1.4rem, 7.8cqw, 3.2rem);
                            font-weight: 600;
                        }

                        >span {
                            font-size: clamp(1.0rem, 4.0cqw, 2.2rem);
                        }
                    }
                }

                .item_note {
                    font-size: clamp(1.0rem, 3.4cqw, 1.4rem);
                    color: #555;
                    margin-top: .6rem;
                    padding-left: 5.5%;
                    line-height: 1.5;
                    text-align: left;

                    @media (max-width: 768px) {
                        padding-left: 0;
                    }
                }
            }

            @media (max-width: 1000px) {
                position: relative;
                justify-content: flex-start;
                overflow-x: auto;
                scroll-snap-type: x mandatory;
                scroll-behavior: smooth;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: none;
                gap: 0;
                margin-bottom: 0;
                cursor: grab;
                touch-action: pan-y;
                user-select: none;
                -webkit-user-select: none;

                &.is-dragging {
                    cursor: grabbing;
                    user-select: none;
                }

                &::-webkit-scrollbar {
                    display: none;
                }

                li,
                .item_slide {
                    flex: 0 0 100%;
                    width: 100%;
                    min-width: 100%;
                    max-width: 100%;
                    scroll-snap-align: center;
                    scroll-snap-stop: always;
                    padding: 0 1rem;
                    box-sizing: border-box;
                    text-align: center;
                    container-type: inline-size;

                    img {
                        pointer-events: none;
                        -webkit-user-drag: none;
                        user-select: none;
                    }

                    figure {
                        margin-bottom: 1.5rem;

                        img {
                            max-width: 38rem;
                            width: 85%;
                            margin: 0 auto;
                        }
                    }

                    h3 {
                        margin-bottom: 1.2rem;

                        img {
                            max-width: 36rem;
                            width: 85%;
                            margin: 0 auto;
                        }
                    }

                    dl {
                        text-align: center;

                        dt {
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            margin-bottom: .8rem;
                            font-size: clamp(1.4rem, 5.2cqw, 2.6rem);
                            white-space: nowrap;
                            padding-left: 0;

                            figure {
                                display: inline-flex;
                                align-items: center;
                                max-width: clamp(2.8rem, 11cqw, 5.5rem);
                                width: 11cqw;
                                margin-right: .6rem;
                                margin-bottom: 0;
                                flex-shrink: 0;
                            }
                        }

                        dd {
                            font-size: clamp(1.2rem, 4.4cqw, 2.4rem);
                            white-space: nowrap;

                            strong {
                                font-size: clamp(1.8rem, 7.5cqw, 4.2rem);
                            }

                            span {
                                font-size: clamp(1.1rem, 3.8cqw, 2rem);
                            }
                        }
                    }

                    .item_note {
                        font-size: 1.35rem;
                        color: #4a4a4a;
                        margin-top: .8rem;
                        text-align: center;
                    }
                }
            }
        }

        .item_slider_controls {
            display: none;

            @media (max-width: 1000px) {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 1.6rem;
                margin: 2.5rem auto 3rem;
            }

            .slider_arrow {
                width: 3.8rem;
                height: 3.8rem;
                border-radius: 50%;
                background-color: var(--color-brown);
                border: none;
                cursor: pointer;
                padding: 0;
                display: flex;
                align-items: center;
                justify-content: center;
                touch-action: manipulation;
                transition: transform .15s ease, background-color .2s ease;

                &:hover,
                &:active {
                    transform: scale(1.08);
                    background-color: var(--color-orange);
                }

                .arrow_icon {
                    display: block;
                    width: 0;
                    height: 0;
                    border-style: solid;
                }

                &.slider_prev .arrow_icon {
                    border-width: .65rem .95rem .65rem 0;
                    border-color: transparent #fff transparent transparent;
                    margin-right: .25rem;
                }

                &.slider_next .arrow_icon {
                    border-width: .65rem 0 .65rem .95rem;
                    border-color: transparent transparent transparent #fff;
                    margin-left: .25rem;
                }
            }

            .slider_dots {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 1.2rem;

                .slider_dot {
                    background: transparent;
                    border: none;
                    padding: 0;
                    cursor: pointer;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    width: 3.8rem;
                    height: 3.8rem;
                    border-radius: 50%;
                    box-sizing: border-box;
                    transition: all .25s ease;

                    .dot_point {
                        width: 1rem;
                        height: 1rem;
                        border-radius: 50%;
                        background-color: #E2A638;
                        display: block;
                        transition: transform .2s ease;
                    }

                    &.is-active {
                        border: .18rem solid var(--color-brown);

                        .dot_num {
                            margin-top: .4rem;
                            font-family: var(--font-secondary), sans-serif;
                            font-size: 1.8rem;
                            font-weight: 700;
                            color: var(--color-brown);
                            line-height: 1;
                            letter-spacing: -0.05em;
                        }
                    }
                }
            }
        }

        .select {
            display: block;
            margin-bottom: 10rem;
            padding-top: 2.5rem;
            line-height: 1.6;
            text-align: left;
            border-top: .1rem solid #707070;

            @media (max-width: 768px) {
                br {
                    display: none;
                }
            }
        }

        .btn {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 3rem;
            margin-bottom: 7rem;
            width: 100%;

            >li {
                width: 100%;
                min-width: 0;
                container-type: inline-size;

                figure {
                    position: absolute;
                }

                a {
                    position: relative;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: flex-end;
                    align-content: space-between;
                    padding: 4.5rem 4rem 4rem;
                    color: #fff;
                    height: 100%;
                    min-height: 26rem;
                    border: .5rem solid #fff;
                    border-radius: 2rem;
                    box-shadow: 11px 11px 0px 0px rgba(228, 158, 16, 1);
                    transition: transform .2s ease, box-shadow .2s ease;

                    &:hover {
                        transform: translate(11px, 11px);
                        box-shadow: 0px 0px 0px 0px rgba(228, 158, 16, 1);
                    }

                    dl {
                        dt {
                            margin-bottom: 2rem;
                            font-size: clamp(1.8rem, 5cqw, 3.2rem);
                            font-weight: 700;
                        }

                        dd {
                            font-family: var(--font-secondary);
                            /* font-size: clamp(1.8rem, 5.8cqw, 3.8rem); */
                            font-size: clamp(1.3rem, 4cqw, 2.6rem);
                            font-weight: 600;

                            strong {
                                font-size: clamp(2.4rem, 7.8cqw, 5rem);
                                font-weight: 600;
                            }

                            span {
                                font-size: clamp(1.3rem, 4cqw, 2.6rem);
                            }
                        }
                    }

                    p {
                        position: relative;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        gap: 1rem;
                        margin-top: 2rem;
                        padding: 1.2rem 1.5rem;
                        text-align: center;
                        line-height: 1.4;
                        font-size: clamp(1.3rem, 3.5cqw, 2.2rem);
                        font-weight: 700;
                        width: 100%;
                        border: .15rem solid #fff;
                        border-radius: 2rem;
                        z-index: 5;

                        &::after {
                            display: inline-block;
                            content: "";
                            margin-left: 2rem;
                            width: 1.8rem;
                            height: 1.7rem;
                            flex-shrink: 0;
                            background: url(../img/icon_arrow.svg) no-repeat 0 0 / 100%;
                        }
                    }
                }

                &:first-child a {
                    background-color: var(--color-brown);

                    figure {
                        top: -3rem;
                        left: -1rem;
                        max-width: 33rem;
                        width: 50%;
                        z-index: 2;

                        img {
                            width: 100%;
                            height: auto;
                            display: block;
                        }
                    }

                    dl {
                        margin-right: 1rem;
                    }
                }

                &:nth-child(2) a {
                    background-color: var(--color-orange);

                    figure {
                        position: absolute;
                        bottom: calc(3.3rem + clamp(6.8rem, 16.5cqw, 9.3rem));
                        left: clamp(2rem, 5cqw, 3.5rem);
                        max-width: 17.5rem;
                        width: 28cqw;
                        z-index: 2;

                        img {
                            width: 100%;
                            height: auto;
                            display: block;
                        }
                    }

                    dl {
                        text-align: center;
                        margin-left: auto;
                        margin-right: 6vw;
                        padding-top: 3rem;

                        dt {
                            position: relative;
                            display: inline-block;
                            margin: 0;
                            line-height: 1.25;
                            font-size: clamp(1.8rem, 5cqw, 3.2rem);
                            font-weight: 700;
                            white-space: nowrap;

                            &::before {
                                content: "";
                                position: absolute;
                                left: -2.4rem;
                                top: 50%;
                                width: 0;
                                height: 95%;
                                border-left: .2rem solid #fff;
                                transform: translateY(-50%) rotate(-25deg);
                            }

                            &::after {
                                content: "";
                                position: absolute;
                                right: -2.4rem;
                                top: 50%;
                                width: 0;
                                height: 95%;
                                border-right: .2rem solid #fff;
                                transform: translateY(-50%) rotate(25deg);
                            }
                        }
                    }

                    p {
                        margin-top: 0;
                        background-color: var(--color-orange);
                    }
                }
            }

            @media (max-width: 830px) {
                grid-template-columns: 1fr;
                gap: 5.5rem;
                margin-bottom: 5rem;

                >li {
                    max-width: 40rem;
                    width: 100%;
                    flex: none;
                    margin: 0 auto;

                    a {
                        padding: 3rem 2rem 2.5rem;
                        border: 3px solid #fff;
                        border-radius: 1.8rem;
                        box-shadow: 6px 6px 0px 0px rgba(228, 158, 16, 1);
                        min-height: auto;
                        justify-content: center;

                        p {
                            margin-top: 1.8rem;
                            padding: 1.2rem 1.5rem;
                            font-size: clamp(1.2rem, 3.6cqw, 1.5rem);
                            border-radius: 1.5rem;
                            gap: .8rem;

                            &::after {
                                width: 1.5rem;
                                height: 1.4rem;
                            }
                        }
                    }

                    &:first-child a {
                        flex-direction: column;
                        align-items: center;
                        padding: 0 2rem 2.5rem;

                        figure {
                            position: relative;
                            top: 1rem;
                            left: 0;
                            max-width: 23rem;
                            width: 68%;
                            margin: -4.5rem auto 1.5rem;
                        }

                        dl {
                            text-align: center;
                            margin-right: 0;
                            width: 100%;

                            dt {
                                font-size: clamp(2.4rem, 7.5cqw, 3.2rem);
                                margin-bottom: .6rem;
                            }

                            dd {
                                font-size: clamp(1.6rem, 4.8cqw, 2rem);

                                strong {
                                    font-size: clamp(2rem, 6.5cqw, 2.8rem);
                                }

                                span {
                                    font-size: clamp(1.3rem, 3.8cqw, 1.6rem);
                                }
                            }
                        }

                        p {
                            max-width: 32rem;
                            width: 100%;
                        }
                    }

                    &:nth-child(2) a {
                        position: relative;
                        display: block;
                        padding: 2rem 1.8rem 2.2rem;

                        figure {
                            position: absolute;
                            top: -3.4rem;
                            left: 1rem;
                            max-width: 12rem;
                            width: 40%;

                            img {
                                width: 100%;
                                height: auto;
                                display: block;
                            }
                        }

                        dl {
                            margin-left: 10rem;
                            width: calc(100% - 10rem);
                            min-height: 8rem;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            text-align: center;
                            margin-right: 0;
                            padding-top: 2rem;

                            dt {
                                position: relative;
                                display: inline-block;
                                font-size: clamp(1.5rem, 4.8cqw, 2.2rem);
                                line-height: 1.25;
                                white-space: nowrap;

                                &::before {
                                    left: -1.6rem;
                                    height: 3.2rem;
                                    border-left: 2px solid #fff;
                                    transform: translateY(-50%) rotate(-20deg);
                                }

                                &::after {
                                    right: -1.6rem;
                                    height: 3.2rem;
                                    border-right: 2px solid #fff;
                                    transform: translateY(-50%) rotate(20deg);
                                }
                            }
                        }

                        p {
                            margin-top: 1.5rem;
                            width: 100%;
                        }
                    }
                }
            }

            &.base {
                display: block;
                margin-bottom: 7rem;

                >li,
                >li:first-child {
                    margin: 0 auto;
                    max-width: 120rem;
                    width: 100%;
                    container-type: inline-size;

                    a {
                        display: flex;
                        flex-direction: row;
                        flex-wrap: nowrap;
                        align-items: center;
                        justify-content: center;
                        gap: clamp(2rem, 3.5cqw, 4.5rem);
                        padding: clamp(2.5rem, 3.2cqw, 3.8rem) clamp(2.5rem, 4cqw, 5.5rem);
                        min-height: auto;
                        box-shadow: 11px 11px 0px 0px rgba(228, 158, 16, 1);
                        background-color: var(--color-brown);

                        &:hover {
                            transform: translate(11px, 11px);
                            box-shadow: 0px 0px 0px 0px rgba(228, 158, 16, 1);
                        }

                        figure {
                            position: static;
                            top: auto;
                            left: auto;
                            max-width: clamp(18rem, 28cqw, 34rem);
                            width: 28cqw;
                            flex-shrink: 0;
                            margin: 0;
                            z-index: 1;

                            img {
                                width: 100%;
                                height: auto;
                                display: block;
                            }
                        }

                        .info {
                            display: flex;
                            flex-direction: column;
                            justify-content: center;
                            align-items: flex-start;
                            flex: 1 1 auto;
                            min-width: 0;
                            gap: clamp(1rem, 1.6cqw, 2.2rem);
                            width: 100%;
                        }

                        dl {
                            display: flex;
                            flex-direction: row;
                            flex-wrap: nowrap;
                            align-items: baseline;
                            justify-content: flex-start;
                            gap: clamp(1.2rem, 2.2cqw, 2.8rem);
                            margin: 0;
                            width: 100%;
                            text-align: left;
                            white-space: nowrap;

                            dt {
                                margin: 0;
                                font-size: clamp(1.6rem, 2.8cqw, 3.4rem);
                                font-weight: 700;
                                line-height: 1.2;
                                white-space: nowrap;
                            }

                            dd {
                                margin: 0;
                                font-family: var(--font-secondary);
                                font-size: clamp(1.6rem, 2.8cqw, 3.4rem);
                                font-weight: 600;
                                line-height: 1.2;
                                white-space: nowrap;

                                strong {
                                    font-size: clamp(2.4rem, 4.4cqw, 5.2rem);
                                    font-weight: 600;
                                }

                                span {
                                    font-size: clamp(1.3rem, 2.2cqw, 2.4rem);
                                }
                            }
                        }

                        p {
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            gap: clamp(0.6rem, 1.0cqw, 1.2rem);
                            margin: 0;
                            width: 100%;
                            max-width: 100%;
                            padding: clamp(1.0rem, 1.3cqw, 1.6rem) clamp(1.2rem, 1.8cqw, 2.8rem);
                            font-size: clamp(1.1rem, 1.7cqw, 2.1rem);
                            font-weight: 700;
                            line-height: 1.4;
                            text-align: center;
                            white-space: nowrap;
                            border: .15rem solid #fff;
                            border-radius: clamp(1.5rem, 2.5cqw, 3rem);
                            box-sizing: border-box;

                            &::after {
                                width: clamp(1.2rem, 1.5cqw, 2.0rem);
                                height: clamp(1.1rem, 1.4cqw, 1.8rem);
                                flex-shrink: 0;
                            }

                            br {
                                display: none;
                            }
                        }
                    }
                }

                @media (max-width: 768px) {
                    margin-bottom: 5rem;

                    >li,
                    >li:first-child {
                        max-width: 40rem;
                        width: 100%;
                        margin: 0 auto;

                        a {
                            flex-direction: column;
                            align-items: center;
                            padding: 0 2rem 2.5rem;
                            gap: 0;
                            border: 3px solid #fff;
                            border-radius: 1.8rem;
                            box-shadow: 6px 6px 0px 0px rgba(228, 158, 16, 1);

                            figure {
                                position: relative;
                                top: 1rem;
                                left: 0;
                                max-width: 23rem;
                                width: 68%;
                                margin: -4.5rem auto 1.5rem;
                            }

                            .info {
                                width: 100%;
                                align-items: center;
                                text-align: center;
                                gap: 0;
                            }

                            dl {
                                flex-direction: column;
                                align-items: center;
                                justify-content: center;
                                text-align: center;
                                gap: 0;
                                width: 100%;
                                margin-bottom: 0;

                                dt {
                                    font-size: clamp(1.8rem, 5.2cqw, 2.2rem);
                                    margin-bottom: .6rem;
                                    text-align: center;
                                }

                                dd {
                                    font-size: clamp(1.6rem, 4.8cqw, 2.0rem);
                                    text-align: center;

                                    strong {
                                        font-size: clamp(2.4rem, 7.5cqw, 3.2rem);
                                    }

                                    span {
                                        font-size: clamp(1.3rem, 3.8cqw, 1.6rem);
                                    }
                                }
                            }

                            p {
                                max-width: 32rem;
                                width: 100%;
                                margin-top: 1.8rem;
                                padding: 1.2rem 1.5rem;
                                font-size: clamp(1.2rem, 3.6cqw, 1.5rem);
                                border-radius: 1.5rem;
                                gap: .8rem;
                                white-space: normal;

                                &::after {
                                    width: 1.5rem;
                                    height: 1.4rem;
                                }

                                br {
                                    display: inline;
                                }
                            }
                        }
                    }
                }
            }
        }

        .note {
            text-align: left;
            color: #333;
            font-size: clamp(1.6rem, calc(1.459rem + 0.376vw), 2rem);
            font-weight: 400;

            li {
                line-height: 1.6;
            }
        }
    }
}

footer {
    padding: 5rem 0;
    color: #fff;
    font-size: clamp(1.3rem, calc(1.194rem + 0.282vw), 1.6rem);
    text-align: center;
    background-color: var(--color-brown);

    @media (max-width: 768px) {
        padding: 3rem 0;
    }
}

/* Video Modal
   ========================================================================== */
.video_modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease;

    &.is-open {
        opacity: 1;
        visibility: visible;
    }

    .video_modal_backdrop {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, .85);
        cursor: pointer;
    }

    .video_modal_dialog {
        position: relative;
        z-index: 1001;
        width: 90%;
        max-width: 96rem;
        margin: auto;
    }

    .video_modal_close {
        position: absolute;
        top: -4.5rem;
        right: 0;
        width: 4rem;
        height: 4rem;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        transition: transform .2s ease;

        &::before,
        &::after {
            content: "";
            position: absolute;
            top: 50%;
            left: 50%;
            width: 2.8rem;
            height: .3rem;
            background-color: #fff;
            border-radius: .2rem;
        }

        &::before {
            transform: translate(-50%, -50%) rotate(45deg);
        }

        &::after {
            transform: translate(-50%, -50%) rotate(-45deg);
        }

        &:hover {
            transform: scale(1.15);
        }
    }

    .video_modal_body {
        position: relative;
        width: 100%;
        aspect-ratio: 16 / 9;
        background-color: #000;
        border-radius: 1.5rem;
        overflow: hidden;
        box-shadow: 0 1rem 4rem rgba(0, 0, 0, .5);

        .video_modal_player {
            width: 100%;
            height: 100%;

            iframe {
                width: 100%;
                height: 100%;
                border: 0;
                display: block;
            }
        }
    }
}