/*
Theme Name: 弁天クリーンサービス
Theme URI:
Author: 弁天住設管理
Author URI:
Description: 弁天クリーンサービス公式サイト用テーマ（大阪市港区・弁天エリアの空室清掃／エアコン清掃）。既存デザインを忠実に再現し、ブログ（集客記事）機能を追加。
Version: 1.0.8
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: benten
*/

:root {
  --navy:#0d2240;--navy-mid:#1a3a5c;--navy-light:#243f6a;
  --gold:#c4963c;--gold-light:#f5ead8;
  --blue:#1a6fa8;--blue-light:#e6f3fb;
  --pink:#1a6fa8;--pink-light:#e6f3fb;--pink-mid:#a8d4f0;
  --sky:#c4963c;--sky-light:#f5ead8;
  --orange:#ff8c42;--orange-light:#fff3e8;
  --green:#06c755;
  --text:#1a2030;--text-mid:#3d4f6a;--text-light:#6b7c93;
  --bg:#f6f8fb;--white:#ffffff;--border:#dde4ef;
  --shadow:0 4px 24px rgba(13,34,64,.09);
  --shadow-lg:0 8px 48px rgba(13,34,64,.14);
  --radius:14px;--radius-sm:8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased;line-height:1.75;}
a{text-decoration:none;color:inherit;}
.container{max-width:1100px;margin:0 auto;padding:0 2rem;}
.section{padding:80px 0;}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 30px;border-radius:50px;font-size:14px;font-weight:700;transition:all .25s;cursor:pointer;border:none;font-family:inherit;white-space:nowrap;}
.btn-navy{background:var(--navy);color:white;}
.btn-navy:hover{background:var(--navy-mid);transform:translateY(-2px);box-shadow:0 8px 28px rgba(13,34,64,.22);}
.btn-pink{background:var(--navy);color:white;}
.btn-pink:hover{background:var(--navy-mid);transform:translateY(-2px);box-shadow:0 8px 28px rgba(13,34,64,.2);}
.btn-orange{background:var(--orange);color:white;}
.btn-orange:hover{background:#e57a35;transform:translateY(-2px);}
.btn-line{background:var(--green);color:white;}
.btn-line:hover{background:#05b349;transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--navy);border:2px solid var(--navy);}
.btn-outline:hover{background:var(--navy);color:white;}
.btn-lg{padding:18px 40px;font-size:16px;}

/* ── NAV ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;transition:all .35s;padding-top:6px;padding-bottom:6px;}
.nav.scrolled{background:rgba(255,255,255,.97);backdrop-filter:blur(20px);box-shadow:0 1px 0 var(--border),0 4px 24px rgba(13,34,64,.06);}
.nav-inner{max-width:1100px;margin:0 auto;padding:0 3rem;height:76px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}
.nav-logo{display:flex;align-items:center;gap:12px;}
.nav-logo-img{width:52px;height:52px;object-fit:contain;}
.nav-logo-main{font-family:'Shippori Mincho B1',serif;font-size:18px;font-weight:600;color:white;letter-spacing:.06em;line-height:1.2;white-space:nowrap;}
.nav-logo-sub{font-size:10px;color:rgba(255,255,255,.5);letter-spacing:.1em;}
.nav.scrolled .nav-logo-main{color:var(--navy);}
.nav.scrolled .nav-logo-sub{color:var(--text-light);}
.nav-menu{display:flex;align-items:center;gap:1rem;}
.nav-menu a{font-size:13px;color:rgba(255,255,255,.8);transition:color .2s;white-space:nowrap;}
.nav-menu a:hover{color:white;}
.nav.scrolled .nav-menu a{color:var(--text-mid);}
.nav.scrolled .nav-menu a:hover{color:var(--navy);}
.nav-cta{background:var(--green)!important;color:white!important;padding:10px 20px;border-radius:50px;font-size:13px;font-weight:700;white-space:nowrap;}
.nav-tel{display:flex;flex-direction:column;align-items:flex-end;}
.nav-tel-num{font-size:18px;font-weight:700;color:white;line-height:1.2;}
.nav-tel-time{font-size:10px;color:rgba(255,255,255,.5);}
.nav.scrolled .nav-tel-num{color:var(--navy);}
.nav.scrolled .nav-tel-time{color:var(--text-light);}
.nav.scrolled .nav-tel{background:white;box-shadow:0 2px 12px rgba(13,34,64,.12);}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;z-index:1001;}
.nav-hamburger span{width:26px;height:2px;background:white;display:block;transition:all .3s;border-radius:2px;}
.nav.scrolled .nav-hamburger span{background:var(--navy);}
.nav-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,7px);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-7px);}

/* ── DROPDOWN NAV ── */
.nav-dropdown{position:relative;}
.nav-dropdown-label{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:13px;color:rgba(255,255,255,.8);transition:color .2s;user-select:none;white-space:nowrap;}
.nav-dropdown-label:hover{color:white;}
.nav.scrolled .nav-dropdown-label{color:var(--text-mid);}
.nav.scrolled .nav-dropdown-label:hover{color:var(--navy);}
.nav-dropdown-label svg{transition:transform .25s;}
.nav-dropdown:hover .nav-dropdown-label svg,.nav-dropdown.open .nav-dropdown-label svg{transform:rotate(180deg);}
.nav-dropdown{position:relative;padding-bottom:16px;margin-bottom:-16px;}
.nav-dropdown-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);background:white;border-radius:var(--radius);box-shadow:0 8px 40px rgba(13,34,64,.14);border:1px solid var(--border);min-width:220px;padding:.625rem 0;opacity:0;pointer-events:none;transition:opacity .15s;z-index:200;}
.nav-dropdown::after{content:'';position:absolute;top:100%;left:0;right:0;height:16px;}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1;pointer-events:auto;}
.nav-dropdown-menu a{display:flex;align-items:center;gap:10px;padding:.625rem 1.25rem;font-size:13px;color:var(--text-mid);transition:background .15s,color .15s;}
.nav-dropdown-menu a:hover{background:var(--bg);color:var(--navy);}
.nav-dropdown-menu .ddm-icon{font-size:16px;width:22px;text-align:center;flex-shrink:0;}
.nav-dropdown-divider{height:1px;background:var(--border);margin:.375rem .75rem;}
.nav-dropdown-heading{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);padding:.375rem 1.25rem .25rem;font-weight:700;}

/* ── HERO ── */
.hero{background-color:#0d1f3c;color:#ffffff;padding:72px 40px 60px;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-120px;right:-120px;width:480px;height:480px;background:radial-gradient(circle,rgba(59,130,246,.12) 0%,transparent 70%);pointer-events:none;}
.hero__target-badge{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;color:#94a3b8;border:1px solid rgba(148,163,184,.3);border-radius:999px;padding:5px 16px;margin-bottom:32px;letter-spacing:.03em;}
.hero__target-badge-area{color:#f59e0b;font-weight:600;}
.hero__inner{display:grid;grid-template-columns:1fr 420px;gap:48px;align-items:start;max-width:1200px;margin:0 auto;}
.hero__left{display:flex;flex-direction:column;gap:28px;}
.hero__heading{font-size:clamp(2.4rem,4.5vw,3.4rem);font-weight:800;line-height:1.25;letter-spacing:-.02em;color:#ffffff;margin:0;}
.hero__heading-em{color:#f59e0b;font-style:normal;font-size:1.15em;}
.hero__lead{font-size:.97rem;line-height:1.85;color:#cbd5e1;margin:0;}
.hero__lead strong{color:#ffffff;font-weight:700;}
.hero__cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.hero__btn-line{display:inline-flex;align-items:center;gap:8px;background:#06c755;color:#ffffff;font-weight:700;font-size:1.05rem;padding:15px 32px;border-radius:999px;text-decoration:none;box-shadow:0 4px 20px rgba(6,199,85,.35);transition:transform .2s,box-shadow .2s;}
.hero__btn-line:hover{transform:translateY(-2px);box-shadow:0 6px 28px rgba(6,199,85,.5);}
.hero__btn-icon{font-size:1.1em;}
.hero__btn-sub{display:inline-flex;align-items:center;color:#e2e8f0;font-size:.95rem;font-weight:600;padding:13px 26px;border-radius:999px;border:1.5px solid rgba(226,232,240,.45);text-decoration:none;transition:background .2s,border-color .2s;}
.hero__btn-sub:hover{background:rgba(255,255,255,.08);border-color:rgba(226,232,240,.7);}
.hero__stats{display:flex;gap:0;flex-wrap:wrap;}
.hero__stat{display:flex;flex-direction:column;align-items:center;padding:12px 22px;border-right:1px solid rgba(255,255,255,.12);}
.hero__stat:first-child{padding-left:0;}
.hero__stat:last-child{border-right:none;}
.hero__stat-num{font-size:1.6rem;font-weight:800;color:#f59e0b;line-height:1.1;letter-spacing:-.02em;}
.hero__stat-num small{font-size:.65em;font-weight:700;}
.hero__stat-label{font-size:.72rem;color:#94a3b8;margin-top:4px;white-space:nowrap;}
.hero__trust{display:flex;gap:8px;flex-wrap:wrap;}
.hero__trust-badge{font-size:.75rem;color:#94a3b8;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:5px 12px;white-space:nowrap;}
.hero__right{display:flex;flex-direction:column;gap:10px;}
.hero__card{display:flex;align-items:flex-start;gap:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 18px;transition:background .2s,border-color .2s;}
.hero__card:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);}
.hero__card-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.hero__card-icon--orange{background:rgba(245,158,11,.2);}
.hero__card-icon--yellow{background:rgba(234,179,8,.2);}
.hero__card-icon--green{background:rgba(34,197,94,.2);}
.hero__card-icon--blue{background:rgba(59,130,246,.2);}
.hero__card-icon--purple{background:rgba(168,85,247,.2);}
.hero__card-body{flex:1;}
.hero__card-title{font-size:.9rem;font-weight:700;color:#f1f5f9;margin:0 0 4px;}
.hero__card-desc{font-size:.8rem;color:#94a3b8;line-height:1.65;margin:0;}
@media(max-width:960px){.hero__inner{grid-template-columns:1fr;gap:36px;}.hero__right{display:grid;grid-template-columns:1fr 1fr;gap:10px;}}
@media(max-width:640px){.hero{padding:52px 20px 44px;}.hero__right{grid-template-columns:1fr;}.hero__stat{padding:8px 14px;}.hero__btn-line,.hero__btn-sub{font-size:.92rem;padding:12px 22px;}}
/* ── SECTION HEADERS ── */
.tag{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);font-weight:500;display:flex;align-items:center;gap:10px;margin-bottom:.75rem;}
.tag::before{content:'';width:24px;height:1.5px;background:var(--gold);flex-shrink:0;}
.h2{font-family:'Shippori Mincho B1',serif;font-size:clamp(24px,3vw,34px);font-weight:600;color:var(--navy);line-height:1.4;margin-bottom:1rem;}
.lead{font-size:15px;color:var(--text-light);line-height:1.9;max-width:540px;font-weight:300;}
.section-header{margin-bottom:3.5rem;}

/* ── CAMPAIGN BANNER ── */
.campaign{background:linear-gradient(135deg,var(--gold-light),#f0e8d8);border:2px solid var(--gold);border-radius:var(--radius);padding:2rem;text-align:center;margin-bottom:2rem;position:relative;overflow:hidden;}
.campaign::before{content:'✨';position:absolute;top:10px;left:20px;font-size:24px;}
.campaign::after{content:'✨';position:absolute;top:10px;right:20px;font-size:24px;}
.campaign-title{font-size:13px;font-weight:700;color:var(--gold);letter-spacing:.1em;margin-bottom:.5rem;}
.campaign-main{font-family:'Shippori Mincho B1',serif;font-size:clamp(20px,3vw,28px);font-weight:700;color:var(--navy);margin-bottom:.75rem;}
.campaign-price{font-size:clamp(36px,6vw,56px);font-weight:900;color:var(--pink);line-height:1;}
.campaign-price-sub{font-size:14px;color:var(--text-mid);margin-top:.5rem;}
.campaign-badge{display:inline-block;background:var(--gold);color:white;font-size:12px;font-weight:700;padding:4px 12px;border-radius:50px;margin-bottom:.75rem;}

/* ── ZERO LIST ── */
.zero-list{display:flex;flex-direction:column;gap:0;}
.zero-item{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;border-bottom:1px dashed var(--border);}
.zero-item:last-child{border-bottom:none;}
.zero-label{font-size:16px;font-weight:500;color:var(--navy);}
.zero-num{font-size:42px;font-weight:900;color:var(--gold);line-height:1;}
.zero-badge{font-size:10px;background:var(--gold-light);color:var(--gold);padding:3px 10px;border-radius:50px;font-weight:700;margin-left:6px;}

/* ── SERVICE CARDS ── */
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.service-card{background:white;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);transition:all .25s;cursor:pointer;display:flex;flex-direction:column;}
.service-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:transparent;}
.service-card-img{height:180px;display:flex;align-items:center;justify-content:center;font-size:60px;position:relative;}
.simg-ac{background:linear-gradient(135deg,#e6f3fb,#c8e0f4);}
.simg-water{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);}
.simg-teiki{background:linear-gradient(135deg,#fff3e0,#ffe0b2);}
.simg-sodan{background:linear-gradient(135deg,#f3e5f5,#e1bee7);}
.simg-hojin{background:linear-gradient(135deg,#e3f2fd,#bbdefb);}
.service-no1{position:absolute;top:12px;left:12px;background:var(--gold);color:white;font-size:11px;font-weight:700;padding:4px 12px;border-radius:50px;}
.service-card-body{padding:1.5rem;display:flex;flex-direction:column;flex:1;}
.service-card-name{font-size:17px;font-weight:700;color:var(--navy);margin-bottom:.5rem;}
.service-card-desc{font-size:13px;color:var(--text-light);line-height:1.8;margin-bottom:1rem;}
.service-card-price{font-size:22px;font-weight:900;color:var(--gold);margin-top:auto;}
.service-card-price span{font-size:13px;font-weight:400;color:var(--text-light);}
.service-card-btn{display:block;text-align:center;background:var(--navy);color:white;padding:10px;border-radius:50px;font-size:13px;font-weight:700;margin-top:1rem;transition:all .25s;}
.service-card-btn:hover{background:var(--navy-mid);transform:translateY(-1px);}

/* ── PRICE TABLE ── */
.price-table{width:100%;border-collapse:collapse;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.price-table th{background:var(--navy);color:white;padding:1rem 1.25rem;font-size:14px;font-weight:500;text-align:left;}
.price-table td{padding:.875rem 1.25rem;border-bottom:1px solid var(--border);font-size:14px;background:white;}
.price-table tr:last-child td{border-bottom:none;}
.price-table .price-val{font-weight:700;color:var(--gold);font-size:16px;}
.price-table .price-free{font-weight:700;color:var(--green);font-size:16px;}

/* ── PACK CARD ── */
.pack-card{border-radius:var(--radius);overflow:hidden;margin-bottom:1.5rem;}
.pack-header{padding:1.5rem 2rem;display:flex;align-items:center;gap:1rem;}
.pack-num{font-size:48px;font-weight:900;line-height:1;}
.pack-title{font-size:18px;font-weight:700;}
.pack-sub{font-size:13px;opacity:.8;margin-top:4px;}
.pack-blue{background:linear-gradient(135deg,var(--navy),var(--navy-mid));}
.pack-blue .pack-num,.pack-blue .pack-title,.pack-blue .pack-sub{color:white;}
.pack-body{background:white;border:2px solid var(--border);border-top:none;padding:1.5rem 2rem;border-radius:0 0 var(--radius) var(--radius);}
.pack-price-row{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem;}
.pack-price-old{font-size:14px;color:var(--text-light);text-decoration:line-through;}
.pack-price-new{font-size:40px;font-weight:900;color:var(--gold);}
.pack-price-tax{font-size:13px;color:var(--text-light);}
.pack-features{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;}
.pack-feature{background:var(--gold-light);color:var(--gold);font-size:12px;font-weight:700;padding:4px 12px;border-radius:50px;}

/* ── STEPS ── */
.steps{display:flex;flex-direction:column;gap:0;}
.step{display:flex;gap:1.5rem;padding:1.25rem 0;border-bottom:1px solid var(--border);}
.step:last-child{border-bottom:none;}
.step-num{width:36px;height:36px;border-radius:50%;background:var(--navy);color:white;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0;}
.step-title{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.step-body{font-size:13px;color:var(--text-light);line-height:1.8;}

/* ── VOICE ── */
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.voice-card{background:white;border-radius:var(--radius);padding:1.5rem;border:1px solid var(--border);transition:all .25s;}
.voice-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.voice-stars{color:var(--gold);font-size:16px;letter-spacing:2px;margin-bottom:.75rem;}
.voice-text{font-size:13px;color:var(--text-mid);line-height:1.9;margin-bottom:1rem;}
.voice-author{display:flex;align-items:center;gap:.75rem;padding-top:1rem;border-top:1px solid var(--border);}
.voice-avatar{width:38px;height:38px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;font-family:'Shippori Mincho B1',serif;font-size:16px;color:white;font-weight:600;}
.voice-name{font-size:13px;font-weight:700;color:var(--navy);}
.voice-info{font-size:11px;color:var(--text-light);}

/* ── AREA ── */
.area-section{background:var(--navy);position:relative;overflow:hidden;}
.area-section .tag{color:rgba(196,150,60,.8);}
.area-section .tag::before{background:rgba(196,150,60,.8);}
.area-section .h2{color:white;}
.area-section .lead{color:rgba(255,255,255,.5);}
.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem;}
.area-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);padding:1.25rem;text-align:center;transition:all .25s;}
.area-card:hover{background:rgba(255,255,255,.1);}
.area-name{font-size:14px;font-weight:700;color:white;margin-bottom:4px;}
.area-sub{font-size:11px;color:rgba(255,255,255,.4);}

/* ── FAQ ── */
.faq-list{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:white;}
.faq-item{border-bottom:1px solid var(--border);}
.faq-item:last-child{border-bottom:none;}
.faq-q{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;cursor:pointer;transition:background .2s;}
.faq-q:hover{background:var(--bg);}
.faq-q-badge{width:26px;height:26px;border-radius:50%;background:var(--navy);color:white;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;margin-top:1px;}
.faq-q-text{font-size:14px;font-weight:500;color:var(--navy);flex:1;line-height:1.5;}
.faq-q-arrow{color:var(--text-light);font-size:11px;transition:transform .3s;margin-top:4px;}
.faq-item.open .faq-q-arrow{transform:rotate(180deg);}
.faq-a{display:none;padding:.875rem 1.5rem 1.25rem 4rem;font-size:13px;color:var(--text-light);line-height:1.9;background:var(--blue-light);border-top:1px solid var(--border);}
.faq-item.open .faq-a{display:block;}

/* ── LINE CTA ── */
.line-cta-box{background:var(--green);border-radius:var(--radius);padding:2rem 2.5rem;display:flex;align-items:center;gap:2rem;box-shadow:0 8px 40px rgba(6,199,85,.25);position:relative;overflow:hidden;}
.line-cta-box::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.12) 0%,transparent 60%);}
.line-cta-icon{width:64px;height:64px;background:white;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;}
.line-cta-icon span{font-size:18px;font-weight:900;color:var(--green);letter-spacing:-1px;}
.line-cta-text{flex:1;z-index:1;}
.line-cta-title{font-size:20px;font-weight:700;color:white;margin-bottom:6px;}
.line-cta-sub{font-size:13px;color:rgba(255,255,255,.85);}
.line-cta-btn{background:white;color:var(--green);padding:14px 28px;border-radius:50px;font-size:14px;font-weight:700;white-space:nowrap;z-index:1;transition:all .25s;flex-shrink:0;}
.line-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);}

/* ── CONTACT ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
.contact-method{background:var(--bg);border-radius:var(--radius);padding:1.5rem;border:1px solid var(--border);margin-bottom:1rem;display:flex;align-items:center;gap:1.25rem;transition:all .25s;}
.contact-method:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.contact-method-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;}
.cm-tel{background:var(--blue-light);}
.cm-line{background:rgba(6,199,85,.1);}
.contact-method-title{font-size:14px;font-weight:500;color:var(--navy);margin-bottom:3px;}
.contact-method-val{font-size:16px;font-weight:700;color:var(--navy);}
.contact-method-sub{font-size:11px;color:var(--text-light);margin-top:2px;}
.contact-form{background:var(--bg);border-radius:var(--radius);padding:2rem;border:1px solid var(--border);}
.form-group{margin-bottom:1.125rem;}
.form-label{display:block;font-size:13px;font-weight:500;color:var(--text);margin-bottom:6px;}
.form-label em{color:#e53e3e;font-style:normal;font-size:11px;margin-left:4px;}
.form-input,.form-select,.form-textarea{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:'Noto Sans JP',sans-serif;color:var(--text);background:white;transition:border-color .2s;outline:none;appearance:none;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue);}
.form-textarea{height:110px;resize:vertical;line-height:1.7;}
.form-submit{width:100%;background:var(--navy);color:white;padding:15px;border:none;border-radius:50px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .25s;margin-top:.5rem;}
.form-submit:hover{background:var(--navy-mid);transform:translateY(-1px);box-shadow:var(--shadow);}

/* ── ABOUT ── */
.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.about-card{background:var(--navy);border-radius:var(--radius);padding:3rem;color:white;position:relative;overflow:hidden;}
.about-card::before{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:rgba(196,150,60,.1);}
.about-quote{font-family:'Shippori Mincho B1',serif;font-size:26px;font-weight:600;line-height:1.6;margin-bottom:1.5rem;color:white;}
.about-quote em{color:var(--gold);font-style:normal;}
.about-desc{font-size:13px;color:rgba(255,255,255,.6);line-height:1.9;}
.about-table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:white;margin-top:1.5rem;}
.about-row{display:flex;border-bottom:1px solid var(--border);}
.about-row:last-child{border-bottom:none;}
.about-key{font-size:12px;color:var(--text-light);min-width:110px;padding:.875rem 1rem;background:var(--bg);}
.about-val{font-size:13px;color:var(--text);padding:.875rem 1rem;}
.about-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:1.25rem;}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:6px 14px;border-radius:50px;font-weight:700;}
.badge-navy{background:var(--navy);color:white;}
.badge-gold{background:var(--gold-light);color:var(--gold);border:1px solid rgba(196,150,60,.3);}

/* ── CAUTION ── */
.caution-box{background:#fff5f5;border:2px solid #fca5a5;border-radius:var(--radius);padding:1.5rem 2rem;}
.caution-title{background:#ef4444;color:white;font-size:14px;font-weight:700;padding:.5rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;text-align:center;}
.caution-list{display:flex;flex-direction:column;gap:.625rem;}
.caution-item{font-size:13px;color:var(--text-mid);line-height:1.7;padding-left:1.25rem;position:relative;}
.caution-item::before{content:'※';position:absolute;left:0;color:#ef4444;font-weight:700;}

/* ── FOOTER ── */
.footer{background:var(--navy);padding:4rem 0 2rem;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem;margin-bottom:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-logo{display:flex;align-items:center;gap:12px;margin-bottom:1rem;}
.footer-logo-img{width:48px;height:48px;object-fit:contain;}
.footer-logo-main{font-family:'Shippori Mincho B1',serif;font-size:17px;color:white;font-weight:600;}
.footer-logo-sub{font-size:10px;color:rgba(255,255,255,.35);}
.footer-desc{font-size:13px;color:rgba(255,255,255,.4);line-height:1.9;}
.footer-col-title{font-size:12px;font-weight:500;color:rgba(255,255,255,.5);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;}
.footer-links{display:flex;flex-direction:column;gap:.625rem;}
.footer-links a{font-size:13px;color:rgba(255,255,255,.5);transition:color .2s;}
.footer-links a:hover{color:white;}
.footer-contact-item{display:flex;flex-direction:column;gap:3px;margin-bottom:.875rem;}
.footer-contact-label{font-size:11px;color:rgba(255,255,255,.35);}
.footer-contact-val{font-size:14px;color:rgba(255,255,255,.7);font-weight:500;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;}
.footer-copy{font-size:12px;color:rgba(255,255,255,.25);}

/* ── LINE FLOAT ── */
.line-float{position:fixed;bottom:28px;right:28px;z-index:999;background:var(--green);color:white;padding:14px 22px;border-radius:50px;font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;box-shadow:0 4px 24px rgba(6,199,85,.4);transition:all .25s;}
.line-float:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(6,199,85,.5);}

/* ── PAGE ── */
body:not(.inner) .page{display:none;}
body:not(.inner) .page.active{display:block;}
body:not(.inner) #top-page{display:block;}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:.1s;}
.reveal-delay-2{transition-delay:.2s;}
.reveal-delay-3{transition-delay:.3s;}

/* ── PAGE HEADER ── */
.page-header{background:var(--navy);padding:7rem 0 3rem;}
.page-header .tag{color:rgba(196,150,60,.8);}
.page-header .tag::before{background:rgba(196,150,60,.8);}
.page-header .h2{color:white;}

/* ── MOBILE ── */
@media(max-width:900px){
  .nav-hamburger{display:flex!important;}
  .nav-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(13,34,64,.98);flex-direction:column;align-items:center;justify-content:center;gap:2rem;z-index:1000;overflow-y:auto;padding:5rem 2rem;}
  .nav-menu.open{display:flex!important;}
  .nav-menu>a{font-size:20px!important;color:white!important;}
  .nav-menu .nav-cta{background:var(--green)!important;color:white!important;padding:14px 32px!important;border-radius:50px;font-size:16px!important;}
  .nav-dropdown-label{font-size:20px!important;color:white!important;justify-content:center;}
  .nav-dropdown{width:100%;text-align:center;}
  .nav-dropdown-menu{position:static;transform:none!important;opacity:1!important;pointer-events:auto!important;box-shadow:none;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);min-width:unset;width:100%;margin-top:.5rem;display:none;}
  .nav-dropdown.open .nav-dropdown-menu{display:block;}
  .nav-dropdown-menu a{color:rgba(255,255,255,.8)!important;justify-content:center;}
  .nav-dropdown-menu a:hover{background:rgba(255,255,255,.1);color:white!important;}
  .nav-dropdown-heading{color:rgba(255,255,255,.4);}
  .nav-dropdown-divider{background:rgba(255,255,255,.15);}
  .nav-tel{display:none;}
  .hero-inner{grid-template-columns:1fr;gap:2.5rem;padding:4rem 1.25rem 3rem;}
  .hero-cards{display:none;}
  .hero-actions{flex-direction:column;}
  .hero-actions .btn{width:100%;justify-content:center;}
  .hero-stats{justify-content:center;}
  .service-grid{grid-template-columns:1fr;}
  .voice-grid{grid-template-columns:1fr;}
  .area-grid{grid-template-columns:repeat(2,1fr);}
  .about-inner{grid-template-columns:1fr;gap:2rem;}
  .contact-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;gap:2rem;}
  .footer-bottom{flex-direction:column;gap:1rem;text-align:center;}
  .section{padding:56px 0;}
  .container{padding:0 1.25rem;}
  .h2{font-size:24px;}
  .line-cta-box{flex-direction:column;text-align:center;padding:1.5rem;}
  .line-cta-btn{width:100%;text-align:center;display:block;}
  .line-float{bottom:16px;right:16px;font-size:13px;padding:12px 18px;}
  .zero-item{flex-direction:column;align-items:flex-start;gap:.5rem;}
  .merit-grid{grid-template-columns:1fr!important;}
  .report-grid{grid-template-columns:1fr!important;}
}
@media(max-width:480px){
  .hero-title{font-size:32px;}
}

/* =========================================================
   ▼ ブログ／記事ページ用（テーマ化で追加）
   ========================================================= */
body.inner{background:var(--bg);}
.page-shell{padding:130px 0 90px;min-height:60vh;}

.blog-head{text-align:center;max-width:680px;margin:0 auto 3.5rem;}
.blog-head .eyebrow{display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:1rem;}
.blog-head h1{font-family:'Shippori Mincho B1',serif;font-size:32px;font-weight:700;color:var(--navy);line-height:1.45;margin-bottom:1rem;}
.blog-head p{font-size:15px;color:var(--text-mid);line-height:1.9;}

.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
.post-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.post-card-thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--navy-light);}
.post-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.post-card:hover .post-card-thumb img{transform:scale(1.05);}
.post-card-thumb.is-empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy),var(--navy-light));color:var(--gold);font-family:'Shippori Mincho B1',serif;font-size:22px;letter-spacing:.1em;}
.post-card-body{display:flex;flex-direction:column;gap:.55rem;padding:1.5rem;flex:1;}
.post-card-cat{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--gold);}
.post-card h2{font-size:17px;font-weight:700;color:var(--navy);line-height:1.6;}
.post-card h2 a{color:inherit;}
.post-card h2 a:hover{color:var(--blue);}
.post-card-excerpt{font-size:13.5px;color:var(--text-mid);line-height:1.85;flex:1;}
.post-card-meta{font-size:12px;color:var(--text-light);margin-top:.3rem;}

.navigation.pagination{margin-top:3.5rem;}
.navigation.pagination .nav-links{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--white);color:var(--text-mid);font-size:14px;font-weight:700;transition:all .2s;}
a.page-numbers:hover{border-color:var(--navy);color:var(--navy);}
.page-numbers.current{background:var(--navy);border-color:var(--navy);color:#fff;}
.page-numbers.dots{border:none;background:transparent;}

.article{max-width:780px;margin:0 auto;background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:3rem 3.25rem;}
.article-header{margin-bottom:2rem;}
.article-cat{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--gold);margin-bottom:.75rem;}
.article-header h1{font-family:'Shippori Mincho B1',serif;font-size:30px;font-weight:700;color:var(--navy);line-height:1.5;margin-bottom:1rem;}
.article-meta{font-size:13px;color:var(--text-light);border-bottom:1px solid var(--border);padding-bottom:1.25rem;}
.article-thumb{margin:0 0 2rem;border-radius:var(--radius-sm);overflow:hidden;}
.article-thumb img{width:100%;height:auto;display:block;}

.entry-content{font-size:16px;line-height:1.95;color:var(--text-mid);}
.entry-content > *:first-child{margin-top:0;}
.entry-content h2{font-family:'Shippori Mincho B1',serif;font-size:23px;color:var(--navy);line-height:1.5;margin:2.75rem 0 1.1rem;padding-left:15px;border-left:5px solid var(--gold);}
.entry-content h3{font-size:19px;font-weight:700;color:var(--navy);margin:2rem 0 .8rem;}
.entry-content h4{font-size:16px;font-weight:700;color:var(--navy);margin:1.5rem 0 .6rem;}
.entry-content p{margin:0 0 1.3rem;}
.entry-content ul,.entry-content ol{margin:0 0 1.3rem;padding-left:1.5rem;}
.entry-content li{margin-bottom:.55rem;}
.entry-content a{color:var(--blue);text-decoration:underline;text-underline-offset:2px;}
.entry-content a:hover{color:var(--navy);}
.entry-content img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin:1.75rem 0;}
.entry-content strong{color:var(--text);font-weight:700;}
.entry-content blockquote{margin:1.75rem 0;padding:1.1rem 1.5rem;background:var(--gold-light);border-left:5px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-mid);}
.entry-content blockquote p:last-child{margin-bottom:0;}
.entry-content table{width:100%;border-collapse:collapse;margin:1.75rem 0;font-size:14px;}
.entry-content th,.entry-content td{border:1px solid var(--border);padding:.7rem .9rem;text-align:left;}
.entry-content th{background:var(--bg);color:var(--navy);font-weight:700;}
.entry-content figcaption{font-size:12px;color:var(--text-light);text-align:center;margin-top:.5rem;}
.entry-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0;}

.post-cta{max-width:780px;margin:2.5rem auto 0;background:var(--navy);border-radius:var(--radius);padding:2.5rem 2rem;text-align:center;color:#fff;}
.post-cta h3{font-family:'Shippori Mincho B1',serif;font-size:21px;font-weight:700;margin-bottom:.75rem;}
.post-cta p{font-size:14px;color:rgba(255,255,255,.82);line-height:1.9;margin-bottom:1.75rem;}
.post-cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

.article-nav{max-width:780px;margin:2rem auto 0;display:flex;justify-content:space-between;gap:1rem;}
.article-nav a{flex:1;max-width:49%;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);font-size:13px;color:var(--text-mid);transition:all .2s;}
.article-nav a:hover{border-color:var(--navy);color:var(--navy);}
.article-nav .nav-next{text-align:right;margin-left:auto;}
.article-nav .label{display:block;font-size:11px;color:var(--gold);font-weight:700;margin-bottom:.3rem;}

.benten-notice{max-width:680px;margin:0 auto;text-align:center;}
.benten-notice h1{font-family:'Shippori Mincho B1',serif;font-size:28px;color:var(--navy);margin-bottom:1rem;}
.benten-notice p{color:var(--text-mid);line-height:1.9;margin-bottom:1.5rem;}

@media(max-width:900px){
  .post-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;}
}
@media(max-width:600px){
  .page-shell{padding:104px 0 60px;}
  .post-grid{grid-template-columns:1fr;}
  .article{padding:2rem 1.5rem;}
  .article-header h1{font-size:24px;}
  .blog-head h1{font-size:25px;}
  .article-nav{flex-direction:column;}
  .article-nav a{max-width:100%;}
}


/* ▼ Contact Form 7 互換（既存フォームデザインに合わせる） */
.contact-form .wpcf7-form-control-wrap{display:block;}
.contact-form .wpcf7 p{margin:0;}
.contact-form .wpcf7-not-valid-tip{display:block;color:#e53e3e;font-size:12px;margin-top:.35rem;}
.contact-form .wpcf7-response-output{margin:1rem 0 0!important;padding:.75rem 1rem!important;border-radius:var(--radius-sm)!important;font-size:13px;line-height:1.7;}
.contact-form .wpcf7-spinner{display:block;margin:.75rem auto 0;}
.contact-form select.form-select{background-image:linear-gradient(45deg,transparent 50%,var(--text-light) 50%),linear-gradient(135deg,var(--text-light) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:36px;}


/* ══════════════════════════════════════════
   TOP PAGE SECTIONS  v2.0
══════════════════════════════════════════ */

/* ── CLIENT CARDS ── */
.client-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.client-card{background:white;border-radius:var(--radius);padding:2rem;border:1px solid var(--border);transition:all .3s;display:flex;flex-direction:column;gap:1.25rem;}
.client-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--navy);}
.client-card-head{display:flex;align-items:center;gap:1rem;}
.client-card-icon{width:48px;height:48px;background:var(--navy);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.client-card-name{font-size:16px;font-weight:700;color:var(--navy);line-height:1.3;}
.client-card-name span{display:block;font-size:12px;font-weight:400;color:var(--text-light);margin-top:2px;}
.client-card-body{font-size:13.5px;color:var(--text-mid);line-height:1.9;}

/* ── MERIT CARDS ── */
.merit-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;}
.merit-card{background:var(--bg);border-radius:var(--radius);padding:1.75rem;border:1px solid var(--border);transition:all .3s;display:flex;gap:1rem;align-items:flex-start;}
.merit-card:hover{box-shadow:var(--shadow);border-color:var(--gold);}
.merit-card--accent{background:var(--bg);border-color:var(--gold);border-width:2px;}
.merit-card--accent .merit-card-title{color:var(--navy);}
.merit-card--accent .merit-card-body{color:var(--text-light);}
.merit-num{width:36px;height:36px;background:var(--gold);color:white;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;flex-shrink:0;margin-top:2px;}
.merit-card-content{flex:1;}
.merit-card-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:.4rem;}
.merit-card-body{font-size:13px;color:var(--text-mid);line-height:1.9;}

/* ── TOP SERVICE CARDS ── */
.top-service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.top-service-card{background:white;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);transition:all .3s;display:flex;flex-direction:column;cursor:pointer;}
.top-service-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-5px);border-color:transparent;}
.top-service-card-thumb{height:160px;display:flex;align-items:center;justify-content:center;font-size:52px;position:relative;}
.top-service-card-thumb--navy{background:linear-gradient(135deg,var(--navy),var(--navy-mid));}
.top-service-card-thumb--blue{background:linear-gradient(135deg,#1a6fa8,#2980b9);}
.top-service-card-thumb--gold{background:linear-gradient(135deg,#c4963c,#d4a843);}
.top-service-card-thumb--green{background:linear-gradient(135deg,#2d8a5e,#3aab78);}
.top-service-card-thumb-label{position:absolute;bottom:10px;right:12px;background:rgba(255,255,255,.15);color:white;font-size:10px;font-weight:700;padding:3px 10px;border-radius:50px;letter-spacing:.05em;}
.top-service-card-body{padding:1.5rem;display:flex;flex-direction:column;flex:1;}
.top-service-card-name{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:.5rem;}
.top-service-card-desc{font-size:13px;color:var(--text-light);line-height:1.8;flex:1;margin-bottom:1rem;}
.top-service-card-price{font-size:20px;font-weight:900;color:var(--gold);margin-bottom:1rem;}
.top-service-card-price span{font-size:12px;font-weight:400;color:var(--text-light);}
.top-service-card-btn{display:block;text-align:center;padding:.65rem 1rem;border-radius:8px;font-size:13px;font-weight:700;transition:all .25s;}
.top-service-card-btn--navy{background:var(--navy);color:white;}
.top-service-card-btn--blue{background:#1a6fa8;color:white;}
.top-service-card-btn--gold{background:var(--gold);color:white;}
.top-service-card-btn--green{background:#2d8a5e;color:white;}
.top-service-card-btn:hover{opacity:.88;transform:translateY(-1px);}

/* ── CTA BANNER ── */
.cta-banner{background:linear-gradient(135deg,var(--navy) 0%,#1a3a5c 60%,#243f6a 100%);padding:80px 0;position:relative;overflow:hidden;}
.cta-banner::before{content:'';position:absolute;top:-60px;right:-60px;width:320px;height:320px;background:var(--gold);opacity:.05;border-radius:50%;}
.cta-banner::after{content:'';position:absolute;bottom:-80px;left:-40px;width:240px;height:240px;background:var(--gold);opacity:.04;border-radius:50%;}
.cta-banner-inner{position:relative;z-index:1;text-align:center;}
.cta-banner-label{font-size:12px;font-weight:700;letter-spacing:.15em;color:var(--gold);margin-bottom:.875rem;}
.cta-banner-title{font-family:'Shippori Mincho B1',serif;font-size:clamp(24px,3.5vw,40px);font-weight:600;color:white;margin-bottom:1rem;line-height:1.35;}
.cta-banner-sub{font-size:15px;color:rgba(255,255,255,.65);line-height:1.9;margin-bottom:2.5rem;}
.cta-banner-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.cta-btn-line{display:inline-flex;align-items:center;gap:.6rem;background:#06c755;color:white;border-radius:50px;padding:1rem 2.25rem;font-size:16px;font-weight:700;text-decoration:none;transition:all .25s;box-shadow:0 4px 20px rgba(6,199,85,.35);}
.cta-btn-line:hover{background:#05b04b;transform:translateY(-2px);box-shadow:0 6px 28px rgba(6,199,85,.45);}
.cta-btn-tel{display:inline-flex;align-items:center;gap:.6rem;background:rgba(255,255,255,.1);color:white;border:1.5px solid rgba(255,255,255,.3);border-radius:50px;padding:1rem 2.25rem;font-size:16px;font-weight:700;text-decoration:none;transition:all .25s;}
.cta-btn-tel:hover{background:rgba(255,255,255,.18);transform:translateY(-2px);}
.cta-hours{display:inline-block;margin-top:1.5rem;font-size:12px;color:rgba(255,255,255,.4);letter-spacing:.05em;}

/* ── SECTION HEADER improvements ── */
.section-header--center{text-align:center;}
.section-header--center .lead{max-width:620px;margin-left:auto;margin-right:auto;}

/* ── RESPONSIVE TOP SECTIONS ── */
@media(max-width:960px){
  .top-service-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .client-grid,.merit-list{grid-template-columns:1fr;}
  .top-service-grid{grid-template-columns:1fr;}
  .merit-card--accent{grid-column:auto;}
  .cta-banner-btns{flex-direction:column;align-items:center;}
  .cta-btn-line,.cta-btn-tel{width:100%;max-width:320px;justify-content:center;}
}


/* ======================================
   SUBPAGE DESIGN IMPROVEMENTS v1.0.6
   ====================================== */

/* ── PAGE HEADER ENHANCED ── */
.page-header{
  background: linear-gradient(135deg, var(--navy) 0%, #0d2244 100%);
  padding: 7rem 0 4rem;
  position: relative;
  overflow: hidden;
}
.page-header::before{
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 300px; height: 300px;
  border-radius: 50%;
  background: rgba(196,150,60,.12);
  pointer-events: none;
}
.page-header::after{
  content: '';
  position: absolute;
  bottom: -40px; left: 10%;
  width: 200px; height: 200px;
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  pointer-events: none;
}
.page-header .container{ position: relative; z-index:1; }
.page-header .h2{
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 800;
  letter-spacing: .05em;
}
.page-header .tag{
  font-size: .75rem;
  letter-spacing: .12em;
}

/* ── SECTION IMPROVEMENTS ── */
.section + .section{ border-top: 1px solid var(--border); }

/* ── PRICE TABLE ENHANCED ── */
.price-table-wrap{
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,.08);
}
.price-table{
  border-radius: 0;
}
.price-table thead tr th:first-child{ border-radius: 0; }
.price-table tbody tr:hover td{ background: rgba(196,150,60,.05); }

/* ── NOTICE BOX ── */
.notice-box{
  background: #fff9f0;
  border: 1.5px solid #e8c56a;
  border-radius: var(--radius);
  padding: 1.5rem 2rem;
}
.notice-box-title{
  font-weight: 700;
  color: var(--navy);
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.notice-box li{
  font-size: .9rem;
  color: var(--text);
  line-height: 1.7;
  padding-left: 1.2em;
  position: relative;
}
.notice-box li::before{
  content: '※';
  position: absolute;
  left: 0;
  color: var(--gold);
  font-size: .85em;
}

/* ── FLOW STEPS ── */
.flow-steps{
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}
.flow-step{
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  position: relative;
  padding-bottom: 2rem;
}
.flow-step:last-child{ padding-bottom: 0; }
.flow-step::before{
  content: '';
  position: absolute;
  left: 24px;
  top: 48px;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--gold), rgba(196,150,60,.15));
}
.flow-step:last-child::before{ display: none; }
.flow-step-num{
  min-width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold);
  font-weight: 800;
  font-size: 1.1rem;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  border: 2px solid var(--gold);
}
.flow-step-body{ padding-top: .25rem; }
.flow-step-title{
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--navy);
  margin-bottom: .4rem;
}
.flow-step-text{
  font-size: .9rem;
  color: #555;
  line-height: 1.7;
}

/* ── TRUST BADGES ── */
.trust-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}
.trust-badge{
  display: flex;
  align-items: center;
  gap: .6rem;
  background: white;
  border: 1.5px solid var(--border);
  border-radius: 2rem;
  padding: .6rem 1.2rem;
  font-size: .88rem;
  font-weight: 600;
  color: var(--navy);
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.trust-badge svg{ width: 20px; height: 20px; }

/* ── ABOUT PAGE ── */
.about-intro{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.about-info-table{
  width: 100%;
  border-collapse: collapse;
  border-radius: var(--radius);
  overflow: hidden;
}
.about-info-table tr{
  border-bottom: 1px solid var(--border);
  transition: background .2s;
}
.about-info-table tr:hover{ background: rgba(196,150,60,.04); }
.about-info-table th{
  width: 35%;
  padding: .9rem 1rem;
  font-size: .85rem;
  font-weight: 600;
  color: #666;
  text-align: left;
  background: #f8f9fc;
  vertical-align: top;
}
.about-info-table td{
  padding: .9rem 1rem;
  font-size: .9rem;
  color: var(--text);
  line-height: 1.6;
}
.about-info-table a{ color: var(--gold); text-decoration: underline; }

/* ── CONTACT PAGE IMPROVED ── */
.contact-layout{
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 3rem;
  align-items: start;
}
.contact-sidebar{}
.contact-sidebar-title{
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 1.5rem;
}
.contact-method-enhanced{
  background: white;
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: box-shadow .2s, transform .2s;
}
.contact-method-enhanced:hover{
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.contact-method-enhanced.line-method{
  border-color: #06c755;
  background: linear-gradient(135deg, #f0fff4, #e8fff1);
}
.contact-method-icon2{
  width: 48px; height: 48px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-size: 1.3rem;
}
.contact-method-icon2.tel-icon{ background: var(--navy); color: white; }
.contact-method-icon2.line-icon{ background: #06c755; color: white; }
.contact-method-label{
  font-size: .75rem;
  color: #888;
  margin-bottom: .15rem;
}
.contact-method-value{
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--navy);
}
.contact-method-sub{
  font-size: .78rem;
  color: #888;
  margin-top: .1rem;
}
.contact-method-enhanced.line-method .contact-method-value{
  color: #06c755;
}
.contact-form-wrap{
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2rem;
  box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
.contact-form-title{
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 1.5rem;
  font-size: 1.15rem;
  padding-bottom: .75rem;
  border-bottom: 2px solid var(--gold);
}

/* ── SERVICE PAGE CTA ── */
.service-cta-box{
  background: linear-gradient(135deg, var(--navy) 0%, #1a3a5c 100%);
  border-radius: var(--radius);
  padding: 2.5rem;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}
.service-cta-box::before{
  content: '';
  position: absolute;
  top: -30px; right: -30px;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: rgba(196,150,60,.2);
  pointer-events: none;
}
.service-cta-box p{ color: rgba(255,255,255,.85); margin-bottom: 1.5rem; font-size: .95rem; }
.service-cta-box .cta-title{
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: .75rem;
  position: relative; z-index:1;
}
.service-cta-btns{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }

/* ── HOJIN FLOW SECTION ── */
.hojin-flow-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  position: relative;
}
.hojin-flow-grid::before{
  content: '';
  position: absolute;
  top: 30px;
  left: 12.5%; right: 12.5%;
  height: 2px;
  background: linear-gradient(to right, var(--gold), rgba(196,150,60,.3));
  z-index: 0;
}
.hojin-flow-card{
  background: white;
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem 1rem;
  text-align: center;
  position: relative;
  z-index: 1;
  transition: box-shadow .2s, transform .2s;
}
.hojin-flow-card:hover{ box-shadow: var(--shadow); transform: translateY(-4px); }
.hojin-flow-num{
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold);
  font-weight: 800;
  font-size: .95rem;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto .75rem;
  border: 2px solid var(--gold);
}
.hojin-flow-icon{ font-size: 1.8rem; margin-bottom: .5rem; }
.hojin-flow-title{
  font-weight: 700;
  font-size: .95rem;
  color: var(--navy);
  margin-bottom: .4rem;
}
.hojin-flow-text{
  font-size: .8rem;
  color: #666;
  line-height: 1.6;
}

/* ── AREA MAP BOX ── */
.area-box{
  background: #f5f7fb;
  border-radius: var(--radius);
  padding: 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
}
.area-label{
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--gold);
  margin-bottom: .5rem;
  text-transform: uppercase;
}
.area-title{
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: .75rem;
}
.area-tags{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.area-tag{
  background: var(--navy);
  color: white;
  font-size: .8rem;
  padding: .3rem .75rem;
  border-radius: 1rem;
  font-weight: 600;
}
.area-note{
  font-size: .82rem;
  color: #777;
  margin-top: .75rem;
  line-height: 1.6;
}
.area-map-placeholder{
  background: #e0e8f0;
  border-radius: 8px;
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: .85rem;
}

/* ── RESPONSIVE SUBPAGE ── */
@media(max-width:960px){
  .about-intro{ grid-template-columns: 1fr; }
  .contact-layout{ grid-template-columns: 1fr; }
  .hojin-flow-grid{ grid-template-columns: repeat(2,1fr); }
  .hojin-flow-grid::before{ display: none; }
  .area-box{ grid-template-columns: 1fr; }
}
@media(max-width:640px){
  .hojin-flow-grid{ grid-template-columns: 1fr; }
  .trust-badges{ gap: .6rem; }
  .trust-badge{ font-size: .8rem; padding: .5rem .9rem; }
  .service-cta-btns{ flex-direction: column; align-items: center; }
}


/* ===== About Us Section ===== */
.about-us-section {
  background: #fff;
  padding: 80px 0;
}

.about-us-inner {
  display: block;
  max-width: 740px;
  margin: 0 auto;
}

.about-us-label {
  font-size: 11px;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 1rem;
}
.about-us-label::before {
  content: '';
  width: 24px;
  height: 1.5px;
  background: var(--gold);
  flex-shrink: 0;
}

.about-us-content {
  flex: 1;
}

.about-us-heading {
  font-family: 'Shippori Mincho B1', serif;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 600;
  color: var(--navy);
  line-height: 1.4;
  margin-bottom: 1.5rem;
}

.about-us-body {
  color: var(--text);
  line-height: 1.8;
  font-size: 0.95rem;
}

.about-us-body p {
  margin-bottom: 1rem;
}

@media (max-width: 768px) {
  .about-us-heading {
    font-size: 1.4rem;
  }
}


/* ===== taikyo-overview-section ===== */
.taikyo-overview-section {
  padding: 80px 0;
  background: #fff;
}
.taikyo-overview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.taikyo-overview-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}

.taikyo-overview-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.taikyo-overview-title {
  font-size: 2rem;
  font-weight: 700;
  color: #0d2240;
  margin-bottom: 8px;
}

.taikyo-overview-content p {
  font-size: 0.95rem;
  line-height: 1.8;
  color: #1a2030;
  margin: 0;
}

@media (max-width: 768px) {
  .taikyo-overview-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .taikyo-overview-title {
    font-size: 1.5rem;
  }
}


/* ===== 退去立会い代行 説明セクション ===== */
.taikyo-overview-section {
  padding: 80px 0;
  background: #fff;
}

.taikyo-overview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.taikyo-overview-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}

.taikyo-overview-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.taikyo-overview-title {
  font-size: 2rem;
  font-weight: 700;
  color: #0d2240;
  margin-bottom: 8px;
}

.taikyo-overview-content p {
  font-size: 0.95rem;
  line-height: 1.8;
  color: #1a2030;
}

@media (max-width: 768px) {
  .taikyo-overview-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  
  .taikyo-overview-title {
    font-size: 1.5rem;
  }
}

/* ============================
   VOICE セクション
   ============================ */
.voice-section {
  background: #f8faff;
  padding: 80px 0;
}

.voice-section .section-label {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--blue);
  text-transform: uppercase;
  margin-bottom: 8px;
}

.voice-section .section-title {
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 48px;
}

.voice-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

.voice-card {
  background: #fff;
  border: 2px solid #d4e3f7;
  border-radius: 16px;
  padding: 28px 24px 32px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: box-shadow 0.3s;
}

.voice-card:hover {
  box-shadow: 0 8px 32px rgba(26, 106, 248, 0.12);
}

.voice-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}

.voice-card__tag {
  display: inline-block;
  background: var(--blue);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 4px;
  letter-spacing: 0.05em;
}

.voice-card__num {
  font-size: 3.5rem;
  font-weight: 900;
  color: #d4e3f7;
  line-height: 1;
  letter-spacing: -0.02em;
}

.voice-card__client {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 16px;
}

.voice-card__img-wrap {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  background: #1a6af8;
  margin: 0 auto 20px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.voice-card__avatar {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
}

.voice-card__text {
  font-size: 0.875rem;
  line-height: 1.8;
  color: var(--text);
  flex: 1;
}

@media (max-width: 900px) {
  .voice-cards {
    grid-template-columns: 1fr;
    max-width: 480px;
  }
}

@media (max-width: 600px) {
  .voice-section {
    padding: 56px 0;
  }

  .voice-card {
    padding: 22px 18px 24px;
  }
}
