/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Jul 30 2026 | 01:39:14 */
/* ====================================================
   E.U. Digital Commons
==================================================== */

/* 1. フォント・カラー変数 */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600&family=Noto+Serif+JP:wght@300;400;600&family=Noto+Sans+JP:wght@300;400;500&display=swap');

:root {
  --color-bg: #ffffff;
  --color-surface: #f4f4f5;
  --color-black: #111111;
  --color-dark: #222222;
  --color-gray: #666666;
  --color-light-gray: #e0e0e0;
  --color-gold: #b29656;
  
  --font-serif: 'Noto Serif JP', serif;
  --font-sans: 'Noto Serif JP', sans-serif;
  --font-en: 'Cormorant Garamond', serif;
}

/* ====================================================
   2. ベースタイポグラフィ
==================================================== */
body, p, li, a {
  font-family: var(--font-sans) !important;
  color: var(--color-black) !important;
  line-height: 1.8 !important;
  letter-spacing: 0.04em !important;
  font-weight: 300 !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif) !important;
  font-weight: 400 !important;
  margin-top: 0 !important;
  border: none !important;
  padding: 0 !important;
}

/* セクションタイトル */
.sec-header {
  text-align: center !important;
  margin-bottom: 60px !important;
}
.sec-header .en,
.en-label {
  display: block !important;
  font-family: var(--font-en) !important;
  font-size: 14px !important;
  color: var(--color-gold) !important;
  letter-spacing: 0.2em !important;
  margin-bottom: 8px !important;
  text-align: center !important;
}
.sec-header .ja,
.sec-header h2 {
  font-size: 28px !important;
  color: var(--color-black) !important;
  letter-spacing: 0.1em !important;
  text-align: center !important;
}
.sec-header h2::after { display: none !important; }

/* ====================================================
   3. レイアウト
==================================================== */
/* 2列グリッドベース */
.concept-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 60px !important;
  margin-top: 40px !important;
  max-width: 1000px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  align-items: stretch !important; /* アイテムの高さを統一 */
}

/* コンセプトアイテム */
.concept-item {
  border-top: 1px solid var(--color-gold) !important;
  padding-top: 20px !important;
  border-left: none !important;
  display: block !important; 
  text-align: left !important; 
  width: 100% !important;
  margin-top: 0 !important; /* WP標準の自動余白をリセット */
}
.concept-item h3 {
  font-size: 18px !important;
  margin-bottom: 15px !important;
  color: var(--color-dark) !important;
  margin-top: 0 !important;
  text-align: left !important; 
}
.concept-item p {
  font-size: 14px !important;
  color: var(--color-gray) !important;
  margin-bottom: 0 !important;
  text-align: left !important; 
}

@media (max-width: 768px) {
  .concept-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* ====================================================
   4. テーブル・リスト・ボックス装飾
==================================================== */
/* テーブル */
.wp-block-table.premium-table {
  max-width: 1000px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.wp-block-table.premium-table table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin-top: 20px !important;
  border: none !important;
}

.wp-block-table.premium-table th, 
.wp-block-table.premium-table td {
  padding: 20px 15px !important;
  border: none !important;
  border-bottom: 1px solid var(--color-light-gray) !important;
  font-size: 14px !important;
  text-align: left !important; 
  vertical-align: top !important; 
}

.wp-block-table.premium-table tr:last-child th,
.wp-block-table.premium-table tr:last-child td {
  border-bottom: none !important; /* 最終行の下線を非表示 */
}

.wp-block-table.premium-table th {
  font-family: var(--font-serif) !important;
  color: var(--color-dark) !important;
  font-weight: 400 !important;
  width: 25% !important;
}

@media (max-width: 768px) {
  .wp-block-table.premium-table th, 
  .wp-block-table.premium-table td {
    display: block !important;
    width: 100% !important;
  }
  .wp-block-table.premium-table th {
    border-bottom: none !important;
    padding-bottom: 0 !important;
  }
}

/* ROOMタグ */
.tag {
  font-family: var(--font-en) !important;
  font-size: 10px !important;
  border: 1px solid var(--color-gold) !important;
  color: var(--color-gold) !important;
  padding: 2px 8px !important;
  margin-right: 10px !important;
  letter-spacing: 0.1em !important;
}

/* ルールリスト */
.rules-list {
  list-style: none !important;
  padding: 0 !important;
  max-width: 700px !important;
  margin: 0 auto !important;
}
.rules-list li {
  position: relative !important;
  padding-left: 20px !important;
  margin-bottom: 15px !important;
  font-size: 14px !important;
  color: var(--color-gray) !important;
  text-align: left !important; 
}
.rules-list li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 10px !important;
  width: 6px !important;
  height: 1px !important;
  background-color: var(--color-gold) !important;
}

/* インフォボックス */
.info-box {
  background-color: var(--color-bg) !important;
  padding: 40px !important;
  border: 1px solid var(--color-light-gray) !important;
  margin-bottom: 30px !important;
  margin-top: 0 !important; /* WP標準の自動余白をリセット */
  height: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.info-box h3 {
  font-size: 18px !important;
  margin-bottom: 20px !important;
  margin-top: 0 !important;
  text-align: center !important; 
  width: 100% !important;
}

.info-box p {
  font-size: 14px !important;
  color: var(--color-gray) !important;
  text-align: center !important; 
  width: 100% !important;
}

/* インフォボックス内のボタン配置 */
.info-box .wp-block-buttons {
  margin-top: auto !important; /* ボタンを下部に固定 */
  margin-bottom: 0 !important;
  width: 100% !important;
  justify-content: center !important;
}

/* ====================================================
   5. ボタン要素
==================================================== */
.wp-block-button.btn-gold .wp-block-button__link {
  background-color: var(--color-gold) !important;
  color: #ffffff !important;
  font-size: 13px !important;
  font-family: var(--font-serif) !important;
  letter-spacing: 0.1em !important;
  padding: 14px 40px !important;
  border-radius: 0 !important;
  border: 1px solid var(--color-gold) !important;
  transition: all 0.3s ease !important;
  text-decoration: none !important;
}
.wp-block-button.btn-gold .wp-block-button__link:hover {
  background-color: transparent !important;
  color: var(--color-gold) !important;
}

.wp-block-button.btn-outline .wp-block-button__link {
  background-color: transparent !important;
  color: var(--color-black) !important;
  font-size: 13px !important;
  font-family: var(--font-sans) !important;
  letter-spacing: 0.1em !important;
  padding: 14px 40px !important;
  border-radius: 0 !important;
  border: 1px solid var(--color-black) !important;
  transition: all 0.3s ease !important;
  text-decoration: none !important;
}
.wp-block-button.btn-outline .wp-block-button__link:hover {
  background-color: var(--color-black) !important;
  color: #ffffff !important;
}

/* ====================================================
   6. ヘッダー・フッター装飾
==================================================== */
.eudc-header {
  background-color: rgba(17, 17, 17, 0.95) !important;
  border-bottom: 1px solid #333 !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}
.eudc-header a {
  color: #cccccc !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
}
.eudc-header a:hover {
  color: var(--color-gold) !important;
}

/* サイトタイトル */
.eudc-header .wp-block-site-title {
  margin-bottom: 0 !important; 
  line-height: 1.2 !important;
}
.eudc-header .wp-block-site-title a {
  font-family: var(--font-en) !important;
  color: #ffffff !important;
  font-size: 18px !important;
  letter-spacing: 0.1em !important;
}

/* キャッチフレーズ */
.eudc-header .wp-block-site-tagline {
  font-family: var(--font-sans) !important;
  color: var(--color-gold) !important;
  font-size: 10px !important;
  letter-spacing: 0.05em !important;
  margin-top: 0 !important; 
  line-height: 1.2 !important;
}

/* フッター */
.eudc-footer {
  background-color: var(--color-black) !important;
  color: var(--color-gray) !important;
  padding: 40px 20px !important;
  text-align: center !important;
}
.eudc-footer p, .eudc-footer a {
  color: var(--color-gray) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
}
.eudc-footer a:hover {
  color: var(--color-gold) !important;
}

/* フッターナビゲーション */
.eudc-footer-nav {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  max-width: 1000px !important; 
  margin-left: auto !important; 
  margin-right: auto !important;
  gap: 20px 30px !important;
  margin-bottom: 30px !important;
}
.eudc-footer-nav a {
  color: var(--color-gray) !important;
  font-size: 13px !important;
  letter-spacing: 0.05em !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}
.eudc-footer-nav a:hover {
  color: var(--color-gold) !important;
}

/* フッターナビゲーションスマホ対応（768px以下） */
@media (max-width: 768px) {
  .eudc-footer-nav {
    flex-direction: column !important;
    justify-content: center !important;
    gap: 16px !important;
  }
}

/* ====================================================
   7. ヒーローエリア
==================================================== */
.hero-title {
  font-family: var(--font-en) !important;
  font-size: clamp(32px, 5vw, 42px) !important;
  letter-spacing: 0.1em !important;
  color: #ffffff !important;
  margin-bottom: 10px !important;
  border: none !important;
  text-align: center !important;
}

.hero-subtitle {
  font-family: var(--font-serif) !important;
  font-size: 18px !important;
  letter-spacing: 0.1em !important;
  color: #ffffff !important;
  text-align: center !important;
  margin-bottom: 30px !important;
}

/* ====================================================
   8. 写真ギャラリー (3列グリッド)
==================================================== */
.photo-gallery {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 30px !important; 
  max-width: 1000px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 40px !important;
  margin-bottom: 40px !important;
  align-items: start !important;
}

/* ギャラリー内要素の自動余白をリセット */
.photo-gallery > * {
  margin-top: 0 !important;
}

@media (max-width: 768px) {
  .photo-gallery {
    grid-template-columns: 1fr !important; 
    gap: 20px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* ギャラリー画像ラッパー */
.photo-gallery figure {
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important; 
}

/* ギャラリー画像本体 */
.photo-gallery img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 3 / 2 !important; 
  object-fit: cover !important; 
  display: block !important;
  transition: transform 0.5s ease !important; 
}

/* ホバーエフェクト */
.photo-gallery figure:hover img {
  transform: scale(1.05) !important;
}

/* ギャラリーキャプション */
.photo-gallery figcaption {
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  color: var(--color-gray) !important;
  text-align: center !important; 
  margin-top: 12px !important; 
  margin-bottom: 0 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
  background-color: transparent !important;
}

/* ====================================================
   9. 背景ユーティリティ
==================================================== */
.bg-surface {
  background-color: var(--color-surface) !important;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

/* ====================================================
   10. カレンダー
==================================================== */
body .is-layout-constrained > .calendar-container {
  max-width: 1000px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

.calendar-container .xo-event-calendar,
.calendar-container table.xo-month {
  width: 100% !important;
}

/* ====================================================
   10. カレンダー
==================================================== */
body .is-layout-constrained > .calendar-container {
  max-width: 1000px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

.calendar-container .xo-event-calendar,
.calendar-container table.xo-month {
  width: 100% !important;
}

/* 曜日・日付・予定のテキスト */
.calendar-container .xo-event-calendar th,
.calendar-container .xo-event-calendar .dayname div,
.calendar-container .xo-event-calendar .month-event-title,
.calendar-container .xo-event-calendar .holiday-title {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  letter-spacing: 0.04em !important;
  color: var(--color-black) !important;
}

/* タイトル（年月） */
.calendar-container .xo-event-calendar .calendar-caption {
  font-family: var(--font-serif) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  color: var(--color-dark) !important;
}
