@charset "UTF-8";
/*==========================================================================
# reset - ブラウザの差異や不要なスタイルを無くすためのスタイル
========================================================================== */
* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

li,
dd {
  list-style-type: none;
}

header,
footer,
nav,
section,
article,
aside,
figure,
figcaption {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
}

a {
  cursor: pointer;
  text-decoration: none;
}

.pc {
  display: none;
}
@media (min-width: 992px) {
  .pc {
    display: inline;
  }
}

.sp {
  display: inline;
}
@media (min-width: 992px) {
  .sp {
    display: none;
  }
}

/* 1.0rem = 10px */
html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  background-color: #f8f5ee;
  color: #362b24;
  font-weight: 400;
  font-family: "Noto Sans JP", "Helvetica Neue", "Hiragino Sans", "ヒラギノ角ゴシック", YuGothic, "Yu Gothic", Meiryo, sans-serif;
  overflow-x: hidden;
  line-height: 1.8;
  padding-bottom: 96px;
}
@media (min-width: 992px) {
  body {
    padding-bottom: 0;
  }
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
}

em {
  font-style: normal;
}

a {
  cursor: pointer;
  transition: opacity 0.2s linear;
  text-decoration: none;
  color: inherit;
}
a:hover {
  opacity: 0.75;
}

ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
p {
  margin: 0;
}

address {
  font-style: normal;
}

/* ===== Brand Colors（WIX貼り付け時の共通カラー） ===== */
/* Section vertical spacing (~10% tighter) */
/***********************************************
header — Baby's Breath
************************************************/
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 900;
  transition: background-color 0.35s ease, box-shadow 0.35s ease, color 0.35s ease;
}

.l-header.is-scrolled,
.l-header--solid {
  background-color: rgba(248, 245, 238, 0.94);
  box-shadow: 0 1px 0 rgba(54, 43, 36, 0.08);
  backdrop-filter: blur(8px);
}

/* 最上段：営業時間・定休日（控えめ・トンマナ合わせ） */
.l-header__hours {
  background: rgba(248, 245, 238, 0.88);
  color: #5e534b;
  text-align: center;
  padding: 5px 12px;
  border-bottom: 1px solid rgba(54, 43, 36, 0.08);
  backdrop-filter: blur(6px);
  transition: background-color 0.35s ease, border-color 0.35s ease;
}
.l-header.is-scrolled .l-header__hours, .l-header--solid .l-header__hours {
  background: transparent;
  border-bottom-color: rgba(54, 43, 36, 0.06);
}

.l-header__hours-inner {
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.5;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 2px 0;
}
@media (min-width: 992px) {
  .l-header__hours-inner {
    font-size: 1.15rem;
    letter-spacing: 0.08em;
  }
}

.l-header__hours-sep {
  margin: 0 0.5em;
  color: #c29e6b;
  opacity: 0.7;
  font-weight: 400;
}

.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  height: 64px;
  padding: 0 16px;
  max-width: 1440px;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .l-header__inner {
    height: 80px;
    padding: 0 24px;
    gap: 16px;
  }
}

.l-header__logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: #fff;
  transition: color 0.35s ease;
  flex-shrink: 0;
}
@media (min-width: 992px) {
  .l-header__logo {
    font-size: 2.2rem;
  }
}
.l-header.is-scrolled .l-header__logo, .l-header--solid .l-header__logo {
  color: #362b24;
}

.l-header__logo-name {
  white-space: nowrap;
}

.l-header__logo-back {
  display: inline-block;
  margin-top: 3px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.3;
  white-space: nowrap;
  opacity: 0.88;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
}
.l-header.is-scrolled .l-header__logo-back, .l-header--solid .l-header__logo-back {
  border-bottom-color: rgba(54, 43, 36, 0.28);
}
@media (min-width: 992px) {
  .l-header__logo-back {
    font-size: 1.1rem;
    margin-top: 4px;
    /* PCはナビに「レストランTOPへ」を出すため、ロゴ下はSPのみ */
    display: none;
  }
}

/* SPヘッダー右：WEB予約 + ハンバーガー */
.l-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex-shrink: 0;
}
@media (min-width: 992px) {
  .l-header__actions {
    display: none;
  }
}

a.l-header__web-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  background: #bd5833;
  color: #fff !important;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  white-space: nowrap;
  border-radius: 2px;
  transition: background 0.25s ease, opacity 0.2s ease;
}
@media (min-width: 992px) {
  a.l-header__web-btn {
    display: none;
  }
}
a.l-header__web-btn:hover {
  background: #a24019;
  opacity: 1;
}

/* ========== PCナビ ========== */
.l-header__nav {
  display: none;
}
@media (min-width: 992px) {
  .l-header__nav {
    display: flex;
    align-items: center;
    gap: 4px 6px;
    margin-left: auto;
    margin-right: 0;
  }
}

.l-header__nav-list {
  display: flex;
  align-items: center;
  gap: 0 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.l-header__nav-item {
  position: relative;
}

.l-header__nav-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 10px 7px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #fff;
  white-space: nowrap;
  transition: color 0.35s ease, opacity 0.2s ease;
}
@media (min-width: 1200px) {
  .l-header__nav-link {
    padding: 10px 10px;
    font-size: 1.25rem;
  }
}
.l-header.is-scrolled .l-header__nav-link, .l-header--solid .l-header__nav-link {
  color: #362b24;
}
.l-header__nav-link:hover {
  opacity: 0.8;
}
.l-header__nav-link[aria-current=page] {
  color: #c29e6b;
}
.l-header.is-scrolled .l-header__nav-link[aria-current=page], .l-header--solid .l-header__nav-link[aria-current=page] {
  color: #bd5833;
}
.l-header__nav-link .l-header__nav-arrow {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  margin-top: 2px;
  transition: transform 0.25s ease;
}

.l-header__nav-item.is-open .l-header__nav-arrow,
.l-header__nav-item:hover .l-header__nav-arrow {
  transform: rotate(180deg);
}

a.l-header__nav-sub {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 12px;
  margin-left: 6px;
  background: transparent;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.88);
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 2px;
  white-space: nowrap;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, opacity 0.2s ease;
}
@media (min-width: 1200px) {
  a.l-header__nav-sub {
    padding: 0 14px;
    font-size: 1.25rem;
  }
}
.l-header.is-scrolled a.l-header__nav-sub, .l-header--solid a.l-header__nav-sub {
  color: #bd5833 !important;
  border-color: #bd5833;
}
a.l-header__nav-sub:hover {
  background: #bd5833;
  border-color: #bd5833;
  color: #fff !important;
  opacity: 1;
}

a.l-header__nav-reserve {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  padding: 0 14px;
  margin-left: 6px;
  background: #bd5833;
  color: #fff !important;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  border-radius: 2px;
  white-space: nowrap;
  transition: background 0.25s ease, opacity 0.2s ease;
}
@media (min-width: 1200px) {
  a.l-header__nav-reserve {
    padding: 0 16px;
    font-size: 1.25rem;
  }
}
a.l-header__nav-reserve:hover {
  background: #a24019;
  opacity: 1;
}

/* 団体ページ：ヘッダーの予約ボタンを宴会・お問い合わせに */
.l-header--party a.l-header__web-btn,
.l-header--party a.l-header__nav-reserve {
  flex-direction: column;
  flex-shrink: 0;
  gap: 0;
  height: auto;
  min-height: 40px;
  padding: 5px 10px;
  line-height: 1.25;
  letter-spacing: 0.02em;
  font-size: 1.15rem;
  white-space: normal;
  text-align: center;
}
.l-header--party a.l-header__web-btn span,
.l-header--party a.l-header__nav-reserve span {
  display: block;
  line-height: 1.25;
  white-space: nowrap;
}
@media (max-width: 380px) {
  .l-header--party a.l-header__web-btn {
    padding: 4px 8px;
    font-size: 1.05rem;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .l-header--party .l-header__nav-link {
    padding: 8px 4px;
    font-size: 1.1rem;
    letter-spacing: 0.02em;
  }
  .l-header--party a.l-header__nav-sub {
    margin-left: 4px;
    padding: 0 8px;
    font-size: 1.1rem;
  }
}

/* ドロップダウン */
.l-header__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 200px;
  padding: 10px 0;
  background: #fdfcf8;
  box-shadow: 0 12px 32px rgba(54, 43, 36, 0.14);
  border: 1px solid rgba(54, 43, 36, 0.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
  z-index: 910;
}
.l-header__dropdown::before {
  content: "";
  position: absolute;
  top: -10px;
  left: 0;
  right: 0;
  height: 10px;
}

.l-header__nav-item:hover .l-header__dropdown,
.l-header__nav-item.is-open .l-header__dropdown,
.l-header__nav-item:focus-within .l-header__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.l-header__dropdown a {
  display: block;
  padding: 10px 22px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.35rem;
  letter-spacing: 0.04em;
  color: #362b24;
  white-space: nowrap;
  text-align: left;
}
.l-header__dropdown a:hover {
  background: rgba(189, 88, 51, 0.08);
  color: #bd5833;
  opacity: 1;
}

/* ========== ハンバーガー ========== */
.drawer-icon {
  width: 44px;
  height: 44px;
  position: relative;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
  flex-shrink: 0;
}
@media (min-width: 992px) {
  .drawer-icon {
    display: none;
  }
}

.drawer-bars {
  display: block;
  width: 24px;
  height: 14px;
  position: relative;
}

.drawer-bar {
  position: absolute;
  right: 0;
  left: 0;
  display: block;
  background: #fff;
  width: 100%;
  height: 1.5px;
  border-radius: 2px;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), top 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease, background 0.3s ease;
}
.l-header.is-scrolled .drawer-bar, .l-header--solid .drawer-bar {
  background: #362b24;
}
.drawer-bar:nth-of-type(1) {
  top: 0;
}
.drawer-bar:nth-of-type(2) {
  top: 6px;
}
.drawer-bar:nth-of-type(3) {
  top: 12px;
}
.is-checked .drawer-bar {
  background: #362b24 !important;
}
.is-checked .drawer-bar:nth-of-type(1) {
  top: 6px;
  transform: rotate(-45deg);
}
.is-checked .drawer-bar:nth-of-type(2) {
  opacity: 0;
}
.is-checked .drawer-bar:nth-of-type(3) {
  top: 6px;
  transform: rotate(45deg);
}

.drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: 998;
  background: rgba(26, 26, 25, 0.45);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.45s ease, visibility 0.45s ease;
}
@media (min-width: 992px) {
  .drawer-overlay {
    display: none;
  }
}
.drawer-overlay.is-checked {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.drawer-content-cover {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(88vw, 380px);
  z-index: 999;
  padding: 80px 0 48px;
  background: #fdfcf8;
  box-shadow: -12px 0 36px rgba(40, 36, 30, 0.12);
  transform: translateX(105%);
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.55s;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 992px) {
  .drawer-content-cover {
    display: none;
  }
}
.drawer-content-cover.is-checked {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0s;
}

.l-header__hamburger-menu {
  padding: 0 24px 24px;
}

.l-drawer__ctas {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
}

a.l-drawer__reserve {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 52px;
  margin-bottom: 0;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  border-radius: 2px;
  transition: background 0.25s ease, opacity 0.2s ease;
}
a.l-drawer__reserve:hover {
  background: #a24019;
  opacity: 1;
}
a.l-drawer__reserve.--wrap {
  height: auto;
  min-height: 52px;
  padding: 12px 14px;
  letter-spacing: 0.04em;
  line-height: 1.45;
  text-align: center;
}

a.l-drawer__textlink {
  display: block;
  padding: 2px 8px;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5;
  text-align: center;
  color: #5e534b !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
a.l-drawer__textlink:hover {
  color: #bd5833 !important;
  opacity: 1;
}
a.l-drawer__textlink.--small {
  font-size: 1.2rem;
  font-weight: 400;
  color: #74716b !important;
}

a.l-drawer__sub {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 52px;
  background: transparent;
  color: #bd5833 !important;
  border: 1.5px solid #bd5833;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 2px;
  transition: background 0.25s ease, color 0.25s ease, opacity 0.2s ease;
}
a.l-drawer__sub:hover {
  background: #bd5833;
  color: #fff !important;
  opacity: 1;
}

.l-drawer__group {
  border-bottom: 1px solid rgba(54, 43, 36, 0.1);
}
.l-drawer__group:last-child {
  border-bottom: none;
}

.l-drawer__group-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 0;
  font-family: "Noto Serif JP", serif;
  font-size: 1.55rem;
  letter-spacing: 0.06em;
  color: #362b24;
  text-align: left;
  cursor: pointer;
}
.l-drawer__group-btn::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid #362b24;
  border-bottom: 1.5px solid #362b24;
  transform: rotate(45deg);
  transition: transform 0.3s ease;
  flex-shrink: 0;
  margin-right: 4px;
}
.l-drawer__group-btn.is-open::after {
  transform: rotate(-135deg);
  margin-top: 4px;
}

a.l-drawer__link {
  display: block;
  padding: 16px 0;
  font-family: "Noto Serif JP", serif;
  font-size: 1.55rem;
  letter-spacing: 0.06em;
  color: #362b24;
}
a.l-drawer__link:hover {
  color: #bd5833;
  opacity: 1;
}

a.l-drawer__link--stack {
  padding: 12px 0 14px;
}

.l-drawer__link-sub {
  display: block;
  margin: 0 0 3px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: rgba(54, 43, 36, 0.4);
}

a.l-drawer__link:hover .l-drawer__link-sub {
  color: rgba(54, 43, 36, 0.4);
}

.l-drawer__group-label {
  display: block;
  padding: 18px 0 8px;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #74716b;
}

.l-drawer__group-body {
  display: none;
  padding: 0 0 12px 4px;
}

.l-drawer__group-body a,
.l-drawer__flat a {
  display: block;
  padding: 11px 0 11px 8px;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  color: #5e534b;
  border-bottom: none;
  position: relative;
}
.l-drawer__group-body a::before,
.l-drawer__flat a::before {
  content: "・";
  position: absolute;
  left: -4px;
  color: #bd5833;
}
.l-drawer__group-body a:hover,
.l-drawer__flat a:hover {
  color: #bd5833;
  opacity: 1;
}

.l-drawer__flat {
  padding-bottom: 8px;
}

/* お電話についてのご案内（ドロワー） */
.l-drawer__tel-guide {
  margin-top: 16px;
  padding: 16px 14px;
  background: rgba(54, 43, 36, 0.04);
  border-radius: 4px;
  text-align: left;
}

.l-drawer__tel-guide-title {
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 10px;
}

.l-drawer__tel-guide-text {
  font-size: 1.2rem;
  line-height: 1.75;
  color: #5e534b;
  margin-bottom: 12px;
}

.l-drawer__tel-guide-num {
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 4px;
}
.l-drawer__tel-guide-num a {
  color: inherit !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.l-drawer__tel-guide-num a::before {
  content: none !important;
}

.l-drawer__tel-guide-hours {
  font-size: 1.15rem;
  line-height: 1.6;
  color: #74716b;
}

.l-drawer__contact {
  padding: 20px 0;
}
.l-drawer__contact .l-drawer__tel-guide-title {
  margin-bottom: 10px;
}
.l-drawer__contact .l-drawer__tel-guide-num {
  margin-bottom: 6px;
}
.l-drawer__contact .l-drawer__tel-guide-hours {
  margin-bottom: 12px;
}

.l-drawer__tel-guide-note {
  font-size: 1.15rem;
  line-height: 1.75;
  color: #74716b;
}

.l-drawer__group--muted {
  margin-top: 4px;
}

.l-drawer__group--muted .l-drawer__tel-guide-note {
  padding: 14px 0 0;
  margin: 0;
}

.l-drawer__group-btn--muted {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.35rem;
  letter-spacing: 0.04em;
  color: #74716b;
}
.l-drawer__group-btn--muted::after {
  border-right-color: #74716b;
  border-bottom-color: #74716b;
  opacity: 0.7;
}

.l-drawer__before {
  margin-bottom: 12px;
}
.l-drawer__before .l-drawer__group-label {
  padding: 0 0 4px 8px;
}

.l-drawer__group-body .l-drawer__before a::before {
  content: "→";
  left: -8px;
  font-size: 1.1rem;
}

.l-drawer__group-body .l-drawer__tel-guide-num {
  padding-left: 8px;
  margin-bottom: 6px;
}

.l-drawer__group-body .l-drawer__tel-guide-hours {
  padding-left: 8px;
  padding-bottom: 4px;
}

.l-drawer__legal {
  padding: 12px 0 8px;
}
.l-drawer__legal a {
  display: block;
  padding: 8px 0;
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  color: #74716b;
}
.l-drawer__legal a:hover {
  color: #bd5833;
  opacity: 1;
}

body.is-drawer-open {
  overflow: hidden;
}

/***********************************************
footer — Baby's Breath
************************************************/
.l-footer {
  background: #1a1a19;
  color: #e1ded7;
  padding: 43px 20px 32px;
  text-align: center;
}
@media (min-width: 992px) {
  .l-footer {
    padding: 50px 40px 36px;
  }
}

.l-footer__inner {
  max-width: 900px;
  margin: 0 auto;
}

.l-footer__brand {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.4rem;
  letter-spacing: 0.06em;
  color: #fff;
  margin-bottom: 10px;
}

.l-footer__official {
  margin: 0 0 20px;
}
.l-footer__official a {
  font-size: 1.3rem;
  letter-spacing: 0.06em;
  color: #e8e2d6;
  border-bottom: 1px solid rgba(232, 226, 214, 0.45);
}
.l-footer__official a:hover {
  color: #fff;
  border-bottom-color: #fff;
  opacity: 1;
}

.l-footer__channels {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 28px;
}
.l-footer__channels a {
  font-size: 1.25rem;
  color: #c9c5bd;
  letter-spacing: 0.04em;
}
.l-footer__channels a:hover {
  color: #fff;
  opacity: 1;
}

.l-footer__channels-sep {
  color: #74716b;
  font-size: 1.2rem;
}

.l-footer__tel-guide {
  max-width: 520px;
  margin: 0 auto 28px;
  padding: 16px 16px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  text-align: center;
}

.l-footer__tel-guide-title {
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #fff;
  margin-bottom: 8px;
}

.l-footer__before {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 4px 10px;
  margin-bottom: 14px;
}
.l-footer__before a {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #c9c5bd;
  border-bottom: 1px solid rgba(201, 197, 189, 0.4);
}
.l-footer__before a:hover {
  color: #fff;
  border-bottom-color: #fff;
  opacity: 1;
}

.l-footer__before-sep {
  color: #74716b;
  font-size: 1.2rem;
}

a.l-footer__reserve-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 280px;
  min-height: 48px;
  margin: 0 auto 20px;
  padding: 12px 24px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.28);
  transition: background 0.2s ease, opacity 0.2s ease;
}
a.l-footer__reserve-btn:hover {
  background: #a24019;
  opacity: 1;
}

.l-footer__tel-guide-text {
  font-size: 1.2rem;
  line-height: 1.8;
  color: #a8a49c;
  margin-bottom: 10px;
}

.l-footer__tel-guide-num {
  font-size: 1.3rem;
  letter-spacing: 0.06em;
  color: #a8a49c;
  margin-bottom: 4px;
}
.l-footer__tel-guide-num a {
  color: inherit !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.l-footer__tel-guide-num a:hover {
  color: #fff !important;
  opacity: 1;
}

.l-footer__tel-guide-hours {
  font-size: 1.15rem;
  color: #74716b;
  letter-spacing: 0.04em;
}

.l-footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 24px;
  margin-bottom: 16px;
}
.l-footer__legal a {
  font-size: 1.2rem;
  color: #a8a49c;
  letter-spacing: 0.04em;
}
.l-footer__legal a:hover {
  color: #fff;
  opacity: 1;
}

.l-footer__entity {
  font-size: 1.15rem;
  line-height: 1.7;
  color: #a8a49c;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
}

.l-footer__copy {
  font-size: 1.1rem;
  color: #74716b;
  letter-spacing: 0.04em;
}

/* 整理版フッター（index-party.html で試作） */
.l-footer--simple {
  padding: 40px 20px 32px;
}
@media (min-width: 992px) {
  .l-footer--simple {
    padding: 48px 40px 36px;
  }
}
.l-footer--simple .l-footer__brand {
  margin-bottom: 18px;
}
.l-footer--simple .l-footer__legal {
  margin-bottom: 22px;
  gap: 8px 10px;
}

/* 団体ページ：区分フッター（他ページの l-footer--simple とは別） */
.l-footer--cols {
  padding: 22px 20px 18px;
  text-align: left;
}
@media (min-width: 992px) {
  .l-footer--cols {
    padding: 26px 40px 20px;
  }
}

.l-footer-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 20px;
  max-width: 980px;
  margin: 0 auto 14px;
}
@media (min-width: 992px) {
  .l-footer-cols {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 28px;
    margin-bottom: 16px;
  }
}
.l-footer-cols__title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #fff;
  margin: 0 0 6px;
}
.l-footer-cols ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.l-footer-cols li + li {
  margin-top: 3px;
}
.l-footer-cols a {
  font-size: 1.25rem;
  line-height: 1.45;
  letter-spacing: 0.02em;
  color: #c9c5bd;
}
.l-footer-cols a:hover {
  color: #fff;
  opacity: 1;
}
.l-footer-cols__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 2px 8px;
  margin: 0 auto 6px;
  max-width: 980px;
  text-align: center;
}
.l-footer-cols__legal a {
  font-size: 1.15rem;
  letter-spacing: 0.02em;
  color: #a8a49c;
}
.l-footer-cols__legal a:hover {
  color: #fff;
  opacity: 1;
}
.l-footer-cols__sep {
  color: #74716b;
  font-size: 1.1rem;
}
.l-footer-cols__copy {
  margin: 0;
  text-align: center;
  font-size: 1.1rem;
  color: #74716b;
  letter-spacing: 0.04em;
}

.l-footer__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 16px;
}
.l-footer__nav a {
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  color: #e8e2d6;
}
.l-footer__nav a:hover {
  color: #fff;
  opacity: 1;
}

.l-footer__nav-sep {
  color: #74716b;
  font-size: 1.2rem;
}

/***********************************************
SP固定バー — WEB予約 / GoogleMap
WEB予約を一番目立たせる（電話はハンバーガー・フッターのご案内のみ）
************************************************/
.l-footer-cv {
  display: flex;
  align-items: stretch;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 800;
  gap: 6px;
  padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
  background: rgba(248, 245, 238, 0.97);
  border-top: 1px solid #d1cdc7;
  backdrop-filter: blur(8px);
  box-shadow: 0 -4px 20px rgba(54, 43, 36, 0.08);
}
@media (min-width: 992px) {
  .l-footer-cv {
    display: none;
  }
}

.l-footer-cv__main {
  flex: 2.2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  min-width: 0;
}

.l-footer-cv__micro {
  margin: 0;
  padding: 0 4px;
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.3;
  text-align: center;
  color: #5e534b;
}

a.l-footer-cv__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-height: 52px;
  padding: 6px 4px;
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 2px;
  line-height: 1.3;
  transition: background 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
  /* 電話・マップ：控えめ */
  /* WEB予約：一番目立たせる */
}
a.l-footer-cv__btn .l-footer-cv__icon {
  display: block;
  width: 18px;
  height: 18px;
  margin-bottom: 1px;
}
a.l-footer-cv__btn.--tel, a.l-footer-cv__btn.--map {
  flex: 0.85;
  align-self: stretch;
  background: transparent;
  color: #362b24 !important;
  border: 1px solid #d1cdc7;
}
a.l-footer-cv__btn.--tel:hover, a.l-footer-cv__btn.--map:hover {
  background: rgba(54, 43, 36, 0.04);
  opacity: 1;
}
a.l-footer-cv__btn.--quiet {
  flex: 1 1 0;
  align-self: stretch;
  background: transparent;
  color: #362b24 !important;
  border: 1px solid #d1cdc7;
  box-shadow: none;
}
a.l-footer-cv__btn.--quiet:hover {
  background: rgba(54, 43, 36, 0.04);
  opacity: 1;
}
a.l-footer-cv__btn.--web {
  flex: none;
  width: 100%;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  box-shadow: 0 3px 10px rgba(54, 43, 36, 0.16);
  min-height: 48px;
}
a.l-footer-cv__btn.--web:hover {
  background: #a24019;
  opacity: 1;
  box-shadow: 0 5px 14px rgba(54, 43, 36, 0.2);
}

/* 宴会ページ：お問い合わせ / Web予約 / 電話 */
.l-footer-cv--party .l-footer-cv__main {
  flex-direction: row;
  align-items: stretch;
  gap: 6px;
}
.l-footer-cv--party a.l-footer-cv__btn.--web,
.l-footer-cv--party a.l-footer-cv__btn.--quiet {
  width: auto;
  min-width: 0;
  min-height: 48px;
  font-size: 1.15rem;
  letter-spacing: 0.02em;
  line-height: 1.25;
  padding: 6px 4px;
}
.l-footer-cv--party a.l-footer-cv__btn.--web {
  flex: 1.6 1 0;
  font-weight: 700;
}
.l-footer-cv--party a.l-footer-cv__btn.--quiet {
  flex: 0.85 1 0;
  font-weight: 500;
}

.c-inner__center {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

.c-inner__left {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;
  text-align: left;
}

/* ===== セクション共通見出し（WIX区切り用） ===== */
.c-sec-heading {
  text-align: center;
  margin-bottom: 36px;
}
@media (min-width: 992px) {
  .c-sec-heading {
    margin-bottom: 50px;
  }
}

.c-sec-heading__en {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #bd5833;
  margin-bottom: 10px;
}
@media (min-width: 992px) {
  .c-sec-heading__en {
    font-size: 1.6rem;
  }
}

.c-sec-heading__jp {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2.6rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.08em;
  line-height: 1.4;
  position: relative;
  display: inline-block;
  padding-bottom: 16px;
}
@media (min-width: 992px) {
  .c-sec-heading__jp {
    font-size: 3.4rem;
  }
}
.c-sec-heading__jp::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 40px;
  height: 1px;
  background: #bd5833;
}

/* ===== カスミソウ風デコレーション ===== */
.c-deco-vine {
  display: flex;
  justify-content: center;
  margin-bottom: 25px;
}
.c-deco-vine img {
  width: 100px;
  height: auto;
  opacity: 0.7;
}

/* ===== セクション末尾CTA ===== */
.c-sec-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 36px;
}
@media (min-width: 992px) {
  .c-sec-cta {
    margin-top: 43px;
  }
}

.c-sec-cta__micro {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #bd5833;
  text-align: center;
}
@media (min-width: 992px) {
  .c-sec-cta__micro {
    font-size: 1.4rem;
  }
}

a.c-sec-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 340px;
  min-height: 52px;
  padding: 14px 28px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-align: center;
  box-shadow: 0 4px 14px rgba(54, 43, 36, 0.14);
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
@media (min-width: 992px) {
  a.c-sec-cta__btn {
    min-height: 56px;
    font-size: 1.55rem;
  }
}
a.c-sec-cta__btn:hover {
  background: #a24019;
  opacity: 1;
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(54, 43, 36, 0.18);
}

.c-sec-cta--final {
  margin-top: 43px;
}
@media (min-width: 992px) {
  .c-sec-cta--final {
    margin-top: 50px;
  }
}

/* heading component — section titles are in _inner.scss (.c-sec-heading) */
.c-heading {
  display: none;
}

.c-icon {
  position: relative;
}
.c-icon::before {
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
}
.c-icon::after {
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
}

/***********************************************
左から右へグイっと登場
************************************************/
.c-icon__from-left {
  animation: fadeIn 1s cubic-bezier(0.9, 0, 0.2, 1) 0.5s 1 normal backwards;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.c-icon__keyword {
  position: absolute;
  color: transparent;
}

/***********************************************
文字の両サイドに画像配置
************************************************/
.c-icon__both-side {
  position: relative;
}
.c-icon__both-side::before, .c-icon__both-side::after {
  content: "";
  display: inline-block;
  width: 10%;
  aspect-ratio: 100/133;
  background-image: url();
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
.c-icon__both-side::after {
  background-image: url();
}

/***********************************************
アンダーライン
************************************************/
.c-icon__marker {
  background: linear-gradient(transparent 60%, yellow 30%);
  display: inline-block;
}

.c-icon__under-line {
  border-bottom: 10px solid #000;
  display: inline-block;
  padding-bottom: 10px;
}

/***********************************************
　ハンバーガーメニュー　細いスクロールバー
************************************************/
.c-icon__scroll-bar {
  overflow-x: auto;
  width: 100%;
  max-width: 100%;
  height: 100vh;
  overflow-y: auto;
}
.c-icon__scroll-bar::-webkit-scrollbar {
  width: 5px;
  height: 2px;
  border-radius: 10px;
}
.c-icon__scroll-bar::-webkit-scrollbar-track {
  border-radius: 10px;
  background-color: #D5D5D5;
}
.c-icon__scroll-bar::-webkit-scrollbar-thumb {
  background-color: #969696;
}

/***********************************************
　MV　SCROLL DOWN のモーション
************************************************/
.c-icon__scrolldown1 {
  position: absolute;
  left: 30px;
  bottom: -50px;
  height: 50px;
}

/*====== 9-1-1 縦線が動いてスクロールを促す =======*/
/*スクロールダウン全体の場所*/
.c-icon__scrolldown1 {
  /*描画位置※位置は適宜調整してください*/
  position: absolute;
  left: 58px;
  bottom: 69px;
  /*全体の高さ*/
  height: 50px;
}

/*Scrollテキストの描写*/
.c-icon__scrolldown1 span {
  /*描画位置*/
  position: absolute;
  left: -32px;
  bottom: 59px;
  /*テキストの形状*/
  color: #D5C1A1;
  width: 70px;
  font-size: 14px;
  font-weight: 400;
  transform: rotate(90deg);
}

/* 線の描写 */
.c-icon__scrolldown1::after {
  content: "";
  /*描画位置*/
  position: absolute;
  top: 0;
  /*線の形状*/
  width: 2px;
  height: 30px;
  background: #D5C1A1;
  /*線の動き1.4秒かけて動く。永遠にループ*/
  animation: pathmove 1.4s ease-in-out infinite;
  opacity: 0;
}

/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes pathmove {
  0% {
    height: 0;
    top: 10px;
    opacity: 0;
  }
  30% {
    height: 30px;
    opacity: 1;
  }
  100% {
    height: 0;
    top: 55px;
    opacity: 0;
  }
}
/* ------------------------------------
ドキドキするボタン
  ------------------------------------*/
a.c-button__doki {
  animation-name: dokidoki;
  animation-delay: 0s;
  animation-duration: 2s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  display: block;
  text-decoration: none !important;
  text-align: center;
}

@keyframes dokidoki {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.03);
  }
  100% {
    transform: scale(1);
  }
}
/***********************************************
ボタンがキラッと光る
************************************************/
/* ------------------------------------
ボタンの基本スタイル
------------------------------------*/
/* ボタン自体のスタイル */
.shine-button,
.shine-button2 {
  /* ボタンを光らせるために必要 */
  position: relative;
  /* ボタンの位置を基準にするため relative指定 */
  overflow: hidden;
  /* ボタンの外の領域は非表示 */
}

/* ------------------------------------
  ボタンの外側にボックス作成
  （疑似要素「before」を使う）
  ------------------------------------*/
.shine-button::before,
.shine-button2::before {
  content: "";
  /* 文字は表示しないので中身無しを指定 */
  position: absolute;
  /* ボタンの位置を基準に絶対値指定する */
  display: block;
  /* 形式はblock */
  background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.9));
  /* 背景色は透明から白になるグラデーション */
  width: 50px;
  /* 横幅 */
  height: 50px;
  /* 縦幅 */
  top: -60px;
  /* ボタン左上を基準に上へ60pxの位置 */
  left: -60px;
  /* ボタン左上を基準に左へ60pxの位置 */
  /* アニメーションの動作指定 */
  animation-name: shine-run;
  /* アニメーション名の指定 */
  animation-delay: 0s;
  /* アニメーションの開始時間指定 */
  animation-duration: 3s;
  /* アニメーション動作時間の指定 */
  animation-timing-function: ease-in;
  /* アニメーションの動き指定（徐々に早く）*/
  animation-iteration-count: infinite;
  /* アニメーションの無限繰り返しの指定 */
}

.shine-button2::before {
  background: linear-gradient(to right, rgba(255, 223, 64, 0), #fffdf3);
  z-index: 999;
}

/* ------------------------------------
  アニメーションのタイミングとボックスの
  拡大率、角度、透過率の指定
  ------------------------------------*/
@keyframes shine-run {
  0% {
    transform: scale(0) rotate(50deg);
    /* アニメ開始時は大きさ0、50度の傾き */
    opacity: 0;
    /* アニメ開始時は全透過 */
  }
  40% {
    transform: scale(1) rotate(50deg);
    /* 40%まで進む間に大きさを等倍に。傾きは50度のまま*/
    opacity: 1;
    /* 透過しない（しっかり表示される）ように1を設定 */
  }
  100% {
    transform: scale(250) rotate(50deg);
    /* 最後は元の大きさの250倍になるようにする。傾きは50度のまま*/
    opacity: 0;
    /* 全透過になるようにして、徐々に消えるような変化を付ける */
  }
}
/***********************************************
read more　線の色が変わる
************************************************/
/*== 線の上を別の線が伸びる */
.c-button__more {
  /*線の基点とするためrelativeを指定*/
  position: relative;
  /*リンクの形状*/
  color: #fff;
  padding: 10px 10px 10px 10px;
  display: inline-block;
  text-decoration: none;
  outline: none;
}

/*線の設定*/
.c-button__more::before,
.c-button__more::after {
  content: "";
  /*絶対配置で線の位置を決める*/
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  /*線の形状*/
  background: #362b24;
  width: 50%;
  height: 2px;
  /*アニメーションの指定*/
  transition: all 0.3s ease-in-out;
}

.c-button__more.--white::before,
.c-button__more.--white::after {
  /*線の形状*/
  background: #fff;
}

/*hover時に伸びる線の形状*/
.c-button__more::after {
  width: 0;
  background: #ffffff;
}

.c-button__more.--white::after {
  background: #362b24;
}

/*hover時に100%に伸びる*/
.c-button__more:hover::after {
  width: 50%;
}

/*矢印の設定*/
.c-button__more span {
  position: relative;
}

.c-button__more span::after {
  content: "";
  /*絶対配置で矢印の位置を決める*/
  position: absolute;
  top: 0.6em;
  right: -36px;
  /*矢印の形状*/
  width: 5px;
  height: 5px;
  border-top: 1px solid #362b24;
  border-right: 1px solid #362b24;
  transform: rotate(45deg);
  /*アニメーションの指定*/
  transition: all 0.3s;
}

.c-button__more.--white span::after {
  border-color: #fff;
}

/*hover時に矢印が移動*/
.c-button__more:hover span::after {
  right: -41px;
}

.--side {
  /*== 線の上を別の線が伸びる */
  /*線の設定*/
  /*hover時に伸びる線の形状*/
  /*hover時に100%に伸びる*/
  /*矢印の設定*/
  /*hover時に矢印が移動*/
}
.--side .c-button__more {
  /*線の基点とするためrelativeを指定*/
  position: relative;
  /*リンクの形状*/
  color: #fff;
  padding: 10px 80px 10px 20px;
  display: inline-block;
  text-decoration: none;
  outline: none;
}
@media (min-width: 992px) {
  .--side .c-button__more {
    padding-right: 137px;
  }
}
.--side .c-button__more::before,
.--side .c-button__more::after {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: 20px;
  left: 105px;
  background: #5d595a;
  width: 24%;
  height: 1px;
  transition: all 0.3s ease-in-out;
}
@media (min-width: 992px) {
  .--side .c-button__more::before,
  .--side .c-button__more::after {
    bottom: 23px;
    left: 129px;
  }
}
.--side .c-button__more.--white::before,
.--side .c-button__more.--white::after {
  /*線の形状*/
  background: #fff;
}
.--side .c-button__more::after {
  width: 0;
  background: #ffffff;
}
.--side .c-button__more.--white::after {
  background: #000000;
}
.--side .c-button__more:hover::after {
  width: 24%;
}
.--side .c-button__more span {
  position: relative;
}
.--side .c-button__more span::after {
  content: "";
  /*絶対配置で矢印の位置を決める*/
  position: absolute;
  top: 0.6em;
  right: -36px;
  /*矢印の形状*/
  width: 5px;
  height: 5px;
  border-top: 1px solid #362b24;
  border-right: 1px solid #362b24;
  transform: rotate(45deg);
  /*アニメーションの指定*/
  transition: all 0.3s;
}
.--side .c-button__more.--white span::after {
  border-color: #fff;
}
.--side .c-button__more:hover span::after {
  right: -41px;
}

/* ============================================================
   s1 — メインビジュアル（Hero）
   WIX貼り付け用：ここから s1 セクション
   ============================================================ */
/* PCファーストビュー：写真 + キャッチを一画面に収める */
@media (min-width: 992px) {
  .p-top__s1-fv {
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: 100svh;
  }
}

.p-top__s1-mv-section {
  position: relative;
  height: 50vh;
  height: 50svh;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  overflow: hidden;
  color: #fff;
}
@media (min-width: 992px) {
  .p-top__s1-mv-section {
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
  }
}

/* ---------- フェードスライダー ---------- */
.p-s1__slider {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.p-s1__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.1s ease, visibility 1.1s ease;
}
.p-s1__slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}
.p-s1__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: scale(1.02);
}

.p-s1__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(28, 14, 6, 0.18) 0%, rgba(28, 14, 6, 0.08) 48%, rgba(28, 14, 6, 0.38) 100%);
  pointer-events: none;
}

.p-s1__dots {
  position: absolute;
  right: 16px;
  bottom: 50%;
  transform: translateY(50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@media (min-width: 992px) {
  .p-s1__dots {
    right: 24px;
    gap: 10px;
  }
}

.p-s1__dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.p-s1__dot.is-active {
  background: #fff;
  transform: scale(1.15);
}
.p-s1__dot:hover {
  background: rgba(255, 255, 255, 0.55);
  opacity: 1;
}

/* MV上の控えめな一行（品を保つための最小テキスト） */
.p-s1__on-photo {
  position: relative;
  z-index: 2;
  margin: 0 0 28px;
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.92);
  text-align: center;
}
@media (min-width: 992px) {
  .p-s1__on-photo {
    font-size: 1.7rem;
    margin-bottom: 36px;
  }
}

/* SCROLL：左下に控えめ配置（右ドットと干渉しない） */
.p-s1__scroll {
  position: absolute;
  left: 16px;
  bottom: 20px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  pointer-events: none;
}
@media (min-width: 992px) {
  .p-s1__scroll {
    left: 28px;
    bottom: 28px;
    gap: 12px;
  }
}
.p-s1__scroll span {
  display: inline-block;
  font-family: "Cormorant Garamond", serif;
  font-size: 1rem;
  letter-spacing: 0.28em;
  line-height: 1;
  color: rgba(255, 255, 255, 0.72);
  transform: rotate(90deg);
  transform-origin: center center;
  margin: 28px 0;
}
@media (min-width: 992px) {
  .p-s1__scroll span {
    font-size: 1.1rem;
    letter-spacing: 0.32em;
    margin: 34px 0;
  }
}
.p-s1__scroll::after {
  content: "";
  display: block;
  width: 1px;
  height: 28px;
  background: rgba(255, 255, 255, 0.55);
  animation: s1-scroll-line 1.8s ease-in-out infinite;
}
@media (min-width: 992px) {
  .p-s1__scroll::after {
    height: 36px;
  }
}

@keyframes s1-scroll-line {
  0% {
    transform: scaleY(0.4);
    opacity: 0.3;
    transform-origin: top;
  }
  50% {
    transform: scaleY(1);
    opacity: 1;
    transform-origin: top;
  }
  100% {
    transform: scaleY(0.4);
    opacity: 0.3;
    transform-origin: bottom;
  }
}
/* ---------- MV直下：キャッチ（小さめ・上質） ---------- */
.p-top__s1-intro-section {
  background: #fdfcf8;
  padding: 24px 0 36px;
  flex-shrink: 0;
}
@media (min-width: 992px) {
  .p-top__s1-intro-section {
    padding: 28px 0 36px;
  }
}

.p-s1-intro__inner {
  width: 90%;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.p-s1-intro__title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.7rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 10px;
}
@media (min-width: 768px) {
  .p-s1-intro__title {
    font-size: 1.9rem;
  }
}
@media (min-width: 992px) {
  .p-s1-intro__title {
    font-size: 2.1rem;
    margin-bottom: 12px;
  }
}

.p-s1-intro__sub {
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0.04em;
  color: #6a5a50;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-s1-intro__sub {
    font-size: 1.3rem;
    margin-bottom: 14px;
  }
}

.p-s1-intro__tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px 0;
}

.p-s1-intro__tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 10px;
  color: #bd5833;
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
@media (min-width: 992px) {
  .p-s1-intro__tag {
    font-size: 1.15rem;
    gap: 8px;
    padding: 0 16px;
  }
  .p-s1-intro__tag:not(:last-child) {
    border-right: 1px solid rgba(189, 88, 51, 0.35);
  }
}

.p-s1-intro__tag-icon {
  flex-shrink: 0;
  display: flex;
  width: 22px;
  height: 22px;
}
@media (min-width: 992px) {
  .p-s1-intro__tag-icon {
    width: 26px;
    height: 26px;
  }
}
.p-s1-intro__tag-icon img {
  width: 100%;
  height: 100%;
  display: block;
}

.p-s1-intro__tag-text {
  white-space: nowrap;
}

a.p-s1-intro__menu {
  display: inline-flex;
  align-items: center;
  margin-top: 18px;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  color: #5e534b;
  border-bottom: 1px solid rgba(54, 43, 36, 0.25);
  padding-bottom: 4px;
}
a.p-s1-intro__menu:hover {
  color: #bd5833;
  border-color: #bd5833;
  opacity: 1;
}
@media (min-width: 992px) {
  a.p-s1-intro__menu {
    margin-top: 20px;
    font-size: 1.4rem;
  }
}

/* ============================================================
   s1 — メインビジュアル ここまで
   ============================================================ */
/* ============================================================
   s2 — コンセプト（店主の想い・私たちのこだわり）
   WIX貼り付け用：ここから s2 セクション
   ============================================================ */
.p-top__s2-concept-section {
  background: #fdfcf8;
  padding: 65px 0 72px;
}
@media (min-width: 992px) {
  .p-top__s2-concept-section {
    padding: 79px 0 86px;
  }
}

/* --- メイン：シェフ + 想い --- */
.p-s2__container {
  display: grid;
  gap: 36px;
  align-items: center;
  margin-bottom: 40px;
  text-align: left;
}
@media (min-width: 992px) {
  .p-s2__container {
    grid-template-columns: minmax(220px, 280px) 1fr;
    gap: 40px;
    margin-bottom: 48px;
  }
}

.p-s2__photo {
  position: relative;
  max-width: 300px;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .p-s2__photo {
    max-width: none;
    margin: 0;
  }
}
.p-s2__photo img {
  display: block;
  width: 100%;
  border-radius: 200px 200px 8px 8px;
  object-fit: cover;
  aspect-ratio: 3/4;
  box-shadow: 0 16px 40px rgba(54, 43, 36, 0.12);
}
@media (min-width: 992px) {
  .p-s2__photo img {
    max-height: 340px;
  }
}

.p-s2__photo-label {
  display: block;
  margin-top: 14px;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  line-height: 1.6;
  color: #74716b;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s2__photo-label {
    margin-top: 10px;
    text-align: left;
  }
}

.p-s2__body {
  max-width: 640px;
}
@media (min-width: 992px) {
  .p-s2__body {
    max-width: none;
  }
}

.p-s2__catch {
  font-family: "Noto Serif JP", serif;
  font-size: 2.1rem;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 22px;
}
@media (min-width: 992px) {
  .p-s2__catch {
    font-size: 2.4rem;
    margin-bottom: 20px;
  }
}

.p-s2__lead-text {
  font-size: 1.4rem;
  line-height: 2;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-s2__lead-text {
    font-size: 1.5rem;
    line-height: 1.9;
  }
}

/* --- こだわりストーリー（画像つきアコーディオン） --- */
.p-s2__stories {
  display: grid;
  gap: 12px;
  margin-bottom: 0;
  text-align: left;
}
@media (min-width: 992px) {
  .p-s2__stories {
    gap: 14px;
  }
}

.p-s2__story-block {
  background: #ffffff;
  border-top: 2px solid #bd5833;
  box-shadow: 0 8px 24px rgba(54, 43, 36, 0.04);
  overflow: hidden;
}
.p-s2__story-block p {
  font-size: 1.4rem;
  line-height: 2;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-s2__story-block p {
    font-size: 1.45rem;
    line-height: 1.9;
  }
}

.p-s2__story-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px 12px 12px;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
  color: inherit;
}
@media (min-width: 992px) {
  .p-s2__story-toggle {
    gap: 18px;
    padding: 14px 20px 14px 14px;
  }
}
.p-s2__story-toggle.on .p-s2__story-icon::before {
  transform: rotate(90deg);
  opacity: 0;
}
.p-s2__story-toggle.on .p-s2__story-icon::after {
  transform: rotate(180deg);
}

.p-s2__story-thumb {
  flex-shrink: 0;
  width: 88px;
  height: 72px;
  overflow: hidden;
  background: #eeebe4;
}
@media (min-width: 992px) {
  .p-s2__story-thumb {
    width: 160px;
    height: 104px;
  }
}
.p-s2__story-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.45s ease;
}
.p-s2__story-toggle:hover .p-s2__story-thumb img {
  transform: scale(1.04);
}

.p-s2__story-icon {
  position: relative;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-left: auto;
}
.p-s2__story-icon::before, .p-s2__story-icon::after {
  content: "";
  position: absolute;
  background: #bd5833;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.p-s2__story-icon::before {
  width: 14px;
  height: 1.5px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-s2__story-icon::after {
  width: 1.5px;
  height: 14px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.p-s2__story-heading {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}

.p-s2__story-num {
  display: block;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  color: #bd5833;
}
@media (min-width: 992px) {
  .p-s2__story-num {
    font-size: 1.45rem;
  }
}

.p-s2__story-title {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-s2__story-title {
    font-size: 1.65rem;
    line-height: 1.5;
  }
}

.p-s2__story-sub {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.02em;
  color: #74716b;
}
@media (min-width: 992px) {
  .p-s2__story-sub {
    font-size: 1.2rem;
    margin-top: 2px;
  }
}

.p-s2__story-panel {
  display: none;
  padding: 0 16px 18px;
}
@media (min-width: 992px) {
  .p-s2__story-panel {
    padding: 0 24px 24px 192px;
  }
}

.p-s2__story-photos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 16px;
  max-width: 280px;
}
@media (min-width: 992px) {
  .p-s2__story-photos {
    gap: 10px;
    margin-top: 18px;
    max-width: 320px;
  }
}
.p-s2__story-photos figure {
  margin: 0;
}
.p-s2__story-photos img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  object-fit: cover;
  object-position: center;
  background: #f7f4ed;
}
.p-s2__story-photos li:first-child img {
  object-fit: contain;
  padding: 4px;
}
.p-s2__story-photos li:last-child img {
  object-position: center 30%;
}
.p-s2__story-photos figcaption {
  margin-top: 6px;
  font-size: 1rem;
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: #74716b;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s2__story-photos figcaption {
    font-size: 1.1rem;
  }
}

/* ============================================================
   s2 — コンセプト ここまで
   ============================================================ */
/* ============================================================
   s3 — 強み（Our Strengths）
   WIX貼り付け用：ここから s3 セクション
   ============================================================ */
.p-top__s3-strength-section {
  background: #f8f5ee;
  padding: 43px 0 50px;
}
@media (min-width: 992px) {
  .p-top__s3-strength-section {
    padding: 90px 0 99px;
  }
}

.p-s3__cards {
  display: grid;
  gap: 14px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-s3__cards {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.p-s3__card {
  display: grid;
  grid-template-columns: 96px 1fr;
  align-items: start;
  background: #ffffff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(54, 43, 36, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (min-width: 768px) {
  .p-s3__card {
    display: block;
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(54, 43, 36, 0.06);
  }
}
.p-s3__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(54, 43, 36, 0.1);
}

.p-s3__card-img {
  align-self: stretch;
  min-height: 96px;
  overflow: hidden;
}
@media (min-width: 768px) {
  .p-s3__card-img {
    align-self: auto;
    min-height: 0;
    aspect-ratio: 4/3;
  }
}
.p-s3__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.p-s3__card:hover .p-s3__card-img img {
  transform: scale(1.04);
}

.p-s3__card-body {
  padding: 12px 12px 14px 10px;
}
@media (min-width: 768px) {
  .p-s3__card-body {
    padding: 22px 20px 28px;
  }
}
@media (min-width: 992px) {
  .p-s3__card-body {
    padding: 24px 24px 32px;
  }
}

.p-s3__card-tag {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 1.3rem;
  color: #bd5833;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
  line-height: 1.35;
}
@media (min-width: 768px) {
  .p-s3__card-tag {
    gap: 8px;
    font-size: 1.4rem;
    margin-bottom: 12px;
    line-height: inherit;
  }
}

.p-s3__card-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
}
@media (min-width: 768px) {
  .p-s3__card-icon {
    width: 40px;
    height: 40px;
  }
}
.p-s3__card-icon img {
  display: block;
  width: 100%;
  height: 100%;
}

.p-s3__card-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.03em;
  color: #362b24;
  margin-bottom: 6px;
}
@media (min-width: 768px) {
  .p-s3__card-title {
    font-size: 1.9rem;
    line-height: 1.5;
    margin-bottom: 12px;
  }
}
@media (min-width: 992px) {
  .p-s3__card-title {
    font-size: 2rem;
  }
}

.p-s3__card-text {
  font-size: 1.4rem;
  line-height: 1.65;
  color: #5e534b;
  overflow: visible;
}
@media (min-width: 768px) {
  .p-s3__card-text {
    font-size: 1.5rem;
    line-height: 1.85;
  }
}

/* ============================================================
   s3 — 強み ここまで
   ============================================================ */
/* ============================================================
   s4 — メニュー・プラン
   WIX貼り付け用：ここから s4 セクション
   ============================================================ */
.p-top__s4-menu-section {
  background: #f8f5ee;
  padding: 65px 0 72px;
}
@media (min-width: 992px) {
  .p-top__s4-menu-section {
    padding: 90px 0 99px;
  }
}
.p-top__s4-menu-section .c-sec-heading {
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .p-top__s4-menu-section .c-sec-heading {
    margin-bottom: 20px;
  }
}

.p-s4__lead {
  max-width: 520px;
  margin: 0 auto 32px;
  font-size: 1.4rem;
  line-height: 1.8;
  color: #5e534b;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s4__lead {
    margin-bottom: 44px;
    font-size: 1.5rem;
  }
}

/* ---------- 今月のおすすめ（ブログ） ---------- */
.p-s4__seasonal {
  margin-bottom: 40px;
}
@media (min-width: 992px) {
  .p-s4__seasonal {
    margin-bottom: 52px;
  }
}

.p-s4__seasonal-link {
  display: grid;
  gap: 0;
  overflow: hidden;
  background: #ffffff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 8px 28px rgba(54, 43, 36, 0.07);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
@media (min-width: 768px) {
  .p-s4__seasonal-link {
    grid-template-columns: 1.15fr 1fr;
    align-items: stretch;
  }
}
.p-s4__seasonal-link:hover, .p-s4__seasonal-link:focus-visible {
  opacity: 1;
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(54, 43, 36, 0.12);
}
.p-s4__seasonal-link:hover .p-s4__seasonal-img img, .p-s4__seasonal-link:focus-visible .p-s4__seasonal-img img {
  transform: scale(1.04);
}
.p-s4__seasonal-link:hover .p-s4__seasonal-more, .p-s4__seasonal-link:focus-visible .p-s4__seasonal-more {
  letter-spacing: 0.08em;
}
.p-s4__seasonal-link:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 4px;
}

.p-s4__seasonal-img {
  aspect-ratio: 4/3;
  overflow: hidden;
}
.p-s4__seasonal-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}

.p-s4__seasonal-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 28px 24px 32px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-s4__seasonal-body {
    padding: 36px 32px;
  }
}
@media (min-width: 992px) {
  .p-s4__seasonal-body {
    padding: 40px 40px;
  }
}

.p-s4__seasonal-label {
  margin-bottom: 10px;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #bd5833;
}

.p-s4__seasonal-title {
  margin-bottom: 12px;
  font-family: "Noto Serif JP", serif;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-s4__seasonal-title {
    font-size: 2.4rem;
  }
}

.p-s4__seasonal-text {
  margin-bottom: 20px;
  font-size: 1.35rem;
  line-height: 1.75;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-s4__seasonal-text {
    font-size: 1.45rem;
    margin-bottom: 28px;
  }
}

.p-s4__seasonal-more {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833;
  transition: letter-spacing 0.25s ease;
}

/* ---------- ブロック（ランチ / コース / ディナー） ---------- */
.p-s4__block + .p-s4__block {
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid rgba(54, 43, 36, 0.1);
}
@media (min-width: 992px) {
  .p-s4__block + .p-s4__block {
    margin-top: 40px;
    padding-top: 36px;
  }
}

.p-s4__block-heading {
  margin-bottom: 8px;
  text-align: center;
}

.p-s4__block-en {
  display: block;
  margin-bottom: 6px;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #bd5833;
}

.p-s4__block-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-s4__block-title {
    font-size: 2.2rem;
  }
}

.p-s4__block-lead {
  max-width: 420px;
  margin: 0 auto 20px;
  font-size: 1.3rem;
  line-height: 1.75;
  color: #5e534b;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s4__block-lead {
    margin-bottom: 24px;
    font-size: 1.4rem;
  }
}

/* ---------- 料理写真グリッド ---------- */
.p-s4__dishes {
  display: grid;
  gap: 16px;
  margin-bottom: 18px;
  align-items: stretch;
}
@media (min-width: 768px) {
  .p-s4__dishes {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 22px;
  }
}

.p-s4__dish {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 6px 22px rgba(54, 43, 36, 0.06);
  color: inherit;
  text-align: left;
  text-decoration: none;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.p-s4__dish:hover, .p-s4__dish:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(54, 43, 36, 0.1);
  opacity: 1;
  color: inherit;
}
.p-s4__dish:hover .p-s4__dish-img img, .p-s4__dish:focus-visible .p-s4__dish-img img {
  transform: scale(1.04);
}
.p-s4__dish:hover .p-s4__dish-cta, .p-s4__dish:focus-visible .p-s4__dish-cta {
  color: #a24019 !important;
  letter-spacing: 0.06em;
}
.p-s4__dish:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 4px;
}

.p-s4__dish-img {
  aspect-ratio: 4/3;
  overflow: hidden;
  flex-shrink: 0;
}
.p-s4__dish-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}

.p-s4__dish-note {
  margin: 0;
  margin-top: auto;
  padding-top: 8px;
  font-size: 1.05rem;
  line-height: 1.5;
  color: #74716b;
}

.p-s4__dish-cap {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 6px;
  flex: 1;
  padding: 14px 16px 16px;
}

.p-s4__dish-label {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #bd5833;
}

.p-s4__dish-name {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-s4__dish-name {
    font-size: 1.65rem;
  }
}

.p-s4__dish-meta {
  font-size: 1.2rem;
  line-height: 1.6;
  color: #74716b;
}

.p-s4__dish-price {
  margin-top: 2px;
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-size: 1.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.3;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-s4__dish-price {
    font-size: 2rem;
  }
}

.p-s4__dish-cta {
  display: inline-flex;
  align-items: center;
  margin-top: auto;
  padding-top: 4px;
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833 !important;
  text-decoration: none;
  transition: color 0.25s ease, letter-spacing 0.25s ease;
}

.p-s4__dish-note + .p-s4__dish-cta {
  margin-top: 0;
  padding-top: 0;
}

/* ---------- ブロックCTA ---------- */
.p-s4__sub-note {
  max-width: 520px;
  margin: 0 auto 14px;
  font-size: 1.15rem;
  line-height: 1.7;
  color: #74716b;
  text-align: center;
}
.p-s4__sub-note a {
  color: #5e534b !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  transition: color 0.25s ease;
}
.p-s4__sub-note a:hover, .p-s4__sub-note a:focus-visible {
  color: #bd5833 !important;
  opacity: 1;
}
@media (min-width: 992px) {
  .p-s4__sub-note {
    margin-bottom: 16px;
    font-size: 1.2rem;
  }
}

.p-s4__block-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}

.p-s4__cta-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 360px;
  min-height: 54px;
  padding: 14px 28px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  box-shadow: 0 4px 14px rgba(54, 43, 36, 0.14);
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
@media (min-width: 992px) {
  .p-s4__cta-primary {
    min-height: 58px;
    font-size: 1.6rem;
  }
}
.p-s4__cta-primary:hover {
  background: #a24019;
  opacity: 1;
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(54, 43, 36, 0.18);
}

.p-s4__cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833 !important;
  text-decoration: none;
  transition: color 0.25s ease, letter-spacing 0.25s ease;
}
.p-s4__cta-link:hover {
  color: #a24019 !important;
  letter-spacing: 0.06em;
  opacity: 1;
}

/* ---------- テイクアウト / お取り寄せリンク ---------- */
.p-s4__links {
  display: grid;
  gap: 14px;
  margin-top: 36px;
}
@media (min-width: 768px) {
  .p-s4__links {
    grid-template-columns: 1.15fr 0.85fr;
    gap: 18px;
    align-items: stretch;
    margin-top: 48px;
  }
}

.p-s4__link-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  height: 100%;
  padding: 24px 22px 22px;
  background: #f8f5ee;
  border: 1px solid rgba(54, 43, 36, 0.08);
  color: inherit;
  text-decoration: none;
  text-align: left;
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.25s ease;
}
.p-s4__link-card:hover, .p-s4__link-card:focus-visible {
  background: #eeebe4;
  border-color: rgba(189, 88, 51, 0.25);
  opacity: 1;
}
.p-s4__link-card:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 4px;
}
.p-s4__link-card:hover .p-s4__link-card-btn:not(.p-s4__link-card-btn--outline), .p-s4__link-card:focus-visible .p-s4__link-card-btn:not(.p-s4__link-card-btn--outline) {
  background: #a24019;
}
.p-s4__link-card:hover .p-s4__link-card-btn--outline, .p-s4__link-card:focus-visible .p-s4__link-card-btn--outline {
  background: #bd5833;
  color: #fff;
  border-color: #bd5833;
}

.p-s4__link-card--takeout {
  padding: 26px 22px 24px;
  background: linear-gradient(160deg, #fff8f3 0%, #f8f5ee 55%, #f3ebe3 100%);
  border-color: rgba(189, 88, 51, 0.28);
  box-shadow: 0 8px 24px rgba(189, 88, 51, 0.08);
}
@media (min-width: 768px) {
  .p-s4__link-card--takeout {
    padding: 30px 28px 26px;
  }
}
.p-s4__link-card--takeout:hover, .p-s4__link-card--takeout:focus-visible {
  background: linear-gradient(160deg, #fff5ee 0%, #f8efe6 55%, #efe4da 100%);
  border-color: rgba(189, 88, 51, 0.45);
  box-shadow: 0 12px 28px rgba(189, 88, 51, 0.14);
  transform: translateY(-2px);
}
.p-s4__link-card--takeout .p-s4__link-card-title {
  font-size: 1.75rem;
  line-height: 1.55;
}
@media (min-width: 992px) {
  .p-s4__link-card--takeout .p-s4__link-card-title {
    font-size: 1.9rem;
  }
}

.p-s4__link-card-badge {
  display: inline-flex;
  align-items: center;
  margin-bottom: 2px;
  padding: 5px 12px;
  background: #bd5833;
  color: #fff;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.3;
}

.p-s4__link-card-label {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.15rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #c29e6b;
}

.p-s4__link-card-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.55rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.55;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-s4__link-card-title {
    font-size: 1.7rem;
  }
}

.p-s4__link-card-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin-top: auto;
  padding: 12px 18px;
  background: #bd5833;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
  line-height: 1.4;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
@media (min-width: 992px) {
  .p-s4__link-card-btn {
    min-height: 52px;
    font-size: 1.4rem;
  }
}

.p-s4__link-card-btn--outline {
  width: auto;
  min-width: 148px;
  min-height: 44px;
  padding: 10px 18px;
  background: transparent;
  border: 1.5px solid #bd5833;
  color: #bd5833;
  font-size: 1.2rem;
}
@media (min-width: 992px) {
  .p-s4__link-card-btn--outline {
    min-height: 46px;
    font-size: 1.25rem;
  }
}

/* ============================================================
   s4 — メニュー・プラン ここまで
   ============================================================ */
/* ============================================================
   s5 — ご利用の流れ（Reservation Flow）
   WIX貼り付け用：ここから s5 セクション
   ============================================================ */
.p-top__s5-flow-section {
  background: #fdfcf8;
  padding: 48px 0 40px;
}
@media (min-width: 992px) {
  .p-top__s5-flow-section {
    padding: 22px 0 10px;
    scroll-margin-top: 108px;
  }
}
.p-top__s5-flow-section .c-deco-vine {
  margin-bottom: 10px;
}
@media (min-width: 992px) {
  .p-top__s5-flow-section .c-deco-vine {
    display: none;
  }
}
.p-top__s5-flow-section .c-sec-heading {
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .p-top__s5-flow-section .c-sec-heading {
    margin-bottom: 12px;
  }
}
@media (min-width: 992px) {
  .p-top__s5-flow-section .c-sec-heading__en {
    font-size: 1.3rem;
    margin-bottom: 4px;
  }
}
.p-top__s5-flow-section .c-sec-heading__jp {
  padding-bottom: 12px;
}
@media (min-width: 992px) {
  .p-top__s5-flow-section .c-sec-heading__jp {
    font-size: 2.3rem;
    padding-bottom: 8px;
  }
}

.p-s5__steps {
  max-width: 680px;
  margin: 0 auto 20px;
  position: relative;
  text-align: left;
  padding-left: 8px;
}
.p-s5__steps::before {
  content: "";
  position: absolute;
  left: 27px;
  top: 20px;
  bottom: 40px;
  width: 1px;
  background: #d1cdc7;
}
@media (min-width: 992px) {
  .p-s5__steps::before {
    display: none;
  }
}
@media (min-width: 992px) {
  .p-s5__steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 24px;
    max-width: 1000px;
    margin-bottom: 12px;
    padding-left: 0;
  }
}

.p-s5__step {
  display: flex;
  gap: 16px;
  position: relative;
  padding-bottom: 18px;
}
.p-s5__step:last-child {
  padding-bottom: 0;
}
@media (min-width: 992px) {
  .p-s5__step {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding-bottom: 0;
    text-align: center;
  }
  .p-s5__step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 14px;
    right: -14px;
    width: 28px;
    height: 1px;
    background: #d1cdc7;
  }
}

.p-s5__step-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #bd5833;
  color: #fff;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.5rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}
@media (min-width: 992px) {
  .p-s5__step-icon {
    width: 36px;
    height: 36px;
    font-size: 1.5rem;
  }
}

.p-s5__step-body {
  flex: 1;
  padding-top: 2px;
}

.p-s5__step-body h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  color: #362b24;
  margin-bottom: 4px;
}
@media (min-width: 992px) {
  .p-s5__step-body h3 {
    font-size: 1.7rem;
  }
}

.p-s5__step-body p {
  font-size: 1.25rem;
  line-height: 1.65;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-s5__step-body p {
    font-size: 1.3rem;
    line-height: 1.6;
  }
}

.p-s5__step-highlight {
  display: inline;
  font-weight: 700;
  color: #362b24;
  background: linear-gradient(transparent 60%, rgba(194, 158, 107, 0.35) 60%);
}

/* ---------- 空席確認のご案内 ---------- */
.p-s5__vacancy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  max-width: 680px;
  margin: 0 auto 22px;
  padding: 14px 16px;
  background: #ffffff;
  border: 2px solid #bd5833;
  box-shadow: 0 6px 18px rgba(54, 43, 36, 0.06);
  text-align: center;
}
@media (min-width: 992px) {
  .p-s5__vacancy {
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    max-width: 880px;
    margin-bottom: 14px;
    padding: 8px 16px;
  }
}

.p-s5__vacancy-badge {
  display: inline-block;
  margin: 0;
  padding: 4px 10px;
  background: #bd5833;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.4;
  white-space: nowrap;
}
@media (min-width: 992px) {
  .p-s5__vacancy-badge {
    font-size: 1.2rem;
    padding: 5px 12px;
  }
}

.p-s5__vacancy-copy {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: #362b24;
}
.p-s5__vacancy-copy span {
  display: inline-block;
  margin-left: 0.4em;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  color: #bd5833;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-s5__vacancy-copy {
    font-size: 1.5rem;
  }
}

.p-s5__vacancy-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 18px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  box-shadow: 0 3px 10px rgba(54, 43, 36, 0.12);
  transition: background 0.25s ease, transform 0.25s ease;
}
@media (min-width: 992px) {
  .p-s5__vacancy-cta {
    min-height: 42px;
    font-size: 1.35rem;
  }
}
.p-s5__vacancy-cta:hover {
  background: #a24019;
  opacity: 1;
  transform: translateY(-1px);
}

/* ---------- 大切なお知らせ ---------- */
.p-s5__confirm-note {
  max-width: 720px;
  margin: 0 auto 12px;
  padding: 10px 16px;
  background: #eeebe4;
  border-left: 3px solid #bd5833;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #362b24;
  text-align: left;
}
@media (min-width: 992px) {
  .p-s5__confirm-note {
    max-width: 880px;
    font-size: 1.3rem;
  }
}

.p-s5__note-list {
  max-width: 680px;
  margin: 0 auto;
  padding: 12px 16px;
  list-style: none;
  background: #eeebe4;
  border-radius: 8px;
  text-align: left;
}
@media (min-width: 992px) {
  .p-s5__note-list {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px 28px;
    max-width: 1000px;
    padding: 10px 20px;
  }
}
.p-s5__note-list li {
  font-size: 1.2rem;
  line-height: 1.55;
  color: #5e534b;
  padding: 5px 0;
}
.p-s5__note-list li:not(:last-child) {
  border-bottom: 1px solid rgba(54, 43, 36, 0.1);
}
@media (min-width: 992px) {
  .p-s5__note-list li {
    padding: 0;
    border-bottom: none !important;
    font-size: 1.2rem;
  }
}

.p-s5__note-label {
  font-weight: 600;
  color: #362b24;
}

/* ============================================================
   s5 — ご利用の流れ ここまで
   ============================================================ */
/* ============================================================
   s6 — お客様の声（Reviews）
   WIX貼り付け用：ここから s6 セクション
   ============================================================ */
.p-top__s6-reviews-section {
  background: #f8f5ee;
  padding: 40px 0 48px;
}
@media (min-width: 992px) {
  .p-top__s6-reviews-section {
    padding: 10px 0 28px;
    scroll-margin-top: 108px;
  }
}
.p-top__s6-reviews-section .c-deco-vine {
  margin-bottom: 10px;
}
@media (min-width: 992px) {
  .p-top__s6-reviews-section .c-deco-vine {
    display: none;
  }
}
.p-top__s6-reviews-section .c-sec-heading {
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-top__s6-reviews-section .c-sec-heading {
    margin-bottom: 8px;
  }
}
@media (min-width: 992px) {
  .p-top__s6-reviews-section .c-sec-heading__en {
    font-size: 1.3rem;
    margin-bottom: 4px;
  }
}
.p-top__s6-reviews-section .c-sec-heading__jp {
  padding-bottom: 12px;
}
@media (min-width: 992px) {
  .p-top__s6-reviews-section .c-sec-heading__jp {
    font-size: 2.3rem;
    padding-bottom: 8px;
  }
}

.p-s6__lead {
  font-size: 1.25rem;
  color: #5e534b;
  margin: 0 auto 18px;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-s6__lead {
    margin-bottom: 12px;
    font-size: 1.25rem;
  }
}

.p-s6__cards {
  display: grid;
  gap: 12px;
  margin-bottom: 0;
  text-align: left;
}
@media (min-width: 768px) {
  .p-s6__cards {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
}

.p-s6__card {
  background: #ffffff;
  border-radius: 10px;
  padding: 16px 16px 14px;
  box-shadow: 0 4px 16px rgba(54, 43, 36, 0.05);
  display: flex;
  flex-direction: column;
}
@media (min-width: 992px) {
  .p-s6__card {
    padding: 12px 14px 12px;
  }
}

.p-s6__stars {
  color: #c29e6b;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  line-height: 1;
}

.p-s6__text {
  font-size: 1.25rem;
  line-height: 1.7;
  color: #5e534b;
  flex: 1;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-s6__text {
    font-size: 1.28rem;
    line-height: 1.65;
  }
}

.p-s6__name {
  font-size: 1.2rem;
  font-weight: 600;
  color: #362b24;
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid #d1cdc7;
}
.p-s6__name span {
  display: inline-block;
  margin-left: 0.6em;
  font-size: 1.1rem;
  font-weight: 500;
  color: #74716b;
}

.p-s6__more {
  margin: 14px 0 0;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s6__more {
    margin-top: 12px;
  }
}

a.p-s6__more-link {
  display: inline-block;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: #74716b !important;
  border-bottom: 1px solid rgba(54, 43, 36, 0.2);
  padding-bottom: 2px;
  line-height: 1.5;
}
a.p-s6__more-link:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}

/* ============================================================
   s6 — お客様の声 ここまで
   ============================================================ */
/* ============================================================
   s7 — よくある質問（FAQ）
   WIX貼り付け用：ここから s7 セクション
   ============================================================ */
.p-top__s7-faq-section {
  background: #fdfcf8;
  padding: 65px 0 72px;
}
@media (min-width: 992px) {
  .p-top__s7-faq-section {
    padding: 90px 0 99px;
  }
}

.p-s7__list {
  max-width: 760px;
  margin: 0 auto;
  text-align: left;
}

.p-s7__item {
  background: #ffffff;
  border-radius: 10px;
  margin-bottom: 12px;
  box-shadow: 0 4px 16px rgba(54, 43, 36, 0.04);
  overflow: hidden;
}

.p-s7__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
  text-align: left;
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: #362b24;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
@media (min-width: 992px) {
  .p-s7__q {
    font-size: 1.65rem;
    padding: 22px 28px;
  }
}
.p-s7__q.on .p-s7__icon::before {
  transform: rotate(90deg);
  opacity: 0;
}
.p-s7__q.on .p-s7__icon::after {
  transform: rotate(180deg);
}

.p-s7__icon {
  position: relative;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
.p-s7__icon::before, .p-s7__icon::after {
  content: "";
  position: absolute;
  background: #bd5833;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.p-s7__icon::before {
  width: 14px;
  height: 1.5px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-s7__icon::after {
  width: 1.5px;
  height: 14px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.p-s7__a {
  display: none;
  padding: 0 22px 22px;
}
@media (min-width: 992px) {
  .p-s7__a {
    padding: 0 28px 26px;
  }
}
.p-s7__a p {
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
  padding-top: 4px;
  border-top: 1px solid #d1cdc7;
  padding-top: 16px;
}

/* ============================================================
   s7 — FAQ ここまで
   ============================================================ */
/* ============================================================
   s8 — アクセス（Access）
   WIX貼り付け用：ここから s8 セクション
   ============================================================ */
.p-top__s8-access-section {
  background: #fdfcf8;
  padding: 48px 0 40px;
}
@media (min-width: 992px) {
  .p-top__s8-access-section {
    padding: 22px 0 28px;
    scroll-margin-top: 108px;
  }
}
.p-top__s8-access-section .c-deco-vine {
  margin-bottom: 10px;
}
@media (min-width: 992px) {
  .p-top__s8-access-section .c-deco-vine {
    display: none;
  }
}
.p-top__s8-access-section .c-sec-heading {
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .p-top__s8-access-section .c-sec-heading {
    margin-bottom: 12px;
  }
}
@media (min-width: 992px) {
  .p-top__s8-access-section .c-sec-heading__en {
    font-size: 1.3rem;
    margin-bottom: 4px;
  }
}
.p-top__s8-access-section .c-sec-heading__jp {
  padding-bottom: 12px;
}
@media (min-width: 992px) {
  .p-top__s8-access-section .c-sec-heading__jp {
    font-size: 2.3rem;
    padding-bottom: 8px;
  }
}

/* ---------- 移転のご案内 ---------- */
.p-s8__notice {
  margin: 0 auto 16px;
  padding: 8px 14px;
  background: #eeebe4;
  border-left: 3px solid #bd5833;
  text-align: left;
  font-size: 1.2rem;
  line-height: 1.55;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-s8__notice {
    margin-bottom: 16px;
    padding: 8px 16px;
    font-size: 1.25rem;
  }
}

.p-s8__notice-label {
  color: #bd5833;
  font-weight: 700;
}

/* ---------- 店名住所 + 地図（PCは横並び） ---------- */
.p-s8__top {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 18px;
}
@media (min-width: 992px) {
  .p-s8__top {
    flex-direction: row;
    align-items: stretch;
    gap: 28px;
    margin-bottom: 16px;
  }
}

/* ---------- 店名・住所・営業時間・電話 ---------- */
.p-s8__info {
  text-align: left;
  margin-bottom: 0;
}
@media (min-width: 992px) {
  .p-s8__info {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}

.p-s8__name {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.4rem;
  font-weight: 500;
  color: #362b24;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}
@media (min-width: 992px) {
  .p-s8__name {
    font-size: 2.6rem;
  }
}

.p-s8__name-ja {
  font-size: 1.25rem;
  color: #74716b;
  margin-bottom: 10px;
  letter-spacing: 0.06em;
}

.p-s8__address {
  margin-bottom: 8px;
}
.p-s8__address p {
  font-size: 1.3rem;
  line-height: 1.6;
  color: #5e534b;
}

.p-s8__hours {
  font-size: 1.3rem;
  color: #5e534b;
  margin-bottom: 0;
}

.p-s8__tel {
  display: inline-block;
  font-family: "Cormorant Garamond", serif;
  font-size: 2rem;
  color: #bd5833 !important;
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-top: 8px;
}
.p-s8__tel:hover {
  opacity: 1;
  color: #a24019 !important;
}

/* ---------- 店舗基本情報 ---------- */
.p-s8__facility-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
  background: #ffffff;
  border: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-s8__facility-list {
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 16px;
  }
}

.p-s8__facility-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid #d1cdc7;
}
.p-s8__facility-item:nth-child(odd) {
  border-right: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-s8__facility-item {
    padding: 10px 14px;
    border-right: 1px solid #d1cdc7;
  }
  .p-s8__facility-item:nth-child(odd) {
    border-right: 1px solid #d1cdc7;
  }
  .p-s8__facility-item:nth-child(4n) {
    border-right: none;
  }
  .p-s8__facility-item:nth-child(n+5) {
    border-bottom: none;
  }
}

.p-s8__facility-label {
  font-size: 1.1rem;
  font-weight: 600;
  color: #bd5833;
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.p-s8__facility-text {
  font-size: 1.2rem;
  color: #5e534b;
  line-height: 1.4;
}

.p-s8__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 18px;
}

.p-s8__more-link,
.p-s8__sns {
  display: inline-flex;
  align-items: center;
  font-size: 1.25rem;
  color: #74716b !important;
  letter-spacing: 0.04em;
  border-bottom: 1px solid transparent;
  padding-bottom: 1px;
  line-height: 1.5;
}
.p-s8__more-link:hover,
.p-s8__sns:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}

.p-s8__more-link {
  color: #5e534b !important;
  border-bottom-color: #d1cdc7;
}

.p-s8__reserve {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 18px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  box-shadow: 0 3px 10px rgba(54, 43, 36, 0.12);
  transition: background 0.25s ease, transform 0.25s ease;
}
@media (min-width: 992px) {
  .p-s8__reserve {
    min-height: 42px;
    font-size: 1.35rem;
  }
}
.p-s8__reserve:hover {
  background: #a24019;
  opacity: 1;
  transform: translateY(-1px);
}

/* store-info.html など他ページで使用 */
.p-s8__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 240px;
  padding: 18px 40px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  font-weight: 500;
  box-shadow: 0 4px 14px rgba(54, 43, 36, 0.14);
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.p-s8__cta:hover {
  background: #a24019;
  opacity: 1;
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(54, 43, 36, 0.18);
}

/* ---------- 地図 ---------- */
.p-s8__map {
  border-radius: 8px;
  overflow: hidden;
  min-height: 160px;
  box-shadow: 0 6px 20px rgba(54, 43, 36, 0.08);
}
@media (min-width: 992px) {
  .p-s8__map {
    flex: 0 0 44%;
    max-width: 420px;
    min-height: 200px;
    align-self: stretch;
  }
}
.p-s8__map iframe {
  width: 100%;
  height: 100%;
  min-height: 160px;
  border: 0;
  display: block;
}
@media (min-width: 992px) {
  .p-s8__map iframe {
    min-height: 200px;
    height: 100%;
  }
}

/* ============================================================
   s8 — アクセス ここまで
   ============================================================ */
/* ============================================================
   営業日＋重要なお知らせ（MV・キャッチの直下）
   ============================================================ */
.p-hours-band {
  background: #eeebe4;
  border-bottom: 1px solid #d1cdc7;
}

.p-hours-band__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  max-width: 1080px;
  margin: 0 auto;
  padding: 24px 20px 28px;
}
@media (min-width: 992px) {
  .p-hours-band__inner {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    grid-template-areas: "cal copy" "cal reserve";
    align-items: start;
    column-gap: 56px;
    row-gap: 0;
    padding: 36px 40px;
  }
}

.p-hours-cal {
  box-sizing: border-box;
  flex: none;
  order: 2;
  width: 100%;
  max-width: 280px;
  height: auto;
  overflow: visible;
  padding: 14px 14px 12px;
  background: #fdfcf8;
  border: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-hours-cal {
    order: 0;
    grid-area: cal;
    width: 280px;
    justify-self: start;
    align-self: start;
  }
}

.p-hours-cal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.p-hours-cal__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #362b24;
}

.p-hours-cal__nav {
  display: flex;
  gap: 4px;
}
.p-hours-cal__nav button {
  width: 26px;
  height: 26px;
  padding: 0;
  color: #362b24;
  font-size: 1.8rem;
  line-height: 1;
}
.p-hours-cal__nav button:hover {
  opacity: 0.6;
}

.p-hours-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px 2px;
  text-align: center;
  width: 100%;
}

.p-hours-cal__grid[data-hours-cal-days] {
  min-height: 212px;
  grid-template-rows: repeat(6, 32px);
  overflow: visible;
}

.p-hours-cal__dow {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #5e534b;
  padding-bottom: 6px;
}

.p-hours-cal__day {
  box-sizing: border-box;
  width: 32px;
  height: 32px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  color: #362b24;
}

.p-hours-cal__day.is-out {
  color: #d3cdc6;
}

.p-hours-cal__day.is-weekly,
.p-hours-cal__day.is-temp {
  color: #9a9188;
  background: #eee8e1;
  border-radius: 50%;
}

.p-hours-cal__day.is-lunch {
  color: #4f5e3f;
  background: #e7eee0;
  font-weight: 600;
  border-radius: 50%;
}

.p-hours-cal__day.is-dinner {
  color: #4a5673;
  background: #e4e8f0;
  font-weight: 600;
  border-radius: 50%;
}

.p-hours-cal__day.is-today {
  box-shadow: inset 0 -1px 0 #362b24;
  font-weight: 700;
}

.p-hours-cal__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 12px 0 0;
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  color: #5e534b;
}
.p-hours-cal__legend span::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 5px;
  vertical-align: middle;
  border-radius: 50%;
  background: #eee8e1;
  box-shadow: inset 0 0 0 1px #9a9188;
}
.p-hours-cal__legend .is-lunch::before {
  background: #e7eee0;
  box-shadow: inset 0 0 0 1px #4f5e3f;
}
.p-hours-cal__legend .is-dinner::before {
  background: #e4e8f0;
  box-shadow: inset 0 0 0 1px #4a5673;
}

.p-hours-band__copy {
  order: 1;
  width: 100%;
  text-align: left;
}
@media (min-width: 992px) {
  .p-hours-band__copy {
    order: 0;
    grid-area: copy;
  }
}

.p-hours-band__lead {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.7;
  color: #362b24;
  margin-bottom: 8px;
}
@media (min-width: 992px) {
  .p-hours-band__lead {
    font-size: 1.8rem;
    margin-bottom: 10px;
  }
}

.p-hours-band__weekly {
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  color: #5e534b;
  margin-bottom: 16px;
  line-height: 1.7;
}
@media (min-width: 992px) {
  .p-hours-band__weekly {
    font-size: 1.35rem;
    margin-bottom: 20px;
  }
}

.p-hours-band__sep {
  margin: 0 0.4em;
  color: #d1cdc7;
}

.p-hours-band__notice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 14px 0;
  border-top: 1px solid #d1cdc7;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-hours-band__notice {
    flex-direction: row;
    align-items: center;
    gap: 20px;
    padding: 16px 0;
  }
}

a.p-hours-band__reserve {
  order: 3;
  display: inline-flex;
  align-items: center;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  color: #5e534b;
  border-bottom: 1px solid rgba(54, 43, 36, 0.25);
  padding-bottom: 4px;
}
a.p-hours-band__reserve:hover {
  color: #bd5833;
  border-color: #bd5833;
  opacity: 1;
}
@media (min-width: 992px) {
  a.p-hours-band__reserve {
    order: 0;
    grid-area: reserve;
    justify-self: start;
    align-self: start;
    margin-top: 20px;
    font-size: 1.4rem;
  }
}

.p-top__news-banner-label {
  flex-shrink: 0;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #fff;
  background: #bd5833;
  padding: 4px 10px;
  line-height: 1.4;
}

a.p-top__news-banner-link {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 16px;
  min-width: 0;
  color: #362b24;
  transition: color 0.2s ease, opacity 0.2s ease;
}
a.p-top__news-banner-link:hover {
  color: #bd5833;
  opacity: 1;
}
a.p-top__news-banner-link:hover .p-top__news-banner-arrow {
  transform: translateX(4px);
  color: #bd5833;
}

.p-top__news-banner-date {
  flex-shrink: 0;
  font-family: "Cormorant Garamond", "Noto Sans JP", serif;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #74716b;
  white-space: nowrap;
}

.p-top__news-banner-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5;
}
@media (min-width: 992px) {
  .p-top__news-banner-title {
    font-size: 1.5rem;
  }
}

.p-top__news-banner-arrow {
  flex-shrink: 0;
  font-size: 1.3rem;
  color: #74716b;
  transition: transform 0.25s ease, color 0.2s ease;
  align-self: center;
}

/* ============================================================
   s9 — 最新情報（営業案内・お知らせ）
   WIX貼り付け用：ここから s9 セクション
   ============================================================ */
.p-top__s9-news-section {
  background: #f8f5ee;
  padding: 58px 0 65px;
}
@media (min-width: 992px) {
  .p-top__s9-news-section {
    padding: 79px 0 90px;
  }
}

.p-s9__list {
  max-width: 720px;
  margin: 0 auto;
  text-align: left;
  border-top: 1px solid #d1cdc7;
}

.p-s9__item {
  border-bottom: 1px solid #d1cdc7;
}

a.p-s9__link {
  display: flex;
  align-items: baseline;
  gap: 16px 28px;
  padding: 18px 4px;
  color: #362b24;
  transition: color 0.2s ease, opacity 0.2s ease;
}
@media (min-width: 992px) {
  a.p-s9__link {
    padding: 22px 8px;
    gap: 40px;
  }
}
a.p-s9__link:hover {
  color: #bd5833;
  opacity: 1;
}
a.p-s9__link:hover .p-s9__arrow {
  transform: translateX(4px);
  color: #bd5833;
}

.p-s9__date {
  flex-shrink: 0;
  font-family: "Cormorant Garamond", "Noto Sans JP", serif;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #74716b;
  white-space: nowrap;
}
@media (min-width: 992px) {
  .p-s9__date {
    font-size: 1.55rem;
    min-width: 110px;
  }
}

.p-s9__title {
  flex: 1;
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.6;
}
@media (min-width: 992px) {
  .p-s9__title {
    font-size: 1.7rem;
  }
}

.p-s9__arrow {
  flex-shrink: 0;
  font-size: 1.4rem;
  color: #74716b;
  transition: transform 0.25s ease, color 0.2s ease;
  align-self: center;
}

.p-s9__more {
  margin-top: 32px;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s9__more {
    margin-top: 40px;
  }
}

a.p-s9__more-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  color: #5e534b;
  border-bottom: 1px solid rgba(54, 43, 36, 0.25);
  padding-bottom: 4px;
}
a.p-s9__more-link:hover {
  color: #bd5833;
  border-color: #bd5833;
  opacity: 1;
}

/* ============================================================
   s9 — ここまで
   ============================================================ */
/* ============================================================
   s10 — ご利用シーン（Occasions）
   WIX貼り付け用：ここから s10 セクション
   ============================================================ */
.p-top__s10-scene-section {
  background: #fdfcf8;
  padding: 65px 0 72px;
}
@media (min-width: 992px) {
  .p-top__s10-scene-section {
    padding: 90px 0 99px;
  }
}
.p-top__s10-scene-section .c-sec-heading {
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .p-top__s10-scene-section .c-sec-heading {
    margin-bottom: 20px;
  }
}

.p-s10__lead {
  max-width: 560px;
  margin: 0 auto 40px;
  font-size: 1.4rem;
  line-height: 1.8;
  color: #5e534b;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s10__lead {
    margin-bottom: 56px;
    font-size: 1.5rem;
  }
}

/* ---------- ブロック（SCENE / SERVICE） ---------- */
.p-s10__block + .p-s10__block {
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid rgba(54, 43, 36, 0.1);
}
@media (min-width: 992px) {
  .p-s10__block + .p-s10__block {
    margin-top: 64px;
    padding-top: 56px;
  }
}

.p-s10__block-heading {
  margin-bottom: 12px;
  text-align: center;
}

.p-s10__block-en {
  display: block;
  margin-bottom: 6px;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #bd5833;
}

.p-s10__block-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-s10__block-title {
    font-size: 2.2rem;
  }
}

.p-s10__block-lead {
  max-width: 480px;
  margin: 0 auto 28px;
  font-size: 1.3rem;
  line-height: 1.75;
  color: #5e534b;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s10__block-lead {
    margin-bottom: 36px;
    font-size: 1.4rem;
  }
}

/* ---------- SCENE：横長カード ---------- */
.p-s10__scene-list {
  display: grid;
  gap: 12px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-s10__scene-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (min-width: 992px) {
  .p-s10__scene-list {
    gap: 20px;
  }
}

.p-s10__scene-card {
  display: grid;
  grid-template-columns: 96px 1fr;
  align-items: stretch;
  background: #ffffff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(54, 43, 36, 0.06);
  color: inherit;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (min-width: 992px) {
  .p-s10__scene-card {
    grid-template-columns: 120px 1fr;
    border-radius: 12px;
  }
}
.p-s10__scene-card:hover, .p-s10__scene-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(54, 43, 36, 0.1);
  opacity: 1;
}
.p-s10__scene-card:hover .p-s10__scene-card-img img, .p-s10__scene-card:focus-visible .p-s10__scene-card-img img {
  transform: scale(1.05);
}
.p-s10__scene-card:hover .p-s10__scene-card-more, .p-s10__scene-card:focus-visible .p-s10__scene-card-more {
  color: #a24019;
  letter-spacing: 0.08em;
}
.p-s10__scene-card:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 4px;
}

.p-s10__scene-card-img {
  min-height: 96px;
  overflow: hidden;
  background: #eeebe4;
}
@media (min-width: 992px) {
  .p-s10__scene-card-img {
    min-height: 120px;
  }
}
.p-s10__scene-card-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.p-s10__scene-card-body {
  padding: 12px 14px 14px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (min-width: 992px) {
  .p-s10__scene-card-body {
    padding: 16px 20px 18px 16px;
  }
}

.p-s10__scene-card-tag {
  display: inline-block;
  margin-bottom: 4px;
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  color: #bd5833;
  line-height: 1.3;
}

.p-s10__scene-card-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.03em;
  color: #362b24;
  margin-bottom: 4px;
}
@media (min-width: 992px) {
  .p-s10__scene-card-title {
    font-size: 1.65rem;
    margin-bottom: 6px;
  }
}

.p-s10__scene-card-text {
  font-size: 1.2rem;
  line-height: 1.6;
  color: #5e534b;
  margin-bottom: 6px;
}
@media (min-width: 992px) {
  .p-s10__scene-card-text {
    font-size: 1.25rem;
    line-height: 1.7;
    margin-bottom: 8px;
  }
}

.p-s10__scene-card-more {
  display: inline-block;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833;
  transition: color 0.3s ease, letter-spacing 0.3s ease;
}
@media (min-width: 992px) {
  .p-s10__scene-card-more {
    font-size: 1.2rem;
  }
}

/* ---------- その他シーン（チップ） ---------- */
.p-s10__more {
  margin-top: 28px;
  text-align: center;
}
@media (min-width: 992px) {
  .p-s10__more {
    margin-top: 36px;
  }
}

.p-s10__more-label {
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 14px;
}
@media (min-width: 992px) {
  .p-s10__more-label {
    font-size: 1.55rem;
    margin-bottom: 18px;
  }
}

.p-s10__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 10px;
}

.p-s10__chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  border-radius: 999px;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-s10__chip {
    padding: 10px 18px;
    font-size: 1.3rem;
  }
}

/* ============================================================
   s10 — ご利用シーン ここまで
   ============================================================ */
/* ============================================================
   ご宴会・団体利用ページ（index-party.html）
   ============================================================ */
/* ---------- 共通 ---------- */
.p-party-sec {
  padding: 48px 0 52px;
  scroll-margin-top: var(--party-header-h, 91px);
}
@media (min-width: 992px) {
  .p-party-sec {
    padding: 64px 0 72px;
  }
}
.p-party-sec .c-deco-vine {
  margin-bottom: 12px;
}
.p-party-sec .c-sec-heading {
  margin-bottom: 20px;
}
@media (min-width: 992px) {
  .p-party-sec .c-sec-heading {
    margin-bottom: 24px;
  }
}
.p-party-sec .c-sec-heading__jp {
  font-size: 2.2rem;
  padding-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-sec .c-sec-heading__jp {
    font-size: 2.8rem;
  }
}
.p-party-sec.--cream {
  background: #f8f5ee;
}
.p-party-sec.--light {
  background: #fdfcf8;
}
.p-party-sec.--compact {
  padding: 40px 0 44px;
}
@media (min-width: 992px) {
  .p-party-sec.--compact {
    padding: 52px 0 56px;
  }
}
.p-party-sec.--compact .p-party-lead {
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .p-party-sec.--compact .p-party-lead {
    margin-bottom: 20px;
  }
}

.p-party-lead {
  max-width: 640px;
  margin: 0 auto 24px;
  font-size: 1.35rem;
  line-height: 1.8;
  color: #5e534b;
  text-align: center;
}
@media (min-width: 992px) {
  .p-party-lead {
    margin-bottom: 28px;
    font-size: 1.45rem;
  }
}
.p-party-lead.--wide {
  max-width: 760px;
}

/* ---------- 野田で15年（Wix準拠・コンパクト） ---------- */
.p-party-concept {
  padding: 48px 0 52px;
}
@media (min-width: 992px) {
  .p-party-concept {
    padding: 56px 0 64px;
  }
}
.p-party-concept .c-deco-vine {
  margin-bottom: 12px;
}
.p-party-concept .c-sec-heading {
  margin-bottom: 20px;
}
@media (min-width: 992px) {
  .p-party-concept .c-sec-heading {
    margin-bottom: 24px;
  }
}
.p-party-concept .c-sec-heading__jp {
  font-size: 2.2rem;
  padding-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-concept .c-sec-heading__jp {
    font-size: 2.8rem;
  }
}
.p-party-concept .p-s2__container {
  gap: 24px;
  margin-bottom: 24px;
  align-items: start;
}
@media (min-width: 992px) {
  .p-party-concept .p-s2__container {
    grid-template-columns: minmax(180px, 220px) 1fr;
    gap: 32px;
    margin-bottom: 24px;
  }
}
.p-party-concept .p-s2__photo {
  max-width: 180px;
}
@media (min-width: 992px) {
  .p-party-concept .p-s2__photo {
    max-width: none;
  }
}
@media (min-width: 992px) {
  .p-party-concept .p-s2__photo img {
    max-height: 260px;
  }
}
.p-party-concept .p-s2__catch {
  font-size: 1.7rem;
  margin-bottom: 12px;
  line-height: 1.55;
}
@media (min-width: 992px) {
  .p-party-concept .p-s2__catch {
    font-size: 2rem;
    margin-bottom: 14px;
  }
}
.p-party-concept .p-s2__lead-text {
  font-size: 1.3rem;
  line-height: 1.8;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-concept .p-s2__lead-text {
    font-size: 1.4rem;
  }
}
.p-party-concept .p-s2__lead-text:last-of-type {
  margin-bottom: 16px;
}

.p-party-concept__more {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-party-concept__more:hover {
  color: #a24019;
  opacity: 1;
}

.p-party-proof {
  text-align: left;
}

.p-party-proof__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: #362b24;
  margin-bottom: 8px;
}

.p-party-proof__list {
  margin: 0;
  padding: 0 0 0 1.2em;
}
.p-party-proof__list li {
  font-size: 1.3rem;
  line-height: 1.7;
  color: #5e534b;
}

.p-party-proof__photos {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
@media (min-width: 992px) {
  .p-party-proof__photos {
    gap: 12px;
    margin-bottom: 28px;
  }
}
.p-party-proof__photos img {
  display: block;
  width: 100%;
  height: 72px;
  object-fit: cover;
  background: #f7f4ed;
}
@media (min-width: 992px) {
  .p-party-proof__photos img {
    height: 110px;
  }
}

.p-party-btns {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
@media (min-width: 768px) {
  .p-party-btns {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
  }
}
.p-party-btns.--left {
  align-items: flex-start;
}
@media (min-width: 768px) {
  .p-party-btns.--left {
    justify-content: flex-start;
  }
}
.p-party-btns.--mt {
  margin-top: 28px;
}

.p-party-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 12px 24px;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: center;
  transition: background-color 0.25s ease, opacity 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
@media (min-width: 992px) {
  .p-party-btn {
    min-width: 240px;
    font-size: 1.35rem;
    padding: 14px 28px;
  }
}
.p-party-btn.--primary {
  background: #bd5833;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(54, 43, 36, 0.14);
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.p-party-btn.--primary:hover {
  background: #a24019;
  opacity: 1;
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(54, 43, 36, 0.18);
}
.p-party-btn.--outline {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.85);
  color: #fff !important;
}
.p-party-btn.--outline:hover {
  background: rgba(255, 255, 255, 0.1);
  opacity: 1;
}
.p-party-btn.--outline-dark {
  background: transparent;
  border: 1px solid #362b24;
  color: #362b24 !important;
}
.p-party-btn.--outline-dark:hover {
  background: #362b24;
  color: #fff !important;
  opacity: 1;
}
.p-party-btn.--lg {
  min-width: 260px;
  padding: 18px 36px;
  font-size: 1.4rem;
}
@media (min-width: 992px) {
  .p-party-btn.--lg {
    min-width: 280px;
    padding: 20px 40px;
    font-size: 1.5rem;
  }
}

/* ---------- ページ内目次（一般ヘッダー直下・非固定） ---------- */
.p-party-toc {
  position: absolute;
  top: var(--party-header-h, 91px);
  left: 0;
  right: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  height: 44px;
  padding: 0 12px;
  background: #e8dfd2;
  color: #5e534b;
  border-bottom: 1px solid rgba(54, 43, 36, 0.08);
  box-shadow: 0 1px 0 rgba(54, 43, 36, 0.04);
}
@media (min-width: 992px) {
  .p-party-toc {
    height: 46px;
    padding: 0 32px;
    justify-content: center;
  }
}

.p-party-toc__label {
  flex-shrink: 0;
  margin: 0;
  padding-right: 10px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.2;
  white-space: nowrap;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-party-toc__label {
    font-size: 1.25rem;
    padding-right: 0;
  }
}
.p-party-toc__label a {
  color: inherit !important;
}
.p-party-toc__label a:hover {
  color: #bd5833 !important;
  opacity: 1;
}

.p-party-toc__list {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.p-party-toc__list::-webkit-scrollbar {
  display: none;
}
@media (min-width: 992px) {
  .p-party-toc__list {
    flex: 0 1 auto;
    overflow: visible;
    justify-content: center;
  }
}

.p-party-toc__item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.p-party-toc__item::before {
  content: "｜";
  margin: 0 0.55em;
  color: #c29e6b;
  opacity: 0.75;
  font-size: 1.1rem;
  font-weight: 400;
}
.p-party-toc__item a {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: #5e534b !important;
  white-space: nowrap;
}
@media (min-width: 992px) {
  .p-party-toc__item a {
    font-size: 1.2rem;
  }
}
.p-party-toc__item a:hover {
  color: #bd5833 !important;
  opacity: 1;
}

/* ドロワー：一般メニューの下に団体ページ内メニュー */
.l-drawer__party {
  margin: 8px -24px 0;
  padding: 18px 24px 12px;
  background: #ebe4d8;
}

.l-drawer__group:has(+ .l-drawer__party) {
  border-bottom: none;
}

.l-drawer__party-title {
  display: block;
  margin: 0 0 4px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.55rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #362b24 !important;
}
.l-drawer__party-title:hover {
  color: #bd5833 !important;
  opacity: 1;
}

.l-drawer__party .l-drawer__flat {
  padding-bottom: 4px;
}

.l-drawer__party + .l-drawer__group--muted {
  margin-top: 8px;
}

/* ---------- s1: ファーストビュー ---------- */
.p-party__mv-section {
  position: relative;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #fff;
}

.p-party-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(26, 20, 13, 0.5) 0%, rgba(26, 20, 13, 0.62) 45%, rgba(26, 20, 13, 0.78) 100%);
}

.p-party__breadcrumb {
  position: absolute;
  top: calc(var(--party-header-h, 91px) + 48px);
  left: 0;
  right: 0;
  z-index: 3;
  pointer-events: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 8px 0 0;
  font-size: 1.2rem;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.72);
}
@media (min-width: 992px) {
  .p-party__breadcrumb {
    top: calc(var(--party-header-h, 108px) + 50px);
    font-size: 1.25rem;
    padding-top: 10px;
  }
}
.p-party__breadcrumb a {
  color: rgba(255, 255, 255, 0.88) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}
.p-party__breadcrumb a:hover {
  color: #fff !important;
  border-bottom-color: #fff;
  opacity: 1;
}
.p-party__breadcrumb span[aria-hidden=true] {
  color: rgba(255, 255, 255, 0.45);
}

.p-party-mv__inner {
  position: relative;
  z-index: 2;
  width: 90%;
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  padding: calc(var(--party-header-h, 91px) + 96px) 0 36px;
}
@media (min-width: 992px) {
  .p-party-mv__inner {
    padding: calc(var(--party-header-h, 108px) + 88px) 0 40px;
  }
}
.p-party-mv__inner .p-party-btn.--lg {
  max-width: 100%;
  line-height: 1.45;
  letter-spacing: 0.04em;
  white-space: normal;
}

.p-party-mv__en {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  margin-bottom: 10px;
  opacity: 0.95;
}
@media (min-width: 992px) {
  .p-party-mv__en {
    font-size: 1.8rem;
    margin-bottom: 14px;
  }
}

.p-party-mv__label {
  display: inline-block;
  font-size: 1.15rem;
  letter-spacing: 0.16em;
  margin-bottom: 12px;
  padding: 4px 14px;
  border: 1px solid rgba(255, 255, 255, 0.55);
}
@media (min-width: 992px) {
  .p-party-mv__label {
    font-size: 1.25rem;
    margin-bottom: 16px;
  }
}

.p-party-mv__title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}
@media (min-width: 768px) {
  .p-party-mv__title {
    font-size: 2.8rem;
  }
}
@media (min-width: 992px) {
  .p-party-mv__title {
    font-size: 3.2rem;
    line-height: 1.6;
    margin-bottom: 16px;
  }
}

.p-party-mv__capacity {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
  color: #c29e6b;
}
@media (min-width: 992px) {
  .p-party-mv__capacity {
    font-size: 1.8rem;
    margin-bottom: 20px;
  }
}

.p-party-mv__lead {
  font-size: 1.3rem;
  font-weight: 300;
  line-height: 1.7;
  letter-spacing: 0.04em;
  opacity: 0.92;
  margin-bottom: 8px;
}
@media (min-width: 992px) {
  .p-party-mv__lead {
    font-size: 1.4rem;
    margin-bottom: 10px;
  }
}

.p-party-mv__note {
  font-size: 1.15rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.6;
  opacity: 0.82;
  margin: 0 auto 20px;
}
@media (min-width: 992px) {
  .p-party-mv__note {
    font-size: 1.25rem;
    margin-bottom: 24px;
  }
}

.p-party-mv__badges {
  list-style: none;
  margin: 0 auto 20px;
  padding: 0;
  display: grid;
  gap: 10px;
  max-width: 860px;
}
@media (min-width: 768px) {
  .p-party-mv__badges {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 24px;
  }
}

.p-party-mv__badge {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(6px);
  text-align: left;
  color: inherit;
  text-decoration: none;
  height: 100%;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .p-party-mv__badge {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    padding: 12px 12px;
  }
}

.p-party-mv__badge-icon {
  flex-shrink: 0;
  display: flex;
  width: 40px;
  height: 40px;
}
.p-party-mv__badge-icon img {
  width: 40px;
  height: 40px;
  filter: brightness(1.35) saturate(1.05);
}

.p-party-mv__badge-text {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-party-mv__badge-text {
    font-size: 1.25rem;
  }
}

.p-party-mv__bento-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 3;
  margin-top: 20px;
  padding: 10px 16px;
  min-height: 40px;
  color: inherit;
  opacity: 0.92;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-align: center;
}
.p-party-mv__bento-link:hover {
  opacity: 1;
}

.p-party-mv__links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
}
.p-party-mv__links .p-party-mv__bento-link {
  margin-top: 0;
  font-size: 1.45rem;
  font-weight: 500;
}

.p-party-mv__tel,
.p-party-mv__quiet {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-align: center;
}
.p-party-mv__tel:hover,
.p-party-mv__quiet:hover {
  opacity: 1;
}

.p-party-mv__tel {
  font-size: 1.25rem;
  opacity: 0.92;
}

.p-party-mv__quiet {
  font-size: 1.15rem;
  opacity: 0.72;
}

/* ---------- s2/s3: 共通カード（強み・利用シーン） ---------- */
.p-party-cards {
  display: grid;
  gap: 16px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-party-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
@media (min-width: 992px) {
  .p-party-cards {
    gap: 24px;
  }
}

#id-scene .p-party-cards {
  margin-bottom: 24px;
}
@media (min-width: 992px) {
  #id-scene .p-party-cards {
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 32px;
  }
}

.p-party-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(54, 43, 36, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  color: inherit;
  text-decoration: none;
  height: 100%;
}
.p-party-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(54, 43, 36, 0.1);
}

.p-party-card--link:hover .p-party-card__img img, .p-party-card--link:focus-visible .p-party-card__img img {
  transform: scale(1.04);
}
.p-party-card--link:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 4px;
}

.p-party-card__img {
  aspect-ratio: 16/8;
  overflow: hidden;
  background: #eeebe4;
  flex-shrink: 0;
}
.p-party-card__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.p-party-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 14px 16px 16px;
}
@media (min-width: 992px) {
  .p-party-card__body {
    padding: 16px 18px 18px;
  }
}

.p-party-card__tag {
  font-size: 1.15rem;
  letter-spacing: 0.08em;
  color: #bd5833;
  margin-bottom: 8px;
}

.p-party-card__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: #362b24;
  margin-bottom: 10px;
}
@media (min-width: 992px) {
  .p-party-card__title {
    font-size: 1.85rem;
  }
}

.p-party-card__text {
  font-size: 1.3rem;
  line-height: 1.85;
  color: #5e534b;
}

.p-party-card__more {
  display: inline-block;
  margin-top: auto;
  padding-top: 10px;
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* 強み：写真左・テキスト右（省スペース） */
.p-party-cards--row {
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 768px) {
  .p-party-cards--row {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
@media (min-width: 992px) {
  .p-party-cards--row {
    gap: 18px;
  }
}

.p-party-card--row {
  display: grid;
  grid-template-columns: 96px 1fr;
  align-items: stretch;
  flex-direction: unset;
}
@media (min-width: 768px) {
  .p-party-card--row {
    grid-template-columns: 160px 1fr;
  }
}
@media (min-width: 992px) {
  .p-party-card--row {
    grid-template-columns: 200px 1fr;
  }
}
.p-party-card--row .p-party-card__img {
  aspect-ratio: auto;
  min-height: 96px;
  align-self: stretch;
}
@media (min-width: 768px) {
  .p-party-card--row .p-party-card__img {
    min-height: 140px;
  }
}
@media (min-width: 992px) {
  .p-party-card--row .p-party-card__img {
    min-height: 160px;
  }
}
.p-party-card--row .p-party-card__body {
  padding: 12px 12px 14px 10px;
}
@media (min-width: 768px) {
  .p-party-card--row .p-party-card__body {
    padding: 18px 20px 20px 16px;
  }
}
@media (min-width: 992px) {
  .p-party-card--row .p-party-card__body {
    padding: 20px 24px 22px 18px;
  }
}
.p-party-card--row .p-party-card__tag {
  font-size: 1.1rem;
  margin-bottom: 6px;
  line-height: 1.35;
}
@media (min-width: 768px) {
  .p-party-card--row .p-party-card__tag {
    font-size: 1.15rem;
    margin-bottom: 8px;
  }
}
.p-party-card--row .p-party-card__title {
  font-size: 1.4rem;
  line-height: 1.4;
  margin-bottom: 6px;
}
@media (min-width: 768px) {
  .p-party-card--row .p-party-card__title {
    font-size: 1.6rem;
    line-height: 1.5;
    margin-bottom: 8px;
  }
}
@media (min-width: 992px) {
  .p-party-card--row .p-party-card__title {
    font-size: 1.7rem;
  }
}
.p-party-card--row .p-party-card__text {
  font-size: 1.2rem;
  line-height: 1.65;
}
@media (min-width: 768px) {
  .p-party-card--row .p-party-card__text {
    font-size: 1.3rem;
    line-height: 1.8;
  }
}

/* ---------- s3: 利用シーン（その他チップ） ---------- */
.p-party-scene__more {
  text-align: center;
}

.p-party-scene__more-label {
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-scene__more-label {
    font-size: 1.55rem;
    margin-bottom: 14px;
  }
}

.p-party-scene__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 12px;
}

.p-party-scene__chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  border-radius: 999px;
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  color: #5e534b;
  transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}
@media (min-width: 992px) {
  .p-party-scene__chip {
    padding: 12px 22px;
    font-size: 1.35rem;
  }
}
.p-party-scene__chip:hover {
  border-color: #bd5833;
  color: #bd5833;
  opacity: 1;
}

/* ---------- s4: コース一覧 ---------- */
.p-party-course__plans {
  display: grid;
  gap: 16px;
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .p-party-course__plans {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    align-items: stretch;
  }
}

.p-party-course__plan {
  position: relative;
  background: #ffffff;
  border-radius: 12px;
  padding: 0 0 18px;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(54, 43, 36, 0.05);
  border: 1px solid transparent;
  text-align: center;
}
.p-party-course__plan.--popular {
  border-color: #bd5833;
  box-shadow: 0 10px 32px rgba(189, 88, 51, 0.12);
}

.p-party-course__img {
  aspect-ratio: 16/8;
  overflow: hidden;
  background: #eeebe4;
  margin-bottom: 16px;
}
.p-party-course__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-party-course__body {
  padding: 0 18px;
}

.p-party-course__badge {
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  background: #bd5833;
  color: #fff;
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 5px 14px;
  border-radius: 999px;
  white-space: nowrap;
}

.p-party-course__label {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.2rem;
  letter-spacing: 0.16em;
  color: #c29e6b;
  margin-bottom: 4px;
}

.p-party-course__name {
  font-family: "Noto Serif JP", serif;
  font-size: 2rem;
  font-weight: 600;
  color: #362b24;
  margin-bottom: 6px;
}

.p-party-course__price {
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-size: 2.6rem;
  font-weight: 600;
  color: #bd5833;
  margin-bottom: 12px;
  line-height: 1.2;
}
.p-party-course__price span {
  font-size: 1.4rem;
  font-weight: 400;
  margin-left: 2px;
}

.p-party-course__list {
  text-align: left;
  display: inline-block;
}
.p-party-course__list li {
  position: relative;
  padding-left: 18px;
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
}
.p-party-course__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #bd5833;
}

.p-party-course__freeflow {
  background: #eeebe4;
  border-radius: 12px;
  padding: 18px 16px;
  margin-bottom: 0;
}
.p-party-course__freeflow h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  margin-bottom: 8px;
  color: #362b24;
}

.p-party-course__freeflow-price {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.6rem;
  font-weight: 600;
  color: #bd5833;
  margin-bottom: 8px;
}
.p-party-course__freeflow-price span {
  font-size: 1.4rem;
  font-weight: 400;
}

.p-party-course__freeflow-note {
  font-size: 1.3rem;
  color: #74716b;
}

.p-party-course__terms {
  background: #ffffff;
  border-radius: 12px;
  padding: 18px 16px;
  box-shadow: 0 4px 20px rgba(54, 43, 36, 0.04);
}
.p-party-course__terms h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  color: #362b24;
  margin-bottom: 12px;
}

.p-party-course__terms-grid {
  display: grid;
  gap: 20px;
}
@media (min-width: 768px) {
  .p-party-course__terms-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
}

.p-party-course__terms-label {
  font-size: 1.2rem;
  letter-spacing: 0.06em;
  color: #74716b;
  margin-bottom: 4px;
}

.p-party-course__terms-value {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  color: #362b24;
}

/* ---------- 中間CTA ---------- */
.p-party-mid-cta {
  margin-top: 24px;
  padding: 20px 16px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(54, 43, 36, 0.05);
  text-align: center;
  border: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-party-mid-cta {
    margin-top: 28px;
    padding: 24px 32px;
  }
}

.p-party-mid-cta__label {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  color: #c29e6b;
  margin-bottom: 8px;
}

.p-party-mid-cta__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 10px;
}
@media (min-width: 992px) {
  .p-party-mid-cta__title {
    font-size: 2.1rem;
    margin-bottom: 12px;
  }
}

.p-party-mid-cta__text {
  max-width: 560px;
  margin: 0 auto 16px;
  font-size: 1.3rem;
  line-height: 1.7;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-party-mid-cta__text {
    font-size: 1.35rem;
    margin-bottom: 18px;
  }
}

.p-party-mid-cta__sub {
  margin-top: 14px;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #74716b;
}
.p-party-mid-cta__sub a {
  color: #bd5833;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-party-mid-cta__sub a:hover {
  opacity: 1;
}

.p-party-mid-cta .c-guide-link,
.p-corporate-note .c-guide-link {
  margin-top: 20px;
  margin-bottom: 0;
}

/* ---------- s5: 個室HaNaRe ---------- */
.p-party-hanare {
  display: grid;
  gap: 16px;
  text-align: left;
  align-items: start;
  padding: 16px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(54, 43, 36, 0.05);
}
@media (min-width: 768px) {
  .p-party-hanare {
    grid-template-columns: 180px 1fr;
    gap: 20px;
    padding: 18px;
  }
}
@media (min-width: 992px) {
  .p-party-hanare {
    grid-template-columns: minmax(200px, 240px) 1fr;
    gap: 28px;
    padding: 20px 24px;
  }
}

.p-party-hanare__photo {
  overflow: hidden;
  border-radius: 4px;
  margin: 0;
  aspect-ratio: 16/10;
  background: #eeebe4;
}
@media (min-width: 768px) {
  .p-party-hanare__photo {
    aspect-ratio: 4/5;
    align-self: stretch;
    min-height: 100%;
  }
}
.p-party-hanare__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-party-hanare__catch {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 10px;
}
@media (min-width: 992px) {
  .p-party-hanare__catch {
    font-size: 1.85rem;
    margin-bottom: 12px;
  }
}

.p-party-hanare__text {
  font-size: 1.3rem;
  line-height: 1.75;
  color: #5e534b;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-hanare__text {
    font-size: 1.35rem;
    margin-bottom: 14px;
  }
}

.p-party-hanare__specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  margin-bottom: 16px;
  padding: 14px 0;
  border-top: 1px solid #d1cdc7;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-party-hanare__specs {
    grid-template-columns: repeat(4, 1fr);
    gap: 12px 20px;
    margin-bottom: 18px;
    padding: 16px 0;
  }
}
.p-party-hanare__specs div {
  min-width: 0;
}
.p-party-hanare__specs dt {
  font-size: 1.1rem;
  letter-spacing: 0.06em;
  color: #bd5833;
  margin-bottom: 4px;
}
.p-party-hanare__specs dd {
  font-family: "Noto Serif JP", serif;
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-party-hanare__specs dd {
    font-size: 1.55rem;
  }
}

.p-party-hanare__note {
  font-size: 1.25rem;
  line-height: 1.75;
  color: #74716b;
  margin-bottom: 12px;
}

.p-party-hanare__more {
  display: inline-block;
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.p-party-hanare__more:hover {
  opacity: 0.8;
}

/* ---------- s6: イタリアン弁当・ケータリング ---------- */
.p-party-delivery__grid {
  display: grid;
  gap: 16px;
  text-align: left;
  margin-bottom: 20px;
}
@media (min-width: 992px) {
  .p-party-delivery__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 24px;
  }
}

.p-party-delivery__card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(54, 43, 36, 0.06);
  height: 100%;
}

.p-party-delivery__img {
  aspect-ratio: 16/8;
  overflow: hidden;
  background: #eeebe4;
  flex-shrink: 0;
}
.p-party-delivery__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-party-delivery__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 16px 18px 18px;
}
@media (min-width: 992px) {
  .p-party-delivery__body {
    padding: 18px 20px 20px;
  }
}

.p-party-delivery__en {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  color: #c29e6b;
  margin-bottom: 8px;
}

.p-party-delivery__title {
  font-family: "Noto Serif JP", serif;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-delivery__title {
    font-size: 2.2rem;
  }
}

.p-party-delivery__text {
  font-size: 1.35rem;
  line-height: 1.85;
  color: #5e534b;
  margin-bottom: 20px;
}

.p-party-delivery__meta {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: grid;
  gap: 0;
  border-top: 1px solid #d1cdc7;
}
.p-party-delivery__meta li {
  display: grid;
  grid-template-columns: 7.5em 1fr;
  gap: 12px;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid #d1cdc7;
  font-size: 1.3rem;
  line-height: 1.7;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-party-delivery__meta li {
    grid-template-columns: 8.5em 1fr;
    font-size: 1.35rem;
  }
}
.p-party-delivery__meta strong {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  color: #bd5833;
  letter-spacing: 0.02em;
}
.p-party-delivery__meta span {
  color: #5e534b;
}
.p-party-delivery__meta small {
  display: inline-block;
  margin-top: 4px;
  font-size: 1.15rem;
  line-height: 1.6;
  color: #74716b;
}

.p-party-delivery__scene {
  margin-top: auto;
  font-size: 1.25rem;
  line-height: 1.8;
  color: #74716b;
  padding-top: 4px;
}

.p-party-subhead {
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  font-weight: 600;
  color: #362b24;
  text-align: center;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-subhead {
    font-size: 2rem;
  }
}

.p-party-logistics {
  margin: 0 0 20px;
  padding: 16px 14px 14px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(54, 43, 36, 0.06);
  border-top: 3px solid #bd5833;
}
@media (min-width: 992px) {
  .p-party-logistics {
    margin-bottom: 24px;
    padding: 18px 22px 16px;
  }
}
.p-party-logistics--cta {
  margin: 28px auto 0;
  max-width: 760px;
  padding: 18px 16px 16px;
  border-top-width: 2px;
  box-shadow: 0 4px 20px rgba(54, 43, 36, 0.04);
}
@media (min-width: 992px) {
  .p-party-logistics--cta {
    margin-top: 32px;
    padding: 20px 24px 18px;
  }
}
@media (min-width: 768px) {
  .p-party-logistics--cta .p-party-logistics__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-party-logistics--cta .p-party-logistics__value {
  font-size: 1.5rem;
}
@media (min-width: 992px) {
  .p-party-logistics--cta .p-party-logistics__value {
    font-size: 1.65rem;
  }
}

.p-party-logistics__kicker {
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: #bd5833;
  text-align: center;
  margin-bottom: 12px;
}

.p-party-logistics__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 18px 16px;
  text-align: center;
}
@media (min-width: 768px) {
  .p-party-logistics__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 24px;
  }
}
@media (min-width: 992px) {
  .p-party-logistics__list {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px 20px;
  }
}

.p-party-logistics__label {
  font-size: 1.15rem;
  letter-spacing: 0.08em;
  color: #74716b;
  margin-bottom: 6px;
}

.p-party-logistics__value {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.4;
  color: #362b24;
  margin-bottom: 4px;
}
@media (min-width: 992px) {
  .p-party-logistics__value {
    font-size: 1.85rem;
  }
}

.p-party-logistics__note {
  font-size: 1.15rem;
  line-height: 1.6;
  color: #74716b;
}

.p-party-bento-price {
  margin: 8px 0 40px;
}
@media (min-width: 992px) {
  .p-party-bento-price {
    margin-bottom: 48px;
  }
}

.p-party-bento-price__lead,
.p-party-estimate__lead {
  font-size: 1.3rem;
  line-height: 1.8;
  color: #5e534b;
  text-align: center;
  margin-bottom: 24px;
}

.p-party-estimate {
  margin: 0 0 40px;
}
@media (min-width: 992px) {
  .p-party-estimate {
    margin-bottom: 48px;
  }
}

.p-party-estimate__grid {
  display: grid;
  gap: 16px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-party-estimate__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

.p-party-estimate__card {
  background: #ffffff;
  border-radius: 12px;
  padding: 24px 20px 20px;
  box-shadow: 0 6px 24px rgba(54, 43, 36, 0.05);
}

.p-party-estimate__num {
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  font-weight: 600;
  color: #bd5833;
  text-align: center;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #d1cdc7;
}

.p-party-estimate__dl {
  margin: 0;
  display: grid;
  gap: 10px;
}
.p-party-estimate__dl > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.p-party-estimate__dl dt {
  font-size: 1.25rem;
  color: #74716b;
}
.p-party-estimate__dl dd {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: #362b24;
  text-align: right;
  white-space: nowrap;
}

.p-party-estimate__note {
  margin-top: 16px;
  font-size: 1.2rem;
  line-height: 1.8;
  color: #74716b;
  text-align: center;
}

.p-party-order-cta--center {
  text-align: center;
}

.p-party-choice {
  margin: 14px auto 0;
  max-width: 36em;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #5e534b;
}
.p-party-choice a {
  color: #bd5833;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-party-choice a:hover {
  color: #a24019;
  opacity: 1;
}

.p-party-order-cta__micro {
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  color: #bd5833;
  margin-bottom: 16px;
}
.p-party-mid-cta .p-party-order-cta__micro {
  margin-top: 4px;
}
@media (min-width: 992px) {
  .p-party-order-cta__micro {
    font-size: 1.4rem;
    margin-bottom: 20px;
  }
}

.p-party-order-cta__note {
  max-width: 640px;
  margin: 28px auto 0;
  padding: 22px 20px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(54, 43, 36, 0.04);
  text-align: left;
}
@media (min-width: 992px) {
  .p-party-order-cta__note {
    margin-top: 32px;
    padding: 26px 28px;
  }
}

.p-party-order-cta__note-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: #362b24;
  margin-bottom: 12px;
  text-align: center;
}

.p-party-order-cta__note-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.p-party-order-cta__note-list li {
  position: relative;
  padding-left: 16px;
  font-size: 1.3rem;
  line-height: 1.8;
  color: #5e534b;
}
.p-party-order-cta__note-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #bd5833;
}

/* ---------- s8: テイクアウト ---------- */
.p-party-takeout__grid {
  display: grid;
  gap: 24px;
  text-align: left;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .p-party-takeout__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
}

.p-party-takeout__item {
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(54, 43, 36, 0.05);
}

.p-party-takeout__img {
  aspect-ratio: 16/10;
  overflow: hidden;
  background: #eeebe4;
}
.p-party-takeout__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-party-takeout__body {
  padding: 22px 20px 26px;
}

.p-party-takeout__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  font-weight: 600;
  color: #362b24;
  margin-bottom: 8px;
}

.p-party-takeout__text {
  font-size: 1.3rem;
  line-height: 1.85;
  color: #5e534b;
}

.p-party-takeout__howto {
  background: #ffffff;
  border-radius: 12px;
  padding: 28px 22px;
  box-shadow: 0 6px 24px rgba(54, 43, 36, 0.05);
  text-align: left;
  max-width: 720px;
  margin: 0 auto;
}
.p-party-takeout__howto h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  color: #362b24;
  margin-bottom: 16px;
  text-align: center;
}

.p-party-takeout__steps {
  display: grid;
  gap: 14px;
}
.p-party-takeout__steps li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  font-size: 1.35rem;
  line-height: 1.8;
  color: #5e534b;
}

.p-party-takeout__num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #bd5833;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 500;
  margin-top: 2px;
}

/* ---------- s9: FAQ ---------- */
.p-party-faq__list {
  max-width: 760px;
  margin: 0 auto;
  text-align: left;
}

.p-party-faq__item {
  background: #ffffff;
  border-radius: 10px;
  margin-bottom: 12px;
  box-shadow: 0 4px 16px rgba(54, 43, 36, 0.04);
  overflow: hidden;
}

.p-party-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  text-align: left;
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: #362b24;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
@media (min-width: 992px) {
  .p-party-faq__q {
    font-size: 1.55rem;
    padding: 16px 22px;
  }
}
.p-party-faq__q.on .p-party-faq__icon::before {
  transform: rotate(90deg);
  opacity: 0;
}
.p-party-faq__q.on .p-party-faq__icon::after {
  transform: rotate(180deg);
}

.p-party-faq__icon {
  position: relative;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
.p-party-faq__icon::before, .p-party-faq__icon::after {
  content: "";
  position: absolute;
  background: #bd5833;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.p-party-faq__icon::before {
  width: 14px;
  height: 1.5px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-party-faq__icon::after {
  width: 1.5px;
  height: 14px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.p-party-faq__a {
  display: none;
  padding: 0 22px 22px;
}
@media (min-width: 992px) {
  .p-party-faq__a {
    padding: 0 28px 26px;
  }
}
.p-party-faq__a p {
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
  border-top: 1px solid #d1cdc7;
  padding-top: 16px;
}
.p-party-faq__a a {
  color: #bd5833;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-party-faq__a a:hover {
  color: #a24019;
  opacity: 1;
}

/* ---------- 地域での信頼・行政関連の実績 ---------- */
.p-track__stats-wrap {
  max-width: 640px;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .p-track__stats-wrap {
    margin-bottom: 0;
  }
}
.p-track__stats-wrap .p-track__stats {
  margin-bottom: 12px;
}

.p-track__stats-note {
  font-size: 1.2rem;
  line-height: 1.7;
  color: #74716b;
  text-align: center;
}

.p-track__stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  max-width: 640px;
  margin: 0 auto 12px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  border-radius: 999px;
  overflow: hidden;
}
@media (min-width: 992px) {
  .p-track__stats {
    margin-bottom: 12px;
  }
}

.p-track__stat {
  flex: 1;
  min-width: 100px;
  padding: 12px 10px;
  border-right: 1px solid #d1cdc7;
  text-align: center;
}
.p-track__stat:last-child {
  border-right: none;
}

.p-track__stat-num {
  font-family: "Cormorant Garamond", serif;
  font-size: 3rem;
  font-weight: 600;
  color: #bd5833;
  line-height: 1.1;
  margin-bottom: 4px;
}
@media (min-width: 992px) {
  .p-track__stat-num {
    font-size: 3.6rem;
  }
}

.p-track__stat-label {
  font-size: 1.15rem;
  color: #74716b;
  letter-spacing: 0.04em;
}

.p-trust__proofs {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 40px;
}
@media (min-width: 992px) {
  .p-trust__proofs {
    gap: 24px;
    margin-bottom: 48px;
  }
}
.p-trust__proofs .p-track__highlight {
  margin: 0;
  width: 100%;
}
@media (min-width: 992px) {
  .p-trust__proofs .p-track__highlight {
    margin: 0;
  }
}
@media (min-width: 992px) {
  .p-trust__proofs .p-track__highlight:nth-child(even) {
    grid-template-columns: 1fr minmax(220px, 300px);
  }
  .p-trust__proofs .p-track__highlight:nth-child(even) .p-track__highlight-img {
    order: 2;
  }
}

.p-track__highlight {
  display: grid;
  gap: 28px;
  align-items: center;
  max-width: 920px;
  margin: 0 auto 48px;
  padding: 28px 24px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  text-align: left;
}
@media (min-width: 992px) {
  .p-track__highlight {
    grid-template-columns: minmax(220px, 300px) 1fr;
    gap: 40px;
    margin-bottom: 64px;
    padding: 36px 40px;
    align-items: stretch;
  }
}

.p-track__highlight-img {
  max-width: 240px;
  margin: 0 auto;
  padding: 10px;
  background: #fdfcf8;
  border: 1px solid #e4dfd4;
}
@media (min-width: 992px) {
  .p-track__highlight-img {
    max-width: none;
    margin: 0;
  }
}
.p-track__highlight-img img {
  display: block;
  width: 100%;
  height: auto;
}
.p-track__highlight-img.--photo {
  padding: 0;
  max-width: none;
  overflow: hidden;
  background: #f7f4ed;
  border: none;
}
.p-track__highlight-img.--photo img {
  height: 100%;
  min-height: 180px;
  object-fit: cover;
}
.p-track__highlight-img.--poster {
  background: #ffffff;
  max-width: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 992px) {
  .p-track__highlight-img.--poster {
    max-width: none;
  }
}
.p-track__highlight-img.--poster img {
  object-fit: contain;
  max-height: 280px;
}

.p-trust__foot {
  max-width: 720px;
  margin: 0 auto;
  padding-top: 8px;
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
  text-align: center;
}

.p-track__highlight-tag {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #bd5833;
}

.p-track__highlight-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.p-track__highlight-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-track__highlight-title {
    font-size: 2rem;
  }
}

.p-track__highlight-text {
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
}

.p-track__voices {
  margin-bottom: 40px;
}
@media (min-width: 992px) {
  .p-track__voices {
    margin-bottom: 48px;
  }
}

.p-track__voices-heading {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  text-align: center;
  margin-bottom: 24px;
}
@media (min-width: 992px) {
  .p-track__voices-heading {
    font-size: 1.8rem;
    margin-bottom: 32px;
  }
}

.p-track__voice-grid {
  display: grid;
  gap: 20px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-track__voice-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}

.p-track__voice {
  background: #ffffff;
  border: 1px solid #d1cdc7;
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
}
@media (min-width: 992px) {
  .p-track__voice {
    padding: 32px 28px 28px;
  }
}

.p-track__quote {
  font-family: "Cormorant Garamond", serif;
  font-size: 5rem;
  line-height: 0.6;
  color: rgba(189, 88, 51, 0.28);
  margin-bottom: 8px;
}

.p-track__stars {
  color: #c29e6b;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  margin-bottom: 14px;
}

.p-track__voice-text {
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
  flex: 1;
  margin-bottom: 20px;
}

.p-track__author {
  border-top: 1px solid #d1cdc7;
  padding-top: 16px;
}

.p-track__name {
  font-size: 1.4rem;
  font-weight: 600;
  color: #362b24;
  margin-bottom: 2px;
}

.p-track__role {
  font-size: 1.2rem;
  color: #74716b;
}

.p-track__pending {
  max-width: 800px;
  margin: 0 auto;
  padding: 28px 24px;
  background: #eeebe4;
  border: 1px dashed rgba(189, 88, 51, 0.45);
  text-align: left;
}
@media (min-width: 992px) {
  .p-track__pending {
    padding: 32px 36px;
  }
}

.p-track__pending-label {
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 10px;
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #bd5833;
  background: rgba(189, 88, 51, 0.08);
}

.p-track__pending-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
  color: #362b24;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-track__pending-title {
    font-size: 1.8rem;
  }
}

.p-track__pending-text {
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
}

/* ---------- 地域での信頼・行政関連 ---------- */
.p-community__grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
  text-align: left;
}
@media (min-width: 576px) {
  .p-community__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px 10px;
  }
}
@media (min-width: 768px) {
  .p-community__grid {
    gap: 16px 18px;
  }
}
@media (min-width: 992px) {
  .p-community__grid {
    gap: 16px 24px;
  }
}

.p-community__card {
  display: grid;
  grid-template-columns: 88px 1fr;
  column-gap: 12px;
  align-items: start;
  min-width: 0;
}
@media (min-width: 576px) {
  .p-community__card {
    display: flex;
    flex-direction: column;
  }
}

.p-community__media {
  overflow: hidden;
  grid-row: 1/span 3;
  aspect-ratio: 1;
  background: #f7f4ed;
  margin-bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 576px) {
  .p-community__media {
    grid-row: auto;
    aspect-ratio: 16/9;
    margin-bottom: 8px;
  }
}
@media (min-width: 768px) {
  .p-community__media {
    margin-bottom: 10px;
  }
}
.p-community__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-community__media.--cert, .p-community__media.p-community__media--cert {
  background: #ffffff;
  border: 1px solid #e4dfd4;
  padding: 4px;
}
@media (min-width: 576px) {
  .p-community__media.--cert, .p-community__media.p-community__media--cert {
    padding: 6px;
  }
}
@media (min-width: 768px) {
  .p-community__media.--cert, .p-community__media.p-community__media--cert {
    padding: 8px;
  }
}
.p-community__media.--cert img, .p-community__media.p-community__media--cert img {
  object-fit: contain;
}
.p-community__media.--pork img, .p-community__media.p-community__media--pork img {
  object-fit: contain;
}
.p-community__media.--plain, .p-community__media.p-community__media--plain {
  flex-direction: column;
  gap: 8px;
  background: #eeebe4;
  border: 1px solid #e4dfd4;
}

.p-community__plain-num {
  font-family: "Cormorant Garamond", serif;
  font-size: 4.8rem;
  font-weight: 600;
  line-height: 1;
  color: #bd5833;
}

.p-community__plain-label {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  font-style: italic;
  letter-spacing: 0.06em;
  color: #74716b;
}

.p-community__tag {
  margin-bottom: 4px;
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #bd5833;
  line-height: 1.35;
}
@media (min-width: 768px) {
  .p-community__tag {
    margin-bottom: 6px;
    font-size: 1.1rem;
    letter-spacing: 0.06em;
  }
}

.p-community__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #362b24;
  margin-bottom: 4px;
}
@media (min-width: 576px) {
  .p-community__title {
    font-size: 1.25rem;
    margin-bottom: 6px;
  }
}
@media (min-width: 768px) {
  .p-community__title {
    font-size: 1.4rem;
    line-height: 1.45;
    letter-spacing: 0.04em;
    margin-bottom: 8px;
  }
}
@media (min-width: 992px) {
  .p-community__title {
    font-size: 1.55rem;
    line-height: 1.5;
  }
}

.p-community__text {
  font-size: 1.25rem;
  line-height: 1.6;
  color: #5e534b;
}
@media (min-width: 576px) {
  .p-community__text {
    font-size: 1.15rem;
    line-height: 1.55;
  }
}
@media (min-width: 768px) {
  .p-community__text {
    font-size: 1.25rem;
    line-height: 1.7;
  }
}
@media (min-width: 992px) {
  .p-community__text {
    font-size: 1.35rem;
    line-height: 1.8;
  }
}

/* ---------- ご利用人数・お席／幹事様へ ---------- */
#id-group.p-party-sec {
  padding-top: 40px;
}
@media (min-width: 992px) {
  #id-group.p-party-sec {
    padding-top: 52px;
  }
}
#id-group.p-party-sec .p-party-lead {
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  #id-group.p-party-sec .p-party-lead {
    margin-bottom: 20px;
  }
}

.p-party-num {
  color: #bd5833;
  font-weight: 600;
}

.p-party-seats {
  margin-bottom: 20px;
  text-align: center;
}
@media (min-width: 992px) {
  .p-party-seats {
    margin-bottom: 24px;
  }
}
.p-party-seats .p-party-course__terms-value .p-party-num {
  font-size: 1.2em;
}
.p-party-seats .p-party-course__terms-value {
  white-space: nowrap;
}

.p-party-seats__lead {
  font-size: 1.3rem;
  line-height: 1.7;
  color: #5e534b;
  max-width: 36em;
  margin: 0 auto 14px;
}

@media (min-width: 768px) {
  .p-party-seats .p-party-course__terms-grid {
    grid-template-columns: repeat(2, minmax(0, 240px));
    justify-content: center;
  }
}
.p-corporate-grid {
  display: grid;
  gap: 12px;
  margin-bottom: 20px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-corporate-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
}
@media (min-width: 992px) {
  .p-corporate-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
  }
  .p-corporate-grid--four {
    grid-template-columns: repeat(2, 1fr);
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
  }
}

.p-corporate-card {
  background: #ffffff;
  border: 1px solid #c4bfb7;
  border-top: 2px solid #bd5833;
  padding: 16px 16px 14px;
}
@media (min-width: 992px) {
  .p-corporate-card {
    padding: 18px 18px 16px;
  }
}

.p-corporate-card__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #eeebe4;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1;
  color: #bd5833;
  margin-bottom: 8px;
  letter-spacing: 0.04em;
}

.p-corporate-card__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-corporate-card__title {
    font-size: 1.6rem;
  }
}

.p-corporate-card__text {
  font-size: 1.3rem;
  line-height: 1.85;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-corporate-card__text {
    font-size: 1.35rem;
  }
}
.p-corporate-card__text strong {
  font-weight: 600;
  color: #362b24;
}

.p-corporate-card__note {
  display: block;
  margin-top: 8px;
  font-size: 1.15rem;
  color: #74716b;
}

.p-corporate-note {
  max-width: 720px;
  margin: 0 auto;
  padding: 20px 18px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  text-align: center;
}
@media (min-width: 992px) {
  .p-corporate-note {
    padding: 24px 32px;
  }
}

.p-corporate-note__title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #362b24;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-corporate-note__title {
    font-size: 1.8rem;
  }
}

.p-corporate-note__text {
  font-size: 1.35rem;
  line-height: 1.9;
  color: #5e534b;
}
.p-corporate-note__text a {
  color: #bd5833;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- 弁当：アレルギー・支払い ---------- */
.p-party-bento-notes {
  display: grid;
  gap: 12px;
  margin: 0 0 20px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-party-bento-notes {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (min-width: 992px) {
  .p-party-bento-notes {
    margin-bottom: 24px;
  }
}

.p-party-bento-notes__item {
  background: #ffffff;
  border: 1px solid #d1cdc7;
  padding: 16px 16px;
}
.p-party-bento-notes__item h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: #362b24;
  margin-bottom: 10px;
}
.p-party-bento-notes__item p {
  font-size: 1.3rem;
  line-height: 1.85;
  color: #5e534b;
}
.p-party-bento-notes__item a {
  color: #bd5833;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- 法人・団体のお客様へ（コンパクト） ---------- */
.p-org-compact {
  max-width: 800px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  padding: 8px 24px 12px;
  text-align: left;
}
@media (min-width: 992px) {
  .p-org-compact {
    padding: 12px 32px 16px;
  }
}

.p-org-compact__list {
  margin: 0;
  padding: 0;
}
.p-org-compact__list > div {
  display: grid;
  gap: 4px;
  padding: 16px 0;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 768px) {
  .p-org-compact__list > div {
    grid-template-columns: 8.5em 1fr;
    gap: 16px;
    align-items: baseline;
  }
}
.p-org-compact__list > div:last-child {
  border-bottom: 0;
}
.p-org-compact__list dt {
  font-family: "Noto Serif JP", serif;
  font-size: 1.35rem;
  font-weight: 600;
  color: #362b24;
}
.p-org-compact__list dd {
  font-size: 1.3rem;
  line-height: 1.8;
  color: #5e534b;
  margin: 0;
}
.p-org-compact__list a {
  color: #bd5833;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- CTA直前：予約前の安心ポイント ---------- */
.p-party-reassure {
  background: #fdfcf8;
  padding: 36px 0;
}
@media (min-width: 992px) {
  .p-party-reassure {
    padding: 48px 0;
  }
}

.p-party-reassure__badges {
  margin: 0 auto;
  max-width: 960px;
}
@media (min-width: 768px) {
  .p-party-reassure__badges {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 0;
  }
}
@media (min-width: 992px) {
  .p-party-reassure__badges {
    grid-template-columns: repeat(4, 1fr);
  }
}

.p-party-reassure .p-party-mv__badge {
  background: #fff;
  border: 1px solid #d1cdc7;
  color: #362b24;
  backdrop-filter: none;
}

.p-party-reassure .p-party-mv__badge-icon img {
  filter: none;
}

/* ---------- s10: CTA ---------- */
.p-party__cta-section {
  position: relative;
  padding: 56px 0;
  overflow: hidden;
  color: #fff;
  text-align: center;
}
@media (min-width: 992px) {
  .p-party__cta-section {
    padding: 72px 0;
  }
}

.p-party-cta__bg {
  position: absolute;
  inset: 0;
  background: url("../img/photos/hero-italian-dinner.jpg") center/cover no-repeat;
}

.p-party-cta__overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 20, 13, 0.72);
}

.p-party-cta__inner {
  position: relative;
  z-index: 2;
  width: 92%;
  max-width: 980px;
  margin: 0 auto;
}

.p-party-cta__en {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  margin-bottom: 12px;
  opacity: 0.9;
}

.p-party-cta__title {
  font-family: "Noto Serif JP", serif;
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .p-party-cta__title {
    font-size: 3.2rem;
    margin-bottom: 20px;
  }
}

.p-party-cta__text {
  font-size: 1.4rem;
  line-height: 1.9;
  opacity: 0.92;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-party-cta__text {
    font-size: 1.5rem;
    margin-bottom: 14px;
  }
}

.p-party-cta__hours {
  font-size: 1.2rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
  opacity: 0.78;
  margin-bottom: 20px;
}
@media (min-width: 992px) {
  .p-party-cta__hours {
    font-size: 1.25rem;
    margin-bottom: 24px;
  }
}

.p-party-cta__before {
  margin-top: 20px;
  margin-bottom: 16px;
}
@media (min-width: 992px) {
  .p-party-cta__before {
    margin-top: 24px;
    margin-bottom: 18px;
  }
}

.p-party-cta__before-label {
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  opacity: 0.72;
  margin-bottom: 10px;
}

.p-party-cta__before-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px 10px;
}
.p-party-cta__before-nav a {
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  color: #fff !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
}
.p-party-cta__before-nav a:hover {
  border-bottom-color: #fff;
  opacity: 1;
}

.p-party-cta__before-sep {
  color: rgba(255, 255, 255, 0.45);
  font-size: 1.2rem;
}

.p-party-guide {
  display: grid;
  gap: 12px;
  margin: 8px 0 18px;
  text-align: center;
}
@media (min-width: 768px) {
  .p-party-guide {
    grid-template-columns: 0.9fr 1.25fr 0.85fr;
    align-items: stretch;
    gap: 14px;
  }
}
.p-party-guide__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 18px 14px 16px;
  background: #fdfcf8;
  color: #362b24;
  border-radius: 12px;
}
.p-party-guide__card.--main {
  border: 2px solid #bd5833;
}
.p-party-guide__card.--quiet {
  background: rgba(253, 252, 248, 0.88);
}
.p-party-guide__card h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.55rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.04em;
}
.p-party-guide__card .p-party-btn {
  width: 100%;
  min-width: 0;
  max-width: 240px;
}
.p-party-guide__rule {
  font-size: 1.2rem;
  line-height: 1.5;
  color: #5e534b;
}
.p-party-guide__tel {
  font-size: 1.35rem;
  line-height: 1.7;
  margin-bottom: 8px;
}
.p-party-guide__tel a {
  color: #fff !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
}
.p-party-guide__tel a:hover {
  border-bottom-color: #fff;
  opacity: 1;
}

/* ============================================================
   トップページ（index.html）からの宴会・法人導線
   ============================================================ */
.p-s10__scene-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.p-s10__scene-item .p-s10__scene-card {
  flex: 1;
}

a.p-s10__scene-alt {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin-left: 4px;
  padding: 2px 0 4px;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #bd5833;
}
@media (min-width: 992px) {
  a.p-s10__scene-alt {
    font-size: 1.25rem;
    margin-left: 8px;
  }
}
a.p-s10__scene-alt:hover, a.p-s10__scene-alt:focus-visible {
  color: #a24019;
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 3px;
}
a.p-s10__scene-alt:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 4px;
}

/* ============================================================
   ご宴会・団体利用ページ ここまで
   ============================================================ */
/* ============================================================
   店舗情報ページ（store-info.html）
   ============================================================ */
.p-store-info {
  background: #fdfcf8;
  padding: 43px 0 72px;
}
@media (min-width: 992px) {
  .p-store-info {
    padding: 65px 0 99px;
  }
}

.p-store-info__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  font-size: 1.2rem;
  color: #74716b;
  margin-bottom: 28px;
  letter-spacing: 0.04em;
}
.p-store-info__breadcrumb a {
  color: #74716b !important;
  border-bottom: 1px solid transparent;
}
.p-store-info__breadcrumb a:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}
.p-store-info__breadcrumb span[aria-hidden=true] {
  color: #d1cdc7;
}

.p-store-info__lead {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 40px;
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-store-info__lead {
    margin-bottom: 56px;
    font-size: 1.5rem;
  }
}

.p-store-info__list {
  display: grid;
  gap: 20px;
  margin: 0 0 48px;
  padding: 0;
  list-style: none;
}
@media (min-width: 992px) {
  .p-store-info__list {
    grid-template-columns: 1fr 1fr;
    gap: 24px 28px;
    margin-bottom: 64px;
  }
}

.p-store-info__item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 24px 20px;
  background: #ffffff;
  border: 1px solid rgba(209, 205, 199, 0.7);
  text-align: left;
}
@media (min-width: 992px) {
  .p-store-info__item {
    padding: 28px 24px;
    gap: 18px;
  }
}

.p-store-info__icon {
  flex-shrink: 0;
  display: flex;
  width: 44px;
  height: 44px;
}
.p-store-info__icon img {
  width: 100%;
  height: 100%;
  display: block;
}

.p-store-info__body {
  min-width: 0;
}

.p-store-info__label {
  font-family: "Noto Serif JP", serif;
  font-size: 1.55rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
  line-height: 1.4;
}

.p-store-info__summary {
  font-size: 1.4rem;
  font-weight: 500;
  color: #bd5833;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
  line-height: 1.5;
}

.p-store-info__text {
  font-size: 1.3rem;
  color: #5e534b;
  line-height: 1.8;
  letter-spacing: 0.02em;
}

.p-store-info__note {
  margin-top: 10px;
  font-size: 1.2rem;
  color: #74716b;
  line-height: 1.7;
}

.p-store-info__hours {
  margin-bottom: 40px;
  padding: 28px 24px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
  text-align: left;
}
@media (min-width: 992px) {
  .p-store-info__hours {
    padding: 32px 36px;
    margin-bottom: 56px;
  }
}

.p-store-info__hours-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}

.p-store-info__hours-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 1.35rem;
  color: #5e534b;
  line-height: 1.8;
  margin-bottom: 4px;
}
.p-store-info__hours-row dt {
  font-weight: 500;
  color: #362b24;
  min-width: 5em;
}
.p-store-info__hours-row dd {
  margin: 0;
}

.p-store-info__detail {
  margin-top: 16px;
  padding-top: 48px;
  border-top: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-store-info__detail {
    margin-top: 24px;
    padding-top: 64px;
  }
}
.p-store-info__detail .c-sec-heading {
  margin-bottom: 32px;
}
@media (min-width: 992px) {
  .p-store-info__detail .c-sec-heading {
    margin-bottom: 40px;
  }
}

.p-store-info__cta {
  text-align: center;
}

.p-store-info__cta-note {
  font-size: 1.25rem;
  color: #74716b;
  margin-bottom: 16px;
  letter-spacing: 0.04em;
}

.p-store-info__back {
  margin-top: 28px;
}
.p-store-info__back a {
  font-size: 1.3rem;
  color: #5e534b !important;
  border-bottom: 1px solid #d1cdc7;
  padding-bottom: 2px;
}
.p-store-info__back a:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}

/* ============================================================
   初めてご来店のお客様へ
   ============================================================ */
.p-store-guide {
  margin-bottom: 48px;
}
@media (min-width: 992px) {
  .p-store-guide {
    margin-bottom: 64px;
  }
}

.p-store-guide__head {
  text-align: center;
  margin-bottom: 28px;
}
@media (min-width: 992px) {
  .p-store-guide__head {
    margin-bottom: 36px;
  }
}

.p-store-guide__en {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  letter-spacing: 0.14em;
  color: #c29e6b;
  margin-bottom: 8px;
}

.p-store-guide__title {
  font-family: "Noto Serif JP", serif;
  font-size: 2.2rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.08em;
  line-height: 1.4;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-store-guide__title {
    font-size: 2.6rem;
  }
}

.p-store-guide__lead {
  font-size: 1.35rem;
  color: #5e534b;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.p-store-guide__toc {
  margin: 0 0 36px;
  padding: 20px 18px;
  background: #ffffff;
  border: 1px solid rgba(209, 205, 199, 0.8);
}
@media (min-width: 992px) {
  .p-store-guide__toc {
    margin-bottom: 48px;
    padding: 24px 28px;
  }
}
.p-store-guide__toc ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  justify-content: center;
}
.p-store-guide__toc a {
  display: inline-block;
  font-size: 1.25rem;
  color: #5e534b !important;
  letter-spacing: 0.04em;
  padding: 6px 12px;
  border: 1px solid #d1cdc7;
  background: #fdfcf8;
  line-height: 1.4;
}
.p-store-guide__toc a:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}

.p-store-guide__block {
  margin-bottom: 40px;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(209, 205, 199, 0.7);
  text-align: left;
  scroll-margin-top: 88px;
}
@media (min-width: 992px) {
  .p-store-guide__block {
    margin-bottom: 52px;
    padding-bottom: 48px;
  }
}
.p-store-guide__block:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.p-store-guide__block-head {
  margin-bottom: 14px;
}

.p-store-guide__label {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.25rem;
  letter-spacing: 0.12em;
  color: #c29e6b;
  margin-bottom: 4px;
}

.p-store-guide__heading {
  font-family: "Noto Serif JP", serif;
  font-size: 1.85rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.06em;
  line-height: 1.45;
}
@media (min-width: 992px) {
  .p-store-guide__heading {
    font-size: 2.1rem;
  }
}

.p-store-guide__text {
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 1.9;
  letter-spacing: 0.02em;
  margin-bottom: 16px;
}
.p-store-guide__text strong {
  color: #362b24;
  font-weight: 500;
}

.p-store-guide__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}
.p-store-guide__tags li {
  font-size: 1.2rem;
  color: #bd5833;
  letter-spacing: 0.03em;
  padding: 5px 10px;
  background: rgba(189, 88, 51, 0.08);
  border: 1px solid rgba(189, 88, 51, 0.22);
  line-height: 1.4;
}

.p-store-guide__photos {
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
}
@media (min-width: 992px) {
  .p-store-guide__photos.--two {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
}
.p-store-guide__photos.--one {
  max-width: 560px;
}

.p-store-guide__photo {
  margin: 0;
  overflow: hidden;
  background: #eeebe4;
}
.p-store-guide__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.p-store-guide__photo figcaption {
  font-size: 1.2rem;
  color: #74716b;
  letter-spacing: 0.04em;
  padding: 10px 4px 0;
  line-height: 1.5;
}

.p-store-guide__note {
  margin-top: 12px;
  font-size: 1.25rem;
  color: #74716b;
  line-height: 1.75;
}

.p-store-guide__dl {
  margin: 0 0 12px;
  padding: 20px 18px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-store-guide__dl {
    padding: 24px 28px;
  }
}

.p-store-guide__dl-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 1.35rem;
  color: #5e534b;
  line-height: 1.8;
  margin-bottom: 6px;
}
.p-store-guide__dl-row:last-child {
  margin-bottom: 0;
}
.p-store-guide__dl-row dt {
  font-weight: 500;
  color: #362b24;
  min-width: 5.5em;
}
.p-store-guide__dl-row dd {
  margin: 0;
  flex: 1;
  min-width: 0;
}
.p-store-guide__dl-row dd a {
  color: #bd5833 !important;
  border-bottom: 1px solid rgba(189, 88, 51, 0.35);
}
.p-store-guide__dl-row dd a:hover {
  opacity: 0.8;
}

.p-store-guide__pay-figure {
  margin: 0 0 8px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid rgba(209, 205, 199, 0.8);
  max-width: 360px;
}
@media (min-width: 992px) {
  .p-store-guide__pay-figure {
    padding: 16px 18px;
    max-width: 360px;
  }
}
.p-store-guide__pay-figure img {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: auto;
}

.p-store-guide__map {
  margin: 0 0 12px;
  border: 1px solid rgba(209, 205, 199, 0.8);
  overflow: hidden;
  background: #eeebe4;
  min-height: 280px;
}
@media (min-width: 992px) {
  .p-store-guide__map {
    min-height: 420px;
  }
}
.p-store-guide__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  border: 0;
}
@media (min-width: 992px) {
  .p-store-guide__map iframe {
    min-height: 420px;
  }
}

.p-store-guide__map-link {
  margin: 0;
}
.p-store-guide__map-link a {
  font-size: 1.3rem;
  color: #5e534b !important;
  letter-spacing: 0.04em;
  border-bottom: 1px solid #d1cdc7;
  padding-bottom: 2px;
}
.p-store-guide__map-link a:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}

.p-store-guide__checklist {
  margin: 0 0 24px;
  padding: 0 0 0 1.2em;
  list-style: disc;
}
.p-store-guide__checklist li {
  font-size: 1.35rem;
  color: #5e534b;
  line-height: 1.85;
  letter-spacing: 0.02em;
  margin-bottom: 4px;
}

.p-store-guide__subheading {
  font-family: "Noto Serif JP", serif;
  font-size: 1.55rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.05em;
  margin: 8px 0 12px;
  line-height: 1.45;
}

.p-store-guide__intro {
  display: grid;
  gap: 16px;
  margin: 0 0 20px;
  text-align: left;
}
@media (min-width: 768px) {
  .p-store-guide__intro {
    grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
    gap: 24px;
    align-items: center;
  }
}

.p-store-guide__intro-photo {
  margin: 0;
  overflow: hidden;
  background: #eeebe4;
  aspect-ratio: 4/3;
}
.p-store-guide__intro-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
}

.p-store-guide__intro-body p {
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 1.85;
  letter-spacing: 0.02em;
  margin: 0 0 0.8em;
}
.p-store-guide__intro-body p:last-child {
  margin-bottom: 0;
}

.p-store-guide__menu {
  margin: 8px 0 8px;
}

.p-store-guide__menu-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 0 0 10px;
}
@media (min-width: 992px) {
  .p-store-guide__menu-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
  }
}

.p-store-guide__menu-item {
  margin: 0;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  overflow: hidden;
}
.p-store-guide__menu-item img {
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  background: #eeebe4;
}
.p-store-guide__menu-item figcaption {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px 10px;
  text-align: left;
}
.p-store-guide__menu-item strong {
  font-family: "Noto Serif JP", serif;
  font-size: 1.3rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.03em;
  line-height: 1.4;
}
.p-store-guide__menu-item span {
  font-size: 1.2rem;
  color: #5e534b;
  letter-spacing: 0.02em;
}

.p-store-guide__menu-note {
  margin: 0 0 8px;
  font-size: 1.25rem;
  color: #74716b;
  line-height: 1.75;
}
.p-store-guide__menu-note a {
  color: #bd5833 !important;
  border-bottom: 1px solid rgba(189, 88, 51, 0.35);
}
.p-store-guide__menu-note a:hover {
  opacity: 0.8;
}

.p-store-guide__callout {
  margin: 20px 0 16px;
  padding: 20px 18px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-store-guide__callout {
    padding: 24px 28px;
  }
}

.p-store-guide__callout-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.45rem;
  font-weight: 600;
  color: #362b24;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}

.p-store-guide__callout .p-store-guide__checklist {
  margin-bottom: 0;
}

.p-store-guide__cta {
  text-align: center;
  margin-top: 24px;
}

.p-store-guide__cta-sub {
  margin-top: 14px;
  font-size: 1.25rem;
  color: #74716b;
  letter-spacing: 0.03em;
}
.p-store-guide__cta-sub a {
  color: #bd5833 !important;
  border-bottom: 1px solid rgba(189, 88, 51, 0.35);
}
.p-store-guide__cta-sub a:hover {
  opacity: 0.8;
}

/* トップページ用：初めての方へ導線 */
.c-guide-link {
  text-align: center;
  margin: 0 auto 28px;
  padding: 0 16px;
}
@media (min-width: 992px) {
  .c-guide-link {
    margin-bottom: 36px;
  }
}
.c-guide-link a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 1.3rem;
  color: #5e534b !important;
  letter-spacing: 0.04em;
  line-height: 1.5;
  padding: 10px 18px;
  border: 1px solid #d1cdc7;
  background: #ffffff;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.c-guide-link a:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}
.c-guide-link.--after {
  margin-top: 8px;
  margin-bottom: 0;
  padding-top: 4px;
}
@media (min-width: 992px) {
  .c-guide-link.--after {
    margin-top: 12px;
  }
}

/* ============================================================
   ご自宅・お持ち帰り・贈りもの（takeout-order.html）
   ============================================================ */
.p-order-hub,
.p-cake {
  padding: 48px 0 80px;
  background: #fdfcf8;
}
@media (min-width: 992px) {
  .p-order-hub,
  .p-cake {
    padding: 64px 0 100px;
  }
}

.p-order-hub__lead,
.p-cake__lead {
  margin: 0 auto 28px;
  max-width: 40em;
  text-align: center;
  font-size: 1.45rem;
  line-height: 1.85;
  color: #5e534b;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-order-hub__lead,
  .p-cake__lead {
    margin-bottom: 36px;
    font-size: 1.55rem;
  }
}
.p-order-hub__lead strong,
.p-cake__lead strong {
  color: #bd5833;
  font-weight: 600;
}

.p-order-hub__toc {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0 0 36px;
}
@media (min-width: 992px) {
  .p-order-hub__toc {
    margin-bottom: 48px;
    gap: 14px;
  }
}
.p-order-hub__toc a {
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  border: 1px solid #d1cdc7;
  background: #ffffff;
  color: #5e534b !important;
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.p-order-hub__toc a:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}

.p-order-hub__choices {
  display: grid;
  gap: 12px;
  margin: 0 0 40px;
  scroll-margin-top: 120px;
}
@media (min-width: 768px) {
  .p-order-hub__choices {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 52px;
  }
}

.p-order-hub__choice {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 16px;
  background: #ffffff;
  border: 1px solid rgba(54, 43, 36, 0.1);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
@media (min-width: 992px) {
  .p-order-hub__choice {
    padding: 22px 20px;
    gap: 16px;
  }
}
.p-order-hub__choice:hover, .p-order-hub__choice:focus-visible {
  border-color: rgba(189, 88, 51, 0.45);
  background: #fff8f3;
  box-shadow: 0 8px 20px rgba(189, 88, 51, 0.08);
  transform: translateY(-2px);
  opacity: 1;
}
.p-order-hub__choice:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 3px;
}

.p-order-hub__choice-num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-top: 2px;
  border: 1px solid #c29e6b;
  color: #a24019;
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
}

.p-order-hub__choice-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.p-order-hub__choice-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.55rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.45;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-order-hub__choice-title {
    font-size: 1.7rem;
  }
}

.p-order-hub__choice-text {
  font-size: 1.2rem;
  line-height: 1.6;
  color: #5e534b;
  letter-spacing: 0.03em;
}

.p-order-hub__card {
  display: grid;
  gap: 0;
  margin-bottom: 28px;
  background: #ffffff;
  border: 1px solid rgba(54, 43, 36, 0.08);
  overflow: hidden;
  scroll-margin-top: 88px;
}
@media (min-width: 768px) {
  .p-order-hub__card {
    grid-template-columns: 1fr 1.05fr;
    margin-bottom: 36px;
    min-height: 320px;
  }
  .p-order-hub__card:nth-child(even) .p-order-hub__card-img {
    order: 2;
  }
}

.p-order-hub__card-img {
  position: relative;
  min-height: 220px;
  overflow: hidden;
}
.p-order-hub__card-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4/3;
}
@media (min-width: 768px) {
  .p-order-hub__card-img {
    height: 100%;
    min-height: 100%;
  }
  .p-order-hub__card-img img {
    height: 100%;
    min-height: 100%;
    aspect-ratio: auto;
  }
}

.p-order-hub__card-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 28px 22px 26px;
}
@media (min-width: 992px) {
  .p-order-hub__card-body {
    padding: 36px 40px 34px;
    gap: 14px;
  }
}

.p-order-hub__card-tag {
  display: inline-flex;
  padding: 5px 12px;
  background: #f3ebe3;
  color: #a24019;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.3;
}

.p-order-hub__card-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-order-hub__card-title {
    font-size: 2.2rem;
  }
}

.p-order-hub__card-text {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.8;
  color: #5e534b;
  letter-spacing: 0.03em;
}

.p-order-hub__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 8px;
  padding: 0;
  list-style: none;
}
.p-order-hub__meta li {
  padding: 6px 12px;
  border: 1px solid rgba(54, 43, 36, 0.12);
  font-size: 1.15rem;
  color: #5e534b;
  letter-spacing: 0.04em;
}

.p-order-hub__card-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: auto;
  min-height: 48px;
  padding: 12px 22px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 0.25s ease;
}
.p-order-hub__card-btn:hover {
  background: #a24019;
  opacity: 1;
}

.p-order-hub__note {
  margin: 40px 0 28px;
  padding: 28px 22px;
  background: #f8f5ee;
  border: 1px solid rgba(54, 43, 36, 0.08);
  text-align: center;
}
@media (min-width: 992px) {
  .p-order-hub__note {
    margin-top: 52px;
    padding: 36px 40px;
  }
}

.p-order-hub__note-title {
  margin: 0 0 12px;
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #362b24;
}

.p-order-hub__note-text {
  margin: 0 0 18px;
  font-size: 1.3rem;
  line-height: 1.8;
  color: #5e534b;
}

.p-order-hub__note-link {
  display: inline-flex;
  color: #bd5833 !important;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.p-order-hub__note-link:hover {
  opacity: 0.8;
}

.p-order-hub__note--compact {
  margin: 24px 0 8px;
  padding: 20px 18px;
}
@media (min-width: 992px) {
  .p-order-hub__note--compact {
    margin-top: 32px;
    padding: 22px 28px;
  }
}
.p-order-hub__note--compact .p-order-hub__note-title {
  margin-bottom: 8px;
  font-size: 1.4rem;
}
.p-order-hub__note--compact .p-order-hub__note-text {
  margin-bottom: 12px;
  font-size: 1.25rem;
}
.p-order-hub__note--compact .p-order-hub__note-link {
  font-size: 1.25rem;
}

.p-order-hub__back,
.p-cake__back {
  margin-top: 28px;
  text-align: center;
}
.p-order-hub__back a,
.p-cake__back a {
  color: #5e534b !important;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}
.p-order-hub__back a:hover,
.p-cake__back a:hover {
  color: #bd5833 !important;
  opacity: 1;
}

/* ============================================================
   ホールケーキのご予約（cake-reserve.html）
   ============================================================ */
.p-cake__hero {
  margin: 0 auto 12px;
  max-width: 720px;
  overflow: hidden;
}
.p-cake__hero img {
  display: block;
  width: 100%;
  height: 132px;
  object-fit: cover;
  object-position: center 40%;
}
@media (min-width: 768px) {
  .p-cake__hero img {
    height: 168px;
  }
}
@media (min-width: 992px) {
  .p-cake__hero {
    margin-bottom: 20px;
  }
  .p-cake__hero img {
    height: auto;
    aspect-ratio: 3/1;
    max-height: 220px;
  }
}

.p-cake__split-note {
  margin: 0 0 10px;
  text-align: left;
  font-size: 1.28rem;
  line-height: 1.65;
  color: #5e534b;
}

.p-cake__order .p-cake__section-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.p-cake__section-lead {
  margin: 0 auto 16px;
  max-width: 36em;
  text-align: center;
  font-size: 1.35rem;
  line-height: 1.75;
  color: #5e534b;
}

.p-cake__details {
  margin-top: 28px;
  background: #ffffff;
  border: 1px solid rgba(54, 43, 36, 0.08);
}
.p-cake__details summary {
  padding: 14px 18px;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #5e534b;
  cursor: pointer;
}
.p-cake__details summary:hover {
  color: #bd5833;
}
.p-cake__details[open] summary {
  color: #362b24;
  border-bottom: 1px solid rgba(54, 43, 36, 0.08);
}

.p-cake__details-body {
  padding: 12px 12px 4px;
}
@media (min-width: 992px) {
  .p-cake__details-body {
    padding: 16px 16px 4px;
  }
}
.p-cake__details-body .p-cake__size-block {
  margin-bottom: 12px;
}
.p-cake__details-body .p-cake__note {
  margin: 4px 8px 14px;
}

.p-cake__size-block {
  margin-bottom: 24px;
  background: #ffffff;
  border: 1px solid rgba(54, 43, 36, 0.08);
  overflow: hidden;
}

.p-cake__size-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 16px;
  padding: 18px 20px 14px;
  background: #f8f5ee;
  border-bottom: 1px solid rgba(54, 43, 36, 0.08);
}

.p-cake__size-name {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-size: 1.65rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #362b24;
}

.p-cake__size-meta {
  margin: 0;
  font-size: 1.2rem;
  color: #8a7e74;
  letter-spacing: 0.04em;
}

.p-cake__table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.p-cake__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.3rem;
}
.p-cake__table th,
.p-cake__table td {
  padding: 14px 18px;
  border-bottom: 1px solid rgba(54, 43, 36, 0.08);
  text-align: left;
  letter-spacing: 0.03em;
}
.p-cake__table th {
  background: #fdfcf8;
  font-weight: 600;
  color: #5e534b;
  font-size: 1.15rem;
}
.p-cake__table td:last-child,
.p-cake__table th:last-child {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.p-cake__table tbody tr:last-child td {
  border-bottom: none;
}

.p-cake__note {
  margin: 8px 0 0;
  font-size: 1.2rem;
  line-height: 1.7;
  color: #8a7e74;
  text-align: center;
}

.p-cake__order {
  position: relative;
  margin: 0;
  scroll-margin-top: 88px;
}

.p-cake__widget {
  margin-top: 4px;
  background: #fff;
  text-align: left;
  border: 1px solid #d1cdc7;
  padding: 18px 16px 8px;
}
@media (min-width: 992px) {
  .p-cake__widget {
    padding: 22px 28px 12px;
  }
}

.p-cake__bar-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  padding: 6px 12px;
  border: 1px solid rgba(54, 43, 36, 0.16);
  border-radius: 999px;
  background: #fff;
  font-size: 1.25rem;
  color: #5e534b;
}

.p-cake__bar-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #3c8a4a;
}

.p-cake__method {
  margin: 0 0 8px;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  color: #362b24;
}

.p-cake__step {
  margin: 0 0 12px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  color: #362b24;
}

.p-cake__time {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-bottom: 10px;
}

.p-cake__time-label {
  margin: 0;
  font-size: 1.45rem;
  line-height: 1.5;
  color: #bd5833;
}
.p-cake__time-label strong {
  font-weight: 700;
  color: #362b24;
}

.p-cake__change {
  min-height: 44px;
  padding: 8px 16px;
  border: 1px solid #bd5833;
  background: rgba(189, 88, 51, 0.1);
  color: #bd5833;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.p-cake__change:hover {
  background: #bd5833;
  color: #fff;
}

.p-cake__address {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.6;
  color: #bd5833;
}

.p-cake__address-note {
  color: #8a7e74;
  font-weight: 400;
}

.p-cake__cart-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding: 16px 0 4px;
  border-top: 1px solid #d1cdc7;
}

.p-cake__menu-tab {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.4;
  color: #362b24;
}

.p-cake__cart-btn {
  min-height: 52px;
  padding: 12px 28px;
  border: 0;
  background: #bd5833;
  color: #fff;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
}
.p-cake__cart-btn:hover {
  background: #a24019;
}

.p-cake__menu {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #d1cdc7;
}

.p-cake__dishes {
  display: flex;
  flex-direction: column;
  margin: 0 0 4px;
}

.p-cake__dish {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 12px 16px;
  align-items: center;
  width: 100%;
  padding: 12px 2px;
  border: 0;
  border-bottom: 1px solid #d1cdc7;
  background: transparent;
  text-align: left;
  font-family: inherit;
  color: inherit;
  cursor: pointer;
}
.p-cake__dish:last-child {
  border-bottom: 0;
}
.p-cake__dish:hover {
  opacity: 1;
  background: #fff8f3;
}
.p-cake__dish:focus-visible {
  outline: 2px solid #bd5833;
  outline-offset: 2px;
}

.p-cake__dish-img {
  width: 80px;
  height: 80px;
  overflow: hidden;
  background: #eeebe4;
}
.p-cake__dish-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-cake__dish-body {
  min-width: 0;
}

.p-cake__dish-name {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.35;
  color: #362b24;
}

.p-cake__dish-text {
  display: block;
  margin-top: 2px;
  font-size: 1.28rem;
  line-height: 1.45;
  color: #74716b;
}

.p-cake__dish-price {
  display: block;
  margin-top: 2px;
  font-size: 1.4rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #362b24;
}

.p-cake__next {
  margin: 4px 0 12px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  color: #362b24;
}

.p-cake__after {
  margin: 0 0 8px;
  font-size: 1.28rem;
  line-height: 1.6;
  color: #5e534b;
}
.p-cake__after[hidden] {
  display: none;
}

.p-cake__phone {
  margin: 36px auto 0;
  max-width: 640px;
  padding-top: 28px;
  border-top: 1px solid #d1cdc7;
  text-align: center;
}

.p-cake__phone-title {
  margin: 0 0 8px;
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #5e534b;
}

.p-cake__phone-text {
  margin: 0;
  font-size: 1.28rem;
  line-height: 1.75;
  color: #74716b;
}

.p-cake__phone-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 4px 14px;
  margin: 10px 0 8px;
  font-size: 1.4rem;
}
.p-cake__phone-line a {
  color: #362b24 !important;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-cake__phone-line a:hover {
  color: #bd5833 !important;
  opacity: 1;
}
.p-cake__phone-line span {
  font-size: 1.22rem;
  color: #74716b;
}

/* ============================================================
   ネット注文 原本（online-ordering.html / Wix再現用）
   ウィジェット本体はWix標準。上の案内と幅・カテゴリ順を合わせる。
   ============================================================ */
.p-oo {
  padding: 36px 0 80px;
  background: #fdfcf8;
}
@media (min-width: 992px) {
  .p-oo {
    padding: 48px 0 100px;
  }
}

.p-oo__frame {
  width: 92%;
  max-width: 1100px;
  margin: 0 auto;
  text-align: left;
}

.p-oo__orig-note {
  margin: 0 0 18px;
  padding: 8px 12px;
  background: #fff6ee;
  border: 1px dashed rgba(189, 88, 51, 0.4);
  font-size: 1.2rem;
  line-height: 1.6;
  color: #74716b;
}

.p-oo__kicker {
  margin: 0 0 6px;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.4rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #bd5833;
}

.p-oo__title {
  margin: 0 0 10px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  line-height: 1.35;
}
@media (min-width: 992px) {
  .p-oo__title {
    font-size: 3.2rem;
  }
}

.p-oo__lead {
  margin: 0 0 22px;
  font-size: 1.45rem;
  line-height: 1.8;
  color: #5e534b;
}

/* --- ウィジェットの上に置く案内 --- */
.p-oo__intro {
  margin: 0 0 20px;
  padding: 20px 18px 18px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
}

.p-oo__steps {
  display: grid;
  gap: 12px;
  margin: 0 0 18px;
}
@media (min-width: 768px) {
  .p-oo__steps {
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
  }
}

.p-oo__step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px 12px;
  align-items: start;
}

.p-oo__step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #bd5833;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
}

.p-oo__step h2 {
  margin: 2px 0 0;
  font-size: 1.4rem;
  font-weight: 700;
  color: #362b24;
  letter-spacing: 0.04em;
}

.p-oo__step p {
  grid-column: 2;
  font-size: 1.3rem;
  line-height: 1.7;
  color: #5e534b;
}

.p-oo__split {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
}
@media (min-width: 768px) {
  .p-oo__split {
    grid-template-columns: 1fr 1fr;
  }
}

.p-oo__split-card {
  padding: 12px 14px;
  border: 1px solid #d1cdc7;
  background: #fdfcf8;
}

.p-oo__split-card--reserve {
  background: #fff8f3;
  border-color: rgba(189, 88, 51, 0.35);
}

.p-oo__split-label {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #376139;
}

.p-oo__split-card--reserve .p-oo__split-label {
  color: #bd5833;
}

.p-oo__split-card h3 {
  margin: 0 0 6px;
  font-size: 1.45rem;
  font-weight: 700;
  color: #362b24;
}

.p-oo__split-card p,
.p-oo__split-card li {
  font-size: 1.28rem;
  line-height: 1.7;
  color: #5e534b;
}

.p-oo__split-card ul {
  margin: 0;
  padding-left: 1.2em;
  display: grid;
  gap: 2px;
  list-style: disc;
}

.p-oo__others {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  font-size: 1.28rem;
}

.p-oo__others a {
  color: #bd5833 !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-oo__others a:hover {
  opacity: 1;
  color: #a24019 !important;
}

.p-oo__hours {
  margin: 12px 0 0;
  font-size: 1.22rem;
  color: #74716b;
}

/* --- Wixウィジェット相当 --- */
.p-oo__widget {
  background: #ffffff;
  border: 1px solid #d1cdc7;
}

.p-oo__status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  padding: 12px 16px;
  border-bottom: 1px solid #d1cdc7;
  background: #f4f8f4;
}

.p-oo__status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #376139;
}

.p-oo__status p {
  font-size: 1.3rem;
  font-weight: 700;
  color: #376139;
}

.p-oo__fulfill {
  display: grid;
  gap: 0;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 768px) {
  .p-oo__fulfill {
    grid-template-columns: 1.1fr 1.2fr 1.4fr;
  }
}

.p-oo__fulfill-item {
  padding: 12px 16px;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 768px) {
  .p-oo__fulfill-item {
    border-bottom: 0;
    border-right: 1px solid #d1cdc7;
  }
  .p-oo__fulfill-item:last-child {
    border-right: 0;
  }
}

.p-oo__fulfill-label {
  display: block;
  margin-bottom: 2px;
  font-size: 1.12rem;
  letter-spacing: 0.04em;
  color: #74716b;
}

.p-oo__fulfill-value {
  font-size: 1.35rem;
  font-weight: 600;
  color: #362b24;
  line-height: 1.5;
}

.p-oo__body {
  display: grid;
}
@media (min-width: 992px) {
  .p-oo__body {
    grid-template-columns: 220px 1fr;
    min-height: 520px;
  }
}

.p-oo__cats {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 12px 12px 4px;
  border-bottom: 1px solid #d1cdc7;
  background: #fdfcf8;
}
@media (min-width: 992px) {
  .p-oo__cats {
    display: block;
    overflow: visible;
    padding: 16px 0;
    border-bottom: 0;
    border-right: 1px solid #d1cdc7;
    background: #ffffff;
  }
}

.p-oo__cat {
  flex: 0 0 auto;
  width: auto;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 1.28rem;
  line-height: 1.45;
  text-align: left;
  color: #5e534b;
  white-space: nowrap;
}
@media (min-width: 992px) {
  .p-oo__cat {
    display: block;
    width: 100%;
    padding: 10px 18px;
    white-space: normal;
    border-left: 3px solid transparent;
  }
}
.p-oo__cat:hover {
  opacity: 1;
  color: #bd5833;
}
.p-oo__cat.is-active {
  color: #bd5833;
  font-weight: 700;
  background: #fff;
  box-shadow: inset 0 -2px 0 #bd5833;
}
@media (min-width: 992px) {
  .p-oo__cat.is-active {
    background: #fdfcf8;
    box-shadow: none;
    border-left-color: #bd5833;
  }
}

.p-oo__cat--reserve {
  color: #bd5833;
}

.p-oo__menu {
  padding: 8px 12px 20px;
}
@media (min-width: 992px) {
  .p-oo__menu {
    padding: 12px 16px 24px;
  }
}

.p-oo__section {
  display: none;
  scroll-margin-top: 88px;
}
.p-oo__section.is-active {
  display: block;
}

.p-oo__section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 12px;
  margin: 8px 4px 12px;
}

.p-oo__section-head h2,
.p-oo__section-head h3 {
  font-size: 1.7rem;
  font-weight: 700;
  color: #362b24;
}

.p-oo__section-note {
  font-size: 1.25rem;
  color: #5e534b;
}

.p-oo__grid {
  display: grid;
  gap: 10px;
}
@media (min-width: 768px) {
  .p-oo__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.p-oo__dish {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 1px solid #d1cdc7;
  background: #ffffff;
  text-align: left;
  font-family: inherit;
  color: inherit;
  cursor: pointer;
}
.p-oo__dish:hover {
  opacity: 1;
  border-color: #bd5833;
}

.p-oo__dish-img {
  width: 88px;
  height: 88px;
  overflow: hidden;
  background: #eeebe4;
}
.p-oo__dish-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-oo__dish-body {
  min-width: 0;
}

.p-oo__dish-name {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  margin-bottom: 4px;
  font-size: 1.38rem;
  font-weight: 700;
  color: #362b24;
  line-height: 1.4;
}

.p-oo__badge {
  display: inline-block;
  padding: 1px 6px;
  border: 1px solid #bd5833;
  color: #bd5833;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.p-oo__dish-text {
  margin: 0 0 6px;
  font-size: 1.2rem;
  line-height: 1.55;
  color: #74716b;
}

.p-oo__dish-price {
  font-size: 1.3rem;
  font-weight: 700;
  color: #362b24;
}

.p-oo__empty {
  display: none;
  padding: 28px 12px;
  font-size: 1.3rem;
  color: #74716b;
}

.p-oo__cart {
  position: sticky;
  bottom: 96px;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 0;
  padding: 12px 16px;
  background: #1a1a19;
  color: #fff;
}
@media (min-width: 992px) {
  .p-oo__cart {
    bottom: 0;
  }
}

.p-oo__cart-meta {
  font-size: 1.3rem;
}

.p-oo__cart-btn {
  padding: 10px 16px;
  background: #bd5833;
  color: #fff;
  font-family: inherit;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.p-oo__panel {
  display: none;
  padding: 16px;
  border-top: 1px solid #d1cdc7;
  background: #fdfcf8;
}
.p-oo__panel.is-open {
  display: block;
}

.p-oo__panel h3 {
  margin: 0 0 10px;
  font-size: 1.5rem;
  font-weight: 700;
}

.p-oo__cart-list {
  margin: 0 0 12px;
  font-size: 1.3rem;
  color: #5e534b;
}

.p-oo__field {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
  font-size: 1.28rem;
}

.p-oo__field input,
.p-oo__field select {
  max-width: 280px;
  padding: 8px 10px;
  border: 1px solid #d1cdc7;
  font-family: inherit;
  font-size: 1.3rem;
  color: #362b24;
}

.p-oo__error {
  display: none;
  margin: 0 0 12px;
  padding: 10px 12px;
  background: #fff1ee;
  border: 1px solid #e2b4a8;
  color: #9a3a22;
  font-size: 1.28rem;
  line-height: 1.65;
}
.p-oo__error.is-on {
  display: block;
}

.p-oo__pay {
  padding: 10px 18px;
  border: 0;
  background: #bd5833;
  color: #fff;
  font-family: inherit;
  font-size: 1.35rem;
  font-weight: 700;
}
.p-oo__pay:disabled {
  background: #c4b8b2;
  cursor: not-allowed;
}

.p-oo__back {
  margin: 28px 0 0;
  font-size: 1.3rem;
}
.p-oo__back a {
  color: #bd5833 !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ============================================================
   サイトマップ（sitemap.html）
   よくある質問一覧（faq.html）
   ============================================================ */
.p-sitemap {
  background: #fdfcf8;
  padding: 43px 0 72px;
}
@media (min-width: 992px) {
  .p-sitemap {
    padding: 65px 0 99px;
  }
}

.p-sitemap__lead {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 40px;
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-sitemap__lead {
    margin-bottom: 56px;
    font-size: 1.5rem;
  }
}

.p-sitemap__groups {
  display: grid;
  gap: 20px;
  text-align: left;
  max-width: 880px;
  margin: 0 auto;
}
@media (min-width: 992px) {
  .p-sitemap__groups {
    gap: 24px;
  }
}

.p-sitemap__group {
  background: #ffffff;
  border: 1px solid rgba(209, 205, 199, 0.7);
  padding: 24px 20px 20px;
}
@media (min-width: 992px) {
  .p-sitemap__group {
    padding: 28px 32px 24px;
  }
}

.p-sitemap__group-en {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.3rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #bd5833;
  margin-bottom: 4px;
}

.p-sitemap__group-title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-sitemap__group-title {
    font-size: 2rem;
  }
}
.p-sitemap__group-title a {
  color: inherit;
  border-bottom: 1px solid transparent;
}
.p-sitemap__group-title a:hover {
  color: #bd5833;
  border-bottom-color: #bd5833;
  opacity: 1;
}

.p-sitemap__list {
  display: grid;
  gap: 8px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 992px) {
  .p-sitemap__list {
    grid-template-columns: 1fr 1fr;
    gap: 10px 32px;
  }
}

.p-sitemap__list a {
  display: inline-block;
  font-size: 1.35rem;
  letter-spacing: 0.04em;
  color: #5e534b;
  border-bottom: 1px solid transparent;
  line-height: 1.7;
}
.p-sitemap__list a:hover {
  color: #bd5833;
  border-bottom-color: #bd5833;
  opacity: 1;
}

.p-sitemap__note {
  margin-top: 36px;
  font-size: 1.2rem;
  color: #74716b;
  letter-spacing: 0.04em;
  text-align: center;
}
@media (min-width: 992px) {
  .p-sitemap__note {
    margin-top: 48px;
  }
}

/* ============================================================
   サイトマップ縦メニュー版（sitemap-vertical.html）
   各セクション内は1列。PCではセクションを横並びにし、全体を見渡せる。
   ============================================================ */
.p-sitemap--vertical .p-sitemap__groups {
  max-width: 1100px;
}
@media (min-width: 768px) {
  .p-sitemap--vertical .p-sitemap__groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}
@media (min-width: 992px) {
  .p-sitemap--vertical .p-sitemap__groups {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px 20px;
  }
}
.p-sitemap--vertical .p-sitemap__group {
  height: 100%;
}
@media (min-width: 992px) {
  .p-sitemap--vertical .p-sitemap__group {
    padding: 24px 22px 20px;
  }
}
@media (min-width: 992px) {
  .p-sitemap--vertical .p-sitemap__group-title {
    font-size: 1.8rem;
  }
}
.p-sitemap--vertical .p-sitemap__list {
  grid-template-columns: 1fr;
}
@media (min-width: 992px) {
  .p-sitemap--vertical .p-sitemap__list {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

/* ============================================================
   よくある質問一覧（faq.html）
   ============================================================ */
.p-faq {
  background: #fdfcf8;
  padding: 107px 0 72px;
}
@media (min-width: 992px) {
  .p-faq {
    padding: 145px 0 99px;
  }
}

.p-faq__lead {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 32px;
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-faq__lead {
    margin-bottom: 40px;
    font-size: 1.5rem;
  }
}

.p-faq__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 12px;
  margin: 0 auto 40px;
}
@media (min-width: 992px) {
  .p-faq__tabs {
    margin-bottom: 56px;
    gap: 12px 16px;
  }
}
.p-faq__tabs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 22px;
  border: 1px solid #d1cdc7;
  background: #ffffff;
  color: #5e534b !important;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
@media (min-width: 992px) {
  .p-faq__tabs a {
    min-height: 48px;
    padding: 12px 28px;
    font-size: 1.4rem;
  }
}
.p-faq__tabs a:hover {
  color: #bd5833 !important;
  border-color: #bd5833;
  opacity: 1;
}

.p-faq__section {
  max-width: 760px;
  margin: 0 auto 56px;
  text-align: left;
  scroll-margin-top: 88px;
}
@media (min-width: 992px) {
  .p-faq__section {
    margin-bottom: 72px;
    scroll-margin-top: 104px;
  }
}
.p-faq__section:last-of-type {
  margin-bottom: 0;
}

.p-faq__group-en {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.3rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #bd5833;
  margin-bottom: 4px;
  text-align: center;
}

.p-faq__group-title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 12px;
  text-align: center;
}
@media (min-width: 992px) {
  .p-faq__group-title {
    font-size: 2.2rem;
  }
}

.p-faq__group-lead {
  text-align: center;
  font-size: 1.3rem;
  color: #5e534b;
  line-height: 1.8;
  letter-spacing: 0.04em;
  margin-bottom: 24px;
}
@media (min-width: 992px) {
  .p-faq__group-lead {
    font-size: 1.4rem;
    margin-bottom: 32px;
  }
}

.p-faq__back {
  margin-top: 20px;
  text-align: center;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-faq__back {
    margin-top: 28px;
  }
}
.p-faq__back a {
  color: #5e534b;
  border-bottom: 1px solid transparent;
}
.p-faq__back a:hover {
  color: #bd5833;
  border-bottom-color: #bd5833;
  opacity: 1;
}

.p-faq-more {
  display: flex;
  justify-content: center;
  margin: 16px auto 0;
}
@media (min-width: 992px) {
  .p-faq-more {
    margin-top: 20px;
  }
}
.p-faq-more a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 28px;
  border: 1px solid #bd5833;
  background: #ffffff;
  color: #bd5833 !important;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-align: center;
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
@media (min-width: 992px) {
  .p-faq-more a {
    min-height: 52px;
    padding: 14px 32px;
    font-size: 1.45rem;
  }
}
.p-faq-more a:hover {
  background: #bd5833;
  color: #fff !important;
  opacity: 1;
  box-shadow: 0 4px 14px rgba(54, 43, 36, 0.12);
}

/* ============================================================
   プライバシーポリシー（privacy.html）
   特定商取引法に基づく表記（tokusho.html）
   ============================================================ */
.p-legal {
  background: #fdfcf8;
  padding: 107px 0 72px;
}
@media (min-width: 992px) {
  .p-legal {
    padding: 145px 0 99px;
  }
}

.p-legal__lead {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 40px;
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-legal__lead {
    margin-bottom: 56px;
    font-size: 1.5rem;
  }
}

.p-legal__body {
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
}

.p-legal__card {
  background: #ffffff;
  border: 1px solid rgba(209, 205, 199, 0.7);
  padding: 28px 20px 24px;
  margin-bottom: 20px;
}
@media (min-width: 992px) {
  .p-legal__card {
    padding: 36px 40px 32px;
    margin-bottom: 24px;
  }
}
.p-legal__card:last-of-type {
  margin-bottom: 0;
}

.p-legal__article-num {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.3rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #bd5833;
  margin-bottom: 4px;
}

.p-legal__article-title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-legal__article-title {
    font-size: 1.9rem;
  }
}

.p-legal__text {
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 2;
  letter-spacing: 0.04em;
}
.p-legal__text a {
  color: #bd5833;
  border-bottom: 1px solid transparent;
}
.p-legal__text a:hover {
  border-bottom-color: #bd5833;
  opacity: 1;
}
.p-legal__text + .p-legal__text,
.p-legal__text + .p-legal__list,
.p-legal__text + .p-legal__note {
  margin-top: 12px;
}

.p-legal__list {
  margin: 12px 0 0;
  padding: 0 0 0 1.2em;
  list-style: disc;
}
.p-legal__list li {
  font-size: 1.4rem;
  color: #5e534b;
  line-height: 2;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}
.p-legal__list li:last-child {
  margin-bottom: 0;
}

.p-legal__note {
  font-size: 1.3rem;
  color: #74716b;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

.p-legal__table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
}

.p-legal__table tr {
  border-bottom: 1px solid #d1cdc7;
}
.p-legal__table tr:last-child {
  border-bottom: none;
}

.p-legal__table th,
.p-legal__table td {
  font-size: 1.35rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
  text-align: left;
  vertical-align: top;
  padding: 14px 0;
}
@media (min-width: 992px) {
  .p-legal__table th,
  .p-legal__table td {
    font-size: 1.4rem;
    padding: 16px 0;
  }
}

.p-legal__table th {
  font-weight: 600;
  color: #362b24;
  width: 8.5em;
  padding-right: 16px;
  white-space: nowrap;
}
@media (min-width: 992px) {
  .p-legal__table th {
    width: 12em;
    padding-right: 32px;
  }
}

.p-legal__table td {
  color: #5e534b;
}

.p-legal__table a {
  color: #bd5833;
  border-bottom: 1px solid transparent;
}
.p-legal__table a:hover {
  border-bottom-color: #bd5833;
  opacity: 1;
}

.p-legal__subhead {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  margin: 24px 0 10px;
}
@media (min-width: 992px) {
  .p-legal__subhead {
    font-size: 1.6rem;
    margin-top: 28px;
  }
}
.p-legal__subhead:first-child {
  margin-top: 0;
}

.p-legal__label {
  display: block;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #362b24;
  margin: 16px 0 6px;
}

.p-legal__back {
  margin-top: 36px;
  text-align: center;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}
@media (min-width: 992px) {
  .p-legal__back {
    margin-top: 48px;
  }
}
.p-legal__back a {
  color: #5e534b;
  border-bottom: 1px solid transparent;
}
.p-legal__back a:hover {
  color: #bd5833;
  border-bottom-color: #bd5833;
  opacity: 1;
}

@media (max-width: 991px) {
  .p-legal__table,
  .p-legal__table tbody,
  .p-legal__table tr,
  .p-legal__table th,
  .p-legal__table td {
    display: block;
    width: 100%;
  }
  .p-legal__table tr {
    padding: 14px 0;
  }
  .p-legal__table th {
    padding: 0 0 4px;
    white-space: normal;
  }
  .p-legal__table td {
    padding: 0;
  }
}
/* ============================================================
   お席予約フォーム（contactform.html）
   ============================================================ */
.p-contactform {
  background: #fdfcf8;
  padding: 96px 0 72px;
  color: #362b24;
  text-align: left;
}
@media (min-width: 992px) {
  .p-contactform {
    padding: 120px 0 99px;
  }
}
.p-contactform .c-inner__center {
  text-align: left;
  max-width: 1100px;
}
.p-contactform .c-sec-heading {
  text-align: center;
  margin-bottom: 20px;
}
@media (min-width: 992px) {
  .p-contactform .c-sec-heading {
    margin-bottom: 24px;
  }
}
.p-contactform .p-store-info__breadcrumb {
  justify-content: center;
  margin-bottom: 16px;
}

.p-contactform__lead {
  text-align: center;
  max-width: none;
  margin: 0 auto 16px;
  font-size: 1.4rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-contactform__lead {
    margin-bottom: 18px;
    font-size: 1.5rem;
  }
}

.p-contactform__notices {
  display: grid;
  gap: 12px;
  margin: 0 0 20px;
}
@media (min-width: 768px) {
  .p-contactform__notices {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
  }
}

.p-contactform__notice {
  background: #ffffff;
  border: 1px solid #d1cdc7;
  padding: 16px 16px 14px;
}
@media (min-width: 992px) {
  .p-contactform__notice {
    padding: 18px 18px 16px;
  }
}

.p-contactform__notice--tel {
  border-color: rgba(189, 88, 51, 0.35);
  background: #fffaf6;
}

.p-contactform__notice-label {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #bd5833;
  margin-bottom: 6px;
}

.p-contactform__notice-text {
  font-size: 1.3rem;
  line-height: 1.7;
  color: #362b24;
  letter-spacing: 0.02em;
}
.p-contactform__notice-text a {
  color: #bd5833 !important;
  font-weight: 700;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}
.p-contactform__notice-text a:hover {
  opacity: 1;
  border-bottom-color: #bd5833;
}

.p-contactform__change {
  font-size: 1.3rem;
  line-height: 1.8;
  color: #5e534b;
  text-align: center;
  margin: 0 0 32px;
  padding: 12px 14px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
}
.p-contactform__change strong {
  color: #362b24;
  font-weight: 700;
}
.p-contactform__change a {
  color: #bd5833 !important;
  font-weight: 700;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}
.p-contactform__change a:hover {
  opacity: 1;
}
@media (min-width: 992px) {
  .p-contactform__change {
    margin-bottom: 40px;
  }
}

.p-contactform__form {
  display: grid;
  gap: 20px;
}

.p-contactform__block {
  margin: 0;
  padding: 22px 16px 20px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  min-width: 0;
}
@media (min-width: 992px) {
  .p-contactform__block {
    padding: 28px 28px 24px;
  }
}

.p-contactform__block--optional {
  background: #f4f1ea;
  border-style: dashed;
}

.p-contactform__legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  width: 100%;
  padding: 0;
  margin-bottom: 8px;
  float: none;
}

.p-contactform__step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #bd5833;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1;
}

.p-contactform__legend-text {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  line-height: 1.3;
}
@media (min-width: 992px) {
  .p-contactform__legend-text {
    font-size: 1.9rem;
  }
}

.p-contactform__block-lead {
  font-size: 1.3rem;
  line-height: 1.7;
  color: #5e534b;
  margin: 0 0 18px;
}

.p-contactform__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  padding: 2px 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.4;
  vertical-align: middle;
}

.p-contactform__badge--req {
  background: #bd5833;
  color: #fff;
}

.p-contactform__badge--opt {
  background: #e4e0d8;
  color: #5e534b;
}

.p-contactform__row {
  display: grid;
  gap: 16px;
}

@media (min-width: 768px) {
  .p-contactform__row--2,
  .p-contactform__row--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .p-contactform__row--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.p-contactform__field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  margin-bottom: 16px;
}
.p-contactform__field:last-child {
  margin-bottom: 0;
}

.p-contactform__label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 1.35rem;
  font-weight: 700;
  color: #362b24;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
  line-height: 1.4;
}

.p-contactform__hint {
  margin-top: 6px;
  font-size: 1.2rem;
  line-height: 1.7;
  color: #74716b;
}
.p-contactform__hint a {
  color: #bd5833 !important;
  font-weight: 600;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}

.p-contactform__course-link {
  margin: 0 0 8px;
  font-size: 1.25rem;
  line-height: 1.6;
}
.p-contactform__course-link a {
  color: #bd5833 !important;
  font-weight: 600;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}
.p-contactform__course-link a:hover {
  opacity: 1;
  color: #a24019 !important;
  border-bottom-color: #a24019;
}

.p-contactform__christmas-note {
  margin: 8px 0 0;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #c45c4a;
}
.p-contactform__christmas-note[hidden] {
  display: none;
}
.p-contactform__christmas-note a {
  color: #c45c4a !important;
  font-weight: 700;
  border-bottom: 1px solid rgba(196, 92, 74, 0.55);
}
.p-contactform__christmas-note a:hover {
  opacity: 1;
  color: #a34435 !important;
  border-bottom-color: #a34435;
}

.p-contactform__error {
  min-height: 0;
  margin-top: 6px;
  font-size: 1.25rem;
  line-height: 1.6;
  font-weight: 500;
  color: #b42318;
}
.p-contactform__error:empty {
  display: none;
}

.p-contactform__input,
.p-contactform__select,
.p-contactform__textarea {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #b8b3aa;
  background: #ffffff;
  color: #362b24;
  font-family: inherit;
  font-size: 1.6rem;
  line-height: 1.5;
  padding: 12px 14px;
  border-radius: 0;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.p-contactform__input::placeholder,
.p-contactform__select::placeholder,
.p-contactform__textarea::placeholder {
  color: #8d8880;
}
.p-contactform__input:hover,
.p-contactform__select:hover,
.p-contactform__textarea:hover {
  border-color: #8f8a82;
}
.p-contactform__input:focus,
.p-contactform__select:focus,
.p-contactform__textarea:focus {
  outline: none;
  border-color: #bd5833;
  box-shadow: 0 0 0 3px rgba(189, 88, 51, 0.18);
}
.p-contactform__form.is-tried .p-contactform__input:invalid,
.p-contactform__form.is-tried .p-contactform__select:invalid,
.p-contactform__form.is-tried .p-contactform__textarea:invalid {
  border-color: #b42318;
}

.p-contactform__select {
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23362b24' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  cursor: pointer;
}

.p-contactform__textarea {
  min-height: 96px;
  resize: vertical;
}

.p-contactform__input--num {
  max-width: 160px;
}

.p-contactform__optional {
  margin-top: 8px;
  padding: 16px 14px 14px;
  background: #f7f4ee;
  border: 1px dashed #c8c3ba;
}
@media (min-width: 992px) {
  .p-contactform__optional {
    padding: 18px 18px 16px;
  }
}

.p-contactform__optional-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 1.3rem;
  font-weight: 700;
  color: #5e534b;
  margin-bottom: 14px;
  letter-spacing: 0.03em;
}

.p-contactform__footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 8px 0 4px;
  text-align: center;
}

.p-contactform__agree {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  font-size: 1.4rem;
  line-height: 1.7;
  color: #362b24;
  cursor: pointer;
  text-align: left;
  max-width: 420px;
}
.p-contactform__agree input {
  width: 20px;
  height: 20px;
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: #bd5833;
  cursor: pointer;
}
.p-contactform__agree a {
  color: #bd5833 !important;
  font-weight: 700;
  border-bottom: 1px solid rgba(189, 88, 51, 0.45);
}
.p-contactform__agree a:hover {
  opacity: 1;
  border-bottom-color: #bd5833;
}

.p-contactform__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 360px;
  min-height: 56px;
  padding: 14px 28px;
  background: #bd5833;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  border: none;
  box-shadow: 0 4px 14px rgba(54, 43, 36, 0.14);
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.p-contactform__submit:hover {
  background: #a24019;
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(54, 43, 36, 0.18);
}
.p-contactform__submit:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(189, 88, 51, 0.28);
}

.p-contactform__submit-note {
  max-width: 520px;
  font-size: 1.25rem;
  color: #74716b;
  line-height: 1.7;
  text-align: left;
}

.p-contactform__hours {
  text-align: center;
  max-width: none;
  margin: 0 auto 10px;
  font-size: 1.3rem;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #5e534b;
}

.p-contactform__hours--sub {
  margin-bottom: 12px;
  font-size: 1.2rem;
  color: #74716b;
}

.p-contactform__hours + .p-contactform__hours--sub {
  margin-top: -4px;
}

.p-contactform__request {
  max-width: none;
  margin: 0 auto 14px;
  padding: 12px 16px;
  background: #faf7f2;
  border: 1px solid #d1cdc7;
  text-align: left;
}
@media (min-width: 992px) {
  .p-contactform__request {
    padding: 14px 20px;
  }
}
.p-contactform__request p {
  margin: 0 0 0.4em;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #5e534b;
}
.p-contactform__request p:last-child {
  margin-bottom: 0;
}

.p-contactform__request-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.35rem !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #362b24 !important;
}

.p-contactform__divert {
  text-align: center;
  max-width: none;
  margin: 0 auto 20px;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #74716b;
}
.p-contactform__divert a {
  color: #bd5833 !important;
  font-weight: 600;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}
@media (min-width: 992px) {
  .p-contactform__divert {
    margin-bottom: 24px;
  }
}

.p-form-easy__panel#panel-hanare .p-contactform__divert {
  margin: 0;
  font-size: 1.2rem;
}

/* 予約フォーム：横長写真で着地し、すぐ入力できる */
.p-form-hero {
  width: 100vw;
  max-width: 100vw;
  margin: 0 0 20px;
  margin-left: calc(50% - 50vw);
}
@media (min-width: 768px) {
  .p-form-hero {
    margin-bottom: 24px;
  }
}

.p-form-hero__visual {
  position: relative;
  overflow: hidden;
  background: #3a322c;
  height: 220px;
}
@media (min-width: 768px) {
  .p-form-hero__visual {
    height: 240px;
  }
}
@media (min-width: 992px) {
  .p-form-hero__visual {
    height: 280px;
  }
}

.p-form-hero__photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

.p-form-hero__card {
  position: absolute;
  left: 5%;
  top: 12px;
  z-index: 3;
  max-width: min(86%, 340px);
  padding: 12px 14px 10px;
  background: rgba(253, 252, 248, 0.94);
  text-align: left;
}
@media (min-width: 768px) {
  .p-form-hero__card {
    top: 18px;
    left: max(5%, (100vw - 1100px) / 2);
    padding: 16px 18px 14px;
    max-width: 380px;
  }
}

.p-form-hero__en {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #bd5833;
  margin-bottom: 4px;
}

.p-form-hero__title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.9rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: #362b24;
  margin-bottom: 6px;
}
@media (min-width: 768px) {
  .p-form-hero__title {
    font-size: 2.2rem;
  }
}

.p-form-hero__lead {
  font-size: 1.3rem;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #5e534b;
}
@media (min-width: 768px) {
  .p-form-hero__lead {
    font-size: 1.4rem;
  }
}

.p-form-hero__facts {
  position: absolute;
  left: 5%;
  right: 5%;
  bottom: 10px;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  max-width: 1100px;
}
@media (min-width: 768px) {
  .p-form-hero__facts {
    left: max(5%, (100vw - 1100px) / 2);
    right: max(5%, (100vw - 1100px) / 2);
    bottom: 14px;
    gap: 8px;
  }
}
.p-form-hero__facts li {
  padding: 5px 10px;
  background: rgba(253, 252, 248, 0.94);
  border: 1px solid rgba(54, 43, 36, 0.12);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 768px) {
  .p-form-hero__facts li {
    font-size: 1.25rem;
    padding: 6px 11px;
  }
}

.p-form-more {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 20px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid #d1cdc7;
  text-align: left;
}
.p-form-more a {
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.6;
  color: #bd5833 !important;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}
.p-form-more a:hover {
  opacity: 1;
  color: #a24019 !important;
  border-bottom-color: #a24019;
}

.p-contactform__courses .p-form-more {
  margin-top: 16px;
  padding-top: 14px;
}

.p-hanare-form {
  display: grid;
  gap: 16px;
}
@media (min-width: 992px) {
  .p-hanare-form {
    grid-template-columns: minmax(0, 1fr) 300px;
    column-gap: 20px;
    row-gap: 16px;
    align-items: start;
  }
}

.p-hanare-form__main,
.p-hanare-form__side {
  display: grid;
  gap: 16px;
  min-width: 0;
}

@media (min-width: 992px) {
  .p-hanare-form__main {
    grid-column: 1;
  }
}

@media (min-width: 992px) {
  .p-hanare-form__side {
    grid-column: 2;
    grid-row: 1/span 2;
  }
}

@media (min-width: 992px) {
  .p-hanare-form__confirm {
    grid-column: 1;
  }
}

@media (min-width: 992px) {
  .p-hanare-form__footer {
    grid-column: 1/-1;
  }
}

.p-hanare-form__opt-legend {
  justify-content: space-between;
  width: 100%;
}

.p-hanare-form__opt-tag {
  margin-left: auto;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #8d8880;
}

.p-hanare-form__block-hint {
  margin: 0 0 14px;
}

.p-hanare .p-contactform__legend-text {
  font-size: 1.8rem;
}
.p-hanare .p-contactform__label {
  font-size: 1.45rem;
}
@media (min-width: 576px) {
  .p-hanare .p-contactform__row--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.p-hanare-requests {
  margin: 0 0 16px;
  padding: 12px 14px;
  background: #faf7f2;
  border: 1px solid #d1cdc7;
  scroll-margin-top: 96px;
  text-align: left;
}
.p-hanare-requests ul {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.p-hanare-requests li {
  position: relative;
  padding-left: 1.1em;
  font-size: 1.3rem;
  line-height: 1.75;
  color: #5e534b;
}
.p-hanare-requests li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #bd5833;
}

.p-hanare-requests__title {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #362b24;
  line-height: 1.5;
  margin-bottom: 8px;
}

.p-contactform__intro {
  display: grid;
  gap: 14px;
  margin: 0 0 10px;
  padding: 12px 14px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  text-align: left;
}
@media (min-width: 768px) {
  .p-contactform__intro {
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 20px;
    padding: 14px 16px;
    align-items: center;
  }
}
@media (min-width: 992px) {
  .p-contactform__intro {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 24px;
    padding: 16px 18px;
  }
}

.p-contactform__intro-photo {
  margin: 0;
  overflow: hidden;
  background: #eeebe4;
  aspect-ratio: 4/3;
}
.p-contactform__intro-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
}

.p-contactform__intro-catch {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.55rem;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: #362b24;
  margin: 0 0 10px;
}
@media (min-width: 992px) {
  .p-contactform__intro-catch {
    font-size: 1.7rem;
    margin-bottom: 12px;
  }
}

.p-contactform__intro-body p {
  margin: 0 0 0.5em;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #5e534b;
  letter-spacing: 0.02em;
}
.p-contactform__intro-body p:last-child {
  margin-bottom: 0;
}

.p-contactform__kids {
  max-width: none;
  margin: 0 auto 18px;
  padding: 8px 14px;
  background: #faf7f2;
  border: 1px solid #d1cdc7;
  font-size: 1.25rem;
  line-height: 1.7;
  color: #5e534b;
  text-align: left;
}
@media (min-width: 992px) {
  .p-contactform__kids {
    margin-bottom: 22px;
  }
}

.p-contactform__courses {
  margin-top: 40px;
  padding: 20px 16px 18px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  scroll-margin-top: 96px;
}
@media (min-width: 992px) {
  .p-contactform__courses {
    margin-top: 48px;
    padding: 24px 24px 22px;
  }
}

.p-contactform__courses-summary {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  line-height: 1.4;
}
@media (min-width: 992px) {
  .p-contactform__courses-summary {
    font-size: 1.9rem;
  }
}

.p-contactform__courses-grid {
  display: grid;
  gap: 16px;
  margin-top: 16px;
}
@media (min-width: 768px) {
  .p-contactform__courses-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}

.p-contactform__courses-item {
  margin: 0;
}
.p-contactform__courses-item img {
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  background: #eeebe4;
}
.p-contactform__courses-item figcaption {
  margin-top: 8px;
  font-size: 1.25rem;
  line-height: 1.6;
  color: #362b24;
  letter-spacing: 0.02em;
}

.p-contactform__courses-note {
  margin: 16px 0 0;
  font-size: 1.2rem;
  line-height: 1.7;
  color: #74716b;
}
.p-contactform__courses-note a {
  color: #bd5833 !important;
  font-weight: 600;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}

.p-contactform__when {
  display: grid;
  gap: 20px;
  margin-bottom: 4px;
}
@media (min-width: 768px) {
  .p-contactform__when {
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: start;
    gap: 24px;
  }
}

.p-contactform__when-cal iframe {
  display: block;
  width: 100%;
  max-width: 280px;
  height: 380px;
  border: 0;
  background: transparent;
}

.p-contactform__closed-notice {
  margin: 0 0 16px;
  padding: 12px 14px;
  background: #faf7f2;
  border: 1px solid #d1cdc7;
  font-size: 1.25rem;
  line-height: 1.8;
  color: #605e5e;
}

.p-contactform__date-msg {
  margin: 8px 0 0;
  font-size: 1.25rem;
  line-height: 1.6;
  color: #c45c4a;
}

.p-contactform__notes,
.p-contactform__access {
  margin-top: 48px;
  padding: 24px 18px 22px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-contactform__notes,
  .p-contactform__access {
    margin-top: 64px;
    padding: 32px 32px 28px;
  }
}

.p-contactform__notes + .p-contactform__notes {
  margin-top: 24px;
}
@media (min-width: 992px) {
  .p-contactform__notes + .p-contactform__notes {
    margin-top: 28px;
  }
}

.p-contactform__notes--en .p-contactform__notes-title {
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  letter-spacing: 0.08em;
}

.p-contactform__notes-hours-en {
  font-size: 1.25rem;
  line-height: 1.8;
  color: #74716b;
  margin: 0 0 12px;
}

.p-contactform__tel-line {
  margin: 28px 0 0;
  text-align: center;
  font-size: 1.25rem;
  line-height: 1.8;
  color: #74716b;
}
.p-contactform__tel-line a {
  color: inherit !important;
  font-weight: 600;
  border-bottom: 1px solid rgba(94, 83, 75, 0.35);
}

.p-contactform__notes-title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #d1cdc7;
}
@media (min-width: 992px) {
  .p-contactform__notes-title {
    font-size: 1.9rem;
  }
}

.p-contactform__notes-list {
  display: grid;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.p-contactform__notes-list li {
  position: relative;
  padding-left: 1.2em;
  font-size: 1.3rem;
  line-height: 1.8;
  color: #5e534b;
}
.p-contactform__notes-list li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #bd5833;
}

.p-contactform__access-text {
  font-size: 1.3rem;
  line-height: 1.9;
  color: #5e534b;
  margin-bottom: 16px;
}

.p-contactform__map {
  aspect-ratio: 16/9;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
}
.p-contactform__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.p-contactform__map-link {
  margin-top: 12px;
  text-align: right;
  font-size: 1.3rem;
}
.p-contactform__map-link a {
  color: #bd5833 !important;
  font-weight: 600;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}
.p-contactform__map-link a:hover {
  opacity: 1;
}

.p-contactform__agree-stack {
  display: grid;
  gap: 12px;
  width: 100%;
  max-width: 520px;
  margin: 0 auto 8px;
  text-align: left;
}
.p-contactform__agree-stack .p-contactform__agree {
  max-width: none;
  justify-content: flex-start;
}

/* ============================================================
   予約フォーム原本（contactform-easy.html / Wix再現用）
   ============================================================ */
.p-form-easy__spec {
  max-width: 720px;
  margin: 64px auto 0;
  padding: 18px 16px 16px;
  background: #fffaf6;
  border: 1px dashed rgba(189, 88, 51, 0.45);
}
@media (min-width: 992px) {
  .p-form-easy__spec {
    margin-top: 80px;
    padding: 20px 22px 18px;
  }
}
.p-form-easy__spec ol,
.p-form-easy__spec ul {
  margin: 0;
  padding-left: 1.4em;
  display: grid;
  gap: 6px;
}
.p-form-easy__spec ul {
  margin-top: 8px;
}
.p-form-easy__spec li {
  font-size: 1.25rem;
  line-height: 1.7;
  color: #5e534b;
}
.p-form-easy__spec code {
  font-family: inherit;
  font-size: 1.2rem;
  font-weight: 700;
  color: #362b24;
  background: #f3ece4;
  padding: 0 0.35em;
}

.p-form-easy__spec-title {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #bd5833;
  margin-bottom: 10px;
}

.p-form-easy__swatch {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(189, 88, 51, 0.2);
}
.p-form-easy__swatch span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1.2rem;
  color: #5e534b;
}

.p-form-easy__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 0 0 16px;
}

.p-form-easy__tabs-note {
  flex: 1 0 100%;
  margin: 0 0 4px;
  text-align: center;
  font-size: 1.15rem;
  line-height: 1.6;
  color: #74716b;
}

.p-form-easy__tab {
  min-height: 44px;
  padding: 10px 18px;
  border: 1.5px solid #bd5833;
  background: transparent;
  color: #bd5833;
  font-family: inherit;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.p-form-easy__tab.is-active {
  background: #bd5833;
  color: #fff;
}

.p-form-easy__panel[hidden] {
  display: none;
}

.p-form-easy__wix-label {
  display: block;
  margin: 4px 0 0;
  font-size: 1.1rem;
  line-height: 1.5;
  color: #74716b;
}

.p-form-easy__panel .p-contactform__legend-text {
  color: #bd5833;
}
.p-form-easy__panel .p-contactform__block--optional .p-contactform__legend-text {
  color: #5e534b;
}
.p-form-easy__panel .p-contactform__label,
.p-form-easy__panel .p-contactform__optional-title,
.p-form-easy__panel .p-contactform__agree,
.p-form-easy__panel .p-contactform__input,
.p-form-easy__panel .p-contactform__select,
.p-form-easy__panel .p-contactform__textarea {
  color: #362b24;
}
.p-form-easy__panel .p-contactform__select option,
.p-form-easy__panel .p-contactform__input option {
  color: #362b24;
  background: #ffffff;
}

/* 予約ハブのモック（yoyaku-hub.html）。css/style.css には直書きしない。 */
.p-yoyaku-hub {
  background: #fdfcf8;
  padding: 96px 0 72px;
  color: #362b24;
  text-align: left;
}
@media (min-width: 992px) {
  .p-yoyaku-hub {
    padding: 96px 0 80px;
  }
}
.p-yoyaku-hub .c-inner__center {
  text-align: left;
  max-width: 1280px;
}
.p-yoyaku-hub .c-sec-heading {
  text-align: center;
  margin-bottom: 8px;
}
.p-yoyaku-hub .c-sec-heading__jp {
  font-size: 2.4rem;
}
@media (min-width: 992px) {
  .p-yoyaku-hub .c-sec-heading__jp {
    font-size: 2.8rem;
  }
}
.p-yoyaku-hub .p-store-info__breadcrumb {
  justify-content: center;
  margin-bottom: 16px;
}
.p-yoyaku-hub .p-contactform__notes {
  margin-top: 20px;
}
@media (min-width: 992px) {
  .p-yoyaku-hub .p-contactform__notes {
    margin-top: 24px;
    padding: 22px 24px 18px;
  }
}

.p-yoyaku-hub__lead {
  max-width: 720px;
  margin: 0 auto 18px;
  text-align: center;
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.03em;
  color: #5e534b;
}
@media (min-width: 992px) {
  .p-yoyaku-hub__lead {
    margin-bottom: 20px;
    font-size: 1.5rem;
  }
}

.p-yoyaku-hub__ahead {
  display: grid;
  gap: 16px;
  margin: 0 0 20px;
  padding: 16px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
  align-items: start;
}
@media (min-width: 768px) {
  .p-yoyaku-hub__ahead {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 8px 32px;
    padding: 18px 20px 16px;
  }
}
.p-yoyaku-hub__ahead .p-hours-cal {
  order: 0;
  grid-area: auto;
  width: 100%;
  max-width: 280px;
  justify-self: center;
  align-self: start;
}
@media (min-width: 768px) {
  .p-yoyaku-hub__ahead .p-hours-cal {
    justify-self: start;
  }
}

.p-yoyaku-hub__notes-title {
  margin: 0 0 8px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #362b24;
}

.p-yoyaku-hub__hours {
  margin: 0 0 10px;
  font-size: 1.3rem;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #362b24;
}
.p-yoyaku-hub__hours span {
  margin: 0 0.45em;
  color: #c29e6b;
}

.p-yoyaku-hub__notes-list {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}
.p-yoyaku-hub__notes-list li {
  position: relative;
  padding-left: 1.1em;
  font-size: 1.3rem;
  line-height: 1.65;
  color: #5e534b;
}
.p-yoyaku-hub__notes-list li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #bd5833;
}

.p-yoyaku-hub__grid {
  display: grid;
  gap: 16px;
  margin: 0;
}
@media (min-width: 768px) {
  .p-yoyaku-hub__grid {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
}
@media (min-width: 1100px) {
  .p-yoyaku-hub__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
  }
}

.p-yoyaku-hub__card {
  display: block;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  color: inherit;
  overflow: hidden;
}
.p-yoyaku-hub__card:hover {
  opacity: 1;
  border-color: rgba(189, 88, 51, 0.45);
}

.p-yoyaku-hub__photo {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
  object-position: center 40%;
}
@media (min-width: 992px) {
  .p-yoyaku-hub__photo {
    height: 200px;
  }
}

.p-yoyaku-hub__body {
  padding: 18px 18px 20px;
}
@media (min-width: 992px) {
  .p-yoyaku-hub__body {
    padding: 20px 22px 22px;
  }
}

.p-yoyaku-hub__kicker {
  margin: 0 0 6px;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #bd5833;
}

.p-yoyaku-hub__title {
  margin: 0 0 8px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-yoyaku-hub__title {
    font-size: 2.2rem;
  }
}

.p-yoyaku-hub__text {
  margin: 0 0 12px;
  font-size: 1.35rem;
  line-height: 1.75;
  color: #5e534b;
}

.p-yoyaku-hub__points {
  margin: 0 0 14px;
  padding: 0;
  display: grid;
  gap: 4px;
}
.p-yoyaku-hub__points li {
  position: relative;
  padding-left: 1.1em;
  font-size: 1.3rem;
  line-height: 1.7;
  color: #362b24;
}
.p-yoyaku-hub__points li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #bd5833;
}

.p-yoyaku-hub__cta {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #bd5833;
  border-bottom: 1px solid rgba(189, 88, 51, 0.45);
}

.p-yoyaku-hub__phone {
  margin: 12px 0 0;
  font-size: 1.3rem;
  line-height: 1.7;
  color: #5e534b;
}
.p-yoyaku-hub__phone a {
  color: #bd5833 !important;
  font-weight: 700;
  border-bottom: 1px solid rgba(189, 88, 51, 0.4);
}

.p-yoyaku-hub__party {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 20px;
  margin-top: 14px;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  color: inherit;
}
.p-yoyaku-hub__party:hover {
  opacity: 1;
  border-color: rgba(189, 88, 51, 0.45);
}

.p-yoyaku-hub__party-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.p-yoyaku-hub__party-title {
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #362b24;
}

.p-yoyaku-hub__party-text {
  font-size: 1.25rem;
  line-height: 1.6;
  color: #5e534b;
}

@media (min-width: 1100px) {
  .p-yoyaku-hub__photo {
    height: 108px;
  }
  .p-yoyaku-hub__body {
    padding: 12px 12px 14px;
  }
  .p-yoyaku-hub__title {
    font-size: 1.8rem;
  }
  .p-yoyaku-hub__text {
    font-size: 1.25rem;
    line-height: 1.65;
  }
  .p-yoyaku-hub__points li {
    font-size: 1.2rem;
    line-height: 1.6;
  }
  .p-yoyaku-hub__cta {
    font-size: 1.25rem;
  }
}
/* クリスマスコース案内（christmas-course.html）。css/style.css には直書きしない。 */
.p-xmas__hero {
  display: grid;
  gap: 16px;
}
@media (min-width: 768px) {
  .p-xmas__hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
  }
}

.p-xmas__photo {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
  object-position: center 42%;
  background: #f8f5ee;
}
@media (min-width: 768px) {
  .p-xmas__photo {
    height: 100%;
    min-height: 420px;
  }
}

.p-xmas__panel {
  background: #ffffff;
  border: 1px solid #d1cdc7;
  padding: 22px 18px 20px;
  text-align: left;
}
@media (min-width: 992px) {
  .p-xmas__panel {
    padding: 32px 28px 28px;
  }
}

.p-xmas__en {
  margin: 0 0 6px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #bd5833;
}

.p-xmas__title {
  margin: 0 0 12px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: #362b24;
}
@media (min-width: 992px) {
  .p-xmas__title {
    font-size: 3.2rem;
  }
}

.p-xmas__lead,
.p-xmas__wait {
  margin: 0 0 16px;
  font-size: 1.5rem;
  line-height: 1.85;
  color: #5e534b;
}

.p-xmas__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 0;
}
.p-xmas__facts li {
  margin: 0;
  padding: 6px 10px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
  font-size: 1.3rem;
  line-height: 1.5;
  color: #362b24;
}

.p-xmas__times {
  margin: 0 0 18px;
  font-size: 1.4rem;
  line-height: 1.8;
  color: #362b24;
}

.p-xmas__reserve {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 14px;
  padding: 12px 18px;
  background: #bd5833;
  color: #fff !important;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 0.25s ease;
}
.p-xmas__reserve:hover {
  opacity: 1;
  background: #a24019;
}

.p-xmas__detail {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 700;
  color: #bd5833 !important;
  border-bottom: 1px solid rgba(189, 88, 51, 0.45);
}
.p-xmas__detail:hover {
  opacity: 1;
  border-bottom-color: #bd5833;
}

.p-xmas__wait {
  margin-bottom: 0;
}

#xmas-open[hidden],
#xmas-wait[hidden],
.p-xmas__detail[hidden] {
  display: none !important;
}

/* 統合予約フォームのモック（reserve-unified.html）と、
   2ステップ版（reserve-steps.html）。
   入力欄の見た目は contactform のクラスを使う。ここには出し分けだけ書く。
   css/style.css には直書きしない。 */
/* フォームの外。写真と案内を切り替える種類ボタン */
.p-type-switch {
  margin: 4px 0 14px;
}
@media (min-width: 768px) {
  .p-type-switch {
    margin-bottom: 16px;
  }
}

.p-type-switch__en {
  margin: 0 0 8px;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #bd5833;
}

.p-type-switch__row {
  display: flex;
  flex-wrap: wrap;
  border: 1px solid rgba(54, 43, 36, 0.16);
  background: #fdfcf8;
}

.p-type-switch__btn {
  flex: 1 1 42%;
  margin: 0;
  padding: 11px 10px;
  border: 0;
  border-right: 1px solid rgba(54, 43, 36, 0.12);
  border-bottom: 1px solid rgba(54, 43, 36, 0.12);
  background: transparent;
  color: #362b24;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  cursor: pointer;
}
@media (min-width: 768px) {
  .p-type-switch__btn {
    flex: 1 1 0;
    font-size: 1.4rem;
    padding: 12px 8px;
  }
}
.p-type-switch__btn:hover {
  background: rgba(189, 88, 51, 0.06);
}
.p-type-switch__btn.is-on {
  background: #362b24;
  color: #f7f3ec;
}
.p-type-switch__btn.is-on:hover {
  background: #362b24;
}
.p-type-switch__btn:disabled {
  color: rgba(54, 43, 36, 0.35);
  cursor: default;
  background: transparent;
}

.p-unified [hidden] {
  display: none !important;
}

.p-unified__rule {
  margin: 12px 0 0;
  padding: 10px 12px;
  background: #fff6f4;
  border: 1px solid rgba(196, 92, 74, 0.35);
  font-size: 1.3rem;
  line-height: 1.65;
  color: #c45c4a;
}

.p-unified__children {
  margin-top: 16px;
  padding: 14px 14px 2px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
}

.p-unified__fixed-course {
  margin: 0;
  padding: 12px 14px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
  font-size: 1.4rem;
  line-height: 1.7;
  color: #362b24;
}

.p-unified__done {
  margin-top: 8px;
  padding: 28px 18px 24px;
  background: #ffffff;
  border: 1px solid #d1cdc7;
  text-align: left;
}
@media (min-width: 992px) {
  .p-unified__done {
    padding: 36px 32px 32px;
  }
}

.p-unified__done-title {
  margin: 0 0 12px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #362b24;
}

.p-unified__done-text {
  margin: 0 0 18px;
  font-size: 1.4rem;
  line-height: 1.8;
  color: #5e534b;
}

.p-unified__done-back {
  font-size: 1.35rem;
  font-weight: 700;
  color: #bd5833 !important;
  border-bottom: 1px solid rgba(189, 88, 51, 0.45);
}

/* 2ステップ版。フォームだけ幅を抑えて、席予約に近い短さに見せる */
.p-steps-form {
  max-width: 760px;
  margin: 0 auto;
}

.p-steps__bar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}

.p-steps__tab {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 8px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(54, 43, 36, 0.16);
  background: rgba(255, 255, 255, 0.45);
  color: #5e534b;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
}
.p-steps__tab.is-on {
  background: #ffffff;
  border-color: #bd5833;
  color: #362b24;
  font-weight: 700;
}

.p-steps__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(54, 43, 36, 0.12);
  color: #362b24;
  font-size: 1.2rem;
  font-weight: 700;
  flex-shrink: 0;
}
.is-on .p-steps__num {
  background: #bd5833;
  color: #fff;
}

.p-steps__summary {
  margin: 0 0 14px;
  padding: 12px 14px;
  background: #f8f5ee;
  border: 1px solid #d1cdc7;
  font-size: 1.35rem;
  line-height: 1.7;
  color: #362b24;
}

.p-steps__optional-lead {
  margin: 0 0 16px;
  font-size: 1.4rem;
  line-height: 1.75;
  color: #5e534b;
}

.p-steps__revise {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #5e534b;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.3rem;
  line-height: 1.6;
  text-decoration: underline;
  cursor: pointer;
}
.p-steps__revise:hover {
  color: #362b24;
}
