/* V9：認識雲林的單位卡片、單位頁、友站連結頁 */
.unit-directory{max-width:1180px;margin:0 auto;padding:72px var(--gutter,24px) 96px;border-top:1px solid var(--line)}
.unit-directory>h2{font-family:var(--serif);font-size:clamp(30px,3.6vw,48px);margin:10px 0 12px}
.unit-directory>p{color:var(--muted);max-width:640px;line-height:1.9;margin:0 0 36px}
.unit-group{margin-top:34px}
.unit-group h3{display:flex;align-items:baseline;gap:12px;font-family:var(--serif);font-size:24px;margin:0 0 16px}
.unit-group h3 span{font-family:var(--sans);font-size:12px;letter-spacing:.2em;color:var(--gold)}
.unit-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.unit-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fffdf8;color:var(--ink);text-decoration:none;transition:transform .25s,box-shadow .25s}
.unit-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(40,30,20,.12)}
.unit-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:#e8e3d6}
.unit-card-text{display:flex;flex-direction:column;gap:4px;padding:16px 46px 18px 18px}
.unit-card-text b{font-size:20px;font-family:var(--serif)}
.unit-card-text small{color:var(--muted);font-size:14px;line-height:1.6}
.unit-card i{position:absolute;right:18px;bottom:20px;font-style:normal;color:var(--red);font-size:20px}

.unit-body section{margin-bottom:48px}
.unit-empty{color:var(--muted);background:#f3eee4;border-radius:12px;padding:18px 20px}
.unit-places{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.unit-places article{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fffdf8}
.unit-places h3{margin:0 0 6px;font-size:19px}
.unit-places p{margin:0;font-size:15px;line-height:1.7}
.unit-places a{display:inline-block;margin-top:8px;font-size:14px;color:var(--red)}
.unit-places small{display:block;color:var(--muted);font-size:13px;margin-top:6px}
.unit-events{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.unit-events li{display:grid;grid-template-columns:120px 1fr;gap:4px 16px;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:#fffdf8}
.unit-events time{color:var(--red);font-weight:700}
.unit-events small{grid-column:2;color:var(--muted)}
.unit-posts{display:grid;gap:10px}
.unit-posts a{display:grid;grid-template-columns:100px 1fr auto;gap:14px;align-items:center;padding:14px 18px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;background:#fffdf8}
.unit-posts time{color:var(--muted);font-size:14px}
.unit-posts i{font-style:normal;color:var(--red)}
.unit-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.unit-gallery figure{margin:0}
.unit-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.unit-gallery figcaption{font-size:13px;color:var(--muted);margin-top:6px}

.sites-page{background:var(--paper)}
.sites-hero{max-width:1180px;margin:0 auto;padding:96px var(--gutter,24px) 40px}
.sites-hero h1{font-family:var(--serif);font-size:clamp(40px,5.4vw,78px);line-height:1.3;margin:18px 0}
.sites-hero p{color:var(--muted);max-width:560px;line-height:1.9}
.sites-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.sites-nav a{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;background:#fffdf8;color:var(--ink);text-decoration:none;font-size:16px}
.sites-nav small{background:#f0e6d6;border-radius:999px;padding:1px 8px;font-size:12px;color:var(--muted)}
.sites-body{max-width:1180px;margin:0 auto;padding:0 var(--gutter,24px) 100px}
.site-group{padding-top:44px;scroll-margin-top:100px}
.site-group header{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:baseline;margin-bottom:18px}
.site-group h2{font-family:var(--serif);font-size:28px;margin:0}
.site-group header p{grid-column:2;margin:0;color:var(--muted)}
.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.site-card{position:relative;display:flex;align-items:center;gap:16px;padding:18px 48px 18px 18px;border:1px solid var(--line);border-radius:16px;background:#fffdf8;color:var(--ink);text-decoration:none;min-height:92px;transition:transform .25s,box-shadow .25s,border-color .25s}
.site-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(40,30,20,.1);border-color:#cdbfa8}
.site-card img{width:58px;height:58px;border-radius:12px;object-fit:cover;flex:none}
.site-badge{flex:none;width:58px;height:58px;border-radius:12px;display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff;background:#6b5a3a}
.site-badge.yt{background:#c4302b}.site-badge.photo{background:#1a73e8}.site-badge.line{background:#06c755}.site-badge.ig{background:#c13584}.site-badge.fb{background:#1877f2}.site-badge.web{background:#651f2c}
.site-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.site-text b{font-size:18px;line-height:1.4}
.site-text small{color:var(--muted);font-size:14px;line-height:1.6}
.site-text em{font-style:normal;font-size:12px;color:#9a917f;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-card i{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--red);font-size:20px}

@media (max-width:640px){
 .unit-directory{padding:56px 20px 72px}
 .unit-cards{grid-template-columns:1fr 1fr;gap:12px}
 .unit-card-text{padding:12px 30px 14px 12px}.unit-card-text b{font-size:17px}.unit-card-text small{font-size:13px}.unit-card i{right:10px;bottom:14px}
 .unit-events li{grid-template-columns:1fr}.unit-events small{grid-column:1}
 .unit-posts a{grid-template-columns:1fr auto}.unit-posts time{grid-column:1/-1}
 .sites-hero{padding:64px 20px 24px}.sites-body{padding:0 20px 72px}
 .site-grid{grid-template-columns:1fr}
}

/* ===== 開場幻燈片（認識雲林、單位頁）===== */
.slides-js img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}
.slides-js img.is-on{opacity:1}
.slides-js .stage-caption{position:absolute;z-index:2;left:20px;bottom:20px;color:#fff;font:600 16px/1.4 var(--serif);letter-spacing:.04em;text-shadow:0 2px 10px rgba(0,0,0,.6);max-width:calc(100% - 260px)}
.stage-controls{position:absolute;z-index:3;right:16px;bottom:14px;display:flex;align-items:center;gap:8px}
.stage-dots{display:flex;align-items:center;gap:8px;height:48px;padding:0 16px;border-radius:999px;background:rgba(30,28,24,.72);backdrop-filter:blur(6px)}
.stage-dots button{position:relative;width:12px;height:12px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.45);cursor:pointer;transition:width .35s ease;overflow:hidden}
.stage-dots button.is-on{width:46px}
.stage-dots button i{position:absolute;inset:0;width:0;background:#fff;border-radius:inherit}
.stage-dots button.is-on i{animation:stage-fill var(--slide-ms,6000ms) linear forwards}
.slides-js.is-paused .stage-dots button.is-on i{animation:none;width:100%;opacity:.85}
@keyframes stage-fill{to{width:100%}}
.stage-pause{width:48px;height:48px;border:0;border-radius:50%;background:rgba(30,28,24,.72);backdrop-filter:blur(6px);cursor:pointer;display:grid;place-items:center}
.stage-pause span{width:14px;height:16px;border-left:4px solid #fff;border-right:4px solid #fff}
.slides-js.is-paused .stage-pause span{width:0;height:0;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff;margin-left:4px}
.stage-dots button:focus-visible,.stage-pause:focus-visible{outline:3px solid #f0b48f;outline-offset:2px}

/* ===== 左側：雲林道場單位導覽 ===== */
.editorial-layout .unit-rail{display:block;max-width:none;padding:0;border:0}
.unit-rail .rail-toggle{display:none}
.unit-rail .rail-list{display:flex;flex-direction:column}
.unit-rail h3{font:600 14px/1 var(--sans);color:#8a7a5c;letter-spacing:.08em;margin:26px 0 8px}
.unit-rail .rail-item{display:block;border:0;border-left:3px solid transparent;padding:9px 0 9px 14px;font:500 17px/1.5 var(--serif);color:var(--ink);text-decoration:none}
.unit-rail .rail-item:hover{border-left-color:var(--line);color:#a9481a}
.unit-rail .rail-item.is-current{border-left-color:#a9481a;color:#a9481a;font-weight:700;background:linear-gradient(90deg,rgba(169,72,26,.08),transparent)}
.unit-rail .rail-chapters{list-style:none;margin:2px 0 10px 17px;padding:0 0 0 12px;border-left:1px dashed var(--line)}
.unit-rail .rail-chapters a{display:block;border:0;padding:6px 0;font-size:14px;line-height:1.6;color:#6b665d}
.unit-rail .rail-chapters a:hover{color:#a9481a}
@media (max-width:900px){
 .editorial-layout .unit-rail{position:static;border:1px solid var(--line);border-radius:16px;background:#fffdf8;padding:0}
 .unit-rail .rail-toggle{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:12px 18px;border:0;background:none;font:inherit;font-size:17px;color:var(--ink);cursor:pointer}
 .unit-rail .rail-toggle i{font-style:normal;color:#a9481a;font-weight:700;white-space:nowrap}
 .unit-rail .rail-toggle i::after{content:' ▾'}
 .unit-rail.is-open .rail-toggle i::after{content:' ▴'}
 .unit-rail .rail-list{display:none;padding:0 18px 16px;border-top:1px solid var(--line)}
 .unit-rail.is-open .rail-list{display:flex}
}
@media (prefers-reduced-motion:reduce){.slides-js img{transition:none}.stage-dots button,.stage-dots button i{transition:none;animation:none!important}}

/* ===== 單位橫幅：左邊照片幻燈片、金色分隔、右邊名稱、下方年份列 ===== */
.unit-banner{display:grid;grid-template-columns:minmax(0,1.45fr) 14px minmax(0,1fr);grid-template-rows:clamp(240px,26vw,380px) auto;margin:0 0 56px;border-radius:6px;overflow:hidden;box-shadow:0 14px 34px rgba(60,20,10,.16)}
.ub-photo{position:relative;overflow:hidden;background:#2b1a14}
.ub-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}
.ub-photo img.is-on{opacity:1}
.ub-photo::after{content:'';position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(0deg,rgba(20,10,5,.55),transparent);pointer-events:none}
.ub-photo .stage-caption,.ub-photo .stage-controls{z-index:3}
.ub-divider{background:repeating-linear-gradient(0deg,#f7d36b 0 6px,#c9922a 6px 8px,#f2c14e 8px 14px,#a8741d 14px 16px),#e4b043;box-shadow:inset 3px 0 0 #fbe39a,inset -3px 0 0 #8b5d16}
.ub-title{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px 18px;color:#fff;background:radial-gradient(120% 90% at 18% 22%,rgba(255,196,92,.42),transparent 52%),radial-gradient(60% 50% at 90% 85%,rgba(255,160,60,.18),transparent 70%),#6a1a1f;overflow:hidden}
.ub-title::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(255,220,140,.08) 0 2px,transparent 3px) 0 0/28px 28px;opacity:.9;pointer-events:none}
.ub-emblem{position:relative;width:46px;height:46px;object-fit:contain;margin-bottom:6px}
.ub-org{position:relative;display:flex;flex-direction:column;font:700 17px/1.2 var(--serif);letter-spacing:.42em;padding-left:.42em}
.ub-org small{font:600 12px/1.6 var(--sans);letter-spacing:.04em;padding-left:0;opacity:.92}
.ub-name{position:relative;margin:10px 0 4px;font:900 clamp(38px,4.4vw,64px)/1.15 var(--serif);letter-spacing:.32em;padding-left:.32em;text-shadow:0 3px 12px rgba(0,0,0,.35)}
.ub-name.is-long{font-size:clamp(28px,3.2vw,46px);letter-spacing:.14em;padding-left:.14em}
.ub-en{position:relative;font:700 clamp(15px,1.6vw,22px)/1.3 var(--sans);letter-spacing:.14em}
.ub-facts{grid-column:1/-1;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:linear-gradient(90deg,#f3ad17,#ffd447 40%,#ffcf3d 60%,#f3ad17);color:#4a2600}
.ub-facts p{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:4px 16px;margin:0;padding:12px 16px;border-left:2px solid rgba(74,38,0,.55)}
.ub-facts p:first-child{border-left:0}
.ub-facts b{font:800 clamp(18px,1.9vw,26px)/1.3 var(--sans)}
.ub-facts span{font:700 clamp(15px,1.6vw,22px)/1.3 var(--sans)}
@media (max-width:760px){
 .unit-banner{grid-template-columns:1fr;grid-template-rows:auto;border-radius:12px}
 .ub-photo{aspect-ratio:4/3}
 .ub-divider{height:12px;background:repeating-linear-gradient(90deg,#f7d36b 0 6px,#c9922a 6px 8px,#f2c14e 8px 14px,#a8741d 14px 16px)}
 .ub-title{padding:26px 16px}
 .ub-facts{grid-auto-flow:row}
 .ub-facts p{border-left:0;border-top:2px solid rgba(74,38,0,.35)}.ub-facts p:first-child{border-top:0}
 .ub-photo .stage-caption{bottom:72px;left:14px;max-width:calc(100% - 28px)}
 .ub-photo .stage-controls{left:14px;right:auto}
}
@media (prefers-reduced-motion:reduce){.ub-photo img{transition:none}}
/* 名稱依右側面板寬度縮放，永遠一行 */
.ub-title{container-type:inline-size}
.ub-name{white-space:nowrap;font-size:clamp(26px,16cqi,66px)}
.ub-name.is-long{font-size:clamp(20px,9.6cqi,46px)}
.ub-en{font-size:clamp(12px,5.6cqi,22px);white-space:nowrap}
.ub-org{font-size:clamp(13px,5cqi,18px)}
.ub-en{white-space:normal;max-width:100%;font-size:clamp(12px,4.8cqi,21px);letter-spacing:.08em;text-wrap:balance}
/* 內文圖片預設 height:auto!important、object-fit:contain，橫幅要蓋過才會填滿 */
.reading-body .unit-banner{margin:0 0 56px}
.reading-body .unit-banner .ub-photo img{height:100%!important;max-width:none!important;object-fit:cover}
.reading-body .unit-banner .ub-emblem{width:46px;height:46px!important;object-fit:contain}
/* 社群媒體與行動呼籲（學界：招募、追蹤社群） */
.unit-cta{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center;margin:0 0 56px;padding:32px;border-radius:22px;background:linear-gradient(135deg,#a9481a,#c9922a);color:#fffdf8;box-shadow:0 18px 40px rgba(120,60,20,.18)}
.unit-cta .eyebrow{color:#ffd447;letter-spacing:.2em;font-size:13px}
.reading-body .unit-cta h2{margin:6px 0 10px;color:#fffdf8;font-family:var(--serif);font-size:clamp(24px,3vw,32px);border:0;padding:0}
.reading-body .unit-cta p{margin:0;color:#fff4e0;line-height:1.8}
.unit-cta-actions{display:grid;gap:14px}
.unit-cta-btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:54px;padding:0 26px;border-radius:999px;background:#fffdf8;color:#a9481a!important;font-weight:800;font-size:18px;text-decoration:none!important}
.unit-cta-btn:hover{background:#ffd447}
.unit-social{display:flex;flex-wrap:wrap;gap:10px}
.unit-sns{display:inline-flex;flex-direction:column;min-width:132px;padding:10px 16px;border-radius:14px;border:1px solid var(--line);background:#fffdf8;color:var(--ink)!important;text-decoration:none!important;line-height:1.35}
.unit-sns b{font-size:13px;letter-spacing:.06em}.unit-sns span{font-size:15px}
.unit-sns.sns-fb b{color:#1877f2}.unit-sns.sns-ig b{color:#c13584}.unit-sns.sns-line b{color:#06a94d}.unit-sns.sns-yt b{color:#d4161c}.unit-sns.sns-th b,.unit-sns.sns-tt b{color:#111}.unit-sns.sns-web b{color:#a9481a}
.unit-cta .unit-sns{border-color:rgba(255,255,255,.4);background:rgba(255,253,248,.95)}
.unit-sns:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(80,40,10,.12)}
@media (max-width:760px){.unit-cta{grid-template-columns:1fr;padding:24px 20px}.unit-sns{flex:1 1 calc(50% - 10px);min-width:0}}
.stage-cta{display:inline-flex;align-self:flex-start;justify-self:start;width:fit-content;align-items:center;gap:8px;margin-top:18px;min-height:48px;padding:0 24px;border-radius:999px;background:#a9481a;color:#fffdf8!important;font-weight:800;text-decoration:none!important}
.stage-cta:hover{background:#8f3b14}
.unit-zh-note{margin:0 0 12px;padding:8px 14px;border-left:3px solid #c9922a;background:#faf4e8;color:#7a6a4f;font-size:15px}
