@charset "UTF-8";
/* ==========================================================================
   交通事故弁護士ガイド リニューアル用 共通CSS
   - 全テンプレートの新デザインCSSを集約
   - 共通トークン（--gd-*）→ 共通パーツ → 各テンプレ別スコープ の順
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 共通デザイントークン
   -------------------------------------------------------------------------- */
:root{
  --gd-ink:#1a2b42;--gd-ink-soft:#5a6b80;
  --gd-paper:#fff;--gd-bg:#f3f7fc;--gd-line:#e3ebf3;
  --gd-blue:#1573d4;--gd-blue-dark:#0e5aab;--gd-blue-light:#eaf3fd;--gd-sky:#3d9be8;
  --gd-green:#1aa179;--gd-alert:#e0584f;--gd-mark:#fff2c4;
  --gd-shadow:0 16px 40px -22px rgba(21,115,212,.40);
  --gd-shadow-soft:0 8px 24px -16px rgba(21,115,212,.30);
  --gd-radius:20px;
  /* 各テンプレ別エイリアス（旧コードとの互換用） */
  --so-ink:var(--gd-ink);--so-ink-soft:var(--gd-ink-soft);--so-paper:var(--gd-paper);--so-bg:var(--gd-bg);--so-line:var(--gd-line);--so-blue:var(--gd-blue);--so-blue-dark:var(--gd-blue-dark);--so-blue-light:var(--gd-blue-light);--so-sky:var(--gd-sky);--so-green:var(--gd-green);--so-shadow:var(--gd-shadow);--so-shadow-soft:var(--gd-shadow-soft);--so-radius:var(--gd-radius);
  --sl-ink:var(--gd-ink);--sl-ink-soft:var(--gd-ink-soft);--sl-paper:var(--gd-paper);--sl-bg:var(--gd-bg);--sl-line:var(--gd-line);--sl-blue:var(--gd-blue);--sl-blue-dark:var(--gd-blue-dark);--sl-blue-light:var(--gd-blue-light);--sl-sky:var(--gd-sky);--sl-green:var(--gd-green);--sl-alert:var(--gd-alert);--sl-shadow:var(--gd-shadow);--sl-shadow-soft:var(--gd-shadow-soft);--sl-radius:var(--gd-radius);
  --pf-ink:var(--gd-ink);--pf-ink-soft:var(--gd-ink-soft);--pf-paper:var(--gd-paper);--pf-bg:var(--gd-bg);--pf-line:var(--gd-line);--pf-blue:var(--gd-blue);--pf-blue-dark:var(--gd-blue-dark);--pf-blue-light:var(--gd-blue-light);--pf-sky:var(--gd-sky);--pf-green:var(--gd-green);--pf-alert:var(--gd-alert);--pf-shadow:var(--gd-shadow);--pf-shadow-soft:var(--gd-shadow-soft);--pf-radius:var(--gd-radius);
}

/* --------------------------------------------------------------------------
   2. グローバル（リニューアル中の body 基本）
   -------------------------------------------------------------------------- */
body.gd-renew{
  background:var(--gd-bg);color:var(--gd-ink);
  font-family:"Zen Kaku Gothic New",sans-serif;line-height:1.85;letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;margin:0;
}
/* WordPressテーマ既存の #wrapper / #main / #container に白背景が当たっている場合、
   body.gd-renew の薄い水色を見せるため透明化（親要素を上書き） */
body.gd-renew #wrapper,
body.gd-renew #main,
body.gd-renew #container{background:transparent!important}
.gd-round{font-family:"Zen Maru Gothic",sans-serif}
.gd-wrap{max-width:1100px;margin:0 auto;padding:0 24px}

/* --------------------------------------------------------------------------
   3. ヘッダー
   -------------------------------------------------------------------------- */
.gd-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--gd-line)}
.gd-header-inner{display:flex;align-items:center;justify-content:space-between;height:68px;gap:18px}
.gd-logo{font-family:"Zen Maru Gothic";font-weight:700;font-size:1.15rem;text-decoration:none;color:var(--gd-ink);white-space:nowrap}
.gd-logo span{color:var(--gd-blue)}
.gd-nav{display:flex;gap:24px;font-size:.86rem;font-weight:500}
.gd-nav a{color:var(--gd-ink-soft);text-decoration:none;transition:color .2s}
.gd-nav a:hover{color:var(--gd-blue)}
.gd-head-cta{background:var(--gd-blue)!important;color:#fff!important;text-decoration:none!important;font-weight:700;
  font-size:.82rem;padding:10px 18px;border-radius:11px;transition:.2s;white-space:nowrap;line-height:1.2;display:inline-block}
.gd-head-cta:hover,.gd-head-cta:visited,.gd-head-cta:focus{background:var(--gd-blue-dark)!important;color:#fff!important}
.gd-burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.gd-burger span{width:24px;height:2px;background:var(--gd-ink);border-radius:2px;transition:.2s}
@media(max-width:980px){.gd-nav{gap:18px;font-size:.82rem}.gd-head-cta{font-size:.76rem;padding:9px 14px}}
@media(max-width:860px){.gd-nav{display:none}.gd-burger{display:flex}.gd-head-cta{display:none}}
.gd-sp-nav{display:none;border-top:1px solid var(--gd-line);background:#fff}
.gd-sp-nav.open{display:block}
.gd-sp-nav ul{list-style:none;margin:0;padding:8px 24px 16px}
.gd-sp-nav li{border-bottom:1px solid var(--gd-line)}
.gd-sp-nav li:last-child{border-bottom:none}
.gd-sp-nav a{display:block;padding:14px 4px;color:var(--gd-ink);text-decoration:none;font-weight:700;font-size:.92rem}

/* --------------------------------------------------------------------------
   4. フッター
   -------------------------------------------------------------------------- */
.gd-footer{background:var(--gd-ink);color:rgba(255,255,255,.7);padding:48px 0 36px;font-size:.82rem;margin-top:60px}
.gd-footer-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:32px}
.gd-footer-brand{max-width:360px}
.gd-footer .gd-logo{color:#fff;display:inline-block;margin-bottom:12px}
.gd-footer .gd-logo span{color:var(--gd-sky)}
.gd-footer-brand p{margin:0;line-height:1.8;opacity:.85}
.gd-footer-col h4{color:#fff;font-size:.86rem;font-family:"Zen Maru Gothic";margin:0 0 14px}
.gd-footer-col ul{list-style:none;margin:0;padding:0}
.gd-footer-col li{margin-bottom:9px}
.gd-footer-col a{color:rgba(255,255,255,.7);text-decoration:none;transition:.2s}
.gd-footer-col a:hover{color:#fff}
.gd-footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:24px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.gd-footer-lnav{display:flex;gap:20px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.gd-footer-lnav a{color:rgba(255,255,255,.7);text-decoration:none}
.gd-footer-lnav a:hover{color:#fff}
.gd-copy{opacity:.6;font-size:.76rem}
@media(max-width:560px){.gd-footer-top{flex-direction:column;gap:28px}}

/* --------------------------------------------------------------------------
   5. パンくず（breadcrumbs.php）
   ご要望：余白とフォントサイズを小さく、背景をコンテンツエリアに合わせる
   -------------------------------------------------------------------------- */
.gd-breadcrumbs{font-size:.72rem;color:var(--gd-ink-soft);padding:5px 0 4px;background:transparent}
.gd-breadcrumbs ul{list-style:none;margin:0;padding:0;max-width:1100px;margin-left:auto;margin-right:auto;
  padding-left:24px;padding-right:24px;display:flex;flex-wrap:wrap;align-items:center;line-height:1.5}
.gd-breadcrumbs li{display:inline-flex;align-items:center;font-size:inherit}
.gd-breadcrumbs li + li::before{content:"›";margin:0 6px;color:#b8cee4;font-size:.9em}
.gd-breadcrumbs a{color:var(--gd-ink-soft);text-decoration:none}
.gd-breadcrumbs a:hover{color:var(--gd-blue)}
.gd-breadcrumbs span{color:var(--gd-ink)}
.gd-breadcrumbs li a + a{margin-left:6px}

/* 共通アニメーション */
@keyframes gd-rise{to{opacity:1;transform:none}}
.so-anim,.sl-anim,.pf-anim,.al-anim,.sr-anim,.tp-anim,.fb-anim,.gd-anim{opacity:0;transform:translateY(16px);animation:gd-rise .7s forwards}
.so-d1,.sl-d1,.pf-d1,.al-d1,.sr-d1,.tp-d1,.fb-d1,.gd-d1{animation-delay:.05s}
.so-d2,.sl-d2,.pf-d2,.al-d2,.sr-d2,.tp-d2,.fb-d2,.gd-d2{animation-delay:.15s}
.so-d3,.sl-d3,.pf-d3,.al-d3,.sr-d3,.tp-d3,.fb-d3,.gd-d3{animation-delay:.25s}
.so-d4,.sl-d4,.pf-d4,.al-d4,.sr-d4,.tp-d4,.fb-d4,.gd-d4{animation-delay:.35s}

/* --------------------------------------------------------------------------
   6. single-office（新規/無料事務所詳細）.so-*
   -------------------------------------------------------------------------- */
.so-root{padding:0 0 10px}
.so-root *{box-sizing:border-box}
.so-content{max-width:820px;margin:0 auto;padding:24px 24px 0}
.so-hero{position:relative;background:var(--so-paper);border:1px solid var(--so-line);
  border-radius:var(--so-radius);overflow:hidden;box-shadow:var(--so-shadow);margin-bottom:24px}
.so-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--so-blue),var(--so-sky))}
.so-hero-inner{padding:38px 40px;display:flex;gap:26px;align-items:center}
@media(max-width:560px){.so-hero-inner{flex-direction:column;text-align:center;padding:32px 24px}}
.so-hero-mark{width:96px;height:96px;border-radius:24px;background:linear-gradient(150deg,var(--so-blue),var(--so-blue-dark));
  color:#fff;font-family:"Zen Maru Gothic";font-size:2.6rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--so-shadow-soft);overflow:hidden}
.so-hero-mark img{width:100%;height:100%;object-fit:cover}
.so-hero-head h1{font-family:"Zen Maru Gothic";font-size:1.9rem;font-weight:700;line-height:1.4;margin:0 0 12px}
.so-hero-meta{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:560px){.so-hero-meta{justify-content:center}}
.so-hero-meta .so-m{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--so-ink-soft);
  background:var(--so-bg);padding:7px 14px;border-radius:999px;border:1px solid var(--so-line)}
.so-block{background:var(--so-paper);border:1px solid var(--so-line);border-radius:var(--so-radius);
  padding:32px 38px;margin-bottom:22px;box-shadow:var(--so-shadow-soft)}
@media(max-width:560px){.so-block{padding:26px 24px}}
.so-block h2{font-family:"Zen Maru Gothic";font-size:1.25rem;font-weight:700;margin:0 0 18px;
  padding-bottom:13px;border-bottom:2px solid var(--so-bg);display:flex;align-items:center;gap:11px}
.so-block h2 .so-mk{width:6px;height:22px;background:var(--so-blue);border-radius:3px}
.so-strength{font-size:1rem;color:var(--so-ink-soft)}
.so-strength p{margin:0 0 1em}
.so-strength p:last-child{margin-bottom:0}
.so-info-table{width:100%;border-collapse:collapse;font-size:.92rem}
.so-info-table th{background:var(--so-bg);text-align:left;padding:14px 16px;width:130px;
  font-weight:700;font-size:.84rem;vertical-align:top;border-bottom:1px solid var(--so-line)}
.so-info-table td{padding:14px 16px;border-bottom:1px solid var(--so-line);color:var(--so-ink-soft);white-space:pre-line}
.so-info-table tr:last-child th,.so-info-table tr:last-child td{border-bottom:none}
.so-info-table td a{color:var(--so-blue);text-decoration:none}
.so-info-table td a:hover{text-decoration:underline}
.so-relay-note{margin-top:14px;font-size:.8rem;color:var(--so-ink-soft);background:var(--so-blue-light);
  border-radius:10px;padding:12px 16px;border-left:3px solid var(--so-blue)}
.so-guide-cta{background:linear-gradient(135deg,var(--so-blue),var(--so-blue-dark));color:#fff;
  border-radius:var(--so-radius);padding:36px 38px;margin-bottom:22px;text-align:center;box-shadow:var(--so-shadow)}
.so-guide-cta .so-free-banner{display:inline-block;background:var(--so-green);color:#fff;font-weight:700;
  font-size:.8rem;padding:5px 14px;border-radius:999px;margin-bottom:14px;font-family:"Zen Maru Gothic"}
.so-guide-cta h2{font-family:"Zen Maru Gothic";font-size:1.35rem;margin:0 0 10px;color:#fff;border:none;padding:0;display:block}
.so-guide-cta p{font-size:.9rem;opacity:.92;margin:0 0 22px}
.so-guide-cta .so-btn{display:inline-block;background:#fff;color:var(--so-blue-dark);font-weight:700;
  text-decoration:none;padding:15px 38px;border-radius:13px;transition:.2s}
.so-guide-cta .so-btn:hover{transform:translateY(-2px)}
.so-related h2{font-family:"Zen Maru Gothic";font-size:1.2rem;font-weight:700;margin:0 0 16px}
.so-related-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:680px){.so-related-list{grid-template-columns:1fr}}
.so-related-card{background:#fff;border:1px solid var(--so-line);border-radius:14px;padding:18px 20px;
  text-decoration:none;color:var(--so-ink);transition:.2s;display:block}
.so-related-card:hover{border-color:var(--so-blue);box-shadow:var(--so-shadow-soft);transform:translateY(-2px)}
.so-related-card .so-rc-area{font-size:.72rem;color:var(--so-blue);font-weight:700;margin-bottom:4px}
.so-related-card .so-rc-name{font-family:"Zen Maru Gothic";font-weight:700;font-size:.96rem}
.so-related-card .so-rc-badge{display:inline-block;margin-left:6px;font-size:.62rem;font-weight:700;
  background:var(--so-blue-light);color:var(--so-blue-dark);padding:1px 7px;border-radius:999px;vertical-align:middle}
.so-disclaimer{font-size:.74rem;color:var(--so-ink-soft);line-height:1.7;
  max-width:820px;margin:32px auto 0;padding:20px 24px;background:#eaf0f6;border-radius:12px}

/* --------------------------------------------------------------------------
   7. single-law（本掲載事務所詳細）.sl-*
   -------------------------------------------------------------------------- */
.sl-root{padding-bottom:10px}
.sl-root *{box-sizing:border-box}
.sl-wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.sl-hero{position:relative;background:var(--sl-paper);border:1px solid var(--sl-line);
  border-radius:var(--sl-radius);overflow:hidden;box-shadow:var(--sl-shadow);margin-bottom:24px}
.sl-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--sl-blue),var(--sl-sky));z-index:1}
.sl-hero-grid{display:grid;grid-template-columns:1.4fr 1fr}
@media(max-width:840px){.sl-hero-grid{grid-template-columns:1fr}}
.sl-hero-text{padding:40px 44px}
@media(max-width:560px){.sl-hero-text{padding:32px 24px}}
.sl-hero-catch{display:inline-block;font-size:.8rem;color:var(--sl-blue-dark);font-weight:700;
  background:var(--sl-blue-light);padding:6px 14px;border-radius:999px;margin-bottom:16px;white-space:pre-line;line-height:1.6}
.sl-hero-text h1{font-family:"Zen Maru Gothic";font-weight:700;font-size:2rem;line-height:1.45;margin:0 0 16px}
.sl-hero-area{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:var(--sl-ink-soft);
  background:var(--sl-bg);padding:7px 15px;border-radius:999px;border:1px solid var(--sl-line)}
.sl-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.sl-tag{font-size:.78rem;font-weight:700;padding:6px 13px;border-radius:999px;background:var(--sl-blue-light);color:var(--sl-blue-dark)}
.sl-tag.sl-urgent{background:#fdeceb;color:var(--sl-alert)}
.sl-hero-photo{background:linear-gradient(160deg,#eaf3fd,#dceaf8);min-height:290px;
  display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.82rem;overflow:hidden}
.sl-hero-photo img{width:100%;height:100%;object-fit:contain}
.sl-body-grid{display:grid;grid-template-columns:1fr 320px;gap:32px;margin:8px 0 40px}
@media(max-width:900px){.sl-body-grid{grid-template-columns:1fr}}
.sl-block{background:var(--sl-paper);border:1px solid var(--sl-line);border-radius:var(--sl-radius);
  padding:32px 36px;margin-bottom:22px;box-shadow:var(--sl-shadow-soft)}
@media(max-width:560px){.sl-block{padding:26px 24px}}
.sl-block h2.sl-bh{font-family:"Zen Maru Gothic";font-size:1.3rem;font-weight:700;margin:0 0 20px;
  padding-bottom:14px;border-bottom:2px solid var(--sl-bg);display:flex;align-items:center;gap:12px}
.sl-block h2.sl-bh .sl-mk{width:6px;height:24px;background:var(--sl-blue);border-radius:3px}
.sl-price-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:560px){.sl-price-row{grid-template-columns:1fr}}
.sl-price-card{background:var(--sl-bg);border-radius:14px;padding:22px 18px;text-align:center;border:1px solid var(--sl-line)}
.sl-price-card .sl-lbl{font-size:.78rem;color:var(--sl-ink-soft);font-weight:700;margin-bottom:6px}
.sl-price-card .sl-val{font-family:"Zen Maru Gothic";font-size:1.3rem;font-weight:700;color:var(--sl-blue);line-height:1.4}
.sl-price-detail{font-size:.9rem;color:var(--sl-ink-soft);margin-top:18px}
.sl-price-detail p{margin:0 0 1em}.sl-price-detail p:last-child{margin-bottom:0}
.sl-article :is(h2){font-family:"Zen Maru Gothic";font-size:1.35rem;font-weight:700;line-height:1.5;
  margin:40px 0 18px;padding:15px 20px;background:linear-gradient(90deg,var(--sl-blue-light),transparent);
  border-left:5px solid var(--sl-blue);border-radius:0 10px 10px 0}
.sl-article :is(h2):first-child{margin-top:0}
.sl-article :is(h3){font-family:"Zen Maru Gothic";font-size:1.12rem;font-weight:700;margin:28px 0 12px;
  padding-bottom:7px;border-bottom:2px dotted var(--sl-line);color:var(--sl-blue-dark)}
.sl-article p{margin:0 0 20px;font-size:1rem;color:var(--sl-ink-soft)}
.sl-article img{max-width:100%;height:auto;border-radius:10px}
.sl-article ul,.sl-article ol{margin:0 0 20px 1.4em;color:var(--sl-ink-soft)}
.sl-msg{font-size:1rem;color:var(--sl-ink-soft)}
.sl-lawyer{display:flex;align-items:center;gap:18px;background:var(--sl-bg);border:1px solid var(--sl-line);
  border-radius:14px;padding:20px 24px;margin-bottom:14px}
.sl-lawyer:last-child{margin-bottom:0}
.sl-lawyer .sl-ph{width:72px;height:72px;border-radius:50%;background:#dceaf8;flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.7rem}
.sl-lawyer .sl-ph img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.sl-lawyer .sl-lw-flag{font-size:.72rem;color:var(--sl-green);font-weight:700;margin-bottom:4px}
.sl-lawyer .sl-lw-name{font-family:"Zen Maru Gothic";font-weight:700;font-size:1.05rem}
.sl-lawyer .sl-lw-no{font-size:.78rem;color:var(--sl-ink-soft)}
.sl-access-table{width:100%;border-collapse:collapse;font-size:.9rem}
.sl-access-table th{background:var(--sl-bg);text-align:left;padding:14px 16px;width:130px;
  font-weight:700;font-size:.84rem;vertical-align:top;border-bottom:1px solid var(--sl-line)}
.sl-access-table td{padding:14px 16px;border-bottom:1px solid var(--sl-line);color:var(--sl-ink-soft);white-space:pre-line}
.sl-access-table td a{color:var(--sl-blue);text-decoration:none}
.sl-map-box{margin-top:18px;border-radius:14px;overflow:hidden;border:1px solid var(--sl-line)}
.sl-map-box .gmap{line-height:0}
.sl-side{position:sticky;top:24px;align-self:start}
@media(max-width:900px){.sl-side{position:static}}
.sl-cta-card{background:var(--sl-paper);border:1px solid var(--sl-line);border-radius:var(--sl-radius);
  overflow:hidden;box-shadow:var(--sl-shadow)}
.sl-cta-top{background:linear-gradient(135deg,var(--sl-blue),var(--sl-blue-dark));color:#fff;padding:20px 22px;text-align:center}
.sl-cta-top .sl-t{font-size:.92rem;font-weight:700;font-family:"Zen Maru Gothic"}
.sl-cta-body{padding:22px}
.sl-free-banner{background:var(--sl-green);color:#fff;text-align:center;font-weight:700;font-size:.92rem;
  padding:10px;border-radius:12px;margin-bottom:14px;font-family:"Zen Maru Gothic"}
.sl-tel-btn{display:block;background:var(--sl-bg);border:2px solid var(--sl-blue);border-radius:14px;
  padding:14px;text-align:center;text-decoration:none;color:var(--sl-blue-dark);margin-bottom:12px;transition:.2s}
.sl-tel-btn:hover{background:var(--sl-blue);color:#fff}
.sl-tel-btn .sl-num{font-family:"Zen Maru Gothic";font-size:1.4rem;font-weight:700}
.sl-tel-btn .sl-time{font-size:.7rem;color:var(--sl-ink-soft);display:block;margin-top:2px}
.sl-tel-btn:hover .sl-time{color:rgba(255,255,255,.85)}
.sl-mail-btn{display:block;background:var(--sl-blue);color:#fff;text-align:center;text-decoration:none;
  padding:16px;border-radius:14px;font-weight:700;font-size:.95rem;transition:.2s}
.sl-mail-btn:hover{background:var(--sl-blue-dark)}
.sl-summary-table{width:100%;border-collapse:collapse;font-size:.9rem}
.sl-summary-table th{background:var(--sl-bg);text-align:left;padding:14px 16px;width:130px;
  font-weight:700;font-size:.84rem;vertical-align:top;border-bottom:1px solid var(--sl-line)}
.sl-summary-table td{padding:14px 16px;border-bottom:1px solid var(--sl-line);color:var(--sl-ink-soft);white-space:pre-line}
.sl-summary-table tr:last-child th,.sl-summary-table tr:last-child td{border-bottom:none}
.sl-summary-table td a{color:var(--sl-blue);text-decoration:none}
.sl-disclaimer{font-size:.74rem;color:var(--sl-ink-soft);line-height:1.7;
  max-width:1100px;margin:0 auto;padding:20px 24px;background:#eaf0f6;border-radius:12px}
.sl-mobile-cta{display:none}
@media(max-width:900px){
  .sl-mobile-cta{display:grid;grid-template-columns:1fr 1fr;gap:0;position:fixed;bottom:0;left:0;right:0;
    z-index:60;box-shadow:0 -8px 24px -12px rgba(0,0,0,.25)}
  .sl-mobile-cta a{padding:16px;text-align:center;text-decoration:none;font-weight:700;font-size:.9rem;color:#fff}
  .sl-mobile-cta .sl-m-tel{background:var(--sl-blue-dark)}
  .sl-mobile-cta .sl-m-mail{background:var(--sl-green)}
}

/* --------------------------------------------------------------------------
   8. page_todouhuken（都道府県ページ）.pf-*
   ご要望：ヒーロー部の調整も反映
   -------------------------------------------------------------------------- */
.pf-root{padding-bottom:10px}
.pf-root *{box-sizing:border-box}
.pf-wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.pf-hero{background:linear-gradient(135deg,var(--pf-blue),var(--pf-blue-dark));color:#fff;
  border-radius:var(--pf-radius);padding:38px 40px;margin:14px 0 28px;position:relative;overflow:hidden;box-shadow:var(--pf-shadow)}
@media(max-width:560px){.pf-hero{padding:30px 24px}}
.pf-hero::after{content:"";position:absolute;top:-60px;right:-40px;width:260px;height:260px;
  border:1px solid rgba(255,255,255,.18);border-radius:50%;pointer-events:none}
.pf-hero .pf-pref{font-size:.78rem;opacity:.9;margin-bottom:6px;color:#fff}
.pf-hero h1{font-family:"Zen Maru Gothic";font-size:1.85rem;font-weight:700;line-height:1.4;margin:0 0 12px;color:#fff}
@media(max-width:560px){.pf-hero h1{font-size:1.5rem}}
.pf-hero p{font-size:.9rem;opacity:.92;max-width:680px;margin:0;color:#fff}
.pf-hero .pf-stats{display:flex;gap:32px;margin-top:22px;flex-wrap:wrap}
.pf-hero .pf-stats .pf-s b{font-family:"Zen Maru Gothic";font-size:1.5rem;display:block;color:#fff}
.pf-hero .pf-stats .pf-s span{font-size:.74rem;opacity:.85;color:#fff}
.pf-filter{background:#fff;border:1px solid var(--pf-line);border-radius:16px;padding:20px 24px;
  margin-bottom:28px;box-shadow:var(--pf-shadow-soft)}
.pf-filter .pf-ft-label{font-size:.78rem;font-weight:700;color:var(--pf-ink-soft);margin-bottom:12px}
.pf-filter-tags{display:flex;flex-wrap:wrap;gap:8px}
.pf-filter-tags button{font-family:inherit;background:var(--pf-bg);border:1px solid var(--pf-line);
  color:var(--pf-ink-soft);font-size:.8rem;font-weight:700;padding:7px 16px;border-radius:999px;cursor:pointer;transition:.2s}
.pf-filter-tags button.active,.pf-filter-tags button:hover{background:var(--pf-blue);color:#fff;border-color:var(--pf-blue)}
.pf-list-head{display:flex;align-items:center;gap:12px;margin:0 0 18px}
.pf-list-head h2{font-family:"Zen Maru Gothic";font-size:1.3rem;font-weight:700;margin:0}
.pf-list-head .pf-mk{width:6px;height:24px;background:var(--pf-blue);border-radius:3px}
.pf-list-head .pf-cnt{font-size:.8rem;color:var(--pf-ink-soft);font-weight:500}
.pf-law-card{background:#fff;border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  overflow:hidden;box-shadow:var(--pf-shadow-soft);margin-bottom:20px;display:grid;
  grid-template-columns:220px 1fr;transition:.2s;text-decoration:none;color:inherit}
.pf-law-card:hover{box-shadow:var(--pf-shadow);transform:translateY(-2px)}
@media(max-width:680px){.pf-law-card{grid-template-columns:1fr}}
.pf-law-photo{position:relative;background:linear-gradient(160deg,#eaf3fd,#dceaf8);
  display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.8rem;min-height:180px;overflow:hidden}
.pf-law-photo img{width:100%;height:100%;object-fit:cover}
.pf-law-rank{position:absolute;top:12px;left:12px;background:var(--pf-blue);color:#fff;
  font-family:"Zen Maru Gothic";font-weight:700;font-size:.8rem;width:36px;height:36px;
  border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:1}
.pf-law-rank.pf-gold{background:linear-gradient(135deg,#f0b429,#d99113)}
.pf-law-info{padding:24px 28px;display:flex;flex-direction:column}
.pf-law-area{font-size:.72rem;color:var(--pf-blue);font-weight:700;margin-bottom:5px}
.pf-law-name{font-family:"Zen Maru Gothic";font-size:1.25rem;font-weight:700;margin-bottom:8px}
.pf-law-catch{font-size:.86rem;color:var(--pf-ink-soft);margin-bottom:14px;white-space:pre-line;line-height:1.7}
.pf-law-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.pf-law-tags span{font-size:.7rem;background:var(--pf-blue-light);color:var(--pf-blue-dark);
  font-weight:700;padding:4px 10px;border-radius:999px}
.pf-law-tags span.pf-urgent{background:#fdeceb;color:var(--pf-alert)}
.pf-law-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;flex-wrap:wrap}
.pf-law-meta{font-size:.76rem;color:var(--pf-ink-soft)}
.pf-law-meta b{color:var(--pf-green);font-family:"Zen Maru Gothic";font-weight:700}
.pf-law-btn{background:var(--pf-blue);color:#fff;font-weight:700;padding:11px 26px;border-radius:12px;
  font-size:.88rem;white-space:nowrap}
.pf-office-section{margin-top:44px}
.pf-office-list{background:#fff;border:1px solid var(--pf-line);border-radius:16px;overflow:hidden}
.pf-office-row{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 24px;border-bottom:1px solid var(--pf-line);text-decoration:none;color:inherit;transition:.15s}
.pf-office-row:last-child{border-bottom:none}
.pf-office-row:hover{background:var(--pf-blue-light)}
.pf-office-row .pf-or-name{font-weight:700;font-size:.95rem}
.pf-office-row .pf-or-addr{font-size:.76rem;color:var(--pf-ink-soft);margin-top:2px}
.pf-office-row .pf-or-arw{color:var(--pf-blue);font-weight:700;font-size:.8rem;white-space:nowrap}
.pf-office-note{font-size:.78rem;color:var(--pf-ink-soft);margin-bottom:14px}
.pf-empty{background:#fff;border:1px solid var(--pf-line);border-radius:16px;padding:30px;text-align:center;color:var(--pf-ink-soft);font-size:.9rem}
.pf-desc{background:#fff;border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  padding:34px 38px;margin-top:44px;box-shadow:var(--pf-shadow-soft)}
@media(max-width:560px){.pf-desc{padding:28px 24px}}
.pf-desc :is(h2){font-family:"Zen Maru Gothic";font-size:1.25rem;margin:0 0 16px;
  padding-bottom:12px;border-bottom:2px solid var(--pf-bg)}
.pf-desc :is(h3){font-family:"Zen Maru Gothic";font-size:1.08rem;margin:24px 0 10px;color:var(--pf-blue-dark)}
.pf-desc p{font-size:.92rem;color:var(--pf-ink-soft);margin:0 0 14px}
.pf-desc img{max-width:100%;height:auto;border-radius:10px}
.pf-guide-cta{background:linear-gradient(135deg,var(--pf-blue),var(--pf-blue-dark));color:#fff;
  border-radius:var(--pf-radius);padding:38px;margin-top:44px;text-align:center;box-shadow:var(--pf-shadow)}
.pf-guide-cta .pf-free-banner{display:inline-block;background:var(--pf-green);color:#fff;font-weight:700;
  font-size:.8rem;padding:5px 14px;border-radius:999px;margin-bottom:14px;font-family:"Zen Maru Gothic"}
.pf-guide-cta h2{font-family:"Zen Maru Gothic";font-size:1.4rem;margin:0 0 10px;color:#fff;border:none;padding:0}
.pf-guide-cta p{font-size:.9rem;opacity:.92;margin:0 0 22px}
.pf-guide-cta .pf-btn{display:inline-block;background:#fff;color:var(--pf-blue-dark);font-weight:700;
  text-decoration:none;padding:15px 38px;border-radius:13px;transition:.2s}
.pf-guide-cta .pf-btn:hover{transform:translateY(-2px)}
.pf-area-search{margin-top:44px;background:#fff;border:1px solid var(--pf-line);border-radius:var(--pf-radius);
  padding:34px 38px;box-shadow:var(--pf-shadow-soft)}
.pf-area-search h2{font-family:"Zen Maru Gothic";font-size:1.25rem;margin:0 0 18px;
  padding-bottom:12px;border-bottom:2px solid var(--pf-bg)}

/* --------------------------------------------------------------------------
   9. archive-law（事務所一覧）.al-*
   -------------------------------------------------------------------------- */
.al-root{padding-bottom:10px}
.al-wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.al-hero{background:linear-gradient(135deg,var(--gd-blue),var(--gd-blue-dark));color:#fff;
  border-radius:var(--gd-radius);padding:38px 40px;margin:14px 0 28px;position:relative;overflow:hidden;box-shadow:var(--gd-shadow)}
@media(max-width:560px){.al-hero{padding:30px 24px}}
.al-hero::after{content:"";position:absolute;top:-60px;right:-40px;width:240px;height:240px;border:1px solid rgba(255,255,255,.18);border-radius:50%;pointer-events:none}
.al-hero .al-label{display:inline-block;font-size:.74rem;font-weight:700;background:rgba(255,255,255,.18);padding:5px 14px;border-radius:999px;margin-bottom:12px;color:#fff}
.al-hero h1{font-family:"Zen Maru Gothic";font-size:1.85rem;font-weight:700;line-height:1.4;margin:0;color:#fff}
@media(max-width:560px){.al-hero h1{font-size:1.5rem}}
.al-hero p{font-size:.9rem;opacity:.92;margin:12px 0 0;max-width:720px;color:#fff}
.al-count{font-size:.84rem;color:var(--gd-ink-soft);margin-bottom:20px}
.al-count span{color:var(--gd-blue);font-weight:700}
.al-list-head{display:flex;align-items:center;gap:12px;margin:0 0 18px}
.al-list-head h2{font-family:"Zen Maru Gothic";font-size:1.3rem;font-weight:700;margin:0}
.al-list-head .al-mk{width:6px;height:24px;background:var(--gd-blue);border-radius:3px}
.al-law-card{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);overflow:hidden;
  box-shadow:var(--gd-shadow-soft);margin-bottom:20px;display:grid;grid-template-columns:220px 1fr;transition:.2s;text-decoration:none;color:inherit}
.al-law-card:hover{box-shadow:var(--gd-shadow);transform:translateY(-2px)}
@media(max-width:680px){.al-law-card{grid-template-columns:1fr}}
.al-law-photo{position:relative;background:linear-gradient(160deg,#eaf3fd,#dceaf8);display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.8rem;min-height:180px;overflow:hidden}
.al-law-photo img{width:100%;height:100%;object-fit:cover}
.al-law-rank{position:absolute;top:12px;left:12px;background:var(--gd-blue);color:#fff;font-family:"Zen Maru Gothic";font-weight:700;font-size:.8rem;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:1}
.al-law-rank.al-gold{background:linear-gradient(135deg,#f0b429,#d99113)}
.al-law-info{padding:24px 28px;display:flex;flex-direction:column}
.al-law-area{font-size:.72rem;color:var(--gd-blue);font-weight:700;margin-bottom:5px}
.al-law-name{font-family:"Zen Maru Gothic";font-size:1.25rem;font-weight:700;margin-bottom:8px}
.al-law-catch{font-size:.86rem;color:var(--gd-ink-soft);margin-bottom:14px;white-space:pre-line;line-height:1.7}
.al-law-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.al-law-tags span{font-size:.7rem;background:var(--gd-blue-light);color:var(--gd-blue-dark);font-weight:700;padding:4px 10px;border-radius:999px}
.al-law-tags span.al-urgent{background:#fdeceb;color:var(--gd-alert)}
.al-law-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;flex-wrap:wrap}
.al-law-meta{font-size:.76rem;color:var(--gd-ink-soft)}
.al-law-meta b{color:var(--gd-green);font-family:"Zen Maru Gothic";font-weight:700}
.al-law-btn{background:var(--gd-blue);color:#fff;font-weight:700;padding:11px 26px;border-radius:12px;font-size:.88rem;white-space:nowrap}
.al-office-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;
  border:1px solid var(--gd-line);border-radius:14px;padding:18px 24px;margin-bottom:12px;text-decoration:none;color:inherit;transition:.15s}
.al-office-row:hover{background:var(--gd-blue-light);border-color:var(--gd-blue)}
.al-office-row .al-or-name{font-weight:700;font-size:.95rem}
.al-office-row .al-or-addr{font-size:.76rem;color:var(--gd-ink-soft);margin-top:2px}
.al-office-row .al-or-arw{color:var(--gd-blue);font-weight:700;font-size:.8rem;white-space:nowrap}
.al-empty{background:#fff;border:1px solid var(--gd-line);border-radius:16px;padding:40px;text-align:center;color:var(--gd-ink-soft);font-size:.92rem}
.al-pager,.sr-pager,.gd-arc-pager{margin:24px 0 50px}
.al-pager .pager,.sr-pager .pager,.gd-arc-pager .pager{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;list-style:none;padding:0;margin:0}
.al-pager .pager a,.al-pager .pager span,
.sr-pager .pager a,.sr-pager .pager span,
.gd-arc-pager .pager a,.gd-arc-pager .pager span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--gd-line);border-radius:11px;background:#fff;color:var(--gd-ink-soft);text-decoration:none;font-weight:700;font-size:.88rem;transition:.2s}
.al-pager .pager a:hover,.sr-pager .pager a:hover,.gd-arc-pager .pager a:hover{background:var(--gd-blue-light);border-color:var(--gd-blue);color:var(--gd-blue-dark)}
.al-pager .pager .current,.sr-pager .pager .current,.gd-arc-pager .pager .current{background:var(--gd-blue);color:#fff;border-color:var(--gd-blue)}

/* エリアファインダー（共通） */
.al-area-finder,.sr-area-finder{background:#fff;border:2px solid var(--gd-blue);border-radius:18px;padding:30px 32px;margin:44px 0 60px}
@media(max-width:560px){.al-area-finder,.sr-area-finder{padding:24px 18px}}
.al-af-head,.sr-af-head{text-align:center;margin-bottom:20px}
.al-af-badge,.sr-af-badge{display:inline-block;font-size:.72rem;font-weight:700;color:#fff;background:var(--gd-blue);padding:4px 14px;border-radius:999px;margin-bottom:10px;font-family:"Zen Maru Gothic"}
.al-af-head h3,.sr-af-head h3{font-family:"Zen Maru Gothic";font-size:1.3rem;line-height:1.5;margin:0}
.al-af-tabs,.sr-af-tabs{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-bottom:18px}
.al-af-tabs button,.sr-af-tabs button{font-family:inherit;background:var(--gd-bg);border:1px solid var(--gd-line);color:var(--gd-ink-soft);font-size:.8rem;font-weight:700;padding:7px 15px;border-radius:999px;cursor:pointer;transition:.2s}
.al-af-tabs button.active,.al-af-tabs button:hover,
.sr-af-tabs button.active,.sr-af-tabs button:hover{background:var(--gd-blue);color:#fff;border-color:var(--gd-blue)}
.al-af-pref,.sr-af-pref{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
@media(max-width:560px){.al-af-pref,.sr-af-pref{grid-template-columns:repeat(3,1fr)}}
.al-af-pref a,.sr-af-pref a{background:var(--gd-bg);border:1px solid var(--gd-line);border-radius:10px;padding:12px 6px;text-align:center;text-decoration:none;color:var(--gd-ink);font-weight:700;font-size:.86rem;transition:.2s}
.al-af-pref a:hover,.sr-af-pref a:hover{background:var(--gd-blue-light);border-color:var(--gd-blue);color:var(--gd-blue-dark);transform:translateY(-2px)}

/* --------------------------------------------------------------------------
   10. search（検索結果）.sr-*
   -------------------------------------------------------------------------- */
.sr-root{padding-bottom:10px}
.sr-wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.sr-hero{background:linear-gradient(135deg,var(--gd-blue),var(--gd-blue-dark));color:#fff;
  border-radius:var(--gd-radius);padding:34px 40px;margin:14px 0 24px;position:relative;overflow:hidden;box-shadow:var(--gd-shadow)}
@media(max-width:560px){.sr-hero{padding:28px 24px}}
.sr-hero::after{content:"";position:absolute;top:-60px;right:-40px;width:240px;height:240px;border:1px solid rgba(255,255,255,.18);border-radius:50%;pointer-events:none}
.sr-hero .sr-label{display:inline-block;font-size:.74rem;font-weight:700;background:rgba(255,255,255,.18);padding:5px 14px;border-radius:999px;margin-bottom:12px;color:#fff}
.sr-hero h1{font-family:"Zen Maru Gothic";font-size:1.65rem;font-weight:700;line-height:1.4;margin:0;color:#fff}
.sr-hero h1 em{font-style:normal;border-bottom:3px solid rgba(255,255,255,.6);padding-bottom:2px}
.sr-count{font-size:.84rem;color:var(--gd-ink-soft);margin-bottom:20px}
.sr-form-box{background:#fff;border:1px solid var(--gd-line);border-radius:16px;padding:24px 26px;margin-bottom:28px;box-shadow:var(--gd-shadow-soft)}
.sr-form-box .sr-fl{font-size:.8rem;font-weight:700;color:var(--gd-ink-soft);margin-bottom:12px}
.sr-form{display:flex;gap:10px;flex-wrap:wrap}
.sr-form input[type=text]{flex:1;min-width:200px;border:1px solid var(--gd-line);border-radius:11px;padding:13px 16px;font-size:.95rem;font-family:inherit}
.sr-form input[type=text]:focus{outline:none;border-color:var(--gd-blue)}
.sr-form button{background:var(--gd-blue);color:#fff;border:0;border-radius:11px;padding:0 28px;font-weight:700;font-size:.92rem;cursor:pointer;transition:.2s;font-family:inherit}
.sr-form button:hover{background:var(--gd-blue-dark)}
.sr-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.sr-quick a{font-size:.8rem;font-weight:700;background:var(--gd-bg);border:1px solid var(--gd-line);color:var(--gd-ink-soft);padding:6px 14px;border-radius:999px;text-decoration:none;transition:.2s}
.sr-quick a:hover{background:var(--gd-blue);color:#fff;border-color:var(--gd-blue)}
.sr-law-card{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);overflow:hidden;
  box-shadow:var(--gd-shadow-soft);margin-bottom:20px;display:grid;grid-template-columns:220px 1fr;transition:.2s;text-decoration:none;color:inherit}
.sr-law-card:hover{box-shadow:var(--gd-shadow);transform:translateY(-2px)}
@media(max-width:680px){.sr-law-card{grid-template-columns:1fr}}
.sr-law-photo{position:relative;background:linear-gradient(160deg,#eaf3fd,#dceaf8);display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.8rem;min-height:170px;overflow:hidden}
.sr-law-photo img{width:100%;height:100%;object-fit:cover}
.sr-law-info{padding:22px 26px;display:flex;flex-direction:column}
.sr-law-area{font-size:.72rem;color:var(--gd-blue);font-weight:700;margin-bottom:5px}
.sr-law-name{font-family:"Zen Maru Gothic";font-size:1.2rem;font-weight:700;margin-bottom:8px}
.sr-law-catch{font-size:.85rem;color:var(--gd-ink-soft);margin-bottom:14px;white-space:pre-line;line-height:1.7}
.sr-law-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.sr-law-tags span{font-size:.7rem;background:var(--gd-blue-light);color:var(--gd-blue-dark);font-weight:700;padding:4px 10px;border-radius:999px}
.sr-law-tags span.sr-urgent{background:#fdeceb;color:var(--gd-alert)}
.sr-law-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;flex-wrap:wrap}
.sr-law-meta{font-size:.76rem;color:var(--gd-ink-soft)}
.sr-law-meta b{color:var(--gd-green);font-family:"Zen Maru Gothic";font-weight:700}
.sr-law-btn{background:var(--gd-blue);color:#fff;font-weight:700;padding:10px 24px;border-radius:12px;font-size:.86rem;white-space:nowrap}
.sr-gen-card{background:#fff;border:1px solid var(--gd-line);border-radius:14px;padding:20px 24px;margin-bottom:14px;text-decoration:none;color:inherit;display:block;transition:.15s}
.sr-gen-card:hover{background:var(--gd-blue-light);border-color:var(--gd-blue)}
.sr-gen-card .sr-gen-ttl{font-weight:700;font-size:1rem;margin-bottom:6px}
.sr-gen-card .sr-gen-ex{font-size:.82rem;color:var(--gd-ink-soft);line-height:1.7}
.sr-empty{background:#fff;border:1px solid var(--gd-line);border-radius:16px;padding:40px;text-align:center;color:var(--gd-ink-soft);font-size:.92rem;margin-bottom:28px}

/* --------------------------------------------------------------------------
   11. archive（コンテンツアーカイブ）.gd-arc-*
   -------------------------------------------------------------------------- */
.gd-archive-root{padding-bottom:10px}
.gd-arc-hero{background:linear-gradient(135deg,var(--gd-blue),var(--gd-blue-dark));color:#fff;
  border-radius:var(--gd-radius);padding:36px 40px;margin:14px 0 28px;position:relative;overflow:hidden;box-shadow:var(--gd-shadow)}
@media(max-width:560px){.gd-arc-hero{padding:28px 24px}}
.gd-arc-hero::after{content:"";position:absolute;top:-60px;right:-40px;width:240px;height:240px;border:1px solid rgba(255,255,255,.18);border-radius:50%;pointer-events:none}
.gd-arc-label{display:inline-block;font-size:.74rem;font-weight:700;background:rgba(255,255,255,.18);padding:5px 14px;border-radius:999px;margin-bottom:12px;color:#fff}
.gd-arc-hero h1{font-family:"Zen Maru Gothic";font-size:1.75rem;font-weight:700;line-height:1.4;margin:0;color:#fff}
@media(max-width:560px){.gd-arc-hero h1{font-size:1.4rem}}
.gd-arc-hero p{font-size:.9rem;opacity:.92;margin:12px 0 0;max-width:720px;color:#fff}
.gd-arc-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.gd-arc-count{font-size:.84rem;color:var(--gd-ink-soft)}
.gd-arc-count span{color:var(--gd-blue);font-weight:700}
.gd-arc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:36px}
@media(max-width:860px){.gd-arc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.gd-arc-grid{grid-template-columns:1fr}}
.gd-arc-card{background:#fff;border:1px solid var(--gd-line);border-radius:16px;overflow:hidden;
  text-decoration:none;color:var(--gd-ink);transition:.2s;display:flex;flex-direction:column}
.gd-arc-card:hover{transform:translateY(-3px);box-shadow:var(--gd-shadow-soft);border-color:var(--gd-blue)}
.gd-arc-thumb{position:relative;height:160px;background:linear-gradient(160deg,#eaf3fd,#dceaf8);display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.78rem;overflow:hidden}
.gd-arc-thumb img{width:100%;height:100%;object-fit:cover}
.gd-arc-views{position:absolute;top:10px;right:10px;background:rgba(26,43,66,.78);color:#fff;font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:999px}
.gd-arc-body{padding:18px 20px;flex:1;display:flex;flex-direction:column}
.gd-arc-cat{font-size:.68rem;color:var(--gd-blue);font-weight:700;margin-bottom:6px}
.gd-arc-ttl{font-weight:700;font-size:.95rem;line-height:1.55;flex:1}
.gd-arc-date{font-size:.72rem;color:var(--gd-ink-soft);margin-top:12px}
.gd-arc-empty{background:#fff;border:1px solid var(--gd-line);border-radius:16px;padding:40px;text-align:center;color:var(--gd-ink-soft);font-size:.92rem;margin-bottom:36px}
.gd-arc-cta{background:linear-gradient(135deg,var(--gd-blue),var(--gd-blue-dark));color:#fff;
  border-radius:var(--gd-radius);padding:38px;margin-bottom:60px;text-align:center;box-shadow:var(--gd-shadow)}
.gd-arc-cta .gd-free{display:inline-block;background:var(--gd-green);color:#fff;font-weight:700;font-size:.8rem;padding:5px 14px;border-radius:999px;margin-bottom:14px;font-family:"Zen Maru Gothic"}
.gd-arc-cta h2{font-family:"Zen Maru Gothic";font-size:1.4rem;margin:0 0 10px;color:#fff}
.gd-arc-cta p{font-size:.9rem;opacity:.92;margin:0 0 22px}
.gd-arc-cta .gd-btn{display:inline-block;background:#fff;color:var(--gd-blue-dark);font-weight:700;text-decoration:none;padding:15px 38px;border-radius:13px;transition:.2s}
.gd-arc-cta .gd-btn:hover{transform:translateY(-2px)}

/* --------------------------------------------------------------------------
   12. page / single（コンテンツ記事・投稿）.gd-article-*
   -------------------------------------------------------------------------- */
.gd-article-root{padding-bottom:10px}
.gd-article-head{margin-bottom:30px}
.gd-article-cat{display:inline-block;font-size:.74rem;font-weight:700;color:#fff;background:var(--gd-blue);padding:5px 14px;border-radius:999px;margin-bottom:16px;text-decoration:none}
.gd-article-head h1{font-family:"Zen Maru Gothic";font-size:2rem;font-weight:700;line-height:1.5;margin:0 0 16px}
@media(max-width:560px){.gd-article-head h1{font-size:1.6rem}}
.gd-article-meta{display:flex;gap:18px;font-size:.78rem;color:var(--gd-ink-soft);flex-wrap:wrap}
.gd-article-eyecatch{margin-bottom:24px;border-radius:var(--gd-radius);overflow:hidden}
.gd-article-eyecatch img{width:100%;height:auto;display:block}
.gd-article-grid{display:grid;grid-template-columns:1fr 280px;gap:40px;margin-bottom:60px}
@media(max-width:920px){.gd-article-grid{grid-template-columns:1fr}}
.gd-article-body{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);
  padding:44px 50px;box-shadow:var(--gd-shadow-soft);font-size:1rem;line-height:1.95}
@media(max-width:560px){.gd-article-body{padding:30px 22px}}
.gd-article-body h2{font-family:"Zen Maru Gothic";font-size:1.5rem;font-weight:700;line-height:1.5;
  margin:48px 0 20px;padding:16px 22px;background:linear-gradient(90deg,var(--gd-blue-light),transparent);
  border-left:5px solid var(--gd-blue);border-radius:0 10px 10px 0}
.gd-article-body h2:first-child{margin-top:0}
.gd-article-body h3{font-family:"Zen Maru Gothic";font-size:1.2rem;font-weight:700;margin:36px 0 14px;
  padding-bottom:8px;border-bottom:2px dotted var(--gd-line);color:var(--gd-blue-dark)}
.gd-article-body h4{font-family:"Zen Maru Gothic";font-size:1.05rem;font-weight:700;margin:28px 0 12px;color:var(--gd-ink)}
.gd-article-body p{margin:0 0 22px}
.gd-article-body a{color:var(--gd-blue);text-decoration:underline}
.gd-article-body strong{color:var(--gd-blue-dark);font-weight:700}
.gd-article-body img{max-width:100%;height:auto;border-radius:10px;margin:10px 0}
.gd-article-body ul,.gd-article-body ol{margin:0 0 22px 1.4em}
.gd-article-body li{margin-bottom:8px}
.gd-article-body blockquote{margin:24px 0;padding:18px 22px;background:var(--gd-bg);
  border-left:4px solid var(--gd-sky);border-radius:0 10px 10px 0;color:var(--gd-ink-soft)}
.gd-article-body table{width:100%;border-collapse:collapse;margin:24px 0;font-size:.92rem;
  border:1px solid var(--gd-line);border-radius:12px;overflow:hidden}
.gd-article-body table th{background:var(--gd-blue);color:#fff;padding:14px 16px;font-weight:700;text-align:left}
.gd-article-body table td{padding:14px 16px;border-bottom:1px solid var(--gd-line);border-right:1px solid var(--gd-line)}
.gd-article-body table tr:nth-child(even) td{background:var(--gd-bg)}
.gd-article-body table td:last-child{border-right:none}
.gd-article-body #toc_container{background:var(--gd-bg);border:1px solid var(--gd-line);
  border-radius:14px;padding:22px 26px;margin:0 0 40px;width:auto;box-shadow:none}
.gd-article-body #toc_container .toc_title{font-family:"Zen Maru Gothic";font-weight:700;font-size:1rem;text-align:left}
.gd-article-body #toc_container ul{margin:10px 0 0;padding:0}
.gd-article-body #toc_container li{margin-bottom:8px;font-size:.92rem}
.gd-article-body #toc_container a{color:var(--gd-ink-soft);text-decoration:none}
.gd-article-body #toc_container a:hover{color:var(--gd-blue)}
.gd-inline-cta{background:linear-gradient(135deg,var(--gd-blue),var(--gd-blue-dark));color:#fff;
  border-radius:16px;padding:30px 32px;margin:40px 0;text-align:center}
.gd-inline-cta .gd-free{display:inline-block;background:var(--gd-green);color:#fff;font-weight:700;font-size:.76rem;padding:5px 14px;border-radius:999px;margin-bottom:12px;font-family:"Zen Maru Gothic"}
.gd-inline-cta h3{font-family:"Zen Maru Gothic";font-size:1.25rem;margin:0 0 8px;color:#fff;padding:0;border:none}
.gd-inline-cta p{font-size:.86rem;opacity:.92;margin:0 0 20px}
.gd-inline-cta .gd-btn{display:inline-block;background:#fff;color:var(--gd-blue-dark);font-weight:700;text-decoration:none;padding:14px 36px;border-radius:12px;transition:.2s}
.gd-inline-cta .gd-btn:hover{transform:translateY(-2px)}
.gd-area-finder{background:#fff;border:2px solid var(--gd-blue);border-radius:18px;padding:30px 32px;margin:40px 0}
@media(max-width:560px){.gd-area-finder{padding:24px 18px}}
.gd-af-head{text-align:center;margin-bottom:20px}
.gd-af-badge{display:inline-block;font-size:.72rem;font-weight:700;color:#fff;background:var(--gd-blue);padding:4px 14px;border-radius:999px;margin-bottom:10px;font-family:"Zen Maru Gothic"}
.gd-af-head h3{font-family:"Zen Maru Gothic";font-size:1.3rem;line-height:1.5;margin:0}
.gd-af-head p{font-size:.84rem;color:var(--gd-ink-soft);margin:6px 0 0}
.gd-af-tabs{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-bottom:18px}
.gd-af-tabs button{font-family:inherit;background:var(--gd-bg);border:1px solid var(--gd-line);color:var(--gd-ink-soft);font-size:.8rem;font-weight:700;padding:7px 15px;border-radius:999px;cursor:pointer;transition:.2s}
.gd-af-tabs button.active,.gd-af-tabs button:hover{background:var(--gd-blue);color:#fff;border-color:var(--gd-blue)}
.gd-af-pref{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
@media(max-width:560px){.gd-af-pref{grid-template-columns:repeat(3,1fr)}}
.gd-af-pref a{background:var(--gd-bg);border:1px solid var(--gd-line);border-radius:10px;padding:12px 6px;text-align:center;text-decoration:none;color:var(--gd-ink);font-weight:700;font-size:.86rem;transition:.2s}
.gd-af-pref a:hover{background:var(--gd-blue-light);border-color:var(--gd-blue);color:var(--gd-blue-dark);transform:translateY(-2px)}
.gd-af-all{display:block;text-align:center;margin-top:16px;font-size:.86rem;font-weight:700;color:var(--gd-blue);text-decoration:none}
.gd-af-all:hover{text-decoration:underline}
.gd-side{position:sticky;top:92px;align-self:start;display:flex;flex-direction:column;gap:20px}
@media(max-width:920px){.gd-side{position:static}}
.gd-side-box{background:#fff;border:1px solid var(--gd-line);border-radius:16px;padding:22px 24px}
.gd-side-box .gd-sb-ttl{font-family:"Zen Maru Gothic";font-weight:700;font-size:.9rem;margin-bottom:14px;color:var(--gd-blue-dark)}
.gd-popular a{display:block;font-size:.82rem;color:var(--gd-ink-soft);text-decoration:none;padding:10px 0;border-bottom:1px solid var(--gd-line);transition:.2s;line-height:1.5}
.gd-popular a:last-child{border-bottom:none}
.gd-popular a:hover{color:var(--gd-blue)}
.gd-side-area{background:linear-gradient(150deg,var(--gd-blue),var(--gd-blue-dark));color:#fff;border-radius:16px;padding:22px 24px;text-align:center}
.gd-side-area .gd-sa-ttl{font-weight:700;font-size:.98rem;margin-bottom:6px;font-family:"Zen Maru Gothic"}
.gd-side-area .gd-sa-lead{font-size:.78rem;opacity:.9;margin-bottom:16px}
.gd-side-area .gd-sa-btn{display:block;background:#fff;color:var(--gd-blue-dark);font-weight:700;text-decoration:none;padding:12px;border-radius:11px;font-size:.88rem;transition:.2s}
.gd-side-area .gd-sa-btn:hover{transform:translateY(-2px)}
.gd-related{margin-bottom:60px}
.gd-related h2{font-family:"Zen Maru Gothic";font-size:1.3rem;margin:0 0 20px;text-align:center}
.gd-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:760px){.gd-related-grid{grid-template-columns:1fr}}
.gd-related-card{background:#fff;border:1px solid var(--gd-line);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--gd-ink);transition:.2s}
.gd-related-card:hover{transform:translateY(-3px);box-shadow:var(--gd-shadow-soft);border-color:var(--gd-blue)}
.gd-related-card .gd-rc-img{height:120px;background:linear-gradient(160deg,#eaf3fd,#dceaf8);display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.78rem;overflow:hidden}
.gd-related-card .gd-rc-img img{width:100%;height:100%;object-fit:cover}
.gd-related-card .gd-rc-body{padding:18px 20px}
.gd-related-card .gd-rc-cat{font-size:.68rem;color:var(--gd-blue);font-weight:700;margin-bottom:6px}
.gd-related-card .gd-rc-ttl{font-weight:700;font-size:.92rem;line-height:1.5}

/* --------------------------------------------------------------------------
   13. index（トップ）.tp-*
   -------------------------------------------------------------------------- */
.tp-root{padding-bottom:10px}
.tp-root .tp-wrap{max-width:1100px;margin:0 auto;padding:0 24px}
.tp-root section{margin-bottom:64px}
.tp-sec-head{text-align:center;margin-bottom:36px}
.tp-sec-head .tp-en{font-size:.74rem;color:var(--gd-blue);font-weight:700;letter-spacing:.18em;display:block;margin-bottom:8px}
.tp-sec-head h2{font-family:"Zen Maru Gothic";font-size:1.7rem;font-weight:700;line-height:1.4;margin:0}
.tp-sec-head p{font-size:.92rem;color:var(--gd-ink-soft);margin:10px 0 0}
.tp-hero{position:relative;background:linear-gradient(160deg,#eaf3fd 0%,#f3f7fc 55%,#fff 100%);overflow:hidden;padding:64px 0 70px;margin-bottom:0}
.tp-hero::before{content:"";position:absolute;top:-120px;right:-100px;width:420px;height:420px;background:radial-gradient(circle,rgba(61,155,232,.18),transparent 70%);border-radius:50%}
.tp-hero-inner{position:relative;text-align:center;max-width:1100px;margin:0 auto;padding:0 24px}
.tp-hero .tp-badge{display:inline-block;background:#fff;border:1px solid var(--gd-line);color:var(--gd-blue-dark);font-size:.8rem;font-weight:700;padding:7px 18px;border-radius:999px;margin-bottom:22px;box-shadow:var(--gd-shadow-soft)}
.tp-hero h1{font-family:"Zen Maru Gothic";font-size:2.5rem;font-weight:700;line-height:1.5;margin:0 0 18px}
@media(max-width:560px){.tp-hero h1{font-size:1.8rem}}
.tp-hero h1 .tp-hl{color:var(--gd-blue);position:relative}
.tp-hero h1 .tp-hl::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:10px;background:rgba(61,155,232,.22);z-index:-1;border-radius:4px}
.tp-hero .tp-sub{font-size:1.02rem;color:var(--gd-ink-soft);margin:0 auto 32px;max-width:680px}
.tp-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.tp-btn-primary{background:var(--gd-blue);color:#fff;text-decoration:none;font-weight:700;padding:17px 40px;border-radius:14px;font-size:1.05rem;transition:.2s;box-shadow:var(--gd-shadow)}
.tp-btn-primary:hover{background:var(--gd-blue-dark);transform:translateY(-2px)}
.tp-btn-ghost{background:#fff;color:var(--gd-blue-dark);text-decoration:none;font-weight:700;padding:17px 36px;border-radius:14px;font-size:1.05rem;border:1px solid var(--gd-line);transition:.2s}
.tp-btn-ghost:hover{border-color:var(--gd-blue)}
.tp-hero-stats{display:flex;gap:40px;justify-content:center;margin-top:42px;flex-wrap:wrap}
.tp-hero-stats .tp-st{text-align:center}
.tp-hero-stats .tp-st .tp-n{font-family:"Zen Maru Gothic";font-size:1.9rem;font-weight:700;color:var(--gd-blue)}
.tp-hero-stats .tp-st .tp-l{font-size:.78rem;color:var(--gd-ink-soft)}
.tp-area-search{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);padding:40px;box-shadow:var(--gd-shadow-soft);margin-top:-40px;position:relative;z-index:2}
@media(max-width:560px){.tp-area-search{padding:28px 20px}}
.tp-region-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:26px}
.tp-region-tabs button{font-family:inherit;background:var(--gd-bg);border:1px solid var(--gd-line);color:var(--gd-ink-soft);font-size:.84rem;font-weight:700;padding:8px 18px;border-radius:999px;cursor:pointer;transition:.2s}
.tp-region-tabs button.active,.tp-region-tabs button:hover{background:var(--gd-blue);color:#fff;border-color:var(--gd-blue)}
.tp-pref-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
@media(max-width:820px){.tp-pref-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:520px){.tp-pref-grid{grid-template-columns:repeat(3,1fr)}}
.tp-pref-grid a{background:var(--gd-bg);border:1px solid var(--gd-line);border-radius:12px;padding:14px 8px;text-align:center;text-decoration:none;color:var(--gd-ink);font-weight:700;font-size:.9rem;transition:.2s}
.tp-pref-grid a:hover{background:var(--gd-blue-light);border-color:var(--gd-blue);color:var(--gd-blue-dark);transform:translateY(-2px)}
.tp-office-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:880px){.tp-office-cards{grid-template-columns:1fr}}
.tp-office-card{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);overflow:hidden;box-shadow:var(--gd-shadow-soft);transition:.2s;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.tp-office-card:hover{transform:translateY(-4px);box-shadow:var(--gd-shadow)}
.tp-oc-photo{position:relative;height:150px;background:linear-gradient(160deg,#eaf3fd,#dceaf8);display:flex;align-items:center;justify-content:center;color:#9ec0e2;font-size:.8rem;overflow:hidden}
.tp-oc-photo img{width:100%;height:100%;object-fit:cover}
.tp-oc-rank{position:absolute;top:14px;left:14px;background:var(--gd-blue);color:#fff;font-family:"Zen Maru Gothic";font-weight:700;font-size:.78rem;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2}
.tp-oc-rank.tp-gold{background:linear-gradient(135deg,#f0b429,#d99113)}
.tp-oc-body{padding:22px 24px;flex:1;display:flex;flex-direction:column}
.tp-oc-area{font-size:.72rem;color:var(--gd-blue);font-weight:700;margin-bottom:6px}
.tp-oc-name{font-family:"Zen Maru Gothic";font-size:1.1rem;font-weight:700;margin-bottom:10px}
.tp-oc-catch{font-size:.84rem;color:var(--gd-ink-soft);margin-bottom:16px;flex:1;white-space:pre-line;line-height:1.7}
.tp-oc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.tp-oc-tags span{font-size:.7rem;background:var(--gd-blue-light);color:var(--gd-blue-dark);font-weight:700;padding:4px 10px;border-radius:999px}
.tp-oc-btn{display:block;text-align:center;background:var(--gd-bg);border:1px solid var(--gd-blue);color:var(--gd-blue-dark);font-weight:700;padding:12px;border-radius:12px;font-size:.9rem;transition:.2s}
.tp-office-card:hover .tp-oc-btn{background:var(--gd-blue);color:#fff}
.tp-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:860px){.tp-cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.tp-cat-grid{grid-template-columns:1fr}}
.tp-cat-card{background:#fff;border:1px solid var(--gd-line);border-radius:16px;padding:26px 22px;text-decoration:none;color:var(--gd-ink);transition:.2s;text-align:center}
.tp-cat-card:hover{transform:translateY(-3px);box-shadow:var(--gd-shadow-soft);border-color:var(--gd-blue)}
.tp-cat-card .tp-ic{width:56px;height:56px;border-radius:50%;background:var(--gd-blue-light);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 14px}
.tp-cat-card .tp-ct{font-family:"Zen Maru Gothic";font-weight:700;font-size:1rem;margin-bottom:6px}
.tp-cat-card .tp-cd{font-size:.78rem;color:var(--gd-ink-soft)}
.tp-merit{background:linear-gradient(160deg,#0e5aab,#1573d4);color:#fff;padding:60px 0;border-radius:var(--gd-radius)}
.tp-merit .tp-sec-head h2{color:#fff}
.tp-merit .tp-sec-head .tp-en{color:var(--gd-sky)}
.tp-merit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:780px){.tp-merit-grid{grid-template-columns:1fr}}
.tp-merit-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:30px 26px}
.tp-merit-card .tp-num{font-family:"Zen Maru Gothic";font-size:1.1rem;color:var(--gd-sky);font-weight:700;margin-bottom:10px}
.tp-merit-card h3{font-family:"Zen Maru Gothic";font-size:1.2rem;margin:0 0 10px;color:#fff}
.tp-merit-card p{font-size:.88rem;opacity:.9;margin:0;color:#fff}
.tp-final-cta{text-align:center;background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);padding:50px 40px;box-shadow:var(--gd-shadow-soft)}
.tp-final-cta .tp-free-banner{display:inline-block;background:var(--gd-green);color:#fff;font-weight:700;font-size:.8rem;padding:6px 16px;border-radius:999px;margin-bottom:16px;font-family:"Zen Maru Gothic"}
.tp-final-cta h2{font-family:"Zen Maru Gothic";font-size:1.7rem;margin:0 0 12px}
.tp-final-cta p{color:var(--gd-ink-soft);margin:0 0 28px}
.tp-seo{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);padding:40px 48px;box-shadow:var(--gd-shadow-soft)}
@media(max-width:560px){.tp-seo{padding:28px 22px}}
.tp-seo h2{font-family:"Zen Maru Gothic";font-size:1.4rem;font-weight:700;line-height:1.5;margin:40px 0 18px;padding:14px 20px;background:linear-gradient(90deg,var(--gd-blue-light),transparent);border-left:5px solid var(--gd-blue);border-radius:0 10px 10px 0}
.tp-seo h2:first-child{margin-top:0}
.tp-seo h3{font-family:"Zen Maru Gothic";font-size:1.15rem;font-weight:700;margin:28px 0 12px;padding-bottom:7px;border-bottom:2px dotted var(--gd-line);color:var(--gd-blue-dark)}
.tp-seo h4{font-family:"Zen Maru Gothic";font-size:1.02rem;font-weight:700;margin:22px 0 10px}
.tp-seo h5{font-weight:700;margin:18px 0 8px;color:var(--gd-ink)}
.tp-seo p{margin:0 0 20px;font-size:1rem;color:var(--gd-ink-soft)}
.tp-seo img{max-width:100%;height:auto;border-radius:8px}
.tp-seo strong{color:var(--gd-blue-dark);font-weight:700}
.tp-seo table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.92rem;border:1px solid var(--gd-line);border-radius:12px;overflow:hidden}
.tp-seo table caption{font-family:"Zen Maru Gothic";font-weight:700;text-align:left;margin-bottom:10px;color:var(--gd-ink)}
.tp-seo table th{background:var(--gd-blue);color:#fff;padding:13px 15px;text-align:left;font-weight:700;vertical-align:top}
.tp-seo table td{padding:13px 15px;border-bottom:1px solid var(--gd-line);color:var(--gd-ink-soft)}
.tp-seo .point{background:#eafaf4;border:1px solid #b9e6d5;border-radius:14px;padding:20px 24px;margin:24px 0}
.tp-seo .point ul{margin:0;padding-left:1.2em}

/* --------------------------------------------------------------------------
   14. form-bengo（メール受付フォーム）.fb-*
   -------------------------------------------------------------------------- */
.fb-root{padding-bottom:10px}
.fb-root .fb-wrap{max-width:860px;margin:0 auto;padding:0 24px}
.fb-office{position:relative;background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);overflow:hidden;box-shadow:var(--gd-shadow);margin-bottom:24px}
.fb-office::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--gd-blue),var(--gd-sky))}
.fb-office-inner{display:flex;gap:24px;align-items:center;padding:30px 34px}
@media(max-width:600px){.fb-office-inner{flex-direction:column;text-align:center;padding:26px 22px}}
.fb-office-photo{width:120px;height:88px;border-radius:12px;overflow:hidden;flex-shrink:0;background:linear-gradient(150deg,var(--gd-blue),var(--gd-blue-dark));display:flex;align-items:center;justify-content:center;color:#fff;font-family:"Zen Maru Gothic";font-size:2rem;font-weight:700}
.fb-office-photo img{width:100%;height:100%;object-fit:cover}
.fb-office-body{flex:1}
.fb-office-catch{font-size:.78rem;color:var(--gd-blue-dark);font-weight:700;background:var(--gd-blue-light);display:inline-block;padding:4px 12px;border-radius:999px;margin-bottom:8px}
.fb-office-name{font-family:"Zen Maru Gothic";font-size:1.35rem;font-weight:700;line-height:1.4}
.fb-office-tel{margin-top:12px;font-size:.84rem;color:var(--gd-ink-soft)}
.fb-office-tel a{color:var(--gd-blue-dark);text-decoration:none;font-weight:700}
.fb-office-tel .fb-num{font-family:"Zen Maru Gothic";font-size:1.15rem;color:var(--gd-blue);font-weight:700}
.fb-card{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);padding:36px 40px;box-shadow:var(--gd-shadow-soft);margin-bottom:50px}
@media(max-width:600px){.fb-card{padding:28px 22px}}
.fb-card h2{font-family:"Zen Maru Gothic";font-size:1.4rem;font-weight:700;margin:0 0 8px;text-align:center}
.fb-card .fb-lead{font-size:.88rem;color:var(--gd-ink-soft);text-align:center;margin:0 0 14px}
.fb-secure{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;font-size:.74rem;color:var(--gd-ink-soft);background:var(--gd-bg);border-radius:10px;padding:12px 16px;margin-bottom:28px}
.fb-free-banner{display:block;width:fit-content;background:var(--gd-green);color:#fff;font-weight:700;font-size:.76rem;padding:5px 14px;border-radius:999px;margin:0 auto 18px;font-family:"Zen Maru Gothic";text-align:center}
/* MW WP Form 出力 */
.fb-form-body table{width:100%;border-collapse:collapse;margin:0 0 8px}
.fb-form-body table th{text-align:left;vertical-align:top;padding:16px 8px 16px 0;width:200px;font-size:.9rem;font-weight:700;color:var(--gd-ink)}
@media(max-width:600px){.fb-form-body table,.fb-form-body tbody,.fb-form-body tr,.fb-form-body th,.fb-form-body td{display:block;width:100%}.fb-form-body table th{padding:18px 0 8px}}
.fb-form-body table td{padding:14px 0;vertical-align:top}
.fb-form-body table tr{border-bottom:1px solid var(--gd-line)}
.fb-form-body .his{display:inline-block;background:var(--gd-alert);color:#fff;font-size:.66rem;font-weight:700;padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle;font-family:"Zen Maru Gothic"}
.fb-form-body input[type=text],.fb-form-body input[type=email],.fb-form-body input[type=tel],.fb-form-body textarea{width:100%;border:1px solid var(--gd-line);border-radius:11px;padding:13px 15px;font-size:1rem;font-family:inherit;background:#fdfefe;transition:.15s;box-sizing:border-box}
.fb-form-body input[type=text]:focus,.fb-form-body input[type=email]:focus,.fb-form-body input[type=tel]:focus,.fb-form-body textarea:focus{outline:none;border-color:var(--gd-blue);background:#fff;box-shadow:0 0 0 3px var(--gd-blue-light)}
.fb-form-body textarea{line-height:1.7;resize:vertical}
.fb-form-body td span{display:block;font-size:.76rem;color:var(--gd-ink-soft);margin-top:6px}
.fb-form-body .error{color:var(--gd-alert);font-size:.8rem;font-weight:700;margin-top:6px;display:block}
.fb-form-body .confirmingTxt{text-align:center;font-size:.88rem;margin:24px 0;color:var(--gd-ink)}
.fb-form-body .confirmingTxt a{color:var(--gd-blue);text-decoration:underline}
.fb-form-body .confirmingTxt input[type=checkbox]{width:18px;height:18px;vertical-align:middle;margin-right:6px;accent-color:var(--gd-blue)}
.fb-form-body .submit{text-align:center;margin-top:8px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.fb-form-body .submit input[type=submit],.fb-form-body .submit button{background:var(--gd-blue);color:#fff;border:0;border-radius:13px;padding:16px 40px;font-size:1.02rem;font-weight:700;font-family:inherit;cursor:pointer;transition:.2s;box-shadow:var(--gd-shadow)}
.fb-form-body .submit input[type=submit]:hover,.fb-form-body .submit button:hover{background:var(--gd-blue-dark);transform:translateY(-2px)}
.fb-form-body .submit input[name*="back"],.fb-form-body .submit input[value="戻る"]{background:#fff;color:var(--gd-blue-dark);border:1px solid var(--gd-line);box-shadow:none}
.fb-form-body .submit input[name*="back"]:hover,.fb-form-body .submit input[value="戻る"]:hover{background:var(--gd-bg);border-color:var(--gd-blue);transform:none}
.mw_wp_form_preview .fb-form-body table td{font-weight:700;color:var(--gd-ink)}
.mw_wp_form_complete .fb-form-body{font-size:1rem;color:var(--gd-ink-soft);text-align:center;line-height:1.9}

/* --------------------------------------------------------------------------
   15. 事務所固有の料金注釈（一覧カード用 .jg-fee-notes）
   -------------------------------------------------------------------------- */
.jg-fee-notes{background:var(--gd-bg);border:1px solid var(--gd-line);border-radius:10px;padding:10px 14px;margin-top:10px;font-size:.72rem;color:var(--gd-ink-soft);line-height:1.7}
.jg-fee-notes p{margin:0 0 4px}
.jg-fee-notes p:last-child{margin-bottom:0}

/* ==========================================================================
   16. 既存 style.css の汎用色指定への上書き（CTA/ヒーロー系の色保護）
   - 青背景コンテナ内の文字は強制白
   - 白背景ボタン内の文字は強制青
   - 青背景ボタン内の文字は強制白
   ========================================================================== */

/* --- 青背景コンテナ：内部のテキスト・見出し・リンクをすべて白に強制 --- */
.tp-hero, .tp-merit, .pf-hero, .al-hero, .sr-hero, .gd-arc-hero,
.so-guide-cta, .pf-guide-cta, .gd-arc-cta, .gd-inline-cta,
.gd-side-area, .sl-cta-top,
.tp-final-cta-blue /* 念のための保険セレクタ */ {
  /* このコンテナ内の見出し・段落・リンク・spanを白に */
}
.tp-hero h1, .tp-hero p, .tp-hero .tp-sub, .tp-hero .tp-badge,
.tp-merit h2, .tp-merit h3, .tp-merit p, .tp-merit .tp-num,
.pf-hero h1, .pf-hero p, .pf-hero .pf-pref, .pf-hero .pf-stats .pf-s b, .pf-hero .pf-stats .pf-s span,
.al-hero h1, .al-hero p, .al-hero .al-label,
.sr-hero h1, .sr-hero h1 em, .sr-hero .sr-label,
.gd-arc-hero h1, .gd-arc-hero p, .gd-arc-label,
.so-guide-cta h2, .so-guide-cta p, .so-guide-cta .so-free-banner,
.pf-guide-cta h2, .pf-guide-cta p, .pf-guide-cta .pf-free-banner,
.gd-arc-cta h2, .gd-arc-cta p, .gd-arc-cta .gd-free,
.gd-inline-cta h3, .gd-inline-cta p, .gd-inline-cta .gd-free,
.gd-side-area .gd-sa-ttl, .gd-side-area .gd-sa-lead,
.sl-cta-top .sl-t,
.sl-free-banner /* 緑の相談無料バナー */ {
  color:#fff !important;
}

/* tp-hero のハイライト「無料」は青のままにする（背景白ハロー付き） */
.tp-hero h1 .tp-hl{color:var(--gd-blue) !important}
/* tp-hero のバッジは青背景の上の白カード→青文字 */
.tp-hero .tp-badge{color:var(--gd-blue-dark) !important;background:#fff}

/* --- 白背景ボタン（青背景CTAの中の白いCTAボタン）：青文字を強制 --- */
.so-guide-cta .so-btn,
.pf-guide-cta .pf-btn,
.gd-arc-cta .gd-btn,
.gd-inline-cta .gd-btn,
.tp-btn-ghost,
.tp-final-cta .tp-btn-ghost,
.gd-side-area .gd-sa-btn {
  color:var(--gd-blue-dark) !important;background:#fff !important;
}
.so-guide-cta .so-btn:hover,
.pf-guide-cta .pf-btn:hover,
.gd-arc-cta .gd-btn:hover,
.gd-inline-cta .gd-btn:hover,
.tp-btn-ghost:hover,
.gd-side-area .gd-sa-btn:hover{color:var(--gd-blue-dark) !important;background:#fff !important;transform:translateY(-2px)}

/* --- 青背景ボタン（プライマリ）：白文字を強制 --- */
.tp-btn-primary,
.gd-head-cta,
.pf-law-btn, .al-law-btn, .sr-law-btn,
.sl-mail-btn, .fb-form-body .submit input[type=submit], .fb-form-body .submit button:not([name*="back"]):not([value="戻る"]),
.sl-mobile-cta .sl-m-tel, .sl-mobile-cta .sl-m-mail{
  color:#fff !important;
}
.tp-btn-primary:hover, .pf-law-btn:hover, .al-law-btn:hover, .sr-law-btn:hover{color:#fff !important}

/* --- 事務所ページ右カラム：電話ボタン（白背景＋青枠）は青文字、ホバーで反転 --- */
.sl-tel-btn{color:var(--gd-blue-dark) !important}
.sl-tel-btn .sl-num{color:var(--gd-blue-dark) !important}
.sl-tel-btn:hover, .sl-tel-btn:hover .sl-num, .sl-tel-btn:hover .sl-time{color:#fff !important}

/* --- メリット帯（青背景）内 --- */
.tp-merit .tp-merit-card h3, .tp-merit .tp-merit-card p{color:#fff !important}
.tp-merit .tp-merit-card .tp-num{color:var(--gd-sky) !important}

/* --- フッター内のリンク色（既存 a:link から保護） --- */
.gd-footer .gd-logo, .gd-footer .gd-logo span{color:#fff !important}
.gd-footer-col h4{color:#fff !important}

/* ==========================================================================
   17-X. 旧style.css の #entry h2/h3 等が新デザインを上書きするのを防ぐ
        本文ラッパ id="entry" を外したが、念のためスペシフィシティでも対策
   ========================================================================== */
.gd-article-root .gd-article-body h2{
  font-family:"Zen Maru Gothic" !important;font-size:1.5rem;font-weight:700;line-height:1.5;
  margin:48px 0 20px;padding:16px 22px;
  background:linear-gradient(90deg,var(--gd-blue-light),transparent) !important;
  border-left:5px solid var(--gd-blue);border-radius:0 10px 10px 0;
  color:var(--gd-ink) !important;
  position:static !important;
}
.gd-article-root .gd-article-body h2::after,
.gd-article-root .gd-article-body h2::before{display:none !important;content:none !important}
.gd-article-root .gd-article-body h2 span{color:inherit !important}
.gd-article-root .gd-article-body h2:first-child{margin-top:0}
.gd-article-root .gd-article-body h3{
  font-family:"Zen Maru Gothic" !important;font-size:1.18rem;font-weight:700;line-height:1.6;
  margin:32px 0 14px !important;padding:10px 16px !important;
  background:var(--gd-bg) !important;
  border-left:4px solid var(--gd-blue);border-bottom:0 !important;
  border-radius:0 8px 8px 0;
  color:var(--gd-ink) !important;
}
.gd-article-root .gd-article-body h4{
  margin:24px 0 10px !important;padding:0 0 6px !important;
  font-size:1.05rem;font-weight:700;
  border-bottom:2px dotted var(--gd-line) !important;
  color:var(--gd-ink) !important;
}
.gd-article-root .gd-article-body table th{
  color:var(--gd-ink) !important;
}
.gd-article-root .gd-article-cat{
  background:var(--gd-blue) !important;color:#fff !important;
  display:inline-block;font-size:.74rem;font-weight:700;padding:5px 14px;border-radius:999px;
  margin-bottom:16px;text-decoration:none !important;
}
.gd-article-root .gd-article-cat:hover{color:#fff !important;text-decoration:none !important}

/* ==========================================================================
   17-Y. 都道府県ページ・市区ファインダー（事務所が紐づく市区のチップス）
        v1.0.1で追加。本番renew.cssに含まれていない可能性があるので末尾に再掲
   ========================================================================== */
.pf-city-finder{background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);
  padding:28px 32px;margin-bottom:28px;box-shadow:var(--gd-shadow-soft)}
@media(max-width:560px){.pf-city-finder{padding:22px 20px}}
.pf-cf-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;
  padding-bottom:14px;border-bottom:2px solid var(--gd-bg)}
.pf-cf-badge{background:var(--gd-blue);color:#fff;font-size:.74rem;font-weight:700;
  padding:5px 13px;border-radius:999px;letter-spacing:.05em}
.pf-cf-head h3{margin:0;font-size:1.15rem;font-weight:700;color:var(--gd-ink);line-height:1.5}
@media(max-width:560px){.pf-cf-head h3{font-size:1rem}}
.pf-cf-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
@media(max-width:560px){.pf-cf-chips{grid-template-columns:repeat(2,1fr);gap:8px}}
.pf-cf-chips a{display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:var(--gd-bg);border:1px solid var(--gd-line);border-radius:11px;
  padding:10px 14px;color:var(--gd-ink);text-decoration:none;transition:.2s;font-weight:700;font-size:.9rem}
.pf-cf-chips a:hover{background:var(--gd-blue-light);border-color:var(--gd-blue);color:var(--gd-blue-dark);transform:translateY(-1px)}
.pf-cf-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-cf-count{background:#fff;border:1px solid var(--gd-line);color:var(--gd-ink-soft);
  font-size:.72rem;padding:1px 8px;border-radius:999px;flex-shrink:0;font-weight:700}
.pf-cf-chips a:hover .pf-cf-count{border-color:var(--gd-blue);color:var(--gd-blue)}

/* 市区ファインダー：現在の市区をハイライト（taxonomy-bengo_city.php用） */
.pf-cf-chips a.pf-cf-current{background:var(--gd-blue) !important;border-color:var(--gd-blue);color:#fff !important;pointer-events:none}
.pf-cf-chips a.pf-cf-current .pf-cf-count{background:rgba(255,255,255,.25);border-color:transparent;color:#fff !important}

/* ==========================================================================
   21. トップヒーロー：2カラム化（左：テキスト、右：写真）
        v1.0.4以降は中央寄せ単カラム→2カラムに変更。文字コントラストも改善
   ========================================================================== */
.tp-hero{padding:50px 0 60px !important}
.tp-hero-inner{display:grid !important;grid-template-columns:1fr 1fr;gap:48px;align-items:center;text-align:left !important;max-width:1180px !important}
@media(max-width:900px){
  .tp-hero-inner{grid-template-columns:1fr;gap:32px;text-align:center !important}
}
.tp-hero-text{min-width:0}
.tp-hero-text .tp-badge{display:inline-block}
.tp-hero-text h1{font-size:2.4rem !important;color:var(--gd-ink) !important;margin:0 0 18px}
@media(max-width:900px){.tp-hero-text h1{font-size:2rem !important}}
@media(max-width:560px){.tp-hero-text h1{font-size:1.7rem !important}}
.tp-hero-text .tp-sub{margin:0 0 28px !important;max-width:none !important;color:var(--gd-ink-soft) !important;font-size:.98rem;line-height:1.85}
@media(max-width:900px){.tp-hero-text .tp-sub{margin-left:auto !important;margin-right:auto !important;max-width:680px !important}}
.tp-hero-text .tp-actions{justify-content:flex-start !important}
@media(max-width:900px){.tp-hero-text .tp-actions{justify-content:center !important}}
.tp-hero-text .tp-hero-stats{justify-content:flex-start !important;gap:36px;margin-top:36px}
@media(max-width:900px){.tp-hero-text .tp-hero-stats{justify-content:center !important}}

/* 右カラムの画像 */
.tp-hero-image{position:relative;min-width:0}
.tp-hero-image img{width:100%;height:auto;display:block;border-radius:24px;
  box-shadow:0 24px 60px -20px rgba(21,115,212,.35);
  aspect-ratio:4/3;object-fit:cover;background:#eaf3fd}
@media(max-width:900px){
  .tp-hero-image img{max-width:520px;margin:0 auto;aspect-ratio:16/10}
}

/* H1ハイライト下線の色を強化（薄水色背景でも目立つ） */
.tp-hero .tp-hl{color:var(--gd-blue) !important;font-weight:700}
.tp-hero .tp-hl::after{background:rgba(61,155,232,.35) !important;height:12px !important;bottom:3px !important}

/* 既存の上書きルール（750行台）の中央寄せをこのヒーローに限り解除 */
.tp-hero .tp-hero-inner{text-align:left}
@media(max-width:900px){.tp-hero .tp-hero-inner{text-align:center}}

/* ==========================================================================
   22. <a>でラップされたカードのホバー下線除去
        ブラウザデフォルトの :hover の text-decoration:underline が、
        カード全体をリンク化したときに中のテキスト全てに伝播するのを防ぐ
   ========================================================================== */
a.pf-law-card, a.pf-law-card:hover,
a.pf-office-row, a.pf-office-row:hover,
a.al-law-card, a.al-law-card:hover,
a.al-office-row, a.al-office-row:hover,
a.sr-law-card, a.sr-law-card:hover,
a.tp-office-card, a.tp-office-card:hover,
a.tp-cat-card, a.tp-cat-card:hover{
  text-decoration:none !important;
}
/* リンク化カード内部のあらゆるテキスト要素にも下線を出させない */
a.pf-law-card *, a.pf-law-card:hover *,
a.pf-office-row *, a.pf-office-row:hover *,
a.al-law-card *, a.al-law-card:hover *,
a.al-office-row *, a.al-office-row:hover *,
a.sr-law-card *, a.sr-law-card:hover *,
a.tp-office-card *, a.tp-office-card:hover *,
a.tp-cat-card *, a.tp-cat-card:hover *{
  text-decoration:none !important;
}

/* ==========================================================================
   23. 記事本文：見出し余白の調整（v1.0.5→1.0.6でタイトに）
        v1.0.2で追加した上書きルールをさらに微調整
   ========================================================================== */
.gd-article-root .gd-article-body h2{
  margin:36px 0 16px !important;
  padding:10px 18px !important;
  font-size:1.4rem !important;
}
@media(max-width:560px){
  .gd-article-root .gd-article-body h2{
    margin:28px 0 14px !important;
    padding:9px 14px !important;
    font-size:1.2rem !important;
  }
}
.gd-article-root .gd-article-body h2:first-child{margin-top:0 !important}
.gd-article-root .gd-article-body h3{
  margin:24px 0 10px !important;
  padding:7px 14px !important;
  font-size:1.08rem !important;
}
.gd-article-root .gd-article-body h4{
  margin:18px 0 8px !important;
  padding:0 0 5px !important;
  font-size:1rem !important;
}
.gd-article-root .gd-article-body h5{
  margin:16px 0 6px;
  font-size:.95rem;
  font-weight:700;
  color:var(--gd-blue-dark);
}
.gd-article-root .gd-article-body p{
  margin:0 0 14px;
  line-height:1.85;
}
.gd-article-root .gd-article-body p + p{margin-top:0}

/* ==========================================================================
   24. 記事本文：この記事のポイント（.point.mask01）の新デザイン
        既存HTMLそのままに、CSSだけで青系・白背景の高級感あるカードに置換
   ========================================================================== */
.gd-article-root .gd-article-body .point{
  background:#fff !important;
  border:1px solid var(--gd-line) !important;
  border-radius:18px !important;
  padding:26px 30px !important;
  margin:0 0 28px !important;
  box-shadow:var(--gd-shadow-soft) !important;
  position:relative;
  background-image:none !important;  /* 旧テーマの背景画像（mask01等）を完全に消す */
}
@media(max-width:560px){
  .gd-article-root .gd-article-body .point{padding:22px 20px !important}
}
.gd-article-root .gd-article-body .point::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:5px;
  background:linear-gradient(90deg,var(--gd-blue),var(--gd-sky));
  border-radius:18px 18px 0 0;
}
.gd-article-root .gd-article-body .point .ttl{
  font-family:"Zen Maru Gothic" !important;
  font-size:1.05rem !important;
  font-weight:700 !important;
  color:var(--gd-ink) !important;
  margin:0 0 18px !important;
  padding:0 0 12px !important;
  text-align:left !important;
  background:none !important;
  border:0 !important;
  border-bottom:2px solid var(--gd-bg) !important;
  letter-spacing:.04em;
  display:flex;
  align-items:center;
  gap:10px;
}
.gd-article-root .gd-article-body .point .ttl::before{
  content:"✓";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;height:26px;
  background:var(--gd-blue);
  color:#fff;
  border-radius:50%;
  font-size:.85rem;
  font-weight:700;
  flex-shrink:0;
}
.gd-article-root .gd-article-body .point ol{
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
  counter-reset:point-counter;
}
.gd-article-root .gd-article-body .point ol li{
  position:relative;
  padding:10px 0 10px 38px !important;
  font-size:.95rem;
  line-height:1.75;
  color:var(--gd-ink-soft);
  list-style:none !important;
  background:none !important;
  border-bottom:1px dashed var(--gd-line);
  counter-increment:point-counter;
}
.gd-article-root .gd-article-body .point ol li:last-child{border-bottom:0}
.gd-article-root .gd-article-body .point ol li::before{
  content:counter(point-counter);
  position:absolute;
  left:0;top:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;height:26px;
  background:var(--gd-blue-light);
  color:var(--gd-blue-dark);
  border-radius:50%;
  font-size:.78rem;
  font-weight:700;
  flex-shrink:0;
}

/* ==========================================================================
   25. 記事本文：自前TOC（目次）.gd-toc
   ========================================================================== */
.gd-toc{
  background:var(--gd-bg);
  border:1px solid var(--gd-line);
  border-radius:14px;
  padding:22px 28px;
  margin:0 0 32px;
}
@media(max-width:560px){.gd-toc{padding:18px 20px}}
.gd-toc-title{
  font-family:"Zen Maru Gothic";
  font-weight:700;
  font-size:1rem;
  color:var(--gd-ink);
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:2px solid var(--gd-line);
  display:flex;
  align-items:center;
  gap:8px;
}
.gd-toc-title::before{
  content:"📋";
  font-size:1rem;
}
.gd-toc-list{
  list-style:none !important;
  counter-reset:toc-counter;
  margin:0 !important;
  padding:0 !important;
}
.gd-toc-list li{
  counter-increment:toc-counter;
  position:relative;
  padding:8px 0 8px 36px;
  list-style:none !important;
  margin:0 !important;
  border-bottom:1px dashed transparent;
}
.gd-toc-list li::before{
  content:counter(toc-counter);
  position:absolute;
  left:0;top:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;height:24px;
  background:var(--gd-blue-light);
  color:var(--gd-blue-dark);
  border-radius:50%;
  font-size:.72rem;
  font-weight:700;
}
.gd-toc-list li a{
  color:var(--gd-ink-soft) !important;
  text-decoration:none !important;
  font-size:.92rem;
  line-height:1.55;
  display:block;
  transition:color .15s;
}
.gd-toc-list li a:hover{color:var(--gd-blue) !important}

/* TOC Plus の旧目次ボックスを非表示（プラグイン使用を停止しても、
   キャッシュ等で残った場合の保険として） */
.gd-article-root .gd-article-body #toc_container,
#toc_container{display:none !important}

/* ==========================================================================
   26. v1.0.7：旧style.css撤去に伴う最低限のリセット補完
        旧style.css側にあった html5 reset 相当の処理を移植
   ========================================================================== */
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,
del,dfn,em,ins,kbd,q,samp,small,strong,sub,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,
legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,
figure,footer,header,hgroup,menu,main,nav,section,summary,time,mark,audio,video{
  margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;
}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
main{display:block}
table{border-collapse:collapse;border-spacing:0}
img{vertical-align:top;border:0}
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:0;padding:0}
button{border:none;cursor:pointer}
.cf::after{content:"";display:block;clear:both}

/* 記事本文の通常のolリスト：list-style復活（記事本文は番号付きリストが普通） */
.gd-article-root .gd-article-body ol,
.gd-article-root .gd-article-body ul{
  list-style-position:outside;
  margin:0 0 18px 1.6em;
  padding:0;
}
.gd-article-root .gd-article-body ol{list-style-type:decimal}
.gd-article-root .gd-article-body ul{list-style-type:disc}
.gd-article-root .gd-article-body li{
  margin-bottom:6px;
  line-height:1.85;
  color:var(--gd-ink-soft);
}
/* ただし .point .ol と .gd-toc-list は番号無し（独自カウンタを使用） */
.gd-article-root .gd-article-body .point ol{list-style:none !important;margin-left:0 !important}
.gd-article-root .gd-article-body .point ol li{margin-bottom:0}
.gd-article-root .gd-article-body .gd-toc-list{list-style:none !important;margin-left:0 !important}

/* 記事本文中のテーブル */
.gd-article-root .gd-article-body table{
  width:100%;margin:0 0 20px;
  border:1px solid var(--gd-line);
  font-size:.92rem;
}
.gd-article-root .gd-article-body table caption{
  caption-side:top;
  text-align:left;
  font-weight:700;
  padding:8px 0;
  color:var(--gd-ink);
}
.gd-article-root .gd-article-body table th,
.gd-article-root .gd-article-body table td{
  padding:12px 16px;
  border-bottom:1px solid var(--gd-line);
  vertical-align:top;
  text-align:left;
  line-height:1.7;
}
.gd-article-root .gd-article-body table th{
  background:var(--gd-bg);
  font-weight:700;
  width:140px;
  color:var(--gd-ink);
}
@media(max-width:560px){
  .gd-article-root .gd-article-body table th{width:auto;display:block;border-bottom:0}
  .gd-article-root .gd-article-body table td{display:block}
}

/* ==========================================================================
   27. v1.0.8：パンくずリストの余白とスマホ表示の調整
   ========================================================================== */
.gd-breadcrumbs{
  padding:14px 0 12px !important;
  margin-bottom:4px;
}
@media(max-width:560px){
  .gd-breadcrumbs{
    padding:10px 0 8px !important;
  }
  /* スマホはワンライン（折り返さずに横スクロール可） */
  .gd-breadcrumbs ul{
    flex-wrap:nowrap !important;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;  /* Firefox */
    padding-bottom:2px;
  }
  .gd-breadcrumbs ul::-webkit-scrollbar{display:none}  /* Chrome/Safari */
  .gd-breadcrumbs li{
    flex-shrink:0;  /* 各リストアイテムを縮ませない */
    white-space:nowrap;
  }
  .gd-breadcrumbs li:last-child{
    /* 最後の項目（現在ページ名）が長い場合の処理 */
    padding-right:8px;
  }
}

/* ==========================================================================
   28. v1.0.9：lawカード画像の見切れ対策＋電話/メール/詳細の3ボタンCTA
        archive-law.php に先行適用
   ========================================================================== */

/* カードラッパ：a → div に変えたため、card自体のホバーは控えめに */
.al-law-card{
  /* 既存ルールをそのまま継承 */
}

/* 画像エリア：aspect-ratio:4/5、object-fit:contain で全体表示 */
.al-law-photo{
  aspect-ratio:4/5 !important;
  min-height:0 !important;
  background:var(--gd-blue-light) !important;
}
.al-law-photo img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  background:var(--gd-blue-light);
}
@media(max-width:560px){
  .al-law-photo{aspect-ratio:16/10 !important}  /* スマホは横長 */
}

/* タイトルリンク化 */
.al-law-name a{color:inherit;text-decoration:none}
.al-law-name a:hover{color:var(--gd-blue)}

/* CTAバー：3ボタン横並び（電話・メール・詳細） */
.al-law-cta{
  display:grid;
  grid-template-columns:1fr 1fr 1.5fr;
  gap:8px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--gd-line);
}
@media(max-width:560px){
  .al-law-cta{
    grid-template-columns:1fr 1fr;
  }
  .al-law-cta .al-cta-detail{grid-column:1 / -1}
}
.al-law-cta a{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:11px 8px;
  border-radius:10px;
  font-weight:700;
  font-size:.88rem;
  text-decoration:none !important;
  transition:.15s;
  white-space:nowrap;
}
.al-cta-tel{
  background:#0F6E56;
  color:#fff !important;
}
.al-cta-tel:hover{background:#085041;transform:translateY(-1px)}
.al-cta-mail{
  background:#fff;
  color:#0F6E56 !important;
  border:1.5px solid #0F6E56;
}
.al-cta-mail:hover{background:#E1F5EE}
.al-cta-detail{
  background:var(--gd-blue);
  color:#fff !important;
}
.al-cta-detail:hover{background:var(--gd-blue-dark)}
.al-cta-icon{font-size:.95rem;flex-shrink:0}
.al-cta-label{font-size:.85rem}

/* lawカードに electrical hover effect は控えめに（divラップなので） */
.al-law-card{cursor:default}
.al-law-card:hover{transform:none}  /* カード全体のホバー浮きを止める */

/* 既存の.al-law-foot 内の.al-law-btn は不要に（CTAバーに移動したため） */
.al-law-foot .al-law-btn{display:none}

/* ==========================================================================
   29. v1.0.10：archive-law カードの画像幅を 220px → 380px に拡大（PC版）
   ========================================================================== */
.al-law-card{
  grid-template-columns:380px 1fr !important;
}
@media(max-width:900px){
  .al-law-card{grid-template-columns:300px 1fr !important}
}
@media(max-width:680px){
  .al-law-card{grid-template-columns:1fr !important}
}

/* ==========================================================================
   30. v1.0.11：他ページのlawカードを archive-law と同等に統一
        pf-（page_todouhuken, taxonomy-bengo_city）, sr-（search）
        index.php の tp-office-card は画像見切れ対策のみ
   ========================================================================== */

/* index.phpのtp-oc-photo：見切れ対策のみ（contain化） */
.tp-oc-photo{
  aspect-ratio:4/3;
  height:auto !important;
  background:var(--gd-blue-light) !important;
}
.tp-oc-photo img{
  object-fit:contain !important;
  background:var(--gd-blue-light);
}

/* pf-law-card：page_todouhuken と taxonomy-bengo_city 共通 */
.pf-law-card{
  background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);
  overflow:hidden;box-shadow:var(--gd-shadow-soft);margin-bottom:20px;
  display:grid;grid-template-columns:380px 1fr;transition:.2s;
  cursor:default;
}
@media(max-width:900px){.pf-law-card{grid-template-columns:300px 1fr}}
@media(max-width:680px){.pf-law-card{grid-template-columns:1fr}}
.pf-law-card:hover{transform:none}  /* divラップなのでhover浮き止め */
.pf-law-photo{
  position:relative;
  aspect-ratio:4/5;
  background:var(--gd-blue-light);
  display:flex;align-items:center;justify-content:center;
  color:#9ec0e2;font-size:.8rem;overflow:hidden;
}
@media(max-width:680px){.pf-law-photo{aspect-ratio:16/10}}
.pf-law-photo img{
  width:100%;height:100%;
  object-fit:contain;
  background:var(--gd-blue-light);
}
.pf-law-name a{color:inherit;text-decoration:none}
.pf-law-name a:hover{color:var(--gd-blue)}

/* pf-law-cta：3ボタン */
.pf-law-cta{
  display:grid;
  grid-template-columns:1fr 1fr 1.5fr;
  gap:8px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--gd-line);
}
@media(max-width:560px){
  .pf-law-cta{grid-template-columns:1fr 1fr}
  .pf-law-cta .pf-cta-detail{grid-column:1 / -1}
}
.pf-law-cta a{
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 8px;border-radius:10px;
  font-weight:700;font-size:.88rem;
  text-decoration:none !important;transition:.15s;white-space:nowrap;
}
.pf-cta-tel{background:#0F6E56;color:#fff !important}
.pf-cta-tel:hover{background:#085041;transform:translateY(-1px)}
.pf-cta-mail{background:#fff;color:#0F6E56 !important;border:1.5px solid #0F6E56}
.pf-cta-mail:hover{background:#E1F5EE}
.pf-cta-detail{background:var(--gd-blue);color:#fff !important}
.pf-cta-detail:hover{background:var(--gd-blue-dark)}
.pf-cta-icon{font-size:.95rem;flex-shrink:0}
.pf-cta-label{font-size:.85rem}

/* 旧.pf-law-foot 内の.pf-law-btn は非表示 */
.pf-law-foot .pf-law-btn{display:none}

/* sr-law-card：search.php */
.sr-law-card{
  background:#fff;border:1px solid var(--gd-line);border-radius:var(--gd-radius);
  overflow:hidden;box-shadow:var(--gd-shadow-soft);margin-bottom:20px;
  display:grid;grid-template-columns:380px 1fr;transition:.2s;
  cursor:default;
}
@media(max-width:900px){.sr-law-card{grid-template-columns:300px 1fr}}
@media(max-width:680px){.sr-law-card{grid-template-columns:1fr}}
.sr-law-card:hover{transform:none}
.sr-law-photo{
  position:relative;
  aspect-ratio:4/5;
  background:var(--gd-blue-light);
  display:flex;align-items:center;justify-content:center;
  color:#9ec0e2;font-size:.8rem;overflow:hidden;
}
@media(max-width:680px){.sr-law-photo{aspect-ratio:16/10}}
.sr-law-photo img{
  width:100%;height:100%;
  object-fit:contain;
  background:var(--gd-blue-light);
}
.sr-law-name a{color:inherit;text-decoration:none}
.sr-law-name a:hover{color:var(--gd-blue)}

/* sr-law-cta：3ボタン */
.sr-law-cta{
  display:grid;
  grid-template-columns:1fr 1fr 1.5fr;
  gap:8px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--gd-line);
}
@media(max-width:560px){
  .sr-law-cta{grid-template-columns:1fr 1fr}
  .sr-law-cta .sr-cta-detail{grid-column:1 / -1}
}
.sr-law-cta a{
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 8px;border-radius:10px;
  font-weight:700;font-size:.88rem;
  text-decoration:none !important;transition:.15s;white-space:nowrap;
}
.sr-cta-tel{background:#0F6E56;color:#fff !important}
.sr-cta-tel:hover{background:#085041;transform:translateY(-1px)}
.sr-cta-mail{background:#fff;color:#0F6E56 !important;border:1.5px solid #0F6E56}
.sr-cta-mail:hover{background:#E1F5EE}
.sr-cta-detail{background:var(--gd-blue);color:#fff !important}
.sr-cta-detail:hover{background:var(--gd-blue-dark)}
.sr-cta-icon{font-size:.95rem;flex-shrink:0}
.sr-cta-label{font-size:.85rem}

.sr-law-foot .sr-law-btn{display:none}

/* ==========================================================================
   31. v1.0.13：single-office の「同じエリアで弁護士を探す」セクション
        CSSが未定義だったため新規追加
   ========================================================================== */
.so-area-search{
  background:#fff;
  border:1px solid var(--gd-line);
  border-radius:var(--gd-radius);
  padding:24px 28px;
  margin:32px 0;
  box-shadow:var(--gd-shadow-soft);
}
@media(max-width:560px){.so-area-search{padding:20px 18px}}
.so-area-search-head{
  font-family:"Zen Maru Gothic";
  font-size:1.1rem;
  font-weight:700;
  color:var(--gd-ink);
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:2px solid var(--gd-bg);
  display:flex;
  align-items:center;
  gap:10px;
}
.so-area-search-head::before{
  content:"";
  display:inline-block;
  width:4px;height:20px;
  background:var(--gd-blue);
  border-radius:2px;
  flex-shrink:0;
}
.so-area-search-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
@media(max-width:560px){.so-area-search-links{grid-template-columns:1fr}}
.so-area-search-btn{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 18px;
  background:var(--gd-bg);
  border:1px solid var(--gd-line);
  border-radius:12px;
  color:var(--gd-ink);
  text-decoration:none !important;
  font-weight:700;
  font-size:.95rem;
  transition:.2s;
}
.so-area-search-btn:hover{
  background:var(--gd-blue-light);
  border-color:var(--gd-blue);
  color:var(--gd-blue-dark);
  transform:translateY(-1px);
}
.so-area-search-icon{
  font-size:1.1rem;
  flex-shrink:0;
}
.so-area-search-label{
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.so-area-search-arw{
  flex-shrink:0;
  font-size:1.1rem;
  color:var(--gd-blue);
  font-weight:700;
}

/* ==========================================================================
   32. v1.0.15：lawカードに住所表示を追加（都道府県・市区ページ）
   ========================================================================== */
.pf-law-address{
  font-size:.85rem;
  color:var(--gd-ink-soft);
  line-height:1.55;
  margin-bottom:10px;
  display:flex;
  gap:6px;
  align-items:flex-start;
}
.pf-law-address::first-letter{
  color:var(--gd-blue);  /* 📍 アイコンを青に */
}

/* ==========================================================================
   33. v1.0.16：トップページ下部のSEOテキスト＋FAQセクション
   ========================================================================== */
.tp-seo{
  padding:50px 0 40px;
}
.tp-seo h2{
  font-family:"Zen Maru Gothic";
  font-size:1.55rem;
  font-weight:700;
  color:var(--gd-ink);
  margin:48px 0 22px;
  padding:14px 0 14px 22px;
  border-left:6px solid var(--gd-blue);
  line-height:1.5;
}
@media(max-width:560px){
  .tp-seo h2{font-size:1.25rem;padding:10px 0 10px 16px;margin:36px 0 18px}
}
.tp-seo h2:first-child{margin-top:0}
.tp-seo h3{
  font-size:1.15rem;
  font-weight:700;
  color:var(--gd-ink);
  margin:32px 0 12px;
  padding-left:14px;
  border-left:4px solid var(--gd-sky);
  line-height:1.55;
}
@media(max-width:560px){.tp-seo h3{font-size:1.05rem}}
.tp-seo h4{
  font-size:1rem;
  font-weight:700;
  color:var(--gd-blue-dark);
  margin:0 0 10px;
}
.tp-seo p{
  margin:0 0 16px;
  line-height:1.95;
  color:var(--gd-ink-soft);
  font-size:.95rem;
}

/* 3基準の比較 */
.tp-seo-criteria{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:24px;
}
@media(max-width:880px){.tp-seo-criteria{grid-template-columns:1fr}}
.tp-sc-item{
  background:#fff;
  border:1px solid var(--gd-line);
  border-radius:14px;
  padding:22px 24px;
  box-shadow:var(--gd-shadow-soft);
}
.tp-sc-item p{margin:0;font-size:.9rem;line-height:1.85}

/* FAQ */
.tp-faq{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:24px;
}
.tp-faq-item{
  background:#fff;
  border:1px solid var(--gd-line);
  border-radius:14px;
  padding:20px 26px;
  box-shadow:var(--gd-shadow-soft);
}
@media(max-width:560px){.tp-faq-item{padding:18px 20px}}
.tp-faq-q{
  font-weight:700;
  color:var(--gd-ink);
  font-size:1rem;
  line-height:1.6;
  padding-bottom:12px;
  margin-bottom:12px;
  border-bottom:1px dashed var(--gd-line);
}
.tp-faq-a{
  color:var(--gd-ink-soft);
  line-height:1.9;
  font-size:.92rem;
}

/* ==========================================================================
   34. v1.0.17 → v1.0.18：ヘッダーロゴ（PNGアイコン＋CSSテキスト）
   ========================================================================== */
.gd-logo-img{
  display:inline-flex;
  align-items:center;
  gap:12px;
  text-decoration:none !important;
  line-height:1;
}
.gd-logo-icon{
  display:block;
  width:48px;
  height:48px;
  flex-shrink:0;
}
.gd-logo-text{
  font-family:"Zen Maru Gothic","Hiragino Sans","Yu Gothic",sans-serif;
  font-weight:700;
  font-size:1.4rem;
  color:#1A2A40;
  letter-spacing:0.04em;
  white-space:nowrap;
}
.gd-logo-text-accent{
  color:#1573D4;
}
@media(max-width:560px){
  .gd-logo-icon{width:36px;height:36px}
  .gd-logo-text{font-size:1.05rem}
  .gd-logo-img{gap:8px}
}
