/* 全站共用：頁首、頁尾、按鈕、細線格、進場（v2 重做） */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--base)/1.9 var(--font);-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:1.3}
h2{font-size:var(--h2);line-height:1.25;letter-spacing:.02em}
h3{font-size:var(--h3);letter-spacing:.02em}
img{display:block;max-width:100%;height:auto}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--brand);outline-offset:4px}
.container{width:var(--container);margin-inline:auto}
.keep{white-space:nowrap}
.phrase{display:inline-block}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 頁首：沿用 v1 */
.site-header{position:sticky;top:0;z-index:20;height:var(--header);background:var(--paper);border-bottom:var(--hair) solid var(--line)}
.header-inner{width:var(--container);margin:auto;height:100%;display:flex;align-items:center;gap:28px}
.brand{flex-shrink:0;display:flex;align-items:center;min-height:var(--touch)}
.brand img{width:158px}
#main-nav{display:flex;align-items:center;gap:30px;margin-left:auto;white-space:nowrap;font-size:var(--small);font-weight:500}
#main-nav>a,summary{display:flex;align-items:center;min-height:var(--touch)}
summary{cursor:pointer;list-style:none;gap:6px}
summary::-webkit-details-marker{display:none}
/* 下拉箭頭：用邊框畫的 V 形，不吃字型（「⌄」字元在部分字型會跑位） */
summary:after{content:"";width:7px;height:7px;margin:-5px 0 0 2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform var(--ease)}
.nav-group[open] summary:after{transform:rotate(225deg);margin-top:3px}
.nav-group{position:relative}
.nav-panel{position:absolute;top:100%;right:-20px;min-width:240px;padding:10px 20px;background:var(--card);border:var(--hair) solid var(--line);border-radius:var(--radius-lg);box-shadow:0 12px 24px var(--shadow)}
.nav-panel a{display:flex;align-items:center;min-height:44px}
#main-nav a:hover,summary:hover{color:var(--brand-deep)}
.header-action{display:inline-flex;align-items:center;min-height:var(--touch);padding:0 26px;border-radius:999px;background:var(--brand);color:var(--white);font-size:var(--small);font-weight:500;white-space:nowrap;transition:background var(--ease)}
.header-action:hover{background:var(--brand-deep)}
.menu-toggle{display:none}

/* 區塊共用：型錄式區標——上細線、襯線大標靠左、說明句在右 */
.section{padding-block:var(--space)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:20px clamp(32px,5vw,96px);padding-top:26px;margin-bottom:clamp(44px,5vw,72px);border-top:var(--hair) solid var(--line-strong)}
.sec-head p{color:var(--muted);max-width:30em}
.eyebrow{display:block;margin-bottom:14px;font-family:var(--font);font-size:var(--caption);letter-spacing:.24em;color:var(--muted);font-weight:500}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--touch);padding:0 34px;border-radius:999px;background:var(--brand);color:var(--white);font-size:var(--small);font-weight:500;transition:background var(--ease),transform var(--ease)}
.btn:hover{background:var(--brand-deep);transform:translateY(-2px)}
.btn--line{background:var(--clear);color:var(--brand-deep);border:var(--hair) solid var(--brand)}
.btn--line:hover{background:var(--brand);color:var(--white)}
.section-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:56px}
.text-action{display:flex;flex-wrap:wrap;gap:16px;margin-top:36px}

/* 細線格（型錄）：外框一圈、格與格之間一條線 */
.lines{display:grid;border-top:var(--hair) solid var(--line-strong);border-left:var(--hair) solid var(--line-strong)}
.lines>*{border-right:var(--hair) solid var(--line-strong);border-bottom:var(--hair) solid var(--line-strong)}

/* 頁尾：沿用 v1 */
.site-footer{padding:80px 0 40px;background:var(--canvas)}
.footer-grid{display:grid;grid-template-columns:1fr 1.5fr 1.1fr;gap:56px;align-items:start}
.footer-brand img{width:180px}
.footer-contact{display:grid;grid-template-columns:auto 1fr;gap:4px 20px;font-size:var(--small);line-height:1.7}
.footer-contact dt{color:var(--muted);padding-block:10px}
.footer-contact dd{margin:0;padding-block:10px}
.footer-contact a{display:inline-flex;align-items:center;min-height:44px;margin-block:-10px;color:var(--brand-deep);text-decoration:underline;text-underline-offset:4px}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;font-size:var(--small)}
.footer-nav a{display:flex;align-items:center;min-height:44px}
.footer-nav a:hover{color:var(--brand-deep)}
.footer-social{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:20px;font-size:var(--small)}
.footer-social a{display:flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:56px;padding-top:24px;border-top:var(--hair) solid var(--line);font-size:14px;color:var(--muted)}
.legal a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.mobile-actions{display:none}

/* 進場：只有兩種——浮現、照片由中線向兩側拉開（型錄翻頁感）。隱藏狀態只在 .js 下成立，head 另有逾時保險絲 */
.js .reveal{opacity:0;transform:translate3d(0,var(--rise),0);transition:opacity var(--dur-in) var(--ease-out) var(--d,0s),transform var(--dur-in) var(--ease-out) var(--d,0s)}
.js .reveal.is-in{opacity:1;transform:none}
.js .unfold{clip-path:inset(0 50% 0 50%);transition:clip-path var(--dur-media) var(--ease-inout) var(--d,0s)}
.js .unfold.is-in{clip-path:inset(0 0 0 0)}

@media(max-width:1180px){
  .header-inner{gap:16px}
  #main-nav{display:none;position:absolute;top:var(--header);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:12px 6%;background:var(--paper);border-bottom:var(--hair) solid var(--line);max-height:70vh;overflow:auto}
  #main-nav.is-open{display:flex}
  #main-nav>a,summary{min-height:52px}
  .nav-panel{position:static;border:0;box-shadow:none;padding:0 20px 8px;background:var(--clear)}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:48px;height:48px;margin-left:auto;padding:12px;background:var(--clear);border:0}
  .menu-toggle span{width:24px;height:2px;background:var(--ink)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-nav-wrap{grid-column:1/-1}
}
@media(max-width:991px){
  .sec-head{grid-template-columns:1fr;align-items:start;gap:14px}
}
@media(max-width:767px){
  body{padding-bottom:var(--action)}
  .brand img{width:126px}
  .header-action{display:none}
  .sec-head{margin-bottom:36px;padding-top:20px}
  .footer-grid{grid-template-columns:1fr;gap:36px}
  .site-footer{padding:56px 0 32px}
  .mobile-actions{position:fixed;inset:auto 0 0;z-index:30;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:var(--action);background:var(--brand);color:var(--white)}
  .mobile-actions a{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;font-size:16px;font-weight:500}
  .mobile-actions a+a{border-left:var(--hair) solid var(--brand-deep)}
  .mobile-actions svg{width:18px;height:18px;fill:currentColor}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition:none!important;animation:none!important}
  .js .reveal,.js .unfold{opacity:1;transform:none;clip-path:none}
}
