/* 御守車匠 OMAMORI｜全站樣式
   規範：DESIGN-omamori.md／styleguide.html（方案二 霧灰・朱漆）
   只用下面的變數與尺標間距，不寫死顏色、不用尺標外的間距。 */

@font-face{font-family:"OM Jinxuan";src:url(../fonts/jinxuan-m.woff) format("woff");font-weight:400 500;font-display:swap}
@font-face{font-family:"OM Jinxuan";src:url(../fonts/jinxuan-h.woff) format("woff");font-weight:700 900;font-display:swap}

:root{
  --ink:#141414; --ink-2:#383836; --mute:#64645f; --line:#d6d6d2;
  --paper:#f0f0ee; --panel:#e4e4e1; --card:#fafaf9; --white:#ffffff; --night:#0d0d0d;
  --lacquer:#7b2621; --lacquer-deep:#651d19; --lacquer-wash:#f0e2e0;
  --on-dark-mute:#b9b8b3;

  --sans:"Schibsted Grotesk","OM Jinxuan",system-ui,sans-serif;
  --cn:"OM Jinxuan","Schibsted Grotesk",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:96px; --s10:128px;
  --gutter:var(--s7); --section:var(--s10); --maxw:1360px;

  --r-sm:8px; --r-md:12px; --r-pill:999px;
  --shadow-pill:0 1px 3px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.04);
  --ease:cubic-bezier(.4,0,.2,1); --t-micro:200ms; --t-tab:400ms; --t-reveal:800ms;
}

/* ---------- base ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:500;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-synthesis:none;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul,ol{list-style:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.mono{font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--lacquer);outline-offset:3px}

/* ---------- 字級 ---------- */
.h-hero{font-family:var(--cn);font-weight:900;font-size:48px;line-height:1.25;letter-spacing:.06em}
.h2{font-family:var(--cn);font-weight:900;font-size:48px;line-height:1.25;letter-spacing:.04em}
.h3{font-family:var(--cn);font-weight:900;font-size:24px;line-height:1.3;letter-spacing:.04em}
.t-card{font-family:var(--cn);font-weight:900;font-size:16px;line-height:1.4;letter-spacing:.04em}
.lead{font-family:var(--cn);font-weight:500;font-size:16px;line-height:1.9;color:var(--ink-2)}
.body{font-family:var(--cn);font-weight:500;font-size:15px;line-height:1.8;color:var(--ink-2)}
.cap{font-family:var(--cn);font-weight:500;font-size:13px;line-height:1.6;color:var(--mute)}
.h-hero,.h2,.h3,.t-card{text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere}
.lead,.body{text-wrap:pretty}
.num{font-family:"Schibsted Grotesk",sans-serif;font-weight:600;font-size:64px;line-height:1;letter-spacing:-.04em}

/* ---------- 按鈕 ---------- */
.pill{display:inline-flex;align-items:center;justify-content:center;height:44px;min-width:136px;padding:0 var(--s5);border-radius:var(--r-pill);font-family:var(--cn);font-size:14px;font-weight:500;letter-spacing:.04em;white-space:nowrap;transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease),transform var(--t-micro) var(--ease)}
.pill:hover{transform:translateY(-1px)}
.pill-lacquer{background:var(--lacquer);color:#fff}.pill-lacquer:hover{background:var(--lacquer-deep)}
.pill-black{background:var(--ink);color:#fff}.pill-black:hover{background:#333}
.pill-white{background:#fff;color:var(--ink)}.pill-white:hover{background:var(--panel)}
.pill-ghost{border:1.5px solid rgba(255,255,255,.8);color:#fff}.pill-ghost:hover{background:rgba(255,255,255,.14)}
.pill-light{background:#fff;color:var(--ink);box-shadow:var(--shadow-pill)}.pill-light:hover{background:var(--panel)}
.pill-sm{height:36px;min-width:0;padding:0 var(--s4);font-size:13px;position:relative}
.pill-sm::after{content:"";position:absolute;inset:-4px 0}
.btns{display:flex;gap:var(--s3);justify-content:center;flex-wrap:wrap}
.arrow{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--t-micro) var(--ease)}
.arrow svg{width:16px;height:16px}
.arrow-w{background:#fff;color:var(--ink)}
.arrow-k{background:var(--ink);color:#fff}
.tag{display:inline-flex;align-items:center;height:28px;padding:0 var(--s3);border-radius:var(--r-pill);background:var(--lacquer-wash);color:var(--lacquer);font-family:var(--cn);font-size:13px;font-weight:500}

/* ---------- header ---------- */
.hdr{position:absolute;top:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--s5) var(--gutter);color:#fff}
.hdr nav{display:flex;gap:var(--s6);font-family:var(--cn);font-size:14px;font-weight:500;letter-spacing:.04em}
.hdr nav a{opacity:.92;padding:var(--s3) 0}
.hdr nav a:hover,.hdr nav a[aria-current]{opacity:1;text-decoration:underline;text-underline-offset:6px}
.brand{text-align:center;line-height:1;display:block}
.brand b{display:block;font-family:"Schibsted Grotesk",sans-serif;font-weight:700;font-size:20px;letter-spacing:.38em;padding-left:.38em}
.brand small{display:block;margin-top:var(--s2);font-family:var(--cn);font-weight:900;font-size:12px;letter-spacing:.3em;padding-left:.3em}
.hdr .right{display:flex;justify-content:flex-end;align-items:center;gap:var(--s5);font-family:var(--cn);font-size:14px}
.hdr.on-light{color:var(--ink);position:relative;background:var(--paper)}
.menu-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center}
.menu-btn span{display:block;width:20px;height:1.5px;background:currentColor;box-shadow:0 6px 0 currentColor,0 -6px 0 currentColor}
.mnav{position:fixed;inset:0;z-index:40;background:var(--night);color:#fff;display:none;flex-direction:column;gap:var(--s5);padding:var(--s9) var(--s5) var(--s7)}
.mnav.open{display:flex}
.mnav a{font-family:var(--cn);font-weight:900;font-size:24px;letter-spacing:.04em}
.mnav .close{position:absolute;top:var(--s5);right:var(--s5);height:44px;padding:0 var(--s3)}
.mnav .pill{margin-top:var(--s5);align-self:flex-start}

/* ---------- hero ---------- */
.hero{position:relative;height:74vh;min-height:576px;max-height:800px;overflow:hidden;background:var(--night);color:#fff}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1200ms var(--ease)}
.slide.on{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;transform:scale(1.04);transform-origin:50% 80%}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,0) 28%,rgba(0,0,0,0) 60%,rgba(0,0,0,.55) 100%)}
.hero-copy{position:absolute;left:0;right:0;top:13%;z-index:5;text-align:center;padding:0 var(--s5)}
.hero-copy .mono{display:block;margin-bottom:var(--s4);opacity:.9}
.hero-copy h1{text-shadow:0 2px 16px rgba(0,0,0,.5)}
.hero-bottom{position:absolute;left:0;right:0;bottom:var(--s5);z-index:5;text-align:center;padding:0 var(--s5)}
.hero-bottom .cap{color:#fff;opacity:.92;margin-bottom:var(--s4);text-shadow:0 1px 8px rgba(0,0,0,.5)}
.dots{display:inline-flex;gap:var(--s1);align-items:center;background:#fff;border-radius:var(--r-pill);padding:var(--s2) var(--s3);margin-top:var(--s4)}
.dots button{width:6px;height:6px;border-radius:6px;background:#c8c8c4;transition:width var(--t-tab) var(--ease),background var(--t-tab) var(--ease);position:relative}
.dots button::after{content:"";position:absolute;inset:-12px -4px}
.dots button.on{width:24px;background:var(--ink)}
.hero .arrow{position:absolute;top:50%;z-index:6;transform:translateY(-50%)}
.hero .arrow:hover{transform:translateY(-50%) scale(1.06)}
.hero .arrow.l{left:var(--s6)}.hero .arrow.r{right:var(--s6)}

/* ---------- 巨字＋去背車舞台 ---------- */
.works{background:var(--panel);padding:var(--s7) 0 var(--s9);overflow:hidden;position:relative}
.works .eyebrow{text-align:center;color:var(--mute);margin-bottom:var(--s2)}
.stage{position:relative;height:clamp(256px,32vw,512px)}
.giant{position:absolute;left:50%;top:0;transform:translateX(-50%);width:max-content;font-family:"Schibsted Grotesk",sans-serif;font-weight:800;letter-spacing:-.05em;line-height:.74;color:var(--ink);white-space:nowrap;font-size:clamp(112px,15vw,224px);transition:opacity 300ms var(--ease);pointer-events:none}
.giant.fade{opacity:0}
.track{position:absolute;left:0;bottom:0;display:flex;align-items:flex-end;gap:6vw;transition:transform var(--t-reveal) var(--ease);will-change:transform}
.car{flex:0 0 64vw;max-width:960px;cursor:pointer}
.car img{width:100%;height:auto}
.car-info{text-align:center;margin-top:var(--s6);padding:0 var(--s5)}
.car-info h3{margin-bottom:var(--s2)}
.car-info p{margin-bottom:var(--s5)}
.car-info .mono{white-space:nowrap}
.car-nav{display:flex;justify-content:center;gap:var(--s1);margin-top:var(--s6);flex-wrap:wrap;padding:0 var(--s5)}
.car-nav button{font-family:var(--mono);font-size:12px;letter-spacing:.06em;height:36px;padding:0 var(--s3);border-radius:var(--r-pill);color:var(--mute);transition:background var(--t-micro) var(--ease),color var(--t-micro) var(--ease)}
.car-nav button.on{background:var(--ink);color:#fff}
.car-nav button:hover:not(.on){color:var(--ink)}
.works .arrow{position:absolute;top:56%;z-index:4}
.works .arrow.l{left:var(--s6)}.works .arrow.r{right:var(--s6)}

/* ---------- 區段標題 ---------- */
.sec{padding:var(--section) 0}
.sec-head{text-align:center;max-width:820px;margin:0 auto;padding:0 var(--gutter)}
.sec-head .mono{color:var(--mute);display:block;margin-bottom:var(--s4)}
.sec-head .lead{margin:var(--s5) auto 0;max-width:620px}
.sec-head .btns{margin-top:var(--s6)}

/* ---------- 理念大圖 ---------- */
.story-img{position:relative;border-radius:var(--r-md);overflow:hidden;aspect-ratio:16/7;background:var(--night);margin-top:var(--s8)}
.story-img img{width:100%;height:100%;object-fit:cover}
.story-img .mono{position:absolute;left:var(--s5);bottom:var(--s5);color:#fff;background:rgba(0,0,0,.55);padding:var(--s2) var(--s3);border-radius:var(--r-sm)}

/* ---------- 分頁 ---------- */
.tabs{display:inline-flex;background:#fff;border-radius:var(--r-pill);padding:var(--s1);box-shadow:var(--shadow-pill);margin-top:var(--s6)}
.tabs button{height:44px;padding:0 var(--s5);border-radius:var(--r-pill);font-family:var(--cn);font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--ink-2);transition:background var(--t-tab) var(--ease),color var(--t-tab) var(--ease)}
.tabs button.on{background:var(--ink);color:#fff}
.panel{display:none;margin-top:var(--s8)}
.panel.on{display:block;animation:fadeUp var(--t-tab) var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4)}
.proc img{border-radius:var(--r-md);aspect-ratio:4/5;object-fit:cover;width:100%;background:var(--panel)}
.proc figcaption{padding-top:var(--s4)}
.proc figcaption .mono{color:var(--mute)}
.proc figcaption b{display:block;margin:var(--s2) 0}
.split{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--s4)}
.split > img{border-radius:var(--r-md);width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.box{background:var(--card);border-radius:var(--r-md);padding:var(--s7);display:flex;flex-direction:column}
.box .mono{color:var(--lacquer)}
.box .h3{margin:var(--s3) 0}
.brands{margin-top:auto;padding-top:var(--s6)}
.brands li{display:grid;grid-template-columns:144px 1fr;gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--line);align-items:baseline}
.brands b{font-family:"Schibsted Grotesk",sans-serif;font-size:24px;font-weight:700;letter-spacing:-.01em}
.svc-list li{display:grid;grid-template-columns:48px 1fr;gap:var(--s3);padding:var(--s5) 0;border-bottom:1px solid var(--line)}
.svc-list li:last-child{border-bottom:0}
.svc-list .mono{color:var(--mute);padding-top:var(--s1)}
.svc-list .t-card{display:block;margin-bottom:var(--s1)}
.more{display:inline-flex;align-items:center;gap:var(--s2);margin-top:var(--s5);font-family:var(--cn);font-size:14px;font-weight:500;color:var(--lacquer)}
.more::after{content:"→"}

/* ---------- 作品格 ---------- */
.grid-works{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);margin-top:var(--s8)}
.gw .ph{overflow:hidden;border-radius:var(--r-md);background:var(--night)}
.gw img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform 600ms var(--ease)}
.gw:hover img{transform:scale(1.03)}
.gw p{padding-top:var(--s3);display:flex;justify-content:space-between;gap:var(--s3);align-items:baseline}
.gw p .mono{color:var(--mute);white-space:nowrap}
.gw .cap{padding-top:var(--s1)}

/* ---------- 流程 ---------- */
.flow{background:var(--card)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--s8);border-top:1px solid var(--line)}
.steps li{padding:var(--s6) var(--s6) 0 0}
.steps .t-card{display:block;margin:var(--s5) 0 var(--s2)}
.steps .body{max-width:256px}

/* ---------- 聯絡 ---------- */
.contact{position:relative;color:#fff;background:var(--night);overflow:hidden}
.contact > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
.contact::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.6) 100%)}
.contact-in{position:relative;z-index:2;padding:var(--section) var(--gutter) var(--s9);text-align:center}
.contact .mono{color:var(--on-dark-mute)}
.contact .h2{margin-top:var(--s4)}
.contact .lead{color:#fff;opacity:.92;margin:var(--s5) auto var(--s6);max-width:560px}
.nap{display:grid;grid-template-columns:repeat(3,1fr);max-width:1088px;margin:var(--s9) auto 0;text-align:left;border-top:1px solid rgba(255,255,255,.3)}
.nap div{padding:var(--s5) var(--s5) 0 0}
.nap p{font-family:var(--cn);font-size:15px;line-height:1.8;margin-top:var(--s3)}
.nap a{text-decoration:underline;text-underline-offset:4px}

/* ---------- footer ---------- */
.ft-wrap{background:var(--lacquer);color:#f4e9e7;padding:var(--s8) 0 var(--s7)}
.ft{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:var(--s6)}
.ft .brand{text-align:left}
.ft .brand b{padding-left:0;font-size:20px}
.ft .brand small{padding-left:0}
.ft h2{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.1em;opacity:.8;margin-bottom:var(--s3)}
.ft a,.ft p{display:block;font-family:var(--cn);font-size:14px;line-height:2}
.ft a:hover{text-decoration:underline;text-underline-offset:4px}
.ft-bottom{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid rgba(255,255,255,.22);display:flex;justify-content:space-between;gap:var(--s3);font-family:var(--cn);font-size:12px;opacity:.85}

/* ---------- 捲動淡入 ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity var(--t-reveal) var(--ease),transform var(--t-reveal) var(--ease)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}

/* ---------- RWD ---------- */
@media (max-width:900px){
  :root{--gutter:var(--s4);--section:var(--s9)}
  .h-hero,.h2{font-size:32px}
  .h3{font-size:20px}
  .num{font-size:48px}
  .hdr{grid-template-columns:auto 1fr auto;padding:var(--s4)}
  .hdr nav,.hdr .right .txt,.hdr .right .pill{display:none}
  .brand{text-align:left}
  .brand b{font-size:16px;letter-spacing:.3em;padding-left:0}
  .brand small{padding-left:0}
  .hdr .right{grid-column:3}
  .menu-btn{display:flex}
  .hero{height:600px;min-height:0}
  .slide img{transform:none;object-position:50% 60%}
  .hero-copy{top:20%}
  .hero .arrow{display:none}
  .works{padding:var(--s8) 0}
  .giant{font-size:21vw}
  .car{flex-basis:88vw}
  .car-info .mono{display:block;margin-top:var(--s1)}
  .works .arrow{display:none}
  .story-img{aspect-ratio:4/3;margin-top:var(--s7)}
  .tabs button{padding:0 var(--s4);font-size:13px}
  .panel{margin-top:var(--s7)}
  .proc{grid-template-columns:1fr 1fr;gap:var(--s3)}
  .split{grid-template-columns:1fr}
  .box{padding:var(--s6) var(--s5)}
  .brands li{grid-template-columns:96px 1fr}
  .grid-works{grid-template-columns:1fr 1fr;gap:var(--s3);margin-top:var(--s7)}
  .gw p{flex-direction:column;gap:var(--s1)}
  .steps{grid-template-columns:1fr 1fr;gap:0 var(--s4);margin-top:var(--s7)}
  .steps li{padding-right:0}
  .nap{grid-template-columns:1fr;margin-top:var(--s8)}
  .ft{grid-template-columns:1fr 1fr}
  .ft-bottom{flex-direction:column}
}
@media (min-width:901px){.mnav{display:none!important}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.rv{opacity:1;transform:none}}

/* =========================================================
   內頁共用
   ========================================================= */
.page-head{padding-top:var(--s9);padding-bottom:var(--s8);text-align:center}
.crumb{display:flex;justify-content:center;gap:var(--s2);font-family:var(--cn);font-size:13px;color:var(--mute);margin-bottom:var(--s6)}
.crumb a:hover{color:var(--ink)}
.crumb li+li::before{content:"·";margin-right:var(--s2)}
.page-head .mono{display:block;color:var(--mute);margin-bottom:var(--s4)}
.page-head .lead{max-width:640px;margin:var(--s5) auto 0}
.cta-band{background:var(--panel);text-align:center;padding:var(--s9) var(--gutter)}
.cta-band .lead{margin:var(--s4) auto var(--s6);max-width:560px}

/* =========================================================
   作品頁
   ========================================================= */
.filter{margin-top:var(--s6)}
.work{padding-top:var(--s9);padding-bottom:var(--s9);border-top:1px solid var(--line)}
.work[hidden]{display:none}
.w-stage{background:var(--panel);border-radius:var(--r-md);padding:var(--s7) var(--s5) var(--s6);text-align:center;overflow:hidden}
.w-giant{font-family:"Schibsted Grotesk",sans-serif;font-weight:800;letter-spacing:-.05em;line-height:.74;white-space:nowrap;color:var(--ink)}
.w-car{margin:-.3em auto 0;width:62%;font-size:inherit}
.w-car.angle{width:52%}
.w-car img{width:100%;height:auto}
.w-photo{margin:-.24em auto 0;width:80%;border-radius:var(--r-md);overflow:hidden;position:relative;z-index:1;background:var(--night)}
.w-photo img{width:100%;aspect-ratio:16/8;object-fit:cover}
.w-meta{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--s7);margin-top:var(--s6);align-items:start}
.w-title .mono{color:var(--lacquer);display:block;margin-bottom:var(--s3)}
.w-title .h3{margin-bottom:var(--s4)}
.w-spec{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.w-spec div{padding:var(--s4) var(--s4) 0 0}
.w-spec dt{color:var(--mute)}
.w-spec dd{font-family:var(--cn);font-weight:900;font-size:16px;letter-spacing:.04em;margin-top:var(--s2)}
.w-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin-top:var(--s6)}
.w-gallery button{display:block;border-radius:var(--r-md);overflow:hidden;background:var(--night);text-align:left}
.w-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 600ms var(--ease),opacity var(--t-micro) var(--ease)}
.w-gallery button:hover img{transform:scale(1.03)}
.w-gallery .proc-tag{position:relative}
.w-gallery .proc-tag::after{content:"施工中";position:absolute;left:var(--s2);top:var(--s2);font-family:var(--cn);font-size:12px;color:#fff;background:var(--lacquer);padding:var(--s1) var(--s2);border-radius:var(--r-sm)}

/* 燈箱 */
.lightbox{border:0;padding:0;max-width:none;max-height:none;width:100%;height:100%;background:rgba(10,10,10,.96);color:#fff}
.lightbox::backdrop{background:rgba(10,10,10,.96)}
.lightbox[open]{display:grid;grid-template-rows:auto 1fr auto}
.lb-top{display:flex;justify-content:space-between;align-items:center;padding:var(--s4) var(--s5)}
.lb-top .mono{color:var(--on-dark-mute)}
.lb-close{height:44px;padding:0 var(--s4);border:1.5px solid rgba(255,255,255,.6);border-radius:var(--r-pill);color:#fff;font-family:var(--cn);font-size:14px}
.lb-stage{display:flex;align-items:center;justify-content:center;padding:0 var(--s9);min-height:0}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r-sm)}
.lb-bottom{text-align:center;padding:var(--s4) var(--s5) var(--s5)}
.lb-bottom p{font-family:var(--cn);font-size:15px;line-height:1.8}
.lightbox .arrow{position:fixed;top:50%;transform:translateY(-50%)}
.lightbox .arrow.l{left:var(--s5)}.lightbox .arrow.r{right:var(--s5)}

@media (max-width:900px){
  .page-head{padding-top:var(--s8);padding-bottom:var(--s7)}
  .work{padding-top:var(--s8);padding-bottom:var(--s8)}
  .w-stage{padding:var(--s6) var(--s3) var(--s5)}
  .w-car,.w-car.angle{width:92%}
  .w-photo{width:100%}
  .w-meta{grid-template-columns:1fr;gap:var(--s5)}
  .w-h span:first-child{display:block}
  .w-h .sep{display:none}
  .w-spec{grid-template-columns:1fr 1fr}
  .w-gallery{grid-template-columns:1fr 1fr;gap:var(--s2)}
  .lb-stage{padding:0 var(--s2)}
  .lightbox .arrow{top:auto;bottom:var(--s5);transform:none}
}

/* =========================================================
   服務項目頁
   ========================================================= */
.jump{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s2);margin-top:var(--s6)}
.jump a{height:36px;display:inline-flex;align-items:center;padding:0 var(--s4);border-radius:var(--r-pill);background:var(--card);box-shadow:var(--shadow-pill);font-family:var(--cn);font-size:13px;font-weight:500;position:relative}
.jump a::after{content:"";position:absolute;inset:-4px 0}
.jump a:hover{background:var(--ink);color:#fff}
.feature{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--s8);align-items:center;padding:var(--s9) 0;border-top:1px solid var(--line)}
.feature.flip .f-img{order:2}
.f-img{border-radius:var(--r-md);overflow:hidden;background:var(--night)}
.f-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.f-txt .mono{color:var(--lacquer);display:block;margin-bottom:var(--s3)}
.f-txt .h2{margin-bottom:var(--s5)}
.f-txt .lead{margin-bottom:var(--s5)}
.points{border-top:1px solid var(--line)}
.points li{display:grid;grid-template-columns:96px 1fr;gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.points .mono{color:var(--mute);padding-top:var(--s1)}
.points a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.points a:hover{text-decoration-color:var(--lacquer);color:var(--lacquer)}
.f-txt .btns{justify-content:flex-start;margin-top:var(--s6)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);margin-top:var(--s7)}
.card{background:var(--card);border-radius:var(--r-md);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s3);scroll-margin-top:var(--s6)}
.card .mono{color:var(--lacquer)}
.card .body + .body{margin-top:0}
.card .fit{margin-top:auto;padding-top:var(--s4);border-top:1px solid var(--line)}
.band{background:var(--night);color:#fff;border-radius:var(--r-md);padding:var(--s8) var(--s7);display:grid;grid-template-columns:1fr 1.2fr;gap:var(--s7);align-items:center;margin-top:var(--s9)}
.band .mono{color:var(--on-dark-mute)}
.band .h2{margin-top:var(--s3)}
.band .lead{color:#e9e8e4}
.faq{max-width:880px;margin:var(--s7) auto 0;border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:48px 1fr 24px;gap:var(--s3);align-items:baseline;padding:var(--s5) 0;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .mono{color:var(--mute)}
.faq summary::after{content:"+";font-family:"Schibsted Grotesk",sans-serif;font-size:24px;line-height:1;color:var(--lacquer);text-align:right}
.faq details[open] summary::after{content:"−"}
.faq .body{padding:0 var(--s7) var(--s5) 60px}
[id]{scroll-margin-top:var(--s6)}

@media (max-width:900px){
  .feature{grid-template-columns:1fr;gap:var(--s6);padding:var(--s8) 0}
  .feature.flip .f-img{order:0}
  .points li{grid-template-columns:72px 1fr}
  .cards{grid-template-columns:1fr;margin-top:var(--s6)}
  .band{grid-template-columns:1fr;padding:var(--s7) var(--s5);gap:var(--s5);margin-top:var(--s8)}
  .faq summary{grid-template-columns:36px 1fr 24px}
  .faq .body{padding:0 0 var(--s5) 48px}
}

/* =========================================================
   膜料介紹頁
   ========================================================= */
.types{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-top:var(--s7)}
.type{background:var(--card);border-radius:var(--r-md);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s4)}
.type .mono{color:var(--lacquer)}
.type dl{border-top:1px solid var(--line);margin-top:auto}
.type dl div{display:grid;grid-template-columns:72px 1fr;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.type dt{color:var(--mute)}
.type dd a,.brand-row a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.type dd a:hover,.brand-row a:hover{text-decoration-color:var(--lacquer);color:var(--lacquer)}
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);margin-top:var(--s7)}
.swatch img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--r-md)}
.swatch figcaption{padding-top:var(--s3)}
.swatch figcaption .mono{color:var(--mute);display:block;margin-top:var(--s1)}
.brand-list{margin-top:var(--s7);border-top:1px solid var(--ink)}
.brand-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:var(--s6);align-items:end;padding:var(--s6) 0;border-bottom:1px solid var(--line)}
.brand-row .word{font-family:"Schibsted Grotesk",sans-serif;font-weight:800;font-size:clamp(48px,7vw,96px);line-height:.9;letter-spacing:-.04em}
.brand-row .mono{color:var(--mute);display:block;margin-bottom:var(--s2)}
.brand-row .count{font-family:"Schibsted Grotesk",sans-serif;font-weight:600;font-size:48px;line-height:1;letter-spacing:-.03em}
.brand-row .count small{font-family:var(--cn);font-size:14px;font-weight:500;letter-spacing:0;margin-left:var(--s2);color:var(--mute)}
.guide{margin-top:var(--s7);border-top:1px solid var(--ink)}
.guide li{display:grid;grid-template-columns:1fr 48px 1fr;gap:var(--s4);align-items:center;padding:var(--s5) 0;border-bottom:1px solid var(--line)}
.guide .arrow-txt{font-family:"Schibsted Grotesk",sans-serif;font-size:24px;color:var(--lacquer);text-align:center}
.guide .ans{font-family:var(--cn);font-weight:900;font-size:20px;letter-spacing:.04em}

@media (max-width:900px){
  .types{grid-template-columns:1fr;margin-top:var(--s6)}
  .swatches{grid-template-columns:1fr 1fr;gap:var(--s3);margin-top:var(--s6)}
  .brand-row{grid-template-columns:1fr 1fr;gap:var(--s4)}
  .brand-row .word{grid-column:1/-1}
  .guide li{grid-template-columns:1fr;gap:var(--s2)}
  .guide .arrow-txt{text-align:left;transform:rotate(90deg);width:24px}
}

/* =========================================================
   關於我們頁
   ========================================================= */
.wide-img{border-radius:var(--r-md);overflow:hidden;background:var(--night);position:relative}
.wide-img img{width:100%;aspect-ratio:16/7;object-fit:cover}
.wide-img figcaption{position:absolute;left:var(--s5);bottom:var(--s5);color:#fff;background:rgba(0,0,0,.55);padding:var(--s2) var(--s3);border-radius:var(--r-sm)}
.statement{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);padding:var(--s9) 0;align-items:start}
.statement .mono{color:var(--lacquer);display:block;margin-bottom:var(--s4)}
.statement .lead + .lead{margin-top:var(--s4)}
.voice{background:var(--panel);border-radius:var(--r-md);padding:var(--s8) var(--s7);display:grid;grid-template-columns:auto 1fr;gap:var(--s7);align-items:center;margin-top:var(--s9)}
.voice .score{font-family:"Schibsted Grotesk",sans-serif;font-weight:700;font-size:96px;line-height:.9;letter-spacing:-.04em}
.voice .score small{display:block;font-family:var(--mono);font-weight:400;font-size:12px;letter-spacing:.08em;color:var(--mute);margin-top:var(--s3)}
.voice ul{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.info{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--s4);margin-top:var(--s7)}
.info dl{background:var(--card);border-radius:var(--r-md);padding:var(--s6) var(--s7)}
.info dl div{display:grid;grid-template-columns:96px 1fr;gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--line)}
.info dl div:last-child{border-bottom:0}
.info dt{color:var(--mute);padding-top:var(--s1)}
.info dd a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.info dd a:hover{text-decoration-color:var(--lacquer);color:var(--lacquer)}
.map{border-radius:var(--r-md);overflow:hidden;background:var(--panel);min-height:384px}
.map iframe{width:100%;height:100%;min-height:384px;border:0;display:block;filter:grayscale(.9) contrast(1.05)}

@media (max-width:900px){
  .wide-img img{aspect-ratio:4/3}
  .statement{grid-template-columns:1fr;gap:var(--s5);padding:var(--s8) 0}
  .voice{grid-template-columns:1fr;gap:var(--s4);padding:var(--s6) var(--s5);margin-top:var(--s8)}
  .voice .score{font-size:72px}
  .info{grid-template-columns:1fr}
  .info dl{padding:var(--s5)}
  .info dl div{grid-template-columns:72px 1fr}
}
