/* finance 產業版型：首頁、關於頁、服務頁的專屬設計。只用 shared/tokens.css 的變數。
   方向：財經期刊。細線分隔、方角、數字當主角、留白多。顏色全部來自 --p1…--p9／--line，切換主色與字型都會跟著變。 */

/* ===== 共用 ===== */
.ind-section { padding-block: var(--section-y); }
.ind-section--tint { background: var(--p8); }
.ind-section--flush { padding-top: 0; }
.ind-section + .ind-section:not(.ind-section--tint):not(.ind-section--flush) { border-top: 1px solid var(--line); }
.ind-section--tint + .ind-section { border-top: 0; }

.ind-kicker { display: inline-flex; align-items: center; gap: 12px; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.14em; color: var(--p1); }
.ind-kicker::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.ind-kicker--light { color: color-mix(in srgb, var(--p9) 78%, transparent); }

.ind-masthead { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px var(--s4); padding-block: 10px; border-top: 3px solid var(--p3); border-bottom: 1px solid var(--p3); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; color: var(--p3); }

/* 區塊標題：編號＋英文眉標＋中文標題，底下一條粗線 */
.ind-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s4) var(--s6); padding-bottom: var(--s5); border-bottom: 2px solid var(--p3); }
.ind-head > div { display: flex; flex-direction: column; gap: var(--s3); max-width: 44em; }
.ind-head h2 { font-size: var(--fs-2xl); line-height: 1.3; }
.ind-eyebrow { display: inline-flex; align-items: center; gap: 10px; }
.ind-eyebrow .num { color: var(--p3); }
.ind-eyebrow .num::after { content: ""; display: inline-block; width: 24px; height: 1px; margin-left: 10px; vertical-align: middle; background: var(--line-strong); }
.ind-statement { font-size: var(--fs-2xl) !important; line-height: 1.5 !important; letter-spacing: 0.04em; }

.ind-disclaimer { font-size: var(--fs-xs); color: var(--p6); }

/* ===== 首頁 Hero：左大標＋數字列，右直式框線照 ===== */
.ind-hero { padding-block: var(--s5) clamp(56px, 7vw, 96px); background: var(--p9); }
.ind-hero__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr); gap: clamp(32px, 6vw, 104px); align-items: end; padding-top: clamp(36px, 5vw, 64px); }
.ind-hero__text { display: flex; flex-direction: column; gap: var(--s5); min-width: 0; }
.ind-hero__text > * { animation: rise .8s cubic-bezier(.2, .7, .2, 1) both; }
.ind-hero__text > :nth-child(2) { animation-delay: .08s; }
.ind-hero__text > :nth-child(3) { animation-delay: .16s; }
.ind-hero__text > :nth-child(4) { animation-delay: .24s; }
.ind-hero__text > :nth-child(5) { animation-delay: .32s; }
.ind-hero h1 { font-size: var(--fs-hero); line-height: 1.25; letter-spacing: 0.01em; }
.ind-hero__lead { font-size: var(--fs-lg); color: var(--p5); max-width: 28em; word-break: keep-all; overflow-wrap: anywhere; }
.ind-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s6); }

.ind-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: var(--s3) 0 0; border-top: 1px solid var(--p3); }
.ind-stats > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 6px; padding: var(--s4) var(--s4) 0 0; min-width: 0; }
.ind-stats > div + div { padding-left: var(--s5); border-left: 1px solid var(--line); }
.ind-stats dt { font-size: var(--fs-sm); color: var(--p5); }
.ind-stats dd { margin: 0; font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-2xl); line-height: 1; letter-spacing: 0; color: var(--p3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ind-stats dd small { margin-left: 4px; font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0; color: var(--p5); }

.ind-portrait { margin: 0; display: flex; flex-direction: column; gap: var(--s3); min-width: 0; }
.ind-portrait__frame { position: relative; isolation: isolate; margin: 0 16px 16px 0; }
.ind-portrait__frame::before { content: ""; position: absolute; inset: 16px -16px -16px 16px; z-index: -1; border: 1px solid var(--p3); animation: indFrame .9s .25s cubic-bezier(.2, .7, .2, 1) both; }
.ind-portrait__frame img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%; background: var(--p7); }
.ind-portrait figcaption { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin-right: 16px; padding-top: var(--s3); border-top: 1px solid var(--line); font-size: var(--fs-xs); letter-spacing: 0.04em; color: var(--p5); }
.ind-portrait figcaption b { font-family: var(--font-heading); font-size: var(--fs-sm); color: var(--p3); }
@keyframes indFrame { from { opacity: 0; transform: translate(-16px, -16px); } to { opacity: 1; transform: none; } }

@media (max-width: 860px) {
  .ind-hero__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .ind-portrait { max-width: 420px; }
}
@media (max-width: 480px) {
  .ind-stats > div { padding-right: var(--s2); }
  .ind-stats > div + div { padding-left: var(--s3); }
  .ind-stats dt { font-size: var(--fs-xs); }
}

/* ===== 課程（變化 A）：編號列表，欄位對齊像報表 ===== */
.ind-rows, .ind-rows__head { --ind-cols: 44px 120px minmax(0, 1fr) 84px 132px 148px 20px; }
.ind-rows { list-style: none; }
.ind-rows__head { display: grid; grid-template-columns: var(--ind-cols); gap: var(--s5); padding-block: 12px; border-bottom: 1px solid var(--line); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.1em; color: var(--p6); }
.ind-row { display: grid; grid-template-columns: var(--ind-cols); gap: var(--s5); align-items: center; padding-block: var(--s5); border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.ind-row__no { align-self: start; padding-top: 2px; font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-xl); line-height: 1.2; color: var(--p1); }
.ind-row__media { overflow: hidden; aspect-ratio: 4 / 3; background: var(--p7); }
.ind-row__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ind-row:hover .ind-row__media img { transform: scale(1.06); }
.ind-row__main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ind-row__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ind-row__tags .badge { border-radius: 2px; }
.ind-row__title { font-size: var(--fs-lg); line-height: 1.45; transition: color .18s; }
.ind-row:hover .ind-row__title { color: var(--p1); }
.ind-row__desc { font-size: var(--fs-sm); color: var(--p5); }
.ind-row__cell { font-size: var(--fs-sm); color: var(--p5); white-space: nowrap; }
.ind-row__cell b { font-family: var(--font-heading); font-size: var(--fs-xl); font-weight: 700; color: var(--p3); font-variant-numeric: tabular-nums; }
.ind-row__price .price { font-size: var(--fs-xl); flex-wrap: wrap; row-gap: 0; }
.ind-row__go { color: var(--p1); font-size: var(--fs-lg); transition: transform .18s; }
.ind-row:hover .ind-row__go { transform: translateX(4px); }
.ind-rows__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3) var(--s5); padding-top: var(--s5); }
.ind-rows__foot a { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--p3); font-weight: 700; font-size: var(--fs-sm); text-decoration: none; }
.ind-rows__foot a:hover { color: var(--p1); }
.ind-rows__foot .badge { border-radius: 2px; }

@media (max-width: 960px) {
  .ind-rows, .ind-rows__head { --ind-cols: 40px 96px minmax(0, 1fr) 64px 112px 120px; }
  .ind-row__go, .ind-rows__head > :last-child { display: none; }
}
@media (max-width: 760px) {
  .ind-rows__head { display: none; }
  .ind-row { grid-template-columns: 28px minmax(0, 0.8fr) minmax(0, 1fr) minmax(0, 1.25fr); gap: var(--s3); }
  .ind-row__media { display: none; }
  .ind-row__no { grid-row: 1 / 3; font-size: var(--fs-lg); }
  .ind-row__main { grid-column: 2 / -1; }
  .ind-row__title { font-size: var(--fs-lg); }
  .ind-row__cell { display: block; padding-top: var(--s3); border-top: 1px dashed var(--line); white-space: normal; }
  .ind-row__cell::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: var(--fs-xs); letter-spacing: 0.08em; color: var(--p6); }
  .ind-row__cell b, .ind-row__price .price { font-size: var(--fs-lg); }
}

/* ===== 學員見證：評分總表＋附「學習成果」的評價卡 ===== */
.ind-score { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s5) clamp(32px, 6vw, 96px); align-items: center; padding-block: var(--s6); border-bottom: 1px solid var(--line); margin-bottom: var(--s6); }
.ind-score__big { display: flex; align-items: center; gap: var(--s4); font-size: var(--fs-sm); color: var(--p5); }
.ind-score__big > b { padding-right: var(--s4); border-right: 1px solid var(--line); font-family: var(--font-heading); font-size: var(--fs-2xl); line-height: 1; letter-spacing: 0; color: var(--p3); font-variant-numeric: tabular-nums; }
.ind-score__big .source-mark { width: 22px; height: 22px; font-size: var(--fs-xs); vertical-align: -4px; }
.ind-score--google { grid-template-columns: auto auto; justify-content: space-between; }
.ind-bars { display: grid; gap: 8px; max-width: 560px; margin: 0; }
.ind-bars > div { display: grid; grid-template-columns: 64px minmax(0, 1fr) 40px; gap: 12px; align-items: center; font-size: var(--fs-xs); color: var(--p5); }
.ind-bars dd { margin: 0; }
.ind-bars dd.num { text-align: right; }
.ind-bars__bar { position: relative; height: 6px; background: var(--line); }
.ind-bars__bar span { position: absolute; inset: 0 auto 0 0; width: var(--w); background: var(--p1); }

.ind-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); }
.ind-review { display: flex; flex-direction: column; gap: var(--s4); margin: 0; padding: var(--s6) var(--s5) var(--s5); background: var(--p9); border: 1px solid var(--line); border-top: 3px solid var(--p3); transition: transform .25s ease, box-shadow .25s ease; }
.ind-review:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.ind-review__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2) var(--s3); font-size: var(--fs-xs); color: var(--p6); }
.ind-review__top a { color: var(--p5); font-weight: 700; letter-spacing: 0.04em; text-decoration: none; }
.ind-review__top a:hover { color: var(--p1); }
.ind-review__result { padding-bottom: var(--s4); border-bottom: 1px solid var(--line); font-family: var(--font-heading); font-weight: var(--heading-weight); font-size: var(--fs-lg); line-height: 1.45; color: var(--p3); }
.ind-review__result span { display: block; margin-bottom: 4px; font-family: var(--font-body); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; color: var(--p1); }
.ind-review blockquote { margin: 0; font-size: var(--fs-sm); line-height: 1.85; color: var(--p4); }
.ind-review figcaption { display: flex; align-items: center; gap: var(--s3); margin-top: auto; padding-top: var(--s2); font-size: var(--fs-xs); color: var(--p6); }
.ind-review figcaption b { font-size: var(--fs-sm); color: var(--p3); }
.ind-review .avatar { border-radius: 2px; }

.ind-quote { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--s6) clamp(32px, 6vw, 96px); padding-top: var(--s7); }
.ind-quote figure { margin: 0; display: flex; flex-direction: column; gap: var(--s4); }
.ind-quote__main { position: relative; padding-top: var(--s7); border-top: 2px solid var(--p3); }
.ind-quote__main::before { content: "“"; position: absolute; top: var(--s3); left: 0; font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-2xl); line-height: 1; color: var(--p1); }
.ind-quote__main blockquote { margin: 0; font-family: var(--font-heading); font-weight: var(--heading-weight); font-size: var(--fs-xl); line-height: 1.75; letter-spacing: 0.02em; color: var(--p3); }
.ind-quote figcaption { font-size: var(--fs-sm); color: var(--p5); }
.ind-quote figcaption b { color: var(--p3); }
.ind-quote__side { display: flex; flex-direction: column; border-top: 2px solid var(--p3); }
.ind-quote__side figure { padding-block: var(--s5); border-bottom: 1px solid var(--line); }
.ind-quote__side blockquote { margin: 0; color: var(--p4); }

@media (max-width: 960px) {
  .ind-reviews { grid-template-columns: minmax(0, 1fr); }
  .ind-score { grid-template-columns: minmax(0, 1fr); }
  .ind-score--google { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .ind-quote { grid-template-columns: minmax(0, 1fr); }
}

/* ===== 關於（一位老師）：署名＋資歷表；團隊：撰稿人列表 ===== */
.ind-bio { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--s6) clamp(32px, 6vw, 96px); align-items: start; padding-top: var(--s7); }
.ind-bio__intro { display: flex; flex-direction: column; gap: var(--s5); }
.ind-bio__byline { display: flex; align-items: center; gap: var(--s4); }
.ind-bio__byline img { width: 84px; height: 104px; object-fit: cover; object-position: 50% 18%; background: var(--p7); }
.ind-bio__byline p { display: flex; flex-direction: column; font-size: var(--fs-sm); color: var(--p5); }
.ind-bio__byline b { font-size: var(--fs-xs); letter-spacing: 0.12em; color: var(--p1); }
.ind-bio blockquote { margin: 0; padding-block: var(--s4); border-block: 1px solid var(--line); font-family: var(--font-heading); font-weight: var(--heading-weight); font-size: var(--fs-lg); line-height: 1.7; color: var(--p3); }
.ind-creds { margin: 0; border-top: 2px solid var(--p3); }
.ind-creds > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--s4); padding-block: var(--s4); border-bottom: 1px solid var(--line); }
.ind-creds dt { padding-top: 3px; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.14em; color: var(--p1); }
.ind-creds dd { margin: 0; font-weight: 500; color: var(--p3); }
.ind-creds dd .num { font-family: var(--font-heading); font-weight: 700; }

.ind-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s6) var(--s5); padding-top: var(--s7); }
.ind-member { display: flex; flex-direction: column; gap: var(--s2); color: inherit; text-decoration: none; }
.ind-member__photo { overflow: hidden; aspect-ratio: 4 / 5; margin-bottom: var(--s3); background: var(--p7); }
.ind-member__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; filter: grayscale(1); transition: filter .4s ease, transform .6s ease; }
.ind-member:hover .ind-member__photo img { filter: none; transform: scale(1.03); }
.ind-member__role { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; color: var(--p1); }
.ind-member h3 { font-size: var(--fs-lg); }
.ind-member p { padding-top: var(--s2); border-top: 1px solid var(--line); font-size: var(--fs-sm); color: var(--p5); }

@media (max-width: 860px) {
  .ind-bio { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .ind-team { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 74%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--s3); }
  .ind-member { scroll-snap-align: start; }
}

/* ===== 理念：三個原則，大號數字 ===== */
.ind-principles { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s6) clamp(24px, 4vw, 56px); padding-top: var(--s7); }
.ind-principles li { display: flex; flex-direction: column; gap: var(--s4); }
.ind-principles__no { padding-bottom: var(--s3); border-bottom: 2px solid var(--p3); font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-2xl); line-height: 1; letter-spacing: 0; color: var(--p1); font-variant-numeric: tabular-nums; }
.ind-principles h3 { margin-bottom: var(--s2); font-size: var(--fs-lg); }
.ind-principles p { font-size: var(--fs-sm); color: var(--p5); max-width: 24em; }
@media (max-width: 760px) {
  .ind-principles { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ind-principles li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: var(--s4); padding-block: var(--s5); border-bottom: 1px solid var(--line); }
  .ind-principles__no { padding: 0; border: 0; }
}

/* ===== 文章：期刊式文字列表，日期是主角 ===== */
.ind-journal { list-style: none; }
.ind-entry { display: grid; grid-template-columns: 88px 112px minmax(0, 1fr) auto; gap: var(--s5); align-items: baseline; padding-block: var(--s6); border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.ind-entry__date { display: flex; flex-direction: column; line-height: 1; }
.ind-entry__date b { font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-2xl); letter-spacing: 0; color: var(--p3); font-variant-numeric: tabular-nums; }
.ind-entry__date span { margin-top: 8px; font-size: var(--fs-xs); letter-spacing: 0.08em; color: var(--p6); }
.ind-entry__cat { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; color: var(--p1); }
.ind-entry__body { min-width: 0; }
.ind-entry h3 { font-size: var(--fs-lg); transition: color .18s; word-break: keep-all; overflow-wrap: anywhere; }
.ind-entry:hover h3 { color: var(--p1); }
.ind-entry p { margin-top: 6px; font-size: var(--fs-sm); color: var(--p5); max-width: 40em; }
.ind-entry__go { font-size: var(--fs-sm); font-weight: 700; color: var(--p1); white-space: nowrap; }
@media (max-width: 760px) {
  .ind-entry { grid-template-columns: 60px minmax(0, 1fr); gap: var(--s2) var(--s4); }
  .ind-entry__date { grid-row: 1 / 3; }
  .ind-entry__date span { letter-spacing: 0; }
  .ind-entry__go { display: none; }
}

/* ===== CTA：深色方角帶，內框細線，右邊大數字 ===== */
.ind-cta { position: relative; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--s6); align-items: center; padding: clamp(40px, 6vw, 80px); background: var(--p3); color: var(--p9); }
.ind-cta::before { content: ""; position: absolute; inset: 12px; border: 1px solid color-mix(in srgb, var(--p9) 18%, transparent); pointer-events: none; }
.ind-cta__text { display: flex; flex-direction: column; gap: var(--s4); align-items: flex-start; }
.ind-cta h2 { color: var(--p9); font-size: var(--fs-2xl); line-height: 1.4; }
.ind-cta p { max-width: 30em; color: color-mix(in srgb, var(--p9) 76%, transparent); }
.ind-cta .row { margin-top: var(--s2); }
.ind-cta__figure { justify-self: end; min-width: 13em; padding: var(--s5) 0 var(--s4); border-top: 2px solid color-mix(in srgb, var(--p9) 72%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--p9) 28%, transparent); text-align: right; }
.ind-cta__figure .num { display: block; font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-2xl); line-height: 1; letter-spacing: 0.06em; color: transparent; -webkit-text-stroke: 1.2px var(--p9); }
.ind-cta__figure small { display: block; margin-top: var(--s4); font-size: var(--fs-sm); letter-spacing: 0.08em; color: color-mix(in srgb, var(--p9) 70%, transparent); }
@media (max-width: 860px) {
  .ind-cta { grid-template-columns: minmax(0, 1fr); }
  .ind-cta__figure { justify-self: start; text-align: left; }
}
@media (max-width: 480px) {
  .ind-cta { padding: 40px 28px; }
}

/* ===== 關於頁：Hero（名字放大＋資歷標籤）、故事、經歷年表 ===== */
.ind-hero--profile .breadcrumb { margin-bottom: calc(var(--s2) * -1); }
.ind-profile__name { font-size: var(--fs-hero) !important; line-height: 1.1 !important; letter-spacing: 0.12em !important; }
.ind-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.ind-tags li { padding: 4px 12px; border: 1px solid var(--p3); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.06em; color: var(--p3); }
@media (max-width: 860px) {
  .ind-hero--profile .ind-portrait { order: -1; max-width: 360px; }
}

.ind-story { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "a b" "q q"; gap: var(--s6) clamp(32px, 6vw, 96px); padding-top: var(--s7); font-size: var(--fs-base); line-height: 1.95; color: var(--p4); }
.ind-story__col { display: flex; flex-direction: column; gap: var(--s5); }
.ind-story__col:first-of-type { grid-area: a; }
.ind-story__col:last-of-type { grid-area: b; }
.ind-pull { grid-area: q; margin: var(--s4) 0 0; padding-block: var(--s6); border-top: 2px solid var(--p3); border-bottom: 1px solid var(--p3); font-family: var(--font-heading); font-weight: var(--heading-weight); font-size: var(--fs-2xl); line-height: 1.6; letter-spacing: 0.04em; text-align: center; color: var(--p3); }
@media (max-width: 760px) {
  .ind-story { grid-template-columns: minmax(0, 1fr); grid-template-areas: "a" "q" "b"; }
  .ind-pull { text-align: left; }
}

.ind-years { width: 100%; border-collapse: collapse; }
.ind-years thead th { padding: 12px 0; border-bottom: 1px solid var(--line-strong); text-align: left; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.1em; color: var(--p6); }
.ind-years thead th:last-child { text-align: right; }
.ind-years tbody th { width: 136px; padding: var(--s5) 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: baseline; font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-2xl); line-height: 1; letter-spacing: 0; color: var(--p3); font-variant-numeric: tabular-nums; }
.ind-years td { padding: var(--s5) var(--s4) var(--s5) 0; border-bottom: 1px solid var(--line); vertical-align: baseline; color: var(--p4); }
.ind-years td:last-child { width: 96px; padding-right: 0; text-align: right; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; color: var(--p1); }
.ind-years tbody tr { transition: background .2s; }
.ind-years tbody tr:hover { background: var(--p9); }
@media (max-width: 600px) {
  .ind-years thead { display: none; }
  .ind-years tbody th { width: 72px; }
  .ind-years td:last-child { display: none; }
}

/* ===== 服務總覽：期刊頁首＋兩欄服務卡（方角、上緣粗線、規格表） ===== */
.ind-pagehead { padding-block: var(--s5) clamp(32px, 5vw, 56px); }
.ind-pagehead__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--s5) clamp(32px, 6vw, 96px); align-items: end; padding-top: clamp(32px, 5vw, 56px); }
.ind-pagehead h1 { font-size: var(--fs-3xl); line-height: 1.35; }
.ind-pagehead .lead { padding-left: var(--s5); border-left: 1px solid var(--p3); }
@media (max-width: 760px) {
  .ind-pagehead__grid { grid-template-columns: minmax(0, 1fr); }
}
.ind-filter .filter-bar { border-top: 2px solid var(--p3); }
.ind-filter .chip { border-radius: 2px; }

.ind-svc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s7) var(--s6); }
.ind-svc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); padding-top: var(--s6); }
.ind-svc { display: flex; flex-direction: column; color: inherit; text-decoration: none; background: var(--p9); border-top: 3px solid var(--p3); }
.ind-svc__media { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: var(--p7); }
.ind-svc__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ind-svc:hover .ind-svc__media img { transform: scale(1.04); }
.ind-svc__media .badge { position: absolute; left: 12px; top: 12px; border-radius: 2px; }
.ind-svc__body { display: flex; flex-direction: column; gap: var(--s3); flex: 1; padding-top: var(--s5); }
.ind-svc-grid--3 .ind-svc__body { padding: var(--s4) var(--s4) var(--s5); }
.ind-svc__cat { display: inline-flex; align-items: center; gap: 10px; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; color: var(--p1); }
.ind-svc__cat .num { color: var(--p3); }
.ind-svc__title { font-size: var(--fs-2xl); transition: color .18s; }
.ind-svc-grid--3 .ind-svc__title { font-size: var(--fs-lg); }
.ind-svc:hover .ind-svc__title { color: var(--p1); }
.ind-svc__body > p { font-size: var(--fs-sm); color: var(--p5); max-width: 34em; }
.ind-svc__meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: var(--s2) 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ind-svc-grid--3 .ind-svc__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: auto; }
.ind-svc__meta > div { display: flex; flex-direction: column; gap: 2px; padding: var(--s3) var(--s3) var(--s3) 0; min-width: 0; }
.ind-svc__meta > div + div { padding-left: var(--s4); border-left: 1px solid var(--line); }
.ind-svc__meta dt { font-size: var(--fs-xs); letter-spacing: 0.08em; color: var(--p6); }
.ind-svc__meta dd { margin: 0; font-size: var(--fs-sm); font-weight: 500; color: var(--p3); }
.ind-svc__meta dd b { font-family: var(--font-heading); font-weight: 700; font-size: var(--fs-xl); }
.ind-svc__meta .price { font-size: var(--fs-lg); }
.ind-svc__meta small { color: var(--p5); font-weight: 400; }
.ind-svc__cta { margin-top: var(--s2); font-size: var(--fs-sm); font-weight: 700; color: var(--p1); }
.ind-svc-note { margin-top: var(--s7); padding-top: var(--s4); border-top: 1px solid var(--line); }
@media (max-width: 960px) {
  .ind-svc-grid--3 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .ind-svc-grid { grid-template-columns: minmax(0, 1fr); gap: var(--s7); }
  .ind-svc__meta { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.1fr) minmax(0, 1.1fr); }
  .ind-svc__meta > div + div { padding-left: var(--s3); }
}

/* ===== 服務內頁：沿用預約結構，換成期刊式的線條與數字 ===== */
.ind-svcpage .svc-head { padding-top: var(--s6); }
.ind-svcpage .svc-head h1 { font-size: var(--fs-3xl); line-height: 1.3; }
.ind-svcpage .svc-gallery figure { border-radius: 0; }
.ind-svcpage .svc-gallery { padding-top: var(--s4); border-top: 2px solid var(--p3); aspect-ratio: auto; height: clamp(280px, 38vw, 520px); }
.ind-svcpage .svc-main { counter-reset: svc; }
.ind-svcpage .svc-main > section > h2:not(.visually-hidden) { display: flex; align-items: baseline; gap: var(--s3); font-size: var(--fs-2xl); }
.ind-svcpage .svc-main > section > h2:not(.visually-hidden)::before { counter-increment: svc; content: counter(svc, decimal-leading-zero); font-family: var(--font-heading); font-size: var(--fs-sm); letter-spacing: 0.08em; color: var(--p1); }
.ind-svcpage .svc-main > section + section { border-top-color: var(--p3); }
.ind-svcpage .svc-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-block: 1px solid var(--line); }
.ind-svcpage .svc-facts > div { grid-template-columns: minmax(0, 1fr); align-content: start; padding: var(--s4) var(--s4) var(--s4) 0; }
.ind-svcpage .svc-main > .prose { max-width: none; }
.ind-svcpage .svc-main > .prose > * { max-width: var(--measure); }
.ind-svcpage .svc-facts > div + div { padding-left: var(--s4); border-left: 1px solid var(--line); }
.ind-svcpage .svc-facts svg { grid-row: auto; margin-bottom: var(--s2); }
.ind-svcpage .instructor img { border-radius: 2px; width: 56px; height: 68px; object-position: 50% 20%; }
.ind-svcpage .avatar { border-radius: 2px; }
.ind-svcpage .rating-big b { font-size: var(--fs-2xl); letter-spacing: 0; font-variant-numeric: tabular-nums; }
.ind-svcpage .chip { border-radius: 2px; }
.ind-svcpage .who .chip img { border-radius: 2px; }
.ind-svcpage .session label, .ind-svcpage .slots button { border-radius: 2px; }
.ind-svcpage .cal__grid button { border-radius: 2px; }
.ind-svcpage .enroll { border-radius: 0; border-color: var(--p3); box-shadow: var(--shadow-sm); }
.ind-book-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: var(--s5); background: var(--p3); color: var(--p9); }
.ind-book-head span { flex-basis: 100%; font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.1em; color: color-mix(in srgb, var(--p9) 72%, transparent); }
.ind-book-head b { font-family: var(--font-heading); font-size: var(--fs-2xl); line-height: 1.1; color: var(--p9); }
.ind-book-head small { font-size: var(--fs-sm); color: color-mix(in srgb, var(--p9) 72%, transparent); }
.ind-svcpage .ind-section { margin-top: 0; }

.ind-steps { list-style: none; display: grid; border-top: 1px solid var(--line); }
.ind-steps li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--s4); align-items: baseline; padding-block: var(--s4); border-bottom: 1px solid var(--line); }
.ind-steps b { font-family: var(--font-heading); font-size: var(--fs-2xl); line-height: 1; color: var(--p1); }
.ind-steps p { color: var(--p4); }

@media (max-width: 960px) {
  .ind-svcpage .svc-gallery { height: auto; aspect-ratio: 4 / 3; }
  .ind-svcpage .svc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ind-svcpage .svc-facts > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .ind-svcpage .svc-facts > div:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 480px) {
  .ind-svcpage .svc-facts { grid-template-columns: minmax(0, 1fr); }
  .ind-svcpage .svc-facts > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .ind-svcpage .svc-facts > div { grid-template-columns: 24px minmax(0, 1fr); column-gap: var(--s3); padding-block: var(--s3); }
  .ind-svcpage .svc-facts svg { grid-row: 1 / 3; margin-bottom: 0; }
}
@media (max-width: 600px) { .ind-hero__lead br { display: none; } }
/* 中文段落：在標點處斷行，避免一兩個字孤行 */
.ind-bio .lead, .ind-cta p, .ind-pagehead .lead, .ind-row__desc, .ind-svc__body > p, .ind-review blockquote { word-break: keep-all; overflow-wrap: anywhere; }
