﻿:root {
      --orange: #e9651a;
      --orange-dark: #bf4b08;
      --green: #28745a;
      --blue: #286f94;
      --ink: #2e332f;
      --muted: #4f5551;
      --line: #e4ded6;
      --bg: #f5f2ee;
      --paper: #fff;
      --soft: #fbf8f3;
      --notice: #fff7d7;
      --shadow: 0 12px 34px rgba(34, 28, 22, .08);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    html, body { overflow-x: hidden; }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--bg);
      font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
      font-size: 16px;
      font-weight: 500;
      line-height: 2;
      letter-spacing: 0;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    a { color: var(--blue); text-decoration: none; }
    a:hover { text-decoration: underline; }

    .topbar {
      background: #fff;
      border-bottom: 1px solid var(--line);
      position: sticky;
      top: 0;
      z-index: 20;
    }

    .topbar-inner {
      width: min(1160px, calc(100% - 28px));
      margin: 0 auto;
      min-height: 62px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
    }

    .brand { display:flex; align-items:center; gap:10px; color:#2B2B2B; text-decoration:none; font-weight:900; line-height:1; white-space:nowrap; }
    .brand:hover { text-decoration:none; }
    .brand-symbol { width:34px; height:34px; display:grid; place-items:center; background:#D05300; color:#fff; border-radius:4px; font-size:19px; font-weight:900; box-shadow:0 2px 0 rgba(126,55,8,.22); }
    .brand-word { display:flex; align-items:baseline; gap:4px; letter-spacing:0; }
    .brand-area { color:#2B2B2B; font-size:26px; font-weight:700; }
    .brand-no { color:#4A4A4A; font-size:17px; font-weight:700; }
    .brand-main { color:#D05300; font-size:25px; font-weight:900; }

    .nav {
      display: flex;
      align-items: center;
      gap: 14px;
      font-size: 14px;
      font-weight: 700;
      white-space: nowrap;
    }

    .nav a { color: #333; }

    .call {
      display: inline-grid;
      place-items: center;
      min-height: 36px;
      padding: 0 14px;
      background: var(--orange);
      color: #fff !important;
      border-radius: 4px;
      font-weight: 900;
    }

    .hero {
      background:linear-gradient(90deg,rgba(18,24,26,.78) 0%,rgba(18,24,26,.50) 34%,rgba(18,24,26,.16) 58%,rgba(18,24,26,0) 100%),var(--hero-image, url("/assets/cv-hero-staff-photo.png?v=1")); background-size: cover;
      background-position: center center;
      color: #fff;
    }

    .hero-inner {
      width: min(1160px, calc(100% - 28px));
      margin: 0 auto;
      min-height: 560px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 390px;
      gap: 34px;
      align-items: center;
      padding: 46px 0 54px;
    }

    .eyebrow {
      display: inline-block;
      margin-bottom: 14px;
      padding: 4px 10px;
      background: rgba(255, 255, 255, .14);
      border: 1px solid rgba(255, 255, 255, .34);
      font-size: 14px;
      font-weight: 800;
    }

    h1 {
      margin: 0 0 16px;
      font-size: clamp(32px, 5vw, 52px);
      line-height: 1.24;
      letter-spacing: 0;
      word-break: keep-all;
      overflow-wrap: anywhere;
      font-weight: 900;
    }

    .hero-lead {
      max-width: 780px;
      margin: 0 0 24px;
      font-size: 19px;
      color: rgba(255, 255, 255, .92);
      font-weight: 700;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 24px 0;
    }

    .btn {
      min-height: 48px;
      display: inline-grid;
      place-items: center;
      padding: 0 18px;
      border-radius: 4px;
      font-weight: 900;
      border: 1px solid transparent;
    }

    .btn.primary {
      background: var(--orange);
      color: #fff;
    }

    .btn.secondary {
      background: rgba(255, 255, 255, .9);
      border-color: rgba(191, 75, 8, .36);
      color: var(--orange-dark);
    }

    .hero-badges {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin-top: 22px;
    }

    .badge {
      min-height: 86px;
      padding: 12px;
      background: rgba(255, 255, 255, .9);
      border: 1px solid rgba(191, 75, 8, .18);
      color: var(--ink);
      box-shadow: 0 8px 18px rgba(70, 50, 32, .08);
    }

    .badge b {
      display: block;
      font-size: 22px;
      line-height: 1.25;
    }

    .badge span {
      display: block;
      margin-top: 4px;
      color: #625c55;
      font-size: 12px;
      line-height: 1.5;
    }

    .hero-panel {
      background: #fff;
      color: var(--ink);
      border: 1px solid rgba(255, 255, 255, .5);
      box-shadow: var(--shadow);
      padding: 20px;
    }

    .hero-panel h2 {
      margin: 0 0 12px;
      font-size: 20px;
      line-height: 1.45;
    }

    .quick-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 10px;
      font-size: 15px;
    }

    .quick-list li {
      padding-left: 24px;
      position: relative;
    }

    .quick-list li::before {
      content: "";
      width: 12px;
      height: 12px;
      position: absolute;
      left: 0;
      top: .7em;
      background: var(--green);
      border-radius: 50%;
    }

    .page,
    .page-shell {
      width: min(1160px, calc(100% - 28px));
      margin: 28px auto 80px;
      display: grid;
      grid-template-columns: minmax(0, 780px) 320px;
      gap: 28px;
      align-items: start;
    }
    .page-shell > main.page { width:auto; margin:0; display:block; }
    aside { position:sticky; top:84px; display:grid; gap:16px; }
    .side-card { background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow); padding:17px; }
    .side-card h2 { margin:0 0 12px; font-size:19px; line-height:1.45; }
    .side-list { list-style:none; padding:0; margin:0; display:grid; gap:9px; font-size:14px; line-height:1.7; }
    .side-list li { padding-left:18px; position:relative; }
    .side-list li:before { content:""; width:7px; height:7px; border-radius:50%; background:var(--orange); position:absolute; left:0; top:.75em; }

    main, .side-card {
      background: var(--paper);
      border: 1px solid var(--line);
      box-shadow: var(--shadow);
      min-width: 0;
    }

    main { padding: 30px; }

    aside {
      position: sticky;
      top: 82px;
      display: grid;
      gap: 16px;
    }

    .side-card { padding: 17px; }
    .side-card h2 { margin: 0 0 12px; font-size: 19px; line-height: 1.45; }

    .side-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 9px;
      font-size: 14px;
      line-height: 1.8;
    }

    .toc {
      border: 1px solid #ddd;
      background: #f8f8f8;
      padding: 18px 20px;
      margin-bottom: 30px;
    }

    .toc h2 { margin: 0 0 10px; font-size: 19px; }
    .toc ol { margin: 0; padding-left: 24px; font-size: 15px; line-height: 1.85; }

    section { margin-top: 38px; }
    main > section:not(#avoid-bad-vendors) > .eyebrow { display: none; }

    .section-title {
      margin: 0 0 18px;
      padding: 10px 14px;
      color: #fff;
      background: var(--orange);
      border-left: 7px solid var(--orange-dark);
      font-size: 23px;
      line-height: 1.45;
      letter-spacing: 0;
      overflow-wrap: anywhere;
      font-weight: 900;
    }

    h3 {
      margin: 26px 0 10px;
      padding-left: 12px;
      border-left: 4px solid var(--orange);
      font-size: 20px;
      line-height: 1.5;
      font-weight: 900;
    }

    p { margin: 0 0 18px; }

    .marker {
      background: linear-gradient(transparent 62%, rgba(255, 240, 0, .58) 62%);
      font-weight: 900;
      padding: 0 .05em .02em;
    }

    .cards {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin: 18px 0;
    }

    .card {
      border: 1px solid var(--line);
      background: var(--soft);
      padding: 15px;
      min-height: 130px;
    }

    .card strong {
      display: block;
      margin-bottom: 8px;
      line-height: 1.5;
    }

    .card span {
      display: block;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.8;
    }

    table {
      width: 100%;
      border-collapse: collapse;
      margin: 18px 0 22px;
      background: #fff;
      font-size: 14px;
      line-height: 1.8;
    }

    th, td {
      border: 1px solid #ddd7d0;
      padding: 12px;
      vertical-align: top;
    }

    th {
      text-align: left;
      background: #f1eee8;
      white-space: nowrap;
      font-weight: 900;
    }

    .notice, .check {
      border: 1px solid #d9c78d;
      background: var(--notice);
      padding: 16px 18px;
      margin: 18px 0;
    }

    .check {
      border-color: #c7ddc7;
      background: #f7fff7;
    }

    .check b, .notice b {
      display: block;
      margin-bottom: 6px;
      color: var(--green);
    }

    .source-note {
      margin: 12px 0 18px;
      padding: 10px 12px;
      border-left: 4px solid var(--blue);
      background: #f4fafc;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.8;
    }

    .city-map {
      border: 1px solid var(--line);
      background: #fff;
      padding: 16px;
      margin: 20px 0;
    }

    .city-map-frame {
      position: relative;
      overflow: hidden;
      border: 1px solid #d8d0c7;
      background: #eef7e9;
      aspect-ratio: 566 / 705;
    }

    .city-map-frame img {
      display: block;
      width: 100%;
      height: auto;
    }

    .map-pin {
      display: none;
      position: absolute;
      left: 16.7%;
      top: 13.5%;
      width: 18px;
      height: 18px;
      transform: translate(-50%, -50%);
      background: #e9651a;
      border: 3px solid #fff;
      border-radius: 50%;
      box-shadow: 0 0 0 4px rgba(233, 101, 26, .28), 0 6px 14px rgba(0,0,0,.22);
    }

    .map-pin::after {
      content: "";
      position: absolute;
      left: 50%;
      top: 100%;
      transform: translateX(-50%);
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 10px solid #e9651a;
    }

    .map-label {
      display: none;
      position: absolute;
      left: 22.5%;
      top: 4.5%;
      max-width: 210px;
      padding: 8px 10px;
      background: rgba(255, 255, 255, .94);
      border: 2px solid #e9651a;
      color: #bf4b08;
      font-weight: 900;
      font-size: 15px;
      line-height: 1.45;
      box-shadow: 0 8px 18px rgba(0,0,0,.16);
    }

    .map-label::before {
      content: "⤵";
      position: absolute;
      left: -30px;
      top: 31px;
      width: auto;
      border: 0;
      color: #e9651a;
      font-size: 28px;
      line-height: 1;
      text-shadow: 0 2px 0 #fff;
    }

    .map-arrow {
      display: none;
      position: absolute;
      left: 22.2%;
      top: 6.8%;
      width: 86px;
      height: 54px;
      pointer-events: none;
    }

    .map-arrow::before {
      content: "";
      position: absolute;
      left: 0;
      top: 20px;
      width: 68px;
      height: 11px;
      background: #e9651a;
      transform: rotate(146deg);
      transform-origin: right center;
      border-radius: 999px;
      box-shadow: 0 2px 0 #fff, 0 4px 10px rgba(0,0,0,.22);
    }

    .map-arrow::after {
      content: "";
      position: absolute;
      left: 0;
      top: 30px;
      width: 0;
      height: 0;
      border-top: 15px solid transparent;
      border-bottom: 15px solid transparent;
      border-right: 25px solid #e9651a;
      transform: rotate(-34deg);
      filter: drop-shadow(0 2px 0 #fff) drop-shadow(0 3px 5px rgba(0,0,0,.2));
    }

    .map-highlight {
      position: absolute;
      left: 14.6%;
      top: 15.2%;
      width: 9.8%;
      height: 4.6%;
      background: rgba(233, 101, 26, .82);
      border: 3px solid #fff;
      box-shadow: 0 0 0 3px rgba(233, 101, 26, .32), 0 5px 16px rgba(0,0,0,.18);
      border-radius: 6px;
      mix-blend-mode: multiply;
      pointer-events: none;
    }

    .map-caption {
      margin: 10px 0 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.8;
    }


    .bad-vendor-visual {
      margin: 18px 0;
      border: 1px solid #eadfd4;
      background: #fff;
    }

    .bad-vendor-visual img {
      display: block;
      width: 100%;
      height: auto;
    }

    .bad-vendor-visual figcaption {
      margin: 0;
      padding: 10px 14px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.7;
      border-top: 1px solid #eadfd4;
      background: #fffdf8;
    }

    .bad-vendor-grid,
    .safe-checks {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin: 16px 0 0;
    }

    .bad-vendor-card,
    .safe-check {
      border: 1px solid var(--line);
      background: #fff;
      padding: 15px 16px;
      line-height: 1.85;
    }

    .bad-vendor-card h3,
    .safe-check h3 {
      margin: 0 0 8px;
      font-size: 18px;
      line-height: 1.5;
    }

    .bad-vendor-card h3::before {
      content: "!";
      display: inline-grid;
      place-items: center;
      width: 24px;
      height: 24px;
      margin-right: 8px;
      border-radius: 50%;
      color: #fff;
      background: #d9480f;
      font-size: 15px;
      font-weight: 900;
    }

    .safe-check h3::before {
      content: "✓";
      margin-right: 8px;
      color: #0b7a4b;
      font-weight: 900;
    }

    .stats {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin: 18px 0;
    }

    .stat {
      border: 1px solid var(--line);
      background: #fff;
      padding: 13px;
      min-height: 96px;
    }

    .stat b {
      display: block;
      color: var(--orange-dark);
      font-size: 27px;
      line-height: 1.15;
    }

    .stat span {
      display: block;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.7;
      margin-top: 5px;
    }

    .chart-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin: 20px 0;
    }

    .chart-box {
      border: 1px solid var(--line);
      background: #fff;
      padding: 16px;
    }

    .chart-box h3 {
      margin: 0 0 14px;
      padding: 0;
      border: 0;
      font-size: 16px;
    }

    .bar-row {
      display: grid;
      grid-template-columns: 112px 1fr 52px;
      gap: 10px;
      align-items: center;
      margin: 12px 0;
      font-size: 14px;
    }

    .bar-track {
      height: 16px;
      background: #efeae4;
      border-radius: 999px;
      overflow: hidden;
    }

    .bar-fill {
      height: 100%;
      background: linear-gradient(90deg, var(--orange), #f2b766);
      border-radius: inherit;
    }

    .flow {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin: 18px 0;
      counter-reset: step;
    }

    .flow-item {
      border: 1px solid var(--line);
      background: #fff;
      padding: 14px;
      min-height: 148px;
    }

    .flow-item::before {
      counter-increment: step;
      content: "STEP " counter(step);
      display: inline-block;
      margin-bottom: 8px;
      padding: 1px 7px;
      background: var(--blue);
      color: #fff;
      font-size: 12px;
      font-weight: 900;
    }

    .flow-item b { display: block; margin-bottom: 6px; line-height: 1.45; }
    .flow-item span { color: var(--muted); display: block; font-size: 14px; line-height: 1.8; }

    .case-list {
      display: grid;
      gap: 12px;
      margin: 18px 0;
    }

    .case {
      border: 1px solid var(--line);
      background: #fff;
      display: grid;
      grid-template-columns: 150px 1fr;
      gap: 14px;
      padding: 12px;
    }

    .case-thumb {
      min-height: 112px;
      background:
        linear-gradient(135deg, rgba(233, 101, 26, .86), rgba(40, 111, 148, .76)),
        repeating-linear-gradient(45deg, #fff 0 10px, #eee 10px 20px);
      border: 1px solid #ddd;
    }

    .case h3 {
      margin: 0 0 6px;
      padding: 0;
      border: 0;
      font-size: 17px;
    }

    .case dl {
      margin: 0;
      display: grid;
      grid-template-columns: 80px 1fr;
      gap: 4px 8px;
      font-size: 14px;
      line-height: 1.75;
    }

    .case dt { font-weight: 900; color: #444; }
    .case dd { margin: 0; color: var(--muted); }

    .ba-grid {
      display: grid;
      gap: 18px;
      margin: 22px 0 0;
    }

    .ba-guide {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin: 16px 0 18px;
    }

    .ba-guide span {
      display: block;
      padding: 11px 13px;
      border: 1px solid #ead8b7;
      background: #fff8ea;
      color: #5b4630;
      font-size: 14px;
      font-weight: 900;
      line-height: 1.65;
    }

    .ba-card {
      border: 1px solid var(--line);
      background: #fff;
      padding: 14px;
      box-shadow: 0 8px 18px rgba(70, 50, 32, .06);
    }

    .ba-card h3 {
      margin: 0 0 12px;
      padding: 0;
      border: 0;
      font-size: 18px;
    }

    .ba-photos {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      position: relative;
      align-items: stretch;
      padding: 10px;
      border: 1px solid #eadfd4;
      background: #f7f3e7;
    }

    .ba-photos::after {
      content: "\2192";
      position: absolute;
      left: 50%;
      top: 50%;
      z-index: 3;
      display: grid;
      place-items: center;
      width: 44px;
      height: 44px;
      transform: translate(-50%, -50%);
      border: 3px solid var(--orange);
      border-radius: 50%;
      background: #fff;
      color: var(--orange);
      box-shadow: 0 8px 20px rgba(34,28,22,.18);
      font-size: 28px;
      font-weight: 900;
    }

    .ba-photo {
      position: relative;
      overflow: hidden;
      margin: 0;
      border: 1px solid var(--line);
      background: #f3f0ea;
      aspect-ratio: 4 / 3;
    }

    .ba-photo img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .ba-label {
      position: absolute;
      left: 10px;
      top: 10px;
      display: inline-grid;
      place-items: center;
      min-height: 30px;
      padding: 0 10px;
      border-radius: 4px;
      background: rgba(45, 45, 45, .86);
      color: #fff;
      font-size: 13px;
      font-weight: 900;
    }

    .ba-label.after {
      background: rgba(40, 116, 90, .9);
    }

    .case-detail {
      margin-top: 12px;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.82;
    }

    .case-detail p {
      margin: 0 0 8px;
    }

    .case-points {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 10px;
    }

    .case-points span {
      display: inline-flex;
      align-items: center;
      min-height: 30px;
      padding: 4px 10px;
      border: 1px solid #ead8b7;
      background: #fff8ea;
      color: #6d4c27;
      font-size: 13px;
      font-weight: 900;
      line-height: 1.4;
    }

    .ward-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
      margin: 18px 0;
    }

    .ward-card {
      border: 1px solid var(--line);
      background: #fff;
      padding: 16px;
    }

    .ward-card h3 {
      margin: 0 0 10px;
      padding: 0 0 8px;
      border-left: 0;
      border-bottom: 2px solid #f0d2bf;
      color: var(--orange-dark);
      font-size: 20px;
    }

    .ward-card dl {
      margin: 0;
      display: grid;
      grid-template-columns: 92px 1fr;
      gap: 7px 10px;
      font-size: 14px;
      line-height: 1.75;
    }

    .ward-card dt {
      color: #3b403c;
      font-weight: 900;
    }

    .ward-card dd {
      margin: 0;
      color: var(--muted);
    }

    .ward-note {
      border: 1px solid #d7e4ee;
      background: #f5fbff;
      padding: 14px 16px;
      margin: 16px 0;
      font-size: 14px;
      line-height: 1.8;
    }

    .ward-jump {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 16px 0 22px;
    }

    .ward-jump a {
      display: inline-grid;
      place-items: center;
      min-height: 34px;
      padding: 5px 10px;
      border: 1px solid #d9cfc6;
      background: #fff;
      color: #3a3632;
      border-radius: 999px;
      font-size: 14px;
      font-weight: 900;
    }

    .ward-jump a:hover {
      background: var(--orange);
      border-color: var(--orange);
      color: #fff;
      text-decoration: none;
    }

    .faq {
      display: grid;
      gap: 10px;
      margin: 18px 0;
    }

    .faq details {
      border: 1px solid var(--line);
      background: #fff;
      padding: 12px 14px;
    }

    .faq summary {
      cursor: pointer;
      font-weight: 900;
    }

    .area-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 14px 0 20px;
    }

    .area-tags span {
      display: inline-block;
      padding: 4px 10px;
      border: 1px solid var(--line);
      background: #fff;
      color: #3a3632;
      border-radius: 999px;
      font-size: 14px;
      font-weight: 800;
    }

    .checklist {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin: 18px 0;
    }

    .checkitem {
      border: 1px solid var(--line);
      background: #fff;
      padding: 12px 14px 12px 42px;
      position: relative;
      min-height: 74px;
      font-size: 14px;
      line-height: 1.8;
    }

    .checkitem::before {
      content: "✓";
      position: absolute;
      left: 13px;
      top: 13px;
      width: 20px;
      height: 20px;
      display: grid;
      place-items: center;
      background: var(--green);
      color: #fff;
      border-radius: 50%;
      font-size: 13px;
      font-weight: 900;
    }

    .cta-band {
      margin-top: 38px;
      background: #2d2d2d;
      color: #fff;
      padding: 24px;
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 18px;
      align-items: center;
    }

    .cta-band h2 { margin: 0 0 6px; font-size: 23px; line-height: 1.4; }
    .cta-band p { margin: 0; color: rgba(255,255,255,.82); }

    .footer {
      margin-top: 28px;
      padding-top: 16px;
      border-top: 1px solid var(--line);
      color: var(--muted);
      font-size: 14px;
    }

    .site-footer {
      margin-top: 38px;
      padding: 24px;
      border: 1px solid var(--line);
      background: #f8f6f2;
      font-family: "BIZ UDPGothic", "Yu Gothic", "Yu Gothic UI", "Zen Kaku Gothic New", Meiryo, sans-serif;
    }

    .site-footer h2 {
      margin: 0 0 12px;
      font-size: 18px;
      line-height: 1.45;
      color: var(--orange-dark);
    }

    .footer-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }

    .footer-col {
      min-width: 0;
    }

    .footer-links,
    .hotline-list,
    .policy-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 8px;
    }

    .footer-links a,
    .policy-list a {
      min-height: 48px;
      display: flex;
      align-items: center;
      padding: 8px 10px;
      border: 1px solid #ded5cc;
      background: #fff;
      color: #2e332f;
      font-size: 15px;
      font-weight: 900;
      line-height: 1.45;
    }

    .footer-links a:hover,
    .policy-list a:hover {
      border-color: var(--orange);
      color: var(--orange-dark);
      text-decoration: none;
    }

    .hotline-list li {
      padding: 10px 12px;
      border: 1px solid #ded5cc;
      background: #fff;
      font-size: 14px;
      line-height: 1.7;
    }

    .hotline-list b {
      display: block;
      color: #2e332f;
      font-size: 15px;
      line-height: 1.5;
    }

    .hotline-list span {
      display: block;
      color: var(--muted);
    }

    .footer-note {
      margin: 12px 0 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.8;
    }

    .footer-bottom {
      margin-top: 18px;
      padding-top: 14px;
      border-top: 1px solid var(--line);
      color: var(--muted);
      font-size: 13px;
      line-height: 1.8;
    }

    .nearby-wards {
      margin-top: 38px;
    }

    .nearby-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
      margin: 16px 0 0;
    }

    .nearby-card {
      display: block;
      min-height: 128px;
      padding: 15px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--ink);
      box-shadow: 0 8px 18px rgba(70, 50, 32, .06);
    }

    .nearby-card:hover {
      border-color: var(--orange);
      text-decoration: none;
    }

    .nearby-card b {
      display: block;
      color: var(--orange-dark);
      font-size: 18px;
      line-height: 1.45;
      margin-bottom: 6px;
    }

    .nearby-card span {
      display: block;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.7;
    }

    @media (max-width: 980px) {
      .hero-inner,
      .page,
      .page-shell { grid-template-columns: 1fr; }
      aside { position: static; }
      .nav { overflow-x: auto; max-width: 100%; padding-bottom: 4px; }
      .hero-badges, .stats, .flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .chart-grid { grid-template-columns: 1fr; }
    }

    @media (max-width: 640px) {
      .topbar-inner { align-items: flex-start; flex-direction: column; padding: 10px 0; }
      .hero-inner { min-height: auto; padding: 34px 0; }
      .hero-panel { padding: 16px; }
      main { padding: 18px 16px 32px; }
      .cards, .stats, .flow, .hero-badges { grid-template-columns: 1fr; }
      .ward-grid { grid-template-columns: 1fr; }
      .nearby-grid { grid-template-columns: 1fr; }
      .footer-grid { grid-template-columns: 1fr; }
      .checklist { grid-template-columns: 1fr; }
      .case { grid-template-columns: 1fr; }
      .ba-photos { grid-template-columns: 1fr; }
      .ba-photos::after { width: 34px; height: 34px; border-width: 2px; font-size: 22px; }
      .ba-guide { grid-template-columns: 1fr; }
      .cta-band { grid-template-columns: 1fr; }
      table { display: block; overflow-x: auto; white-space: nowrap; }
      .bar-row { grid-template-columns: 88px 1fr 48px; }
    }
    .search-intent { border:1px solid var(--line); background:#fffdf8; padding:18px; }
    .search-intent .section-title { margin-top:0; }


    .nearby-wards .ward-links {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin: 16px 0 0;
    }

    .nearby-wards .ward-links a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 38px;
      padding: 8px 14px;
      border: 1px solid #eadfd4;
      background: #fff;
      color: var(--ink);
      border-radius: 999px;
      font-size: 14px;
      font-weight: 900;
      line-height: 1.35;
      text-decoration: none;
      box-shadow: 0 6px 14px rgba(70, 50, 32, .06);
    }

    .nearby-wards .ward-links a:hover {
      border-color: var(--orange);
      color: var(--orange-dark);
      background: #fff8e9;
      text-decoration: none;
    }


    .breadcrumb {
      background: #fffdf3;
      border-bottom: 1px solid #eadfd4;
    }

    .breadcrumb-inner {
      width: min(1160px, calc(100% - 28px));
      margin: 0 auto;
      padding: 9px 0;
      color: #75634f;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.7;
    }

    .breadcrumb a {
      color: #8a6b18;
      font-weight: 900;
      text-decoration: none;
    }

    .breadcrumb a:hover {
      text-decoration: underline;
    }

    .breadcrumb span {
      margin: 0 7px;
      color: #a58b61;
    }


    .page {
      padding-top: 34px;
      padding-bottom: 72px;
    }

    section {
      margin-top: 52px;
    }

    section + section {
      margin-top: 58px;
    }

    .section-head,
    .toc,
    .notice,
    .chart-box,
    .city-map,
    .case-note,
    .search-intent,
    .nearby-wards {
      margin-top: 24px;
      margin-bottom: 24px;
    }

    .cards,
    .stats,
    .flow,
    .chart-grid,
    .checklist,
    .case,
    .ba-grid,
    .bad-vendor-grid,
    .safe-checks,
    .footer-grid {
      gap: 18px;
    }

    .card,
    .stat,
    .flow-item,
    .chart-box,
    .notice,
    .toc,
    .city-map,
    .checkitem,
    .bad-vendor-card,
    .safe-check,
    .nearby-wards,
    .search-intent {
      padding: 20px;
    }

    .section-title {
      margin-bottom: 22px;
    }

    .hero-inner {
      padding-top: 64px;
      padding-bottom: 72px;
    }

    @media (max-width: 640px) {
      .page {
        padding-top: 24px;
        padding-bottom: 56px;
      }

      section,
      section + section {
        margin-top: 42px;
      }
    }


    /* checkitem-icon-override */
    .checkitem {
      padding-left: 46px;
    }

    .checkitem::before {
      content: "✓";
      left: 16px;
      top: 18px;
      width: 22px;
      height: 22px;
      display: inline-grid;
      place-items: center;
      border-radius: 50%;
      background: #28745a;
      color: #fff;
      box-shadow: none;
      font-size: 14px;
      font-weight: 900;
      line-height: 1;
    }


