/* 官網共用:基本設定、頁首、頁尾、選行業入口、下載與客服頁。
   各行業頁的樣式各自一檔(auto / beauty / retail / business.css),會蓋掉這裡的色票與字體。
   字體來自 Google Fonts;不載入任何追蹤碼。 */
:root {
  --bg: #fafaf8;
  --surface: #ffffff;
  --ink: #111111;
  --ink-2: #3a3a3a;
  --muted: #6b6b6b;
  --line: #e4e3df;
  --brand: #111111;
  --brand-ink: #ffffff;
  --focus: #1f4fd8;
  --mark-line: #fafaf8;
  --font: "Noto Sans TC", "Inter", -apple-system, BlinkMacSystemFont, "PingFang TC", "Microsoft JhengHei", sans-serif;
  --max: 1280px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #111111; --surface: #1a1a1a; --ink: #f2f1ed; --ink-2: #cfcfcf; --muted: #9a9a9a;
    --line: #2c2c2c; --brand: #f2f1ed; --brand-ink: #111111; --focus: #8fb0ff; --mark-line: #111111;
  }
}
:root[data-theme="dark"] {
  --bg: #111111; --surface: #1a1a1a; --ink: #f2f1ed; --ink-2: #cfcfcf; --muted: #9a9a9a;
  --line: #2c2c2c; --brand: #f2f1ed; --brand-ink: #111111; --focus: #8fb0ff; --mark-line: #111111;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 17px/1.7 var(--font); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; line-height: 1.3; }
p { margin: 0; }
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 20px; }
@media (min-width: 760px) { .wrap { padding: 0 40px; } }

/* 進場動態:只有 JS 在時才先藏起來;「減少動態」時不動 */
.js [data-reveal] { opacity: 0; transform: translateY(var(--reveal-y, 16px)); transition: opacity var(--reveal-t, .4s) ease-out, transform var(--reveal-t, .4s) ease-out; }
.js [data-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
  * { animation: none !important; }
}

/* ---------- 頁首 ---------- */
.site-head { position: sticky; top: 0; z-index: 20; background: var(--bg); border-bottom: 1px solid var(--line); }
.site-head .wrap { display: flex; align-items: center; gap: 20px; height: 64px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 500; font-size: 16px; letter-spacing: .02em; }
.brand-mark { width: 26px; height: 26px; flex: none; color: var(--ink); }
.continue { font-size: 14px; color: var(--muted); text-decoration: none; border-left: 1px solid var(--line); padding-left: 20px; }
.continue:hover { color: var(--ink); text-decoration: underline; }
.nav { margin-left: auto; display: flex; align-items: center; gap: 28px; font-size: 15px; }
.nav a { text-decoration: none; color: var(--ink-2); }
.nav a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.btn-head { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; background: var(--brand); color: var(--brand-ink) !important; text-decoration: none !important; font-weight: 500; }
.menu { display: none; margin-left: auto; }
.menu summary { list-style: none; cursor: pointer; font-size: 15px; padding: 8px 0; border-bottom: 1px solid var(--ink); }
.menu summary::-webkit-details-marker { display: none; }
.menu nav { position: absolute; left: 0; right: 0; top: 64px; background: var(--bg); border-bottom: 1px solid var(--line); padding: 8px 20px 20px; display: grid; }
.menu nav a { text-decoration: none; padding: 14px 0; border-bottom: 1px solid var(--line); }
.menu nav .btn-head { margin-top: 16px; justify-content: center; height: 48px; border: 0; }
@media (max-width: 860px) { .nav { display: none; } .menu { display: block; } .continue { display: none; } }

/* ---------- 頁尾 ---------- */
.site-foot { border-top: 1px solid var(--line); padding: 56px 0 48px; font-size: 14px; color: var(--muted); background: var(--bg); }
.site-foot .cols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 24px; }
.site-foot .foot-brand { color: var(--ink); font-weight: 500; margin-bottom: 8px; font-size: 15px; }
.site-foot p { margin: 2px 0; }
.site-foot h4 { font-size: 13px; color: var(--ink); margin-bottom: 10px; letter-spacing: .04em; }
.site-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.site-foot a { text-decoration: none; }
.site-foot a:hover { color: var(--ink); text-decoration: underline; }
.site-foot .copy { margin-top: 40px; font-size: 12.5px; }
@media (max-width: 720px) { .site-foot .cols { grid-template-columns: 1fr; gap: 28px; } }

/* ---------- 選行業入口 ---------- */
.entry-top { padding: 88px 0 48px; }
.entry-top .kicker { font-size: 14px; color: var(--muted); letter-spacing: .04em; margin-bottom: 20px; }
.entry-top h1 { font-size: clamp(34px, 4.6vw, 56px); font-weight: 500; line-height: 1.2; letter-spacing: -.005em; max-width: 14em; }
.entry-top p.sub { margin-top: 18px; color: var(--ink-2); max-width: 32em; }
.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-bottom: 24px; }
.tile { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; text-decoration: none; background: var(--t-bg); color: var(--t-ink); transition: background-color .3s ease; }
.tile:hover { background: var(--t-bg-hover); }
.tile .shot { position: absolute; left: 12%; right: -6%; top: 13%; transition: transform .4s ease; border: 1px solid var(--t-line); }
.tile:hover .shot { transform: translateY(-8px); }
.tile .shot img { width: 100%; }
.tile .label { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 26px 24px; background: var(--t-bg); transition: background-color .3s ease; }
.tile:hover .label { background: var(--t-bg-hover); }
.tile .name { font-size: 24px; line-height: 1.3; }
.tile .keys { font-size: 13px; color: var(--t-muted); margin-top: 4px; }
.tile .see { position: absolute; top: 20px; right: 24px; font-size: 14px; opacity: 0; transition: opacity .3s ease; }
.tile:hover .see, .tile:focus-visible .see { opacity: 1; }
.tile .tag { position: absolute; top: 20px; left: 24px; font-size: 12px; letter-spacing: .08em; color: var(--t-muted); }
@media (hover: none) { .tile .see { opacity: 1; } }
/* 每張卡用那個行業頁自己的樣子 */
.tile-auto { --t-bg: #1c1e21; --t-bg-hover: #0e0f10; --t-ink: #f3f2ee; --t-muted: #8a8f94; --t-line: #2e3236; }
.tile-auto .name { font-weight: 900; }
.tile-auto .tag { font-family: "JetBrains Mono", ui-monospace, monospace; }
.tile-auto .shot { filter: brightness(.8) contrast(1.05); }
.tile-beauty { --t-bg: #f7f3ec; --t-bg-hover: #ece4d8; --t-ink: #2a2724; --t-muted: #6f675d; --t-line: #d8cfc2; }
.tile-beauty .name { font-family: "Noto Serif TC", serif; font-weight: 500; }
.tile-beauty .tag { font-family: "Cormorant Garamond", serif; font-size: 14px; letter-spacing: .16em; }
.tile-retail { --t-bg: #ffffff; --t-bg-hover: #f4f4f2; --t-ink: #111111; --t-muted: #5e5e5e; --t-line: #e5e5e5; box-shadow: inset 0 0 0 1px #e5e5e5; }
.tile-business { --t-bg: #1f3a5f; --t-bg-hover: #172d4a; --t-ink: #ffffff; --t-muted: #b8c4d4; --t-line: #2f4a70; }
.tile-business .name { font-family: "Inter", "Noto Sans TC", sans-serif; font-weight: 500; }
.tile-business .tag { font-family: "Inter", sans-serif; }
.soon-line { color: var(--muted); font-size: 14px; padding: 4px 0 72px; }
.facts3 { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; padding: 28px 0 8px; font-size: 13.5px; color: var(--muted); }
.facts3 b { display: block; color: var(--ink); font-weight: 500; margin-bottom: 4px; font-size: 13px; }
@media (max-width: 760px) {
  .entry-top { padding: 48px 0 32px; }
  .tiles { grid-template-columns: 1fr; gap: 16px; }
  .facts3 { grid-template-columns: 1fr; gap: 14px; }
}

/* ---------- 下載、客服 ---------- */
.page-top { padding: 72px 0 40px; }
.page-top .kicker { font-size: 14px; color: var(--muted); margin-bottom: 14px; }
.page-top h1 { font-size: clamp(30px, 4vw, 48px); font-weight: 500; }
.page-top p { margin-top: 14px; color: var(--ink-2); max-width: 34em; }
.rows { border-top: 1px solid var(--ink); margin-bottom: 96px; }
.row { display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 24px; align-items: start; padding: 28px 0; border-bottom: 1px solid var(--line); }
.row h2 { font-size: 22px; }
.row .state { display: block; font-size: 13px; color: var(--muted); margin-top: 4px; }
.row p { color: var(--ink-2); font-size: 15.5px; }
.row .act { justify-self: end; }
.btn-line { display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 20px; text-decoration: none; font-weight: 500; }
.btn-solid { background: var(--brand); color: var(--brand-ink); }
.btn-off { border: 1px solid var(--line); color: var(--muted); cursor: not-allowed; }
.row details { margin-top: 12px; font-size: 14.5px; color: var(--muted); }
.row details summary { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.row details p { margin-top: 8px; font-size: 14.5px; }
.mail { word-break: break-all; }
@media (max-width: 760px) { .row { grid-template-columns: 1fr; gap: 10px; } .row .act { justify-self: start; } }
