/* ============================================================
   下層ページ共通スタイル（パレスホテル大宮 ウエディング）
   トップページのトンマナ（クリーム×シャンパンゴールド／Cinzel＋明朝）を踏襲。
   このファイルは下層ページ専用。トップの styles.css / replica-overrides.css には依存しない。
   ============================================================ */

:root {
  --cream: #F4F5F4;
  --cream-light: #FBFCFB;
  --gold: #F3A9C1;                          /* ガーデングリーン（旧シャンパンゴールド）*/
  --gold-soft: #FDEBF1;                      /* ソフトセージ */
  --gold-deep: #F3A9C1;                      /* ディープオリーブ：見出し・リンク */
  --charcoal: #23282A;
  --ink: #4A5052;
  --line: rgba(243, 169, 193, 0.22);           /* 罫線：緑系に */
  --serif-en: "Cinzel", "Cormorant Infant", serif;                 /* 小さな英字ラベル・ブランド名（トップの footer/eyebrow と同じ Cinzel）*/
  --serif-display: "Cormorant Infant", "Cinzel", "Times New Roman", serif; /* 大きな英字ディスプレイ見出し（トップの Concept/Plan/Wedding と同じ）*/
  --serif-jp: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "游明朝", serif;
  --sans-jp: "Roboto", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --header-h: 68px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--cream);
  color: #3B4244;
  font-family: var(--sans-jp);
  font-size: 16px;
  line-height: 2;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; display: block; }
a { color: inherit; }

/* 共通の見出し英字 */
.en { font-family: var(--serif-en); }
.jp { font-family: var(--serif-jp); }

/* ========== 共通ボタン（トップの枠線CTAと同じ意匠） ========== */
.site-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  min-width: 230px;
  padding: 15px 24px;
  border: 1px solid rgba(243, 169, 193, 0.72);
  border-radius: 2px;
  background: rgba(251, 252, 251, 0.5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  color: var(--gold-deep);
  font-family: var(--serif-jp);
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
.site-btn span {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  margin-left: 22px;
  border-radius: 50%;
  background: var(--gold-deep);
  transition: transform 0.4s ease, background 0.4s ease;
}
.site-btn:hover {
  background: var(--gold-deep);
  border-color: var(--gold-deep);
  color: #fff;
}
.site-btn:hover span { transform: translateX(5px); background: #fff; }

/* ========== ヘッダー ========== */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-h);
  padding: 0 clamp(18px, 3vw, 44px);
  background: linear-gradient(180deg, rgba(17, 23, 19, 0.28), rgba(17, 23, 19, 0));
  transition: background 0.45s ease, box-shadow 0.45s ease;
}
.site-header.is-scrolled {
  background: rgba(251, 252, 251, 0.94);
  box-shadow: 0 6px 22px -16px rgba(32, 46, 38, 0.5);
  backdrop-filter: saturate(115%) blur(2px);
}
.site-header__brand { text-decoration: none; display: flex; flex-direction: column; line-height: 1.2; }
.site-header__name {
  font-family: var(--serif-en);
  font-size: clamp(0.9rem, 1.5vw, 1.15rem);
  letter-spacing: 0.22em;
  color: #fff;
  transition: color 0.45s ease;
}
.site-header__sub {
  font-family: var(--serif-en);
  font-size: 0.6rem;
  letter-spacing: 0.4em;
  color: rgba(255, 255, 255, 0.82);
  margin-top: 3px;
  transition: color 0.45s ease;
}
.site-header.is-scrolled .site-header__name { color: var(--charcoal); }
.site-header.is-scrolled .site-header__sub { color: var(--gold-deep); }

.site-header__actions { display: flex; align-items: center; gap: clamp(12px, 2vw, 22px); }
.site-header__fair {
  display: inline-block;
  padding: 11px 22px;
  background: rgba(243, 169, 193, 0.92);
  color: #fff;
  font-family: var(--serif-jp);
  font-size: 0.82rem;
  letter-spacing: 0.16em;
  text-decoration: none;
  border-radius: 2px;
  transition: background 0.4s ease;
}


.site-header__menu {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 6px 2px;
  background: none; border: 0; cursor: pointer;
}
.site-header__menu-lines { display: block; width: 26px; }
.site-header__menu-lines i {
  display: block; height: 1.5px; background: #fff; margin: 5px 0;
  transition: background 0.45s ease;
}
.site-header__menu-label {
  font-family: var(--serif-en);
  font-size: 0.62rem; letter-spacing: 0.22em; color: #fff;
  transition: color 0.45s ease;
}
.site-header.is-scrolled .site-header__menu-lines i { background: var(--gold-deep); }
.site-header.is-scrolled .site-header__menu-label { color: var(--gold-deep); }

/* ========== メニュー（オーバーレイ） ========== */
.site-menu {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: linear-gradient(180deg, var(--cream-light) 0%, var(--cream) 100%);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.4s ease, transform 0.5s ease, visibility 0.4s;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.menu-open { overflow: hidden; }
body.menu-open .site-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.site-menu__close {
  position: absolute;
  top: 24px; right: clamp(18px, 3vw, 44px);
  background: none; border: 0; cursor: pointer;
  font-family: var(--serif-en);
  font-size: 0.72rem; letter-spacing: 0.24em; color: var(--gold-deep);
}
.site-menu__inner { width: min(460px, 86vw); }
.site-menu__list { list-style: none; margin: 0 0 32px; padding: 0; }
.site-menu__list li { border-bottom: 1px solid rgba(243, 169, 193, 0.22); }
.site-menu__list li:last-child { border-bottom: 0; }
.site-menu__list a {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: clamp(13px, 2vw, 19px) 0;
  text-decoration: none; text-align: center;
  transition: letter-spacing 0.35s ease;
}
.site-menu__list .en {
  font-size: clamp(15px, 1.5vw, 18px); font-weight: 500;
  letter-spacing: 0.16em; color: var(--gold-deep);
  transition: color 0.35s ease;
}
.site-menu__list .jp { font-size: 11px; letter-spacing: 0.24em; color: var(--ink); opacity: 0.85; }
.site-menu__list a:hover { letter-spacing: 0.06em; }
.site-menu__list a:hover .en { color: var(--gold); }
.site-menu__list a.is-current .en { color: var(--gold); }
.site-menu__list a.is-current { background: rgba(243, 169, 193, 0.06); }
.site-menu__cta { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.site-menu__cta .site-btn { width: min(320px, 100%); }

/* ========== ページ・メインビジュアル ========== */
.page-hero {
  position: relative;
  height: min(70vh, 620px);
  min-height: 420px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.page-hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(17, 23, 19, 0.32), rgba(17, 23, 19, 0.12) 40%, rgba(17, 23, 19, 0.42));
}
.page-hero__inner { position: relative; z-index: 1; padding: 0 20px; }
.page-hero__en {
  font-family: var(--serif-display);
  font-weight: 500;
  font-size: clamp(2.2rem, 5.4vw, 4rem);
  letter-spacing: 0.1em;
  margin: 0;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.28);
}
.page-hero__jp {
  font-family: var(--serif-jp);
  font-size: clamp(0.9rem, 1.5vw, 1.05rem);
  letter-spacing: 0.4em;
  margin: 14px 0 0;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
}
.page-hero__scroll {
  position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%);
  z-index: 1; width: 1px; height: 46px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0));
}

/* ========== ページ導入文 ========== */
.page-intro {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(56px, 8vw, 108px) clamp(22px, 5vw, 40px) clamp(20px, 4vw, 40px);
  text-align: center;
}
.page-intro__eyebrow {
  display: block;
  font-family: var(--serif-en);
  font-size: 0.72rem; letter-spacing: 0.36em; color: var(--gold);
  margin-bottom: 18px;
}
.page-intro__title {
  font-family: var(--serif-jp);
  font-weight: 500;
  font-size: clamp(1.25rem, 2.6vw, 1.9rem);
  letter-spacing: 0.1em;
  line-height: 1.7;
  margin: 0 0 24px;
  color: var(--charcoal);
}
.page-intro__lead {
  font-size: clamp(0.92rem, 1.2vw, 1rem);
  letter-spacing: 0.06em;
  color: var(--ink);
  margin: 0;
}

/* ========== 写真＋説明文 セクション ========== */
.features { padding: clamp(24px, 5vw, 56px) 0 clamp(40px, 6vw, 96px); }
.feature {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: clamp(26px, 4vw, 72px);
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(30px, 5vw, 64px) clamp(22px, 5vw, 48px);
}
.feature + .feature { padding-top: 0; }
.feature:nth-child(even) .feature__media { order: 2; }
.feature__media {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  box-shadow: 0 26px 60px -34px rgba(32, 46, 38, 0.5);
}
.feature__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.feature__body { padding: 8px 0; }
.feature__en {
  display: block;
  font-family: var(--serif-en);
  font-size: 0.74rem; letter-spacing: 0.34em; color: var(--gold);
  margin-bottom: 12px;
}
.feature__title {
  font-family: var(--serif-jp);
  font-weight: 500;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  letter-spacing: 0.08em;
  line-height: 1.7;
  margin: 0 0 18px;
  color: var(--charcoal);
}
.feature__text {
  font-size: 0.95rem; letter-spacing: 0.05em; color: var(--ink); margin: 0 0 22px;
}
.feature__link {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--serif-en); font-size: 0.78rem; letter-spacing: 0.16em;
  color: var(--gold-deep); text-decoration: none;
}
.feature__link i { display: inline-block; width: 34px; height: 1px; background: var(--gold-deep); transition: width 0.4s ease; }
.feature__link:hover i { width: 52px; }

/* ========== ギャラリー・グリッド ========== */
.gallery-grid {
  max-width: 1180px; margin: 0 auto;
  padding: clamp(10px, 3vw, 30px) clamp(16px, 4vw, 40px) clamp(50px, 7vw, 96px);
  display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(8px, 1.2vw, 16px);
}
.gallery-grid figure { margin: 0; overflow: hidden; border-radius: 3px; }
.gallery-grid img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1.2s ease; }
.gallery-grid figure:hover img { transform: scale(1.06); }

/* ========== アクセス（情報＋地図） ========== */
.access-info {
  max-width: 980px; margin: 0 auto;
  padding: clamp(10px, 3vw, 24px) clamp(22px, 5vw, 40px) clamp(30px, 5vw, 56px);
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px);
}
.access-info dl { margin: 0; }
.access-info dt {
  font-family: var(--serif-en); font-size: 0.7rem; letter-spacing: 0.28em;
  color: var(--gold); margin-top: 18px;
}
.access-info dt:first-child { margin-top: 0; }
.access-info dd { margin: 6px 0 0; font-size: 0.95rem; color: var(--ink); letter-spacing: 0.04em; }
.access-map {
  border-radius: 4px; overflow: hidden; min-height: 260px;
  background: repeating-linear-gradient(135deg, #EDEFEE, #EDEFEE 14px, #E4E8E6 14px, #E4E8E6 28px);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-deep); font-family: var(--serif-en); letter-spacing: 0.24em; font-size: 0.8rem;
  box-shadow: inset 0 0 0 1px var(--line);
}

/* ========== 関連コンテンツ ========== */
.related { background: var(--cream-light); padding: clamp(56px, 8vw, 104px) clamp(20px, 5vw, 48px); border-top: 1px solid var(--line); }
.related__head { text-align: center; margin-bottom: clamp(30px, 4vw, 52px); }
.related__en { display: block; font-family: var(--serif-en); font-size: 1.4rem; letter-spacing: 0.28em; color: var(--gold-deep); }
.related__jp { font-family: var(--serif-jp); font-size: 0.8rem; letter-spacing: 0.3em; color: var(--ink); }
.related__grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 26px); }
.related__card { position: relative; display: block; overflow: hidden; border-radius: 4px; text-decoration: none; box-shadow: 0 20px 46px -30px rgba(32, 46, 38, 0.5); }
.related__card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1.1s ease; }
.related__card:hover img { transform: scale(1.07); }
.related__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17, 23, 19,0) 40%, rgba(17, 23, 19,0.6)); }
.related__label { position: absolute; left: 0; right: 0; bottom: 16px; z-index: 1; text-align: center; color: #fff; }
.related__label .en { display: block; font-size: 1.05rem; letter-spacing: 0.2em; }
.related__label .jp { display: block; font-size: 0.72rem; letter-spacing: 0.24em; margin-top: 4px; opacity: 0.92; }

/* ========== フッター（トップの .rxfoot と同じ意匠） ========== */
.site-footer {
  background: var(--cream);
  padding: clamp(48px, 6vw, 84px) clamp(24px, 6vw, 80px) clamp(28px, 3vw, 40px);
  text-align: center;
  border-top: 1px solid var(--line);
}
.site-footer__name { margin: 0 0 clamp(26px, 3vw, 40px); font-family: var(--serif-en); font-size: clamp(1.05rem, 1.5vw, 1.5rem); letter-spacing: 0.26em; color: var(--charcoal); }
.site-footer__nav { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; margin: 0 auto clamp(30px, 3.4vw, 44px); }
.site-footer__nav a { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 0 clamp(12px, 2vw, 24px); text-decoration: none; }
.site-footer__nav a + a { border-left: 1px solid rgba(243, 169, 193, 0.28); }
.site-footer__nav .en { font-family: var(--serif-en); font-size: 0.84rem; letter-spacing: 0.14em; color: var(--gold-deep); }
.site-footer__nav .jp { font-family: var(--serif-jp); font-size: 0.7rem; letter-spacing: 0.08em; color: var(--ink); }
.site-footer__nav a:hover .en, .site-footer__nav a:hover .jp, .site-footer__nav a.is-current .en { color: var(--gold); }
.site-footer__actions { display: flex; justify-content: center; gap: 14px; margin: 0 auto clamp(28px, 3vw, 40px); }
.site-footer__copy { margin: 0; font-family: var(--serif-jp); font-size: 0.82rem; color: #6E7B72; }
.site-footer__copy small { font-family: var(--serif-en); font-size: 0.62rem; letter-spacing: 0.18em; color: rgba(74, 80, 82, 0.55); }

/* ========== レスポンシブ ========== */
@media (max-width: 750px) {
  :root { --header-h: 58px; }
  .site-header { padding: 0 14px; }
  .site-header__name { font-size: 0.74rem; letter-spacing: 0.12em; white-space: nowrap; }
  .site-header__sub { font-size: 0.5rem; letter-spacing: 0.28em; white-space: nowrap; }
  .site-header__actions { gap: 10px; }
  .site-header__fair { padding: 9px 14px; font-size: 0.72rem; }
  .feature { grid-template-columns: 1fr; gap: 20px; padding: clamp(24px, 6vw, 40px) 22px; }
  .feature:nth-child(even) .feature__media { order: 0; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .access-info { grid-template-columns: 1fr; }
  .related__grid { grid-template-columns: 1fr; max-width: 420px; }
  .site-footer__nav { max-width: 320px; gap: 14px 0; }
  .site-footer__nav a { flex: 0 0 50%; padding: 6px 0; }
  .site-footer__nav a + a { border-left: 0; }
  .site-footer__actions { flex-direction: column; align-items: center; }
  .site-footer__actions .site-btn { width: min(300px, 100%); }
}

@media (max-width: 360px) {
  .site-header__name { font-size: 0.62rem; letter-spacing: 0.08em; }
  .site-header__sub { display: none; }
  .site-header__fair { padding: 8px 10px; font-size: 0.64rem; }
}

/* =====================================================================
   スクロール・リビール／ヒーロー演出（トップページの世界観を踏襲）
   .reveal-on は <head> のインラインscriptで付与。JSが無い場合は全表示。
   ===================================================================== */
.reveal-frame { position: relative; overflow: hidden; }
.reveal-frame > img { display: block; width: 100%; height: 100%; object-fit: cover; }

@media (prefers-reduced-motion: no-preference) {
  .reveal-on [data-reveal] {
    opacity: 0;
    transform: translateY(44px);
    transition: opacity 1s cubic-bezier(0.22, 0.61, 0.36, 1), transform 1.1s cubic-bezier(0.22, 0.61, 0.36, 1);
    transition-delay: var(--reveal-delay, 0s);
    will-change: opacity, transform;
  }
  .reveal-on [data-reveal="fade"] { transform: none; }
  .reveal-on [data-reveal="left"] { transform: translateX(-48px); }
  .reveal-on [data-reveal="right"] { transform: translateX(48px); }
  .reveal-on [data-reveal].is-in { opacity: 1; transform: none; }

  .reveal-on .reveal-frame > img { transform: scale(1.14); transition: transform 1.7s cubic-bezier(0.22, 0.61, 0.36, 1); }
  .reveal-on .reveal-frame::after {
    content: ""; position: absolute; inset: 0; background: var(--cream);
    transform-origin: right; z-index: 1;
    transition: transform 1.2s cubic-bezier(0.76, 0, 0.24, 1);
  }
  .reveal-on .reveal-frame.is-in > img { transform: scale(1); }
  .reveal-on .reveal-frame.is-in::after { transform: scaleX(0); }

  /* ヒーロー：ゆっくりズーム＋タイトルのせり上がり */
  .page-hero__bg { animation: phKenburns 16s ease-out both; }
  .reveal-on .page-hero__en { opacity: 0; animation: phHeroRise 1.5s 0.35s cubic-bezier(0.22, 0.61, 0.36, 1) forwards; }
  .reveal-on .page-hero__jp { opacity: 0; animation: phFade 1.4s 0.85s ease forwards; }
  .reveal-on .page-hero__scroll { opacity: 0; animation: phFade 1.2s 1.4s ease forwards; }
}
@keyframes phKenburns { from { transform: scale(1.16); } to { transform: scale(1); } }
@keyframes phHeroRise { from { opacity: 0; transform: translateY(28px); letter-spacing: 0.3em; } to { opacity: 1; transform: none; letter-spacing: 0.1em; } }
@keyframes phFade { to { opacity: 1; } }

/* ヒーローの背景レイヤー（Ken Burns用）と重なり順 */
.page-hero { z-index: 0; }
.page-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; }
.page-hero::after { z-index: 1; }
.page-hero__inner { z-index: 2; }
.page-hero__scroll { z-index: 2; }

/* =====================================================================
   セクション共通の見出しパーツ（split / overlap で共有）
   ===================================================================== */
.sec-index { display: block; font-family: var(--serif-display); font-weight: 500; font-size: clamp(2.6rem, 5.5vw, 4.8rem); line-height: 0.9; color: rgba(243, 169, 193, 0.26); }
.sec-en { display: block; font-family: var(--serif-en); font-size: 0.74rem; letter-spacing: 0.34em; color: var(--gold); margin: 10px 0 12px; }
.sec-title { font-family: var(--serif-jp); font-weight: 500; font-size: clamp(1.2rem, 2.1vw, 1.7rem); letter-spacing: 0.08em; line-height: 1.75; margin: 0 0 18px; color: var(--charcoal); }
.sec-rule { display: block; width: 56px; height: 1px; background: var(--gold); margin: 0 0 20px; }
.sec-text { font-family: var(--sans-jp); font-size: 0.96rem; line-height: 2; color: var(--ink); margin: 0; }

/* ---------- A. スプリット（写真＋テキスト＋大きな番号）左右交互 ---------- */
.sec-split { padding: clamp(40px, 6vw, 92px) 0; }
.sec-split__grid { position: relative; display: grid; grid-template-columns: 1.02fr 0.98fr; align-items: center; gap: clamp(30px, 5vw, 84px); max-width: 1180px; margin: 0 auto; padding: 0 clamp(22px, 5vw, 48px); }
.sec-split--flip .sec-split__media { order: 2; }
.sec-split__media { aspect-ratio: 5 / 4; border-radius: 4px; box-shadow: 0 34px 74px -42px rgba(32, 46, 38, 0.55); }
.sec-split--portrait .sec-split__media { aspect-ratio: 3 / 4; max-width: 360px; margin-left: auto; margin-right: auto; }
.sec-split__body { position: relative; }

/* ---------- B. オーバーラップ（大判写真にカードが重なる編集的レイアウト） ---------- */
.sec-overlap { position: relative; max-width: 1140px; margin: 0 auto; padding: clamp(46px, 7vw, 108px) clamp(22px, 5vw, 48px); }
.sec-overlap__media { position: relative; width: min(74%, 780px); aspect-ratio: 16 / 10; border-radius: 4px; box-shadow: 0 40px 82px -46px rgba(32, 46, 38, 0.55); }
.sec-overlap--right .sec-overlap__media { margin-left: auto; }
.sec-overlap__card { position: relative; z-index: 2; width: min(58%, 520px); margin-top: clamp(-96px, -7vw, -56px); background: var(--cream-light); border: 1px solid var(--line); padding: clamp(28px, 3.4vw, 48px); box-shadow: 0 34px 74px -46px rgba(32, 46, 38, 0.42); }
.sec-overlap:not(.sec-overlap--right) .sec-overlap__card { margin-left: auto; }

/* ---------- C. フルブリード（映画的な章扉。背景パララックス＋白文字） ---------- */
.sec-full { position: relative; min-height: min(86vh, 760px); display: flex; align-items: center; justify-content: center; overflow: hidden; text-align: center; color: #fff; }
.sec-full__bg { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; will-change: transform; }
.sec-full::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(17, 23, 19, 0.42), rgba(17, 23, 19, 0.2) 45%, rgba(17, 23, 19, 0.56)); }
.sec-full__card { position: relative; z-index: 2; max-width: 660px; padding: 0 24px; }
.sec-full .sec-index { color: rgba(255, 255, 255, 0.55); }
.sec-full .sec-en { color: #fff; }
.sec-full__title { font-family: var(--serif-jp); font-weight: 500; color: #fff; font-size: clamp(1.3rem, 2.6vw, 2rem); letter-spacing: 0.1em; line-height: 1.85; margin: 0 0 20px; text-shadow: 0 2px 16px rgba(0, 0, 0, 0.32); }
.sec-full__text { font-family: var(--sans-jp); color: rgba(255, 255, 255, 0.92); line-height: 2; font-size: 0.96rem; margin: 0; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); }

/* ---------- D. バンド（コンセプトの一文。余白で魅せる“間”） ---------- */
.sec-band { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--cream-light), var(--cream)); padding: clamp(72px, 11vw, 150px) clamp(22px, 5vw, 48px); text-align: center; }
.sec-band__mark { position: relative; z-index: 1; display: inline-block; width: 1px; height: 54px; background: linear-gradient(180deg, var(--gold), transparent); margin-bottom: 30px; }
.sec-band__en { position: relative; z-index: 1; display: block; font-family: var(--serif-en); font-size: 0.76rem; letter-spacing: 0.4em; color: var(--gold); margin-bottom: 24px; }
.sec-band__title { position: relative; z-index: 1; font-family: var(--serif-jp); font-weight: 500; font-size: clamp(1.35rem, 3vw, 2.3rem); letter-spacing: 0.12em; line-height: 2; margin: 0; color: var(--charcoal); }
.sec-band .wm { top: 50%; left: 50%; transform: translate(-50%, -50%); }

/* ---------- E. モザイク（非対称フォトウォール／ギャラリー用） ---------- */
.sec-mosaic { max-width: 1200px; margin: 0 auto; padding: clamp(20px, 4vw, 48px) clamp(16px, 4vw, 40px) clamp(50px, 7vw, 96px); display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(130px, 15vw, 224px); gap: clamp(8px, 1.1vw, 15px); }
.sec-mosaic figure { margin: 0; overflow: hidden; border-radius: 3px; }
.sec-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s cubic-bezier(0.22, 0.61, 0.36, 1); }
.sec-mosaic figure:hover img { transform: scale(1.07); }
.sec-mosaic figure:first-child { grid-column: span 2; grid-row: span 2; }

/* ---------- F. インフォ（アクセス：情報＋地図） ---------- */
.sec-info { max-width: 1000px; margin: 0 auto; padding: clamp(20px, 4vw, 40px) clamp(22px, 5vw, 48px) clamp(40px, 6vw, 80px); display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.sec-info dl { margin: 0; }
.sec-info dt { font-family: var(--serif-en); font-size: 0.72rem; letter-spacing: 0.28em; color: var(--gold); margin-top: 22px; }
.sec-info dt:first-child { margin-top: 0; }
.sec-info dd { margin: 6px 0 0; font-family: var(--sans-jp); font-size: 0.98rem; color: var(--ink); line-height: 1.9; }
.sec-info__map { border-radius: 4px; overflow: hidden; aspect-ratio: 4 / 3; background: repeating-linear-gradient(135deg, #EDEFEE, #EDEFEE 14px, #E4E8E6 14px, #E4E8E6 28px); display: flex; align-items: center; justify-content: center; color: var(--gold-deep); font-family: var(--serif-en); letter-spacing: 0.22em; font-size: 0.78rem; text-align: center; padding: 20px; box-shadow: inset 0 0 0 1px var(--line); }

/* ---------- 大きな透かし英字（各セクションの奥行き） ---------- */
.wm { position: absolute; z-index: 0; font-family: var(--serif-display); font-weight: 500; color: rgba(243, 169, 193, 0.09); letter-spacing: 0.04em; line-height: 0.8; white-space: nowrap; pointer-events: none; user-select: none; font-size: clamp(4.5rem, 17vw, 15rem); }

/* ---------- セクション見出し（章のはじまり） ---------- */
.sec-lead { text-align: center; max-width: 720px; margin: 0 auto; padding: clamp(40px, 6vw, 80px) clamp(22px, 5vw, 40px) 0; }
.sec-lead__en { display: block; font-family: var(--serif-en); font-size: 0.72rem; letter-spacing: 0.36em; color: var(--gold); margin-bottom: 14px; }
.sec-lead__title { font-family: var(--serif-jp); font-weight: 500; font-size: clamp(1.2rem, 2.4vw, 1.8rem); letter-spacing: 0.1em; line-height: 1.8; margin: 0; color: var(--charcoal); }

/* ===================================================================== */
@media (max-width: 750px) {
  .sec-split__grid { grid-template-columns: 1fr; gap: 22px; }
  .sec-split--flip .sec-split__media { order: 0; }
  .sec-split__index, .sec-overlap .sec-index { font-size: 3rem; }
  .sec-overlap__media { width: 100%; }
  .sec-overlap__card { width: calc(100% - 26px); margin-top: -44px; margin-left: auto; }
  .sec-overlap--right .sec-overlap__card { margin-left: 0; margin-right: auto; }
  .sec-full { min-height: 72vh; }
  .sec-mosaic { grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(128px, 34vw, 190px); }
  .sec-info { grid-template-columns: 1fr; }
}

/* セーフティ：JS/オブザーバ/アニメが動かない環境でも内容を必ず表示する（reveal-all は失敗時のみ付与） */
html.reveal-all [data-reveal],
html.reveal-all .page-hero__en,
html.reveal-all .page-hero__jp,
html.reveal-all .page-hero__scroll { opacity: 1 !important; transform: none !important; animation: none !important; }
html.reveal-all .reveal-frame > img { transform: none !important; }
html.reveal-all .reveal-frame::after { transform: scaleX(0) !important; }
html.reveal-all *, html.reveal-all *::before, html.reveal-all *::after { animation: none !important; transition: none !important; }
html.reveal-all [data-reveal] { filter: none !important; }

/* リビールに“ふわっとピントが合う”ブラーインを重ねて、上質で唯一無二の質感に */
@media (prefers-reduced-motion: no-preference) {
  .reveal-on [data-reveal] {
    filter: blur(5px);
    transition: opacity 1.1s cubic-bezier(0.22, 0.61, 0.36, 1), transform 1.15s cubic-bezier(0.22, 0.61, 0.36, 1), filter 1s ease;
  }
  .reveal-on [data-reveal].is-in { filter: blur(0); }
}

/* =====================================================================
   磨き込みレイヤー（“日本一”を目指す上質＆ときめきの意匠）
   ===================================================================== */

/* 背景に奥行き（ほのかな光の階調） */
body { background: radial-gradient(150% 95% at 50% -10%, #FBFCFB 0%, var(--cream) 60%) no-repeat, var(--cream); }

/* 画面上部の細い金のスクロール進捗ライン */
.scroll-progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; z-index: 70; background: linear-gradient(90deg, var(--gold-soft), var(--gold-deep)); box-shadow: 0 0 10px rgba(243, 169, 193, 0.5); transition: width 0.12s linear; }

/* ---------- ヒーロー：額装フレーム＋イントロ英字＋洗練スクロール ---------- */
.page-hero { height: min(90vh, 820px); min-height: 480px; }
.page-hero::after { background: linear-gradient(180deg, rgba(17, 23, 19, 0.46), rgba(17, 23, 19, 0.22) 42%, rgba(17, 23, 19, 0.5)); }
.page-hero::before { content: ""; position: absolute; inset: clamp(13px, 2vw, 30px); border: 1px solid rgba(255, 255, 255, 0.38); z-index: 2; pointer-events: none; }
.page-hero__inner { z-index: 3; }
.page-hero__scroll { z-index: 3; }
.page-hero__eyebrow { display: block; font-family: var(--serif-en); font-size: clamp(0.56rem, 1vw, 0.72rem); letter-spacing: 0.5em; color: rgba(255, 255, 255, 0.86); margin: 0 0 18px; padding-left: 0.5em; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); }
.reveal-on .page-hero__eyebrow { opacity: 0; }
.page-hero__en { font-size: clamp(2.4rem, 6vw, 4.6rem); }
.page-hero__scroll { width: 1px; height: 56px; bottom: 30px; background: rgba(255, 255, 255, 0.32); overflow: visible; }
.page-hero__scroll::before { content: "Scroll"; position: absolute; top: -20px; left: 50%; transform: translateX(-50%); font-family: var(--serif-en); font-size: 0.54rem; letter-spacing: 0.26em; color: rgba(255, 255, 255, 0.82); white-space: nowrap; }
.page-hero__scroll::after { content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 42%; background: #fff; }
@media (prefers-reduced-motion: no-preference) {
  .reveal-on .page-hero__eyebrow { animation: phFade 1.2s 0.15s ease forwards; }
  .page-hero__scroll::after { animation: phScrollDot 2.4s cubic-bezier(0.7, 0, 0.3, 1) infinite; }
}
@keyframes phScrollDot { 0% { transform: translateY(-100%); opacity: 0; } 25% { opacity: 1; } 100% { transform: translateY(240%); opacity: 0; } }

/* ---------- ページ導入：章のはじまりの縦ライン＋余白 ---------- */
.page-intro { position: relative; padding-top: clamp(64px, 9vw, 120px); }
.page-intro__eyebrow::before { content: ""; display: block; width: 1px; height: 46px; margin: 0 auto 24px; background: linear-gradient(var(--gold), transparent); }

/* ---------- 余白の格上げ（上質なホワイトスペース） ---------- */
.sec-split { padding: clamp(52px, 8vw, 122px) 0; }
.sec-overlap { padding: clamp(56px, 8vw, 132px) clamp(22px, 5vw, 48px); }
.sec-band { padding: clamp(84px, 13vw, 176px) clamp(22px, 5vw, 48px); }

/* ---------- 金の細線に一度だけ走る光沢 ---------- */
.sec-rule { position: relative; overflow: hidden; }
.sec-rule::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.95), transparent); transform: translateX(-120%); }
@media (prefers-reduced-motion: no-preference) {
  .sec-rule.is-in::after { animation: phSheen 1.5s 0.9s ease forwards; }
}
@keyframes phSheen { to { transform: translateX(120%); } }

/* ---------- フッターナビ：ホバーで金の下線が中央から伸びる ---------- */
.site-footer__nav a { position: relative; }
.site-footer__nav a::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: -4px; height: 1px; background: var(--gold); transition: left 0.35s ease, right 0.35s ease; }
.site-footer__nav a:hover::after { left: 22%; right: 22%; }

/* ---------- 関連カード：ホバーで浮遊＋金の内枠＋ラベル拡張 ---------- */
.related__card { transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.6s ease; }
.related__card::before { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(255, 255, 255, 0.5); opacity: 0; z-index: 2; pointer-events: none; transition: opacity 0.5s ease, inset 0.5s ease; }
.related__card:hover { transform: translateY(-7px); box-shadow: 0 42px 74px -34px rgba(32, 46, 38, 0.6); }
.related__card:hover::before { opacity: 1; inset: 16px; }
.related__label .en { transition: letter-spacing 0.45s ease; }
.related__card:hover .related__label .en { letter-spacing: 0.32em; }

/* ---------- モザイク：ホバーで白の内枠がふわり ---------- */
.sec-mosaic figure { position: relative; }
.sec-mosaic figure::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255, 255, 255, 0.6); opacity: 0; z-index: 1; pointer-events: none; transition: opacity 0.5s ease, inset 0.5s ease; }
.sec-mosaic figure:hover::after { opacity: 1; inset: 14px; }

/* ---------- 大判透かしをやや強めて奥行きを ---------- */
.sec-band .wm { color: rgba(243, 169, 193, 0.1); }

@media (max-width: 750px) {
  .page-hero { height: min(82vh, 640px); }
  .page-hero__eyebrow { letter-spacing: 0.32em; font-size: 0.56rem; }
  .page-hero::before { inset: 11px; }
}

/* =====================================================================
   各ページ下部のフォトギャラリー（4種の異なる意匠）
   ===================================================================== */
.pg { position: relative; padding: clamp(54px, 8vw, 116px) 0 clamp(24px, 4vw, 56px); }
.pg__head { text-align: center; margin-bottom: clamp(28px, 3.6vw, 50px); padding: 0 20px; }
.pg__en { display: block; font-family: var(--serif-display); font-weight: 500; font-size: clamp(1.5rem, 3vw, 2.2rem); letter-spacing: 0.16em; color: var(--gold-deep); }
.pg__jp { display: block; font-family: var(--serif-jp); font-size: 0.76rem; letter-spacing: 0.34em; color: var(--ink); margin-top: 8px; }

/* A. カスケード（段違いmasonry）— チャペル */
.pg-cascade__grid { column-count: 3; column-gap: clamp(10px, 1.4vw, 18px); max-width: 1120px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 44px); }
.pg-cascade__grid figure { margin: 0 0 clamp(10px, 1.4vw, 18px); overflow: hidden; border-radius: 4px; break-inside: avoid; box-shadow: 0 24px 50px -34px rgba(32, 46, 38, 0.45); }
.pg-cascade__grid img { width: 100%; display: block; transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1); }
.pg-cascade__grid figure:hover img { transform: scale(1.05); }

/* B. フィルムストリップ（自動横流し・全幅）— 披露宴 */
.pg-strip { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
.pg-strip__track { display: flex; gap: clamp(12px, 1.5vw, 20px); width: max-content; }
.pg-strip__track figure { flex: 0 0 auto; width: clamp(240px, 32vw, 420px); margin: 0; overflow: hidden; border-radius: 4px; }
.pg-strip__track img { width: 100%; height: clamp(300px, 38vw, 520px); object-fit: cover; display: block; }
@media (prefers-reduced-motion: no-preference) {
  .pg-strip__track { animation: pgMarquee 52s linear infinite; }
  .pg-strip:hover .pg-strip__track { animation-play-state: paused; }
}
@keyframes pgMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* C. タイトグリッド（整然・料理向け）— 料理 */
.pg-grid__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(10px, 1.4vw, 18px); max-width: 1100px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 44px); }
.pg-grid__grid figure { position: relative; margin: 0; overflow: hidden; border-radius: 4px; aspect-ratio: 1 / 1; }
.pg-grid__grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s cubic-bezier(0.22, 0.61, 0.36, 1); }
.pg-grid__grid figure:hover img { transform: scale(1.08); }
.pg-grid__grid figure::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255, 255, 255, 0.6); opacity: 0; transition: opacity 0.5s ease, inset 0.5s ease; }
.pg-grid__grid figure:hover::after { opacity: 1; inset: 13px; }

/* D. ブティック（段違いオフセット・縦長）— アイテム */
.pg-boutique__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 32px); max-width: 1000px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 44px) clamp(30px, 4vw, 48px); }
.pg-boutique__grid figure { margin: 0; overflow: hidden; border-radius: 4px; aspect-ratio: 3 / 4; box-shadow: 0 28px 56px -34px rgba(32, 46, 38, 0.5); }
.pg-boutique__grid figure:nth-child(3n+2) { transform: translateY(36px); }
.pg-boutique__grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s ease; }
.pg-boutique__grid figure:hover img { transform: scale(1.05); }

@media (max-width: 750px) {
  .pg-cascade__grid { column-count: 2; }
  .pg-grid__grid { grid-template-columns: repeat(2, 1fr); }
  .pg-boutique__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .pg-boutique__grid figure:nth-child(3n+2) { transform: none; }
  .pg-boutique__grid figure:nth-child(4n) { transform: translateY(26px); }
  .pg-strip__track img { height: clamp(260px, 62vw, 360px); }
}

/* =====================================================================
   ヘッダーをトップページに合わせる（クリーム半透明バー＋ロゴ画像）
   ===================================================================== */
:root { --header-h: 72px; }
body.replica-amazinggrace, body { }
.site-header { background: rgba(251, 252, 251, 0.92) !important; box-shadow: 0 1px 0 rgba(243, 169, 193, 0.16); backdrop-filter: saturate(120%) blur(6px); -webkit-backdrop-filter: saturate(120%) blur(6px); height: 72px; }
.site-header.is-scrolled { box-shadow: 0 8px 24px -18px rgba(32, 46, 38, 0.55); }
.site-header__logo { display: block; height: clamp(17px, 2vw, 23px); width: auto; }
.site-header__name, .site-header__sub { display: none; }
.site-header__menu-lines i { background: var(--gold-deep) !important; }
.site-header__menu-label { color: var(--gold-deep) !important; }
@media (max-width: 750px) {
  :root { --header-h: 58px; }
  .site-header { height: 58px; }
  .site-header__logo { height: 16px; }
}

/* =====================================================================
   FAQ（よくあるご質問）— details/summary のアコーディオン（JS不要）
   ===================================================================== */
.faq-sec { position: relative; }
.faq { max-width: 860px; margin: 0 auto; padding: clamp(18px, 3vw, 40px) clamp(22px, 5vw, 40px) clamp(50px, 7vw, 90px); }
.faq__item { border-bottom: 1px solid rgba(243, 169, 193, 0.24); }
.faq__item:first-child { border-top: 1px solid rgba(243, 169, 193, 0.24); }
.faq__item > summary { list-style: none; cursor: pointer; display: flex; align-items: flex-start; gap: 16px; padding: clamp(16px, 2vw, 22px) 0; font-family: var(--serif-jp); font-weight: 500; font-size: clamp(0.95rem, 1.4vw, 1.08rem); line-height: 1.6; letter-spacing: 0.04em; color: var(--charcoal); transition: color 0.3s ease; }
.faq__item > summary::-webkit-details-marker { display: none; }
.faq__item > summary::before { content: "Q"; font-family: var(--serif-en); color: var(--gold); font-size: 0.92rem; letter-spacing: 0.1em; flex: 0 0 auto; margin-top: 0.12em; }
.faq__item > summary::after { content: "+"; margin-left: auto; color: var(--gold); font-family: var(--serif-en); font-size: 1.15rem; line-height: 1; flex: 0 0 auto; transition: transform 0.3s ease; }
.faq__item[open] > summary::after { content: "\2212"; }
.faq__item > summary:hover { color: var(--gold-deep); }
.faq__a { position: relative; padding: 0 0 clamp(18px, 2.2vw, 24px) 34px; font-family: var(--sans-jp); font-size: 0.92rem; line-height: 1.95; color: var(--ink); }
.faq__a::before { content: "A"; position: absolute; left: 0; top: 0; font-family: var(--serif-en); color: var(--gold-soft); font-size: 0.92rem; letter-spacing: 0.1em; }
@media (max-width: 750px) {
  .faq__a { padding-left: 28px; }
}

/* =====================================================================
   コンパクトスマホ（iPhone SE/8 等）最適化：文節折り返し＋文字サイズ調整
   ===================================================================== */
/* 文節（｜区切り）を inline-block にして、語の途中や句読点単独での改行を防ぐ */
.ph { display: inline-block; }

@media (max-width: 750px) {
  .page-intro__title { font-size: clamp(1.05rem, 4.6vw, 1.5rem); line-height: 1.85; }
  .sec-band__title { font-size: clamp(1.02rem, 4.7vw, 1.6rem); line-height: 1.85; letter-spacing: 0.05em; }
  .sec-full__title { font-size: clamp(1.1rem, 4.8vw, 1.7rem); line-height: 1.75; }
  .sec-title { font-size: clamp(1.08rem, 4.4vw, 1.5rem); }
  .sec-text, .faq__a, .page-intro__lead { font-size: 0.9rem; }
  .page-hero__jp { letter-spacing: 0.26em; }
  .pg__en { font-size: clamp(1.35rem, 6vw, 1.9rem); }
}

@media (max-width: 400px) {
  .site-header { padding: 0 12px; }
  .site-header__fair { padding: 7px 10px; font-size: 0.64rem; letter-spacing: 0.06em; }
  .site-header__actions { gap: 8px; }
  .page-hero__eyebrow { font-size: 0.5rem; letter-spacing: 0.16em; }
  .page-hero__en { font-size: clamp(2rem, 11vw, 2.6rem); letter-spacing: 0.06em; }
  .page-hero__jp { font-size: 0.82rem; letter-spacing: 0.2em; }
  .sec-band__title { letter-spacing: 0.03em; }
  .page-intro { padding-left: 18px; padding-right: 18px; }
}

/* =====================================================================
   ヘッダーのロゴを上品な小サイズに（トップとの不釣り合いを解消）
   ===================================================================== */
.site-header__logo { height: 16px !important; }
@media (max-width: 750px) { .site-header__logo { height: 14px !important; } }
@media (max-width: 400px) { .site-header__logo { height: 12px !important; } }

/* =====================================================================
   料理ページ専用セクション（実ページ構成を再現）
   ===================================================================== */
/* 章見出し（TRADITION / MENU / SIGNATURE 等） */
.sec-head { text-align: center; max-width: 780px; margin: 0 auto; padding: clamp(52px, 8vw, 116px) clamp(22px, 5vw, 40px) clamp(4px, 1.5vw, 16px); }
.sec-head__rule { display: block; width: 1px; height: 46px; margin: 0 auto 22px; background: linear-gradient(var(--gold), transparent); }
.sec-head__en { display: block; font-family: var(--serif-display); font-weight: 500; font-size: clamp(1.5rem, 3.2vw, 2.4rem); letter-spacing: 0.16em; color: var(--gold-deep); }
.sec-head__jp { display: block; font-family: var(--serif-jp); font-size: 0.8rem; letter-spacing: 0.34em; color: var(--ink); margin-top: 10px; }
.sec-head__lead { font-family: var(--sans-jp); font-size: 0.95rem; line-height: 2; color: var(--ink); margin: 20px auto 0; }

/* TRADITION：三連の縦長ビジュアル */
.triptych { max-width: 1180px; margin: 0 auto; padding: clamp(22px, 3vw, 40px) clamp(22px, 5vw, 44px) clamp(30px, 5vw, 60px); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(12px, 1.6vw, 22px); }
.triptych .reveal-frame { aspect-ratio: 4 / 5; border-radius: 4px; box-shadow: 0 30px 62px -38px rgba(32, 46, 38, 0.55); }

/* SIGNATURE：料理名つきの逸品グリッド */
.dishgrid { max-width: 1120px; margin: 0 auto; padding: clamp(22px, 3vw, 40px) clamp(22px, 5vw, 44px) clamp(50px, 7vw, 96px); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(26px, 3.4vw, 52px) clamp(16px, 2vw, 34px); }
.dish__media { position: relative; aspect-ratio: 1 / 1; border-radius: 4px; overflow: hidden; box-shadow: 0 22px 46px -30px rgba(32, 46, 38, 0.5); }
.dish__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1); }
.dish:hover .dish__media img { transform: scale(1.07); }
.dish__media::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255, 255, 255, 0.6); opacity: 0; transition: opacity 0.5s ease, inset 0.5s ease; }
.dish:hover .dish__media::after { opacity: 1; inset: 13px; }
.dish__en { display: block; font-family: var(--serif-en); font-size: 0.6rem; letter-spacing: 0.26em; color: var(--gold); margin: 16px 0 5px; }
.dish__name { font-family: var(--serif-jp); font-weight: 500; font-size: 1.02rem; letter-spacing: 0.06em; color: var(--charcoal); margin: 0 0 8px; }
.dish__desc { font-family: var(--sans-jp); font-size: 0.82rem; line-height: 1.85; color: var(--ink); margin: 0; }

/* 至福の一杯：ドリンク三種 */
.drinks { max-width: 1000px; margin: 0 auto; padding: clamp(22px, 3vw, 40px) clamp(22px, 5vw, 44px) clamp(50px, 7vw, 96px); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 46px); }
.drink { text-align: center; }
.drink__media { aspect-ratio: 3 / 4; border-radius: 4px; overflow: hidden; box-shadow: 0 26px 54px -34px rgba(32, 42, 36, 0.6); }
.drink__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.drink:hover .drink__media img { transform: scale(1.05); }
.drink__name { font-family: var(--serif-jp); font-weight: 500; font-size: 1rem; letter-spacing: 0.08em; color: var(--charcoal); margin: 16px 0 6px; }
.drink__desc { font-family: var(--sans-jp); font-size: 0.82rem; line-height: 1.85; color: var(--ink); margin: 0; }

@media (max-width: 750px) {
  /* トリプティックは3枚を横並びのまま（縦積みで伸ばさない） */
  .triptych { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .triptych .reveal-frame { aspect-ratio: 3 / 4; }
  .dishgrid { grid-template-columns: repeat(2, 1fr); gap: 26px 14px; }
  /* ドリンクは3杯を横並び（縦積みで冗長にしない） */
  .drinks { grid-template-columns: repeat(3, 1fr); max-width: 100%; gap: 10px; }
  .drink__media { aspect-ratio: 3 / 4; }
  .drink__name { font-size: 0.8rem; margin: 10px 0 4px; }
  .drink__desc { font-size: 0.66rem; line-height: 1.6; }
}

/* =====================================================================
   ヘッダーをトップページと完全一致（最終上書き）
   クリームの縦グラデ／grid／左に黒ロゴ168px／右に金グラデCTA／PCはハンバーガー非表示
   ===================================================================== */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 999;
  display: grid !important; grid-template-columns: 1fr auto; align-items: center;
  height: 64px !important; padding: 13px clamp(18px, 4vw, 41px) !important;
  background: linear-gradient(rgba(251, 252, 251, 0.9) 0%, rgba(251, 252, 251, 0.5) 54%, rgba(251, 252, 251, 0) 100%) !important;
  box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
.site-header.is-scrolled { box-shadow: none !important; }
.site-header__brand { display: flex !important; flex-direction: row !important; align-items: center; justify-content: flex-start !important; }
.site-header__logo { display: block; width: 168px !important; height: auto !important; max-height: 34px; margin: 0 !important; filter: brightness(0); opacity: 0.9; }
.site-header__actions { display: flex; align-items: center; gap: 16px; justify-self: end; }
.site-header__fair {
  display: inline-flex; align-items: center; justify-content: center; height: 38px; padding: 0 18px !important;
  background: #FFFFFF !important;
  border: 1px solid rgba(243, 169, 193, 0.55) !important; border-radius: 0 !important;
  color: #F3A9C1 !important; font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 11.6px !important; letter-spacing: 0.14em !important; text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease;
}
/* ホバーは反転（ピンク地×白文字） */
.site-header__fair:hover {
  background: #F3A9C1 !important; border-color: #F3A9C1 !important; color: #FFFFFF !important;
}
.site-header__menu { display: none !important; }

@media (max-width: 750px) {
  .site-header { height: 58px !important; }
  .site-header__logo { width: 132px !important; }
  .site-header__actions { gap: 12px; }
  .site-header__menu { display: inline-flex !important; }
  /* スマホ右上フェアCTAをTOPと統一：「FAIR予約」小ボタン */
  .site-header__fair {
    height: 30px !important; min-width: 92px; padding: 0 12px !important;
    color: transparent !important; font-size: 0 !important; letter-spacing: 0 !important;
  }
  .site-header__fair::before {
    content: "フェア予約"; color: #F3A9C1;
    font-family: "Cinzel", "Cormorant Infant", "Yu Gothic", sans-serif;
    font-size: 0.8rem; letter-spacing: 0.06em; line-height: 1; white-space: nowrap;
  }
}
@media (max-width: 400px) {
  .site-header__logo { width: 112px !important; }
  .site-header__fair { min-width: 84px; padding: 0 10px !important; }
  .site-header__fair::before { font-size: 0.74rem; }
}

/* =====================================================================
   ヘッダー横並びナビ（各ページへのリンク）— トップと同じ体裁
   ワイド幅で表示、狭い幅ではハンバーガーに切替
   ===================================================================== */
.site-header { display: flex !important; }
.site-header__brand { margin-right: auto; }
.site-header__nav { display: none; align-items: center; margin-right: clamp(18px, 2vw, 40px); }
.site-header__nav a {
  padding: 0 clamp(9px, 0.95vw, 15px);
  font-family: "Cormorant Infant", "Cinzel", serif;
  font-weight: 500; font-size: 12.5px; letter-spacing: 0.1em; line-height: 1;
  text-transform: uppercase; white-space: nowrap; text-decoration: none;
  color: rgba(38, 44, 40, 0.86); transition: color 0.3s ease;
}
.site-header__nav a:not(:last-child) { border-right: 1px solid rgba(88, 95, 97, 0.28); }
.site-header__nav a:hover,
.site-header__nav a.is-current { color: var(--gold-deep); }
/* ハンバーガーはPC・スマホ共通で常時表示（全ページへの入口） */
.site-header__menu { display: inline-flex !important; }
@media (min-width: 1161px) {
  .site-header__nav { display: flex !important; }
}

/* メニュー項目が増えたため、低い画面でもスクロールして全項目に届くように */
.site-menu { overflow-y: auto; }
.site-menu__inner { margin: auto; padding: 72px 0 56px; }
.site-menu__list a { padding: clamp(10px, 1.4vw, 15px) 0; }
.site-menu__list .en { font-size: clamp(14px, 1.3vw, 16px); }
.site-menu__list .jp { font-size: 10px; }

/* =====================================================================
   披露宴会場ページ専用レイアウト（会場セレクター＋左右交互の会場紹介）
   ===================================================================== */
/* 会場セレクター（サムネイル一覧） */
.venuenav { max-width: 1180px; margin: 0 auto; padding: clamp(18px, 3vw, 36px) clamp(20px, 5vw, 44px) clamp(34px, 5vw, 64px); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.4vw, 40px); }
.venuenav__item { display: block; text-align: center; text-decoration: none; }
.venuenav__media { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 3px; box-shadow: 0 20px 44px -30px rgba(32, 46, 38, 0.45); }
.venuenav__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1); }
.venuenav__item:hover .venuenav__media img { transform: scale(1.05); }
.venuenav__jp { font-family: var(--serif-jp); font-size: 0.78rem; letter-spacing: 0.2em; color: var(--charcoal); margin-top: 14px; }
.venuenav__en { font-family: var(--serif-en); font-size: 1rem; letter-spacing: 0.16em; color: var(--gold-deep); margin-top: 4px; }
.venuenav__cap { font-family: var(--sans-jp); font-size: 0.72rem; line-height: 1.6; color: var(--ink); margin-top: 8px; }
.venuenav__chev { display: block; width: 11px; height: 11px; margin: 10px auto 0; border-right: 1px solid var(--gold); border-bottom: 1px solid var(--gold); transform: rotate(45deg); transition: transform 0.35s ease; }
.venuenav__item:hover .venuenav__chev { transform: rotate(45deg) translate(2px, 2px); }

/* 会場紹介（大きな透かし英字＋写真＋テキスト・左右交互） */
.venue { position: relative; overflow: hidden; padding: clamp(40px, 3.6vw, 66px) 0 clamp(52px, 7vw, 100px); scroll-margin-top: 70px; }
.venue--alt { background: var(--cream-light); }
/* 透かし英字：薄い色。上部が写真の上へはみ出し、下半分は写真に重なって隠れる＝上品な透かし */
/* 会場名の透かし：TOP踏襲の大きく淡いCormorant。写真上部のグラデの上に載せて確実に読ませる */
.venue__wm { position: absolute; z-index: 4; top: clamp(-6px, -0.4vw, 4px); font-family: "Cormorant Infant", "Cinzel", serif; font-weight: 500; font-size: clamp(3.2rem, 8vw, 9rem); line-height: 0.8; letter-spacing: 0.09em; text-transform: uppercase; color: rgba(255, 255, 255, 0.78); text-shadow: 0 6px 34px rgba(24, 32, 26, 0.45); white-space: nowrap; pointer-events: none; user-select: none; }
.venue:not(.venue--flip) .venue__wm { left: clamp(8px, 2vw, 30px); text-align: left; }
.venue--flip .venue__wm { right: clamp(8px, 2vw, 30px); text-align: right; }
/* 左右交互・写真は配置側の端まで大きく／テキストは反対側（中央寄せ） */
.venue__inner { position: relative; z-index: 1; width: 100%; display: grid; grid-template-columns: 1.15fr 0.85fr; align-items: center; gap: clamp(24px, 3.4vw, 60px); }
.venue--flip .venue__inner { grid-template-columns: 0.85fr 1.15fr; }
.venue--flip .venue__media { order: 2; }
.venue--flip .venue__body { order: 1; }
.venue__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; box-shadow: 0 40px 82px -50px rgba(32, 46, 38, 0.5); }
.venue__media img { width: 100%; height: 100%; object-fit: cover; }
/* 写真：本文側の端をやわらかく帯の色へ溶かす（TOP同様のかすみ） */
.venue:not(.venue--flip) .venue__media { -webkit-mask-image: linear-gradient(90deg, #000 80%, rgba(0, 0, 0, 0) 100%); mask-image: linear-gradient(90deg, #000 80%, rgba(0, 0, 0, 0) 100%); }
.venue--flip .venue__media { -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 20%); mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 20%); }
/* 上部に淡いかすみのグラデ（透かし文字が上品に読める） */
.venue__media::before { content: ""; position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, rgba(22, 30, 25, 0.42) 0%, rgba(22, 30, 25, 0.1) 26%, rgba(22, 30, 25, 0) 44%); pointer-events: none; }
.venue__body { text-align: center; padding: 0 clamp(22px, 4vw, 64px); }
.venue__en { display: block; font-family: var(--serif-en); font-size: 0.74rem; letter-spacing: 0.3em; color: var(--gold); }
.venue__jp { display: block; font-family: var(--serif-jp); font-weight: 500; font-size: clamp(1.35rem, 2.4vw, 1.9rem); letter-spacing: 0.12em; color: var(--charcoal); margin-top: 10px; }
.venue__meta { display: inline-block; font-family: var(--sans-jp); font-size: 0.8rem; letter-spacing: 0.06em; color: var(--ink); margin: 18px 0 22px; padding-top: 16px; border-top: 1px solid var(--line); }
.venue__text { font-family: var(--sans-jp); font-size: 0.94rem; line-height: 2.05; color: var(--ink); margin: 0 auto; max-width: 32em; }
.venue__more { display: inline-flex; align-items: center; gap: 12px; margin-top: 30px; padding: 13px 30px; border: 1px solid rgba(243, 169, 193, 0.6); background: rgba(251, 252, 251, 0.4); font-family: var(--serif-en); font-size: 0.74rem; letter-spacing: 0.18em; color: var(--gold-deep); text-decoration: none; transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease; }
.venue__more::after { content: "\203A"; font-size: 1.2em; line-height: 1; }
.venue__more:hover { background: var(--gold-deep); border-color: var(--gold-deep); color: #fff; }
/* フルブリード（暗幕）上の白いView More */
.venue__more--light { border-color: rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.08); color: #fff; margin-top: 26px; }
.venue__more--light:hover { background: #fff; border-color: #fff; color: var(--gold-deep); }

/* 詳細ページ：一覧へ戻るリンク */
.backwrap { margin: 26px 0 0; }
.backlink { display: inline-flex; align-items: center; gap: 8px; font-family: var(--serif-jp); font-size: 0.8rem; letter-spacing: 0.14em; color: var(--gold-deep); text-decoration: none; border-bottom: 1px solid rgba(243, 169, 193, 0.4); padding-bottom: 3px; transition: color 0.3s ease, border-color 0.3s ease; }
.backlink:hover { color: var(--gold); border-color: var(--gold); }

@media (max-width: 750px) {
  /* 会場セレクターはスマホでも3枚を横並び（縦に伸ばして離脱を招かない） */
  .venuenav { grid-template-columns: repeat(3, 1fr); max-width: 100%; gap: 8px; padding: clamp(14px, 4vw, 24px) clamp(14px, 4vw, 20px) clamp(24px, 6vw, 40px); }
  .venuenav__media { aspect-ratio: 3 / 4; }
  .venuenav__jp { font-size: 0.66rem; letter-spacing: 0.06em; margin-top: 8px; }
  .venuenav__en { font-size: 0.72rem; letter-spacing: 0.08em; margin-top: 2px; }
  .venuenav__cap { font-size: 0.58rem; line-height: 1.5; margin-top: 5px; }
  .venuenav__chev { width: 8px; height: 8px; margin-top: 7px; }
  .venue { padding-top: clamp(40px, 12vw, 62px); }
  .venue__inner, .venue--flip .venue__inner { grid-template-columns: 1fr; gap: 0; }
  .venue--flip .venue__media { order: 0; }
  .venue--flip .venue__body { order: 0; }
  .venue__media { aspect-ratio: 4 / 3; }
  /* スマホは横マスクが右端を不自然に切るため無効化（かすみは上部グラデと浮きカードで表現） */
  .venue:not(.venue--flip) .venue__media,
  .venue--flip .venue__media { -webkit-mask-image: none; mask-image: none; }
  /* テキストを写真の下端に重ねる“浮きカード”＋左右交互で単調さを解消 */
  .venue__body { position: relative; z-index: 2; width: auto; margin: -48px 20px 0; padding: 30px 24px 32px; background: rgba(252, 253, 252, 0.97); border: 1px solid var(--line); box-shadow: 0 26px 52px -30px rgba(32, 46, 38, 0.38); }
  .venue:not(.venue--flip) .venue__body { margin-right: 40px; }
  .venue--flip .venue__body { margin-left: 40px; }
  .venue__wm { font-size: clamp(3rem, 17vw, 5.4rem); top: clamp(-6px, -1vw, 2px); text-align: inherit; }
  .venue:not(.venue--flip) .venue__wm { left: 12px; right: auto; }
  .venue--flip .venue__wm { right: 12px; left: auto; }
}

/* =====================================================================
   英字フォントをトップページと同じ Cormorant Infant に統一
   ＋ 見出し系は大文字（PARTY / ROSE 等）で上品に（一文字目だけ大文字を解消）
   ===================================================================== */
:root { --serif-en: "Cormorant Infant", "Cinzel", "Times New Roman", serif; }
.page-hero__en,
.venue__en,
.venue__wm,
.sec-head__en,
.venuenav__en,
.pg__en,
.related__en,
.chef__en {
  font-family: "Cormorant Infant", "Cinzel", "Times New Roman", serif !important;
  text-transform: uppercase;
}

/* =====================================================================
   パーティーレポート：実例カードグリッド
   ===================================================================== */
.repo { max-width: 1160px; margin: 0 auto; padding: clamp(18px, 3vw, 40px) clamp(22px, 5vw, 44px) clamp(50px, 7vw, 96px); display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(26px, 3.2vw, 48px) clamp(16px, 2vw, 32px); }
.repo__card { display: block; text-decoration: none; }
.repo__media { position: relative; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 4px; box-shadow: 0 24px 50px -32px rgba(32, 46, 38, 0.5); }
.repo__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s cubic-bezier(0.22, 0.61, 0.36, 1); }
.repo__card:hover .repo__media img { transform: scale(1.06); }
.repo__media::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255, 255, 255, 0.55); opacity: 0; transition: opacity 0.5s ease, inset 0.5s ease; }
.repo__card:hover .repo__media::after { opacity: 1; inset: 13px; }
.repo__season { position: absolute; top: 0; left: 0; z-index: 1; padding: 7px 14px; background: rgba(251, 252, 251, 0.94); font-family: var(--serif-en); font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-deep); }
.repo__title { font-family: var(--serif-jp); font-weight: 500; font-size: 1rem; letter-spacing: 0.05em; line-height: 1.75; color: var(--charcoal); margin: 16px 0 8px; }
.repo__meta { font-family: var(--sans-jp); font-size: 0.76rem; letter-spacing: 0.08em; color: var(--gold-deep); }
.repo__meta span + span::before { content: "／"; margin: 0 6px; color: rgba(243, 169, 193, 0.5); }

/* =====================================================================
   アイテム：ラグジュアリー・アコーディオン（ドレス・和装・フラワー等）
   ===================================================================== */
.acc { max-width: 900px; margin: 0 auto; padding: clamp(14px, 2.4vw, 34px) clamp(22px, 5vw, 40px) clamp(46px, 6vw, 84px); }
.acc__item { border-bottom: 1px solid rgba(243, 169, 193, 0.28); }
.acc__item:first-child { border-top: 1px solid rgba(243, 169, 193, 0.28); }
.acc__item > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: clamp(14px, 2vw, 26px); padding: clamp(18px, 2.4vw, 26px) 4px; transition: background 0.35s ease; }
.acc__item > summary::-webkit-details-marker { display: none; }
.acc__item > summary:hover { background: rgba(243, 169, 193, 0.05); }
.acc__thumb { flex: 0 0 auto; width: clamp(64px, 8vw, 92px); aspect-ratio: 1 / 1; border-radius: 3px; overflow: hidden; box-shadow: 0 12px 26px -16px rgba(32, 46, 38, 0.45); }
.acc__thumb img { width: 100%; height: 100%; object-fit: cover; }
.acc__ttl { flex: 1 1 auto; }
.acc__en { display: block; font-family: var(--serif-en); font-size: 0.64rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); }
.acc__jp { display: block; font-family: var(--serif-jp); font-weight: 500; font-size: clamp(1.02rem, 1.6vw, 1.2rem); letter-spacing: 0.1em; color: var(--charcoal); margin-top: 4px; }
.acc__mark { flex: 0 0 auto; position: relative; width: 15px; height: 15px; margin-right: 6px; }
.acc__mark::before, .acc__mark::after { content: ""; position: absolute; inset: 50% auto auto 0; width: 100%; height: 1px; background: var(--gold-deep); transition: transform 0.35s ease; }
.acc__mark::after { transform: rotate(90deg); }
.acc__item[open] .acc__mark::after { transform: rotate(0deg); }
.acc__panel { padding: 4px 4px clamp(26px, 3.4vw, 40px); }
.acc__lead { font-family: var(--sans-jp); font-size: 0.92rem; line-height: 2; color: var(--ink); margin: 0 0 20px; }
.acc__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(10px, 1.4vw, 18px); }
.acc__grid figure { margin: 0; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 3px; }
.acc__grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s ease; }
.acc__grid figure:hover img { transform: scale(1.06); }

/* =====================================================================
   ステイウエディング：一日の流れ（縦タイムライン）
   ===================================================================== */
.tl { max-width: 760px; margin: 0 auto; padding: clamp(14px, 2.4vw, 34px) clamp(26px, 6vw, 44px) clamp(46px, 6vw, 88px); }
.tl__item { position: relative; padding: 0 0 clamp(34px, 4.4vw, 54px) clamp(30px, 4vw, 46px); }
.tl__item::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: -6px; width: 1px; background: linear-gradient(rgba(243, 169, 193, 0.55), rgba(243, 169, 193, 0.12)); }
.tl__item:last-child::before { display: none; }
.tl__item::after { content: ""; position: absolute; left: 2px; top: 4px; width: 9px; height: 9px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(243, 169, 193, 0.16); }
.tl__time { display: block; font-family: var(--serif-en); font-size: 0.72rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); }
.tl__ttl { font-family: var(--serif-jp); font-weight: 500; font-size: clamp(1.05rem, 1.7vw, 1.25rem); letter-spacing: 0.08em; color: var(--charcoal); margin: 8px 0 10px; }
.tl__txt { font-family: var(--sans-jp); font-size: 0.92rem; line-height: 2; color: var(--ink); margin: 0; }

/* =====================================================================
   メンバーズクラブ：ご案内・特典
   ===================================================================== */
.mem { max-width: 820px; margin: 0 auto; padding: clamp(14px, 2.4vw, 34px) clamp(22px, 5vw, 40px) clamp(46px, 6vw, 84px); }
.mem__row { display: grid; grid-template-columns: 180px 1fr; gap: 14px clamp(18px, 3vw, 40px); padding: clamp(16px, 2vw, 22px) 4px; border-bottom: 1px solid rgba(243, 169, 193, 0.24); }
.mem__row:first-child { border-top: 1px solid rgba(243, 169, 193, 0.24); }
.mem__k { font-family: var(--serif-jp); font-weight: 500; font-size: 0.92rem; letter-spacing: 0.1em; color: var(--gold-deep); }
.mem__v { font-family: var(--sans-jp); font-size: 0.92rem; line-height: 1.95; color: var(--ink); }
@media (max-width: 750px) {
  .repo { grid-template-columns: repeat(2, 1fr); gap: 24px 14px; }
  .acc__grid { grid-template-columns: repeat(2, 1fr); }
  .mem__row { grid-template-columns: 1fr; gap: 4px; }
}

/* =====================================================================
   メニュー＆フッター再設計（12項目でも上品に見えるミニマル構成・最終上書き）
   ===================================================================== */
/* --- ハンバーガーメニュー：左揃え2カラムのエディトリアルグリッド --- */
.site-menu__inner { width: min(700px, 88vw); margin: auto; padding: 58px 0 46px; }
.site-menu__inner::before { content: "Menu"; display: block; font-family: var(--serif-en); font-size: 0.66rem; letter-spacing: 0.44em; text-transform: uppercase; color: var(--gold); margin: 0 0 20px 2px; }
.site-menu__list { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(40px, 7vw, 90px); row-gap: 0; }
.site-menu__list li { border-bottom: 0 !important; }
.site-menu__list a { flex-direction: column; align-items: flex-start !important; gap: 3px; padding: clamp(9px, 1.3vw, 13px) 0 !important; text-align: left; }
.site-menu__list .en { position: relative; font-family: var(--serif-display); font-weight: 500; font-size: clamp(17px, 1.8vw, 21px) !important; letter-spacing: 0.12em; text-transform: uppercase; color: var(--charcoal); transition: color 0.35s ease; }
.site-menu__list .en::after { content: ""; position: absolute; left: 0; bottom: -3px; width: 0; height: 1px; background: var(--gold); transition: width 0.4s ease; }
.site-menu__list .jp { font-size: 9.5px !important; letter-spacing: 0.3em; color: var(--gold-deep); opacity: 0.8; }
.site-menu__list a:hover { letter-spacing: 0 !important; }
.site-menu__list a:hover .en { color: var(--gold-deep); }
.site-menu__list a:hover .en::after { width: 100%; }
.site-menu__list a.is-current { background: none !important; }
.site-menu__list a.is-current .en { color: var(--gold-deep); }
.site-menu__list a.is-current .en::after { width: 100%; }
/* CTAは2×2のスリムボタングリッドに */
.site-menu__cta { flex-direction: row !important; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.site-menu__cta .site-btn { width: auto !important; flex: 1 1 calc(50% - 6px); min-width: 0; padding: 13px 18px; font-size: 0.86rem; justify-content: center; }
.site-menu__cta .site-btn span { display: none; }
/* フッターCTA：4ボタンでも上品に折り返す */
.site-footer__actions { flex-wrap: wrap; max-width: 1040px; margin-left: auto; margin-right: auto; }
.site-footer__actions .site-btn { min-width: 210px; }

/* --- フッター：整然としたグリッド（4列×3行・英字＋和訳を中央揃え） --- */
.site-footer__nav {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 2.6vw, 32px) clamp(10px, 2vw, 26px);
  max-width: 720px;
  margin: 0 auto clamp(30px, 4vw, 46px);
  width: 100%;
}
.site-footer__nav a {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 0 !important;
  border: 0 !important;
  text-decoration: none;
}
.site-footer__nav a + a { border-left: 0 !important; }
.site-footer__nav .en {
  font-family: var(--serif-en); font-size: 11px; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-deep);
  transition: color 0.3s ease;
}
.site-footer__nav .jp {
  display: block; position: relative; font-size: 12px; letter-spacing: 0.12em;
  color: #6E7B72; padding-bottom: 3px; transition: color 0.3s ease;
}
.site-footer__nav .jp::after {
  content: ""; position: absolute; left: 50%; right: 50%; bottom: 0; height: 1px;
  background: var(--gold); transition: left 0.35s ease, right 0.35s ease;
}
.site-footer__nav a:hover .jp::after, .site-footer__nav a.is-current .jp::after { left: 0; right: 0; }
.site-footer__nav a:hover .en, .site-footer__nav a.is-current .en,
.site-footer__nav a:hover .jp, .site-footer__nav a.is-current .jp { color: var(--gold-deep); }
@media (max-width: 750px) {
  .site-menu__inner { width: min(560px, 88vw); }
  .site-menu__list { column-gap: 22px; }
  .site-menu__list .en { font-size: 15px !important; }
  /* CTAもスマホで2列（2×2）にして、縦の長さを抑える */
  .site-menu__cta { flex-direction: row !important; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
  .site-menu__cta .site-btn { flex: 1 1 calc(50% - 5px) !important; min-width: 0; padding: 12px 8px; font-size: 0.78rem; }
  /* iPhone8等でも各ラベルが1行に収まるよう2列に（3列は8文字ラベルが折り返す） */
  .site-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 92vw; gap: 18px 16px; }
  .site-footer__nav .jp { font-size: 11.5px; letter-spacing: 0.08em; white-space: nowrap; }
  .site-footer__nav .en { font-size: 10.5px; }
}

/* =====================================================================
   ★ 世界観アップグレード（各ページのコンセプト表現 / ビジュアル主役 / アニメ）
   --accent は <main class="page-theme" style="--accent:#xxx"> で注入
   ===================================================================== */

/* --- ヒーロー：巨大なコンセプト英字を「タイトルの背後」に敷く（世界観の背景） --- */
.page-hero__word {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  font-family: var(--serif-en);
  font-weight: 500;
  font-size: clamp(3.4rem, 15vw, 13rem);
  line-height: 0.8;
  letter-spacing: 0.04em;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.14);
  text-shadow: 0 2px 40px rgba(0, 0, 0, 0.2);
  pointer-events: none;
}
.page-hero__inner { z-index: 2 !important; }
.page-hero__scroll { z-index: 2 !important; }
/* ヒーローのタグライン（世界観のコピー） */
.page-hero__tagline {
  margin: clamp(16px, 2.4vw, 26px) 0 0;
  font-family: var(--serif-jp);
  font-weight: 500;
  font-size: clamp(0.86rem, 1.5vw, 1.12rem);
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.4);
}
.page-hero__tagline::before {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin: 0 0 clamp(14px, 1.8vw, 22px) auto;
  background: rgba(255, 255, 255, 0.6);
}

/* --- コンセプト・ステートメント：背後に薄い巨大英字 --- */
.page-intro { position: relative; overflow: hidden; }
.page-intro__word {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -46%);
  z-index: 0;
  font-family: var(--serif-en);
  font-weight: 500;
  font-size: clamp(4rem, 16vw, 12rem);
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
  color: color-mix(in srgb, var(--accent, #F3A9C1) 8%, transparent);
  pointer-events: none;
  user-select: none;
}
.page-intro > *:not(.page-intro__word) { position: relative; z-index: 1; }

/* --- アクセント色を各見出しパーツへ連動 --- */
.page-theme .page-intro__eyebrow,
.page-theme .sec-en,
.page-theme .sec-head__en,
.page-theme .pg__en,
.page-theme .venue__en,
.page-theme .dish__en,
.page-theme .related__en,
.page-theme .tl__time,
.page-theme .faircta__eyebrow { color: var(--accent, #F3A9C1); }
.page-theme .page-intro__eyebrow::before { background: linear-gradient(var(--accent, #F3A9C1), transparent); }
.page-theme .sec-rule,
.page-theme .sec-head__rule { background: var(--accent, #F3A9C1); }
.page-theme .repo__season { background: color-mix(in srgb, var(--accent, #F3A9C1) 88%, #000 6%); }

/* =====================================================================
   FAQ手前の「おすすめブライダルフェア」導線（フルブリード＋フロストカード）
   ===================================================================== */
.faircta {
  position: relative;
  margin: clamp(60px, 8vw, 130px) 0 0;
  min-height: clamp(420px, 52vw, 620px);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.faircta__bg {
  position: absolute;
  inset: -8% 0;
  background-size: cover;
  background-position: center 40%;
  z-index: 0;
}
.faircta__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(24, 32, 27, 0.34), rgba(24, 32, 27, 0.46));
}
.faircta__card {
  position: relative;
  z-index: 2;
  width: min(680px, 86vw);
  margin: clamp(30px, 4vw, 60px);
  padding: clamp(34px, 4.4vw, 60px) clamp(26px, 4vw, 56px) clamp(38px, 4.8vw, 64px);
  text-align: center;
  background: rgba(251, 252, 251, 0.16);
  -webkit-backdrop-filter: blur(12px) saturate(1.03);
  backdrop-filter: blur(12px) saturate(1.03);
  border: 1px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 24px 60px rgba(17, 23, 19, 0.28);
}
.faircta__eyebrow {
  display: block;
  font-family: var(--serif-en);
  font-size: clamp(0.62rem, 1vw, 0.76rem);
  letter-spacing: 0.42em;
  text-indent: 0.42em;
  color: #fff;
  margin-bottom: 18px;
}
.faircta__title {
  margin: 0;
  font-family: var(--serif-jp);
  font-weight: 500;
  font-size: clamp(1.3rem, 2.8vw, 2.1rem);
  letter-spacing: 0.12em;
  line-height: 1.7;
  color: #fff;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}
.faircta__title .ph { display: inline-block; }
.faircta__lead {
  margin: clamp(16px, 2vw, 24px) auto 0;
  max-width: 460px;
  font-size: clamp(0.82rem, 1.1vw, 0.94rem);
  letter-spacing: 0.06em;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.92);
}
.faircta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 248px;
  margin-top: clamp(24px, 3vw, 38px);
  padding: 16px 30px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  color: #fff;
  font-family: var(--serif-en);
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: background 0.45s ease, color 0.45s ease, letter-spacing 0.45s ease;
}
.faircta__btn span {
  width: 6px; height: 6px; margin-left: 20px; border-radius: 50%;
  background: currentColor; transition: transform 0.4s ease;
}
.faircta__btn:hover { background: #fff; color: var(--charcoal); letter-spacing: 0.26em; }
.faircta__btn:hover span { transform: translateX(5px); }

/* --- アニメーション --- */
@media (prefers-reduced-motion: no-preference) {
  .reveal-on .page-hero__word { opacity: 0; animation: phWordDrift 2.8s 0.4s cubic-bezier(0.22, 0.61, 0.36, 1) forwards; }
  .reveal-on .page-hero__tagline { opacity: 0; animation: phFade 1.4s 1.15s ease forwards; }
  .page-intro__word { animation: introFloat 9s ease-in-out infinite alternate; }
}
@keyframes phWordDrift { from { opacity: 0; transform: translate(-50%, -50%) scale(1.08); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes introFloat { from { transform: translate(-50%, -46%); } to { transform: translate(-50%, -54%); } }

html.reveal-all .page-hero__word { opacity: 1 !important; transform: translate(-50%, -50%) !important; animation: none !important; }
html.reveal-all .page-hero__tagline { opacity: 1 !important; animation: none !important; }

@media (max-width: 750px) {
  .page-hero__word { font-size: clamp(3rem, 22vw, 7rem); }
  .page-hero__tagline { letter-spacing: 0.18em; }
  .page-intro__word { font-size: clamp(3.4rem, 26vw, 7rem); }
  .faircta { min-height: 78vw; }
  .faircta__btn { min-width: 210px; }
}

/* --- レポートカード＝ブログ詳細へのリンク（Read Moreオーバーレイ＋カップル英字） --- */
.repo__media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(24, 32, 27, 0); transition: background 0.5s ease; }
.repo__card:hover .repo__media::before { background: rgba(24, 32, 27, 0.3); }
.repo__more {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -40%); z-index: 2;
  opacity: 0; font-family: var(--serif-en); font-size: 0.72rem; letter-spacing: 0.28em;
  text-transform: uppercase; color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.5);
  transition: opacity 0.5s ease, transform 0.5s ease; pointer-events: none; white-space: nowrap;
}
.repo__card:hover .repo__more { opacity: 1; transform: translate(-50%, -50%); }
.repo__couple { display: block; font-family: var(--serif-en); font-size: 0.82rem; letter-spacing: 0.22em; color: var(--accent, #F3A9C1); margin: 15px 0 2px; }
.repo__card:hover .repo__title { color: var(--gold-deep); }
.page-theme .repo__season { color: #fff; }

/* --- レポート詳細のメタ情報（日付／人数／スタイル／会場） --- */
.page-meta { font-family: var(--serif-en); font-size: 0.8rem; letter-spacing: 0.14em; color: var(--gold-deep); margin: 4px 0 20px; }

/* =====================================================================
   ★ 選ばれる理由（Reasons）— 交互配色の全幅バンド／編集的キッカー／
     外へ抜ける大透かし番号(parallax)／写真ホバー金枠／1つは全幅シネマ
   ===================================================================== */
.reasons { position: relative; }
.reason { position: relative; overflow: hidden; }
.reason:nth-child(odd) { background: var(--cream-light); }              /* #FBFCFB */
.reason:nth-child(even) { background: #F4F5F4; }                        /* 温かなサンド */
.reason__inner {
  position: relative; max-width: 1160px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  gap: clamp(28px, 5vw, 78px); padding: clamp(52px, 6.5vw, 108px) clamp(22px, 5vw, 48px);
}
.reason--flip .reason__media { order: 2; }
.reason__media {
  position: relative; z-index: 1; aspect-ratio: 5 / 4; overflow: hidden;
  box-shadow: 0 40px 80px -46px rgba(32, 46, 38, 0.5);
}
.reason__media img { width: 100%; height: 100%; object-fit: cover; }
/* 写真：テキスト側の端をやわらかく帯の色へ溶かす（TOP同様のかすみ） */
.reason:not(.reason--flip) .reason__media {
  -webkit-mask-image: linear-gradient(90deg, #000 74%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(90deg, #000 74%, rgba(0, 0, 0, 0) 100%);
}
.reason--flip .reason__media {
  -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 26%);
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 26%);
}
/* 写真ホバー：内側に金の細枠が浮かぶミクロインタラクション */
.reason__frame { position: absolute; inset: 14px; z-index: 2; border: 1px solid rgba(255, 255, 255, 0.62); opacity: 0; pointer-events: none; transition: opacity 0.55s ease, inset 0.55s ease; }
.reason__media:hover .reason__frame { opacity: 1; inset: 19px; }

/* 本文ブロック（テキスト側）。番号は本文内＝写真に重ねず、テキストより背面 */
.reason__body { position: relative; z-index: 2; padding-top: clamp(50px, 6vw, 104px); }
.reason--flip .reason__body { text-align: right; }
/* 編集的キッカー（雑誌的な世界観） */
.reason__kicker { display: block; position: relative; z-index: 1; font-family: var(--serif-en); font-size: 0.64rem; letter-spacing: 0.42em; text-transform: uppercase; color: var(--gold-deep); margin: 0 0 14px; }
.reason__kicker i { font-style: normal; opacity: 0.55; letter-spacing: 0.24em; }
/* 大きく淡いフィルの透かし番号（帯の上端から外へ抜け、scrollで微ドリフト） */
.reason__no {
  position: absolute; z-index: 0; top: clamp(-52px, -3.4vw, -20px); left: -0.09em;
  font-family: var(--serif-en); font-weight: 500; font-size: clamp(7rem, 15vw, 16rem);
  line-height: 0.68; letter-spacing: 0.01em; will-change: transform;
  color: color-mix(in srgb, var(--accent, #F3A9C1) 17%, transparent);
  pointer-events: none; user-select: none;
}
.reason--flip .reason__no { left: auto; right: -0.09em; }
/* 本文テキストはすべて番号より前面（可読性を最優先） */
.reason__en { display: block; position: relative; z-index: 1; font-family: var(--serif-en); font-size: 0.9rem; letter-spacing: 0.28em; color: var(--accent, #F3A9C1); margin: 0 0 12px; }
.reason__ttl { position: relative; z-index: 1; font-family: var(--serif-jp); font-weight: 500; font-size: clamp(1.35rem, 2.5vw, 2.05rem); letter-spacing: 0.08em; line-height: 1.55; margin: 0 0 18px; color: var(--charcoal); }
.reason__rule { display: block; position: relative; z-index: 1; width: 52px; height: 1px; margin: 0 0 20px; background: var(--accent, #F3A9C1); }
.reason--flip .reason__rule { margin-left: auto; }
.reason__txt { position: relative; z-index: 1; font-family: var(--sans-jp); font-size: 0.96rem; line-height: 2; color: var(--ink); margin: 0; }

/* --- リズム変化：全幅シネマティックな1枚（写真の上に白文字＝文字は必ず前面） --- */
.reason--feature { position: relative; min-height: clamp(460px, 64vh, 740px); display: flex; align-items: center; overflow: hidden; color: #fff; }
.reason__fbg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; }
.reason__fveil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(17, 23, 19, 0.64) 0%, rgba(17, 23, 19, 0.34) 52%, rgba(17, 23, 19, 0.12) 100%); }
.reason__no--f { position: absolute; z-index: 2; top: clamp(-30px, -2vw, 12px); right: clamp(10px, 4vw, 60px); left: auto; font-family: var(--serif-en); font-weight: 500; font-size: clamp(7rem, 16vw, 18rem); line-height: 0.68; color: rgba(255, 255, 255, 0.16); pointer-events: none; }
.reason__fbody { position: relative; z-index: 3; width: 100%; max-width: 1160px; margin: 0 auto; padding: 0 clamp(24px, 6vw, 72px); }
.reason--feature .reason__kicker { color: rgba(255, 255, 255, 0.9); }
.reason--feature .reason__en { color: #fff; }
.reason--feature .reason__ttl { color: #fff; max-width: 16em; text-shadow: 0 2px 20px rgba(0, 0, 0, 0.4); }
.reason--feature .reason__rule { background: rgba(255, 255, 255, 0.72); }
.reason--feature .reason__txt { color: rgba(255, 255, 255, 0.92); max-width: 34em; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35); }

@media (max-width: 750px) {
  /* ===== スマホ：各理由を全画面級のシネマティック・パネルに（没入体験） ===== */
  .reason:not(.reason--feature) {
    min-height: 76vh; display: flex; align-items: flex-end; color: #fff;
    background: #23282A; /* 写真ロード前のフォールバック（クリーム/サンドは上書き） */
  }
  /* 写真をパネルの背景としてフルブリード化 */
  .reason:not(.reason--feature) .reason__media {
    position: absolute; inset: 0; z-index: 0; aspect-ratio: auto; box-shadow: none;
    -webkit-mask-image: none; mask-image: none;
  }
  /* 下方向へ濃くなるかすみのスクリム（透かし番号・本文が映える） */
  .reason:not(.reason--feature)::after {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(180deg, rgba(17, 23, 19, 0.14) 0%, rgba(17, 23, 19, 0.12) 30%, rgba(17, 23, 19, 0.5) 62%, rgba(17, 23, 19, 0.8) 100%);
  }
  /* テキストを写真の上にオーバーレイ（文字は必ず前面）。
     inner を static にして、絶対配置の写真は .reason パネル全体を覆う */
  .reason:not(.reason--feature) .reason__inner {
    position: static; z-index: 2; display: block; grid-template-columns: none;
    padding: 0 clamp(24px, 7vw, 42px) clamp(44px, 12vw, 68px); width: 100%;
  }
  .reason:not(.reason--feature) .reason__body { position: relative; z-index: 2; }
  .reason:not(.reason--feature) .reason__body { padding-top: 0; text-align: left; }
  .reason:not(.reason--feature) .reason__kicker { color: rgba(255, 255, 255, 0.9); }
  .reason:not(.reason--feature) .reason__en { color: #fff; }
  .reason:not(.reason--feature) .reason__ttl { color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45); }
  .reason:not(.reason--feature) .reason__rule { background: rgba(255, 255, 255, 0.72); }
  .reason:not(.reason--feature) .reason__txt { color: rgba(255, 255, 255, 0.92); text-shadow: 0 1px 12px rgba(0, 0, 0, 0.4); }
  /* 大きな透かし番号を写真の上・本文のすぐ上に浮かせる */
  .reason:not(.reason--feature) .reason__no {
    top: auto; bottom: calc(100% - 0.14em); left: -0.04em; right: auto;
    font-size: clamp(6rem, 34vw, 11rem); color: rgba(255, 255, 255, 0.22);
  }
  /* リズム：偶数パネルは右寄せ＋番号右で単調さを解消 */
  .reason:nth-child(even):not(.reason--feature) .reason__body { text-align: right; }
  .reason:nth-child(even):not(.reason--feature) .reason__rule { margin-left: auto; }
  .reason:nth-child(even):not(.reason--feature) .reason__no { left: auto; right: -0.04em; }

  /* feature も同じ高さ感でシネマティックに */
  .reason--feature { min-height: 76vh; }
  .reason__no--f { font-size: clamp(5.5rem, 30vw, 9rem); right: 12px; }
}

/* =====================================================================
   ★ 回遊ナビ（全ページ下部・フォトタイル 6×2）
   ===================================================================== */
.navgrid { max-width: 1260px; margin: 0 auto; padding: clamp(54px, 7vw, 116px) clamp(16px, 4vw, 40px) clamp(40px, 6vw, 92px); }
.navgrid__head { text-align: center; margin-bottom: clamp(28px, 3.6vw, 50px); }
.navgrid__title { display: block; font-family: var(--serif-en); font-weight: 500; font-size: clamp(1.4rem, 2.6vw, 2.1rem); letter-spacing: 0.22em; color: var(--gold-deep); }
.navgrid__title::before { content: ""; display: block; width: 42px; height: 1px; margin: 0 auto 16px; background: var(--accent, #F3A9C1); opacity: 0.7; }
.navgrid__sub { display: block; margin-top: 10px; font-size: 0.72rem; letter-spacing: 0.3em; color: var(--ink); opacity: 0.8; }
.navgrid__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: clamp(8px, 1vw, 16px); }
.navgrid__tile { position: relative; display: block; aspect-ratio: 4 / 3.3; overflow: hidden; text-decoration: none; }
.navgrid__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1); }
.navgrid__tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18, 24, 20, 0.28), rgba(18, 24, 20, 0.52)); transition: background 0.5s ease; }
.navgrid__tile:hover img { transform: scale(1.08); }
.navgrid__tile:hover::after { background: linear-gradient(180deg, rgba(18, 24, 20, 0.14), rgba(18, 24, 20, 0.4)); }
.navgrid__label { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; text-align: center; color: #fff; padding: 8px; }
.navgrid__en { font-family: var(--serif-display); font-weight: 500; font-size: clamp(1.05rem, 1.5vw, 1.55rem); letter-spacing: 0.12em; line-height: 1.15; text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45); }
.navgrid__jp { font-size: 0.64rem; letter-spacing: 0.24em; opacity: 0.94; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55); }
.navgrid__label::after { content: ""; width: 0; height: 1px; margin-top: 3px; background: var(--gold-soft, #FDEBF1); transition: width 0.45s ease; }
.navgrid__tile:hover .navgrid__label::after { width: 30px; }
/* 現在地は控えめに沈めてリンク無効化 */
.navgrid__tile--current { pointer-events: none; }
.navgrid__tile--current::after { background: linear-gradient(180deg, rgba(18, 24, 20, 0.52), rgba(18, 24, 20, 0.68)); }
.navgrid__tile--current .navgrid__en { color: var(--gold-soft, #F3A9C1); }
@media (max-width: 1100px) { .navgrid__grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 750px) {
  .navgrid__grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .navgrid__tile { aspect-ratio: 4 / 3; }
  .navgrid__en { font-size: 1.15rem; }
}

/* =====================================================================
   ★ 金の極細ライン・アクセント（各ページのアクセント色に連動）
   ===================================================================== */
/* ①コンセプト文の締めに、下へ伸びる縦の金ヘアライン（次章への“間”） */
.page-intro::after {
  content: ""; display: block; width: 1px; height: clamp(42px, 6vw, 66px);
  margin: clamp(28px, 4vw, 46px) auto 0;
  background: linear-gradient(var(--accent, #F3A9C1), transparent);
}
/* ②ギャラリー／関連の見出し上に、短い金の横ヘアライン */
.pg__head::before, .related__head::before {
  content: ""; display: block; width: 42px; height: 1px; margin: 0 auto 16px;
  background: var(--accent, #F3A9C1); opacity: 0.7;
}
/* ③料理・ドリンクの品名に添える、極細の金アンダーライン */
.dish__name, .drink__name { position: relative; padding-bottom: 12px; }
.dish__name::after, .drink__name::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 24px; height: 1px;
  transform: translateX(-50%); background: var(--accent, #F3A9C1); opacity: 0.55;
}
/* ④フェア導線のアイキャッチ英字の下に、金の横ヘアライン */
.faircta__eyebrow { position: relative; padding-bottom: 14px; }
.faircta__eyebrow::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 40px; height: 1px;
  transform: translateX(-50%); background: rgba(255, 255, 255, 0.6);
}
/* ⑤会場データ等の行間を、金の極細ラインで仕切る */
.mem__row { border-bottom: 1px solid color-mix(in srgb, var(--accent, #F3A9C1) 26%, transparent); }
.mem__row:last-child { border-bottom: 0; }

/* --- スマホ版：ヒーロー写真の下辺を「皿リム帯＋影＋クリーム地＋金線」で織りなす（TOP料理と同じ技法） --- */
.page-hero__curve { display: none; }
@media (max-width: 750px) {
  .page-hero__curve {
    display: block; position: absolute; left: 0; right: 0; bottom: -2px;
    width: 100%; height: 122px; z-index: 4; pointer-events: none;
  }
  .page-hero__curveBand { fill: rgba(255, 255, 255, 0.6); }
  .page-hero__curveShadow { fill: none; stroke: rgba(35, 40, 42, 0.18); stroke-width: 8; }
  /* 塗りは直下のページ背景と同色にしてシーム（横線）を消す */
  .page-hero__curveFill { fill: var(--cream-light); }
  .page-hero__curveLine { fill: none; stroke: var(--accent, #F3A9C1); stroke-width: 1.2; opacity: 0.62; }
  /* スマホでは額装フレームを外す（曲線帯に直線が交差してしまうため） */
  .page-hero::before { display: none; }
  /* 曲線の直下（page-intro上端）を曲線と同色にして境目の線を完全に消す */
  .page-intro { background: linear-gradient(180deg, var(--cream-light) 0, rgba(251, 252, 251, 0) 160px); }
}

/* =====================================================================
   ★ トップページ譲りの「写真×テキスト」意匠
   ①写真の内側の端をクリームへ溶かす（かすみ）②写真をまたぐ巨大な淡い透かし文字
   ===================================================================== */

/* --- スプリット --- */
.sec-split { position: relative; overflow: hidden; }
.sec-split__grid { position: relative; }
.sec-split__body { position: relative; z-index: 3; }

/* 写真：内側（テキスト側）の端をやわらかく背景へ溶かす。額装の硬さをなくす */
.sec-split:not(.sec-split--portrait) .sec-split__media {
  border-radius: 0;
  box-shadow: none;
  -webkit-mask-image: linear-gradient(90deg, #000 72%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(90deg, #000 72%, rgba(0, 0, 0, 0) 100%);
}
.sec-split--flip:not(.sec-split--portrait) .sec-split__media {
  -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 28%);
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 28%);
}
/* うっすらクリームのヴェールを重ねて、より“霞”のやわらかさに */
.sec-split:not(.sec-split--portrait) .sec-split__media::before {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, rgba(244, 245, 244, 0) 55%, rgba(244, 245, 244, 0.5) 100%);
}
.sec-split--flip:not(.sec-split--portrait) .sec-split__media::before {
  background: linear-gradient(90deg, rgba(244, 245, 244, 0.5) 0%, rgba(244, 245, 244, 0) 45%);
}

/* 巨大な淡い透かし文字（写真とテキストの継ぎ目をまたいで奥行きを生む） */
.sec-split__wm {
  position: absolute; z-index: 1; bottom: clamp(-10px, 0.2vw, 8px); left: 50%;
  transform: translateX(-60%);
  font-family: var(--serif-en); font-weight: 500; line-height: 0.76;
  font-size: clamp(3rem, 8.6vw, 8.6rem); letter-spacing: 0.03em; white-space: nowrap;
  color: color-mix(in srgb, var(--accent, #F3A9C1) 32%, transparent);
  pointer-events: none; user-select: none;
}
.sec-split--flip .sec-split__wm { transform: translateX(-40%); }

/* --- オーバーラップ --- */
.sec-overlap { overflow: hidden; }
.sec-overlap__media {
  box-shadow: none;
  -webkit-mask-image: linear-gradient(90deg, #000 74%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(90deg, #000 74%, rgba(0, 0, 0, 0) 100%);
}
.sec-overlap--right .sec-overlap__media {
  -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 26%);
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 26%);
}
.sec-overlap__wm {
  position: absolute; z-index: 1; top: clamp(4px, 1.4vw, 34px);
  font-family: var(--serif-en); font-weight: 500; line-height: 0.8; white-space: nowrap;
  font-size: clamp(3rem, 8vw, 8rem); letter-spacing: 0.03em;
  color: color-mix(in srgb, var(--accent, #F3A9C1) 28%, transparent);
  pointer-events: none; user-select: none;
}
.sec-overlap:not(.sec-overlap--right) .sec-overlap__wm { right: clamp(10px, 4vw, 56px); text-align: right; }
.sec-overlap--right .sec-overlap__wm { left: clamp(10px, 4vw, 56px); }
.sec-overlap__card { position: relative; z-index: 2; }

@media (max-width: 750px) {
  /* スマホは写真を活かし、透かしは控えめに（重なりで読みにくくならないよう） */
  .sec-split:not(.sec-split--portrait) .sec-split__media,
  .sec-split--flip .sec-split__media,
  .sec-overlap__media, .sec-overlap--right .sec-overlap__media {
    -webkit-mask-image: linear-gradient(180deg, #000 78%, rgba(0, 0, 0, 0) 100%);
    mask-image: linear-gradient(180deg, #000 78%, rgba(0, 0, 0, 0) 100%);
  }
  .sec-split__wm { font-size: clamp(2.6rem, 16vw, 5rem); bottom: auto; top: -8px; transform: translateX(-50%); }
  .sec-overlap__wm { font-size: clamp(2.6rem, 16vw, 5rem); }
}

/* ---- 内部リンク（SEO）：パンくず＆FAQ等の文脈リンク ---- */
.breadcrumb {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 6px 8px; margin: 0 auto 20px; position: relative; z-index: 2;
  font-family: var(--serif-en); font-size: 0.72rem; letter-spacing: 0.12em;
}
.breadcrumb a { color: var(--gold-deep); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .3s ease, color .3s ease; }
.breadcrumb a:hover { color: var(--gold); border-bottom-color: var(--gold); }
.breadcrumb__sep { color: var(--gold); opacity: 0.55; }
.breadcrumb__current { color: var(--ink); opacity: 0.68; }
.faq__a .ilink, .page-intro__lead .ilink, .related .ilink, a.ilink {
  color: var(--gold-deep); text-decoration: none;
  border-bottom: 1px solid rgba(243, 169, 193, 0.42);
  transition: color .3s ease, border-color .3s ease;
}
a.ilink:hover { color: var(--gold); border-bottom-color: var(--gold); }

/* スクリーンリーダー/SEO用の視覚的非表示（H1にキーワードを補うため） */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* =====================================================================
   フォトウェディング：撮影ロケーション 3連ギャラリー（2026-07-23追加）
   元ニュース(id=20290)の≪グレイスチャペル≫≪チェルシー広場≫≪邸宅・ガーデン≫を
   TOP/サブページ同系統のトンマナ（写真＋透過ラベル・ホバーでズーム）で提示。
   ===================================================================== */
.photoloc__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 1.4vw, 20px);
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 64px);
  box-sizing: border-box;
}
.photoloc__item {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3.6;
  overflow: hidden;
  border-radius: 2px;
}
.photoloc__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1);
}
.photoloc__item:hover img { transform: scale(1.05); }
.photoloc__item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(40, 48, 43,.58), rgba(40, 48, 43,.06) 55%, transparent);
}
.photoloc__cap {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 0 10px 18px;
  color: #fff;
  text-align: center;
}
.photoloc__en {
  font-family: var(--serif-display);
  font-weight: 500;
  font-size: clamp(1rem, 1.4vw, 1.4rem);
  letter-spacing: 0.1em;
  line-height: 1.15;
  text-shadow: 0 2px 14px rgba(0,0,0,.45);
}
.photoloc__jp {
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  opacity: 0.95;
  text-shadow: 0 1px 10px rgba(0,0,0,.55);
}
@media (max-width: 750px) {
  .photoloc__grid { grid-template-columns: 1fr; gap: 12px; }
  .photoloc__item { aspect-ratio: 16 / 10; }
}
/* =====================================================================
   ヒーロー：eyebrow削除・タイトル右下寄せ・フォント/余白調整（2026-07-23）
   全サブページ共通。レスポンシブも同様（フォントは可変で適正化）。
   ===================================================================== */
.page-hero .page-hero__eyebrow { display: none !important; }
.page-hero .page-hero__inner {
  position: absolute;
  right: clamp(24px, 5vw, 72px);
  bottom: clamp(38px, 6vw, 74px);
  left: auto;
  top: auto;
  z-index: 2;
  padding: 0;
  width: max-content;
  max-width: calc(100% - 40px);
  text-align: right;
}
.page-hero .page-hero__en { font-size: clamp(2rem, 5.2vw, 3.6rem); }
.page-hero .page-hero__jp { margin: 8px 0 0; font-size: clamp(0.8rem, 1.3vw, 0.95rem); }
.page-hero .page-hero__tagline { margin: 8px 0 0; font-size: clamp(0.78rem, 1.3vw, 0.95rem); }

@media (max-width: 750px) {
  .page-hero .page-hero__inner { right: 18px; bottom: 140px; }
  .page-hero .page-hero__en { font-size: clamp(1.7rem, 8vw, 2.3rem); }
  .page-hero .page-hero__jp { margin: 6px 0 0; font-size: clamp(0.74rem, 3.2vw, 0.88rem); }
  .page-hero .page-hero__tagline { margin: 6px 0 0; font-size: clamp(0.72rem, 3vw, 0.88rem); }
}
/* =====================================================================
   PC/SP 改行出し分け（サブページ共通）＋コンセプト本文のSP最適化（2026-07-23）
   br.pc = PCのみ表示 / br.sp = スマホのみ表示
   ===================================================================== */
@media (min-width: 751px) { br.sp { display: none; } }
@media (max-width: 750px) { br.pc { display: none; } }

/* スマホ：指定の改行で各行が1行に収まるよう本文サイズ/字間を調整 */
@media (max-width: 750px) {
  .page-intro__lead { font-size: 3.2vw; letter-spacing: 0.02em; line-height: 2; }
}

/* コンセプト等イントロ幅：PC指定改行を収めるため拡張（2026-07-23） */
.page-intro { max-width: 800px; }


/* コンセプト：貸切邸宅カード幅をPCのみ拡張（指定改行を1行ずつ収めるため／2026-07-23） */
@media (min-width: 751px) {
  .page-concept .sec-overlap__card { width: min(62%, 560px); }
}


/* CONCEPTヒーロー：写真全体を幅に収める（PCは画像比率で全体表示・切り抜きなし。SPは従来の高さを維持／2026-07-23） */
.page-concept .page-hero {
  height: auto;
  min-height: 0;
  aspect-ratio: 5056 / 2844;
}
.page-concept .page-hero__bg {
  animation: none;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
@media (max-width: 750px) {
  .page-concept .page-hero { aspect-ratio: auto; height: min(70vh, 620px); min-height: 420px; }
  .page-concept .page-hero__bg { background-size: cover; }
}


/* サブページ：パッとコネクト フェアパーツ埋め込み（2026-07-23） */
.fair-embed { max-width: 1180px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 64px) clamp(24px, 4vw, 56px); box-sizing: border-box; }
.fair-embed__frame { display: block; width: 100%; min-height: 480px; border: 0; background: transparent; }


/* バンド→フェア見出し間の余白を圧縮（全ページ共通／2026-07-23、2026-07-26に全ページ適用） */
.sec-band:has(+ .sec-head) { padding-bottom: clamp(40px, 5vw, 60px); }
.sec-band + .sec-head { padding-top: clamp(20px, 3vw, 40px); }


/* CHAPEL：02カード幅をPCで少し拡張（指定改行を収めるため／2026-07-23） */
@media (min-width: 751px) {
  .page-chapel .sec-overlap__card { width: min(64%, 600px); }
}


/* CHAPEL：sec-splitのテキスト列をPCで拡張（指定改行を収めるため／2026-07-23） */
@media (min-width: 751px) {
  .page-chapel .sec-split__grid { grid-template-columns: 1fr 1fr; max-width: 1240px; gap: clamp(24px, 2.8vw, 40px); padding: 0 clamp(18px, 3vw, 32px); }
}


/* CHAPEL：スマホで指定改行を各行1行に収める（列幅最大化＋本文を少し縮小／2026-07-23） */
@media (max-width: 750px) {
  .page-chapel .sec-split__grid { padding-left: 14px; padding-right: 14px; }
  .page-chapel .sec-overlap { padding-left: 4px; padding-right: 4px; }
  .page-chapel .sec-overlap__card { width: calc(100% - 2px); padding-left: 12px; padding-right: 12px; }
  .page-chapel .sec-overlap__card .sec-text { letter-spacing: 0; }
  .page-chapel .sec-text { font-size: 12.5px; letter-spacing: 0.005em; }
}

/* CUISINEヒーロー：料理写真を全体表示（縦長画像を切らず料理を見せる・濃色地に馴染ませる／2026-07-23） */
.page-cuisine .page-hero__bg { background-size: cover; background-repeat: no-repeat; background-position: center; }


/* CHAPEL：イントロ本文をスマホで指定改行に収める（余白詰め＋微縮小／2026-07-23） */
@media (max-width: 750px) {
  .page-chapel .page-intro { padding-left: 10px; padding-right: 10px; }
  .page-chapel .page-intro__lead { font-size: 11px; letter-spacing: 0; }
}


/* CUISINE：料理へのこだわり 3枚並び写真＋メモの2列グリッド（2026-07-26） */
.cmt-photos { padding-top: 0; padding-bottom: clamp(20px, 3vw, 40px); }
.cmt-photos__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(8px, 1vw, 16px);
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 clamp(0px, 1vw, 12px);
  box-sizing: border-box;
}
.cmt-photos__item { margin: 0; overflow: hidden; aspect-ratio: 4 / 3; }
.cmt-photos__item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* メモ：左右2列（試食のみ全幅で最下段） */
.mem--grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: clamp(24px, 4vw, 64px);
  max-width: 1180px;
  margin: 0 auto;
  padding-left: clamp(20px, 5vw, 40px);
  padding-right: clamp(20px, 5vw, 40px);
  box-sizing: border-box;
}
.mem--grid .mem__row--full { grid-column: 1 / -1; }

@media (max-width: 750px) {
  .cmt-photos__grid { grid-template-columns: 1fr; gap: 10px; }
  .cmt-photos__item { aspect-ratio: 16 / 10; }
  .mem--grid { grid-template-columns: 1fr; }
}

/* CUISINE：メモ2列グリッドの罫線と試食の中央寄せ（2026-07-26） */
/* 2列レイアウトでは各列の先頭（1番目・2番目の行）に上罫線を付ける */
.mem--grid .mem__row:nth-child(1),
.mem--grid .mem__row:nth-child(2) {
  border-top: 1px solid rgba(243, 169, 193, 0.24);
}
/* 試食（全幅行）は中央寄せ */
.mem--grid .mem__row--full {
  grid-template-columns: 180px minmax(0, max-content);
  justify-content: center;
  border-bottom: 0;
}
@media (max-width: 750px) {
  .mem--grid .mem__row:nth-child(2) { border-top: 0; }
  .mem--grid .mem__row--full { grid-template-columns: 1fr; justify-content: stretch; }
}

/* フェアCTA：上下幅とカードを圧縮（全ページ共通／2026-07-26） */
.faircta {
  margin-top: clamp(40px, 5vw, 80px);
  min-height: clamp(300px, 34vw, 420px);
}
.faircta__card {
  width: min(620px, 88vw);
  margin: clamp(16px, 2vw, 28px);
  padding: clamp(22px, 2.8vw, 38px) clamp(22px, 3.2vw, 44px) clamp(24px, 3vw, 40px);
}
.faircta__title { font-size: clamp(1.18rem, 2.3vw, 1.75rem); line-height: 1.6; }
.faircta__lead { margin-top: clamp(12px, 1.5vw, 18px); font-size: clamp(0.78rem, 1vw, 0.88rem); line-height: 1.8; }
.faircta__btn { margin-top: clamp(16px, 2vw, 26px); padding: 13px 26px; min-width: 220px; }
.faircta__eyebrow { margin-bottom: 12px; padding-bottom: 11px; }

@media (max-width: 750px) {
  .faircta { min-height: 62vw; }
}

/* PARTY：各会場紹介の下に3枚組の写真ブロック（右寄せ配置／2026-07-26） */
.venue-photos {
  position: relative;
  z-index: 2;
  max-width: 1240px;
  margin: clamp(18px, 2.6vw, 36px) auto 0;
  padding: 0 clamp(20px, 5vw, 48px);
  box-sizing: border-box;
}
.venue-photos__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(8px, 1vw, 16px);
  width: min(100%, 980px);
  margin-left: auto; /* 右下寄せ */
}
.venue-photos__item { margin: 0; overflow: hidden; aspect-ratio: 4 / 3; }
.venue-photos__item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1);
}
.venue-photos__item:hover img { transform: scale(1.05); }

@media (max-width: 750px) {
  .venue-photos { padding: 0 18px; }
  .venue-photos__grid { grid-template-columns: 1fr 1fr 1fr; gap: 6px; width: 100%; }
  .venue-photos__item { aspect-ratio: 1 / 1; }
}

/* 会場タイトル下の補足情報（収容人数など）／2026-07-26 */
.sec-meta {
  margin: 10px 0 0;
  font-size: clamp(0.72rem, 0.95vw, 0.82rem);
  letter-spacing: 0.12em;
  line-height: 1.8;
  color: rgba(90, 97, 99, 0.9);
}


/* PARTY：ガーデン→外観見出し間の余白を圧縮（2026-07-26） */
.page-party .sec-split--flip:has(+ .sec-head) { padding-bottom: clamp(24px, 3vw, 40px); }
.page-party .sec-split--flip + .sec-head { padding-top: clamp(20px, 2.6vw, 36px); }

/* PARTY：外観セクション（2026-07-26） */
.exterior { position: relative; max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px) clamp(20px, 3vw, 40px); box-sizing: border-box; }


.exterior__figure { position: relative; z-index: 1; }


.exterior__figure { margin: 0; overflow: hidden; }
.exterior__figure img { width: 100%; height: auto; display: block; }
.exterior__text {
  margin: 0;
  text-align: left;
  font-size: clamp(0.86rem, 1.05vw, 0.96rem);
  line-height: 2.1;
  letter-spacing: 0.05em;
  color: var(--ink);
}

/* PARTY：付帯設備（写真＋英字＋和名＋説明の3列カード）（2026-07-26） */
.facilities { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px) clamp(40px, 5vw, 72px); box-sizing: border-box; }
.facilities__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 3vw, 48px) clamp(20px, 2.6vw, 40px);
}
.facilities__item { margin: 0; }
.facilities__media { margin: 0 0 clamp(14px, 1.6vw, 20px); overflow: hidden; aspect-ratio: 4 / 2.9; }
.facilities__media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1);
}
.facilities__item:hover .facilities__media img { transform: scale(1.05); }
.facilities__en {
  margin: 0;
  font-family: var(--serif-en);
  font-size: clamp(1rem, 1.35vw, 1.24rem);
  letter-spacing: 0.14em;
  line-height: 1.3;
  color: var(--gold-deep, #F3A9C1);
  text-transform: uppercase;
}
.facilities__jp {
  margin: 6px 0 0;
  font-size: clamp(0.74rem, 0.95vw, 0.84rem);
  letter-spacing: 0.14em;
  color: rgba(90, 97, 99, 0.9);
}
.facilities__text {
  margin: clamp(12px, 1.4vw, 16px) 0 0;
  font-size: clamp(0.8rem, 1vw, 0.9rem);
  line-height: 2;
  letter-spacing: 0.03em;
  color: var(--ink);
}

@media (max-width: 750px) {
  .facilities__grid { grid-template-columns: 1fr; gap: 30px; }
  .exterior__text { text-align: left; font-size: 0.84rem; line-height: 1.95; }
}
/* 外観：ガーデン等と同仕様の透かし英字（画像左下） */
.exterior__inner { position: relative; }
/* 画像は左寄せ・一回り小さく（透かし文字を見やすく） */
.exterior__figure { width: min(70%, 860px); margin-left: auto; margin-right: 0; }
.exterior__inner { padding-bottom: clamp(30px, 4vw, 60px); }
@media (max-width: 750px) {
  .exterior__figure { width: 100%; }
}
.exterior__inner .sec-split__wm {
  left: clamp(6px, 1.5vw, 22px);
  transform: none;
  top: clamp(-6px, 0.4vw, 10px);
  bottom: auto;
  z-index: 4; /* 前面に出して文字が埋もれないようにする */
}
/* サブ画像＋本文：写真を左、テキストを右に並べる（PC/SP共通） */
.exterior__row {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center; /* テキストをサブ画像の中間位置に */
  gap: clamp(18px, 3vw, 48px);
  margin-top: clamp(-40px, -3vw, -16px); /* メイン画像に少し重ねる */
  position: relative;
  z-index: 3;
}
.exterior__sub {
  margin: 0;
  overflow: hidden;
  box-shadow: 0 18px 44px -26px rgba(32, 46, 38, 0.42);
}
.exterior__sub img { width: 100%; height: auto; display: block; }
/* 画像の左端をフェードさせ、背面の透かし文字を透けて見せる */
.exterior__figure {
  position: relative;
  z-index: 2;
  -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgb(0,0,0) 28%);
  mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgb(0,0,0) 28%);
}

/* PARTY：スマホ時の透かし位置調整（2026-07-26）
   01(Rose)・04(Garden) は上へ、03(Sophie) は画像右上へ */
@media (max-width: 750px) {
  /* 01 Rose / 04 Garden：02 Kings と同じく画像の上部に重ねる */
  .page-party .sec-split .sec-split__wm {
    bottom: auto;
    top: clamp(4px, 1.4vw, 34px);
    z-index: 2;
  }
  /* 03 Sophie：画像の右上に配置 */
  .page-party .sec-split__wm--sophie {
    left: auto;
    right: clamp(4px, 2vw, 18px);
    top: clamp(4px, 1.4vw, 34px);
    bottom: auto;
    transform: none;
    z-index: 2;
  }
}

@media (max-width: 750px) {
  /* サブ画像を小さく左に、本文を右側に左揃えで並べる */
  .exterior__row {
    grid-template-columns: 38% 1fr;
    align-items: start; /* 上揃えでテキストが画像に重ならないように */
    margin-top: 10px;
    gap: 12px;
  }
  .exterior__sub { align-self: start; }
  .exterior__text { text-align: left; font-size: 0.78rem; line-height: 1.85; }
}


/* 外観の透かしは2行表示（Amazing / grace）／2026-07-26 */
.exterior__inner .sec-split__wm { white-space: normal; text-align: left; line-height: 0.9; }


/* =====================================================================
   白×グレー×グリーン：透明感・抜け感の強化（2026-07-28）
   白地を基調に、余白とシースルー（半透明＋ブラー）で軽さを出す
   ===================================================================== */
/* 全体の地色を白寄りに */
body { background: #FBFCFB; }

/* セクション間の帯：ごく淡いグレーで段差をつくらない */
.sec-band { background: linear-gradient(180deg, #FBFCFB, #F4F5F4); }

/* 見出し英字：グリーンの抜け感 */
.sec-head__en, .page-intro__eyebrow { color: #F3A9C1; }
.sec-head__rule { background: rgba(243, 169, 193, 0.45); }

/* カード類：白のシースルー（背景がうっすら透ける） */
.sec-overlap__card {
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: blur(10px) saturate(1.02);
  backdrop-filter: blur(10px) saturate(1.02);
  border: 1px solid rgba(243, 169, 193, 0.16);
  box-shadow: 0 30px 64px -44px rgba(32, 46, 38, 0.26);
}

/* CTAボタン：白ベース＋グリーンの細罫（ホバーでグリーン塗り） */
.venue__more, .faircta__btn {
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.faircta__btn:hover { background: rgba(243, 169, 193, 0.92); border-color: #F3A9C1; color: #fff; }

/* FAQ・メモ行の罫線をグリーン寄りの淡色に */
.mem__row, .faq__item { border-color: rgba(243, 169, 193, 0.18); }

/* 透かし英字：グリーンをごく淡く（抜け感） */
.sec-split__wm, .sec-overlap__wm, .page-intro__word, .page-hero__word {
  color: color-mix(in srgb, #F3A9C1 22%, transparent);
}

/* =====================================================================
   ヘッダーナビ：英字の下に日本語ラベルを小さく表示（2026-07-28）
   ===================================================================== */
.site-header__nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  line-height: 1.1;
}
.site-header__nav a .en {
  font-family: "Cormorant Infant", "Cinzel", serif;
  font-weight: 500;
  font-size: 12.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
}
.site-header__nav a .jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 9px;
  letter-spacing: 0.06em;
  line-height: 1;
  color: rgba(74, 80, 82, 0.72);
  transition: color 0.3s ease;
}
.site-header__nav a:hover .jp,
.site-header__nav a.is-current .jp { color: #F3A9C1; }

/* =====================================================================
   スマホ用 固定追尾CTAバー（SPのみ表示／2026-07-28）
   白のシースルー地＋グリーンのアイコンで、サイトのトンマナに合わせる
   ===================================================================== */
.sp-fixbar { display: none; }

@media (max-width: 750px) {
  .sp-fixbar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    background: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: blur(12px) saturate(1.02);
    backdrop-filter: blur(12px) saturate(1.02);
    border-top: 1px solid rgba(243, 169, 193, 0.22);
    box-shadow: 0 -6px 24px -14px rgba(32, 46, 38, 0.28);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .sp-fixbar__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 9px 2px 8px;
    text-decoration: none;
    color: #F3A9C1;
    -webkit-tap-highlight-color: transparent;
  }
  .sp-fixbar__item:not(:last-child) {
    border-right: 1px solid rgba(243, 169, 193, 0.16);
  }
  .sp-fixbar__icon {
    display: block;
    width: 21px;
    height: 21px;
    color: #F3A9C1;
  }
  .sp-fixbar__icon svg { width: 100%; height: 100%; display: block; }
  .sp-fixbar__label {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 9.5px;
    letter-spacing: 0.02em;
    line-height: 1.2;
    white-space: nowrap;
  }
  .sp-fixbar__item:active { background: rgba(243, 169, 193, 0.08); }

  /* 固定バーに隠れないようページ下端に余白を確保 */
  body { padding-bottom: 62px; }
  .site-footer { padding-bottom: 18px; }
}

/* =====================================================================
   ハンバーガーメニュー：カテゴリー見出し＋MENU文字の拡大（2026-07-28）
   ===================================================================== */
/* パネル内の見出し「Menu」を読みやすいサイズに */
.site-menu__inner::before {
  font-size: 1.05rem !important;
  letter-spacing: 0.34em !important;
  color: #F3A9C1 !important;
  margin-bottom: 26px !important;
}
/* ヘッダーのハンバーガー横「menu」ラベル */
.site-header__menu-label { font-size: 0.78rem !important; letter-spacing: 0.2em !important; }

/* カテゴリー見出し（婚礼／宴会／会社／その他） */
.site-menu__list .site-menu__cat {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 22px 0 6px;
  padding: 0 0 7px;
  border-bottom: 1px solid rgba(243, 169, 193, 0.42) !important;
}
.site-menu__list .site-menu__cat:first-child { margin-top: 0; }
.site-menu__cat-jp {
  font-family: var(--serif-jp);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.2em;
  color: #F3A9C1;
}
.site-menu__cat-en {
  font-family: var(--serif-en);
  font-size: 9.5px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(243, 169, 193, 0.72);
}

@media (max-width: 750px) {
  .site-menu__inner::before { font-size: 0.95rem !important; margin-bottom: 20px !important; }
  .site-menu__list .site-menu__cat { margin: 18px 0 4px; }
  .site-menu__cat-jp { font-size: 14px; }
  .site-menu__cat-en { font-size: 9px; }
}

/* =====================================================================
   メニューパネル下部：固定追尾バーと重ならないよう余白を確保（SP／2026-07-28）
   ===================================================================== */
@media (max-width: 750px) {
  /* パネル内の最下部（CTAボタン群）が固定バーに隠れないようにする */
  .site-menu__inner {
    padding-bottom: calc(84px + env(safe-area-inset-bottom)) !important;
  }
  .site-menu__cta { margin-bottom: 8px; }
}

/* =====================================================================
   サブページのフェアパーツ：両サイドの見切れを解消（2026-08-18）
   ===================================================================== */
.fair-embed {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  overflow: visible;
}

/* =====================================================================
   ハンバーガーメニュー：3列化（スクロール量を削減／2026-08-18）
   ===================================================================== */
.site-menu__list {
  grid-template-columns: repeat(3, 1fr) !important;
  column-gap: clamp(20px, 3vw, 44px) !important;
}
.site-menu__inner { width: min(980px, 92vw) !important; }
/* カテゴリー見出しは3列すべてにまたぐ */
.site-menu__list .site-menu__cat { grid-column: 1 / -1; }

@media (max-width: 750px) {
  .site-menu__list {
    grid-template-columns: repeat(3, 1fr) !important;
    column-gap: 10px !important;
  }
  .site-menu__inner { width: 94vw !important; }
  /* 3列でも収まるよう文字サイズを微調整 */
  .site-menu__list .en { font-size: 12px !important; letter-spacing: 0.06em; }
  .site-menu__list .jp { font-size: 8.5px !important; letter-spacing: 0.12em; }
  .site-menu__list a { padding: 8px 0 !important; }
}

/* =====================================================================
   フッター：Googleマップ＋店舗情報（左マップ／右テキスト・縦幅コンパクト）
   2026-08-18
   ===================================================================== */
.site-footer__access {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(22px, 3vw, 48px);
  max-width: 1140px;
  margin: clamp(26px, 3.4vw, 44px) auto 0;
  padding: clamp(22px, 3vw, 34px) clamp(18px, 4vw, 40px) 0;
  box-sizing: border-box;
  border-top: 1px solid rgba(243, 169, 193, 0.18);
  text-align: left;
}
.site-footer__map {
  position: relative;
  height: clamp(210px, 21vw, 290px); /* 2まわり大きく */
  overflow: hidden;
  background: #EDEFEE;
}
.site-footer__map iframe { display: block; width: 100%; height: 100%; }

.site-footer__info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
}
.site-footer__info-name {
  margin: 0 0 14px;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(1.02rem, 1.25vw, 1.18rem);
  letter-spacing: 0.1em;
  color: #23282A;
  text-align: left;
}
.site-footer__info-dl {
  display: grid;
  grid-template-columns: 5.2em 1fr;
  gap: 8px 16px;
  margin: 0;
  width: 100%;
  font-size: clamp(0.8rem, 0.95vw, 0.88rem);
  line-height: 1.85;
  color: #4A5052;
  text-align: left;
}
.site-footer__info-dl dt {
  color: #F3A9C1;
  letter-spacing: 0.1em;
  text-align: left;
  white-space: nowrap;
}
.site-footer__info-dl dd { margin: 0; text-align: left; }
.site-footer__info-dl a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(243, 169, 193,0.4); }
.site-footer__info-dl a:hover { color: #F3A9C1; }

.site-footer__info-more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  align-self: flex-start;
  margin-top: 12px;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: clamp(0.72rem, 0.86vw, 0.8rem);
  letter-spacing: 0.1em;
  color: #F3A9C1;
  text-decoration: none;
}
.site-footer__info-more span {
  width: 5px; height: 5px; border-radius: 50%;
  background: #F3A9C1; transition: transform 0.35s ease;
}
.site-footer__info-more:hover span { transform: translateX(4px); }

@media (max-width: 750px) {
  .site-footer__access {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 18px 0;
    margin-top: 22px;
  }
  .site-footer__map { height: 150px; }
  .site-footer__info-dl { grid-template-columns: 4.2em 1fr; font-size: 0.7rem; }
}

/* =====================================================================
   ハンバーガーメニュー：CTA下のバナー（中央揃え／2026-08-19）
   ===================================================================== */
.site-menu__banner {
  margin: clamp(20px, 2.6vw, 32px) auto 0;
  text-align: center;
}
.site-menu__banner a {
  display: inline-block;
  max-width: min(420px, 100%);
  line-height: 0;
  transition: opacity 0.35s ease;
}
.site-menu__banner a:hover { opacity: 0.82; }
.site-menu__banner img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 750px) {
  .site-menu__banner { margin-top: 18px; }
  .site-menu__banner a { max-width: min(320px, 100%); }
}

/* =====================================================================
   フッター店舗情報：フォントをフッターメニューと統一＋右寄せ調整（2026-08-19）
   ===================================================================== */
.site-footer__access {
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr) !important;
  gap: clamp(30px, 4.5vw, 72px) !important; /* 情報側をもう少し右へ */
}
.site-footer__info { padding-left: clamp(0px, 2vw, 28px); }
.site-footer__info-name {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif !important;
  font-size: 13px !important;
  letter-spacing: 0.12em !important;
}
.site-footer__info-dl,
.site-footer__info-dl dt,
.site-footer__info-dl dd {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif !important;
  font-size: 12px !important;   /* フッターメニューの日本語と同サイズ */
  letter-spacing: 0.12em !important;
  line-height: 1.9 !important;
}
.site-footer__info-more {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
}

/* ハンバーガーメニューのバナー：PCは一回り大きく（SPは下のメディアクエリで維持） */
.site-menu__banner a { max-width: min(420px, 100%) !important; }

@media (max-width: 750px) {
  .site-footer__info { padding-left: 0; }
  .site-footer__info-dl,
  .site-footer__info-dl dt,
  .site-footer__info-dl dd { font-size: 11px !important; }
  .site-menu__banner a { max-width: min(300px, 100%) !important; }
}

/* ヘッダーのフェア予約ボタン：ナビが増えても2行に折り返さない */
.site-header__actions { flex: none !important; }
.site-header__fair {
  white-space: nowrap !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: max-content !important;
}
.site-header__nav { min-width: 0; }

/* ナビが11項目になったため、1400px未満では字間・余白を詰めて1列に収める */
@media (min-width: 1161px) and (max-width: 1400px) {
  .site-header { padding-left: 22px !important; padding-right: 22px !important; }
  .site-header__nav { margin-right: 14px !important; }
  .site-header__nav a { padding: 0 7px !important; }
  .site-header__nav a .en { font-size: 11.4px !important; letter-spacing: 0.05em !important; }
  .site-header__nav a .jp { font-size: 8.4px !important; letter-spacing: 0.02em !important; }
  .site-header__fair { padding: 0 13px !important; font-size: 11px !important; letter-spacing: 0.08em !important; }
  .site-header__actions { gap: 12px !important; }
}

/* レポート一覧：リード文の下〜FIND見出しまでの余白を詰める
   （旧リード文セクション削除に伴い、間隔が空きすぎるため） */
.page-report .page-intro { padding-bottom: clamp(6px, 1.2vw, 14px); }
.page-report .page-intro::after { margin-top: clamp(20px, 2.8vw, 32px); height: clamp(34px, 4.6vw, 50px); }
.page-report .sec-head { padding-top: clamp(18px, 2.6vw, 34px); }

/* 全サブページ共通：ヒーロー画像とパンくずの間の余白を詰める */
.page-intro { padding-top: clamp(36px, 5vw, 66px); }

/* レポート一覧のバンド見出し：「人生で一番感動する結婚式。」(.page-intro__title) と
   同じ文字サイズに揃える。PC・SPどちらも同じ clamp 値を使用（太さは既存の 500 のまま） */
.page-report .sec-band__title { font-size: clamp(1.25rem, 2.6vw, 1.9rem); }
@media (max-width: 750px) {
  .page-report .sec-band__title { font-size: clamp(1.05rem, 4.6vw, 1.5rem); }
}

/* スマホ：フッターの店舗情報とマップを縦並びにする（情報が上／マップが下）
   ※ 上位で grid-template-columns に !important があるため打ち消す */
@media (max-width: 750px) {
  .site-footer__access {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    align-items: start;
  }
  .site-footer__info { order: 1; padding-left: 0 !important; }
  .site-footer__map  { order: 2; height: 170px; }
}

/* レポート一覧のリード文：スマホで1行に収める（フォントサイズは変更しない）
   字間を詰め、左右に少しはみ出させて必要幅を確保する。
   368px未満の狭い端末では収まらないため、折り返しを許容してはみ出しを防ぐ */
@media (max-width: 750px) {
  .page-report .page-intro__lead {
    letter-spacing: 0;
    margin-left: -8px;
    margin-right: -8px;
  }
}
@media (min-width: 368px) and (max-width: 750px) {
  .page-report .page-intro__lead { white-space: nowrap; }
}

/* ハンバーガーメニュー：カタカナを大きくし、英字との間隔を詰める
   見た目の間隔は gap だけでなく行間（line-height）の余白も効いているため両方調整。
   英字の下線（.en::after）は既定で枠外 -3px に出てカタカナに重なるため、
   枠内側へ上げてから 4px の逃げを確保する */
.site-menu__list a { gap: 3px !important; }
.site-menu__list .en { line-height: 1.15 !important; }
.site-menu__list .en::after { bottom: 1px !important; }
.site-menu__list .jp {
  font-size: 12px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.22em;
}
@media (max-width: 750px) {
  .site-menu__list .jp { font-size: 10.5px !important; letter-spacing: 0.1em; }
}

/* PCのみ表示するインライン要素（ハンバーガーメニューの中黒など）
   スマホでは br.sp で改行するため中黒を隠す */
.pconly { display: inline; }
@media (max-width: 750px) { .pconly { display: none; } }

/* =====================================================================
   ヘッダー／ハンバーガーメニュー：文字色をグレー系に統一
   （CTAボタン「フェア予約」はボタンのためグリーンのまま）
   ===================================================================== */
/* ヘッダー横並びナビ */
.site-header__nav a { color: #4A5052 !important; }
.site-header__nav a .jp { color: rgba(74, 80, 82, 0.72) !important; }
.site-header__nav a:hover,
.site-header__nav a.is-current { color: #23282A !important; }
.site-header__nav a:hover .jp,
.site-header__nav a.is-current .jp { color: #23282A !important; }

/* パネル内見出し「Menu」／ハンバーガー横の menu ラベル */
.site-menu__inner::before { color: #6E7B72 !important; }
.site-header__menu-label { color: #6E7B72 !important; }

/* カテゴリー見出し（婚礼／宴会／会社／その他） */
.site-menu__cat-jp { color: #3A403C !important; }
.site-menu__cat-en { color: rgba(74, 80, 82, 0.66) !important; }
.site-menu__list .site-menu__cat { border-bottom-color: rgba(35, 40, 42, 0.16) !important; }

/* メニュー項目（英字＋カタカナ） */
.site-menu__list .en { color: #3A403C !important; }
.site-menu__list .jp { color: #6E7B72 !important; opacity: 1 !important; }
.site-menu__list a:hover .en,
.site-menu__list a.is-current .en { color: #23282A !important; }
.site-menu__list .en::after { background: #F3A9C1 !important; }

/* =====================================================================
   ハンバーガーメニュー：MENU見出しの拡大とCTAボタンの文字サイズ調整
   ===================================================================== */
/* ① 見出し「Menu」を2サイズ大きく（1.05rem → 1.45rem） */
.site-menu__inner::before { font-size: 1.45rem !important; }

/* ⑦ CTAボタンの文字が小さいのはPCのみ。スマホは現状維持 */
@media (min-width: 751px) {
  .site-menu__cta .site-btn {
    font-size: 1rem !important;
    padding: 15px 20px !important;
    letter-spacing: 0.08em;
  }
}

@media (max-width: 750px) {
  /* 見出しはスマホも合わせて拡大（0.95rem → 1.25rem） */
  .site-menu__inner::before { font-size: 1.25rem !important; }
}

/* =====================================================================
   ハンバーガーメニュー：MENU見出し／CTAボタン／上部余白の調整（2026-08-28）
   ===================================================================== */
/* 見出し「Menu」をメニュー名（21px）より一回り大きく。上に余白を足して位置を下げる */
.site-menu__inner::before {
  font-size: 1.75rem !important;
  margin-top: 26px !important;
  margin-bottom: 30px !important;
}
/* パネル上部の余白も少し広げる */
.site-menu__inner { padding-top: 78px !important; }

/* CTAボタン：ボタンの大きさは元のまま、文字だけ 21px から2サイズ小さく（16px） */
@media (min-width: 751px) {
  .site-menu__cta .site-btn {
    font-size: 16px !important;
    padding: 13px 18px !important;
    letter-spacing: 0.08em;
  }
}

@media (max-width: 750px) {
  .site-menu__inner::before { font-size: 1.45rem !important; margin-top: 16px !important; margin-bottom: 22px !important; }
  .site-menu__inner { padding-top: 56px !important; }
  /* スマホのCTAは指摘なしのため従来サイズを維持 */
  .site-menu__cta .site-btn { font-size: 0.78rem !important; padding: 12px 8px !important; letter-spacing: normal; }
}

/* フッターのCTAボタン：フッターメニューの文字サイズ（12px／SP 11px）に揃える */
.site-footer__actions .site-btn { font-size: 12px !important; letter-spacing: 0.12em !important; }
@media (max-width: 750px) {
  .site-footer__actions .site-btn { font-size: 11px !important; }
}

/* ハンバーガーメニューを開いている間だけ、ヘッダー帯を少しグレーがかった色にする
   （通常時のヘッダーはヒーロー画像に重なるため、従来の淡い背景のまま） */
body.menu-open .site-header {
  background: linear-gradient(180deg, rgba(233, 236, 234, 0.98) 0%, rgba(238, 241, 239, 0.96) 100%) !important;
  box-shadow: 0 1px 0 rgba(35, 40, 42, 0.10) !important;
}
/* 背景が少し濃くなる分、薄かった menu ラベルを読みやすい濃さに */
body.menu-open .site-header__menu-label { color: #56605A !important; }

/* ハンバーガーメニュー：スマホで「アメイジンググレイス／カフェ」の2行に固定する
   （この項目だけ自動折り返しを止め、<br class="sp"> の位置でのみ改行させる）
   ※ 他の項目は従来どおり自動で折り返す */
@media (max-width: 750px) {
  .site-menu__list a[href*="patisserie.amazinggrace"] .jp { white-space: nowrap; }
}

/* =====================================================================
   参考サイト（sweet-concept）のボタン配色を踏襲（2026-09-10）
   TOPの「◯◯について見る」系リンクは、白地＋黒枠・黒文字／
   マウスオンで黒背景＋白文字に反転する。
   ===================================================================== */
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link,
body.replica-amazinggrace .rxbuilt .rxig__more a,
body.replica-amazinggrace .o-lead-information .c-btn a {
  color: #23282A !important;
  border-color: #23282A !important;
  background: #fff !important;
}
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link span,
body.replica-amazinggrace .rxbuilt .rxig__more a span {
  background: #23282A !important;
}
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link:hover,
body.replica-amazinggrace .rxbuilt .rxig__more a:hover,
body.replica-amazinggrace .o-lead-information .c-btn a:hover {
  color: #fff !important;
  border-color: #23282A !important;
  background: #23282A !important;
}
body.replica-amazinggrace .rxbuilt .rxfeature--ceremony .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxfeature--party .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxshowcase--cuisine .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxshowcase--stay .rxlead-link:hover span,
body.replica-amazinggrace .rxbuilt .rxig__more a:hover span {
  background: #fff !important;
}

/* ハンバーガーメニューのCTA：フッターのCTAと同じ配色に揃える
   （白地＋ピンクの細枠・ピンク文字／2026-09-15） */
.site-menu__cta .site-btn {
  color: #F3A9C1 !important;
  border-color: rgba(243, 169, 193, 0.72) !important;
  background: rgba(251, 252, 251, 0.5) !important;
}
.site-menu__cta .site-btn span { background: #F3A9C1 !important; }
.site-menu__cta .site-btn:hover {
  color: #fff !important;
  border-color: #F3A9C1 !important;
  background: #F3A9C1 !important;
}
.site-menu__cta .site-btn:hover span { background: #fff !important; }

/* ⑤ スマホ下部の固定ナビ：文字・アイコンを黒系にして視認性を上げる（2026-09-11） */
@media (max-width: 750px) {
  .sp-fixbar__item { color: #23282A !important; }
  .sp-fixbar__icon { color: #23282A !important; }
  .sp-fixbar__label { color: #23282A !important; }
  .sp-fixbar__item:not(:last-child) { border-right-color: rgba(35, 40, 42, 0.14) !important; }
  .sp-fixbar__item:active { background: rgba(35, 40, 42, 0.06) !important; }
}

/* ⑦ 付帯設備が2件になったため、3列固定をやめて中央寄せの2列に（2026-09-11） */
.facilities__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 750px) {
  .facilities__grid { grid-template-columns: 1fr; max-width: 420px; }
}

/* =====================================================================
   ハンバーガーメニュー：参考サイト（シャルマンシーナ東京）の仕様を踏襲
   ・メニュー名は日本語のみ（英字は非表示）
   ・1項目＝「日本語名 ＋ 右端の丸い矢印ボタン」＋下に細い区切り線
   ・ジャンル見出し（婚礼／宴会／会社概要／その他）はアクセント色で見出しと分かる体裁
   （2026-09-11）
   ===================================================================== */
/* 英字は不要 */
.site-menu__list a .en { display: none !important; }

/* 1項目を横並び（名前＋右端の丸ボタン）に */
.site-menu__list li {
  border-bottom: 1px solid rgba(35, 40, 42, 0.12) !important;
}
.site-menu__list .site-menu__cat { border-bottom: 0 !important; }
.site-menu__list a {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 15px 2px !important;
  text-align: left !important;
}
.site-menu__list a .jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 14px !important;
  letter-spacing: 0.08em !important;
  line-height: 1.5 !important;
  color: #23282A !important;
  opacity: 1 !important;
}
/* 右端の丸い矢印ボタン */
.site-menu__list a::after {
  content: "" !important;
  flex: 0 0 auto !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background-color: #F3A9C1 !important;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 12px 12px !important;
  transition: transform 0.3s ease, background-color 0.3s ease !important;
}
.site-menu__list a:hover::after { transform: translateX(3px) !important; }
.site-menu__list a:hover .jp { color: #23282A !important; }
/* 下線アニメーションは行区切り線と競合するため無効化 */
.site-menu__list .en::after { display: none !important; }

/* ジャンル見出し：アクセント色で「項目」だと分かる体裁に */
.site-menu__list .site-menu__cat {
  display: flex !important;
  align-items: baseline !important;
  gap: 10px !important;
  margin: 26px 0 2px !important;
  padding: 0 0 6px !important;
}
.site-menu__cat-jp {
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  color: #E38BA9 !important;
}
.site-menu__cat-en {
  font-family: "Cinzel", "Cormorant Infant", serif !important;
  font-size: 10px !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: #E38BA9 !important;
  opacity: 0.85 !important;
}

@media (max-width: 750px) {
  .site-menu__list a { padding: 12px 2px !important; gap: 8px !important; }
  .site-menu__list a .jp { font-size: 12.5px !important; letter-spacing: 0.04em !important; }
  .site-menu__list a::after { width: 18px !important; height: 18px !important; background-size: 10px 10px !important; }
  .site-menu__cat-jp { font-size: 13.5px !important; }
  .site-menu__cat-en { font-size: 9px !important; }
}

/* =====================================================================
   ハンバーガーメニュー：参考サイトの「右寄せパネル」仕様を踏襲（2026-09-11）
   ・全画面ではなく、画面右側に幅 約52%（最大760px）のパネルで表示
   ・背景は白。パネル外は薄い暗幕にして背後のページが見える
   ・パネルが狭くなる分、列数を3→2に、文字サイズも小さくする
   ===================================================================== */
.site-menu {
  justify-content: flex-end !important;
  align-items: stretch !important;
  background: rgba(35, 40, 42, 0.32) !important;
  transform: none !important;
}
.site-menu__inner {
  width: min(760px, 92vw) !important;
  max-width: none !important;
  height: 100% !important;
  margin: 0 !important;
  overflow-y: auto !important;
  background: #fff !important;
  box-shadow: -18px 0 48px -28px rgba(35, 40, 42, 0.45) !important;
  padding: 56px clamp(24px, 3.4vw, 46px) 48px !important;
  box-sizing: border-box !important;
}
/* パネル幅に合わせて2列に */
.site-menu__list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: clamp(20px, 2.6vw, 40px) !important;
}
/* 文字は参考サイトに合わせて小さく（項目13px） */
.site-menu__inner::before { font-size: 1.2rem !important; margin-top: 0 !important; margin-bottom: 22px !important; }
.site-menu__list a { padding: 12px 2px !important; }
.site-menu__list a .jp { font-size: 13px !important; letter-spacing: 0.06em !important; }
.site-menu__list a::after { width: 19px !important; height: 19px !important; background-size: 11px 11px !important; }
.site-menu__cat-jp { font-size: 14px !important; }
.site-menu__cat-en { font-size: 9.5px !important; }
.site-menu__list .site-menu__cat { margin: 20px 0 2px !important; }
/* CTA・バナーもパネル幅に収める */
.site-menu__cta { width: 100% !important; }
.site-menu__cta .site-btn { font-size: 13px !important; padding: 11px 14px !important; }
.site-menu__banner a { max-width: min(300px, 100%) !important; }

@media (max-width: 750px) {
  /* スマホは画面が狭いため従来どおり全面表示に戻す */
  .site-menu { background: linear-gradient(180deg, #FBFCFB 0%, #F4F5F4 100%) !important; justify-content: center !important; }
  .site-menu__inner {
    width: 94vw !important;
    height: auto !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 56px 0 48px !important;
  }
  .site-menu__list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .site-menu__cta .site-btn { font-size: 0.78rem !important; padding: 12px 8px !important; }
}

/* =====================================================================
   ハンバーガーメニュー：スマホ表示を参考サイトに合わせる（2026-09-11）
   ・2列（従来3列）／白背景の全面パネル／項目12px・行の高さゆったり
   また、見出し「Menu」の位置が上に寄りすぎていたためPC・SPとも下げる。
   ===================================================================== */
/* 見出し「Menu」の位置：上の余白を広げて詰まりを解消 */
.site-menu__inner { padding-top: 92px !important; }
.site-menu__inner::before { margin-top: 8px !important; margin-bottom: 28px !important; }

@media (max-width: 750px) {
  .site-menu__inner { padding-top: 84px !important; padding-left: 20px !important; padding-right: 20px !important; }
  .site-menu__inner::before { margin-top: 4px !important; margin-bottom: 20px !important; }

  /* 2列に */
  .site-menu__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 18px !important;
  }
  /* 参考サイトに合わせた項目の体裁 */
  .site-menu__list a { padding: 16px 2px !important; gap: 10px !important; }
  .site-menu__list a .jp { font-size: 12px !important; line-height: 1.6 !important; letter-spacing: 0.04em !important; }
  .site-menu__list a::after { width: 20px !important; height: 20px !important; background-size: 11px 11px !important; }
  .site-menu__cat-jp { font-size: 13.5px !important; }
  .site-menu__cat-en { font-size: 9px !important; }
  .site-menu__list .site-menu__cat { margin: 22px 0 2px !important; }
}

/* ハンバーガーメニューのCTAボタン4つ：スマホで文字が小さいため、
   メニュー項目（12px）と同じサイズに揃える（2026-09-11） */
@media (max-width: 750px) {
  .site-menu__cta .site-btn {
    font-size: 12px !important;
    letter-spacing: 0.06em !important;
    padding: 13px 10px !important;
  }
}

/* ハンバーガーメニュー：折り返しの有無で行の高さが変わらないよう統一（2026-09-15）
   2行ぶんの高さをあらかじめ確保し、文字と矢印は上下中央に置く。
   これにより左右の列で区切り線の位置が揃う。 */
@media (max-width: 750px) {
  .site-menu__list a {
    /* 参考サイトと同じ行の高さ(53px)。上下の余白を詰めることで、
       2行の項目（19.2px×2＝38.4px）もこの高さに収まり、全行が揃う */
    min-height: 53px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    align-items: center !important;
  }
  .site-menu__list a .jp {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .site-menu__list a::after { align-self: center !important; }
}
/* PCも同様に、折り返しても行の高さを揃える */
@media (min-width: 751px) {
  .site-menu__list a {
    min-height: 56px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    align-items: center !important;
  }
  .site-menu__list a .jp { flex: 1 1 auto !important; min-width: 0 !important; }
}

/* フッターの店舗情報：見出し（住所・TELなど）とリンクが薄くて読みづらいため、
   本文と同じ黒系の文字色に揃える（2026-09-18） */
.site-footer__info-dl dt { color: #23282A !important; }
.site-footer__info-dl { color: #23282A !important; }
.site-footer__info-dl a { color: #23282A !important; border-bottom-color: rgba(35, 40, 42, 0.32) !important; }
.site-footer__info-more { color: #23282A !important; }
.site-footer__info-more span { background: #23282A !important; }

/* SP：.sec-overlap 配下の3枚組サムネイルだけが親セクションの左右パディング分
   狭くなり、他会場（.sec-split 配下）より小さく見えるため、その分を打ち消して
   横幅をそろえる。打ち消し量は .sec-overlap の左右パディングと同じ値。 */
@media (max-width: 750px) {
  .sec-overlap > .venue-photos {
    margin-left: calc(-1 * clamp(22px, 5vw, 48px));
    margin-right: calc(-1 * clamp(22px, 5vw, 48px));
  }
}

/* お知らせ一覧：画面幅が一覧の最大幅（900px）を下回ると記事行が画面端に
   貼り付いて見えるため、他要素（パンくず等）と同じ18pxの余白をつける。
   news.php 内のインラインstyleより後勝ちにするため .subpage を付けて詳細度を上げる。 */
@media (max-width: 940px) {
  .subpage .news-item {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* ===========================================================================
   iOS Safari の文字自動拡大（text autosizing）を無効にする。
   iPhoneのSafariは、指定どおりの大きさではなく独自の判断で文字を拡大する
   ことがある。TOPページの透かし文字「GRACE」が実機だけ画面からはみ出して
   切れていたのはこれが原因。PC・Androidでの見え方は変わらない。
   =========================================================================== */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
