:root {
  /*----------------------------------------------
  Typography
  ----------------------------------------------*/
  --font-xxl: 3.2rem;
  --font-xl: 2.8rem;
  --font-lg: 2.2rem;
  --font-md: 1.2rem;
  --font-base: 1rem;
  --font-sm: 0.9rem;

  /* 行間 */
  --lh-tight: 1.2;
  --lh-normal: 1.6;
  --lh-loose: 1.8;

  /*----------------------------------------------
  Layout
  ----------------------------------------------*/
  --section-padding-pc: 8rem;
  --section-padding-tab: 5rem;
  --section-padding-sp: 4rem;

  --content-max-width: 1200px;

  /*----------------------------------------------
  Color System
  ----------------------------------------------*/
  --color-text-dark: #333;
  --color-text-main: #666;
  --color-text-light: #999;
  --color-text-invert: #fff;

  --color-bg-main: #ffffff;
  --color-bg-sub: #f5f5f5;
  --color-bg-section: #fafafa;
  --color-bg-card: #ffffff;
  --color-bg-dark: #2b2b2b;

  --color-accent: #c9a27e;
  --color-accent-dark: #a88463;
  --color-accent-light: #e8d7c5;

  --color-border-light: rgba(0,0,0,0.1);
  --color-border: rgba(0,0,0,0.2);
  --color-border-strong: rgba(0,0,0,0.35);

  --shadow-soft: 0 4px 12px rgba(0,0,0,0.08);
  --shadow-card: 0 6px 20px rgba(0,0,0,0.12);
  --shadow-strong: 0 10px 30px rgba(0,0,0,0.18);

  --opacity-low: 0.25;
  --opacity-mid: 0.5;
  --opacity-high: 0.85;

  /* ============================
     Typography System（追加分）
  ============================ */
  --font-heading-family: "Playwrite NO", serif;
  --font-heading-weight: 400;

  --font-body-family: "Noto Sans JP", sans-serif;
  --font-body-weight: 400;
}

/* ============================
   Base Typography
============================ */
html, body {
  font-family: var(--font-body-family);
  font-weight: var(--font-body-weight);
  color: var(--color-text-main);
}

h1, h2, h3 {
  font-family: var(--font-heading-family);
  font-weight: var(--font-heading-weight);
  color: var(--color-text-dark);
  line-height: var(--lh-tight);
  letter-spacing: 0.05em;
}

html {
  scroll-behavior: smooth;
}

section {
  scroll-margin-top: 80px;
}

/* ================================
   WordPress最適化（追加分）
================================ */

/* 画像のはみ出し防止 */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* iframe（Google Mapなど） */
iframe {
  max-width: 100%;
  border: none;
}

/* NEWS本文の崩れ防止 */
.news-text {
  word-break: break-word;
  line-height: var(--lh-normal);
}

/* WPが自動で作る段落 */
.news-text p {
  margin-bottom: 1em;
}

/* リスト（投稿で使う可能性） */
.news-text ul,
.news-text ol {
  padding-left: 1.5em;
  margin-bottom: 1em;
}

/* WPブロックエディタ対策 */
.wp-block-image,
.wp-block-paragraph {
  margin: 0;
}

/* 念のためリンクの基本調整 */
a {
  color: inherit;
  text-decoration: none;
}

/* hover（統一感出る） */
a:hover {
  opacity: 0.7;
  transition: 0.3s;
}

/* ===== 追加推奨 ===== */
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  vertical-align: middle;
}