/*
Theme Name: 空き家謎解きゲーム
Theme URI: https://akiyanazo.com/
Description: 空き家謎解きゲーム公式サイト用のテーマ。Twenty Twenty-Five の子テーマ。
Author: 維新エンターテインメント株式会社
Template: twentytwentyfive
Version: 1.0.0
Text Domain: akiyanazo
*/

/* =========================================================
   デザイントークン
   ========================================================= */
:root{
  --ak-bg:        #F3EFE4;
  --ak-paper:     #DED6C4;
  --ak-text:      #242620;
  --ak-text-sub:  #6B6A5F;
  --ak-green:     #31483A;
  --ak-green-dk:  #253829;
  --ak-red:       #A64232;
  --ak-yellow:    #D5A93D;
  --ak-line:      rgba(36,38,32,.14);

  --ak-serif: "Noto Serif JP", serif;
  --ak-sans:  "Noto Sans JP", sans-serif;
  --ak-mono:  "IBM Plex Mono", monospace;

  --ak-w:      1280px;
  --ak-pad:    clamp(20px, 5vw, 48px);
  --ak-gap-s:  clamp(2.5rem, 6vw, 4rem);
  --ak-gap:    clamp(4rem, 10vw, 7rem);
}

/* =========================================================
   ベース
   ========================================================= */
body{
  background: var(--ak-bg);
  color: var(--ak-text);
  font-family: var(--ak-sans);
  font-size: 16px;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4{ font-family: var(--ak-serif); font-weight:600; line-height:1.5; }

/* 余白や枠線を幅に含める（はみ出し防止） */
*,*::before,*::after{ box-sizing:border-box; }

/* 画像のheight属性が実寸で効いてしまうのを防ぐ */
img{ max-width:100%; height:auto; }

a{ color: var(--ak-green); }
a:hover{ color: var(--ak-red); }

:where(a,button,input,select,textarea):focus-visible{
  outline: 2px solid var(--ak-green);
  outline-offset: 2px;
}

/* 数値・GAME番号 */
.ak-mono{ font-family: var(--ak-mono); letter-spacing:.06em; }

/* =========================================================
   レイアウト
   ========================================================= */
.ak-wrap{ max-width: var(--ak-w); margin-inline:auto; padding-inline: var(--ak-pad); }
.ak-narrow{ max-width: 780px; }
.ak-section{ padding-block: var(--ak-gap); }
.ak-bleed{ width:100%; }

/* =========================================================
   ボタン
   ========================================================= */
.ak-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  min-height:48px; padding: .9rem 2rem;
  background: var(--ak-green); color:#F3EFE4;
  font-size: 1rem; font-weight:500; text-decoration:none;
  border:1px solid var(--ak-green); border-radius:2px;
  transition: background .2s, color .2s;
}
.ak-btn:hover{ background: var(--ak-green-dk); color:#F3EFE4; }
.ak-btn--ghost{
  background: transparent; color: var(--ak-text);
  border-color: rgba(36,38,32,.35);
}
.ak-btn--ghost:hover{ background: rgba(36,38,32,.05); color: var(--ak-text); }

/* =========================================================
   小さな装飾（1画面に1〜3個まで）
   ========================================================= */
.ak-mark{ color: var(--ak-red); }
.ak-circle{
  display:inline-block; padding:.1em .55em;
  border:2px solid var(--ak-red); border-radius:50%;
  color: var(--ak-red);
}
.ak-underline{
  background-image: linear-gradient(transparent 62%, rgba(213,169,61,.55) 62%);
}
.ak-label{
  font-family: var(--ak-mono); font-size:.72rem; letter-spacing:.22em;
  color: var(--ak-text-sub); text-transform: uppercase;
}

/* =========================================================
   モーション
   ========================================================= */
.ak-rise{ opacity:0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
.ak-rise.is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .ak-rise{ opacity:1; transform:none; }
}

/* =========================================================
   スクリーンリーダー用
   ========================================================= */
.ak-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* =========================================================
   ゲーム詳細 / 会場詳細
   ========================================================= */

/* --- Hero --- */
.gm-hero{
  position:relative; margin-bottom: var(--ak-gap-s);
  background: var(--ak-paper);
}
/* 写真をヒーローにする場合（会場ページなど）は切り抜いて高さを揃える */
.gm-hero__img{
  width:100%; aspect-ratio: 2.4/1;
  object-fit: cover; object-position: center; display:block;
}
@media (max-width:600px){ .gm-hero__img{ aspect-ratio: 16/10; } }

/* キービジュアルをヒーローにする場合は、絵を切らずに全体を見せる */
.gm-hero--art .gm-hero__img{
  width:100%; height:auto; aspect-ratio:auto; max-height:none; object-fit:fill;
}
.gm-hero__body{ padding: clamp(1.75rem,4vw,3rem) var(--ak-pad) clamp(2rem,5vw,3.5rem); }
.gm-no{
  font-family: var(--ak-mono); font-size:.8rem; letter-spacing:.24em;
  color: var(--ak-red); display:block; margin-bottom:.9rem;
}
.gm-title{
  font-size: clamp(1.9rem,5.5vw,3rem); line-height:1.45; margin:0 0 1rem;
}
.gm-catch{
  font-family: var(--ak-serif); font-size: clamp(1.05rem,2.6vw,1.4rem);
  line-height:1.9; color: var(--ak-text); margin:0;
}

/* --- 数値スペック --- */
.gm-spec{
  display:grid; grid-template-columns: repeat(3,1fr); gap:1px;
  background: var(--ak-line); border:1px solid var(--ak-line);
  margin: var(--ak-gap-s) 0;
}
.gm-spec div{ background: var(--ak-bg); padding:1.3rem 1rem; text-align:center; }
.gm-spec dt{ font-family:var(--ak-mono); font-size:.68rem; letter-spacing:.18em; color:var(--ak-text-sub); }
.gm-spec dd{ margin:.5rem 0 0; font-family:var(--ak-mono); font-size:1.25rem; font-weight:500; }
.gm-spec dd small{ font-family:var(--ak-sans); font-size:.8rem; font-weight:400; }

/* --- 見出し --- */
.gm-h{ margin: var(--ak-gap) 0 1.5rem; }
.gm-h__en{ font-family:var(--ak-mono); font-size:.7rem; letter-spacing:.24em; color:var(--ak-text-sub); display:block; margin-bottom:.5rem; }
.gm-h__ja{ font-size: clamp(1.35rem,3.4vw,1.8rem); margin:0; }

/* --- STORY --- */
.gm-story{ background: var(--ak-paper); padding: clamp(2rem,5vw,3.5rem); }
.gm-story p{ font-family:var(--ak-serif); font-size:clamp(1rem,2.3vw,1.15rem); line-height:2.4; margin:0 0 1.2rem; }
.gm-story p:last-child{ margin-bottom:0; }
.gm-story .gm-you{ border:1px solid var(--ak-text); padding:.1em .7em; }

/* --- 特徴 --- */
.gm-feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.gm-feat h3{ font-size:1.05rem; margin:0 0 .6rem; }
.gm-feat p{ font-size:.92rem; color:var(--ak-text-sub); line-height:2; margin:0; }
.gm-feat__no{ font-family:var(--ak-mono); font-size:.72rem; color:var(--ak-red); letter-spacing:.16em; }

/* --- ギャラリー --- */
.gm-gal{ display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; }
.gm-gal figure{ margin:0; }
.gm-gal img{
  width:100%; height:auto; aspect-ratio:3/2 !important;
  object-fit:cover; display:block;
}
.gm-gal figcaption{ font-size:.78rem; color:var(--ak-text-sub); margin-top:.5rem; }
.gm-gal--wide{ grid-column: span 2; }
.gm-gal--wide img{ aspect-ratio:2.6/1 !important; }

/* --- 表 --- */
.gm-table{ width:100%; border-collapse:collapse; }
.gm-table th,.gm-table td{ padding:1rem .9rem; border-bottom:1px solid var(--ak-line); text-align:left; }
.gm-table thead th{ font-family:var(--ak-mono); font-size:.72rem; letter-spacing:.12em; color:var(--ak-text-sub); font-weight:500; border-bottom:1px solid var(--ak-text); }
.gm-table td.num{ font-family:var(--ak-mono); font-size:1.02rem; }
.gm-table tbody th{ font-weight:500; width:9rem; color:var(--ak-text-sub); font-size:.9rem; }
.gm-note{ font-size:.82rem; color:var(--ak-text-sub); margin-top:.8rem; }

/* --- 遊び方 --- */
.gm-steps{ list-style:none; padding:0; margin:0; counter-reset:s; }
.gm-steps li{ counter-increment:s; display:grid; grid-template-columns:4rem 1fr; gap:1rem; padding:1.4rem 0; border-bottom:1px solid var(--ak-line); }
.gm-steps li::before{ content:"0" counter(s); font-family:var(--ak-mono); font-size:1.1rem; color:var(--ak-red); }
.gm-steps h3{ font-size:1rem; margin:0 0 .3rem; }
.gm-steps p{ margin:0; font-size:.92rem; color:var(--ak-text-sub); }

/* --- 練習問題の図 --- */
.gm-quiz{ margin:1.5rem 0; max-width:560px; }
.gm-quiz img{ width:100%; height:auto; display:block; background:#fff; border:1px solid var(--ak-line); }

/* --- details（練習問題・FAQ） --- */
.gm-det{ border-bottom:1px solid var(--ak-line); }
.gm-det summary{
  cursor:pointer; list-style:none; padding:1.2rem 2.5rem 1.2rem 0;
  position:relative; font-size:1rem; font-weight:500;
}
.gm-det summary::-webkit-details-marker{ display:none; }
.gm-det summary::after{
  content:"+"; position:absolute; right:.4rem; top:1.05rem;
  font-family:var(--ak-mono); font-size:1.2rem; color:var(--ak-red);
}
.gm-det[open] summary::after{ content:"–"; }
.gm-det summary:focus-visible{ outline:2px solid var(--ak-green); outline-offset:2px; }
.gm-det__body{ padding:0 0 1.4rem; font-size:.94rem; color:var(--ak-text-sub); line-height:2.1; }

/* --- 注意事項 --- */
.gm-attn{ border:1px solid var(--ak-line); padding: clamp(1.4rem,3vw,2rem); }
.gm-attn ul{ list-style:none; padding:0; margin:0; }
.gm-attn li{ padding:.55rem 0 .55rem 1.4rem; position:relative; font-size:.93rem; line-height:2; }
.gm-attn li::before{ content:"—"; position:absolute; left:0; color:var(--ak-red); }

/* --- 会場カード --- */
.gm-venue{ display:grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.25rem,3vw,2.5rem); align-items:center; background:var(--ak-paper); }
.gm-venue__img img{ width:100%; height:100%; min-height:220px; object-fit:cover; display:block; }
.gm-venue__body{ padding: clamp(1.5rem,3vw,2.25rem) clamp(1.5rem,3vw,2.25rem) clamp(1.5rem,3vw,2.25rem) 0; }
.gm-venue__status{ font-family:var(--ak-mono); font-size:.7rem; letter-spacing:.16em; color:var(--ak-green); }
.gm-venue h3{ font-size:1.3rem; margin:.5rem 0 .3rem; }
.gm-venue__meta{ font-size:.88rem; color:var(--ak-text-sub); margin:0 0 1.4rem; line-height:2; }
.gm-btns{ display:flex; flex-wrap:wrap; gap:.7rem; }

/* --- 最終CTA --- */
.gm-final{ position:relative; text-align:center; padding: clamp(3rem,8vw,5rem) var(--ak-pad); background:var(--ak-paper); }
.gm-final p{ font-family:var(--ak-serif); font-size:clamp(1.15rem,3vw,1.6rem); line-height:1.9; margin:0 0 1.8rem; }

/* --- スマートフォン --- */
@media (max-width: 782px){
  .gm-spec{ grid-template-columns: repeat(3,1fr); }
  .gm-feats{ grid-template-columns:1fr; gap:2rem; }
  .gm-gal{ grid-template-columns:1fr; }
  .gm-gal--wide{ grid-column:auto; }
  .gm-venue{ grid-template-columns:1fr; }
  .gm-venue__body{ padding: 0 1.4rem 1.75rem; }
  .gm-venue__img img{ min-height:200px; aspect-ratio:16/9; }
  .gm-table tbody th{ width:6.5rem; font-size:.82rem; }
  .gm-steps li{ grid-template-columns:2.75rem 1fr; }
}


/* =========================================================
   追従する予約ボタン
   ========================================================= */
.ak-sticky{
  position: fixed; left:0; right:0; bottom:0; z-index:90;
  background: rgba(243,239,228,.94);
  backdrop-filter: saturate(1.2);
  border-top:1px solid var(--ak-line);
  padding:.7rem var(--ak-pad) calc(.7rem + env(safe-area-inset-bottom));
  transform: translateY(110%); transition: transform .3s ease;
}
.ak-sticky.is-on{ transform:none; }
.ak-sticky__in{
  max-width: 560px; margin-inline:auto; width:100%;
}
.ak-sticky .ak-btn{ display:flex; width:100%; max-width:100%; min-height:54px; padding:.9rem 1rem; font-size:1.05rem; letter-spacing:.08em; }
.gm-final{ margin-bottom: 5.5rem; }


@media (prefers-reduced-motion: reduce){
  .ak-sticky{ transition:none; }
}


/* =========================================================
   ポスター型のカード（縦長キービジュアルを切らずに見せる）
   ========================================================= */
.gm-venue--poster{
  grid-template-columns: 260px 1fr;
  align-items: center;
  padding: clamp(1.25rem, 3vw, 2rem);
  gap: clamp(1.25rem, 3vw, 2.5rem);
}
.gm-venue--poster .gm-venue__img img{
  width:100%; height:auto; min-height:0;
  aspect-ratio: 1 / 1.414;      /* A4比率。原寸と一致するため切れない */
  object-fit: cover; display:block;
  border:1px solid var(--ak-line);
}
.gm-venue--poster .gm-venue__body{ padding:0; }

@media (max-width: 782px){
  .gm-venue--poster{ grid-template-columns:1fr; text-align:center; }
  .gm-venue--poster .gm-venue__img{ max-width:230px; margin-inline:auto; }
  .gm-venue--poster .gm-btns{ justify-content:center; }
}


/* --- 開催期間 --- */
.gm-venue__period{
  font-family: var(--ak-mono); font-size:.82rem; color: var(--ak-text-sub);
  margin:.15rem 0 .6rem;
}

/* --- これまでの開催 --- */
.gm-past{ margin-top: clamp(1.5rem,3vw,2.25rem); }
.gm-past__h{ font-size:1rem; margin:0 0 .6rem; color: var(--ak-text-sub); }
.gm-past__list{ list-style:none; padding:0; margin:0; }
.gm-past__list li{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem 1rem;
  padding:.85rem 0; border-bottom:1px solid var(--ak-line); font-size:.94rem;
}
.gm-past__period{ font-family: var(--ak-mono); font-size:.8rem; color: var(--ak-text-sub); }


/* =========================================================
   トップページ
   ========================================================= */

/* --- HERO --- */
.tp-hero{ position:relative; }
.tp-hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(to top, rgba(20,22,18,.62) 0%, rgba(20,22,18,.28) 38%, rgba(20,22,18,0) 68%);
}
.tp-hero__copy{
  position:absolute; z-index:1; left:0; right:0; bottom:0;
  padding: 0 var(--ak-pad) clamp(1.5rem, 4vw, 3rem);
}
.tp-hero__copy .ak-wrap{ padding-inline:0; }
.tp-hero__copy h1{
  color:#fff; margin:0;
  font-size: clamp(1.6rem, 5.2vw, 3.4rem); line-height:1.5;
  text-shadow: 0 2px 18px rgba(0,0,0,.45);
}
.tp-hero__img{ width:100%; height:auto; aspect-ratio:2.6/1; object-fit:cover; object-position:center 62%; display:block; }
.tp-hero__body{ padding: clamp(2rem,5vw,3.5rem) 0 0; }
.tp-hero__label{
  font-family:var(--ak-mono); font-size:.7rem; letter-spacing:.26em;
  color:var(--ak-text-sub); display:block; margin-bottom:1.2rem;
}
.tp-hero__catch{
  font-size: clamp(2rem, 6vw, 3.4rem); line-height:1.5; margin:0 0 1.2rem;
}
.tp-hero__sub{ font-size:clamp(.95rem,2.2vw,1.1rem); color:var(--ak-text-sub); margin:0 0 2rem; }
.tp-hero__btns{ display:flex; flex-wrap:wrap; gap:.8rem; }

/* ヒーロー下のジェリー */
.tp-intro{ display:grid; grid-template-columns:1fr 130px; gap:clamp(1.5rem,4vw,3rem); align-items:end; }
.tp-intro__jelly{ margin:0; align-self:end; }
.tp-intro__jelly img{ width:100%; height:auto; display:block; }
@media (max-width:782px){
  .tp-intro{ grid-template-columns:1fr; }
  .tp-intro__jelly{ max-width:90px; margin-inline:auto; }
}

/* --- セクション見出し --- */
.tp-h{ margin: var(--ak-gap) 0 1.6rem; }
.tp-h__en{ font-family:var(--ak-mono); font-size:.7rem; letter-spacing:.24em; color:var(--ak-text-sub); display:block; margin-bottom:.5rem; }
.tp-h__ja{ font-size:clamp(1.4rem,3.6vw,2rem); margin:0; }
.tp-lead{ font-size:clamp(1rem,2.4vw,1.15rem); line-height:2.2; }

/* --- EXPERIENCE --- */
.tp-exp{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
.tp-exp figure{ margin:0; }
.tp-exp img{ width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; display:block; }
.tp-exp figcaption{ margin-top:.7rem; font-size:.95rem; }
.tp-exp figcaption span{ display:block; font-size:.83rem; color:var(--ak-text-sub); margin-top:.25rem; }

/* --- GAMES --- */
.tp-games{ display:grid; gap:1.5rem; margin-top:2rem; }
.tp-game{ display:grid; grid-template-columns:300px 1fr; gap:clamp(1.5rem,4vw,3rem); align-items:center; background:var(--ak-paper); padding:clamp(1.5rem,3vw,2.25rem); }
.tp-game__img img{ width:100%; height:auto; aspect-ratio:1/1.414; object-fit:cover; display:block; border:1px solid var(--ak-line); }
.tp-game__no{ font-family:var(--ak-mono); font-size:.75rem; letter-spacing:.2em; color:var(--ak-red); }
.tp-game__title{ font-size:clamp(1.3rem,3vw,1.7rem); margin:.5rem 0 .7rem; }
.tp-game__catch{ font-family:var(--ak-serif); font-size:1.02rem; line-height:1.9; margin:0 0 1.1rem; }
.tp-game__spec,.tp-game__venues{ font-family:var(--ak-mono); font-size:.83rem; color:var(--ak-text-sub); margin:0 0 .4rem; }
.tp-game__venues{ margin-bottom:1.4rem; }

/* --- VENUES --- */
.tp-count{ font-family:var(--ak-mono); font-size:.85rem; color:var(--ak-text-sub); margin:0 0 1.2rem; }
.tp-count__now{ font-size:1.6rem; color:var(--ak-text); }
.tp-venues{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.tp-venue img{ width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; display:block; }
.tp-venue__ph{ aspect-ratio:3/2; background:var(--ak-paper); display:flex; align-items:center; justify-content:center; font-family:var(--ak-mono); font-size:.75rem; letter-spacing:.14em; color:var(--ak-text-sub); }
.tp-venue__body{ padding:.9rem 0 0; }
.tp-venue__pref{ font-family:var(--ak-mono); font-size:.72rem; letter-spacing:.14em; color:var(--ak-red); }
.tp-venue__title{ font-size:1.1rem; margin:.35rem 0 .4rem; }
.tp-venue__title a{ text-decoration:none; color:var(--ak-text); }
.tp-venue__title a:hover{ color:var(--ak-green); }
.tp-venue__game{ font-size:.85rem; color:var(--ak-text-sub); margin:0; }
.tp-venue--soon{ opacity:.55; }

/* --- HOW TO PLAY --- */
.tp-steps{ list-style:none; padding:0; margin:2rem 0 0; display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; counter-reset:t; }
.tp-steps li{ counter-increment:t; border-top:2px solid var(--ak-text); padding-top:1rem; }
.tp-steps li::before{ content:"0" counter(t); font-family:var(--ak-mono); font-size:.78rem; color:var(--ak-red); }
.tp-steps h3{ font-size:1rem; margin:.4rem 0 .4rem; }
.tp-steps p{ font-size:.85rem; color:var(--ak-text-sub); line-height:1.9; margin:0; }

/* --- EXPANSION --- */
.tp-vision{ background:var(--ak-green); color:#F3EFE4; padding:clamp(2.5rem,6vw,4rem) clamp(1.5rem,5vw,3.5rem); }
.tp-vision h2{ color:#fff; font-size:clamp(1.4rem,4vw,2.1rem); margin:0 0 1.2rem; line-height:1.6; }
.tp-vision p{ color:#cfd8d1; margin:0; max-width:44em; }

/* --- BUSINESS --- */
.tp-biz{ display:grid; gap:.9rem; margin-top:1.6rem; }
.tp-bizcard{ display:grid; grid-template-columns:1fr auto; gap:1.5rem; align-items:center;
  border:1px solid var(--ak-line); padding:1.5rem 1.6rem; text-decoration:none; color:var(--ak-text); }
.tp-bizcard:hover{ border-color:var(--ak-green); color:var(--ak-text); }
.tp-bizcard strong{ display:block; font-size:1rem; font-weight:500; margin-bottom:.35rem; }
.tp-bizcard span{ font-size:.85rem; color:var(--ak-text-sub); line-height:1.9; }
.tp-bizcard em{ font-style:normal; font-family:var(--ak-mono); font-size:.78rem; color:var(--ak-green); white-space:nowrap; }

/* --- ABOUT --- */
.tp-corp{ width:100%; border-collapse:collapse; margin-top:1.5rem; }
.tp-corp th{ width:9rem; text-align:left; font-weight:400; font-size:.85rem; color:var(--ak-text-sub); padding:.95rem .3rem; border-bottom:1px solid var(--ak-line); vertical-align:top; }
.tp-corp td{ font-size:.92rem; padding:.95rem .3rem; border-bottom:1px solid var(--ak-line); }

/* --- FINAL --- */
.tp-final{ position:relative; }
.tp-final img{ width:100%; aspect-ratio:21/9; object-fit:cover; display:block; }
.tp-final__body{ background:var(--ak-paper); padding:clamp(2.5rem,6vw,4rem) var(--ak-pad); text-align:center; }
.tp-final__body p{ font-family:var(--ak-serif); font-size:clamp(1.2rem,3.4vw,1.9rem); line-height:1.9; margin:0 0 1.8rem; }

@media (max-width:900px){
  .tp-steps{ grid-template-columns:repeat(2,1fr); }
  .tp-venues{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:782px){
  .tp-hero__img{ aspect-ratio:16/10; }
  .tp-exp{ grid-template-columns:1fr; gap:1.5rem; }
  .tp-exp img{ aspect-ratio:16/9; }
  .tp-game{ grid-template-columns:1fr; }
  .tp-game__img{ max-width:220px; }
  .tp-venues{ grid-template-columns:1fr; }
  .tp-steps{ grid-template-columns:1fr; gap:.5rem; }
  .tp-bizcard{ grid-template-columns:1fr; gap:.8rem; }
  .tp-final img{ aspect-ratio:4/3; }
}


/* =========================================================
   固定ページ個別スタイル（旧・ページ内直書きから移設）
   ========================================================= */

/* ---------- /fc/ FC加盟者募集 ---------- */
body.page--fc{background:#F3EFE4;color:#242620;}
body.page--fc .wp-site-blocks,body.page--fc header.wp-block-template-part{background:#F3EFE4;}
body.page--fc p{line-height:1.95;}
body.page--fc a{color:#31483A;}
body.page--fc h2{font-family:'Noto Serif JP',serif;font-weight:600;font-size:1.5rem;color:#242620;margin:4.5rem 0 1.4rem;padding-bottom:.6rem;border-bottom:2px solid #D5A93D;}
body.page--fc h3{font-family:'Noto Serif JP',serif;font-weight:500;font-size:1.08rem;color:#242620;margin:2.6rem 0 .9rem;}
body.page--fc .fv{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center;background:#242620;color:#F3EFE4;padding:3rem 2.5rem;margin:0 0 1rem;border-radius:3px;}
body.page--fc .fv-sub{font-size:.76rem;letter-spacing:.22em;color:#D5A93D;margin:0 0 1.1rem;}
body.page--fc h1.fv-catch{font-family:'Noto Serif JP',serif;font-weight:600;font-size:2.05rem;line-height:1.6;color:#fff;margin:0 0 1.2rem;}
body.page--fc .fv-lead{font-size:.92rem;line-height:1.9;color:#cfd8d1;margin:0 0 1.8rem;}
body.page--fc .fv-img img{width:100%;height:auto;display:block;border-radius:2px;}
body.page--fc .cta{display:inline-block;background:#31483A;color:#F3EFE4;font-weight:600;text-decoration:none;padding:1rem 2.4rem;border-radius:2px;font-size:.95rem;letter-spacing:.04em;}
body.page--fc .cta:hover{background:#253829;}
body.page--fc .cta-wrap{text-align:center;margin:3rem 0 0;}
body.page--fc .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.8rem 0 0;}
body.page--fc .stat{background:#fff;border-top:3px solid #D5A93D;padding:1.5rem 1.2rem;}
body.page--fc .stat-num{font-family:'Noto Serif JP',serif;font-size:2.1rem;font-weight:600;color:#242620;line-height:1.2;}
body.page--fc .stat-num span{font-size:.9rem;margin-left:.15em;}
body.page--fc .stat-lbl{font-size:.78rem;color:#6B6A5F;line-height:1.7;margin-top:.6rem;}
body.page--fc .src,body.page--fc .note{font-size:.78rem;color:#6B6A5F;}
body.page--fc .cond{font-size:.85rem;color:#6B6A5F;background:#fff;border-left:3px solid #D5A93D;padding:.8rem 1rem;}
body.page--fc .tags{margin:1.6rem 0 0;}
body.page--fc .tags span{display:inline-block;border:1px solid #D5A93D;color:#31483A;font-size:.78rem;padding:.4rem 1rem;margin:0 .5rem .5rem 0;border-radius:2px;}
body.page--fc ul.feat{list-style:none;padding:0;margin:1.6rem 0 0;}
body.page--fc ul.feat li{background:#fff;padding:1.2rem 1.4rem;margin-bottom:.7rem;border-left:3px solid #D5A93D;}
body.page--fc ul.feat strong{display:block;color:#242620;font-size:.95rem;margin-bottom:.35rem;}
body.page--fc .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.8rem 0 0;}
body.page--fc .step{background:#fff;padding:1.6rem 1.3rem;position:relative;}
body.page--fc .stepno{font-family:'Noto Serif JP',serif;font-size:1.5rem;color:#D5A93D;font-weight:600;}
body.page--fc .step h4{font-size:.98rem;color:#242620;margin:.5rem 0 .6rem;}
body.page--fc .step p{font-size:.83rem;color:#6B6A5F;line-height:1.85;margin:0;}
body.page--fc .wp-block-table table{border-collapse:collapse;width:100%;background:#fff;}
body.page--fc .wp-block-table th{background:#242620;color:#F3EFE4;font-weight:500;font-size:.85rem;padding:.8rem 1rem;text-align:left;}
body.page--fc .wp-block-table td{border-bottom:1px solid rgba(36,38,32,.14);padding:.8rem 1rem;font-size:.88rem;}
body.page--fc .wp-block-table figcaption{font-size:.78rem;color:#6B6A5F;text-align:left;margin-top:.6rem;}
body.page--fc .t-sim tbody tr:last-child td{background:#242620;color:#D5A93D;font-size:1rem;}
body.page--fc .t-roi tbody tr:nth-child(3) td{background:#EDE7D8;}
body.page--fc .t-corp th{width:8rem;}
body.page--fc .bars{margin:1.6rem 0 0;}
body.page--fc .bar{display:flex;align-items:center;gap:.9rem;margin-bottom:.6rem;}
body.page--fc .bl{width:3rem;font-size:.82rem;color:#6B6A5F;text-align:right;flex:none;}
body.page--fc .bt{height:22px;background:#d8c9a4;flex:none;border-radius:1px;}
body.page--fc .bt.is-on{background:#D5A93D;}
body.page--fc .bv{font-size:.85rem;color:#242620;}
body.page--fc .disc,body.page--fc .disc-final{font-size:.78rem;color:#6B6A5F;background:#DED6C4;padding:.9rem 1.1rem;border-radius:2px;margin-top:1.2rem;}
body.page--fc ol.flow{list-style:none;counter-reset:f;padding:0;margin:1.8rem 0 0;}
body.page--fc ol.flow li{counter-increment:f;position:relative;padding:0 0 1.6rem 3.2rem;border-left:1px solid rgba(36,38,32,.22);margin-left:1rem;}
body.page--fc ol.flow li:last-child{border-left-color:transparent;padding-bottom:0;}
body.page--fc ol.flow li::before{content:counter(f);position:absolute;left:-1rem;top:-.15rem;width:2rem;height:2rem;background:#31483A;color:#F3EFE4;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;}
body.page--fc ol.flow strong{color:#242620;font-size:.98rem;}
body.page--fc ol.flow span{display:block;font-size:.83rem;color:#6B6A5F;margin-top:.3rem;line-height:1.85;}
body.page--fc h3.faq-q{background:#fff;padding:.9rem 1.2rem;border-left:3px solid #D5A93D;margin:1rem 0 0;font-size:.95rem;}
body.page--fc .faq-a{font-size:.88rem;color:#6B6A5F;padding:.2rem 1.2rem 0;margin:.5rem 0 0;}
body.page--fc .contact-box{background:#242620;padding:2.5rem;text-align:center;border-radius:3px;margin-top:1.6rem;}
body.page--fc .contact-box .cta{margin:.4rem .4rem;}
body.page--fc .cta-tel{background:transparent;color:#D5A93D;border:1px solid #D5A93D;}
body.page--fc .contact-note{color:#b9b2a6;font-size:.8rem;margin:1.2rem 0 0;}
@media(max-width:781px){
body.page--fc .fv{grid-template-columns:1fr;padding:2rem 1.4rem;gap:1.6rem;}
body.page--fc h1.fv-catch{font-size:1.5rem;}
body.page--fc .stat-row,body.page--fc .steps{grid-template-columns:1fr;}
body.page--fc .wp-block-table{overflow-x:auto;}
body.page--fc .bl{width:2.4rem;font-size:.75rem;}
body.page--fc .bv{font-size:.78rem;}
}

body.page--fc .wpcf7{background:#fff;padding:2.2rem 2rem;border-radius:3px;margin-top:1.6rem;text-align:left;}
body.page--fc .cf7-row{margin-bottom:1.3rem;}
body.page--fc .cf7-row label{display:block;font-size:.88rem;color:#242620;font-weight:500;}
body.page--fc .cf7-row .req{display:inline-block;background:#31483A;color:#F3EFE4;font-size:.66rem;padding:.12rem .5rem;border-radius:2px;margin-left:.6rem;vertical-align:middle;font-weight:600;}
body.page--fc .wpcf7 input[type=text],body.page--fc .wpcf7 input[type=email],body.page--fc .wpcf7 input[type=tel],body.page--fc .wpcf7 select,body.page--fc .wpcf7 textarea{width:100%;margin-top:.45rem;padding:.75rem .9rem;border:1px solid rgba(36,38,32,.22);border-radius:2px;font-size:.92rem;background:#FFFFFF;color:#242620;box-sizing:border-box;}
body.page--fc .wpcf7 input:focus,body.page--fc .wpcf7 select:focus,body.page--fc .wpcf7 textarea:focus{outline:none;border-color:#D5A93D;background:#fff;}
body.page--fc .wpcf7 textarea{line-height:1.8;resize:vertical;}
body.page--fc .cf7-submit{text-align:center;margin-top:2rem;}
body.page--fc .wpcf7 input[type=submit]{background:#31483A;color:#F3EFE4;border:none;font-weight:600;font-size:.98rem;padding:1rem 3rem;border-radius:2px;cursor:pointer;letter-spacing:.04em;}
body.page--fc .wpcf7 input[type=submit]:hover{background:#253829;}
body.page--fc .wpcf7-not-valid-tip{color:#A64232;font-size:.78rem;margin-top:.35rem;}
body.page--fc .wpcf7-response-output{border:1px solid #D5A93D!important;background:#EDE7D8;padding:1rem!important;font-size:.88rem;margin:1.5rem 0 0!important;border-radius:2px;}
body.page--fc .wpcf7-spinner{display:block;margin:.8rem auto 0;}
body.page--fc .contact-alt{text-align:center;margin-top:1.6rem;}
body.page--fc .contact-alt a{color:#D5A93D;}

body.page--fc .fc-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1.8rem 0;}
body.page--fc .fc-gal figure{margin:0;}
body.page--fc .fc-gal img{width:100%;height:160px;object-fit:cover;display:block;border-radius:2px;}
body.page--fc .fc-gal figcaption{font-size:.74rem;color:#6B6A5F;margin-top:.45rem;}
body.page--fc .fc-shot{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.5rem 0 0;}
body.page--fc .fc-shot img{width:100%;height:180px;object-fit:cover;display:block;border-radius:2px;}
@media(max-width:781px){body.page--fc .fc-gal,body.page--fc .fc-shot{grid-template-columns:1fr;}}


body.page--fc .stat-num em{font-style:normal;font-size:1.6rem;font-weight:600;margin:0 .04em;}

/* ---------- /owner/ 空き家オーナー募集 ---------- */
body.page--owner{background:#F3EFE4;color:#242620;}
body.page--owner .wp-site-blocks,body.page--owner header.wp-block-template-part{background:#F3EFE4;}

body.page--owner h1.wp-block-post-title{display:none;}
body.page--owner a{color:#31483A;}
body.page--owner p{line-height:2.1;font-size:1.02rem;}
body.page--owner h2{font-family:'Noto Serif JP',serif;font-weight:600;font-size:1.55rem;color:#242620;margin:4.5rem 0 1.6rem;padding-bottom:.6rem;border-bottom:2px solid #D5A93D;line-height:1.6;}
body.page--owner h3{font-family:'Noto Serif JP',serif;font-weight:500;font-size:1.1rem;color:#242620;margin:0 0 .7rem;line-height:1.6;}
body.page--owner .ow-fv{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center;background:#242620;padding:3.2rem 2.6rem;border-radius:3px;}
body.page--owner h1.ow-catch{font-family:'Noto Serif JP',serif;font-weight:600;font-size:1.95rem;line-height:1.75;color:#fff;margin:0 0 1.6rem;}
body.page--owner ul.ow-points{list-style:none;padding:0;margin:0 0 2rem;}
body.page--owner ul.ow-points li{color:#cfd8d1;font-size:1rem;padding:.45rem 0 .45rem 1.5rem;position:relative;}
body.page--owner ul.ow-points li::before{content:"";position:absolute;left:0;top:1.1rem;width:8px;height:8px;background:#D5A93D;border-radius:50%;}
body.page--owner ul.ow-points strong{color:#D5A93D;font-size:1.15rem;}
body.page--owner .ow-fv-img img{width:100%;height:250px;object-fit:cover;display:block;border-radius:2px;}
body.page--owner .ow-cta{display:inline-block;background:#31483A;color:#F3EFE4;font-weight:600;text-decoration:none;padding:1.05rem 2.6rem;border-radius:2px;font-size:1.02rem;}
body.page--owner .ow-cta:hover{background:#253829;}
body.page--owner .ow-ctawrap{text-align:center;margin:3rem 0 0;}
body.page--owner ul.ow-check{list-style:none;padding:0;margin:1.8rem 0 0;}
body.page--owner ul.ow-check li{background:#fff;padding:1.1rem 1.4rem 1.1rem 3.4rem;margin-bottom:.7rem;position:relative;font-size:1.02rem;border-radius:2px;}
body.page--owner ul.ow-check li::before{content:"✓";position:absolute;left:1.3rem;color:#D5A93D;font-weight:700;}
body.page--owner .ow-gal{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.8rem 0;}
body.page--owner .ow-gal figure{margin:0;}
body.page--owner .ow-gal img{width:100%;height:190px;object-fit:cover;display:block;border-radius:2px;}
body.page--owner .ow-gal figcaption{font-size:.82rem;color:#6B6A5F;margin-top:.5rem;}
body.page--owner ul.ow-facts{list-style:none;padding:0;margin:1.6rem 0 0;}
body.page--owner ul.ow-facts li{background:#fff;padding:1.2rem 1.4rem;margin-bottom:.7rem;border-left:3px solid #D5A93D;font-size:.96rem;color:#6B6A5F;line-height:2;}
body.page--owner ul.ow-facts strong{display:block;color:#242620;font-size:1.02rem;margin-bottom:.3rem;}
body.page--owner .ow-callout{background:#DED6C4;border:1px solid rgba(36,38,32,.18);padding:1.3rem 1.5rem;border-radius:2px;margin:1.8rem 0;}
body.page--owner .ow-callout p{margin:0;font-size:.96rem;color:#3d3b33;line-height:2;}
body.page--owner .ow-merits{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.8rem;}
body.page--owner .ow-m{background:#fff;padding:1.7rem 1.5rem;border-radius:2px;}
body.page--owner .ow-mn{display:block;font-family:'Noto Serif JP',serif;font-size:1.35rem;color:#D5A93D;font-weight:600;margin-bottom:.5rem;}
body.page--owner .ow-m p{font-size:.94rem;color:#6B6A5F;line-height:2;margin:0;}
body.page--owner ul.ow-welcome{list-style:none;padding:0;margin:1.8rem 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;}
body.page--owner ul.ow-welcome li{background:#fff;border:1px solid rgba(36,38,32,.18);padding:.95rem 1rem;text-align:center;font-size:.95rem;border-radius:2px;}
body.page--owner .ow-quote{background:#242620;padding:2rem;text-align:center;margin-top:1.4rem;border-radius:2px;}
body.page--owner .ow-quote p{margin:0;color:#D5A93D;font-family:'Noto Serif JP',serif;font-size:1.15rem;line-height:2;}
body.page--owner table.ow-terms{width:100%;border-collapse:collapse;margin-top:1.8rem;background:#fff;}
body.page--owner table.ow-terms th{width:10rem;text-align:left;font-weight:500;font-size:.98rem;color:#242620;background:#EDE7D8;padding:1.1rem 1.3rem;border-bottom:1px solid rgba(36,38,32,.14);}
body.page--owner table.ow-terms td{font-size:1rem;padding:1.1rem 1.3rem;border-bottom:1px solid rgba(36,38,32,.14);}
body.page--owner .ow-small{font-size:.88rem;color:#6B6A5F;}
body.page--owner .ow-voice{background:#fff;border:1px dashed rgba(36,38,32,.25);padding:2.2rem;text-align:center;border-radius:2px;margin-top:1.8rem;}
body.page--owner .ow-voice-soon{color:#242620;font-size:1rem;margin:0 0 .8rem;}
body.page--owner .ow-voice-lead{color:#6B6A5F;font-size:.92rem;margin:0;}
body.page--owner ol.ow-flow{list-style:none;counter-reset:f;padding:0;margin:1.8rem 0 0;}
body.page--owner ol.ow-flow li{counter-increment:f;position:relative;padding:0 0 1.8rem 3.4rem;border-left:1px solid rgba(36,38,32,.22);margin-left:1.1rem;}
body.page--owner ol.ow-flow li:last-child{border-left-color:transparent;padding-bottom:0;}
body.page--owner ol.ow-flow li::before{content:counter(f);position:absolute;left:-1.1rem;top:-.2rem;width:2.2rem;height:2.2rem;background:#31483A;color:#F3EFE4;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.92rem;font-weight:600;}
body.page--owner ol.ow-flow strong{color:#242620;font-size:1.05rem;}
body.page--owner ol.ow-flow span{display:block;font-size:.92rem;color:#6B6A5F;margin-top:.35rem;line-height:2;}
body.page--owner h3.wp-block-heading{background:#fff;padding:1.1rem 1.4rem;border-left:3px solid #D5A93D;margin:1.1rem 0 0;font-size:1.02rem;}
body.page--owner .ow-faq-a{font-size:.96rem;color:#6B6A5F;padding:.3rem 1.4rem 0;margin:.6rem 0 0;}
body.page--owner .wpcf7{background:#fff;padding:2.4rem 2.2rem;margin-top:1.8rem;border-radius:2px;}
body.page--owner .cf7-row{margin-bottom:1.6rem;}
body.page--owner .cf7-row label{display:block;font-size:1rem;color:#242620;font-weight:500;}
body.page--owner .cf7-row .req{display:inline-block;background:#31483A;color:#F3EFE4;font-size:.7rem;padding:.14rem .55rem;border-radius:2px;margin-left:.6rem;vertical-align:middle;font-weight:600;}
body.page--owner .cf7-row .hint{display:block;font-size:.85rem;color:#6B6A5F;margin-top:.4rem;font-weight:400;}
body.page--owner .wpcf7 input[type=text],body.page--owner .wpcf7 input[type=email],body.page--owner .wpcf7 input[type=tel],body.page--owner .wpcf7 select,body.page--owner .wpcf7 textarea{width:100%;margin-top:.5rem;padding:.85rem 1rem;border:1px solid rgba(36,38,32,.22);border-radius:2px;font-size:1rem;background:#FFFFFF;color:#242620;box-sizing:border-box;}
body.page--owner .wpcf7 input:focus,body.page--owner .wpcf7 select:focus,body.page--owner .wpcf7 textarea:focus{outline:none;border-color:#D5A93D;background:#fff;}
body.page--owner .cf7-submit{text-align:center;margin-top:2.2rem;}
body.page--owner .wpcf7 input[type=submit]{background:#31483A;color:#F3EFE4;border:none;font-weight:600;font-size:1.05rem;padding:1.1rem 3.2rem;border-radius:2px;cursor:pointer;}
body.page--owner .wpcf7 input[type=submit]:hover{background:#253829;}
body.page--owner .wpcf7-not-valid-tip{color:#A64232;font-size:.85rem;margin-top:.35rem;}
body.page--owner .wpcf7-response-output{border:1px solid #D5A93D!important;background:#EDE7D8;padding:1.1rem!important;font-size:.95rem;margin:1.6rem 0 0!important;}
body.page--owner .ow-tel{text-align:center;margin-top:2.5rem;padding-top:2rem;border-top:1px solid #ddd5c7;}
body.page--owner .ow-tel p{margin:0;color:#6B6A5F;font-size:.95rem;}
body.page--owner .ow-telnum a{font-family:'Noto Serif JP',serif;font-size:2rem;color:#31483A;text-decoration:none;letter-spacing:.04em;}
body.page--owner .ow-telh{font-size:.88rem;margin-top:.4rem!important;}
body.page--owner table.ow-corp{width:100%;border-collapse:collapse;margin-top:1.5rem;background:#fff;}
body.page--owner table.ow-corp th{width:8rem;text-align:left;font-weight:500;font-size:.92rem;color:#6B6A5F;padding:1rem 1.2rem;border-bottom:1px solid rgba(36,38,32,.14);vertical-align:top;}
body.page--owner table.ow-corp td{font-size:.98rem;padding:1rem 1.2rem;border-bottom:1px solid rgba(36,38,32,.14);}
@media(max-width:781px){
body.page--owner .ow-fv{grid-template-columns:1fr;padding:2.2rem 1.5rem;gap:1.6rem;}
body.page--owner h1.ow-catch{font-size:1.45rem;}
body.page--owner .ow-merits,body.page--owner .ow-gal{grid-template-columns:1fr;}
body.page--owner ul.ow-welcome{grid-template-columns:1fr 1fr;}
body.page--owner table.ow-terms th{width:7rem;font-size:.9rem;padding:.9rem;}
body.page--owner table.ow-terms td{font-size:.95rem;padding:.9rem;}
body.page--owner .ow-telnum a{font-size:1.7rem;}
}

/* ---------- /government/ 自治体・企業向け ---------- */
body.page--government{background:#F3EFE4;color:#242620;}
body.page--government .wp-site-blocks,body.page--government header.wp-block-template-part{background:#F3EFE4;}

body.page--government h1.wp-block-post-title{display:none;}
body.page--government a{color:#31483A;}
body.page--government p{line-height:1.95;font-size:.93rem;}
body.page--government h2{font-family:'Noto Serif JP',serif;font-weight:600;font-size:1.4rem;color:#242620;margin:4rem 0 1.3rem;padding-bottom:.55rem;border-bottom:2px solid #D5A93D;}
body.page--government h3{font-family:'Noto Serif JP',serif;font-weight:500;font-size:1.02rem;color:#242620;margin:0 0 .6rem;}
body.page--government .gv-fv{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;background:#242620;padding:3rem 2.5rem;border-radius:3px;}
body.page--government .gv-sub{font-size:.75rem;letter-spacing:.2em;color:#D5A93D;margin:0 0 1.1rem;}
body.page--government h1.gv-catch{font-family:'Noto Serif JP',serif;font-weight:600;font-size:1.85rem;line-height:1.65;color:#fff;margin:0 0 1rem;}
body.page--government .gv-lead{color:#cfd8d1;font-size:.95rem;margin:0 0 1.8rem;}
body.page--government .gv-cta{display:inline-block;background:#31483A;color:#F3EFE4;font-weight:600;text-decoration:none;padding:.95rem 2.2rem;border-radius:2px;font-size:.92rem;}
body.page--government .gv-cta:hover{background:#253829;}
body.page--government .gv-fv-img img{width:100%;height:230px;object-fit:cover;display:block;border-radius:2px;}
body.page--government .gv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.8rem 0 .8rem;}
body.page--government .gv-stats>div{background:#fff;border-top:3px solid #D5A93D;padding:1.4rem 1.2rem;}
body.page--government .gv-stats .n{display:block;font-family:'Noto Serif JP',serif;font-size:2rem;font-weight:600;color:#242620;line-height:1.2;}
body.page--government .gv-stats .n em{font-style:normal;font-size:1.5rem;}
body.page--government .gv-stats .n small{font-size:.85rem;}
body.page--government .gv-stats .l{display:block;font-size:.77rem;color:#6B6A5F;line-height:1.7;margin-top:.55rem;}
body.page--government .gv-src{font-size:.78rem;color:#6B6A5F;}
body.page--government .gv-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.8rem;}
body.page--government .gv-card{background:#fff;padding:1.6rem 1.3rem;}
body.page--government .gv-no{display:block;font-family:'Noto Serif JP',serif;font-size:1.3rem;color:#D5A93D;font-weight:600;margin-bottom:.5rem;}
body.page--government .gv-card p{font-size:.83rem;color:#6B6A5F;line-height:1.85;margin:0;}
body.page--government ul.gv-effect{list-style:none;padding:0;margin:1.6rem 0 0;}
body.page--government ul.gv-effect li{background:#fff;padding:1rem 1.3rem;margin-bottom:.6rem;border-left:3px solid #D5A93D;font-size:.9rem;}
body.page--government .gv-case{display:grid;grid-template-columns:.85fr 1.15fr;gap:1.6rem;background:#fff;padding:1.6rem;margin-top:1.8rem;align-items:center;}
body.page--government .gv-case-img img{width:100%;height:170px;object-fit:cover;display:block;border-radius:2px;}
body.page--government .gv-case-txt p{font-size:.86rem;color:#6B6A5F;margin:0 0 .6rem;}
body.page--government .gv-link a{font-size:.85rem;}
body.page--government .gv-note{font-size:.8rem;color:#6B6A5F;margin-top:1rem;}
body.page--government .wpcf7{background:#fff;padding:2.2rem 2rem;margin-top:1.6rem;}
body.page--government .cf7-row{margin-bottom:1.3rem;}
body.page--government .cf7-row label{display:block;font-size:.88rem;color:#242620;font-weight:500;}
body.page--government .cf7-row .req{display:inline-block;background:#31483A;color:#F3EFE4;font-size:.65rem;padding:.12rem .5rem;border-radius:2px;margin-left:.6rem;vertical-align:middle;font-weight:600;}
body.page--government .wpcf7 input[type=text],body.page--government .wpcf7 input[type=email],body.page--government .wpcf7 input[type=tel],body.page--government .wpcf7 textarea{width:100%;margin-top:.45rem;padding:.75rem .9rem;border:1px solid rgba(36,38,32,.22);border-radius:2px;font-size:.92rem;background:#FFFFFF;color:#242620;box-sizing:border-box;}
body.page--government .wpcf7 input:focus,body.page--government .wpcf7 textarea:focus{outline:none;border-color:#D5A93D;background:#fff;}
body.page--government .cf7-submit{text-align:center;margin-top:2rem;}
body.page--government .wpcf7 input[type=submit]{background:#31483A;color:#F3EFE4;border:none;font-weight:600;font-size:.95rem;padding:1rem 3rem;border-radius:2px;cursor:pointer;}
body.page--government .wpcf7-not-valid-tip{color:#A64232;font-size:.78rem;margin-top:.35rem;}
body.page--government .wpcf7-response-output{border:1px solid #D5A93D!important;background:#EDE7D8;padding:1rem!important;font-size:.88rem;margin:1.5rem 0 0!important;}
body.page--government .gv-tel{text-align:center;margin-top:1.5rem;}
body.page--government .gv-tel p{font-size:.88rem;color:#6B6A5F;}
body.page--government table.gv-corp{width:100%;border-collapse:collapse;margin-top:1.5rem;background:#fff;}
body.page--government table.gv-corp th{width:8rem;text-align:left;font-weight:500;font-size:.85rem;color:#6B6A5F;padding:.9rem 1.1rem;border-bottom:1px solid rgba(36,38,32,.14);vertical-align:top;}
body.page--government table.gv-corp td{font-size:.89rem;padding:.9rem 1.1rem;border-bottom:1px solid rgba(36,38,32,.14);}
@media(max-width:781px){
body.page--government .gv-fv{grid-template-columns:1fr;padding:2rem 1.4rem;gap:1.5rem;}
body.page--government h1.gv-catch{font-size:1.4rem;}
body.page--government .gv-stats,body.page--government .gv-cards,body.page--government .gv-case{grid-template-columns:1fr;}
body.page--government table.gv-corp th{width:6rem;font-size:.78rem;}
}



/* ---------- /contact/ お問い合わせ ---------- */
body.page--contact h1.wp-block-post-title{ font-size:clamp(1.5rem,4vw,2rem); border-left:3px solid var(--ak-green); padding-left:.7em; }
body.page--contact .ct-note{ background:var(--ak-paper); border-left:3px solid var(--ak-green); padding:1rem 1.3rem; margin:2rem 0; }
body.page--contact .ct-note p{ margin:0; font-size:.9rem; color:var(--ak-text-sub); }
body.page--contact .wpcf7{ background:#fff; border:1px solid var(--ak-line); padding:clamp(1.5rem,4vw,2.4rem); margin-top:2rem; }
body.page--contact .cf7-row{ margin-bottom:1.4rem; }
body.page--contact .cf7-row label{ display:block; font-size:.95rem; font-weight:500; }
body.page--contact .cf7-row .req{ display:inline-block; background:var(--ak-red); color:#F3EFE4; font-size:.68rem; padding:.14rem .55rem; border-radius:2px; margin-left:.6rem; vertical-align:middle; }
body.page--contact .wpcf7 input[type=text],body.page--contact .wpcf7 input[type=email],body.page--contact .wpcf7 input[type=tel],body.page--contact .wpcf7 select,body.page--contact .wpcf7 textarea{ width:100%; margin-top:.5rem; padding:.8rem 1rem; border:1px solid rgba(36,38,32,.22); border-radius:2px; font-size:1rem; background:#fff; color:var(--ak-text); box-sizing:border-box; }
body.page--contact .wpcf7 input:focus,body.page--contact .wpcf7 select:focus,body.page--contact .wpcf7 textarea:focus{ outline:none; border-color:var(--ak-green); }
body.page--contact .cf7-submit{ text-align:center; margin-top:2rem; }
body.page--contact .wpcf7 input[type=submit]{ background:var(--ak-green); color:#F3EFE4; border:none; font-weight:500; font-size:1rem; padding:1rem 3rem; border-radius:2px; cursor:pointer; min-height:48px; }
body.page--contact .wpcf7 input[type=submit]:hover{ background:#253829; }
body.page--contact .wpcf7-not-valid-tip{ color:var(--ak-red); font-size:.82rem; margin-top:.35rem; }
body.page--contact .wpcf7-response-output{ border:1px solid var(--ak-green)!important; background:var(--ak-paper); padding:1rem!important; font-size:.92rem; margin:1.5rem 0 0!important; }
body.page--contact .ct-tel{ text-align:center; margin-top:3rem; padding-top:2rem; border-top:1px solid var(--ak-line); }
body.page--contact .ct-tel p{ margin:0; color:var(--ak-text-sub); font-size:.9rem; }
body.page--contact .ct-num a{ font-family:var(--ak-serif); font-size:1.8rem; color:var(--ak-green); text-decoration:none; letter-spacing:.04em; }
body.page--contact .ct-hours{ font-size:.82rem; margin-top:.3rem!important; }

/* ---------- /chusya/ 会場のご案内（参加者専用） ---------- */
body.page--chusya h2{ font-size:clamp(1.2rem,3vw,1.5rem); border-left:3px solid var(--ak-green); padding-left:.7em; margin-top:2.5rem; }
body.page--chusya h3{ font-size:1.05rem; color:var(--ak-text-sub); }
body.page--chusya figure img{ border:1px solid var(--ak-line); }
body.page--chusya hr.wp-block-separator{ border-color:var(--ak-line); margin:2.5rem 0; }

/* ---------- 共通：ヒーローを持つページの上部余白を詰める ---------- */
body.page--fc h1.wp-block-post-title{ display:none; }
body.page--fc main,body.page--owner main,body.page--government main{ margin-top:0!important; }
body.page--fc main>.wp-block-group:first-of-type,
body.page--owner main>.wp-block-group:first-of-type,
body.page--government main>.wp-block-group:first-of-type{ padding-top:0!important; }


/* ---------- /jelly/ たぬき探偵ジェリーとは ---------- */
body.page--jelly h1.wp-block-post-title{ display:none; }
body.page--jelly main{ margin-top:0!important; }
.jl-hero{ display:grid; grid-template-columns:1fr 280px; gap:clamp(1.5rem,4vw,3.5rem); align-items:center;
  background:var(--ak-paper); padding:clamp(1.75rem,4vw,3rem); margin-top:clamp(1.5rem,4vw,2.5rem); }
.jl-en{ font-family:var(--ak-mono); font-size:.72rem; letter-spacing:.24em; color:var(--ak-text-sub); display:block; margin-bottom:.6rem; }
.jl-title{ font-size:clamp(1.6rem,4.4vw,2.4rem); margin:0 0 1.2rem; }
.jl-hero p{ margin:0 0 1rem; font-size:.96rem; line-height:2.1; }
.jl-hero p:last-child{ margin-bottom:0; }
.jl-hero__img{ margin:0; }
.jl-hero__img img{ width:100%; height:auto; display:block; }

.jl-chars{ display:grid; gap:clamp(1.5rem,4vw,2.5rem); margin-top:2rem; }
.jl-char{ display:grid; grid-template-columns:180px 1fr; gap:clamp(1.25rem,3vw,2.5rem); align-items:start;
  border-top:1px solid var(--ak-line); padding-top:clamp(1.5rem,3vw,2.25rem); }
.jl-char figure{ margin:0; background:var(--ak-paper); padding:1rem; }
.jl-char figure img{ width:100%; height:auto; display:block; }
.jl-no{ font-family:var(--ak-mono); font-size:.78rem; letter-spacing:.2em; color:var(--ak-red); }
.jl-char h3{ font-size:1.25rem; margin:.4rem 0 .8rem; }
.jl-char h3 small{ font-size:.8em; font-weight:400; }
.jl-char p{ font-size:.94rem; line-height:2.1; margin:0 0 .9rem; }
.jl-char p:last-child{ margin-bottom:0; }

.jl-story{ background:var(--ak-paper); padding:clamp(1.75rem,5vw,3.5rem); }
.jl-story p{ font-family:var(--ak-serif); font-size:clamp(.98rem,2.2vw,1.08rem); line-height:2.4; margin:0 0 1.4rem; }
.jl-story p:last-child{ margin-bottom:0; }

.jl-links{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:var(--ak-gap-s); }

@media (max-width:782px){
  .jl-hero{ grid-template-columns:1fr; }
  .jl-hero__img{ max-width:190px; margin-inline:auto; order:-1; }
  .jl-char{ grid-template-columns:1fr; }
  .jl-char figure{ max-width:200px; }
}


/* --- たぬき探偵ジェリーとは バナー --- */
.tp-jellybnr{
  display:grid; grid-template-columns:120px 1fr auto; gap:clamp(1.25rem,3vw,2.25rem);
  align-items:center; background:var(--ak-paper);
  padding:clamp(1.25rem,3vw,2rem); margin-top:1.6rem;
  text-decoration:none; color:var(--ak-text);
}
.tp-jellybnr:hover{ color:var(--ak-text); box-shadow:inset 0 0 0 1px var(--ak-green); }
.tp-jellybnr img{ width:100%; height:auto; display:block; }
.tp-jellybnr__en{ font-family:var(--ak-mono); font-size:.68rem; letter-spacing:.22em; color:var(--ak-red); display:block; margin-bottom:.4rem; }
.tp-jellybnr strong{ display:block; font-family:var(--ak-serif); font-size:clamp(1.05rem,2.6vw,1.35rem); font-weight:600; margin-bottom:.5rem; }
.tp-jellybnr span.txt{ display:block; font-size:.88rem; color:var(--ak-text-sub); line-height:1.95; }
.tp-jellybnr em{ font-style:normal; font-family:var(--ak-mono); font-size:.78rem; color:var(--ak-green); white-space:nowrap; }
@media (max-width:782px){
  .tp-jellybnr{ grid-template-columns:80px 1fr; }
  .tp-jellybnr em{ grid-column:1 / -1; }
}


/* ---------- /owner/ オーナー様の声 ---------- */
body.page--owner .ow-voice{
  background:#fff; border:1px solid rgba(36,38,32,.14);
  padding:clamp(1.75rem,5vw,3.5rem); border-radius:2px; text-align:left; margin-top:1.8rem;
}
body.page--owner .ow-voice__eyebrow{
  font-family:var(--ak-mono); font-size:.72rem; letter-spacing:.22em;
  color:var(--ak-red); display:block; margin-bottom:.9rem;
}
body.page--owner .ow-voice__head{
  font-family:var(--ak-serif); font-size:clamp(1.25rem,3.4vw,1.9rem);
  line-height:1.75; color:var(--ak-text); margin:0 0 1.4rem; font-weight:600;
}
body.page--owner .ow-voice__lead{ font-size:1rem; line-height:2.1; margin:0; }
body.page--owner .ow-voice__who{
  font-family:var(--ak-mono); font-size:.85rem; color:var(--ak-text-sub);
  padding-top:1rem; border-top:1px solid rgba(36,38,32,.14); margin:1.4rem 0 0;
}
body.page--owner .ow-photo{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin:2rem 0 0; }
body.page--owner .ow-photo figure{ margin:0; }
body.page--owner .ow-photo img{ width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; display:block; }
body.page--owner .ow-photo figcaption{ font-size:.8rem; color:var(--ak-text-sub); margin-top:.5rem; }

body.page--owner .ow-pull{ margin:2.6rem 0 1.6rem; padding:1.2rem 0 1.2rem 1.6rem; border-left:3px solid var(--ak-red); }
body.page--owner .ow-pull p{
  font-family:var(--ak-serif); font-size:clamp(1.05rem,2.8vw,1.4rem);
  line-height:1.95; margin:0; color:var(--ak-text);
}
body.page--owner .ow-chapter{
  display:block; font-family:var(--ak-mono); font-size:.74rem; letter-spacing:.2em;
  color:var(--ak-text-sub); margin:0 0 .3rem;
}
body.page--owner .ow-qa h3{
  font-family:var(--ak-serif); font-size:1.05rem; color:var(--ak-text); font-weight:600;
  margin:2rem 0 .8rem; padding-left:1.5rem; position:relative; line-height:1.7;
  background:none; border:none;
}
body.page--owner .ow-qa h3::before{
  content:"Q"; position:absolute; left:0; top:.05em;
  font-family:var(--ak-mono); font-size:.9rem; color:var(--ak-red);
}
body.page--owner .ow-qa p{ font-size:.98rem; line-height:2.15; margin:0 0 1rem; padding-left:1.5rem; }
@media (max-width:782px){
  body.page--owner .ow-photo{ grid-template-columns:1fr; }
  body.page--owner .ow-qa h3,body.page--owner .ow-qa p{ padding-left:1.3rem; }
}
