/* Handwerknah · 信息卡 / 列表 / 文章 / 首页模块 */

    /* 深色四栏：协会站 start1–4 */
    .quad {
      position: relative;
      z-index: 3;
      background: transparent;
      color: var(--ink);
      padding: 0;
    }

    .quad-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 20px;
      max-width: 1240px;
      margin: 0 auto;
      padding: 0 24px;
    }

    .quad-col {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      text-align: left;
      background: var(--paper);
      border-radius: 10px;
      padding: 0;
      overflow: hidden;
      box-shadow: 0 10px 28px rgba(10, 24, 20, 0.18);
      transition: transform 600ms ease-out;
    }

    .quad-col:hover { transform: translateY(-3px); }

    .quad-photo {
      position: relative;
      height: clamp(188px, 24vh, 248px);
      overflow: hidden;
      background: #12362C;
    }

    .quad-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      filter: saturate(0.92) brightness(1.12) contrast(1.02);
    }

    .quad-photo::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(27,77,62,0.04) 0%, rgba(18,54,44,0.16) 100%);
      pointer-events: none;
    }

    .quad-body { padding: 20px 20px 16px; }

    .quad-col h2 {
      margin-top: 0;
      color: var(--green);
      font-weight: 700;
      letter-spacing: 0;
      text-transform: none;
      font-size: 22px;
    }

    .quad-col p {
      text-align: left;
      font-size: 15px;
      line-height: 1.55;
      padding: 0;
      color: var(--ink-soft);
    }

    .quad-col .more {
      align-self: flex-start;
      margin-top: auto;
      padding: 0 18px 18px;
    }

    .quad-credit {
      max-width: 1240px;
      margin: 10px auto 0;
      padding: 0 24px;
      font-size: 11px;
      line-height: 1.45;
      color: rgba(244,241,234,0.62);
    }

    .quad-credit a { color: rgba(244,241,234,0.78); }

    .more {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 12px;
      color: var(--amber);
      text-decoration: none;
      font-weight: 600;
      letter-spacing: 0.04em;
    }

    .more:hover { color: #E0A24A; }

    .cities-band {
      background: #fff;
      padding: 72px 0 56px;
      text-align: center;
    }

    .cities-band h2 {
      font-weight: 400;
      font-size: 32px;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .city-row {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 12px;
      max-width: var(--site);
      margin: 36px auto 0;
      padding: 0 24px;
    }

    .city-row a {
      padding: 28px 10px;
      border: 1px dotted var(--green);
      text-decoration: none;
      transition: background 700ms ease-out, color 700ms ease-out;
    }

    .city-row a:hover { background: var(--green); color: var(--paper); }
    .city-row a:hover span { color: rgba(244,241,234,0.75); }

    .pill-btn {
      display: inline-block;
      margin-top: 40px;
      padding: 10px 28px;
      border: 1px dotted var(--ink);
      border-radius: 24px;
      text-decoration: none;
      font-size: 18px;
      font-family: "Source Serif 4", Georgia, serif;
      transition: background 850ms ease-out, color 850ms ease-out, transform 850ms ease-out;
    }

    .pill-btn:hover {
      background: var(--amber);
      border-color: var(--amber);
      color: #fff;
      transform: scale(1.06);
    }

    .sec-head { margin-bottom: 22px; }
    .sec-head .kicker { margin-bottom: 6px; }
    .sec-head p { color: var(--ink-soft); max-width: 56ch; margin-top: 6px; }
    .sec-head a { color: var(--green); }

    .band-paper { background: var(--paper); padding: 72px 0; }
    .band-white { background: #fff; padding: 72px 0; }
    .band-soft { background: #EFE9DE; padding: 72px 0; }

    .steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }

    .step {
      background: var(--paper-card);
      border: 1px solid var(--line);
      padding: 28px 24px 24px;
      min-height: 220px;
    }

    .step b {
      display: block;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 42px;
      font-weight: 500;
      color: var(--green);
      line-height: 1;
      margin-bottom: 12px;
    }

    .step h3 { margin: 0 0 8px; font-size: 20px; }
    .step p { color: var(--ink-soft); font-size: 15px; }

    .trade {
      min-height: 148px;
      padding: 20px 18px 18px;
      transition: transform 600ms ease-out, border-color 600ms ease-out;
    }

    .trade:hover { transform: translateY(-3px); border-color: var(--green); }
    .trade em { display: block; margin-top: 10px; font-style: normal; font-size: 13px; color: var(--green); }

    .split-feature {
      display: grid;
      grid-template-columns: 1.2fr 0.8fr;
      gap: 16px;
      align-items: stretch;
    }

    .feature-main {
      background: var(--green);
      color: var(--paper);
      padding: 36px 32px;
      min-height: 280px;
      height: 100%;
      text-decoration: none;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      transition: transform 700ms ease-out;
    }

    .feature-main:hover { transform: translateY(-3px); }
    .feature-main .kicker { color: #D5E5DE; }
    .feature-main h3 { color: var(--paper); font-size: 28px; margin: 8px 0; }
    .feature-main p { color: rgba(244,241,234,0.82); }

    .feature-side { display: flex; flex-direction: column; gap: 16px; }
    .feature-side a { flex: 1; min-height: 132px; }
    .feature-side .card {
      display: flex;
      flex-direction: column;
    }
    .feature-side .card .more { margin-top: auto; }

    .page-body .split-feature { margin-top: 8px; }
    .page-body .trust-grid { margin-top: 8px; }

    .tools-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }

    .tools-row {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(160px, 200px));
      gap: 10px;
      margin-top: 8px;
    }

    .tool-tile {
      background: var(--paper-card);
      border: 1px solid var(--line);
      color: inherit;
      padding: 18px 16px;
      text-align: left;
      text-decoration: none;
      min-height: 140px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      transition: border-color 280ms;
    }

    .tool-tile:hover { border-color: var(--green); }
    .tool-tile b {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 18px;
      font-weight: 600;
      color: var(--green);
    }
    .tool-tile strong { display: block; font-size: 16px; margin: 10px 0 4px; }
    .tool-tile > span:not(.more) { display: block; font-size: 13px; color: var(--ink-soft); }
    .tool-tile .more { margin-top: auto; justify-content: center; }

    .tools-row .tool-tile { border-style: dashed; max-width: 200px; }

    .kosten-tools-mob { display: none; }
    @media (max-width: 860px) {
      .kosten-tools-mob {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 16px;
        margin-top: 14px;
        font-size: 14px;
        font-weight: 600;
      }
      .kosten-tools-mob a {
        display: inline-block;
        padding: 8px 16px;
        background: var(--green);
        color: var(--paper);
        border-radius: 2em;
      }
    }

    .kosten-head { padding-bottom: 8px; }
    .kosten-head-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 260px;
      gap: 28px 48px;
      align-items: end;
    }
    .kosten-head .lead {
      max-width: 32ch;
      margin-top: 12px;
    }
    .kosten-head-meta {
      border-left: 1px solid var(--line);
      padding: 2px 0 2px 22px;
    }
    .kosten-head-meta p {
      margin: 0 0 12px;
      font-size: 13px;
      color: var(--ink-soft);
      line-height: 1.45;
    }
    .kosten-head-meta p:last-child { margin-bottom: 0; }
    .kosten-head-meta strong {
      display: block;
      color: var(--green);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-bottom: 3px;
    }

    section.kosten-index {
      padding-top: 12px;
      padding-bottom: 8px;
    }

    .kosten-gewerk.is-nav {
      align-items: center;
      padding: 14px 0;
    }
    .kosten-gewerk.is-nav .kosten-gewerk-name {
      margin-top: 2px;
      font-size: 12px;
    }
    .kosten-gewerk.is-nav .kosten-gewerk-name span {
      font-family: inherit;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--ink-soft);
    }

    .kosten-jump {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 20px;
      margin: 0;
    }
    .kosten-jump a {
      color: var(--green);
      font-size: 14px;
      font-weight: 600;
      text-decoration: none;
      padding: 2px 0;
      background-image: linear-gradient(var(--green), var(--green));
      background-size: 0 1px;
      background-position: 0 100%;
      background-repeat: no-repeat;
      transition: background-size 280ms ease-out;
    }
    .kosten-jump a:hover { background-size: 100% 1px; }

    .kosten-gewerk {
      display: grid;
      grid-template-columns: 160px minmax(0, 1fr);
      gap: 12px 32px;
      align-items: start;
      padding: 18px 0;
      border-top: 1px solid var(--line);
      scroll-margin-top: 88px;
    }

    .kosten-gewerk-name {
      margin: 14px 0 0;
      font-size: 13px;
      color: var(--ink-soft);
      line-height: 1.35;
    }
    .kosten-gewerk-name span {
      display: block;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 17px;
      font-weight: 600;
      color: var(--green);
      margin-bottom: 2px;
    }

    .kosten-list {
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
    }
    .kosten-list:has(> .kosten-row:nth-child(2)) {
      grid-template-columns: 1fr 1fr;
    }
    .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row {
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 6px 12px;
    }
    .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row-copy { grid-column: 1; }
    .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row-price { grid-column: 1; }
    .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row-go {
      grid-column: 2;
      grid-row: 1 / span 2;
      align-self: center;
    }

    .kosten-more { grid-column: 1 / -1; }
    .kosten-more summary {
      cursor: pointer;
      color: var(--green);
      font-size: 14px;
      font-weight: 600;
      padding: 6px 0 2px;
      list-style: none;
    }
    .kosten-more summary::-webkit-details-marker { display: none; }
    .kosten-more[open] summary { margin-bottom: 8px; }

    .kosten-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center;
      gap: 12px 24px;
      padding: 16px 18px;
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      text-decoration: none;
      color: inherit;
      transition: border-color 280ms ease-out, box-shadow 280ms ease-out, transform 280ms ease-out;
    }
    .kosten-row:hover {
      border-color: var(--green);
      transform: translateY(-2px);
      box-shadow: 0 8px 22px rgba(27, 77, 62, 0.1);
    }
    .kosten-row-copy { min-width: 0; }
    .kosten-row-copy strong {
      display: block;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 18px;
      font-weight: 600;
      margin-bottom: 3px;
    }
    .kosten-row-copy > span {
      display: block;
      font-size: 13px;
      color: var(--ink-soft);
    }
    .kosten-row-price {
      font-size: 15px;
      font-weight: 600;
      color: var(--green);
      white-space: nowrap;
      font-variant-numeric: tabular-nums;
    }
    .kosten-row-go {
      color: var(--amber);
      font-weight: 600;
      font-size: 18px;
      line-height: 1;
      transition: transform 280ms ease-out;
    }
    .kosten-row:hover .kosten-row-go { transform: translateX(5px); }

    body.is-kosten { scroll-behavior: smooth; }
    .kosten-head h1 {
      animation: kosten-in 640ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
    }
    .kosten-head .lead,
    .kosten-head-meta {
      animation: kosten-in 640ms cubic-bezier(0.22, 0.61, 0.36, 1) 90ms both;
    }
    .kosten-gewerk.js-rise {
      transform: translateY(16px);
      transition: opacity 560ms cubic-bezier(0.22, 0.61, 0.36, 1),
                  transform 560ms cubic-bezier(0.22, 0.61, 0.36, 1);
    }
    @keyframes kosten-in {
      from { opacity: 0; transform: translateY(12px); }
      to { opacity: 1; transform: none; }
    }

    @media (max-width: 860px) {
      .kosten-head-grid { grid-template-columns: 1fr; gap: 18px; }
      .kosten-head .lead { max-width: none; }
      .kosten-head-meta {
        border-left: none;
        border-top: 1px solid var(--line);
        padding: 16px 0 0;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 12px;
      }
      .kosten-gewerk { grid-template-columns: 1fr; gap: 8px; padding: 16px 0; }
      .kosten-gewerk.is-nav { padding: 14px 0; }
      .kosten-gewerk-name { margin: 0; }
      .kosten-list:has(> .kosten-row:nth-child(2)) { grid-template-columns: 1fr; }
      .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row {
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center;
        gap: 12px 24px;
      }
      .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row-copy,
      .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row-price,
      .kosten-list:has(> .kosten-row:nth-child(2)) .kosten-row-go {
        grid-column: auto;
        grid-row: auto;
      }
    }
    @media (max-width: 560px) {
      .kosten-head-meta {
        grid-template-columns: 1fr;
        gap: 8px;
      }
      .kosten-head-meta p {
        display: flex;
        gap: 10px;
        align-items: baseline;
        margin: 0;
      }
      .kosten-head-meta strong {
        display: inline;
        min-width: 2.6em;
        letter-spacing: 0.04em;
      }
      .kosten-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
        padding: 14px;
      }
      .kosten-row-go { display: none; }
    }

    section.kosten-close {
      padding-top: 36px;
      padding-bottom: 8px;
    }
    .kosten-close h2 {
      font-size: 16px;
      margin-bottom: 14px;
    }
    .kosten-close-notes {
      padding-top: 8px;
      border-top: 1px solid var(--line);
    }
    .kosten-close-notes ul {
      list-style: none;
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 20px 28px;
    }
    .kosten-close-notes li {
      font-size: 13px;
      color: var(--ink-soft);
      line-height: 1.5;
    }
    .kosten-close-notes strong {
      display: block;
      color: var(--ink);
      font-size: 14px;
      font-weight: 600;
      margin-bottom: 4px;
    }
    .kosten-close-next {
      margin-top: 28px;
    }
    .kosten-close-links {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 10px;
    }
    .kosten-close-links a {
      display: block;
      padding: 14px 16px;
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      text-decoration: none;
      color: inherit;
      font-size: 15px;
      font-weight: 600;
      transition: border-color 280ms ease-out, transform 280ms ease-out, box-shadow 280ms ease-out;
    }
    .kosten-close-links a:hover {
      border-color: var(--green);
      transform: translateY(-2px);
      box-shadow: 0 8px 22px rgba(27, 77, 62, 0.1);
    }
    .kosten-close-links span {
      display: block;
      margin-top: 3px;
      font-size: 13px;
      font-weight: 400;
      color: var(--ink-soft);
    }
    .kosten-close-faq {
      margin-top: 32px;
    }
    .kosten-close .faq-home {
      max-width: none;
      border-top: 1px solid var(--line);
    }
    .kosten-close .faq-home summary {
      font-size: 15px;
      padding: 12px 2px;
    }
    .kosten-close .faq-home summary::before {
      font-size: 13px;
      color: var(--ink-soft);
    }
    .kosten-close .faq-home details p {
      padding-bottom: 16px;
    }

    @media (max-width: 860px) {
      .kosten-close-notes ul,
      .kosten-close-links { grid-template-columns: 1fr; }
    }

    .foerd-hero {
      background: var(--green);
      color: var(--paper);
      padding: 20px 0 28px;
    }
    .foerd-hero .crumb {
      color: rgba(244,241,234,0.62);
      margin-bottom: 14px;
    }
    .foerd-hero .crumb a { color: rgba(244,241,234,0.85); }
    .foerd-hero .kicker { color: #D5E5DE; margin-bottom: 6px; }
    .foerd-hero h1 {
      max-width: 14ch;
      font-size: 28px;
      color: var(--paper);
      animation: foerd-fade 560ms ease-out both;
    }
    .foerd-hero-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 240px;
      gap: 20px 48px;
      align-items: end;
    }
    .foerd-num {
      margin: 10px 0 4px;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 72px;
      font-weight: 600;
      line-height: 0.88;
      letter-spacing: -0.04em;
      animation: foerd-num 720ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
    }
    .foerd-num-note {
      max-width: 36ch;
      font-size: 15px;
      color: rgba(244,241,234,0.82);
      line-height: 1.45;
      animation: foerd-fade 560ms ease-out 80ms both;
    }
    .foerd-hero-act {
      padding: 0 0 2px 28px;
      border-left: 1px solid rgba(244,241,234,0.22);
      animation: foerd-act 640ms cubic-bezier(0.22, 0.61, 0.36, 1) 120ms both;
    }
    .foerd-act-label {
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #D5E5DE;
      font-weight: 600;
      margin-bottom: 10px;
    }
    .foerd-hero-act .btn-amber {
      padding: 12px 16px;
      font-size: 14px;
    }
    .foerd-geg {
      margin-top: 14px;
      font-size: 14px;
      color: rgba(244,241,234,0.78);
      line-height: 1.45;
    }
    .foerd-geg a {
      color: var(--paper);
      font-weight: 600;
      text-decoration: none;
      background-image: linear-gradient(var(--paper), var(--paper));
      background-size: 0 1px;
      background-position: 0 100%;
      background-repeat: no-repeat;
      transition: background-size 280ms ease-out;
    }
    .foerd-geg a:hover { background-size: 100% 1px; }

    .foerd-index { padding: 24px 0 4px; }
    .foerd-index-note {
      font-size: 13px;
      color: var(--ink-soft);
      margin-bottom: 8px;
    }
    .foerd-group {
      padding: 18px 0 8px;
      border-top: 1px solid var(--line);
    }
    .foerd-group h2 {
      font-size: 16px;
      margin-bottom: 8px;
    }
    .foerd-list { display: grid; gap: 0; }
    .foerd-list:has(> .foerd-row:nth-child(2)) {
      grid-template-columns: 1fr 1fr;
      gap: 0 32px;
    }
    .foerd-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 16px;
      align-items: start;
      padding: 12px 0;
      text-decoration: none;
      border-bottom: 1px solid var(--line);
      transition: padding-left 280ms ease-out;
    }
    .foerd-row:hover { padding-left: 8px; }
    .foerd-row:hover strong { color: var(--green); }
    .foerd-row-copy strong {
      display: block;
      font-size: 16px;
    }
    .foerd-row-copy span {
      display: block;
      margin-top: 3px;
      font-size: 14px;
      color: var(--ink-soft);
    }
    .foerd-row-tag {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 18px;
      font-weight: 600;
      color: var(--green);
      white-space: nowrap;
      padding-top: 1px;
      transition: transform 280ms ease-out;
    }
    .foerd-row:hover .foerd-row-tag { transform: scale(1.08); }

    body.is-foerd { scroll-behavior: smooth; }
    .foerd-group.js-rise,
    .foerd-more.js-rise,
    .foerd-faq.js-rise {
      transform: translateY(14px);
      transition: opacity 560ms cubic-bezier(0.22, 0.61, 0.36, 1),
                  transform 560ms cubic-bezier(0.22, 0.61, 0.36, 1);
    }
    @keyframes foerd-fade {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: none; }
    }
    @keyframes foerd-num {
      from { opacity: 0; transform: scale(0.86); }
      to { opacity: 1; transform: none; }
    }
    @keyframes foerd-act {
      from { opacity: 0; transform: translateX(16px); }
      to { opacity: 1; transform: none; }
    }

    .foerd-more {
      margin: 8px 0 8px;
      border-top: 1px solid var(--line);
      border-bottom: none;
    }
    .foerd-more summary {
      font-size: 16px;
      color: var(--green);
    }
    .foerd-more dl {
      padding-bottom: 8px;
    }
    .foerd-more div {
      display: grid;
      grid-template-columns: 6em minmax(0, 1fr);
      gap: 12px;
      padding: 10px 0;
      border-top: 1px solid var(--line);
    }
    .foerd-more dt { font-weight: 600; }
    .foerd-more dd {
      margin: 0;
      font-size: 14px;
      color: var(--ink-soft);
    }

    section.foerd-faq { padding-top: 8px; }
    .foerd-faq h2 { font-size: 16px; }
    .foerd-faq .faq-home {
      max-width: none;
      border-top: 1px solid var(--line);
    }
    .foerd-faq .faq-home summary {
      font-size: 15px;
      padding: 12px 2px;
    }

    @media (max-width: 720px) {
      .foerd-hero { padding: 16px 0 22px; }
      .foerd-hero h1 { font-size: 24px; }
      .foerd-hero-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        align-items: start;
      }
      .foerd-num { font-size: 56px; margin: 8px 0 2px; }
      .foerd-hero-act {
        padding: 14px 0 0;
        border-left: none;
        border-top: 1px solid rgba(244,241,234,0.22);
      }
      .foerd-list:has(> .foerd-row:nth-child(2)) {
        grid-template-columns: 1fr;
        gap: 0;
      }
    }

    .emerge {
      background: var(--green);
      color: var(--paper);
      padding: 64px 0;
    }

    .emerge h2 { color: var(--paper); }
    .emerge .lead { color: rgba(244,241,234,0.8); }
    .emerge-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 24px; }
    .emerge-grid a {
      border: 1px solid rgba(244,241,234,0.28);
      padding: 20px 16px;
      text-decoration: none;
      color: var(--paper);
      transition: background 500ms ease-out;
    }
    .emerge-grid a:hover { background: rgba(244,241,234,0.08); }
    .emerge-grid span { display: block; margin-top: 4px; font-size: 13px; opacity: 0.75; }

    .nd-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 240px;
      gap: 28px 40px;
      align-items: end;
      padding: 28px 0 8px;
    }
    .nd-head h1 {
      max-width: none;
      font-size: 40px;
    }
    .nd-head .lead { margin-top: 10px; max-width: 32ch; }
    .nd-112 {
      position: relative;
      overflow: hidden;
      background: var(--green);
      color: var(--paper);
      padding: 20px 20px 18px;
      border-radius: var(--radius);
    }
    .nd-112::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      right: 0;
      height: 2px;
      background: #D5E5DE;
      transform: scaleX(0);
      transform-origin: left;
    }
    .nd-112-kicker {
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
      color: #D5E5DE;
      margin: 0 0 6px;
    }
    .nd-112-num {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 48px;
      font-weight: 600;
      line-height: 0.9;
      letter-spacing: -0.03em;
      margin: 0 0 8px;
    }
    .nd-112 p {
      margin: 0;
      font-size: 14px;
      color: rgba(244,241,234,0.82);
    }
    .nd-112 .btn-amber { margin-top: 16px; }
    .nd-pick { padding: 22px 0 48px; }
    .nd-step {
      font-size: 15px;
      color: var(--ink-soft);
      margin-bottom: 16px;
      max-width: 52ch;
    }
    .nd-pick article {
      overflow: hidden;
      background: var(--green);
      color: var(--paper);
      padding: 18px 18px 16px;
      margin-bottom: 10px;
      border-radius: var(--radius);
    }
    .nd-pick h2 {
      font-size: 22px;
      color: var(--paper);
      margin-bottom: 8px;
    }
    .nd-pick h2 span {
      margin-left: 10px;
      font-family: "Source Sans 3", sans-serif;
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
      color: #D5E5DE;
    }
    .nd-pick article > p {
      margin: 0;
      font-size: 15px;
      color: rgba(244,241,234,0.82);
    }
    .nd-pick .nd-cities {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding: 12px 0 0;
    }
    .nd-pick .nd-cities a {
      background: var(--paper);
      color: var(--green);
      border: none;
      border-radius: var(--radius);
      padding: 9px 12px;
      font-size: 14px;
      font-weight: 600;
      text-decoration: none;
      transition: background 220ms ease-out, color 220ms ease-out;
    }
    .nd-pick .nd-cities a:hover {
      background: #163e32;
      color: var(--paper);
    }
    .nd-next {
      margin-top: 22px;
      font-size: 14px;
      color: var(--ink-soft);
    }
    .nd-next a { color: var(--green); font-weight: 600; }

    body.is-nd { scroll-behavior: smooth; }
    @keyframes nd-copy {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    @keyframes nd-drop {
      from { opacity: 0; transform: translateY(-16px); }
      to { opacity: 1; transform: none; }
    }
    @keyframes nd-stripe {
      from { transform: scaleX(0); }
      to { transform: scaleX(1); }
    }
    @keyframes nd-unfold {
      from { clip-path: inset(0 0 100% 0); }
      to { clip-path: inset(0); }
    }
    .nd-head .kicker { animation: nd-copy 480ms ease-out both; }
    .nd-head h1 { animation: nd-copy 480ms ease-out 70ms both; }
    .nd-head .lead { animation: nd-copy 480ms ease-out 140ms both; }
    .nd-112 { animation: nd-drop 640ms cubic-bezier(0.22, 0.61, 0.36, 1) 80ms both; }
    .nd-112::before { animation: nd-stripe 520ms ease-out 280ms both; }
    .nd-step { animation: nd-copy 480ms ease-out 220ms both; }
    .nd-pick article { animation: nd-unfold 600ms cubic-bezier(0.22, 0.61, 0.36, 1) both; }
    .nd-pick article:nth-of-type(1) { animation-delay: 200ms; }
    .nd-pick article:nth-of-type(2) { animation-delay: 300ms; }
    .nd-pick article:nth-of-type(3) { animation-delay: 400ms; }
    .nd-pick article:nth-of-type(4) { animation-delay: 500ms; }
    .nd-next { animation: nd-copy 480ms ease-out 640ms both; }

    @media (max-width: 720px) {
      .nd-head { grid-template-columns: 1fr; gap: 18px; }
      .nd-head h1 { font-size: 32px; }
      .nd-pick h2 { font-size: 20px; }
    }

    /* 紧急城页：急救单，不要套总入口绿卡、费用目录、杂志主推 */
    .ndc-head { padding: 28px 0 8px; max-width: 46em; }
    .ndc-head h1 { max-width: 12ch; font-size: 36px; }
    .ndc-gewerk {
      margin-top: 4px;
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--green);
    }
    .ndc-head .lead { max-width: 38ch; }
    .ndc-body { padding: 16px 0 48px; max-width: 46em; }
    .ndc-empty {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 18px 20px 16px;
      margin-bottom: 28px;
    }
    .ndc-empty-kicker {
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--green);
      margin-bottom: 6px;
    }
    .ndc-empty strong {
      display: block;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 20px;
      font-weight: 600;
      margin-bottom: 6px;
    }
    .ndc-empty p { margin: 0; font-size: 15px; color: var(--ink-soft); }
    .ndc-empty a { color: var(--green); font-weight: 600; }
    .ndc-phone {
      display: grid;
      grid-template-columns: 72px minmax(0, 1fr);
      gap: 18px;
      align-items: start;
      background: var(--green);
      color: var(--paper);
      border-radius: var(--radius);
      padding: 20px 22px 18px;
      margin-bottom: 28px;
      text-decoration: none;
    }
    .ndc-phone .logo-mark {
      width: 72px;
      height: 72px;
      font-size: 28px;
      background: #fff;
      color: var(--green);
    }
    .ndc-phone .ndc-empty-kicker { color: #D5E5DE; }
    .ndc-tel-num {
      display: block;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 34px;
      font-weight: 600;
      line-height: 1;
      letter-spacing: -0.03em;
      margin: 4px 0 10px;
    }
    .ndc-phone h2 {
      font-size: 16px;
      color: var(--paper);
      margin: 0 0 4px;
    }
    .ndc-phone h2 .badge {
      border-color: #D5E5DE;
      color: #D5E5DE;
    }
    .ndc-phone p {
      margin: 0;
      font-size: 14px;
      color: rgba(244,241,234,0.82);
    }
    .ndc-steps h2 { font-size: 16px; margin-bottom: 12px; }
    .ndc-steps ol {
      list-style: none;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      padding: 0;
      margin: 0;
    }
    .ndc-steps li {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 16px 16px 14px;
    }
    .ndc-n {
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 32px;
      height: 32px;
      margin-bottom: 10px;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 20px;
      font-weight: 600;
      color: var(--green);
      z-index: 0;
    }
    .ndc-n::before {
      content: "";
      position: absolute;
      inset: 0;
      background: #E4EDE9;
      border-radius: 3px;
      transform: scaleY(0);
      transform-origin: bottom;
      z-index: -1;
    }
    .ndc-steps p { margin: 0; font-size: 15px; }
    .ndc-act { margin: 22px 0 28px; }
    .ndc-switch { padding-top: 8px; border-top: 1px solid var(--line); }
    .ndc-switch p {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 10px;
      align-items: center;
      margin: 0 0 10px;
      font-size: 14px;
    }
    .ndc-switch span {
      color: var(--ink-soft);
      min-width: 5.5em;
    }
    .ndc-switch a,
    .ndc-switch em {
      font-style: normal;
      font-weight: 600;
      font-size: 13px;
      text-decoration: none;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 6px 10px;
    }
    .ndc-switch a:hover { border-color: var(--green); color: var(--green); }
    .ndc-switch em {
      background: var(--green);
      border-color: var(--green);
      color: var(--paper);
    }
    .ndc-phone + .ndc-know { margin: -18px 0 24px; }
    .ndc-know {
      margin-top: 18px;
      font-size: 14px;
      color: var(--ink-soft);
    }
    .ndc-know a { color: var(--green); font-weight: 600; }
    .ndc-stick { display: none; }

    body.is-ndc { scroll-behavior: smooth; }
    @keyframes ndc-fade {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    @keyframes ndc-lock {
      from { opacity: 0; letter-spacing: 0.1em; }
      to { opacity: 1; letter-spacing: -0.03em; }
    }
    @keyframes ndc-fill {
      from { transform: scaleY(0); }
      to { transform: scaleY(1); }
    }
    .ndc-head .kicker { animation: ndc-fade 480ms ease-out both; }
    .ndc-head h1 { animation: ndc-fade 480ms ease-out 60ms both; }
    .ndc-gewerk,
    .ndc-head .lead { animation: ndc-fade 480ms ease-out 120ms both; }
    .ndc-empty { animation: ndc-fade 480ms ease-out 160ms both; }
    .ndc-phone { animation: ndc-fade 480ms ease-out 160ms both; }
    .ndc-tel-num { animation: ndc-lock 640ms cubic-bezier(0.22, 0.61, 0.36, 1) 220ms both; }
    .ndc-steps li { animation: ndc-fade 420ms ease-out both; }
    .ndc-steps li:nth-child(1) { animation-delay: 240ms; }
    .ndc-steps li:nth-child(2) { animation-delay: 320ms; }
    .ndc-steps li:nth-child(3) { animation-delay: 400ms; }
    .ndc-steps li:nth-child(1) .ndc-n::before { animation: ndc-fill 420ms ease-out 280ms both; }
    .ndc-steps li:nth-child(2) .ndc-n::before { animation: ndc-fill 420ms ease-out 360ms both; }
    .ndc-steps li:nth-child(3) .ndc-n::before { animation: ndc-fill 420ms ease-out 440ms both; }

    @media (max-width: 720px) {
      .ndc-head h1 { font-size: 30px; }
      .ndc-steps ol { grid-template-columns: 1fr; }
      .ndc-steps li {
        display: grid;
        grid-template-columns: 32px minmax(0, 1fr);
        gap: 12px;
        align-items: start;
      }
      .ndc-n { margin-bottom: 0; }
      .ndc-tel-num { font-size: 28px; }
      .ndc-phone { grid-template-columns: 56px 1fr; gap: 14px; padding: 16px; }
      body.is-ndc.has-24h { padding-bottom: 72px; }
      body.is-ndc.has-24h .ndc-stick {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 24;
        background: var(--green);
        padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
      }
      body.is-ndc.has-24h .ndc-stick .btn-amber { width: 100%; text-align: center; }
    }

    .legal-head { padding: 28px 0 8px; }
    .legal-head h1 { max-width: 12ch; font-size: 36px; }
    .legal-head .lead { max-width: 52ch; }
    .legal-stage {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 200px;
      gap: 40px;
      align-items: start;
      padding: 16px 0 48px;
    }
    .legal-card {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 18px 20px 16px;
      margin-bottom: 12px;
    }
    .legal-card h2 {
      font-size: 16px;
      margin: 0 0 8px;
    }
    .legal-card p { margin: 0 0 8px; font-size: 15px; color: var(--ink-soft); }
    .legal-card p:last-child { margin-bottom: 0; }
    .legal-card a { color: var(--green); font-weight: 600; text-decoration: none; }
    .legal-card a:hover { color: var(--green-deep); }
    .legal-stand { font-size: 13px; }
    .legal-dl { margin: 0; }
    .legal-card .legal-dl { margin-top: 10px; }
    .legal-dl div {
      display: grid;
      grid-template-columns: 7em minmax(0, 1fr);
      gap: 8px 16px;
      padding: 10px 0;
      border-bottom: 1px solid var(--line);
    }
    .legal-dl-wide div { grid-template-columns: 8.5em minmax(0, 1fr); }
    .legal-dl div:last-child { border-bottom: none; padding-bottom: 0; }
    .legal-dl div:first-child { padding-top: 0; }
    .legal-dl dt { font-size: 13px; font-weight: 600; color: var(--green); padding-top: 2px; }
    .legal-dl dd { margin: 0; font-size: 15px; }
    .legal-wait { color: var(--ink-soft); }
    .legal-points {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin: 0 0 12px;
    }
    .legal-points div {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 14px 16px;
    }
    .legal-points strong { display: block; font-size: 15px; margin-bottom: 4px; }
    .legal-points p { margin: 0; font-size: 14px; color: var(--ink-soft); }
    .legal-src {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 4px 16px;
      padding: 10px 0;
      border-bottom: 1px solid var(--line);
      font-size: 15px;
    }
    .legal-src:last-child { border-bottom: none; }
    .legal-src span { color: var(--ink-soft); font-size: 13px; }
    .legal-rail {
      position: sticky;
      top: 88px;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .legal-rail a,
    .legal-rail em {
      font-style: normal;
      font-weight: 600;
      font-size: 14px;
      text-decoration: none;
      padding: 8px 10px;
      border-radius: var(--radius);
    }
    .legal-rail a { color: var(--ink-soft); }
    .legal-rail a:hover { color: var(--green); }
    .legal-rail em {
      background: var(--green);
      color: var(--paper);
    }
    .legal-form { margin-top: 4px; }
    @media (max-width: 720px) {
      .legal-head h1 { font-size: 30px; }
      .legal-stage { grid-template-columns: 1fr; gap: 28px; }
      .legal-rail { position: static; flex-direction: row; flex-wrap: wrap; }
      .legal-points { grid-template-columns: 1fr; }
      .legal-dl div,
      .legal-dl-wide div { grid-template-columns: 1fr; gap: 2px; }
    }

    .faq-home {
      max-width: var(--prose);
      counter-reset: faq;
      border-top: 2px solid var(--green);
    }

    .faq-home details {
      padding: 0;
      border-bottom: 1px solid var(--line);
      counter-increment: faq;
    }

    .faq-home details:last-child { border-bottom: 1px solid var(--line); }

    .faq-home summary {
      display: grid;
      grid-template-columns: 2.2em 1fr 14px;
      align-items: center;
      gap: 10px 14px;
      padding: 20px 2px;
      font-size: 17px;
      font-weight: 600;
      line-height: 1.35;
      transition: color 280ms ease-out;
    }

    .faq-home summary::before {
      content: counter(faq, decimal-leading-zero);
      font-family: "Source Serif 4", Georgia, serif;
      font-weight: 500;
      font-size: 15px;
      letter-spacing: 0.04em;
      color: var(--green);
    }

    .faq-home summary::after {
      content: "";
      width: 12px;
      height: 12px;
      justify-self: end;
      background:
        linear-gradient(var(--green), var(--green)) center / 12px 1.5px no-repeat,
        linear-gradient(var(--green), var(--green)) center / 1.5px 12px no-repeat;
      transition: background 220ms ease-out, transform 220ms ease-out;
    }

    .faq-home details[open] summary {
      color: var(--green);
      padding-bottom: 8px;
    }

    .faq-home details[open] summary::after {
      background: linear-gradient(var(--green), var(--green)) center / 12px 1.5px no-repeat;
    }

    .faq-home details p {
      margin: 0;
      padding: 0 28px 20px calc(2.2em + 14px);
      max-width: 54ch;
      font-size: 15px;
      line-height: 1.65;
    }

    .faq-home code {
      font-size: 0.92em;
      background: var(--paper);
      padding: 1px 6px;
      border-radius: 3px;
    }
    .trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
    .trust {
      border-top: 3px solid var(--green);
      background: var(--paper-card);
      padding: 20px 18px 18px;
    }
    .trust strong { display: block; margin-bottom: 6px; }
    .trust p { font-size: 14px; color: var(--ink-soft); }

    .about-grid {
      display: grid;
      grid-template-columns: 1.2fr 0.8fr;
      gap: 40px;
      align-items: start;
    }

    .js-rise {
      opacity: 0;
      transform: translateY(48px);
      transition: opacity 900ms ease-out, transform 900ms ease-out;
    }

    .js-rise.in { opacity: 1; transform: none; }

    @keyframes popin {
      from { opacity: 0; transform: scale(0.05); }
      to { opacity: 1; transform: scale(1); }
    }

    .totop {
      position: fixed;
      right: 22px;
      bottom: 22px;
      z-index: 26;
    }

    /* —— 列表页 —— */
    .list-layout {
      display: flex;
      flex-direction: column;
      padding-top: 12px;
    }

    .side {
      position: fixed;
      right: 0;
      top: 28%;
      z-index: 16;
      display: flex;
      flex-direction: column;
      gap: 10px;
      width: 8.6em;
    }

    .side > a,
    .side .card {
      display: block;
      background: #D5E5DE;
      border: 0;
      border-radius: 2em 0 0 2em;
      padding: 12px 12px 12px 14px;
      box-shadow: 0 2px 8px rgba(18,54,44,0.12);
      text-decoration: none;
      color: var(--ink);
      text-align: center;
      font-size: 13px;
      font-weight: 600;
      line-height: 1.25;
      transition: background 600ms ease-out, color 600ms ease-out, transform 600ms ease-out;
    }

    .side > a span {
      display: block;
      margin-top: 4px;
      font-size: 12px;
      font-weight: 500;
      color: var(--green);
    }

    .side > a:not(.side-nd) {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 15px;
      font-weight: 600;
    }

    .side > a:not(.side-nd) span {
      font-family: "Source Sans 3", "Helvetica Neue", sans-serif;
    }

    @media (min-width: 861px) {
      .page-with-side .wrap {
        padding-right: max(24px, calc(8.6em + 18px));
      }
    }

    .side > a:hover,
    .side .card:hover {
      background: var(--amber);
      color: #fff;
      transform: translateX(-4px);
    }

    .side > a:hover span { color: #fff; }

    .side > a.side-nd {
      background: var(--amber);
      color: #fff;
    }

    .side > a.side-nd span { color: rgba(255, 255, 255, 0.88); }

    .side > a.side-nd:hover {
      background: var(--amber-hover);
      color: #fff;
    }

    .side .card h2 {
      font-size: 14px;
      margin: 0 0 4px;
    }

    .side .card .meta,
    .side .card .sub,
    .side .card table { display: none; }

    .side .card p { margin: 0; }

    .side .btn-ghost {
      display: block;
      border: 0;
      background: transparent;
      padding: 2px 0 0;
      font-size: 12px;
      color: var(--green);
    }

    .side .card:hover .btn-ghost { color: #fff; }

    @media (max-width: 860px) {
      .side {
        position: static;
        order: -1;
        width: auto;
        flex-direction: row;
        flex-wrap: wrap;
        margin: 0 0 18px;
      }

      .page-with-side > .side {
        margin: 16px 24px 8px;
      }

      .side > a,
      .side .card {
        flex: 1;
        min-width: 7em;
        border-radius: var(--radius);
        box-shadow: none;
        border: 1px solid var(--line);
      }

      .side > a:hover,
      .side .card:hover { transform: none; }
    }

    .list-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 12px 22px;
      margin: 0 0 22px;
    }

    .list-toolbar .filters { margin: 0; }

    .gegend {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .gegend > span {
      color: var(--green);
      font-size: 14px;
      font-weight: 600;
    }

    .gegend-pick { position: relative; }

    .gegend-choice {
      appearance: none;
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      min-width: 11em;
      padding: 8px 16px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #FFFcf6;
      color: var(--ink);
      font: 600 14px/1.2 "Source Sans 3", sans-serif;
      cursor: pointer;
    }

    .gegend-choice i {
      width: 8px;
      height: 8px;
      margin-top: -2px;
      border-right: 1.5px solid var(--green);
      border-bottom: 1.5px solid var(--green);
      transform: rotate(45deg);
    }

    .gegend-pick.is-open .gegend-choice i {
      margin-top: 4px;
      transform: rotate(-135deg);
    }

    .gegend-choice:focus-visible {
      outline: 2px solid var(--amber);
      outline-offset: 2px;
    }

    .gegend-panel {
      display: none;
      position: absolute;
      z-index: 12;
      top: calc(100% + 8px);
      left: 0;
      min-width: 260px;
      max-height: 380px;
      overflow: auto;
      padding: 8px;
      background: #fff;
      border-radius: 10px;
      box-shadow: 0 12px 28px rgba(18, 54, 44, 0.16);
    }

    .gegend-pick.is-open .gegend-panel { display: block; }

    .gegend-panel button {
      display: block;
      width: 100%;
      padding: 9px 12px;
      border: 0;
      border-radius: 6px;
      background: transparent;
      color: var(--ink);
      font: 500 14px/1.35 "Source Sans 3", sans-serif;
      text-align: left;
      cursor: pointer;
    }

    .gegend-panel button:hover,
    .gegend-panel button:focus {
      background: #E8EDE8;
      color: var(--green);
      outline: none;
    }

    .gegend-panel button.is-on {
      background: var(--green);
      color: var(--paper);
    }

    .gegend-panel .district-label {
      margin: 8px 4px 4px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--ink-soft);
    }

    .filters {
      display: inline-flex;
      gap: 3px;
      align-items: center;
      margin: 0 0 22px;
      padding: 4px;
      background: #D5E5DE;
      border-radius: 999px;
      box-shadow: 0 2px 8px rgba(18, 54, 44, 0.10);
    }

    .filters button {
      appearance: none;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 4.8em;
      cursor: pointer;
      padding: 8px 18px;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: var(--green);
      font: inherit;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.03em;
      line-height: 1.2;
      white-space: nowrap;
      transition: background 450ms ease-out, color 450ms ease-out, box-shadow 450ms ease-out;
    }

    .filters button:hover:not(.is-on) {
      background: rgba(255, 252, 246, 0.55);
      color: var(--green-deep);
    }

    .filters button.is-on {
      background: var(--green);
      color: var(--paper);
      box-shadow: 0 1px 4px rgba(27, 77, 62, 0.28);
    }

    .filters button:focus-visible {
      outline: 2px solid var(--amber);
      outline-offset: 2px;
    }

    .list-empty {
      margin: 0 0 22px;
      padding: 18px 20px;
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      color: var(--ink-soft);
      font-size: 15px;
    }

    .info-card {
      position: relative;
      display: grid;
      grid-template-columns: 96px 1fr;
      gap: 24px;
      align-items: center;
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 26px 28px;
      margin-bottom: 18px;
    }

    .info-card:hover,
    .info-card:focus-within {
      border-color: var(--green);
    }

    .info-card.is-off { display: none; }

    .logo-mark {
      width: 96px;
      height: 96px;
      background: var(--green);
      color: var(--paper);
      border-radius: var(--radius);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 36px;
      font-weight: 600;
      overflow: hidden;
      flex-shrink: 0;
    }

    .logo-mark.has-photo {
      background: #fff;
      border: 1px solid var(--line);
      padding: 10px;
    }

    .logo-mark.has-photo img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center;
      display: block;
    }

    .info-card h3 { margin: 0 0 14px; font-size: 22px; letter-spacing: 0.01em; }

    .info-card .legal { font-size: 14px; color: var(--ink-soft); margin: -8px 0 14px; }

    .info-card .facts {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .info-card .facts p {
      margin: 0;
      padding: 11px 14px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      font-size: 15px;
      line-height: 1.45;
    }

    .info-card .facts p:first-child { grid-column: 1 / -1; }

    .info-card .facts p.meta {
      grid-column: 1 / -1;
      background: transparent;
      border: 0;
      padding: 4px 2px 0;
      font-size: 13px;
    }

    .info-card a.contact {
      position: relative;
      z-index: 2;
      color: var(--green);
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 3px;
    }
    .info-card a.name { text-decoration: none; color: inherit; }
    .info-card a.name:hover { color: var(--green); }
    .info-card a.name::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      border-radius: inherit;
    }

    .badge {
      display: inline-block;
      border: 1px solid var(--green);
      color: var(--green);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.04em;
      padding: 2px 6px;
      border-radius: 3px;
      margin-left: 6px;
      vertical-align: 2px;
    }

    .side table { margin: 0; }

    /* —— 文章 —— */
    .conclusion {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-left: 4px solid var(--green);
      border-radius: var(--radius);
      padding: 16px 18px;
      margin: 18px 0;
    }

    .toc { margin: 12px 0 8px; padding-left: 18px; }
    .toc a { color: var(--green); }

    .article p, .article li { font-size: 16px; }
    .article p { margin: 10px 0; }
    .article ul, .article ol { margin: 8px 0 12px 1.2em; }
    .article li { margin: 4px 0; }

    table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
      margin: 14px 0 18px;
    }

    th, td {
      text-align: left;
      padding: 8px 8px 8px 0;
      border-bottom: 1px solid var(--line);
      vertical-align: top;
    }

    th { color: var(--ink-soft); font-weight: 500; }

    details {
      border-bottom: 1px solid var(--line);
      padding: 0;
    }

    details summary {
      list-style: none;
      cursor: pointer;
      font-weight: 600;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 14px 0;
    }

    details summary::-webkit-details-marker { display: none; }
    details summary::marker { content: ""; }

    details summary::after {
      content: "";
      flex: 0 0 12px;
      width: 12px;
      height: 12px;
      background:
        linear-gradient(var(--ink-soft), var(--ink-soft)) center / 12px 1.5px no-repeat,
        linear-gradient(var(--ink-soft), var(--ink-soft)) center / 1.5px 12px no-repeat;
      transition: background 220ms ease-out;
    }

    details[open] summary::after {
      background: linear-gradient(var(--ink-soft), var(--ink-soft)) center / 12px 1.5px no-repeat;
    }

    details summary:hover { color: var(--green); }

    details summary:focus { outline: none; }
    details summary:focus-visible {
      outline: 2px solid var(--amber);
      outline-offset: 3px;
    }

    details p {
      margin: 0 0 14px;
      padding-right: 28px;
      color: var(--ink-soft);
      font-size: 15px;
      line-height: 1.6;
    }

    .sources { font-size: 14px; }
    .sources a { color: var(--green); }

    .stop {
      background: #F3E6C8;
      border-radius: var(--radius);
      padding: 14px 16px;
      margin: 16px 0;
    }

    /* —— 结构化文章：费用 / 补贴 / 知识，不像草稿长文 —— */
    body.is-ka { scroll-behavior: smooth; }
    .article.page-head {
      padding-bottom: 56px;
    }
    .article.page-head h1 {
      max-width: 22em;
      font-size: 34px;
      letter-spacing: -0.02em;
    }
    .article > .meta {
      margin: 8px 0 0;
      font-size: 14px;
    }
    .article .conclusion {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-left: 3px solid var(--green);
      border-radius: var(--radius);
      padding: 18px 20px 18px 22px;
      margin: 22px 0 26px;
    }
    .article .conclusion > strong:first-child {
      display: block;
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--green);
      font-weight: 600;
      margin-bottom: 8px;
    }
    .article .ka-toc-k,
    .article > p:has(+ ol.toc) {
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--green);
      margin: 0 0 8px;
    }
    .article ol.toc {
      list-style: none;
      margin: 0 0 32px;
      padding: 14px 18px;
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      display: grid;
      gap: 8px;
    }
    .article ol.toc a {
      text-decoration: none;
      font-weight: 600;
      color: var(--green);
    }
    .article ol.toc a:hover { color: var(--green-deep); }
    .article > h2 {
      margin: 36px 0 12px;
      padding-top: 4px;
    }
    .article > h2::after {
      content: "";
      display: block;
      width: 2.4em;
      height: 2px;
      margin-top: 10px;
      background: var(--green);
      transform-origin: left;
    }
    body.is-ka .article > h2::after {
      animation: ka-bar 480ms ease-out both;
    }
    @keyframes ka-bar {
      from { transform: scaleX(0); }
      to { transform: scaleX(1); }
    }
    .article p { margin: 10px 0 14px; }
    .article table {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-collapse: separate;
      border-spacing: 0;
      border-radius: var(--radius);
      overflow: hidden;
      margin: 8px 0 22px;
      font-size: 15px;
    }
    .article th,
    .article td {
      padding: 12px 14px;
      border-bottom: 1px solid var(--line);
    }
    .article tr:last-child td { border-bottom: none; }
    .article th {
      background: #E4EDE8;
      color: var(--green);
      font-weight: 600;
      font-size: 13px;
    }
    .article td:last-child,
    .article th:last-child {
      font-variant-numeric: tabular-nums;
    }
    .article ul:not(.sources):not(.toc) {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 14px 20px 14px 2em;
      margin: 8px 0 22px;
    }
    .article ol:not(.toc) {
      margin: 8px 0 22px 1.2em;
    }
    .article details {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-bottom: none;
      padding: 0 16px;
      margin: 0;
    }
    .article h2 + details {
      border-radius: var(--radius) var(--radius) 0 0;
      margin-top: 4px;
    }
    .article details:last-of-type {
      border-bottom: 1px solid var(--line);
      border-radius: 0 0 var(--radius) var(--radius);
      margin-bottom: 22px;
    }
    .article details summary { padding: 13px 0; }
    .article .btn-row { margin: 14px 0 8px; }
    .article .btn-ghost { background: var(--paper-card); }
    .article .sources {
      background: transparent;
      border: none;
      padding-left: 1.2em;
      margin: 8px 0 18px;
    }
    .article .sources a { text-decoration: none; }
    .article > .meta:last-child {
      padding-top: 8px;
      border-top: 1px solid var(--line);
    }
    @media (max-width: 720px) {
      .article.page-head h1 { font-size: 28px; }
      .article table { font-size: 13px; }
      .article th,
      .article td { padding: 10px 8px; }
    }

    /* —— 商家详情 —— */
    .betrieb-page {
      padding-bottom: 56px;
    }

    .betrieb-page h1 { max-width: none; }

    .betrieb-page .btn-row { margin-top: 22px; }

    .betrieb-hero {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 24px;
      align-items: center;
      margin-top: 18px;
    }

    .betrieb-hero .logo-mark.lg,
    .logo-mark.lg {
      width: 120px;
      height: 120px;
      font-size: 44px;
      flex-shrink: 0;
    }

    .betrieb-hero h1 {
      margin: 6px 0 0;
      font-size: 28px;
      line-height: 1.25;
      max-width: none;
    }

    .betrieb-hero .legal {
      margin: 8px 0 0;
      font-size: 15px;
      color: var(--ink-soft);
    }

    .betrieb-split {
      display: grid;
      grid-template-columns: 1fr minmax(16em, 22em);
      gap: 18px;
      align-items: stretch;
      margin: 28px 0 0;
    }

    .betrieb-facts {
      margin: 28px 0 0;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--paper-card);
      overflow: hidden;
    }

    .betrieb-split .betrieb-facts { margin: 0; }

    .betrieb-map {
      position: relative;
      min-height: 260px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #D5E5DE;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(18, 54, 44, 0.08);
    }

    .betrieb-map iframe {
      position: absolute;
      inset: 0 0 -28px;
      width: 100%;
      height: calc(100% + 28px);
      border: 0;
    }

    .betrieb-map-go {
      position: absolute;
      left: 10px;
      bottom: 10px;
      z-index: 2;
      display: inline-block;
      padding: 8px 14px;
      border-radius: 999px;
      background: var(--green);
      color: var(--paper);
      text-decoration: none;
      font-size: 13px;
      font-weight: 600;
      box-shadow: 0 2px 8px rgba(18, 54, 44, 0.2);
    }

    .betrieb-map-go:hover {
      background: var(--amber);
      color: #fff;
    }

    .betrieb-map-copy {
      position: absolute;
      right: 10px;
      bottom: 10px;
      z-index: 2;
      margin: 0;
      font-size: 11px;
      color: var(--ink-soft);
      background: rgba(244, 241, 234, 0.88);
      padding: 3px 7px;
      border-radius: 3px;
    }

    .betrieb-facts > div {
      display: grid;
      grid-template-columns: 6.5em 1fr;
      gap: 12px 20px;
      padding: 14px 18px;
      border-bottom: 1px solid var(--line);
      align-items: baseline;
    }

    .betrieb-facts > div:last-child { border-bottom: none; }

    .betrieb-facts dt {
      margin: 0;
      font-size: 13px;
      font-weight: 600;
      color: var(--ink-soft);
      letter-spacing: 0.04em;
    }

    .betrieb-facts dd { margin: 0; font-size: 16px; }

    .betrieb-facts .phone-xl {
      font-size: 22px;
      margin: 0;
    }

    .betrieb-facts a.contact,
    .betrieb-facts a[rel~="nofollow"] {
      color: var(--green);
      font-weight: 600;
      text-underline-offset: 3px;
    }

    .phone-xl {
      font-size: 28px;
      font-weight: 700;
      color: var(--green);
      text-decoration: none;
      display: inline-block;
      margin: 8px 0;
    }

    @media (max-width: 860px) {
      .betrieb-hero .logo-mark.lg,
      .logo-mark.lg { width: 80px; height: 80px; font-size: 30px; }
      .betrieb-hero h1 { font-size: 24px; }
      .betrieb-split { grid-template-columns: 1fr; }
      .betrieb-map { min-height: 220px; }
    }

    @media (max-width: 560px) {
      .betrieb-hero { gap: 16px; }
      .betrieb-hero .logo-mark.lg,
      .logo-mark.lg { width: 64px; height: 64px; font-size: 24px; }
      .betrieb-facts > div { grid-template-columns: 1fr; gap: 4px; padding: 12px 14px; }
      .betrieb-hero h1 { font-size: 22px; }
    }

    /* —— 博客 —— */
    .blog-card time { display: block; font-size: 12px; color: var(--ink-soft); margin-bottom: 6px; }
    .blog-card h3 { margin: 0 0 8px; font-size: 18px; }
    .soon { opacity: 0.72; }

    .blog-mast { padding: 28px 0 8px; }
    .blog-mast h1 { max-width: none; }
    .blog-mast .lead a {
      color: var(--green);
      font-weight: 600;
      text-underline-offset: 3px;
    }
    .blog-stage {
      display: grid;
      grid-template-columns: 1.35fr 1fr;
      gap: 0 40px;
      align-items: stretch;
      padding: 20px 0 48px;
    }
    .blog-lead {
      display: flex;
      flex-direction: column;
      background: var(--green);
      color: var(--paper);
      text-decoration: none;
      padding: 28px 26px 26px;
      border-radius: var(--radius);
      min-height: 300px;
      overflow: hidden;
      transition: background 320ms ease-out;
    }
    .blog-lead:hover { background: #163e32; }
    .blog-lead .blog-cat { transition: letter-spacing 280ms ease-out; }
    .blog-lead:hover .blog-cat { letter-spacing: 0.2em; }
    .blog-cat {
      font-size: 12px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--green);
      margin-bottom: 8px;
    }
    .blog-lead .blog-cat { color: #D5E5DE; }
    .blog-lead h2 {
      font-size: 30px;
      color: var(--paper);
      margin-bottom: 12px;
      max-width: 12ch;
    }
    .blog-lead p {
      font-size: 16px;
      color: rgba(244,241,234,0.82);
      max-width: 38ch;
      line-height: 1.5;
    }
    .blog-lead .btn-amber {
      margin-top: auto;
      align-self: flex-start;
      padding-top: 14px;
    }
    .blog-side {
      display: flex;
      flex-direction: column;
    }
    .blog-side a {
      position: relative;
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 8px 4px 8px 16px;
      text-decoration: none;
      border-bottom: 1px solid var(--line);
    }
    .blog-side a::before {
      content: "";
      position: absolute;
      left: 0;
      top: 22%;
      width: 1.5px;
      height: 22%;
      background: var(--green);
      transform: scaleY(0);
      transform-origin: top;
      transition: height 320ms ease-out, transform 320ms ease-out;
    }
    .blog-side a:hover::before { height: 68%; }
    .blog-side a:last-child { border-bottom: none; }
    .blog-side .blog-cat { transition: letter-spacing 280ms ease-out; }
    .blog-side a:hover .blog-cat { letter-spacing: 0.18em; }
    .blog-side strong {
      display: block;
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 22px;
      font-weight: 600;
      line-height: 1.28;
    }
    .blog-side span {
      display: block;
      margin-top: 6px;
      font-size: 15px;
      color: var(--ink-soft);
      max-width: 36ch;
    }
    .blog-side a:hover strong { color: var(--green); }
    .blog-more {
      padding: 8px 0 40px;
      border-top: 1px solid var(--line);
    }
    .blog-more h2 { font-size: 16px; }
    .blog-more a {
      position: relative;
      display: grid;
      grid-template-columns: 6.5em minmax(0, 1fr);
      gap: 16px;
      padding: 14px 0 14px 14px;
      text-decoration: none;
      border-bottom: 1px solid var(--line);
    }
    .blog-more a::before {
      content: "";
      position: absolute;
      left: 0;
      top: 24%;
      width: 1.5px;
      height: 0;
      background: var(--green);
      transition: height 320ms ease-out;
    }
    .blog-more a:hover::before { height: 52%; }
    .blog-more time { font-size: 13px; color: var(--ink-soft); }
    .blog-more strong { font-size: 16px; }
    .blog-more a:hover strong { color: var(--green); }

    body.is-blog { scroll-behavior: smooth; }
    @keyframes blog-kicker {
      from { opacity: 0; letter-spacing: 0.02em; }
      to { opacity: 1; letter-spacing: 0.12em; }
    }
    @keyframes blog-title {
      from { clip-path: inset(100% 0 0 0); }
      to { clip-path: inset(0); }
    }
    @keyframes blog-wipe {
      from { clip-path: inset(0 78% 0 0); }
      to { clip-path: inset(0); }
    }
    @keyframes blog-ink {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    @keyframes blog-rule {
      from { transform: scaleY(0); }
      to { transform: scaleY(1); }
    }
    .blog-mast .kicker {
      animation: blog-kicker 700ms ease-out both;
    }
    .blog-mast h1 {
      animation: blog-title 720ms cubic-bezier(0.22, 0.61, 0.36, 1) 80ms both;
    }
    .blog-mast .lead {
      animation: blog-ink 480ms ease-out 220ms both;
    }
    .blog-lead {
      animation: blog-wipe 820ms cubic-bezier(0.22, 0.61, 0.36, 1) 160ms both;
    }
    .blog-side a { animation: blog-ink 480ms ease-out both; }
    .blog-side a:nth-child(1) { animation-delay: 400ms; }
    .blog-side a:nth-child(2) { animation-delay: 540ms; }
    .blog-side a:nth-child(1)::before { animation: blog-rule 480ms ease-out 480ms both; }
    .blog-side a:nth-child(2)::before { animation: blog-rule 480ms ease-out 620ms both; }

    @media (max-width: 720px) {
      .blog-stage { grid-template-columns: 1fr; gap: 20px; padding-bottom: 32px; }
      .blog-lead { min-height: 0; }
      .blog-lead h2 { font-size: 26px; }
      .blog-side strong { font-size: 20px; }
    }

    .tool-form {
      display: grid;
      gap: 14px;
      max-width: 520px;
      margin: 0;
    }
    .tool-form label {
      display: grid;
      gap: 6px;
      font-size: 14px;
      font-weight: 600;
    }
    .tool-form input[type="text"],
    .tool-form input[type="number"],
    .tool-form input[type="url"],
    .tool-form select,
    .tool-form textarea {
      font: inherit;
      font-weight: 400;
      width: 100%;
      padding: 11px 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      color: var(--ink);
      accent-color: var(--green);
    }
    .tool-form select {
      appearance: none;
      -webkit-appearance: none;
      padding-right: 36px;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231B4D3E' d='M1.2 1.2 6 6l4.8-4.8'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 12px center;
    }
    .tool-form input:focus,
    .tool-form select:focus,
    .tool-form textarea:focus {
      outline: 2px solid var(--green);
      outline-offset: 1px;
      border-color: var(--green);
    }
    .tool-form input[type="checkbox"] {
      width: 18px;
      height: 18px;
      margin-right: 8px;
      accent-color: var(--green);
    }
    .tool-form label:has(input[type="checkbox"]) {
      display: flex;
      align-items: center;
      font-weight: 500;
    }
    .tool-form .checks {
      display: grid;
      gap: 10px;
    }
    .tool-form .checks label {
      display: flex;
      align-items: center;
      gap: 8px;
      font-weight: 500;
    }
    .tg-sheet .btn-amber { width: 100%; margin-top: 4px; }
    .tile.is-closed { opacity: 0.85; }
    .tile.is-closed span { color: var(--ink-soft); }

    .tool-result {
      display: none;
      border: 1px solid var(--line);
      background: var(--paper-card);
      border-radius: var(--radius);
      padding: 16px 18px;
      margin: 16px 0 24px;
    }
    .tool-result.is-on { display: block; }
    .tool-result strong { color: var(--green); }

    /* —— 工具 /tools/：工作单，动效不跟费用/补贴/指南/紧急 —— */
    body.is-tg { scroll-behavior: smooth; }
    .tg-head { padding: 28px 0 6px; }
    .tg-head h1 {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 40px;
      font-weight: 600;
      letter-spacing: -0.02em;
      margin: 6px 0 8px;
    }
    .tg-note {
      margin: 10px 0 0;
      font-size: 13px;
      color: var(--ink-soft);
    }
    .tg-catalog {
      list-style: none;
      margin: 12px 0 56px;
      padding: 0;
      border-top: 1px solid var(--line);
    }
    .tg-row {
      display: grid;
      grid-template-columns: 2.2em 1fr auto;
      gap: 8px 20px;
      align-items: center;
      padding: 18px 4px 18px 16px;
      border-bottom: 1px solid var(--line);
      text-decoration: none;
      color: inherit;
      position: relative;
    }
    .tg-row::before {
      content: "";
      position: absolute;
      left: 0;
      top: 16px;
      bottom: 16px;
      width: 2px;
      background: var(--green);
      transform: scaleY(0);
      transform-origin: top;
      animation: tg-rule 440ms ease-out both;
    }
    .tg-catalog li:nth-child(1) .tg-row::before { animation-delay: 40ms; }
    .tg-catalog li:nth-child(2) .tg-row::before { animation-delay: 120ms; }
    .tg-catalog li:nth-child(3) .tg-row::before { animation-delay: 200ms; }
    .tg-catalog li:nth-child(4) .tg-row::before { animation-delay: 280ms; }
    .tg-catalog li:nth-child(5) .tg-row::before { animation-delay: 360ms; }
    @keyframes tg-rule {
      from { transform: scaleY(0); }
      to { transform: scaleY(1); }
    }
    .tg-n {
      font-size: 13px;
      font-weight: 600;
      color: var(--ink-soft);
    }
    .tg-main { display: grid; gap: 4px; min-width: 0; }
    .tg-main strong {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 22px;
      font-weight: 600;
    }
    .tg-main span { font-size: 14px; color: var(--ink-soft); }
    .tg-meta {
      display: grid;
      justify-items: end;
      gap: 4px;
    }
    .tg-unit {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 20px;
      font-weight: 600;
      color: var(--green);
      padding: 2px 8px;
      border: 1px solid transparent;
      transition: background 240ms, color 240ms;
    }
    .tg-meta i {
      font-style: normal;
      font-size: 12px;
      color: var(--ink-soft);
    }
    .tg-row:hover .tg-unit {
      background: var(--green);
      color: var(--paper);
    }
    .tg-board {
      display: grid;
      grid-template-columns: minmax(260px, 1fr) minmax(240px, 0.92fr);
      gap: 24px;
      align-items: stretch;
      padding-bottom: 8px;
    }
    .tg-sheet,
    .tg-out {
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 22px 22px 20px;
    }
    .tg-sheet-k,
    .tg-out-k,
    .tg-next-k {
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
      color: var(--green);
      margin: 0 0 14px;
    }
    .tg-out {
      position: relative;
      overflow: hidden;
      min-height: 220px;
    }
    .tg-out::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 3px;
      height: 100%;
      background: var(--green);
      transform: scaleY(0);
      transform-origin: top;
    }
    .tg-out.is-on::before { animation: tg-bar 520ms ease-out both; }
    @keyframes tg-bar {
      from { transform: scaleY(0); }
      to { transform: scaleY(1); }
    }
    .tg-out-idle {
      margin: 28px 0 0;
      font-size: 15px;
      color: var(--ink-soft);
    }
    .tg-out-num {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 34px;
      font-weight: 600;
      color: var(--green);
      line-height: 1.2;
      margin: 4px 0 12px;
    }
    .tg-out.is-on .tg-out-num { animation: tg-fade 480ms ease-out both; }
    @keyframes tg-fade {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    .tg-out-copy {
      font-size: 15px;
      color: var(--ink-soft);
      max-width: 36em;
    }
    .tg-after { padding: 20px 0 48px; }
    .tg-next { margin-bottom: 22px; }
    .tg-next-links {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 18px;
      margin: 0;
    }
    .tg-next-links a,
    .tg-switch a,
    .tg-switch em {
      text-decoration: none;
      font-weight: 600;
      font-size: 14px;
    }
    .tg-next-links a { color: var(--green); }
    .tg-next-links a:hover { color: var(--green-deep); }
    .tg-switch {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 10px;
      align-items: center;
      padding-top: 16px;
      border-top: 1px solid var(--line);
    }
    .tg-switch span {
      color: var(--ink-soft);
      font-size: 13px;
      margin-right: 4px;
    }
    .tg-switch a,
    .tg-switch em {
      font-style: normal;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 5px 10px;
      font-size: 13px;
    }
    .tg-switch a:hover { border-color: var(--green); color: var(--green); }
    .tg-switch em {
      background: var(--green);
      border-color: var(--green);
      color: var(--paper);
    }
    @media (max-width: 720px) {
      .tg-head h1 { font-size: 30px; }
      .tg-row { grid-template-columns: 2em 1fr; }
      .tg-meta { grid-column: 2; justify-items: start; }
      .tg-main strong { font-size: 20px; }
      .tg-board { grid-template-columns: 1fr; }
      .tg-out { min-height: 0; }
      .tg-out-num { font-size: 28px; }
    }

    /* —— 行业总目录 /hangye/ —— */
    .hy-stats {
      margin-top: 18px;
      font-size: 16px;
      color: var(--ink-soft);
    }
    .hy-stats strong {
      color: var(--green);
      font-weight: 700;
    }

    .hy-jump {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 8px 18px;
      margin: 0 0 22px;
      padding-bottom: 14px;
      border-bottom: 1px solid var(--line);
    }
    .hy-jump span {
      font-size: 12px;
      letter-spacing: 0.08em;
      font-weight: 600;
      color: var(--ink-soft);
      min-width: 2.5em;
    }
    .hy-jump a {
      text-decoration: none;
      font-size: 15px;
      font-weight: 600;
      color: var(--ink-soft);
    }
    .hy-jump a.is-open { color: var(--green); }
    .hy-jump a:hover { color: var(--green-deep); }
    .hy-board { margin-top: 4px; }

    .hy-trade {
      display: grid;
      grid-template-columns: 1fr;
      margin-bottom: 22px;
      padding: 0;
      overflow: hidden;
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      scroll-margin-top: 84px;
      transition: border-color 400ms ease;
    }
    .hy-trade:hover { border-color: var(--green); }
    .hy-photo {
      position: relative;
      height: 220px;
      overflow: hidden;
      background: #12362C;
    }
    .hy-photo img {
      position: absolute;
      inset: -8%;
      width: 116%;
      height: 116%;
      object-fit: cover;
      object-position: center;
      display: block;
      filter: saturate(0.9) brightness(1.08) contrast(1.04);
      animation: hy-drift 28s ease-in-out infinite alternate;
      will-change: transform;
    }
    .hy-photo::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(
        180deg,
        rgba(27, 77, 62, 0.16) 0%,
        rgba(27, 77, 62, 0.04) 38%,
        rgba(27, 77, 62, 0.58) 72%,
        rgba(18, 54, 44, 0.92) 100%
      );
      pointer-events: none;
    }
    .hy-photo-cap {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 2;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: baseline;
      gap: 8px 16px;
      padding: 22px 22px 40px;
      color: #F4F1EA;
    }
    .hy-photo-cap a {
      text-decoration: none;
      color: inherit;
    }
    .hy-photo-cap strong {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 26px;
      font-weight: 600;
      color: #F4F1EA;
    }
    .hy-photo-cap span {
      margin-left: 8px;
      font-size: 14px;
      color: rgba(244, 241, 234, 0.78);
    }
    .hy-photo-cap p {
      font-size: 13px;
      color: rgba(244, 241, 234, 0.84);
    }
    .hy-photo-cap a:hover strong { color: #fff; }
    .hy-trade.has-photo .hy-trade-main {
      position: relative;
      z-index: 3;
      margin: -28px 14px 14px;
      padding: 14px 14px 12px;
      background: var(--paper-card);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: 0 10px 28px rgba(26, 26, 26, 0.07);
    }
    .hy-plate {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: baseline;
      gap: 8px 16px;
      padding: 18px 22px;
      background: var(--green);
      color: #F4F1EA;
    }
    .hy-plate a {
      text-decoration: none;
      color: inherit;
    }
    .hy-plate strong {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 22px;
      font-weight: 600;
    }
    .hy-plate span {
      margin-left: 8px;
      font-size: 14px;
      color: rgba(244, 241, 234, 0.76);
    }
    .hy-plate p {
      font-size: 13px;
      color: rgba(244, 241, 234, 0.82);
    }
    .hy-plate a:hover strong { color: #fff; }
    .hy-trade.is-plate .hy-trade-main { padding: 16px 18px 14px; }
    .hy-trade.is-compact {
      margin-bottom: 12px;
    }
    .hy-trade.is-compact .hy-trade-main {
      display: grid;
      grid-template-columns: minmax(168px, 0.85fr) 2.15fr;
      align-items: center;
      gap: 10px 18px;
      padding: 12px 16px;
    }
    .hy-trade.is-compact .hy-trade-head {
      margin-bottom: 0;
      flex-direction: column;
      align-items: flex-start;
      gap: 2px;
    }
    .hy-trade.is-compact .hy-trade-head strong { font-size: 18px; }
    .hy-trade.is-compact .hy-cell { padding: 8px 8px; }
    .hy-trade.is-compact .hy-cell span { font-size: 12px; }
    .hy-trade-main { padding: 18px 20px 16px; min-width: 0; }
    @keyframes hy-drift {
      from { transform: scale(1) translate3d(0, 0, 0); }
      to { transform: scale(1.06) translate3d(-2.2%, 1.4%, 0); }
    }
    .hy-credit {
      margin: 4px 0 8px;
      font-size: 12px;
      color: var(--ink-soft);
      max-width: 72ch;
    }
    .hy-trade-head {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: baseline;
      gap: 8px 16px;
      margin-bottom: 14px;
    }
    .hy-trade-head a {
      text-decoration: none;
      color: inherit;
    }
    .hy-trade-head strong {
      font-family: "Source Serif 4", Georgia, serif;
      font-size: 22px;
      font-weight: 600;
    }
    .hy-trade-head span {
      margin-left: 8px;
      font-size: 14px;
      color: var(--ink-soft);
    }
    .hy-trade-head p {
      font-size: 13px;
      color: var(--ink-soft);
    }
    .hy-trade-head a:hover strong { color: var(--green); }

    .hy-cells {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 8px;
    }
    .hy-cell {
      text-decoration: none;
      color: inherit;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 12px 10px;
      background: #fff;
    }
    .hy-cell strong { display: block; font-size: 14px; }
    .hy-cell span { display: block; margin-top: 4px; font-size: 13px; color: var(--ink-soft); }
    .hy-cell.is-open { border-color: var(--green); }
    .hy-cell.is-open span { color: var(--green); font-weight: 600; }
    .hy-cell.is-closed { opacity: 0.72; }
    .hy-cell:hover { border-color: var(--green); }
    .hy-cell.is-dim { opacity: 0.28; }

    .hy-shops {
      margin-top: 12px;
      border-top: 1px solid var(--line);
      padding-top: 8px;
    }
    .hy-shops summary {
      cursor: pointer;
      font-size: 14px;
      color: var(--green);
      list-style: none;
    }
    .hy-shops summary::-webkit-details-marker { display: none; }
    .hy-shops ul {
      list-style: none;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4px 20px;
      margin: 10px 0 8px;
    }
    .hy-shops a {
      color: var(--green);
      text-decoration: none;
      font-size: 14px;
    }
    .hy-shops a:hover { text-decoration: underline; }
    .hy-more { font-size: 14px; }
    .hy-more a { color: var(--green); }

    .hy-matrix { padding-top: 12px; }
    .hy-table-wrap { overflow-x: auto; margin-top: 12px; }
    .hy-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
    }
    .hy-table th, .hy-table td {
      border: 1px solid var(--line);
      padding: 10px 8px;
      text-align: center;
    }
    .hy-table th[scope="row"] {
      text-align: left;
      background: #fff;
      font-weight: 600;
    }
    .hy-table th[scope="row"] span {
      font-weight: 400;
      color: var(--ink-soft);
    }
    .hy-table thead th { background: var(--paper); }
    .hy-table td.is-closed { color: var(--ink-soft); }
    .hy-table a { color: var(--green); text-decoration: none; font-weight: 600; }
    .hy-table a:hover { text-decoration: underline; }
    .hy-table .is-dim { opacity: 0.28; }

    @media (max-width: 860px) {
      .hy-photo { height: 168px; }
      .hy-photo-cap { padding: 16px 16px 36px; }
      .hy-photo-cap strong { font-size: 22px; }
      .hy-trade.has-photo .hy-trade-main { margin: -22px 10px 12px; }
      .hy-trade.is-compact .hy-trade-main { grid-template-columns: 1fr; }
      .hy-cells { grid-template-columns: 1fr 1fr; }
      .hy-shops ul { grid-template-columns: 1fr; }
    }
    @media (max-width: 560px) {
      .hy-photo { height: 148px; }
      .hy-photo-cap { padding: 14px 14px 32px; }
      .hy-cells { grid-template-columns: 1fr; }
    }
    @media (prefers-reduced-motion: reduce) {
      .hy-photo img { animation: none; inset: 0; width: 100%; height: 100%; }
      .hy-trade { transition: none; }
    }

