/* ========================================
   解決事例ページ共通スタイル
   ======================================== */

/* 依頼者名バー */
.jirei-client {
  background: #f0f5e8;
  border-left: 5px solid #6a9e2f;
  padding: 10px 16px;
  font-weight: bold;
  font-size: 1.1em;
  margin-bottom: 18px;
  color: #333;
}

/* 事例サマリーテーブル */
.jirei-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
  font-size: 0.97em;
}
.jirei-table th,
.jirei-table td {
  border: 1px solid #ccc;
  padding: 9px 12px;
  text-align: left;
  vertical-align: middle;
}
.jirei-table th {
  background: #f5f5f5;
  width: 30%;
  white-space: nowrap;
  color: #444;
  font-weight: bold;
}
.jirei-table .jirei-price {
  color: #cc0000;
  font-weight: bold;
  font-size: 1.2em;
}
.jirei-table a {
  color: #3a7a00;
  text-decoration: underline;
}

/* セクション見出し */
.jirei-section {
  background: #f7f7f7;
  border-left: 4px solid #888;
  padding: 7px 14px;
  margin: 22px 0 10px;
  font-weight: bold;
  font-size: 1.0em;
  color: #444;
}

/* 本文 */
.jirei-body {
  line-height: 1.8;
  margin-bottom: 14px;
  color: #333;
}
.jirei-body .hl-red  { color: #cc0000; font-weight: bold; }
.jirei-body .hl-yellow { background: linear-gradient(transparent 60%, #ffe066 60%); }
.jirei-body .hl-bold { font-weight: bold; }

/* 弁護士コメント欄 */
.jirei-comment {
  margin-bottom: 14px;
  line-height: 1.8;
  color: #333;
}
.jirei-comment .hl-red    { color: #cc0000; font-weight: bold; }
.jirei-comment .hl-yellow { background: linear-gradient(transparent 60%, #ffe066 60%); }
.jirei-comment .hl-bold   { font-weight: bold; }

/* 一覧に戻るボタン */
.back-link {
  margin-top: 24px;
  margin-bottom: 30px;
  text-align: center;
}
.back-link a {
  display: inline-block;
  padding: 9px 24px;
  background: #6a9e2f;
  color: #fff;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.95em;
}
.back-link a:hover { background: #558020; }

/* ========================================
   解決事例一覧カード
   ======================================== */
.jirei-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.jirei-list li {
  border: 1px solid #ddd;
  border-left: 5px solid #6a9e2f;
  border-radius: 4px;
  margin-bottom: 16px;
  background: #fff;
  transition: box-shadow 0.15s;
}
.jirei-list li:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.jirei-list a {
  display: block;
  padding: 14px 16px;
  text-decoration: none;
  color: #333;
}
.jirei-list .jirei-title {
  font-size: 1.05em;
  font-weight: bold;
  color: #2a5a00;
  margin-bottom: 8px;
}
.jirei-list .jirei-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.88em;
}
.jirei-tag {
  background: #f0f5e8;
  border: 1px solid #b0cc80;
  border-radius: 3px;
  padding: 2px 8px;
  color: #444;
  white-space: nowrap;
}
.jirei-tag.price {
  background: #fff0f0;
  border-color: #e08080;
  color: #cc0000;
  font-weight: bold;
}
.jirei-tag.grade {
  background: #f0f0ff;
  border-color: #9090cc;
  color: #333;
}

/* ========================================
   お問い合わせCTAボックス
   ======================================== */

/* キャッチコピー帯 */
.cta-catchcopy {
  background: linear-gradient(135deg, #1a4200 0%, #3a7a00 60%, #5aaa10 100%);
  color: #fff;
  font-size: 1.4em;
  font-weight: bold;
  letter-spacing: 3px;
  padding: 13px 14px;
  margin: -22px -20px 20px;
  border-radius: 4px 4px 0 0;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.4);
}
.cta-catchcopy .cta-accent {
  color: #ffe84d;
  font-size: 1.15em;
  text-shadow: 0 0 8px rgba(255,220,0,0.6), 1px 1px 3px rgba(0,0,0,0.4);
}

.cta-box {
  background: #f0f5e8;
  border: 3px solid #3a7a00;
  border-radius: 6px;
  padding: 22px 20px 24px;
  text-align: center;
  margin-bottom: 30px;
  box-shadow: 0 4px 14px rgba(60,120,0,0.18);
  font-size: 18px;
}
.cta-box h3 {
  color: #3a6a00;
  font-size: 1.3em;
  margin-bottom: 10px;
  border: none;
  padding: 0;
  background: none;
}
.cta-box .cta-tel {
  font-size: 2.0em;
  font-weight: bold;
  color: #cc0000;
  letter-spacing: 1px;
  margin-bottom: 0;
}
.cta-box .cta-tel a { color: #cc0000; text-decoration: none; }

/* スマホ用電話ボタン（表示切替は .pcnone クラスに任せる） */
.cta-tel-sp,
.cta-tel-sp:link,
.cta-tel-sp:visited {
  background: #cc0000;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: bold;
  font-size: 1.15em;
  padding: 14px 12px 10px;
  border-radius: 5px;
  margin-bottom: 10px;
  line-height: 1.4;
}
.cta-tel-sp span {
  display: block;
  font-size: 1.4em;
  letter-spacing: 1px;
  margin-top: 2px;
  color: #fff !important;
}
.cta-box .cta-hours {
  font-size: 1.0em;
  color: #555;
  margin-bottom: 16px;
}

/* ボタングループ：PC横並び／SP縦並び */
.cta-btn-group {
  display: flex;
  gap: 10px;
}
.cta-box .cta-btn {
  flex: 1;
  padding: 14px 10px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 1.25em;
  font-weight: bold;
  line-height: 1.3;
}
.cta-box .cta-btn-mail { background: #3a7a00; color: #fff; }
.cta-box .cta-btn-line { background: #06c755; color: #fff; }
.cta-box .cta-btn:hover { opacity: 0.85; }

/* 相談の流れボタン */
.cta-flow-btn {
  display: inline-block;
  width: auto;
  margin-top: 12px;
  padding: 7px 18px;
  background: #fff;
  color: #777;
  border: 1px solid #bbb;
  border-radius: 4px;
  font-size: 0.82em;
  font-weight: normal;
  cursor: pointer;
  letter-spacing: 0.5px;
}
.cta-flow-btn:hover {
  background: #f5f5f5;
  color: #555;
}

/* ========================================
   相談の流れ モーダル
   ======================================== */
#flow-modal {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 9999;
}
#flow-modal .modal-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.55);
}
#flow-modal .modal-wrap {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 520px;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 6px 30px rgba(0,0,0,0.3);
}
#flow-modal .modal-header {
  background: #2a5a00;
  color: #fff;
  font-size: 1.35em;
  font-weight: bold;
  padding: 16px 54px 16px 22px;
  border-radius: 6px 6px 0 0;
  position: relative;
  letter-spacing: 1px;
}
#flow-modal .modal-close {
  position: absolute;
  top: 50%; right: 14px;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: #fff;
  font-size: 1.6em;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
#flow-modal .modal-body {
  padding: 20px 20px 24px;
}
.flow-step {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid #dde8cc;
  border-radius: 5px;
  background: #f9fbf5;
  margin-bottom: 0;
}
.flow-num {
  flex-shrink: 0;
  text-align: center;
  background: #3a7a00;
  color: #fff;
  border-radius: 4px;
  padding: 6px 10px;
  line-height: 1.2;
  min-width: 52px;
}
.flow-num span {
  display: block;
  font-size: 0.7em;
  letter-spacing: 1px;
}
.flow-num strong {
  display: block;
  font-size: 1.5em;
}
.flow-content h4 {
  font-size: 1.1em;
  color: #2a5a00;
  margin: 0 0 6px;
  font-weight: bold;
}
.flow-content p {
  font-size: 0.95em;
  color: #444;
  line-height: 1.7;
  margin: 0;
}
.flow-arrow {
  text-align: center;
  color: #6a9e2f;
  font-size: 1.4em;
  line-height: 1.4;
  margin: 4px 0;
}

/* モーダル：PC用に拡大（デフォルトがPC基準） */
#flow-modal .modal-wrap {
  font-size: 17px;
}

@media screen and (max-width: 640px) {
  /* CTA枠：スマホでは文字を縮小 */
  .cta-box {
    font-size: 14px;
  }
  .cta-btn-group {
    flex-direction: column;
  }
  .cta-catchcopy {
    font-size: 1.1em;
    letter-spacing: 1px;
    padding: 11px 10px;
    margin: -22px -20px 16px;
  }
  /* モーダル：スマホでは現状サイズに戻す */
  #flow-modal .modal-wrap {
    width: 95%;
    max-height: 85vh;
    font-size: 14px;
  }
}

/* ========================================
   サイドナビゲーション（常時展開型）
   ======================================== */
.side-nav {
  margin: 8px 0 0;
  font-size: 18px; /* px基準を明示して継承フォントの縮小を防ぐ（2026-09: 大きすぎるとの指摘で10%縮小、20px→18px） */
}
#sidebar .contents h3 {
  font-size: 1.25em;
}
#sidebar .profile-txt p {
  font-size: 12.8px; /* 2026-09: 「まだ間に合う！」(.side-contact-catch)と同じ大きさに合わせる */
}

/* 親アイテムリスト */
.side-nav-group {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
  border: 1px solid #c8daa8;
  border-radius: 5px;
  overflow: hidden;
  background: #fff;
}
.side-nav-group > li {
  border-bottom: 1px solid #e4eed0;
}
.side-nav-group > li:last-child {
  border-bottom: none;
}

/* 親リンク */
.side-nav-group > li > a {
  display: block;
  padding: 9px 10px 9px 13px;
  color: #1a4200;
  text-decoration: none;
  font-size: 1em;
  font-weight: bold;
  border-left: 3px solid transparent;
  background: #fff;
  transition: background 0.15s, border-left-color 0.15s;
  line-height: 1.5;
}
.side-nav-group > li > a:hover {
  background: #f0f8e4;
  border-left-color: #6a9e2f;
  color: #0a2800;
}

/* お問い合わせ：カード型（※.side-nav-contactは廃止、.side-contact-cardで置き換え） */

/* Contact カード */
.side-contact-card {
  display: block;
  font-size: 16px; /* メニュー拡大の影響を受けず、常に元のサイズを維持 */
  border: 1px solid #bbb;
  border-radius: 10px;
  padding: 14px 14px 14px;
  text-align: center;
  text-decoration: none !important;
  color: #333;
  background: #fff;
  margin-bottom: 14px;
  transition: box-shadow 0.2s, transform 0.2s;
}
.side-contact-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  transform: translateY(-1px);
  color: #333 !important;
  text-decoration: none !important;
}
.side-contact-label {
  display: block;
  font-family: "Roboto", "Arial Black", sans-serif;
  font-style: normal;
  font-size: 1.7em;
  font-weight: 900;
  color: #1a1a1a !important;
  letter-spacing: 0.5px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid #e0e0e0;
  text-decoration: none !important;
}
.side-contact-label i {
  margin-right: 4px;
  color: #e95738;
}
.side-contact-catch {
  display: block;
  font-size: 0.8em;
  color: #888;
  margin-bottom: 4px;
}
.side-contact-main {
  display: block;
  font-size: 1.15em;
  font-weight: bold;
  color: #222;
  line-height: 1.6;
  margin-bottom: 10px;
}
.side-contact-methods {
  display: flex;
  gap: 6px;
  justify-content: center;
}
.side-contact-method {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: 1;
  padding: 6px 4px;
  border-radius: 20px;
  font-size: 0.78em;
  font-weight: bold;
  text-decoration: none !important;
  transition: opacity 0.2s;
}
.side-contact-method:hover {
  opacity: 0.85;
}
.side-contact-method-mail {
  background: linear-gradient(135deg, #04375a 0%, #021f33 100%);
  color: #fff !important;
  border: none;
}
.side-contact-method-line {
  background: #06c755;
  color: #fff !important;
}
.side-contact-method i {
  font-size: 1.05em;
}
.side-contact-tags {
  display: flex;
  gap: 6px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.side-contact-tag {
  background: #3a7a00;
  color: #fff;
  border-radius: 20px;
  padding: 4px 11px;
  font-size: 0.75em;
  font-weight: bold;
  letter-spacing: 0.3px;
}

/* サブリスト（常時表示） */
.side-nav-sub {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #f6fbee;
  border-top: 1px solid #d8eab8;
}
.side-nav-sub li {
  border-bottom: 1px solid #e4eed0;
}
.side-nav-sub li:last-child {
  border-bottom: none;
}
.side-nav-sub li a {
  display: block;
  padding: 7px 8px 7px 22px;
  color: #3a6020;
  font-size: 0.875em; /* 14px */
  text-decoration: none;
  position: relative;
  line-height: 1.5;
  transition: background 0.15s;
}
.side-nav-sub li a::before {
  content: '›';
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
  color: #88b840;
  font-size: 1.2em;
  line-height: 1;
}
.side-nav-sub li a:hover {
  background: #ecf8d4;
  color: #1a4200;
}

/* セクション見出し（徹底解説など） */
.side-nav-section-title {
  background: linear-gradient(135deg, #1a4200 0%, #3a7a00 60%, #5aaa10 100%);
  color: #fff;
  font-size: 1em;
  font-weight: bold;
  padding: 8px 11px;
  margin: 14px 0 0;
  border-radius: 4px 4px 0 0;
  letter-spacing: 0.5px;
}
.side-nav-section-title + .side-nav-group {
  border-top: none;
  border-radius: 0 0 5px 5px;
  margin-top: 0;
}

/* 交通事故の流れ：バナーボタン */
.side-flow-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px 13px;
  margin-top: 16px;
  margin-bottom: 40px; /* 下のフッター(地域別ご案内)とくっつかないよう余白 */
  background: linear-gradient(135deg, #0a2e00 0%, #2a6a00 50%, #4a9a10 100%);
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 7px;
  box-shadow: 0 4px 16px rgba(10,60,0,0.4);
  transition: box-shadow 0.2s, transform 0.2s;
  font-size: 1em;
  border: 1px solid rgba(255,255,255,0.15);
}
.side-flow-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(10,60,0,0.5);
  color: #fff !important;
  text-decoration: none !important;
}
.side-flow-icon {
  font-size: 1.8em;
  flex-shrink: 0;
  opacity: 0.9;
}
.side-flow-text {
  flex: 1;
  font-weight: bold;
  line-height: 1.4;
  color: #fff;
}
.side-flow-text small {
  display: block;
  font-size: 0.73em;
  font-weight: normal;
  opacity: 0.82;
  margin-bottom: 3px;
  letter-spacing: 0.5px;
  /* スマホ(mobile.css)のsmall{背景#333・中央寄せ・padding20px}の影響を打ち消す */
  background: none;
  color: inherit;
  text-align: left;
  padding: 0;
}
.side-flow-arrow {
  font-size: 0.85em;
  opacity: 0.7;
  flex-shrink: 0;
}

/* ===== 弁護士紹介 一覧グリッド (profile/index.html) ===== */
.lawyer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 24px;
  margin: 0 0 40px;
  padding: 0;
  list-style: none;
}
.lawyer-card {
  display: block;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none !important;
  color: #333;
  box-shadow: 0 4px 16px rgba(0,0,0,0.10);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border: 1px solid #f0ede8;
}
.lawyer-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 26px rgba(0,0,0,0.16);
  color: #333;
}
.lawyer-card-chief {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
}
.lawyer-card-chief .lawyer-card-photo {
  width: 220px;
  flex-shrink: 0;
  aspect-ratio: 4 / 5;
}
.lawyer-card-chief .lawyer-card-body {
  flex: 1;
  text-align: left;
  padding: 20px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.lawyer-card-chief .lawyer-card-role {
  font-size: 0.8em;
}
.lawyer-card-chief .lawyer-card-name {
  font-size: 1.5em;
}
.lawyer-card-chief .lawyer-card-tagline {
  font-size: 1.05em;
  min-height: 0;
}
.lawyer-card-chief .lawyer-card-meta {
  font-size: 0.85em;
}
.lawyer-card-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #f4f2ee;
}
.lawyer-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lawyer-card-body {
  padding: 16px 16px 20px;
  text-align: center;
}
.lawyer-card-role {
  display: inline-block;
  background: rgb(97,152,51);
  color: #fff !important;
  font-size: 0.72em;
  font-weight: bold;
  letter-spacing: 0.03em;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 10px;
  line-height: 1.4;
}
.lawyer-card-role-chief {
  background: #e95738;
}
.lawyer-card-name {
  margin: 0 0 6px;
  font-size: 1.15em;
  font-weight: bold;
  color: #1a1a1a;
  line-height: 1.4;
}
.lawyer-card-furigana {
  display: block;
  font-size: 0.6em;
  font-weight: normal;
  color: #888;
  margin-top: 2px;
  letter-spacing: 0.05em;
}
.lawyer-card-tagline {
  margin: 0 0 8px;
  font-size: 0.88em;
  color: #61984f;
  font-weight: bold;
  line-height: 1.5;
  min-height: 2.4em;
}
.lawyer-card-meta {
  margin: 0;
  font-size: 0.78em;
  color: #888;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  /* 2026-09: 主任弁護士(小林)を目立たせるため、他の弁護士カードは3列にして小さくし、
     相対的に小林弁護士のカードが大きく・目立つように調整 */
  .lawyer-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .lawyer-card-body {
    padding: 8px 6px 10px;
  }
  .lawyer-card-role {
    font-size: 0.6em;
    padding: 3px 8px;
    margin-bottom: 6px;
  }
  .lawyer-card-name {
    font-size: 0.82em;
  }
  .lawyer-card-furigana {
    font-size: 0.65em;
  }
  .lawyer-card-tagline {
    font-size: 0.68em;
    min-height: 2.4em;
  }
  .lawyer-card-meta {
    font-size: 0.6em;
  }
  /* 主任弁護士(小林)のカード：他より大きい写真＋横並びレイアウトで、一番偉い立場を目立たせる */
  .lawyer-card-chief {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    border: 2px solid #e95738;
  }
  .lawyer-card-chief .lawyer-card-photo {
    width: 42%;
    aspect-ratio: 4 / 5;
  }
  .lawyer-card-chief .lawyer-card-body {
    text-align: left;
    align-items: flex-start;
    padding: 14px 16px;
  }
  .lawyer-card-chief .lawyer-card-role {
    font-size: 0.75em;
    padding: 4px 12px;
  }
  .lawyer-card-chief .lawyer-card-name {
    font-size: 1.2em;
  }
  .lawyer-card-chief .lawyer-card-furigana {
    font-size: 0.6em;
  }
  .lawyer-card-chief .lawyer-card-tagline {
    font-size: 0.88em;
    min-height: 0;
  }
  .lawyer-card-chief .lawyer-card-meta {
    font-size: 0.72em;
  }
}

/* ===== 弁護士個別紹介ページ (profile/*.html) ===== */
.lawyer-profile-page {
  margin: 0 10px 10px;
}
.lawyer-hero {
  display: flex;
  gap: 32px;
  align-items: center;
  background: #f7faf5;
  border: 1px solid #eaf0e4;
  border-radius: 18px;
  padding: 28px;
  margin: 10px 0 30px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.lawyer-hero-photo {
  width: 200px;
  flex-shrink: 0;
  aspect-ratio: 4 / 5;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0,0,0,0.16);
}
.lawyer-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lawyer-hero-info {
  flex: 1;
  min-width: 0;
}
.lawyer-hero-role {
  display: inline-block;
  background: rgb(97,152,51);
  color: #fff !important;
  font-size: 0.8em;
  font-weight: bold;
  letter-spacing: 0.03em;
  padding: 5px 14px;
  border-radius: 20px;
  margin: 0 0 12px;
}
.lawyer-hero-role-chief {
  background: #e95738;
}
.lawyer-hero-name {
  border: none !important;
  padding: 0 !important;
  margin: 0 0 10px !important;
  font-size: 1.9em;
  color: #1a1a1a;
  font-weight: bold;
  line-height: 1.3;
}
.lawyer-hero-furigana {
  display: block;
  font-size: 0.42em;
  font-weight: normal;
  color: #888;
  letter-spacing: 0.15em;
  margin-top: 6px;
}
.lawyer-hero-tagline {
  font-size: 1.15em;
  color: rgb(97,152,51);
  font-weight: bold;
  margin: 0 0 16px;
  line-height: 1.6;
}
.lawyer-hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lawyer-hero-tag {
  background: #fff;
  border: 1px solid #d8e3cf;
  color: #556b4a;
  font-size: 0.78em;
  padding: 5px 12px;
  border-radius: 20px;
  line-height: 1.5;
}
.lawyer-profile-box {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 14px;
  padding: 24px 28px;
  margin: 0 0 30px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
.lawyer-profile-heading {
  font-size: 0.8em;
  font-weight: bold;
  letter-spacing: 0.2em;
  color: rgb(97,152,51);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #eef1ea;
}
.lawyer-profile-list,
#main-contents .lawyer-profile-list {
  margin: 0;
  padding: 0;
  padding-bottom: 0;
}
#main-contents .lawyer-profile-list dt,
#main-contents .lawyer-profile-row dt {
  padding-top: 0;
}
#main-contents .lawyer-profile-list dd,
#main-contents .lawyer-profile-row dd {
  padding-top: 0;
  padding-bottom: 0;
}
.lawyer-profile-row {
  display: flex;
  gap: 24px;
  padding: 14px 0;
  border-bottom: 1px dashed #e5e5e5;
}
.lawyer-profile-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.lawyer-profile-row dt {
  flex: 0 0 100px;
  font-weight: bold;
  color: #1a1a1a;
  font-size: 0.95em;
}
.lawyer-profile-row dd {
  flex: 1;
  margin: 0;
  color: #444;
  line-height: 1.9;
}
.lawyer-profile-page .contents h3 {
  clear: both;
  border: none;
  border-left: 5px solid rgb(97,152,51);
  background: #f7faf5;
  padding: 12px 18px;
  border-radius: 0 10px 10px 0;
  font-size: 1.15em;
  color: #2c3e26;
  margin: 2em 0 0.9em;
}
.lawyer-inline-photo {
  max-width: 280px;
  height: auto;
  border-radius: 14px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.12);
}
@media screen and (max-width: 767px) {
  .lawyer-inline-photo {
    max-width: 180px;
  }
}
@media screen and (max-width: 767px) {
  .lawyer-hero {
    flex-direction: column;
    padding: 22px 18px;
    text-align: center;
  }
  .lawyer-hero-photo {
    width: 160px;
  }
  .lawyer-hero-tags {
    justify-content: center;
  }
  .lawyer-hero-name {
    font-size: 1.5em;
  }
  .lawyer-profile-box {
    padding: 18px 16px;
    font-size: 0.9em; /* 2026-09: PROFILE表の文字が大きすぎたため10%縮小 */
  }
  .lawyer-profile-row {
    flex-direction: column;
    gap: 4px;
  }
  .lawyer-profile-row dt {
    flex: none;
  }
}
.lawyer-profile-page .contents h4 {
  clear: both;
  border: none;
  background: none;
  padding: 0 0 0 14px;
  border-left: 4px solid rgb(97,152,51);
  font-size: 1.05em;
  font-weight: bold;
  color: #2c3e26;
  margin: 1.7em 0 0.7em;
  line-height: 1.5;
}

/* ===== 事務所紹介ページのSwiperスライダー画像を、スライド幅いっぱいに表示 ===== */
.swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===== profileページのp要素のずれ修正 =====
   style.cssの #main-contents p{ margin-left:1.0em; } はID+要素セレクタで
   .lawyer-card-name等(クラスのみ)の margin:0 0 6px; より詳細度が高いため、
   margin-leftだけがこの1emで勝ってしまい、テキストが右寄りに見える不具合があった。
   #main-contents を付けて詳細度を上げ、margin-leftを明示的に0に戻す。 */
#main-contents .lawyer-card-name,
#main-contents .lawyer-card-tagline,
#main-contents .lawyer-card-meta,
#main-contents .lawyer-hero-role,
#main-contents .lawyer-hero-tagline,
#main-contents .lawyer-profile-heading {
  margin-left: 0;
}

/* ===== 事務所情報テーブル (アクセス/電話番号/住所など) ===== */
#main-contents table.access-info-table {
  border: 2px solid rgb(97,152,51);
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  background: #fff;
  overflow: hidden;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}
#main-contents table.access-info-table th,
#main-contents table.access-info-table td {
  padding: 16px 22px;
  border: none;
  border-bottom: 1px solid #dde5d3;
  background: none;
}
#main-contents table.access-info-table tr:last-child th,
#main-contents table.access-info-table tr:last-child td {
  border-bottom: none;
}
#main-contents table.access-info-table th {
  width: 140px;
  color: rgb(97,152,51);
  font-weight: bold;
  font-size: 0.95em;
  vertical-align: top;
  background: #f7faf5;
  border-right: 1px solid #dde5d3;
}
#main-contents table.access-info-table td {
  color: #333;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  #main-contents table.access-info-table,
  #main-contents table.access-info-table tbody,
  #main-contents table.access-info-table tr,
  #main-contents table.access-info-table th,
  #main-contents table.access-info-table td {
    display: block;
    width: auto;
  }
  #main-contents table.access-info-table th {
    padding: 12px 18px;
    border-right: none;
    border-bottom: none;
    font-size: 0.77em; /* 2026-09: 元の0.855emからさらに10%縮小 */
  }
  #main-contents table.access-info-table td {
    padding: 4px 18px 14px;
    font-size: 0.81em; /* 2026-09: 元の0.9emからさらに10%縮小 */
  }
  #main-contents table.access-info-table tr {
    border-bottom: 1px solid #dde5d3;
    display: block;
  }
  #main-contents table.access-info-table tr:last-child {
    border-bottom: none;
  }
}

/* ===== 事務所アクセスページの印刷用スタイル (A4 1枚に収まるレイアウト) ===== */
@media print {
  @page {
    size: A4;
    margin: 9mm;
  }
  #header,
  #global-nav,
  #breadcrumbs,
  #sidebar,
  #footer,
  .copyright,
  .pagetop,
  .slide-wrapper,
  .ggmap,
  .print-hide {
    display: none !important;
  }
  #container,
  #main-in,
  #main-and-sub,
  #main-contents {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
  }
  body {
    font-size: 9.5pt;
    line-height: 1.45;
    color: #000;
    background: #fff;
  }
  #main-contents h2 {
    font-size: 1.25em;
    margin: 0 0 8px;
    padding-bottom: 5px;
  }
  #main-contents p {
    margin: 0 0 6px;
  }
  #main-contents table.access-info-table {
    box-shadow: none;
    border: 1px solid #333;
    margin-bottom: 14px;
  }
  #main-contents table.access-info-table th,
  #main-contents table.access-info-table td {
    padding: 8px 12px;
    border-color: #999;
  }
  #main-contents table.access-info-table th {
    background: #f2f2f2;
    color: #000;
    border-right-color: #999;
  }
  #main-contents .contents {
    margin: 0 0 6px;
  }
  #main-contents .contents h3,
  #main-contents .contents h4 {
    box-shadow: none;
    background: none;
    border-left: 3px solid #333;
    color: #000;
    margin: 8px 0 4px;
    padding: 3px 10px;
    font-size: 1em;
  }
  #main-contents .accmap img {
    max-width: 600px !important;
    width: 600px !important;
    height: auto !important;
    box-shadow: none;
    border: 1px solid #999;
  }
  #main-contents .contents img:not(.access-info-table *):not(.accmap *) {
    max-width: 180px !important;
    width: 180px !important;
    height: auto !important;
  }
  #main-contents .contents .al-c img + img,
  #main-contents .contents span img {
    display: inline-block;
    margin: 0 4px 4px 0 !important;
  }
}

/* ===== accmap（アクセス地図イラスト）と直後の印刷ボタンとの余白 ===== */
#main-contents .accmap {
  margin-bottom: 28px;
}

/* ===== 弁護士費用ページ(ryoukin)の料金表: フォントサイズを拡大 ===== */
@media screen and (min-width: 641px) {
  #main-contents table.table-style01 {
    font-size: 15px;
  }
  #main-contents table.table-style01 th {
    font-size: 1em;
    line-height: 1.8;
  }
  #main-contents table.table-style01 td {
    font-size: 1.2em;
    line-height: 1.8;
  }
}
/* 2026-09: スマホ表示も文字が小さいとの指摘があったため、PC同様に拡大する */
@media screen and (max-width: 640px) {
  #main-contents table.table-style01 {
    font-size: 15px;
  }
  #main-contents table.table-style01 th {
    font-size: 1em;
    line-height: 1.8;
  }
  #main-contents table.table-style01 td {
    font-size: 1.2em;
    line-height: 1.8;
  }
}

/* ===== メールお問い合わせページ: 「メールで無料相談」ボタン(#1へのアンカー)クリック時、
   ヘッダー(#header)とグローバルナビ(#global-nav)がsticky固定のため、
   見出しがその下に隠れてしまう問題への対処。スクロール位置に余白を確保する。 ===== */
#main-contents h2[id="1"] {
  scroll-margin-top: 154px;
}
@media only screen and (max-width: 1023px) {
  #main-contents h2[id="1"] {
    scroll-margin-top: 116px;
  }
}

/* ===== mailtoページ「法律相談シート」のリンクをボタン化 ===== */
ul.sodansheet.sodansheet-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  list-style: none !important;
  margin: 1.5em 0 0 0 !important;
  padding: 0 !important;
}
ul.sodansheet.sodansheet-btns li {
  line-height: normal !important;
  flex: 1 1 220px;
}
.sodansheet-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  padding: 16px 16px;
  border-radius: 8px;
  color: #fff !important;
  font-weight: bold;
  font-size: 0.9em;
  text-decoration: none !important;
  transition: opacity 0.2s, transform 0.2s;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.sodansheet-btn:hover {
  opacity: 0.88;
  transform: translateY(-1px);
  text-decoration: none !important;
  color: #fff !important;
}
/* style.cssの古い .sodansheet a:hover{font-size:1.1em;} がボタン化後も勝ってしまうため、
   ここで明示的に打ち消して文字サイズが変わらないようにする */
ul.sodansheet.sodansheet-btns a.sodansheet-btn:hover {
  font-size: 0.9em;
}
.sodansheet-btn i {
  font-size: 1.4em;
}
.sodansheet-btn-excel { background: linear-gradient(135deg, #21a366 0%, #10693f 100%); }
.sodansheet-btn-pdf { background: linear-gradient(135deg, #e2231a 0%, #a10f09 100%); }
.sodansheet-btn-mail { background: linear-gradient(135deg, #04375a 0%, #021f33 100%); }
@media screen and (max-width: 640px) {
  ul.sodansheet.sodansheet-btns {
    flex-direction: column;
  }
  /* 2026-09: flex: 1 1 220px の 220px が縦積み時は「高さ」の基準値として扱われてしまい、
     ボタン間に大きな空白ができていたのを修正（各liは中身の高さぶんだけにする） */
  ul.sodansheet.sodansheet-btns li {
    flex: 0 0 auto;
  }
}
/* 2026-09: 本文コンテナの最大幅を1440px→1200pxに縮小した影響で3列並びのボタン幅が狭くなり、
   「Excel版をダウンロード」等の文字が1行に収まらず折り返してしまっていたため、
   PC幅では文字・アイコンサイズを縮小して1行に収める */
@media screen and (min-width: 641px) {
  .sodansheet-btn {
    font-size: 0.75em;
  }
  .sodansheet-btn i {
    font-size: 1.2em;
  }
  /* ホバー時に0.9emへ戻す既存ルール（詳細度が高い）を、PC幅では上と同じ0.75emに揃える */
  ul.sodansheet.sodansheet-btns a.sodansheet-btn:hover {
    font-size: 0.75em;
  }
}

/* ===== 弁護士紹介文(profile/*.html)のフォントサイズ調整 =====
   TOPページの本文は「最初の.contents以外」が0.87emに縮小される仕様(style.css)だが、
   プロフィールページは紹介文の大部分が最初の.contentsに入っているため、
   TOPページの本文より文字が大きく見えてしまっていた。
   同じ縮小率(0.87em)を明示的に適用し、TOPページの本文サイズに揃える。 */
@media screen and (max-width: 767px) {
  .lawyer-profile-page .contents {
    font-size: 0.87em;
  }
  .lawyer-profile-page .contents p,
  .lawyer-profile-page .contents li,
  .lawyer-profile-page .contents dd {
    font-size: 0.87em;
  }
}

/* ===== 弁護士費用ページ(ryoukin)「相談料金」表の文字サイズ調整 =====
   「相談料金」表はページ最初の.contentsに入っているため、TOPページ側の
   「最初の.contents以外はtdが0.87emに縮小される」ルール(style.css)の対象外となり、
   すぐ下の「弁護士費用特約」表（2番目の.contents、縮小対象）より文字が大きく見えていた。
   table自体のfont-sizeとtdのfont-sizeを、弁護士費用特約表と同じ計算結果になるよう
   直接指定して揃える。 */
/* 2026-09: 「相談料金」表(1番目の.contents)はPC幅ではもともとの
   table.table-style01 td(1.2em)がそのまま適用されており、
   「弁護士費用特約」表(2番目の.contents)も768px以下でしか縮小されないため、
   PC幅では実質同じ大きさになる。768px以下でのみ「弁護士費用特約」表と
   同じ縮小(0.87em)を明示的に適用して両表のサイズを一致させる。 */
@media screen and (max-width: 768px) {
  #main-contents table[summary="相談料金"] td {
    font-size: 0.87em;
  }
}

/* 2026-09: 料金ページ(ryoukin)の※印の注記(.ryoukin-note)は、
   スマホ表示のときにフォントサイズを10%縮小する(13.95px→12.56px) */
@media screen and (max-width: 1023px) {
  #main-contents .ryoukin-note {
    font-size: 12.56px !important;
  }
}
/* 2026-09: PC表示でも同じ注記が大きすぎるとのことなので、
   PC表示時のもとの大きさ(18.432px)から同じく10%縮小する(→16.59px) */
@media screen and (min-width: 1024px) {
  #main-contents .ryoukin-note {
    font-size: 16.59px !important;
  }
}

/* 2026-09: ※印の注記が2つ連続する箇所(着手金0円制度の下)は、
   間の余白が広く見えすぎるため、PC・スマホ共通で詰める */
#main-contents .ryoukin-note + .ryoukin-note {
  margin-top: -8px;
}

/* 2026-09: 徹底解説シリーズ(kaisetsu)の記事ページは、見出しごとに.contentsが
   複数に分かれている構成のため、サイト共通の「2番目以降の.contentsを縮小する」
   ルール(0.87em)が本文にも二重(div側とp側)にかかってしまい、本文がかなり小さく
   なっていた。記事本文として読みにくいため、このページ群だけ縮小を解除する。 */
@media screen and (max-width: 768px) {
  body.kaisetsu-detail #main-contents > .contents ~ .contents {
    font-size: 1em;
  }
  body.kaisetsu-detail #main-contents > .contents ~ .contents p,
  body.kaisetsu-detail #main-contents > .contents ~ .contents li,
  body.kaisetsu-detail #main-contents > .contents ~ .contents dd {
    font-size: 1em;
  }
}

/* ========================================
   jikoaccessページ TOPヒーロー（弁護士写真＋テキスト）
   2026-09: 旧デザイン(1枚画像)から、写真とテキストを組み合わせた
   構成に変更。サイトのグリーン基調のカラーに合わせている。
   ======================================== */
#main-image .jiko-hero {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  background: #fff;
  border: 1px solid #dcefd0;
  overflow: hidden;
}
#main-image .jiko-hero-photo {
  flex: 0 0 38%;
  max-width: 38%;
  position: relative;
  background: #1a4200;
  min-height: 260px;
}
#main-image .jiko-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}
#main-image .jiko-hero-body {
  flex: 1 1 0;
  min-width: 280px;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#main-image .jiko-hero-badge {
  display: inline-block;
  align-self: flex-start;
  background: #eaf5d8;
  color: #3a7a00;
  font-weight: bold;
  font-size: 16px;
  padding: 6px 16px;
  border-radius: 20px;
  margin: 0 0 14px;
}
#main-image .jiko-hero-badge i { margin-right: 3px; }
#main-image .jiko-hero-headline {
  margin: 0 0 16px;
  font-size: 26px;
  line-height: 1.45;
  color: #1a2e05;
  font-weight: bold;
}
#main-image .jiko-hero-place {
  font-size: 1.3em;
  color: #1a4200;
  font-weight: 900;
  border-bottom: 4px solid #b6e07a;
}
#main-image .jiko-hero-points {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
}
#main-image .jiko-hero-points li {
  font-size: 16px;
  color: #333;
}
#main-image .jiko-hero-points i {
  color: #5aaa10;
  margin-right: 5px;
}
#main-image .jiko-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
#main-image .jiko-hero-btn {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 8px;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: bold;
  font-size: 17px;
  line-height: 1.3;
  text-align: center;
  transition: opacity 0.15s;
}
#main-image .jiko-hero-btn i { font-size: 1.3em; }
#main-image .jiko-hero-btn b { font-size: 1.2em; }
#main-image .jiko-hero-btn-tel { background: linear-gradient(135deg, #3d7e14 0%, #1a4200 100%); }
#main-image .jiko-hero-btn-mail { background: linear-gradient(135deg, #04375a 0%, #021f33 100%); }
#main-image .jiko-hero-btn-line { background: #06c755; }
#main-image .jiko-hero-btn:hover { opacity: 0.88; color: #fff !important; text-decoration: none !important; }

@media screen and (max-width: 767px) {
  #main-image .jiko-hero { flex-direction: column; }
  #main-image .jiko-hero-photo { flex: none; max-width: 100%; height: 220px; min-height: 0; }
  #main-image .jiko-hero-body { padding: 16px 16px 18px; }
  #main-image .jiko-hero-badge { font-size: 14px; }
  #main-image .jiko-hero-headline { font-size: 22px; }
  #main-image .jiko-hero-points { gap: 6px 16px; margin-bottom: 16px; }
  #main-image .jiko-hero-points li { font-size: 14px; }
  #main-image .jiko-hero-btn { font-size: 16px; }
  #main-image .jiko-hero-cta { flex-direction: column; }
}

/* 2026-09: 料金ページ(ryoukin)の各料金表は、スマホ表示だと
   「2番目以降の.contentsはtdが0.87emに縮小される」というサイト共通ルールの対象になり、
   PC向けに拡大したはずのフォントがスマホでは小さいままになっていた。
   ここでさらに現状(スマホ表示)から10%拡大する。 */
@media screen and (max-width: 768px) {
  #main-contents table[summary="相談料金"] th,
  #main-contents table[summary="弁護士費用特約"] th,
  #main-contents table[summary="着手金0円制度"] th,
  #main-contents table[summary="上記以外のご契約"] th {
    font-size: 16.5px !important;
  }
  #main-contents table[summary="相談料金"] td,
  #main-contents table[summary="弁護士費用特約"] td,
  #main-contents table[summary="着手金0円制度"] td,
  #main-contents table[summary="上記以外のご契約"] td {
    font-size: 14.355px !important;
  }
  #main-contents table[summary="相談料金"] td span.f12em,
  #main-contents table[summary="弁護士費用特約"] td span.f12em,
  #main-contents table[summary="着手金0円制度"] td span.f12em {
    font-size: 17.226px !important;
  }
}

/* 2026-09: ryoukinページの表キャプション(「交渉」「調停」「訴訟」「着手金0円制度」)は
   端に寄って小さく見えていたため、太字＋やや大きめのサイズにし、
   左に余白とアクセントラインを付けて見出しらしく目立たせる */
#main-contents table[summary="上記以外のご契約"] caption,
#main-contents table[summary="着手金0円制度"] caption {
  font-size: 1.2em;
  font-weight: bold;
  color: #333;
  padding: 2px 0 6px 10px;
  margin-bottom: 4px;
  border-left: 4px solid #e95738;
}
