/* =========================================
   PhotoBlock Theme — Global Styles
   ========================================= */
:root {
  --ew-cream:       #FAF7F2;
  --ew-warm-white:  #FFFEFB;
  --ew-sand:        #EDE4D5;
  --ew-taupe:       #C9B99A;
  --ew-brown:       #8B6E52;
  --ew-deep-brown:  #3E2D20;
  --ew-blush:       #E8C5B0;
  --ew-accent:      #C07A52;
  --ew-accent-dark: #9A5E3C;
  --ew-text:        #332518;
  --ew-text-sub:    #7A6550;
  --ew-text-light:  #B0997E;
  --ew-gold:        #C4944A;
  --ew-section-bg:  #F5F0E8;
  --ew-error:        #b0454a;
  --ew-error-bg:     #fff5f5;
  --ew-error-border: #f5a0a0;
  --ew-error-dark:   #e05050;
  --ew-error-text:   #7a2020;

  --ew-font-serif:      "游明朝", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "ヒラギノ明朝 ProN", Georgia, serif;
  --ew-font-serif-body: "游明朝", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "ヒラギノ明朝 ProN", Georgia, serif;
  --ew-font-sans:       "游ゴシック", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ ProN", "Meiryo", -apple-system, BlinkMacSystemFont, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--ew-font-serif-body);
  background: var(--ew-cream);
  color: var(--ew-text);
  overflow-x: hidden;
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }

/* ── Reveal animation ── */
.ew-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s ease, transform .7s ease;
}
.ew-reveal.in { opacity: 1; transform: none; }
.ew-reveal.d1  { transition-delay: .12s; }
.ew-reveal.d2  { transition-delay: .24s; }
.ew-reveal.d3  { transition-delay: .36s; }

/* ── Header ── */
.ew-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  padding: 14px 48px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--ew-header-bg, rgba(250,247,242,0.94));
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(201,185,154,0.25);
  transition: box-shadow .4s;
}
.admin-bar .ew-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .ew-header {
    top: 46px;
    /*border-bottom: 1px solid var(--ew-sand, #EDE4D5);*/
  }
}
.ew-header.scrolled { box-shadow: 0 4px 24px rgba(62,45,32,.08); }

/* ── ヒーロー使用ページ：最上部のみヘッダー透明（SANGO風演出） ── */
body.has-hero .ew-header:not(.scrolled) {
  background: transparent;
  backdrop-filter: none;
  border-bottom-color: transparent;
  box-shadow: none;
}
body.has-hero .ew-header:not(.scrolled) .ew-header__site-name,
body.has-hero .ew-header:not(.scrolled) .ew-nav__item a,
body.has-hero .ew-header:not(.scrolled) .ew-header__tel-btn {
  color: #fff;
}
body.has-hero .ew-header:not(.scrolled) .ew-header__toggle span {
  background: #fff;
}

/* ── ヒーローをヘッダー裏まで回り込ませる ── */
body.has-hero .ew-hero {
  margin-top: calc(-1 * var(--ew-header-spacer-h, 70px));
}
/* 固定アスペクト比モードでは回り込みを無効化（高さ計算が崩れるため） */
body.has-hero .ew-hero[class*="ew-hero--aspect-"] {
  margin-top: 0;
}

/* ── Section padding utility ── */
.ew-section {
  padding: 96px 64px;
}
.ew-section-inner {
  max-width: 1180px;
  margin: 0 auto;
}

@media (max-width: 768px) {
  .ew-header { padding: 12px 20px; }
  .ew-section { padding: 64px 20px; }
}

/* ===========================================
   幅制御システム（一元管理）
   ルール：
   1. hero / trust / cta-banner は常に全幅（!important で固定）
   2. usp-grid / menu-grid は Gutenberg の align（alignwide/alignfull）で制御
   3. section-header / voice-card は ew-width-* クラスで制御
   4. text-section（InnerBlocks）は ew-width-* クラスで外枠制御、
      中身は ew-ts__inner で幅制限
   5. コアブロック（段落・見出し等）は WordPress デフォルトに任せる
      → theme.json で content-size / wide-size を定義すれば自動制御
   =========================================== */

/* ── 1. 全幅固定ブロック ── */
.wp-block-engawa-trust,
.wp-block-engawa-cta-banner {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: block;
}

/* ヒーローは align で幅制御（style.css に自己完結） */
.wp-block-engawa-hero,
.ew-hero {
  display: block;
  margin-bottom: 0;
}
.ew-hero.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* ── 2. ew-width-* クラス（blockWidth SelectControl） ── */
.ew-width-content {
  max-width: 760px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

.ew-width-wide {
  max-width: 1180px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

.ew-width-full {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ew-width-full の内側には padding を付ける */
.ew-width-full > .ew-sec-header-inner,
.ew-width-full > .ew-usp-grid-inner,
.ew-width-full > .ew-menu-grid-inner,
.ew-width-full > .ew-ts__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding-left: clamp(20px, 5vw, 80px);
  padding-right: clamp(20px, 5vw, 80px);
}

/* ── 3. text-section 内側 ── */
.ew-text-section .ew-ts__inner {
  width: calc(100% - 32px);
  box-sizing: border-box;
}

.ew-width-content.ew-text-section .ew-ts__inner,
.ew-width-wide.ew-text-section .ew-ts__inner {
  padding-left: clamp(20px, 4vw, 48px);
  padding-right: clamp(20px, 4vw, 48px);
}

/* ── コンテンツ・フッター間の余白リセット ── */
html {
  margin: 0;
  overflow-x: hidden;
  background: var(--ew-cream, #FAF7F2); /* body外の余白の背景色 */
}
html, body { max-width: 100%; }
body { box-shadow: 0 0 40px rgba(0,0,0,.08); } /* 左右に影をつけてコンテナ感を演出 */
main#main { margin-bottom: 0; padding-bottom: 0; }

/* fixed ヘッダー分の高さ確保スペーサー */
.ew-header-spacer { display: block; height: var(--ew-header-spacer-h, 70px); }
.admin-bar .ew-header-spacer { height: calc(var(--ew-logo-height, 40px) + 30px); }
@media (max-width: 782px) {
  .admin-bar .ew-header-spacer { height: calc(0px + 46px); }
}
@media (max-width: 768px) {
  .ew-header-spacer { height: 54px; }
}

/* ── パンくずリスト ── */
.ew-breadcrumb {
  width: 100%;
  background: var(--ew-section-bg, #F5F0E8);
  border-bottom: 1px solid var(--ew-sand, #EDE4D5);
  padding: 8px clamp(20px, 4vw, 48px);
  box-sizing: border-box;
}
.ew-breadcrumb__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.ew-breadcrumb__item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: var(--ew-font-sans, sans-serif);
  font-size: 12px;
  color: var(--ew-text-sub, #7A6550);
  line-height: 1.5;
}
.ew-breadcrumb__link {
  color: var(--ew-text-sub, #7A6550);
  text-decoration: none;
  transition: color .2s;
}
.ew-breadcrumb__link:hover { color: var(--ew-accent, #C07A52); }
.ew-breadcrumb__sep { color: var(--ew-taupe, #C9B99A); font-size: 10px; margin: 0 2px; }
.ew-breadcrumb__item--current span { color: var(--ew-text, #332518); }

/* コンテンツ末尾余白リセット */
.entry-content > *:last-child,
.wp-block-post-content > *:last-child { margin-bottom: 0 !important; }

/* ── コンテンツ幅レイアウト（theme.json の contentSize / wideSize を反映） ── */
/* 標準ブロックはコンテンツ幅（760px）で中央揃え */
.wp-block-post-content.is-layout-flow > *,
.wp-block-post-content.is-layout-constrained > * {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* カタログは幅制限を解除 */
.wp-block-post-content.is-layout-flow > .crc-catalog,
.wp-block-post-content.is-layout-constrained > .crc-catalog {
  max-width: 1180px;
}

/* 幅広（alignwide）は 1180px */
.wp-block-post-content.is-layout-flow > .alignwide,
.wp-block-post-content.is-layout-constrained > .alignwide {
  max-width: 1180px;
}

/* 全幅（alignfull）は画面幅いっぱい */
.wp-block-post-content.is-layout-flow > .alignfull,
.wp-block-post-content.is-layout-constrained > .alignfull {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* ── ew-hero は style.css の align クラスで自己完結 ── */
.wp-block-post-content.is-layout-flow > .ew-trust,
.wp-block-post-content.is-layout-flow > .ew-cta,
.wp-block-post-content.is-layout-flow > .ew-section,
.wp-block-post-content.is-layout-flow > .ew-timeline,
.wp-block-post-content.is-layout-flow > .ew-voices:not(.ew-width-content):not(.ew-width-wide),
.wp-block-post-content.is-layout-flow > .ew-sec-header:not(.ew-width-content):not(.ew-width-wide),
.wp-block-post-content.is-layout-flow > .ew-before-after,
.wp-block-post-content.is-layout-flow > .ew-footer,
.wp-block-post-content.is-layout-flow > .ew-text-section {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ヒーロー直後に出力されるパンくず（breadcrumb.php の engawa_breadcrumb_after_hero）。
   本文の子要素になるため 760px に制限される。ヘッダー直下に置いた時と同じ
   「帯は全幅・中身は 1180px 中央寄せ」に戻す。左右パディングは .ew-breadcrumb 側の
   clamp() をそのまま使うので padding は打ち消さない。 */
.wp-block-post-content.is-layout-flow > .ew-breadcrumb,
.wp-block-post-content.is-layout-constrained > .ew-breadcrumb {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* usp-grid / menu-grid の幅制御は blocks/*/style.css と editor.css で自己完結 */

/* 左右パディング（コンテンツ幅ブロックの内側余白） */
.wp-block-post-content.is-layout-flow > *:not(.alignfull):not(.alignwide):not([class*="wp-block-engawa-"]) {
  padding-left: clamp(20px, 4vw, 48px);
  padding-right: clamp(20px, 4vw, 48px);
}
.wp-block-post-content.is-layout-flow > .alignwide:not([class*="wp-block-engawa-"]) {
  padding-left: clamp(20px, 3vw, 32px);
  padding-right: clamp(20px, 3vw, 32px);
}
.wp-site-blocks { padding-bottom: 0 !important; }


/* ── ヘッダー ナビ・ボタン（カスタマイザー対応） ── */
.ew-header__logo a { text-decoration: none; }
.ew-header__site-name {
  font-family: var(--ew-font-serif);
  font-size: 16px;
  color: var(--ew-header-text, var(--ew-deep-brown));
  letter-spacing: .06em;
}
.ew-header__logo img { height: 40px; width: auto; }
.ew-nav {
  /* 残りの余白をすべてナビの左に寄せて、ナビ＋アクションを右端にまとめる */
  margin-left: auto; padding-left: 10px;
}
.ew-nav__list {
  display: flex;
  /* 英語表記あり／なしが混在しても日本語の行が揃うようベースライン揃え
     （center にすると2段の項目だけ上にずれる） */
  align-items: baseline;
  gap: 32px;
  list-style: none;
  margin: 0; padding: 0;
}
.ew-nav__item a {
  font-family: var(--ew-font-sans);
  font-size: 13px;
  color: var(--ew-header-nav, var(--ew-deep-brown));
  text-decoration: none;
  letter-spacing: .08em;
  transition: color .25s;
  /* 英語表記（メニューの「説明」欄）を下段に置くための2段組み */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  line-height: 1.3;
}
.ew-nav__item a:hover { color: var(--ew-accent); }
/* 英語表記（サブラベル）。色は currentColor 継承のまま透過度だけ下げる
   → ヒーローページで白文字化される場合も自動で追従する */
.ew-nav__en {
  font-size: 10px;
  letter-spacing: .1em;
  opacity: .6;
}

.ew-header__btn {
  font-family: var(--ew-font-sans);
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--ew-header-btn-text, #fff);
  background: var(--ew-header-btn, var(--ew-accent));
  padding: 10px 20px;
  text-decoration: none;
  border-radius: 1px;
  white-space: nowrap;
  transition: background .25s, transform .25s;
}
.ew-header__btn:hover { background: var(--ew-header-btn-hover, var(--ew-accent-dark)); transform: translateY(-1px); }

/* 電話番号＋ボタンを右端にまとめる */
.ew-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  /* auto にすると .ew-nav の auto と余白を分け合ってナビが中央寄りになるため固定値 */
  margin-left: 24px;
}

/* 電話番号ボタン型 */
.ew-header__tel-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--ew-header-nav, var(--ew-deep-brown));
  border-radius: 4px;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--ew-font-sans);
  color: var(--ew-header-text, var(--ew-deep-brown));
  text-decoration: none;
  letter-spacing: .04em;
  transition: background .2s, border-color .2s, opacity .2s;
  opacity: .8;
}
.ew-header__tel-btn:hover {
  opacity: 1;
}

/* ハンバーガー（スマホ用・初期非表示） */
.ew-header__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.ew-header__toggle span {
  display: block;
  width: 22px; height: 1.5px;
  background: var(--ew-header-text, var(--ew-deep-brown));
  transition: all .3s;
}

/* ── フッター ── */
.ew-footer {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background: var(--ew-footer-bg, var(--ew-deep-brown));
  padding: 0;
  box-sizing: border-box;
}
.ew-footer__copy {
  font-family: var(--ew-font-sans);
  font-size: 11px;
  color: var(--ew-footer-text, rgba(255,255,255,.4));
  letter-spacing: .14em;
}

/* フッター電話番号 */
.ew-footer__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px clamp(24px, 5vw, 80px);
  border-top: 1px solid color-mix(in srgb, var(--ew-footer-text, #fff) 15%, transparent);
}
.ew-footer__tel a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ew-font-sans);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--ew-footer-text, rgba(255,255,255,.8));
  text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--ew-footer-text, #fff) 30%, transparent);
  border-radius: 4px;
  padding: 10px 24px;
  transition: border-color .2s, color .2s;
}
.ew-footer__tel a:hover {
  border-color: var(--ew-footer-text, #fff);
  color: var(--ew-footer-text, #fff);
}

@media (max-width: 768px) {
  .ew-nav { display: none; }
  /* SPのドロワーメニューでは英語表記は出さない */
  .ew-nav__en { display: none; }
  .ew-header__btn { display: none; }
  .ew-header__actions { margin-left: auto; }
  .ew-header__tel-btn { display: none; }
  .ew-header__toggle {
    display: flex;
    flex-shrink: 0;
  }
  /* 電話番号をスマホでも表示（ただしコンパクトに） */
  .ew-header__tel {
    font-size: 12px;
    white-space: nowrap;
  }
  .ew-footer { padding: 20px; }

  /* スマホメニュー展開：ヘッダーの高さ分だけ下から開始 */
  .ew-nav.is-open {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    position: fixed;
    top: 64px; left: 0; right: 0; bottom: 0; /* JSで上書きされる */
    background: var(--ew-section-bg, #F5F0E8);
    z-index: 250;
    padding: 32px 24px 40px;
    overflow-y: auto;
  }
  /* メニューのtopはJSで動的設定（header.getBoundingClientRect().bottom） */
  /* メニュー開時にヘッダーの背景色をメニューに揃える */
  body.nav-open .ew-header {
    z-index: 260;
    backdrop-filter: none;
    box-shadow: none;
    border-bottom: none;
  }
  /* メニュー文字色を確実に表示 */
  .ew-nav.is-open .ew-nav__item a {
    color: var(--ew-text, #332518) !important;
    opacity: 1 !important;
  }
  /* メニュー開時にページのスクロールを止める */
  body.nav-open { overflow: hidden; }
  /* メニュー開時にパンくず・スペーサーを完全非表示 */
  body.nav-open .ew-breadcrumb,
  body.nav-open .ew-header-spacer {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
  }
  /* メニュー開時にコンテンツ全体を隠す */
  body.nav-open #main,
  body.nav-open .wp-site-blocks > *:not(.ew-header):not(.ew-nav) {
    visibility: hidden;
  }
  .ew-nav.is-open .ew-nav__list {
    flex-direction: column;
    /* 縦積みでは baseline が flex-start 相当になり項目幅が縮むため戻す */
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: 320px;
    text-align: center;
  }
  .ew-nav.is-open .ew-nav__item a {
    display: block;
    font-size: 18px;
    padding: 16px 0;
    border-bottom: 1px solid var(--ew-sand, #EDE4D5);
    letter-spacing: .12em;
  }
  .ew-nav.is-open .ew-nav__item:last-child a {
    border-bottom: none;
  }

  /* ハンバーガー → × アニメーション */
  .ew-header__toggle.is-open span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
  }
  .ew-header__toggle.is-open span:nth-child(2) {
    opacity: 0;
  }
  .ew-header__toggle.is-open span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
  }

  /* フッターグリッド1列化 */
  .ew-footer__widgets--2col,
  .ew-footer__widgets--3col {
    grid-template-columns: 1fr;
  }
  .ew-footer__tel a {
    font-size: 16px;
    padding: 10px 20px;
    width: 100%;
    justify-content: center;
  }
}

/* ── フッター ウィジェット列（空列は自動非表示） ── */
.ew-footer__widgets {
  display: grid;
  gap: 40px;
  padding: 56px clamp(24px, 5vw, 80px) 48px;
  max-width: 1180px;
  margin: 0 auto;
  box-sizing: border-box;
  overflow: hidden;
}
.ew-footer__widgets--1col { grid-template-columns: 1fr; max-width: 400px; }
.ew-footer__widgets--2col { grid-template-columns: 1fr 1fr; }
.ew-footer__widgets--3col { grid-template-columns: 1fr 1fr 1fr; }

/* ウィジェット全体のテキスト色 */
.ew-footer__col,
.ew-footer__col h2,
.ew-footer__col h3,
.ew-footer__col h4,
.ew-footer__col h5,
.ew-footer__col p,
.ew-footer__col li,
.ew-footer__col a {
  color: var(--ew-footer-text, rgba(255,255,255,.7));
  font-family: var(--ew-font-sans);
}
.ew-footer__col h2,
.ew-footer__col h3 {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid color-mix(in srgb, var(--ew-footer-text, #fff) 20%, transparent);
  color: var(--ew-footer-text, rgba(255,255,255,.9));
  text-transform: uppercase;
}
.ew-footer__col ul {
  list-style: none;
  margin: 0; padding: 0;
}
.ew-footer__col ul li {
  padding: 4px 0;
  font-size: 13px;
}
.ew-footer__col ul li::before {
  content: '›';
  margin-right: 6px;
  opacity: .4;
}
.ew-footer__col a {
  text-decoration: none;
  transition: color .2s;
}
.ew-footer__col a:hover { opacity: .75; }
/* 検索フォーム */
.ew-footer__col .search-form,
.ew-footer__col form[role="search"] {
  display: flex;
  gap: 0;
}
.ew-footer__col input[type="search"] {
  background: color-mix(in srgb, var(--ew-footer-text, #fff) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--ew-footer-text, #fff) 20%, transparent);
  border-right: none;
  color: var(--ew-footer-text, #fff);
  padding: 8px 12px;
  font-size: 13px;
  border-radius: 2px 0 0 2px;
  flex: 1;
  min-width: 0;
}
.ew-footer__col input[type="search"]::placeholder { color: color-mix(in srgb, var(--ew-footer-text, #fff) 35%, transparent); }
.ew-footer__col input[type="submit"],
.ew-footer__col button[type="submit"] {
  background: color-mix(in srgb, var(--ew-footer-text, #fff) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--ew-footer-text, #fff) 20%, transparent);
  color: var(--ew-footer-text, #fff);
  padding: 8px 14px;
  font-size: 13px;
  cursor: pointer;
  transition: background .2s;
  border-radius: 0 2px 2px 0;
  white-space: nowrap;
  flex-shrink: 0;
}
.ew-footer__col input[type="submit"]:hover,
.ew-footer__col button[type="submit"]:hover {
  background: color-mix(in srgb, var(--ew-footer-text, #fff) 25%, transparent);
}

.ew-footer__widget-title {
  font-family: var(--ew-font-sans);
  font-size: 12px;
  letter-spacing: .16em;
  color: rgba(255,255,255,.9);
  text-transform: uppercase;
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.15);
}

/* ウィジェット内の各要素 */
.ew-footer__widget ul {
  list-style: none;
  margin: 0; padding: 0;
}
.ew-footer__widget ul li {
  padding: 5px 0;
  font-family: var(--ew-font-sans);
  font-size: 13px;
}
.ew-footer__widget ul li a {
  color: var(--ew-footer-text, rgba(255,255,255,.55));
  text-decoration: none;
  transition: color .2s;
}
.ew-footer__widget ul li a:hover { color: rgba(255,255,255,.9); }
.ew-footer__widget ul li::before {
  content: '›';
  margin-right: 6px;
  opacity: .5;
}

.ew-footer__widget p {
  font-family: var(--ew-font-sans);
  font-size: 13px;
  color: var(--ew-footer-text, rgba(255,255,255,.55));
  line-height: 1.8;
  margin: 0 0 8px;
}

.ew-footer__widget a {
  color: var(--ew-footer-text, rgba(255,255,255,.55));
  text-decoration: none;
}
.ew-footer__widget a:hover { color: rgba(255,255,255,.9); }

.ew-footer__bottom {
  text-align: center;
  padding: 24px 48px;
}

/* スマホ: 1カラム */
@media (max-width: 768px) {
  .ew-footer__widgets {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 40px 24px 32px;
  }
  .ew-footer__bottom { padding: 20px 24px; }
}
/* タブレット: 2カラム */
@media (min-width: 769px) and (max-width: 1024px) {
  .ew-footer__widgets {
    grid-template-columns: repeat(2, 1fr);
    padding: 48px 32px 40px;
  }
}

/* ============================================================
   ブロックスタイル（ボックス／リスト／Q&A／ボタン／見出し）は
   assets/css/block-styles.css へ移動（2026-07-23）
   フロントとエディタで共有するため。ここに書き戻さないこと。
   ============================================================ */


/* ============================================================
   Font Awesome ショートハンド（本文中でのアイコン埋め込み用）
   例: <i class="fa-solid fa-star"></i>
   ============================================================ */
/* Font AwesomeはCDNで読み込み済みのためCSSの追加は不要 */

/* ════════════════════════════════
   固定CTAバー（スマホ専用）
   ════════════════════════════════ */
.ew-cta-bar {
  display: none;
}
@media (max-width: 768px) {
  .ew-cta-bar {
    display: flex;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 500;
    height: 56px;
    box-shadow: 0 -2px 12px rgba(0,0,0,.15);
  }
  .ew-cta-bar__btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    font-family: var(--ew-font-sans, sans-serif);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-decoration: none;
    color: #fff;
    transition: opacity .2s;
  }
  .ew-cta-bar__btn:active { opacity: .8; }
  .ew-cta-bar__btn--tel  { background: var(--ew-accent, #C07A52); }
  .ew-cta-bar__btn--mail { background: #555; }
  .ew-cta-bar__btn--line { background: #06C755; }
  /* CTAバー分のpadding-bottomをbodyに追加 */
  body { padding-bottom: 56px; }
  /* メニュー開時はCTAバーを非表示 */
  body.nav-open .ew-cta-bar { display: none; }
}

/* =========================================
   core/media-text — Engawa スタイル
   ========================================= */
.wp-block-media-text {
  gap: 0;
  align-items: stretch;
}

/* 画像エリア */
.wp-block-media-text .wp-block-media-text__media {
  overflow: hidden;
}
.wp-block-media-text .wp-block-media-text__media img,
.wp-block-media-text .wp-block-media-text__media figure {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* テキストエリア */
.wp-block-media-text .wp-block-media-text__content {
  padding: 56px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--ew-warm-white);
}

/* 見出し */
.wp-block-media-text .wp-block-media-text__content h2,
.wp-block-media-text .wp-block-media-text__content h3 {
  font-family: var(--ew-font-serif);
  font-size: clamp(22px, 2.8vw, 36px);
  font-weight: 600;
  color: var(--ew-deep-brown);
  line-height: 1.5;
  letter-spacing: .04em;
  margin-bottom: 20px;
}

/* 本文 */
.wp-block-media-text .wp-block-media-text__content p {
  font-family: var(--ew-font-sans);
  font-size: 14px;
  color: var(--ew-text-sub);
  line-height: 1.9;
  letter-spacing: .05em;
  margin-bottom: 12px;
}

/* リンク・ボタン */
.wp-block-media-text .wp-block-media-text__content a:not(.wp-block-button__link) {
  color: var(--ew-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.wp-block-media-text .wp-block-media-text__content .wp-block-button__link {
  background: var(--ew-accent);
  color: #fff;
  border-radius: 2px;
  font-family: var(--ew-font-sans);
  font-size: 13px;
  letter-spacing: .12em;
  padding: 14px 32px;
  border: none;
  transition: background .25s ease, transform .25s ease;
}
.wp-block-media-text .wp-block-media-text__content .wp-block-button__link:hover {
  background: var(--ew-accent-dark);
  transform: translateY(-2px);
}
.wp-block-media-text .wp-block-media-text__content .wp-block-button {
  margin-top: 8px;
}

/* セクション背景（交互）*/
.wp-block-media-text:nth-child(even) .wp-block-media-text__content {
  background: var(--ew-section-bg);
}

/* スマホ */
@media (max-width: 768px) {
  .wp-block-media-text {
    grid-template-columns: 1fr !important;
  }
  .wp-block-media-text .wp-block-media-text__media {
    min-height: 240px;
  }
  .wp-block-media-text .wp-block-media-text__content {
    padding: 36px 24px;
  }
  .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media {
    order: -1;
  }
}

/* ── 予約フォームページではCTAバーを非表示 ── */
.page-template-page-booking .ew-cta-bar,
body:has(.lb-form-wrap) .ew-cta-bar {
  display: none !important;
}
body:has(.lb-form-wrap) {
  padding-bottom: 0 !important;
}

/* ── 前後の記事ナビ（single-pager）── */
.single-pager {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--ew-sand, #EDE4D5);
}

/* ── リンク共通 ── */
.single-pager__prev a,
.single-pager__next a {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 22px;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
  transition: background .2s, border-color .2s, box-shadow .2s, transform .15s;
}
.single-pager__prev a:hover,
.single-pager__next a:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
  transform: translateY(-2px);
}
.single-pager__next { text-align: right; }

/* ── ライト背景（明るいプリセット）── */
.single-pager[data-theme="light"] .single-pager__prev a,
.single-pager[data-theme="light"] .single-pager__next a {
  background: #fff;
  border: 1.5px solid var(--ew-taupe, #C9B99A);
}
.single-pager[data-theme="light"] .single-pager__prev a:hover,
.single-pager[data-theme="light"] .single-pager__next a:hover {
  background: var(--ew-section-bg, #F5F0E8);
  border-color: var(--ew-accent, #C07A52);
}
.single-pager[data-theme="light"] .single-pager__label {
  color: var(--ew-accent, #C07A52);
}
.single-pager[data-theme="light"] .single-pager__title {
  color: var(--ew-text, #332518);
}

/* ── ダーク背景（暗いプリセット）── */
.single-pager[data-theme="dark"] .single-pager__prev a,
.single-pager[data-theme="dark"] .single-pager__next a {
  background: rgba(255, 255, 255, .08);
  border: 1.5px solid rgba(255, 255, 255, .2);
}
.single-pager[data-theme="dark"] .single-pager__prev a:hover,
.single-pager[data-theme="dark"] .single-pager__next a:hover {
  background: rgba(255, 255, 255, .15);
  border-color: rgba(255, 255, 255, .5);
}
.single-pager[data-theme="dark"] .single-pager__label {
  color: var(--ew-accent, #C07A52);
}
.single-pager[data-theme="dark"] .single-pager__title {
  color: rgba(255, 255, 255, .9);
}

/* ── テキスト共通 ── */
.single-pager__label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: .04em;
}
.single-pager__title {
  font-size: 0.875rem;
  line-height: 1.5;
  font-family: var(--ew-font-serif, serif);
}

/* 片方しかない場合は1カラム全幅に */
.single-pager__prev:only-child,
.single-pager__next:only-child {
  grid-column: 1 / -1;
}
.single-pager__prev:empty,
.single-pager__next:empty {
  display: none;
}

@media (max-width: 480px) {
  .single-pager {
    grid-template-columns: 1fr;
  }
  .single-pager__next {
    text-align: left;
  }
}

/* ── 関連記事（single-related）── */
.single-related {
  padding-top: 16px;
}
.single-related__heading {
  font-family: var(--ew-font-serif, serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ew-text-sub, #7A6550);
  letter-spacing: .1em;
  margin: 0 0 20px;
}
.single-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: stretch;
}

/* ── カード共通 ── */
.single-related__card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  border-radius: 8px;
  overflow: hidden;
  height: 100%;
  transition: transform .2s, box-shadow .2s;
}
.single-related__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, .1);
}

/* ── サムネイル ── */
.single-related__thumb {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ew-sand, #EDE4D5);
}
.single-related__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s;
}
.single-related__card:hover .single-related__thumb img {
  transform: scale(1.05);
}
.single-related__no-thumb {
  width: 100%;
  height: 100%;
  background: var(--ew-sand, #EDE4D5);
}

/* ── テキストエリア ── */
.single-related__body {
  padding: 12px 14px 14px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.single-related__cat {
  display: inline-block !important;
  width: auto !important;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--ew-section-bg, #F5F0E8);
  color: var(--ew-accent, #C07A52);
  margin-bottom: 6px;
  letter-spacing: .04em;
  align-self: flex-start; /* flexbox内で横幅が伸びないよう制御 */
}
.single-related__title {
  font-size: 0.85rem;
  font-family: var(--ew-font-serif, serif);
  line-height: 1.6;
  margin: 0 0 6px;
}
.single-related__date {
  font-size: 11px;
  color: var(--ew-text-sub, #7A6550);
  margin-top: auto;
  padding-top: 6px;
}

/* ── ライト背景 ── */
.single-related[data-theme="light"] .single-related__card {
  background: #fff;
  border: 1px solid var(--ew-sand, #EDE4D5);
}
.single-related[data-theme="light"] .single-related__title {
  color: var(--ew-text, #332518);
}

/* ── ダーク背景 ── */
.single-related[data-theme="dark"] .single-related__card {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .15);
}
.single-related[data-theme="dark"] .single-related__title {
  color: rgba(255, 255, 255, .9);
}
.single-related[data-theme="dark"] .single-related__date {
  color: rgba(255, 255, 255, .5);
}
.single-related[data-theme="dark"] .single-related__no-thumb {
  background: rgba(255, 255, 255, .1);
}

/* ── レスポンシブ ── */
@media (max-width: 640px) {
  .single-related__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  /* 画像ありの場合は横並び */
  .single-related__card:has(.single-related__thumb img) {
    flex-direction: row;
  }
  .single-related__card:has(.single-related__thumb img) .single-related__thumb {
    flex-shrink: 0;
    width: 100px;
    aspect-ratio: auto;
    height: 80px;
  }
  /* 画像なし（no-thumb）の場合はサムネイルを非表示にしてテキスト全幅 */
  .single-related__card:has(.single-related__no-thumb) {
    flex-direction: column;
  }
  .single-related__card:has(.single-related__no-thumb) .single-related__thumb {
    display: none;
  }
}

/* ── 投稿ヘッダー メタ情報（日付・カテゴリー）── */
.single-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.single-date {
  font-size: 0.82rem;
  color: var(--ew-text-sub, #7A6550);
  letter-spacing: .04em;
}
.single-cats {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.single-cat-link {
  display: inline-block !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  padding: 3px 10px !important;
  border-radius: 20px !important;
  background: var(--ew-accent, #C07A52) !important;
  color: #fff !important;
  text-decoration: none !important;
  letter-spacing: .04em;
  transition: background .2s;
}
.single-cat-link:hover {
  background: var(--ew-accent-dark, #9A5E3C) !important;
  color: #fff !important;
}

/* ── 関連記事: 画像なしカードのフォールバック（:has非対応ブラウザ向け） ── */
.single-related__card--no-image {
  flex-direction: column !important;
}
.single-related__card--no-image .single-related__thumb {
  display: none !important;
}

.ew-footer[data-theme="dark"] {
  background: var(--ew-deep-brown);
  color: rgba(255,255,255,.75);
}
.ew-footer[data-theme="dark"] a { color: rgba(255,255,255,.75); }
.ew-footer[data-theme="dark"] a:hover { color: #fff; }
.ew-footer[data-theme="dark"] .ew-footer__copy { color: rgba(255,255,255,.4); }

.ew-footer[data-theme="light"] {
  background: var(--ew-section-bg);
  color: var(--ew-text);
}
.ew-footer[data-theme="light"] a { color: var(--ew-text); }
.ew-footer[data-theme="light"] .ew-footer__copy { color: var(--ew-text-sub); }

.ew-footer__col a:hover {
  color: var(--ew-accent) !important;
  opacity: 1 !important;
}

/* ── SP/PC テキスト出し分け ── */
.ew-desc--short { display: none; }
@media (max-width: 768px) {
  .ew-desc--full  { display: none; }
  .ew-desc--short { display: block; }
}
