/* ==========================================================================
   北屯區 ・ 日式完整重設計 (Wabi-Sabi v3)
   選擇器全部以 body.jp-beitun 開頭以提權，避免與 style.css 衝突
   ========================================================================== */

/* === 全域節奏 === */
body.jp-beitun section { padding: 96px 0; }
body.jp-beitun .container-narrow { max-width: 820px; margin: 0 auto; padding: 0 24px; }
body.jp-beitun .section-title { margin-bottom: 56px; }
body.jp-beitun .section-title-left { text-align: left; }
body.jp-beitun .section-title-left h2::after { margin-left: 0; }
body.jp-beitun .section-foot-note {
  font-size: .88rem; color: var(--sumi-soft); margin-top: 14px; letter-spacing: .04em;
}

/* === 通用：漢字水印 === */
.kanji-watermark {
  position: absolute; font-family: var(--font-jp);
  pointer-events: none; user-select: none; line-height: 1;
  font-weight: 400;
}

/* ==========================================================================
   1. HERO ・ 章扉風（Book Frontispiece）
   ========================================================================== */
body.jp-beitun .hero-beitun {
  padding: 140px 0 100px; position: relative; overflow: hidden;
  background:
    radial-gradient(ellipse at 80% 30%, rgba(122,139,111,.08) 0%, transparent 60%),
    linear-gradient(180deg, var(--washi) 0%, var(--washi-deep) 100%);
}
body.jp-beitun .hero-beitun::before {
  content: ''; position: absolute; left: 0; right: 0; top: 100px;
  height: 1px; background: rgba(31,29,26,.08);
}
body.jp-beitun .hero-beitun::after {
  content: ''; position: absolute; left: 0; right: 0; top: 104px;
  height: 1px; background: rgba(31,29,26,.08);
}
body.jp-beitun .hero-bp-bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
body.jp-beitun .hero-bp-kanji {
  position: absolute; right: -3vw; bottom: -8vh;
  /* D2 fallback font 優先，避免 web font swap 造成 CLS */
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif TC", "Source Han Serif TC", serif;
  font-weight: 500;
  font-size: clamp(20rem, 38vw, 38rem);
  color: rgba(47, 74, 54, .055); line-height: .85;
  letter-spacing: -.06em;
  font-size-adjust: 0.5;
  contain: layout style paint;
}
body.jp-beitun .hero-bp-rule-v {
  position: absolute; left: 50%; top: 200px; bottom: 160px;
  width: 1px; background: rgba(31,29,26,.06);
}
/* breadcrumb */
body.jp-beitun .hero-bp-crumb {
  display: flex; align-items: center; gap: 8px;
  font-size: .8rem; color: var(--sumi-soft);
  font-family: var(--font-jp); margin-bottom: 36px;
}
body.jp-beitun .hero-bp-crumb a { color: var(--sumi-soft); text-decoration: none; transition: color .2s; }
body.jp-beitun .hero-bp-crumb a:hover { color: var(--bamboo); }
body.jp-beitun .hero-bp-crumb .sep { color: rgba(31,29,26,.25); }
/* 章扉 meta strip */
body.jp-beitun .hero-bp-meta {
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
  padding-bottom: 18px; border-bottom: 1px solid rgba(31,29,26,.12);
  margin-bottom: 36px;
}
body.jp-beitun .hero-bp-chapter {
  font-family: var(--font-jp); font-size: .82rem; font-weight: 500;
  color: var(--shu); letter-spacing: .12em;
  padding: 4px 14px; border: 1px solid var(--shu); border-radius: 2px;
  background: rgba(201,63,63,.04);
}
body.jp-beitun .hero-bp-name {
  font-family: var(--font-jp); font-size: 1rem; color: var(--bamboo-deep);
  letter-spacing: .12em; font-weight: 500;
}
body.jp-beitun .hero-bp-en {
  font-size: .72rem; letter-spacing: .35em; color: var(--sumi-soft);
  font-family: var(--font-jp);
}
body.jp-beitun .hero-bp-edition {
  margin-left: auto; font-size: .72rem; color: var(--sumi-soft);
  letter-spacing: .15em; font-family: var(--font-jp);
}
body.jp-beitun .hero-bp-alias {
  margin: -24px 0 36px; font-size: .76rem; color: var(--sumi-soft);
  letter-spacing: .04em; font-family: var(--font-jp); line-height: 1.8;
}
body.jp-beitun .hero-bp-alias span { margin: 0 2px; }

/* Page Meta strip + Reviewed-by E-E-A-T */
body.jp-beitun .page-meta-strip {
  background: var(--washi-deep); padding: 32px 0;
  border-top: 1px solid rgba(31,29,26,.08);
}
body.jp-beitun .page-meta-inner {
  display: flex; flex-wrap: wrap; gap: 16px 32px;
  justify-content: center; padding-bottom: 20px;
  border-bottom: 1px solid rgba(31,29,26,.1); margin-bottom: 20px;
}
body.jp-beitun .pm-item {
  font-family: var(--font-jp); font-size: .82rem;
  color: var(--sumi-soft); letter-spacing: .04em;
}
body.jp-beitun .pm-item time { color: var(--sumi); font-weight: 500; }
body.jp-beitun .reviewed-by {
  max-width: 720px; margin: 0 auto;
}
body.jp-beitun .reviewed-by p {
  font-size: .82rem; line-height: 1.85; color: var(--sumi-soft);
  text-align: center; letter-spacing: .02em; margin: 0;
}
/* 章扉 主標 */
body.jp-beitun .hero-bp-headline {
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px;
  align-items: end; margin-bottom: 56px;
}
body.jp-beitun .hero-bp-title {
  font-family: var(--font-jp); font-weight: 500;
  font-size: clamp(3.5rem, 7vw, 5.5rem); line-height: 1;
  color: var(--sumi); letter-spacing: .08em;
  margin: 0; position: relative; z-index: 1;
}
body.jp-beitun .hero-bp-title .accent {
  color: var(--bamboo-deep); position: relative;
}
body.jp-beitun .hero-bp-title-sub {
  display: block; font-family: var(--font-jp);
  font-size: clamp(.95rem, 1.3vw, 1.15rem);
  font-weight: 400; letter-spacing: .12em;
  color: var(--sumi-soft); margin-top: 14px;
  padding-top: 12px; border-top: 1px solid rgba(31,29,26,.1);
  line-height: 1.5;
}
body.jp-beitun .hero-bp-sub {
  font-family: var(--font-jp); font-size: clamp(1rem, 1.6vw, 1.35rem);
  color: var(--sumi); letter-spacing: .12em; line-height: 1.8;
  margin: 0 0 18px 0;
}
body.jp-beitun .hero-bp-sub .dot { color: var(--shu); margin: 0 6px; }
body.jp-beitun .hero-bp-lead {
  font-size: .95rem; line-height: 2; color: var(--sumi-soft);
  letter-spacing: .03em; margin: 0;
}
body.jp-beitun .hero-bp-lead strong { color: var(--bamboo-deep); font-weight: 500; }
/* 章扉 double rule */
body.jp-beitun .hero-bp-doublerule {
  border: none; border-top: 1px solid rgba(31,29,26,.15);
  border-bottom: 1px solid rgba(31,29,26,.15);
  height: 4px; margin: 0 0 56px 0;
}
/* 統計 + CTA */
body.jp-beitun .hero-bp-overview {
  display: grid; grid-template-columns: 1fr auto; gap: 56px;
  align-items: center; padding-top: 36px;
  border-top: 1px solid rgba(31,29,26,.12);
}
body.jp-beitun .hero-bp-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
body.jp-beitun .hero-bp-stat {
  text-align: left; padding-right: 24px;
  border-right: 1px solid rgba(31,29,26,.1);
}
body.jp-beitun .hero-bp-stat:last-child { border-right: none; }
body.jp-beitun .hero-bp-stat .num {
  font-family: var(--font-jp); font-size: 1.85rem; font-weight: 500;
  color: var(--bamboo-deep); line-height: 1; margin-bottom: 6px;
  letter-spacing: .02em;
}
body.jp-beitun .hero-bp-stat .num small { font-size: .95rem; margin-left: 3px; color: var(--sumi-soft); font-weight: 400; }
body.jp-beitun .hero-bp-stat .label {
  font-size: .68rem; color: var(--sumi-soft); line-height: 1.5;
  letter-spacing: .12em; font-family: var(--font-jp);
  margin-bottom: 4px; text-transform: uppercase;
}
body.jp-beitun .hero-bp-stat .desc {
  font-size: .75rem; color: var(--sumi-soft); line-height: 1.4;
}
body.jp-beitun .hero-bp-cta {
  display: flex; flex-direction: column; gap: 14px; align-items: stretch;
  min-width: 240px;
}
body.jp-beitun .hero-bp-cta .btn { justify-content: center; }
body.jp-beitun .hero-bp-rating {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .82rem; color: var(--sumi-soft); letter-spacing: .04em;
  padding: 8px 0; justify-content: center;
}
body.jp-beitun .hero-bp-rating .star { color: var(--gold, #b08d57); font-size: 1rem; }
body.jp-beitun .hero-bp-rating strong { color: var(--sumi); font-weight: 500; }

/* ==========================================================================
   2. SERVICE COVERAGE
   ========================================================================== */
body.jp-beitun #service-coverage { padding: 96px 0; }
body.jp-beitun .coverage-ledger {
  display: grid; grid-template-columns: 4fr 7fr; gap: 56px; align-items: start;
}
body.jp-beitun .cl-map-frame {
  position: relative; border: 1px solid rgba(31,29,26,.1);
  border-radius: 4px; overflow: hidden; aspect-ratio: 4 / 5;
  box-shadow: 0 4px 16px rgba(31,29,26,.04);
}
body.jp-beitun .cl-map-frame iframe {
  width: 100%; height: 100%; border: none; display: block;
}
body.jp-beitun .cl-map-stamp {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  width: 34px; height: 34px; border: 1.5px solid var(--shu);
  background: rgba(255,255,255,.95);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-jp); font-size: 1.1rem; font-weight: 500;
  color: var(--shu); border-radius: 2px;
  transform: rotate(-4deg); box-shadow: 0 2px 6px rgba(31,29,26,.08);
}
body.jp-beitun .cl-map-cap {
  margin-top: 14px; font-size: .82rem; color: var(--sumi-soft);
  letter-spacing: .02em; line-height: 1.7;
}
body.jp-beitun .cl-zones { display: flex; flex-direction: column; gap: 36px; }
body.jp-beitun .cl-zone-block:not(:first-child) { padding-top: 8px; }
body.jp-beitun .cl-zone-head {
  display: flex; align-items: center; gap: 16px; margin-bottom: 18px;
}
body.jp-beitun .cl-zone-ja {
  font-family: var(--font-jp); font-size: .8rem; letter-spacing: .15em;
  color: var(--bamboo); font-weight: 500; white-space: nowrap;
}
body.jp-beitun .cl-zone-rule {
  flex: 1; height: 1px; background: rgba(31,29,26,.1);
}
body.jp-beitun .cl-chips {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 8px 24px;
}
body.jp-beitun .cl-chips li {
  font-family: var(--font-jp); font-size: .92rem; color: var(--sumi);
  letter-spacing: .04em; padding-left: 14px; position: relative;
  line-height: 1.8;
}
body.jp-beitun .cl-chips li::before {
  content: ''; position: absolute; left: 0; top: 50%;
  width: 6px; height: 1.5px; background: var(--shu);
  transform: translateY(-50%);
}
body.jp-beitun .cl-zone-prose p {
  font-size: .92rem; line-height: 1.95; color: var(--sumi-soft);
  letter-spacing: .02em;
}
body.jp-beitun .cl-zone-intro p strong {
  color: var(--bamboo-deep); font-weight: 500;
}

/* ==========================================================================
   3. SEO SECTIONS
   ========================================================================== */
body.jp-beitun .seo-scroll { background: #fff; padding: 112px 0; }
body.jp-beitun .seo-block { margin-bottom: 80px; }
body.jp-beitun .seo-block:last-child { margin-bottom: 0; }
body.jp-beitun .seo-block-head {
  display: flex; gap: 24px; align-items: flex-start; margin-bottom: 32px;
  padding-bottom: 24px; border-bottom: 1px solid rgba(31,29,26,.08);
}
body.jp-beitun .seo-num {
  font-family: var(--font-jp); font-size: 4rem; font-weight: 500;
  color: rgba(74,107,77,.18); line-height: 1; letter-spacing: 0;
  min-width: 60px;
}
body.jp-beitun .seo-block-head .ja {
  display: block; font-family: var(--font-jp); font-size: .76rem;
  letter-spacing: .18em; color: var(--bamboo); margin-bottom: 8px;
  text-transform: uppercase;
}
body.jp-beitun .seo-block-head h2 {
  font-family: var(--font-jp); font-size: 1.6rem; font-weight: 500;
  letter-spacing: .04em; color: var(--sumi); line-height: 1.4;
  margin: 0;
}
/* Fact list */
body.jp-beitun .seo-fact-list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: 1fr; gap: 0;
}
body.jp-beitun .seo-fact-list li {
  display: grid; grid-template-columns: 180px 1fr; gap: 24px;
  padding: 16px 0; border-bottom: 1px solid rgba(31,29,26,.06);
  align-items: baseline;
}
body.jp-beitun .seo-fact-list li:last-child { border-bottom: none; }
body.jp-beitun .seo-fact-list strong {
  font-family: var(--font-jp); font-weight: 500;
  color: var(--shu); font-size: 1rem; letter-spacing: .02em;
}
body.jp-beitun .seo-fact-list span {
  font-size: .92rem; line-height: 1.85; color: var(--sumi);
}
/* Compare table */
body.jp-beitun .seo-compare-table {
  width: 100%; border-collapse: collapse; margin-top: 40px;
  background: rgba(245,239,228,.5); border: 1px solid rgba(31,29,26,.1);
}
body.jp-beitun .seo-compare-table caption {
  text-align: left; font-family: var(--font-jp); font-weight: 500;
  font-size: 1rem; color: var(--bamboo-deep); margin-bottom: 12px;
  letter-spacing: .06em; caption-side: top; padding: 0 16px;
}
body.jp-beitun .seo-compare-table thead tr {
  border-bottom: 2px solid var(--shu);
}
body.jp-beitun .seo-compare-table th {
  text-align: left; padding: 14px 16px;
  font-family: var(--font-jp); font-weight: 500;
  font-size: .92rem; color: var(--sumi); letter-spacing: .04em;
}
body.jp-beitun .seo-compare-table thead th:nth-child(2) { color: var(--bamboo); }
body.jp-beitun .seo-compare-table thead th:nth-child(3) { color: var(--shu); }
body.jp-beitun .seo-compare-table tbody tr {
  border-bottom: 1px solid rgba(31,29,26,.07);
}
body.jp-beitun .seo-compare-table tbody tr:last-child { border-bottom: none; }
body.jp-beitun .seo-compare-table tbody td {
  padding: 12px 16px; font-size: .88rem; line-height: 1.7; color: var(--sumi);
}
body.jp-beitun .seo-compare-table tbody td:first-child {
  font-family: var(--font-jp); color: var(--sumi-soft);
  font-size: .84rem; letter-spacing: .04em; width: 22%;
}
body.jp-beitun .seo-compare-table tbody td:nth-child(2),
body.jp-beitun .seo-compare-table tbody td:nth-child(3) {
  font-family: var(--font-jp);
}
/* Guide list */
body.jp-beitun .seo-guide-list { margin: 0; padding: 0; }
body.jp-beitun .seo-guide-list dt {
  font-family: var(--font-jp); font-size: 1rem; font-weight: 500;
  color: var(--bamboo-deep); letter-spacing: .04em;
  padding-bottom: 8px; border-bottom: 1px dashed rgba(31,29,26,.15);
}
body.jp-beitun .seo-guide-list dd {
  margin: 12px 0 28px 0; font-size: .92rem; line-height: 1.85;
  color: var(--sumi-soft); padding-left: 0;
}
body.jp-beitun .seo-guide-list dd:last-child { margin-bottom: 0; }
/* Why list */
body.jp-beitun .seo-why-list { list-style: none; padding: 0; margin: 0; }
body.jp-beitun .seo-why-list li {
  display: grid; grid-template-columns: 80px 1fr; gap: 24px;
  padding: 22px 0; border-bottom: 1px solid rgba(31,29,26,.06);
  align-items: flex-start;
}
body.jp-beitun .seo-why-list li:last-child { border-bottom: none; }
body.jp-beitun .why-mark {
  font-family: var(--font-jp); font-size: 1.8rem; font-weight: 500;
  color: rgba(201,63,63,.4); line-height: 1; letter-spacing: 0;
}
body.jp-beitun .seo-why-list h3 {
  font-family: var(--font-jp); font-size: 1.05rem; font-weight: 500;
  color: var(--sumi); margin: 0 0 6px 0; letter-spacing: .04em;
  position: relative; padding-left: 16px;
}
body.jp-beitun .seo-why-list h3::before {
  content: ''; position: absolute; left: 0; top: 50%;
  width: 8px; height: 1.5px; background: var(--shu);
  transform: translateY(-50%);
}
body.jp-beitun .seo-why-list p {
  font-size: .9rem; line-height: 1.85; color: var(--sumi-soft);
  margin: 0; padding-left: 16px;
}

/* ==========================================================================
   4. PRICE TABLE - svc-cards 三併排
   ========================================================================== */
body.jp-beitun #price-table { background: var(--washi); }
body.jp-beitun .price-cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
  margin-bottom: 56px;
}
body.jp-beitun .svc-card-price {
  background: #fff; border: 1px solid rgba(31,29,26,.06);
  border-radius: 8px; padding: 38px 36px 32px;
  position: relative; display: flex; flex-direction: column;
  cursor: pointer;
  transition: transform .35s var(--ease, cubic-bezier(0.22, 0.61, 0.36, 1)),
              box-shadow .35s var(--ease, cubic-bezier(0.22, 0.61, 0.36, 1)),
              border-color .35s ease;
}
body.jp-beitun .svc-card-price:hover {
  transform: translateY(-6px); box-shadow: 0 14px 36px rgba(31,29,26,.08);
  border-color: rgba(74,107,77,.25);
}
body.jp-beitun .svc-card-price:hover .svc-deeplink {
  color: var(--bamboo-deep); border-color: var(--bamboo-deep);
}
/* Stretched link：讓整張卡可點 */
body.jp-beitun .svc-deeplink::after {
  content: ''; position: absolute; inset: 0;
  z-index: 1; cursor: pointer; border-radius: 8px;
}
body.jp-beitun .svc-deeplink:focus-visible::after {
  outline: 2px solid var(--bamboo); outline-offset: 4px;
}
body.jp-beitun .svc-card-price .svc-num {
  position: absolute; top: 22px; right: 28px;
  font-family: var(--font-jp); font-size: 3.8rem; font-weight: 500;
  color: rgba(74,107,77,.08); line-height: 1; letter-spacing: 0;
  pointer-events: none;
}
body.jp-beitun .svc-card-price .svc-icon-wrap {
  width: 60px; height: 60px; border-radius: 50%;
  background: var(--washi-deep); display: flex; align-items: center; justify-content: center;
  color: var(--bamboo); margin-bottom: 22px;
}
body.jp-beitun .svc-card-price .svc-icon-wrap svg { width: 28px; height: 28px; }
body.jp-beitun .svc-card-price .svc-ja {
  font-family: var(--font-jp); font-size: .76rem; letter-spacing: .15em;
  color: var(--matcha); display: block; margin-bottom: 4px;
}
body.jp-beitun .svc-card-price .svc-title {
  font-family: var(--font-jp); font-size: 1.3rem; font-weight: 500;
  color: var(--sumi); margin: 0 0 12px 0; letter-spacing: .04em;
}
body.jp-beitun .svc-card-price .svc-divider {
  width: 36px; height: 1px; background: var(--bamboo);
  margin-bottom: 20px;
}
body.jp-beitun .price-mini {
  width: 100%; border-collapse: collapse; margin-bottom: 18px;
}
body.jp-beitun .price-mini tr {
  border-bottom: 1px dashed rgba(31,29,26,.12);
}
body.jp-beitun .price-mini tr:last-child { border-bottom: none; }
body.jp-beitun .price-mini th {
  padding: 10px 0; text-align: left; font-weight: 400;
  font-size: .86rem; color: var(--sumi-soft); font-family: var(--font-jp);
  letter-spacing: .02em;
}
body.jp-beitun .price-mini td {
  padding: 10px 0; text-align: right;
  font-family: var(--font-jp); font-size: .96rem; font-weight: 500;
  color: var(--bamboo-deep); letter-spacing: .02em;
}
body.jp-beitun .price-from {
  margin-top: auto; padding-top: 18px;
  border-top: 1px solid rgba(31,29,26,.08);
  display: flex; align-items: baseline; gap: 4px;
}
body.jp-beitun .price-from .from {
  font-size: .82rem; color: var(--sumi-soft); font-weight: 400;
}
body.jp-beitun .price-from .num {
  font-family: var(--font-jp); font-size: 2rem; font-weight: 500;
  color: var(--shu); letter-spacing: .02em;
}
body.jp-beitun .price-from .unit {
  font-size: .82rem; color: var(--sumi-soft);
}
body.jp-beitun .svc-deeplink {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 14px; font-size: .82rem; color: var(--bamboo);
  border-bottom: 1px solid var(--matcha); text-decoration: none;
  letter-spacing: .04em; padding-bottom: 1px;
  transition: color .2s, border-color .2s;
}
body.jp-beitun .svc-deeplink:hover { color: var(--bamboo-deep); border-color: var(--bamboo-deep); }
body.jp-beitun .dd-prose a, body.jp-beitun .dd-pain p a, body.jp-beitun .dd-faq-ans p a {
  color: var(--bamboo); border-bottom: 1px solid var(--matcha); text-decoration: none;
}
body.jp-beitun .dd-prose a:hover, body.jp-beitun .dd-pain p a:hover, body.jp-beitun .dd-faq-ans p a:hover {
  color: var(--bamboo-deep); border-bottom-color: var(--bamboo-deep);
}

/* Promo Ledger */
body.jp-beitun .promo-ledger {
  display: grid; grid-template-columns: 1fr 1fr; gap: 28px;
  border-top: 1px solid rgba(31,29,26,.08); padding-top: 56px;
}
body.jp-beitun .pl-block header {
  display: flex; gap: 16px; align-items: flex-start; margin-bottom: 18px;
}
body.jp-beitun .pl-stamp {
  width: 44px; height: 44px; border: 1.5px solid currentColor;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-jp); font-size: 1.25rem; font-weight: 500;
  border-radius: 2px; flex-shrink: 0; transform: rotate(-3deg);
  background: rgba(255,255,255,.6);
}
body.jp-beitun .pl-stamp-shu { color: var(--shu); border-color: var(--shu); background: rgba(201,63,63,.06); }
body.jp-beitun .pl-stamp-matcha { color: var(--bamboo); border-color: var(--bamboo); background: rgba(74,107,77,.06); }
body.jp-beitun .pl-block header .ja {
  display: block; font-family: var(--font-jp); font-size: .72rem;
  letter-spacing: .18em; color: var(--matcha); margin-bottom: 4px;
  text-transform: uppercase;
}
body.jp-beitun .pl-block header h3 {
  font-family: var(--font-jp); font-size: 1.1rem; font-weight: 500;
  color: var(--sumi); margin: 0; letter-spacing: .04em;
}
body.jp-beitun .pl-block ul {
  list-style: none; padding: 0; margin: 0;
}
body.jp-beitun .pl-block ul li {
  padding: 10px 0; border-bottom: 1px solid rgba(31,29,26,.06);
  font-size: .88rem; line-height: 1.8; color: var(--sumi-soft);
}
body.jp-beitun .pl-block ul li:last-child { border-bottom: none; }
body.jp-beitun .pl-block ul li strong { color: var(--sumi); font-weight: 500; }

/* ==========================================================================
   5. POPULAR COMBOS - 水平 Ledger
   ========================================================================== */
body.jp-beitun #popular-combos { padding: 96px 0; }
body.jp-beitun .combo-list {
  list-style: none; padding: 0; margin: 0;
  border-top: 1px solid rgba(31,29,26,.12);
}
body.jp-beitun .combo-row {
  display: grid; grid-template-columns: 140px 1fr 200px;
  gap: 32px; padding: 36px 0;
  border-bottom: 1px solid rgba(31,29,26,.12);
  align-items: center; transition: background .25s;
}
body.jp-beitun .combo-row:hover { background: rgba(255,255,255,.5); }
body.jp-beitun .cr-mark {
  display: flex; flex-direction: column; align-items: center; gap: 16px;
}
body.jp-beitun .cr-kanji {
  width: 72px; height: 72px; border: 1.5px solid var(--shu);
  background: rgba(255,255,255,.7);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-jp); font-size: 2rem; font-weight: 500;
  color: var(--shu); border-radius: 50%;
}
body.jp-beitun .cr-zone {
  font-family: var(--font-jp); font-size: .85rem; font-weight: 500;
  color: var(--bamboo-deep); letter-spacing: .15em;
  writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl;
  height: auto; line-height: 1.4;
}
body.jp-beitun .cr-body h3 {
  font-family: var(--font-jp); font-size: 1.25rem; font-weight: 500;
  color: var(--sumi); margin: 0 0 10px 0; letter-spacing: .04em;
}
body.jp-beitun .cr-desc {
  font-size: .9rem; line-height: 1.85; color: var(--sumi-soft);
  margin: 0 0 14px 0;
}
body.jp-beitun .cr-calc {
  font-size: .82rem; color: var(--sumi-soft); line-height: 2;
  margin: 0; padding-top: 12px;
  border-top: 1px dashed rgba(31,29,26,.15);
  font-family: var(--font-jp); letter-spacing: .02em;
}
body.jp-beitun .cr-d {
  display: inline-block; margin-left: 16px;
  color: var(--shu); font-size: .78rem;
}
body.jp-beitun .cr-total {
  text-align: right; display: flex; flex-direction: column; gap: 4px;
  padding-left: 24px; border-left: 1px solid rgba(31,29,26,.12);
}
body.jp-beitun .cr-from {
  font-family: var(--font-jp); font-size: .72rem;
  color: var(--sumi-soft); letter-spacing: .25em;
}
body.jp-beitun .cr-total strong {
  font-family: var(--font-jp); font-size: 1.75rem; font-weight: 500;
  color: var(--bamboo-deep); letter-spacing: .02em; line-height: 1;
}
body.jp-beitun .combo-foot {
  margin-top: 36px; text-align: center; font-size: .85rem;
  color: var(--sumi-soft);
}
body.jp-beitun .combo-foot a {
  color: var(--bamboo); border-bottom: 1px solid var(--matcha);
  text-decoration: none;
}

/* ==========================================================================
   6. CRAFTSMAN ・ 淺米色 + 漢字水印
   ========================================================================== */
body.jp-beitun .craftsman-dark {
  background:
    radial-gradient(ellipse at 80% 50%, rgba(74,107,77,.06) 0%, transparent 60%),
    var(--washi);
  position: relative; overflow: hidden;
  padding: 112px 0;
  border-top: 1px solid rgba(31,29,26,.08);
  border-bottom: 1px solid rgba(31,29,26,.08);
}
body.jp-beitun .cd-bg { position: absolute; inset: 0; pointer-events: none; }
body.jp-beitun .cd-kanji {
  position: absolute; right: -4vw; top: 50%; transform: translateY(-50%);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif TC", "Source Han Serif TC", serif;
  font-size: clamp(14rem, 24vw, 26rem);
  color: rgba(74, 107, 77, .055); line-height: .9; font-weight: 500;
  letter-spacing: -.05em;
  font-size-adjust: 0.5;
  contain: layout style paint;
}
body.jp-beitun .cd-enso {
  position: absolute; left: -8vw; bottom: -8vh;
  width: 380px; height: 380px;
  animation: jp-enso-rotate 120s linear infinite;
  opacity: .35;
}
@keyframes jp-enso-rotate { to { transform: rotate(360deg); } }
body.jp-beitun .cd-grid {
  display: grid; grid-template-columns: 280px 1fr; gap: 64px;
  align-items: start; position: relative; z-index: 1;
}
body.jp-beitun .cd-aside {
  display: flex; flex-direction: column; align-items: flex-start; gap: 24px;
  padding-top: 18px;
}
body.jp-beitun .cd-ja {
  font-family: var(--font-jp); font-size: .76rem; letter-spacing: .25em;
  color: var(--bamboo); text-transform: uppercase;
}
body.jp-beitun .cd-vertical {
  writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl;
  font-family: var(--font-jp); font-size: 2.2rem; font-weight: 500;
  color: var(--sumi); letter-spacing: .25em; line-height: 1.6;
  margin: 0; height: 200px;
}
body.jp-beitun .cd-stamp {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border: 2px solid var(--shu);
  background: rgba(201,63,63,.08); font-family: var(--font-jp);
  font-size: 1.8rem; font-weight: 500; color: var(--shu);
  border-radius: 2px; transform: rotate(-4deg);
}
body.jp-beitun .cd-quote {
  margin: 0; position: relative; padding: 0;
}
body.jp-beitun .cd-mark {
  font-family: var(--font-jp); font-size: 4rem; line-height: 1;
  color: rgba(201,63,63,.4); display: inline-block;
  font-weight: 400;
}
body.jp-beitun .cd-mark-end { float: right; }
body.jp-beitun .cd-body {
  font-family: var(--font-jp); font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  line-height: 2.2; color: var(--sumi);
  letter-spacing: .06em; font-weight: 400;
  margin: -12px 32px 8px 32px; text-align: justify;
}
body.jp-beitun .cd-foot {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 48px; padding-top: 32px;
  border-top: 1px solid rgba(31,29,26,.12);
  flex-wrap: wrap; gap: 20px;
}
body.jp-beitun .cd-by { display: flex; align-items: center; gap: 16px; }
body.jp-beitun .cd-avatar {
  width: 52px; height: 52px; border-radius: 50%;
  background: var(--bamboo); color: var(--washi);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-jp); font-size: 1.4rem; font-weight: 500;
}
body.jp-beitun .cd-name strong {
  display: block; color: var(--sumi); font-family: var(--font-jp);
  font-size: 1rem; font-weight: 500; letter-spacing: .04em;
}
body.jp-beitun .cd-name span {
  display: block; color: var(--sumi-soft); font-size: .82rem;
  margin-top: 2px;
}
body.jp-beitun .btn-ghost-light {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px; border: 1px solid var(--bamboo);
  color: var(--bamboo); text-decoration: none; border-radius: 999px;
  font-size: .9rem; letter-spacing: .12em; transition: all .25s;
  background: transparent;
}
body.jp-beitun .btn-ghost-light:hover {
  background: var(--bamboo); color: var(--washi); border-color: var(--bamboo);
}

/* ==========================================================================
   7. REVIEWS - 三張無框卡
   ========================================================================== */
body.jp-beitun #reviews { padding: 112px 0; background: #fff; }
body.jp-beitun .rv-jp-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  border-top: 1px solid rgba(31,29,26,.12);
}
body.jp-beitun .rv-jp-card {
  padding: 40px 32px; position: relative;
  border-bottom: 1px solid rgba(31,29,26,.12);
  border-right: 1px solid rgba(31,29,26,.06);
  transition: background .25s, transform .25s;
}
body.jp-beitun .rv-jp-card:last-child { border-right: none; }
body.jp-beitun .rv-jp-card:hover {
  background: rgba(245,239,228,.5); transform: translateY(-4px);
}
body.jp-beitun .rv-head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
body.jp-beitun .rv-stamp {
  width: 36px; height: 36px; border: 1.5px solid var(--shu);
  background: rgba(201,63,63,.06);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-jp); font-size: 1.15rem; font-weight: 500;
  color: var(--shu); border-radius: 2px; transform: rotate(-3deg);
  flex-shrink: 0;
}
body.jp-beitun .rv-loc {
  font-family: var(--font-jp); font-size: .85rem; font-weight: 500;
  color: var(--bamboo-deep); letter-spacing: .08em;
}
body.jp-beitun .rv-stars { display: flex; gap: 2px; margin-bottom: 18px; }
body.jp-beitun .rv-stars svg { width: 16px; height: 16px; fill: var(--gold, #b08d57); }
body.jp-beitun .rv-quote-mark {
  font-family: var(--font-jp); font-size: 3rem;
  color: rgba(74,107,77,.18); line-height: .8;
  display: block; font-weight: 400; margin-bottom: -16px;
}
body.jp-beitun .rv-quote-mark-end {
  text-align: right; margin-top: -10px; margin-bottom: 0;
}
body.jp-beitun .rv-body {
  font-family: var(--font-jp); font-size: .95rem; line-height: 1.95;
  color: var(--sumi); letter-spacing: .03em;
  margin: 0 8px 18px 8px;
}
body.jp-beitun .rv-foot {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: 16px; border-top: 1px dashed rgba(31,29,26,.1);
}
body.jp-beitun .rv-foot strong {
  font-family: var(--font-jp); font-size: .95rem; font-weight: 500;
  color: var(--sumi); letter-spacing: .04em;
}
body.jp-beitun .rv-foot > span {
  font-size: .78rem; color: var(--sumi-soft); letter-spacing: .04em;
}
body.jp-beitun .rv-link {
  text-align: center; margin-top: 48px;
}

/* ==========================================================================
   8. DEEPDIVE - 朱印 Tabs
   ========================================================================== */
body.jp-beitun .deepdive-jp { padding: 112px 0; }
body.jp-beitun .dd-jp-tabs {
  display: flex; gap: 0; justify-content: center; margin-bottom: 56px;
  border-bottom: 1px solid rgba(31,29,26,.12);
  flex-wrap: wrap;
}
body.jp-beitun .dd-jp-tab {
  background: transparent; border: none; padding: 18px 32px;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  cursor: pointer; position: relative;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px; transition: all .25s;
}
body.jp-beitun .dd-jp-tab .ddt-stamp {
  width: 36px; height: 36px; border: 1.5px solid rgba(31,29,26,.3);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-jp); font-size: 1.1rem; font-weight: 500;
  color: var(--sumi-soft); border-radius: 2px;
  transition: all .25s; transform: rotate(-3deg);
}
body.jp-beitun .dd-jp-tab .ddt-label {
  font-family: var(--font-jp); font-size: .92rem; font-weight: 500;
  color: var(--sumi-soft); letter-spacing: .06em;
}
body.jp-beitun .dd-jp-tab .ddt-en {
  font-size: .65rem; letter-spacing: .25em; color: rgba(31,29,26,.4);
}
body.jp-beitun .dd-jp-tab:hover .ddt-stamp {
  border-color: var(--shu); color: var(--shu); background: rgba(201,63,63,.04);
}
body.jp-beitun .dd-jp-tab.active {
  border-bottom-color: var(--shu);
}
body.jp-beitun .dd-jp-tab.active .ddt-stamp {
  background: var(--shu); color: var(--washi); border-color: var(--shu);
}
body.jp-beitun .dd-jp-tab.active .ddt-label { color: var(--sumi); }
body.jp-beitun .dd-jp-tab.active .ddt-en { color: var(--shu); }
body.jp-beitun .deepdive-pane { display: none; max-width: 880px; margin: 0 auto; }
body.jp-beitun .deepdive-pane.active { display: block; animation: jp-fade .4s ease; }
@keyframes jp-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
body.jp-beitun .dd-prose p {
  font-size: .94rem; line-height: 2; color: var(--sumi);
  margin: 0 0 18px 0; letter-spacing: .03em;
}
body.jp-beitun .dd-prose .dd-lead {
  font-family: var(--font-jp); font-size: 1.08rem; line-height: 1.95;
  color: var(--sumi); padding-left: 16px;
  border-left: 2px solid var(--bamboo); margin-bottom: 28px;
}
body.jp-beitun .dd-sub-title {
  margin: 48px 0 28px 0;
  padding-bottom: 16px; border-bottom: 1px solid rgba(31,29,26,.08);
}
body.jp-beitun .dd-sub-title .ja {
  display: block; font-family: var(--font-jp); font-size: .72rem;
  letter-spacing: .18em; color: var(--bamboo); margin-bottom: 8px;
  text-transform: uppercase;
}
body.jp-beitun .dd-sub-title .dd-sub-h {
  font-family: var(--font-jp); font-size: 1.2rem; font-weight: 500;
  color: var(--sumi); letter-spacing: .04em;
}
body.jp-beitun .dd-pains-grid,
body.jp-beitun .dd-notes-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
body.jp-beitun .dd-notes-grid { grid-template-columns: repeat(4, 1fr); }
body.jp-beitun .dd-pain,
body.jp-beitun .dd-note {
  position: relative; padding: 24px 20px 20px 56px;
  border: 1px solid rgba(31,29,26,.08); border-radius: 4px;
  background: rgba(255,255,255,.6); transition: all .25s;
}
body.jp-beitun .dd-pain:hover,
body.jp-beitun .dd-note:hover {
  background: #fff; border-color: rgba(74,107,77,.2);
  transform: translateY(-2px);
}
body.jp-beitun .dp-kanji,
body.jp-beitun .dn-kanji {
  position: absolute; top: 20px; left: 18px;
  font-family: var(--font-jp); font-size: 1.8rem; font-weight: 500;
  color: rgba(74,107,77,.3); line-height: 1;
}
body.jp-beitun .dd-pain h4,
body.jp-beitun .dd-note h4 {
  font-family: var(--font-jp); font-size: 1rem; font-weight: 500;
  color: var(--sumi); margin: 0 0 8px 0; letter-spacing: .04em;
  line-height: 1.5;
}
body.jp-beitun .dd-pain p,
body.jp-beitun .dd-note p {
  font-size: .85rem; line-height: 1.8; color: var(--sumi-soft);
  margin: 0;
}
body.jp-beitun .dd-note p a { color: var(--bamboo); border-bottom: 1px solid var(--matcha); text-decoration: none; }

/* FAQ */
body.jp-beitun .dd-faq-list { list-style: none; padding: 0; margin: 0; }
body.jp-beitun .dd-faq-item {
  border-bottom: 1px solid rgba(31,29,26,.1);
}
body.jp-beitun .dd-faq-item details summary {
  padding: 20px 0; cursor: pointer; list-style: none;
  display: flex; align-items: flex-start; gap: 16px;
  position: relative; padding-right: 40px;
}
body.jp-beitun .dd-faq-item details summary::-webkit-details-marker { display: none; }
body.jp-beitun .dd-faq-item details summary::after {
  content: '＋'; position: absolute; right: 8px; top: 22px;
  font-family: var(--font-jp); color: var(--bamboo); font-size: 1.2rem;
  font-weight: 400; transition: transform .25s;
}
body.jp-beitun .dd-faq-item details[open] summary::after { content: '−'; color: var(--shu); }
body.jp-beitun .dq {
  font-family: var(--font-jp); font-size: 1.2rem; font-weight: 500;
  color: var(--shu); line-height: 1; flex-shrink: 0; min-width: 24px;
}
body.jp-beitun .dq-text {
  font-family: var(--font-jp); font-size: 1rem; font-weight: 500;
  color: var(--sumi); letter-spacing: .04em; line-height: 1.6;
}
body.jp-beitun .dd-faq-ans {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 0 40px 24px 0;
}
body.jp-beitun .da {
  font-family: var(--font-jp); font-size: 1.2rem; font-weight: 500;
  color: var(--matcha); line-height: 1; flex-shrink: 0; min-width: 24px;
}
body.jp-beitun .dd-faq-ans p {
  font-size: .92rem; line-height: 1.95; color: var(--sumi-soft);
  margin: 0; letter-spacing: .02em;
}

/* Nearby */
body.jp-beitun .dd-nearby-lead {
  text-align: center; font-family: var(--font-jp); font-size: 1rem;
  color: var(--sumi-soft); margin-bottom: 32px; letter-spacing: .06em;
}
body.jp-beitun .dd-nearby-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px;
  margin-bottom: 36px;
}
body.jp-beitun .dn-tile {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 24px 12px; background: #fff;
  border: 1px solid rgba(31,29,26,.08); border-radius: 4px;
  text-decoration: none; transition: all .25s;
}
body.jp-beitun .dn-tile:hover {
  border-color: var(--shu); transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(31,29,26,.06);
}
body.jp-beitun .dn-stamp {
  width: 40px; height: 40px; border: 1.5px solid var(--shu);
  background: rgba(201,63,63,.06);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-jp); font-size: 1.2rem; font-weight: 500;
  color: var(--shu); border-radius: 2px; transform: rotate(-3deg);
}
body.jp-beitun .dn-tile strong {
  font-family: var(--font-jp); font-size: .95rem; font-weight: 500;
  color: var(--sumi); letter-spacing: .04em;
}
body.jp-beitun .dn-en {
  font-size: .62rem; letter-spacing: .2em; color: var(--sumi-soft);
}
body.jp-beitun .dd-nearby-foot { text-align: center; }

/* ==========================================================================
   9. CTA BAND ・ 主頁同款竹綠
   ========================================================================== */
body.jp-beitun .cta-band-jp {
  background: var(--bamboo-deep); position: relative; overflow: hidden;
  padding: 96px 0;
}
body.jp-beitun .ctb-bg { position: absolute; inset: 0; pointer-events: none; }
body.jp-beitun .ctb-kanji {
  position: absolute; right: 4%; top: 50%; transform: translateY(-50%);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif TC", "Source Han Serif TC", serif;
  font-size: clamp(12rem, 22vw, 22rem);
  color: rgba(245,239,228,.05); line-height: .9; font-weight: 500;
  font-size-adjust: 0.5;
  contain: layout style paint;
}
body.jp-beitun .cta-band-jp .container {
  display: grid; grid-template-columns: 1fr auto; gap: 32px;
  align-items: center; position: relative; z-index: 1;
}
body.jp-beitun .ctb-ja {
  display: block; font-family: var(--font-jp); font-size: .76rem;
  letter-spacing: .25em; color: var(--matcha); margin-bottom: 16px;
  position: relative; padding-left: 50px;
}
body.jp-beitun .ctb-ja::before {
  content: ''; position: absolute; left: 0; top: 50%;
  width: 36px; height: 2px; background: var(--shu);
  transform: translateY(-50%);
}
body.jp-beitun .cta-band-jp h2 {
  font-family: var(--font-jp); font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 500; color: var(--washi); letter-spacing: .06em;
  line-height: 1.5; margin: 0 0 14px 0;
}
body.jp-beitun .cta-band-jp p {
  color: rgba(245,239,228,.65); font-size: .92rem;
  margin: 0; line-height: 1.8; letter-spacing: .03em;
}
body.jp-beitun .cta-band-jp .cta-actions {
  display: flex; gap: 12px; flex-wrap: wrap;
}
body.jp-beitun .cta-band-jp .btn-outline {
  border-color: rgba(245,239,228,.35); color: var(--washi);
}
body.jp-beitun .cta-band-jp .btn-outline:hover {
  background: rgba(245,239,228,.08); border-color: var(--washi);
}

/* ==========================================================================
   LINE 按鈕 ・ 視覺強調
   ========================================================================== */
.btn-line-icon {
  width: 18px; height: 18px; flex-shrink: 0;
}
body.jp-beitun .btn.btn-line {
  background: #06c755;
  color: #fff;
  border: none;
  box-shadow: 0 4px 14px rgba(6,199,85,.35);
  font-weight: 600;
}
body.jp-beitun .btn.btn-line:hover {
  background: #05a346;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(6,199,85,.42);
}
body.jp-beitun .btn.btn-line:focus-visible {
  outline: 2px solid #06c755;
  outline-offset: 3px;
}
/* craftsman dark section 上的 LINE 按鈕 */
body.jp-beitun .btn-ghost-light.btn-line-ghost {
  background: #06c755;
  border-color: #06c755;
  color: #fff;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(6,199,85,.35);
}
body.jp-beitun .btn-ghost-light.btn-line-ghost:hover {
  background: #05a346;
  border-color: #05a346;
  box-shadow: 0 8px 20px rgba(6,199,85,.42);
}

/* ==========================================================================
   STICKY CTA BAR
   ========================================================================== */
.sticky-cta-bar {
  display: none; position: fixed; bottom: 0; left: 0; right: 0;
  z-index: 90; background: rgba(245,239,228,.96);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(31,29,26,.1);
  padding: 10px 16px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
  gap: 10px; align-items: center;
  transform: translateY(100%); transition: transform .3s ease;
}
.sticky-cta-bar.visible { transform: translateY(0); }
/* Hero 行動版 LINE 按鈕：桌機隱藏，手機顯示於 lead 下方 */
body.jp-beitun .hero-line-mobile {
  display: none;
}


.sticky-cta-line {
  flex: 1; background: #06c755; color: #fff; border: none;
  border-radius: 10px; padding: 13px 20px; font-size: .9rem;
  font-weight: 600; text-decoration: none; text-align: center;
  display: flex; align-items: center; justify-content: center; gap: 8px;
}
.sticky-cta-tel {
  width: 48px; height: 48px; border-radius: 10px;
  border: 1.5px solid rgba(31,29,26,.2); background: #fff;
  display: flex; align-items: center; justify-content: center;
  color: var(--sumi); text-decoration: none; flex-shrink: 0;
}

/* ==========================================================================
   RWD
   ========================================================================== */
@media (max-width: 1024px) {
  body.jp-beitun .hero-bp-headline { grid-template-columns: 1fr; gap: 32px; }
  body.jp-beitun .hero-bp-overview { grid-template-columns: 1fr; gap: 36px; }
  body.jp-beitun .hero-bp-cta { min-width: 0; }
  body.jp-beitun .hero-bp-stats { grid-template-columns: 1fr 1fr; gap: 20px; }
  body.jp-beitun .hero-bp-stat:nth-child(2) { border-right: none; }
  body.jp-beitun .hero-bp-stat:nth-child(3),
  body.jp-beitun .hero-bp-stat:nth-child(4) { padding-top: 20px; border-top: 1px solid rgba(31,29,26,.1); }
  body.jp-beitun .hero-bp-rule-v { display: none; }
  body.jp-beitun .coverage-ledger { grid-template-columns: 1fr; gap: 48px; }
  body.jp-beitun .cl-map-frame { aspect-ratio: 16 / 9; max-width: 540px; }
  body.jp-beitun .price-cards { grid-template-columns: 1fr; gap: 20px; }
  body.jp-beitun .promo-ledger { grid-template-columns: 1fr; gap: 24px; }
  body.jp-beitun .cd-grid { grid-template-columns: 1fr; gap: 36px; }
  body.jp-beitun .cd-vertical { writing-mode: horizontal-tb; -webkit-writing-mode: horizontal-tb; height: auto; }
  body.jp-beitun .cd-kanji { font-size: clamp(8rem, 28vw, 14rem); top: auto; bottom: -3vh; right: -8vw; transform: none; }
  body.jp-beitun .rv-jp-grid { grid-template-columns: 1fr; }
  body.jp-beitun .rv-jp-card { border-right: none; }
  body.jp-beitun .dd-pains-grid { grid-template-columns: 1fr; }
  body.jp-beitun .dd-notes-grid { grid-template-columns: 1fr 1fr; }
  body.jp-beitun .dd-nearby-grid { grid-template-columns: repeat(3, 1fr); }
  body.jp-beitun .cta-band-jp .container { grid-template-columns: 1fr; }
  body.jp-beitun .combo-row { grid-template-columns: 80px 1fr; gap: 20px; }
  body.jp-beitun .cr-mark { flex-direction: row; gap: 12px; }
  body.jp-beitun .cr-zone { writing-mode: horizontal-tb; -webkit-writing-mode: horizontal-tb; }
  body.jp-beitun .cr-kanji { width: 56px; height: 56px; font-size: 1.6rem; }
  body.jp-beitun .cr-total { grid-column: 1 / -1; border-left: none; border-top: 1px solid rgba(31,29,26,.12); padding: 16px 0 0 0; flex-direction: row; justify-content: flex-end; align-items: baseline; gap: 16px; text-align: right; }
}
@media (max-width: 768px) {
  body.jp-beitun section { padding: 64px 0; }
  body.jp-beitun .hero-beitun { padding: 80px 0 56px; }
  body.jp-beitun .hero-bp-kanji { font-size: clamp(14rem, 50vw, 20rem); bottom: -4vh; right: -8vw; }
  body.jp-beitun .hero-bp-meta { gap: 12px; }
  body.jp-beitun .hero-bp-edition { margin-left: 0; width: 100%; }
  body.jp-beitun .hero-bp-stats { grid-template-columns: 1fr; gap: 16px; }
  body.jp-beitun .hero-bp-stat { border-right: none; border-bottom: 1px solid rgba(31,29,26,.08); padding: 12px 0; }
  body.jp-beitun .hero-bp-stat:last-child { border-bottom: none; }
  body.jp-beitun .hero-bp-stat:nth-child(3),
  body.jp-beitun .hero-bp-stat:nth-child(4) { padding-top: 12px; border-top: none; }
  body.jp-beitun .seo-fact-list li { grid-template-columns: 1fr; gap: 4px; }
  body.jp-beitun .seo-num { font-size: 3rem; min-width: 50px; }
  body.jp-beitun .seo-block-head { gap: 16px; }
  body.jp-beitun .dd-notes-grid { grid-template-columns: 1fr; }
  body.jp-beitun .dd-nearby-grid { grid-template-columns: repeat(2, 1fr); }
  body.jp-beitun .dd-jp-tab { padding: 14px 18px; }
  body.jp-beitun .dd-jp-tab .ddt-label { font-size: .82rem; }
  .sticky-cta-bar { display: flex; }
  /* 手機版：lead 下方顯示 LINE 按鈕，hero-bp-cta 內的 LINE 按鈕隱藏 */
  body.jp-beitun .hero-line-mobile {
    display: inline-flex; width: 100%; justify-content: center;
    margin-top: 20px;
  }
  body.jp-beitun .hero-bp-cta .btn-line { display: none; }
  /* 手機版：懸浮球隱藏（底部 sticky bar 已有電話＋LINE） */
  body.jp-beitun .float-actions { display: none; }
}
</content>
</invoke>