/* ==========================================================================
   總昌機械 TSUNG CHANG MACHINERY — 全站樣式（Mobile first / RWD）
   ========================================================================== */

:root{
  --green-900:#1d2c16;
  --green-800:#2f4a1e;
  --green-700:#3d6522;
  --green-600:#5f8f36;
  --green-500:#6ea23f;
  --lime-300:#a8ca7d;
  --lime-200:#c8e0a9;
  --lime-100:#eef3e3;
  --cream:#faf8f3;
  --ink:#2b2b26;
  --body:#4c4c40;
  --muted:#7c7c6d;
  --line:#e6e1d3;
  --white:#fff;

  --wrap:1200px;
  --gutter:clamp(16px, 4.2vw, 48px);
  --sec-y:clamp(48px, 8vw, 96px);
  --radius:10px;
  --shadow-sm:0 2px 12px rgba(47,74,30,.08);
  --shadow-md:0 14px 34px rgba(47,74,30,.12);
  --shadow-lg:0 24px 60px rgba(47,74,30,.18);
  --font-sans:'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
  --font-serif:'Noto Serif TC', 'PingFang TC', 'Microsoft JhengHei', serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}

body{
  margin:0;
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.8;
  color:var(--ink);
  background:var(--cream);
  overflow-wrap:break-word;
  word-break:break-word;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; height:auto; display:block;}
a{color:var(--green-600); text-decoration:none;}
a:hover{color:var(--green-700);}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--green-500); outline-offset:2px;}
h1,h2,h3,h4{line-height:1.4; margin:0;}
p{margin:0 0 1em;}
ul,ol{margin:0 0 1em; padding-left:1.4em;}
li{margin-bottom:.4em;}

.page{display:flex; flex-direction:column; min-height:100vh;}
.wrap{width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter);}
.wrap-narrow{max-width:960px;}
.skip{position:absolute; left:-9999px; top:0; background:#fff; padding:12px 18px; z-index:999;}
.skip:focus{left:8px; top:8px;}

/* ---------- 頂部資訊列 ---------- */
.topbar{background:var(--green-900); color:#cfe0be; font-size:13px; padding-block:8px;}
.topbar .wrap{display:flex; flex-wrap:wrap; gap:6px 24px; justify-content:space-between; align-items:center;}
.topbar-info{display:flex; flex-wrap:wrap; gap:6px 22px;}
.topbar-right{display:flex; align-items:center; gap:18px;}
.topbar a{color:#cfe0be;}
.topbar a:hover{color:#fff;}
.topbar-brand{opacity:.75;}

/* 語言切換 */
.topbar-lang{display:flex; align-items:center; gap:8px; white-space:nowrap;}
.topbar-lang span{opacity:.35;}
.topbar-lang a{padding:2px 2px; font-weight:600;}
.topbar-lang a.is-active{color:#fff; text-decoration:underline; text-underline-offset:4px;}
.nav-lang{display:none;}

@media (max-width:1080px){
  .nav-lang{
    display:flex; align-items:center; gap:10px;
    padding:14px 0 12px; border-bottom:1px solid var(--line); font-size:16px;
  }
  .nav-lang a{color:var(--green-800); font-weight:600; padding:8px 14px; border:1px solid var(--line); border-radius:20px; min-height:40px; display:inline-flex; align-items:center;}
  .nav-lang a.is-active{background:var(--green-800); border-color:var(--green-800); color:#fff;}
  .nav-lang span{display:none;}
}
@media (max-width:860px){
  .topbar{font-size:12px;}
  .topbar-brand{display:none;}
  .topbar-lang{display:none;}
}

/* ---------- 頁首與導覽 ---------- */
.site-header{
  background:var(--white);
  box-shadow:var(--shadow-sm);
  position:sticky; top:0; z-index:200;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:72px; padding-block:10px;}
.logo img{height:clamp(40px,6vw,56px); width:auto;}

.nav-toggle{display:none;}
.nav-btn{
  display:none; align-items:center; justify-content:center;
  background:var(--green-800); color:#fff; border:0; border-radius:6px;
  cursor:pointer; width:48px; height:48px; flex:0 0 48px;
}
.nav-btn > span[aria-hidden]{display:block; width:22px; height:2px; background:#fff; position:relative; border-radius:2px;}
.nav-btn > span[aria-hidden]::before,.nav-btn > span[aria-hidden]::after{content:""; position:absolute; left:0; width:22px; height:2px; background:#fff; border-radius:2px; transition:.18s ease;}
.nav-btn > span[aria-hidden]::before{top:-7px;} .nav-btn > span[aria-hidden]::after{top:7px;}
.nav-toggle:checked ~ .nav-btn > span[aria-hidden]{background:transparent;}
.nav-toggle:checked ~ .nav-btn > span[aria-hidden]::before{top:0; transform:rotate(45deg);}
.nav-toggle:checked ~ .nav-btn > span[aria-hidden]::after{top:0; transform:rotate(-45deg);}
.nav-toggle:focus-visible ~ .nav-btn{outline:3px solid var(--green-500); outline-offset:2px;}

.main-nav{display:flex; align-items:center; gap:clamp(14px,2.2vw,30px);}
.nav-item{position:relative;}
.nav-link{
  display:inline-flex; align-items:center; gap:5px;
  font-size:16px; font-weight:600; color:var(--green-800);
  padding:10px 2px; white-space:nowrap;
}
.nav-item.is-current > .nav-link{color:var(--green-600); font-weight:700;}
.nav-link .caret{font-size:10px; opacity:.6;}
.submenu{
  position:absolute; left:50%; top:100%; transform:translateX(-50%) translateY(6px);
  min-width:230px; background:#fff; border:1px solid var(--line); border-radius:8px;
  box-shadow:var(--shadow-md); padding:8px; margin:0; list-style:none;
  opacity:0; visibility:hidden; transition:.16s ease;
}
.nav-item:hover .submenu,
.nav-item:focus-within .submenu{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.submenu li{margin:0;}
.submenu a{display:block; padding:10px 14px; border-radius:6px; font-size:15px; color:var(--ink); font-weight:500;}
.submenu a:hover{background:var(--lime-100); color:var(--green-800);}
.submenu a[aria-current="page"]{background:var(--lime-100); color:var(--green-800); font-weight:700;}
.nav-cta{
  background:var(--green-600); color:#fff; padding:12px 24px; border-radius:4px;
  font-weight:700; font-size:15px; white-space:nowrap;
}
.nav-cta:hover{background:var(--green-700); color:#fff;}

@media (max-width:1080px){
  .nav-btn{display:inline-flex;}
  .main-nav{
    display:block; position:absolute; left:0; right:0; top:100%;
    background:#fff; border-top:1px solid var(--line);
    box-shadow:0 18px 30px rgba(0,0,0,.14);
    max-height:calc(100vh - 120px); overflow-y:auto;
    padding:8px var(--gutter) 22px;
    clip-path:inset(0 0 100% 0); opacity:0; pointer-events:none; transition:.18s ease;
  }
  .nav-toggle:checked ~ .main-nav{clip-path:inset(0 0 0 0); opacity:1; pointer-events:auto;}
  .nav-item{border-bottom:1px solid var(--line);}
  .nav-link{display:flex; width:100%; padding:15px 2px; font-size:17px; justify-content:space-between;}
  .nav-link .caret{display:none;}
  .submenu{
    position:static; transform:none; opacity:1; visibility:visible;
    border:0; box-shadow:none; padding:0 0 12px; min-width:0; background:transparent;
  }
  .submenu a{padding:11px 14px; font-size:15px; background:var(--cream); margin-bottom:6px;}
  .nav-cta{display:block; text-align:center; margin-top:18px; padding:15px;}
}

/* ---------- 首頁主視覺 ---------- */
.hero{
  position:relative; overflow:hidden; color:#fff;
  padding-block:clamp(56px,10vw,110px) clamp(80px,12vw,130px);
  background-color:#1d2c16;
  background-image:
    linear-gradient(100deg, rgba(20,32,14,.90) 0%, rgba(24,38,16,.74) 45%, rgba(30,48,20,.52) 100%),
    url('/images/hero-forest.webp');
  background-size:cover;
  background-position:center 62%;
  background-repeat:no-repeat;
}
@media (max-width:760px){
  .hero{
    background-image:
      linear-gradient(180deg, rgba(18,30,13,.86) 0%, rgba(22,36,15,.80) 55%, rgba(26,42,18,.78) 100%),
      url('/images/hero-forest-sm.webp');
  }
}
.hero::after{
  content:""; position:absolute; right:-90px; top:-90px; width:min(520px,70vw); aspect-ratio:1;
  border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.08),transparent 70%);
}
.hero h1,.hero-lead,.eyebrow{text-shadow:0 2px 12px rgba(0,0,0,.35);}
.hero .wrap{position:relative; z-index:2;}
.eyebrow{font-size:clamp(12px,2.6vw,15px); letter-spacing:.14em; color:var(--lime-200); font-weight:600; margin-bottom:14px;}
.hero h1{
  font-family:var(--font-serif); font-weight:900;
  font-size:clamp(26px,5.6vw,52px); line-height:1.35;
  margin:0 0 20px; max-width:20em;
}
.hero-lead{font-size:clamp(15px,2.4vw,18px); line-height:1.95; color:#e4efd8; max-width:44em; margin:0 0 32px;}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:50px; padding:13px 30px; border-radius:4px;
  font-weight:700; font-size:16px; text-align:center;
}
.btn-light{background:#fff; color:var(--green-800);}
.btn-light:hover{background:var(--lime-200); color:var(--green-800);}
.btn-outline{border:2px solid #fff; color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.14); color:#fff;}
.btn-solid{background:var(--green-600); color:#fff;}
.btn-solid:hover{background:var(--green-700); color:#fff;}
@media (max-width:520px){
  .hero-actions{flex-direction:column; align-items:stretch;}
  .btn{width:100%;}
}

/* ---------- 內頁標題列 ---------- */
.page-head{
  background:linear-gradient(135deg,#2f4a1e 0%,#4a7228 60%,#6b9b3f 100%);
  color:#fff; padding-block:clamp(36px,7vw,64px) clamp(30px,6vw,48px);
}
.breadcrumb{font-size:13px; color:#d7e6c6; margin-bottom:10px;}
.breadcrumb a{color:#d7e6c6;}
.breadcrumb a:hover{color:#fff;}
.breadcrumb span{opacity:.65; margin-inline:6px;}
.page-head h1{font-family:var(--font-serif); font-weight:900; font-size:clamp(24px,5.2vw,40px);}
.page-head .page-sub{margin:12px 0 0; color:#e2efd4; font-size:clamp(14px,2.4vw,17px); max-width:52em;}

/* ---------- 區塊 ---------- */
.section{padding-block:var(--sec-y);}
.section-tight{padding-block:clamp(32px,5vw,56px);}
.section-alt{background:var(--white); border-block:1px solid var(--line);}
.section-head{text-align:center; margin-bottom:clamp(28px,5vw,52px);}
.section-head.left{text-align:left;}
.kicker{font-size:13px; letter-spacing:.16em; color:var(--green-600); font-weight:700; margin-bottom:10px;}
.section-head h2{font-family:var(--font-serif); font-size:clamp(22px,4.4vw,34px); color:var(--green-800);}
.section-head p{margin:14px auto 0; max-width:48em; color:var(--body); font-size:clamp(15px,2.3vw,17px); line-height:1.95;}
.section-head.left p{margin-inline:0;}
h2.block-title{font-family:var(--font-serif); font-size:clamp(20px,3.8vw,28px); color:var(--green-800); margin:0 0 16px;}
h3.block-title{font-size:clamp(17px,3vw,21px); color:var(--green-800); margin:0 0 12px;}
.lead{font-size:clamp(15px,2.4vw,18px); line-height:2.05; color:var(--body);}
.prose{font-size:clamp(15px,2.3vw,17px); line-height:2.05; color:var(--body);}
.prose h2{margin-top:clamp(30px,5vw,48px);}
.prose h2:first-child{margin-top:0;}

/* ---------- 卡片與格線 ---------- */
.grid{display:grid; gap:clamp(16px,2.6vw,26px);}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,198px),1fr));}
.card{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(22px,3.4vw,32px);}
.card h3{font-size:clamp(17px,2.8vw,20px); color:var(--green-800); margin:0 0 10px;}
.card p{font-size:15px; line-height:1.9; color:var(--body); margin:0;}
.card-num{
  width:48px; height:48px; border-radius:50%; background:var(--lime-100); color:var(--green-600);
  display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:900; margin-bottom:14px;
}

/* 首頁三大保證（浮出 hero） */
.promise{margin-top:clamp(-56px,-7vw,-40px); position:relative; z-index:5; padding-bottom:0;}
.promise .card{box-shadow:var(--shadow-lg); text-align:center;}
.promise-img{width:88px; height:88px; border-radius:50%; object-fit:cover; margin:0 auto 16px;}

/* 圖文並列 */
.split{display:grid; gap:clamp(24px,4vw,56px); align-items:center; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));}
.split-panel{background:var(--lime-100); border-radius:var(--radius); padding:clamp(24px,4vw,56px);}
.split img{width:100%; border-radius:8px; box-shadow:var(--shadow-md);}

/* 數據卡 */
.stat{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column;}
.stat img{width:100%; aspect-ratio:16/10; object-fit:cover;}
.stat-body{padding:22px 20px 26px; text-align:center;}
.stat-num{font-family:var(--font-serif); font-size:clamp(22px,3.6vw,30px); font-weight:900; color:var(--green-600); line-height:1.3;}
.stat-label{font-size:13px; color:var(--muted); margin-bottom:10px;}
.stat p{font-size:14px; line-height:1.85; color:var(--body); margin:0;}

/* 影片 */
.video-frame{max-width:900px; margin-inline:auto; border-radius:10px; overflow:hidden; box-shadow:var(--shadow-lg); background:#000;}
.video-frame iframe{display:block; width:100%; aspect-ratio:16/9; border:0;}
.media-note{max-width:640px; margin:0 auto 24px; border-radius:10px; overflow:hidden; box-shadow:var(--shadow-md);}

/* 防詐提醒 */
.alert-band{background:#fff4f2; border:1px solid #f3cfc7; border-radius:var(--radius); overflow:hidden;}
.alert-band img{width:100%;}
.alert-band .alert-text{padding:clamp(18px,3vw,26px); text-align:center; font-weight:700; color:#a33b26; font-size:clamp(15px,2.6vw,19px);}
.alert-band .alert-text a{color:#a33b26; text-decoration:underline;}

/* CTA 區 */
.cta-band{background:linear-gradient(135deg,#2f4a1e,#3d5a28); color:#fff; text-align:center; padding-block:clamp(48px,7vw,80px);}
.cta-band h2{font-family:var(--font-serif); font-size:clamp(21px,4vw,32px); margin:0 0 10px;}
.cta-band p{color:var(--lime-200); font-size:clamp(14px,2.4vw,16px); margin:0 0 26px;}
.cta-center{text-align:center;}

/* 諮詢卡 */
.inquiry{
  max-width:900px; margin-inline:auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:clamp(24px,4vw,44px); display:flex; flex-wrap:wrap; gap:clamp(20px,3.6vw,36px);
  align-items:center; box-shadow:var(--shadow-md);
}
.inquiry-figure{flex:0 0 clamp(220px,30%,300px); max-width:100%; display:block;}
.inquiry-figure img{width:100%; border-radius:8px;}
.inquiry-body{flex:1 1 320px; min-width:0;}
.inquiry-body h2{font-size:clamp(18px,3vw,22px); color:var(--green-800); margin:0 0 10px;}
.inquiry-body p{font-size:15px; line-height:1.9; color:var(--body); margin:0 0 18px;}
@media (max-width:640px){
  .inquiry{text-align:center; flex-direction:column;}
  .inquiry-figure{flex:0 0 auto; width:min(280px,100%); margin-inline:auto;}
}

/* ---------- 專區子選單（膠囊） ---------- */
.subnav{display:flex; flex-wrap:wrap; gap:10px; padding-block:clamp(24px,4vw,40px) 0;}
.subnav a{
  display:inline-flex; align-items:center; min-height:44px;
  background:#fff; border:1px solid var(--line); color:var(--green-800);
  padding:8px 18px; border-radius:24px; font-size:15px; font-weight:600;
}
.subnav a:hover{border-color:var(--green-600);}
.subnav a[aria-current="page"]{background:var(--green-800); border-color:var(--green-800); color:#fff; font-weight:700;}
@media (max-width:640px){
  .subnav{flex-wrap:nowrap; overflow-x:auto; padding-bottom:6px; margin-inline:calc(var(--gutter) * -1); padding-inline:var(--gutter); scrollbar-width:thin;}
  .subnav a{flex:0 0 auto;}
}

/* ---------- 產品圖庫 ---------- */
.gallery{display:grid; gap:clamp(14px,2.4vw,22px); grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));}
.gallery figure{margin:0; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.gallery img{width:100%; aspect-ratio:4/3; object-fit:cover; background:#fff;}
.gallery figcaption{padding:12px 14px; font-size:14px; color:var(--green-800); font-weight:600; text-align:center;}

/* 原料圖示 */
.material-grid{display:grid; gap:clamp(14px,2.4vw,20px); grid-template-columns:repeat(auto-fill,minmax(min(45%,180px),1fr));}
.material-grid figure{margin:0; text-align:center;}
.material-grid img{width:100%; aspect-ratio:1; object-fit:contain; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:10px;}
.material-grid figcaption{margin-top:10px; font-weight:600; color:var(--green-800); font-size:15px;}

/* 客戶安裝實績卡 */
.case-grid{display:grid; gap:clamp(14px,2.4vw,22px); grid-template-columns:repeat(auto-fill,minmax(min(46%,200px),1fr));}
.case-grid .card{padding:0; overflow:hidden; display:flex; flex-direction:column;}
.case-grid img{width:100%; aspect-ratio:4/3; object-fit:cover;}
.case-grid .case-body{padding:14px 16px 18px;}
.case-grid .name{font-weight:700; color:var(--green-800); font-size:15px; line-height:1.5;}
.case-grid .place{font-size:13px; color:var(--muted); margin-top:2px;}
.case-grid .case-link{display:inline-block; margin-top:8px; font-size:13px;}

/* 條列特色 */
.feature-list{list-style:none; padding:0; margin:0; display:grid; gap:14px;}
.feature-list li{
  background:#fff; border:1px solid var(--line); border-left:4px solid var(--green-600);
  border-radius:8px; padding:18px 22px; font-size:clamp(15px,2.3vw,16px); line-height:1.9; color:var(--body); margin:0;
}
.check-list{list-style:none; padding:0; margin:0 0 1em;}
.check-list li{position:relative; padding-left:1.6em; line-height:1.95;}
.check-list li::before{content:"◆"; position:absolute; left:0; color:var(--green-600); font-size:.8em; top:.35em;}

/* 置中圖片（橫幅、單張設備圖、掃描件） */
.banner-figure{margin:0 auto clamp(24px,4vw,40px); max-width:900px; text-align:center;}
.banner-figure img{max-width:100%; width:auto; height:auto; margin-inline:auto; border-radius:var(--radius); box-shadow:var(--shadow-md);}
figure.zoomable img{margin-inline:auto; border-radius:var(--radius);}
figure.zoomable{text-align:center;}

/* 標語條 */
.banner-note{
  background:var(--lime-100); border-radius:var(--radius); text-align:center;
  padding:clamp(18px,3vw,28px); font-weight:700; color:var(--green-800);
  font-size:clamp(15px,2.8vw,19px); line-height:1.7;
}
.tagline{text-align:center; color:var(--green-700); font-weight:700; letter-spacing:.04em; font-size:clamp(14px,2.4vw,16px); margin:0;}

/* 規格表 */
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--radius); background:#fff;}
table.spec{border-collapse:collapse; width:100%; font-size:15px;}
table.spec th,table.spec td{padding:14px 18px; border-bottom:1px solid var(--line); text-align:left; line-height:1.8;}
table.spec th{background:var(--lime-100); color:var(--green-800); font-weight:700; white-space:nowrap; width:34%;}
table.spec tr:last-child th,table.spec tr:last-child td{border-bottom:0;}
/* 窄螢幕：規格表改為上下堆疊，避免內容被截斷 */
@media (max-width:600px){
  .table-scroll{overflow-x:visible;}
  table.spec,table.spec tbody,table.spec thead,table.spec tr,table.spec th,table.spec td{display:block; width:auto;}
  table.spec tr{border-bottom:1px solid var(--line);}
  table.spec tr:last-child{border-bottom:0;}
  table.spec th{border-bottom:0; padding:10px 16px 4px; background:transparent; color:var(--green-600); font-size:13px; white-space:normal;}
  table.spec td{border-bottom:0; padding:0 16px 14px; font-weight:600;}
}

/* 超寬示意圖：手機可左右滑動檢視 */
.wide-figure{margin:0 0 24px;}
.wide-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--radius); background:#fff;}
.wide-scroll img{min-width:100%; display:block;}
.figure-hint{font-size:13px; color:var(--muted); margin:8px 0 0;}
@media (max-width:760px){
  .wide-scroll img{min-width:760px;}
}
figure.zoomable figcaption{font-size:13px; color:var(--muted); margin-top:8px;}

/* 定義清單（聯絡資訊） */
.info-block{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(22px,3.4vw,32px);}
.info-block h3{color:var(--green-800); font-size:clamp(17px,2.8vw,20px); margin:0 0 14px;}
.info-block dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:8px 18px; font-size:15px; line-height:1.85;}
.info-block dt{font-weight:700; color:var(--green-800); white-space:nowrap;}
.info-block dd{margin:0; color:var(--body);}
@media (max-width:520px){
  .info-block dl{grid-template-columns:1fr; gap:2px;}
  .info-block dd{margin-bottom:10px;}
}

.source-note{font-size:13px; color:var(--muted); line-height:1.9; border-top:1px solid var(--line); padding-top:18px; margin-top:clamp(28px,5vw,44px);}

/* ---------- 頁尾 ---------- */
.site-footer{margin-top:auto; background:var(--green-900); color:#cfe0be; padding-top:clamp(40px,6vw,64px);}
.footer-grid{
  display:grid; gap:clamp(26px,4vw,44px); padding-bottom:clamp(30px,5vw,46px);
  border-bottom:1px solid rgba(255,255,255,.12);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
}
.footer-logo{height:56px; width:auto; margin-bottom:14px; background:#fff; padding:8px 12px; border-radius:6px;}
.footer-about{font-size:14px; line-height:1.95; color:#b7c9a4; margin:0;}
.footer-col h2{font-size:15px; color:#fff; margin:0 0 14px; font-weight:700;}
.footer-links{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:2px;}
.footer-links li{margin:0;}
.footer-links a{display:block; padding:7px 0; font-size:14px; color:#b7c9a4;}
.footer-links a:hover{color:#fff;}
.footer-contact{font-size:14px; line-height:2; color:#b7c9a4; margin:0 0 14px;}
.footer-contact a{color:#b7c9a4;}
.footer-contact a:hover{color:#fff;}
.footer-map{width:100%; height:150px; border:0; border-radius:8px;}
.footer-keywords{padding-block:22px; border-bottom:1px solid rgba(255,255,255,.12); font-size:12.5px; line-height:1.95; color:#8fa578;}
.footer-keywords b{color:#b7c9a4; font-weight:600;}
.copyright{padding-block:20px; font-size:13px; color:#8fa578; text-align:center;}

/* ---------- Lightbox（設備圖點擊放大） ---------- */
[data-lightbox] img{cursor:zoom-in;}
.lb{
  position:fixed; inset:0; z-index:9999; display:none;
  align-items:center; justify-content:center;
  background:rgba(14,22,10,.92); padding:clamp(12px,4vw,48px);
}
.lb.is-open{display:flex;}
.lb-figure{margin:0; max-width:min(1200px,100%); max-height:100%; display:flex; flex-direction:column; align-items:center; gap:12px;}
.lb-img{
  max-width:100%; max-height:calc(100vh - 150px);
  width:auto; height:auto; object-fit:contain;
  border-radius:8px; background:#fff; box-shadow:0 30px 80px rgba(0,0,0,.55);
}
.lb-caption{color:#dbe8cd; font-size:15px; text-align:center; line-height:1.7; max-width:60ch;}
.lb-count{color:#8fa578; font-size:13px;}
.lb button{
  position:absolute; background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.28);
  border-radius:50%; width:52px; height:52px; font-size:24px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:background .15s;
}
.lb button:hover{background:rgba(255,255,255,.26);}
.lb-close{top:clamp(10px,2vw,24px); right:clamp(10px,2vw,24px);}
.lb-prev{left:clamp(8px,2vw,28px); top:50%; transform:translateY(-50%);}
.lb-next{right:clamp(8px,2vw,28px); top:50%; transform:translateY(-50%);}
@media (max-width:640px){
  .lb button{width:44px; height:44px; font-size:20px;}
  .lb-prev{left:6px;} .lb-next{right:6px;}
  .lb-img{max-height:calc(100vh - 190px);}
}
body.lb-lock{overflow:hidden;}

/* ---------- 工具 ---------- */
.mt-0{margin-top:0;} .mb-0{margin-bottom:0;}
.stack{display:grid; gap:clamp(16px,2.6vw,24px);}
.center{text-align:center;}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
}
