@charset "UTF-8";
/*
 * LLMO Global Styles - UI Enhancement
 * エスポワール LLMO改修ページ向けグローバルスタイル
 * 既存の style.css / custom.css は変更しない
 */

/* ==========================================================
   1. フェードインアニメーション（LLMOページのみ対象）
   ========================================================== */
@keyframes llmo-fadein {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.page-id-15426 .contentBoxM,
.page-id-15427 .contentBoxM,
.page-id-9279  .contentBoxM,
.page-id-42    .contentBoxM,
.page-id-71    .contentBoxM,
.page-id-80    .contentBoxM {
  animation: llmo-fadein 0.55s ease-out both;
}

/* ==========================================================
   2. パンくず〜コンテンツ間のスペース
   ========================================================== */
.page-id-15426 .contentBoxM,
.page-id-15427 .contentBoxM,
.page-id-9279  .contentBoxM,
.page-id-42    .contentBoxM,
.page-id-71    .contentBoxM,
.page-id-80    .contentBoxM {
  padding-top: 36px;
}

/* ==========================================================
   3. H2見出しのデコレーション
   ========================================================== */
.contentBoxM h2.title-2::after {
  content: "";
  display: block;
  width: 2.5em;
  height: 2px;
  margin-top: 10px;
  background: linear-gradient(to right, #c9a96e 65%, transparent);
  opacity: 0.85;
}

/* ==========================================================
   4. スペーシング修正（ページ固有 <style> より高い詳細度で上書き）
   ========================================================== */

/* H2 → コンテンツ間 */
.page-id-15426 .contentBoxM h2.title-2,
.page-id-15427 .contentBoxM h2.title-2,
.page-id-9279  .contentBoxM h2.title-2,
.page-id-42    .contentBoxM h2.title-2,
.page-id-71    .contentBoxM h2.title-2,
.page-id-80    .contentBoxM h2.title-2 {
  margin-bottom: 24px;
}

.page-id-15426 .contentBoxM h2.title-2::after,
.page-id-15427 .contentBoxM h2.title-2::after,
.page-id-9279  .contentBoxM h2.title-2::after,
.page-id-42    .contentBoxM h2.title-2::after,
.page-id-71    .contentBoxM h2.title-2::after,
.page-id-80    .contentBoxM h2.title-2::after {
  margin-top: 10px;
}

/* H3 */
.page-id-15426 .contentBoxM h3.title-3,
.page-id-15427 .contentBoxM h3.title-3,
.page-id-9279  .contentBoxM h3.title-3,
.page-id-42    .contentBoxM h3.title-3,
.page-id-71    .contentBoxM h3.title-3,
.page-id-80    .contentBoxM h3.title-3 {
  margin-top: 32px;
  margin-bottom: 16px;
}

/* カード・グリッド内のH3はtop margin不要 */
.page-id-15426 .contentBoxM .llmo-style-card h3.title-3,
.page-id-15427 .contentBoxM .llmo-style-card h3.title-3,
.page-id-15427 .contentBoxM .llmo-episode h3.title-3,
.page-id-71    .contentBoxM .llmo-cuisine-4col h3.title-3,
.page-id-80    .contentBoxM .llmo-role-grid h3.title-3 {
  margin-top: 0;
  margin-bottom: 12px;
}

/* 本文段落 */
.page-id-15426 .contentBoxM > p,
.page-id-15427 .contentBoxM > p,
.page-id-9279  .contentBoxM > p,
.page-id-42    .contentBoxM > p,
.page-id-71    .contentBoxM > p,
.page-id-80    .contentBoxM > p {
  line-height: 1.9;
  margin-bottom: 1.2em;
}

/* リスト */
.page-id-15426 .contentBoxM ul,
.page-id-15427 .contentBoxM ul,
.page-id-9279  .contentBoxM ul,
.page-id-42    .contentBoxM ul,
.page-id-71    .contentBoxM ul,
.page-id-80    .contentBoxM ul {
  margin-top: 12px;
  margin-bottom: 28px;
  line-height: 1.85;
}

.page-id-15426 .contentBoxM li,
.page-id-15427 .contentBoxM li,
.page-id-9279  .contentBoxM li,
.page-id-42    .contentBoxM li,
.page-id-71    .contentBoxM li,
.page-id-80    .contentBoxM li {
  margin-bottom: 10px;
}

/* テーブル前後 */
.page-id-15426 .contentBoxM .table-scroll,
.page-id-42    .contentBoxM .table-scroll {
  margin-bottom: 28px;
}

/* ==========================================================
   5. details/summary（QAアコーディオン）
   ========================================================== */
.contentBoxM details summary {
  cursor: pointer;
  list-style: none;
}
.contentBoxM details summary::-webkit-details-marker {
  display: none;
}

/* ==========================================================
   6. 費用ページ：カードボックスを廃止してセパレータ区切りに
   ========================================================== */
.page-id-15427 .contentBoxM .llmo-style-card {
  background: none;
  border: none;
  padding: 0;
  box-shadow: none;
  border-top: 2px solid #ede8e2;
  padding-top: 36px;
  margin-bottom: 44px;
}

.page-id-15427 .contentBoxM .llmo-style-card:first-of-type {
  border-top: none;
  padding-top: 0;
}

/* ==========================================================
   7. 見学前に確認されやすい項目：チェックリストをロウ形式に
   ========================================================== */
.page-id-15426 .contentBoxM .llmo-checklist {
  border: 1px solid #e5e0d8;
  border-radius: 4px;
  overflow: hidden;
  padding: 0;
  margin: 16px 0 36px;
}

.page-id-15426 .contentBoxM .llmo-checklist li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px 14px 48px;
  background: #faf8f5;
  border-bottom: 1px solid #e5e0d8;
  margin-bottom: 0;
  line-height: 1.6;
  transition: none;
  position: relative;
}

.page-id-15426 .contentBoxM .llmo-checklist li:last-child {
  border-bottom: none;
}

.page-id-15426 .contentBoxM .llmo-checklist li::before {
  position: absolute;
  left: 18px;
  color: #c9a96e;
  font-size: 1.1em;
}

.page-id-15426 .contentBoxM .llmo-checklist li .text-link {
  white-space: nowrap;
  margin-left: 12px;
  font-size: 0.88em;
  font-weight: bold;
}

/* ==========================================================
   8. 詳しく知りたい方へ：関連リンクに金アクセント＋アウトラインボタン化
   ========================================================== */
.page-id-15426 .contentBoxM .llmo-related-links li {
  border-left: 3px solid #c9a96e;
  padding: 18px 0 18px 18px;
  transition: none;
}

.page-id-15426 .contentBoxM .llmo-related-links li:first-child {
  border-top: 1px solid #eee;
}

.page-id-15426 .contentBoxM .llmo-related-links li strong {
  display: block;
  font-size: 1.02em;
  color: #2c2c2c;
  margin-bottom: 3px;
}

/* アウトラインボタン化（→矢印はHTMLから削除済み） */
.page-id-15426 .contentBoxM .llmo-related-links a.text-link {
  display: inline-block;
  padding: 4px 14px;
  border: 1px solid #c9a96e;
  border-radius: 3px;
  color: #8b6a35;
  font-size: 0.85em;
  font-weight: bold;
  text-decoration: none;
  margin-top: 6px;
}

.page-id-15426 .contentBoxM .llmo-related-links a.text-link:hover {
  background: #c9a96e;
  color: #fff;
  opacity: 1;
}

/* ==========================================================
   9. 見学・相談の予約：3カラムグリッド（PC）+ ボタン下寄せ
   ========================================================== */
.llmo-cta-grid {
  display: flex;
  gap: 16px;
  margin: 12px 0 24px;
}

/* カードを flex-column にしてボタンを常に下部に配置 */
.llmo-cta-grid .llmo-cta-box {
  flex: 1;
  margin: 0;
  display: flex;
  flex-direction: column;
}

/* 説明文を伸ばしてボタンを押し下げる */
.llmo-cta-grid .llmo-cta-box p:first-child {
  flex: 1;
}

/* ボタンを全幅ブロックに・崩れ防止 */
.llmo-cta-box .btn-cta {
  display: block;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
  padding: 14px 12px;
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  letter-spacing: 0.06em;
  line-height: 1.45;
}

/* ==========================================================
   10. Cuisine/Staff：ul>li の金アクセント装飾
   ========================================================== */
.page-id-71 .contentBoxM > ul,
.page-id-80 .contentBoxM > ul {
  list-style: none;
  padding-left: 0;
}

.page-id-71 .contentBoxM > ul > li,
.page-id-80 .contentBoxM > ul > li {
  padding: 8px 0 8px 24px;
  position: relative;
  border-bottom: 1px solid #ede8e2;
  margin-bottom: 0;
}

.page-id-71 .contentBoxM > ul > li:last-child,
.page-id-80 .contentBoxM > ul > li:last-child {
  border-bottom: none;
}

.page-id-71 .contentBoxM > ul > li::before,
.page-id-80 .contentBoxM > ul > li::before {
  content: "▸";
  position: absolute;
  left: 0;
  color: #c9a96e;
  font-weight: bold;
  font-size: 1.05em;
}

/* ==========================================================
   11. Cuisine：テキストリンクをピル型に（リンク感を抑制）
   ========================================================== */
.page-id-71 .contentBoxM a.text-link {
  display: inline-block;
  padding: 4px 14px;
  border: 1px solid #c9a96e;
  border-radius: 20px;
  color: #8b6a35;
  font-size: 0.85em;
  text-decoration: none;
  margin: 2px 4px 2px 0;
}

.page-id-71 .contentBoxM a.text-link:hover {
  background: #c9a96e;
  color: #fff;
  opacity: 1;
}

/* ==========================================================
   12. Cuisine：「料理で大切にしていること」カードのベージュ背景を削除
   ========================================================== */
.page-id-71 .contentBoxM .llmo-cuisine-4col > div {
  background: transparent;
}

/* ==========================================================
   13. Access：車・電車セクションを画像左＋テキスト右のflex 1:1比率に
   ========================================================== */
@media only screen and (min-width: 1024px) {
  /* --- 車セクション：テーマの -60px オフセットを解除して 1:1 に --- */
  .page-id-42 .PageAccess .Access__rootMapCarInfo {
    margin-left: 0;
    gap: 40px;
  }
  .page-id-42 .PageAccess .Access__rootMapCarImg {
    flex: 1;
    width: 0;          /* flex-basis をリセット */
    min-width: 0;
    height: auto;
    margin: 0;
  }
  .page-id-42 .PageAccess .Access__rootMapCarInfoText {
    flex: 1;
    min-width: 0;
    margin-left: 0;
  }

  /* --- 電車セクション：flex + 1:1 比率 --- */
  .page-id-42 .PageAccess .Access__rootMapTrainInfo {
    display: flex;
    align-items: flex-start;
    margin-top: 20px;
    margin-left: 0;
    gap: 40px;
  }
  .page-id-42 .PageAccess .Access__rootMapTrainImg {
    flex: 1;
    width: 0;          /* flex-basis をリセット */
    min-width: 0;
    margin-top: 0;
    margin-left: 0;
  }
  .page-id-42 .PageAccess .Access__rootMapTrainInfoText {
    flex: 1;
    min-width: 0;
    margin-left: 0;
    text-align: left;
  }
}

/* ==========================================================
   14. Access：visual sections 内の H3・ul スタイル
   ========================================================== */
.page-id-42 .PageAccess .Access__rootMapCarInfoText h3.title-3,
.page-id-42 .PageAccess .Access__rootMapTrainInfoText h3.title-3 {
  margin-top: 24px;
  margin-bottom: 8px;
  font-size: 0.95em;
}

.page-id-42 .PageAccess .Access__rootMapCarInfoText h3.title-3:first-child,
.page-id-42 .PageAccess .Access__rootMapTrainInfoText h3.title-3:first-child {
  margin-top: 0;
}

.page-id-42 .PageAccess .Access__rootMapCarInfoText ul,
.page-id-42 .PageAccess .Access__rootMapTrainInfoText ul {
  margin-top: 6px;
  margin-bottom: 12px;
  padding-left: 0;
  list-style: none;
}

.page-id-42 .PageAccess .Access__rootMapCarInfoText ul li,
.page-id-42 .PageAccess .Access__rootMapTrainInfoText ul li {
  padding-left: 16px;
  position: relative;
  margin-bottom: 4px;
  line-height: 1.7;
}

.page-id-42 .PageAccess .Access__rootMapCarInfoText ul li::before,
.page-id-42 .PageAccess .Access__rootMapTrainInfoText ul li::before {
  content: "▸";
  position: absolute;
  left: 0;
  color: #c9a96e;
  font-size: 0.85em;
}

.page-id-42 .PageAccess .Access__rootMapTrainInfoText .llmo-access-table {
  font-size: 0.9em;
  margin-bottom: 16px;
}

.page-id-42 .PageAccess .Access__rootMapTrainInfoText .llmo-access-note {
  font-size: 0.85em;
  color: #666;
  line-height: 1.6;
  margin-top: 6px;
}

/* ==========================================================
   15. モバイル対応
   ========================================================== */
@media only screen and (max-width: 767px) {
  .llmo-cta-grid {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-id-15426 .contentBoxM,
  .page-id-15427 .contentBoxM,
  .page-id-9279  .contentBoxM,
  .page-id-42    .contentBoxM,
  .page-id-71    .contentBoxM,
  .page-id-80    .contentBoxM {
    animation: none;
  }
}

/* ==========================================================
   GNav PC版コンパクト化 + デザイン調整
   ========================================================== */
@media only screen and (min-width: 768px) {
  /* 上部余白：ロゴ行（約100px）+ 余白分 */
  .GNav__menu { padding-top: 130px !important; }

  /* 「大切にしていること」リンク＋SNSエリアを非表示（ImportantNavと重複） */
  .GNav__menuImportant { display: none !important; }

  /* 全体フォントサイズ：15px */
  .GNav__menu a,
  .GNav__menu p { font-size: 15px !important; }
  .GNav__menuLink.-cta.-top { font-size: 1.5rem !important; }

  /* menuPages：結婚式(2fr) ＋ 右エリア(1fr) の2列、右エリアは2段 */
  .GNav__menuPages {
    display: grid !important;
    grid-template-columns: 2fr 1fr !important;
    grid-template-rows: auto auto !important;
    gap: 0 32px !important;
    margin-top: 0 !important;
    padding: 32px 32px 0 !important;
    align-items: start !important;
  }

  /* layer1 リストはblock・フル幅 */
  .GNav__menuPagesList.-layer1 {
    display: block !important;
    padding-left: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* 結婚式 ul：col1・両段にまたがる */
  .GNav__menuPages > .GNav__menuPagesList.-layer1:nth-child(1) {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
  }

  /* ギャラリー ul：col2・row1 ＋ 縦罫線 */
  .GNav__menuPages > .GNav__menuPagesList.-layer1:nth-child(2) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    border-left: 1px solid rgba(255, 255, 255, 0.2) !important;
    padding-left: 12px !important;
    margin-left: -12px !important;
  }

  /* その他サービス ul：col2・row2 ＋ 縦罫線・上マージン */
  .GNav__menuPages > .GNav__menuPagesList.-layer1:nth-child(3) {
    grid-column: 2 !important;
    grid-row: 2 !important;
    border-left: 1px solid rgba(255, 255, 255, 0.2) !important;
    padding-left: 12px !important;
    margin-left: -12px !important;
    margin-top: 14px !important;
  }

  /* セクション見出し（結婚式・ギャラリー・その他サービス）：17px・太字 */
  .GNav__menuPagesListItem.-layer1 > .GNav__menuLink.-pages {
    font-size: 17px !important;
    font-weight: bold !important;
    margin-bottom: 10px !important;
    display: block !important;
    padding: 0 0 4px !important;
  }

  /* その他サービス配下の各項目（.hideSp）：結婚式のlayer2と同スタイル */
  .GNav__menuPagesListItem.-layer1.hideSp > .GNav__menuLink.-pages {
    font-size: 15px !important;
    font-weight: normal !important;
    margin-bottom: 0 !important;
    padding: 5px 0 !important;
    line-height: 1.55 !important;
  }

  /* layer1 同士のmargin */
  .GNav__menuPagesListItem.-layer1 + .GNav__menuPagesListItem.-layer1 {
    margin-top: 0 !important;
  }

  /* 結婚式 layer2 を2列グリッドに */
  .GNav__menuPagesListItem.-wedding .GNav__menuPagesList.-layer2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 20px !important;
    margin-top: 6px !important;
  }

  /* ギャラリー ul の layer2 は縦1列 */
  .GNav__menuPages > .GNav__menuPagesList.-layer1:nth-child(2) .GNav__menuPagesList.-layer2 {
    display: block !important;
    grid-template-columns: unset !important;
  }

  /* layer2 アイテム間のmargin */
  .GNav__menuPagesListItem.-layer2 + .GNav__menuPagesListItem.-layer2 {
    margin-top: 0 !important;
  }

  /* layer3 非表示 */
  .GNav__menuPagesList.-layer3 { display: none !important; }

  /* ページリンク縦リズム */
  .GNav__menuLink.-pages {
    display: block !important;
    padding: 5px 0 !important;
    line-height: 1.55 !important;
  }

  /* ギャラリー layer2（ul.-layer2）内の li.-layer1（20周年など）を通常スタイルに */
  .GNav__menuPages > .GNav__menuPagesList.-layer1:nth-child(2) .GNav__menuPagesList.-layer2 > .GNav__menuPagesListItem.-layer1 > .GNav__menuLink.-pages {
    font-size: 15px !important;
    font-weight: normal !important;
    margin-bottom: 0 !important;
    padding: 5px 0 !important;
  }

  /* ギャラリー・layer3 アイテムの疑似要素装飾を削除 */
  .GNav__menuPagesListItem.-layer3 .GNav__menuLink::before,
  .GNav__menuPagesListItem.-layer3 .GNav__menuLink::after {
    display: none !important;
    content: none !important;
  }

  /* フッターナビ折り返し防止 */
  .GNav__menuOtherPages .GNav__menuLink {
    white-space: nowrap !important;
  }

  /* OtherPages：区切り線 + 余白 */
  .GNav__menuOtherPages {
    grid-column: 1 / -1 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
    margin-top: 16px !important;
    padding-top: 16px !important;
    padding-bottom: 6px !important;
  }

  /* CTAボタン */
  .GNav__menuLink.-cta.-contact,
  .GNav__menuLink.-cta.-reservation { padding: 5px 12px !important; }
}

/* トップページ MV下「はじめての方へ」テキストリンク */
.llmo-top-guide-link {
  display: block !important;
  margin-top: 18px !important;
  font-size: 1.3rem !important;
  color: inherit !important;
  text-decoration: none !important;
  border-bottom: 1px solid currentColor !important;
  padding-bottom: 3px !important;
  width: fit-content !important;
  margin-left: auto !important;
  margin-right: auto !important;
  letter-spacing: 0.08em !important;
  transition: opacity 0.2s !important;
}
.llmo-top-guide-link:hover {
  opacity: 0.6 !important;
  text-decoration: none !important;
}

/* トップページ MV下 コピーテキスト装飾（葉）を縦中央揃えに */
.Top__copyText::before,
.Top__copyText::after {
  top: 50% !important;
  transform: translateY(-50%) !important;
}
