/* =====================================================
   万号联盟官网 · 包豪斯高饱和扁平化
   Bauhaus Flat / Hard Edge / Zero Radius
   ===================================================== */

:root{
  --ink:#111111;
  --paper:#F2EFE6;
  --paper-2:#E8E4D8;
  --red:#F03A2F;
  --blue:#2B4CE8;
  --yellow:#FFC61A;
  --teal:#00A6A6;
  --orange:#FF6B1A;   /* 橙：页脚栏目标题 */
  --magenta:#B01E8C;  /* 紫红：盟友收益条 / 动态条 */

  --ease:cubic-bezier(.22,1,.36,1);
  --pad:min(1840px,96vw);
  --nav-h:76px;

  --f-base:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-num:"Helvetica Neue",Arial,"Segoe UI",Roboto,sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-base);
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:0; background:none; color:inherit; }
h1,h2,h3,h4,p,ul,ol,figure,blockquote{ margin:0; }
ul,ol{ padding:0; list-style:none; }

::selection{ background:var(--yellow); color:var(--ink); }
:focus-visible{ outline:3px solid var(--yellow); outline-offset:3px; }

/* ===================== 通用容器 / 分区 ===================== */
.wrap{
  width:var(--pad);
  margin:0 auto;
}

.sec{
  position:relative;
  padding:clamp(64px,7.6vw,132px) 0;
}
.sec--dark{ background:var(--ink); color:var(--paper); }
.sec--alt{ background:var(--paper-2); }
.sec--red{ background:var(--red); color:#fff; }

.sec__head{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(24px,4vw,72px);
  align-items:end;
  margin-bottom:clamp(32px,4vw,64px);
}
.sec__head--center{
  grid-template-columns:1fr;
  justify-items:center;
  text-align:center;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--f-num);
  font-size:11px;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:14px;
}
.kicker::before{
  content:"";
  width:26px;
  height:3px;
  background:currentColor;
}
.sec--dark .kicker{ color:var(--yellow); }
.sec--red .kicker{ color:var(--ink); }

.h2{
  font-size:clamp(28px,3.4vw,52px);
  font-weight:900;
  line-height:1.08;
  letter-spacing:-.02em;
}
.h2 em{
  font-style:normal;
  position:relative;
  z-index:0;
}
.h2 em::after{
  content:"";
  position:absolute;
  left:-2px; right:-2px;
  bottom:6%;
  height:24%;
  background:var(--yellow);
  z-index:-1;
}
.sec--dark .h2 em::after{ background:var(--red); }

.lead{
  font-size:clamp(14px,1.05vw,16px);
  line-height:1.9;
  color:rgba(17,17,17,.7);
  max-width:62ch;
}
.sec--dark .lead{ color:rgba(242,239,230,.7); }
.sec--red .lead{ color:rgba(255,255,255,.86); }

.eyebrow{
  font-family:var(--f-num);
  font-size:11px;
  font-weight:800;
  letter-spacing:.24em;
  text-transform:uppercase;
  opacity:.4;
}

/* ===================== 按钮 ===================== */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  height:52px;
  padding:0 26px;
  border:2px solid var(--ink);
  background:var(--ink);
  color:var(--paper);
  font-size:15px;
  font-weight:800;
  letter-spacing:.04em;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease),
             background .2s var(--ease), color .2s var(--ease);
}
.btn:hover{
  transform:translate(-2px,-2px);
  box-shadow:5px 5px 0 var(--red);
}
.btn--ghost{
  background:transparent;
  color:var(--ink);
}
.btn--ghost:hover{
  background:var(--yellow);
  box-shadow:5px 5px 0 var(--ink);
}
.btn--red{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}
.btn--red:hover{
  background:var(--ink);
  border-color:var(--ink);
  box-shadow:5px 5px 0 var(--yellow);
}
.btn--paper{
  background:var(--paper);
  border-color:var(--paper);
  color:var(--ink);
}
.btn--paper:hover{
  background:var(--yellow);
  border-color:var(--yellow);
  box-shadow:5px 5px 0 rgba(17,17,17,.9);
}
.btn--line{
  background:transparent;
  border-color:rgba(255,255,255,.55);
  color:#fff;
}
.btn--line:hover{
  background:#fff;
  border-color:#fff;
  color:var(--ink);
  box-shadow:5px 5px 0 var(--yellow);
}
.btn svg{ flex:none; }

/* ===================== 进度条 / 页头 ===================== */
.progress{
  position:fixed;
  inset:0 0 auto 0;
  height:3px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:0 50%;
  z-index:120;
  pointer-events:none;
}

.nav{
  position:fixed;
  inset:0 0 auto 0;
  z-index:100;
  height:var(--nav-h);
  display:flex;
  align-items:center;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:height .28s var(--ease), background .28s var(--ease),
             border-color .28s var(--ease);
}
.nav.is-solid{
  height:60px;
  background:rgba(17,17,17,.92);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);
  backdrop-filter:blur(14px) saturate(1.15);
  border-bottom-color:rgba(255,255,255,.1);
}
.nav__inner{
  width:var(--pad);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(14px,2vw,40px);
}

.nav__brand{ display:flex; align-items:center; gap:12px; flex:none; }
.nav__logo{
  width:52px; height:52px;
  object-fit:contain;
  transition:width .28s var(--ease), height .28s var(--ease);
}
.nav.is-solid .nav__logo{ width:40px; height:40px; }
.nav__names{ display:flex; align-items:center; gap:10px; }
.nav__name{
  font-size:18px; font-weight:900; line-height:1;
  letter-spacing:.02em; color:#fff; white-space:nowrap;
}
.nav__divider{ width:1px; height:16px; background:rgba(255,255,255,.28); }
.nav__sub{
  font-size:12px; font-weight:600; line-height:1; letter-spacing:.08em;
  color:rgba(255,255,255,.55); white-space:nowrap;
}

.nav__menu{
  display:flex;
  align-items:center;
  gap:clamp(8px,1.3vw,26px);
}
.nav__link{
  position:relative;
  display:block;
  padding:6px 2px;
  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;
  color:rgba(255,255,255,.78);
  white-space:nowrap;
  transition:color .18s var(--ease);
}
.nav__link::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:2px;
  background:var(--yellow);
  transform:scaleX(0);
  transform-origin:0 50%;
  transition:transform .24s var(--ease);
}
.nav__link:hover{ color:#fff; }
.nav__link:hover::after,
.nav__link[aria-current="page"]::after{ transform:scaleX(1); }
.nav__link[aria-current="page"]{ color:#fff; }

.nav__aux{
  padding-left:clamp(8px,1.3vw,26px);
  border-left:1px solid rgba(255,255,255,.18);
}
.nav__aux .nav__link{ font-size:13px; font-weight:600; color:rgba(255,255,255,.6); }

.nav__cta{
  flex:none;
  display:inline-flex;
  align-items:center;
  height:38px;
  padding:0 18px;
  background:var(--red);
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  transition:background .2s var(--ease), color .2s var(--ease);
}
.nav__cta:hover{ background:var(--yellow); color:var(--ink); }

.nav__burger{
  display:none;
  width:44px; height:44px;
  align-items:center;
  justify-content:center;
  border:2px solid rgba(255,255,255,.4);
  color:#fff;
}
.nav__burger span{
  display:block;
  width:18px; height:2px;
  background:currentColor;
  position:relative;
  transition:background .2s var(--ease);
}
.nav__burger span::before,
.nav__burger span::after{
  content:"";
  position:absolute;
  left:0;
  width:18px; height:2px;
  background:currentColor;
  transition:transform .26s var(--ease);
}
.nav__burger span::before{ top:-6px; }
.nav__burger span::after{ top:6px; }
body.is-open .nav__burger span{ background:transparent; }
body.is-open .nav__burger span::before{ transform:translateY(6px) rotate(45deg); }
body.is-open .nav__burger span::after{ transform:translateY(-6px) rotate(-45deg); }

/* 浅色首屏页头（首页）：未滚动时用墨色文字，滚动实心后恢复白字 */
.nav--onlight .nav__name{ color:var(--ink); }
.nav--onlight .nav__sub{ color:rgba(17,17,17,.5); }
.nav--onlight .nav__divider{ background:rgba(17,17,17,.22); }
.nav--onlight .nav__link{ color:rgba(17,17,17,.7); }
.nav--onlight .nav__link:hover{ color:var(--ink); }
.nav--onlight .nav__link[aria-current="page"]{ color:var(--ink); }
.nav--onlight .nav__link::after{ background:var(--red); }
.nav--onlight .nav__aux{ border-left-color:rgba(17,17,17,.16); }
.nav--onlight .nav__aux .nav__link{ color:rgba(17,17,17,.55); }
.nav--onlight .nav__cta{ background:var(--ink); color:var(--paper); }
.nav--onlight .nav__cta:hover{ background:var(--red); color:#fff; }
.nav--onlight .nav__burger{ border-color:rgba(17,17,17,.35); color:var(--ink); }
.nav--onlight.is-solid .nav__name,
.nav--onlight.is-solid .nav__link,
.nav--onlight.is-solid .nav__link:hover,
.nav--onlight.is-solid .nav__link[aria-current="page"]{ color:#fff; }
.nav--onlight.is-solid .nav__sub{ color:rgba(255,255,255,.55); }
.nav--onlight.is-solid .nav__divider{ background:rgba(255,255,255,.28); }
.nav--onlight.is-solid .nav__link{ color:rgba(255,255,255,.78); }
.nav--onlight.is-solid .nav__link::after{ background:var(--yellow); }
.nav--onlight.is-solid .nav__aux{ border-left-color:rgba(255,255,255,.18); }
.nav--onlight.is-solid .nav__aux .nav__link{ color:rgba(255,255,255,.6); }
.nav--onlight.is-solid .nav__cta{ background:var(--red); color:#fff; }
.nav--onlight.is-solid .nav__burger{ border-color:rgba(255,255,255,.4); color:#fff; }

/* ===================== 抽屉 ===================== */
.drawer{
  position:fixed;
  inset:0;
  z-index:99;
  visibility:hidden;
  pointer-events:none;
}
.drawer__mask{
  position:absolute;
  inset:0;
  background:rgba(17,17,17,.62);
  opacity:0;
  transition:opacity .3s var(--ease);
}
.drawer__panel{
  position:absolute;
  inset:0 0 0 auto;
  width:min(420px,86vw);
  background:var(--ink);
  color:var(--paper);
  padding:calc(var(--nav-h) + 24px) 28px 40px;
  transform:translateX(100%);
  transition:transform .36s var(--ease);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:4px;
}
body.is-open .drawer{ visibility:visible; pointer-events:auto; }
body.is-open .drawer__mask{ opacity:1; }
body.is-open .drawer__panel{ transform:none; }

.drawer__link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:58px;
  padding:0 4px;
  border-bottom:1px solid rgba(255,255,255,.1);
  font-size:19px;
  font-weight:800;
  letter-spacing:.02em;
}
.drawer__link i{
  font-family:var(--f-num);
  font-style:normal;
  font-size:11px;
  letter-spacing:.2em;
  opacity:.34;
}
.drawer__link[aria-current="page"]{ color:var(--yellow); }
.drawer__aux{
  margin-top:1px;
  border-bottom:0;
  font-size:15px;
  font-weight:600;
  color:rgba(242,239,230,.6);
}
.drawer__foot{
  margin-top:auto;
  padding-top:28px;
  display:grid;
  gap:8px;
  font-size:12px;
  line-height:1.9;
  color:rgba(242,239,230,.5);
}

/* ===================== 首页 Hero ===================== */
.hero{
  position:relative;
  min-height:min(94vh,880px);
  display:flex;
  align-items:center;
  padding:calc(var(--nav-h) + clamp(48px,7vw,96px)) 0 clamp(48px,5vw,72px);
  overflow:hidden;
  background:var(--paper);
}
.hero__geo{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.hero__geo i{ position:absolute; display:block; }
.g-tri{
  top:0; right:0;
  width:clamp(160px,26vw,420px);
  height:clamp(160px,26vw,420px);
  background:var(--red);
  clip-path:polygon(100% 0,100% 100%,0 0);
}
.g-circle{
  left:-14vw; bottom:-15vw;
  width:clamp(200px,26vw,380px);
  height:clamp(200px,26vw,380px);
  border-radius:50%;
  background:var(--blue);
  opacity:.92;
}
.g-line{
  right:8%; top:34%;
  width:clamp(120px,16vw,260px);
  height:3px;
  background:var(--ink);
  opacity:.14;
}
.g-line--2{ right:8%; top:38%; width:clamp(70px,9vw,150px); }

.hero__inner{
  position:relative;
  z-index:2;
  width:var(--pad);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(28px,5vw,80px);
  align-items:center;
}

.hero__tag{
  display:inline-flex;
  align-items:center;
  gap:0;
  border:2px solid var(--ink);
  background:var(--paper);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  margin-bottom:clamp(18px,2vw,28px);
}
.hero__tag span{ padding:7px 12px; }
.hero__tag span + span{ border-left:2px solid var(--ink); }
.hero__tag span:first-child{ background:var(--ink); color:var(--paper); }

.hero__title{
  font-size:clamp(46px,8.4vw,128px);
  font-weight:900;
  line-height:.96;
  letter-spacing:-.03em;
  margin-bottom:clamp(16px,2vw,26px);
}
.hero__title em{
  font-style:normal;
  color:var(--red);
}
.hero__slogan{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0 14px;
  font-size:clamp(14px,1.3vw,19px);
  font-weight:800;
  letter-spacing:.04em;
  margin-bottom:14px;
}
.hero__slogan i{ color:var(--red); font-style:normal; }
.hero__desc{
  font-size:clamp(13px,1vw,15px);
  line-height:1.9;
  color:rgba(17,17,17,.66);
  max-width:46ch;
  margin-bottom:clamp(24px,3vw,38px);
}
.hero__acts{ display:flex; flex-wrap:wrap; gap:14px; }

.hero__side{
  position:relative;
  justify-self:end;
  width:min(100%,460px);
  padding-right:40px;
}
.hero__card{
  position:relative;
  border:3px solid var(--ink);
  background:var(--paper-2);
  padding:clamp(22px,2.4vw,34px);
  /* 单边框：去掉上一版叠加的第二层 outline，边框本身交给 .hero__frame 走马灯 */
  box-shadow:none;
}
.hero__logo{
  display:block;
  width:min(62%,220px);
  height:auto;          /* 关键：不写死高度，避免 HTML height 属性把比例锁成 260px */
  aspect-ratio:1/1;
  object-fit:contain;
  margin:0 auto clamp(14px,1.6vw,22px);
}

/* 第一屏中缝的过渡图：hero_brush.webp 已把笔刷毛边烤进 alpha 通道，
   边缘是参差的毛纤维 + 飞白缺口，不是几何形状、也不是羽化椭圆。
   锚点 = 版面中线 + 少量右移（左栏是文字、右栏是卡片，视觉中缝略偏右），
   宽度随视口收缩，保证左侧不压正文、右侧钻进卡片背后（卡片不透明，看不见） */
.hero__media{
  position:absolute;
  /* 水平居中于「文字结束 → 卡片开始」这段空白（实测该段中点≈视口中线 +20px），
     竖直居中于首屏内容框 */
  left:calc(50% + 20px);
  top:50%;
  width:clamp(240px,32vw,600px);
  aspect-ratio:16/10;
  transform:translate(-50%,-50%) rotate(-1.8deg);   /* 微微倾斜，读起来像手刷上去的，不像裁好的矩形 */
  background:url(../img/ph/hero_brush.webp) center/100% 100% no-repeat;
  opacity:.95;
  pointer-events:none;
  z-index:-1;
}
/* 1600 以下中缝变窄（标题占得更多），按比例收小，避免压到标题/正文 */
@media (max-width:1599px){
  .hero__media{ left:calc(50% + 10px); width:clamp(200px,23vw,440px); }
}
@media (prefers-reduced-motion:no-preference){
  .hero__media{ animation:heroDrift 14s ease-in-out infinite alternate; }
  @keyframes heroDrift{
    from{ transform:translate(-50%,-50%) rotate(-1.8deg) scale(1); opacity:.9; }
    to  { transform:translate(-50%,-50%) rotate(-1.8deg) scale(1.035); opacity:.98; }
  }
}

/* 右侧卡片的边框走马灯：四条 3px 彩条正好压在 border 上（inset:-3px 抵消边框宽度），
   五色硬色标循环，一个循环 150px、位移 -150px 正好无缝接回；
   上下与左右反向跑，转角不连成一根，读起来是「边框在走」而不是整块在平移 */
.hero__frame{
  position:absolute;
  inset:-3px;
  pointer-events:none;
  z-index:4;
}
.hero__frame i{
  position:absolute;
  background-repeat:repeat;
  background-size:150px 100%;
  background-image:repeating-linear-gradient(90deg,
    var(--red) 0 30px, var(--blue) 30px 60px, var(--yellow) 60px 90px,
    var(--teal) 90px 120px, var(--magenta) 120px 150px);
  animation:frameRunX 6.4s linear infinite;
}
.hero__frame i:nth-child(1){ left:0; right:0; top:0; height:3px; }
.hero__frame i:nth-child(2){ left:0; right:0; bottom:0; height:3px; animation-direction:reverse; }
.hero__frame i:nth-child(3),
.hero__frame i:nth-child(4){
  top:0; bottom:0; width:3px;
  background-size:100% 150px;
  background-image:repeating-linear-gradient(180deg,
    var(--red) 0 30px, var(--blue) 30px 60px, var(--yellow) 60px 90px,
    var(--teal) 90px 120px, var(--magenta) 120px 150px);
  animation-name:frameRunY;
  animation-duration:7.2s;
}
.hero__frame i:nth-child(3){ left:0; }
.hero__frame i:nth-child(4){ right:0; animation-direction:reverse; }
@keyframes frameRunX{ from{ background-position-x:0; } to{ background-position-x:-150px; } }
@keyframes frameRunY{ from{ background-position-y:0; } to{ background-position-y:-150px; } }
@media (prefers-reduced-motion:reduce){
  .hero__frame i{ animation:none; }
}
.hero__quad{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:2px solid var(--ink);
  border-left:2px solid var(--ink);
}
.hero__quad div{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 10px;
  border-right:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  background:var(--paper);
}
.hero__quad b{
  width:8px; height:8px; flex:none;
}
.q-red b{ background:var(--red); }
.q-blue b{ background:var(--blue); }
.q-teal b{ background:var(--teal); }
.q-ink b{ background:var(--ink); }

.hero__vert{
  position:absolute;
  left:13px;
  top:50%;
  transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--ink);
  opacity:.32;
  pointer-events:none;
}

.hero__scroll{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:8px;
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.24em;
  opacity:.4;
  z-index:2;
}
.hero__scroll i{
  display:block;
  width:1px; height:26px;
  background:currentColor;
  animation:drop 1.8s var(--ease) infinite;
}
@keyframes drop{
  0%{ transform:scaleY(0); transform-origin:0 0; }
  50%{ transform:scaleY(1); transform-origin:0 0; }
  51%{ transform:scaleY(1); transform-origin:0 100%; }
  100%{ transform:scaleY(0); transform-origin:0 100%; }
}

/* ===================== 页首 Banner（内页） ===================== */
.phero{
  position:relative;
  padding:calc(var(--nav-h) + clamp(56px,7vw,104px)) 0 clamp(44px,5vw,72px);
  background:var(--ink) url("../img/ph/hero.webp") center 42%/cover no-repeat;
  color:var(--paper);
  overflow:hidden;
  isolation:isolate;
}
.phero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(104deg,rgba(17,17,17,.96) 0%,rgba(17,17,17,.9) 42%,rgba(17,17,17,.62) 100%),
    radial-gradient(120% 100% at 82% 30%,rgba(240,58,47,.26),transparent 62%);
}
.phero--about{ background-position:22% 55%; }
.phero--biz{ background-position:52% 32%; }
.phero--eco{ background-position:72% 48%; }
.phero--works{ background-position:38% 62%; }
.phero--join{ background-position:64% 58%; }
.phero--insight{ background-position:12% 45%; }
.phero--news{ background-position:84% 40%; }
.phero__geo{ position:absolute; inset:0; pointer-events:none; z-index:1; }
.phero__geo i{ position:absolute; display:block; }
.phero .g-tri{ background:var(--red); opacity:.9; }
.phero__circ{
  left:auto; right:12%;
  bottom:-120px;
  width:clamp(180px,22vw,340px);
  height:clamp(180px,22vw,340px);
  border-radius:50%;
  border:3px solid rgba(255,255,255,.14);
  background:transparent;
  opacity:1;
}
.phero__inner{
  position:relative;
  z-index:3;
  width:var(--pad);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,7fr) minmax(0,4fr);
  gap:clamp(20px,4vw,64px);
  align-items:end;
}
.phero__crumb{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  letter-spacing:.04em;
  color:rgba(242,239,230,.5);
  margin-bottom:18px;
}
.phero__crumb a{ color:rgba(242,239,230,.7); }
.phero__crumb a:hover{ color:var(--yellow); }
.phero__crumb b{ color:var(--paper); font-weight:700; }
.phero__crumb i{ opacity:.4; font-style:normal; }

.phero__title{
  font-size:clamp(32px,5.2vw,76px);
  font-weight:900;
  line-height:1.02;
  letter-spacing:-.03em;
}
.phero__title em{ font-style:normal; color:var(--red); }
.phero__en{
  font-family:var(--f-num);
  font-size:11px;
  font-weight:800;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--yellow);
  margin-bottom:14px;
  display:block;
}
.phero__desc{
  font-size:clamp(13px,1.05vw,15px);
  line-height:1.9;
  color:rgba(242,239,230,.72);
  padding-left:20px;
  border-left:3px solid var(--red);
}

/* ===================== KPI 条 ===================== */
.kpibar{
  background:var(--ink);
  color:var(--paper);
  border-top:3px solid var(--ink);
}
.kpibar__inner{
  width:var(--pad);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.kpi{
  position:relative;
  padding:clamp(24px,3vw,46px) clamp(14px,1.8vw,30px);
  border-left:1px solid rgba(255,255,255,.12);
}
.kpi:first-child{ border-left:0; padding-left:0; }
.kpi__num{
  display:flex;
  align-items:baseline;
  gap:6px;
  font-family:var(--f-num);
  font-size:clamp(34px,4.2vw,68px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.kpi__num i{
  font-style:normal;
  font-size:.42em;
  font-weight:800;
  color:var(--red);
  letter-spacing:0;
}
.kpi__label{
  margin-top:10px;
  font-size:12px;
  letter-spacing:.06em;
  color:rgba(242,239,230,.55);
}

/* ===================== 定位（壹平台 联多方 共生态） ===================== */
/* 这一屏单独收窄上边距：配合左列四图贴底，1920×960 / 1440×900 下
   标题 + 四图 + 右栏 5 条文字能整块落在一屏内，不用再往下滚 */
#position{ padding-top:clamp(48px,5vw,88px); }

.pos{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(28px,4.5vw,80px);
  /* stretch 而不是 start：左列撑满行高，四图才有"底"可贴。
     原先 start + sticky 的组合下，左列高度只等于自身内容，
     四图比右侧文字多出 62px，底边永远对不齐。 */
  align-items:stretch;
}
.pos__big{
  display:flex;
  flex-direction:column;
}
.pos__big h2{
  font-size:clamp(30px,3.9vw,58px);
  font-weight:900;
  line-height:1.06;
  letter-spacing:-.02em;
}
.pos__big h2 span{ display:block; }
.pos__big h2 span:nth-child(2){ color:var(--red); }
.pos__mosaic{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  /* auto 把四图推到底：左列底边恒等于右列文字底边，与两侧各自高度无关。
     上间距由 h2 的 margin-bottom 兜底（≈26px），不会再贴死标题。 */
  margin-top:auto;
  border:3px solid var(--ink);
  width:min(100%,424px);
  box-shadow:8px 8px 0 rgba(17,17,17,.12);
}
.pos__mosaic img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:cover;
  border-right:3px solid var(--ink);
  border-bottom:3px solid var(--ink);
}
.pos__mosaic img:nth-child(2n){ border-right:0; }
.pos__mosaic img:nth-child(n+3){ border-bottom:0; }

.deflist{ border-top:2px solid var(--ink); }
.def{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(14px,2vw,30px);
  padding:clamp(18px,2.2vw,28px) 0;
  border-bottom:1px solid rgba(17,17,17,.16);
}
.def__no{
  font-family:var(--f-num);
  font-size:13px;
  font-weight:800;
  letter-spacing:.14em;
  padding-top:5px;
  min-width:34px;
  color:var(--red);
}
.def__body h3{
  font-size:clamp(16px,1.35vw,20px);
  font-weight:900;
  letter-spacing:.01em;
  margin-bottom:6px;
}
.def__body p{
  font-size:14px;
  line-height:1.85;
  color:rgba(17,17,17,.68);
}

/* ===================== 四级架构角色卡 ===================== */
.roles{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(12px,1.4vw,20px);
}
.role{
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--paper);
  border:2px solid var(--ink);
  padding:clamp(18px,2vw,28px);
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.role:hover{
  transform:translate(-3px,-3px);
  box-shadow:7px 7px 0 var(--ink);
}
.role__bar{
  height:8px;
  margin:calc(clamp(18px,2vw,28px) * -1) calc(clamp(18px,2vw,28px) * -1) clamp(16px,1.8vw,22px);
}
.role:nth-child(1) .role__bar{ background:var(--red); }
.role:nth-child(2) .role__bar{ background:var(--blue); }
.role:nth-child(3) .role__bar{ background:var(--teal); }
.role:nth-child(4) .role__bar{ background:var(--ink); }
.role__en{
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.24em;
  opacity:.34;
  margin-bottom:8px;
}
.role__name{
  font-size:clamp(20px,1.9vw,28px);
  font-weight:900;
  line-height:1.1;
  letter-spacing:-.01em;
}
.role__tag{
  display:inline-block;
  margin:10px 0 16px;
  padding:5px 12px;
  background:var(--yellow);
  border:2px solid var(--ink);
  font-size:clamp(12px,1vw,14px);
  font-weight:900;
  letter-spacing:.08em;
  line-height:1.3;
}
.role__desc{
  font-size:13px;
  line-height:1.8;
  color:rgba(17,17,17,.68);
  margin-bottom:16px;
}
.role__list{ margin-top:auto; display:grid; gap:7px; }
.role__list li{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:12.5px;
  line-height:1.6;
  color:rgba(17,17,17,.78);
}
.role__list li::before{
  content:"";
  flex:none;
  width:6px; height:6px;
  margin-top:7px;
  background:var(--red);
}

/* 深色区角色卡 */
.sec--dark .role{
  background:transparent;
  border-color:rgba(242,239,230,.3);
  color:var(--paper);
}
.sec--dark .role:hover{ box-shadow:7px 7px 0 var(--red); }
.sec--dark .role__desc,
.sec--dark .role__list li{ color:rgba(242,239,230,.68); }
.sec--dark .role__tag{ background:var(--red); color:#fff; border-color:var(--red); }
.sec--dark .role__list li::before{ background:var(--yellow); }

/* ===================== 业务大卡 ===================== */
.svcs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(12px,1.4vw,20px);
}
.svc{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:start;
  gap:clamp(14px,1.8vw,26px);
  padding:clamp(20px,2.4vw,36px);
  background:var(--paper);
  border:2px solid var(--ink);
  overflow:hidden;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease);
}
.svc::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--yellow);
  clip-path:polygon(0 100%,100% 100%,0 100%);
  transition:clip-path .38s var(--ease);
  z-index:0;
}
.svc:hover::after{ clip-path:polygon(0 0,100% 100%,0 100%); }
.svc:hover{ transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--ink); }
.svc > *{ position:relative; z-index:1; }
.svc__no{
  font-family:var(--f-num);
  font-size:clamp(26px,2.8vw,44px);
  font-weight:900;
  line-height:1;
  color:var(--red);
  letter-spacing:-.02em;
}
.svc__name{
  font-size:clamp(18px,1.8vw,26px);
  font-weight:900;
  letter-spacing:-.01em;
  margin-bottom:8px;
}
.svc__desc{
  font-size:13.5px;
  line-height:1.8;
  color:rgba(17,17,17,.7);
}
.svc__arrow{
  align-self:center;
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px; height:38px;
  border:2px solid var(--ink);
  background:var(--paper);
  transition:background .2s var(--ease), transform .2s var(--ease);
}
.svc:hover .svc__arrow{ background:var(--ink); color:var(--paper); transform:rotate(-45deg); }

/* ===================== 八步流程 ===================== */
.flow{
  display:grid;
  grid-template-columns:repeat(8,1fr);
  border:2px solid currentColor;
}
.flow__step{
  position:relative;
  padding:clamp(14px,1.6vw,24px) clamp(10px,1vw,16px);
  border-left:1px solid rgba(17,17,17,.18);
  transition:background .2s var(--ease), color .2s var(--ease);
}
.flow__step:first-child{ border-left:0; }
.flow__step:hover{ background:var(--red); color:#fff; }
.flow__no{
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  opacity:.42;
}
.flow__step:hover .flow__no{ opacity:.8; }
.flow__name{
  margin-top:8px;
  font-size:clamp(13px,1.1vw,15px);
  font-weight:800;
  line-height:1.4;
}
.sec--dark .flow{ border-color:rgba(242,239,230,.3); }
.sec--dark .flow__step{ border-left-color:rgba(242,239,230,.16); }
.sec--dark .flow__step:hover{ background:var(--yellow); color:var(--ink); }

/* ===================== 三方价值 ===================== */
.values{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,2vw,34px);
}
.val{
  border-top:3px solid var(--ink);
  padding-top:clamp(16px,1.8vw,24px);
}
.val:nth-child(1){ border-color:var(--red); }
.val:nth-child(2){ border-color:var(--blue); }
.val:nth-child(3){ border-color:var(--teal); }
.val__name{
  font-size:clamp(17px,1.5vw,22px);
  font-weight:900;
  margin-bottom:6px;
}
.val__sub{
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.36;
  margin-bottom:18px;
}
.val ul{ display:grid; gap:10px; }
.val li{
  display:flex;
  gap:10px;
  font-size:13.5px;
  line-height:1.7;
  color:rgba(17,17,17,.76);
}
.val li::before{
  content:"";
  flex:none;
  width:7px; height:7px;
  margin-top:8px;
  background:var(--ink);
}
.sec--dark .val{ border-color:rgba(242,239,230,.5); }
.sec--dark .val li{ color:rgba(242,239,230,.74); }
.sec--dark .val li::before{ background:var(--yellow); }

/* ===================== 作品网格 ===================== */
.grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:clamp(10px,1.2vw,18px);
}
.card{
  position:relative;
  display:block;
  border:2px solid var(--ink);
  background:var(--paper);
  overflow:hidden;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.card:hover{ transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--red); }
.card__pic{
  position:relative;
  aspect-ratio:9/16;
  overflow:hidden;
  background:var(--paper-2);
}
.card__pic img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s var(--ease);
}
.card:hover .card__pic img{ transform:scale(1.045); }
.card__body{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:10px 12px;
  border-top:2px solid var(--ink);
  background:var(--paper);
}
.card__name{
  font-size:13px;
  font-weight:800;
  line-height:1.3;
}
.card__name i{
  display:block;
  font-style:normal;
  font-size:11px;
  font-weight:400;
  color:rgba(17,17,17,.55);
  margin-top:2px;
}
.card__no{
  font-family:var(--f-num);
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  color:var(--red);
}
.sec--dark .card{ border-color:rgba(242,239,230,.28); }
.sec--dark .card__body{ background:var(--ink); border-top-color:rgba(242,239,230,.28); }
.sec--dark .card__name{ color:var(--paper); }
.sec--dark .card__name i{ color:rgba(242,239,230,.5); }

/* 斜切作品条 */
.fan{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(10px,1.6vw,24px);
}
.fan__item{
  position:relative;
  display:block;
  aspect-ratio:3/4;
  border:2px solid var(--paper);
  background-color:var(--paper-2);
  background-size:cover;
  background-position:50% 20%;
  background-repeat:no-repeat;
  overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .3s var(--ease);
}
.fan__item--1{ background-image:url("../img/poster/p03_guruochen.webp"); }
.fan__item--2{ background-image:url("../img/poster/p01_qiecuozhuoma.webp"); }
.fan__item--3{ background-image:url("../img/poster/p06_lijing.webp"); }
.fan__item:nth-child(2){ margin-top:clamp(-14px,-1.4vw,-8px); }
.fan__item:hover{
  transform:translate(-3px,-3px);
  box-shadow:7px 7px 0 var(--red);
  z-index:2;
}
.fan__cap{
  position:absolute;
  left:0; bottom:0;
  padding:8px 12px;
  background:var(--red);
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
}

/* ===================== 洞察卡 ===================== */
.notes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,1.6vw,24px);
}
.note{
  display:flex;
  flex-direction:column;
  background:var(--paper);
  color:var(--ink);
  border:2px solid var(--ink);
  padding:clamp(18px,2vw,28px);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.note:hover{ transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--ink); }
.note__tag{
  align-self:flex-start;
  padding:2px 8px;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  margin-bottom:14px;
}
.note__num{
  color:var(--ink);
  font-family:var(--f-num);
  font-size:clamp(24px,2.6vw,40px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.02em;
  margin-bottom:10px;
}
.note__num i{ font-style:normal; font-size:.4em; color:var(--red); margin-left:4px; }
.note__title{ font-size:15px; font-weight:800; margin-bottom:8px; }
.note__text{ font-size:13px; line-height:1.8; color:rgba(17,17,17,.66); }

/* ===================== 通用卡片 / 两列文本 ===================== */
.cols2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px,3.4vw,64px);
}
.block{
  border:2px solid var(--ink);
  background:var(--paper);
  padding:clamp(20px,2.4vw,36px);
}
.block--dark{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.block--red{ background:var(--red); color:#fff; border-color:var(--red); }
.block h3{
  font-size:clamp(17px,1.5vw,22px);
  font-weight:900;
  margin-bottom:12px;
}
.block p{ font-size:14px; line-height:1.85; color:rgba(17,17,17,.7); }
.block--dark p{ color:rgba(242,239,230,.72); }

/* ===================== 时间轴（里程碑） ===================== */
.time{
  position:relative;
  display:grid;
  gap:0;
}
.time::before{
  content:"";
  position:absolute;
  left:0; right:0; top:38px;
  height:3px;
  background:var(--ink);
  opacity:.9;
}
.time__row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,2.4vw,44px);
}
.mile{
  position:relative;
  padding-top:0;
}
.mile__dot{
  position:relative;
  display:block;
  width:16px; height:16px;
  background:var(--red);
  border:3px solid var(--paper);
  outline:3px solid var(--ink);
  margin:31px 0 0;
  z-index:1;
}
.mile:nth-child(2) .mile__dot{ background:var(--blue); }
.mile:nth-child(3) .mile__dot{ background:var(--teal); }
.mile__phase{
  margin-top:26px;
  font-family:var(--f-num);
  font-size:11px;
  font-weight:800;
  letter-spacing:.2em;
  opacity:.4;
}
.mile__name{
  font-size:clamp(20px,1.9vw,28px);
  font-weight:900;
  line-height:1.15;
  margin:6px 0 10px;
}
.mile__meta{
  display:inline-flex;
  align-items:stretch;
  gap:0;
  border:2px solid var(--ink);
  margin-bottom:14px;
  font-size:clamp(12px,1vw,14px);
  font-weight:900;
  line-height:1.35;
}
.mile__meta span{ padding:5px 12px; }
.mile__meta span + span{ border-left:2px solid var(--ink); }
.mile__meta span:first-child{ background:var(--ink); color:var(--paper); }
.mile ul{ display:grid; gap:9px; }
.mile li{
  display:flex;
  gap:9px;
  font-size:13px;
  line-height:1.7;
  color:rgba(17,17,17,.72);
}
.mile li::before{
  content:"";
  flex:none;
  width:6px; height:6px;
  margin-top:7px;
  background:var(--red);
}

/* ===================== 三支柱 ===================== */
.pillars{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,1.6vw,24px);
}
.pillar{
  position:relative;
  border:2px solid var(--ink);
  background:var(--paper);
  padding:clamp(20px,2.2vw,32px);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.pillar:hover{ transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--ink); }
.pillar__icon{
  width:44px; height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--ink);
  margin-bottom:18px;
}
.pillar:nth-child(1) .pillar__icon{ background:var(--red); color:#fff; }
.pillar:nth-child(2) .pillar__icon{ background:var(--blue); color:#fff; }
.pillar:nth-child(3) .pillar__icon{ background:var(--yellow); color:var(--ink); }
.pillar__name{
  font-size:clamp(17px,1.5vw,22px);
  font-weight:900;
  margin-bottom:4px;
}
.pillar__en{
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.34;
  margin-bottom:16px;
}
.pillar ul{ display:grid; gap:9px; }
.pillar li{
  display:flex;
  gap:9px;
  font-size:13px;
  line-height:1.65;
  color:rgba(17,17,17,.76);
}
.pillar li::before{
  content:"";
  flex:none;
  width:6px; height:6px;
  margin-top:7px;
  background:var(--ink);
}

/* ===================== 风险卡 ===================== */
.risks{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(12px,1.6vw,22px);
}
.risk{
  border:2px solid var(--ink);
  background:var(--paper);
  padding:clamp(18px,2vw,30px);
}
.risk__head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}
.risk__no{
  font-family:var(--f-num);
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
  padding:3px 8px;
  background:var(--red);
  color:#fff;
}
.risk__name{ font-size:clamp(16px,1.4vw,20px); font-weight:900; }
.risk__row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  padding:8px 0;
  border-top:1px solid rgba(17,17,17,.14);
  font-size:13px;
  line-height:1.7;
}
.risk__row b{ font-weight:800; color:var(--red); font-size:12px; letter-spacing:.04em; }
.risk ul{ margin-top:10px; display:grid; gap:7px; }
.risk li{
  display:flex;
  gap:9px;
  font-size:12.5px;
  line-height:1.7;
  color:rgba(17,17,17,.7);
}
.risk li::before{
  content:"";
  flex:none;
  width:5px; height:5px;
  margin-top:8px;
  background:var(--ink);
}

/* ===================== 收益分配 ===================== */
.rev{
  display:grid;
  grid-template-columns:minmax(0,4fr) minmax(0,8fr);
  gap:clamp(22px,3.4vw,60px);
  align-items:start;
}
.rev__donut{
  position:relative;
  width:100%;
  max-width:300px;
  margin:0 auto;
}
.rev__donut svg{ width:100%; height:auto; display:block; }
.rev__center{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  pointer-events:none;
}
.rev__center b{
  font-family:var(--f-num);
  font-size:clamp(24px,2.4vw,34px);
  font-weight:900;
  line-height:1;
}
.rev__center span{
  font-size:11px;
  letter-spacing:.1em;
  opacity:.5;
  margin-top:6px;
}
.legend{ margin-top:22px; display:grid; gap:10px; }
.legend li{
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  font-size:13px;
}
.legend i{ width:10px; height:10px; display:block; }
.legend em{
  font-style:normal;
  font-family:var(--f-num);
  font-weight:900;
  font-size:15px;
}
.legend .is-tbd{ color:rgba(17,17,17,.5); }

.rev__bars{ display:grid; gap:clamp(14px,1.8vw,22px); }
.rbar{
  border:2px solid var(--ink);
  background:var(--paper);
  padding:clamp(14px,1.6vw,22px);
}
.rbar__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.rbar__name{ font-size:15px; font-weight:900; }
.rbar__name i{
  font-style:normal;
  font-family:var(--f-num);
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  opacity:.34;
  margin-left:8px;
}
.rbar__total{
  font-family:var(--f-num);
  font-size:13px;
  font-weight:900;
  color:var(--red);
}
.rbar__items{ display:grid; gap:8px; }
.rbar__item{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(60px,2fr) 46px;
  align-items:center;
  gap:10px;
  font-size:12.5px;
}
.rbar__label{ color:rgba(17,17,17,.74); line-height:1.4; }
.rbar__track{
  height:10px;
  background:var(--paper-2);
  border:1px solid rgba(17,17,17,.2);
  overflow:hidden;
}
.rbar__fill{ height:100%; display:block; }
.rbar__val{
  font-family:var(--f-num);
  font-size:12px;
  font-weight:900;
  min-width:0;
  text-align:right;
  white-space:nowrap;
}
.rbar--red .rbar__fill{ background:var(--red); }
.rbar--blue .rbar__fill{ background:var(--blue); }
.rbar--teal .rbar__fill{ background:var(--teal); }
.rbar--ink .rbar__fill{ background:var(--ink); }
.rbar--magenta .rbar__fill{ background:var(--magenta); }

/* ===================== 结算保障（四格） ===================== */
.guards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(10px,1.2vw,18px);
}
.guard{
  border-top:3px solid var(--red);
  padding-top:16px;
}
.guard:nth-child(2){ border-color:var(--blue); }
.guard:nth-child(3){ border-color:var(--teal); }
.guard:nth-child(4){ border-color:var(--yellow); }
.guard__name{ font-size:15px; font-weight:900; margin-bottom:8px; }
.guard p{ font-size:12.5px; line-height:1.75; color:rgba(242,239,230,.66); }
.sec--dark .guard p{ color:rgba(242,239,230,.66); }

/* ===================== 占位卡 ===================== */
.ph{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:220px;
  border:2px dashed rgba(17,17,17,.35);
  background:
    repeating-linear-gradient(45deg,rgba(17,17,17,.045) 0 8px,transparent 8px 16px);
  color:rgba(17,17,17,.45);
  font-size:13px;
  text-align:center;
  padding:20px;
}
.ph b{
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  padding:3px 9px;
  border:1px solid currentColor;
}

/* ===================== FAQ ===================== */
.faq{ border-top:2px solid var(--ink); }
.faq__item{ border-bottom:1px solid rgba(17,17,17,.16); }
.faq__q{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
  padding:clamp(16px,1.8vw,22px) 0;
  text-align:left;
  font-size:clamp(14px,1.2vw,17px);
  font-weight:800;
  line-height:1.5;
  transition:color .18s var(--ease);
}
.faq__q:hover{ color:var(--red); }
.faq__q i{
  flex:none;
  position:relative;
  width:16px; height:16px;
}
.faq__q i::before,
.faq__q i::after{
  content:"";
  position:absolute;
  background:currentColor;
  transition:transform .26s var(--ease), opacity .26s var(--ease);
}
.faq__q i::before{ left:0; top:7px; width:16px; height:2px; }
.faq__q i::after{ left:7px; top:0; width:2px; height:16px; }
.faq__item.is-open .faq__q{ color:var(--red); }
.faq__item.is-open .faq__q i::after{ transform:rotate(90deg); opacity:0; }
.faq__a{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .32s var(--ease);
}
.faq__item.is-open .faq__a{ grid-template-rows:1fr; }
.faq__a > div{ overflow:hidden; }
.faq__a p{
  padding:0 0 clamp(16px,1.8vw,22px);
  font-size:13.5px;
  line-height:1.9;
  color:rgba(17,17,17,.7);
  max-width:70ch;
}

/* ===================== 二维码 / CTA ===================== */
.apply{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(20px,3vw,48px);
  align-items:center;
  border:3px solid var(--ink);
  background:var(--paper);
  padding:clamp(20px,2.6vw,40px);
}
.apply__qr{
  width:clamp(120px,13vw,180px);
  border:2px solid var(--ink);
  background:#fff;
  padding:8px;
}
.apply__qr img{ width:100%; height:auto; }
.apply h3{
  font-size:clamp(19px,1.9vw,28px);
  font-weight:900;
  margin-bottom:10px;
}
.apply p{
  font-size:13.5px;
  line-height:1.9;
  color:rgba(17,17,17,.68);
}
.apply__contact{
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  margin-top:14px;
  font-size:13px;
  font-weight:700;
}
.apply__contact a{ border-bottom:2px solid var(--red); }

.cta{
  position:relative;
  background:var(--red);
  color:#fff;
  padding:clamp(52px,6vw,96px) 0;
  overflow:hidden;
}
.cta__geo{ position:absolute; inset:0; pointer-events:none; }
.cta__geo i{ position:absolute; display:block; }
.cta__geo i:nth-child(1){
  right:-60px; top:-60px;
  width:clamp(160px,20vw,300px); height:clamp(160px,20vw,300px);
  border-radius:50%;
  border:3px solid rgba(255,255,255,.28);
}
.cta__geo i:nth-child(2){
  left:-40px; bottom:-90px;
  width:clamp(160px,22vw,320px); height:clamp(160px,22vw,320px);
  background:rgba(17,17,17,.16);
  clip-path:polygon(0 0,100% 100%,0 100%);
}
.cta__inner{
  position:relative;
  z-index:2;
  width:var(--pad);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(20px,4vw,60px);
  align-items:center;
}
.cta__title{
  font-size:clamp(26px,3.6vw,52px);
  font-weight:900;
  line-height:1.1;
  letter-spacing:-.02em;
  margin-bottom:12px;
}
.cta__sub{ font-size:clamp(14px,1.2vw,17px); opacity:.92; }

/* ===================== 页脚 ===================== */
.foot{
  background:var(--ink);
  color:rgba(242,239,230,.72);
  padding:clamp(40px,5vw,72px) 0 0;
}
.foot__inner{
  width:var(--pad);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,2.2fr);
  gap:clamp(24px,4vw,64px);
  padding-bottom:clamp(28px,3.6vw,48px);
}
.foot__brand{ display:flex; align-items:flex-start; gap:14px; }
.foot__logo{ width:52px; height:52px; object-fit:contain; flex:none; }
.foot__name{
  font-size:20px;
  font-weight:900;
  color:var(--paper);
  line-height:1.1;
  letter-spacing:.02em;
}
.foot__slogan{
  margin-top:6px;
  font-size:12px;
  line-height:1.7;
  color:rgba(242,239,230,.5);
}
.foot__nav{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(12px,1.6vw,30px);
}
.foot__col h4{
  font-size:clamp(16px,1.3vw,19px);
  font-weight:900;
  letter-spacing:.1em;
  color:var(--orange);
  margin-bottom:14px;
}
.foot__col a{
  display:block;
  padding:5px 0;
  font-size:15px;
  color:rgba(242,239,230,.7);
  transition:color .16s var(--ease);
}
.foot__col a:hover{ color:#fff; }
.foot__legal{
  border-top:1px solid rgba(255,255,255,.1);
  padding:18px 0;
  width:var(--pad);
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 24px;
  font-size:12px;
  color:rgba(242,239,230,.45);
}
.foot__legal a{ color:rgba(242,239,230,.62); }
.foot__legal a:hover{ color:#fff; }
.foot__dot{ opacity:.4; }
.foot__bands{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  height:8px;
}
.foot__bands i:nth-child(1){ background:var(--red); }
.foot__bands i:nth-child(2){ background:var(--yellow); }
.foot__bands i:nth-child(3){ background:var(--blue); }

/* 返回顶部 */
.totop{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:90;
  width:46px; height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--ink);
  color:var(--paper);
  border:2px solid var(--paper);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .24s var(--ease), transform .24s var(--ease),
             background .2s var(--ease), visibility .24s;
  padding-bottom:env(safe-area-inset-bottom);
}
.totop.is-on{ opacity:1; visibility:visible; transform:none; }
.totop:hover{ background:var(--red); }

/* ===================== 入场动画 ===================== */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
  transition-delay:var(--d,0ms);
}
.reveal.is-in{ opacity:1; transform:none; }

/* ===================== 响应式 ===================== */

/* ≥1600 默认已最优；1440–1599 */
@media (max-width:1599px){
  :root{ --pad:92vw; }
  .grid{ grid-template-columns:repeat(4,1fr); }
}

/* 1200–1439 */
@media (max-width:1439px){
  :root{ --pad:94vw; }
  .nav__sub{ display:none; }
  .nav__divider{ display:none; }
  .grid{ grid-template-columns:repeat(4,1fr); }
  .flow{ grid-template-columns:repeat(4,1fr); }
  .flow__step:nth-child(5){ border-left:0; }
  .flow__step:nth-child(n+5){ border-top:1px solid rgba(17,17,17,.18); }
  .sec--dark .flow__step:nth-child(n+5){ border-top-color:rgba(242,239,230,.16); }
}

/* 992–1199 */
@media (max-width:1199px){
  :root{ --nav-h:72px; }
  .nav__link{ font-size:13px; }
  .nav__menu{ gap:14px; }
  .nav__cta{ display:none; }
  .roles{ grid-template-columns:1fr 1fr; }
  .grid{ grid-template-columns:repeat(3,1fr); }
  .rev{ grid-template-columns:1fr; }
  .rev__donut{ max-width:260px; }
  .legend{ max-width:420px; margin:22px auto 0; }
  .guards{ grid-template-columns:1fr 1fr; }
  .pos{ grid-template-columns:1fr; }
  .pos__big{ display:block; }
  .pos__mosaic{ margin-top:clamp(20px,2.6vw,30px); width:min(100%,460px); }
  .hero__inner{ grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
  .hero__side{ width:100%; }
}

/* 768–991 Pad 竖：抽屉导航 */
@media (max-width:991px){
  :root{ --nav-h:68px; }
  .nav__menu,
  .nav__cta{ display:none; }
  .nav__burger{ display:flex; }
  .nav__name{ font-size:17px; }
  .nav__logo{ width:44px; height:44px; }
  .nav.is-solid .nav__logo{ width:36px; height:36px; }

  .hero{ min-height:auto; padding-top:calc(var(--nav-h) + 56px); }
  .hero__inner{ grid-template-columns:1fr; gap:36px; }
  .hero__side{ justify-self:start; width:min(100%,420px); padding-right:0; }
  .hero__vert{ display:none; }
  .hero__scroll{ display:none; }
  .hero__geo .g-line{ display:none; }
  .g-circle{ opacity:.7; }
  /* 单列时过渡图从「卡片左侧」回到文档流，排在卡片上方 */
  .hero__media{
    position:static;
    width:100%;
    max-width:100%;
    margin:0 0 20px;
    transform:none;
    aspect-ratio:16/9;
    animation:none;
    z-index:auto;
  }

  .phero__inner{ grid-template-columns:1fr; align-items:start; gap:20px; }
  .phero__desc{ padding-left:16px; }

  .kpibar__inner{ grid-template-columns:1fr 1fr; }
  .kpi{ border-left:0; padding-left:0; }
  .kpi:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.12); }
  .kpi:nth-child(even){ padding-left:clamp(14px,3vw,28px); border-left:1px solid rgba(255,255,255,.12); }

  .sec__head{ grid-template-columns:1fr; gap:14px; align-items:start; }
  .svcs{ grid-template-columns:1fr; }
  .values{ grid-template-columns:1fr; gap:26px; }
  .pillars{ grid-template-columns:1fr; }
  .risks{ grid-template-columns:1fr; }
  .notes{ grid-template-columns:1fr; }
  .fan{ grid-template-columns:1fr 1fr; }
  .fan__item:last-child{ display:none; }
  .time::before{ left:8px; right:auto; top:0; bottom:0; width:3px; height:auto; }
  .time__row{ grid-template-columns:1fr; gap:0; }
  .mile{ padding-left:38px; padding-bottom:34px; }
  .mile__dot{ position:absolute; left:0; top:6px; margin:0; }
  .mile__phase{ margin-top:0; }
  .foot__inner{ grid-template-columns:1fr; }
  .foot__nav{ grid-template-columns:repeat(4,1fr); }
  .apply{ grid-template-columns:1fr; }
  .apply__qr{ width:140px; }
  .cta__inner{ grid-template-columns:1fr; }
  .cols2{ grid-template-columns:1fr; }
}

/* 560–767 手机大屏 */
@media (max-width:767px){
  :root{ --nav-h:60px; }
  body{ font-size:15px; }
  .sec{ padding:56px 0; }
  .grid{ grid-template-columns:repeat(2,1fr); }
  .roles{ grid-template-columns:1fr; }
  .flow{ grid-template-columns:1fr 1fr; }
  .flow__step{ border-left:0; border-top:1px solid rgba(17,17,17,.18); }
  .flow__step:first-child{ border-top:0; }
  .flow__step:nth-child(2n){ border-left:1px solid rgba(17,17,17,.18); }
  .sec--dark .flow__step{ border-top-color:rgba(242,239,230,.16); }
  .rbar__item{ grid-template-columns:minmax(0,1fr) 46px; gap:6px 10px; }
  .rbar__track{ grid-column:1 / -1; }
  .guards{ grid-template-columns:1fr; }
  .foot__nav{ grid-template-columns:1fr 1fr; gap:22px; }
  .hero__quad div{ font-size:12px; }
  .legend{ max-width:none; }
  .cta__title{ font-size:clamp(24px,7vw,34px); }
}

/* <560 手机 */
@media (max-width:559px){
  :root{ --nav-h:56px; }
  .wrap{ width:92vw; }
  .nav__name{ font-size:16px; }
  .nav__logo{ width:38px; height:38px; }
  .nav.is-solid{ height:52px; }
  .hero__title{ font-size:clamp(40px,13vw,60px); }
  .hero__tag{ font-size:11px; }
  .hero__tag span{ padding:6px 9px; }
  .btn{ width:100%; justify-content:center; height:48px; }
  .hero__acts{ gap:10px; }
  .kpi__num{ font-size:34px; }
  .btn__row{ display:grid; gap:10px; }
  .card__body{ flex-direction:column; align-items:flex-start; gap:4px; }
  .flow{ grid-template-columns:1fr; }
  .flow__step:nth-child(2n){ border-left:0; }
  .foot__legal{ flex-direction:column; align-items:flex-start; gap:6px; }
  .foot__legal .foot__dot{ display:none; }
  .apply__qr{ width:120px; }
  .totop{ right:12px; bottom:12px; width:42px; height:42px; }
}

/* ===================== 修饰类（避免行内样式压过断点） ===================== */
.flow--4{ grid-template-columns:repeat(4,1fr); }
.notes--2{ grid-template-columns:repeat(2,1fr); }
.risks--1{ grid-template-columns:1fr; }
.btn__row{ display:flex; flex-wrap:wrap; gap:12px; }

@media (max-width:1439px){
  .flow--4{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:991px){
  .notes--2{ grid-template-columns:1fr; }
  .flow--4{ grid-template-columns:repeat(2,1fr); }
  .flow--4 .flow__step{ border-left:0; border-top:1px solid rgba(17,17,17,.18); }
  .flow--4 .flow__step:nth-child(2n){ border-left:1px solid rgba(17,17,17,.18); }
  .flow--4 .flow__step:nth-child(-n+2){ border-top:0; }
}
@media (max-width:559px){
  .flow--4{ grid-template-columns:1fr; }
  .flow--4 .flow__step:nth-child(2n){ border-left:0; }
  .flow--4 .flow__step{ border-top:1px solid rgba(17,17,17,.18); }
  .flow--4 .flow__step:first-child{ border-top:0; }
}

/* 减少动态 */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal{ opacity:1; transform:none; }
}

/* ===================== 同学实习 · 缩略格 ===================== */
.tiles{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(8px,1vw,14px);
}
.tile{
  position:relative;
  display:flex;
  flex-direction:column;
  aspect-ratio:3/4;
  border:2px solid var(--paper);
  background:var(--paper-2);
  overflow:hidden;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.tile img{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s var(--ease);
}
.tile:hover img{ transform:scale(1.05); }
.tile:hover{
  transform:translate(-3px,-3px);
  box-shadow:7px 7px 0 var(--red);
  z-index:2;
}
.tile__cap{
  flex:none;
  padding:8px 10px;
  background:var(--ink);
  color:var(--paper);
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.03em;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tile--more{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-style:dashed;
  color:rgba(242,239,230,.72);
  background:transparent;
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  text-align:center;
}
.tile--more b{
  font-family:var(--f-num);
  font-size:30px;
  font-weight:900;
  line-height:1;
  color:var(--red);
}
.tile--more:hover{ background:rgba(255,255,255,.05); }
.tiles--light .tile{ border-color:var(--ink); }
.tiles--light .tile--more{ color:rgba(17,17,17,.6); }
.tiles--light .tile--more:hover{ background:rgba(17,17,17,.04); }

/* ===================== 实习分类区块 ===================== */
.cat{
  padding:clamp(26px,3vw,44px) 0;
  border-top:2px solid rgba(17,17,17,.16);
}
.cat:first-of-type{ border-top:0; padding-top:0; }
.cat__head{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(16px,3vw,48px);
  align-items:end;
  margin-bottom:clamp(16px,2vw,26px);
}
.cat__no{
  font-family:var(--f-num);
  font-size:11px;
  font-weight:900;
  letter-spacing:.2em;
  color:var(--red);
  margin-bottom:8px;
}
.cat__name{
  font-size:clamp(20px,2.1vw,30px);
  font-weight:900;
  line-height:1.15;
  letter-spacing:-.01em;
}
.cat__name i{
  font-style:normal;
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  opacity:.35;
  margin-left:10px;
  vertical-align:middle;
}
.cat__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 16px;
  font-size:13px;
  color:rgba(17,17,17,.6);
}
.cat__meta b{ color:var(--red); font-weight:900; }
.cat__desc{
  margin-top:12px;
  font-size:14px;
  line-height:1.85;
  color:rgba(17,17,17,.68);
}
.cat__desc b{ color:var(--ink); font-weight:900; }
.cat__link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:14px;
  font-size:13px;
  font-weight:900;
  color:var(--red);
  letter-spacing:.04em;
}
.cat__link:hover{ text-decoration:underline; text-underline-offset:4px; }

/* ===================== 动态卡片 ===================== */
.newsgrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,1.8vw,26px);
}
.ncard{
  display:flex;
  flex-direction:column;
  background:var(--paper);
  border:2px solid var(--ink);
  overflow:hidden;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.ncard:hover{ transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--ink); }
.ncard__pic{
  aspect-ratio:16/9;
  overflow:hidden;
  background:var(--paper-2);
  border-bottom:2px solid var(--ink);
}
.ncard__pic img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.ncard:hover .ncard__pic img{ transform:scale(1.05); }
.ncard__body{ padding:clamp(14px,1.4vw,20px); display:flex; flex-direction:column; gap:8px; flex:1; }
.ncard__meta{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  color:rgba(17,17,17,.5);
}
.ncard__cat{
  padding:2px 8px;
  background:var(--red);
  color:#fff;
  letter-spacing:.1em;
}
.ncard__title{ font-size:clamp(15px,1.2vw,17px); font-weight:900; line-height:1.45; }
.ncard__text{
  font-size:13px;
  line-height:1.75;
  color:rgba(17,17,17,.65);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.ncard__more{ margin-top:auto; padding-top:10px; font-size:12px; font-weight:800; color:var(--red); letter-spacing:.06em; }
.sec--dark .ncard{ background:var(--ink); border-color:rgba(242,239,230,.28); }
.sec--dark .ncard__title{ color:var(--paper); }
.sec--dark .ncard__text{ color:rgba(242,239,230,.62); }
.sec--dark .ncard__meta{ color:rgba(242,239,230,.5); }
.sec--dark .ncard__pic{ border-bottom-color:rgba(242,239,230,.28); }
.sec--dark .ncard:hover{ box-shadow:7px 7px 0 var(--red); }

/* ===================== 筛选按钮 ===================== */
.filter{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:clamp(20px,2.4vw,32px); }
.filter button{
  padding:8px 16px;
  border:2px solid var(--ink);
  background:var(--paper);
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
  transition:background .18s var(--ease), color .18s var(--ease);
}
.filter button:hover{ background:var(--yellow); }
.filter button.is-on{ background:var(--ink); color:var(--paper); }

/* ===================== 文章详情 ===================== */
.article{ max-width:860px; margin:0 auto; }
.article__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 18px;
  font-size:12.5px;
  color:rgba(17,17,17,.55);
  padding-bottom:18px;
  border-bottom:2px solid var(--ink);
  margin-bottom:clamp(20px,2.6vw,34px);
}
.article__meta b{ color:var(--red); font-weight:900; }
.article__lead{
  font-size:clamp(15px,1.3vw,18px);
  font-weight:700;
  line-height:1.85;
  color:rgba(17,17,17,.78);
  padding-left:16px;
  border-left:4px solid var(--red);
  margin-bottom:clamp(20px,2.4vw,32px);
}
.article p{ font-size:15px; line-height:1.95; color:rgba(17,17,17,.76); margin-bottom:18px; }
.article h2{
  font-size:clamp(19px,1.8vw,26px);
  font-weight:900;
  line-height:1.35;
  margin:32px 0 12px;
  padding-left:12px;
  border-left:5px solid var(--red);
}
.article figure{ margin:clamp(20px,2.4vw,32px) 0; }
.article figure img{ width:100%; border:2px solid var(--ink); }
.article figure.is-portrait img{ max-width:520px; display:block; margin:0 auto; }
.article figcaption{ margin-top:8px; font-size:12px; color:rgba(17,17,17,.5); text-align:center; }
.article ul.list{ display:grid; gap:9px; margin:0 0 18px; }
.article ul.list li{
  display:flex;
  gap:10px;
  font-size:14.5px;
  line-height:1.8;
  color:rgba(17,17,17,.74);
}
.article ul.list li::before{
  content:"";
  flex:none;
  width:6px; height:6px;
  margin-top:9px;
  background:var(--red);
}
.article__foot{
  margin-top:clamp(26px,3vw,40px);
  padding-top:20px;
  border-top:1px solid rgba(17,17,17,.16);
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

/* ===================== 收益条动态增长（紫红） ===================== */
/* 用 .rbar 前缀提权：各组 .rbar--xx .rbar__fill 的 background 简写会把
   background-image 重置为 none，此处需以相同特异性、靠后顺序覆盖回来 */
.rbar .rbar__fill--anim{
  width:0;
  background-image:linear-gradient(90deg,var(--magenta),#E855B4);
}
.rbar__val--anim{ min-width:0; color:var(--magenta); }

/* ===================== 响应式补充 ===================== */
@media (max-width:1199px){
  .newsgrid{ grid-template-columns:1fr 1fr; }
  .cat__head{ grid-template-columns:1fr; gap:10px; align-items:start; }
}
@media (max-width:991px){
  .tiles{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:767px){
  .newsgrid{ grid-template-columns:1fr; }
  .tiles{ grid-template-columns:repeat(2,1fr); }
  .ncard__body{ padding:14px; }
  /* 手机端四图占满容器宽度（原先被 width:min(100%,300px) 卡住只剩 300px），
     左右保留页面留白、不贴屏边；硬投影照旧。
     只给手机档：平板（768–991）仍按 460px 上限，不然 768 下会撑成 720 见方 */
  .pos__mosaic{
    width:100%;
    max-width:100%;
  }
}
@media (max-width:559px){
  .foot__col a{ font-size:14px; }
  .tiles{ gap:8px; }
  .article p{ font-size:14px; }
}

/* ===================== 列表页 · 筛选 / 加载更多 ===================== */
[hidden]{ display:none !important; }
.filter__bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:clamp(18px,2.2vw,30px);
}
.filter__count{
  font-family:var(--f-num);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  color:rgba(17,17,17,.45);
}
.sec__more{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:clamp(22px,2.6vw,38px);
}
.tiles--fill{ grid-auto-rows:1fr; }
.tile--fit img{ object-fit:contain; background:var(--paper-2); }

/* 作品/动态缩略格在浅底下的描边修正 */
.tiles--light .tile--more b{ color:var(--red); }

/* ===================== 8 类实习方向 ===================== */
.roles--8{ grid-template-columns:repeat(4,1fr); }
.roles--8 .role:nth-child(5) .role__bar{ background:var(--yellow); }
.roles--8 .role:nth-child(6) .role__bar{ background:var(--red); }
.roles--8 .role:nth-child(7) .role__bar{ background:var(--blue); }
.roles--8 .role:nth-child(8) .role__bar{ background:var(--teal); }
.role__no{
  position:absolute;
  top:clamp(16px,1.9vw,26px);
  right:clamp(16px,1.9vw,26px);
  font-family:var(--f-num);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--red);
}
.role--link .role__name{ transition:color .18s var(--ease); }
.role--link:hover .role__name{ color:var(--red); }
.role__arrow{
  position:absolute;
  right:clamp(16px,1.9vw,26px);
  bottom:clamp(16px,1.9vw,26px);
  font-size:15px;
  font-weight:900;
  color:var(--red);
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .18s var(--ease), transform .18s var(--ease);
}
.role--link:hover .role__arrow{ opacity:1; transform:none; }

/* ===================== 详情页头图 ===================== */
.phero--intern{ background-position:30% 40%; }
.phero--news{ background-position:78% 52%; }

/* ===================== 详情页正文补充 ===================== */
.article__back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:800;
  color:var(--red);
  margin-bottom:18px;
}
.article h2.article__title{
  font-size:clamp(24px,2.8vw,38px);
  font-weight:900;
  line-height:1.28;
  letter-spacing:-.01em;
  padding:0 0 16px;
  border-left:0;
  border-bottom:2px solid var(--ink);
  margin:0 0 clamp(16px,2vw,24px);
}
.article h3{
  font-size:clamp(16px,1.4vw,19px);
  font-weight:900;
  line-height:1.4;
  margin:24px 0 10px;
}
.article blockquote{
  margin:22px 0;
  padding:16px 20px;
  background:var(--paper-2);
  border-left:5px solid var(--yellow);
  font-size:14px;
  line-height:1.85;
  color:rgba(17,17,17,.78);
}
.article .table{
  width:100%;
  border-collapse:collapse;
  margin:20px 0;
  font-size:13.5px;
}
.article .table th,
.article .table td{
  border:2px solid var(--ink);
  padding:9px 12px;
  text-align:left;
  line-height:1.6;
}
.article .table th{ background:var(--paper-2); font-weight:900; }

/* ===================== 相邻内容导航 ===================== */
.adj{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(10px,1.4vw,18px);
  margin-top:clamp(26px,3vw,40px);
}
.adj a{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:clamp(14px,1.6vw,20px);
  border:2px solid var(--ink);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.adj a:hover{ transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--ink); }
.adj span{
  font-family:var(--f-num);
  font-size:10px;
  font-weight:900;
  letter-spacing:.2em;
  color:rgba(17,17,17,.4);
}
.adj b{ font-size:14.5px; font-weight:900; line-height:1.45; }
.adj .adj--next{ text-align:right; align-items:flex-end; }

/* ===================== 响应式补充（列表/详情） ===================== */
@media (max-width:1599px){
  .roles--8{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:1199px){
  .roles--8{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:767px){
  .roles--8{ grid-template-columns:1fr; }
  .adj{ grid-template-columns:1fr; }
  .filter button{ padding:7px 12px; font-size:13px; }
  .filter__bar{ align-items:flex-start; }
}

/* ===================== 首页 · 6 列 1:1 缩略格（2 行 × 6） ===================== */
.tiles--6{ grid-template-columns:repeat(6,1fr); gap:clamp(8px,0.8vw,12px); }
.tiles--6 .tile{ aspect-ratio:3/4; }
.tiles--6 .tile__cap{ font-size:11px; padding:7px 8px; }
@media (max-width:1439px){
  .tiles--6{ grid-template-columns:repeat(6,1fr); }
}
@media (max-width:1199px){
  .tiles--6{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:767px){
  .tiles--6{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:559px){
  .tiles--6{ grid-template-columns:repeat(2,1fr); }
  .tiles--6 .tile__cap{ font-size:10.5px; }
}

/* ===================== 实习方向 · 岗位清单 / 成品子块 ===================== */
.posts{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 clamp(14px,1.7vw,22px);
  padding:0;
  list-style:none;
}
.posts li{
  padding:8px 12px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-size:13px;
  font-weight:800;
  line-height:1;
  letter-spacing:-.01em;
}
.posts li:nth-child(4n+1){ border-left-width:6px; border-left-color:var(--red); }
.posts li:nth-child(4n+2){ border-left-width:6px; border-left-color:var(--blue); }
.posts li:nth-child(4n+3){ border-left-width:6px; border-left-color:var(--yellow); }
.posts li:nth-child(4n){ border-left-width:6px; border-left-color:var(--teal); }

.cat__sub{
  margin:clamp(20px,2.2vw,28px) 0 12px;
  padding-top:clamp(14px,1.5vw,18px);
  border-top:2px solid rgba(17,17,17,.16);
}
.cat__sub h4{ font-size:15px; font-weight:900; letter-spacing:-.01em; }
.cat__sub p{
  margin-top:6px;
  font-size:12.5px;
  line-height:1.7;
  color:rgba(17,17,17,.62);
}
@media (max-width:767px){
  .posts{ gap:6px; }
  .posts li{ padding:7px 10px; font-size:12px; border-left-width:4px !important; }
}
