/* 文章頁（案例全文、知識文章）：左＝本文目錄、中＝內文卡、右＝其他文章；寬螢幕三欄撐滿，越窄欄越少
   內文元件由 _tools/article_build.py 從舊官網文章轉成新站類別（不沿用舊站樣式與表情符號）
   卡片一排幾張依「內文卡的寬度」決定（容器查詢），張數不同的組各自排，最後一列不留單張 */
.art-section{padding-bottom:var(--sec-y)}
/* 頁首：文章標題通常很長——字小一級、只在標點斷行（麵包屑只到上一層，本頁標題就是大標題） */
.fx3d .art-page .page-hero h1{font-size:clamp(28px,2.1vw,52px);line-height:1.3;word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}

.art-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr) minmax(280px,420px);align-items:start;gap:var(--gap)}
.art-side{position:sticky;top:112px;display:flex;flex-direction:column;gap:16px;min-width:0;max-height:calc(100vh - 132px);padding:22px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b9d3ea transparent}
.art-side::-webkit-scrollbar{width:8px}
.art-side::-webkit-scrollbar-thumb{border-radius:8px;background:#b9d3ea}
.art-side__title{margin:0;color:var(--ink);font-size:clamp(18px,1vw,21px);font-weight:800;line-height:1.4}
.art-toc ol{display:grid;gap:6px;margin:0;padding:0;list-style:none;counter-reset:toc}
.art-toc a{display:grid;grid-template-columns:2em minmax(0,1fr);gap:8px;padding:9px 12px;border:1px solid transparent;border-radius:var(--r-sm);color:var(--ink-2);font-size:max(16px,.92em);line-height:1.55;text-decoration:none;counter-increment:toc;transition:background 160ms,border-color 160ms}
.art-toc a::before{content:counter(toc,decimal-leading-zero);color:var(--brand);font-weight:800}
.art-toc a:hover,.art-toc a.is-on{border-color:var(--line);background:linear-gradient(135deg,var(--white),var(--tint));color:var(--brand-d)}
.art-toc a.is-on{box-shadow:var(--depth-1);font-weight:700}

/* 內文卡 */
.art{container-type:inline-size;min-width:0;padding:clamp(24px,2.8vw,60px);color:var(--ink-2);font-size:clamp(17px,.9vw,20px);line-height:1.95;overflow-wrap:anywhere}
.art>*+*{margin-top:22px}
.art>:first-child{margin-top:0}
.art h2{display:flex;align-items:center;gap:14px;margin-top:clamp(40px,3vw,64px);color:var(--ink);font-size:clamp(23px,1.45vw,32px);font-weight:800;line-height:1.4;scroll-margin-top:120px;text-wrap:balance}
.art h2::before{content:"";flex:0 0 auto;width:14px;height:30px;border-radius:5px;background:linear-gradient(var(--sky),var(--brand));box-shadow:0 4px 0 var(--brand-d),0 8px 14px -6px rgba(2,103,185,.5)}
.art h3{color:var(--brand-d);font-size:clamp(19px,1.05vw,23px);font-weight:800;line-height:1.5}
.art p,.art li{text-wrap:pretty}
/* 內文一般斷行（列表頁共用樣式的 keep-all 會讓逗號、句號落到行首） */
.art :is(p,li,td,th,h3,strong,span,div){word-break:normal;line-break:strict}
.art strong{color:var(--brand-d);font-weight:800}
.art a[href]{color:var(--brand-d);font-weight:700;text-underline-offset:4px}
.art :is(ul,ol):not([class])>li+li{margin-top:6px}
.art :is(ul,ol):not([class]){padding-left:1.4em;list-style:disc}

/* 開場重點、提示框（資訊／建議／注意），左側色條區分 */
.art-lead,.art-note,.art-tip,.art-warn{padding:18px 24px;border-left:5px solid var(--brand);border-radius:var(--r-sm);background:var(--tint)}
.art-lead{border-left-color:var(--brand-d);background:linear-gradient(90deg,var(--tint),var(--tint-2));color:var(--ink);font-size:1.04em}
.art-note{border-left-color:var(--sky);background:var(--tint-2)}
.art-tip{border-left-color:#15803d;background:#effaf3}
.art-tip strong{color:#15803d}
.art-warn{border-left-color:var(--amber-d);background:#fff7e8}
.art-warn strong{color:#92400e}

/* 卡片列共用：一排幾張由 --n 決定，最後一列撐滿 */
.art-stats,.art-points,.art-steps{--n:3;display:flex;flex-wrap:wrap;align-items:stretch;gap:18px;margin-inline:0;padding:0;list-style:none}
.art-stat,.art-point,.art-step{flex:1 1 calc((100% - (var(--n) - 1) * 18px) / var(--n));min-width:0;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(160deg,var(--white),var(--tint-2));box-shadow:var(--depth-1)}
.art-stats:has(>:nth-child(2):last-child),.art-points:has(>:nth-child(2):last-child){--n:2}
.art-stats:has(>:nth-child(4):last-child){--n:4}
.art-steps:has(>:nth-child(5):last-child){--n:5}

/* 重點數字 */
.art-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 18px;border-top:4px solid var(--brand);text-align:center}
.art-stat__num{color:var(--brand);font-size:clamp(26px,1.9vw,42px);font-weight:800;line-height:1.25}
.art-stat__label{color:var(--ink-3);font-size:max(16px,.92em);line-height:1.6}

/* 重點卡 */
.art-point{display:flex;flex-direction:column;gap:8px;padding:22px;border-top:4px solid var(--brand)}
.art-point>*{margin:0}
.art-point p{font-size:max(16px,.95em);line-height:1.8}
.art-point--2{border-top-color:#15803d}
.art-point--3{border-top-color:var(--sky)}
.art-point--4{border-top-color:var(--amber-d)}

/* 步驟：圓角數字＋標題＋說明 */
.art-steps{counter-reset:step}
.art-step{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:0;padding:22px;counter-increment:step}
.art-step::before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding-top:3px;border-bottom:4px solid var(--brand-d);border-radius:14px;background:linear-gradient(145deg,var(--brand-2),var(--brand));color:var(--white);font-size:21px;font-weight:800;line-height:1;box-shadow:var(--depth-1)}
.art-step>*{margin:0}

/* 打勾清單 */
.art-check{display:grid;gap:10px;margin-inline:0;padding:0;list-style:none}
.art-check li{position:relative;margin:0;padding:12px 16px 12px 52px;border:1px solid var(--line);border-radius:var(--r-sm);background:linear-gradient(135deg,var(--white),var(--tint-2))}
.art-check li::before{position:absolute;content:"";left:16px;top:calc(12px + .95em - 12px);width:24px;height:24px;border-radius:8px;background:linear-gradient(145deg,var(--brand-2),var(--brand));box-shadow:0 3px 0 var(--brand-d)}
.art-check li::after{position:absolute;content:"";left:24px;top:calc(12px + .95em - 8px);width:7px;height:12px;border-right:3px solid var(--white);border-bottom:3px solid var(--white);transform:rotate(45deg)}

/* 表格：外框一層、格線同色；窄時改成一列一張卡 */
.art-table{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--brand);border-radius:var(--r-sm);background:var(--white)}
.art-table table{width:100%;min-width:480px;border:0;border-collapse:collapse;border-spacing:0;font-size:max(16px,.95em);line-height:1.7}
.art-table th,.art-table td{padding:13px 18px;border:0;border-right:1px solid var(--brand);border-bottom:1px solid var(--brand);vertical-align:middle}
.art-table th{background:var(--tint);color:var(--brand-d);font-weight:800;text-align:center}
.art-table tr>:last-child{border-right:0}
.art-table tbody tr:last-child>*{border-bottom:0}
.art-table tbody tr:nth-child(even){background:var(--tint-2)}
.art-yes{color:#15803d;font-weight:800}
.art-no{color:#b45309;font-weight:800}

/* 常見問題 */
.art-faq{padding:18px 22px;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(160deg,var(--white),var(--tint-2));box-shadow:var(--depth-1)}
.art-faq+.art-faq{margin-top:14px}
.art-faq__q{display:block;color:var(--ink);font-weight:800}
.art-faq__a{margin:8px 0 0}

/* 適用場所標籤 */
.art-tags{display:flex;flex-wrap:wrap;gap:10px;margin-inline:0;padding:0;list-style:none}
.art-tags li{margin:0}

/* 施工照片：一排三張、最後一列撐滿不留單張空位 */
.art-gallery{--n:3;display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.art-gallery:has(>:nth-child(2):last-child),.art-gallery:has(>:nth-child(4):last-child){--n:2}
.art-gallery figure{flex:1 1 calc((100% - (var(--n) - 1) * 16px) / var(--n));min-width:0;margin:0;padding:8px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--white);box-shadow:var(--depth-1)}
.art-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--tint)}

/* 依內文卡寬度調整一排張數 */
@container (max-width:859px){
  .art-stats:has(>:nth-child(4):last-child){--n:2}
  .art-steps:has(>:nth-child(5):last-child){--n:3}
}
@container (max-width:599px){
  .art-stats,.art-points,.art-steps,.art-points:has(>:nth-child(2):last-child),.art-steps:has(>:nth-child(5):last-child){--n:1}
  .art-stats:has(>:nth-child(2):last-child),.art-stats:has(>:nth-child(4):last-child){--n:2}
  .art-gallery,.art-gallery:has(>:nth-child(4):last-child){--n:2}
  .art-step{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:14px;row-gap:4px;align-items:start;padding:16px}
  .art-step::before{grid-row:1/span 3;width:40px;height:40px;font-size:19px}
  .art-step>*{grid-column:2}
  .art-stat{padding:18px 12px}
  .art-point{padding:18px}
  /* 表格：一列一張卡，第一格當卡片標題，其餘每格「欄名｜內容」 */
  .art-table{overflow:visible;border:0;border-radius:0;background:none}
  .art-table table{min-width:0}
  .art-table table,.art-table tbody,.art-table tr,.art-table td{display:block}
  .art-table thead{display:none}
  .art-table tbody tr{overflow:hidden;border:1px solid var(--brand);border-radius:var(--r-sm);background:var(--white)}
  .art-table tbody tr+tr{margin-top:12px}
  .art-table tbody tr:nth-child(even){background:var(--white)}
  .art-table td{display:grid;grid-template-columns:minmax(5.5em,38%) minmax(0,1fr);gap:12px;padding:10px 14px;border-right:0;border-bottom:1px solid var(--line)}
  .art-table td::before{content:attr(data-label);color:var(--brand-d);font-weight:700}
  .art-table td:first-child{display:block;background:var(--tint);color:var(--brand-d);font-weight:800}
  .art-table td:first-child::before{content:none}
  .art-table tbody tr>td:last-child{border-bottom:0}
  .art-table td.art-span{display:block}
}
@container (max-width:379px){
  .art-stats:has(>:nth-child(4):last-child){--n:1}
  .art-gallery,.art-gallery:has(>:nth-child(4):last-child){--n:1}
}

/* 其他文章 */
.art-more__list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.art-more__link{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:10px 12px;border:1px solid var(--line);border-bottom:3px solid #c2d9ef;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--white),var(--tint));color:var(--ink);font-size:max(16px,.92em);font-weight:700;line-height:1.5;text-decoration:none;transition:transform 160ms,border-color 160ms}
.art-more__link:hover{border-color:var(--sky);transform:translateY(-2px)}
.art-more__link img{width:84px;height:63px;border-radius:8px;object-fit:cover;background:var(--tint)}
.art-more__link .cases-article__icon{width:36px;height:40px}
.art-more__link .cases-article__icon::before{inset:7px 9px 7px}
.art-more__link .cases-article__icon::after{left:13px;right:13px;top:14px}

/* 1600 以下：其他文章移到內文下方，排成多欄（最後一列撐滿，不留空格） */
@media(max-width:1599px){
  .art-layout{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}
  .art-more{grid-column:1/-1;position:static;max-height:none;overflow:visible}
  .art-more__list{display:flex;flex-wrap:wrap;gap:10px}
  .art-more__list>li{flex:1 1 calc((100% - 20px)/3);min-width:min(100%,300px)}
  .art-more__link{height:100%}
}
/* 1100 以下：一欄，目錄收起（內文標題本身就是段落） */
@media(max-width:1099px){
  .art-layout{grid-template-columns:minmax(0,1fr)}
  .art-toc{display:none}
}
@media(max-width:700px){
  .art>*+*{margin-top:18px}
  .art h2::before{width:10px;height:24px}
  .art-lead,.art-note,.art-tip,.art-warn{padding:14px 16px}
  .art-more__link img{width:72px;height:54px}
}
@media(max-width:600px){
  .fx3d .art-page .page-hero h1{font-size:24px}
  .fx3d .art-page .page-hero .page-hero__lead{-webkit-line-clamp:4}
}
