/* 老屋動官網共用樣式（學會品牌 v2.2） */
@font-face{font-family:"TCCI Title";src:url("assets/fonts/title.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"TCCI Body";src:url("assets/fonts/body.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"TCCI En";src:url("assets/fonts/en.woff2") format("woff2");font-weight:400;font-display:swap}

:root{
  --ink:#2D3142; --slate:#4F5D75; --silver:#BFC0C0; --paper:#FEFDFB; --accent:#F35530;
  --font-title:"TCCI Title","PingFang TC","Microsoft JhengHei",sans-serif;
  --font-body:"TCCI Body","PingFang TC","Microsoft JhengHei",sans-serif;
  --font-en:"TCCI En","TCCI Body",sans-serif;
  --gutter:clamp(16px,4vw,56px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
p,h1,h2,h3{text-wrap:pretty}
body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.nw{white-space:nowrap}
/* 標題裡的全形標點用粉圓，德魯納會飄高 */
.p{font-family:var(--font-body);font-weight:400}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--gutter)}
.en{font-family:var(--font-en);letter-spacing:.26em;font-size:clamp(.72rem,1.2vw,.88rem)}

/* 頁首＋導覽 */
.top{border-bottom:1px solid var(--silver);background:var(--paper);position:sticky;top:env(safe-area-inset-top,0px);z-index:10}
.top .in{display:flex;align-items:center;gap:clamp(16px,3vw,40px);padding-top:14px;padding-bottom:14px}
.top .brand img{height:48px;width:auto}
.top nav{display:flex;gap:clamp(14px,2.4vw,32px);font-size:.95rem;margin-left:auto}
.top nav a{color:var(--slate);padding:4px 0;border-bottom:2px solid transparent}
.top nav a:hover{color:var(--ink)}
.top nav a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}
.top .org img{height:30px;width:auto}

/* 開場：左文右圖 */
.hero{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:center;padding-top:clamp(36px,6vw,80px);padding-bottom:clamp(36px,6vw,80px)}
.hero h1{font-family:var(--font-title);font-weight:700;font-size:clamp(2.1rem,5vw,3.8rem);line-height:1.25;letter-spacing:.06em}
.hero .en{color:var(--accent);margin-top:14px}
.hero .lead{color:var(--slate);margin-top:22px;max-width:26em;font-size:clamp(1rem,1.4vw,1.1rem)}
.hero figure{border-radius:32px;overflow:hidden;aspect-ratio:4/3;background:var(--silver)}
.hero figure img{width:100%;height:100%;object-fit:cover}
.actions{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-top:30px}
.cta{display:inline-flex;align-items:center;gap:.6em;border-radius:100px;padding:14px 28px;font-size:1.02rem;background:var(--ink);color:var(--paper);transition:transform .2s}
.cta:hover{transform:translateX(4px)}
.cta.hot{background:var(--accent);color:var(--ink)}
.lk{border-bottom:2px solid var(--ink);padding-bottom:3px;white-space:nowrap}

/* 區塊 */
.sec{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(48px,7vw,96px);border-top:1px solid var(--silver)}
.sec-head{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(20px,5vw,72px);align-items:end}
.sec .label{font-family:var(--font-en);letter-spacing:.22em;font-size:.78rem;color:var(--slate)}
.sec h2{font-family:var(--font-title);font-weight:700;font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.3;letter-spacing:.06em;margin-top:8px}
.sec .intro{color:var(--slate);max-width:32em}

/* 補助：大數字＋事實列 */
.facts{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;margin-top:clamp(32px,4vw,52px);border-top:2px solid var(--ink)}
.fact{padding:22px 20px 0 0}
.fact+.fact{padding-left:20px;border-left:1px solid var(--silver)}
.fact .num{font-family:var(--font-en);font-size:clamp(2.4rem,4vw,3.4rem);line-height:1}
.fact .num small{font-family:var(--font-body);font-size:.4em;margin-left:4px;color:var(--slate)}
.fact.big .num{font-size:clamp(3.4rem,7vw,5.6rem)}
.fact p{color:var(--slate);font-size:.92rem;margin-top:10px}

/* 地方創生：條列 */
.rows{margin-top:clamp(28px,4vw,48px);border-top:1px solid var(--silver)}
.rows a{display:grid;grid-template-columns:5rem 1fr auto;gap:20px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--silver);transition:padding .2s}
.rows a:hover{padding-left:8px}
.rows .k{font-family:var(--font-en);font-size:1.8rem;line-height:1}
.rows .k:not(:empty){white-space:nowrap}
.rows h3{font-family:var(--font-title);font-weight:700;font-size:1.25rem;letter-spacing:.06em}
.rows p{color:var(--slate);font-size:.95rem}
.rows .go{font-family:var(--font-en)}

/* 頁尾 */
footer .in{display:grid;grid-template-columns:1.2fr 1.3fr .8fr .8fr;gap:32px;padding-top:clamp(40px,5vw,64px);padding-bottom:40px;font-size:.92rem;color:var(--slate)}
footer h4{font-family:var(--font-en);font-weight:400;letter-spacing:.22em;font-size:.75rem;color:var(--ink);margin-bottom:12px}
footer a{display:block;padding:3px 0}
footer a:hover{color:var(--ink)}
footer .copy{grid-column:1/-1;border-top:1px solid var(--silver);padding-top:20px;font-size:.8rem}
footer .gov p + p{margin-top:8px}
footer .gov a{display:inline;padding:0;text-decoration:underline;text-underline-offset:3px}
footer .credit{grid-column:1/-1;margin-top:-20px;font-size:.74rem;line-height:1.7;color:color-mix(in srgb,var(--slate) 80%,transparent)}

/* 選單放得下就跟 LOGO 同一排，太窄才換到下一行 */
@media (max-width:860px){.top nav{font-size:.9rem;gap:clamp(12px,3vw,24px)}}
/* 選單永遠跟 LOGO 同一行、靠在一起（REN：不要第二行、不要拉太開） */
@media (max-width:400px){
  .top .in{gap:10px}
  .top nav{font-size:.8rem;gap:10px}
  .top .brand img{height:34px}
  .top .org img{height:24px}
}
@media (max-width:860px){
  .hero{grid-template-columns:1fr}
  .hero figure{order:-1;aspect-ratio:16/10}
  .sec-head{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr 1fr}
  .fact.big{grid-column:1/-1;padding-bottom:20px;border-bottom:1px solid var(--silver)}
  .fact+.fact{padding-left:0;border-left:0}
  .fact:nth-child(3){padding-left:20px;border-left:1px solid var(--silver)}
  .fact:nth-child(4){grid-column:1/-1;padding-top:20px}
  footer .in{grid-template-columns:1fr 1fr}
  footer .about,footer .gov{grid-column:1/-1}
}
@media (max-width:480px){
  .top .brand img{height:40px}
  .hero figure{border-radius:24px}
  .rows a{grid-template-columns:3rem 1fr auto;gap:14px}
  .rows .k{font-size:1.4rem}
  footer .in{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== DEMO 共用：老屋修復前後面板 ===== */
.panel{position:fixed;z-index:20;top:96px;right:var(--gutter);max-height:calc(100svh - 120px);width:min(400px,calc(100vw - 2*var(--gutter)));background:var(--paper);border:1px solid var(--silver);border-radius:32px;padding:28px;overflow:auto;transform:translateX(calc(100% + 48px));visibility:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility 0s .45s;box-shadow:0 20px 60px rgba(45,49,66,.12)}
.panel.open{transform:none;visibility:visible;transition-delay:0s}
.panel .x{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:100px;border:1px solid var(--silver);background:var(--paper);font-size:1.4rem;line-height:1;cursor:pointer;color:var(--ink)}
.panel .x:hover{border-color:var(--ink)}
.panel .label{font-family:var(--font-en);letter-spacing:.22em;font-size:.75rem;color:var(--accent)}
.panel h2{font-family:var(--font-title);font-weight:700;font-size:1.6rem;letter-spacing:.06em;line-height:1.3;margin-top:6px;padding-right:44px}
.panel .addr{color:var(--slate);font-size:.92rem;margin-top:4px}
.ba{position:relative;margin-top:20px;border-radius:20px;overflow:hidden;aspect-ratio:3/4;background:var(--silver);user-select:none;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba .after{clip-path:inset(0 0 0 var(--x,50%))}
.ba .bar{position:absolute;top:0;bottom:0;left:var(--x,50%);width:3px;margin-left:-1.5px;background:var(--accent);pointer-events:none}
.ba .bar::after{content:"⟷";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:100px;background:var(--accent);color:var(--ink);display:grid;place-items:center;font-size:1rem}
.ba .tag{position:absolute;bottom:12px;font-size:.78rem;padding:3px 12px;border-radius:100px;background:rgba(45,49,66,.82);color:var(--paper);pointer-events:none}
.ba .tag.l{left:12px}.ba .tag.r{right:12px}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba-empty{margin-top:20px;border-radius:20px;border:1px dashed var(--silver);padding:40px 20px;text-align:center;color:var(--slate);font-size:.92rem}
.pcover{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:20px;margin-top:20px}
.plink{display:inline-flex;margin-top:14px;padding:10px 20px;border-radius:100px;background:var(--accent);color:var(--ink);font-size:.92rem}
.pn{display:flex;justify-content:space-between;margin-top:18px;font-size:.92rem}
.pn button,.hlist button{font:inherit;background:none;border:0;color:var(--ink);cursor:pointer;padding:6px 0}
.pn button:hover,.hlist button:hover{color:var(--accent)}
.hlist{list-style:none;margin-top:16px;border-top:1px solid var(--silver)}
.hlist li{border-bottom:1px solid var(--silver)}
.hlist button{width:100%;display:grid;grid-template-columns:2.2rem 1fr auto;gap:10px;text-align:left;align-items:baseline;padding:10px 0}
.hlist .k{font-family:var(--font-en);color:var(--slate)}
.hlist .s{font-size:.8rem;color:var(--slate)}
.demo-note{position:fixed;left:50%;transform:translateX(-50%);bottom:0;z-index:30;font-size:.72rem;color:var(--slate);background:var(--paper);padding:4px 12px;border-radius:8px 8px 0 0;white-space:nowrap;max-width:100vw;overflow:hidden;text-overflow:ellipsis}
@media (max-width:700px){
  .panel{top:auto;left:0;right:0;bottom:0;width:auto;max-height:82svh;border-radius:24px 24px 0 0;transform:translateY(100%);padding:22px var(--gutter) 32px}
  .ba{aspect-ratio:4/3}
}
.count{transition:opacity .3s}
.panel-open .count{opacity:0!important;pointer-events:none}

/* 錨點跳轉時不要被固定頁首蓋住 */
section[id],div[id].about-us{scroll-margin-top:calc(var(--hh,77px) + 12px)}
