/* ============================================================
   安述心理网 · 基础样式（重置 / 排版 / 通用工具类）
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg-page); color:var(--text-1);
  font-family:var(--font-sans); font-size:16px; line-height:1.8;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol,dl,dd{ margin:0; }
ul,ol{ padding:0; list-style:none; }
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--primary-600); text-decoration:none; }
a:hover{ color:var(--primary-700); }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select,button{ font:inherit; color:inherit; }
table{ border-collapse:collapse; }
em,i{ font-style:normal; } /* 中文不使用斜体 */
strong,b{ font-weight:600; }

/* 标题阶 */
h1{ font-size:32px; line-height:1.4; font-weight:700; }
h2{ font-size:24px; line-height:1.45; font-weight:600; }
h3{ font-size:19px; line-height:1.5; font-weight:600; }
h4{ font-size:16px; line-height:1.6; font-weight:600; }

/* 焦点环：所有可交互元素不得移除 */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:none; box-shadow:var(--shadow-focus); border-radius:var(--radius-sm);
}

::selection{ background:var(--primary-100); color:var(--primary-800); }

/* 布局容器 */
.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.section{ padding:64px 0; }
.section--muted{ background:var(--bg-muted); }
.section-head{ margin-bottom:32px; }
.section-head .section-title{ position:relative; padding-left:16px; }
.section-title::before{
  content:""; position:absolute; left:0; top:.28em;
  width:4px; height:1em; background:var(--primary-600); border-radius:2px;
}
.section-head p{ color:var(--text-2); margin-top:8px; font-size:15px; }
.section-more{ font-size:14px; }

/* 文字工具 */
.text-2{ color:var(--text-2); } .text-3{ color:var(--text-3); }
.caption{ font-size:12px; color:var(--text-3); line-height:1.6; }

/* 视觉隐藏（无障碍） */
.visually-hidden{
  position:absolute!important; width:1px; height:1px; margin:-1px;
  padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* 跳转正文链接 */
.skip-link{
  position:fixed; top:-48px; left:16px; z-index:3000;
  background:var(--primary-700); color:#fff; padding:10px 16px;
  border-radius:var(--radius-sm); transition:top var(--dur-fast) var(--ease-standard);
}
.skip-link:focus{ top:12px; color:#fff; }

/* 图标 */
.icon{ width:24px; height:24px; flex:none; fill:none; stroke:currentColor;
  stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.icon--sm{ width:16px; height:16px; } .icon--lg{ width:32px; height:32px; }

/* 占位灰条（3.16 文本/数据占位） */
.ph-bar{
  display:inline-block; height:14px; border-radius:4px;
  background:var(--bg-muted); vertical-align:middle;
}
.ph-bar--tall{ height:20px; }
.ph-bar--w60{ width:60%; } .ph-bar--w80{ width:80%; } .ph-bar--w90{ width:90%; }

/* 滚动进入动效（main.js 控制，reduced-motion 降级） */
.reveal{ opacity:0; transform:translateY(8px);
  transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
.reveal.is-visible{ opacity:1; transform:none; }

/* 锚点定位避开固定 Header */
[id]{ scroll-margin-top:calc(var(--header-h) + 24px); }

@media (max-width:767px){
  .container{ padding:0 16px; }
  .section{ padding:48px 0; }
  h1{ font-size:24px; }
  h2{ font-size:20px; }
  h3{ font-size:17px; }
}
@media (min-width:768px) and (max-width:1023px){
  h1{ font-size:28px; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms!important; animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .reveal{ opacity:1; transform:none; }
}
