@charset "UTF-8";

/*
 * foundation
 */
/*! destyle.css v3.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
/* Reset box-model and set borders */
/* ============================================ */
*,
::before,
::after {
    box-sizing: border-box;
    border-style: solid;
    border-width: 0;
}

/* Document */
/* ============================================ */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */
html {
    line-height: 1.15;
    /* 1 */
    -webkit-text-size-adjust: 100%;
    /* 2 */
    -webkit-tap-highlight-color: transparent;
    /* 3*/
}

/* Sections */
/* =========================================== */
/**
 * Remove the margin in all browsers.
 */
body {
    margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
    display: block;
}

/* Vertical rhythm */
/* ============================================ */
p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
    margin: 0;
}

/* Headings */
/* ============================================ */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: 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 */
/* ============================================ */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
    box-sizing: content-box;
    /* 1 */
    height: 0;
    /* 1 */
    overflow: visible;
    /* 2 */
    border-top-width: 1px;
    margin: 0;
    clear: both;
    color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
    font-family: monospace, monospace;
    /* 1 */
    font-size: inherit;
    /* 2 */
}

address {
    font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
    background-color: transparent;
    text-decoration: none;
    color: inherit;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
    /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
    font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
    font-family: monospace, monospace;
    /* 1 */
    font-size: inherit;
    /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Replaced content */
/* ============================================ */
/**
 * Prevent vertical alignment issues.
 */
svg,
img,
embed,
object,
iframe {
    vertical-align: bottom;
}

/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */
button,
input,
optgroup,
select,
textarea {
    -webkit-appearance: none;
    /* 1 */
    -moz-appearance: none;
    appearance: none;
    vertical-align: middle;
    color: inherit;
    font: inherit;
    background: transparent;
    padding: 0;
    margin: 0;
    border-radius: 0;
    text-align: inherit;
    text-transform: inherit;
    /* 2 */
}

/**
 * Reset radio and checkbox appearance to preserve their look in iOS.
 */
[type=checkbox] {
    -webkit-appearance: checkbox;
    -moz-appearance: checkbox;
    appearance: checkbox;
}

[type=radio] {
    -webkit-appearance: radio;
    -moz-appearance: radio;
    appearance: radio;
}

/**
 * Correct cursors for clickable elements.
 */
button,
[type=button],
[type=reset],
[type=submit] {
    cursor: pointer;
}

button:disabled,
[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled {
    cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */
:-moz-focusring {
    outline: auto;
}

select:disabled {
    opacity: inherit;
}

/**
 * Remove padding
 */
option {
    padding: 0;
}

/**
 * Reset to invisible
 */
fieldset {
    margin: 0;
    padding: 0;
    min-width: 0;
}

legend {
    padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
    vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
    overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
    height: auto;
}

/**
 * 1. Correct the outline style in Safari.
 */
[type=search] {
    outline-offset: -2px;
    /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */
::-webkit-file-upload-button {
    -webkit-appearance: button;
    /* 1 */
    font: inherit;
    /* 2 */
}

/**
 * Clickable labels
 */
label[for] {
    cursor: pointer;
}

/* Interactive */
/* ============================================ */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
    display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
    display: list-item;
}

/*
 * Remove outline for editable content.
 */
[contenteditable]:focus {
    outline: auto;
}

/* Tables */
/* ============================================ */
/**
1. Correct table border color inheritance in all Chrome and Safari.
*/
table {
    border-color: inherit;
    /* 1 */
    border-collapse: collapse;
}

caption {
    text-align: left;
}

td,
th {
    vertical-align: top;
    padding: 0;
}

th {
    text-align: left;
    font-weight: bold;
}

html {
    font-size: 62.5%;
    color: #000;
    font-family: "Noto Sans JP", sans-serif;
    overflow-x: hidden;
}

html.body-fixed {
    overflow: hidden;
    height: 100%;
}

body {
    overflow-x: hidden;
    max-width: 100%;
}

@media screen and (max-width: 1366px) {
    html {
        font-size: 0.732vw;
    }
}

@media screen and (max-width: 768px) {
    html {
        font-size: 2.538vw;
    }
}

h2 {
    font-size: 2.8rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
}

@media screen and (max-width: 768px) {
    h2 {
        font-size: 2rem;
    }
}

h3 {
    font-size: 2.8rem;
    font-weight: 700;
    color: #000;
    position: relative;
    margin-bottom: 6rem;
}

@media screen and (max-width: 768px) {
    h3 {
        margin-bottom: 5rem;
    }
}

@media screen and (max-width: 768px) {
    h3 {
        font-size: 2rem;
    }
}

h4 {
    font-size: 2.4rem;
    margin-bottom: 3rem;
    padding-left: 1.1rem;
    color: #000;
    font-weight: 700;
    position: relative;
    margin-bottom: 6rem;
}

@media screen and (max-width: 768px) {
    h4 {
        font-size: 1.8rem;
    }
}

h5 {
    font-size: 1.8rem;
    font-weight: 700;
}

a,
li,
p,
th,
td {
    font-size: 1.6rem;
    line-height: 1.43;
}

@media screen and (max-width: 768px) {

    a,
    li,
    p,
    th,
    td {
        line-height: 1.6;
    }
}

p {
    line-height: 1.6;
}

a:hover {
    opacity: 0.6;
    transition: all 0.3s;
}

img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    overflow: hidden;
}

/* ==========================================================================
   Layout
   ========================================================================== */
.l-header {
    background-color: #000;
    color: #fff;
    width: 100vw;
    height: 8rem;
    font-family: "Noto Serif JP", serif;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
}

.l-header__inner {
    max-width: 119.6rem;
    height: 100%;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.l-mainvisual {
    position: relative;
    z-index: 1;
    width: 100vw;
    height: 50vw;
    overflow: hidden;
    margin-top: 8rem;
}

.grecaptcha-badge {
    z-index: 2 !important;
}

/* ==========================================================================
   Component
   ========================================================================== */
.c-logo h1 {
    font-size: 2rem;
    font-family: "Noto Serif JP", serif;
    line-height: 1;
}

.c-logo h1 img {
    width: 18.7rem;
    height: 6.4rem;
    object-fit: contain;
}

.c-nav__list {
    display: flex;
    gap: 4rem;
    list-style: none;
}

.c-nav__link {
    color: #fff;
    text-decoration: none;
    font-family: "Noto Serif JP", serif;
    font-size: 1.4rem;
}

.c-nav__buttons {
    display: none;
}

/* Language Selector */
.c-lang-selector {
    display: inline-block;
}

.c-lang-selector__select {
    background-color: transparent;
    color: #fff;
    border: 0.1rem solid #fff;
    border-radius: 0.3rem;
    padding: 0.5rem 3rem 0.5rem 1rem;
    font-family: "Noto Serif JP", serif;
    font-size: 1.4rem;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M10.293 3.293L6 7.586 1.707 3.293A1 1 0 00.293 4.707l5 5a1 1 0 001.414 0l5-5a1 1 0 10-1.414-1.414z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1.2rem;
    transition: all 0.3s;
}

.c-lang-selector__select:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.c-lang-selector__select:focus {
    outline: none;
    border-color: #fff;
}

.c-lang-selector__select option {
    background-color: #000;
    color: #fff;
}

.c-nav__language-select {
    width: 15rem;
    height: 3rem;
    background-color: transparent;
    color: #fff;
    border: 0.1rem solid #fff;
    padding: 0 3rem 0 1rem;
    font-family: "Noto Serif JP", serif;
    font-size: 1.4rem;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M5 6L0 0h10L5 6z' fill='%23ffffff'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1rem 0.6rem;
    transition: all 0.3s;
}

.c-nav__language-select:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.c-nav__language-select:focus {
    outline: none;
    border-color: #fff;
}

.c-nav__language-select option {
    background-color: #000;
    color: #fff;
}

/* Hamburger Menu */
.c-hamburger {
    display: none;
    flex-direction: column;
    gap: 0.5rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    z-index: 1001;
}

.c-hamburger span {
    display: block;
    width: 2.5rem;
    height: 0.2rem;
    background-color: #fff;
    transition: all 0.3s;
}

.c-hamburger.is-active span:nth-child(1) {
    transform: translateY(0.7rem) rotate(45deg);
}

.c-hamburger.is-active span:nth-child(2) {
    opacity: 0;
}

.c-hamburger.is-active span:nth-child(3) {
    transform: translateY(-0.7rem) rotate(-45deg);
}

@media screen and (max-width: 768px) {
    .l-header__inner {
        justify-content: space-between;
        padding: 0 2rem;
    }

    .c-hamburger {
        display: flex;
    }

    .c-nav {
        position: fixed;
        top: 8rem;
        left: 0;
        width: 100%;
        height: calc(100vh - 8rem);
        background-color: rgba(0, 0, 0, 0.95);
        transform: translateX(100%);
        transition: transform 0.3s;
        overflow-y: auto;
    }

    .c-nav.is-active {
        transform: translateX(0);
    }

    .c-nav__list {
        flex-direction: column;
        align-items: center;
        gap: 0;
        padding: 4rem 2rem;
    }

    .c-nav__item {
        width: 100%;
        border-bottom: 0.1rem solid rgba(255, 255, 255, 0.1);
    }

    .c-nav__link {
        display: block;
        padding: 2rem;
        font-size: 1.6rem;
        text-align: center;
    }

    .c-nav__buttons {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2rem;
        padding: 3rem 2rem;
        border-top: 0.1rem solid rgba(255, 255, 255, 0.1);
    }

    .c-nav__button {
        display: block;
    }

    .c-nav__button img {
        width: auto;
        height: 5rem;
    }

    .c-nav__item--lang {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .c-lang-selector__select {
        width: 100%;
        text-align: center;
        padding: 1.5rem 3rem 1.5rem 1.5rem;
        font-size: 1.6rem;
    }
}

.c-slider {
    position: relative;
    width: 100%;
    height: 100%;
}

.c-slider__item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.c-slider__item.is-active {
    opacity: 1;
}

.c-slider__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 1;
}

.c-slider__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to left, rgba(201, 201, 201, 0.4), rgba(0, 0, 0, 0.4));
    z-index: 2;
}

.c-slider__dots {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 1.5rem;
    z-index: 10;
}

.c-slider__dot {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    border: none;
    background-color: #fff;
    opacity: 0.5;
    cursor: pointer;
    transition: opacity 0.3s;
}

.c-slider__dot.is-active {
    opacity: 1;
}

.c-mv-text {
    position: absolute;
    left: calc(50% - 59.4rem);
    top: 8.6rem;
    writing-mode: vertical-rl;
    z-index: 3;
    opacity: 0;
    transition: opacity 1.5s ease-out;
}

.c-mv-text.is-visible {
    opacity: 1;
    transition-delay: 0.5s;
}

.c-mv-text__line {
    font-size: 3rem;
    font-weight: 600;
    color: #fff;
    font-family: "Noto Serif JP", serif;
    text-shadow: 0 3px 6px rgba(0, 0, 0, 0.8);
    line-height: 1.8;
    letter-spacing: 2rem;
}

.c-mv-text__line:last-child {
    text-indent: 6.5rem;
}

.c-mv-buttons {
    position: absolute;
    right: calc(50% - 60rem);
    bottom: 2.5rem;
    display: flex;
    gap: 1.5rem;
    z-index: 10;
}

.c-mv-button {
    display: block;
    transition: opacity 0.3s;
}

.c-mv-button:hover {
    opacity: 0.8;
}

.c-mv-button--youtube img,
.c-mv-button--instagram img {
    width: 14rem;
    height: 4rem;
    object-fit: cover;
}

.c-mv-button--contact {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18rem;
    height: 3.5rem;
    background-color: #D5BE5F;
    border-radius: 0.5rem;
    color: #000;
    font-size: 1.6rem;
    font-weight: 700;
    text-decoration: none;
}

.c-mv-button--contact:hover {
    opacity: 0.8;
}

.c-mv-logo {
    position: absolute;
    right: calc(50% - 49.8rem);
    bottom: 11rem;
    width: 20.2rem;
    height: 19rem;
    z-index: 10;
}

.c-mv-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* News Section */
.l-news {
    width: 100vw;
    padding-top: 9rem;
    padding-bottom: 8rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

.l-news__inner {
    max-width: 119.6rem;
    margin: 0 auto;
}

.l-news-archive {
    width: 100vw;
    padding-top: 9rem;
    padding-bottom: 8rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

/* News Detail Page */
.l-news-detail {
    width: 100vw;
    padding-top: 9rem;
    padding-bottom: 8rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

.c-news-detail {
    width: 100rem;
    margin: 0 auto;
}

.c-news-detail__header {
    margin-bottom: 6rem;
}

.c-news-detail__date {
    font-size: 1.6rem;
    color: #000;
    display: block;
    margin-bottom: 2rem;
}

.c-news-detail__title {
    font-size: 3.4rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #000;
    line-height: 1.5;
}

.c-news-detail__content {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.c-news-detail__heading {
    font-size: 2.4rem;
    font-weight: bold;
    font-family: "Noto Serif JP", serif;
    color: #000;
    margin: 0;
}

.c-news-detail__text {
    font-size: 1.6rem;
    line-height: 1.8;
    color: #000;
}

.c-news-detail__images {
    display: grid;
    gap: 2rem;
}

.c-news-detail__images--two-col {
    grid-template-columns: repeat(2, 1fr);
}

.c-news-detail__images--one-col {
    grid-template-columns: 1fr;
}

.c-news-detail__image {
    width: 100%;
    overflow: hidden;
    border-radius: 1rem;
}

.c-news-detail__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Post Navigation */
.c-post-nav {
    display: flex;
    justify-content: center;
    gap: 3rem;
    margin-top: 6rem;
}

.c-post-nav__button {
    width: 15rem;
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background-color: #987A03;
    color: #fff;
    font-size: 1.4rem;
    font-weight: bold;
    text-decoration: none;
    border-radius: 1rem;
    transition: opacity 0.3s;
}

.c-post-nav__button:hover {
    opacity: 0.8;
}

.c-post-nav__arrow {
    font-size: 1.6rem;
}

.c-post-nav__text {
    font-size: 1.4rem;
    font-weight: bold;
}

/* Flow Section */
.l-flow {
    width: 100vw;
    padding-top: 9rem;
    padding-bottom: 8rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

.l-flow__inner {
    max-width: 120rem;
    margin: 0 auto;
    padding: 0;
}

/* Flow Notice */
.c-flow-notice {
    width: 100%;
    height: 5rem;
    background-color: #fff;
    border-top: 0.2rem solid #9D1534;
    border-bottom: 0.2rem solid #9D1534;
    display: flex;
    align-items: center;
    justify-content: center;
}

.c-flow-notice__text {
    font-size: 2.4rem;
    font-weight: bold;
    color: #9D1534;
    text-align: center;
}

.c-menu-calculator-notice {
    font-size: 1.6rem;
    font-weight: bold;
    color: #9D1534;
    text-align: center;
    padding: 2rem;
    max-width: 118.8rem;
    margin: 0 auto;
}

.c-flow-title {
    text-align: center;
    margin-bottom: 8rem;
}

.c-flow-title__main {
    font-size: 3.4rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 0.1rem solid #000;
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
}

.c-flow-title__icon {
    width: 3rem;
    height: 3rem;
    object-fit: contain;
}

.c-flow-title__sub {
    font-size: 2rem;
    font-weight: 500;
    font-family: "Noto Sans JP", sans-serif;
    color: #000;
    margin: 0;
}

.c-flow-steps {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8rem;
    position: relative;
}

.c-flow-step {
    position: relative;
    display: flex;
    align-items: center;
}

.c-flow-step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 18rem;
    transform: translateY(-50%);
    width: 8rem;
    height: 0.5rem;
    background-color: #987A03;
}

.c-flow-step__circle {
    width: 18rem;
    height: 18rem;
    border-radius: 50%;
    background-color: #987A03;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.c-flow-step__number {
    font-size: 2rem;
    font-weight: 500;
    color: #fff;
    margin: 0;
}

.c-flow-step__title {
    font-size: 2.6rem;
    font-weight: bold;
    color: #fff;
    margin: 0;
}

.c-flow-step__subtitle {
    font-size: 1.6rem;
    font-weight: 500;
    color: #fff;
    margin: 0;
}

.c-flow-detail {
    margin-top: 8rem;
    position: relative;
}

.c-flow-detail__line {
    position: absolute;
    width: 0.2rem;
    height: 60rem;
    background-color: #987A03;
    left: 4.4rem;
    top: 9rem;
    z-index: 1;
}

.c-flow-detail__heading {
    display: flex;
    align-items: center;
    width: max-content;
    margin: 0 0 6rem 0;
    padding-left: 0;
    gap: 0;
}

.c-flow-detail__circle {
    width: 9rem;
    height: 9rem;
    border-radius: 50%;
    background-color: #987A03;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.c-flow-detail__step {
    font-size: 2.2rem;
    color: #fff;
    line-height: 1;
}

.c-flow-detail__number {
    font-size: 2.6rem;
    color: #fff;
    line-height: 1;
}

.c-flow-detail__content {
    flex: 1;
    margin-left: 0;
    width: max-content;
    padding-right: 3.4rem;
}

.c-flow-detail__title {
    font-size: 3.4rem;
    color: #000;
    margin: 0;
    padding-left: 3rem;
    padding-bottom: 1rem;
    border-bottom: 0.2rem solid #987A03;
    line-height: 1.2;
}

.c-flow-detail__description {
    font-size: 1.6rem;
    color: #000;
    margin: 0;
    padding-left: 3rem;
    padding-top: 1rem;
    line-height: 1.5;
}

/* Flow Content */
.c-flow-content {
    width: 100rem;
    margin: 6rem auto 0;
}

.c-flow-content__item {
    display: flex;
    gap: 7rem;
    margin-bottom: 8rem;
    margin-left: 6.7rem;
    position: relative;
}


.c-flow-content__image {
    flex-shrink: 0;
    width: 50rem;
    height: 30rem;
    border-radius: 1rem;
    position: relative;
}

.c-flow-content__image>img {
    border-radius: 1rem;
}

.c-flow-content__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-flow-content__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center;
}

.c-flow-content__heading {
    font-size: 2.4rem;
    font-weight: bold;
    color: #000;
    margin: 0;
}

.c-flow-content__description {
    font-size: 1.6rem;
    color: #000;
    margin: 0;
    line-height: 1.8;
}

html[lang="en"] .c-flow-content__description {
    font-style: italic;
}

/* Flow Manners Title */
.c-flow-manners-title {
    font-size: 2.4rem;
    font-weight: bold;
    color: #000;
    text-align: center;
    margin: 6rem 0 4rem;
}

/* Flow Menu Grid */
.c-flow-menu-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    margin-top: 6rem;
    width: 100rem;
    margin-left: auto;
    margin-right: auto;
}

.c-flow-menu-grid--4col {
    grid-template-columns: repeat(4, 1fr);
}

.c-flow-menu-grid--payment .c-flow-menu-card__image {
    width: 26.3rem;
    height: 14.5rem;
    margin-left: auto;
    margin-right: auto;
}

.c-flow-menu-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
    background-color: #fff;
}

.c-flow-menu-card__image {
    width: 100%;
    height: 20rem;
    overflow: hidden;
    margin-bottom: 2rem;
}

.c-flow-menu-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-flow-menu-card__title {
    font-size: 2rem;
    font-weight: bold;
    color: #000;
    margin: 0 0 1rem 0;
    padding: 0 2rem;
}

.c-flow-menu-card__description {
    font-size: 1.6rem;
    color: #000;
    margin: 0;
    line-height: 1.8;
    padding: 0 2rem 2rem 2rem;
}

.c-section-title {
    font-size: 3.2rem;
    font-weight: 500;
    color: #000;
    text-align: center;
    margin-bottom: 11.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
}

.l-news .c-section-title::before {
    content: '';
    display: block;
    width: 6rem;
    height: 6rem;
    background-image: url('assets/images/icon_news.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.l-concept .c-section-title::before {
    content: '';
    display: block;
    width: 6rem;
    height: 6rem;
    background-image: url('assets/images/icon_concept.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.c-news {
    width: 50rem;
    margin: 0 auto 8rem;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}

.c-news--wide {
    width: 100rem;
}

.c-news__item {
    display: flex;
    align-items: baseline;
    gap: 2rem;
    padding-bottom: 2rem;
    position: relative;
    transition: opacity 0.3s;
}

.c-news__item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50rem;
    height: 0.1rem;
    background-color: #000;
}

.c-news--wide .c-news__item::after {
    width: 100rem;
}

.c-news__item:hover {
    opacity: 0.6;
}

.c-news__date {
    font-size: 1.6rem;
    color: #000;
    flex-shrink: 0;
}

.c-news__title {
    font-size: 1.8rem;
    font-weight: 400;
    color: #000;
    margin: 0;
}

/* Pagination */
.c-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    margin-top: 6rem;
}

.c-pagination__item {
    width: 3.5rem;
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    color: #000;
    font-size: 1.4rem;
    text-decoration: none;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
    transition: opacity 0.3s;
}

.c-pagination__item:hover {
    opacity: 0.6;
}

.c-pagination__item--arrow,
.c-pagination__item--current {
    background-color: #987A03;
    color: #fff;
}

.c-pagination__item--dots {
    cursor: default;
    pointer-events: none;
}

.c-pagination__item--dots:hover {
    opacity: 1;
}

.c-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37rem;
    height: 8rem;
    padding: 0 3rem;
    background-color: #987A03;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    margin: 0 auto;
    transition: opacity 0.3s;
    position: relative;
    border-radius: 1rem;
}

.c-button:hover {
    opacity: 0.6;
}

.c-button__text {
    text-align: center;
}

.c-button__arrow {
    font-size: 2rem;
    position: absolute;
    right: 3rem;
}

.c-button--flow {
    height: 6rem;
}

/* Concept Section */
.l-concept {
    width: 100vw;
    padding-top: 10.5rem;
    padding-bottom: 12.5rem;
    background-color: #FFFBF0;
    overflow: visible;
}

.l-concept__inner {
    max-width: 119.6rem;
    margin: 0 auto;
    padding: 8rem 0;
    overflow: visible;
}

.c-concept {
    width: 100rem;
    margin: 0 auto;
}

.c-concept__row {
    display: flex;
    align-items: center;
    gap: 4rem;
    position: relative;
}

.c-concept__row--reverse {
    flex-direction: row-reverse;
}

.c-concept__text {
    flex: 1;
    z-index: 2;
}

.c-concept__heading {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 3.3rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #000;
    margin-bottom: 3rem;
    padding-bottom: 1rem;
    border-bottom: 0.1rem solid #000;
}

.c-concept__heading-text {
    flex: 1;
}

.c-concept__heading-highlight {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 7.9rem;
    height: 7.7rem;
    font-size: 5.6rem;
    color: #fff;
    background-color: #000;
    border-radius: 0.5rem;
    line-height: 1.4;
}

.c-concept__description {
    font-size: 1.8rem;
    line-height: 1.8;
    color: #000;
}

.c-concept__image {
    position: relative;
    height: auto;
}

.c-concept__image--right {
    width: 50vw;
    height: 32.7vw;
    margin-right: calc(-50vw + 50rem);
}

.c-concept__image--left {
    width: 50vw;
    height: 32.7vw;
    margin-left: calc(-50vw + 50rem);
}

.c-concept__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-concept__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
    margin-top: 6rem;
    width: 119.4rem;
    margin-left: auto;
    margin-right: auto;
}

.c-concept__card {
    display: flex;
    flex-direction: column;
}

.c-concept__card-image {
    width: 57.4rem;
    height: 28.4rem;
    overflow: hidden;
    margin-bottom: 2rem;
    border-radius: 1rem 1rem 0 0;
}

.c-concept__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-concept__card-title {
    font-size: 2rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #000;
    margin-bottom: 1.5rem;
    text-align: center;
    padding-left: 0;
}

.c-concept__card-text {
    font-size: 1.4rem;
    line-height: 1.8;
    color: #000;
    text-align: left;
}

/* Menu Section */
.l-menu {
    width: 100vw;
    padding-top: 9rem;
    padding-bottom: 8rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

.l-menu__inner {
    max-width: 119.6rem;
    margin: 0 auto;
    padding: 0;
}

.l-menu .c-section-title::before {
    content: '';
    display: block;
    width: 6rem;
    height: 6rem;
    background-image: url('assets/images/icon_menu.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.c-menu-grid {
    width: 100%;
    margin: 0 0 8rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 0rem;
    row-gap: 4.5rem;
}

.c-menu-grid--home {
    width: 100rem;
    margin: 0 auto 8rem;
    grid-template-columns: repeat(4, 1fr);
}

.c-menu-grid--home .c-menu-item__image {
    width: 32.1rem;
    height: 22.8rem;
}

.c-menu-grid--home .c-menu-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-menu-grid--home .c-menu-item__title::before {
    display: none;
}

.c-menu-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    transition: opacity 0.3s;
}

.c-menu-item:hover {
    opacity: 0.6;
}

.c-menu-item__image {
    position: relative;
    width: 24rem;
    height: 17rem;
    overflow: hidden;
    margin-bottom: 2rem;
    border-radius: 1rem;
}

.c-menu-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-menu-item__label {
    position: absolute;
    right: 2.2rem;
    bottom: 1rem;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 3.2rem;
    font-weight: 900;
    color: #fff;
    text-align: right;
    text-shadow: 2px 2px 5px #000;
    -webkit-text-stroke: 0.5rem #000;
    paint-order: stroke fill;
    line-height: 1.2;
}

.c-menu-item__title {
    font-size: 1.8rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #3E2D0F;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.c-menu-item__title::before {
    content: '';
    display: block;
    width: 2.4rem;
    height: 2.4rem;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.c-menu-item:nth-child(1) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu01.png');
}

.c-menu-item:nth-child(2) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu02.png');
}

.c-menu-item:nth-child(3) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu03.png');
}

.c-menu-item:nth-child(4) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu04.png');
}

.c-menu-item:nth-child(5) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu05.png');
}

.c-menu-item:nth-child(6) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu06.png');
}

.c-menu-item:nth-child(7) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu07.png');
}

.c-menu-item:nth-child(8) .c-menu-item__title::before {
    background-image: url('assets/images/icon_menu08.png');
}

/* Store Section */
.l-store {
    width: 100vw;
    padding-top: 9rem;
    padding-bottom: 9rem;
    background-image: url('assets/images/img_bg01.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    position: relative;
}

.l-store__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 1;
}

.l-store__inner {
    max-width: 119.6rem;
    margin: 0 auto;
    padding: 0;
    position: relative;
    z-index: 2;
}

.c-section-title--white {
    color: #fff;
}


.l-store .c-section-title::before {
    content: '';
    display: block;
    width: 6rem;
    height: 6rem;
    background-image: url('assets/images/icon_store.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.c-store-content {
    display: flex;
    gap: 4rem;
    align-items: flex-start;
}

.c-store-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.c-store-info__title {
    font-size: 2.4rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #fff;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 0.1rem solid #fff;
}

.c-store-info__text {
    color: #fff;
    margin-bottom: 4rem;
    flex-grow: 1;
}

.c-store-info__text p {
    line-height: 2;
}

.l-store .c-button {
    margin: 0;
}

.c-store-map {
    flex: 1;
    display: flex;
    gap: 2rem;
}

.c-store-map__embed {
    flex-shrink: 0;
}

.c-store-map__embed iframe {
    width: 100%;
    height: 40rem;
    max-width: 50rem;
    border-radius: 1rem;
}

.c-store-map__images {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.c-store-map__image {
    width: 28rem;
    height: 19.4rem;
    overflow: hidden;
    border-radius: 1.5rem;
}

.c-store-map__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Contact Section */
.l-contact {
    width: 100vw;
    padding-top: 10.5rem;
    padding-bottom: 12.5rem;
    background-color: #FFFBF0;
}

.l-contact__inner {
    max-width: 119.6rem;
    margin: 0 auto;
    padding: 0;
}

.l-contact .c-section-title::before {
    content: '';
    display: block;
    width: 6rem;
    height: 6rem;
    background-image: url('assets/images/icon_contact.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.c-contact__notice {
    font-size: 2.4rem;
    color: #9D1534;
    text-align: center;
    margin-top: 4rem;
    margin-bottom: 4rem;
}

.c-contact-form {
    width: 68rem;
    margin: 0 auto;
}

.c-form-row {
    margin-bottom: 3rem;
}

.c-form-row--3col {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.c-form-row--2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

.c-form-field {
    display: flex;
    flex-direction: column;
}

.c-form-label {
    font-size: 1.6rem;
    color: #000;
    margin-bottom: 1rem;
    font-weight: 500;
}

.c-form-required {
    color: #9D1534;
    font-size: 1.2rem;
    margin-left: 0.5rem;
}

.c-form-note {
    color: #666;
    font-size: 1.2rem;
    margin-left: 0.5rem;
    font-weight: normal;
}

.wpcf7-form-control {
    width: 100%;
    padding: 1.2rem 1.5rem;
    font-size: 1.6rem;
    border: 0.1rem solid #ccc;
    border-radius: 0.5rem;
    background-color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    transition: border-color 0.3s;
    box-shadow: inset 0 3px 6px rgba(21, 19, 19, 0.27);
}

.wpcf7-form-control:focus {
    outline: none;
    border-color: #9D1534;
}

.wpcf7-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M10.293 3.293L6 7.586 1.707 3.293A1 1 0 00.293 4.707l5 5a1 1 0 001.414 0l5-5a1 1 0 10-1.414-1.414z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.5rem center;
    background-size: 1.2rem;
    padding-right: 4rem;
    cursor: pointer;
}

.wpcf7-textarea {
    resize: vertical;
    min-height: 15rem;
}

.c-form-submit {
    text-align: center;
    margin-top: 8rem;
}

.c-form-submit p {
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.c-form-submit .c-button {
    margin: 0 auto;
}

/* ContactForm7 送信ボタン */
.c-form-submit .wpcf7-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37rem;
    height: 8rem;
    padding: 0 3rem;
    background-color: #987A03;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    border: none;
    border-radius: 1rem;
    cursor: pointer;
    transition: opacity 0.3s;
    font-family: "Noto Sans JP", sans-serif;
}

.c-form-submit .wpcf7-submit:hover {
    opacity: 0.6;
}

/* ContactForm7 スピナー */
.c-form-submit .wpcf7-spinner {
    margin: 0;
    position: absolute;
    right: -5rem;
}

.c-form-notice {
    width: 100rem;
    margin: 8rem auto 0;
    text-align: left;
}

.c-form-notice p {
    font-size: 1.4rem;
    line-height: 1.8;
    color: #000;
}

.c-form-notice strong {
    color: #000;
}

.c-form-notice__list {
    list-style: disc;
    padding-left: 2rem;
    margin-top: 2rem;
}

.c-form-notice__list li {
    font-size: 1.4rem;
    line-height: 1.8;
    color: #000;
    margin-bottom: 1rem;
}

.c-form-notice__highlight {
    color: #9D1534;
    font-weight: bold;
}

.c-form-notice ul {
    list-style: disc;
    padding-left: 2rem;
    margin-top: 2rem;
}

.c-form-notice ul li {
    font-size: 1.4rem;
    line-height: 1.8;
    color: #000;
    margin-bottom: 0;
}

.c-form-notice ul li:last-child {
    color: #9D1534;
}

/* Recruit Section */
.l-recruit {
    width: 100vw;
    padding-top: 6.5rem;
    padding-bottom: 8.5rem;
    background-image: url('assets/images/img_bg02.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    position: relative;
}

.l-recruit__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 1;
}

.l-recruit__inner {
    max-width: 119.6rem;
    margin: 0 auto;
    padding: 0;
    position: relative;
    z-index: 2;
}

.l-recruit .c-section-title::before {
    content: '';
    display: block;
    width: 6rem;
    height: 6rem;
    background-image: url('assets/images/icon_recruit.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.c-recruit-table {
    width: 66.4rem;
    margin: 0 auto;
}

.c-recruit-table table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 2rem 2rem;
}

.c-recruit-table th {
    width: 16.3rem;
    height: 5.8rem;
    background-color: #987A03;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    text-align: center;
    vertical-align: middle;
    border-radius: 1rem 0 0 1rem;
    padding: 0 1rem;
}

.c-recruit-table td {
    background-color: transparent;
    border: 0.2rem solid #987A03;
    color: #fff;
    font-size: 1.6rem;
    padding: 1.5rem 2rem;
    vertical-align: middle;
    border-radius: 0 1rem 1rem 0;
}

/* Menu Page Main Visual */
.l-menu-mainvisual {
    width: 100vw;
    height: 27.8vw;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 8rem;
    background-image: url('assets/images/img_mv-menu.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

.l-menu-mainvisual__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to left, rgba(62, 45, 15, 0.4), rgba(89, 76, 52, 0.4));
    z-index: 1;
}

.l-menu-mainvisual__title {
    font-size: 5rem;
    font-weight: 500;
    color: #fff;
    position: relative;
    z-index: 2;
    text-shadow: 0 3px 6px #000000;
}

.l-menu-mainvisual--news {
    background-image: url('assets/images/img_mv-news.jpg');
}

.l-menu-mainvisual--flow {
    background-image: url('assets/images/img_mv-flow.jpg');
}

/* Menu Page Section */
.l-menu-page {
    width: 100vw;
    padding-top: 4rem;
    padding-bottom: 4rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

.l-menu-page__inner {
    max-width: 120rem;
    margin: 0 auto;
}

/* Breadcrumb */
.c-breadcrumb {
    margin-bottom: 4rem;
    text-align: right;
}

.c-breadcrumb__list {
    display: inline-flex;
    gap: 1rem;
    list-style: none;
}

.c-breadcrumb__item {
    font-size: 1.4rem;
    color: #000;
}

.c-breadcrumb__item:not(:last-child)::after {
    content: '>';
    margin-left: 1rem;
}

.c-breadcrumb__item a {
    color: #000;
    text-decoration: none;
}

.c-breadcrumb__item a:hover {
    text-decoration: underline;
    opacity: 1;
}

/* Menu Navigation */
.c-menu-nav {
    display: flex;
    justify-content: space-between;
    gap: 0;
}

.c-menu-nav__button {
    width: 14rem;
    height: 4rem;
    background-color: #987A03;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.5rem;
    text-decoration: none;
    position: relative;
    border-radius: 1rem 1rem 0 0;
    transition: opacity 0.3s;
}

.c-menu-nav__button:hover {
    opacity: 0.8;
}

.c-menu-nav__button::after {
    content: '';
    position: absolute;
    bottom: 0.5rem;
    left: 0;
    width: 10.8rem;
    height: 0.1rem;
    background-color: #fff;
    border: 0.1rem solid #fff;
}

.c-menu-nav__text {
    font-size: 1.4rem;
    font-weight: 500;
}

.c-menu-nav__arrow {
    font-size: 1.6rem;
}

/* Menu Section */
.l-menu-section {
    width: 100vw;
    padding-top: 7.5rem;
    padding-bottom: 9rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

.l-menu-section__inner {
    width: 100rem;
    margin: 0 auto;
    padding: 0;
}

.c-menu-section-title {
    font-size: 2.4rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #000;
    position: relative;
    margin-bottom: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

/* Menu Subcategory Title */
.c-menu-subcategory-title {
    width: 38rem;
    height: 5rem;
    background-color: #fff;
    border: 0.1rem solid #000;
    border-radius: 2.5rem;
    font-family: "Noto Serif JP", serif;
    font-weight: 700;
    font-size: 2rem;
    color: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 4rem;
}

.c-menu-subcategory {
    margin-bottom: 6rem;
}

.c-menu-subcategory:last-child {
    margin-bottom: 0;
}

.l-menu-section--alt {
    background-color: #FFFBF0;
    background-image: none !important;
}

/* Menu Grid */
.c-menu-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 1.7rem;
    row-gap: 4rem;
    margin-bottom: 8rem;
}

.c-menu-grid--hidden {
    display: grid;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin-bottom: 0;
    transition: max-height 0.6s ease-out, opacity 0.6s ease-out, margin-bottom 0.6s ease-out;
}

.c-menu-grid--hidden.is-open {
    max-height: 2000rem;
    opacity: 1;
    margin-bottom: 8rem;
}

/* Menu Card */
.c-menu-card {
    display: flex;
    flex-direction: column;
}

.c-menu-card__image {
    width: 32rem;
    height: 20rem;
    background-color: #fff;
    position: relative;
    overflow: hidden;
    border-radius: 1rem 1rem 0 0;
}

.c-menu-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.c-menu-card__title {
    position: absolute;
    bottom: 0;
    left: 0;
    display: inline-block;
    width: auto;
    padding: 1rem 1.5rem;
    background-color: rgba(0, 0, 0, 0.5);
    font-size: 1.6rem;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
    color: #fff;
    margin: 0;
}

.c-menu-card__content {
    width: 32rem;
    background-color: #fff;
    padding: 2rem;
}

.c-menu-card__description {
    font-size: 1.4rem;
    line-height: 1.8;
    color: #000;
    margin-bottom: 1.5rem;
    word-break: break-word;
    overflow-wrap: break-word;
}

.c-menu-card__price {
    font-size: 1.6rem;
    font-family: "Noto Sans JP", sans-serif;
    color: #000;
    font-weight: bold;
    text-align: right;
    margin-bottom: 1rem;
}

.c-menu-card__order {
    width: 32rem;
    height: 2.5rem;
    background-color: #000;
    padding: 0 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.c-menu-card__quantity {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.c-quantity-btn {
    width: 3rem;
    height: 2.5rem;
    background-color: #000;
    color: #fff;
    border: none;
    border-radius: 0;
    font-size: 2rem;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
}

.c-quantity-btn:hover {
    opacity: 0.8;
}

.c-quantity-value {
    font-size: 1.6rem;
    font-weight: bold;
    color: #fff;
    min-width: 2rem;
    text-align: center;
}

.c-menu-card__total {
    font-size: 1.8rem;
    font-weight: bold;
    color: #fff;
}

/* Accordion Button */
.c-accordion-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37rem;
    height: 8rem;
    padding: 0 3rem;
    background-color: #987A03;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    margin: 4rem auto 0;
    transition: opacity 0.3s;
    position: relative;
    border-radius: 1rem;
    border: none;
    cursor: pointer;
}

.c-accordion-button:hover {
    opacity: 0.6;
}

.c-accordion-button__text {
    text-align: center;
}

.c-accordion-button__arrow {
    position: absolute;
    right: 3rem;
    width: 1rem;
    height: 1rem;
    transition: transform 0.3s;
}

.c-accordion-button__arrow::after {
    content: '';
    display: block;
    width: 1rem;
    height: 1rem;
    border-bottom: 0.2rem solid #fff;
    border-right: 0.2rem solid #fff;
    transform: rotate(45deg);
    margin-top: -0.3rem;
}

.c-accordion-button.is-open .c-accordion-button__arrow::after {
    transform: rotate(-135deg);
}

/* Order Summary */
.c-order-summary {
    position: fixed;
    bottom: 3rem;
    left: 50%;
    transform: translateX(-50%);
    width: 100rem;
    height: 12rem;
    background-color: #000;
    padding: 1rem;
    z-index: 100;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}

.c-order-summary--visible {
    opacity: 1;
    visibility: visible;
}

.c-order-summary__inner {
    width: 100%;
    height: 100%;
    border: 0.1rem solid #fff;
    padding: 0 4rem;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.c-order-summary__total {
    display: flex;
    align-items: center;
    gap: 3rem;
}

.c-order-summary__label {
    font-size: 2.4rem;
    color: #fff;
    font-weight: 700;
}

.c-order-summary__price {
    font-size: 4.8rem;
    color: #fff;
    font-weight: 700;
}

.c-order-summary__actions {
    display: flex;
    align-items: center;
}

.c-order-summary__reset {
    width: 20rem;
    height: 4rem;
    text-align: center;
    background-color: #987A03;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    border: none;
    cursor: pointer;
    transition: opacity 0.3s;
}

.c-order-summary__reset:hover {
    opacity: 0.8;
}

/* Spacer */
.l-spacer {
    width: 100vw;
    height: 7rem;
    background-image: url('assets/images/img_back.png');
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: top center;
}

/* Footer */
.l-footer {
    width: 100vw;
    height: 41vw;
    background-image: url('assets/images/img_bgfooter.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.l-footer__content {
    width: 60.8rem;
    display: flex;
    align-items: center;
    gap: 4rem;
}

.c-footer-logo {
    flex-shrink: 0;
}

.c-footer-logo img {
    width: 25.5rem;
    height: 28rem;
    object-fit: contain;
}

.c-footer-logo__tel {
    color: #fff;
    margin-top: 3rem;
    margin-left: 0.6rem;
}

.c-footer-info p {
    font-size: 2rem;
    font-family: "Noto Serif JP", serif;
    line-height: 2;
    color: #fff;
}

.l-footer__copyright {
    position: absolute;
    bottom: 3rem;
    left: 0;
    width: 100%;
    text-align: center;
}

.l-footer__copyright p {
    font-size: 1.6rem;
    color: #fff;
}

/* Scroll Fade In Animation */
.js-fadein {
    opacity: 0;
    transition: opacity 1s ease-out;
}

.js-fadein.is-visible {
    opacity: 1;
}

/* Responsive Utility Classes */
.sp-only {
    display: none;
}

.pc-only {
    display: block;
}

/* PC用：スマホ専用要素を非表示 */
.c-nav__item--buttons {
    display: none;
}

.c-language-fixed {
    display: none;
}

/* ==========================================================================
   Responsive Design (Mobile)
   ========================================================================== */
@media screen and (max-width: 768px) {

    /* 100vw要素を100%に変更（スクロールバー対策） */
    .l-mainvisual,
    .l-store,
    .l-recruit,
    .l-contact,
    .l-footer,
    .l-menu-mainvisual,
    .l-flow-mainvisual,
    .l-news-detail-mainvisual {
        width: 100%;
    }

    /* Main Visual */
    .l-mainvisual {
        height: calc(100vh - 8rem);
    }

    .c-mv-text {
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        height: max-content;
    }

    .c-mv-buttons {
        display: none;
    }

    /* News Section */
    .l-news {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .l-news-archive {
        padding-top: 0;
    }

    .c-section-title {
        font-size: 2.2rem;
        margin-bottom: 6rem;
    }

    .l-news .c-section-title::before,
    .l-concept .c-section-title::before,
    .l-menu .c-section-title::before,
    .l-store .c-section-title::before,
    .l-contact .c-section-title::before,
    .l-recruit .c-section-title::before {
        width: 4.5rem;
        height: 4.5rem;
    }

    .c-news {
        width: 35.4rem;
        margin: 0 auto;
    }

    .c-news__item {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        padding-bottom: 3rem;
    }

    .c-news__item::before {
        content: '';
        position: absolute;
        right: 0;
        bottom: 1.5rem;
        width: 4.3rem;
        height: 0.6rem;
        background-image: url('assets/images/icon_news-arrow.png');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }

    .c-news__date {
        color: #9D1534;
    }

    .c-news__item::after,
    .c-news--wide .c-news__item::after {
        width: 100%;
    }

    .c-button {
        width: 35.4rem;
        height: 7.5rem;
        margin-top: 8rem;
        margin-left: auto;
        margin-right: auto;
    }

    /* Concept Section */
    .l-concept {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .c-concept {
        width: 35.4rem;
        margin: 0 auto;
    }

    .c-concept__row {
        flex-direction: column;
        gap: 3rem;
    }

    .c-concept__row--reverse {
        flex-direction: column;
        margin-top: 8rem;
    }

    .c-concept__heading {
        font-size: 2.8rem;
        justify-content: center;
    }

    .c-concept__heading-highlight {
        width: 6.2rem;
        height: 6.1rem;
        font-size: 4.6rem;
        align-items: flex-end;
        justify-content: center;
    }

    .c-concept__image--right,
    .c-concept__image--left {
        width: 100%;
        height: 23.1rem;
        margin: 0;
    }

    .c-concept__grid {
        width: 35.4rem;
        margin: 0 auto;
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    .c-concept__card {
        width: 100%;
    }

    .c-concept__card-image {
        width: 100%;
        height: auto;
        aspect-ratio: 32 / 19.4;
        border-radius: 1rem 1rem 0 0;
    }

    .c-concept__card-image img {
        height: auto;
    }

    /* Menu Section */
    .l-menu-mainvisual {
        height: 16.9rem;
    }

    .l-menu-mainvisual__overlay {
        height: 16.9rem;
    }

    .l-menu-mainvisual__title {
        font-size: 3.6rem;
    }

    .l-menu {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .c-menu-grid {
        width: 35.4rem;
        margin: 0 auto;
        column-gap: 0;
        grid-template-columns: 1fr;
        justify-content: space-between;
    }

    .c-menu-grid--home {
        width: 35.4rem;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
        margin-bottom: 0;
    }

    .c-menu-grid--home .c-menu-item__image {
        width: 100%;
        height: auto;
        aspect-ratio: 17 / 12;
    }

    .c-menu-grid--hidden.is-open {
        margin-top: 4rem;
    }

    .c-menu-item {
        width: 17rem;
    }

    .c-menu-card {
        width: 100%;
    }

    .c-menu-item__image,
    .c-menu-card__image,
    .c-menu-card__content,
    .c-menu-card__title,
    .c-menu-card__description,
    .c-menu-card__price,
    .c-menu-card__order,
    .c-menu-card__quantity,
    .c-menu-card__total {
        width: 100%;
    }

    .c-menu-item__image {
        height: auto;
        aspect-ratio: 24 / 17;
    }

    .c-menu-item__title {
        font-size: 1.4rem;
        margin-bottom: 0;
    }

    .c-menu-nav {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 1rem;
        row-gap: 4rem;
    }

    .c-menu-nav__button {
        width: 17rem;
        height: 4.8rem;
    }

    .l-menu-page__inner {
        width: 35.4rem;
        margin: 0 auto;
    }

    .l-menu-section__inner {
        width: 35.4rem;
        margin: 0 auto;
        padding: 0;
    }

    .c-breadcrumb {
        width: 35.4rem;
        margin: 0 auto 4rem;
    }

    .c-accordion-button {
        width: 35.4rem;
        margin: 8.8rem auto 0;
    }

    .l-news-detail {
        padding-top: 0;
    }

    .c-news-detail {
        width: 35.4rem;
        margin: 0 auto;
    }

    .c-news-detail__title {
        margin-bottom: 1.5rem;
    }

    .c-news-detail__images--two-col {
        grid-template-columns: 1fr;
    }

    .c-news-detail__image {
        width: 100%;
    }

    .l-flow {
        padding-top: 0;
    }

    .l-flow__inner {
        width: 35.4rem;
        margin: 0 auto;
        padding: 0;
    }

    .c-flow-content {
        width: 35.4rem;
        margin: 6rem auto 0;
    }

    .c-flow-content__item {
        flex-direction: column;
        margin-left: 0;
        gap: 4rem;
    }

    .c-flow-content__image {
        width: 100%;
        height: auto;
    }

    .c-flow-detail__line {
        display: none;
    }

    .c-flow-detail__heading {
        width: 100%;
    }

    .c-flow-detail__circle {
        width: 6.9rem;
        height: 6.9rem;
    }

    .c-flow-detail__step,
    .c-flow-detail__number {
        font-size: 1.8rem;
        font-weight: 500;
    }

    .c-flow-detail__content {
        padding-right: 0;
    }

    .c-flow-detail__title {
        font-size: 2.3rem;
        padding-left: 0.5rem;
        font-weight: 500;
    }

    .c-flow-detail__description {
        font-size: 1.4rem;
        padding-left: 0.5rem;
        font-weight: 500;
    }

    .c-flow-menu-grid {
        width: 35.4rem;
        margin-left: auto;
        margin-right: auto;
    }

    .c-flow-notice {
        height: auto;
        padding: 1.5rem 2rem;
    }

    .c-flow-notice__text {
        font-size: 1.6rem;
    }

    .c-flow-steps {
        gap: 2.2rem;
        padding-top: 4rem;
    }

    .c-flow-step:not(:last-child)::after {
        left: 10.3rem;
        width: 2.2rem;
        height: 0.2rem;
    }

    .c-flow-step__circle {
        width: 10.3rem;
        height: 10.3rem;
        gap: 0;
    }

    .c-flow-step__number {
        font-size: 1.6rem;
    }

    .c-flow-step__title {
        font-size: 1.8rem;
    }

    .c-flow-step__subtitle {
        font-size: 1.4rem;
    }

    .c-order-summary {
        width: 35.4rem;
        bottom: 9rem;
        height: 18rem;
    }

    .c-order-summary__inner {
        flex-direction: column;
        justify-content: center;
        gap: 1.5rem;
        padding: 2rem 3rem;
    }

    .c-order-summary__total {
        width: 100%;
        height: 15rem;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        gap: 0;
    }

    .c-order-summary__label {
        font-size: 1.8rem;
    }

    .c-order-summary__price {
        font-size: 3.2rem;
    }

    .c-order-summary__actions {
        width: 100%;
    }

    .c-order-summary__reset {
        width: 100%;
    }

    .c-menu-section-title::before {
        display: none;
    }

    .c-menu-subcategory-title {
        width: 35.4rem;
        height: 4.5rem;
        font-size: 1.8rem;
    }

    /* Store Section */
    .l-store {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .c-store-content {
        width: 35.4rem;
        margin: 0 auto;
        flex-direction: column;
        gap: 4rem;
    }

    .c-store-info__text {
        margin-bottom: 3rem;
    }

    .c-store-map {
        flex-direction: column;
        gap: 2rem;
    }

    .c-store-map__embed {
        height: 48.2rem;
    }

    .c-store-map__embed iframe {
        max-width: 100%;
        height: 100%;
    }

    .c-store-map__images {
        flex-direction: column;
        gap: 1rem;
    }

    .c-store-map__image {
        width: 100%;
        height: auto;
        aspect-ratio: 28 / 19.4;
    }

    /* Contact Section */
    .l-contact {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .c-contact__notice {
        font-size: 1.4rem;
    }

    .c-contact-form {
        width: 35.4rem;
        margin: 0 auto;
    }

    .c-form-row--3col {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .c-form-row--2col {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .c-form-row {
        margin-bottom: 2rem;
    }

    .c-form-submit {
        margin-top: 4rem;
    }

    .c-form-submit .wpcf7-submit {
        width: 35.4rem;
        height: 7.5rem;
        font-size: 1.6rem;
    }

    .c-form-submit .wpcf7-spinner {
        position: static;
        margin-left: 1rem;
    }

    .c-form-notice {
        width: 35.4rem;
        margin: 0 auto;
        margin-top: 8rem;
    }

    /* Recruit Section */
    .l-recruit {
        padding-top: 6rem;
        padding-bottom: 6rem;
        background-position: -125rem;
    }

    .c-recruit-table {
        width: 35.4rem;
        margin: 0 auto;
    }

    .c-recruit-table table {
        border-spacing: 0 1.5rem;
    }

    .c-recruit-table th,
    .c-recruit-table td {
        display: block;
        width: 100%;
        border-radius: 0.5rem;
    }

    .c-recruit-table th {
        height: auto;
        padding: 1.5rem 1rem;
        margin-bottom: 1rem;
    }

    .c-recruit-table td {
        margin-bottom: 1.5rem;
    }

    /* Footer */
    .l-footer {
        height: auto;
        padding: 7rem 2rem 13rem;
        background-position: -85rem;
    }

    .l-footer__content {
        width: 35.4rem;
        margin: 0 auto;
        flex-direction: column;
        gap: 5rem;
        text-align: left;
    }

    .c-footer-logo img {
        width: 22.3rem;
        height: auto;
    }

    .l-footer__copyright {
        bottom: 2rem;
        font-size: 1.4rem;
    }

    .c-footer-info {
        width: 100%;
    }

    .c-footer-info p {
        font-size: 1.6rem;
    }

    .wpcf7-spinner {
        display: none;
    }

    .c-mv-button--youtube,
    .c-mv-button--instagram {
        display: none;
    }

    .c-nav__sns-button--youtube,
    .c-nav__sns-button--instagram {
        display: none !important;
    }

    /* Responsive Utility Classes */
    .sp-only {
        display: block;
    }

    .pc-only {
        display: none;
    }

    /* スマホ用ナビゲーションボタン */
    .c-nav__item--buttons {
        display: block;
        margin-top: 4rem;
    }

    .c-nav__buttons {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2rem;
    }

    .c-nav__sns-button {
        display: block;
    }

    .c-nav__sns-button img {
        width: 18rem;
        height: 5.25rem;
        object-fit: cover;
    }

    .c-nav__contact-button {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 22.5rem;
        height: 4.5rem;
        background-color: #D5BE5F;
        border-radius: 0.75rem;
        color: #000;
        font-size: 1.8rem;
        font-weight: 700;
        text-decoration: none;
    }

    /* PC用言語セレクターを非表示 */
    .c-nav__item--language {
        display: none;
    }

    /* スマホ用画面下固定言語セレクター */
    .c-language-fixed {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        padding: 1.5rem 2rem;
        background-color: rgba(255, 255, 255, 0.95);
        border-top: 0.1rem solid #ddd;
        z-index: 10001;
    }

    .c-language-fixed__select {
        width: 100%;
        padding: 1.2rem 1.5rem;
        font-size: 1.6rem;
        font-family: "Noto Sans JP", sans-serif;
        border: 0.1rem solid #9D1534;
        border-radius: 0.5rem;
        background-color: #fff;
        color: #000;
        appearance: none;
        background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%239D1534"><path d="M7 10l5 5 5-5z"/></svg>');
        background-repeat: no-repeat;
        background-position: right 1rem center;
        background-size: 2rem;
    }
}

/* ================================================
   Menu List - 2 Column Layout
   ================================================ */
.c-menu-list-wrapper {
    display: flex;
    gap: 4rem;
}

.c-menu-list-column {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.c-menu-list-item {
    padding: 1.5rem 0;
    border-bottom: 1px solid #ddd;
}

.c-menu-list-item:last-child {
    border-bottom: none;
}

.c-menu-list-item__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.c-menu-list-item__name {
    font-family: "Noto Serif JP", serif;
    font-size: 1.8rem;
    font-weight: 700;
    color: #333;
    flex: 1;
    min-width: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
    margin-bottom: 0;
    padding-left: 0;
}

.c-menu-list-item__price {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: #987A03;
    white-space: nowrap;
    flex-shrink: 0;
}

.c-menu-list-item__order {
    display: none;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    margin-top: 0.8rem;
}

.c-menu-list-item__quantity {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.c-menu-list-item__quantity .c-quantity-btn {
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid #987A03;
    border-radius: 50%;
    background-color: #fff;
    color: #987A03;
    font-size: 1.4rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s, color 0.3s;
}

.c-menu-list-item__quantity .c-quantity-btn:hover {
    background-color: #987A03;
    color: #fff;
}

.c-menu-list-item__quantity .c-quantity-value {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    min-width: 2rem;
    text-align: center;
    color: #000;
}

.c-menu-list-item__total {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: #333;
    min-width: 5rem;
    text-align: right;
}

.c-menu-list-item__description {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.3rem;
    color: #666;
    line-height: 1.6;
    margin-top: 0.8rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
}


/* レスポンシブ - スマホ（768px以下） */
@media screen and (max-width: 768px) {
    .c-menu-list-wrapper {
        flex-direction: column;
        gap: 0;
    }

    .c-menu-list-column {
        width: 100%;
    }

    .c-menu-list-item {
        padding: 1.2rem 0;
    }

    .c-menu-list-item__name {
        font-size: 1.4rem;
    }

    .c-menu-list-item__price {
        font-size: 1.4rem;
    }

    .c-menu-list-item__description {
        font-size: 1.2rem;
        margin-top: 0.6rem;
    }

    .c-menu-list-item__quantity .c-quantity-btn {
        width: 2.2rem;
        height: 2.2rem;
        font-size: 1.2rem;
    }

    .c-menu-list-item__quantity .c-quantity-value {
        font-size: 1.2rem;
    }

    .c-menu-list-item__total {
        font-size: 1.2rem;
    }

    .c-menu-item__label {
        font-size: 2rem;
        right: 1rem;
        bottom: 0.5rem;
    }
}

/* ================================================
   英語表示時のMVテキストスタイル
   ================================================ */
html[lang="en"] .c-mv-text {
    writing-mode: horizontal-tb;
    left: calc(50% - 59.4rem);
    top: auto;
    bottom: 10rem;
    transform: none;
    text-align: left;
}

html[lang="en"] .c-mv-text__line {
    letter-spacing: 0.2rem;
    display: block;
}

html[lang="en"] .c-mv-text__line:last-child {
    text-indent: 0;
}

/* スマホ時の英語MVテキスト */
@media screen and (max-width: 768px) {
    html[lang="en"] .c-mv-text {
        left: 2rem;
        bottom: 8rem;
        transform: none;
        width: auto;
    }

    html[lang="en"] .c-mv-text__line {
        font-size: 2rem;
        letter-spacing: 0.1rem;
    }
}

/* Menu Gallery - 不揃いな写真配置 */
.c-menu-gallery {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: auto auto;
    gap: 1.5rem;
    margin-bottom: 6rem;
    max-width: 100rem;
    margin-left: auto;
    margin-right: auto;
}

.c-menu-gallery__item {
    position: relative;
    overflow: hidden;
    border-radius: 1rem;
    height: 22rem;
}

.c-menu-gallery__label {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    font-family: "Noto Serif JP", serif;
    font-size: 1.8rem;
    font-weight: 500;
    color: #fff;
    text-align: right;
    text-shadow: 2px 2px 5px #000;
    -webkit-text-stroke: 0.4rem #000;
    paint-order: stroke fill;
    line-height: 1.2;
}

.c-menu-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
    .c-menu-gallery {
        gap: 0.8rem;
        margin-bottom: 4rem;
    }

    .c-menu-gallery__label {
        font-size: 1.6rem;
        right: 1rem;
        bottom: 0.5rem;
        -webkit-text-stroke: 0.3rem #000;
    }
}

/* 3枚用ギャラリー - 3カラム均等 */
.c-menu-gallery--3items {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto;
    height: auto;
}

.c-menu-gallery--3items .c-menu-gallery__item:nth-child(1) {
    grid-column: 1;
}

.c-menu-gallery--3items .c-menu-gallery__item:nth-child(2) {
    grid-column: 2;
}

.c-menu-gallery--3items .c-menu-gallery__item:nth-child(3) {
    grid-column: 3;
}

@media screen and (max-width: 768px) {
    .c-menu-gallery--3items {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto auto;
    }

    .c-menu-gallery--3items .c-menu-gallery__item:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }

    .c-menu-gallery--3items .c-menu-gallery__item:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
    }

    .c-menu-gallery--3items .c-menu-gallery__item:nth-child(3) {
        grid-column: 1 / 3;
        grid-row: 2;
        height: 20rem;
    }
}

/* 4枚用ギャラリー - 4カラム均等 */
.c-menu-gallery--4items {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: auto;
    height: auto;
}

.c-menu-gallery--4items .c-menu-gallery__item:nth-child(1) {
    grid-column: 1;
}

.c-menu-gallery--4items .c-menu-gallery__item:nth-child(2) {
    grid-column: 2;
}

.c-menu-gallery--4items .c-menu-gallery__item:nth-child(3) {
    grid-column: 3;
}

.c-menu-gallery--4items .c-menu-gallery__item:nth-child(4) {
    grid-column: 4;
}

@media screen and (max-width: 768px) {
    .c-menu-gallery--4items {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto auto;
    }

    .c-menu-gallery--4items .c-menu-gallery__item:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }

    .c-menu-gallery--4items .c-menu-gallery__item:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
    }

    .c-menu-gallery--4items .c-menu-gallery__item:nth-child(3) {
        grid-column: 1;
        grid-row: 2;
    }

    .c-menu-gallery--4items .c-menu-gallery__item:nth-child(4) {
        grid-column: 2;
        grid-row: 2;
    }
}

/* 5枚用ギャラリー - 上段2カラム、下段3カラム */
.c-menu-gallery--5items {
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: auto auto;
    height: auto;
}

.c-menu-gallery--5items .c-menu-gallery__item:nth-child(1) {
    grid-column: 1 / 4;
    grid-row: 1;
    height: 25rem;
}

.c-menu-gallery--5items .c-menu-gallery__item:nth-child(2) {
    grid-column: 4 / 7;
    grid-row: 1;
    height: 25rem;
}

.c-menu-gallery--5items .c-menu-gallery__item:nth-child(3) {
    grid-column: 1 / 3;
    grid-row: 2;
}

.c-menu-gallery--5items .c-menu-gallery__item:nth-child(4) {
    grid-column: 3 / 5;
    grid-row: 2;
}

.c-menu-gallery--5items .c-menu-gallery__item:nth-child(5) {
    grid-column: 5 / 7;
    grid-row: 2;
}

@media screen and (max-width: 768px) {
    .c-menu-gallery__item {
        height: 12rem;
    }

    .c-menu-gallery--5items {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto auto auto;
    }

    .c-menu-gallery--5items .c-menu-gallery__item:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
        height: 12rem;
    }

    .c-menu-gallery--5items .c-menu-gallery__item:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
        height: 12rem;
    }

    .c-menu-gallery--5items .c-menu-gallery__item:nth-child(3) {
        grid-column: 1;
        grid-row: 2;
    }

    .c-menu-gallery--5items .c-menu-gallery__item:nth-child(4) {
        grid-column: 2;
        grid-row: 2;
    }

    .c-menu-gallery--5items .c-menu-gallery__item:nth-child(5) {
        grid-column: 1 / 3;
        grid-row: 3;
        height: 20rem;
    }
}

/* Thanks Page */
.l-thanks {
    width: 100vw;
    padding-top: 8rem;
    padding-bottom: 12rem;
    background-color: #FFFBF0;
}

.l-thanks__inner {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.c-thanks-box {
    background-color: #fff;
    border-radius: 1rem;
    padding: 6rem 4rem;
    text-align: center;
    box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.08);
}

.c-thanks-box__icon {
    width: 8rem;
    height: 8rem;
    margin: 0 auto 3rem;
    color: #4CAF50;
}

.c-thanks-box__icon svg {
    width: 100%;
    height: 100%;
}

.c-thanks-box__title {
    font-family: "Noto Serif JP", serif;
    font-size: 2.8rem;
    font-weight: 500;
    color: #000;
    margin-bottom: 3rem;
}

.c-thanks-box__message {
    font-size: 1.6rem;
    line-height: 2;
    color: #333;
    margin-bottom: 1rem;
}

.c-thanks-box__note {
    font-size: 1.4rem;
    line-height: 1.8;
    color: #666;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #eee;
}

.c-thanks-box__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 4rem;
}

/* Thanks Page - スマホ対応 */
@media screen and (max-width: 768px) {
    .l-thanks {
        padding-top: 6rem;
        padding-bottom: 8rem;
    }

    .c-thanks-box {
        padding: 4rem 2rem;
    }

    .c-thanks-box__icon {
        width: 6rem;
        height: 6rem;
        margin-bottom: 2rem;
    }

    .c-thanks-box__title {
        font-size: 2.2rem;
        margin-bottom: 2rem;
    }

    .c-thanks-box__message {
        font-size: 1.4rem;
    }

    .c-thanks-box__note {
        font-size: 1.2rem;
    }

    .c-thanks-box__button {
        margin-top: 3rem;
    }
}

/* Confirm Page */
.l-confirm {
    width: 100vw;
    padding-top: 8rem;
    padding-bottom: 12rem;
    background-color: #FFFBF0;
}

.l-confirm__inner {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 2rem;
}

.c-confirm-box {
    background-color: #fff;
    border-radius: 1rem;
    padding: 6rem 4rem;
    text-align: center;
    box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.08);
}

.c-confirm-box__icon {
    width: 8rem;
    height: 8rem;
    margin: 0 auto 3rem;
    color: #9D1534;
}

.c-confirm-box__icon svg {
    width: 100%;
    height: 100%;
}

.c-confirm-box__title {
    font-family: "Noto Serif JP", serif;
    font-size: 2.8rem;
    font-weight: 500;
    color: #000;
    margin-bottom: 2rem;
}

.c-confirm-box__message {
    font-size: 1.6rem;
    line-height: 1.8;
    color: #333;
    margin-bottom: 4rem;
}

.c-confirm-box__content {
    text-align: left;
    border-top: 1px solid #eee;
    padding-top: 3rem;
}

/* Contact Form 7 確認画面用スタイル */
.c-confirm-box__content .wpcf7-form {
    max-width: 60rem;
    margin: 0 auto;
}

.c-confirm-box__content .wpcf7-form>p,
.c-confirm-box__content .wpcf7-form .c-form-row,
.c-confirm-box__content .wpcf7-form .c-form-row--3col,
.c-confirm-box__content .wpcf7-form .c-form-row--2col {
    display: flex;
    flex-direction: column;
}

.c-confirm-box__content .wpcf7-form .c-form-row--3col .c-form-field,
.c-confirm-box__content .wpcf7-form .c-form-row--2col .c-form-field,
.c-confirm-box__content .wpcf7-form .c-form-row .c-form-field,
.c-confirm-box__content .wpcf7-form .c-form-field {
    padding: 2rem 0;
    border-bottom: 1px solid #eee;
    margin: 0;
}

.c-confirm-box__content .wpcf7-form p {
    display: flex;
    flex-direction: column;
    padding: 2rem 0;
    border-bottom: 1px solid #eee;
    margin: 0;
}

.c-confirm-box__content .wpcf7-form p:last-of-type,
.c-confirm-box__content .wpcf7-form .c-form-field:last-child {
    border-bottom: none;
}

.c-confirm-box__content .wpcf7-form label,
.c-confirm-box__content .wpcf7-form .c-form-label {
    font-weight: 500;
    color: #666;
    font-size: 1.3rem;
    margin-bottom: 0.8rem;
    display: block;
}

.c-confirm-box__content .wpcf7-form .c-form-label .c-form-required,
.c-confirm-box__content .wpcf7-form .c-form-label .c-form-note {
    display: none;
}

.c-confirm-box__content .wpcf7-form .wpcf7-form-control-wrap {
    font-size: 1.6rem;
    color: #000;
    line-height: 1.6;
    display: block;
}

.c-confirm-box__content .wpcf7-form input[type="number"],
.c-confirm-box__content .wpcf7-form input[type="date"],
.c-confirm-box__content .wpcf7-form input[type="text"],
.c-confirm-box__content .wpcf7-form input[type="tel"],
.c-confirm-box__content .wpcf7-form input[type="email"],
.c-confirm-box__content .wpcf7-form select,
.c-confirm-box__content .wpcf7-form textarea {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    font-size: 1.6rem;
    color: #000;
    width: 100%;
    pointer-events: none;
}

.c-confirm-box__content .wpcf7-form input[type="submit"],
.c-confirm-box__content .wpcf7-form .wpcf7-submit {
    display: block;
    width: 30rem;
    margin: 4rem auto 0;
    padding: 1.8rem 0;
    background-color: #987A03;
    color: #fff;
    border: none;
    border-radius: 1rem;
    font-size: 1.6rem;
    font-weight: 500;
    cursor: pointer;
    transition: opacity 0.3s ease;
    text-align: center;
}

.c-confirm-box__content .wpcf7-form input[type="submit"]:hover,
.c-confirm-box__content .wpcf7-form .wpcf7-submit:hover {
    opacity: 0.8;
}

.c-confirm-box__content .wpcf7-form input[type="button"],
.c-confirm-box__content .wpcf7-form .wpcf7-previous {
    display: block;
    width: 30rem;
    margin: 1.5rem auto 0;
    padding: 1.8rem 0;
    background-color: #666;
    color: #fff;
    border: none;
    border-radius: 1rem;
    font-size: 1.6rem;
    font-weight: 500;
    cursor: pointer;
    transition: opacity 0.3s ease;
    text-align: center;
}

.c-confirm-box__content .wpcf7-form input[type="button"]:hover,
.c-confirm-box__content .wpcf7-form .wpcf7-previous:hover {
    opacity: 0.8;
}

/* Confirm Page - スマホ対応 */
@media screen and (max-width: 768px) {
    .l-confirm {
        padding-top: 6rem;
        padding-bottom: 8rem;
    }

    .c-confirm-box {
        padding: 4rem 2rem;
    }

    .c-confirm-box__icon {
        width: 6rem;
        height: 6rem;
        margin-bottom: 2rem;
    }

    .c-confirm-box__title {
        font-size: 2.2rem;
        margin-bottom: 1.5rem;
    }

    .c-confirm-box__message {
        font-size: 1.4rem;
        margin-bottom: 3rem;
    }

    .c-confirm-box__content .wpcf7-form p {
        padding: 1.5rem 0;
    }

    .c-confirm-box__content .wpcf7-form label {
        font-size: 1.2rem;
    }

    .c-confirm-box__content .wpcf7-form .wpcf7-form-control-wrap {
        font-size: 1.4rem;
    }

    .c-confirm-box__content .wpcf7-form input[type="submit"],
    .c-confirm-box__content .wpcf7-form .wpcf7-submit,
    .c-confirm-box__content .wpcf7-form input[type="button"],
    .c-confirm-box__content .wpcf7-form .wpcf7-previous {
        width: 100%;
        padding: 1.5rem 0;
        font-size: 1.4rem;
    }
}

/* ===========================================
 * 季節限定バッジ
 * =========================================== */
.c-menu-badge {
    display: inline-block;
    font-size: 1rem;
    font-weight: 700;
    padding: 0.2em 0.6em;
    margin-left: 0.5em;
    border-radius: 3px;
    vertical-align: middle;
    white-space: nowrap;
}

.c-menu-badge--winter {
    background-color: #c41e3a;
    color: #fff;
}

.c-menu-badge--summer {
    background-color: #0077b6;
    color: #fff;
}

@media screen and (max-width: 768px) {
    .c-menu-badge {
        font-size: 0.9rem;
        padding: 0.15em 0.5em;
        margin-left: 0.3em;
    }
}

/* ===========================================
 * 英語・繁体字表示時のメニューセクションタイトル
 * =========================================== */
html[lang="en"] .c-menu-section-title,
html[lang="zh-tw"] .c-menu-section-title {
    text-align: center;
}