/* =====================================================================
   Zino Totonoe — custom.css
   モダン・ミニマルなリデザイン層。theme.json（配色/余白/タイポ）を補い、
   既存マークアップ（.home-banner / cover / navigation / table / footer 等）を
   壊さず "見た目だけ" を整える。コンテンツの文言・構造は変更しない。

   目次:
     0. 変数・基盤
     1. ヒーロー（home-banner / cover / ナビ / サイトタイトル）
     2. タイポグラフィのリズム
     3. ボタン
     4. 表（料金相場一覧表）
     5. 画像・区切り・引用
     6. フッター
     7. 上品で控えめなアニメ（reveal / reduced-motion 配慮）
     8. モバイルファースト微調整
   ===================================================================== */

/* ---------- 0. 変数・基盤 ---------- */
:root {
  --tt-accent: #2f7e77;
  --tt-accent-dark: #24645e;
  --tt-accent-tint: #e8f1ef;
  --tt-ink: #1f242b;
  --tt-body: #3a424b;
  --tt-muted: #6b7480;
  --tt-border: #e6e9ec;
  --tt-surface: #f6f8f8;
  --tt-radius: 12px;
  --tt-shadow: 0 10px 30px rgba(31, 36, 43, 0.08);
  --tt-shadow-sm: 0 4px 14px rgba(31, 36, 43, 0.06);
  --tt-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

html { scroll-behavior: smooth; }

body {
  color: var(--tt-body);
  background: #ffffff;
  text-rendering: optimizeLegibility;
}

/* 選択ハイライトもアクセントで統一 */
::selection { background: var(--tt-accent-tint); color: var(--tt-ink); }

/* キーボードフォーカスを上品なリングに（アクセシビリティ） */
a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible,
.wp-block-navigation-item__content:focus-visible {
  outline: 2px solid var(--tt-accent);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- 1. ヒーロー（home-banner / cover） ---------- */
/* 既存のカバー画像の上に、上品なグラデーションを重ねて高級感を出す。
   画像が差し替え前のプレースホルダでも見栄えするようにする。 */
.home-banner .wp-block-cover {
  min-height: 78vh;
}
.home-banner .wp-block-cover__background {
  /* 黒一色のディムを、藍〜濃グレーの斜めグラデに上書き（控えめ） */
  background: linear-gradient(
    160deg,
    rgba(20, 28, 32, 0.78) 0%,
    rgba(36, 100, 94, 0.55) 55%,
    rgba(20, 28, 32, 0.82) 100%
  ) !important;
  opacity: 1 !important;
}
.home-banner .wp-block-cover__inner-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2rem);
}
/* サイトタイトル：細やかな字間と軽いフェード */
.home-banner .wp-block-site-title {
  letter-spacing: 0.08em;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
/* ロゴを柔らかな縁取りに */
.home-banner .wp-block-site-logo img,
.home-banner .is-style-rounded img {
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
}

/* グローバルナビ：ミニマルな下線アニメ */
.wp-block-navigation {
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.wp-block-navigation .wp-block-navigation-item__content {
  position: relative;
  padding-bottom: 4px;
  transition: opacity 0.25s var(--tt-ease);
}
.wp-block-navigation .wp-block-navigation-item__content::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s var(--tt-ease);
  opacity: 0.85;
}
.wp-block-navigation .wp-block-navigation-item__content:hover::after,
.wp-block-navigation .current-menu-item .wp-block-navigation-item__content::after {
  transform: scaleX(1);
}

/* ---------- 2. タイポグラフィのリズム ---------- */
/* セクション見出しに上品な余白とアクセントの細線を添える */
.entry-content h2,
.wp-block-post-content h2 {
  margin-top: clamp(2.5rem, 6vw, 4.5rem);
  margin-bottom: 1.25rem;
  position: relative;
  padding-bottom: 0.5rem;
}
.entry-content h2::after,
.wp-block-post-content h2::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  margin-top: 0.7rem;
  background: var(--tt-accent);
  border-radius: 3px;
}
/* 中央寄せの見出しは下線も中央に */
.entry-content h2.has-text-align-center::after,
.wp-block-post-content h2.has-text-align-center::after {
  margin-left: auto;
  margin-right: auto;
}
.entry-content h3,
.wp-block-post-content h3 {
  margin-top: 2.25rem;
  margin-bottom: 0.85rem;
}
/* 本文段落の読みやすさ */
.wp-block-post-content p { max-width: 42em; }
.wp-block-post-content p,
.entry-content p { margin-bottom: 1.4em; }

/* リード文（最初の段落）を少し大きく */
.wp-block-post-content > p:first-of-type {
  font-size: 1.075em;
  color: var(--tt-ink);
}

/* ---------- 3. ボタン ---------- */
.wp-block-button__link {
  background-color: var(--tt-accent);
  color: #fff;
  border-radius: 10px;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 600;
  letter-spacing: 0.02em;
  box-shadow: var(--tt-shadow-sm);
  transition: transform 0.25s var(--tt-ease),
              box-shadow 0.25s var(--tt-ease),
              background-color 0.25s var(--tt-ease);
}
.wp-block-button__link:hover,
.wp-block-button__link:focus {
  background-color: var(--tt-accent-dark);
  transform: translateY(-2px);
  box-shadow: var(--tt-shadow);
  color: #fff;
}
/* アウトライン型ボタンはアクセント枠線に */
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--tt-accent-dark);
  border: 2px solid var(--tt-accent);
  box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--tt-accent);
  color: #fff;
}

/* ---------- 4. 表（料金相場一覧表） ---------- */
.wp-block-table {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.wp-block-table table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  border: 1px solid var(--tt-border);
  border-radius: var(--tt-radius);
  overflow: hidden;
  box-shadow: var(--tt-shadow-sm);
  font-size: 0.97em;
}
.wp-block-table th,
.wp-block-table td {
  padding: 0.9rem 1.1rem;
  border: none;
  border-bottom: 1px solid var(--tt-border);
  text-align: left;
  vertical-align: middle;
}
.wp-block-table thead th,
.wp-block-table tr:first-child th,
.wp-block-table tr:first-child td {
  background: var(--tt-accent);
  color: #fff;
  font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}
/* ゼブラ＆ホバーで一覧性アップ */
.wp-block-table tbody tr:nth-child(even) td { background: var(--tt-surface); }
.wp-block-table tbody tr:hover td { background: var(--tt-accent-tint); }
.wp-block-table tr:last-child td { border-bottom: none; }

/* ---------- 5. 画像・区切り・引用 ---------- */
.wp-block-image img {
  border-radius: var(--tt-radius);
  box-shadow: var(--tt-shadow-sm);
}
.wp-block-image.is-style-rounded img { border-radius: 9999px; }

.wp-block-separator {
  border: none;
  height: 1px;
  background: var(--tt-border);
  max-width: 100%;
}

.wp-block-quote {
  border-left: 4px solid var(--tt-accent);
  padding: 0.4rem 0 0.4rem 1.4rem;
  color: var(--tt-ink);
  font-style: normal;
}

/* カード化された group（背景色付きの箱）を柔らかく */
.wp-block-group.has-background {
  border-radius: var(--tt-radius);
}

/* ---------- 6. フッター ---------- */
.site-footer {
  border-top: 1px solid var(--tt-border);
}
.site-footer h2 {
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  color: var(--tt-ink);
  margin-bottom: 1rem;
}
.site-footer .wp-block-list a {
  color: var(--tt-muted);
  transition: color 0.2s var(--tt-ease), padding-left 0.2s var(--tt-ease);
}
.site-footer .wp-block-list a:hover {
  color: var(--tt-accent);
  padding-left: 4px;
  text-decoration: none;
}
.site-footer .wp-block-social-links a { transition: transform 0.2s var(--tt-ease); }
.site-footer .wp-block-social-links a:hover { transform: translateY(-3px); }

/* ---------- 7. 上品で控えめなアニメ ---------- */
/* JS が data-tt-reveal を付与した要素を、ふわっとフェードアップさせる。
   JS 無効時・reveal 未付与時は通常表示のまま（プログレッシブ・エンハンスメント）。 */
[data-tt-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s var(--tt-ease), transform 0.7s var(--tt-ease);
  will-change: opacity, transform;
}
[data-tt-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* モーション控えめ設定の利用者には演出を無効化（必須の配慮） */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-tt-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .wp-block-button__link:hover { transform: none; }
  .site-footer .wp-block-social-links a:hover { transform: none; }
}

/* ---------- 8. モバイルファースト微調整 ---------- */
/* 既定（モバイル）：ヒーローを詰めて読みやすく */
.home-banner .wp-block-cover { min-height: 64vh; }
.home-banner .wp-block-site-title { font-size: clamp(1.6rem, 8vw, 2.2rem); }

/* セクションの左右余白を確保（小画面で詰まりすぎない） */
.wp-block-post-content,
.entry-content { overflow-wrap: break-word; }

/* 料金表は小画面で横スクロール可能に（折返しで崩れない） */
@media (max-width: 600px) {
  .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .wp-block-table table { min-width: 480px; }
  .wp-block-table th, .wp-block-table td { padding: 0.7rem 0.8rem; }
}

/* タブレット以上：ヒーローを広く、見出しを伸びやかに */
@media (min-width: 782px) {
  .home-banner .wp-block-cover { min-height: 80vh; }
}

/* 大画面：行間と余白をさらにゆったり */
@media (min-width: 1200px) {
  .wp-block-post-content { line-height: 1.9; }
}
