/*
Theme Name: 横浜市西区 不動産売却センター
Theme URI: https://yokohama-realestate.jp/
Author: 横浜市西区 不動産売却センター
Description: 横浜市西区の不動産売却相談窓口のWordPressテーマ
Version: 3.0.0
License: GNU General Public License v2 or later
Text Domain: yokohama-fudosan
*/

/* ========================================
   CSS Variables — 新カラーパレット（明るめネイビー）
======================================== */
:root {
  --color-primary:      #1F5FAF;   /* メインネイビー */
  --color-primary-dark: #184C8F;   /* ホバー・濃い部分 */
  --color-primary-mid:  #2F74C8;   /* 中間ブルー */
  --color-primary-pale: #EAF4FF;   /* サブの淡いブルー */
  --color-primary-grad: #5FA8F5;   /* FV明るいブルー */
  --color-accent:       #b08a20;   /* アクセント（ゴールド文字） */
  --color-rule:         #E0B64A;   /* ゴールドライン */
  --color-accent-pale:  #fdf8ec;
  --color-text:         #1a1a2e;
  --color-text-muted:   #4a5568;
  --color-text-light:   #718096;
  --color-bg:           #f5f7fa;
  --color-bg-white:     #ffffff;
  --color-bg-section:   #eef4fb;
  --color-border:       #c0d4ea;
  --color-border-light: #deeaf8;
  --color-success:      #276749;
  --color-line:         #06C755;   /* LINE green */
  --font-serif: 'Noto Serif JP','Yu Mincho','游明朝',serif;
  --font-sans:  'Noto Sans JP','Hiragino Kaku Gothic ProN','メイリオ',sans-serif;
  --shadow-sm:  0 1px 4px rgba(31,95,175,0.08);
  --shadow-md:  0 2px 12px rgba(31,95,175,0.13);
  --max-width:  1080px;
  --transition: 0.2s ease;
  --header-h:   62px;
}

/* ========================================
   Reset & Base
======================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}
body{font-family:var(--font-sans);font-weight:400;color:var(--color-text);background:var(--color-bg);line-height:1.85;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--color-primary-mid);text-decoration:none;transition:color var(--transition);}
a:hover{color:var(--color-primary);text-decoration:underline;}
ul,ol{list-style:none;}
p{margin-bottom:1.15em;}
p:last-child{margin-bottom:0;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:1.5;color:var(--color-primary-dark);}

/* ========================================
   Layout
======================================== */
.container{max-width:var(--max-width);margin:0 auto;padding:0 32px;}
.section{padding:68px 0;}
.section--white{background:var(--color-bg-white);}
.section--gray{background:var(--color-bg-section);}
.section--navy{background:var(--color-primary-dark);}

.section__header{margin-bottom:44px;}
.section__header--center{text-align:center;}
.section__eyebrow{display:block;font-family:var(--font-sans);font-size:0.67rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--color-accent);margin-bottom:8px;}
.section__title{font-family:var(--font-serif);font-size:clamp(1.2rem,2vw,1.65rem);font-weight:700;color:var(--color-primary-dark);padding-bottom:12px;border-bottom:2px solid var(--color-primary-dark);display:inline-block;}
.section__title--center{display:block;border-bottom:none;padding-bottom:0;}
.section__title--center::after{content:'';display:block;width:36px;height:2px;background:var(--color-rule);margin:12px auto 0;}
.section__desc{margin-top:14px;font-size:0.86rem;color:var(--color-text-muted);line-height:1.8;}

/* ========================================
   Buttons
======================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-weight:600;font-size:0.86rem;letter-spacing:0.05em;cursor:pointer;transition:all var(--transition);border:1px solid transparent;text-decoration:none;padding:10px 24px;border-radius:0;}
.btn--primary{background:linear-gradient(135deg,#2F74C8,#1F5FAF);color:#fff;border-color:#1F5FAF;}
.btn--primary:hover{background:linear-gradient(135deg,#1F5FAF,#184C8F);border-color:#184C8F;color:#fff;text-decoration:none;}
.btn--outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary);}
.btn--outline:hover{background:var(--color-primary);color:#fff;text-decoration:none;}
.btn--outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,0.5);}
.btn--outline-white:hover{background:rgba(255,255,255,0.12);border-color:#fff;color:#fff;text-decoration:none;}
.btn--lg{padding:13px 34px;font-size:0.9rem;}
.btn--sm{padding:6px 14px;font-size:0.78rem;}
.btn--block{display:flex;width:100%;}
/* LINE ボタン */
.btn--line{background:var(--color-line);color:#fff;border-color:var(--color-line);gap:7px;}
.btn--line:hover{background:#05b04c;border-color:#05b04c;color:#fff;text-decoration:none;}
.btn--line svg{width:18px;height:18px;fill:#fff;flex-shrink:0;}

/* ========================================
   ③ Header — スクロール追従 / 右上に電話・ボタン
======================================== */
.site-header{
  background:var(--color-bg-white);
  border-bottom:3px solid var(--color-primary-dark);
  position:sticky;top:0;z-index:300;
  box-shadow:var(--shadow-sm);
}
.site-header__inner{
  max-width:var(--max-width);margin:0 auto;padding:0 32px;
  height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.site-header__logo a{color:inherit;text-decoration:none;}
.logo-main{font-family:var(--font-serif);font-size:0.98rem;font-weight:700;color:var(--color-primary-dark);line-height:1.25;display:block;}
.logo-sub{font-size:0.58rem;color:var(--color-text-muted);display:block;margin-top:2px;}

/* ③ 右上エリア：ボタン + 電話（左右逆：ボタンを左） */
.site-header__right{display:flex;align-items:center;gap:16px;flex-shrink:0;}
.header-tel{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;}
.header-tel__label{font-size:0.6rem;color:var(--color-text-muted);letter-spacing:0.04em;}
/* ⑥ 電話番号フォントをNoto Sans JPに統一（ガタガタ防止） */
.header-tel__number{font-family:var(--font-sans);font-size:1.18rem;font-weight:700;color:var(--color-primary-dark);letter-spacing:0.04em;font-feature-settings:"tnum";}
.header-tel__number a{color:inherit;text-decoration:none;}
.header-tel__hours{font-size:0.58rem;color:var(--color-text-light);}

.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;}
.nav-toggle span{display:block;width:20px;height:1.5px;background:var(--color-primary-dark);transition:all var(--transition);}

/* ========================================
   Global Navigation
======================================== */
.global-nav{background:var(--color-primary);border-bottom:2px solid var(--color-rule);}
.global-nav__inner{max-width:var(--max-width);margin:0 auto;padding:0 32px;}
.global-nav__list{display:flex;align-items:stretch;}
.global-nav__item{position:relative;}
.global-nav__link{
  display:flex;align-items:center;justify-content:center;padding:11px 20px;
  font-size:0.79rem;font-weight:500;letter-spacing:0.06em;
  color:rgba(255,255,255,0.85);white-space:nowrap;
  border-right:1px solid rgba(255,255,255,0.1);
  transition:background var(--transition),color var(--transition);text-decoration:none;
}
.global-nav__item:first-child .global-nav__link{border-left:1px solid rgba(255,255,255,0.1);}
.global-nav__link:hover,.global-nav__link--active{background:rgba(255,255,255,0.1);color:#fff;text-decoration:none;}
.global-nav__link--active{border-bottom:2px solid var(--color-rule);}

/* ドロップダウン */
.global-nav__item--has-children .global-nav__sub{
  display:none;position:absolute;top:100%;left:0;
  min-width:200px;max-height:60vh;overflow-y:auto;
  background:var(--color-bg-white);border:1px solid var(--color-border);
  border-top:2px solid var(--color-primary-dark);box-shadow:var(--shadow-md);z-index:400;
}
.global-nav__item--has-children:hover .global-nav__sub{display:block;}
.global-nav__sub-group-label{
  display:block;padding:7px 12px 4px;
  font-size:0.65rem;font-weight:700;letter-spacing:0.08em;
  color:var(--color-text-light);background:var(--color-bg-section);
  border-bottom:1px solid var(--color-border-light);
}
.global-nav__sub-item a{display:block;padding:7px 14px;font-size:0.77rem;color:var(--color-text);border-bottom:1px solid var(--color-border-light);text-decoration:none;transition:background var(--transition);}
.global-nav__sub-item:last-child a{border-bottom:none;}
.global-nav__sub-item a:hover{background:var(--color-primary-pale);color:var(--color-primary-dark);}

/* ========================================
   Breadcrumb
======================================== */
.breadcrumb{background:var(--color-bg-section);border-bottom:1px solid var(--color-border-light);padding:7px 0;}
.breadcrumb__inner{max-width:var(--max-width);margin:0 auto;padding:0 32px;}
.breadcrumb__list{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:0.73rem;color:var(--color-text-muted);}
.breadcrumb__item{display:flex;align-items:center;gap:4px;}
.breadcrumb__item:not(:first-child)::before{content:'›';color:var(--color-text-light);}
.breadcrumb__item a{color:var(--color-primary-mid);}
.breadcrumb__item a:hover{text-decoration:underline;}

/* ========================================
   ④ Hero — 横浜写真背景 + 左メッセージ + 右フォーム
======================================== */
.hero{
  position:relative;
  background:var(--color-primary-dark) url('assets/images/hero-yokohama.jpg') center/cover no-repeat;
  border-bottom:3px solid var(--color-rule);
  min-height:460px;
  display:flex;align-items:center;
}
.hero::before{
  content:'';position:absolute;inset:0;
  /* 左側を濃く・右側を薄くして文字可読性を上げる */
  background:linear-gradient(
    90deg,
    rgba(10, 28, 70, 0.82) 0%,
    rgba(15, 40, 90, 0.70) 50%,
    rgba(31, 95, 175, 0.35) 100%
  );
}
.hero__inner{
  position:relative;z-index:1;
  max-width:var(--max-width);margin:0 auto;padding:52px 32px;
  display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:center;
  width:100%;
}
.hero__content{}
.hero__label{display:inline-block;font-size:0.64rem;letter-spacing:0.15em;font-weight:700;color:var(--color-rule);border:1px solid var(--color-rule);padding:3px 10px;margin-bottom:16px;}
.hero__catch{font-size:0.8rem;color:rgba(255,255,255,0.85);margin-bottom:6px;letter-spacing:0.04em;}
.hero__title{font-family:var(--font-serif);font-size:clamp(1.35rem,2.6vw,2rem);font-weight:700;color:#fff;line-height:1.55;margin-bottom:18px;letter-spacing:0.02em;text-shadow:0 2px 8px rgba(0,0,0,0.4);}
.hero__desc{font-size:0.84rem;color:rgba(255,255,255,0.92);line-height:1.9;margin-bottom:0;max-width:420px;text-shadow:0 1px 4px rgba(0,0,0,0.35);}

/* ④ 右側インラインフォームパネル */
.hero__form-panel{
  background:rgba(255,255,255,0.97);
  border-top:3px solid #1F5FAF;
  padding:22px 22px 20px;
}
.hero__form-panel__title{
  font-family:var(--font-serif);font-size:0.88rem;font-weight:700;
  color:var(--color-primary-dark);margin-bottom:4px;
  padding-bottom:8px;border-bottom:1px solid var(--color-border-light);
}
.hero__form-panel__sub{font-size:0.7rem;color:var(--color-text-muted);margin-bottom:14px;}

/* パネル内CF7 コンパクト */
.hero__form-panel .wpcf7 input[type="text"],
.hero__form-panel .wpcf7 input[type="email"],
.hero__form-panel .wpcf7 input[type="tel"],
.hero__form-panel .wpcf7 select,
.hero__form-panel .wpcf7 textarea{padding:7px 10px;font-size:0.82rem;border:1px solid var(--color-border);border-radius:0;width:100%;margin-bottom:8px;font-family:var(--font-sans);color:var(--color-text);background:#fff;-webkit-appearance:none;appearance:none;}
.hero__form-panel .wpcf7 textarea{min-height:80px;resize:none;}
.hero__form-panel .wpcf7 select{background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%234a5568'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;}
.hero__form-panel .wpcf7 .wpcf7-submit{width:100%;background:linear-gradient(135deg,#2F74C8,#1F5FAF);color:#fff;border:none;padding:11px;font-family:var(--font-sans);font-size:0.84rem;font-weight:700;letter-spacing:0.08em;cursor:pointer;transition:background var(--transition);}
.hero__form-panel .wpcf7 .wpcf7-submit:hover{background:linear-gradient(135deg,#1F5FAF,#184C8F);}
.hero__form-panel .wpcf7 .form-submit{margin-top:4px;}
.hero__form-panel .wpcf7 .wpcf7-response-output{font-size:0.76rem;margin-top:8px;padding:8px 10px;border:none!important;}
.hero__form-panel .wpcf7 .wpcf7-mail-sent-ok{background:rgba(39,103,73,0.09);color:var(--color-success);border-left:3px solid var(--color-success)!important;}
.hero__form-panel .wpcf7 .wpcf7-validation-errors{background:rgba(107,30,30,0.06);color:#6b1e1e;border-left:3px solid #6b1e1e!important;}
.hero__form-panel .wpcf7 .wpcf7-not-valid-tip{font-size:0.72rem;color:#6b1e1e;display:block;margin-top:2px;}

/* 電話CTA（パネル下部） */
.hero__panel-tel-bar{
  margin-top:14px;padding-top:12px;border-top:1px solid var(--color-border-light);
  text-align:center;
}
.hero__panel-tel-bar p{font-size:0.65rem;color:var(--color-text-muted);margin-bottom:2px;}
.hero__panel-tel-bar a{
  font-family:var(--font-sans);font-size:1.3rem;font-weight:700;
  color:var(--color-primary-dark);letter-spacing:0.06em;text-decoration:none;display:block;line-height:1.2;
  font-feature-settings:"tnum";
}
.hero__panel-tel-bar span{font-size:0.62rem;color:var(--color-text-light);}

/* ========================================
   Guidance Band（ご利用案内帯）
======================================== */
.guidance-band{
  background:var(--color-primary-pale);
  border-top:1px solid rgba(27,58,92,0.14);
  border-bottom:1px solid rgba(27,58,92,0.14);
  padding:14px 0;
}
.guidance-band__inner{
  max-width:var(--max-width);margin:0 auto;padding:0 32px;
  display:flex;align-items:flex-start;gap:16px;
}
.guidance-band__icon{
  width:18px;height:18px;background:var(--color-primary-dark);border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;
}
.guidance-band__icon svg{width:10px;height:10px;fill:#fff;}
.guidance-band__text{font-size:0.82rem;color:var(--color-text);line-height:1.7;}
.guidance-band__text strong{color:var(--color-primary-dark);}

/* ========================================
   Consultation Scope（相談対象）
======================================== */
.scope-list{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  border:1px solid var(--color-border);background:var(--color-border);
  max-width:740px;margin:0 auto;
}
.scope-item{
  display:flex;align-items:flex-start;gap:10px;
  background:var(--color-bg-white);padding:12px 15px;
}
.scope-item__mark{
  width:16px;height:16px;background:var(--color-primary-dark);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;margin-top:3px;
}
.scope-item__mark svg{width:8px;height:8px;fill:#fff;}
.scope-item__text{font-size:0.84rem;color:var(--color-text);line-height:1.5;}

/* ========================================
   Flow Steps（相談の流れ）— テーブルスタイル
======================================== */
.flow-table{
  width:100%;border-collapse:collapse;border:1px solid var(--color-border);
  max-width:720px;margin:0 auto;
}
.flow-row{display:grid;grid-template-columns:80px 1fr;border-bottom:1px solid var(--color-border);}
.flow-row:last-child{border-bottom:none;}
.flow-row__step{
  background:var(--color-primary-dark);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:18px 8px;border-right:1px solid rgba(255,255,255,0.07);
}
.flow-row__step-label{font-size:0.52rem;letter-spacing:0.15em;color:rgba(255,255,255,0.4);margin-bottom:2px;}
.flow-row__step-num{font-family:'Georgia',serif;font-size:1.9rem;font-weight:700;color:#fff;line-height:1;}
.flow-row__body{background:var(--color-bg-white);padding:20px 24px;}
.flow-row:nth-child(even) .flow-row__body{background:var(--color-bg-section);}
.flow-row__tag{display:inline-block;font-size:0.62rem;font-weight:700;letter-spacing:0.09em;color:var(--color-accent);border:1px solid currentColor;padding:2px 7px;margin-bottom:6px;}
.flow-row__title{font-family:var(--font-serif);font-size:0.92rem;font-weight:700;color:var(--color-primary-dark);margin-bottom:6px;}
.flow-row__desc{font-size:0.83rem;color:var(--color-text-muted);line-height:1.8;margin-bottom:0;}
.flow-row__note{font-size:0.75rem;color:var(--color-success);margin-top:7px;padding-top:7px;border-top:1px dashed var(--color-border);}

/* ========================================
   ① FAQ Accordion（よくある質問）
======================================== */
.faq-list{max-width:720px;margin:0 auto;border:1px solid var(--color-border);}
.faq-item{border-bottom:1px solid var(--color-border);}
.faq-item:last-child{border-bottom:none;}
.faq-item__q{
  display:flex;align-items:flex-start;gap:12px;
  padding:16px 18px;cursor:pointer;
  background:var(--color-bg-white);
  transition:background var(--transition);
  user-select:none;
  list-style:none;
}
.faq-item__q::-webkit-details-marker{display:none;}
.faq-item[open] .faq-item__q{background:var(--color-primary-pale);}
.faq-item__q-mark{
  font-family:'Georgia',serif;font-size:1rem;font-weight:700;
  color:var(--color-primary-dark);flex-shrink:0;margin-top:1px;min-width:18px;
}
.faq-item__q-text{font-size:0.88rem;font-weight:600;color:var(--color-text);flex:1;line-height:1.55;}
.faq-item__q-arrow{
  font-size:0.7rem;color:var(--color-text-light);flex-shrink:0;
  margin-top:3px;transition:transform var(--transition);
}
.faq-item[open] .faq-item__q-arrow{transform:rotate(90deg);}
.faq-item__a{
  padding:14px 18px 16px 48px;
  background:var(--color-bg-section);
  border-top:1px solid var(--color-border-light);
}
.faq-item__a-mark{
  display:inline-block;font-family:'Georgia',serif;font-size:0.85rem;
  font-weight:700;color:var(--color-accent);margin-right:6px;
}
.faq-item__a p{font-size:0.84rem;color:var(--color-text-muted);line-height:1.8;display:inline;}

/* ========================================
   ⑤ Area Grid（カスタム投稿タイプ表示）
======================================== */
.area-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;border:1px solid var(--color-border);background:var(--color-border);
}
.area-card{background:var(--color-bg-white);}
.area-card__header{background:var(--color-primary);padding:8px 12px;display:flex;align-items:center;gap:5px;}
.area-card__icon svg{width:10px;height:10px;fill:rgba(255,255,255,0.65);flex-shrink:0;}
.area-card__area-name{font-family:var(--font-serif);font-size:0.8rem;font-weight:700;color:#fff;letter-spacing:0.03em;}
.area-card__links{padding:5px 0;}
.area-card__link{
  display:flex;align-items:center;gap:5px;padding:5px 11px;
  font-size:0.75rem;color:var(--color-text);
  border-bottom:1px solid var(--color-border-light);
  text-decoration:none;transition:background var(--transition);
}
.area-card__link:last-child{border-bottom:none;}
.area-card__link:hover{background:var(--color-primary-pale);color:var(--color-primary-dark);text-decoration:none;}
.area-card__link::before{content:'▶';font-size:0.42rem;color:var(--color-primary-mid);flex-shrink:0;}

/* ⑤ Archive / Taxonomy ページ用グリッド */
.area-posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.area-post-card{
  background:var(--color-bg-white);border:1px solid var(--color-border);
  transition:box-shadow var(--transition);
}
.area-post-card:hover{box-shadow:var(--shadow-md);}
.area-post-card a{display:block;padding:16px 18px;color:var(--color-text);text-decoration:none;}
.area-post-card a:hover{text-decoration:none;}
.area-post-card__type{display:inline-block;font-size:0.62rem;font-weight:700;letter-spacing:0.08em;color:var(--color-accent);border:1px solid currentColor;padding:1px 6px;margin-bottom:8px;}
.area-post-card__title{font-family:var(--font-serif);font-size:0.9rem;font-weight:700;color:var(--color-primary-dark);line-height:1.45;}

/* ⑤ Taxonomy filter bar */
.tax-filter{margin-bottom:28px;}
.tax-filter__label{font-size:0.72rem;font-weight:700;color:var(--color-text-muted);letter-spacing:0.08em;margin-bottom:8px;}
.tax-filter__list{display:flex;flex-wrap:wrap;gap:6px;}
.tax-filter__item a{
  display:inline-flex;align-items:center;padding:4px 12px;
  background:var(--color-bg-white);border:1px solid var(--color-border);
  font-size:0.74rem;color:var(--color-text);text-decoration:none;transition:all var(--transition);
}
.tax-filter__item a:hover,.tax-filter__item a.current{
  background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff;
}

/* ========================================
   CTA Banner
======================================== */
.cta-banner{background:var(--color-primary-dark);border-top:3px solid var(--color-rule);border-bottom:3px solid var(--color-rule);padding:48px 0;}
.cta-banner__inner{max-width:var(--max-width);margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1fr auto;gap:44px;align-items:center;}
.cta-banner__title{font-family:var(--font-serif);font-size:clamp(1.05rem,1.9vw,1.35rem);font-weight:700;color:#fff;margin-bottom:6px;}
.cta-banner__desc{font-size:0.82rem;color:rgba(255,255,255,0.58);}
.cta-banner__actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.cta-banner__tel{font-family:var(--font-sans);font-size:1.55rem;font-weight:700;color:#fff;letter-spacing:0.06em;line-height:1;font-feature-settings:"tnum";}
.cta-banner__tel a{color:inherit;text-decoration:none;}
.cta-banner__tel-note{font-size:0.64rem;color:rgba(255,255,255,0.4);text-align:right;}

/* ========================================
   Page Hero
======================================== */
.page-hero{background:var(--color-primary-dark);border-bottom:2px solid var(--color-rule);padding:30px 0;}
.page-hero__inner{max-width:var(--max-width);margin:0 auto;padding:0 32px;}
.page-hero__title{font-family:var(--font-serif);font-size:clamp(1.1rem,2vw,1.55rem);font-weight:700;color:#fff;margin-bottom:4px;letter-spacing:0.03em;}
.page-hero__desc{font-size:0.76rem;color:rgba(255,255,255,0.52);}

/* ========================================
   Page Layout
======================================== */
.page-layout{padding:44px 0 64px;}
.page-layout__inner{max-width:var(--max-width);margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1fr 248px;gap:40px;align-items:start;}
.page-layout__inner--full{grid-template-columns:1fr;max-width:740px;}

/* ========================================
   Sidebar
======================================== */
.sidebar{position:sticky;top:74px;}
.sidebar-widget{background:var(--color-bg-white);border:1px solid var(--color-border);margin-bottom:16px;}
.sidebar-widget__title{background:var(--color-primary-dark);color:#fff;font-size:0.74rem;font-weight:700;padding:8px 12px;letter-spacing:0.06em;}
.sidebar-widget__body{padding:12px 11px;}
.sidebar-tel{text-align:center;padding:14px 11px;}
.sidebar-tel__label{font-size:0.66rem;color:var(--color-text-muted);margin-bottom:4px;}
.sidebar-tel__number{font-family:var(--font-sans);font-size:1.18rem;font-weight:700;color:var(--color-primary-dark);letter-spacing:0.04em;margin-bottom:2px;font-feature-settings:"tnum";}
.sidebar-tel__number a{color:inherit;text-decoration:none;}
.sidebar-tel__hours{font-size:0.64rem;color:var(--color-text-light);margin-bottom:11px;}
.sidebar-nav__list{}
.sidebar-nav__item a{display:flex;align-items:center;gap:5px;padding:6px 0;font-size:0.78rem;color:var(--color-text);border-bottom:1px solid var(--color-border-light);text-decoration:none;transition:color var(--transition);}
.sidebar-nav__item:last-child a{border-bottom:none;}
.sidebar-nav__item a::before{content:'▶';font-size:0.42rem;color:var(--color-primary-mid);}
.sidebar-nav__item a:hover{color:var(--color-primary-dark);}

/* ========================================
   Local Content（エリアページ本文）
======================================== */
.local-content h2{font-size:1.08rem;color:var(--color-primary-dark);background:var(--color-primary-pale);border-left:4px solid var(--color-primary-dark);padding:8px 14px;margin:34px 0 11px;}
.local-content h2:first-child{margin-top:0;}
.local-content h3{font-size:0.92rem;color:var(--color-primary);border-bottom:1px solid var(--color-border);padding-bottom:4px;margin:22px 0 9px;}
.local-content p{font-size:0.86rem;color:var(--color-text);line-height:1.88;}
.local-content .highlight-box{background:var(--color-accent-pale);border:1px solid rgba(139,105,20,0.17);border-left:4px solid var(--color-accent);padding:13px 17px;margin:16px 0;}
.local-content .data-table{width:100%;border-collapse:collapse;margin:13px 0;font-size:0.83rem;}
.local-content .data-table th{background:var(--color-primary-dark);color:#fff;padding:8px 12px;text-align:left;font-weight:600;}
.local-content .data-table td{padding:8px 12px;border:1px solid var(--color-border-light);}
.local-content .data-table tr:nth-child(even) td{background:var(--color-bg-section);}

/* area subnav */
.area-subnav{background:var(--color-bg-white);border:1px solid var(--color-border);padding:12px;margin-bottom:22px;}
.area-subnav__title{font-size:0.68rem;font-weight:700;color:var(--color-text-muted);letter-spacing:0.1em;margin-bottom:7px;}
.area-subnav__list{display:flex;flex-wrap:wrap;gap:5px;}
.area-subnav__item a{display:inline-flex;align-items:center;padding:3px 9px;background:var(--color-bg-section);border:1px solid var(--color-border);font-size:0.71rem;color:var(--color-text);text-decoration:none;transition:all var(--transition);}
.area-subnav__item a:hover,.area-subnav__item a.current{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff;}

/* ========================================
   Contact Form (CF7) — フルページ用
======================================== */
.contact-section{max-width:660px;margin:0 auto;}
.contact-tel-bar{background:var(--color-primary-dark);padding:18px 22px;margin-bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.contact-tel-bar__text{font-size:0.82rem;color:rgba(255,255,255,0.75);}
.contact-tel-bar__num{font-family:'Georgia',serif;font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:0.04em;line-height:1;}
.contact-tel-bar__num a{color:inherit;text-decoration:none;}
.contact-tel-bar__hours{font-size:0.66rem;color:rgba(255,255,255,0.45);}
.wpcf7 form{width:100%;}
.wpcf7 .form-group{margin-bottom:16px;}
.wpcf7 label,.form-label{display:block;font-size:0.81rem;font-weight:700;color:var(--color-text);margin-bottom:5px;}
.form-required{display:inline-block;background:#6b1e1e;color:#fff;font-size:0.59rem;padding:1px 5px;margin-left:4px;font-weight:700;}
.form-optional{display:inline-block;background:var(--color-bg-section);color:var(--color-text-muted);font-size:0.59rem;padding:1px 5px;margin-left:4px;border:1px solid var(--color-border);}
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 textarea,.wpcf7 select{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:0;font-family:var(--font-sans);font-size:0.88rem;color:var(--color-text);background:#fff;transition:border-color var(--transition);-webkit-appearance:none;appearance:none;}
.wpcf7 input[type="text"]:focus,.wpcf7 input[type="email"]:focus,.wpcf7 input[type="tel"]:focus,.wpcf7 textarea:focus,.wpcf7 select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(27,58,92,0.1);}
.wpcf7 textarea{min-height:130px;resize:vertical;}
.wpcf7 select{background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%234a5568'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px;}
.wpcf7 .wpcf7-submit{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2F74C8,#1F5FAF);color:#fff;border:none;border-radius:0;padding:12px 40px;font-family:var(--font-sans);font-size:0.86rem;font-weight:700;letter-spacing:0.09em;cursor:pointer;transition:background var(--transition);min-width:200px;}
.wpcf7 .wpcf7-submit:hover{background:linear-gradient(135deg,#1F5FAF,#184C8F);}
.wpcf7 .form-submit{text-align:center;margin-top:22px;}
.wpcf7 .wpcf7-not-valid-tip{color:#6b1e1e;font-size:0.74rem;margin-top:3px;display:block;}
.wpcf7 .wpcf7-response-output{margin:13px 0 0;padding:10px 13px;font-size:0.82rem;border:none!important;}
.wpcf7 .wpcf7-mail-sent-ok{background:rgba(39,103,73,0.08);color:var(--color-success);border-left:4px solid var(--color-success)!important;}
.wpcf7 .wpcf7-validation-errors,.wpcf7 .wpcf7-mail-sent-ng{background:rgba(107,30,30,0.06);color:#6b1e1e;border-left:4px solid #6b1e1e!important;}

/* ⑩ CF7 acceptance（プライバシーポリシー同意）レイアウト修正 */
.wpcf7 .wpcf7-acceptance{display:block;margin-bottom:0;}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item{display:flex;align-items:flex-start;gap:8px;margin:0;}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item input[type="checkbox"]{flex-shrink:0;margin-top:3px;width:15px;height:15px;cursor:pointer;}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item-label{font-size:0.82rem;color:var(--color-text-muted);line-height:1.6;}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item-label a{color:var(--color-primary-mid);text-decoration:underline;}
/* acceptance専用: privacy展開テキストを隠してリンクのみ表示 */
.wpcf7 .wpcf7-acceptance p{display:none!important;}

/* ⑨ お問い合わせページ 箇条書き余白 */
.contact-scope-list{
  list-style:none;
  border:1px solid var(--color-border);
  margin-bottom:32px;
}
.contact-scope-list li{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 16px;
  border-bottom:1px solid var(--color-border-light);
  font-size:0.88rem;color:var(--color-text);line-height:1.55;
}
.contact-scope-list li:last-child{border-bottom:none;}
.contact-scope-list li::before{
  content:'●';font-size:0.45rem;color:var(--color-primary-dark);
  flex-shrink:0;margin-top:6px;
}
.contact-tel-block{
  background:var(--color-primary-dark);padding:22px 24px;margin-top:32px;margin-bottom:0;
}
.contact-tel-block__label{font-size:0.82rem;color:rgba(255,255,255,0.7);margin-bottom:6px;}
.contact-tel-block__num{
  font-family:var(--font-sans);font-size:2rem;font-weight:700;
  color:#fff;letter-spacing:0.06em;line-height:1;margin-bottom:4px;
  font-feature-settings:"tnum";
}
.contact-tel-block__num a{color:inherit;text-decoration:none;}
.contact-tel-block__detail{display:flex;gap:20px;flex-wrap:wrap;}
.contact-tel-block__hours{font-size:0.72rem;color:rgba(255,255,255,0.5);}
.contact-tel-block__addr{font-size:0.72rem;color:rgba(255,255,255,0.5);}

/* ========================================
   Company / Privacy Table
======================================== */
.company-table{width:100%;border-collapse:collapse;font-size:0.85rem;}
.company-table th,.company-table td{padding:11px 15px;border:1px solid var(--color-border);vertical-align:top;line-height:1.7;}
.company-table th{background:var(--color-bg-section);font-weight:700;color:var(--color-primary-dark);white-space:nowrap;width:145px;font-family:var(--font-serif);}
.company-table td{background:var(--color-bg-white);}

/* Privacy page */
.privacy-content{max-width:720px;}
.privacy-content h2{font-size:1rem;color:var(--color-primary-dark);border-left:4px solid var(--color-primary-dark);padding:6px 12px;background:var(--color-primary-pale);margin:30px 0 10px;}
.privacy-content h2:first-child{margin-top:0;}
.privacy-content p,.privacy-content li{font-size:0.84rem;color:var(--color-text);line-height:1.85;}
.privacy-content ul{padding-left:1.2em;list-style:disc;margin-bottom:1em;}

/* ========================================
   Footer
======================================== */
.site-footer{background:var(--color-primary-dark);border-top:3px solid var(--color-rule);color:rgba(255,255,255,0.7);}
.site-footer__main{padding:40px 0 30px;border-bottom:1px solid rgba(255,255,255,0.08);}
.site-footer__grid{max-width:var(--max-width);margin:0 auto;padding:0 32px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;}
.footer-brand__logo{font-family:var(--font-serif);font-size:0.92rem;font-weight:700;color:#fff;line-height:1.3;margin-bottom:3px;}
.footer-brand__sub{font-size:0.63rem;color:rgba(255,255,255,0.32);margin-bottom:14px;line-height:1.5;}
.footer-brand__address{font-size:0.75rem;color:rgba(255,255,255,0.52);line-height:1.88;margin-bottom:9px;}
/* ⑥ フッター電話番号フォント統一 */
.footer-brand__tel{font-family:var(--font-sans);font-size:1.05rem;font-weight:700;color:#fff;letter-spacing:0.04em;margin-bottom:2px;font-feature-settings:"tnum";display:none;}
.footer-brand__tel a{color:inherit;text-decoration:none;}
.footer-brand__fax{font-size:0.7rem;color:rgba(255,255,255,0.38);display:none;}
.footer-brand__license{margin-top:11px;padding-top:11px;border-top:1px solid rgba(255,255,255,0.07);font-size:0.63rem;color:rgba(255,255,255,0.27);}

/* LINE 導線ブロック */
.line-cta{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--color-line);color:#fff;
  padding:10px 20px;font-size:0.86rem;font-weight:700;
  text-decoration:none;transition:background var(--transition);
  letter-spacing:0.04em;
}
.line-cta:hover{background:#05b04c;color:#fff;text-decoration:none;}
.line-cta__icon{width:22px;height:22px;flex-shrink:0;}
.line-cta--sm{padding:7px 14px;font-size:0.78rem;}
.line-cta--sm .line-cta__icon{width:18px;height:18px;}

/* ヘッダー内LINE */
.header-line{flex-shrink:0;}

.footer-nav__title{font-size:0.63rem;font-weight:700;color:rgba(255,255,255,0.32);letter-spacing:0.12em;text-transform:uppercase;margin-bottom:11px;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,0.07);}
.footer-nav__item a{display:flex;align-items:center;gap:5px;padding:4px 0;font-size:0.77rem;color:rgba(255,255,255,0.52);text-decoration:none;transition:color var(--transition);}
.footer-nav__item a::before{content:'▶';font-size:0.4rem;color:var(--color-rule);}
.footer-nav__item a:hover{color:#fff;}
.footer-nav__sub-title{font-size:0.63rem;color:rgba(255,255,255,0.26);margin:8px 0 3px;}
.footer-nav__sub-item a{display:flex;align-items:center;gap:4px;padding:2px 0 2px 6px;font-size:0.71rem;color:rgba(255,255,255,0.36);text-decoration:none;transition:color var(--transition);}
.footer-nav__sub-item a:hover{color:rgba(255,255,255,0.68);}
.site-footer__bottom{padding:12px 0;}
.site-footer__bottom-inner{max-width:var(--max-width);margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.footer-bottom-links{display:flex;align-items:center;gap:14px;}
.footer-bottom-links a{font-size:0.68rem;color:rgba(255,255,255,0.34);text-decoration:none;}
.footer-bottom-links a:hover{color:rgba(255,255,255,0.6);}
.footer-copyright{font-size:0.68rem;color:rgba(255,255,255,0.24);}

/* ========================================
   Responsive
======================================== */
@media(max-width:960px){
  .hero__inner{grid-template-columns:1fr;gap:28px;}
  .hero__form-panel{max-width:100%;}
  .area-grid{grid-template-columns:repeat(2,1fr);}
  .page-layout__inner{grid-template-columns:1fr;}
  .sidebar{position:static;}
  .cta-banner__inner{grid-template-columns:1fr;gap:20px;}
  .cta-banner__actions{align-items:flex-start;}
  .site-footer__grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:680px){
  :root{--header-h:auto;}
  .container{padding:0 16px;}
  .section{padding:40px 0;}

  /* SP ヘッダー: ロゴを縮小、右側ボタンを小さく2行表示 */
  .site-header__inner{
    padding:8px 12px;height:auto;
    flex-wrap:nowrap;align-items:center;gap:8px;
  }
  .site-header__logo{flex:1;min-width:0;}
  .logo-main{font-size:0.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .logo-sub{display:none;}
  .header-tel{display:none;}
  /* SP: 右側ボタンエリア — 縦並び・小さく */
  .site-header__right{
    display:flex;flex-direction:column;
    align-items:stretch;gap:4px;flex-shrink:0;width:72px;
  }
  .site-header__right .line-cta,
  .site-header__right .btn--sm{
    font-size:0.6rem;padding:5px 4px;
    white-space:normal;text-align:center;
    line-height:1.3;width:100%;
    display:flex;align-items:center;justify-content:center;
  }

  .global-nav__inner,.breadcrumb__inner,.guidance-band__inner{padding:0 16px;}
  .nav-toggle{display:flex;}
  .global-nav{display:none;}
  .global-nav.is-open{display:block;}
  .global-nav__list{flex-direction:column;}
  .global-nav__item{border-bottom:1px solid rgba(255,255,255,0.07);}
  .global-nav__link{justify-content:flex-start;padding:11px 18px;border-right:none;}
  .global-nav__item:first-child .global-nav__link{border-left:none;}

  /* ④ SP Hero */
  .hero{min-height:auto;}
  .hero__inner{padding:36px 16px;}
  .hero__title{font-size:1.35rem;}
  .hero__form-panel{padding:18px 16px;}

  .scope-list,.area-grid{grid-template-columns:1fr;}
  .flow-row{grid-template-columns:60px 1fr;}
  .site-footer__grid{grid-template-columns:1fr;gap:24px;}
  .site-footer__bottom-inner{flex-direction:column;gap:6px;align-items:flex-start;}
  .cta-banner__inner{grid-template-columns:1fr;}
  .company-table th,.company-table td{display:block;width:100%;}
  .company-table th{border-bottom:none;}
  .contact-tel-block__detail{flex-direction:column;gap:4px;}
}

/* Utilities */
.text-center{text-align:center;}
.mt-32{margin-top:32px;}
.mt-40{margin-top:40px;}
.mb-24{margin-bottom:24px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.alignleft{float:left;margin-right:1.5em;}
.alignright{float:right;margin-left:1.5em;}
.aligncenter{display:block;margin:0 auto;}

/* ④ 88件町名グリッド */
.area-town-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:1px;
  border:1px solid var(--color-border);
  background:var(--color-border);
}
.area-town-card{background:var(--color-bg-white);}
.area-town-card a{
  display:flex;align-items:center;gap:6px;
  padding:9px 12px;
  text-decoration:none;
  color:var(--color-text);
  transition:background var(--transition);
  min-height:44px;
}
.area-town-card a:hover{background:var(--color-primary-pale);text-decoration:none;}
.area-town-card__tag{
  font-size:0.55rem;font-weight:700;letter-spacing:0.06em;
  color:var(--color-accent);border:1px solid currentColor;
  padding:1px 4px;flex-shrink:0;display:none;
}
.area-town-card__name{font-size:0.82rem;color:var(--color-text);flex:1;line-height:1.35;}
.area-town-card__arrow{font-size:0.7rem;color:var(--color-text-light);flex-shrink:0;}

/* グロナビ「もっと見る」リンク */
.global-nav__sub-item--more a{
  color:var(--color-accent)!important;font-weight:600;
}

@media(max-width:680px){
  .area-town-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));}
}
