/* ======================================================
  あふひ お祝いブログパーツ
  店内会席プラン

  対応内容：
  ・写真付き料理
  ・複数価格
  ・写真なしプラン
  ・詳細説明付きプラン
  ・プラン備考

  ※お祝い5ページ共通で使用
====================================================== */

.c-afuhiCelebrationPlan,
.c-afuhiCelebrationPlan * {
  box-sizing: border-box;
}

.c-afuhiCelebrationPlan {
  position: relative;
  width: 100%;
  padding: 0;
  color: #222;
  background: transparent;
}

.c-afuhiCelebrationPlan__inner {
  width: 100%;
  max-width: none;
  margin: 0;
}

/* ======================================================
  見出し
====================================================== */

.c-afuhiCelebrationPlan__head {
  margin-bottom: 48px;
}

.c-afuhiCelebrationPlan__label {
  margin: 0 0 16px !important;
  font-family: var(--font-en, "Montserrat", sans-serif);
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.18em;
  color: #7a7167;
}

/* 00-foundation.css のh2指定対策 */
.post_content
  .c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__title,
.entry-content
  .c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__title,
.c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__title {
  margin: 0 0 24px !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: clamp(30px, 2.4vw, 36px) !important;
  font-weight: 500 !important;
  line-height: 1.48 !important;
  letter-spacing: 0.05em !important;
  color: #222 !important;
}

.c-afuhiCelebrationPlan__lead {
  max-width: 46em;
  margin: 0 !important;
  font-size: 15px;
  font-weight: 400;
  line-height: 2.15;
  letter-spacing: 0.045em;
  color: #3f3a34;
}

/* ======================================================
  プラン一覧共通
====================================================== */

.c-afuhiCelebrationPlan__body {
  display: grid;
  gap: 38px;
}

.c-afuhiCelebrationPlan__body > article {
  margin: 0;
  padding: 0 0 38px;
  border-bottom: 1px solid rgba(34, 34, 34, 0.14);
}

.c-afuhiCelebrationPlan__body > article:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

/* ======================================================
  写真付きカード
====================================================== */

.c-afuhiCelebrationPlan__card {
  display: grid;
  grid-template-columns: minmax(260px, 38%) minmax(0, 1fr);
  gap: 34px;
  align-items: stretch;
}

.c-afuhiCelebrationPlan__photo {
  width: 100%;
  min-height: 220px;
  margin: 0 !important;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f4f1ea;
}

.c-afuhiCelebrationPlan__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-afuhiCelebrationPlan__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

/* ======================================================
  タグ
====================================================== */

.c-afuhiCelebrationPlan__tag {
  width: fit-content;
  margin: 0 0 14px !important;
  padding: 5px 12px;
  border: 1px solid rgba(155, 133, 85, 0.42);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #8f7846;
}

/* ======================================================
  プラン名
====================================================== */

/* 00-foundation.css のh3指定対策 */
.post_content
  .c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__cardTitle,
.entry-content
  .c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__cardTitle,
.c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__cardTitle {
  margin: 0 0 10px !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: 23px !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.05em !important;
  color: #222 !important;
}

.c-afuhiCelebrationPlan__caption {
  margin: -2px 0 12px !important;
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #6f6559;
}

/* ======================================================
  単一価格
====================================================== */

.c-afuhiCelebrationPlan__price {
  margin: 0 0 18px !important;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #333;
}

.c-afuhiCelebrationPlan__price span {
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #222;
}

.c-afuhiCelebrationPlan__price small {
  margin-left: 3px;
  font-size: 11px;
  font-weight: 400;
  color: #666;
}

/* ======================================================
  複数価格一覧
====================================================== */

.c-afuhiCelebrationPlan__priceList {
  width: 100%;
  max-width: 330px;
  margin: 4px 0 0 !important;
  padding: 0;
}

.c-afuhiCelebrationPlan__priceRow {
  display: grid;
  grid-template-columns: minmax(54px, 0.7fr) minmax(150px, 1.3fr);
  gap: 20px;
  align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px solid rgba(34, 34, 34, 0.1);
}

.c-afuhiCelebrationPlan__priceRow:first-child {
  padding-top: 0;
}

.c-afuhiCelebrationPlan__priceRow:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.c-afuhiCelebrationPlan__priceRow dt,
.c-afuhiCelebrationPlan__priceRow dd {
  margin: 0 !important;
  padding: 0;
}

.c-afuhiCelebrationPlan__priceRow dt {
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #4b4640;
}

.c-afuhiCelebrationPlan__priceRow dd {
  text-align: right;
  white-space: nowrap;
}

.c-afuhiCelebrationPlan__priceRow dd span {
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #222;
}

.c-afuhiCelebrationPlan__priceRow dd small {
  margin-left: 3px;
  font-size: 11px;
  color: #666;
}

/* ======================================================
  通常説明文
====================================================== */

.c-afuhiCelebrationPlan__text {
  margin: 0 !important;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #444;
}

/* ======================================================
  写真なしプラン
====================================================== */

.c-afuhiCelebrationPlan__textCard {
  width: 100%;
}

.c-afuhiCelebrationPlan__textCardHead {
  display: flex;
  gap: 24px;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 15px;
}

.post_content
  .c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__textCardHead
  .c-afuhiCelebrationPlan__cardTitle,
.entry-content
  .c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__textCardHead
  .c-afuhiCelebrationPlan__cardTitle,
.c-afuhiCelebrationPlan
  .c-afuhiCelebrationPlan__textCardHead
  .c-afuhiCelebrationPlan__cardTitle {
  margin-bottom: 0 !important;
}

.c-afuhiCelebrationPlan__textCardHead
  .c-afuhiCelebrationPlan__price {
  flex-shrink: 0;
  margin: 0 !important;
  white-space: nowrap;
}

.c-afuhiCelebrationPlan__textCard--detail {
  padding-top: 2px;
}

/* ======================================================
  詳細説明
====================================================== */

.c-afuhiCelebrationPlan__detailList {
  width: 100%;
  margin: 26px 0 0 !important;
  padding: 0;
  border-top: 1px solid rgba(34, 34, 34, 0.12);
}

.c-afuhiCelebrationPlan__detailRow {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 24px;
  margin: 0;
  padding: 18px 0;
  border-bottom: 1px solid rgba(34, 34, 34, 0.12);
}

.c-afuhiCelebrationPlan__detailRow:last-child {
  border-bottom: 0;
}

.c-afuhiCelebrationPlan__detailRow dt,
.c-afuhiCelebrationPlan__detailRow dd {
  margin: 0 !important;
  padding: 0;
}

.c-afuhiCelebrationPlan__detailRow dt {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.06em;
  color: #8f7846;
}

.c-afuhiCelebrationPlan__detailRow dd {
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #444;
}

.c-afuhiCelebrationPlan__detailNote {
  margin: 8px 0 0 !important;
  font-size: 12px;
  line-height: 1.9;
  color: #666;
}

/* ======================================================
  プラン備考
====================================================== */

.c-afuhiCelebrationPlan__note {
  margin-top: 46px;
  padding: 24px 26px;
  background: #f8f6f1;
}

.c-afuhiCelebrationPlan__noteTitle {
  margin: 0 0 14px !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: #333;
}

.c-afuhiCelebrationPlan__noteList {
  display: grid;
  gap: 7px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.c-afuhiCelebrationPlan__noteList li {
  position: relative;
  margin: 0 !important;
  padding: 0 0 0 1.15em !important;
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #666;
}

.c-afuhiCelebrationPlan__noteList li::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}

/* ======================================================
  母艦へ埋め込んだ場合
====================================================== */

.c-afuhiCelebrationPage
  .c-afuhiCelebrationPart--embed
  .c-afuhiCelebrationPlan {
  width: 100%;
  padding: 0;
  background: transparent;
}

.c-afuhiCelebrationPage
  .c-afuhiCelebrationPart--embed
  .c-afuhiCelebrationPlan__inner {
  width: 100%;
  max-width: none;
  margin: 0;
}

/* ======================================================
  SP
====================================================== */

@media (max-width: 767px) {
  .c-afuhiCelebrationPlan__head {
    margin-bottom: 38px;
  }

  .c-afuhiCelebrationPlan__label {
    margin-bottom: 16px !important;
    font-size: 12px;
  }

  .post_content
    .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__title,
  .entry-content
    .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__title,
  .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__title {
    margin-bottom: 24px !important;
    font-size: 30px !important;
    line-height: 1.5 !important;
  }

  .c-afuhiCelebrationPlan__lead {
    max-width: 100%;
    font-size: 14px;
    line-height: 2.1;
  }

  .c-afuhiCelebrationPlan__body {
    gap: 42px;
  }

  .c-afuhiCelebrationPlan__body > article {
    padding-bottom: 42px;
  }

  .c-afuhiCelebrationPlan__body > article:last-child {
    padding-bottom: 0;
  }

  /* 写真付きカード */
  .c-afuhiCelebrationPlan__card {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .c-afuhiCelebrationPlan__photo {
    min-height: auto;
    aspect-ratio: 4 / 3;
  }

  .post_content
    .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__cardTitle,
  .entry-content
    .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__cardTitle,
  .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__cardTitle {
    font-size: 22px !important;
  }

  .c-afuhiCelebrationPlan__price span {
    font-size: 19px;
  }

  /* 複数価格 */
  .c-afuhiCelebrationPlan__priceList {
    max-width: 100%;
  }

  .c-afuhiCelebrationPlan__priceRow {
    grid-template-columns: minmax(48px, 0.7fr) minmax(145px, 1.3fr);
    gap: 16px;
  }

  .c-afuhiCelebrationPlan__priceRow dd span {
    font-size: 18px;
  }

  /* 写真なしプラン */
  .c-afuhiCelebrationPlan__textCardHead {
    display: block;
    margin-bottom: 16px;
  }

  .post_content
    .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__textCardHead
    .c-afuhiCelebrationPlan__cardTitle,
  .entry-content
    .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__textCardHead
    .c-afuhiCelebrationPlan__cardTitle,
  .c-afuhiCelebrationPlan
    .c-afuhiCelebrationPlan__textCardHead
    .c-afuhiCelebrationPlan__cardTitle {
    margin-bottom: 8px !important;
  }

  /* 詳細説明 */
  .c-afuhiCelebrationPlan__detailList {
    margin-top: 22px !important;
  }

  .c-afuhiCelebrationPlan__detailRow {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 16px 0;
  }

  /* 備考 */
  .c-afuhiCelebrationPlan__note {
    margin-top: 40px;
    padding: 20px;
  }

  .c-afuhiCelebrationPlan__noteTitle {
    margin-bottom: 12px !important;
    font-size: 15px;
  }

  .c-afuhiCelebrationPlan__noteList {
    gap: 8px;
  }
}


/* ======================================================
  会席プラン：行事オプション価格表
====================================================== */

.c-afuhiCelebrationPlan__priceList--options {
  max-width: 100%;
}

.c-afuhiCelebrationPlan__priceList--options
  .c-afuhiCelebrationPlan__priceRow {
  grid-template-columns: minmax(160px, 1fr) auto;
}

.c-afuhiCelebrationPlan__priceList--options
  .c-afuhiCelebrationPlan__priceRow dt {
  min-width: 0;
}

.c-afuhiCelebrationPlan__priceList--options
  + .c-afuhiCelebrationPlan__detailNote {
  margin-top: 16px !important;
}

@media (max-width: 767px) {
  .c-afuhiCelebrationPlan__priceList--options
    .c-afuhiCelebrationPlan__priceRow {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }

  .c-afuhiCelebrationPlan__priceList--options
    .c-afuhiCelebrationPlan__priceRow dt {
    font-size: 13px;
  }

  .c-afuhiCelebrationPlan__priceList--options
    .c-afuhiCelebrationPlan__priceRow dd span {
    font-size: 17px;
  }
}



/* ======================================================
  お顔合わせ（お祝い共通）
  導入写真・説明

  ・PC/SPとも右端で断ち切る
  ・写真は本文幅より小さくする
  ・写真の周囲に余白を確保する
====================================================== */

.c-afuhiCelebrationPlan--meeting {
  /*
   * PC母艦の右端から画面右端までの距離
   * 通常時：左右6vw
   * 最大幅1320px到達後：残りの画面余白
   */
  --meeting-page-edge:
    max(6vw, calc((100vw - 1320px) / 2));
}

/* 見出し下の余白 */
.c-afuhiCelebrationPlan--meeting
  .c-afuhiCelebrationPlan__head {
  margin-bottom: 48px;
}

/* 8:5の導入写真
   幅を抑え、右端まで断ち切る */
.c-afuhiCelebrationPlan__featurePhoto {
  display: block;
  width: min(72%, 580px);
  max-width: none;
  margin:
    0
    calc(var(--meeting-page-edge) * -1)
    48px
    auto !important;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: #f4f1ea;
}

.c-afuhiCelebrationPlan__featurePhoto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* お顔合わせの説明 */
.c-afuhiCelebrationPlan__introduction {
  max-width: 42em;
  margin: 0 0 64px;
}

.c-afuhiCelebrationPlan__introduction p {
  margin: 0 !important;
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: #3f3a34;
}

/* ======================================================
  tablet
  母艦幅90vwに合わせる
====================================================== */

@media (min-width: 768px) and (max-width: 1024px) {
  .c-afuhiCelebrationPlan--meeting {
    --meeting-page-edge: 5vw;
  }

  .c-afuhiCelebrationPlan__featurePhoto {
    width: 74%;
    margin-bottom: 44px !important;
  }
}

/* ======================================================
  SP
  母艦の左右22pxに合わせて右端まで断ち切る
====================================================== */

@media (max-width: 767px) {
  .c-afuhiCelebrationPlan--meeting {
    --meeting-page-edge: 22px;
  }

  .c-afuhiCelebrationPlan--meeting
    .c-afuhiCelebrationPlan__head {
    margin-bottom: 36px;
  }

  .c-afuhiCelebrationPlan__featurePhoto {
    width: calc(100% - 34px);
    max-width: none;
    margin:
      0
      calc(var(--meeting-page-edge) * -1)
      36px
      auto !important;
    aspect-ratio: 8 / 5;
  }

  .c-afuhiCelebrationPlan__introduction {
    max-width: 100%;
    margin-bottom: 52px;
  }

  .c-afuhiCelebrationPlan__introduction p {
    font-size: 14px;
    line-height: 2.15;
  }
}



/* ======================================================
  結びの席
  ストーリー・写真レイアウト
====================================================== */

.c-afuhiCelebrationPlan--musubi {
  --musubi-page-edge:
    max(6vw, calc((100vw - 1320px) / 2));
}

/* ======================================================
  メイン写真
====================================================== */

.c-afuhiMusubi__mainPhoto {
  display: block;
  width: min(74%, 600px);
  max-width: none;
  margin:
    0
    calc(var(--musubi-page-edge) * -1)
    88px
    auto !important;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: #f4f1ea;
}

.c-afuhiMusubi__mainPhoto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ======================================================
  ストーリー
====================================================== */

.c-afuhiMusubi__story {
  display: grid;
  align-items: center;
  margin-bottom: 88px;
}

.c-afuhiMusubi__story--photoRight {
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: clamp(48px, 7vw, 96px);
}

.c-afuhiMusubi__story--photoLeft {
  grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
  gap: clamp(52px, 8vw, 108px);
}

.c-afuhiMusubi__storyText {
  max-width: 31em;
}

.c-afuhiMusubi__storyText p {
  margin: 0 !important;
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: #3f3a34;
}

/* サブ写真は必ずメイン写真より小さくする */
.c-afuhiMusubi__subPhoto {
  width: 100%;
  margin: 0 !important;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #f4f1ea;
}

.c-afuhiMusubi__subPhoto--one {
  max-width: 280px;
  justify-self: end;
}

.c-afuhiMusubi__subPhoto--two {
  max-width: 240px;
  justify-self: center;
}

.c-afuhiMusubi__subPhoto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ======================================================
  専用料理
====================================================== */

.c-afuhiMusubi__plan {
  margin-top: 116px;
}

.c-afuhiMusubi__planHead {
  margin-bottom: 38px;
}

.c-afuhiMusubi__planHead
  .c-afuhiCelebrationPlan__label {
  margin-bottom: 14px !important;
}

.post_content
  .c-afuhiCelebrationPlan
  .c-afuhiMusubi__planHead
  .c-afuhiCelebrationPlan__cardTitle,
.entry-content
  .c-afuhiCelebrationPlan
  .c-afuhiMusubi__planHead
  .c-afuhiCelebrationPlan__cardTitle,
.c-afuhiCelebrationPlan
  .c-afuhiMusubi__planHead
  .c-afuhiCelebrationPlan__cardTitle {
  margin-bottom: 0 !important;
  font-size: 26px !important;
}

.c-afuhiCelebrationPlan__priceList--courses {
  width: 100%;
  max-width: 390px;
}

.c-afuhiCelebrationPlan__priceList--courses
  .c-afuhiCelebrationPlan__priceRow {
  grid-template-columns: minmax(145px, 1fr) auto;
}

/* ======================================================
  撮影オプション
====================================================== */

.c-afuhiMusubi__options {
  margin-top: 56px;
  padding-top: 42px;
  border-top: 1px solid rgba(34, 34, 34, 0.14);
}

.c-afuhiMusubi__options
  .c-afuhiCelebrationPlan__priceList {
  max-width: 430px;
}

/* ======================================================
  tablet
====================================================== */

@media (min-width: 768px) and (max-width: 1024px) {
  .c-afuhiCelebrationPlan--musubi {
    --musubi-page-edge: 5vw;
  }

  .c-afuhiMusubi__mainPhoto {
    width: 76%;
    margin-bottom: 76px !important;
  }

  .c-afuhiMusubi__story--photoRight,
  .c-afuhiMusubi__story--photoLeft {
    gap: 42px;
  }
}

/* ======================================================
  SP
====================================================== */

@media (max-width: 767px) {
  .c-afuhiCelebrationPlan--musubi {
    --musubi-page-edge: 22px;
  }

  .c-afuhiMusubi__mainPhoto {
    width: calc(100% - 34px);
    max-width: none;
    margin:
      0
      calc(var(--musubi-page-edge) * -1)
      64px
      auto !important;
    aspect-ratio: 8 / 5;
  }

  .c-afuhiMusubi__story {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 72px;
  }

  .c-afuhiMusubi__story--photoRight {
    gap: 36px;
  }

  .c-afuhiMusubi__story--photoLeft {
    gap: 36px;
  }

  .c-afuhiMusubi__story--photoLeft
    .c-afuhiMusubi__subPhoto {
    order: 2;
  }

  .c-afuhiMusubi__story--photoLeft
    .c-afuhiMusubi__storyText {
    order: 1;
  }

  .c-afuhiMusubi__storyText {
    max-width: 100%;
  }

  .c-afuhiMusubi__storyText p {
    font-size: 14px;
    line-height: 2.15;
  }

  .c-afuhiMusubi__subPhoto--one {
    width: 72%;
    max-width: 280px;
    margin-left: auto !important;
  }

  .c-afuhiMusubi__subPhoto--two {
    width: 62%;
    max-width: 240px;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .c-afuhiMusubi__plan {
    margin-top: 92px;
  }

  .c-afuhiMusubi__planHead {
    margin-bottom: 32px;
  }

  .c-afuhiCelebrationPlan__priceList--courses {
    max-width: 100%;
  }

  .c-afuhiCelebrationPlan__priceList--courses
    .c-afuhiCelebrationPlan__priceRow {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }

  .c-afuhiMusubi__options {
    margin-top: 48px;
    padding-top: 36px;
  }
}






/* ======================================================
  あふひ：店内のご案内
====================================================== */

.c-afuhiInterior,
.c-afuhiInterior * {
  box-sizing: border-box;
}

.c-afuhiInterior {
  --interior-page-edge:
    max(6vw, calc((100vw - 1320px) / 2));

  position: relative;
  width: 100%;
  color: #222;
  overflow: visible;
}

/* ======================================================
  セクションヒーロー
====================================================== */

.c-afuhiInterior__hero {
  position: relative;
  min-height: clamp(600px, 55vw, 740px);
  margin-bottom: 120px;
}

/* 見出し */
.c-afuhiInterior__head {
  position: relative;
  z-index: 3;
  width: 52%;
  padding-top: clamp(62px, 8vw, 110px);
}

.c-afuhiInterior__label {
  margin: 0 0 18px !important;
  font-family: var(--font-en);
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.18em;
  color: #7a7167;
}

.post_content .c-afuhiInterior .c-afuhiInterior__title,
.entry-content .c-afuhiInterior .c-afuhiInterior__title,
.c-afuhiInterior .c-afuhiInterior__title {
  margin: 0 !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: clamp(30px, 2.4vw, 36px) !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.05em !important;
  color: #222 !important;
}

/* 写真枠共通 */
.c-afuhiInterior__relayFrame {
  position: absolute;
  overflow: hidden;
  background: #f4f1ea;
}

/* A：右上、3:4、右端断ち切り */
.c-afuhiInterior__relayFrame--a {
  top: 0;
  right: calc(var(--interior-page-edge) * -1);
  width: min(42%, 330px);
  aspect-ratio: 3 / 4;
}

/* B：左下、正方形、左へ少し断ち切り */
.c-afuhiInterior__relayFrame--b {
  bottom: 0;
  left: clamp(-52px, -3.4vw, -26px);
  width: min(56%, 430px);
  aspect-ratio: 1 / 1;
}

.c-afuhiInterior__relayImage {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transition: opacity 1.1s ease;
}

.c-afuhiInterior__relayImage.is-active {
  z-index: 2;
  opacity: 1;
}

/* ======================================================
  メッセージ
====================================================== */

.c-afuhiInterior__message {
  width: min(90%, 680px);
  margin: 0 0 128px clamp(0px, 7vw, 96px);
}

.c-afuhiInterior__messageBlock + .c-afuhiInterior__messageBlock {
  margin-top: 96px;
}

.c-afuhiInterior__messageLabel {
  margin: 0 0 24px !important;
  font-family: var(--font-en);
  font-size: 12px !important;
  line-height: 1;
  letter-spacing: 0.18em;
  color: #7a7167;
}

.post_content .c-afuhiInterior .c-afuhiInterior__messageTitle,
.entry-content .c-afuhiInterior .c-afuhiInterior__messageTitle,
.c-afuhiInterior .c-afuhiInterior__messageTitle {
  margin: 0 0 36px !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: clamp(24px, 2.2vw, 31px) !important;
  font-weight: 500 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.055em !important;
  color: #222 !important;
}

.c-afuhiInterior__message p {
  margin: 0 0 1.8em;
  font-size: var(--fz-prose);
  line-height: 2.2;
  letter-spacing: 0.05em;
  color: #3f3a34;
}

.c-afuhiInterior__message p:last-child {
  margin-bottom: 0;
}

/* ラベルは本文変数の対象外 */
.c-afuhiInterior__message
  .c-afuhiInterior__messageLabel {
  font-size: 12px;
}

/* ======================================================
  手動ギャラリー
====================================================== */

.c-afuhiInterior__gallery {
  width: calc(100% + var(--interior-page-edge));
  margin-right: calc(var(--interior-page-edge) * -1);
  overflow: hidden;
}

.c-afuhiInterior__galleryHead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin: 0 var(--interior-page-edge) 34px 0;
}

.c-afuhiInterior__galleryLabel {
  margin: 0 0 12px !important;
  font-family: var(--font-en);
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.18em;
  color: #7a7167;
}

.post_content .c-afuhiInterior .c-afuhiInterior__galleryTitle,
.entry-content .c-afuhiInterior .c-afuhiInterior__galleryTitle,
.c-afuhiInterior .c-afuhiInterior__galleryTitle {
  margin: 0 !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
  color: #222 !important;
}

.c-afuhiInterior__galleryControls {
  display: flex;
  align-items: center;
  gap: 12px;
}

.c-afuhiInterior__galleryCount {
  margin: 0 10px 0 0 !important;
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #666;
}

.c-afuhiInterior__galleryButton {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(34, 34, 34, 0.24);
  border-radius: 50%;
  background: transparent;
  color: #333;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  transition:
    color 0.25s ease,
    border-color 0.25s ease,
    background-color 0.25s ease;
}

.c-afuhiInterior__galleryButton:hover {
  border-color: #8f7846;
  background: #f8f6f1;
  color: #8f7846;
}

.c-afuhiInterior__galleryButton:disabled {
  opacity: 0.3;
  cursor: default;
}

.c-afuhiInterior__galleryTrack {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.2vw, 30px);
  width: 100%;
  padding: 0 var(--interior-page-edge) 18px 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  cursor: grab;
  touch-action: pan-x;
}

.c-afuhiInterior__galleryTrack::-webkit-scrollbar {
  display: none;
}

.c-afuhiInterior__galleryTrack.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  user-select: none;
}

.c-afuhiInterior__gallerySlide {
  flex: 0 0 auto;
  height: clamp(270px, 28vw, 360px);
  margin: 0 !important;
  overflow: hidden;
  background: #f4f1ea;
  scroll-snap-align: start;
}

.c-afuhiInterior__gallerySlide--landscape {
  aspect-ratio: 3 / 2;
}

.c-afuhiInterior__gallerySlide--portrait {
  aspect-ratio: 3 / 4;
}

.c-afuhiInterior__gallerySlide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ======================================================
  tablet
====================================================== */

@media (min-width: 768px) and (max-width: 1024px) {
  .c-afuhiInterior {
    --interior-page-edge: 5vw;
  }

  .c-afuhiInterior__hero {
    min-height: 600px;
  }

  .c-afuhiInterior__relayFrame--a {
    width: 43%;
  }

  .c-afuhiInterior__relayFrame--b {
    width: 55%;
  }

  .c-afuhiInterior__message {
    width: 92%;
    margin-left: 4%;
  }
}

/* ======================================================
  SP
====================================================== */

@media (max-width: 767px) {
  .c-afuhiInterior {
    --interior-page-edge: 22px;
  }

  .c-afuhiInterior__hero {
    min-height: 540px;
    margin-bottom: 92px;
  }

  .c-afuhiInterior__head {
    width: 54%;
    padding-top: 50px;
  }

  .c-afuhiInterior__label {
    margin-bottom: 14px !important;
    font-size: 11px;
  }

  .post_content .c-afuhiInterior .c-afuhiInterior__title,
  .entry-content .c-afuhiInterior .c-afuhiInterior__title,
  .c-afuhiInterior .c-afuhiInterior__title {
    font-size: 29px !important;
    line-height: 1.55 !important;
  }

  .c-afuhiInterior__relayFrame--a {
    right: calc(var(--interior-page-edge) * -1);
    width: 45%;
  }

  .c-afuhiInterior__relayFrame--b {
    left: calc(var(--interior-page-edge) * -1);
    width: 68%;
  }

  .c-afuhiInterior__message {
    width: 100%;
    margin: 0 0 96px;
  }

  .c-afuhiInterior__messageBlock + .c-afuhiInterior__messageBlock {
    margin-top: 76px;
  }

  .post_content .c-afuhiInterior .c-afuhiInterior__messageTitle,
  .entry-content .c-afuhiInterior .c-afuhiInterior__messageTitle,
  .c-afuhiInterior .c-afuhiInterior__messageTitle {
    margin-bottom: 28px !important;
    font-size: 24px !important;
    line-height: 1.8 !important;
  }

  .c-afuhiInterior__message p {
    font-size: var(--fz-prose-sp);
    line-height: 2.15;
  }

  .c-afuhiInterior__gallery {
    width: calc(100% + var(--interior-page-edge));
    margin-right: calc(var(--interior-page-edge) * -1);
  }

  .c-afuhiInterior__galleryHead {
    margin-right: var(--interior-page-edge);
    margin-bottom: 28px;
  }

  .c-afuhiInterior__galleryControls {
    gap: 8px;
  }

  .c-afuhiInterior__galleryCount {
    display: none;
  }

  .c-afuhiInterior__galleryButton {
    width: 38px;
    height: 38px;
  }

  .c-afuhiInterior__galleryTrack {
    gap: 18px;
    padding-right: 44px;
  }

  .c-afuhiInterior__gallerySlide {
    height: 250px;
  }
}

@media (max-width: 767px) {
  .c-afuhiInterior__title span {
    display: block;
    white-space: nowrap;
  }

  .c-afuhiInterior__title span + span {
    margin-top: 0.15em;
  }
}


/* ======================================================
  動きを減らす設定
====================================================== */

@media (prefers-reduced-motion: reduce) {
  .c-afuhiInterior__relayImage {
    transition: none;
  }

  .c-afuhiInterior__galleryTrack {
    scroll-behavior: auto;
  }
}






/* ======================================================
  あふひ：お祝い弁当・仕出し
====================================================== */

.c-afuhiTakeout,
.c-afuhiTakeout * {
  box-sizing: border-box;
}

.c-afuhiTakeout {
  position: relative;
  width: 100%;
  color: #222;
}

.c-afuhiTakeout__inner {
  width: 100%;
}

/* 見出し */
.c-afuhiTakeout__head {
  margin-bottom: 52px;
}

.c-afuhiTakeout__label {
  margin: 0 0 16px !important;
  font-family: var(--font-en);
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.18em;
  color: #7a7167;
}

.post_content .c-afuhiTakeout .c-afuhiTakeout__title,
.entry-content .c-afuhiTakeout .c-afuhiTakeout__title,
.c-afuhiTakeout .c-afuhiTakeout__title {
  margin: 0 0 24px !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: clamp(30px, 2.4vw, 36px) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
  color: #222 !important;
}

.c-afuhiTakeout__lead {
  max-width: 46em;
  margin: 0 !important;
  font-size: var(--fz-prose);
  line-height: 2.15;
  letter-spacing: 0.045em;
  color: #3f3a34;
}

/* 選択カード */
.c-afuhiTakeout__choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(26px, 4vw, 46px);
}

.c-afuhiTakeout__choice {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0 0 28px;
  border: 0;
  border-bottom: 1px solid rgba(34, 34, 34, 0.16);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.c-afuhiTakeout__choicePhoto {
  display: block;
  width: 100%;
  margin-bottom: 24px;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: #f4f1ea;
}

.c-afuhiTakeout__choicePhoto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.c-afuhiTakeout__choice:hover
  .c-afuhiTakeout__choicePhoto img {
  transform: scale(1.025);
}

.c-afuhiTakeout__choiceContent,
.c-afuhiTakeout__choiceSub,
.c-afuhiTakeout__choiceTitle,
.c-afuhiTakeout__choiceText,
.c-afuhiTakeout__choiceLink {
  display: block;
}

.c-afuhiTakeout__choiceSub {
  margin-bottom: 12px;
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: #8f7846;
}

.c-afuhiTakeout__choiceTitle {
  margin-bottom: 16px;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif;
  font-size: 23px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.05em;
}

.c-afuhiTakeout__choiceText {
  min-height: 7em;
  margin-bottom: 22px;
  font-size: var(--fz-prose);
  line-height: 2;
  letter-spacing: 0.04em;
  color: #444;
}

.c-afuhiTakeout__choiceLink {
  font-size: 13px;
  letter-spacing: 0.06em;
  color: #8f7846;
}

.c-afuhiTakeout__choiceLink span {
  margin-left: 8px;
}

/* そのほかのご用意 */
.c-afuhiTakeout__support {
  margin-top: 72px;
  padding: 32px 34px;
  background: #f8f6f1;
}

.c-afuhiTakeout__supportLabel {
  margin: 0 0 14px !important;
  font-family: var(--font-en);
  font-size: 11px !important;
  letter-spacing: 0.15em;
  color: #8f7846;
}

.post_content .c-afuhiTakeout .c-afuhiTakeout__supportTitle,
.entry-content .c-afuhiTakeout .c-afuhiTakeout__supportTitle,
.c-afuhiTakeout .c-afuhiTakeout__supportTitle {
  margin: 0 0 22px !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.05em !important;
}

.c-afuhiTakeout__supportText {
  margin: 0 0 1.5em !important;
  font-size: var(--fz-prose);
  line-height: 2;
  letter-spacing: 0.04em;
  color: #444;
}

.c-afuhiTakeout__detailLink {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
  color: #8f7846;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-decoration: none;
}

/* モーダル */
html.is-afuhiTakeoutDialogOpen {
  overflow: hidden;
}

.c-afuhiTakeout__dialog {
  width: min(92vw, 960px);
  max-width: 960px;
  max-height: 90dvh;
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #222;
  overflow: hidden;
}

.c-afuhiTakeout__dialog::backdrop {
  background: rgba(20, 18, 15, 0.68);
  backdrop-filter: blur(3px);
}

.c-afuhiTakeout__dialogPanel {
  max-height: 90dvh;
  padding: 44px 46px 48px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.c-afuhiTakeout__dialogHeader {
  position: sticky;
  z-index: 5;
  top: -44px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  margin: -44px -46px 42px;
  padding: 38px 46px 26px;
  border-bottom: 1px solid rgba(34, 34, 34, 0.12);
  background: rgba(255, 255, 255, 0.96);
}

.c-afuhiTakeout__dialogLabel {
  margin: 0 0 10px !important;
  font-family: var(--font-en);
  font-size: 11px !important;
  letter-spacing: 0.15em;
  color: #8f7846;
}

.post_content .c-afuhiTakeout .c-afuhiTakeout__dialogTitle,
.entry-content .c-afuhiTakeout .c-afuhiTakeout__dialogTitle,
.c-afuhiTakeout .c-afuhiTakeout__dialogTitle {
  margin: 0 !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: 30px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
}

.c-afuhiTakeout__dialogTitle:focus {
  outline: none;
}

.c-afuhiTakeout__dialogClose {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(34, 34, 34, 0.25);
  border-radius: 50%;
  background: transparent;
  color: #333;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.c-afuhiTakeout__products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 46px 32px;
}

.c-afuhiTakeout__product {
  margin: 0;
}

.c-afuhiTakeout__product:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  width: calc((100% - 32px) / 2);
}

.c-afuhiTakeout__productPhoto {
  margin: 0 0 20px !important;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: #f4f1ea;
}

.c-afuhiTakeout__productPhoto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-afuhiTakeout__productContent {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
}

.post_content .c-afuhiTakeout .c-afuhiTakeout__productTitle,
.entry-content .c-afuhiTakeout .c-afuhiTakeout__productTitle,
.c-afuhiTakeout .c-afuhiTakeout__productTitle {
  margin: 0 !important;
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-size: 19px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.04em !important;
}

.c-afuhiTakeout__productPrice {
  flex: 0 0 auto;
  margin: 0 !important;
  white-space: nowrap;
}

.c-afuhiTakeout__productPrice span {
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif;
  font-size: 18px;
  color: #222;
}

.c-afuhiTakeout__productPrice small {
  margin-left: 3px;
  font-size: 10px;
  color: #666;
}

.c-afuhiTakeout__dialogNote {
  margin-top: 48px;
  padding: 20px 22px;
  background: #f8f6f1;
}

.c-afuhiTakeout__dialogNote p {
  margin: 0 !important;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 12px;
  line-height: 1.9;
  color: #666;
}

.c-afuhiTakeout__dialogFooter {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}

.c-afuhiTakeout__dialogBottomClose {
  min-width: 180px;
  padding: 14px 30px;
  border: 1px solid #8f7846;
  background: transparent;
  color: #8f7846;
  font-size: 14px;
  letter-spacing: 0.08em;
  cursor: pointer;
}

/* SP */
@media (max-width: 767px) {
  .c-afuhiTakeout__head {
    margin-bottom: 40px;
  }

  .post_content .c-afuhiTakeout .c-afuhiTakeout__title,
  .entry-content .c-afuhiTakeout .c-afuhiTakeout__title,
  .c-afuhiTakeout .c-afuhiTakeout__title {
    font-size: 29px !important;
  }

  .c-afuhiTakeout__lead {
    font-size: var(--fz-prose-sp);
    line-height: 2.1;
  }

  .c-afuhiTakeout__choices {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .c-afuhiTakeout__choice {
    padding-bottom: 32px;
  }

  .c-afuhiTakeout__choicePhoto {
    margin-bottom: 22px;
  }

  .c-afuhiTakeout__choiceTitle {
    font-size: 22px;
  }

  .c-afuhiTakeout__choiceText {
    min-height: 0;
    font-size: var(--fz-prose-sp);
  }

  .c-afuhiTakeout__support {
    margin-top: 56px;
    padding: 26px 22px;
  }

  .c-afuhiTakeout__supportText {
    font-size: var(--fz-prose-sp);
  }

  .c-afuhiTakeout__dialog {
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
  }

  .c-afuhiTakeout__dialogPanel {
    max-height: 100dvh;
    padding: 32px 22px 40px;
  }

  .c-afuhiTakeout__dialogHeader {
    top: -32px;
    margin: -32px -22px 34px;
    padding: 25px 22px 20px;
  }

  .post_content .c-afuhiTakeout .c-afuhiTakeout__dialogTitle,
  .entry-content .c-afuhiTakeout .c-afuhiTakeout__dialogTitle,
  .c-afuhiTakeout .c-afuhiTakeout__dialogTitle {
    font-size: 26px !important;
  }

  .c-afuhiTakeout__dialogClose {
    width: 40px;
    height: 40px;
  }

  .c-afuhiTakeout__products {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .c-afuhiTakeout__product:last-child:nth-child(odd) {
    grid-column: auto;
    width: 100%;
  }

  .c-afuhiTakeout__productPhoto {
    margin-bottom: 18px !important;
  }

  .c-afuhiTakeout__productContent {
    display: block;
  }

  .post_content .c-afuhiTakeout .c-afuhiTakeout__productTitle,
  .entry-content .c-afuhiTakeout .c-afuhiTakeout__productTitle,
  .c-afuhiTakeout .c-afuhiTakeout__productTitle {
    margin-bottom: 7px !important;
    font-size: 20px !important;
  }

  .c-afuhiTakeout__productPrice span {
    font-size: 18px;
  }

  .c-afuhiTakeout__dialogNote {
    margin-top: 42px;
  }
}






/* ======================================================
  あふひ：キャンセルポリシー
====================================================== */

.c-afuhiPolicy,
.c-afuhiPolicy * {
  box-sizing: border-box;
}

.c-afuhiPolicy {
  position: relative;
  width: 100%;
  color: #222;
}

/* ======================================================
  案内パネル
====================================================== */

.c-afuhiPolicy__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  margin: 0;
  padding: 25px 4px;
  border: 0;
  border-top: 1px solid rgba(120, 104, 76, 0.28);
  border-bottom: 1px solid rgba(120, 104, 76, 0.28);
  background: transparent;
  color: #333;
  text-align: left;
  cursor: pointer;
  transition:
    color 0.25s ease,
    background-color 0.25s ease;
}

.c-afuhiPolicy__trigger:hover {
  color: #8f7846;
  background: rgba(248, 246, 241, 0.6);
}

.c-afuhiPolicy__triggerContent,
.c-afuhiPolicy__triggerLabel,
.c-afuhiPolicy__triggerTitle {
  display: block;
}

.c-afuhiPolicy__triggerLabel {
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.09em;
  color: #8f7846;
}

.c-afuhiPolicy__triggerTitle {
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    "Hiragino Sans",
    sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.c-afuhiPolicy__triggerIcon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(120, 104, 76, 0.35);
  border-radius: 50%;
  font-family: var(--font-en);
  font-size: 18px;
  font-weight: 300;
  line-height: 1;
  color: #8f7846;
  transition:
    color 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease;
}

.c-afuhiPolicy__trigger:hover
  .c-afuhiPolicy__triggerIcon {
  border-color: #8f7846;
  transform: rotate(90deg);
}

/* ======================================================
  モーダル
====================================================== */

html.is-afuhiPolicyDialogOpen {
  overflow: hidden;
}

.c-afuhiPolicy__dialog {
  width: min(88vw, 680px);
  max-width: 680px;
  max-height: 88dvh;
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #222;
  overflow: hidden;
}

.c-afuhiPolicy__dialog::backdrop {
  background: rgba(20, 18, 15, 0.68);
  backdrop-filter: blur(3px);
}

.c-afuhiPolicy__dialogPanel {
  max-height: 88dvh;
  padding: 38px 42px 44px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* モーダル上部 */
.c-afuhiPolicy__dialogHeader {
  position: sticky;
  z-index: 5;
  top: -38px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  margin: -38px -42px 34px;
  padding: 32px 42px 23px;
  border-bottom: 1px solid rgba(34, 34, 34, 0.12);
  background: rgba(255, 255, 255, 0.97);
}

.c-afuhiPolicy__dialogLabel {
  margin: 0 0 8px !important;
  font-family: var(--font-en);
  font-size: 10px !important;
  line-height: 1;
  letter-spacing: 0.16em;
  color: #8f7846;
}

.post_content .c-afuhiPolicy .c-afuhiPolicy__dialogTitle,
.entry-content .c-afuhiPolicy .c-afuhiPolicy__dialogTitle,
.c-afuhiPolicy .c-afuhiPolicy__dialogTitle {
  margin: 0 !important;
  font-family:
    "Noto Sans JP",
    "Yu Gothic",
    "Hiragino Sans",
    sans-serif !important;
  font-size: 21px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.06em !important;
  color: #222 !important;
}

.c-afuhiPolicy__dialogTitle:focus {
  outline: none;
}

.c-afuhiPolicy__dialogClose {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(34, 34, 34, 0.25);
  border-radius: 50%;
  background: transparent;
  color: #333;
  font-size: 23px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
}

/* 本文 */
.c-afuhiPolicy__intro,
.c-afuhiPolicy__closing {
  margin: 0 0 1.6em !important;
  font-size: var(--fz-prose);
  line-height: 2;
  letter-spacing: 0.04em;
  color: #444;
}

/* キャンセル料 */
.c-afuhiPolicy__rule {
  margin: 34px 0;
  padding: 25px 27px;
  background: #f8f6f1;
}

.c-afuhiPolicy__ruleLabel {
  margin: 0 0 18px !important;
  font-size: 12px !important;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #8f7846;
}

.c-afuhiPolicy__ruleList {
  margin: 0 !important;
  padding: 0;
}

.c-afuhiPolicy__ruleRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.c-afuhiPolicy__ruleRow dt,
.c-afuhiPolicy__ruleRow dd {
  margin: 0 !important;
  padding: 0;
}

.c-afuhiPolicy__ruleRow dt {
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #333;
}

.c-afuhiPolicy__ruleRow dd {
  flex: 0 0 auto;
  white-space: nowrap;
  color: #8f7846;
}

.c-afuhiPolicy__ruleRow dd span {
  font-family: var(--font-en);
  font-size: 31px;
  font-weight: 400;
  line-height: 1;
}

.c-afuhiPolicy__ruleRow dd small {
  margin-left: 3px;
  font-size: 14px;
}

.c-afuhiPolicy__ruleCaption {
  margin: 17px 0 0 !important;
  padding-top: 17px;
  border-top: 1px solid rgba(120, 104, 76, 0.2);
  font-size: 12px !important;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #666;
}

/* 適用例 */
.c-afuhiPolicy__example {
  margin: 0 0 28px;
  padding-left: 18px;
  border-left: 2px solid rgba(143, 120, 70, 0.5);
}

.c-afuhiPolicy__exampleLabel {
  margin: 0 0 8px !important;
  font-size: 11px !important;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #8f7846;
}

.c-afuhiPolicy__example p:last-child {
  margin: 0 !important;
  font-size: 13px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #555;
}

/* 延期 */
.c-afuhiPolicy__notes {
  margin: 0 0 32px;
  padding: 20px 22px;
  border: 1px solid rgba(34, 34, 34, 0.12);
}

.c-afuhiPolicy__notes p {
  margin: 0 !important;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #666;
}

.c-afuhiPolicy__notes p + p {
  margin-top: 6px !important;
}

.c-afuhiPolicy__closing {
  margin-bottom: 0 !important;
}

/* 下部閉じる */
.c-afuhiPolicy__dialogFooter {
  display: flex;
  justify-content: center;
  margin-top: 36px;
}

.c-afuhiPolicy__dialogBottomClose {
  min-width: 180px;
  padding: 14px 30px;
  border: 1px solid #8f7846;
  background: transparent;
  color: #8f7846;
  font-size: 14px;
  letter-spacing: 0.08em;
  cursor: pointer;
}

/* ======================================================
  SP
====================================================== */

@media (max-width: 767px) {
  .c-afuhiPolicy__trigger {
    padding: 22px 2px;
  }

  .c-afuhiPolicy__triggerTitle {
    font-size: 15px;
  }

  .c-afuhiPolicy__triggerIcon {
    width: 36px;
    height: 36px;
  }

  .c-afuhiPolicy__dialog {
    width: calc(100vw - 24px);
    max-width: none;
    max-height: 90dvh;
  }

  .c-afuhiPolicy__dialogPanel {
    max-height: 90dvh;
    padding: 30px 22px 36px;
  }

  .c-afuhiPolicy__dialogHeader {
    top: -30px;
    margin: -30px -22px 28px;
    padding: 24px 22px 19px;
  }

  .post_content .c-afuhiPolicy .c-afuhiPolicy__dialogTitle,
  .entry-content .c-afuhiPolicy .c-afuhiPolicy__dialogTitle,
  .c-afuhiPolicy .c-afuhiPolicy__dialogTitle {
    font-size: 19px !important;
  }

  .c-afuhiPolicy__dialogClose {
    width: 38px;
    height: 38px;
  }

  .c-afuhiPolicy__intro,
  .c-afuhiPolicy__closing {
    font-size: var(--fz-prose-sp);
    line-height: 2;
  }

  .c-afuhiPolicy__rule {
    margin: 28px 0;
    padding: 22px 20px;
  }

  .c-afuhiPolicy__ruleRow {
    gap: 18px;
  }

  .c-afuhiPolicy__ruleRow dt {
    font-size: 13px;
  }

  .c-afuhiPolicy__ruleRow dd span {
    font-size: 29px;
  }

  .c-afuhiPolicy__example {
    padding-left: 14px;
  }

  .c-afuhiPolicy__notes {
    padding: 18px;
  }
}






/* ======================================================
  あふひ 法事弁当・仕出し ブログパーツ
  追加先：afuhi-blog-parts.css の末尾
====================================================== */

.c-afuhiMemorialFood,
.c-afuhiMemorialFood * {
  box-sizing: border-box;
}

.c-afuhiMemorialFood {
  position: relative;
  width: 100%;
  color: #222;
}

/* ======================================================
  明朝見出し
====================================================== */

.post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle,
.entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle,
.c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle,
.post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle,
.entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle,
.c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle,
.post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle,
.entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle,
.c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle,
.post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__menuTitle,
.entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__menuTitle,
.c-afuhiMemorialFood .c-afuhiMemorialFood__menuTitle {
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  color: #222 !important;
}

/* ======================================================
  01. 導入・カテゴリー移動
====================================================== */

.c-afuhiMemorialFood__intro {
  max-width: 48em;
  margin: 0 0 38px;
}

.c-afuhiMemorialFood__intro p {
  margin: 0 !important;
  font-size: var(--fz-prose, 15px);
  line-height: 2.1;
  letter-spacing: 0.045em;
  color: #3f3a34;
}

.c-afuhiMemorialFood__categoryNav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 0 94px;
  border-top: 1px solid rgba(120, 104, 76, 0.28);
  border-bottom: 1px solid rgba(120, 104, 76, 0.28);
}

.c-afuhiMemorialFood__categoryNav a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 74px;
  padding: 15px 34px 15px 18px;
  border-right: 1px solid rgba(120, 104, 76, 0.24);
  color: #3f3a34;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.055em;
  text-align: center;
  text-decoration: none;
  transition:
    color 0.25s ease,
    background-color 0.25s ease;
}

.c-afuhiMemorialFood__categoryNav a:last-child {
  border-right: 0;
}

.c-afuhiMemorialFood__categoryNav a::after {
  position: absolute;
  top: 50%;
  right: 16px;
  content: "↓";
  color: #9a8a68;
  font-size: 12px;
  transform: translateY(-50%);
}

.c-afuhiMemorialFood__categoryNav a:hover {
  background: rgba(248, 246, 241, 0.65);
  color: #8e743d;
}

/* ======================================================
  商品セクション共通
====================================================== */

.c-afuhiMemorialFood__section {
  scroll-margin-top: 110px;
  margin: 0 0 118px;
}

.c-afuhiMemorialFood__sectionHead {
  margin: 0 0 48px;
}

.c-afuhiMemorialFood__sectionLabel {
  margin: 0 0 16px !important;
  font-family: var(--font-en, "Montserrat", sans-serif);
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.17em;
  color: #7a7167;
}

.post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle,
.entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle,
.c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle {
  margin: 0 !important;
  font-size: clamp(28px, 2.4vw, 34px) !important;
  line-height: 1.55 !important;
}

.c-afuhiMemorialFood__group + .c-afuhiMemorialFood__group {
  margin-top: 88px;
}

.c-afuhiMemorialFood__groupHead {
  display: flex;
  gap: 24px;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 31px;
  padding: 0 0 16px;
  border-bottom: 1px solid rgba(120, 104, 76, 0.24);
}

.post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle,
.entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle,
.c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle {
  margin: 0 !important;
  font-size: 23px !important;
  line-height: 1.55 !important;
}

.c-afuhiMemorialFood__size {
  flex: 0 0 auto;
  margin: 0 !important;
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #746b61;
}

.c-afuhiMemorialFood__products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 52px 30px;
}

.c-afuhiMemorialFood__product {
  min-width: 0;
  margin: 0;
  padding: 0 0 25px;
  border-bottom: 1px solid rgba(34, 34, 34, 0.14);
}

.c-afuhiMemorialFood__productPhoto {
  width: 100%;
  margin: 0 0 21px !important;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: #f4f1ea;
}

.c-afuhiMemorialFood__productPhoto img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.c-afuhiMemorialFood__productBody {
  min-width: 0;
}

.c-afuhiMemorialFood__tag {
  width: fit-content;
  margin: 0 0 11px !important;
  padding: 4px 10px;
  border: 1px solid rgba(155, 133, 85, 0.42);
  color: #8f7846;
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle,
.entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle,
.c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle {
  margin: 0 0 9px !important;
  font-size: 20px !important;
  line-height: 1.6 !important;
}

.c-afuhiMemorialFood__price {
  margin: 0 !important;
  color: #222;
  line-height: 1.7;
}

.c-afuhiMemorialFood__price span {
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.c-afuhiMemorialFood__price small {
  margin-left: 3px;
  font-size: 10px;
  color: #666;
}

.c-afuhiMemorialFood__productNote {
  margin: 12px 0 0 !important;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 12px;
  line-height: 1.85;
  letter-spacing: 0.025em;
  color: #666;
}

.c-afuhiMemorialFood__notice,
.c-afuhiMemorialFood__commonNote {
  margin-top: 42px;
  padding: 20px 22px;
  background: #f8f6f1;
}

.c-afuhiMemorialFood__notice p,
.c-afuhiMemorialFood__commonNote p {
  margin: 0 !important;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.03em;
  color: #625d56;
}

.c-afuhiMemorialFood__notice p + p {
  margin-top: 5px !important;
}

.c-afuhiMemorialFood__commonNote {
  margin-top: -72px;
}

/* ======================================================
  SPフローティングメニュー：PCでは非表示
====================================================== */

.c-afuhiMemorialFood__floatingButton,
.c-afuhiMemorialFood__menuDialog {
  display: none;
}

html.is-afuhiMemorialFoodMenuOpen {
  overflow: hidden;
}

/* ======================================================
  SP
====================================================== */

@media (max-width: 767px) {
  .c-afuhiMemorialFood__intro {
    margin-bottom: 0;
  }

  .c-afuhiMemorialFood__intro p {
    font-size: var(--fz-prose-sp, 15px);
    line-height: 2.05;
  }

  .c-afuhiMemorialFood__categoryNav {
    display: none;
  }

  .c-afuhiMemorialFood__section {
    scroll-margin-top: 80px;
    margin-top: 82px;
    margin-bottom: 98px;
  }

  .c-afuhiMemorialFood__sectionHead {
    margin-bottom: 38px;
  }

  .c-afuhiMemorialFood__sectionLabel {
    margin-bottom: 14px !important;
    font-size: 10px;
  }

  .post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle,
  .entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle,
  .c-afuhiMemorialFood .c-afuhiMemorialFood__sectionTitle {
    font-size: 27px !important;
  }

  .c-afuhiMemorialFood__group + .c-afuhiMemorialFood__group {
    margin-top: 74px;
  }

  .c-afuhiMemorialFood__groupHead {
    display: block;
    margin-bottom: 27px;
    padding-bottom: 15px;
  }

  .post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle,
  .entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle,
  .c-afuhiMemorialFood .c-afuhiMemorialFood__groupTitle {
    margin-bottom: 7px !important;
    font-size: 22px !important;
  }

  .c-afuhiMemorialFood__products {
    grid-template-columns: 1fr;
    gap: 47px;
  }

  .c-afuhiMemorialFood__productPhoto {
    margin-bottom: 20px !important;
  }

  .post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle,
  .entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle,
  .c-afuhiMemorialFood .c-afuhiMemorialFood__productTitle {
    font-size: 21px !important;
  }

  .c-afuhiMemorialFood__notice,
  .c-afuhiMemorialFood__commonNote {
    margin-top: 36px;
    padding: 18px;
  }

  .c-afuhiMemorialFood__commonNote {
    margin-top: -58px;
  }

  .c-afuhiMemorialFood__floatingButton {
    position: fixed;
    z-index: 900;
    right: 50%;
    bottom: max(18px, env(safe-area-inset-bottom));
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: center;
    min-width: 154px;
    padding: 14px 20px;
    border: 1px solid rgba(143, 120, 70, 0.72);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 8px 25px rgba(28, 24, 18, 0.12);
    color: #5f5033;
    font-size: 13px;
    line-height: 1;
    letter-spacing: 0.08em;
    cursor: pointer;
    opacity: 0;
    transform: translate(50%, 16px);
    pointer-events: none;
    transition:
      opacity 0.3s ease,
      transform 0.3s ease;
  }

  .c-afuhiMemorialFood__floatingButton.is-visible {
    opacity: 1;
    transform: translate(50%, 0);
    pointer-events: auto;
  }

  .c-afuhiMemorialFood__floatingIcon {
    font-family: var(--font-en, "Montserrat", sans-serif);
    font-size: 14px;
    color: #9a8a68;
  }

  .c-afuhiMemorialFood__menuDialog {
    width: calc(100vw - 24px);
    max-width: 520px;
    max-height: calc(100dvh - 24px);
    margin: auto auto 12px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #fff;
    color: #222;
    overflow: hidden;
  }

  .c-afuhiMemorialFood__menuDialog[open] {
    display: block;
  }

  .c-afuhiMemorialFood__menuDialog::backdrop {
    background: rgba(20, 18, 15, 0.58);
    backdrop-filter: blur(2px);
  }

  .c-afuhiMemorialFood__menuPanel {
    max-height: calc(100dvh - 24px);
    padding: 26px 24px calc(30px + env(safe-area-inset-bottom));
    overflow-y: auto;
  }

  .c-afuhiMemorialFood__menuHeader {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
  }

  .post_content .c-afuhiMemorialFood .c-afuhiMemorialFood__menuTitle,
  .entry-content .c-afuhiMemorialFood .c-afuhiMemorialFood__menuTitle,
  .c-afuhiMemorialFood .c-afuhiMemorialFood__menuTitle {
    margin: 0 !important;
    font-size: 22px !important;
    line-height: 1.5 !important;
  }

  .c-afuhiMemorialFood__menuClose {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid rgba(34, 34, 34, 0.24);
    border-radius: 50%;
    background: transparent;
    color: #333;
    font-size: 24px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
  }

  .c-afuhiMemorialFood__menuNav {
    display: grid;
    border-top: 1px solid rgba(120, 104, 76, 0.28);
  }

  .c-afuhiMemorialFood__menuNav a {
    display: block;
    padding: 17px 2px;
    border-bottom: 1px solid rgba(120, 104, 76, 0.28);
    color: #3f3a34;
    font-size: 14px;
    line-height: 1.45;
    letter-spacing: 0.055em;
    text-decoration: none;
  }

  .c-afuhiMemorialFood__menuNav a::after {
    content: "↓";
    float: right;
    color: #9a8a68;
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .c-afuhiMemorialFood__floatingButton {
    transition: none;
  }
}
