/*
Theme Name: garDEN 空き家相談
Theme URI: https://akiya.gar-den.jp
Author: ガーデン株式会社
Description: 空き家相談HP専用テーマ（安心・信頼・誠実）。Claude Designのモックアップを1:1で再現した独立テーマ。
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: garden-akiya
*/

/* =============================================================
   空き家相談 — ガーデン株式会社  トップページ
   デザインシステム / 安心・信頼・誠実
   ============================================================= */

:root{
  /* --- 配色（オフホワイト + モスグリーン + 濃グレー文字） --- */
  --bg:        #ffffff;   /* 白ベース */
  --bg-alt:    #f7f6f3;   /* ごく淡いオフホワイト（交互セクション） */
  --bg-green:  #f7f6f3;   /* 同上（色面を作らない） */
  --surface:   #ffffff;

  --ink:       #2c2c27;   /* 本文（温かい濃グレー） */
  --ink-soft:  #5b5b52;   /* 補助テキスト */
  --ink-faint: #8b8b80;   /* キャプション等 */
  --line:      #e4e1d7;   /* 罫線 */
  --line-soft: #eeece4;

  /* 緑アクセント（Tweaksで上書き） */
  --green:     #5b6e4f;
  --green-d:   #44563a;
  --green-l:   #8fa07d;
  --green-bg:  #e7ede0;
  --green-ink: #3a4a30;

  --sand:      var(--green-d);  /* 第2色は使わず緑に統一 */
  --sand-bg:   var(--green-bg);

  /* タイポ（Tweaksで上書き） */
  --serif: "Shippori Mincho", "Noto Serif JP", serif;
  --sans:  "Noto Sans JP", system-ui, sans-serif;
  --head-font: var(--serif);
  --base-size: 20px;

  /* 形状・影・余白（トーンで切替） */
  --radius:    6px;
  --radius-lg: 10px;
  --radius-img:8px;
  --btn-radius:6px;
  --shadow-sm: 0 1px 2px rgba(44,44,39,.05), 0 1px 3px rgba(44,44,39,.06);
  --shadow:    0 2px 10px rgba(44,44,39,.07);
  --shadow-lg: 0 10px 34px rgba(44,44,39,.10);
  --sec-pad:   96px;
  --card-pad:  30px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- トーン: 堅実（既定） ---------- */
[data-tone="solid"]{
  --green:#4e6244; --green-d:#3c4c34; --green-l:#869476; --green-bg:#e6ebe0; --green-ink:#34442b;
  --radius:5px; --radius-lg:7px; --radius-img:5px; --btn-radius:5px;
  --shadow-sm:0 1px 2px rgba(44,44,39,.06);
  --shadow:0 1px 6px rgba(44,44,39,.07);
  --shadow-lg:0 6px 22px rgba(44,44,39,.10);
  --sec-pad:84px; --card-pad:28px;
}
/* ---------- トーン: やわらかめ ---------- */
[data-tone="soft"]{
  --green:#697d5a; --green-d:#54684a; --green-l:#9aac88; --green-bg:#eaf0e2; --green-ink:#465735;
  --radius:16px; --radius-lg:24px; --radius-img:20px; --btn-radius:999px;
  --shadow-sm:0 2px 8px rgba(80,100,70,.06);
  --shadow:0 6px 22px rgba(80,100,70,.08);
  --shadow-lg:0 18px 50px rgba(80,100,70,.13);
  --sec-pad:110px; --card-pad:34px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  font-size:var(--base-size);
  line-height:1.85;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }

h1,h2,h3,h4{font-family:var(--head-font);font-weight:600;line-height:1.45;color:var(--ink);margin:0;letter-spacing:.01em;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;list-style:none;}

.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 28px;}

.section{padding:var(--sec-pad) 0;}
.section--alt{background:var(--bg-alt);}
.section--green{background:var(--bg-green);}

/* ---------- セクション見出し ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.14em;
  color:var(--green-d);text-transform:none;margin-bottom:18px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--green);border-radius:2px;}
.eyebrow--center{justify-content:center;}
.sec-head{text-align:center;margin-bottom:54px;}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem);}
.sec-head .lead{margin-top:18px;color:var(--ink-soft);font-size:1.04rem;}

/* =============================================================
   ボタン
   ============================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--sans);font-weight:700;font-size:1rem;
  padding:16px 30px;border-radius:var(--btn-radius);
  border:1.5px solid transparent;cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s, color .2s, border-color .2s;
  line-height:1.3;text-align:center;
}
.btn-primary{background:var(--green);color:#fff;box-shadow:var(--shadow);}
.btn-primary:hover{background:var(--green-d);transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.btn-ghost{background:var(--surface);color:var(--green-d);border-color:var(--green-l);}
.btn-ghost:hover{background:var(--green-bg);transform:translateY(-2px);border-color:var(--green);}
.btn-lg{padding:19px 36px;font-size:1.08rem;}
.btn-block{width:100%;}
.btn small{display:block;font-size:.74rem;font-weight:600;opacity:.85;letter-spacing:.02em;margin-top:2px;white-space:nowrap;}

/* =============================================================
   ヘッダー
   ============================================================= */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s;
}
.site-header.scrolled{box-shadow:0 2px 18px rgba(44,44,39,.07);}
.header-inner{display:flex;align-items:center;gap:22px;height:84px;}

/* ロゴ */
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.logo-mark{
  width:42px;height:42px;border-radius:var(--radius);
  background:var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:var(--shadow-sm);
}
.logo-mark svg{width:24px;height:24px;}
.logo-text{display:flex;flex-direction:column;line-height:1.15;}
.logo-text .ja{font-family:var(--serif);font-size:1.18rem;font-weight:600;letter-spacing:.02em;color:var(--ink);white-space:nowrap;}
.logo-text .sub{font-size:.66rem;color:var(--ink-faint);letter-spacing:.08em;font-weight:600;}

.nav{display:flex;align-items:center;gap:22px;margin-left:auto;}
.nav a{font-size:.94rem;font-weight:600;color:var(--ink-soft);position:relative;padding:6px 0;transition:color .2s;}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--green);transition:width .25s var(--ease);border-radius:2px;}
.nav a:hover{color:var(--green-d);}
.nav a:hover::after{width:100%;}

.header-cta{display:flex;align-items:center;gap:16px;}
.header-tel{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;}
.header-tel .num{font-family:var(--serif);font-size:1.3rem;font-weight:600;color:var(--green-d);letter-spacing:.01em;white-space:nowrap;}
.header-tel .hours{font-size:.68rem;color:var(--ink-faint);font-weight:600;white-space:nowrap;}
.header-cta .btn{padding:12px 22px;font-size:.92rem;}

.menu-toggle{display:none;}

/* =============================================================
   ヒーロー
   ============================================================= */
.hero{position:relative;overflow:hidden;background:var(--bg-green);}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media .ph{width:100%;height:100%;}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(250,249,245,.96) 0%, rgba(250,249,245,.86) 38%, rgba(250,249,245,.38) 70%, rgba(250,249,245,.1) 100%);
}
.hero-inner{position:relative;z-index:2;padding:104px 0 96px;}
.hero-content{max-width:620px;}
.hero .eyebrow{margin-bottom:22px;}
.hero h1{
  font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.28;letter-spacing:.02em;
  margin-bottom:26px;color:var(--ink);
}
.hero h1 .accent{color:var(--green-d);}
.hero-sub{font-size:1.15rem;line-height:2;color:var(--ink-soft);margin-bottom:38px;max-width:540px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:40px;}
.hero-badges{display:flex;flex-wrap:wrap;gap:12px;}
.badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--surface);border:1px solid var(--line);
  padding:9px 16px;border-radius:999px;font-size:.84rem;font-weight:600;color:var(--ink-soft);
  box-shadow:var(--shadow-sm);
}
.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;}
.badge strong{color:var(--green-d);}

/* =============================================================
   画像プレースホルダー（フリー素材的・温かいトーン）
   ============================================================= */
.ph{
  position:relative;overflow:hidden;border-radius:var(--radius-img);
  background:
    linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,0)),
    linear-gradient(160deg, #cdd6c3 0%, #aebb9c 45%, #8a9a78 100%);
}
.ph::before{
  content:"";position:absolute;inset:0;opacity:.5;
  background-image:repeating-linear-gradient(135deg, rgba(255,255,255,.10) 0 2px, transparent 2px 11px);
}
.ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1;}
.ph.has-img::before{display:none;}
.ph.has-img::after{z-index:2;opacity:0;transition:opacity .25s;}
.ph.has-img:hover::after{opacity:1;}
.ph[data-label]::after{
  content:attr(data-label);
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  font-size:.74rem;letter-spacing:.06em;color:rgba(255,255,255,.92);
  background:rgba(60,76,52,.42);padding:7px 14px;border-radius:999px;
  white-space:nowrap;backdrop-filter:blur(2px);
  border:1px solid rgba(255,255,255,.28);
}
.ph-town{ background:
    linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0) 40%),
    linear-gradient(170deg,#dfe3d4 0%,#c4cdb2 38%,#9aa988 64%,#7c8d6a 100%);}
.ph-family{ background:
    linear-gradient(135deg, rgba(255,255,255,.2), rgba(255,255,255,0)),
    linear-gradient(150deg,#ead9c4 0%,#cdbf9f 50%,#a6b08c 100%);}
.ph-house{ background:
    linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,0)),
    linear-gradient(160deg,#d6ddca 0%,#b4c0a0 55%,#8c9c79 100%);}
.ph-rep{ background:
    linear-gradient(135deg, rgba(255,255,255,.2), rgba(255,255,255,0)),
    linear-gradient(155deg,#e2ddd0 0%,#c3c2ac 55%,#9aa688 100%);}
.ph-warm{ background:
    linear-gradient(135deg, rgba(255,255,255,.2), rgba(255,255,255,0)),
    linear-gradient(150deg,#ecdcc6 0%,#d8c4a6 50%,#bcae8e 100%);}

/* =============================================================
   共感（お悩み）
   ============================================================= */
.worry-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:40px;
}
.worry-item{
  display:flex;gap:16px;align-items:flex-start;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:24px 26px;box-shadow:var(--shadow-sm);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .2s;
}
.worry-item:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--green-l);}
.worry-check{
  flex-shrink:0;width:30px;height:30px;border-radius:50%;
  background:var(--green-bg);display:flex;align-items:center;justify-content:center;margin-top:3px;
}
.worry-check svg{width:16px;height:16px;stroke:var(--green-d);}
.worry-item p{font-size:1.02rem;color:var(--ink);font-weight:500;line-height:1.7;}
.worry-foot{
  text-align:center;background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-top:3px solid var(--green);
  border-radius:var(--radius-lg);padding:32px 28px;box-shadow:var(--shadow-sm);
}
.worry-foot p{font-family:var(--serif);font-size:1.3rem;font-weight:600;line-height:1.7;color:var(--ink);}
.worry-foot .small{font-family:var(--sans);font-size:.95rem;font-weight:500;color:var(--ink-soft);margin-top:8px;}

/* =============================================================
   選ばれる理由
   ============================================================= */
.reason-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
/* 実績（選ばれる理由の証） */
.reason-proof{
  display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;
  max-width:680px;margin:0 auto 44px;padding:26px 40px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}
.proof-stat{text-align:center;}
.proof-num{
  font-family:var(--serif);font-weight:600;color:var(--green-d);
  font-size:clamp(2.4rem,5.5vw,3.2rem);line-height:1;letter-spacing:.01em;
  display:flex;align-items:baseline;justify-content:center;gap:3px;
}
.proof-num span{font-size:1.05rem;font-weight:600;color:var(--ink-soft);}
.proof-cap{font-size:.9rem;font-weight:700;color:var(--ink);margin-top:8px;}
.proof-divider{width:1px;align-self:stretch;min-height:54px;background:var(--line);}
@media (max-width:680px){
  .reason-proof{gap:20px;padding:24px;}
  .proof-divider{width:60%;height:1px;min-height:0;}
}

/* 買取・売却の強み */
.strength-band{
  margin-top:42px;padding:32px 36px;
  background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius-lg);
}
.strength-band h3{
  font-size:1.18rem;text-align:center;margin-bottom:24px;color:var(--ink);
}
.strength-band h3 b{color:var(--green-d);font-weight:600;}
.strength-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 36px;}
.strength-list li{display:flex;gap:14px;align-items:flex-start;}
.strength-list .sk{
  flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--green-bg);
  display:flex;align-items:center;justify-content:center;margin-top:2px;
}
.strength-list .sk svg{width:15px;height:15px;stroke:var(--green-d);}
.strength-list b{display:block;font-size:1.02rem;color:var(--ink);font-weight:700;line-height:1.5;}
.strength-list p{font-size:.92rem;color:var(--ink-soft);margin-top:3px;line-height:1.7;}
@media (max-width:680px){ .strength-list{grid-template-columns:1fr;gap:16px;} .strength-band{padding:26px 22px;} }
.reason-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:var(--card-pad);box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.reason-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.reason-badge{
  width:60px;height:60px;border-radius:var(--radius-lg);
  background:var(--green-bg);color:var(--green-d);
  font-family:var(--serif);font-size:1.7rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;margin-bottom:22px;
}
.reason-card h3{font-size:1.18rem;margin-bottom:12px;line-height:1.55;}
.reason-card p{font-size:.96rem;color:var(--ink-soft);line-height:1.85;}

/* =============================================================
   サービス・料金
   ============================================================= */
.svc-table{
  width:100%;border-collapse:separate;border-spacing:0;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);
}
.svc-table th,.svc-table td{padding:24px 28px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft);}
.svc-table thead th{
  background:var(--bg-alt);color:var(--ink);font-family:var(--sans);font-weight:700;font-size:.92rem;
  letter-spacing:.04em;border-bottom:1px solid var(--line);
}
.svc-table tbody tr:last-child td{border-bottom:none;}
.svc-table tbody tr{transition:background .2s;}
.svc-table tbody tr:hover{background:var(--bg-green);}
.svc-name{font-family:var(--serif);font-size:1.12rem;font-weight:600;color:var(--ink);width:26%;}
.svc-desc{color:var(--ink-soft);font-size:.96rem;width:38%;}
.svc-price{font-weight:700;color:var(--green-d);font-size:1.0rem;width:36%;}
.svc-price .free{color:var(--green-d);}
.svc-note{margin-top:18px;font-size:.86rem;color:var(--ink-faint);text-align:center;}

/* カード型（モバイル） */
.svc-cards{display:none;flex-direction:column;gap:16px;}
.svc-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:24px;box-shadow:var(--shadow-sm);
}
.svc-card h3{font-family:var(--serif);font-size:1.14rem;margin-bottom:8px;}
.svc-card .d{color:var(--ink-soft);font-size:.95rem;margin-bottom:14px;}
.svc-card .p{font-weight:700;color:var(--green-d);border-top:1px dashed var(--line);padding-top:14px;}

/* =============================================================
   解決事例
   ============================================================= */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.case-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.case-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.case-photo{height:200px;}
.case-body{padding:26px;}
.case-area{
  display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;
  color:var(--green-d);background:var(--green-bg);padding:5px 12px;border-radius:999px;margin-bottom:14px;
}
.case-card h3{font-size:1.18rem;margin-bottom:12px;line-height:1.5;}
.case-card p{font-size:.95rem;color:var(--ink-soft);line-height:1.8;}
.case-tag{margin-top:16px;font-size:.82rem;color:var(--ink-faint);}
.case-tag b{color:var(--green-d);}

/* =============================================================
   ご相談の流れ
   ============================================================= */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.flow-step{position:relative;padding:0 22px;text-align:center;}
.flow-step:not(:last-child)::after{
  content:"";position:absolute;top:33px;right:-12px;width:24px;height:2px;
  background:var(--green-l);
}
.flow-num{
  width:66px;height:66px;border-radius:50%;margin:0 auto 22px;
  background:var(--surface);border:2px solid var(--green);color:var(--green-d);
  font-family:var(--serif);font-size:1.7rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);
  position:relative;z-index:2;
}
.flow-step h3{font-size:1.12rem;margin-bottom:10px;}
.flow-step p{font-size:.92rem;color:var(--ink-soft);line-height:1.8;}

/* =============================================================
   FAQ アコーディオン
   ============================================================= */
.faq-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.faq-item{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .2s, box-shadow .25s;
}
.faq-item.open{border-color:var(--green-l);box-shadow:var(--shadow);}
.faq-q{
  width:100%;display:flex;align-items:center;gap:16px;
  background:none;border:none;cursor:pointer;text-align:left;
  padding:24px 26px;font-family:var(--sans);font-size:1.06rem;font-weight:700;color:var(--ink);
}
.faq-q .qmark{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:var(--green-bg);color:var(--green-d);font-family:var(--serif);font-weight:700;
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;
}
.faq-q .qtxt{flex:1;line-height:1.6;}
.faq-icon{flex-shrink:0;width:22px;height:22px;position:relative;transition:transform .3s var(--ease);}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;background:var(--green-d);border-radius:2px;}
.faq-icon::before{top:10px;left:0;width:22px;height:2px;}
.faq-icon::after{top:0;left:10px;width:2px;height:22px;transition:opacity .3s,transform .3s;}
.faq-item.open .faq-icon::after{opacity:0;transform:rotate(90deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease);}
.faq-a-inner{padding:0 26px 26px 74px;color:var(--ink-soft);font-size:1rem;line-height:1.95;}

/* =============================================================
   会社・代表紹介
   ============================================================= */
.company{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;}
.company-photo{height:440px;}
.company h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:8px;}
.company .role{color:var(--green-d);font-weight:700;font-size:.95rem;margin-bottom:24px;letter-spacing:.04em;}
.company-msg{font-size:1.05rem;color:var(--ink-soft);line-height:2.05;margin-bottom:18px;}
.company-sign{font-family:var(--serif);font-size:1.05rem;color:var(--ink);margin-bottom:30px;}
.company-sign b{font-size:1.3rem;font-weight:600;margin-left:8px;}
.info-table{width:100%;border-top:1px solid var(--line);}
.info-table tr{border-bottom:1px solid var(--line);}
.info-table th{text-align:left;padding:15px 0;width:32%;font-size:.9rem;font-weight:700;color:var(--green-d);vertical-align:top;}
.info-table td{padding:15px 0;font-size:.95rem;color:var(--ink-soft);}

/* 上場グループの安心バッジ */
.group-note{
  display:flex;align-items:flex-start;gap:16px;
  margin-bottom:28px;padding:20px 22px;
  background:var(--bg-alt);border:1px solid var(--line);border-left:3px solid var(--green);
  border-radius:var(--radius);
}
.group-tag{
  flex-shrink:0;font-size:.74rem;font-weight:700;letter-spacing:.04em;color:#fff;
  background:var(--green);padding:5px 11px;border-radius:999px;margin-top:2px;white-space:nowrap;
}
.group-note p{font-size:.96rem;color:var(--ink);line-height:1.7;font-weight:500;}
.group-note p b{font-weight:700;color:var(--green-ink);}
.group-note p small{display:block;font-size:.8rem;color:var(--ink-faint);font-weight:600;margin-top:3px;}

/* =============================================================
   最終CTA + フォーム
   ============================================================= */
.cta-final{background:var(--bg-alt);color:var(--ink);position:relative;overflow:hidden;border-top:1px solid var(--line);}
.cta-final::before{content:none;}
.cta-grid{position:relative;z-index:2;display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start;}
.cta-final .eyebrow{color:var(--green-d);}
.cta-final .eyebrow::before{background:var(--green);}
.cta-final h2{color:var(--ink);font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.4;margin-bottom:20px;}
.cta-final .lead{color:var(--ink-soft);font-size:1.05rem;line-height:2;margin-bottom:34px;}
.cta-tel-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm);
}
.cta-tel-card .label{font-size:.86rem;font-weight:700;letter-spacing:.06em;color:var(--green-d);margin-bottom:6px;}
.cta-tel-card .num{font-family:var(--serif);font-size:2.5rem;font-weight:600;letter-spacing:.02em;line-height:1.1;color:var(--green-d);}
.cta-tel-card .hours{font-size:.86rem;color:var(--ink-soft);margin-top:8px;}

/* フォーム */
.form-card{background:var(--surface);border-radius:var(--radius-lg);padding:40px;box-shadow:var(--shadow-lg);color:var(--ink);}
.form-card h3{font-size:1.32rem;margin-bottom:6px;}
.form-card .fsub{color:var(--ink-soft);font-size:.92rem;margin-bottom:26px;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:.92rem;font-weight:700;margin-bottom:9px;color:var(--ink);}
.req{color:#c0492f;font-size:.78rem;margin-left:7px;font-weight:700;}
.opt{color:var(--ink-faint);font-size:.78rem;margin-left:7px;font-weight:600;}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);
  padding:13px 15px;border:1.5px solid var(--line);border-radius:var(--radius);
  background:var(--bg);transition:border-color .2s, box-shadow .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-bg);background:#fff;
}
.field textarea{resize:vertical;min-height:110px;line-height:1.7;}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#c0492f;box-shadow:0 0 0 3px #f5e3de;}
.field .err{display:none;color:#c0492f;font-size:.82rem;margin-top:6px;font-weight:600;}
.field.invalid .err{display:block;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.privacy{display:flex;align-items:flex-start;gap:12px;margin:6px 0 24px;font-size:.9rem;color:var(--ink-soft);line-height:1.7;}
.privacy input{width:20px;height:20px;margin-top:3px;flex-shrink:0;accent-color:var(--green);}
.privacy a{color:var(--green-d);text-decoration:underline;text-underline-offset:2px;}
.form-success{
  display:none;text-align:center;padding:50px 30px;
}
.form-success.show{display:block;animation:fadeUp .5s var(--ease);}
.form-success .ok{
  width:72px;height:72px;border-radius:50%;background:var(--green-bg);
  display:flex;align-items:center;justify-content:center;margin:0 auto 22px;
}
.form-success .ok svg{width:36px;height:36px;stroke:var(--green-d);}
.form-success h3{font-size:1.4rem;margin-bottom:12px;}
.form-success p{color:var(--ink-soft);}

/* =============================================================
   フッター
   ============================================================= */
.site-footer{background:#2f352b;color:#cfd3c6;padding:64px 0 32px;font-size:.92rem;}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-brand .logo-text .ja{color:#fff;}
.footer-brand .logo-text .sub{color:#9aa48c;}
.footer-brand .logo-mark{background:var(--green-l);}
.footer-addr{margin-top:20px;line-height:1.9;color:#aab09c;font-size:.88rem;}
.footer-addr .num{font-family:var(--serif);font-size:1.4rem;color:#fff;display:block;margin:6px 0;}
.footer-col h4{font-family:var(--sans);font-size:.82rem;letter-spacing:.1em;color:#8e977f;margin-bottom:18px;font-weight:700;}
.footer-col ul{display:flex;flex-direction:column;gap:12px;}
.footer-col a{color:#cfd3c6;font-size:.92rem;transition:color .2s;}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;padding-top:28px;color:#8e977f;font-size:.82rem;}
.footer-bottom .license{padding:4px 12px;border:1px solid rgba(255,255,255,.18);border-radius:6px;}

/* =============================================================
   スクロール演出
   ============================================================= */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}

/* =============================================================
   レスポンシブ
   ============================================================= */
.mobile-bar{display:none;}

@media (max-width:980px){
  .nav,.header-tel{display:none;}
  .menu-toggle{
    display:flex;flex-direction:column;justify-content:center;gap:5px;margin-left:auto;
    width:46px;height:46px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:center;
  }
  .menu-toggle span{width:22px;height:2px;background:var(--ink);border-radius:2px;transition:.3s;}
  .header-cta .btn{display:none;}
  .reason-grid{grid-template-columns:repeat(2,1fr);}
  .case-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto;}
  .flow{grid-template-columns:repeat(2,1fr);gap:40px 0;}
  .flow-step:nth-child(2)::after{display:none;}
  .company{grid-template-columns:1fr;gap:36px;}
  .company-photo{height:320px;order:-1;}
  .cta-grid{grid-template-columns:1fr;gap:36px;}

  /* モバイル固定CTAバー */
  .mobile-bar{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:90;
    padding:10px 14px;background:rgba(250,249,245,.95);backdrop-filter:blur(10px);
    border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(44,44,39,.08);
  }
  .mobile-bar .btn{padding:14px 10px;font-size:.92rem;}
}

@media (max-width:680px){
  :root{--sec-pad:62px;}
  [data-tone="solid"]{--sec-pad:56px;}
  [data-tone="soft"]{--sec-pad:70px;}
  .wrap,.wrap-narrow{padding:0 20px;}
  .header-inner{height:68px;}
  .logo-mark{width:38px;height:38px;}
  .logo-text .ja{font-size:1.04rem;}
  .hero-inner{padding:64px 0 84px;}
  .hero-media::after{background:linear-gradient(180deg, rgba(250,249,245,.30) 0%, rgba(250,249,245,.66) 42%, rgba(250,249,245,.92) 76%, var(--bg-green) 100%);}
  .hero-actions{flex-direction:column;}
  .hero-actions .btn{width:100%;}
  .worry-grid{grid-template-columns:1fr;}
  .reason-grid{grid-template-columns:1fr;}
  .svc-table{display:none;}
  .svc-cards{display:flex;}
  .flow{grid-template-columns:1fr;gap:34px;}
  .flow-step::after{display:none!important;}
  .form-card{padding:26px 22px;}
  .field-row{grid-template-columns:1fr;gap:0;}
  .footer-top{grid-template-columns:1fr;gap:32px;}
  .sec-head{margin-bottom:38px;}
}

/* =============================================================
   下層ページ共通
   ============================================================= */
/* アクティブなナビ */
.nav a.active{color:var(--green-d);}
.nav a.active::after{width:100%;}

/* モバイル: ナビをドロップダウン表示 */
@media (max-width:980px){
  .nav.nav-open{
    display:flex;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);padding:6px 0;
  }
  .nav.nav-open a{padding:15px 28px;font-size:1.02rem;color:var(--ink);}
  .nav.nav-open a::after{display:none;}
  .nav.nav-open a.active{color:var(--green-d);background:var(--bg-green);}
  .menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .menu-toggle.is-open span:nth-child(2){opacity:0;}
  .menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ページヘッダー（バナー） */
.page-hero{background:var(--bg-alt);border-bottom:1px solid var(--line);padding:52px 0 50px;}
.breadcrumb{display:flex;gap:9px;font-size:.83rem;color:var(--ink-faint);margin-bottom:18px;flex-wrap:wrap;align-items:center;}
.breadcrumb a{color:var(--ink-soft);}
.breadcrumb a:hover{color:var(--green-d);}
.breadcrumb .sep{color:var(--line);}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.8rem);margin-bottom:14px;line-height:1.4;}
.page-hero .lead{color:var(--ink-soft);font-size:1.06rem;max-width:680px;line-height:1.95;}

/* チェックリスト（汎用） */
.check-list{display:flex;flex-direction:column;gap:12px;}
.check-list li{display:flex;gap:12px;align-items:flex-start;font-size:1rem;color:var(--ink);line-height:1.7;}
.check-list li::before{
  content:"";flex-shrink:0;width:22px;height:22px;margin-top:3px;border-radius:50%;
  background:var(--green-bg) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2344563a' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5 L10 17.5 L19 7'/></svg>") center/13px no-repeat;
}

/* =============================================================
   サービス詳細ページ
   ============================================================= */
.svc-detail{padding:64px 0;border-bottom:1px solid var(--line);}
.svc-detail:last-of-type{border-bottom:none;}
.svc-detail-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:center;margin-bottom:40px;}
.svc-detail:nth-of-type(even) .svc-detail-media{order:2;}
.svc-detail-media{height:360px;}
.svc-index{
  display:inline-block;font-family:var(--serif);font-size:.92rem;font-weight:600;letter-spacing:.12em;
  color:var(--green-d);margin-bottom:12px;
}
.svc-detail h2{font-size:clamp(1.7rem,3.4vw,2.3rem);margin-bottom:18px;}
.svc-detail .svc-lead{font-size:1.06rem;color:var(--ink-soft);line-height:2;margin-bottom:26px;}
.svc-price-tag{
  display:flex;flex-direction:column;gap:3px;
  background:var(--bg-alt);border:1px solid var(--line);border-left:3px solid var(--green);
  border-radius:var(--radius);padding:18px 22px;margin-bottom:26px;
}
.svc-price-tag .pl{font-size:.8rem;font-weight:700;letter-spacing:.06em;color:var(--green-d);}
.svc-price-tag b{font-size:1.34rem;font-family:var(--serif);font-weight:600;color:var(--ink);}
.svc-price-tag small{font-size:.88rem;color:var(--ink-soft);}
.svc-detail-sub{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.svc-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px;box-shadow:var(--shadow-sm);}
.svc-box h3{font-size:1.12rem;margin-bottom:18px;display:flex;align-items:center;gap:10px;}
.svc-box h3::before{content:"";width:18px;height:2px;background:var(--green);}
.mini-flow{counter-reset:step;display:flex;flex-direction:column;gap:14px;}
.mini-flow li{display:flex;gap:14px;align-items:flex-start;font-size:.98rem;color:var(--ink-soft);line-height:1.7;}
.mini-flow li::before{
  counter-increment:step;content:counter(step);flex-shrink:0;
  width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;
  font-family:var(--serif);font-weight:600;font-size:.95rem;
  display:flex;align-items:center;justify-content:center;margin-top:1px;
}
.mini-flow li b{color:var(--ink);font-weight:700;}

/* =============================================================
   解決事例ページ：フィルタ
   ============================================================= */
.filter-wrap{display:flex;flex-direction:column;gap:16px;margin-bottom:42px;}
.filter-row{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.filter-label{font-size:.86rem;font-weight:700;color:var(--ink);padding-top:8px;min-width:74px;}
.filter-bar{display:flex;gap:9px;flex-wrap:wrap;}
.filter-btn{
  padding:8px 17px;border:1px solid var(--line);background:var(--surface);border-radius:999px;
  font-size:.88rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.2s;font-family:var(--sans);
}
.filter-btn:hover{border-color:var(--green-l);color:var(--green-d);}
.filter-btn.active{background:var(--green);color:#fff;border-color:var(--green);}
[data-case].filtered-out{display:none;}
#case-empty{display:none;text-align:center;color:var(--ink-faint);padding:48px 20px;font-size:1rem;}

/* =============================================================
   FAQページ：カテゴリ
   ============================================================= */
.faq-cat{max-width:780px;margin:0 auto 48px;}
.faq-cat:last-child{margin-bottom:0;}
.faq-cat-head{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.faq-cat-head .ico{
  width:42px;height:42px;border-radius:var(--radius);background:var(--green-bg);
  color:var(--green-d);font-family:var(--serif);font-weight:600;font-size:1.2rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.faq-cat-head h2{font-size:1.4rem;}

/* =============================================================
   小CTA（下層ページ下部）
   ============================================================= */
.mini-cta{background:var(--bg-alt);border-top:1px solid var(--line);text-align:center;}
.mini-cta h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:16px;}
.mini-cta .lead{color:var(--ink-soft);font-size:1.04rem;margin-bottom:30px;line-height:1.9;}
.mini-cta-tel{font-family:var(--serif);font-size:1.05rem;color:var(--ink);margin-bottom:26px;}
.mini-cta-tel a{font-size:1.9rem;font-weight:600;color:var(--green-d);letter-spacing:.02em;}
.mini-cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

@media (max-width:880px){
  .svc-detail-grid{grid-template-columns:1fr;gap:30px;}
  .svc-detail:nth-of-type(even) .svc-detail-media{order:0;}
  .svc-detail-media{height:260px;}
  .svc-detail-sub{grid-template-columns:1fr;gap:18px;}
}
@media (max-width:680px){
  .page-hero{padding:38px 0 36px;}
  .svc-detail{padding:44px 0;}
  .filter-label{min-width:0;padding-top:0;}
}


/* =============================================================
   Contact Form 7 をデザインに合わせる
   ============================================================= */
.wpcf7{margin-top:4px;}
.wpcf7 .cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.wpcf7 label{display:block;font-size:.92rem;font-weight:700;margin-bottom:9px;color:var(--ink);}
.wpcf7 input[type=text],.wpcf7 input[type=tel],.wpcf7 input[type=email],.wpcf7 select,.wpcf7 textarea{width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);padding:13px 15px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--bg);transition:border-color .2s,box-shadow .2s;margin-bottom:18px;}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-bg);background:#fff;}
.wpcf7 textarea{resize:vertical;min-height:110px;line-height:1.7;}
.wpcf7 .req{color:#c0492f;font-size:.78rem;margin-left:7px;font-weight:700;}
.wpcf7 .wpcf7-acceptance{font-size:.9rem;color:var(--ink-soft);line-height:1.7;margin-bottom:6px;}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item{margin:0;}
.wpcf7 .wpcf7-submit{display:inline-flex;width:100%;align-items:center;justify-content:center;font-family:var(--sans);font-weight:700;font-size:1.08rem;padding:19px 36px;border-radius:var(--btn-radius);border:1.5px solid transparent;cursor:pointer;background:var(--green);color:#fff;box-shadow:var(--shadow);transition:.2s;margin-top:10px;}
.wpcf7 .wpcf7-submit:hover{background:var(--green-d);}
.wpcf7-not-valid-tip{color:#c0492f;font-size:.82rem;font-weight:600;margin:-12px 0 12px;}
.wpcf7 .wpcf7-response-output{border-radius:var(--radius);font-size:.92rem;margin:16px 0 0;}

/* 管理バー対策：固定ヘッダーが上部に重なるのを防ぐ */
.admin-bar .site-header{top:32px;}
@media (max-width:782px){.admin-bar .site-header{top:46px;}}

/* アンカーで直接来ても会社紹介が必ず見えるように（演出の取りこぼし防止） */
#company .reveal{opacity:1;transform:none;}

/* ヒーロー：白いグラデーションの覆いを背景画像より前面に（文字の可読性確保） */
.hero-media::after{z-index:1;}
.hero-media .ph > img{z-index:0;}

/* 年配者向け：基準文字サイズ20pxに（全体を比例で拡大） */
html{font-size:20px;}
/* ヘッダーは拡大の対象外（コンパクトに保つ・折り返し防止） */
.site-header .logo-text .ja{font-size:19px;}
.site-header .logo-text .sub{font-size:11px;}
.site-header .nav a{font-size:16px;white-space:nowrap;}
.site-header .header-tel .num{font-size:21px;}
.site-header .header-tel .hours{font-size:11px;white-space:nowrap;}
.site-header .header-cta .btn{font-size:15px;white-space:nowrap;}
