/* =========================================================
   报名单页 signup.css（v4：大标题→三步→对比表→FAQ→扫码咨询入群，浮动报名）
   仅复用全站设计令牌与 .btn 基因，其余 sp- 前缀自成体系
   ========================================================= */
:root{
  --ink-deep:#071230; --ink-blue:#0A1B3D;
  --primary:#1A5CFF; --primary-2:#2E7CFF;
  --cyan:#31E6C6; --cyan-2:#57F2D6;
  --orange:#FF8A3D; --yellow:#FFC93C;
  --sky-1:#7FB8EA; --sky-2:#A9D3F4; --sky-3:#D9EEFB; --sky-4:#F2F9FF;
  --navy:#14317C; --surface:#F5F8FF; --card:#FFFFFF;
  --t1:#16233F; --t2:#5A6A8C; --t3:#93A1BE; --line:#E3EAF7;
  --shadow:0 10px 30px rgba(26,92,255,.10);
  --shadow-lg:0 22px 48px rgba(10,35,90,.16);
  --r-card:16px; --ease:cubic-bezier(.22,.61,.36,1);
  --font-cn:"MiSans","HarmonyOS Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-num:"Bahnschrift","DIN Alternate","Segoe UI",var(--font-cn);
  --ev-green:#0FB5BA; --ev-green-d:#0A8F92;
}

html{scroll-behavior:smooth}
body.sp-body{background:#fff;color:var(--t1);font-family:var(--font-cn);-webkit-font-smoothing:antialiased}
.sp-wrap{width:min(1080px,90%);margin:0 auto}

/* ============ ① 两行大标题（紧凑） ============ */
.sp-open{position:relative;overflow:hidden;padding:30px 0 24px;
  background:linear-gradient(180deg,#EAF4FF 0%,#F6FBFF 70%,#fff 100%)}
.sp-open::before{content:"";position:absolute;left:-160px;top:-220px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,rgba(127,184,234,.35),transparent 65%);pointer-events:none}
.sp-open::after{content:"";position:absolute;right:-180px;top:-160px;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(49,230,198,.22),transparent 65%);pointer-events:none}
.sp-h1{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;margin:0;text-align:center}
.sp-h1 .l1{font-size:clamp(15px,2.1vw,23px);font-weight:800;letter-spacing:.1em;color:var(--navy);line-height:1.5}
.sp-h1 .l2{font-size:clamp(28px,4.6vw,46px);font-weight:900;letter-spacing:.14em;line-height:1.16;
  background:linear-gradient(100deg,#2E8BE6,#1A5CFF 55%,#0FA7D8);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ============ 通用小节标题 ============ */
.sp-h2{text-align:center;font-size:clamp(21px,2.6vw,28px);font-weight:900;color:var(--navy);letter-spacing:.03em;margin:0 0 26px}
.sp-h2::after{content:"";display:block;width:44px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--primary-2),var(--cyan));margin:12px auto 0}

/* ============ ② 参赛三步 ============ */
.sp-flow{padding:40px 0 42px;background:#fff}
.sp-steps{display:flex;align-items:stretch;justify-content:center;gap:14px}
.sp-step{flex:1;background:var(--sky-4);border:1.5px solid rgba(26,92,255,.12);border-radius:16px;padding:18px 20px 16px;text-align:center}
.sp-step > b{display:inline-block;font-family:var(--font-num);font-size:13px;font-weight:800;letter-spacing:.14em;color:#fff;
  background:linear-gradient(120deg,var(--primary-2),var(--primary));border-radius:999px;padding:3px 12px;margin-bottom:8px}
.sp-step i{display:block;font-style:normal;font-size:17px;font-weight:800;color:var(--navy);margin-bottom:5px}
.sp-step span{display:block;font-size:13px;line-height:1.65;color:var(--t2)}
.sp-step span .sp-warn{color:var(--orange)}
.sp-step-arr{align-self:center;color:var(--primary);flex:none}
.sp-step-arr .ic{width:22px;height:22px}

/* ============ ③ 对比表 ============ */
.sp-cmp{padding:40px 0 44px;background:var(--sky-4)}
.sp-cmp-note{margin:-12px 0 12px;text-align:right;font-size:12.5px;color:var(--t3)}
.sp-cmp-note a{color:var(--primary);font-weight:600;text-decoration:none;white-space:nowrap;display:inline-block;border-bottom:1px solid currentColor;padding-bottom:1px}
.sp-cmp-note a:hover{color:var(--primary-2)}
.sp-cmp-note a .ic,.sp-faq-list details p a .ic{display:inline-block;width:13px;height:13px;vertical-align:-2px;margin-right:0;flex:none}
.sp-table-wrap{overflow-x:auto}
.sp-cmp table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:0 0 16px 16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid #DCE2EA}
.sp-cmp th{background:var(--navy);color:#fff;font-size:15px;font-weight:700;padding:15px 18px;text-align:left;letter-spacing:.02em}
.sp-cmp th:first-child{width:120px}
.sp-cmp .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#3D8BFF;position:relative;top:-1px;margin-right:8px}
.sp-cmp .dot.green{background:var(--ev-green)}
/* 两赛项列之间加竖向分割线 */
.sp-cmp th:nth-child(3),.sp-cmp td[data-sd="赛项二"]{border-left:1px solid #DCE2EA}
.sp-cmp td{padding:14px 18px;font-size:14px;line-height:1.7;color:var(--t1);border-top:1px solid #DCE2EA;background:#fff;vertical-align:top}
.sp-cmp td.sp-tdk{font-weight:800;color:var(--primary);background:#EEF5FF !important;letter-spacing:.02em;width:120px}
.sp-cmp .sp-same{color:var(--t1);font-weight:400;font-size:14px;text-align:left;line-height:1.7}
.sp-cmp-tip{margin:16px 0 0;text-align:center;font-size:14px;color:var(--t2)}
.sp-cmp-tip b{color:var(--navy)}

/* ============ ④ FAQ（桌面左右各 2 条） ============ */
.sp-faq{padding:38px 0 48px;background:#fff}
.sp-faq-list{max-width:920px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;align-items:start}
.sp-faq-list details{border:1.5px solid var(--line);border-radius:14px;background:var(--sky-4);overflow:hidden;transition:border-color .25s,box-shadow .25s,background .25s}
.sp-faq-list details[open]{border-color:rgba(26,92,255,.35);background:#fff;box-shadow:var(--shadow)}
.sp-faq-list summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:12px;padding:13px 18px;font-size:15px;font-weight:700;color:var(--navy);outline:none}
.sp-faq-list summary:focus,.sp-faq-list summary:focus-visible{outline:none;box-shadow:none}
.sp-faq-list summary::-webkit-details-marker{display:none}
.sp-faq-list summary::before{content:"Q";flex:none;width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-num);font-size:13px;font-weight:800;color:#fff;background:var(--primary)}
.sp-faq-list summary::after{content:"＋";margin-left:auto;color:var(--t3);transition:transform .25s}
.sp-faq-list details[open] summary::after{transform:rotate(45deg)}
.sp-faq-list details p{margin:0;padding:0 20px 14px 54px;font-size:14px;line-height:1.8;color:var(--t2)}
.sp-faq-list details p b{color:var(--navy)}
.sp-faq-list details p a{color:var(--primary);font-weight:600;text-decoration:none;white-space:nowrap;display:inline-block;border-bottom:1px solid currentColor;padding-bottom:1px}
.sp-faq-list details p a:hover{color:var(--primary-2)}

/* ============ ⑤ 报名咨询：扫码入群 ============ */
.sp-qr{padding:40px 0 48px;background:var(--sky-4)}
.sp-qr-card{max-width:920px;margin:0 auto;display:flex;align-items:center;gap:44px;background:#fff;border:1px solid #DCE2EA;border-radius:16px;box-shadow:var(--shadow);padding:34px 40px}
.sp-qr-img{flex:none;text-align:center}
.sp-qr-img img{display:block;margin:0 auto;width:210px;height:210px;border:1px solid var(--line);border-radius:14px;background:#fff}
.sp-qr-img span{display:block;margin-top:10px;font-size:12.5px;color:var(--t3);letter-spacing:.06em}
.sp-qr-txt{min-width:0}
.sp-qr-txt h3{margin:0 0 10px;font-size:19px;font-weight:900;color:var(--navy);letter-spacing:.02em}
.sp-qr-txt p{margin:0;font-size:14px;line-height:1.8;color:var(--t2)}
.sp-qr-txt ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.sp-qr-txt ul li{position:relative;padding-left:22px;font-size:14px;line-height:1.7;color:var(--t1)}
.sp-qr-txt ul li::before{content:"";position:absolute;left:2px;top:.5em;width:10px;height:5px;border-left:2.2px solid var(--primary);border-bottom:2.2px solid var(--primary);transform:rotate(-45deg)}
.sp-qr-tip{margin-top:14px !important;font-size:12.5px;color:var(--t3)}

/* ============ 浮动报名（通栏白底：左两行文案 + 右大按钮） ============ */
body.sp-body{padding-bottom:106px}
.sp-dock{position:fixed;left:0;right:0;bottom:0;z-index:90;
  background:#fff;border-top:1px solid var(--line);
  padding:15px 0 calc(15px + env(safe-area-inset-bottom));
  box-shadow:0 -10px 30px rgba(10,35,90,.08);animation:sp-dock-in .45s var(--ease) both}
.sp-dock-in{width:min(1080px,90%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}
.sp-dock-slogan{display:flex;flex-direction:column;gap:4px;min-width:0}
.sp-dock-slogan b{font-size:18px;font-weight:900;color:var(--navy);letter-spacing:.02em;line-height:1.4}
.sp-dock-slogan b i{font-style:normal;color:var(--orange)}
.sp-dock-slogan span{font-size:13px;color:var(--t2);line-height:1.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-dock-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;
  text-decoration:none;font-size:18px;font-weight:800;letter-spacing:.3em;text-indent:.3em;color:#fff;
  background:linear-gradient(120deg,var(--primary-2),var(--primary) 55%,#1140C2);
  padding:17px 52px;border-radius:12px;box-shadow:0 10px 24px rgba(26,92,255,.35);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.sp-dock-btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(26,92,255,.45)}
@keyframes sp-dock-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sp-dock{animation:none}}

/* ============ 响应式 ============ */
@media (max-width:860px){
  .sp-open{padding:24px 0 18px}
  /* 大赛名称一行放下，字号随视口缩放 */
  .sp-h1 .l1{font-size:clamp(12.5px,4.3vw,16px);letter-spacing:.03em;white-space:nowrap}
  .sp-flow{padding:22px 0 24px}
  /* 三步紧凑化（仅作用于本板块标题，不动其他小节） */
  .sp-flow .sp-h2{font-size:19px;margin-bottom:14px}
  .sp-flow .sp-h2::after{margin-top:8px}
  .sp-steps{flex-direction:column;gap:8px}
  /* 序号+标题一行，说明文字独占整行（避免被序号挤宽掉字） */
  .sp-step{flex:none;padding:11px 14px;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;text-align:left;border-radius:12px}
  .sp-step > b{grid-row:1;align-self:center;margin-bottom:0;font-size:12px;padding:2px 10px;letter-spacing:.1em}
  .sp-step i{font-size:15px;margin-bottom:0}
  .sp-step span{grid-column:1 / -1;font-size:12px;line-height:1.55;margin-top:3px}
  .sp-step-arr{display:none}
  /* 对比表：保持表格，紧凑化 */
  .sp-cmp th,.sp-cmp td{padding:10px 9px;font-size:12.2px;line-height:1.55}
  .sp-cmp th{font-size:12.5px}
  .sp-cmp th:first-child{width:52px}
  .sp-cmp td.sp-tdk{width:52px;font-size:12px;letter-spacing:0;padding:10px 6px}
  .sp-cmp .sp-same{font-size:11.8px;text-align:left}
  /* FAQ 单列 */
  .sp-faq-list{grid-template-columns:1fr;max-width:760px}
  /* 报名咨询：竖排堆叠 */
  .sp-qr{padding:24px 0 30px}
  .sp-qr-card{flex-direction:column;gap:20px;padding:24px 20px}
  .sp-qr-img img{width:172px;height:172px}
  .sp-qr-txt h3{font-size:17px}
  /* 浮动报名：通栏底栏，副行自动换行、按钮加宽 */
  body.sp-body{padding-bottom:112px}
  .sp-dock-in{gap:12px}
  .sp-dock-slogan b{font-size:15px}
  .sp-dock-slogan span{display:block;white-space:normal;overflow:visible;font-size:12px}
  .sp-dock-btn{padding:13px 36px;font-size:15.5px;letter-spacing:.24em;text-indent:.24em;border-radius:10px}
}
