/* ============================================================
   base.css — 全域 Reset、排版、無障礙
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background-color:var(--bg);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:1.0625rem;
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  display:flex; flex-direction:column; min-height:100dvh;   /* 內容少時頁尾仍貼底 */
}
body > main{ flex:1; }
img,svg{ max-width:100%; display:block; }
img[hidden],svg[hidden]{ display:none; }
[hidden]{ display:none !important; }
a{ color:inherit; }
p{ margin:0 0 1.1em; max-width:40em; }
ul,ol{ margin:0; padding:0; }
button{ font:inherit; color:inherit; }
fieldset{ border:0; padding:0; margin:0; min-width:0; }
legend{ padding:0; }

/* ---------- 標題與文字 ---------- */
h1,h2,h3,h4{ font-family:var(--f-head); font-weight:800; letter-spacing:-.02em; line-height:1.25; margin:0; }
h1{ font-size:clamp(1.9rem,5vw,3rem); }
h2{ font-size:clamp(1.5rem,3.6vw,2.25rem); }
h3{ font-size:1.15rem; font-weight:700; }
.eyebrow{
  display:inline-block; font-weight:600; font-size:.82rem; letter-spacing:.02em;
  background:var(--bg-alt); border:1px solid var(--border); border-radius:var(--r-btn);
  padding:.3rem .95rem; margin-bottom:var(--sp-2);
}
.lede{ font-size:1.12rem; line-height:1.75; color:var(--ink-soft); }
.muted{ color:var(--ink-soft); }
.small{ font-size:.88rem; }
.link{ color:var(--accent2); text-decoration:underline; text-underline-offset:3px; }

/* ---------- 無障礙 ---------- */
.visually-hidden{
  position:absolute !important; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;
}
.skip{
  position:absolute; left:-9999px; top:0; z-index:1000;
  background:var(--ink); color:var(--bg); padding:.85rem 1.25rem;
}
.skip:focus{ left:1rem; top:1rem; }
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{
  outline:3px solid var(--accent2); outline-offset:3px; border-radius:4px;
}

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